From 51bad010d60e4a3d0f12f769276d3710e93b0941 Mon Sep 17 00:00:00 2001 From: mudlord Date: Sun, 2 Dec 2007 00:31:46 +0000 Subject: [PATCH] Removed MacOSX port git-svn-id: https://svn.code.sf.net/p/vbam/code/trunk@140 a31d4220-a93d-0410-bf67-fe4944624d44 --- macosx/English.lproj/InfoPlist.strings | Bin 188 -> 0 bytes macosx/English.lproj/Main.nib/designable.nib | 11373 ---------------- .../English.lproj/Main.nib/keyedobjects.nib | Bin 104030 -> 0 bytes macosx/Info.plist | 28 - macosx/VBA-M.xcodeproj/project.pbxproj | 917 -- src/macosx/KeyConfig.h | 9 - src/macosx/KeyConfig.mm | 108 - src/macosx/MainClass.h | 131 - src/macosx/MainClass.mm | 821 -- src/macosx/RomInfo.h | 234 - src/macosx/SDL.mm | 3114 ----- src/macosx/cart.icns | 28 - src/macosx/openfile.h | 11 - src/macosx/openfile.mm | 40 - src/macosx/savestate.icns | Bin 41161 -> 0 bytes src/macosx/system.icns | Bin 43333 -> 0 bytes 16 files changed, 16814 deletions(-) delete mode 100644 macosx/English.lproj/InfoPlist.strings delete mode 100644 macosx/English.lproj/Main.nib/designable.nib delete mode 100644 macosx/English.lproj/Main.nib/keyedobjects.nib delete mode 100644 macosx/Info.plist delete mode 100644 macosx/VBA-M.xcodeproj/project.pbxproj delete mode 100644 src/macosx/KeyConfig.h delete mode 100644 src/macosx/KeyConfig.mm delete mode 100644 src/macosx/MainClass.h delete mode 100644 src/macosx/MainClass.mm delete mode 100644 src/macosx/RomInfo.h delete mode 100644 src/macosx/SDL.mm delete mode 100755 src/macosx/cart.icns delete mode 100755 src/macosx/openfile.h delete mode 100755 src/macosx/openfile.mm delete mode 100755 src/macosx/savestate.icns delete mode 100755 src/macosx/system.icns diff --git a/macosx/English.lproj/InfoPlist.strings b/macosx/English.lproj/InfoPlist.strings deleted file mode 100644 index 97e7515089f78ad58d961ee5d019385fb2496df3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188 zcmXYq%?`m}5Jk`0Q#6*1sMuJDh1igY1y4}bB50cy32)>jaeR?U=I73xGoN=tOvI9k zjFdA+p5*M*?$(A@rJ}S(*227SD(w5z!QXOKJ?VY~S4=|3Sg~Qwjf>opwfj_V%GRr# jnS|PlM*f~dU`*t6d6}o~e)RnRFY{Z^e#pQW=^FC|Gk+kW diff --git a/macosx/English.lproj/Main.nib/designable.nib b/macosx/English.lproj/Main.nib/designable.nib deleted file mode 100644 index 6af5a06a..00000000 --- a/macosx/English.lproj/Main.nib/designable.nib +++ /dev/null @@ -1,11373 +0,0 @@ - - - - 1050 - 9B17 - 629 - 949 - 343.00 - - YES - - - - YES - com.apple.InterfaceBuilder.CocoaPlugin - - - YES - - - NSApplication - - - - FirstResponder - - - NSApplication - - - SDLMain - - YES - - - Visual Boy Advance-M - - 1048576 - 2147483647 - - NSImage - NSMenuCheckmark - - - - NSMenuMixedState - - submenuAction: - - - - YES - - - About VisualBoyAdvance - - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Preferences... - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Visit EmuScene Software... - - 1048576 - 2147483647 - - - - - - Donate... - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Hide VisualBoyAdvance - h - 1048576 - 2147483647 - - - - - - Hide Others - - 1048576 - 2147483647 - - - - - - Show All - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Quit VisualBoyAdvance - q - 1048576 - 2147483647 - - - - - _NSAppleMenu - - - - - File - - 1048576 - 2147483647 - - - submenuAction: - - - File - - - YES - - - Open Rom... - o - 1048576 - 2147483647 - - - - - - Close Rom - w - 1048576 - 2147483647 - - - - - - - - - Edit - - 1048576 - 2147483647 - - - submenuAction: - - - Edit - - - YES - - - Cut - x - 1048576 - 2147483647 - - - - - - Copy - c - 1048576 - 2147483647 - - - - - - Paste - v - 1048576 - 2147483647 - - - - - - Delete - - 1048576 - 2147483647 - - - - - - Select All - a - 1048576 - 2147483647 - - - - - - - - - Control - - 1048576 - 2147483647 - - - submenuAction: - - - - YES - - - Toggle Fullscreen - f - 262144 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Pause Emulation - p - 1048576 - 2147483647 - - - - - - Reset Emulation - r - 1048576 - 2147483647 - - - - - - Advance Frame - n - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Freeze Game State - - 1048576 - 2147483647 - - - - - - Defrost Game State - d - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Add CodeBreakerAdvance Cheats... - - 1048576 - 2147483647 - - - - - - Add GameSharkAdvance Cheats... - - 1048576 - 2147483647 - - - - - - YES - YES - - - 1048576 - 2147483647 - - - - - - Configure Keys... - - 1048576 - 2147483647 - - - - - - - - - Window - - 1048576 - 2147483647 - - - submenuAction: - - - Window - - - YES - - - Minimize - m - 1048576 - 2147483647 - - - - - _NSWindowsMenu - - - - _NSMainMenu - - - - - - NSFontManager - - - 3 - 2 - {{694, 666}, {289, 274}} - 1886912512 - About - NSWindow - - View - - - - 256 - - YES - - - 256 - {{158, 12}, {84, 32}} - - YES - - 67239424 - 134217728 - OK - - LucidaGrande - 1.300000e+01 - 1044 - - - -2038284033 - 1 - - - DQ - 200 - 25 - - - - - 256 - {{63, 232}, {165, 22}} - - YES - - 67239424 - 138412032 - VisualBoyAdvance - - - 1.800000e+01 - 16 - - - - 6 - System - controlColor - - 3 - MC42NjY2NjY2OQA - - - - 6 - - controlTextColor - - 3 - MAA - - - - - - - 256 - - 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 - - - {{87, 143}, {112, 82}} - - YES - - 130560 - 33554432 - - - NSApplicationIcon - - 0 - 0 - 0 - NO - - YES - - - - 256 - {{89, 55}, {118, 96}} - - YES - - 69336577 - 138412032 - Ck9yaWdpbmFsIFZlcnNpb246CkZvcmdvdHRlbgoKTWFjIE9TIFggVmVyc2lvbjoKQWRhbSBHcmVlbg - - - 1.100000e+01 - 3100 - - - - - - - - - 256 - {{51, 12}, {87, 32}} - - YES - - 67239424 - 134217728 - License - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - {{1, 9}, {289, 274}} - - {{0, 0}, {2560, 1578}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - 3 - 2 - {{588, 455}, {516, 415}} - 1886912512 - GNU Public License - - - View - - - - 256 - - YES - - - 256 - - YES - - - 2304 - - YES - - - 2322 - - YES - - YES - Apple HTML pasteboard type - - - CorePasteboardFlavorType 0x6D6F6F76 - NSColor pasteboard type - - NSStringPboardType - - NeXT RTFD pasteboard type - NeXT Rich Text Format v1.0 pasteboard type - - - - {{0, 24}, {459, 4046}} - - - - - - CQkgICAgCQkgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQoJCSAgICAgIAkJIFZlcnNpb24gMiwg -SnVuZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv -biwgSW5jLgogICAgICAgICAgICAgICAgICAgICAgIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBC -b3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFu -ZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQg -Y2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgoJCQkgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2Vz -IGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRv -IHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpM -aWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNo -YW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFs -bCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9m -IHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHBy -b2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNv -ZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExpYnJhcnkgR2Vu -ZXJhbCBQdWJsaWMgTGljZW5zZSBpbnN0ZWFkLikgIFlvdSBjYW4gYXBwbHkgaXQgdG8KeW91ciBwcm9n -cmFtcywgdG9vLgoKICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJp -bmcgdG8gZnJlZWRvbSwgbm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBk -ZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRl -IGNvcGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGlzIHNlcnZpY2UgaWYgeW91 -IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQKaWYgeW91IHdh -bnQgaXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQK -aW4gbmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhp -bmdzLgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25z -IHRoYXQgZm9yYmlkCmFueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0 -byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4KVGhlc2UgcmVzdHJpY3Rpb25zIHRyYW5zbGF0ZSB0byBjZXJ0 -YWluIHJlc3BvbnNpYmlsaXRpZXMgZm9yIHlvdSBpZiB5b3UKZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhl -IHNvZnR3YXJlLCBvciBpZiB5b3UgbW9kaWZ5IGl0LgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3Ry -aWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUs -IHlvdSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxsIHRoZSByaWdodHMgdGhhdAp5b3UgaGF2ZS4g -IFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQpz -b3VyY2UgY29kZS4gIEFuZCB5b3UgbXVzdCBzaG93IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleSBrbm93 -IHRoZWlyCnJpZ2h0cy4KCiAgV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczogKDEp -IGNvcHlyaWdodCB0aGUgc29mdHdhcmUsIGFuZAooMikgb2ZmZXIgeW91IHRoaXMgbGljZW5zZSB3aGlj -aCBnaXZlcyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LApkaXN0cmlidXRlIGFuZC9vciBtb2Rp -ZnkgdGhlIHNvZnR3YXJlLgoKICBBbHNvLCBmb3IgZWFjaCBhdXRob3IncyBwcm90ZWN0aW9uIGFuZCBv -dXJzLCB3ZSB3YW50IHRvIG1ha2UgY2VydGFpbgp0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQg -dGhlcmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQpzb2Z0d2FyZS4gIElmIHRoZSBzb2Z0d2Fy -ZSBpcyBtb2RpZmllZCBieSBzb21lb25lIGVsc2UgYW5kIHBhc3NlZCBvbiwgd2UKd2FudCBpdHMgcmVj -aXBpZW50cyB0byBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90IHRoZSBvcmlnaW5hbCwgc28K -dGhhdCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0 -aGUgb3JpZ2luYWwKYXV0aG9ycycgcmVwdXRhdGlvbnMuCgogIEZpbmFsbHksIGFueSBmcmVlIHByb2dy -YW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCnBhdGVudHMuICBXZSB3aXNoIHRv -IGF2b2lkIHRoZSBkYW5nZXIgdGhhdCByZWRpc3RyaWJ1dG9ycyBvZiBhIGZyZWUKcHJvZ3JhbSB3aWxs -IGluZGl2aWR1YWxseSBvYnRhaW4gcGF0ZW50IGxpY2Vuc2VzLCBpbiBlZmZlY3QgbWFraW5nIHRoZQpw -cm9ncmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIg -dGhhdCBhbnkKcGF0ZW50IG11c3QgYmUgbGljZW5zZWQgZm9yIGV2ZXJ5b25lJ3MgZnJlZSB1c2Ugb3Ig -bm90IGxpY2Vuc2VkIGF0IGFsbC4KCiAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9y -IGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKbW9kaWZpY2F0aW9uIGZvbGxvdy4KCgoJCSAgICBHTlUg -R0VORVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywg -RElTVFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8g -YW55IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkg -dGhlIGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUg -dGVybXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3cs -CnJlZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRo -ZSBQcm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1 -bmRlciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFBy -b2dyYW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRp -b25zIGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwg -dHJhbnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2Rp -ZmljYXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGll -cyBvdGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QK -Y292ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFj -dCBvZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBm -cm9tIHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBh -IHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUg -YnkgcnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hh -dCB0aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0 -aW0gY29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGlu -IGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRl -bHkgcHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQg -ZGlzY2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVm -ZXIgdG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBn -aXZlIGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vu -c2UKYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5 -c2ljYWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9u -IG9mZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3Ug -bWF5IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9u -Cm9mIGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBh -bmQKZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2Yg -U2VjdGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNv -bmRpdGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5 -IHByb21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFu -ZCB0aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRo -YXQgeW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBj -b250YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJl -b2YsIHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAg -cGFydGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2Rp -ZmllZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4g -cnVuLCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGlu -dGVyYWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkg -YW4KICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGlj -ZSBhbmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWlu -ZyB0aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0 -cmlidXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0 -aGUgdXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246 -IGlmIHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1h -bGx5IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQ -cm9ncmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKClRoZXNlIHJl -cXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdob2xlLiAgSWYKaWRlbnRp -ZmlhYmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3Jh -bSwKYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRl -IHdvcmtzIGluCnRoZW1zZWx2ZXMsIHRoZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBu -b3QgYXBwbHkgdG8gdGhvc2UKc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFy -YXRlIHdvcmtzLiAgQnV0IHdoZW4geW91CmRpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFy -dCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZApvbiB0aGUgUHJvZ3JhbSwgdGhlIGRpc3Ry -aWJ1dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YKdGhpcyBMaWNlbnNlLCB3 -aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKZW50aXJlIHdo -b2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3Rl -IGl0LgoKVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJp -Z2h0cyBvciBjb250ZXN0CnlvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7 -IHJhdGhlciwgdGhlIGludGVudCBpcyB0bwpleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUg -ZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IKY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUg -UHJvZ3JhbS4KCkluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3Qg -YmFzZWQgb24gdGhlIFByb2dyYW0Kd2l0aCB0aGUgUHJvZ3JhbSAob3Igd2l0aCBhIHdvcmsgYmFzZWQg -b24gdGhlIFByb2dyYW0pIG9uIGEgdm9sdW1lIG9mCmEgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVk -aXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCnRoZSBzY29wZSBvZiB0aGlzIExp -Y2Vuc2UuCgogIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3 -b3JrIGJhc2VkIG9uIGl0LAp1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFi -bGUgZm9ybSB1bmRlciB0aGUgdGVybXMgb2YKU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0 -aGF0IHlvdSBhbHNvIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nOgoKICAgIGEpIEFjY29tcGFueSBpdCB3 -aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUKICAgIHNvdXJjZSBj -b2RlLCB3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucwog -ICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBp -bnRlcmNoYW5nZTsgb3IsCgogICAgYikgQWNjb21wYW55IGl0IHdpdGggYSB3cml0dGVuIG9mZmVyLCB2 -YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUKICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwg -Zm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCiAgICBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9y -bWluZyBzb3VyY2UgZGlzdHJpYnV0aW9uLCBhIGNvbXBsZXRlCiAgICBtYWNoaW5lLXJlYWRhYmxlIGNv -cHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUsIHRvIGJlCiAgICBkaXN0cmlidXRlZCB1 -bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQogICAgY3Vz -dG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLAoKICAgIGMpIEFjY29tcGFu -eSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCiAgICB0 -byBkaXN0cmlidXRlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUuICAoVGhpcyBhbHRlcm5hdGl2ZSBp -cwogICAgYWxsb3dlZCBvbmx5IGZvciBub25jb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBhbmQgb25seSBp -ZiB5b3UKICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUg -Zm9ybSB3aXRoIHN1Y2gKICAgIGFuIG9mZmVyLCBpbiBhY2NvcmQgd2l0aCBTdWJzZWN0aW9uIGIgYWJv -dmUuKQoKVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9m -IHRoZSB3b3JrIGZvcgptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhbiBleGVjdXRhYmxl -IHdvcmssIGNvbXBsZXRlIHNvdXJjZQpjb2RlIG1lYW5zIGFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFs -bCBtb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueQphc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0 -aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KY29udHJvbCBjb21waWxhdGlvbiBhbmQg -aW5zdGFsbGF0aW9uIG9mIHRoZSBleGVjdXRhYmxlLiAgSG93ZXZlciwgYXMgYQpzcGVjaWFsIGV4Y2Vw -dGlvbiwgdGhlIHNvdXJjZSBjb2RlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1ZGUKYW55dGhpbmcg -dGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKZm9y -bSkgd2l0aCB0aGUgbWFqb3IgY29tcG9uZW50cyAoY29tcGlsZXIsIGtlcm5lbCwgYW5kIHNvIG9uKSBv -ZiB0aGUKb3BlcmF0aW5nIHN5c3RlbSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLCB1bmxlc3Mg -dGhhdCBjb21wb25lbnQKaXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgoKSWYgZGlzdHJp -YnV0aW9uIG9mIGV4ZWN1dGFibGUgb3Igb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZwphY2Nl -c3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50 -CmFjY2VzcyB0byBjb3B5IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNlIGNvdW50cyBh -cwpkaXN0cmlidXRpb24gb2YgdGhlIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVz -IGFyZSBub3QKY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3Qg -Y29kZS4KCgogIDQuIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgb3IgZGlzdHJp -YnV0ZSB0aGUgUHJvZ3JhbQpleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGlj -ZW5zZS4gIEFueSBhdHRlbXB0Cm90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Ugb3Ig -ZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBpcwp2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1p -bmF0ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuCkhvd2V2ZXIsIHBhcnRpZXMgd2hvIGhh -dmUgcmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyCnRoaXMgTGljZW5zZSB3 -aWxsIG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoCnBhcnRp -ZXMgcmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KCiAgNS4gWW91IGFyZSBub3QgcmVxdWlyZWQgdG8g -YWNjZXB0IHRoaXMgTGljZW5zZSwgc2luY2UgeW91IGhhdmUgbm90CnNpZ25lZCBpdC4gIEhvd2V2ZXIs -IG5vdGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yCmRpc3RyaWJ1dGUg -dGhlIFByb2dyYW0gb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQpwcm9o -aWJpdGVkIGJ5IGxhdyBpZiB5b3UgZG8gbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUs -IGJ5Cm1vZGlmeWluZyBvciBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2Vk -IG9uIHRoZQpQcm9ncmFtKSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vu -c2UgdG8gZG8gc28sIGFuZAphbGwgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBk -aXN0cmlidXRpbmcgb3IgbW9kaWZ5aW5nCnRoZSBQcm9ncmFtIG9yIHdvcmtzIGJhc2VkIG9uIGl0LgoK -ICA2LiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFz -ZWQgb24gdGhlClByb2dyYW0pLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBs -aWNlbnNlIGZyb20gdGhlCm9yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1dGUgb3IgbW9k -aWZ5IHRoZSBQcm9ncmFtIHN1YmplY3QgdG8KdGhlc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMuICBZb3Ug -bWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIKcmVzdHJpY3Rpb25zIG9uIHRoZSByZWNpcGllbnRzJyBl -eGVyY2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgaGVyZWluLgpZb3UgYXJlIG5vdCByZXNwb25zaWJs -ZSBmb3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB0bwp0aGlzIExpY2Vuc2Uu -CgogIDcuIElmLCBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgY291cnQganVkZ21lbnQgb3IgYWxsZWdhdGlv -biBvZiBwYXRlbnQKaW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRl -ZCB0byBwYXRlbnQgaXNzdWVzKSwKY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIg -YnkgY291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUg -Y29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUg -Y29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90CmRpc3RyaWJ1dGUgc28gYXMg -dG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKTGljZW5z -ZSBhbmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNl -IHlvdQptYXkgbm90IGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlm -IGEgcGF0ZW50CmxpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRp -b24gb2YgdGhlIFByb2dyYW0gYnkKYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBv -ciBpbmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuCnRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNm -eSBib3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8KcmVmcmFpbiBlbnRpcmVseSBmcm9t -IGRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbS4KCklmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlv -biBpcyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgphbnkgcGFydGljdWxhciBjaXJj -dW1zdGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvCmFwcGx5IGFu -ZCB0aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyCmNpcmN1 -bXN0YW5jZXMuCgpJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5 -b3UgdG8gaW5mcmluZ2UgYW55CnBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9y -IHRvIGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CnN1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRo -ZSBzb2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKaW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3 -YXJlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0sIHdoaWNoIGlzCmltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNl -bnNlIHByYWN0aWNlcy4gIE1hbnkgcGVvcGxlIGhhdmUgbWFkZQpnZW5lcm91cyBjb250cmlidXRpb25z -IHRvIHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkCnRocm91Z2ggdGhhdCBzeXN0 -ZW0gaW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CnN5c3RlbTsgaXQg -aXMgdXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Igc2hlIGlzIHdpbGxpbmcK -dG8gZGlzdHJpYnV0ZSBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGljZW5z -ZWUgY2Fubm90CmltcG9zZSB0aGF0IGNob2ljZS4KClRoaXMgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBt -YWtlIHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZlZCB0bwpiZSBhIGNvbnNlcXVlbmNlIG9m -IHRoZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29y -IHVzZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhl -ciBieSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5 -cmlnaHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBh -ZGQgYW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGlu -Zwp0aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGlu -IG9yIGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBM -aWNlbnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5 -IG9mIHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVi -bGlzaCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vu -c2UgZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4g -c3Bpcml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwph -ZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRp -c3Rpbmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVy -c2lvbiBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0 -ZXIgdmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQg -Y29uZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1 -Ymxpc2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9l -cyBub3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9v -c2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlv -bi4KCiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGlu -dG8gb3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlm -ZmVyZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0 -d2FyZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3 -cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNl -cHRpb25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29h -bHMKb2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBm -cmVlIHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3 -YXJlIGdlbmVyYWxseS4KCgkJCSAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JB -TSBJUyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQ -Uk9HUkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBX -SEVOCk9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09S -IE9USEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkg -T0YgQU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9U -IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBG -SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUg -UVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQg -VEhFClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNF -U1NBUlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVO -TEVTUyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxM -IEFOWSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5E -L09SClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBU -TyBZT1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRB -TCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJ -VFkgVE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0Yg -REFUQSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBC -WQpZT1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFU -RSBXSVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFS -VFkgSEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKCQkg -ICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUw - - - YES - - YES - NSFont - NSParagraphStyle - - - YES - - Monaco - 1.000000e+01 - 16 - - - 4 - - YES - - 2.800000e+01 - - - 5.600000e+01 - - - 8.400000e+01 - - - 1.120000e+02 - - - 1.400000e+02 - - - 1.680000e+02 - - - 1.960000e+02 - - - 2.240000e+02 - - - 2.520000e+02 - - - 2.800000e+02 - - - 3.080000e+02 - - - 3.360000e+02 - - - 1 - - - - - - - YES - - - 6 - - - - 4.590000e+02 - 1 - - - 2916 - - 3 - MQA - - - - YES - - YES - NSBackgroundColor - NSColor - - - YES - - 6 - - selectedTextBackgroundColor - - - - 6 - - selectedTextColor - - - - - - - YES - - YES - - NSCursor - NSUnderline - - - YES - - 1 - MCAwIDEAA - - - {8, -8} - 13 - - - - - - - 6 - {465, 1e+07} - {83, 333} - - - - {{1, 1}, {459, 333}} - {{0, 24}, {459, 333}} - - - - - - {1, -1} - 0 - - 4 - - - - 256 - {{460, 1}, {15, 333}} - - YES - - _doScroller: - 8.230351e-02 - - - - 256 - {{-100, -100}, {87, 18}} - - 1 - - - 1.000000e+00 - 9.456522e-01 - - - {{20, 60}, {476, 335}} - - - 82 - - - - - - - 256 - {{418, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - - - - -2038284033 - 1 - - Helvetica - 1.300000e+01 - 16 - - - - 200 - 25 - - - - {{1, 9}, {516, 415}} - - {{0, 0}, {2560, 1578}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - 15 - 2 - {{621, 903}, {714, 439}} - 1886912512 - Preferences - - - View - - - - 256 - - YES - - - 256 - - YES - - - 256 - - YES - - - 256 - {{181, 14}, {119, 20}} - - YES - - -2080244224 - 4194304 - - - - 1.000000e+01 - 2843 - - - - 6 - - textBackgroundColor - - - - 6 - - textColor - - - - - - - 256 - {{181, 224}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - Enabled - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - Disabled - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - 3 - YES - YES - 1 - - - - - 256 - {{61, 229}, {96, 17}} - - YES - - 67239424 - 71303168 - Limit Speed: - - - 1.200000e+01 - 16 - - - - - - - - - 256 - {{181, 48}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{14, 54}, {143, 16}} - - YES - - 67239424 - 71303168 - Change Type/Creator: - - - - - - - - - 256 - {{181, 123}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{61, 128}, {96, 17}} - - YES - - 67239424 - 71303168 - Skip Bios Intro: - - - - - - - - - 256 - {{181, 98}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{30, 103}, {127, 17}} - - YES - - 67239424 - 71303168 - Pause When Inactive: - - - - - - - - - 256 - {{181, 73}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{30, 78}, {127, 17}} - - YES - - 67239424 - 71303168 - Real Time Clock: - - - - - - - - {{2, 2}, {329, 357}} - - - - {{364, 56}, {333, 377}} - - {0, 0} - - 67239424 - 0 - Emulator - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{413, 364}, {108, 16}} - - YES - - 67239424 - 71303168 - GB Frame Skip: - - - - - 1 - MCAwIDAAA - - - - - - 256 - {{547, 206}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{547, 383}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - 2 - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - 0 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 1 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 3 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 4 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 5 - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 2 - 3 - YES - YES - 1 - - - - - 256 - {{407, 261}, {114, 17}} - - YES - - 67239424 - 71303168 - Flash Size: - - - - - - - - - 256 - {{407, 313}, {114, 17}} - - YES - - 67239424 - 71303168 - Show Speed: - - - - - - - - - 256 - {{381, 212}, {140, 16}} - - YES - - 67239424 - 71303168 - Use Bios File: - - - - - - - - - 256 - {{547, 308}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - 3 - YES - YES - 1 - - - - - 256 - {{407, 236}, {114, 17}} - - YES - - 67239424 - 71303168 - Remove Intros: - - - - - - - - - 256 - {{407, 338}, {114, 17}} - - YES - - 67239424 - 71303168 - Auto Frame Skip: - - - - - - - - - 256 - {{547, 358}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{547, 231}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{547, 333}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{407, 388}, {114, 17}} - - YES - - 67239424 - 71303168 - GBA Frame Skip: - - - - - - - - - 256 - {{547, 256}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - 64k - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 128k - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{393, 70}, {133, 28}} - - YES - - 67239424 - 138018816 - Select Bios File - - - -2038284033 - 1 - - - 1.100000e+01 - 16 - - - - - - 200 - 25 - - - - - 256 - {{48, 362}, {114, 17}} - - YES - - 67239424 - 71303168 - Sound Quality: - - - - - - - - - 256 - {{48, 337}, {114, 17}} - - YES - - 67239424 - 71303168 - Sound Echo: - - - - - - - - - 256 - - YES - - - 256 - {{2, 2}, {317, 140}} - - - - {{17, 272}, {321, 160}} - - - - 67239424 - 0 - Sound - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{190, 332}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{12, 312}, {150, 17}} - - YES - - 67239424 - 71303168 - Sound Low Pass Filter: - - - - - - - - - 256 - {{48, 287}, {114, 17}} - - YES - - 67239424 - 71303168 - Reverse Stereo: - - - - - - - - - 256 - {{190, 282}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{190, 382}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 1 - 3 - YES - YES - 1 - - - - - 256 - {{190, 307}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{48, 387}, {114, 17}} - - YES - - 67239424 - 71303168 - Sound: - - - - - - - - - 256 - {{190, 357}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - 22Khz - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - 44Khz - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 11Khz - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 1 - 3 - YES - YES - 1 - - - - - 256 - - YES - - - 256 - - YES - - - 256 - {{171, 5}, {128, 22}} - - YES - - -2076049856 - 132096 - - - -2038284033 - 1 - - - - - - 400 - 75 - - - None - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - Motion Blur - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Smart - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{18, 10}, {126, 17}} - - YES - - 67239424 - 71303168 - Interframe Blending: - - - - - - - - {{2, 2}, {316, 158}} - - - - {{17, 92}, {320, 178}} - - - - 67239424 - 0 - Video - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 2 - NO - - - - 256 - {{190, 224}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - 1x - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - 2x - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3x - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 4x - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{190, 149}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - Automatic - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - 2 - 3 - YES - YES - 1 - - - - - 256 - {{190, 174}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{48, 204}, {114, 17}} - - YES - - 67239424 - 71303168 - Video Filter: - - - - - - - - - 256 - {{190, 124}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{48, 229}, {114, 17}} - - YES - - 67239424 - 71303168 - Video Size: - - - - - - - - - 256 - {{48, 154}, {114, 17}} - - YES - - 67239424 - 71303168 - GameBoy Border: - - - - - - - - - 256 - {{48, 179}, {114, 17}} - - YES - - 67239424 - 71303168 - Fullscreen: - - - - - - - - - 256 - {{190, 199}, {128, 22}} - - YES - - -2076049856 - 132096 - - - 109199615 - 1 - - - - - - - - 400 - 75 - - - Plain - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - OtherViews - - - YES - - - - TV Mode - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 2xSAI - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Super 2xSAI - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Super Eagle - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Pixelate - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - AdvanceMAME Scale 2x - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Simple Smoothing - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Bilinear - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Bilinear Plus - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Scanlines - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - High Quality 2x - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - Low Quality 2x - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - 3 - YES - YES - 1 - - - - - 256 - {{48, 129}, {114, 17}} - - YES - - 67239424 - 71303168 - Washed Colors: - - - - - - - - - 256 - {{616, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - - - - -2038284033 - 1 - - - - 200 - 25 - - - - - 256 - {{532, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - Cancel - - - -2038284033 - 1 - - - - - - - - 200 - 25 - - - - - 256 - {{426, 12}, {86, 32}} - - YES - - 67239424 - 137887744 - Default - - - -2038284033 - 1 - - - - - - - - 200 - 25 - - - - - 256 - - YES - - - 256 - - YES - - - 256 - {{33, 8}, {251, 14}} - - YES - - 67239424 - 138412032 - Changes Take Effect On Next Rom Launched - - - - - - - - {{2, 2}, {317, 26}} - - - - {{17, 56}, {321, 30}} - - - - 67239424 - 0 - Box - - - - 3 - MCAwLjgwMDAwMDAxAA - - - - 3 - 0 - 0 - NO - - - {{1, 9}, {714, 439}} - - {{0, 0}, {2560, 1578}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - 15 - 2 - {{705, 577}, {313, 240}} - 1886912512 - Add Cheats... - - - View - - - - 256 - - YES - - - 256 - {{20, 200}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 172}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 144}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{215, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - - - - -2038284033 - 1 - - - - - - - - 200 - 25 - - - - - 256 - {{20, 116}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 88}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 60}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - {{1, 9}, {313, 240}} - - {{0, 0}, {2560, 1578}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - 15 - 2 - {{705, 577}, {313, 240}} - 1886912512 - - - - View - - - - 256 - - YES - - - 256 - {{20, 200}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 172}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 144}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{215, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - - - - -2038284033 - 1 - - - - - - - - 200 - 25 - - - - - 256 - {{20, 116}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 88}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - - 256 - {{20, 60}, {273, 20}} - - YES - - -1804468671 - 4195328 - - - - YES - 1 - - - - - - {{1, 9}, {313, 240}} - - {{0, 0}, {2560, 1578}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - CheatClass - - - MenuClass - - - 1 - 2 - {{665, 560}, {334, 305}} - 1886912512 - Configure Keys - - - View - - - - 256 - - YES - - - 256 - {{14, 216}, {84, 30}} - - YES - - 67239424 - 134217728 - Up - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{14, 184}, {84, 30}} - - YES - - 67239424 - 134217728 - Down - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{14, 152}, {84, 30}} - - YES - - 67239424 - 134217728 - Left - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{14, 120}, {84, 30}} - - YES - - 67239424 - 134217728 - Right - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{14, 88}, {84, 30}} - - YES - - 67239424 - 134217728 - A - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{14, 56}, {84, 30}} - - YES - - 67239424 - 134217728 - B - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{164, 88}, {84, 30}} - - YES - - 67239424 - 134217728 - Speed - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{164, 120}, {84, 30}} - - YES - - 67239424 - 134217728 - Select - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{164, 56}, {84, 30}} - - YES - - 67239424 - 134217728 - Capture - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{164, 216}, {84, 30}} - - YES - - 67239424 - 134217728 - L - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{164, 184}, {84, 30}} - - YES - - 67239424 - 134217728 - R - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{164, 152}, {84, 30}} - - YES - - 67239424 - 134217728 - Start - - - -2038284033 - 2 - - - - - - 200 - 25 - - - - - 256 - {{107, 223}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{107, 191}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{107, 159}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{107, 127}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{107, 95}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{107, 63}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{152, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - - - - -2038284033 - 1 - - - - - - - - 200 - 25 - - - - - 256 - {{236, 12}, {84, 32}} - - YES - - 67239424 - 137887744 - - - - -2038284033 - 1 - - - - - - - - 200 - 25 - - - - - 256 - {{94, 260}, {149, 29}} - - YES - - 67239424 - 134217728 - Calibrate Joystick - - - -2038038273 - 2 - - - 1.300000e+01 - 16 - - - - - - 200 - 25 - - - - - 256 - {{10, 12}, {86, 32}} - - YES - - 67239424 - 134217728 - - - - -2038284033 - 1 - - - - - - 200 - 25 - - - - - 256 - {{257, 95}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{257, 63}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{257, 127}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{257, 223}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{257, 191}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - - 256 - {{257, 159}, {46, 19}} - - YES - - 71433728 - 138412032 - - - - YES - - - - - - {{1, 9}, {334, 305}} - - {{0, 0}, {2560, 1578}} - {213, 129} - {3.40282e+38, 3.40282e+38} - - - ConfigClass - - - - - YES - - - hideOtherApplications: - - - - 146 - - - - hide: - - - - 152 - - - - unhideAllApplications: - - - - 153 - - - - delegate - - - - 195 - - - - performMiniaturize: - - - - 288 - - - - makeKeyAndOrderFront: - - - - 298 - - - - orderOut: - - - - 300 - - - - quit: - - - - 331 - - - - openPrefs: - - - - 473 - - - - openRomFromMenu: - - - - 591 - - - - - - - - 600 - - - - - - - - 601 - - - - useBios - - - - 1001 - - - - soundOn - - - - 1003 - - - - soundQuality - - - - 1004 - - - - soundEcho - - - - 1005 - - - - soundLowPass - - - - 1006 - - - - soundReverseStereo - - - - 1007 - - - - videoSize - - - - 1080 - - - - videoFilter - - - - 1081 - - - - autoFrameSkip - - - - 1082 - - - - biosFilePath - - - - 1083 - - - - flashSize - - - - 1084 - - - - gbaFrameSkip - - - - 1085 - - - - gbFrameSkip - - - - 1086 - - - - prefsWindow - - - - 1087 - - - - removeIntros - - - - 1088 - - - - showSpeed - - - - 1089 - - - - videoBorder - - - - 1090 - - - - videoFullscreen - - - - 1091 - - - - videoWashedColors - - - - 1092 - - - - closePrefs: - - - - 1094 - - - - closePrefsNull: - - - - 1096 - - - - selectBiosFile: - - - - 1097 - - - - throttle - - - - 1104 - - - - changeFileType - - - - 1176 - - - - paste: - - - - 1250 - - - - delete: - - - - 1251 - - - - cut: - - - - 1252 - - - - copy: - - - - 1253 - - - - selectAll: - - - - 1258 - - - - readCheatCBA: - - - - 1272 - - - - readCheatGSA: - - - - 1273 - - - - cheatWindow - - - - 1274 - - - - cheatWindowGSA - - - - 1275 - - - - cheatField - - - - 1279 - - - - cheatField2 - - - - 1280 - - - - cheatField3 - - - - 1281 - - - - cheatField4 - - - - 1282 - - - - cheatField5 - - - - 1283 - - - - cheatField6 - - - - 1284 - - - - cheatFieldGSA - - - - 1285 - - - - cheatFieldGSA2 - - - - 1286 - - - - cheatFieldGSA3 - - - - 1287 - - - - cheatFieldGSA4 - - - - 1288 - - - - cheatFieldGSA5 - - - - 1289 - - - - cheatFieldGSA6 - - - - 1290 - - - - closeRom: - - - - 1295 - - - - openHomepage: - - - - 1306 - - - - defaultPrefs: - - - - 1308 - - - - upField - - - - 1344 - - - - downField - - - - 1345 - - - - leftField - - - - 1346 - - - - rightField - - - - 1347 - - - - aField - - - - 1348 - - - - bField - - - - 1349 - - - - configWindow - - - - 1356 - - - - calibrate: - - - - 1359 - - - - pollUp: - - - - 1360 - - - - pollDown: - - - - 1361 - - - - pollLeft: - - - - 1362 - - - - pollRight: - - - - 1363 - - - - pollA: - - - - 1364 - - - - pollB: - - - - 1365 - - - - pollL: - - - - 1366 - - - - pollR: - - - - 1367 - - - - pollStart: - - - - 1368 - - - - pollSelect: - - - - 1369 - - - - pollSpeed: - - - - 1370 - - - - pollCapture: - - - - 1371 - - - - - - - - 1372 - - - - endConfig: - - - - 1374 - - - - nextKeyView - - - - 1394 - - - - - - - - 1395 - - - - - - - - 1396 - - - - - - - - 1397 - - - - - - - - 1398 - - - - - - - - 1399 - - - - - - - - 1400 - - - - - - - - 1401 - - - - - - - - 1402 - - - - - - - - 1403 - - - - interframe - - - - 1435 - - - - realtimeClock - - - - 1436 - - - - pauseWhenInactive - - - - 1437 - - - - skipBios - - - - 1438 - - - - donate: - - - - 1449 - - - - defaultKeys: - - - - 1452 - - - - calibrateButton - - - - 1459 - - - - captureField - - - - 1460 - - - - speedField - - - - 1461 - - - - selectField - - - - 1462 - - - - lField - - - - 1463 - - - - rField - - - - 1464 - - - - startField - - - - 1465 - - - - CancelButton - - - - 1469 - - - - OKButton - - - - 1470 - - - - defaultButton - - - - 1473 - - - - pauseEmulation: - - - - 200603 - - - - resetEmulation: - - - - 200604 - - - - advanceFrame: - - - - 200605 - - - - freezeState: - - - - 200608 - - - - defrostState: - - - - 200610 - - - - openCheatCBA: - - - - 200613 - - - - openCheatGSA: - - - - 200615 - - - - beginConfig: - - - - 200618 - - - - - YES - - 0 - - YES - - - - - - -2 - - - RmlsZSdzIE93bmVyA - - - -1 - - - First Responder - - - 29 - - - YES - - - - - - - - MainMenu - - - 56 - - - YES - - - - - - 57 - - - YES - - - - - - - - - - - - - - - - - 58 - - - - - 134 - - - - - 136 - - - - - 145 - - - - - 149 - - - - - 150 - - - - - 196 - - - - - 471 - - - - - 472 - - - - - 1304 - - - - - 1305 - - - - - 1448 - - - - - 284 - - - YES - - - - - - 285 - - - YES - - - - - - 283 - - - - - 317 - - - YES - - - - - - 323 - - - YES - - - - - - - 590 - - - - - 602 - - - - - 1224 - - - YES - - - - - - 1226 - - - YES - - - - - - - - - - 1231 - - - - - 1233 - - - - - 1242 - - - - - 1243 - - - - - 1248 - - - - - 194 - - - - - - 253 - - - Font Manager - - - 292 - - - YES - - - - - - - 293 - - - YES - - - - - - - - - - 294 - - - YES - - - - - - 295 - - - YES - - - - - - 525 - - - YES - - - - - - 526 - - - YES - - - - - - 594 - - - YES - - - - - - 595 - - - YES - - - - - - - 596 - - - YES - - - - - - - 597 - - - YES - - - - - - - - 598 - - - - - 599 - - - YES - - - - - - 604 - - - YES - - - - - - - 605 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 790 - - - YES - - - - - - - - - - - - - - - - 793 - - - YES - - - - - - 800 - - - YES - - - - - - 801 - - - YES - - - - - - 805 - - - YES - - - - - - 806 - - - YES - - - - - - 807 - - - YES - - - - - - 808 - - - YES - - - - - - 809 - - - YES - - - - - - 815 - - - YES - - - - - - 819 - - - YES - - - - - - 821 - - - YES - - - - - - 822 - - - YES - - - - - - 823 - - - YES - - - - - - 830 - - - YES - - - - - - 831 - - - YES - - - - - - 869 - - - YES - - - - - - 871 - - - YES - - - - - - 872 - - - YES - - - - - 876 - - - YES - - - - - - 877 - - - YES - - - - - - 879 - - - YES - - - - - - 881 - - - YES - - - - - - 882 - - - YES - - - - - - 887 - - - YES - - - - - - 891 - - - YES - - - - - - 894 - - - YES - - - - - - 1044 - - - YES - - - - - - - 1047 - - - YES - - - - - - 1050 - - - YES - - - - - - 1052 - - - YES - - - - - - 1056 - - - YES - - - - - - 1057 - - - YES - - - - - - 1062 - - - YES - - - - - - 1071 - - - YES - - - - - - 1076 - - - YES - - - - - - 1077 - - - YES - - - - - - 1078 - - - YES - - - - - - 1093 - - - YES - - - - - - 1095 - - - YES - - - - - - 1307 - - - YES - - - - - - 1446 - - - YES - - - - - - 1184 - - - YES - - - - CheatCBA - - - 1185 - - - YES - - - - - - - - - - - - 1186 - - - YES - - - - - - 1188 - - - YES - - - - - - 1189 - - - YES - - - - - - 1191 - - - YES - - - - - - 1197 - - - YES - - - - - - 1198 - - - YES - - - - - - 1199 - - - YES - - - - - - 1210 - - - YES - - - - CheatGSA - - - 1209 - - - YES - - - - - - - - - - - - 1204 - - - YES - - - - - - 1205 - - - YES - - - - - - 1206 - - - YES - - - - - - 1207 - - - YES - - - - - - 1208 - - - YES - - - - - - 1211 - - - YES - - - - - - 1212 - - - YES - - - - - - 1268 - - - - - - 1294 - - - - - - 1330 - - - YES - - - - Configure - - - 1312 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1309 - - - YES - - - - - - 1310 - - - YES - - - - - - 1311 - - - YES - - - - - - 1315 - - - YES - - - - - - 1316 - - - YES - - - - - - 1317 - - - YES - - - - - - 1318 - - - YES - - - - - - 1320 - - - YES - - - - - - 1321 - - - YES - - - - - - 1323 - - - YES - - - - - - 1324 - - - YES - - - - - - 1325 - - - YES - - - - - - 1326 - - - YES - - - - - - 1327 - - - YES - - - - - - 1329 - - - YES - - - - - - 1331 - - - YES - - - - - - 1332 - - - YES - - - - - - 1333 - - - YES - - - - - - 1334 - - - YES - - - - - - 1335 - - - YES - - - - - - 1337 - - - YES - - - - - - 1451 - - - YES - - - - - - 1453 - - - YES - - - - - - 1454 - - - YES - - - - - - 1455 - - - YES - - - - - - 1456 - - - YES - - - - - - 1457 - - - YES - - - - - - 1458 - - - YES - - - - - - 1343 - - - - - - 100294 - - - - - 100295 - - - - - 100525 - - - - - 100526 - - - - - 100594 - - - - - 100599 - - - - - 100793 - - - - - 100800 - - - YES - - - - - - 100801 - - - YES - - - - - - 100805 - - - - - 100806 - - - - - 100807 - - - - - 100808 - - - YES - - - - - - 100809 - - - - - 100815 - - - - - 100819 - - - YES - - - - - - 100821 - - - YES - - - - - - 100822 - - - YES - - - - - - 100823 - - - - - 100830 - - - YES - - - - - - 100831 - - - - - 100869 - - - - - 100871 - - - - - 100876 - - - YES - - - - - - 100877 - - - - - 100879 - - - - - 100881 - - - YES - - - - - - 100882 - - - YES - - - - - - 100887 - - - YES - - - - - - 100891 - - - - - 100894 - - - YES - - - - - - 101047 - - - YES - - - - - - 101050 - - - YES - - - - - - 101052 - - - YES - - - - - - 101056 - - - - - 101057 - - - YES - - - - - - 101062 - - - - - 101071 - - - - - 101076 - - - - - 101077 - - - YES - - - - - - 101078 - - - - - 101093 - - - - - 101095 - - - - - 101307 - - - - - 101186 - - - - - 101188 - - - - - 101189 - - - - - 101191 - - - - - 101197 - - - - - 101198 - - - - - 101199 - - - - - 101204 - - - - - 101205 - - - - - 101206 - - - - - 101207 - - - - - 101208 - - - - - 101211 - - - - - 101212 - - - - - 101309 - - - - - 101310 - - - - - 101311 - - - - - 101315 - - - - - 101316 - - - - - 101317 - - - - - 101318 - - - - - 101320 - - - - - 101321 - - - - - 101323 - - - - - 101324 - - - - - 101325 - - - - - 101326 - - - - - 101327 - - - - - 101329 - - - - - 101331 - - - - - 101332 - - - - - 101333 - - - - - 101334 - - - - - 101335 - - - - - 101337 - - - - - 101451 - - - - - 101453 - - - - - 101454 - - - - - 101455 - - - - - 101456 - - - - - 101457 - - - - - 101458 - - - - - 803 - - - YES - - - - - - - 818 - - - - - 811 - - - - - 797 - - - YES - - - - - - - - - - - 833 - - - - - 832 - - - - - 829 - - - - - 804 - - - - - 794 - - - - - 788 - - - - - 810 - - - YES - - - - - - - 827 - - - - - 825 - - - - - 802 - - - YES - - - - - - - - - - - 828 - - - - - 824 - - - - - 820 - - - - - 817 - - - - - 812 - - - - - 796 - - - - - 795 - - - YES - - - - - - - 816 - - - - - 798 - - - - - 791 - - - YES - - - - - - - 834 - - - - - 814 - - - - - 799 - - - YES - - - - - - - 813 - - - - - 792 - - - - - 870 - - - YES - - - - - - - 884 - - - - - 880 - - - - - 889 - - - YES - - - - - - - 888 - - - - - 868 - - - - - 893 - - - YES - - - - - - - 886 - - - - - 878 - - - - - 873 - - - YES - - - - - - - 875 - - - - - 867 - - - - - 885 - - - YES - - - - - - - - 892 - - - - - 890 - - - - - 874 - - - - - 1048 - - - YES - - - - - - - - - 1474 - - - - - 1067 - - - - - 1065 - - - - - 1055 - - - - - 1063 - - - YES - - - - - - - - 1411 - - - - - 1079 - - - - - 1073 - - - - - 1064 - - - YES - - - - - - - 1075 - - - - - 1069 - - - - - 1049 - - - YES - - - - - - - 1072 - - - - - 1054 - - - - - 1070 - - - YES - - - - - - - - - - - - - - - - - - - 1467 - - - - - 1466 - - - - - 1428 - - - - - 1427 - - - - - 1074 - - - - - 1068 - - - - - 1066 - - - - - 1061 - - - - - 1060 - - - - - 1059 - - - - - 1058 - - - - - 1053 - - - - - 1051 - - - - - 1046 - - - - - 100597 - - - - - 200597 - - - - - -3 - - - Application - - - 1002 - - - YES - - - - - - 101002 - - - - - 1098 - - - YES - - - - - - 101098 - - - YES - - - - - - 1099 - - - YES - - - - - - - 1100 - - - - - 1102 - - - - - 1103 - - - YES - - - - - - 101103 - - - - - 1171 - - - YES - - - - - - 101171 - - - YES - - - - - - 1173 - - - YES - - - - - - - 1172 - - - - - 1174 - - - - - 1175 - - - YES - - - - - - 101175 - - - - - 1407 - - - YES - - - - - - 101407 - - - YES - - - - - - 1405 - - - YES - - - - - - - 1408 - - - - - 1409 - - - - - 1410 - - - YES - - - - - - 101410 - - - - - 1418 - - - YES - - - - - - 101418 - - - YES - - - - - - 1417 - - - YES - - - - - - - 1419 - - - - - 1420 - - - - - 1421 - - - YES - - - - - - 101421 - - - - - 1424 - - - YES - - - - - - 101424 - - - YES - - - - - - 1423 - - - YES - - - - - - - 1422 - - - - - 1425 - - - - - 1426 - - - YES - - - - - - 101426 - - - - - 1431 - - - YES - - - - - - 101431 - - - YES - - - - - - 1432 - - - YES - - - - - - - - 1429 - - - - - 1430 - - - - - 1434 - - - - - 1433 - - - YES - - - - - - 101433 - - - - - 1447 - - - YES - - - - - - 101447 - - - - - 200598 - - - YES - - - - - - 200599 - - - YES - - - - - - - - - - - - - - - - - - 200600 - - - - - 200601 - - - - - 200602 - - - - - 200606 - - - - - 200607 - - - - - 200609 - - - - - 200611 - - - - - 200612 - - - - - 200614 - - - - - 200616 - - - - - 200617 - - - - - 200619 - - - - - 200620 - - - - - - - YES - - YES - -1.IBPluginDependency - -2.IBPluginDependency - 1002.IBPluginDependency - 1002.ImportedFromIB2 - 100597.IBShouldRemoveOnLegacySave - 1044.IBPluginDependency - 1044.ImportedFromIB2 - 1046.IBPluginDependency - 1046.ImportedFromIB2 - 1047.IBPluginDependency - 1047.ImportedFromIB2 - 1048.IBPluginDependency - 1048.ImportedFromIB2 - 1049.IBPluginDependency - 1049.ImportedFromIB2 - 1050.IBPluginDependency - 1050.ImportedFromIB2 - 1051.IBPluginDependency - 1051.ImportedFromIB2 - 1052.IBPluginDependency - 1052.ImportedFromIB2 - 1053.IBPluginDependency - 1053.ImportedFromIB2 - 1054.IBPluginDependency - 1054.ImportedFromIB2 - 1055.IBPluginDependency - 1055.ImportedFromIB2 - 1056.IBPluginDependency - 1056.ImportedFromIB2 - 1057.IBPluginDependency - 1057.ImportedFromIB2 - 1058.IBPluginDependency - 1058.ImportedFromIB2 - 1059.IBPluginDependency - 1059.ImportedFromIB2 - 1060.IBPluginDependency - 1060.ImportedFromIB2 - 1061.IBPluginDependency - 1061.ImportedFromIB2 - 1062.IBPluginDependency - 1062.ImportedFromIB2 - 1063.IBPluginDependency - 1063.ImportedFromIB2 - 1064.IBPluginDependency - 1064.ImportedFromIB2 - 1065.IBPluginDependency - 1065.ImportedFromIB2 - 1066.IBPluginDependency - 1066.ImportedFromIB2 - 1067.IBPluginDependency - 1067.ImportedFromIB2 - 1068.IBPluginDependency - 1068.ImportedFromIB2 - 1069.IBPluginDependency - 1069.ImportedFromIB2 - 1070.IBPluginDependency - 1070.ImportedFromIB2 - 1071.IBPluginDependency - 1071.ImportedFromIB2 - 1072.IBPluginDependency - 1072.ImportedFromIB2 - 1073.IBPluginDependency - 1073.ImportedFromIB2 - 1074.IBPluginDependency - 1074.ImportedFromIB2 - 1075.IBPluginDependency - 1075.ImportedFromIB2 - 1076.IBPluginDependency - 1076.ImportedFromIB2 - 1077.IBPluginDependency - 1077.ImportedFromIB2 - 1078.IBPluginDependency - 1078.ImportedFromIB2 - 1079.IBPluginDependency - 1079.ImportedFromIB2 - 1093.IBPluginDependency - 1093.ImportedFromIB2 - 1095.IBPluginDependency - 1095.ImportedFromIB2 - 1098.IBPluginDependency - 1098.ImportedFromIB2 - 1099.IBPluginDependency - 1099.ImportedFromIB2 - 1100.IBPluginDependency - 1100.ImportedFromIB2 - 1102.IBPluginDependency - 1102.ImportedFromIB2 - 1103.IBPluginDependency - 1103.ImportedFromIB2 - 1171.IBPluginDependency - 1171.ImportedFromIB2 - 1172.IBPluginDependency - 1172.ImportedFromIB2 - 1173.IBPluginDependency - 1173.ImportedFromIB2 - 1174.IBPluginDependency - 1174.ImportedFromIB2 - 1175.IBPluginDependency - 1175.ImportedFromIB2 - 1184.IBPluginDependency - 1184.ImportedFromIB2 - 1184.windowTemplate.hasMaxSize - 1184.windowTemplate.hasMinSize - 1184.windowTemplate.maxSize - 1184.windowTemplate.minSize - 1185.IBPluginDependency - 1185.ImportedFromIB2 - 1186.IBPluginDependency - 1186.ImportedFromIB2 - 1188.IBPluginDependency - 1188.ImportedFromIB2 - 1189.IBPluginDependency - 1189.ImportedFromIB2 - 1191.IBPluginDependency - 1191.ImportedFromIB2 - 1197.IBPluginDependency - 1197.ImportedFromIB2 - 1198.IBPluginDependency - 1198.ImportedFromIB2 - 1199.IBPluginDependency - 1199.ImportedFromIB2 - 1204.IBPluginDependency - 1204.ImportedFromIB2 - 1205.IBPluginDependency - 1205.ImportedFromIB2 - 1206.IBPluginDependency - 1206.ImportedFromIB2 - 1207.IBPluginDependency - 1207.ImportedFromIB2 - 1208.IBPluginDependency - 1208.ImportedFromIB2 - 1209.IBPluginDependency - 1209.ImportedFromIB2 - 1210.IBPluginDependency - 1210.ImportedFromIB2 - 1210.windowTemplate.hasMaxSize - 1210.windowTemplate.hasMinSize - 1210.windowTemplate.maxSize - 1210.windowTemplate.minSize - 1211.IBPluginDependency - 1211.ImportedFromIB2 - 1212.IBPluginDependency - 1212.ImportedFromIB2 - 1224.IBPluginDependency - 1224.ImportedFromIB2 - 1226.IBPluginDependency - 1226.ImportedFromIB2 - 1226.editorWindowContentRectSynchronizationRect - 1231.IBPluginDependency - 1231.ImportedFromIB2 - 1233.IBPluginDependency - 1233.ImportedFromIB2 - 1242.IBPluginDependency - 1242.ImportedFromIB2 - 1243.IBPluginDependency - 1243.ImportedFromIB2 - 1248.IBPluginDependency - 1248.ImportedFromIB2 - 1268.IBPluginDependency - 1268.ImportedFromIB2 - 1294.IBPluginDependency - 1294.ImportedFromIB2 - 1304.IBPluginDependency - 1304.ImportedFromIB2 - 1305.IBPluginDependency - 1305.ImportedFromIB2 - 1307.IBPluginDependency - 1307.ImportedFromIB2 - 1309.IBPluginDependency - 1309.ImportedFromIB2 - 1310.IBPluginDependency - 1310.ImportedFromIB2 - 1311.IBPluginDependency - 1311.ImportedFromIB2 - 1312.IBPluginDependency - 1312.ImportedFromIB2 - 1315.IBPluginDependency - 1315.ImportedFromIB2 - 1316.IBPluginDependency - 1316.ImportedFromIB2 - 1317.IBPluginDependency - 1317.ImportedFromIB2 - 1318.IBPluginDependency - 1318.ImportedFromIB2 - 1320.IBPluginDependency - 1320.ImportedFromIB2 - 1321.IBPluginDependency - 1321.ImportedFromIB2 - 1323.IBPluginDependency - 1323.ImportedFromIB2 - 1324.IBPluginDependency - 1324.ImportedFromIB2 - 1325.IBPluginDependency - 1325.ImportedFromIB2 - 1326.IBPluginDependency - 1326.ImportedFromIB2 - 1327.IBPluginDependency - 1327.ImportedFromIB2 - 1329.IBPluginDependency - 1329.ImportedFromIB2 - 1330.IBPluginDependency - 1330.ImportedFromIB2 - 1330.windowTemplate.hasMaxSize - 1330.windowTemplate.hasMinSize - 1330.windowTemplate.maxSize - 1330.windowTemplate.minSize - 1331.IBPluginDependency - 1331.ImportedFromIB2 - 1332.IBPluginDependency - 1332.ImportedFromIB2 - 1333.IBPluginDependency - 1333.ImportedFromIB2 - 1334.IBPluginDependency - 1334.ImportedFromIB2 - 1335.IBPluginDependency - 1335.ImportedFromIB2 - 1337.IBPluginDependency - 1337.ImportedFromIB2 - 134.IBPluginDependency - 134.ImportedFromIB2 - 1343.IBPluginDependency - 1343.ImportedFromIB2 - 136.IBPluginDependency - 136.ImportedFromIB2 - 1405.IBPluginDependency - 1405.ImportedFromIB2 - 1407.IBPluginDependency - 1407.ImportedFromIB2 - 1408.IBPluginDependency - 1408.ImportedFromIB2 - 1409.IBPluginDependency - 1409.ImportedFromIB2 - 1410.IBPluginDependency - 1410.ImportedFromIB2 - 1411.IBPluginDependency - 1411.ImportedFromIB2 - 1417.IBPluginDependency - 1417.ImportedFromIB2 - 1418.IBPluginDependency - 1418.ImportedFromIB2 - 1419.IBPluginDependency - 1419.ImportedFromIB2 - 1420.IBPluginDependency - 1420.ImportedFromIB2 - 1421.IBPluginDependency - 1421.ImportedFromIB2 - 1422.IBPluginDependency - 1422.ImportedFromIB2 - 1423.IBPluginDependency - 1423.ImportedFromIB2 - 1424.IBPluginDependency - 1424.ImportedFromIB2 - 1425.IBPluginDependency - 1425.ImportedFromIB2 - 1426.IBPluginDependency - 1426.ImportedFromIB2 - 1427.IBPluginDependency - 1427.ImportedFromIB2 - 1428.IBPluginDependency - 1428.ImportedFromIB2 - 1429.IBPluginDependency - 1429.ImportedFromIB2 - 1430.IBPluginDependency - 1430.ImportedFromIB2 - 1431.IBPluginDependency - 1431.ImportedFromIB2 - 1432.IBPluginDependency - 1432.ImportedFromIB2 - 1433.IBPluginDependency - 1433.ImportedFromIB2 - 1434.IBPluginDependency - 1434.ImportedFromIB2 - 1446.IBPluginDependency - 1446.ImportedFromIB2 - 1447.IBPluginDependency - 1447.ImportedFromIB2 - 1448.IBPluginDependency - 1448.ImportedFromIB2 - 145.IBPluginDependency - 145.ImportedFromIB2 - 1451.IBPluginDependency - 1451.ImportedFromIB2 - 1453.IBPluginDependency - 1453.ImportedFromIB2 - 1454.IBPluginDependency - 1454.ImportedFromIB2 - 1455.IBPluginDependency - 1455.ImportedFromIB2 - 1456.IBPluginDependency - 1456.ImportedFromIB2 - 1457.IBPluginDependency - 1457.ImportedFromIB2 - 1458.IBPluginDependency - 1458.ImportedFromIB2 - 1466.IBPluginDependency - 1466.ImportedFromIB2 - 1467.IBPluginDependency - 1467.ImportedFromIB2 - 1474.IBPluginDependency - 1474.ImportedFromIB2 - 149.IBPluginDependency - 149.ImportedFromIB2 - 150.IBPluginDependency - 150.ImportedFromIB2 - 194.IBPluginDependency - 194.ImportedFromIB2 - 196.IBPluginDependency - 196.ImportedFromIB2 - 200597.IBShouldRemoveOnLegacySave - 200598.IBPluginDependency - 200599.IBPluginDependency - 200599.editorWindowContentRectSynchronizationRect - 200600.IBPluginDependency - 200601.IBPluginDependency - 200601.ImportedFromIB2 - 200602.IBPluginDependency - 200602.ImportedFromIB2 - 200606.IBPluginDependency - 200607.IBPluginDependency - 200607.ImportedFromIB2 - 200609.IBPluginDependency - 200609.ImportedFromIB2 - 200611.IBPluginDependency - 200612.IBPluginDependency - 200612.ImportedFromIB2 - 200614.IBPluginDependency - 200614.ImportedFromIB2 - 200616.IBPluginDependency - 200617.IBPluginDependency - 200617.ImportedFromIB2 - 200619.IBPluginDependency - 200620.IBPluginDependency - 253.IBPluginDependency - 253.ImportedFromIB2 - 283.IBPluginDependency - 283.ImportedFromIB2 - 284.IBPluginDependency - 284.ImportedFromIB2 - 285.IBPluginDependency - 285.ImportedFromIB2 - 285.editorWindowContentRectSynchronizationRect - 29.IBPluginDependency - 29.ImportedFromIB2 - 29.editorWindowContentRectSynchronizationRect - 292.IBPluginDependency - 292.ImportedFromIB2 - 292.windowTemplate.hasMaxSize - 292.windowTemplate.hasMinSize - 292.windowTemplate.maxSize - 292.windowTemplate.minSize - 293.IBPluginDependency - 293.ImportedFromIB2 - 294.IBPluginDependency - 294.ImportedFromIB2 - 295.IBPluginDependency - 295.ImportedFromIB2 - 317.IBPluginDependency - 317.ImportedFromIB2 - 323.IBPluginDependency - 323.ImportedFromIB2 - 323.editorWindowContentRectSynchronizationRect - 471.IBPluginDependency - 471.ImportedFromIB2 - 472.IBPluginDependency - 472.ImportedFromIB2 - 525.IBPluginDependency - 525.ImportedFromIB2 - 526.IBPluginDependency - 526.ImportedFromIB2 - 56.IBPluginDependency - 56.ImportedFromIB2 - 57.IBPluginDependency - 57.ImportedFromIB2 - 57.editorWindowContentRectSynchronizationRect - 58.IBPluginDependency - 58.ImportedFromIB2 - 590.IBPluginDependency - 590.ImportedFromIB2 - 594.IBPluginDependency - 594.ImportedFromIB2 - 595.IBPluginDependency - 595.ImportedFromIB2 - 595.windowTemplate.hasMaxSize - 595.windowTemplate.hasMinSize - 595.windowTemplate.maxSize - 595.windowTemplate.minSize - 596.IBPluginDependency - 596.ImportedFromIB2 - 597.IBPluginDependency - 597.ImportedFromIB2 - 598.IBPluginDependency - 598.ImportedFromIB2 - 599.IBPluginDependency - 599.ImportedFromIB2 - 602.IBPluginDependency - 602.ImportedFromIB2 - 604.IBPluginDependency - 604.ImportedFromIB2 - 604.windowTemplate.hasMaxSize - 604.windowTemplate.hasMinSize - 604.windowTemplate.maxSize - 604.windowTemplate.minSize - 605.IBPluginDependency - 605.ImportedFromIB2 - 788.IBPluginDependency - 788.ImportedFromIB2 - 790.IBPluginDependency - 790.ImportedFromIB2 - 791.IBPluginDependency - 791.ImportedFromIB2 - 792.IBPluginDependency - 792.ImportedFromIB2 - 793.IBPluginDependency - 793.ImportedFromIB2 - 794.IBPluginDependency - 794.ImportedFromIB2 - 795.IBPluginDependency - 795.ImportedFromIB2 - 796.IBPluginDependency - 796.ImportedFromIB2 - 797.IBPluginDependency - 797.ImportedFromIB2 - 798.IBPluginDependency - 798.ImportedFromIB2 - 799.IBPluginDependency - 799.ImportedFromIB2 - 800.IBPluginDependency - 800.ImportedFromIB2 - 801.IBPluginDependency - 801.ImportedFromIB2 - 802.IBPluginDependency - 802.ImportedFromIB2 - 803.IBPluginDependency - 803.ImportedFromIB2 - 804.IBPluginDependency - 804.ImportedFromIB2 - 805.IBPluginDependency - 805.ImportedFromIB2 - 806.IBPluginDependency - 806.ImportedFromIB2 - 807.IBPluginDependency - 807.ImportedFromIB2 - 808.IBPluginDependency - 808.ImportedFromIB2 - 809.IBPluginDependency - 809.ImportedFromIB2 - 810.IBPluginDependency - 810.ImportedFromIB2 - 811.IBPluginDependency - 811.ImportedFromIB2 - 812.IBPluginDependency - 812.ImportedFromIB2 - 813.IBPluginDependency - 813.ImportedFromIB2 - 814.IBPluginDependency - 814.ImportedFromIB2 - 815.IBPluginDependency - 815.ImportedFromIB2 - 816.IBPluginDependency - 816.ImportedFromIB2 - 817.IBPluginDependency - 817.ImportedFromIB2 - 818.IBPluginDependency - 818.ImportedFromIB2 - 819.IBPluginDependency - 819.ImportedFromIB2 - 820.IBPluginDependency - 820.ImportedFromIB2 - 821.IBPluginDependency - 821.ImportedFromIB2 - 822.IBPluginDependency - 822.ImportedFromIB2 - 823.IBPluginDependency - 823.ImportedFromIB2 - 824.IBPluginDependency - 824.ImportedFromIB2 - 825.IBPluginDependency - 825.ImportedFromIB2 - 827.IBPluginDependency - 827.ImportedFromIB2 - 828.IBPluginDependency - 828.ImportedFromIB2 - 829.IBPluginDependency - 829.ImportedFromIB2 - 830.IBPluginDependency - 830.ImportedFromIB2 - 831.IBPluginDependency - 831.ImportedFromIB2 - 832.IBPluginDependency - 832.ImportedFromIB2 - 833.IBPluginDependency - 833.ImportedFromIB2 - 834.IBPluginDependency - 834.ImportedFromIB2 - 867.IBPluginDependency - 867.ImportedFromIB2 - 868.IBPluginDependency - 868.ImportedFromIB2 - 869.IBPluginDependency - 869.ImportedFromIB2 - 870.IBPluginDependency - 870.ImportedFromIB2 - 871.IBPluginDependency - 871.ImportedFromIB2 - 872.IBPluginDependency - 872.ImportedFromIB2 - 873.IBPluginDependency - 873.ImportedFromIB2 - 874.IBPluginDependency - 874.ImportedFromIB2 - 875.IBPluginDependency - 875.ImportedFromIB2 - 876.IBPluginDependency - 876.ImportedFromIB2 - 877.IBPluginDependency - 877.ImportedFromIB2 - 878.IBPluginDependency - 878.ImportedFromIB2 - 879.IBPluginDependency - 879.ImportedFromIB2 - 880.IBPluginDependency - 880.ImportedFromIB2 - 881.IBPluginDependency - 881.ImportedFromIB2 - 882.IBPluginDependency - 882.ImportedFromIB2 - 884.IBPluginDependency - 884.ImportedFromIB2 - 885.IBPluginDependency - 885.ImportedFromIB2 - 886.IBPluginDependency - 886.ImportedFromIB2 - 887.IBPluginDependency - 887.ImportedFromIB2 - 888.IBPluginDependency - 888.ImportedFromIB2 - 889.IBPluginDependency - 889.ImportedFromIB2 - 890.IBPluginDependency - 890.ImportedFromIB2 - 891.IBPluginDependency - 891.ImportedFromIB2 - 892.IBPluginDependency - 892.ImportedFromIB2 - 893.IBPluginDependency - 893.ImportedFromIB2 - 894.IBPluginDependency - 894.ImportedFromIB2 - - - YES - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {3.40282e+38, 3.40282e+38} - {213, 107} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{871, 790}, {140, 103}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{915, 670}, {318, 223}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {{984, 870}, {143, 23}} - - - {{663, 893}, {430, 20}} - - - - - - - - - - - - - - - - - {{829, 850}, {165, 43}} - - - - - - - - - - - - - {{675, 690}, {258, 203}} - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - YES - - YES - - - YES - - - - - YES - - YES - - - YES - - - - 200620 - - - - YES - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - IBUserSource - - - - - - NSObject - - YES - - YES - - - - - YES - id - - - - - YES - - YES - - - YES - - - - - - - - - MenuClass - - - YES - - YES - advanceFrame: - closeRom: - pauseEmulation: - resetEmulation: - toggleFullscreen: - - - YES - id - - - - - - - - YES - - YES - - - YES - - - - IBProjectSource - ../src/macosx/MainClass.h - - - - - - - YES - - YES - - - - - YES - - - - - - YES - - YES - - - YES - - - - - - - - - ConfigClass - - - YES - - YES - beginConfig: - calibrate: - endConfig: - pollA: - pollB: - pollCapture: - pollDown: - pollL: - pollLeft: - pollR: - pollRight: - pollSelect: - pollSpeed: - pollStart: - pollUp: - - - YES - - - - - - - - - - - - - - - - - - - YES - - YES - CancelButton - OKButton - aField - bField - calibrateButton - captureField - configWindow - defaultButton - downField - lField - leftField - noteWindow - rField - rightField - selectField - speedField - startField - upField - - - YES - NSButton - - NSTextField - - - - - - - - - - - - - - - - - - - - ../src/macosx/MainClass.h - - - - CheatClass - - - YES - - YES - openCheatCBA: - openCheatGSA: - readCheatCBA: - readCheatGSA: - - - YES - - - - - - - - YES - - YES - cheatField - cheatField2 - cheatField3 - cheatField4 - cheatField5 - cheatField6 - cheatFieldGSA - cheatFieldGSA2 - cheatFieldGSA3 - cheatFieldGSA4 - cheatFieldGSA5 - cheatFieldGSA6 - cheatMenu - cheatMenuCBA - cheatMenuGSA - cheatWindow - cheatWindowGSA - - - YES - - - - - - - - - - - - - NSMenu - NSMenuItem - - - - - - - - ../src/macosx/MainClass.h - - - - - - - YES - - YES - - - YES - - - - YES - - YES - - - YES - - - - - - - - - - - - YES - - YES - - - - - - - - YES - - - - - - - - - YES - - YES - - - YES - - - - - - - - - SDLMain - - - YES - - YES - changeCreator: - changeSaveCreator: - changeSgmCreator: - closePrefs: - closePrefsNull: - openPrefs: - openRomFromMenu: - quit: - selectBiosFile: - - - YES - char - char - char - - - - - - - - - - YES - - YES - autoFrameSkip - biosFilePath - changeFileType - flashSize - gbFrameSkip - gbaFrameSkip - interframe - pauseWhenInactive - prefsWindow - realtimeClock - removeIntros - showSpeed - skipBios - soundEcho - soundLowPass - soundOn - soundQuality - soundReverseStereo - throttle - useBios - videoBorder - videoFilter - videoFullscreen - videoSize - videoWashedColors - - - YES - NSPopUpButton - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ../src/macosx/MainClass.h - - - - - 0 - ../../VBA-M.xcodeproj - 3 - - YnBsaXN0MDDUAAEAAgADAAQABQAGAAkAClgkdmVyc2lvblQkdG9wWSRhcmNoaXZlclgkb2JqZWN0cxIA -AYag0QAHAAhdSUIub2JqZWN0ZGF0YYABXxAPTlNLZXllZEFyY2hpdmVyrxEIKwALAAwAMQA1ADkAQABD -AEQASABMAMMAywDOAM8A3QDjAOQA+AD5AQEBAgEFAQ8BEAERARYBGAEcASABJgEnASsBMAE3ATgBQAFH -AUgBUAFRAVYBWQFaAWEBZgFnAYYBiwGNAY8BowGoAakBrgGvAbABswG3AbgBuQG7Ab4BwwHMAbgBzQHR -AdMB2AHcAd0B4gHpAOMB7gH2Af0B/gIGAgsCEgITAiACIQImAikCKgIsAi4CMAIyAjMCNgI7AkICRwJI -AlMCVAJXAlkCXAJdAl4CYwJ6AnsCfAJ9AoACigH9ApECmQKgAqECqQKwArECuQK6ArwCvQK+Ar8CwgLD -AscCzgLSAtMC1ALVAtkC4ALhAuIC4wLoAu8C8AL4AvkC+wL8AwEDCAMJAxMDGAMZAxwDIQMiAyUDJgMr -AywDMQM4AzkDRQNHA0kDUgG4A1YDWANdAbgDZgNnA2wBNwNzA3sDfAOBA4YDhwOMA40DkgOZA5oDogOk -A6YDpwOsA60DsgO5A70DvgO/A8IDwwPEA8kD0APVA9YD1wPcA+MD6QPqA/YD+AP6BAMBuAQHBAkEDgG4 -BBcEGAQdBCQEJQQtBC4EMwQ0BDkEQARBBEkESgRPBFYEVwRYBFkEXgRlBGYEbgRvBHEEcgR3BH4EfwSH -BIgEjQSUBJoEmwSnBKkEsgS2AbgEtwS5BL8EyAG4BMkE0gG4BNME1ATZBOAE4QTuBPAE8gT7AbgE/wUB -BQYBuAUPBRAFFAUbBSAFIQUpBSoFKwUwBTcFOAVEBUYFSAVRAbgFVQVXBVwBuAVlBWYFawVyBXMFdAV1 -BXoFgQWCBYoFiwWQBZcFmAWgBaEFpgWtBa4FugW8Bb4FxwXLAbgFzAXOBdQF3QG4Bd4F5wG4BegF6QXu -AUcF9QX9Bf4GAwYKBgsGFwYZBhsGJAG4BigGKgYvAbgGOAY5Bj4CegZIBkoGVAKgBlsGYwISBmoGcgZ0 -BnYCsAZ9ArkCvAK9Ar4GhQaGBosGkgaTBpQGlQaaBpsGoAalBqwGrQa1BrYGuAa5Br4GxQbGBs4GzwbR -BtIG1wbeBt8G5wbpBusG7AbwBvcG+Ab5BvoG/wcEBwkHEwcUBxUHFwdEB1YHWgdoB28HcAd5B34HgweE -B4sHjAeYB5oHnAelAbgHqQerB7ABuAe5B8AHwQfJB8oH0QfSB94H4AfiB+sBuAfvB/EH9gG4B/8IBggH -CA4IDwgWCBcIHggfCCYIJwgzCDUINwhAAbgIRAhGCEsBuAhUCFsIXAhjCGQIawhsCHgIegh8CIUBuAiJ -CIsIkAG4CJkIoAihCKgIqQiqCKsIrAiyCLMItgi5CMAIwQjICMkI0AjRCN0I3wjhCOoI7gG4CO8I8Qj6 -CQMBuAkECQ0BuAkOCRcBuAkYCSEBuAkiCSsBuAksCTMJNAk7CTwJQwlECUsJTAlTCVQJWwlcCWMJZAlw -CXIJdAl9AbgJgQmDCYgBuAmRCZgJmQmgCaEJqAmpCbAJsQm4CbkJxQnHCckJ0gG4CdYJ2AnhAbgJ6gG4 -CfMBuAn8AbgKBQG4Cg4KFQoWCh0KHgolCiYKMgo0CjYKPwpDAbgKRApGCksKVAG4ClUKXApdCmYKZwpq -CmwKcwp0CnsKfAqDCoQKiwqMCpYKmgqfCqAKoQqnCqgKqgqxCrIKvgrACsIKywG4Cs8K0QrWAbgK3wrm -CucK7grvCvYK9wr+Cv8LBgsHCxMLFQsXCyABuAskCyYLKwG4CzQLOws8C0MLRAtOC1ILVwteC18LZgtn -C2gLaQtvC3ALcgt5C3oLhguIC4oLkwuXAbgLmAuaC6ELqgG4C6sLtAG4C7ULvgG4C78LxgvHC9ML1QvX -C+AL5AG4C+UL5wvtAbgL9gG4C/8MBgwHDBMMFQwXDCABuAwkDCYMKwG4DDQMOww8DEMMRAxLDEwMWAxa -DFwMZQG4DGkMawxwAbgMeQyADIEMiAyJDJAMkQyYDJkMoAyhDKgMqQywDLEMvQy/DMEMygzOAbgMzwzR -DOIM6wG4DOwM9QG4DPYM/wG4DQANCQG4DQoNEwG4DRQBuA0dDSYBuA0nDTABuA0xDToBuA07DUQBuA1F -DU4BuA1PDVgBuA1ZDWIBuA1jDWoNaw1yDXMNeg17DYMNig2LDZMNlA2WDZgNog2mDawNsA23DbgNvw3A -DcENwg3IDckNywK8Ar0Cvg3MDc0N0g3ZDdoN2w3gDecN6A3pDe4N9Q32Df4N/w4BDgIOBw4IDg0OFA4V -Dh0OHw4hDiIOJw4oDi0OLg4zDjQOOQ5DDkQORQ5HDmYObQ5uDnYOdw55DoAOgQ6JDooOjA6TDpQOnA6d -Dp8Opg6nDq8OsA6yDrkOug7CDsMOxQ7MDs0O1Q7WDtgO3w7gDugO6Q7rDvIO8w77DvwO/g8FDwYPDg8V -DxYPHg8lDyYPLg81DzYPPg9FD0YPTg9VD1YPXgK8Ar0Cvg9fD2APZQ9mD2sPbA9wD3cPeA95D34Pfw+E -D4UPig+LD5APkQ+WD5cPmw+iD6MPpA+lD6oPqw+wD7EPtg+9D74Pvw/AD8UPxg/LD8wP0Q/SD9cP2A/d -D94P4w/kD+kP8A/0D/UP9g/3D/sQAhAHEAgQCRAKEA8QEBAVEBwQHRAeECMQKBApEC4QLxA0EDsQPBBG -EEcQSBBKEFIQWRBaEGEQYhBmEHEQehB7EHwQfRB+EH8QgBCBEIsQjxCQEJMQlhCdEJ4QphCnEK4QrxC3 -ELgQugK8Ar0CvhC7ELwQwRDCEMcQyBDNEM4Q0xDYEN8Q4BDhEOIQ5xDoEOwQ8xD4EPkRAREGEQ0RDhEP -ERARFREWERsRHBEhESYRLREuES8RNBE1EToROxFAEUcRSBFJEUoRTxFWEVcRWBFdEV4RYxFkEWkRbhFv -EXQRdRF6EXsRgBGHEYgRiRGOEZgRmRGaEZwRoRGwEbYRyBHMEd0R6xHsEe0R7hHvEfAR8RHyEfsSAxIJ -EgwSFQEEEhYSHBIrEi8SMhI1EjgSOxI+EkESRBJHEkoSTRJQElMSVRJXEloSWxJeEmISZhJoEmoSeQDm -AQYSgRKGEocSjBKNEpcRuAD1EpgSnhKfEqESpBKnEqgSqRKsEq0SrhKxErIStRK/EsASwRLEEs4SzxLQ -EtMCvAK9Ar4S1BLZEtoS3xLgEuUS5hLrEvAS8RL2EvcS/BMDEwQTBRMKEwsUehSFFIgUjRSXFJwUnRSe -FKAUpBSlFIcUnRSuFLcUuhTCADgUxRTOFNcUnRTYFOcU8BTxFPkU+hT7FQsVFBUdFSYVLxS5FJ0VOBVA -FJ0VSRVKABkVTRa8GCwZnBmdGZ4ZnxmgGaEZohmjGaQZpRmmGacZqBmpGaoZqxmsGa0ZrhmvGbAZsRmy -GbMZtBm1GbYZtxm4GbkZuhm7GbwZvRm+Gb8ZwBnBGcIZwxnEGcUZxhnHGcgZyRnKGcsZzBnNGc4ZzxnQ -GdEZ0hnTGdQZ1RnWGdcZ2BnZGdoZ2xncGd0Z3hnfGeAZ4RniGeMZ5BnlGeYZ5xnoGekZ6hnrGewZ7Rnu -Ge8Z8BnxGfIZ8xn0GfUZ9hn3GfgZ+Rn6GfsZ/Bn9Gf4Z/xoAGgEaAhoDGgQaBRoGGgcaCBoJGgoaCxoM -Gg0aDhoPGhAaERoSGhMaFBoVGhYaFxoYGhkaGhobGhwaHRoeGh8aIBohGiIaIxokGiUaJhonGigaKRoq -GisaLBotGi4aLxowGjEaMhozGjQaNRo2GjcaOBo5GjoaOxo8Gj0aPho/GkAaQRpCGkMaRBpFGkYaRxpI -GkkaShpLGkwaTRpOGk8aUBpRGlIaUxpUGlUaVhpXGlgaWRpaGlsaXBpdGl4aXxpgGmEaYhpjGmQaZRpm -GmcaaBppGmoaaxpsGm0abhpvGnAacRpyGnMadBp1GnYadxp4Gnkaehp7GnwafRp+Gn8agBqBGoIagxqE -GoUahhqHGogaiRqKGosajBqNGo4ajxqQGpEakhqTGpQalRqWGpcamBqZGpoamxqcGp0anhqfGqAaoRqi -GqMapBqlGqYapxqoGqkaqhqrGqwarRquGq8asBqxGrIasxq0GrUathq3GrgauRq6GrsavBq9Gr4avxrA -GsEawhrDGsQaxRrGGscayBrJGsoayxrMGs0azhrPGtAa0RrSGtMa1BrVGtYa1xrYGtka2hrbGtwa3Rre -Gt8a4BrhGuIa4xrkGuUa5hrnGuga6RrqGusa7BrtGu4a7xrwGvEa8hrzGvQa9Rr2Gvca+Br5Gvoa+xr8 -Gv0a/hr/GwAbARsCGwUbCBzsHtAe0R7SHtMe1B7VHtYe1x7YHtke2h7bHtwe3R7eHt8e4B7hHuIe4x7k -HuUe5h7nHuge6R7qHuse7B7tHu4e7x7wHvEe8h7zHvQe9R72Hvce+B75Hvoe+x78Hv0e/h7/HwAfAR8C -HwMfBB8FHwYfBx8IHwkfCh8LHwwfDR8OHw8fEB8RHxIfEx8UHxUfFh8XHxgfGR8aHxsfHB8dHx4fHx8g -HyEfIh8jHyQfJR8mHycfKB8pHyofKx8sHy0fLh8vHzAfMR8yHzMfNB81HzYfNx84HzkfOh87HzwfPR8+ -Hz8fQB9BH0IfQx9EH0UfRh9HH0gfSR9KH0sfTB9NH04fTx9QH1EfUh9TH1QfVR9WH1cfWB9ZH1ofWx9c -H10fXh9fH2AfYR9iH2MfZB9lH2YfZx9oH2kfah9rH2wfbR9uH28fcB9xH3Ifcx90H3Ufdh93H3gfeR96 -H3sffB99H34ffx+AH4Efgh+DH4QfhR+GH4cfiB+JH4ofix+MH40fjh+PH5AfkR+SH5MflB+VH5Yflx+Y -H5kfmh+bH5wfnR+eH58foB+hH6Ifox+kH6Ufph+nH6gfqR+qH6sfrB+tH64frx+wH7Efsh+zH7QftR+2 -H7cfuB+5H7ofux+8H70fvh+/H8AfwR/CH8MfxB/FH8Yfxx/IH8kfyh/LH8wfzR/OH88f0B/RH9If0x/U -H9Uf1h/XH9gf2R/aH9sf3B/dH94f3x/gH+Ef4h/jH+Qf5R/mH+cf6B/pH+of6x/sH+0f7h/vH/Af8R/y -H/Mf9B/1H/Yf9x/4H/kf+h/7H/wf/R/+H/8gACABIAIgAyAEIAUgBiAHIAggCSAKIAsgDCANIA4gDyAQ -IBEgEiATIBQgFSAWIBcgGCAZIBogGyAcIB0gHiAfICAgISAiICMgJCAlICYgJyAoICkgKiArICwgLSAu -IC8gMCAxIDIgMyA0IDUgNiA3IDgCJSA5IDogOyA8ID0gPiA/IEAgQSBCIEMgRCBFIEYgRyBIIEkgSiBL -IEwgTSBOIE8gUCBRIFIgUyBUIFUgViBXIFggWSBaIFsgXCBdIF4gXyBgIGEgYiBjIGQgZSBmIGcgaCBp -IGogayBsIG0gbiBvIHAgcSByIHMgdCB1IHYgdyB4IHkgeiB7IHwgfSB+IH8ggCCBIIIggyCEIIUghiCH -IIggiSCKIIsgjCCNII4gjyCQIJEgkiCTIJQglSCWIJcgmCCZIJogmyCcIJ0gniCfIKAgoSCiIKMgpCCl -IKYgpyCoIKkgqiCrIKwgrSCuIK8gsCCzILYguVUkbnVsbN8QEgANAA4ADwAQABEAEgATABQAFQAWABcA -GAAZABoAGwAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAC8AMFZOU1Jvb3RWJGNs -YXNzXU5TT2JqZWN0c0tleXNfEA9OU0NsYXNzZXNWYWx1ZXNfEBlOU0FjY2Vzc2liaWxpdHlPaWRzVmFs -dWVzXU5TQ29ubmVjdGlvbnNbTlNOYW1lc0tleXNbTlNGcmFtZXdvcmtdTlNDbGFzc2VzS2V5c1pOU09p -ZHNLZXlzXU5TTmFtZXNWYWx1ZXNfEBlOU0FjY2Vzc2liaWxpdHlDb25uZWN0b3JzXU5TRm9udE1hbmFn -ZXJfEBBOU1Zpc2libGVXaW5kb3dzXxAPTlNPYmplY3RzVmFsdWVzXxAXTlNBY2Nlc3NpYmlsaXR5T2lk -c0tleXNZTlNOZXh0T2lkXE5TT2lkc1ZhbHVlc4ACgQgqgQSugQZDgQgpgAmBBNqABoEGQoEGRIEE24EI -J4AAgAeBBNmBCCgSAAMProEGRdIADgAyADMANFtOU0NsYXNzTmFtZYAFgAPSAA4ANgA3ADhZTlMuc3Ry -aW5ngARdTlNBcHBsaWNhdGlvbtIAOgA7ADwAPVgkY2xhc3Nlc1okY2xhc3NuYW1lowA9AD4AP18QD05T -TXV0YWJsZVN0cmluZ1hOU1N0cmluZ1hOU09iamVjdNIAOgA7AEEAQqIAQgA/Xk5TQ3VzdG9tT2JqZWN0 -XxAQSUJDb2NvYUZyYW1ld29ya9IADgBFAEYAR1pOUy5vYmplY3RzgAig0gA6ADsASQBKowBKAEsAP1xO -U011dGFibGVTZXRVTlNTZXTSAA4ARQBNAE6AQa8QdABPAFAAUQBSAFMAVABVAFYAVwBYAFkAWgBbAFwA -XQBeAF8AYABhAGIAYwBkAGUAZgBnAGgAaQBqAGsAbABtAG4AbwBwAHEAcgBzAHQAdQB2AHcAeAB5AHoA -ewB8AH0AfgB/AIAAgQCCAIMAhACFAIYAhwCIAIkAigCLAIwAjQCOAI8AkACRAJIAkwCUAJUAlgCXAJgA -mQCaAJsAnACdAJ4AnwCgAKEAogCjAKQApQCmAKcAqACpAKoAqwCsAK0ArgCvALAAsQCyALMAtAC1ALYA -twC4ALkAugC7ALwAvQC+AL8AwADBAMKACoAfgCeARoBOgFyAZ4B+gISAiYCQgJuAnYCrgLCAsYCzgLWA -vIC+gMaAy4DagN+A4YDmgOuA8oD3gQEKgQEYgQEfgQEtgQEygQE3gQE8gQFPgQFUgQFigQF3gQF8gQF+ -gQF/gQGGgQGNgQGUgQGZgQGagQGbgQM6gQM+gQNCgQNJgQNLgQNSgQNUgQNWgQNYgQOdgQOfgQOhgQOl -gQOngQOpgQOrgQOtgQOvgQO0gQO2gQO4gQO9gQO/gQPBgQPDgQPFgQPHgQPJgQPPgQPVgQPXgQPbgQPc -gQPegQPggQQJgQQLgQQNgQQPgQQQgQQVgQQXgQQcgQQhgQQjgQQlgQQmgQQqgQQsgQQugQQzgQQ3gQQ5 -gQQ7gQQ8gQQ+gQRAgQRCgQRGgQSdgQSfgQShgQSjgQSkgQSmgQSogQSs1AAOAMQAxQDGAMcAyADJAMpd -TlNEZXN0aW5hdGlvblhOU1NvdXJjZVdOU0xhYmVsgB6ADYALgB3SAA4AMgAzAM2ABYAMWkNoZWF0Q2xh -c3PXANAADgDRANIA0wDUANUA1gDXANgA2QDaANsA1l8QD05TTmV4dFJlc3BvbmRlcldOU0ZyYW1lVk5T -Q2VsbFhOU3ZGbGFnc1lOU0VuYWJsZWRbTlNTdXBlcnZpZXeADoAcgA+AEBEBAAmADtUA0AAOANEA3gDT -ACsA4ADhAOIA2lpOU1N1YnZpZXdzgACAeIB3gG1fEBZ7ezIwLCAyMDB9LCB7MjczLCAyMH192gDlAA4A -5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gDIAPQA9QDbAPdbTlNDZWxsRmxhZ3NfEBFOU0JhY2tncm91 -bmRDb2xvclpOU0NvbnRlbnRzWU5TU3VwcG9ydF1OU0NvbnRyb2xWaWV3XE5TQ2VsbEZsYWdzMl8QEE5T -VGV4dEJlemVsU3R5bGVfEBFOU0RyYXdzQmFja2dyb3VuZFtOU1RleHRDb2xvchP/////lHH+QYAbgBWA -EYASgA0SAEAEABABCYAaUNQADgD6APsA/AD9AP4A/wEAVk5TU2l6ZVZOU05hbWVYTlNmRmxhZ3OAFCNA -KAAAAAAAAIATEBBcTHVjaWRhR3JhbmRl0gA6ADsBAwEEogEEAD9WTlNGb2501QAOAQYBBwEIAQkBCgEL -AQwBDQEOV05TQ29sb3JcTlNDb2xvclNwYWNlW05TQ29sb3JOYW1lXU5TQ2F0YWxvZ05hbWWAGYAYEAaA -F4AWVlN5c3RlbV8QE3RleHRCYWNrZ3JvdW5kQ29sb3LTAA4BBwESAQoBFAEVV05TV2hpdGWAGRADQjEA -0gA6ADsBFwEGogEGAD/TAA4BBwEZAQoA9QEbVU5TUkdCgBlGMCAwIDAA0gA6ADsBHQEepAEeAR8A0gA/ -XxAPTlNUZXh0RmllbGRDZWxsXE5TQWN0aW9uQ2VsbNIAOgA7ASEBIqUBIgEjASQBJQA/W05TVGV4dEZp -ZWxkWU5TQ29udHJvbFZOU1ZpZXdbTlNSZXNwb25kZXJdY2hlYXRGaWVsZEdTQdIAOgA7ASgBKaMBKQEq -AD9fEBROU05pYk91dGxldENvbm5lY3Rvcl5OU05pYkNvbm5lY3RvctQADgDEAMUAxgDHAS0BLgEvgB6A -I4AggCbXANAADgDRANIA0wDUANUA1gDXATMBNADaANsA1oAOgByAIYAiCYAOXxAWe3syMCwgMTE2fSwg -ezI3MywgMjB9fdoA5QAOAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIBLgD0APUA2wD3gBuAFYARgBKA -IAmAGtcA0AAOANEA0gDTANQA1QDWANcBQwFEANoA2wDWgA6AHIAkgCUJgA5fEBV7ezIwLCA4OH0sIHsy -NzMsIDIwfX3aAOUADgDmAOcA6ADpAOoA6wDsAO0A7gDvAPAA8QDyAS0A9AD1ANsA94AbgBWAEYASgCMJ -gBpbbmV4dEtleVZpZXfUAA4AxADFAMYAxwFTAVQBVYAegCqAKIBF0gAOADIAMwFYgAWAKVdTRExNYWlu -1wDQAA4A0QDSANMA1ADVAVsBXAFdAV4A2gDbAVuAK4BEgCyALQmAK9UA0AAOANEA3gDTACsA4AFkAWUA -2oAAgHiBAzWBAaBfEBd7ezU0NywgMjA2fSwgezEyOCwgMjJ9fd8QEwDlAWgBaQFqAWsADgFsAW0BbgDo -AW8A6QFwAXEBcgFzAOoBdAF1AXYA2wD1AXgBeQF6APUBewF8AXsBfgFTARQA2wDbAYIBgwGEAYVfEBpO -U01lbnVJdGVtUmVzcGVjdEFsaWdubWVudF8QD05TQXJyb3dQb3NpdGlvbl8QE05TQWx0ZXJuYXRlQ29u -dGVudHNfEBJOU1BlcmlvZGljSW50ZXJ2YWxeTlNCdXR0b25GbGFnczJfEBBOU0FsdGVybmF0ZUltYWdl -XxAPTlNLZXlFcXVpdmFsZW50Wk5TTWVudUl0ZW1fEA9OU1ByZWZlcnJlZEVkZ2VfEBJOU1VzZXNJdGVt -RnJvbU1lbnVdTlNBbHRlcnNTdGF0ZV8QD05TUGVyaW9kaWNEZWxheVZOU01lbnVdTlNCdXR0b25GbGFn -cxP/////hEH+QAmALxBLgEOALoAwgC6AMYAqCQkRAZASAAIEAIAyEgaCQP/UAA4A+gD7APwA/QGIAP8B -ioAUI0AmAAAAAAAAgBMRDBzSAA4ANgA3APiABNIADgA2ADcA+IAE2wGQAA4BkQGSAZMBlAGVAZYBdAGX -AZgBXgGaAZsBnADxAZ4BnwGgAYQBogD1WE5TVGFyZ2V0V05TVGl0bGVfEBFOU0tleUVxdWl2TW9kTWFz -a1pOU0tleUVxdWl2XU5TTW5lbW9uaWNMb2NZTlNPbkltYWdlXE5TTWl4ZWRJbWFnZVhOU0FjdGlvbldO -U1N0YXRlgC2AO4AzEgAQAACAERJ/////gDSAOIAygDrTAA4BkQGkAaUBpgGnW05TTWVudUl0ZW1zgEKA -PIA9WERpc2FibGVk0wAOADIBqgGrAawBrV5OU1Jlc291cmNlTmFtZYA3gDWANldOU0ltYWdlXxAPTlNN -ZW51Q2hlY2ttYXJr0gA6ADsBsQGyogGyAD9fEBBOU0N1c3RvbVJlc291cmNl0wAOADIBqgGrAawBtoA3 -gDWAOV8QEE5TTWVudU1peGVkU3RhdGVfEBFfcG9wVXBJdGVtQWN0aW9uOtIAOgA7AboBb6IBbwA/0gAO -ADYANwG9gARaT3RoZXJWaWV3c9IADgBFAE0BwIBBogF+AcKAMYA+2gGQAA4BkQGSAZMBlAGVAZYBdAGX -AV4BmgHGAZwA8QGeAZ8BoAGEAcuALYA7gD+AEYA0gDiAMoBAV0VuYWJsZWTSADoAOwHOAc+jAc8B0AA/ -Xk5TTXV0YWJsZUFycmF5V05TQXJyYXnSADoAOwHSAXSiAXQAP9IAOgA7AdQB1aYB1QHWAdcBHwDSAD9f -EBFOU1BvcFVwQnV0dG9uQ2VsbF5OU01lbnVJdGVtQ2VsbFxOU0J1dHRvbkNlbGzSADoAOwHZAdqmAdoB -2wEjASQBJQA/XU5TUG9wVXBCdXR0b25YTlNCdXR0b25XdXNlQmlvc9QADgDEAMUAxgDHAd8B4AEvgB6A -S4BHgCbXANAADgDRANIA0wDUANUB4wDXAeUB5gDaANsB44BIgByASYBKCYBI1QDQAA4A0QDeANMAKwDg -AewB7QDagACAeIEBcoEBZtoA5QAOAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIB4AD0APUA2wD3gBuA -FYARgBKARwmAGtcA0AAOANEA0gDTANQA1QHjANcB+QH6ANoA2wHjgEiAHIBMgE0JgEhfEBZ7ezIwLCAx -NzJ9LCB7MjczLCAyMH192gDlAA4A5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gHfAPQA9QDbAPeAG4AV -gBGAEoBLCYAa1AAOAMQAxQDGAgcAyQIJAgqAW4ALgE+AWtcA0AAOANEA0gDTANQA1QDWAg0CDgIPANoA -2wDWgA6AWYBQgFEJgA5fEBV7ezIxNSwgMTJ9LCB7ODQsIDMyfX3dAOUADgFqAWsBbAFtAW4A5wDoAOkB -cwDqAXUCFAIVAhYCFwD1AhgCGQIaAhsCCQIdAh4CHxIEAf4AgFiAVhAZgFSAV4BSgFOATxDIEgg4AAAT -/////4aCQP9ST0vUAA4A+gD7APwA/QIjAP8CJYAUI0AqAAAAAAAAgBMRBBTUAA4A+gD7APwA/QIjAigB -AIAUgFVZSGVsdmV0aWNh0gAOADYANwD4gATSAA4ANgA3APiABNIAOgA7Ai8B16QB1wEfANIAP9IAOgA7 -AjEB26UB2wEjASQBJQA/XXJlYWRDaGVhdEdTQTrSADoAOwI0AjWjAjUBKgA/XxAVTlNOaWJDb250cm9s -Q29ubmVjdG9y1AAOAMQAxQDGAgcCOAI5AjqAW4BkgF2AZtcA0AAOANEA0gDTANQA1QI8Ag0CPgI/ANoA -2wI8gF6AWYBfgGAJgF7VANAADgDRAN4A0wArAOACRQJGANqAAIB4gQOYgQNdXxAWe3s5NCwgMjYwfSwg -ezE0OSwgMjl9fd0A5QAOAWoBawFsAW0BbgDnAOgA6QFzAOoBdQIUAhUA8QIXAksCTAJNAk4CGwI5Ah0C -UQJSgFiAERACgGKAY4BhgFOAXRIIAAAAE/////+GhgD/XxASQ2FsaWJyYXRlIEpveXN0aWNr1AAOAPoA -+wD8AP0CIwD/AQCAFIAT0gAOADYANwD4gATSAA4AMgAzAluABYBlW0NvbmZpZ0NsYXNzWmNhbGlicmF0 -ZTrUAA4AxADFAMYAxwJgAMkCYoAegGiAC4B93AJkAA4CZQJmAmcCaAJpAmoCawJsAm0CbgDWAnACcQJy -AnMCdAJ1AnYCSwJ3AngCeVxOU1dpbmRvd1ZpZXdcTlNTY3JlZW5SZWN0XU5TV2luZG93VGl0bGVZTlNX -VEZsYWdzXU5TV2luZG93Q2xhc3NcTlNXaW5kb3dSZWN0WU5TTWF4U2l6ZV8QD05TV2luZG93QmFja2lu -Z18QEU5TV2luZG93U3R5bGVNYXNrWU5TTWluU2l6ZVtOU1ZpZXdDbGFzc4AOgHyAeYBqEnB4AACAa4Bp -gHsQD4B6gGxfEBh7ezcwNSwgNTc3fSwgezMxMywgMjQwfX1dQWRkIENoZWF0cy4uLlhOU1dpbmRvd9IA -DgA2ADcCf4AEVFZpZXfSAA4ARQBNAoKAQacAyAKEAoUCCQEuAS0CiYANgG6AcYBPgCCAI4B01wDQAA4A -0QDSANMA1ADVANYA1wKNAo4A2gDbANaADoAcgG+AcAmADtoA5QAOAOYA5wDoAOkA6gDrAOwA7QDuAO8A -8ADxAPIChAD0APUA2wD3gBuAFYARgBKAbgmAGtcA0AAOANEA0gDTANQA1QDWANcCnAKdANoA2wDWgA6A -HIBygHMJgA5fEBZ7ezIwLCAxNDR9LCB7MjczLCAyMH192gDlAA4A5gDnAOgA6QDqAOsA7ADtAO4A7wDw -APEA8gKFAPQA9QDbAPeAG4AVgBGAEoBxCYAa1wDQAA4A0QDSANMA1ADVANYA1wKsAq0A2gDbANaADoAc -gHWAdgmADl8QFXt7MjAsIDYwfSwgezI3MywgMjB9fdoA5QAOAOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADx -APICiQD0APUA2wD3gBuAFYARgBKAdAmAGl8QFHt7MSwgOX0sIHszMTMsIDI0MH190gA6ADsCuwEkowEk -ASUAP18QFnt7MCwgMH0sIHsyNTYwLCAxNTc4fX1aezIxMywgMTI5fV8QGnszLjQwMjgyZSszOCwgMy40 -MDI4MmUrMzh90gA6ADsCwALBogLBAD9fEBBOU1dpbmRvd1RlbXBsYXRlXmNoZWF0V2luZG93R1NB0wAO -AMUAxgIHAsUCxoBbgH+Ag9gADgGRAZIBkwGUAZUBlgF0AZoCyQGcAsoBngGfAaACzYA7gIGAgoA0gDiA -gNMADgGRAaQBpQLQAtGAQoEEvYEEvlRDb3B5UWNVY29weTrTAA4AxQDGAgcC1wLYgFuAhYCI2AAOAZEB -kgGTAZQBlQGWAXQBmgLbAZwC3AGeAZ8BoALNgDuAhoCHgDSAOICAU0N1dFF4VGN1dDrUAA4AxADFAMYC -BwI4AuYC54BbgGSAioCP1wDQAA4A0QDSANMA1ADVAjwCDQLrAuwA2gDbAjyAXoBZgIuAjAmAXl8QFnt7 -MTY0LCAxODR9LCB7ODQsIDMwfX3dAOUADgFqAWsBbAFtAW4A5wDoAOkBcwDqAXUCFAIVAPECFwJLAhgC -9AL1AhsC5gIdAlECH4BYgBGAVICOgI2AU4CKUVLSAA4ANgA3APiABFZwb2xsUjrUAA4AxADFAMYAxwL+ -AjgDAIAegJGAZICa1wDQAA4A0QDSANMA1ADVAjwA1wMEAwUA2gDbAjyAXoAcgJKAkwmAXl8QFXt7MTA3 -LCA5NX0sIHs0NiwgMTl9fdkA5QAOAOYA5wDoAOkA6gDsAO0DCgDvAwwA8QF7Av4DEADbAxISBEH+AIAb -gJSAEYAugJESCEAAAAmAl9UADgEGAQcBCAEJAQoDFQEMAxYBDoAZgJaAlYAWXGNvbnRyb2xDb2xvctMA -DgEHARIBCgEUAxuAGUswLjY2NjY2NjY5ANUADgEGAQcBCAEJAQoDHgEMAx8BDoAZgJmAmIAWXxAQY29u -dHJvbFRleHRDb2xvctMADgEHARIBCgEUAySAGUIwAFZhRmllbGTUAA4AxADFAMYAxwEuAMkDKoAegCCA -C4CcXmNoZWF0RmllbGRHU0E01AAOAMQAxQDGAMcDLgFUAzCAHoCegCiAqtcA0AAOANEA0gDTANQA1QFb -AVwDNAM1ANoA2wFbgCuARICfgKAJgCtfEBd7ezE5MCwgMzA3fSwgezEyOCwgMjJ9fd8QEwDlAWgBaQFq -AWsADgFsAW0BbgDoAW8A6QFwAXEBcgFzAOoBdAF1AXYA2wD1AzsBeQF6APUBewM+AXsDQAMuARQA2wDb -AYIBgwNEAYUJgKGAQ4AugKKALoCjgJ4JCYCk0gAOADYANwD4gATSAA4ANgA3APiABNsBkAAOAZEBkgGT -AZQBlQGWAXQBlwGYAzUBmgGbAZwA8QGeAZ8BoANEA1EA9YCggDuAM4ARgDSAOICkgKXTAA4BkQGkAaUD -VANVgEKApoCn0gAOADYANwG9gATSAA4ARQBNA1qAQaIDQANcgKOAqNoBkAAOAZEBkgGTAZQBlQGWAXQB -lwM1AZoBxgGcAPEBngGfAaADRANlgKCAO4A/gBGANIA4gKSAqVxzb3VuZExvd1Bhc3PUAA4AxADFAMYA -xwNpAMkDa4AegKyAC4Cv1wDQAA4A0QDSANMA1ADVAeMA1wNvA3AA2gDbAeOASIAcgK2ArgmASNoA5QAO -AOYA5wDoAOkA6gDrAOwA7QDuAO8A8ADxAPIDaQD0APUA2wD3gBuAFYARgBKArAmAGltjaGVhdEZpZWxk -NNQADgDEAMUAxgDHAoQAyAEvgB6AboANgCbUAA4AxADFAMYAxwHgAMkDhYAegEeAC4CyWmNoZWF0Rmll -bGTUAA4AxADFAMYAxwI5AjgDi4AegF2AZIC0XxAPY2FsaWJyYXRlQnV0dG9u1AAOAMQAxQDGAgcCOAOQ -A5GAW4BkgLaAu9cA0AAOANEA0gDTANQA1QI8Ag0DlQOWANoA2wI8gF6AWYC3gLgJgF5fEBV7ezIzNiwg -MTJ9LCB7ODQsIDMyfX3dAOUADgFqAWsBbAFtAW4A5wDoAOkBcwDqAXUCFAIVA5wCFwD1AhgDngIaAhsD -kAIdAh4CH4BYgLmAVIC6gFKAU4C20gAOADYANwD4gATSAA4ANgA3APiABFplbmRDb25maWc61AAOAMQA -xQDGAMcDkAI4A6uAHoC2gGSAvVhPS0J1dHRvbtQADgDEAMUAxgIHA68DsAOxgFuAw4C/gMXYAA4BkQGS -AZMBlAGVAZYBdAGaA7QBnAO1AZ4BnwGgA7iAO4DBgMKANIA4gMDTAA4BkQGkAaUDuwO8gEKBBMqBBMtf -EBJEZWZyb3N0IEdhbWUgU3RhdGVRZNIADgAyADMDwYAFgMRZTWVudUNsYXNzXWRlZnJvc3RTdGF0ZTrU -AA4AxADFAMYCBwFUA8cDyIBbgCiAx4DK2AAOAZEBkgGTAZQBlQGWAXQBmgPLAZwA8QGeAZ8BoAPPgDuA -yYARgDSAOIDI1AAOAZEA+wGkAaUD0gPTA9SAQoEEw4EEx4EExVlEb25hdGUuLi5XZG9uYXRlOtQADgDE -AMUAxgDHA9kBVAPbgB6AzIAogNnXANAADgDRANIA0wDUANUD3QFcA98D4ADaANsD3YDNgESAzoDPCYDN -1gDQAA4A0QDeANMA1QPkAOAD5gPnANoD5IEBoYB4gQHugQGjgQGhXxAXe3sxODEsIDEyM30sIHsxMjgs -IDIyfX3fEBMA5QFoAWkBagFrAA4BbAFtAW4A6AFvAOkBcAFxAXIBcwDqAXQBdQF2ANsA9QPsAXkBegD1 -AXsD7wF7A/ED2QEUANsA2wGCAYMD9QGFCYDQgEOALoDRgC6A0oDMCQmA09IADgA2ADcA+IAE0gAOADYA -NwD4gATbAZAADgGRAZIBkwGUAZUBlgF0AZcBmAPgAZoBmwGcAPEBngGfAaAD9QQCAPWAz4A7gDOAEYA0 -gDiA04DU0wAOAZEBpAGlBAUEBoBCgNWA1tIADgA2ADcBvYAE0gAOAEUATQQLgEGiA/EEDYDSgNfaAZAA -DgGRAZIBkwGUAZUBlgF0AZcD4AGaAcYBnADxAZ4BnwGgA/UEFoDPgDuAP4ARgDSAOIDTgNhYc2tpcEJp -b3PUAA4AxADFAMYAxwQaAjgEHIAegNuAZIDe1wDQAA4A0QDSANMA1ADVAjwA1wQgBCEA2gDbAjyAXoAc -gNyA3QmAXl8QFnt7MTA3LCAxNTl9LCB7NDYsIDE5fX3ZAOUADgDmAOcA6ADpAOoA7ADtAwoA7wMMAPEB -ewQaAxAA2wMSgBuAlIARgC6A2wmAl1lsZWZ0RmllbGTUAA4AxADFAMYAxwFUAB8EMoAegCiAAoDgWGRl -bGVnYXRl1AAOAMQAxQDGAMcENgI4BDiAHoDigGSA5dcA0AAOANEA0gDTANQA1QI8ANcEPAQ9ANoA2wI8 -gF6AHIDjgOQJgF5fEBV7ezI1NywgOTV9LCB7NDYsIDE5fX3ZAOUADgDmAOcA6ADpAOoA7ADtAwoA7wMM -APEBewQ2AxAA2wMSgBuAlIARgC6A4gmAl1pzcGVlZEZpZWxk1AAOAMQAxQDGAgcBVARNBE6AW4AogOeA -6tgADgGRAZIBkwGUAZUBlgF0AZoEUQGcBFIBngGfAaADz4A7gOiA6YA0gDiAyF8QFVF1aXQgVmlzdWFs -Qm95QWR2YW5jZVFxVXF1aXQ61AAOAMQAxQDGAgcCOARcBF2AW4BkgOyA8dcA0AAOANEA0gDTANQA1QI8 -Ag0EYQRiANoA2wI8gF6AWYDtgO4JgF5fEBV7ezE0LCAxNTJ9LCB7ODQsIDMwfX3dAOUADgFqAWsBbAFt -AW4A5wDoAOkBcwDqAXUCFAIVAPECFwJLAhgEagRrAhsEXAIdAlECH4BYgBGAVIDwgO+AU4DsVExlZnTS -AA4ANgA3APiABFlwb2xsTGVmdDrUAA4AxADFAMYAxwR0AjgEdoAegPOAZID21wDQAA4A0QDSANMA1ADV -AjwA1wR6BHsA2gDbAjyAXoAcgPSA9QmAXl8QFnt7MTA3LCAxMjd9LCB7NDYsIDE5fX3ZAOUADgDmAOcA -6ADpAOoA7ADtAwoA7wMMAPEBewR0AxAA2wMSgBuAlIARgC6A8wmAl1pyaWdodEZpZWxk1AAOAMQAxQDG -AMcEigFUBIyAHoD4gCiBAQnXANAADgDRANIA0wDUANUEjgFcBJAEkQDaANsEjoD5gESA+oD7CYD51gDQ -AA4A0QDeANMA1QSVAOAElwSYANoElYECk4B4gQKagQKVgQKTXxAVe3sxNzEsIDV9LCB7MTI4LCAyMn19 -3xATAOUBaAFpAWoBawAOAWwBbQFuAOgBbwDpAXABcQFyAXMA6gF0AXUBdgDbAPUA8QF5AXoA9QF7BKAB -ewSiBIoBFADbANsBggGDBKYCHwmAEYBDgC6A/IAugP2A+AkJgP7SAA4ANgA3APiABNsBkAAOAZEBkgGT -AZQBlQGWAXQBlwGYBJEBmgSsAZwA8QGeAZ8BoASmBLEA9YD7gDuA/4ARgDSAOID+gQEA0wAOAZEBpAGl -BLQEtYBCgQEBgQECVE5vbmXSAA4ANgA3Ab2ABNIADgBFAE0Eu4BBowSiBL0EvoD9gQEDgQEG2gGQAA4B -kQGSAZMBlAGVAZYBdAGXBJEBmgTCAZwA8QGeAZ8BoASmBMeA+4A7gQEEgBGANIA4gP6BAQVbTW90aW9u -IEJsdXLaAZAADgGRAZIBkwGUAZUBlgF0AZcEkQGaBMwBnADxAZ4BnwGgBKYE0YD7gDuBAQeAEYA0gDiA -/oEBCFVTbWFydFppbnRlcmZyYW1l1AAOAMQAxQDGAMcE1gFUBNiAHoEBC4AogQEX1wDQAA4A0QDSANMA -1ADVAVsBXATcBN0A2gDbAVuAK4BEgQEMgQENCYArXxAXe3sxOTAsIDM4Mn0sIHsxMjgsIDIyfX3fEBQA -5QFoAWkBagFrAA4BbAFtAW4A6AFvAOkBcAFxAXIBcwDqAXQBdQTiAXYA2wD1BOQBeQF6APUBewTnAXsE -6QTWARQA2wDbAYIBgwTtAYUA9V8QD05TU2VsZWN0ZWRJbmRleAmBAQ6AQ4AugQEPgC6BARCBAQsJCYEB -EdIADgA2ADcA+IAE0gAOADYANwD4gATbAZAADgGRAZIBkwGUAZUBlgF0AZcBmATdAZoBxgGcAPEBngGf -AaAE7QT6APWBAQ2AO4A/gBGANIA4gQERgQES0wAOAZEBpAGlBP0E/oBCgQETgQEU0gAOADYANwG9gATS -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 -BwDaANsBW4ArgESBAVaBAVcJgCtfEBd7ezU0NywgMjMxfSwgezEyOCwgMjJ9fd8QEwDlAWgBaQFqAWsA -DgFsAW0BbgDoAW8A6QFwAXEBcgFzAOoBdAF1AXYA2wD1Bg0BeQF6APUBewYQAXsGEgYAARQA2wDbAYIB -gwYWAYUJgQFYgEOALoEBWYAugQFagQFVCQmBAVvSAA4ANgA3APiABNIADgA2ADcA+IAE2wGQAA4BkQGS -AZMBlAGVAZYBdAGXAZgGBwGaAZsBnADxAZ4BnwGgBhYGIwD1gQFXgDuAM4ARgDSAOIEBW4EBXNMADgGR -AaQBpQYmBieAQoEBXYEBXtIADgA2ADcBvYAE0gAOAEUATQYsgEGiBhIGLoEBWoEBX9oBkAAOAZEBkgGT -AZQBlQGWAXQBlwYHAZoBxgGcAPEBngGfAaAGFgY3gQFXgDuAP4ARgDSAOIEBW4EBYFxyZW1vdmVJbnRy -b3PUAA4AxADFAMYAxwY7AMkGPYAegQFjgAuBAXbcAmQADgJlAmYCZwJoAmkCagJrAmwCbQJuAeMCcAZB -AnICcwJ0BkQGRQJLAncGRgZHgEiAfIEBc4BqgGuBAWSBAXWBAXSBAWXSAA4ANgA3An+ABNIADgBFAE0G -TIBBpwHgAd8GTwZQA2kF6wZTgEeAS4EBZ4EBaoCsgQFQgQFv1wDQAA4A0QDSANMA1ADVAeMA1wZXBlgA -2gDbAeOASIAcgQFogQFpCYBI2gDlAA4A5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gZPAPQA9QDbAPeA -G4AVgBGAEoEBZwmAGtcA0AAOANEA0gDTANQA1QHjAg0GZgZnANoA2wHjgEiAWYEBa4EBbAmASN0A5QAO -AWoBawFsAW0BbgDnAOgA6QFzAOoBdQIUAhUGbAIXAPUCGAZuAhoCGwZQAh0CHgIfgFiBAW2AVIEBboBS -gFOBAWrSAA4ANgA3APiABNIADgA2ADcA+IAE1wDQAA4A0QDSANMA1ADVAeMA1wZ5BnoA2gDbAeOASIAc -gQFwgQFxCYBI2gDlAA4A5gDnAOgA6QDqAOsA7ADtAO4A7wDwAPEA8gZTAPQA9QDbAPeAG4AVgBGAEoEB -bwmAGltjaGVhdFdpbmRvd9QADgDEAMUAxgIHA68GiQaKgFuAw4EBeIEBe9gADgGRAZIBkwGUAZUBlgF0 -AZoGjQGcBo4BngGfAaADuIA7gQF5gQF6gDSAOIDAXxAPUGF1c2UgRW11bGF0aW9uUXBfEA9wYXVzZUVt -dWxhdGlvbjrUAA4AxADFAMYCBwDJBlAGmYBbgAuBAWqBAX1dcmVhZENoZWF0Q0JBOtQADgDEAMUAxgDH -Bk8B3wEvgB6BAWeAS4Am1AAOAMQAxQDGAMcGogI4BqSAHoEBgIBkgQGF1wDQAA4A0QDSANMA1ADVAjwC -DQaoBqkA2gDbAjyAXoBZgQGBgQGCCYBeXxAUe3sxMCwgMTJ9LCB7ODYsIDMyfX3dAOUADgFqAWsBbAFt -AW4A5wDoAOkBcwDqAXUCFAIVAPECFwD1AhsGsQayAhsGogIdAlECH4BYgBGAU4EBhIEBg4BTgQGAV0Rl -ZmF1bHTSAA4ANgA3APiABF1kZWZhdWx0QnV0dG9u1AAOAMQAxQDGAgcCOAa8Br2AW4BkgQGHgQGM1wDQ -AA4A0QDSANMA1ADVAjwCDQbBBsIA2gDbAjyAXoBZgQGIgQGJCYBeXxAVe3sxNCwgMTIwfSwgezg0LCAz -MH193QDlAA4BagFrAWwBbQFuAOcA6ADpAXMA6gF1AhQCFQDxAhcCSwIYBsoGywIbBrwCHQJRAh+AWIAR -gFSBAYuBAYqAU4EBh1VSaWdodNIADgA2ADcA+IAEWnBvbGxSaWdodDrUAA4AxADFAMYCBwFUBtUG1oBb -gCiBAY6BAZPXANAADgDRANIA0wDUANUBWwINBtoG2wDaANsBW4ArgFmBAY+BAZAJgCtfEBV7ezQyNiwg -MTJ9LCB7ODYsIDMyfX3dAOUADgFqAWsBbAFtAW4A5wDoAOkBcwDqAXUCFAIVBuECFwD1AhgG4wayAhsG -1QIdAh4CH4BYgQGRgFSBAZKBAYOAU4EBjtIADgA2ADcA+IAE0gAOADYANwD4gARdZGVmYXVsdFByZWZz -OtMADgDFAMYCBwbuBu+AW4EBlYEBmNgADgGRAZIBkwGUAZUBlgF0AZoG8gGcBvMBngGfAaACzYA7gQGW -gQGXgDSAOICAVVBhc3RlUXZWcGFzdGU61AAOAMQAxQDGAMcF6wNpAS+AHoEBUICsgCbUAA4AxADFAMYA -xwKFAoQBL4AegHGAboAm1AAOAMQAxQDGAMcHBgFUBwiAHoEBnIAogQM53AJkAA4CZQJmAmcCaAJpAmoC -awJsAm0CbgFbAnAHDAcNAnMCdAcPBxACSwJ3BxEHEoArgHyBAzaBAZ6Aa4EBnYEDOIEDN4EBn18QGHt7 -NjIxLCA5MDN9LCB7NzE0LCA0Mzl9fVtQcmVmZXJlbmNlc9IADgA2ADcCf4AE0gAOAEUATQcZgEGvECoD -5AcbAVMHHQceBx8HIAchByIHIwckBgAFLQcnBygHKQcqBysHLActBy4HLwcwBNYDLgczBaMElQc2BzcH -OAc5BzoHOwc8Bz0HPgc/B0AHQQbVB0OBAaGBAfWAKoEB+YECE4ECF4ECG4ECH4ECK4ECL4ECM4EBVYEB -IIECR4ECS4ECWYECX4ECY4ECZ4ECb4ECe4ECf4ECg4EBC4CegQKPgQE9gQKTgQKfgQKzgQLCgQLOgQLS -gQLegQLigQLmgQLqgQMbgQMfgQMigQGOgQMo3QDQB0UADgdGANEHRwDeANMHSAdJB0oA1QdLAVsHTQdO -B08HUAdRB1IA2gEUB1MCSwFbA91ZTlNCb3hUeXBlW05TVGl0bGVDZWxsXU5TVHJhbnNwYXJlbnRcTlNC -b3JkZXJUeXBlWU5TT2Zmc2V0c18QD05TVGl0bGVQb3NpdGlvbl1OU0NvbnRlbnRWaWV3gCsQAIEB9IEB -8YEB7wiBAaKBAfCAK4DN0gAOAEUATQdYgEGhA92AzdIADgBFAE0HXIBBqwddB14HXwdgB2ED2QdjB2QH -ZQdmB2eBAaSBAaqBAbaBAbqBAcaAzIEByoEBzoEB2oEB3oEB6tcA0AAOANEA0gDTANQA1QPdANcHawds -ANoA2wPdgM2AHIEBpYEBpgmAzV8QFnt7MTgxLCAxNH0sIHsxMTksIDIwfX3YAOUADgDmAOcA6ADpAOoA -7QdxAO8A8ADxB3UHXQd3B3gT/////4QB/gCAG4AVgBGBAaeBAaQSAEAAAIEBqNQADgD6APsA/AD9B3sA -/wd9gBQjQCQAAAAAAACAExELG9UADgEGAQcBCAEJAQoDHgEMB4EBDoAZgJmBAamAFll0ZXh0Q29sb3LX -ANAADgDRANIA0wDUANUD3QFcB4cHiADaANsD3YDNgESBAauBAawJgM1fEBd7ezE4MSwgMjI0fSwgezEy -OCwgMjJ9fd8QFADlAWgBaQFqAWsADgFsAW0BbgDoAW8A6QFwAXEBcgFzAOoBdAF1BOIBdgDbAPUHjgF5 -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 -cmZyYW1lIEJsZW5kaW5nOl8QFHt7MiwgMn0sIHszMTYsIDE1OH19XxAWe3sxNywgOTJ9LCB7MzIwLCAx -Nzh9fdcA5QAOAOYA5wDoAOoA7QIUAO8A8AtsAhsHTQtugBuAFYECnYBTgQKeVVZpZGVv0wAOAQcBEgEK -ARQItYAZ1wDQAA4A0QDSANMA1ADVAVsBXAt1C3YA2gDbAVuAK4BEgQKggQKhCYArXxAXe3sxOTAsIDIy -NH0sIHsxMjgsIDIyfX3fEBMA5QFoAWkBagFrAA4BbAFtAW4A6AFvAOkBcAFxAXIBcwDqAXQBdQF2ANsA -9Qt8AXkBegD1AXsLfwF7C4EHNgEUANsA2wGCAYMLhQGFCYECooBDgC6BAqOALoECpIECnwkJgQKl0gAO -ADYANwD4gATSAA4ANgA3APiABNsBkAAOAZEBkgGTAZQBlQGWAXQBlwGYC3YBmguNAZwA8QGeAZ8BoAuF -C5IA9YECoYA7gQKmgBGANIA4gQKlgQKn0wAOAZEBpAGlC5ULloBCgQKogQKpUjF40gAOADYANwG9gATS -AA4ARQBNC5yAQaQLgQueC58LoIECpIECqoECrYECsNoBkAAOAZEBkgGTAZQBlQGWAXQBlwt2AZoLpAGc -APEBngGfAaALhQupgQKhgDuBAquAEYA0gDiBAqWBAqxSMnjaAZAADgGRAZIBkwGUAZUBlgF0AZcLdgGa -C64BnADxAZ4BnwGgC4ULs4ECoYA7gQKugBGANIA4gQKlgQKvUjN42gGQAA4BkQGSAZMBlAGVAZYBdAGX -C3YBmgu4AZwA8QGeAZ8BoAuFC72BAqGAO4ECsYARgDSAOIECpYECslI0eNcA0AAOANEA0gDTANQA1QFb -AVwLwgvDANoA2wFbgCuARIECtIECtQmAK18QF3t7MTkwLCAxNDl9LCB7MTI4LCAyMn193xAUAOUBaAFp -AWoBawAOAWwBbQFuAOgBbwDpAXABcQFyAXMA6gF0AXUE4gF2ANsA9QvJAXkBegD1AXsLzAF7C84HNwEU -ANsA2wGCAYML0gGFAksJgQK2gEOALoECt4AugQK4gQKzCQmBArnSAA4ANgA3APiABNIADgA2ADcA+IAE -2wGQAA4BkQGSAZMBlAGVAZYBdAGXAZgLwwGaC9oBnADxAZ4BnwGgC9IL3wD1gQK1gDuBArqAEYA0gDiB -ArmBArvTAA4BkQGkAaUL4gvjgEKBAryBAr1ZQXV0b21hdGlj0gAOADYANwG9gATSAA4ARQBNC+mAQaML -6gvrC86BAr6BAsCBArjaAZAADgGRAZIBkwGUAZUBlgF0AZcLwwGaAZsBnADxAZ4BnwGgC9IL9YECtYA7 -gDOAEYA0gDiBArmBAr/aAZAADgGRAZIBkwGUAZUBlgF0AZcLwwGaAcYBnADxAZ4BnwGgC9IL/oECtYA7 -gD+AEYA0gDiBArmBAsHXANAADgDRANIA0wDUANUBWwFcDAIMAwDaANsBW4ArgESBAsOBAsQJgCtfEBd7 -ezE5MCwgMTc0fSwgezEyOCwgMjJ9fd8QEwDlAWgBaQFqAWsADgFsAW0BbgDoAW8A6QFwAXEBcgFzAOoB -dAF1AXYA2wD1DAkBeQF6APUBewwMAXsMDgc4ARQA2wDbAYIBgwwSAYUJgQLFgEOALoECxoAugQLHgQLC -CQmBAsjSAA4ANgA3APiABNIADgA2ADcA+IAE2wGQAA4BkQGSAZMBlAGVAZYBdAGXAZgMAwGaAZsBnADx -AZ4BnwGgDBIMHwD1gQLEgDuAM4ARgDSAOIECyIECydMADgGRAaQBpQwiDCOAQoECyoECy9IADgA2ADcB -vYAE0gAOAEUATQwogEGiDA4MKoECx4ECzNoBkAAOAZEBkgGTAZQBlQGWAXQBlwwDAZoBxgGcAPEBngGf -AaAMEgwzgQLEgDuAP4ARgDSAOIECyIECzdcA0AAOANEA0gDTANQA1QFbANcMNww4ANoA2wFbgCuAHIEC -z4EC0AmAK18QFnt7NDgsIDIwNH0sIHsxMTQsIDE3fX3YAOUADgDmAOcA6ADpAOoA7QIUAO8DDAw/APIH -OQfHAxKAG4CUgQLRgBKBAs6Al11WaWRlbyBGaWx0ZXI61wDQAA4A0QDSANMA1ADVAVsBXAxHDEgA2gDb -AVuAK4BEgQLTgQLUCYArXxAXe3sxOTAsIDEyNH0sIHsxMjgsIDIyfX3fEBMA5QFoAWkBagFrAA4BbAFt -AW4A6AFvAOkBcAFxAXIBcwDqAXQBdQF2ANsA9QxOAXkBegD1AXsMUQF7DFMHOgEUANsA2wGCAYMMVwGF -CYEC1YBDgC6BAtaALoEC14EC0gkJgQLY0gAOADYANwD4gATSAA4ANgA3APiABNsBkAAOAZEBkgGTAZQB -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 -eNMADgEHARIBCgEUCLWAGV8QFHt7MSwgOX0sIHs3MTQsIDQzOX19W3ByZWZzV2luZG931AAOAMQAxQDG -AgcCOA3QDdGAW4BkgQM7gQM92AAOAZEBkgGTAZQBlQGWAXQBmg3UAZwA8QGeAZ8BoAO4gDuBAzyAEYA0 -gDiAwF8QEUNvbmZpZ3VyZSBLZXlzLi4uXGJlZ2luQ29uZmlnOtQADgDEAMUAxgIHAB8N3g3fgFuAAoED -P4EDQdgADgGRAZIBkwGUAZUBlgF0AZoN4gGcAPEBngGfAaADz4A7gQNAgBGANIA4gMhYU2hvdyBBbGxf -EBZ1bmhpZGVBbGxBcHBsaWNhdGlvbnM61AAOAMQAxQDGAgcCOA3sDe2AW4BkgQNDgQNI1wDQAA4A0QDS -ANMA1ADVAjwCDQ3xDfIA2gDbAjyAXoBZgQNEgQNFCYBeXxAVe3sxNjQsIDU2fSwgezg0LCAzMH193QDl -AA4BagFrAWwBbQFuAOcA6ADpAXMA6gF1AhQCFQDxAhcCSwIYDfoN+wIbDewCHQJRAh+AWIARgFSBA0eB -A0aAU4EDQ1dDYXB0dXJl0gAOADYANwD4gARccG9sbENhcHR1cmU61AAOAMQAxQDGAMcHLQFUDgaAHoEC -b4AogQNKWXNvdW5kRWNob9QADgDEAMUAxgIHAjgOCw4MgFuAZIEDTIEDUdcA0AAOANEA0gDTANQA1QI8 -Ag0OEA4RANoA2wI8gF6AWYEDTYEDTgmAXl8QFXt7MTUyLCAxMn0sIHs4NCwgMzJ9fd0A5QAOAWoBawFs -AW0BbgDnAOgA6QFzAOoBdQIUAhUOFwIXAPUCGA4ZDZACGw4LAh0CHgIfgFiBA0+AVIEDUIEDJYBTgQNM -0gAOADYANwD4gATSAA4ANgA3APiABF8QD2Nsb3NlUHJlZnNOdWxsOtQADgDEAMUAxgDHBygBVA4mgB6B -AkuAKIEDU1lmbGFzaFNpemXUAA4AxADFAMYAxwHfAMkOLIAegEuAC4EDVVtjaGVhdEZpZWxkMtQADgDE -AMUAxgDHAS0AyQ4ygB6AI4ALgQNXXmNoZWF0RmllbGRHU0E11AAOAMQAxQDGAMcONgI4DjiAHoEDWYBk -gQOc3AJkAA4CZQJmAmcCaAJpAmoCawJsAm0CbgI8AnAOPA49AnMCdA4/DkACSwD1DkEOQoBegHyBA5mB -A1uAa4EDWoEDm4EDmoEDXF8QGHt7NjY1LCA1NjB9LCB7MzM0LCAzMDV9fV5Db25maWd1cmUgS2V5c9IA -DgA2ADcCf4AE0gAOAEUATQ5JgEGvEBwOSg5LBFwGvA5ODk8OUA5RDewOUwLmDlUOVg5XBBoEdAL+BXcO -CwOQAjkGogQ2DmEOYg5jBY0OZYEDXoEDY4DsgQGHgQNogQNtgQNygQN3gQNDgQN8gIqBA4GBA4aBA4mA -24DzgJGBATOBA0yAtoBdgQGAgOKBA4yBA4+BA5KBATiBA5XXANAADgDRANIA0wDUANUCPAINDmkOagDa -ANsCPIBegFmBA1+BA2AJgF5fEBV7ezE0LCAyMTZ9LCB7ODQsIDMwfX3dAOUADgFqAWsBbAFtAW4A5wDo -AOkBcwDqAXUCFAIVAPECFwJLAhgOcg5zAhsOSgIdAlECH4BYgBGAVIEDYoEDYYBTgQNeUlVw0gAOADYA -NwD4gATXANAADgDRANIA0wDUANUCPAINDnwOfQDaANsCPIBegFmBA2SBA2UJgF5fEBV7ezE0LCAxODR9 -LCB7ODQsIDMwfX3dAOUADgFqAWsBbAFtAW4A5wDoAOkBcwDqAXUCFAIVAPECFwJLAhgOhQ6GAhsOSwId -AlECH4BYgBGAVIEDZ4EDZoBTgQNjVERvd27SAA4ANgA3APiABNcA0AAOANEA0gDTANQA1QI8Ag0Ojw6Q -ANoA2wI8gF6AWYEDaYEDagmAXl8QFHt7MTQsIDg4fSwgezg0LCAzMH193QDlAA4BagFrAWwBbQFuAOcA -6ADpAXMA6gF1AhQCFQDxAhcCSwIYDpgOmQIbDk4CHQJRAh+AWIARgFSBA2yBA2uAU4EDaFFB0gAOADYA -NwD4gATXANAADgDRANIA0wDUANUCPAINDqIOowDaANsCPIBegFmBA26BA28JgF5fEBR7ezE0LCA1Nn0s -IHs4NCwgMzB9fd0A5QAOAWoBawFsAW0BbgDnAOgA6QFzAOoBdQIUAhUA8QIXAksCGA6rDqwCGw5PAh0C -UQIfgFiAEYBUgQNxgQNwgFOBA21RQtIADgA2ADcA+IAE1wDQAA4A0QDSANMA1ADVAjwCDQ61DrYA2gDb -AjyAXoBZgQNzgQN0CYBeXxAVe3sxNjQsIDg4fSwgezg0LCAzMH193QDlAA4BagFrAWwBbQFuAOcA6ADp -AXMA6gF1AhQCFQDxAhcCSwIYDr4OvwIbDlACHQJRAh+AWIARgFSBA3aBA3WAU4EDclVTcGVlZNIADgA2 -ADcA+IAE1wDQAA4A0QDSANMA1ADVAjwCDQ7IDskA2gDbAjyAXoBZgQN4gQN5CYBeXxAWe3sxNjQsIDEy -MH0sIHs4NCwgMzB9fd0A5QAOAWoBawFsAW0BbgDnAOgA6QFzAOoBdQIUAhUA8QIXAksCGA7RDtICGw5R -Ah0CUQIfgFiAEYBUgQN7gQN6gFOBA3dWU2VsZWN00gAOADYANwD4gATXANAADgDRANIA0wDUANUCPAIN -DtsO3ADaANsCPIBegFmBA32BA34JgF5fEBZ7ezE2NCwgMjE2fSwgezg0LCAzMH193QDlAA4BagFrAWwB -bQFuAOcA6ADpAXMA6gF1AhQCFQDxAhcCSwIYDuQO5QIbDlMCHQJRAh+AWIARgFSBA4CBA3+AU4EDfFFM -0gAOADYANwD4gATXANAADgDRANIA0wDUANUCPAINDu4O7wDaANsCPIBegFmBA4KBA4MJgF5fEBZ7ezE2 -NCwgMTUyfSwgezg0LCAzMH193QDlAA4BagFrAWwBbQFuAOcA6ADpAXMA6gF1AhQCFQDxAhcCSwIYDvcO -+AIbDlUCHQJRAh+AWIARgFSBA4WBA4SAU4EDgVVTdGFydNIADgA2ADcA+IAE1wDQAA4A0QDSANMA1ADV -AjwA1w8BDwIA2gDbAjyAXoAcgQOHgQOICYBeXxAWe3sxMDcsIDIyM30sIHs0NiwgMTl9fdkA5QAOAOYA -5wDoAOkA6gDsAO0DCgDvAwwA8QF7DlYDEADbAPeAG4CUgBGALoEDhgmAGtcA0AAOANEA0gDTANQA1QI8 -ANcPEQ8SANoA2wI8gF6AHIEDioEDiwmAXl8QFnt7MTA3LCAxOTF9LCB7NDYsIDE5fX3ZAOUADgDmAOcA -6ADpAOoA7ADtAwoA7wMMAPEBew5XAxAA2wMSgBuAlIARgC6BA4kJgJfXANAADgDRANIA0wDUANUCPADX -DyEPIgDaANsCPIBegByBA42BA44JgF5fEBV7ezI1NywgNjN9LCB7NDYsIDE5fX3ZAOUADgDmAOcA6ADp -AOoA7ADtAwoA7wMMAPEBew5hAxAA2wMSgBuAlIARgC6BA4wJgJfXANAADgDRANIA0wDUANUCPADXDzEP -MgDaANsCPIBegByBA5CBA5EJgF5fEBZ7ezI1NywgMTI3fSwgezQ2LCAxOX192QDlAA4A5gDnAOgA6QDq -AOwA7QMKAO8DDADxAXsOYgMQANsDEoAbgJSAEYAugQOPCYCX1wDQAA4A0QDSANMA1ADVAjwA1w9BD0IA -2gDbAjyAXoAcgQOTgQOUCYBeXxAWe3syNTcsIDIyM30sIHs0NiwgMTl9fdkA5QAOAOYA5wDoAOkA6gDs -AO0DCgDvAwwA8QF7DmMDEADbAPeAG4CUgBGALoEDkgmAGtcA0AAOANEA0gDTANQA1QI8ANcPUQ9SANoA -2wI8gF6AHIEDloEDlwmAXl8QFnt7MjU3LCAxNTl9LCB7NDYsIDE5fX3ZAOUADgDmAOcA6ADpAOoA7ADt -AwoA7wMMAPEBew5lAxAA2wMSgBuAlIARgC6BA5UJgJdfEBR7ezEsIDl9LCB7MzM0LCAzMDV9fVxjb25m -aWdXaW5kb3fUAA4AxADFAMYAxwcdAVQPZIAegQH5gCiBA55cZ2JhRnJhbWVTa2lw1AAOAMQAxQDGAgcC -OA5QD2qAW4BkgQNygQOgWnBvbGxTcGVlZDrTAA4AxQDGAgcPbg9vgFuBA6KBA6TYAA4BkQGSAZMBlAGV -AZYBdAGaD3IBnADxAZ4BnwGgAs2AO4EDo4ARgDSAOICAVkRlbGV0ZVdkZWxldGU61AAOAMQAxQDGAMcO -YwI4D32AHoEDkoBkgQOmVmxGaWVsZNQADgDEAMUAxgDHBlMAyQ+DgB6BAW+AC4EDqFtjaGVhdEZpZWxk -NtQADgDEAMUAxgIHAjgOVQ+JgFuAZIEDgYEDqlpwb2xsU3RhcnQ61AAOAMQAxQDGAMcHXgFUD4+AHoEB -qoAogQOsWHRocm90dGxl1AAOAMQAxQDGAgcCOAaiD5WAW4BkgQGAgQOuXGRlZmF1bHRLZXlzOtMADgDF -AMYCBw+ZD5qAW4EDsIEDs9gADgGRAZIBkwGUAZUBlgF0AZoPnQGcD54BngGfAaACzYA7gQOxgQOygDSA -OICAWlNlbGVjdCBBbGxRYVpzZWxlY3RBbGw61AAOAMQAxQDGAMcOVwI4D6mAHoEDiYBkgQO1WWRvd25G -aWVsZNQADgDEAMUAxgIHAjgOSw+vgFuAZIEDY4EDt1lwb2xsRG93bjrUAA4AxADFAMYCBwOvD7QPtYBb -gMOBA7mBA7zYAA4BkQGSAZMBlAGVAZYBdAGaD7gBnA+5AZ4BnwGgA7iAO4EDuoEDu4A0gDiAwF8QD1Jl -c2V0IEVtdWxhdGlvblFyXxAPcmVzZXRFbXVsYXRpb2461AAOAMQAxQDGAMcOZQI4D8SAHoEDlYBkgQO+ -WnN0YXJ0RmllbGTUAA4AxADFAMYCBwI4DkoPyoBbgGSBA16BA8BXcG9sbFVwOtQADgDEAMUAxgIHAjgO -UQ/QgFuAZIEDd4EDwltwb2xsU2VsZWN0OtQADgDEAMUAxgDHBk8AyQ/WgB6BAWeAC4EDxFtjaGVhdEZp -ZWxkM9QADgDEAMUAxgIHAVQHKQ/cgFuAKIECWYEDxl8QD3NlbGVjdEJpb3NGaWxlOtQADgDEAMUAxgDH -DmECOA/igB6BA4yAZIEDyFxjYXB0dXJlRmllbGTUAA4AxADFAMYCBwOvD+cP6IBbgMOBA8qBA87YAA4B -kQGSAZMBlAGVAZYBdAGaD+sBnA/sAZ4BnwGgD++AO4EDzIEDzYA0gDiBA8vTAA4BkQGkAaUP8g/zgEKB -BLCBBLFZQ2xvc2UgUm9tUXdZY2xvc2VSb2060wAOAMUAxgIHD/kP+oBbgQPQgQPU2AAOAZEBkgGTAZQB -lQGWAXQBmg/9AZwP/gGeAZ8BoBABgDuBA9KBA9OANIA4gQPR1AAOAZEA+wGkAaUQBBAFEAaAQoEEtoEE -uIEEt1hNaW5pbWl6ZVFtXxATcGVyZm9ybU1pbmlhdHVyaXplOtQADgDEAMUAxgDHBz4BVBAOgB6BAuqA -KIED1lt2aWRlb0ZpbHRlctQADgDEAMUAxgIHAMkQExAUgFuAC4ED2IED2tgADgGRAZIBkwGUAZUBlgF0 -AZoQFwGcAPEBngGfAaADuIA7gQPZgBGANIA4gMBfECBBZGQgQ29kZUJyZWFrZXJBZHZhbmNlIENoZWF0 -cy4uLl1vcGVuQ2hlYXRDQkE61AAOAMQAxQDGAMcGUwXrAS+AHoEBb4EBUIAm1AAOAMQAxQDGAMcHZAFU -ECeAHoEBzoAogQPdXxARcGF1c2VXaGVuSW5hY3RpdmXUAA4AxADFAMYAxwchAVQQLYAegQIfgCiBA99Z -c2hvd1NwZWVk1AAOAMQAxQDGAgcQMRAyEDOAW4ED44ED4YEECNcADgGRAZMBlAGVAZYBdAGaEDYA8QGe -AZ8BoAPPgDuBA+KAEYA0gDiAyF8QFkFib3V0IFZpc3VhbEJveUFkdmFuY2XcAmQADgJlAmYCZwJoAmkC -agJrAmwCbQJuBRUCcBA/EEACcwJ0EEIQQwJLARQQRBBFgQEagHyBBAWBA+WAa4ED5IEEB4EEBoED5l8Q -GHt7Njk0LCA2NjZ9LCB7Mjg5LCAyNzR9fVVBYm91dNIADgA2ADcCf4AE0gAOAEUATRBMgEGlBRIQThBP -EFAQUYEBGYED6IED7YED+4ED/9cA0AAOANEA0gDTANQA1QUVANcQVRBWANoA2wUVgQEagByBA+mBA+oJ -gQEaXxAWe3s2MywgMjMyfSwgezE2NSwgMjJ9fdgA5QAOAOYA5wDoAOkA6gDtAhQA7wMMEF0QXhBOAxAD -EoAbgJSBA+uBA+yBA+iAl18QEFZpc3VhbEJveUFkdmFuY2XUAA4A+gD7APwA/RBkAP8BAIAUI0AyAAAA -AAAAgBPZANAADgDREGcA0hBoANMA1ADVBRUQahBrANsQbRBuANoA2wUVWk5TRWRpdGFibGVbTlNEcmFn -VHlwZXOBARqBA/qBA/UJgQP2gQPuCYEBGtIADgBFAEYQc4AIphB0EHUQdhB3EHgQeYED74ED8IED8YED -8oED84ED9F8QGUFwcGxlIFBERiBwYXN0ZWJvYXJkIHR5cGVfEBlBcHBsZSBQTkcgcGFzdGVib2FyZCB0 -eXBlXxAVTlNGaWxlbmFtZXNQYm9hcmRUeXBlXxAxTmVYVCBFbmNhcHN1bGF0ZWQgUG9zdFNjcmlwdCB2 -MS4yIHBhc3RlYm9hcmQgdHlwZV8QHk5lWFQgVElGRiB2NC4wIHBhc3RlYm9hcmQgdHlwZV8QGkFwcGxl -IFBJQ1QgcGFzdGVib2FyZCB0eXBlXxAWe3s4NywgMTQzfSwgezExMiwgODJ9fdgA5QAOEIIA5xCDEIQA -6hCFEIYQhwdNEIgHTQdNEIkHUVdOU1N0eWxlV05TQWxpZ25XTlNTY2FsZVpOU0FuaW1hdGVzEgAB/gCB -A/mBA/cSAgAAAAjTAA4AMgGqAasBrBCOgDeANYED+F8QEU5TQXBwbGljYXRpb25JY29u0gA6ADsQkRCS -oxCSANIAP1tOU0ltYWdlQ2VsbNIAOgA7EJQQlaUQlQEjASQBJQA/W05TSW1hZ2VWaWV31wDQAA4A0QDS -ANMA1ADVBRUA1xCZEJoA2gDbBRWBARqAHIED/IED/QmBARpfEBV7ezg5LCA1NX0sIHsxMTgsIDk2fX3Y -AOUADgDmAOcA6ADpAOoA7RCfAO8DDBCiAXsQUAMQAxISBCH+AYAbgJSBA/6ALoED+4CXXxA6Ck9yaWdp -bmFsIFZlcnNpb246CkZvcmdvdHRlbgoKTWFjIE9TIFggVmVyc2lvbjoKQWRhbSBHcmVlbtcA0AAOANEA -0gDTANQA1QUVAg0QqhCrANoA2wUVgQEagFmBBACBBAEJgQEaXxAUe3s1MSwgMTJ9LCB7ODcsIDMyfX3d -AOUADgFqAWsBbAFtAW4A5wDoAOkBcwDqAXUCFAIVAPECFwD1AhsQsxC0AhsQUQIdAlECH4BYgBGAU4EE -A4EEAoBTgQP/V0xpY2Vuc2XSAA4ANgA3APiABF8QFHt7MSwgOX0sIHsyODksIDI3NH19XxAVbWFrZUtl -eUFuZE9yZGVyRnJvbnQ61AAOAMQAxQDGAMcOVgI4EMCAHoEDhoBkgQQKV3VwRmllbGTUAA4AxADFAMYA -xwc6AVQQxoAegQLSgCiBBAxfEBF2aWRlb1dhc2hlZENvbG9yc9QADgDEAMUAxgDHAoUAyRDMgB6AcYAL -gQQOXmNoZWF0RmllbGRHU0Ez1AAOAMQAxQDGAMcDaQZPAS+AHoCsgQFngCbUAA4AxADFAMYCBwAfENYQ -14BbgAKBBBGBBBTYAA4BkQGSAZMBlAGVAZYBdAGaENoBnBDbAZ4BnwGgA8+AO4EEEoEEE4A0gDiAyF8Q -FUhpZGUgVmlzdWFsQm95QWR2YW5jZVFoVWhpZGU61AAOAMQAxQDGAMcCiQDJEOaAHoB0gAuBBBZeY2hl -YXRGaWVsZEdTQTbTAA4AxQDGAgcQ6gUTgFuBBBiBAR7XANAADgDRANIA0wDUANUQ7QINEO8Q8ADaANsQ -7YEEGYBZgQQagQQbCYEEGdUA0AAOANEA3gDTACsA4BD2EPcA2oAAgHiBBJmBBEtfEBV7ezQxOCwgMTJ9 -LCB7ODQsIDMyfX3dAOUADgFqAWsBbAFtAW4A5wDoAOkBcwDqAXUCFAIVAPECFwD1AhgFJQIaAhsQ6gId -Ah4CH4BYgBGAVIEBHYBSgFOBBBjUAA4AxADFAMYCBwFUEQQRBYBbgCiBBB2BBCDYAA4BkQGSAZMBlAGV -AZYBdAGaEQgBnBEJAZ4BnwGgD++AO4EEHoEEH4A0gDiBA8tbT3BlbiBSb20uLi5Rb18QEG9wZW5Sb21G -cm9tTWVudTrUAA4AxADFAMYAxwc3AVQRFIAegQKzgCiBBCJbdmlkZW9Cb3JkZXLUAA4AxADFAMYAxwdm -AVQRGoAegQHegCiBBCRdcmVhbHRpbWVDbG9ja9QADgDEAMUAxgIHAVQHQQ4MgFuAKIEDIoEDUdQADgDE -AMUAxgIHAB8RJBElgFuAAoEEJ4EEKdgADgGRAZIBkwGUAZUBlgF0AZoRKAGcAPEBngGfAaADz4A7gQQo -gBGANIA4gMhbSGlkZSBPdGhlcnNfEBZoaWRlT3RoZXJBcHBsaWNhdGlvbnM61AAOAMQAxQDGAMcOCwI4 -ETOAHoEDTIBkgQQrXENhbmNlbEJ1dHRvbtQADgDEAMUAxgIHAVQHQBE5gFuAKIEDH4EELVtjbG9zZVBy -ZWZzOtQADgDEAMUAxgIHA68RPhE/gFuAw4EEL4EEMtgADgGRAZIBkwGUAZUBlgF0AZoRQgGcEUMBngGf -AaADuIA7gQQwgQQxgDSAOIDAXUFkdmFuY2UgRnJhbWVRbl1hZHZhbmNlRnJhbWU61AAOAMQAxQDGAgcB -VBFNEU6AW4AogQQ0gQQ22AAOAZEBkgGTAZQBlQGWAXQBmhFRAZwA8QGeAZ8BoAPPgDuBBDWAEYA0gDiA -yF8QGlZpc2l0IEVtdVNjZW5lIFNvZnR3YXJlLi4uXW9wZW5Ib21lcGFnZTrUAA4AxADFAMYAxwc4AVQR -XIAegQLCgCiBBDhfEA92aWRlb0Z1bGxzY3JlZW7UAA4AxADFAMYAxwcwAVQRYoAegQKDgCiBBDpfEBJz -b3VuZFJldmVyc2VTdGVyZW/UAA4AxADFAMYAxwKJAS0BL4AegHSAI4Am1AAOAMQAxQDGAMcHYAFUEW2A -HoEBuoAogQQ9XmNoYW5nZUZpbGVUeXBl1AAOAMQAxQDGAMcHNgFUEXOAHoECn4AogQQ/WXZpZGVvU2l6 -ZdQADgDEAMUAxgDHB10BVBF5gB6BAaSAKIEEQVxiaW9zRmlsZVBhdGjUAA4AxADFAMYCBwFUEX4Rf4Bb -gCiBBEOBBEXYAA4BkQGSAZMBlAGVAZYBdAGaEYIBnADxAZ4BnwGgA8+AO4EERIARgDSAOIDIXlByZWZl -cmVuY2VzLi4uWm9wZW5QcmVmczrUAA4AxADFAMYCBxGLEFEQM4BbgQRHgQP/gQQI3AJkAA4CZQJmAmcC -aAJpAmoCawJsAm0CbhDtAnARkRGSAnMCdBGUEZUCSwEUEZYRl4EEGYB8gQSagQRJgGuBBEiBBJyBBJuB -BEpfEBh7ezU4OCwgNDU1fSwgezUxNiwgNDE1fX1fEBJHTlUgUHVibGljIExpY2Vuc2XSAA4ANgA3An+A -BNIADgBFAE0RnoBBohGfEOqBBEyBBBjbANARogAOANERowDeANMA1RGkEaUHSxDtEacRqBGpEaoRqwDa -EO0RrRGuEa5bTlNIU2Nyb2xsZXJYTlNzRmxhZ3NbTlNWU2Nyb2xsZXJdTlNOZXh0S2V5Vmlld4EEGYEE -lYEEmIEElxBSgQRNgQQZgQSRgQROgQRO0gAOAEUATRGygEGjEa4RrRGngQROgQSRgQSV3ADQAA4A0RG3 -EbgRuQDeANMRuhG7ANURpRGfEb0RvhG/EcARwRHCEcMRxAELEZ8RxFhOU0JvdW5kc1hOU0N1cnNvcllO -U2N2RmxhZ3NZTlNEb2NWaWV3WU5TQkdDb2xvcoEETIEEkIEEjIEEjYEEjhAEgQRPEQkAgQRQgBiBBEyB -BFDSAA4ARQBNEcqAQaERxIEEUNwA0AAOANERzRHOEc8QaADTAmoR0ADVEdERrhHTEdQR1QEMEdYR1xHY -EdkR2hGuACtfEA9OU1RleHRDb250YWluZXJZTlNUVkZsYWdzXE5TU2hhcmVkRGF0YVhOU01pbml6ZVpO -U0RlbGVnYXRlgQROgQSLgQRYgQRZgQR4gQRREQkSgQSJgQSKgQROgADSAA4ARQBGEd+ACKsR4BB0EeIR -4xB2EeUQdxB5EHgR6RHqgQRSgQPvgQRTgQRUgQPxgQRVgQPygQP0gQPzgQRWgQRXXxAZTmVYVCBSVEZE -IHBhc3RlYm9hcmQgdHlwZV8QEk5TU3RyaW5nUGJvYXJkVHlwZV8QGkFwcGxlIEhUTUwgcGFzdGVib2Fy -ZCB0eXBlXxAXTlNDb2xvciBwYXN0ZWJvYXJkIHR5cGVfECNDb3JlUGFzdGVib2FyZEZsYXZvclR5cGUg -MHg2RDZGNkY3Nl8QKk5lWFQgUmljaCBUZXh0IEZvcm1hdCB2MS4wIHBhc3RlYm9hcmQgdHlwZV8QFnt7 -MCwgMjR9LCB7NDU5LCA0MDQ2fX3VEfMADhH0EfUR9gD1EfcRxBH5EfpZTlNUQ0ZsYWdzWk5TVGV4dFZp -ZXdXTlNXaWR0aF8QD05TTGF5b3V0TWFuYWdlcoEEd4EEUCNAfLAAAAAAAIEEWtUADhH8Ef0R/hHREf8S -ABIBAQwAK18QEE5TVGV4dENvbnRhaW5lcnNdTlNUZXh0U3RvcmFnZVlOU0xNRmxhZ3OBBHaBBHWBBFuA -ANQADhIEAD4R0RIFEgYSBwArXE5TQXR0cmlidXRlc4EEdIEEXYEEXIAA0gAOADYANxILgARfETsvCQkg -ICAgCQkgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQoJCSAgICAgIAkJIFZlcnNpb24gMiwgSnVu -ZSAxOTkxCgogQ29weXJpZ2h0IChDKSAxOTg5LCAxOTkxIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg -SW5jLgogICAgICAgICAgICAgICAgICAgICAgIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0 -b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBk -aXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hh -bmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgoJCQkgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZv -ciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNo -YXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNl -bnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5n -ZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBp -dHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRo -ZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dy -YW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3 -YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExpYnJhcnkgR2VuZXJh -bCBQdWJsaWMgTGljZW5zZSBpbnN0ZWFkLikgIFlvdSBjYW4gYXBwbHkgaXQgdG8KeW91ciBwcm9ncmFt -cywgdG9vLgoKICBXaGVuIHdlIHNwZWFrIG9mIGZyZWUgc29mdHdhcmUsIHdlIGFyZSByZWZlcnJpbmcg -dG8gZnJlZWRvbSwgbm90CnByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNp -Z25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKaGF2ZSB0aGUgZnJlZWRvbSB0byBkaXN0cmlidXRlIGNv -cGllcyBvZiBmcmVlIHNvZnR3YXJlIChhbmQgY2hhcmdlIGZvcgp0aGlzIHNlcnZpY2UgaWYgeW91IHdp -c2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQKaWYgeW91IHdhbnQg -aXQsIHRoYXQgeW91IGNhbiBjaGFuZ2UgdGhlIHNvZnR3YXJlIG9yIHVzZSBwaWVjZXMgb2YgaXQKaW4g -bmV3IGZyZWUgcHJvZ3JhbXM7IGFuZCB0aGF0IHlvdSBrbm93IHlvdSBjYW4gZG8gdGhlc2UgdGhpbmdz -LgoKICBUbyBwcm90ZWN0IHlvdXIgcmlnaHRzLCB3ZSBuZWVkIHRvIG1ha2UgcmVzdHJpY3Rpb25zIHRo -YXQgZm9yYmlkCmFueW9uZSB0byBkZW55IHlvdSB0aGVzZSByaWdodHMgb3IgdG8gYXNrIHlvdSB0byBz -dXJyZW5kZXIgdGhlIHJpZ2h0cy4KVGhlc2UgcmVzdHJpY3Rpb25zIHRyYW5zbGF0ZSB0byBjZXJ0YWlu -IHJlc3BvbnNpYmlsaXRpZXMgZm9yIHlvdSBpZiB5b3UKZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNv -ZnR3YXJlLCBvciBpZiB5b3UgbW9kaWZ5IGl0LgoKICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1 -dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCmdyYXRpcyBvciBmb3IgYSBmZWUsIHlv -dSBtdXN0IGdpdmUgdGhlIHJlY2lwaWVudHMgYWxsIHRoZSByaWdodHMgdGhhdAp5b3UgaGF2ZS4gIFlv -dSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZSBvciBjYW4gZ2V0IHRoZQpzb3Vy -Y2UgY29kZS4gIEFuZCB5b3UgbXVzdCBzaG93IHRoZW0gdGhlc2UgdGVybXMgc28gdGhleSBrbm93IHRo -ZWlyCnJpZ2h0cy4KCiAgV2UgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczogKDEpIGNv -cHlyaWdodCB0aGUgc29mdHdhcmUsIGFuZAooMikgb2ZmZXIgeW91IHRoaXMgbGljZW5zZSB3aGljaCBn -aXZlcyB5b3UgbGVnYWwgcGVybWlzc2lvbiB0byBjb3B5LApkaXN0cmlidXRlIGFuZC9vciBtb2RpZnkg -dGhlIHNvZnR3YXJlLgoKICBBbHNvLCBmb3IgZWFjaCBhdXRob3IncyBwcm90ZWN0aW9uIGFuZCBvdXJz -LCB3ZSB3YW50IHRvIG1ha2UgY2VydGFpbgp0aGF0IGV2ZXJ5b25lIHVuZGVyc3RhbmRzIHRoYXQgdGhl -cmUgaXMgbm8gd2FycmFudHkgZm9yIHRoaXMgZnJlZQpzb2Z0d2FyZS4gIElmIHRoZSBzb2Z0d2FyZSBp -cyBtb2RpZmllZCBieSBzb21lb25lIGVsc2UgYW5kIHBhc3NlZCBvbiwgd2UKd2FudCBpdHMgcmVjaXBp -ZW50cyB0byBrbm93IHRoYXQgd2hhdCB0aGV5IGhhdmUgaXMgbm90IHRoZSBvcmlnaW5hbCwgc28KdGhh -dCBhbnkgcHJvYmxlbXMgaW50cm9kdWNlZCBieSBvdGhlcnMgd2lsbCBub3QgcmVmbGVjdCBvbiB0aGUg -b3JpZ2luYWwKYXV0aG9ycycgcmVwdXRhdGlvbnMuCgogIEZpbmFsbHksIGFueSBmcmVlIHByb2dyYW0g -aXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlCnBhdGVudHMuICBXZSB3aXNoIHRvIGF2 -b2lkIHRoZSBkYW5nZXIgdGhhdCByZWRpc3RyaWJ1dG9ycyBvZiBhIGZyZWUKcHJvZ3JhbSB3aWxsIGlu -ZGl2aWR1YWxseSBvYnRhaW4gcGF0ZW50IGxpY2Vuc2VzLCBpbiBlZmZlY3QgbWFraW5nIHRoZQpwcm9n -cmFtIHByb3ByaWV0YXJ5LiAgVG8gcHJldmVudCB0aGlzLCB3ZSBoYXZlIG1hZGUgaXQgY2xlYXIgdGhh -dCBhbnkKcGF0ZW50IG11c3QgYmUgbGljZW5zZWQgZm9yIGV2ZXJ5b25lJ3MgZnJlZSB1c2Ugb3Igbm90 -IGxpY2Vuc2VkIGF0IGFsbC4KCiAgVGhlIHByZWNpc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNv -cHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQKbW9kaWZpY2F0aW9uIGZvbGxvdy4KCgoJCSAgICBHTlUgR0VO -RVJBTCBQVUJMSUMgTElDRU5TRQogICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgQ09QWUlORywgRElT -VFJJQlVUSU9OIEFORCBNT0RJRklDQVRJT04KCiAgMC4gVGhpcyBMaWNlbnNlIGFwcGxpZXMgdG8gYW55 -IHByb2dyYW0gb3Igb3RoZXIgd29yayB3aGljaCBjb250YWlucwphIG5vdGljZSBwbGFjZWQgYnkgdGhl -IGNvcHlyaWdodCBob2xkZXIgc2F5aW5nIGl0IG1heSBiZSBkaXN0cmlidXRlZAp1bmRlciB0aGUgdGVy -bXMgb2YgdGhpcyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLiAgVGhlICJQcm9ncmFtIiwgYmVsb3csCnJl -ZmVycyB0byBhbnkgc3VjaCBwcm9ncmFtIG9yIHdvcmssIGFuZCBhICJ3b3JrIGJhc2VkIG9uIHRoZSBQ -cm9ncmFtIgptZWFucyBlaXRoZXIgdGhlIFByb2dyYW0gb3IgYW55IGRlcml2YXRpdmUgd29yayB1bmRl -ciBjb3B5cmlnaHQgbGF3Ogp0aGF0IGlzIHRvIHNheSwgYSB3b3JrIGNvbnRhaW5pbmcgdGhlIFByb2dy -YW0gb3IgYSBwb3J0aW9uIG9mIGl0LAplaXRoZXIgdmVyYmF0aW0gb3Igd2l0aCBtb2RpZmljYXRpb25z -IGFuZC9vciB0cmFuc2xhdGVkIGludG8gYW5vdGhlcgpsYW5ndWFnZS4gIChIZXJlaW5hZnRlciwgdHJh -bnNsYXRpb24gaXMgaW5jbHVkZWQgd2l0aG91dCBsaW1pdGF0aW9uIGluCnRoZSB0ZXJtICJtb2RpZmlj -YXRpb24iLikgIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLgoKQWN0aXZpdGllcyBv -dGhlciB0aGFuIGNvcHlpbmcsIGRpc3RyaWJ1dGlvbiBhbmQgbW9kaWZpY2F0aW9uIGFyZSBub3QKY292 -ZXJlZCBieSB0aGlzIExpY2Vuc2U7IHRoZXkgYXJlIG91dHNpZGUgaXRzIHNjb3BlLiAgVGhlIGFjdCBv -ZgpydW5uaW5nIHRoZSBQcm9ncmFtIGlzIG5vdCByZXN0cmljdGVkLCBhbmQgdGhlIG91dHB1dCBmcm9t -IHRoZSBQcm9ncmFtCmlzIGNvdmVyZWQgb25seSBpZiBpdHMgY29udGVudHMgY29uc3RpdHV0ZSBhIHdv -cmsgYmFzZWQgb24gdGhlClByb2dyYW0gKGluZGVwZW5kZW50IG9mIGhhdmluZyBiZWVuIG1hZGUgYnkg -cnVubmluZyB0aGUgUHJvZ3JhbSkuCldoZXRoZXIgdGhhdCBpcyB0cnVlIGRlcGVuZHMgb24gd2hhdCB0 -aGUgUHJvZ3JhbSBkb2VzLgoKICAxLiBZb3UgbWF5IGNvcHkgYW5kIGRpc3RyaWJ1dGUgdmVyYmF0aW0g -Y29waWVzIG9mIHRoZSBQcm9ncmFtJ3MKc291cmNlIGNvZGUgYXMgeW91IHJlY2VpdmUgaXQsIGluIGFu -eSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91CmNvbnNwaWN1b3VzbHkgYW5kIGFwcHJvcHJpYXRlbHkg -cHVibGlzaCBvbiBlYWNoIGNvcHkgYW4gYXBwcm9wcmlhdGUKY29weXJpZ2h0IG5vdGljZSBhbmQgZGlz -Y2xhaW1lciBvZiB3YXJyYW50eTsga2VlcCBpbnRhY3QgYWxsIHRoZQpub3RpY2VzIHRoYXQgcmVmZXIg -dG8gdGhpcyBMaWNlbnNlIGFuZCB0byB0aGUgYWJzZW5jZSBvZiBhbnkgd2FycmFudHk7CmFuZCBnaXZl -IGFueSBvdGhlciByZWNpcGllbnRzIG9mIHRoZSBQcm9ncmFtIGEgY29weSBvZiB0aGlzIExpY2Vuc2UK -YWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KCllvdSBtYXkgY2hhcmdlIGEgZmVlIGZvciB0aGUgcGh5c2lj -YWwgYWN0IG9mIHRyYW5zZmVycmluZyBhIGNvcHksIGFuZAp5b3UgbWF5IGF0IHlvdXIgb3B0aW9uIG9m -ZmVyIHdhcnJhbnR5IHByb3RlY3Rpb24gaW4gZXhjaGFuZ2UgZm9yIGEgZmVlLgoKICAyLiBZb3UgbWF5 -IG1vZGlmeSB5b3VyIGNvcHkgb3IgY29waWVzIG9mIHRoZSBQcm9ncmFtIG9yIGFueSBwb3J0aW9uCm9m -IGl0LCB0aHVzIGZvcm1pbmcgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBhbmQgY29weSBhbmQK -ZGlzdHJpYnV0ZSBzdWNoIG1vZGlmaWNhdGlvbnMgb3Igd29yayB1bmRlciB0aGUgdGVybXMgb2YgU2Vj -dGlvbiAxCmFib3ZlLCBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIG1lZXQgYWxsIG9mIHRoZXNlIGNvbmRp -dGlvbnM6CgogICAgYSkgWW91IG11c3QgY2F1c2UgdGhlIG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHBy -b21pbmVudCBub3RpY2VzCiAgICBzdGF0aW5nIHRoYXQgeW91IGNoYW5nZWQgdGhlIGZpbGVzIGFuZCB0 -aGUgZGF0ZSBvZiBhbnkgY2hhbmdlLgoKICAgIGIpIFlvdSBtdXN0IGNhdXNlIGFueSB3b3JrIHRoYXQg -eW91IGRpc3RyaWJ1dGUgb3IgcHVibGlzaCwgdGhhdCBpbgogICAgd2hvbGUgb3IgaW4gcGFydCBjb250 -YWlucyBvciBpcyBkZXJpdmVkIGZyb20gdGhlIFByb2dyYW0gb3IgYW55CiAgICBwYXJ0IHRoZXJlb2Ys -IHRvIGJlIGxpY2Vuc2VkIGFzIGEgd2hvbGUgYXQgbm8gY2hhcmdlIHRvIGFsbCB0aGlyZAogICAgcGFy -dGllcyB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLgoKICAgIGMpIElmIHRoZSBtb2RpZmll -ZCBwcm9ncmFtIG5vcm1hbGx5IHJlYWRzIGNvbW1hbmRzIGludGVyYWN0aXZlbHkKICAgIHdoZW4gcnVu -LCB5b3UgbXVzdCBjYXVzZSBpdCwgd2hlbiBzdGFydGVkIHJ1bm5pbmcgZm9yIHN1Y2gKICAgIGludGVy -YWN0aXZlIHVzZSBpbiB0aGUgbW9zdCBvcmRpbmFyeSB3YXksIHRvIHByaW50IG9yIGRpc3BsYXkgYW4K -ICAgIGFubm91bmNlbWVudCBpbmNsdWRpbmcgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSBh -bmQgYQogICAgbm90aWNlIHRoYXQgdGhlcmUgaXMgbm8gd2FycmFudHkgKG9yIGVsc2UsIHNheWluZyB0 -aGF0IHlvdSBwcm92aWRlCiAgICBhIHdhcnJhbnR5KSBhbmQgdGhhdCB1c2VycyBtYXkgcmVkaXN0cmli -dXRlIHRoZSBwcm9ncmFtIHVuZGVyCiAgICB0aGVzZSBjb25kaXRpb25zLCBhbmQgdGVsbGluZyB0aGUg -dXNlciBob3cgdG8gdmlldyBhIGNvcHkgb2YgdGhpcwogICAgTGljZW5zZS4gIChFeGNlcHRpb246IGlm -IHRoZSBQcm9ncmFtIGl0c2VsZiBpcyBpbnRlcmFjdGl2ZSBidXQKICAgIGRvZXMgbm90IG5vcm1hbGx5 -IHByaW50IHN1Y2ggYW4gYW5ub3VuY2VtZW50LCB5b3VyIHdvcmsgYmFzZWQgb24KICAgIHRoZSBQcm9n -cmFtIGlzIG5vdCByZXF1aXJlZCB0byBwcmludCBhbiBhbm5vdW5jZW1lbnQuKQoKClRoZXNlIHJlcXVp -cmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdob2xlLiAgSWYKaWRlbnRpZmlh -YmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSwK -YW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdv -cmtzIGluCnRoZW1zZWx2ZXMsIHRoZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBub3Qg -YXBwbHkgdG8gdGhvc2UKc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFyYXRl -IHdvcmtzLiAgQnV0IHdoZW4geW91CmRpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBv -ZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZApvbiB0aGUgUHJvZ3JhbSwgdGhlIGRpc3RyaWJ1 -dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YKdGhpcyBMaWNlbnNlLCB3aG9z -ZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKZW50aXJlIHdob2xl -LCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0 -LgoKVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0 -cyBvciBjb250ZXN0CnlvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJh -dGhlciwgdGhlIGludGVudCBpcyB0bwpleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUgZGlz -dHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IKY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgUHJv -Z3JhbS4KCkluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3QgYmFz -ZWQgb24gdGhlIFByb2dyYW0Kd2l0aCB0aGUgUHJvZ3JhbSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24g -dGhlIFByb2dyYW0pIG9uIGEgdm9sdW1lIG9mCmEgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVt -IGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCnRoZSBzY29wZSBvZiB0aGlzIExpY2Vu -c2UuCgogIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3Jr -IGJhc2VkIG9uIGl0LAp1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUg -Zm9ybSB1bmRlciB0aGUgdGVybXMgb2YKU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0 -IHlvdSBhbHNvIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nOgoKICAgIGEpIEFjY29tcGFueSBpdCB3aXRo -IHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUKICAgIHNvdXJjZSBjb2Rl -LCB3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucwogICAg -MSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRl -cmNoYW5nZTsgb3IsCgogICAgYikgQWNjb21wYW55IGl0IHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxp -ZCBmb3IgYXQgbGVhc3QgdGhyZWUKICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9y -IGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCiAgICBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWlu -ZyBzb3VyY2UgZGlzdHJpYnV0aW9uLCBhIGNvbXBsZXRlCiAgICBtYWNoaW5lLXJlYWRhYmxlIGNvcHkg -b2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUsIHRvIGJlCiAgICBkaXN0cmlidXRlZCB1bmRl -ciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQogICAgY3VzdG9t -YXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLAoKICAgIGMpIEFjY29tcGFueSBp -dCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCiAgICB0byBk -aXN0cmlidXRlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUuICAoVGhpcyBhbHRlcm5hdGl2ZSBpcwog -ICAgYWxsb3dlZCBvbmx5IGZvciBub25jb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBhbmQgb25seSBpZiB5 -b3UKICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9y -bSB3aXRoIHN1Y2gKICAgIGFuIG9mZmVyLCBpbiBhY2NvcmQgd2l0aCBTdWJzZWN0aW9uIGIgYWJvdmUu -KQoKVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRo -ZSB3b3JrIGZvcgptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhbiBleGVjdXRhYmxlIHdv -cmssIGNvbXBsZXRlIHNvdXJjZQpjb2RlIG1lYW5zIGFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbCBt -b2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueQphc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9u -IGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KY29udHJvbCBjb21waWxhdGlvbiBhbmQgaW5z -dGFsbGF0aW9uIG9mIHRoZSBleGVjdXRhYmxlLiAgSG93ZXZlciwgYXMgYQpzcGVjaWFsIGV4Y2VwdGlv -biwgdGhlIHNvdXJjZSBjb2RlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1ZGUKYW55dGhpbmcgdGhh -dCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKZm9ybSkg -d2l0aCB0aGUgbWFqb3IgY29tcG9uZW50cyAoY29tcGlsZXIsIGtlcm5lbCwgYW5kIHNvIG9uKSBvZiB0 -aGUKb3BlcmF0aW5nIHN5c3RlbSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLCB1bmxlc3MgdGhh -dCBjb21wb25lbnQKaXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgoKSWYgZGlzdHJpYnV0 -aW9uIG9mIGV4ZWN1dGFibGUgb3Igb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZwphY2Nlc3Mg -dG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CmFj -Y2VzcyB0byBjb3B5IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNlIGNvdW50cyBhcwpk -aXN0cmlidXRpb24gb2YgdGhlIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFy -ZSBub3QKY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29k -ZS4KCgogIDQuIFlvdSBtYXkgbm90IGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSwgb3IgZGlzdHJpYnV0 -ZSB0aGUgUHJvZ3JhbQpleGNlcHQgYXMgZXhwcmVzc2x5IHByb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5z -ZS4gIEFueSBhdHRlbXB0Cm90aGVyd2lzZSB0byBjb3B5LCBtb2RpZnksIHN1YmxpY2Vuc2Ugb3IgZGlz -dHJpYnV0ZSB0aGUgUHJvZ3JhbSBpcwp2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0 -ZSB5b3VyIHJpZ2h0cyB1bmRlciB0aGlzIExpY2Vuc2UuCkhvd2V2ZXIsIHBhcnRpZXMgd2hvIGhhdmUg -cmVjZWl2ZWQgY29waWVzLCBvciByaWdodHMsIGZyb20geW91IHVuZGVyCnRoaXMgTGljZW5zZSB3aWxs -IG5vdCBoYXZlIHRoZWlyIGxpY2Vuc2VzIHRlcm1pbmF0ZWQgc28gbG9uZyBhcyBzdWNoCnBhcnRpZXMg -cmVtYWluIGluIGZ1bGwgY29tcGxpYW5jZS4KCiAgNS4gWW91IGFyZSBub3QgcmVxdWlyZWQgdG8gYWNj -ZXB0IHRoaXMgTGljZW5zZSwgc2luY2UgeW91IGhhdmUgbm90CnNpZ25lZCBpdC4gIEhvd2V2ZXIsIG5v -dGhpbmcgZWxzZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gbW9kaWZ5IG9yCmRpc3RyaWJ1dGUgdGhl -IFByb2dyYW0gb3IgaXRzIGRlcml2YXRpdmUgd29ya3MuICBUaGVzZSBhY3Rpb25zIGFyZQpwcm9oaWJp -dGVkIGJ5IGxhdyBpZiB5b3UgZG8gbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5 -Cm1vZGlmeWluZyBvciBkaXN0cmlidXRpbmcgdGhlIFByb2dyYW0gKG9yIGFueSB3b3JrIGJhc2VkIG9u -IHRoZQpQcm9ncmFtKSwgeW91IGluZGljYXRlIHlvdXIgYWNjZXB0YW5jZSBvZiB0aGlzIExpY2Vuc2Ug -dG8gZG8gc28sIGFuZAphbGwgaXRzIHRlcm1zIGFuZCBjb25kaXRpb25zIGZvciBjb3B5aW5nLCBkaXN0 -cmlidXRpbmcgb3IgbW9kaWZ5aW5nCnRoZSBQcm9ncmFtIG9yIHdvcmtzIGJhc2VkIG9uIGl0LgoKICA2 -LiBFYWNoIHRpbWUgeW91IHJlZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQg -b24gdGhlClByb2dyYW0pLCB0aGUgcmVjaXBpZW50IGF1dG9tYXRpY2FsbHkgcmVjZWl2ZXMgYSBsaWNl -bnNlIGZyb20gdGhlCm9yaWdpbmFsIGxpY2Vuc29yIHRvIGNvcHksIGRpc3RyaWJ1dGUgb3IgbW9kaWZ5 -IHRoZSBQcm9ncmFtIHN1YmplY3QgdG8KdGhlc2UgdGVybXMgYW5kIGNvbmRpdGlvbnMuICBZb3UgbWF5 -IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIKcmVzdHJpY3Rpb25zIG9uIHRoZSByZWNpcGllbnRzJyBleGVy -Y2lzZSBvZiB0aGUgcmlnaHRzIGdyYW50ZWQgaGVyZWluLgpZb3UgYXJlIG5vdCByZXNwb25zaWJsZSBm -b3IgZW5mb3JjaW5nIGNvbXBsaWFuY2UgYnkgdGhpcmQgcGFydGllcyB0bwp0aGlzIExpY2Vuc2UuCgog -IDcuIElmLCBhcyBhIGNvbnNlcXVlbmNlIG9mIGEgY291cnQganVkZ21lbnQgb3IgYWxsZWdhdGlvbiBv -ZiBwYXRlbnQKaW5mcmluZ2VtZW50IG9yIGZvciBhbnkgb3RoZXIgcmVhc29uIChub3QgbGltaXRlZCB0 -byBwYXRlbnQgaXNzdWVzKSwKY29uZGl0aW9ucyBhcmUgaW1wb3NlZCBvbiB5b3UgKHdoZXRoZXIgYnkg -Y291cnQgb3JkZXIsIGFncmVlbWVudCBvcgpvdGhlcndpc2UpIHRoYXQgY29udHJhZGljdCB0aGUgY29u -ZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UsIHRoZXkgZG8gbm90CmV4Y3VzZSB5b3UgZnJvbSB0aGUgY29u -ZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90CmRpc3RyaWJ1dGUgc28gYXMgdG8g -c2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKTGljZW5zZSBh -bmQgYW55IG90aGVyIHBlcnRpbmVudCBvYmxpZ2F0aW9ucywgdGhlbiBhcyBhIGNvbnNlcXVlbmNlIHlv -dQptYXkgbm90IGRpc3RyaWJ1dGUgdGhlIFByb2dyYW0gYXQgYWxsLiAgRm9yIGV4YW1wbGUsIGlmIGEg -cGF0ZW50CmxpY2Vuc2Ugd291bGQgbm90IHBlcm1pdCByb3lhbHR5LWZyZWUgcmVkaXN0cmlidXRpb24g -b2YgdGhlIFByb2dyYW0gYnkKYWxsIHRob3NlIHdobyByZWNlaXZlIGNvcGllcyBkaXJlY3RseSBvciBp -bmRpcmVjdGx5IHRocm91Z2ggeW91LCB0aGVuCnRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBi -b3RoIGl0IGFuZCB0aGlzIExpY2Vuc2Ugd291bGQgYmUgdG8KcmVmcmFpbiBlbnRpcmVseSBmcm9tIGRp -c3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbS4KCklmIGFueSBwb3J0aW9uIG9mIHRoaXMgc2VjdGlvbiBp -cyBoZWxkIGludmFsaWQgb3IgdW5lbmZvcmNlYWJsZSB1bmRlcgphbnkgcGFydGljdWxhciBjaXJjdW1z -dGFuY2UsIHRoZSBiYWxhbmNlIG9mIHRoZSBzZWN0aW9uIGlzIGludGVuZGVkIHRvCmFwcGx5IGFuZCB0 -aGUgc2VjdGlvbiBhcyBhIHdob2xlIGlzIGludGVuZGVkIHRvIGFwcGx5IGluIG90aGVyCmNpcmN1bXN0 -YW5jZXMuCgpJdCBpcyBub3QgdGhlIHB1cnBvc2Ugb2YgdGhpcyBzZWN0aW9uIHRvIGluZHVjZSB5b3Ug -dG8gaW5mcmluZ2UgYW55CnBhdGVudHMgb3Igb3RoZXIgcHJvcGVydHkgcmlnaHQgY2xhaW1zIG9yIHRv -IGNvbnRlc3QgdmFsaWRpdHkgb2YgYW55CnN1Y2ggY2xhaW1zOyB0aGlzIHNlY3Rpb24gaGFzIHRoZSBz -b2xlIHB1cnBvc2Ugb2YgcHJvdGVjdGluZyB0aGUKaW50ZWdyaXR5IG9mIHRoZSBmcmVlIHNvZnR3YXJl -IGRpc3RyaWJ1dGlvbiBzeXN0ZW0sIHdoaWNoIGlzCmltcGxlbWVudGVkIGJ5IHB1YmxpYyBsaWNlbnNl -IHByYWN0aWNlcy4gIE1hbnkgcGVvcGxlIGhhdmUgbWFkZQpnZW5lcm91cyBjb250cmlidXRpb25zIHRv -IHRoZSB3aWRlIHJhbmdlIG9mIHNvZnR3YXJlIGRpc3RyaWJ1dGVkCnRocm91Z2ggdGhhdCBzeXN0ZW0g -aW4gcmVsaWFuY2Ugb24gY29uc2lzdGVudCBhcHBsaWNhdGlvbiBvZiB0aGF0CnN5c3RlbTsgaXQgaXMg -dXAgdG8gdGhlIGF1dGhvci9kb25vciB0byBkZWNpZGUgaWYgaGUgb3Igc2hlIGlzIHdpbGxpbmcKdG8g -ZGlzdHJpYnV0ZSBzb2Z0d2FyZSB0aHJvdWdoIGFueSBvdGhlciBzeXN0ZW0gYW5kIGEgbGljZW5zZWUg -Y2Fubm90CmltcG9zZSB0aGF0IGNob2ljZS4KClRoaXMgc2VjdGlvbiBpcyBpbnRlbmRlZCB0byBtYWtl -IHRob3JvdWdobHkgY2xlYXIgd2hhdCBpcyBiZWxpZXZlZCB0bwpiZSBhIGNvbnNlcXVlbmNlIG9mIHRo -ZSByZXN0IG9mIHRoaXMgTGljZW5zZS4KCgogIDguIElmIHRoZSBkaXN0cmlidXRpb24gYW5kL29yIHVz -ZSBvZiB0aGUgUHJvZ3JhbSBpcyByZXN0cmljdGVkIGluCmNlcnRhaW4gY291bnRyaWVzIGVpdGhlciBi -eSBwYXRlbnRzIG9yIGJ5IGNvcHlyaWdodGVkIGludGVyZmFjZXMsIHRoZQpvcmlnaW5hbCBjb3B5cmln -aHQgaG9sZGVyIHdobyBwbGFjZXMgdGhlIFByb2dyYW0gdW5kZXIgdGhpcyBMaWNlbnNlCm1heSBhZGQg -YW4gZXhwbGljaXQgZ2VvZ3JhcGhpY2FsIGRpc3RyaWJ1dGlvbiBsaW1pdGF0aW9uIGV4Y2x1ZGluZwp0 -aG9zZSBjb3VudHJpZXMsIHNvIHRoYXQgZGlzdHJpYnV0aW9uIGlzIHBlcm1pdHRlZCBvbmx5IGluIG9y -IGFtb25nCmNvdW50cmllcyBub3QgdGh1cyBleGNsdWRlZC4gIEluIHN1Y2ggY2FzZSwgdGhpcyBMaWNl -bnNlIGluY29ycG9yYXRlcwp0aGUgbGltaXRhdGlvbiBhcyBpZiB3cml0dGVuIGluIHRoZSBib2R5IG9m -IHRoaXMgTGljZW5zZS4KCiAgOS4gVGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBtYXkgcHVibGlz -aCByZXZpc2VkIGFuZC9vciBuZXcgdmVyc2lvbnMKb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug -ZnJvbSB0aW1lIHRvIHRpbWUuICBTdWNoIG5ldyB2ZXJzaW9ucyB3aWxsCmJlIHNpbWlsYXIgaW4gc3Bp -cml0IHRvIHRoZSBwcmVzZW50IHZlcnNpb24sIGJ1dCBtYXkgZGlmZmVyIGluIGRldGFpbCB0bwphZGRy -ZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KCkVhY2ggdmVyc2lvbiBpcyBnaXZlbiBhIGRpc3Rp -bmd1aXNoaW5nIHZlcnNpb24gbnVtYmVyLiAgSWYgdGhlIFByb2dyYW0Kc3BlY2lmaWVzIGEgdmVyc2lv -biBudW1iZXIgb2YgdGhpcyBMaWNlbnNlIHdoaWNoIGFwcGxpZXMgdG8gaXQgYW5kICJhbnkKbGF0ZXIg -dmVyc2lvbiIsIHlvdSBoYXZlIHRoZSBvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29u -ZGl0aW9ucwplaXRoZXIgb2YgdGhhdCB2ZXJzaW9uIG9yIG9mIGFueSBsYXRlciB2ZXJzaW9uIHB1Ymxp -c2hlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLiAgSWYgdGhlIFByb2dyYW0gZG9lcyBu -b3Qgc3BlY2lmeSBhIHZlcnNpb24gbnVtYmVyIG9mCnRoaXMgTGljZW5zZSwgeW91IG1heSBjaG9vc2Ug -YW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKRm91bmRhdGlvbi4K -CiAgMTAuIElmIHlvdSB3aXNoIHRvIGluY29ycG9yYXRlIHBhcnRzIG9mIHRoZSBQcm9ncmFtIGludG8g -b3RoZXIgZnJlZQpwcm9ncmFtcyB3aG9zZSBkaXN0cmlidXRpb24gY29uZGl0aW9ucyBhcmUgZGlmZmVy -ZW50LCB3cml0ZSB0byB0aGUgYXV0aG9yCnRvIGFzayBmb3IgcGVybWlzc2lvbi4gIEZvciBzb2Z0d2Fy -ZSB3aGljaCBpcyBjb3B5cmlnaHRlZCBieSB0aGUgRnJlZQpTb2Z0d2FyZSBGb3VuZGF0aW9uLCB3cml0 -ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB3ZSBzb21ldGltZXMKbWFrZSBleGNlcHRp -b25zIGZvciB0aGlzLiAgT3VyIGRlY2lzaW9uIHdpbGwgYmUgZ3VpZGVkIGJ5IHRoZSB0d28gZ29hbHMK -b2YgcHJlc2VydmluZyB0aGUgZnJlZSBzdGF0dXMgb2YgYWxsIGRlcml2YXRpdmVzIG9mIG91ciBmcmVl -IHNvZnR3YXJlIGFuZApvZiBwcm9tb3RpbmcgdGhlIHNoYXJpbmcgYW5kIHJldXNlIG9mIHNvZnR3YXJl -IGdlbmVyYWxseS4KCgkJCSAgICBOTyBXQVJSQU5UWQoKICAxMS4gQkVDQVVTRSBUSEUgUFJPR1JBTSBJ -UyBMSUNFTlNFRCBGUkVFIE9GIENIQVJHRSwgVEhFUkUgSVMgTk8gV0FSUkFOVFkKRk9SIFRIRSBQUk9H -UkFNLCBUTyBUSEUgRVhURU5UIFBFUk1JVFRFRCBCWSBBUFBMSUNBQkxFIExBVy4gIEVYQ0VQVCBXSEVO -Ck9USEVSV0lTRSBTVEFURUQgSU4gV1JJVElORyBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EL09SIE9U -SEVSIFBBUlRJRVMKUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkgT0Yg -QU5ZIEtJTkQsIEVJVEhFUiBFWFBSRVNTRUQKT1IgSU1QTElFRCwgSU5DTFVESU5HLCBCVVQgTk9UIExJ -TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YKTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO -RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUwpUTyBUSEUgUVVB -TElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0gSVMgV0lUSCBZT1UuICBTSE9VTEQgVEhF -ClBST0dSQU0gUFJPVkUgREVGRUNUSVZFLCBZT1UgQVNTVU1FIFRIRSBDT1NUIE9GIEFMTCBORUNFU1NB -UlkgU0VSVklDSU5HLApSRVBBSVIgT1IgQ09SUkVDVElPTi4KCiAgMTIuIElOIE5PIEVWRU5UIFVOTEVT -UyBSRVFVSVJFRCBCWSBBUFBMSUNBQkxFIExBVyBPUiBBR1JFRUQgVE8gSU4gV1JJVElORwpXSUxMIEFO -WSBDT1BZUklHSFQgSE9MREVSLCBPUiBBTlkgT1RIRVIgUEFSVFkgV0hPIE1BWSBNT0RJRlkgQU5EL09S -ClJFRElTVFJJQlVURSBUSEUgUFJPR1JBTSBBUyBQRVJNSVRURUQgQUJPVkUsIEJFIExJQUJMRSBUTyBZ -T1UgRk9SIERBTUFHRVMsCklOQ0xVRElORyBBTlkgR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBP -UiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORwpPVVQgT0YgVEhFIFVTRSBPUiBJTkFCSUxJVFkg -VE8gVVNFIFRIRSBQUk9HUkFNIChJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEClRPIExPU1MgT0YgREFU -QSBPUiBEQVRBIEJFSU5HIFJFTkRFUkVEIElOQUNDVVJBVEUgT1IgTE9TU0VTIFNVU1RBSU5FRCBCWQpZ -T1UgT1IgVEhJUkQgUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBX -SVRIIEFOWSBPVEhFUgpQUk9HUkFNUyksIEVWRU4gSUYgU1VDSCBIT0xERVIgT1IgT1RIRVIgUEFSVFkg -SEFTIEJFRU4gQURWSVNFRCBPRiBUSEUKUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0VTLgoKCQkgICAg -IEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OU9MADhINAEUSDhIPEhJXTlMua2V5c4EEc6ISEBIRgQRe -gQRfohITEhSBBGCBBHFfEBBOU1BhcmFncmFwaFN0eWxl1BIXAA4SGBIZEhoSGwD1EcFaTlNUYWJTdG9w -c18QEk5TV3JpdGluZ0RpcmVjdGlvbltOU0FsaWdubWVudIEEYYEEcNIADgBFEh0SHoEEb6wSHxIgEiES -IhIjEiQSJRImEicSKBIpEiqBBGKBBGSBBGWBBGaBBGeBBGiBBGmBBGqBBGuBBGyBBG2BBG7SAA4SLBIt -Ei5aTlNMb2NhdGlvboEEYyNAPAAAAAAAANIAOgA7EjASMaISMQA/WU5TVGV4dFRhYtIADhIsEi0SNIEE -YyNATAAAAAAAANIADhIsEi0SN4EEYyNAVQAAAAAAANIADhIsEi0SOoEEYyNAXAAAAAAAANIADhIsEi0S -PYEEYyNAYYAAAAAAANIADhIsEi0SQIEEYyNAZQAAAAAAANIADhIsEi0SQ4EEYyNAaIAAAAAAANIADhIs -Ei0SRoEEYyNAbAAAAAAAANIADhIsEi0SSYEEYyNAb4AAAAAAANIADhIsEi0STIEEYyNAcYAAAAAAANIA -DhIsEi0ST4EEYyNAc0AAAAAAANIADhIsEi0SUoEEYyNAdQAAAAAAANIAOgA7ElQB0KIB0AA/0gA6ADsS -VhIVohIVAD/UAA4A+gD7APwA/Qd7ElkBAIAUgQRyVk1vbmFjb9IAOgA7ElwSXaISXQA/XE5TRGljdGlv -bmFyedIAOgA7El8R/aQR/RJgEmEAP18QGU5TTXV0YWJsZUF0dHJpYnV0ZWRTdHJpbmdfEBJOU0F0dHJp -YnV0ZWRTdHJpbmfSAA4ARQBNEmSAQaER1YEEWdIAOgA7EmcR9qIR9gA/0gA6ADsSaRHNohHNAD/YAA4S -axJsEm0A5hJuEm8ScBJxEnIAKwMeAQsSdgArEnhXTlNGbGFnc18QF05TRGVmYXVsdFBhcmFncmFwaFN0 -eWxlXxAQTlNJbnNlcnRpb25Db2xvcl8QFE5TU2VsZWN0ZWRBdHRyaWJ1dGVzXxASTlNNYXJrZWRBdHRy -aWJ1dGVzXxAQTlNMaW5rQXR0cmlidXRlc4EEiBELZIAAgJmAGIEEeYAAgQSA0wAOEg0ARRIOEnsSfoEE -c6ISfBJ9gQR6gQR7ohJ/EoCBBHyBBH7VAA4BBgEHAQgBCQEKAxUBDBKEAQ6AGYCWgQR9gBZfEBtzZWxl -Y3RlZFRleHRCYWNrZ3JvdW5kQ29sb3LVAA4BBgEHAQgBCQEKAx4BDBKKAQ6AGYCZgQR/gBZfEBFzZWxl -Y3RlZFRleHRDb2xvctMADhINAEUSDhKPEpOBBHOjEpASkRJ9gQSBgQSCgQR7oxKUEpUSloEEg4EEhIEE -h1tOU1VuZGVybGluZdMADhKZEpoSmxKcEp1ZTlNIb3RTcG90XE5TQ3Vyc29yVHlwZYEEhoEEhRANV3s4 -LCAtOH3SADoAOxKgEbiiEbgAP9MADgEHARkBCgD1EqOAGUYwIDAgMQDSADoAOxKlEqaiEqYAP18QFE5T -VGV4dFZpZXdTaGFyZWREYXRhXHs0NjUsIDFlKzA3fVl7ODMsIDMzM33SADoAOxKqEfSlEfQSqwEkASUA -P1ZOU1RleHRfEBR7ezEsIDF9LCB7NDU5LCAzMzN9fV8QFXt7MCwgMjR9LCB7NDU5LCAzMzN9fdMADhKZ -EpoSmxKwB02BBIaBBI9XezEsIC0xfdIAOgA7ErMStKQStAEkASUAP1pOU0NsaXBWaWV32QDQAZAADgDR -ANMA1AGXANUSthGfEZ8SuRK6ANoA2xK8EZ8SvllOU1BlcmNlbnSBBEyBBEyBBJSBBJIJgQSTgQRMIz+1 -EdfAAAAAXxAVe3s0NjAsIDF9LCB7MTUsIDMzM319XF9kb1Njcm9sbGVyOtIAOgA7EsISw6USwwEjASQB -JQA/Wk5TU2Nyb2xsZXLaANABkAAOANERowDTAZcA1RLFErYRnxGfErkSyQD1ANoSvBGfEswSzVpOU0N1 -clZhbHVlgQRMgQRMgQSUgQSWgQSTgQRMIz/wAAAAAAAAIz/uQshgAAAAXxAYe3stMTAwLCAtMTAwfSwg -ezg3LCAxOH19XxAWe3syMCwgNjB9LCB7NDc2LCAzMzV9fdIAOgA7EtES0qQS0gEkASUAP1xOU1Njcm9s -bFZpZXdfEBR7ezEsIDl9LCB7NTE2LCA0MTV9fdQADgDEAMUAxgIHAjgOUxLYgFuAZIEDfIEEnlZwb2xs -TDrUAA4AxADFAMYAxwKEAMkS3oAegG6AC4EEoF5jaGVhdEZpZWxkR1NBMtQADgDEAMUAxgDHByQBVBLk -gB6BAjOAKIEEoltnYkZyYW1lU2tpcNQADgDEAMUAxgDHAS4ChQEvgB6AIIBxgCbUAA4AxADFAMYAxw5i -AjgS74AegQOPgGSBBKVbc2VsZWN0RmllbGTUAA4AxADFAMYCBwI4Dk8S9YBbgGSBA22BBKdWcG9sbEI6 -1AAOAMQAxQDGAgcAyRL6EvuAW4ALgQSpgQSr2AAOAZEBkgGTAZQBlQGWAXQBmhL+AZwA8QGeAZ8BoAO4 -gDuBBKqAEYA0gDiAwF8QHkFkZCBHYW1lU2hhcmtBZHZhbmNlIENoZWF0cy4uLl1vcGVuQ2hlYXRHU0E6 -1AAOAMQAxQDGAgcCOA5OEwmAW4BkgQNogQStVnBvbGxBOtIADgBFEh0TDYEEb68RAWwGqQM1DOAEewnf -AeMEigOWDmMC/gndCtUB+gSiBWkJUA9CCw4InRFNEJoEDQytByQHZgctC9IM3wDZBokOUwZQB2QG7gjN -DhEFdwYWDXcHIQY7B10TOAdBDJ0BNANEB64QMQ/5EFAJQAncBRgLOAS9CyoLgQ/vEG0D8Qt2A68Oag6Q -CPgM1g3eBz0F0wW5BqIHHg5WByMJhg5hDAMHBgwqAeAHPA5VAy4HOgYHA8cIcwmVBykHLA+0BKYHJwFU -A9kKLQqABy4M3QTWE3MTdA2vEOoHKwNcB2cO7xN7As0C5goSBUMCrQ5iB84OZQguAd8IMgsDBJEChAq5 -BX4P5weIAYQTjwvDAjkD9QKOCcQFPwWjE5cMOBBPEacGZwVbBCEGABHEB70I9ATpCeAMEgfdC1YH2Qoi -BzsCxQXyENYQUQpZBTQIIwcvDLgM1wTtDH0OtgMFDxIK8wdlA0AF0QcwBN0FEgj5CW8TwgzYAj8F6wKd -DG8HKhPJA7gQ7RPMB/UEGhGfA7ADaQ7JBJUPAhPVCjEC1wpwBE0Rfgq9BaoHOAzbESQJMAcfAS0FjQjc -B5cRrREEDOEKSgzeA88IWAZPDFMMSAJgAMgCCQa8DlEENgzVDYcHOQ20CbUJwBP8CGgI9wYSCxIMvAh3 -AMkChRBWByIHIAdeDFcRiwbVBlgBRA42DlAN7A6jB2APMgFbFBURPhQXAX4HMwW1BlMHkwvODNoK4wml -AVMQEwUVCq4HQwNwC4UFLQIPDfIPIhQsDk4FlA9SCEoHXwc2D5kHYwRcC58JawvqDlcIEwPkBL4LWw5L -FD8HQAjYEAEL6wueBtsC7AgDAokM2QwOEPAHGwEuDgsOSg9uCL0OTwQ9C6AHbAlgBsINZwYuAV4EYgdh -BygM3A3QAjgCPBL6EE4MjRRlCI8HNwj1BHQHHQc+BnoD4AneANYBwhRxBQQHPxAyAeYO3A59EKsDkIEB -goCggQMVgPWBAkOASID4gLiBA5KAkYECP4ECeYBNgP2BAS6BAh2BA5SBAoiBAeyBBDSBA/2A14EC7IEC -M4EB3oECb4ECuYEDEoAQgQF4gQN8gQFqgQHOgQGVgQH7gQNOgQEzgQFbgQMhgQIfgQFjgQGkgQSvgQMi -gQLogCKApIEBtIED44ED0IED+4ECGYECPYEBHIECkYEBA4ECjYECpIEDy4ED9oDSgQKhgMOBA2CBA2qB -Ag2BAviBAz+BAuaBAUuBAUOBAYCBAhOBA4aBAi+BAimBA4yBAsSBAZyBAsyAR4EC4oEDgYCegQLSgQFX -gMeBAeOBAi2BAlmBAmeBA7mA/oECR4AogMyBAlCBAmWBAnuBAwyBAQuBBLKBBLmBAyyBBBiBAmOAqIEB -6oEDg4EEvICAgIqBAkmBASaAdoEDj4EBvIEDlYEB04BLgQHUgQKFgPuAboECdIEBNYEDyoEBrIAygQS/ -gQK1gF2A04BwgQI5gQElgQE9gQTBgQLQgQPtgQSVgQFsgQEqgN2BAVWBBFCBAbiBAgSBARCBAkWBAsiB -AcCBApaBAb+BAk2BAt6Af4EBUoEEEYED/4ECW4EBIoEB0IECf4EC74EC+4EBEYEC4IEDdICTgQOLgQKB -gQHagKOBAUiBAoOBAQ2BARmBAhCBAiWBBMKBAv6AYIEBUIBzgQLcgQJfgQTIgMCBBBmBBM+BAcSA24EE -TIC/gKyBA3mBApOBA4iBBNCBAlGAhYECYYDngQRDgQJ1gQE/gQLCgQMGgQQngQIVgQIXgCOBATiBAf+B -AbCBBJGBBB2BAxiBAlaBAw+AyIEB3IEBZ4EC14EC1IBogA2AT4EBh4EDd4DigQL1gQMkgQLOgQMugQI1 -gQI4gQSzgQHggQIKgQFagQKJgQLwgQHkgAuAcYED6oECK4ECG4EBqoEC2IEER4EBjoEBaYAlgQNZgQNy -gQNDgQNvgQG6gQORgCuBBMyBBC+BBM6AMYECj4EBQoEBb4EBr4ECuIEDBIECfYECMYAqgQPYgQEagQJx -gQMogK6BAqWBASCAUYEDRYEDjoEE14EDaIEBOoEDl4EB2IEBtoECn4EDsIEByoDsgQKtgQIkgQK+gQOJ -gQHMgQGhgQEGgQKYgQNjgQTNgQMfgQH+gQPRgQLAgQKqgQGQgIyBAciAdIEDAYECx4EEG4EB9YAggQNM -gQNegQOigQH3gQNtgOSBArCBAaaBAiGBAYmBAx2BAV+ALYDugQHGgQJLgQMJgQM7gGSAXoEEqYED6IEC -5IEE1IEB6IECs4ECB4DzgQH5gQLqgQFxgM+BAkGADoA+gQTGgQEVgQMbgQPhgEqBA36BA2WBBAGAttoA -DgGRAZIUewGTFHwBlAGVAZYBdAGaAPEBnADbAPEA2wGeAZ8BoAPPXU5TSXNTZXBhcmF0b3JcTlNJc0Rp -c2FibGVkgDuAEQmAEQmANIA4gMjSAA4ANgA3FIeABFRGaWxl0gAOAEUATRSKgEGiEQQP54EEHYEDytoA -DhSOAZEBkgGTAZQBlQGWAXQBlwGaEAEUkQGcAPEBngGfAaAT/BSWWU5TU3VibWVudYA7gQPRgQS0gBGA -NIA4gQSzgQS11AAOAZEA+wGkAaUBWBSaFJuAQoApgQTWgQTTVldpbmRvd15zdWJtZW51QWN0aW9uOtIA -DgA2ADcUnIAE0gAOAEUATRSigEGhD/mBA9BeX05TV2luZG93c01lbnXaAA4UjgGRAZIBkwGUAZUBlgF0 -AZcBmg/vFKgBnADxAZ4BnwGgE/wUrYA7gQPLgQS6gBGANIA4gQSzgQS72gAOAZEBkhR7AZMUfAGUAZUB -lgF0AZoA8QGcANsA8QDbAZ4BnwGgA8+AO4ARCYARCYA0gDiAyNIADgA2ADcUuYAEVEVkaXTSAA4ARQBN -FLyAQaUC1wLFBu4Pbg+ZgIWAf4EBlYEDooEDsNIADgAyADMUxIAFgQTA2gAOAZEBkhR7AZMUfAGUAZUB -lgF0AZoA8QGcANsA8QDbAZ4BnwGgA8+AO4ARCYARCYA0gDiAyNoADhSOAZEBkgGTAZQBlQGWAXQBlwGa -A88D0gGcAPEBngGfAaAT/BTWgDuAyIEEw4ARgDSAOIEEs4EExF8QFFZpc3VhbCBCb3kgQWR2YW5jZS1N -0gAOAEUATRTagEGsEDITexF+E5cRTQPHFHEQ1hEkDd4TOARNgQPhgQS8gQRDgQTBgQQ0gMeBBMaBBBGB -BCeBAz+BBK+A59oADgGRAZIUewGTFHwBlAGVAZYBdAGaAPEBnADbAPEA2wGeAZ8BoAPPgDuAEQmAEQmA -NIA4gMhcX05TQXBwbGVNZW512AAOAZEBkgGTAZQBlQGWAXQBmhTzFPQFbgGeAZ8BoAO4gDuBBMkSAAQA -AIEBMIA0gDiAwF8QEVRvZ2dsZSBGdWxsc2NyZWVuV0NvbnRyb2zSAA4ARQBNFP2AQa0TyRQVBokPtBE+ -FD8FaQOwFBcQExL6E8wN0IEEyIEEzIEBeIEDuYEEL4EEzYEBLoC/gQTOgQPYgQSpgQTPgQM72gAOAZEB -khR7AZMUfAGUAZUBlgF0AZoA8QGcANsA8QDbAZ4BnwGgA7iAO4ARCYARCYA0gDiAwNoADgGRAZIUewGT -FHwBlAGVAZYBdAGaAPEBnADbAPEA2wGeAZ8BoAO4gDuAEQmAEQmANIA4gMDaAA4BkQGSFHsBkxR8AZQB -lQGWAXQBmgDxAZwA2wDxANsBngGfAaADuIA7gBEJgBEJgDSAOIDA2gAOAZEBkhR7AZMUfAGUAZUBlgF0 -AZoA8QGcANsA8QDbAZ4BnwGgA7iAO4ARCYARCYA0gDiAwNoADhSOAZEBkgGTAZQBlQGWAXQBlwGaAs0V -MgGcAPEBngGfAaAT/BU3gDuAgIEE0YARgDSAOIEEs4EE0tIADgBFAE0VOoBBpRPCE3QT1RRlE3OBBMKB -BLmBBNCBBNSBBLLaAA4UjgGRAZIBkwGUAZUBlgF0AZcBmgO4A7sBnADxAZ4BnwGgE/wVSIA7gMCBBMqA -EYA0gDiBBLOBBNVbX05TTWFpbk1lbnXSAA4AMgAzFUyABYEE2NIADgBFEh0VT4EEb68RAWwGogMuDLwE -dAnEBjsElQOQAjwCPAnECr0B3wSmA7gHIA5jCxIHZwPPEFAD9Qc+AVsD5AFbC8MMvADIA7gCPAHjA+QC -zQcdDgsCPAYHB0ABWwAfA+QDzwFbBz0BLgM1B5cAHxABBRUHHwnEBRIHMwSmCxILhRN0EE8D9Qc2AB8O -Sg5OCNwMvAPPAVsFuQWqAjwBWwI8AVsJbwI8BzgAHwwSAeMBWwI8AVsBWwYAA88IdwciAVsBWwO4BJEB -WwAfA+QKMQcrAVsMvAFbE/wT/AdDEO0BWwNEA+QOVQPPE9UCPAcnBTQCiQI8B2ACPAgyAeMIIwcwBIoA -1gq9BXcP7wdeAV4AHwc3AjwD4AKECbUFQwFbA88HOQUVEZ8GUAVDBBoBWxGfB18I3ATtCcQMAwfOBJUH -3QcoAVsCzQXrA88FFQcpBS0HZAFbDLwMvATdBzsOUAL+DlcHLwPkA0QFuQFbBNYFFQjcCWAT/Ay8AjkB -4wKFDFcBWwO4FGURiwO4B90CPBDtA7gB4w5RAVsOVhP8CiICzQcqA88DzwquBaMBWwy8A88HHgFbANYC -PAjNB4gRnw/vDLwKMQy8E8IHZQHjDFcHOgAfANYA1gI8AjwCPAy8B0EBWw2vByQJxAAfB2YI3AYWCwMM -rQhoAB8A1hBOAVsBWwPkDEgAHwFbBk8BLQAfAjwCPA5PA+QOYgcGA7gDuAO4AYQBWwW5AeMHlwvSDLwH -LgcjAVsDuBAxBy0BWwNpC3YBWwIJDewOYQAfAjwFjQ5lCDID5AFbAs0D5AI8C4UJbwvSAjwHYwFbBKYL -VgI8A7gBWwjcE3ML0guFBtUC5gdhANYMvAwSEOoBWwDWAjwCPALNBxsCPAQ2C4UHXQchBrwHPwYWAVME -XAPkAVsMvAO4AB8ONgO4BRUHPBP8CHcBWwjcAjwBWwFbBlMD2QnEAmABhAPPBO0BWwPPAeAOUw5LEFEC -PIEBgICegQLwgPOBAjmBAWOBApOAtoBegF6BAjmBAnWAS4D+gMCBAhuBA5KBAomBAeqAyIED+4DTgQLq -gCuBAaGAK4ECtYEC8IANgMCAXoBIgQGhgICBAfmBA0yAXoEBV4EDH4ArgAKBAaGAyIArgQLmgCCAoIEB -sIACgQPRgQEagQIXgQI5gQEZgQKPgP6BAomBAqWBBLmBA+2A04ECn4ACgQNegQNogQH/gQLwgMiAK4EB -Q4EBP4BegCuAXoArgQIlgF6BAsKAAoECyIBIgCuAXoArgCuBAVWAyIEB5IECK4ArgCuAwID7gCuAAoEB -oYECUYECY4ArgQLwgCuBBLOBBLOBAyiBBBmAK4CkgQGhgQOBgMiBBNCAXoECR4EBIoB0gF6BAbqAXoEB -1IBIgQHQgQKDgPiADoECdYEBM4EDy4EBqoAtgAKBArOAXoDPgG6BAjWBASaAK4DIgQLOgQEagQRMgQFq -gQEmgNuAK4EETIEBtoEB/4EBEYECOYECxIEBvIECk4EBwIECS4ArgICBAVCAyIEBGoECWYEBIIEBzoAr -gQLwgQLwgQENgQLegQNygJGBA4mBAn+BAaGApIEBQ4ArgQELgQEagQH/gQIhgQSzgQLwgF2ASIBxgQLY -gCuAwIEE1IEER4DAgQHAgF6BBBmAwIBIgQN3gCuBA4aBBLOBAk2AgIECX4DIgMiBAnGBAT2AK4EC8IDI -gQITgCuADoBegQH7gQGsgQRMgQPLgQLwgQJRgQLwgQTCgQHagEiBAtiBAtKAAoAOgA6AXoBegF6BAvCB -AyKAK4EDLIECM4ECOYACgQHegQH/gQFbgQKFgQLsgQHggAKADoED6IArgCuBAaGBAtSAAoArgQFngCOA -AoBegF6BA22BAaGBA4+BAZyAwIDAgMCAMoArgQFDgEiBAbCBArmBAvCBAnuBAi+AK4DAgQPjgQJvgCuA -rIECoYArgE+BA0OBA4yAAoBegQE4gQOVgQHUgQGhgCuAgIEBoYBegQKlgQIlgQK5gF6BAcqAK4D+gQKW -gF6AwIArgQH/gQSygQK5gQKlgQGOgIqBAcaADoEC8IECyIEEGIArgA6AXoBegICBAfWAXoDigQKlgQGk -gQIfgQGHgQMbgQFbgCqA7IEBoYArgQLwgMCAAoEDWYDAgQEagQLigQSzgQHkgCuBAf+AXoArgCuBAW+A -zIECOYBogDKAyIEBEYArgMiAR4EDfIEDY4ED/4Be0gAOAEUSHRa+gQRvrxEBbQ59AzUEewzgAeMJ3wSK -A5YOYwL+Cd0K1QH6BKIFaQlQD0ILDgidEU0OUxCaDK0HJActB2YL0gzfANkGiQQNBlAHZAbuCM0Fdw4R -DXcGFgchBjsHXRM4B0EMnQE0A0QHrhAxD/kQUAlACdwFGAs4BL0LKguBD+8QbQt2DmoDrwPxDpAGogj4 -Dd4HPQXTBbkM1gceDlYHIw5hCYYMAwcGAeAMKgc8DlUDLgc6BgcDxwcpBywJlQSmD7QIcwcnAVQHLgqA -A9kKLQzdBNYTcxN0Da8Q6gcrDu8HZwNcAs0TewLmChICrQVDDmIOZQfOCC4B3wsDCDIAHwSRAoQFfgq5 -D+cCOQGEE48LwweIA/UCjgnEBaMFPxOXDDgQTxGnBmcEIQVbBgARxAwSB70E6Qc7CeAH3QtWCiII9AfZ -AsUF8hDWEFEKWQU0By8IIwy4DNcMfQ62BO0DBQ8SCvMHZQNABdEHMATdBRII+QlvE8ICPwzYBesCnQxv -ByoTyQO4EO0EGhPMDskRnwNpA7AH9QSVDwIT1QpwAtcFqgRNBzgRfgq9CjEM2xEkCTAHHwEtBY0I3AeX -AgkRBAJgBrwGTwPPAMgRrQQ2DlEMSAhYDFMKSgzhDN4M1Q2HBzkNtAm1CcAT/AsSCGgMvAYSCPcIdwDJ -AoUHIgbVByAQVgdeEYsGWA5QDjYN7AFEDzIOowdgDFcBWxQVET4UFwczBbUBfgZTC84HkwzaB0MJpQFT -EBMFFQquCuMDcAIPBS0PIg9SBZQULA5ODfILhQc2BFwHXw+ZB2MISgufCWsOVwvqCBMD5AS+C1sOSwdA -FD8C7BABBtsLngvrCNgCiQgDDNkOTwcbAS4OCw5KEPAPbgi9BD0MDgugB2wJYAbCDWcGLgFeBGIHKAdh -DNwN0AI4AjwS+hBODI0UZQiPBzcEdAj1Bx0HPgZ6A+AJ3gDWAcIUcQUEBz8DkBAyAeYO3BCrBqmBA2WA -oID1gQMVgEiBAkOA+IC4gQOSgJGBAj+BAnmATYD9gQEugQIdgQOUgQKIgQHsgQQ0gQN8gQP9gQLsgQIz -gQJvgQHegQK5gQMSgBCBAXiA14EBaoEBzoEBlYEB+4EBM4EDToEDIYEBW4ECH4EBY4EBpIEEr4EDIoEC -6IAigKSBAbSBA+OBA9CBA/uBAhmBAj2BARyBApGBAQOBAo2BAqSBA8uBA/aBAqGBA2CAw4DSgQNqgQGA -gQINgQM/gQLmgQFLgQFDgQL4gQITgQOGgQIvgQOMgQIpgQLEgQGcgEeBAsyBAuKBA4GAnoEC0oEBV4DH -gQJZgQJngQItgP6BA7mBAeOBAkeAKIECe4ECZYDMgQJQgQMMgQELgQSygQS5gQMsgQQYgQJjgQODgQHq -gKiAgIEEvICKgQJJgHaBASaBA4+BA5WBAbyBAdOAS4EChYEB1IACgPuAboEBNYECdIEDyoBdgDKBBL+B -ArWBAayA04BwgQI5gQE9gQElgQTBgQLQgQPtgQSVgQFsgN2BASqBAVWBBFCBAsiBAbiBARCBAt6BAkWB -AcCBApaBAk2BAgSBAb+Af4EBUoEEEYED/4ECW4EBIoECf4EB0IEC74EC+4EC4IEDdIEBEYCTgQOLgQKB -gQHagKOBAUiBAoOBAQ2BARmBAhCBAiWBBMKAYIEC/oEBUIBzgQLcgQJfgQTIgMCBBBmA24EEz4EDeYEE -TICsgL+BAcSBApOBA4iBBNCBAmGAhYEBP4DngQLCgQRDgQJ1gQJRgQMGgQQngQIVgQIXgCOBATiBAf+B -AbCAT4EEHYBogQGHgQFngMiADYEEkYDigQN3gQLUgQHcgQLXgQJWgQMYgQMPgQL1gQMkgQLOgQMugQI1 -gQI4gQSzgQKJgQHggQLwgQFagQIKgQHkgAuAcYECK4EBjoECG4ED6oEBqoEER4EBaYEDcoEDWYEDQ4Al -gQORgQNvgQG6gQLYgCuBBMyBBC+BBM6BAo+BAUKAMYEBb4ECuIEBr4EDBIEDKIECMYAqgQPYgQEagQJx -gQJ9gK6AUYEBIIEDjoEDl4EBOoEE14EDaIEDRYECpYECn4DsgQG2gQOwgQHKgQHYgQKtgQIkgQOJgQK+ -gQHMgQGhgQEGgQKYgQNjgQMfgQTNgIyBA9GBAZCBAqqBAsCBAf6AdIEByIEDAYEDbYEB9YAggQNMgQNe -gQQbgQOigQH3gOSBAseBArCBAaaBAiGBAYmBAx2BAV+ALYDugQJLgQHGgQMJgQM7gGSAXoEEqYED6IEC -5IEE1IEB6IECs4DzgQIHgQH5gQLqgQFxgM+BAkGADoA+gQTGgQEVgQMbgLaBA+GASoEDfoEEAYEBgtIA -DgBFEh0YLoEEb68RAW0YLxgwGDEYMhgzGDQYNRg2GDcYOBg5GDoYOxg8GD0YPhg/GEAYQRhCGEMYRBhF -GEYYRxhIGEkYShhLGEwYTRhOGE8YUBhRGFIYUxhUGFUYVhhXGFgYWRhaGFsYXBhdGF4QQBhgGGEYYhhj -GGQYZRhmGGcYaBhpGGoYaxhsA8EYbhhvGHAYcRhyGHMYdBh1GHYYdxh4GHkYehh7GHwHDRh+GH8YgBiB -GIIYgxiEGIUYhhiHGIgYiRiKGIsYjAFYGI4YjxiQGJEYkhiTGJQYlRiWGJcYmBiZGJoYmxicGJ0Ynhif -GKAYoRiiGKMYpBilGKYYpxioGKkYqhirGKwYrRiuGK8YsBixGLIYsxi0GLUYthi3GLgYuRi6GLsYvBi9 -GL4YvxjAGMEYwhjDGMQYxRjGGMcYyBjJGMoYyxjMGM0YzhjPGNAY0RjSGNMY1BjVGNYY1xjYGNkY2hjb -GNwY3RjeGN8Y4BjhGOIY4xjkGOUY5hjnGOgY6RjqGOsY7BjtGO4Y7xjwGPEY8hjzGPQY9Rj2GPcY+Bj5 -GPoY+xj8GP0Y/hj/GQAZARkCGQMZBBkFGQYZBxkIGQkZChkLGQwZDRkOGQ8ZEBkRGRIZExkUGRUZFhkX -GRgZGRkaGRsZHBkdGR4ZHxkgGSEZIhkjGSQAzRkmGScZKBkpGSoZKxC0GS0ZLhkvGTAZMRkyGTMZNBk1 -GTYZNxk4GTkZOhk7GTwZPRk+GT8ZQBlBGUIZQxlEGUUZRhlHGUgZSRlKGUsZTBlNGU4ZTxlQGVEZUhlT -GVQZVRlWGVcZWBlZGVoZWxlcGV0ZXhlfGWAZYRliGWMZZBllGWYZZxloGWkZahlrGWwZbRluGW8ZcBlx -GXIZcxl0GXUZdhl3GXgZeRl6GXsZfBl9GX4ZfxmAGYECWxmDGYQZhRmGGYcZiBmJGYoZixmMGY0ZjhmP -GZAZkRmSGZMZlBmVGZYZlxmYGZkZmhmbgQTcgQTdgQTegQTfgQTggQThgQTigQTjgQTkgQTlgQTmgQTn -gQTogQTpgQTqgQTrgQTsgQTtgQTugQTvgQTwgQTxgQTygQTzgQT0gQT1gQT2gQT3gQT4gQT5gQT6gQT7 -gQT8gQT9gQT+gQT/gQUAgQUBgQUCgQUDgQUEgQUFgQUGgQUHgQUIgQUJgQUKgQULgQPlgQUMgQUNgQUO -gQUPgQUQgQURgQUSgQUTgQUUgQUVgQUWgQUXgQUYgMSBBRmBBRqBBRuBBRyBBR2BBR6BBR+BBSCBBSGB -BSKBBSOBBSSBBSWBBSaBBSeBAZ6BBSiBBSmBBSqBBSuBBSyBBS2BBS6BBS+BBTCBBTGBBTKBBTOBBTSB -BTWBBTaAKYEFN4EFOIEFOYEFOoEFO4EFPIEFPYEFPoEFP4EFQIEFQYEFQoEFQ4EFRIEFRYEFRoEFR4EF -SIEFSYEFSoEFS4EFTIEFTYEFToEFT4EFUIEFUYEFUoEFU4EFVIEFVYEFVoEFV4EFWIEFWYEFWoEFW4EF -XIEFXYEFXoEFX4EFYIEFYYEFYoEFY4EFZIEFZYEFZoEFZ4EFaIEFaYEFaoEFa4EFbIEFbYEFboEFb4EF -cIEFcYEFcoEFc4EFdIEFdYEFdoEFd4EFeIEFeYEFeoEFe4EFfIEFfYEFfoEFf4EFgIEFgYEFgoEFg4EF -hIEFhYEFhoEFh4EFiIEFiYEFioEFi4EFjIEFjYEFjoEFj4EFkIEFkYEFkoEFk4EFlIEFlYEFloEFl4EF -mIEFmYEFmoEFm4EFnIEFnYEFnoEFn4EFoIEFoYEFooEFo4EFpIEFpYEFpoEFp4EFqIEFqYEFqoEFq4EF -rIEFrYEFroEFr4EFsIEFsYEFsoEFs4EFtIEFtYEFtoEFt4EFuIEFuYEFuoEFu4EFvIEFvYEFvoEFv4EF -wIEFwYEFwoEFw4EFxIEFxYEFxoEFx4EFyIEFyYEFyoEFy4EFzIEFzYAMgQXOgQXPgQXQgQXRgQXSgQXT -gQQCgQXUgQXVgQXWgQXXgQXYgQXZgQXagQXbgQXcgQXdgQXegQXfgQXggQXhgQXigQXjgQXkgQXlgQXm -gQXngQXogQXpgQXqgQXrgQXsgQXtgQXugQXvgQXwgQXxgQXygQXzgQX0gQX1gQX2gQX3gQX4gQX5gQX6 -gQX7gQX8gQX9gQX+gQX/gQYAgQYBgQYCgQYDgQYEgQYFgQYGgQYHgQYIgQYJgQYKgQYLgQYMgQYNgQYO -gQYPgQYQgQYRgQYSgQYTgQYUgQYVgQYWgQYXgQYYgQYZgQYagQYbgQYcgQYdgQYegQYfgQYggQYhgQYi -gQYjgQYkgQYlgQYmgQYngQYogGWBBimBBiqBBiuBBiyBBi2BBi6BBi+BBjCBBjGBBjKBBjOBBjSBBjWB -BjaBBjeBBjiBBjmBBjqBBjuBBjyBBj2BBj6BBj+BBkCBBkFfEBJCdXR0b24gQ2VsbCAoRG93bilfEB9Q -b3AgVXAgQnV0dG9uIENlbGwgKERpc2FibGVkKS0xXxASVGV4dCBGaWVsZCBDZWxsLTIzXxAbTWVudSBJ -dGVtIChIaWdoIFF1YWxpdHkgMngpXkNvbnRlbnQgVmlldy0zXU1lbnUgSXRlbSAoNClfEBNQb3B1cCBC -dXR0b24gKE5vbmUpXxASQnV0dG9uIENlbGwgKE9LKS01WlRleHQgRmllbGRcVGV4dCBGaWVsZC0xXU1l -bnUgSXRlbSAoMilfEBNNZW51IEl0ZW0gKEVuYWJsZWQpXxARVGV4dCBGaWVsZCBDZWxsLTFfEBBNZW51 -IEl0ZW0gKE5vbmUpXxAdTWVudSBJdGVtIChGcmVlemUgR2FtZSBTdGF0ZSlfECBUZXh0IEZpZWxkIENl -bGwgKFVzZSBCaW9zIEZpbGU6KV8QElRleHQgRmllbGQgQ2VsbC0xMl8QFk1lbnUgSXRlbSAoRGlzYWJs -ZWQpLTZfECJUZXh0IEZpZWxkIENlbGwgKFJlYWwgVGltZSBDbG9jazopXxAmTWVudSBJdGVtIChWaXNp -dCBFbXVTY2VuZSBTb2Z0d2FyZS4uLilfEBBCZXZlbCBCdXR0b24gKEwpXxBMVGV4dCBGaWVsZCBDZWxs -ICgKT3JpZ2luYWwgVmVyc2lvbjoKRm9yZ290dGVuCgpNYWMgT1MgWCBWZXJzaW9uOgpBZGFtIEdyZWVu -KV8QGlBvcCBVcCBCdXR0b24gQ2VsbCAoUGxhaW4pXxAQUG9wdXAgQnV0dG9uICgwKV8QF1BvcHVwIEJ1 -dHRvbiAoRGlzYWJsZWQpXxAZUG9wdXAgQnV0dG9uIChEaXNhYmxlZCktOF8QFE1lbnUgKE90aGVyVmll -d3MpLTE0XxAVTWVudSBJdGVtIChTY2FubGluZXMpXxARVGV4dCBGaWVsZCBDZWxsLThfEBtNZW51IEl0 -ZW0gKFBhdXNlIEVtdWxhdGlvbilfEBZNZW51IEl0ZW0gKEVuYWJsZWQpLTEzXxASUHVzaCBCdXR0b24g -KE9LKS0zXxAZUG9wdXAgQnV0dG9uIChEaXNhYmxlZCktOV8QEU1lbnUgSXRlbSAoUGFzdGUpXxAWUG9w -IFVwIEJ1dHRvbiBDZWxsICgyKVxUZXh0IEZpZWxkLTJfEBZCdXR0b24gQ2VsbCAoQ2FuY2VsKS0xXxAS -QnV0dG9uIENlbGwgKE9LKS0yXxATTWVudSAoT3RoZXJWaWV3cyktN18QFlBvcHVwIEJ1dHRvbiAoRW5h -YmxlZClYQ2hlYXRDQkFbU3RhdGljIFRleHRZU2VwYXJhdG9yXxAUUHVzaCBCdXR0b24gKENhbmNlbClf -EB1UZXh0IEZpZWxkIENlbGwgKEZ1bGxzY3JlZW46KV8QElRleHQgRmllbGQgQ2VsbC0xMV8QE01lbnUg -KE90aGVyVmlld3MpLTNfEBdNZW51IEl0ZW0gKERpc2FibGVkKS0xNF8QFE1lbnUgSXRlbSAoTWluaW1p -emUpXxBIU3RhdGljIFRleHQgKApPcmlnaW5hbCBWZXJzaW9uOgpGb3Jnb3R0ZW4KCk1hYyBPUyBYIFZl -cnNpb246CkFkYW0gR3JlZW4pXxAdVGV4dCBGaWVsZCBDZWxsIChTaG93IFNwZWVkOildTWVudSBJdGVt -ICgxKV8QEEJ1dHRvbiBDZWxsIChPSylfEBhUZXh0IEZpZWxkIENlbGwgKFNvdW5kOilfEBlNZW51IEl0 -ZW0gKE1vdGlvbiBCbHVyKS0xXxAVTWVudSBJdGVtIChFbmFibGVkKS02Xk1lbnUgSXRlbSAoMXgpW01l -bnUgKEZpbGUpXxAeSW1hZ2UgQ2VsbCAoTlNBcHBsaWNhdGlvbkljb24pXxAXUG9wIFVwIEJ1dHRvbiBD -ZWxsICgxeClfEBBCdXR0b24gQ2VsbCAoVXApXxAXTWVudSBJdGVtIChEaXNhYmxlZCktMTNfEA9CdXR0 -b24gQ2VsbCAoQSlfEBdQdXNoIEJ1dHRvbiAoRGVmYXVsdCktMV8QD01lbnUgSXRlbSAoNCktMV8QFE1l -bnUgSXRlbSAoU2hvdyBBbGwpXxAZU3RhdGljIFRleHQgKEZ1bGxzY3JlZW46KV8QEU1lbnUgSXRlbSAo -MTFLaHopXxATTWVudSAoT3RoZXJWaWV3cyktNl8QEU1lbnUgSXRlbSAoMnhTQUkpXxAZU3RhdGljIFRl -eHQgKEZsYXNoIFNpemU6KVxUZXh0IEZpZWxkLTNfEB5TdGF0aWMgVGV4dCAoQXV0byBGcmFtZSBTa2lw -OilcVGV4dCBGaWVsZC00XxAWTWVudSBJdGVtIChEaXNhYmxlZCktMV8QH1BvcCBVcCBCdXR0b24gQ2Vs -bCAoRGlzYWJsZWQpLTVfEBJSb3VuZGVkIFRleHQgRmllbGRfEBVNZW51IEl0ZW0gKEVuYWJsZWQpLTdf -EB1TdGF0aWMgVGV4dCAoR2FtZUJveSBCb3JkZXI6KV8QFEJldmVsIEJ1dHRvbiAoU3RhcnQpXxAZUG9w -dXAgQnV0dG9uIChEaXNhYmxlZCktMV8QGVBvcHVwIEJ1dHRvbiAoRGlzYWJsZWQpLTJfEB9Qb3AgVXAg -QnV0dG9uIENlbGwgKERpc2FibGVkKS0zXxAVTWVudSBJdGVtIChEb25hdGUuLi4pXxAeUHVzaCBCdXR0 -b24gKFNlbGVjdCBCaW9zIEZpbGUpW0JveCAoU291bmQpXxAgVGV4dCBGaWVsZCBDZWxsIChSZW1vdmUg -SW50cm9zOilfEBRNZW51IChPdGhlclZpZXdzKS0xN18QG01lbnUgSXRlbSAoUmVzZXQgRW11bGF0aW9u -KV8QF01lbnUgSXRlbSAoRGlzYWJsZWQpLTExXxAdU3RhdGljIFRleHQgKEdCQSBGcmFtZSBTa2lwOilf -ECRTdGF0aWMgVGV4dCAoU291bmQgTG93IFBhc3MgRmlsdGVyOilfEB1UZXh0IEZpZWxkIENlbGwgKFNv -dW5kIEVjaG86KV8QGlBvcHVwIEJ1dHRvbiAoRGlzYWJsZWQpLTEwXxAPTWVudSBJdGVtICg2NGspXxAU -TWVudSBJdGVtIChCaWxpbmVhcilfEBhQb3B1cCBCdXR0b24gKEVuYWJsZWQpLTFfEBJNZW51IEl0ZW0g -KFdpbmRvdylfEBBNZW51IEl0ZW0gKEZpbGUpXxA2U3RhdGljIFRleHQgKENoYW5nZXMgVGFrZSBFZmZl -Y3QgT24gTmV4dCBSb20gTGF1bmNoZWQpXxASUHVzaCBCdXR0b24gKE9LKS0xXxAZU3RhdGljIFRleHQg -KFNvdW5kIEVjaG86KV8QE0J1dHRvbiBDZWxsIChTdGFydClfEB5TdGF0aWMgVGV4dCAoUmVhbCBUaW1l -IENsb2NrOilfEBVNZW51IEl0ZW0gKEVuYWJsZWQpLTJbTWVudSAoRWRpdClbU2VwYXJhdG9yLTFfEBBC -ZXZlbCBCdXR0b24gKFIpXxAhVGV4dCBGaWVsZCBDZWxsIChHQkEgRnJhbWUgU2tpcDopXxASVGV4dCBG -aWVsZCBDZWxsLTEwXxAUTWVudSAoT3RoZXJWaWV3cyktMTFcVGV4dCBGaWVsZC01XFRleHQgRmllbGQt -Nl8QIFBvcCBVcCBCdXR0b24gQ2VsbCAoRGlzYWJsZWQpLTExXxAXTWVudSBJdGVtIChEaXNhYmxlZCkt -MTJfEBRSb3VuZGVkIFRleHQgRmllbGQtMV8QH1BvcCBVcCBCdXR0b24gQ2VsbCAoRGlzYWJsZWQpLTRf -EBRNZW51IChPdGhlclZpZXdzKS0xOVxGaWxlJ3MgT3duZXJfEBlQb3AgVXAgQnV0dG9uIENlbGwgKE5v -bmUpXxAUUm91bmRlZCBUZXh0IEZpZWxkLTZfEBJUZXh0IEZpZWxkIENlbGwtMTRfEBRNZW51IEl0ZW0g -KERpc2FibGVkKV8QFU1lbnUgSXRlbSAoQ2xvc2UgUm9tKV8QIUJldmVsIEJ1dHRvbiAoQ2FsaWJyYXRl -IEpveXN0aWNrKV8QFE1lbnUgKE90aGVyVmlld3MpLTEwW0FwcGxpY2F0aW9uXxAeUG9wIFVwIEJ1dHRv -biBDZWxsIChBdXRvbWF0aWMpXxAeUG9wIFVwIEJ1dHRvbiBDZWxsIChFbmFibGVkKS0yXxAUTWVudSAo -T3RoZXJWaWV3cyktMjBfEBFUZXh0IEZpZWxkIENlbGwtNl8QEU1lbnUgKE90aGVyVmlld3MpXxAUUG9w -dXAgQnV0dG9uICgyMktoeilfEBZNZW51IEl0ZW0gKERpc2FibGVkKS05W1NlcGFyYXRvci0yXxAfVGV4 -dCBGaWVsZCBDZWxsIChWaWRlbyBGaWx0ZXI6KV8QHkltYWdlIFZpZXcgKE5TQXBwbGljYXRpb25JY29u -KV8QE0hvcml6b250YWwgU2Nyb2xsZXJfEBJCdXR0b24gQ2VsbCAoT0spLTNfEBJUZXh0IEZpZWxkIENl -bGwtMTlfEBVNZW51IEl0ZW0gKEVuYWJsZWQpLTlfEBlQb3B1cCBCdXR0b24gKERpc2FibGVkKS0zWVRl -eHQgVmlld18QE01lbnUgKE90aGVyVmlld3MpLTlfEB5UZXh0IEZpZWxkIENlbGwgKExpbWl0IFNwZWVk -OilfEBVNZW51IEl0ZW0gKEVuYWJsZWQpLTRfEBlTdGF0aWMgVGV4dCAoVmlkZW8gU2l6ZTopXU1lbnUg -SXRlbSAoNSlfEBRNZW51IChPdGhlclZpZXdzKS0yMl8QIlN0YXRpYyBUZXh0IChJbnRlcmZyYW1lIEJs -ZW5kaW5nOilfEBhQb3AgVXAgQnV0dG9uIENlbGwgKDY0aylfEA9NZW51IEl0ZW0gKDApLTFfEBdNZW51 -IEl0ZW0gKERpc2FibGVkKS0xNV8QEE1lbnUgSXRlbSAoQ29weSlfEBFUZXh0IEZpZWxkIENlbGwtMl8Q -IU1lbnUgSXRlbSAoSGlkZSBWaXN1YWxCb3lBZHZhbmNlKV8QFVB1c2ggQnV0dG9uIChMaWNlbnNlKV8Q -HkJ1dHRvbiBDZWxsIChTZWxlY3QgQmlvcyBGaWxlKV8QH1BvcCBVcCBCdXR0b24gQ2VsbCAoRGlzYWJs -ZWQpLTdfEB1TdGF0aWMgVGV4dCAoUmV2ZXJzZSBTdGVyZW86KV8QH1BvcCBVcCBCdXR0b24gQ2VsbCAo -RGlzYWJsZWQpLTlfEBFNZW51IEl0ZW0gKFBsYWluKV8QF01lbnUgSXRlbSAoU3VwZXIgMnhTQUkpXxAd -VGV4dCBGaWVsZCBDZWxsIChWaWRlbyBTaXplOilfEBNCdXR0b24gQ2VsbCAoU3BlZWQpXxATTWVudSAo -T3RoZXJWaWV3cyktNV8QElRleHQgRmllbGQgQ2VsbC0xM18QElRleHQgRmllbGQgQ2VsbC0yMl8QIVRl -eHQgRmllbGQgQ2VsbCAoUmV2ZXJzZSBTdGVyZW86KV8QIlN0YXRpYyBUZXh0IChQYXVzZSBXaGVuIElu -YWN0aXZlOilfEBZNZW51IEl0ZW0gKERpc2FibGVkKS0yXxARTWVudSBJdGVtICg0NEtoeilfEBlQb3B1 -cCBCdXR0b24gKERpc2FibGVkKS00XxAeUG9wIFVwIEJ1dHRvbiBDZWxsIChFbmFibGVkKS0xXxAQUHVz -aCBCdXR0b24gKE9LKV8QD01lbnUgSXRlbSAoNSktMV8QE01lbnUgKE90aGVyVmlld3MpLTJfECBNZW51 -IEl0ZW0gKFZpc3VhbCBCb3kgQWR2YW5jZS1NKV8QIEJ1dHRvbiBDZWxsIChDYWxpYnJhdGUgSm95c3Rp -Y2spXxAXTWVudSBJdGVtIChTdXBlciBFYWdsZSlfEBRSb3VuZGVkIFRleHQgRmllbGQtMl8QEVRleHQg -RmllbGQgQ2VsbC05XxAVTWVudSBJdGVtIChFbmFibGVkKS0zXxAcU3RhdGljIFRleHQgKFNvdW5kIFF1 -YWxpdHk6KV8QHU1lbnUgSXRlbSAoVG9nZ2xlIEZ1bGxzY3JlZW4pXk1lbnUgKENvbnRyb2wpXkNvbnRl -bnQgVmlldy0xXFRleHQgRmllbGQtN1tTZXBhcmF0b3ItNF8QFEJ1dHRvbiBDZWxsIChTZWxlY3QpW1Nj -cm9sbCBWaWV3XxAUUm91bmRlZCBUZXh0IEZpZWxkLTNfEB5NZW51IEl0ZW0gKERlZnJvc3QgR2FtZSBT -dGF0ZSlfEBZNZW51IEl0ZW0gKEVuYWJsZWQpLTE1W0JveCAoVmlkZW8pXxASVGV4dCBGaWVsZCBDZWxs -LTE1XxAQTWVudSBJdGVtIChFZGl0KV8QIFRleHQgRmllbGQgQ2VsbCAoU291bmQgUXVhbGl0eTopXxAP -TWVudSBJdGVtIChDdXQpXxAaUG9wIFVwIEJ1dHRvbiBDZWxsICgyMktoeilfECFNZW51IEl0ZW0gKFF1 -aXQgVmlzdWFsQm95QWR2YW5jZSlfEBlQb3B1cCBCdXR0b24gKERpc2FibGVkKS01XxAaTWVudSBJdGVt -IChQcmVmZXJlbmNlcy4uLilfEBNNZW51IChPdGhlclZpZXdzKS0xXxAUTWVudSAoT3RoZXJWaWV3cykt -MTNfECBNZW51IEl0ZW0gKEFkdmFuY2VNQU1FIFNjYWxlIDJ4KV8QF01lbnUgSXRlbSAoSGlkZSBPdGhl -cnMpXxAdVGV4dCBGaWVsZCBDZWxsIChGbGFzaCBTaXplOilfEBlTdGF0aWMgVGV4dCAoU2hvdyBTcGVl -ZDopXxAUUm91bmRlZCBUZXh0IEZpZWxkLTdcVGV4dCBGaWVsZC04XxAUTWVudSAoT3RoZXJWaWV3cykt -MTVfEBRNZW51IChPdGhlclZpZXdzKS0yMV8QElB1c2ggQnV0dG9uIChPSyktNF8QF01lbnUgSXRlbSAo -T3BlbiBSb20uLi4pWENoZWF0R1NBXxAUQmV2ZWwgQnV0dG9uIChSaWdodClfEBRSb3VuZGVkIFRleHQg -RmllbGQtNF8QG01lbnUgKFZpc3VhbCBCb3kgQWR2YW5jZS1NKV8QFFJvdW5kZWQgVGV4dCBGaWVsZC04 -XxARVmVydGljYWwgU2Nyb2xsZXJcVGV4dCBGaWVsZC05XxAVQmV2ZWwgQnV0dG9uIChTZWxlY3QpXxAf -UG9wIFVwIEJ1dHRvbiBDZWxsIChEaXNhYmxlZCktMl8QJlRleHQgRmllbGQgQ2VsbCAoUGF1c2UgV2hl -biBJbmFjdGl2ZTopXxAWTWVudSBJdGVtIChEaXNhYmxlZCktM18QEE1lbnUgSXRlbSAoMTI4aylfEBpN -ZW51IEl0ZW0gKExvdyBRdWFsaXR5IDJ4KV8QGU1lbnUgSXRlbSAoQmlsaW5lYXIgUGx1cylfEBNNZW51 -IEl0ZW0gKFRWIE1vZGUpXxAUQnV0dG9uIENlbGwgKENhbmNlbClfEBtTdGF0aWMgVGV4dCAoVmlkZW8g -RmlsdGVyOilfEDpUZXh0IEZpZWxkIENlbGwgKENoYW5nZXMgVGFrZSBFZmZlY3QgT24gTmV4dCBSb20g -TGF1bmNoZWQpXxAWUG9wIFVwIEJ1dHRvbiBDZWxsICgwKV1NZW51IEl0ZW0gKDApWE1haW5NZW51XxAT -TWVudSAoT3RoZXJWaWV3cyktOF8QH1BvcCBVcCBCdXR0b24gQ2VsbCAoRGlzYWJsZWQpLThfEBRNZW51 -IChPdGhlclZpZXdzKS0xNl8QFk1lbnUgSXRlbSAoRGlzYWJsZWQpLTVfEA9NZW51IEl0ZW0gKDMpLTFf -EBRNZW51IChPdGhlclZpZXdzKS0xOF8QFFJvdW5kZWQgVGV4dCBGaWVsZC05XxAcU3RhdGljIFRleHQg -KFJlbW92ZSBJbnRyb3M6KV8QFVB1c2ggQnV0dG9uIChEZWZhdWx0KV8QHFN0YXRpYyBUZXh0IChVc2Ug -QmlvcyBGaWxlOilfECJUZXh0IEZpZWxkIENlbGwgKFZpc3VhbEJveUFkdmFuY2UpXxAYUG9wdXAgQnV0 -dG9uIChFbmFibGVkKS0yXxARVGV4dCBGaWVsZCBDZWxsLTRfEBRCZXZlbCBCdXR0b24gKFNwZWVkKVlD -b25maWd1cmVfEBZCZXZlbCBCdXR0b24gKENhcHR1cmUpXxARVGV4dCBGaWVsZCBDZWxsLTdfEBJUZXh0 -IEZpZWxkIENlbGwtMTdfEA9CdXR0b24gQ2VsbCAoQilfEBpQb3B1cCBCdXR0b24gKERpc2FibGVkKS0x -MV8QE01lbnUgKE90aGVyVmlld3MpLTReQ29udGVudCBWaWV3LTJbU2VwYXJhdG9yLTVfEBlNZW51IEl0 -ZW0gKEFkdmFuY2UgRnJhbWUpW1NlcGFyYXRvci02XxAUU3RhdGljIFRleHQgKFNvdW5kOilfEBFNZW51 -IEl0ZW0gKDIyS2h6KV8QFk1lbnUgSXRlbSAoRGlzYWJsZWQpLThfEBRSb3VuZGVkIFRleHQgRmllbGQt -NV8QFU1lbnUgSXRlbSAoQXV0b21hdGljKV8QFk1lbnUgSXRlbSAoRW5hYmxlZCktMTRfEBdNZW51IEl0 -ZW0gKE1vdGlvbiBCbHVyKVlCb3ggKEJveClfECJUZXh0IEZpZWxkIENlbGwgKEF1dG8gRnJhbWUgU2tp -cDopXxAZUG9wdXAgQnV0dG9uIChEaXNhYmxlZCktNl8QLE1lbnUgSXRlbSAoQWRkIENvZGVCcmVha2Vy -QWR2YW5jZSBDaGVhdHMuLi4pXENvbnRlbnQgVmlld18QHVBvcCBVcCBCdXR0b24gQ2VsbCAoRGlzYWJs -ZWQpXxAoVGV4dCBGaWVsZCBDZWxsIChTb3VuZCBMb3cgUGFzcyBGaWx0ZXI6KV8QEVRleHQgRmllbGQg -Q2VsbC0zXxASQnV0dG9uIENlbGwgKE9LKS00XxAZUG9wdXAgQnV0dG9uIChEaXNhYmxlZCktN18QElRl -eHQgRmllbGQgQ2VsbC0xNl8QElRleHQgRmllbGQgQ2VsbC0xOF8QElRleHQgRmllbGQgQ2VsbC0yMFxG -b250IE1hbmFnZXJfEBBCZXZlbCBCdXR0b24gKEEpXxAVQnV0dG9uIENlbGwgKENhcHR1cmUpXxAUTWVu -dSAoT3RoZXJWaWV3cyktMTJfEBFQb3B1cCBCdXR0b24gKDF4KV8QE0JldmVsIEJ1dHRvbiAoTGVmdClf -EBpTdGF0aWMgVGV4dCAoTGltaXQgU3BlZWQ6KV8QFk1lbnUgSXRlbSAoU2VsZWN0IEFsbClfEB5TdGF0 -aWMgVGV4dCAoU2tpcCBCaW9zIEludHJvOilfEBZNZW51IEl0ZW0gKEVuYWJsZWQpLTEyXk1lbnUgSXRl -bSAoM3gpXxAVTWVudSBJdGVtIChFbmFibGVkKS0xXVRleHQgRmllbGQtMTBfEBdNZW51IEl0ZW0gKERp -c2FibGVkKS0xMF8QIlRleHQgRmllbGQgQ2VsbCAoU2tpcCBCaW9zIEludHJvOileQm94IChFbXVsYXRv -cilfEBFNZW51IEl0ZW0gKFNtYXJ0KV8QJlRleHQgRmllbGQgQ2VsbCAoSW50ZXJmcmFtZSBCbGVuZGlu -ZzopXxATQmV2ZWwgQnV0dG9uIChEb3duKV8QElB1c2ggQnV0dG9uIChPSyktMltTZXBhcmF0b3ItN18Q -D0J1dHRvbiBDZWxsIChSKV1NZW51IChXaW5kb3cpXxAVQnV0dG9uIENlbGwgKERlZmF1bHQpXk1lbnUg -SXRlbSAoMngpXxAWTWVudSBJdGVtIChFbmFibGVkKS0xMF8QD01lbnUgSXRlbSAoMiktMV8QFVJvdW5k -ZWQgVGV4dCBGaWVsZC0xMF8QJlRleHQgRmllbGQgQ2VsbCAoQ2hhbmdlIFR5cGUvQ3JlYXRvcjopXxAU -TWVudSBJdGVtIChQaXhlbGF0ZSlfEBBCZXZlbCBCdXR0b24gKEIpXxAcU3RhdGljIFRleHQgKEdCIEZy -YW1lIFNraXA6KV8QFVJvdW5kZWQgVGV4dCBGaWVsZC0xMV8QFlB1c2ggQnV0dG9uIChDYW5jZWwpLTFf -EBFCZXZlbCBCdXR0b24gKFVwKV8QEkJ1dHRvbiBDZWxsIChPSyktMV8QEk1lbnUgSXRlbSAoRGVsZXRl -KV8QIFRleHQgRmllbGQgQ2VsbCAoR0IgRnJhbWUgU2tpcDopXxASVGV4dCBGaWVsZCBDZWxsLTIxXxAW -TWVudSBJdGVtIChEaXNhYmxlZCktN15NZW51IEl0ZW0gKDR4KV8QElRleHQgRmllbGQgQ2VsbC0yNF8Q -HFBvcCBVcCBCdXR0b24gQ2VsbCAoRW5hYmxlZClfEBNCdXR0b24gQ2VsbCAoUmlnaHQpXxAgVGV4dCBG -aWVsZCBDZWxsIChXYXNoZWQgQ29sb3JzOilfEBVNZW51IEl0ZW0gKEVuYWJsZWQpLTVfEB9Qb3AgVXAg -QnV0dG9uIENlbGwgKERpc2FibGVkKS02XxASQnV0dG9uIENlbGwgKExlZnQpXxASUG9wdXAgQnV0dG9u -ICg2NGspXxAiU3RhdGljIFRleHQgKENoYW5nZSBUeXBlL0NyZWF0b3I6KV8QHE1lbnUgSXRlbSAoU2lt -cGxlIFNtb290aGluZylfEB1NZW51IEl0ZW0gKENvbmZpZ3VyZSBLZXlzLi4uKV5Db250ZW50IFZpZXct -NV8QKk1lbnUgSXRlbSAoQWRkIEdhbWVTaGFya0FkdmFuY2UgQ2hlYXRzLi4uKV8QHlN0YXRpYyBUZXh0 -IChWaXN1YWxCb3lBZHZhbmNlKV8QIVRleHQgRmllbGQgQ2VsbCAoR2FtZUJveSBCb3JkZXI6KV8QE01l -bnUgSXRlbSAoQ29udHJvbClfEBZNZW51IEl0ZW0gKEVuYWJsZWQpLTExXxAYUG9wdXAgQnV0dG9uIChB -dXRvbWF0aWMpXVRleHQgRmllbGQtMTFfEA9NZW51IEl0ZW0gKDEpLTFfEBBQb3B1cCBCdXR0b24gKDIp -XxAUUG9wdXAgQnV0dG9uIChQbGFpbilfEBFUZXh0IEZpZWxkIENlbGwtNV8QIFBvcCBVcCBCdXR0b24g -Q2VsbCAoRGlzYWJsZWQpLTEwXU1lbnUgSXRlbSAoMyleQ29udGVudCBWaWV3LTRfEBVNZW51IEl0ZW0g -KEVuYWJsZWQpLThbU2VwYXJhdG9yLTNfEBZNZW51IEl0ZW0gKERpc2FibGVkKS00XxAcU3RhdGljIFRl -eHQgKFdhc2hlZCBDb2xvcnM6KV8QElB1c2ggQnV0dG9uIChPSyktNV8QIk1lbnUgSXRlbSAoQWJvdXQg -VmlzdWFsQm95QWR2YW5jZSlfEA9UZXh0IEZpZWxkIENlbGxfEA9CdXR0b24gQ2VsbCAoTClfEBVCdXR0 -b24gQ2VsbCAoTGljZW5zZSlfEBdCdXR0b24gQ2VsbCAoRGVmYXVsdCktMdIADgBFEh0bBIEEb6DSAA4A -RRIdGweBBG+g0gAOAEUSHRsKgQRvrxEB4QzgBHsDlgCCAHkJ3QrVAfoFaQCfEU0EDQytDN8HZgctC9IA -2QCXBu4FdwYWDXcHIQY7B0EAoANECUAJ3As4BL0LgQ/vEG0D8Qt2A68I+AzWBqIHHgwDDCoHPABbDlUH -OgBlBgcIcwcpBKYAvg+0AMEHLgzdAGwE1hN0EOoDXAdnAs0AkAfOAHQAvwgyBJECOROPC8MAagCwAo4J -xAU/AGkTlww4EE8RpwZnBgAHvQj0BOkMEgc7AFoH3QB3B9kF8gB8ENYQUQpZBTQHLwy4BO0MfQ62AK4P -EgdlBzAE3QUSAJkAqAXrAp0AaAB7AL0HKgO4AFEEGhPMB/UOyRGfA2kAdgpwCr0FqgRNBzgAmBEkCTAA -jQeXEa0RBAJgAgkAbwhYBDYMSA5RAI8M1Q2HBzkNtAm1CcAT/Aj3AJUAyQC2AoUQVg8yB14BRBGLAIsO -UA42DewHYBE+AHUFtQCiCq4FlAUVD1IDcAUtAF4ApAhKB18EXA+ZB2MLnwgTAHoEvgtbAIQHQAjYC+sG -2wDAAHAApQwOEPAOCw5PDkoAtwdsAH8JYAbCDWcGLgFeAFAAlgdhDNwCOAI8DI0I9QR0AIMHPgZ6A+AB -5gapDtwDkAB9AKEAYwM1Cd8B4wSKDmMC/gBiBKIJUA9CCw4AXwidEJoOUwckBokGUAdkDhEIzQC0AE8A -tQddEzgBNAydAGYHrhAxD/kQUACsBRgLKg5qAHIAaw6QAMIN3gc9BdMFuQBZDlYAswcjCYYOYQBzBwYB -4ACJAy4AmgCOAFMDxwmVBywHJwFUA9kKLQqAAFcAhhNzDa8HKw7vE3sC5goSBUMCrQ5iDmUAgAguAG0B -3wsDAB8ChAq5BX4Auw/nB4gBhAP1AJMFowCvBVsEIRHECeAAigtWCiIAZABnAsUAYAgjALwM1wCIAwUA -qgrzA0AF0Qj5CW8TwgzYAj8MbxPJEO0AhQOwBJUPAhPVCjEC1wzbEX4HHwC6AS0FjQjcAKYM4Qa8CkoM -3gPPBk8AyAxTAG4AXACbCxIIaAYSDLwAXQh3AGEAkQciBtUHIAZYDFcAfgCdAJ4AqQ6jAVsUFRQXAX4H -MwCBALIGUweTC84M2grjCaUBUxATB0MN8gIPAFYLhQCtDyIAsRQsDk4HNgBxC+oJaw5XAFIAjAPkAKcA -nA5LFD8C7ACSEAELngCrCAMCiQzZAKMHGwEuBD0Pbgi9C6AAuQCUAIcEYgB4AFgHKA3QEvoQTgBUALgU -ZQiPBzcHHQneANYBwhRxBQQHPxAyDn0QqwBVgQMVgPWAuIEDQoEBf4ECP4ECeYBNgQEugQPbgQQ0gNeB -AuyBAxKBAd6BAm+BArmAEIEDwYEBlYEBM4EBW4EDIYECH4EBY4EDIoED3ICkgQIZgQI9gQKRgQEDgQKk -gQPLgQP2gNKBAqGAw4ECDYEC+IEBgIECE4ECxIECzIEC4oCdgQOBgQLSgNqBAVeBAeOBAlmA/oEEo4ED -uYEEqIECe4EDDIEBCoEBC4EEuYEEGICogQHqgICBA62BAbyBAVSBBKSBAdSA+4BdgQS/gQK1gPKBBCyA -cIECOYEBJYDrgQTBgQLQgQPtgQSVgQFsgQFVgQG4gQIEgQEQgQLIgQLegJuBAcCBAXyBAb+BAVKBAZSB -BBGBA/+BAluBASKBAn+BAu+BARGBAuCBA3SBBCaBA4uBAdqBAoOBAQ2BARmBA8WBBBWBAVCAc4DmgQGN -gQShgQJfgMCAJ4DbgQTPgQHEgQN5gQRMgKyBAXeBAmGBAnWBAT+A54ECwoEDw4EEJ4ECFYEDp4EBsIEE -kYEEHYBogE+BAS2BAdyA4oEC1IEDd4EDq4EC9YEDJIECzoEDLoECNYECOIEEs4ECCoEDvYALgQQ8gHGB -A+qBA5GBAaqAJYEER4EDoYEDcoEDWYEDQ4EBuoEEL4EBYoEBQoED4IECcYEBOoEBGoEDl4CugQEggLGB -BAuBAdiBAbaA7IEDsIEByoECrYEBzIEBhoEBBoECmIEDS4EDH4EB/oECwIEBkIEEpoEBMoEEDYECx4EE -G4EDTIEDbYEDXoEEPoEBpoEBm4ECIYEBiYEDHYEBX4AtgB+BA7+BAcaBAwmAZIBegQLkgQIHgPOBA0mB -AuqBAXGAz4BKgQGCgQN+gLaBAZmBA96AxoCggQJDgEiA+IEDkoCRgL6A/YECHYEDlIECiICzgQHsgQP9 -gQN8gQIzgQF4gQFqgQHOgQNOgQH7gQQ5gAqBBDuBAaSBBK+AIoEC6IDfgQG0gQPjgQPQgQP7gQQjgQEc -gQKNgQNggQE8gPeBA2qBBKyBAz+BAuaBAUuBAUOAkIEDhoEEN4ECL4ECKYEDjIEBT4EBnIBHgQOdgJ6B -A8eBA6mAToDHgQItgQJngQJHgCiAzIECUIECZYCEgQNUgQSygQMsgQJjgQODgQS8gIqBAkmBASaAdoED -j4EDlYEDOoEB04EBGIBLgQKFgAKAboECdIEBNYEEnYEDyoEBrIAygNOBA7aBAT2BBCqBASqA3YEEUIEC -RYEDn4ECloECTYDLgOGAf4C1gQHQgQSfgQL7gQNYgJOBBByBAoGAo4EBSIECEIECJYEEwoEC/oBggQLc -gQTIgQQZgQNSgL+BApOBA4iBBNCBAlGAhYEDBoEEQ4ECF4EERoAjgQE4gQH/gQQPgQMYgQGHgQJWgQMP -gMiBAWeADYEC14EBH4CrgQPJgQKJgQHggQFagQLwgLCBAeSAvIEDr4ECK4EBjoECG4EBaYEC2IEBmoED -1YED14EEF4EDb4ArgQTMgQTOgDGBAo+BAz6BBDOBAW+BAa+BAriBAwSBAn2BAjGAKoED2IEDKIEDRYBR -gH6BAqWBBCWBA46BBC6BBNeBA2iBAp+BATeBAr6BAiSBA4mARoEDpYEBoYEEEIEDz4EDY4EEzYCMgQO0 -gQPRgQKqgQQhgQHIgHSBAwGBBAmBAfWAIIDkgQOigQH3gQKwgQRCgQO4gQNWgO6BAX6AiYECS4EDO4EE -qYED6IBcgQRAgQTUgQHogQKzgQH5gQJBgA6APoEExoEBFYEDG4ED4YEDZYEEAYBn0gAOAEUSHRzugQRv -rxEB4RzvHPAc8RzyHPMc9Bz1HPYc9xz4HPkc+hz7HPwc/Rz+HP8dAB0BHQIdAx0EHQUdBh0HHQgdCR0K -HQsdDB0NHQ4dDx0QHREdEh0THRQdFR0WHRcdGB0ZHRodGx0cHR0dHh0fHSAdIR0iHSMdJB0lHSYdJx0o -HSkdKh0rHSwdLR0uHS8dMB0xHTIdMx00HTUdNh03HTgdOR06HTsdPB09HT4dPx1AHUEdQh1DHUQdRR1G -HUcdSB1JHUodSx1MHU0dTh1PHVAdUR1SHVMdVB1VHVYdVx1YHVkdWh1bHVwdXR1eHV8dYB1hHWIdYx1k -HWUdZh1nHWgdaR1qHWsdbB1tHW4dbx1wHXEdch1zHXQddR12HXcdeB15HXodex18HX0dfh1/HYAdgR2C -HYMdhB2FHYYdhx2IHYkdih2LHYwdjR2OHY8dkB2RHZIdkx2UHZUdlh2XHZgdmR2aHZsdnB2dHZ4dnx2g -HaEdoh2jHaQdpR2mHacdqB2pHaodqx2sHa0drh2vHbAdsR2yHbMdtB21HbYdtx24Hbkduh27HbwdvR2+ -Hb8dwB3BHcIdwx3EHcUdxh3HHcgdyR3KHcsdzB3NHc4dzx3QHdEd0h3THdQd1R3WHdcd2B3ZHdod2x3c -Hd0d3h3fHeAd4R3iHeMd5B3lHeYd5x3oHekd6h3rHewd7R3uHe8d8B3xHfId8x30HfUd9h33Hfgd+R36 -Hfsd/B39Hf4d/x4AHgEeAh4DHgQeBR4GHgceCB4JHgoeCx4MHg0eDh4PHhAeER4SHhMeFB4VHhYeFx4Y -HhkeGh4bHhweHR4eHh8eIB4hHiIeIx4kHiUeJh4nHigeKR4qHiseLB4tHi4eLx4wHjEeMh4zHjQeNR42 -HjceOB45HjoeOx48Hj0ePh4/HkAeQR5CHkMeRB5FHkYeRx5IHkkeSh5LHkweTR5OHk8eUB5RHlIeUx5U -HlUeVh5XHlgeWR5aHlseXB5dHl4eXx5gHmEeYh5jHmQeZR5mHmceaB5pHmoeax5sHm0ebh5vHnAecR5y -HnMedB51HnYedx54Hnkeeh57HnwefR5+Hn8egB6BHoIegx6EHoUehh6HHogeiR6KHosejB6NHo4ejx6Q -HpEekh6THpQelR6WHpcemB6ZHpoemx6cHp0enh6fHqAeoR6iHqMepB6lHqYepx6oHqkeqh6rHqwerR6u -Hq8esB6xHrIesx60HrUeth63HrgeuR66HrsevB69Hr4evx7AHsEewh7DHsQexR7GHsceyB7JHsoeyx7M -Hs0ezh7PgQZGgQZHgQZIgQZJgQZKgQZLgQZMgQZNgQZOgQZPgQZQgQZRgQZSgQZTgQZUgQZVgQZWgQZX -gQZYgQZZgQZagQZbgQZcgQZdgQZegQZfgQZggQZhgQZigQZjgQZkgQZlgQZmgQZngQZogQZpgQZqgQZr -gQZsgQZtgQZugQZvgQZwgQZxgQZygQZzgQZ0gQZ1gQZ2gQZ3gQZ4gQZ5gQZ6gQZ7gQZ8gQZ9gQZ+gQZ/ -gQaAgQaBgQaCgQaDgQaEgQaFgQaGgQaHgQaIgQaJgQaKgQaLgQaMgQaNgQaOgQaPgQaQgQaRgQaSgQaT -gQaUgQaVgQaWgQaXgQaYgQaZgQaagQabgQacgQadgQaegQafgQaggQahgQaigQajgQakgQalgQamgQan -gQaogQapgQaqgQargQasgQatgQaugQavgQawgQaxgQaygQazgQa0gQa1gQa2gQa3gQa4gQa5gQa6gQa7 -gQa8gQa9gQa+gQa/gQbAgQbBgQbCgQbDgQbEgQbFgQbGgQbHgQbIgQbJgQbKgQbLgQbMgQbNgQbOgQbP -gQbQgQbRgQbSgQbTgQbUgQbVgQbWgQbXgQbYgQbZgQbagQbbgQbcgQbdgQbegQbfgQbggQbhgQbigQbj -gQbkgQblgQbmgQbngQbogQbpgQbqgQbrgQbsgQbtgQbugQbvgQbwgQbxgQbygQbzgQb0gQb1gQb2gQb3 -gQb4gQb5gQb6gQb7gQb8gQb9gQb+gQb/gQcAgQcBgQcCgQcDgQcEgQcFgQcGgQcHgQcIgQcJgQcKgQcL -gQcMgQcNgQcOgQcPgQcQgQcRgQcSgQcTgQcUgQcVgQcWgQcXgQcYgQcZgQcagQcbgQccgQcdgQcegQcf -gQcggQchgQcigQcjgQckgQclgQcmgQcngQcogQcpgQcqgQcrgQcsgQctgQcugQcvgQcwgQcxgQcygQcz -gQc0gQc1gQc2gQc3gQc4gQc5gQc6gQc7gQc8gQc9gQc+gQc/gQdAgQdBgQdCgQdDgQdEgQdFgQdGgQdH -gQdIgQdJgQdKgQdLgQdMgQdNgQdOgQdPgQdQgQdRgQdSgQdTgQdUgQdVgQdWgQdXgQdYgQdZgQdagQdb -gQdcgQddgQdegQdfgQdggQdhgQdigQdjgQdkgQdlgQdmgQdngQdogQdpgQdqgQdrgQdsgQdtgQdugQdv -gQdwgQdxgQdygQdzgQd0gQd1gQd2gQd3gQd4gQd5gQd6gQd7gQd8gQd9gQd+gQd/gQeAgQeBgQeCgQeD -gQeEgQeFgQeGgQeHgQeIgQeJgQeKgQeLgQeMgQeNgQeOgQePgQeQgQeRgQeSgQeTgQeUgQeVgQeWgQeX -gQeYgQeZgQeagQebgQecgQedgQeegQefgQeggQehgQeigQejgQekgQelgQemgQengQeogQepgQeqgQer -gQesgQetgQeugQevgQewgQexgQeygQezgQe0gQe1gQe2gQe3gQe4gQe5gQe6gQe7gQe8gQe9gQe+gQe/ -gQfAgQfBgQfCgQfDgQfEgQfFgQfGgQfHgQfIgQfJgQfKgQfLgQfMgQfNgQfOgQfPgQfQgQfRgQfSgQfT -gQfUgQfVgQfWgQfXgQfYgQfZgQfagQfbgQfcgQfdgQfegQffgQfggQfhgQfigQfjgQfkgQflgQfmgQfn -gQfogQfpgQfqgQfrgQfsgQftgQfugQfvgQfwgQfxgQfygQfzgQf0gQf1gQf2gQf3gQf4gQf5gQf6gQf7 -gQf8gQf9gQf+gQf/gQgAgQgBgQgCgQgDgQgEgQgFgQgGgQgHgQgIgQgJgQgKgQgLgQgMgQgNgQgOgQgP -gQgQgQgRgQgSgQgTgQgUgQgVgQgWgQgXgQgYgQgZgQgagQgbgQgcgQgdgQgegQgfgQgggQghgQgigQgj -gQgkgQglgQgmEQW6EgABi9QSAAGL2REFWxEFwREDLBEDcBIAAYtEEgADD58RBXYRBRgRBYASAAGK1REF -lBEFkBEDbBEEJxIAAYtbEQVZEQTPEQUrEQMbEgABiuURAygRBKARBEcRBZ0RA2kSAAGJxhEDOBIAAYob -EQWVEQQrEQFDEgABiK0RBYESAAGKtxEFDhEDQREEJBEFqxEDJRIAAYq8EQQtEQQvEQPuEQUvEQQhEQVC -EgABidURBY4RAz8RBZgRBXkSAAMPmhIAAw+nEQNtEQQdEQPrEQNyEQE9EQJXEQNjEQWSEQTKEQWsEgAB -izMRBEARBbYRBYkSAAGMNxEFNxP//////////RIAAYq6EQVDEQRGEgABi1YRAyIRAy4RBVIQxBIAAYrA -EQINEgADD5USAAGLRxEDNRIAAYrvEQNAEQN2EQQoEQQmEQUIEQSVEQT4EQSUEgABi04RBOIQhhECUhIA -AYnfEgABidYRA28RBCoRA30SAAGKxhIAAYvFEJISAAGLvREFjREDcRIAAYoSEQEmEQRJEQUKEQSuEgAB -i1URAUsRBRwRBD4RA2USAAMPlxED6REFMxIAAw+oEQSWEgABi9YRAlURBK0SAAMPmxIAAYoFEQNmEgAB -ih4QiBEEHBEFARCREgABicURBQQRBEsSAAGI9RECThEEuhEEvBIAAw+gEgABjC0RBa0SAAGKwREFNhEE -UBEEJRIAAYrnEQQgEgABjEcSAAGJ0xEDMRAdEQMUEQW5EQT0EQSYEQS1EgABh8cSAAGMTxEEShIAAYtY -EQJTEQTjEQUlEQUyEQUmEQSTEgADD5gRBPoRA3wRASoSAAGKDBIAAYxREQElEgABjFISAAGLTREDNhEE -/xEERBEFjBEETxEFMREE4BEFghEEHxIAAYwiEQVTEQWaEgABjDkRBVwRBEURAz0RBDcSAAGLuxEFVREF -RREFBxEEMxIAAYj3EQUjEQUuEQUpEQQ4EgABiooRBD8SAAGJyBIAAYu/EgABitYRAx4SAAGJwBEFehEF -UBEElxEEFhEFPxEFIBIAAYrPEQMaEQU0EQPtEQQ1EgABi08SAAGMHxIAAYtCEgABjEsSAAGLzBEFOREF -dREEQREFqRIAAYoXEQMcEQShEQWXEQWwEQU1EgADD6IRBZYSAAGJxxIAAYxQEQNkEQWzEgABjDISAAGI -rhEFLBEDMxIAAw+ZEQSnEQWKEgABi8MSAAGJwRED7xEFBREFexED6hCVEgABi1cSAAGK1BDDEQROEQEk -EQEbEQIOEQWcEgABh8YRA3gSAAGLyRED7BEFmxIAAYvEEQVUEJYRBDQRA3oRA3URBUQRBSgRBEMRAy8R -AzsRBa4RBQMRAlwRBKIRBD0RA3cRBbQRBVgRBPkRBagSAAGJyREDaBEDNxDCEQV/EQMYEgABigcRBOQR -BQARARwRBacRA2cSAAGLzxEB1xEFHhIAAYnXEQMXEgABi1QRBa8RBbISAAMPqhEFixEBLBEEpBIAAYoR -EgADD60RBLYRA3QSAAGLyxEFVhECWhIAAYrqEQMjEQV9EQVREQN+EQW9EQNCEgABi9MRAlYRAzwRBVoR -BZkSAAGJ3hEFnhEFtREE0REFXhIAAYwqEQUGEQQjEQVMEgABi9URAk8SAAGKDxEDaxEDahEDJBEDKhA4 -EQQsEgABi9cRBDASAAMPnhECVBEEPBIAAw+hEgABi8gRBMgRAx8RBNoRBDIRAdgRAyYRAlkRBLgRBbER -Ax0RBXQRBbsRBR8RAy0RBZMQOREEpREEuxEEHhEEOhEFAhEFDxEDeRIAAYwwEQMwEQQuEQV3EQWPEQW+ -EQTqEQMpEQUbEQMnEgABi0URBBkRBXgRBDkSAAMPpRECWBIAAYvOEQJdEgADD6sSAAMPoxEDKxEDexCZ -EQUaEQSvEQRMEQWDEQQbEgABig0SAAGJzxEDIBIAAw+kEQWmEgABi8YSAAGLXBEE5REEGBEESBIAAYxO -EgADD50Q/REFJBEEFxEFuBEEMREDOREFHREFchEFtxEDFhCYEQEgEQUtEgADD6wSAAGLvhEFQREBHREE -KREEQhIAAYs3EQS0EQQiEQVAEQMZEQS3EgABjE0RBNsSAAGJuREFwhEB2RIAAw+cEQUJEgABi9ERBXMR -BVcRAz4SAAMPqRIAAw+mEQEnEQVPEQQ7EgADD5YRBZERBBoRAyERAzQRBLkRAzIRBRkRA24RBDYQOhIA -AYvNEgABiPIRBPvSAA4ARQBNILKAQaDSAA4ARRIdILWBBG+g0gAOAEUSHSC4gQRvoNIAOgA7ILogu6Ig -uwA/Xk5TSUJPYmplY3REYXRhAAAIAAAZAAAiAAAnAAAxAAA6AAA/AABEAABSAABUAABmABDAABDGABER -ABEYABEfABEtABE/ABFbABFpABF1ABGBABGPABGaABGoABHEABHSABHlABH3ABIRABIbABIoABIqABIt -ABIwABIzABI2ABI4ABI7ABI9ABJAABJDABJGABJJABJLABJNABJQABJTABJYABJbABJkABJwABJyABJ0 -ABJ9ABKHABKJABKXABKgABKpABK0ABK7ABLNABLWABLfABLoABLtABL8ABMPABMYABMjABMlABMmABMv -ABM2ABNDABNJABNSABNUABQ/ABRBABRDABRFABRHABRJABRLABRNABRPABRRABRTABRVABRXABRZABRb -ABRdABRfABRhABRjABRlABRnABRpABRrABRtABRvABRxABRzABR1ABR3ABR5ABR8ABR/ABSCABSFABSI -ABSLABSOABSRABSUABSXABSaABSdABSgABSjABSmABSpABSsABSvABSyABS1ABS4ABS7ABS+ABTBABTE -ABTHABTKABTNABTQABTTABTWABTZABTcABTfABTiABTlABToABTrABTuABTxABT0ABT3ABT6ABT9ABUA -ABUDABUGABUJABUMABUPABUSABUVABUYABUbABUeABUhABUkABUnABUqABUtABUwABUzABU2ABU5ABU8 -ABU/ABVCABVFABVIABVLABVOABVRABVUABVXABVaABVdABVgABVjABVmABVpABVsABVvABVyABV1ABV4 -ABV7ABV+ABWPABWdABWmABWuABWwABWyABW0ABW2ABW/ABXBABXDABXOABXrABX9ABYFABYMABYVABYf -ABYrABYtABYvABYxABYzABY2ABY3ABY5ABZOABZZABZbABZdABZfABZhABZ6ABajABavABbDABbOABbY -ABbmABbzABcGABcaABcmABcvABcxABczABc1ABc3ABc5ABc+ABdAABdBABdDABdEABdVABdcABdjABds -ABduABd3ABd5ABd7ABeIABeRABeWABedABeyABe6ABfHABfTABfhABfjABflABfnABfpABfrABfyABgI -ABgVABgdABgfABghABgkABgtABgyABg/ABhFABhHABhOABhXABhgABhyABh/ABiIABiTABifABipABiw -ABi8ABjKABjTABjaABjxABkAABkRABkTABkVABkXABkZABk2ABk4ABk6ABk8ABk+ABk/ABlBABlaABmD -ABmFABmHABmJABmLABmNABmOABmQABmtABmvABmxABmzABm1ABm2ABm4ABnQABn5ABn7ABn9ABn/ABoB -ABoDABoEABoGABoSABojABolABonABopABorABo0ABo2ABo4ABpAABpdABpfABphABpjABplABpmABpo -ABp9ABp/ABqBABqEABqHABqhABrwABsNABsfABs1ABtKABtZABtsABt+ABuJABubABuwABu+ABvQABvX -ABvlABvuABvvABvxABvzABv1ABv3ABv5ABv7ABv9ABv/ABwAABwBABwEABwJABwLABwQABwhABwjABws -ABwuABwxABw6ABw8ABxFABxHABx0ABx9AByFAByZABykAByyABy8ABzJABzSABzaABzcABzeABzgABzl -ABznABzsABzuABzwABzyABz0AB0BAB0NAB0PAB0RAB0TAB0cAB0pAB04AB06AB08AB0+AB1GAB1YAB1h -AB1mAB15AB2GAB2IAB2KAB2MAB2fAB2zAB28AB3BAB3KAB3MAB3XAB3gAB3iAB3nAB3pAB3rAB4UAB4W -AB4YAB4aAB4cAB4eAB4gAB4iAB4kAB4sAB41AB48AB5LAB5TAB5cAB5hAB5qAB53AB6LAB6aAB6nAB6w -AB69AB7LAB7UAB7cAB7tAB7vAB7xAB7zAB71AB8SAB8UAB8WAB8YAB8aAB8bAB8dAB8yAB80AB82AB85 -AB88AB9lAB9nAB9pAB9rAB9tAB9vAB9wAB9yAB+PAB+RAB+TAB+VAB+XAB+YAB+aAB+zAB/cAB/eAB/g -AB/iAB/kAB/mAB/nAB/pAB/6AB/8AB/+ACAAACACACAfACAhACAjACAlACAnACAoACAqACBCACB3ACB8 -ACB+ACCAACCCACCEACCGACCIACCKACCMACCOACCTACCcACCfACCwACCyACC7ACC9ACDAACDRACDTACDV -ACDfACDoACDqACDzACD1ACD+ACEHACEQACEbACEpACEyACE5ACFRACFiACFkACFmACFoACFqACGHACGJ -ACGLACGNACGPACGQACGSACGnACGpACGrACGuACGxACHKACH/ACIBACIDACIFACIHACIJACILACINACIP -ACIUACIdACIyACJDACJFACJHACJQACJSACJbACJdACJfACJrACJ2ACKHACKJACKLACKNACKPACLAACLN -ACLaACLoACLyACMAACMNACMXACMpACM9ACNHACNTACNVACNXACNZACNbACNgACNiACNkACNmACNoACNq -ACNsACOHACOVACOeACOnACOpACOuACO3ACO5ACPIACPKACPMACPOACPQACPSACPUACPWACPzACP1ACP3 -ACP5ACP7ACP8ACP+ACQnACQpACQrACQtACQvACQxACQyACQ0ACRRACRTACRVACRXACRZACRaACRcACR1 -ACSeACSgACSiACSkACSmACSoACSpACSrACTIACTKACTMACTOACTQACTRACTTACTrACUUACUWACUYACUa -ACUcACUeACUfACUhACU4ACVBACVIACVhACVsACWJACWSACWXACWqACW5ACXGACXIACXKACXMACXtACXv -ACXxACXzACX1ACX3ACX5ACYGACYIACYLACYOACYTACYVACYbACYoACYqACYsACYuACZPACZRACZTACZV -ACZXACZZACZbACZfACZhACZmACZ3ACZ5ACZ7ACZ9ACZ/ACacACaeACagACaiACakACalACanACbAACb1 -ACb3ACb5ACb7ACb9ACb/ACcBACcDACcFACcOACcQACcXACcoACcqACcsACcuACcwACdNACdPACdRACdT -ACdVACdWACdYACdwACeVACeaACecACeeACegACeiACekACepACeqACesACfBACfDACfFACfHACfJACfW -ACfjACflACfxACgGACgIACgKACgMACgOACghACguACgwACgzACg6AChLAChNAChPAChRAChTAChiAChz -ACh1ACh3ACh5ACh7ACiYACiaACicACieACigACihACijACi9ACkMACkNACkPACkRACkTACkVACkXACkZ -ACkbACkcACkdACkfACkoACkqACkzACk1ACliAClkAClmACloAClqAClsACluAClwAClyACl/ACmBACmD -ACmFACmOACmQACmZACmbACmgACmiACmkACnNACnPACnRACnTACnVACnXACnZACnbACndACnqACn7ACn9 -ACn/ACoBACoDACogACoiACokAComACooACopACorACpUACpWACpYACpaACpcACpeACpfACphACptACp+ -ACqAACqCACqEACqGACqXACqZACqbACqdACqfACqqACq7ACq9ACq/ACrBACrDACrVACrmACroACrqACrs -ACruACsLACsNACsPACsRACsTACsUACsWACsuACtjACtlACtnACtpACtrACttACtvACtxACt6ACt8ACuF -ACuHACuSACujACulACunACupACurACu0ACvFACvHACvJACvLACvNACvuACvwACvyACv0ACv2ACv4ACv6 -ACwHACwJACwMACwPACwkACwmACwvACwxACwzACw9ACxLACxcACxeACxgACxiACxkACyFACyHACyJACyL -ACyNACyPACyRACyiACykACynACyqACytACy3ACy/ACzQACzSACzUACzWACzYACz1ACz3ACz5ACz7ACz9 -ACz+AC0AAC0ZAC0cAC0eAC0hAC0kAC0nAC1BAC2QAC2RAC2TAC2VAC2XAC2ZAC2bAC2dAC2fAC2gAC2h -AC2jAC2sAC2uAC23AC25AC3mAC3oAC3qAC3sAC3uAC3wAC3yAC30AC32AC4DAC4FAC4HAC4JAC4SAC4U -AC4dAC4fAC4kAC4mAC4oAC5RAC5TAC5VAC5XAC5ZAC5bAC5dAC5fAC5hAC5qAC57AC59AC5/AC6BAC6D -AC6gAC6iAC6kAC6mAC6oAC6pAC6rAC7EAC7pAC7rAC7tAC7vAC7xAC7zAC70AC72AC8AAC8RAC8TAC8V -AC8XAC8ZAC8iAC8zAC81AC83AC85AC87AC9YAC9aAC9cAC9eAC9gAC9hAC9jAC97AC+gAC+iAC+kAC+m -AC+oAC+qAC+rAC+tAC+4AC/JAC/LAC/NAC/PAC/RAC/yAC/0AC/2AC/4AC/6AC/8AC/+ADAWADAYADAe -ADAvADAxADAzADA1ADA3ADBUADBWADBYADBaADBcADBdADBfADB3ADCsADCuADCwADCyADC0ADC2ADC4 -ADC6ADC/ADDIADDKADDUADDlADDnADDpADDrADDtADEKADEMADEOADEQADESADETADEVADEuADFTADFV -ADFXADFZADFbADFdADFeADFgADFrADF8ADF+ADGAADGCADGFADGiADGkADGmADGoADGqADGrADGtADHG -ADHJADHLADHOADHRADHUADHsADI7ADI8ADI+ADJAADJCADJEADJGADJIADJKADJLADJMADJOADJXADJZ -ADKGADKIADKKADKMADKOADKQADKSADKUADKXADKkADKmADKpADKsADKxADK6ADK8ADLFADLHADLOADLQ -ADLTADLWADL/ADMBADMDADMGADMIADMKADMMADMOADMRADMdADNGADNIADNKADNNADNPADNRADNTADNV -ADNYADNeADNpADN6ADN8ADN/ADOBADOEADOhADOjADOlADOoADOrADOsADOuADPIADQbADQtADQuADQx -ADQzADQ1ADQ4ADQ6ADQ9ADRAADRBADRCADRFADROADRQADRZADRbADSIADSLADSNADSPADSRADSTADSV -ADSYADSbADSoADSqADStADSwADS5ADS7ADTEADTGADTLADTOADTRADT6ADT9ADT/ADUBADUDADUFADUH -ADUKADUNADUVADUiADUkADUnADUqADVHADVKADVMADVPADVSADVTADVWADVrADVtADVvADVyADV1ADWN -ADXCADXEADXGADXIADXLADXNADXPADXSADXUADXeADXvADXxADX0ADX2ADX5ADYWADYYADYaADYdADYg -ADYhADYjADY9ADaMADaNADaQADaSADaUADaXADaZADacADafADagADahADakADatADavADa4ADa6ADbn -ADbqADbsADbuADbwADbyADb0ADb3ADb6ADcHADcJADcMADcPADcYADcaADcjADclADcqADctADcwADdZ -ADdcADdeADdgADdiADdkADdmADdpADdsADd6ADeLADeNADePADeSADeVADe2ADe4ADe7ADe+ADfAADfC -ADfEADfYADfaADfnADf4ADf6ADf9ADf/ADgCADgfADghADgjADgmADgpADgqADgsADhEADhpADhrADht -ADhvADhxADh0ADh1ADh3ADh+ADiPADiRADiUADiWADiZADi2ADi4ADi6ADi9ADjAADjBADjDADjcADkB -ADkDADkFADkHADkJADkMADkNADkPADkWADknADkpADksADkuADkxADlOADlQADlSADlVADlYADlZADlb -ADl1ADnIADnJADnMADnOADnQADnTADnVADnYADnbADncADndADngADnpADnrADn0ADn2ADojADomADoo -ADorADotADovADoxADo0ADo3ADpEADpGADpJADpMADpSADpbADpdADpmADpoADpvADpyADp1ADp4ADqh -ADqkADqmADqpADqrADqtADqvADqyADq1ADq7ADrkADrnADrpADrsADruADrwADryADr1ADr4ADr+ADsL -ADscADseADshADsjADsmADtDADtFADtHADtKADtNADtOADtQADt5ADt7ADt9ADt/ADuBADuEADuFADuH -ADuTADukADumADupADurADuuADvLADvNADvPADvSADvVADvWADvYADvyADxBADxCADxFADxHADxJADxM -ADxOADxRADxUADxVADxWADxZADxiADxkADxtADxvADycADyfADyhADyjADylADynADypADysADyvADy8 -ADy+ADzBADzEADzNADzPADzYADzaADzfADziADzlAD0OAD0RAD0TAD0VAD0XAD0ZAD0bAD0eAD0hAD0u -AD0/AD1BAD1EAD1GAD1JAD16AD18AD1+AD2BAD2DAD2FAD2IAD2LAD2OAD2RAD2aAD2cAD2lAD2nAD22 -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 -AE4oAE4rAE4tAE5AAE5XAE5xAE54AE6VAE6XAE6ZAE6cAE6eAE6hAE6qAE63AE65AE7HAE7QAE7ZAE7f -AE78AE7+AE8AAE8DAE8GAE8HAE8JAE8jAE9EAE9GAE9IAE9LAE9NAE9QAE9SAE9hAE9+AE+AAE+CAE+F -AE+IAE+JAE+LAE+lAE/4AE/5AE/8AE/+AFAAAFADAFAFAFAIAFALAFAMAFANAFAQAFAZAFAbAFAkAFAm -AFBTAFBWAFBYAFBbAFBdAFBfAFBhAFBkAFBnAFB0AFB2AFB5AFB8AFB+AFCHAFCJAFCSAFCUAFChAFCk -AFCnAFCqAFCtAFCwAFCzAFDcAFDfAFDhAFDkAFDmAFDoAFDqAFDtAFDwAFDyAFEbAFEeAFEgAFEjAFEl -AFEnAFEpAFEsAFEvAFExAFFaAFFdAFFfAFFiAFFkAFFmAFFoAFFrAFFuAFFwAFGZAFGcAFGeAFGhAFGj -AFGlAFGnAFGqAFGtAFGvAFHYAFHbAFHdAFHgAFHiAFHkAFHmAFHpAFHsAFHuAFILAFINAFIPAFISAFIV -AFIWAFIYAFIyAFJTAFJVAFJXAFJaAFJcAFJfAFJhAFJtAFKKAFKMAFKOAFKRAFKUAFKVAFKXAFKxAFLS -AFLUAFLWAFLZAFLbAFLeAFLgAFLsAFMJAFMLAFMNAFMQAFMTAFMUAFMWAFMwAFNRAFNTAFNVAFNYAFNa -AFNdAFNfAFNuAFOLAFONAFOPAFOSAFOVAFOWAFOYAFOyAFQFAFQGAFQJAFQLAFQNAFQQAFQSAFQVAFQY -AFQZAFQaAFQdAFQmAFQoAFQxAFQzAFRgAFRjAFRlAFRnAFRpAFRrAFRtAFRwAFRzAFSAAFSCAFSFAFSI -AFSRAFSTAFScAFSeAFSjAFSmAFSpAFTSAFTVAFTXAFTZAFTbAFTdAFTfAFTiAFTlAFUCAFUEAFUGAFUJ -AFUMAFUNAFUPAFUpAFVKAFVMAFVOAFVRAFVTAFVWAFVYAFVnAFWEAFWGAFWIAFWLAFWOAFWPAFWRAFWr -AFXMAFXOAFXQAFXTAFXVAFXYAFXaAFXtAFYKAFYMAFYOAFYRAFYUAFYVAFYXAFYxAFaAAFaBAFaEAFaG -AFaIAFaLAFaNAFaQAFaTAFaUAFaVAFaYAFahAFajAFasAFauAFbbAFbeAFbgAFbjAFblAFbnAFbpAFbs -AFbvAFb8AFb+AFcBAFcEAFcNAFcPAFcYAFcaAFcnAFcqAFctAFcwAFczAFc2AFc5AFdiAFdlAFdnAFdq -AFdsAFduAFdwAFdzAFd2AFefAFeiAFekAFenAFepAFerAFetAFewAFezAFfcAFffAFfhAFfkAFfmAFfo -AFfqAFftAFfwAFgZAFgcAFgeAFghAFgjAFglAFgnAFgqAFgtAFhWAFhZAFhbAFheAFhgAFhiAFhkAFhn -AFhqAFiHAFiJAFiLAFiOAFiRAFiSAFiUAFiuAFjPAFjRAFjTAFjWAFjYAFjbAFjdAFjvAFkMAFkOAFkQ -AFkTAFkWAFkXAFkZAFkzAFmCAFmDAFmGAFmIAFmKAFmNAFmPAFmSAFmVAFmWAFmXAFmaAFmjAFmlAFmu -AFmwAFndAFngAFniAFnlAFnnAFnpAFnrAFnuAFnxAFn+AFoAAFoDAFoGAFoKAFoTAFoVAFoeAFogAFol -AFooAForAFpUAFpXAFpZAFpcAFpeAFpgAFpiAFplAFpoAFptAFqKAFqMAFqOAFqRAFqUAFqVAFqXAFqw -AFrlAFrnAFrpAFrsAFrvAFryAFr0AFr3AFr8AFsPAFsgAFsiAFskAFstAFsvAFtMAFtOAFtQAFtTAFtW -AFtXAFtZAFtyAFuTAFuVAFuXAFuaAFucAFufAFuhAFuwAFvNAFvPAFvRAFvUAFvXAFvYAFvaAFvzAFwU -AFwWAFwYAFwbAFwdAFwgAFwiAFwuAFxjAFxlAFxoAFxrAFxuAFxvAFxyAFx1AFx3AFx6AFyDAFyFAFyI -AFyLAFygAFyjAFylAFyoAFyrAFzCAFzcAFz5AFz7AFz9AF0AAF0CAF0FAF0LAF0YAF0aAF03AF05AF07 -AF0+AF1BAF1CAF1EAF1eAF2tAF2uAF2xAF2zAF21AF24AF26AF29AF3AAF3BAF3CAF3FAF3OAF3QAF3Z -AF3bAF4IAF4LAF4NAF4PAF4RAF4TAF4VAF4YAF4bAF4oAF4qAF4tAF4wAF45AF47AF5EAF5GAF5LAF5O -AF5RAF56AF59AF5/AF6BAF6DAF6FAF6HAF6KAF6NAF6qAF6sAF6uAF6xAF60AF61AF63AF7QAF7xAF7z -AF71AF74AF76AF79AF7/AF8YAF81AF83AF85AF88AF8/AF9AAF9CAF9bAF98AF9+AF+AAF+DAF+FAF+I -AF+KAF+cAF+5AF+7AF+9AF/AAF/DAF/EAF/GAF/gAGAvAGAwAGAzAGA1AGA3AGA6AGA8AGA/AGBCAGBD -AGBEAGBHAGBQAGBSAGBbAGBdAGCKAGCNAGCPAGCRAGCTAGCVAGCXAGCaAGCdAGCqAGCsAGCvAGCyAGC7 -AGC9AGDGAGDIAGDNAGDQAGDTAGD8AGD/AGEBAGEDAGEFAGEHAGEJAGEMAGEPAGEsAGEuAGEwAGEzAGE2 -AGE3AGE5AGFSAGFzAGF1AGF3AGF6AGF8AGF/AGGBAGGIAGG9AGG/AGHCAGHFAGHIAGHJAGHMAGHPAGHR -AGHTAGHcAGHeAGHhAGHjAGHsAGHuAGHzAGH1AGH4AGIVAGIXAGIZAGIcAGIfAGIgAGIiAGI6AGJbAGJd -AGJfAGJiAGJkAGJnAGJpAGKAAGKXAGKwAGLNAGLPAGLRAGLUAGLWAGLZAGLfAGLsAGLuAGMLAGMNAGMP -AGMSAGMVAGMWAGMYAGMyAGOBAGOCAGOFAGOHAGOJAGOMAGOOAGORAGOUAGOVAGOWAGOZAGOiAGOkAGOt -AGOvAGPcAGPfAGPhAGPkAGPmAGPoAGPqAGPtAGPwAGP9AGP/AGQCAGQFAGQIAGQRAGQTAGQcAGQeAGQn -AGQqAGQtAGQwAGQzAGRcAGRfAGRhAGRkAGRmAGRoAGRqAGRtAGRwAGRzAGScAGSfAGShAGSkAGSmAGSo -AGSqAGStAGSwAGSzAGTcAGTfAGThAGTkAGTmAGToAGTqAGTtAGTwAGTzAGUQAGUSAGUUAGUXAGUaAGUb -AGUdAGU3AGWKAGWLAGWOAGWQAGWSAGWVAGWXAGWaAGWdAGWeAGWfAGWiAGWrAGWtAGW2AGW4AGXlAGXo -AGXqAGXtAGXvAGXxAGXzAGX2AGX5AGYGAGYIAGYLAGYOAGYYAGYhAGYjAGYsAGYuAGY1AGY4AGY7AGY+ -AGZnAGZqAGZsAGZuAGZwAGZyAGZ0AGZ3AGZ6AGajAGamAGaoAGaqAGasAGauAGawAGazAGa2AGbTAGbV -AGbXAGbaAGbdAGbeAGbgAGb6AGdJAGdKAGdNAGdPAGdRAGdUAGdWAGdZAGdcAGddAGdeAGdhAGdqAGds -AGd1AGd3AGekAGenAGepAGerAGetAGevAGexAGe0AGe3AGfEAGfGAGfJAGfMAGfVAGfXAGfgAGfiAGfn -AGfqAGftAGgWAGgZAGgbAGgdAGgfAGghAGgjAGgmAGgpAGhGAGhIAGhKAGhNAGhQAGhRAGhTAGhsAGiN -AGiPAGiRAGiUAGiWAGiZAGibAGipAGjGAGjIAGjKAGjNAGjQAGjRAGjTAGjtAGk8AGk9AGlAAGlCAGlE -AGlHAGlJAGlMAGlPAGlQAGlRAGlUAGldAGlfAGloAGlqAGmXAGmaAGmcAGmeAGmgAGmiAGmkAGmnAGmq -AGm3AGm5AGm8AGm/AGnIAGnKAGnTAGnVAGnaAGndAGngAGoJAGoMAGoOAGoQAGoSAGoUAGoWAGoZAGoc -AGo5AGo7AGo9AGpAAGpDAGpEAGpGAGpfAGqAAGqCAGqEAGqHAGqJAGqMAGqOAGqaAGq3AGq5AGq7AGq+ -AGrBAGrCAGrEAGrdAGr+AGsAAGsCAGsFAGsHAGsKAGsMAGseAGs7AGs9AGs/AGtCAGtFAGtGAGtIAGth -AGuCAGuEAGuGAGuJAGuLAGuOAGuQAGucAGu5AGu7AGu9AGvAAGvDAGvEAGvGAGvgAGwvAGwwAGwzAGw1 -AGw3AGw6AGw8AGw/AGxCAGxDAGxEAGxHAGxQAGxSAGxbAGxdAGyKAGyNAGyPAGySAGyUAGyWAGyYAGyb -AGyeAGyrAGytAGywAGyzAGy5AGzCAGzEAGzNAGzPAGzsAGzvAGzyAGz1AGz4AGz7AGz+AG0BAG0EAG0H -AG0KAG0NAG0QAG0TAG0WAG0/AG1CAG1EAG1HAG1JAG1LAG1NAG1QAG1TAG1bAG2EAG2HAG2JAG2MAG2O -AG2QAG2SAG2VAG2YAG2eAG3HAG3KAG3MAG3PAG3RAG3TAG3VAG3YAG3bAG3nAG4QAG4TAG4VAG4YAG4a -AG4cAG4eAG4hAG4kAG4wAG5ZAG5cAG5eAG5hAG5jAG5lAG5nAG5qAG5tAG52AG6fAG6iAG6kAG6nAG6p -AG6rAG6tAG6wAG6zAG7cAG7fAG7hAG7kAG7mAG7oAG7qAG7tAG7wAG8HAG8wAG8zAG81AG84AG86AG88 -AG8+AG9BAG9EAG9XAG+AAG+DAG+FAG+IAG+KAG+MAG+OAG+RAG+UAG+dAG/GAG/JAG/LAG/OAG/QAG/S -AG/UAG/XAG/aAG/oAHARAHAUAHAWAHAZAHAbAHAdAHAfAHAiAHAlAHAvAHBYAHBbAHBdAHBgAHBiAHBk -AHBmAHBpAHBsAHB+AHCnAHCqAHCsAHCvAHCxAHCzAHC1AHC4AHC7AHDKAHDnAHDpAHDrAHDuAHDxAHDy -AHD0AHENAHEuAHEwAHEyAHE1AHE3AHE6AHE8AHFLAHFoAHFqAHFsAHFvAHFyAHFzAHF1AHGNAHHCAHHE -AHHGAHHIAHHLAHHNAHHPAHHSAHHvAHHxAHHzAHH2AHH5AHH6AHH8AHIUAHJJAHJLAHJOAHJQAHJTAHJW -AHJYAHJbAHJiAHJrAHJtAHJ2AHJ4AHKtAHKvAHKyAHK1AHK4AHK5AHK8AHK/AHLBAHLEAHLNAHLPAHLS -AHLVAHLuAHLxAHLzAHL2AHL5AHL8AHMFAHMHAHMKAHMNAHMqAHMtAHMvAHMyAHM1AHM2AHM5AHNQAHNx -AHNzAHN1AHN4AHN6AHN9AHN/AHOqAHPAAHPYAHP1AHP3AHP5AHP8AHP+AHQBAHQFAHQSAHQUAHQrAHQ3 -AHRIAHRKAHRMAHRPAHRSAHRzAHR1AHR4AHR6AHR8AHR+AHSAAHSUAHShAHSyAHS0AHS2AHS5AHS8AHTd -AHTfAHTiAHTkAHTmAHToAHTqAHTzAHUMAHUdAHUfAHUhAHUkAHUnAHVEAHVGAHVIAHVLAHVOAHVPAHVR -AHVpAHWeAHWgAHWiAHWkAHWnAHWqAHWsAHWvAHW3AHXAAHXCAHXPAHXgAHXiAHXlAHXnAHXqAHX0AHYF -AHYHAHYJAHYMAHYPAHYsAHYuAHYwAHYzAHY2AHY3AHY5AHZRAHaGAHaIAHaLAHaNAHaQAHaTAHaVAHaY -AHahAHajAHasAHauAHbAAHbRAHbTAHbWAHbYAHbbAHblAHb2AHb4AHb6AHb8AHb/AHcLAHccAHceAHcg -AHciAHclAHc0AHdFAHdHAHdKAHdMAHdPAHeAAHeCAHeEAHeHAHeKAHeMAHePAHeSAHeVAHeYAHezAHfC -AHfLAHfNAHfWAHfYAHgTAHgWAHgZAHgbAHgeAHghAHgkAHgnAHgqAHgtAHgwAHgyAHg1AHg4AHg7AHg9 -AHg/AHhBAHhEAHhHAHhJAHhLAHhOAHhQAHhTAHhWAHhZAHhcAHhfAHh8AHh+AHiAAHiDAHiGAHiHAHiJ -AHihAHjWAHjYAHjaAHjcAHjfAHjiAHjkAHjnAHjqAHjzAHj1AHkSAHkUAHkWAHkZAHkcAHkdAHkfAHk3 -AHlsAHluAHlwAHlyAHl1AHl4AHl6AHl9AHmCAHmLAHmNAHmqAHmsAHmuAHmxAHm0AHm1AHm3AHnOAHoD -AHoFAHoHAHoJAHoMAHoPAHoRAHoUAHoWAHofAHohAHo+AHpAAHpCAHpFAHpIAHpJAHpLAHpiAHqXAHqZ -AHqbAHqdAHqgAHqjAHqlAHqoAHqqAHqzAHq1AHrSAHrUAHrWAHrZAHrcAHrdAHrfAHr3AHssAHsuAHsw -AHsyAHs1AHs4AHs6AHs9AHtDAHtMAHtOAHtrAHttAHtvAHtyAHt1AHt2AHt4AHuRAHvGAHvIAHvKAHvM -AHvPAHvSAHvUAHvXAHveAHvnAHvpAHwGAHwIAHwKAHwNAHwQAHwRAHwTAHwsAHxhAHxjAHxlAHxnAHxq -AHxtAHxvAHxyAHx0AHx9AHx/AHycAHyeAHygAHyjAHymAHynAHypAHzCAHz3AHz5AHz7AHz9AH0AAH0D -AH0FAH0IAH0OAH0XAH0ZAH02AH04AH06AH09AH1AAH1BAH1DAH1cAH2BAH2DAH2FAH2HAH2JAH2MAH2N -AH2PAH2sAH2uAH2wAH2zAH22AH23AH25AH3SAH33AH35AH37AH39AH3/AH4CAH4DAH4FAH4iAH4kAH4m -AH4pAH4sAH4tAH4vAH5HAH5sAH5uAH5wAH5yAH50AH53AH54AH56AH6XAH6ZAH6bAH6eAH6hAH6iAH6k -AH69AH7iAH7kAH7mAH7oAH7qAH7tAH7uAH7wAH8NAH8PAH8RAH8UAH8XAH8YAH8aAH8zAH9YAH9aAH9c -AH9eAH9gAH9jAH9kAH9mAH+DAH+FAH+HAH+KAH+NAH+OAH+QAH+pAH/OAH/QAH/SAH/UAH/WAH/ZAH/a -AH/cAH/zAIAAAIARAIATAIAWAIAYAIAbAIAoAIA5AIA7AIA9AIBAAIBDAIBOAIBbAIBdAIBgAIBjAICE -AICGAICJAICLAICNAICPAICRAICYAICgAICxAICzAIC2AIC4AIC7AIDCAIDTAIDVAIDYAIDaAIDdAIDp -AID6AID8AID+AIEBAIEEAIEPAIEgAIEiAIElAIEnAIEqAIEzAIFEAIFGAIFIAIFLAIFOAIFbAIFoAIFq -AIFtAIFwAIGRAIGTAIGWAIGZAIGbAIGdAIGfAIGqAIGsAIG3AIHIAIHKAIHNAIHPAIHSAIHcAIHtAIHv -AIHxAIH0AIH3AIIBAIISAIIUAIIWAIIZAIIcAII9AII/AIJCAIJFAIJHAIJJAIJLAIJdAIJfAIJxAIKC -AIKEAIKHAIKJAIKMAIKXAIKoAIKqAIKsAIKvAIKyAIK6AILLAILNAILPAILSAILVAILhAILyAIL0AIL3 -AIL5AIL8AIMIAIMZAIMbAIMdAIMgAIMjAIM1AINGAINIAINLAINNAINQAINdAINuAINwAINyAIN1AIN4 -AIOZAIObAIOeAIOhAIOjAIOlAIOoAIO1AIO3AIO6AIO9AIPHAIPJAIPTAIPgAIPiAIPlAIPoAIQJAIQL -AIQOAIQRAIQTAIQVAIQYAIQpAIQrAIQuAIQxAIQ0AIQ9AIQ/AIRVAIRmAIRoAIRrAIRtAIRwAIR8AISN -AISPAISRAISUAISXAIS4AIS6AIS9AIS/AITBAITDAITFAIToAIT2AIUHAIUJAIUMAIUPAIURAIUiAIUk -AIUnAIUpAIUsAIVAAIVRAIVTAIVWAIVYAIVbAIVlAIV2AIV4AIV7AIV+AIWBAIWeAIWgAIWjAIWlAIWn -AIWpAIWrAIXEAIX1AIX4AIX6AIX9AIYAAIYCAIYFAIYIAIYLAIYOAIYpAIYvAIY4AIY6AIZDAIZFAIZQ -AIZTAIZWAIZZAIZcAIZfAIZ8AIZ/AIaBAIaEAIaHAIaIAIaLAIakAIbFAIbHAIbJAIbMAIbPAIbSAIbU -AIbnAIb4AIb6AIcDAIcFAIcqAIc1AIdBAIdEAIdHAIdKAIdLAIdOAIdRAIdSAIdVAIdeAIdgAIdtAIdw -AIdzAId2AId5AId8AId/AIebAIe3AIfPAIgDAIgkAIhBAIhaAIh7AIiDAIiLAIiTAIieAIijAIimAIip -AIiuAIivAIi8AIi+AIjAAIjDAIjXAIjgAIjnAIjzAIj8AIkHAIkTAIkwAIkzAIk1AIk4AIk7AIk8AIk/ -AIlXAIl4AIl9AIl/AImBAImEAImGAImJAImLAInIAInlAInoAInqAIntAInwAInxAIn0AIoLAIpAAIpC -AIpEAIpGAIpJAIpMAIpOAIpRAIpZAIpiAIpkAIp7AIqTAIqkAIqmAIqpAIqrAIquAIq2AIrHAIrJAIrM -AIrOAIrRAIrlAIr2AIr4AIr6AIr8AIr/AIsOAIsfAIshAIsjAIsmAIsoAIs5AIs7AIs9AItAAItDAItk -AItmAItpAItsAItuAItwAItyAIuKAIuMAIuSAIujAIulAIunAIupAIusAIu7AIvIAIvKAIvNAIvQAIvt -AIvwAIvyAIv1AIv4AIv5AIv8AIwRAIwTAIwVAIwYAIwbAIwzAIxoAIxqAIxsAIxuAIxxAIxzAIx1AIx4 -AIyJAIyLAIyNAIyQAIyTAIy0AIy2AIy5AIy8AIy+AIzAAIzDAIzPAIzRAIzkAIz1AIz3AIz6AIz8AIz/ -AI0LAI0cAI0eAI0hAI0jAI0mAI00AI1FAI1HAI1JAI1MAI1PAI1gAI1iAI1kAI1nAI1qAI2LAI2NAI2Q -AI2SAI2UAI2WAI2YAI2kAI29AI3OAI3QAI3TAI3VAI3YAI3lAI32AI34AI36AI39AI4AAI4MAI4dAI4f -AI4hAI4kAI4nAI5IAI5KAI5NAI5QAI5SAI5UAI5WAI5kAI5mAI50AI6FAI6HAI6JAI6MAI6PAI6wAI6y -AI61AI63AI65AI67AI69AI7aAI7oAI75AI77AI7+AI8AAI8DAI8VAI8mAI8oAI8rAI8tAI8wAI9FAI9W -AI9YAI9aAI9cAI9eAI9vAI9xAI90AI92AI95AI+IAI+ZAI+bAI+eAI+gAI+jAI+tAI++AI/AAI/DAI/F -AI/IAI/VAI/mAI/oAI/qAI/tAI/wAJARAJATAJAWAJAYAJAaAJAcAJAeAJAtAJA4AJBJAJBLAJBOAJBR -AJBUAJCFAJCIAJCKAJCNAJCQAJCSAJCVAJCYAJCbAJCeAJC5AJDOAJDXAJDZAJDiAJDkAJDpAJDsAJDv -AJEcAJEoAJExAJE9AJFLAJFOAJFRAJFUAJFXAJFZAJFcAJFfAJFiAJFlAJFoAJFxAJFzAJF6AJF9AJGA -AJGDAJG0AJG9AJHGAJHQAJHaAJHkAJHnAJHqAJHtAJHwAJHzAJH1AJH4AJH7AJH+AJIAAJIDAJIGAJIP -AJIRAJIUAJIXAJJIAJJaAJJkAJJxAJJ6AJKFAJKIAJKLAJKOAJKRAJKUAJKXAJKaAJKdAJKgAJKjAJKl -AJKuAJKwAJLHAJLKAJLNAJLQAJLTAJLWAJLZAJLcAJLfAJLiAJLlAJLoAJMEAJMZAJM2AJNQAJN2AJOj -AJO8AJPRAJPbAJPmAJPuAJQAAJQDAJQGAJQPAJQSAJQnAJQ6AJRIAJRSAJRVAJRYAJRbAJRdAJRuAJR7 -AJR+AJSBAJSEAJSGAJSPAJSRAM/EAM/RAM/ZAM/cAM/hAM/kAM/nAM/sAM/vAM/yANAFANAWANAhANA2 -ANBCANBFANBIANBRANBUANBtANBwANBzANB2ANB5ANB8ANB/ANCCANCFANCIANCLANCOANCRANCaANCl -ANCoANCxANC6ANC/ANDJANDSANDVANDeANDnANDqANDzAND8AND/ANEIANERANEUANEdANEmANEpANEy -ANE7ANE+ANFHANFQANFTANFcANFlANFoANFxANF6ANF9ANGGANGPANGSANGbANGkANGnANGwANG5ANG+ -ANHHANHMANHdANHfANHiANHpANHyANH3ANIEANINANIWANIyANJHANJQANJSANJVANJYANJhANJmANJv -ANJ0ANKVANKdANK3ANLKANLhANL2ANMJANMMANMPANMRANMTANMVANMYANMaANMdANMqANMtANMyANM1 -ANM4ANM9ANNAANNDANNYANNaANNcANNfANNhANN/ANOUANOWANOYANObANOdANOxANO+ANPBANPIANPL -ANPOANPRANPYANPbANPeANPhANPtANP6ANQEANQRANQUANQXANQZANQhANQqANQvANQ8ANQ+ANRFANRO -ANRTANRqANR3ANSBANSKANSVANScANSzANTLANTYANTbANTeANTmANTvANT4ANUDANUoANUyANU1ANU4 -ANU7ANU+ANU/ANVCANVFANVOANVmANVzANV8ANWHANWSANW7ANXGANXJANXMANXPANXSANXVANXYANXh -ANXqANYFANYeANYnANYwANY9ANZUANZlANZnANZpANZsANZvANZ2ANaHANaJANaLANaNANaQANafANaw -ANayANa1ANa3ANa6ANbGANbXANbZANbbANbdANbfANbwANbyANb1ANb3ANb6ANcGANcXANcZANcbANce -ANchANcoANc5ANc7ANc9ANdAANdDANdkANdmANdpANdrANdtANdvANdxANeSANegANexANezANe1ANe4 -ANe7ANfCANfLANfOANqqANqtANqvANqyANq0ANq3ANq5ANq7ANq9ANrAANrCANrFANrIANrKANrMANrP -ANrSANrVANrYANrbANreANrhANrjANrmANrpANrsANrvANryANr1ANr3ANr6ANr9ANsAANsDANsGANsJ -ANsMANsPANsSANsVANsYANsbANseANshANskANsnANspANsrANsuANsxANs0ANs3ANs6ANs9ANtAANtD -ANtGANtJANtMANtPANtSANtUANtXANtZANtcANtfANtiANtlANtoANtrANtuANtxANt0ANt3ANt6ANt9 -ANuAANuDANuGANuJANuMANuOANuRANuUANuWANuZANucANueANuhANukANunANuqANutANuvANuyANu0 -ANu2ANu5ANu8ANu/ANvCANvFANvIANvLANvOANvRANvUANvWANvZANvcANvfANvhANvjANvmANvpANvr -ANvuANvxANv0ANv3ANv5ANv8ANv/ANwBANwDANwGANwJANwMANwPANwRANwUANwXANwZANwbANwdANwg -ANwjANwmANwpANwsANwvANwyANw1ANw4ANw6ANw9ANxAANxDANxGANxJANxMANxPANxSANxVANxYANxb -ANxeANxgANxjANxmANxpANxsANxvANxyANx1ANx4ANx7ANx+ANyBANyEANyGANyJANyMANyPANyRANyU -ANyXANyaANydANygANyjANymANypANyrANyuANywANyzANy2ANy5ANy7ANy+ANzBANzEANzGANzJANzL -ANzNANzQANzTANzWANzZANzcANzeANzhANzjANzmANzpANzsANzvANzyANz1ANz4ANz7ANz9AN0AAN0D -AN0GAN0JAN0MAN0PAN0SAN0VAN0XAN0aAN0dAN0gAN0jAN0lAN0nAN0pAN0sAN0vAN0xAN00AN03AN06 -AN09AN1AAN1DAN1GAN1JAN1MAN1PAN1SAN1VAN1YAN1aAN1cAN1fAN1iAN1lAN1oAN1rAN1uAN1xAN10 -AN12AN15AN18AN1/AN2CAN2FAN2IAN2KAN2NAN2QAN2TAN2VAN2YAN2bAN2eAN2hAN2kAN2nAN2qAN2t -AN2vAN2yAN21AN24AN27AN29AN3AAN3DAN3FAN3IAN3LAN3OAN3RAN3UAN3XAN3aAN3dAN3gAN3jAN3m -AN3oAN3rAN3uAN3xAN30AN33AN36AN39AN4AAN4DAN4GAN4JAN4MAN4PAN4SAN4VAN4YAN4aAN4dAN4f -AN4iAN4lAN4oAN4rAN4tAN4wAN4zAN42AN45AN48AN4+AN5BAN5EAN5HAN5KAN5NAN5QAN5SAN5UAN5X -AN5aAN5dAN5gAN5iAN5kAN5nAN5qAN5tAN5wAN5zAN52AN55AN57AN5+AN6BAN6EAN6GAN6JAN6LAN6N -AN6QAN6TAN6WAN6ZAN6bAN6eAN6hAN6kAN6mAN7PAN7dAN7qAN7sAN7uAN7vAN7xAN7yAN70AN72AN74 -AN8BAN8DAN8IAN8RAN8TAN8YAN8bAN8eAN9HAN9RAN9TAN9WAN9ZAN9bAN9dAN9fAN9iAN9lAN92AN94 -AN96AN99AN+AAN+HAN+WAN+fAN+hAN+qAN+sAN+vAN+yAN/BAN/qAN/sAN/vAN/yAN/0AN/2AN/4AN/7 -AN/+AOAnAOApAOArAOAsAOAuAOAvAOAxAOAzAOA1AOA+AOBAAOBFAOBOAOBQAOBbAOBdAOBfAOBiAOBl -AOBoAOBxAOBzAOB2AOCfAOChAOCjAOCkAOCmAOCnAOCpAOCrAOCtAODWAODYAODaAODdAODfAODhAODj -AODmAODpAOEAAOEJAOELAOEkAOEnAOEqAOEtAOEwAOEzAOE1AOE4AOE7AOE+AOFBAOFEAOFGAOFvAOFx -AOFzAOF0AOF2AOF3AOF5AOF7AOF9AOGKAOGrAOGtAOGwAOG1AOG4AOG6AOG8AOG+AOHSAOHaAOHjAOHl -AOIAAOIDAOIGAOIJAOIMAOIPAOISAOIVAOIXAOIaAOIdAOIgAOIjAOImAOJPAOJRAOJTAOJUAOJWAOJX -AOJZAOJbAOJdAOKGAOKIAOKKAOKLAOKNAOKOAOKQAOKSAOKUAOK9AOK/AOLBAOLCAOLEAOLFAOLHAOLJ -AOLLAOL0AOL2AOL4AOL5AOL7AOL8AOL+AOMAAOMCAOMrAOMtAOMvAOMyAOM0AOM2AOM4AOM7AOM+AONH -AONJAONUAONXAONaAONdAONgAONjAOOMAOOOAOOQAOOTAOOVAOOXAOOZAOOcAOOfAOOrAOO0AOO2AOO5 -AOPCAOPFAOahAOakAOamAOapAOarAOauAOaxAOa0AOa2AOa4AOa6AOa9AObAAObCAObEAObGAObJAObM -AObPAObSAObUAObXAObZAObcAObeAObhAObjAObmAObpAObrAObtAObvAObxAOb0AOb2AOb5AOb8AOb+ -AOcBAOcEAOcGAOcIAOcLAOcNAOcPAOcSAOcUAOcWAOcZAOcbAOceAOchAOckAOcnAOcqAOctAOcvAOcy -AOc1AOc4AOc7AOc9AOdAAOdCAOdFAOdIAOdLAOdOAOdQAOdSAOdVAOdYAOdaAOdcAOdeAOdgAOdjAOdl -AOdoAOdqAOdtAOdvAOdxAOdzAOd1AOd3AOd6AOd8AOd/AOeCAOeEAOeGAOeIAOeKAOeMAOeOAOeRAOeU -AOeXAOeZAOecAOeeAOehAOekAOenAOeqAOesAOeuAOexAOe0AOe2AOe5AOe7AOe+AOfBAOfDAOfFAOfI -AOfKAOfNAOfPAOfSAOfVAOfXAOfZAOfcAOffAOfiAOflAOfnAOfpAOfsAOfuAOfwAOfyAOf1AOf4AOf6 -AOf8AOf/AOgCAOgFAOgIAOgLAOgNAOgPAOgSAOgVAOgYAOgbAOgeAOghAOgkAOgnAOgqAOgtAOgvAOgx -AOg0AOg2AOg5AOg8AOg/AOhCAOhEAOhHAOhKAOhNAOhQAOhTAOhVAOhYAOhbAOheAOhgAOhjAOhlAOho -AOhrAOhuAOhxAOh0AOh3AOh5AOh7AOh9AOiAAOiCAOiEAOiHAOiKAOiMAOiPAOiRAOiUAOiWAOiYAOib -AOidAOigAOijAOimAOioAOirAOitAOivAOiyAOi1AOi3AOi6AOi8AOi/AOjBAOjDAOjFAOjIAOjLAOjO -AOjRAOjUAOjXAOjaAOjdAOjgAOjiAOjlAOjoAOjqAOjsAOjuAOjwAOjyAOj0AOj3AOj6AOj8AOj/AOkC -AOkFAOkHAOkKAOkNAOkQAOkTAOkWAOkZAOkbAOkdAOkgAOkiAOkkAOknAOkqAOksAOkuAOkxAOkzAOk1 -AOk3AOk5AOk8AOk/AOlCAOlFAOlHAOlJAOlLAOlNAOlPAOlSAOlUAOlXAOlaAOldAOlgAOljAOllAOln -AOlqAOltAOlvAOlxAOl0AOl2AOl4AOl7AOl+AOmAAOmCAOmFAOmIAOmLAOmOAOmQAOmSAOmVAOmXAOma -AOmdAOmgAOmiAOmlAOmnAOmpAOmsAOmuAOmwAOmyAOm1AOm4AOm7AOm+AOnBAOnDAOnGAOnIAOnLAOnO -AOnRAOnTAOnVAOnXAOnZAOnbAOneAOngAOniAOnlAOnoAOnrAOnuAOnxAOn0AOn2AOn4AOn7AOn9AOoA -AOoCAOoEAOoHAOoJAOoMAOoPAOoSAOoVAOoXAOoaAOocAOoeAOogAOojAOolAOooAOoqAOosAOouAOox -AOozAOo1AOo3AOo6AOo9AOpAAOpCAOpLAOpOAO0sAO0vAO0xAO0zAO02AO04AO07AO09AO0/AO1CAO1E -AO1HAO1KAO1MAO1OAO1RAO1UAO1XAO1aAO1dAO1gAO1jAO1mAO1pAO1sAO1vAO1yAO11AO14AO16AO19 -AO1/AO2CAO2FAO2IAO2LAO2OAO2RAO2UAO2XAO2aAO2dAO2gAO2jAO2mAO2pAO2rAO2tAO2wAO2zAO22 -AO25AO28AO2/AO3CAO3FAO3IAO3LAO3OAO3RAO3UAO3XAO3aAO3cAO3eAO3hAO3kAO3nAO3qAO3tAO3w -AO3zAO32AO35AO38AO3/AO4CAO4FAO4IAO4LAO4NAO4QAO4TAO4WAO4YAO4bAO4eAO4gAO4jAO4mAO4p -AO4rAO4uAO4xAO40AO42AO45AO48AO4+AO5BAO5EAO5HAO5KAO5NAO5QAO5TAO5WAO5ZAO5cAO5eAO5g -AO5jAO5lAO5oAO5qAO5tAO5wAO5zAO52AO55AO57AO5+AO6BAO6DAO6FAO6HAO6KAO6NAO6QAO6SAO6U -AO6XAO6aAO6dAO6fAO6hAO6kAO6nAO6qAO6tAO6wAO6zAO62AO65AO67AO6+AO7BAO7EAO7HAO7KAO7N -AO7QAO7TAO7WAO7ZAO7cAO7fAO7iAO7kAO7nAO7qAO7tAO7wAO7zAO72AO75AO78AO7/AO8CAO8FAO8I -AO8KAO8NAO8QAO8TAO8VAO8YAO8bAO8eAO8hAO8kAO8nAO8qAO8sAO8vAO8yAO80AO83AO86AO89AO8/ -AO9CAO9EAO9HAO9KAO9NAO9PAO9RAO9UAO9XAO9aAO9dAO9gAO9iAO9lAO9nAO9qAO9tAO9wAO9zAO92 -AO95AO98AO9/AO+BAO+EAO+HAO+KAO+MAO+PAO+RAO+UAO+XAO+ZAO+bAO+eAO+gAO+jAO+mAO+pAO+s -AO+vAO+yAO+1AO+4AO+7AO++AO/BAO/EAO/HAO/KAO/NAO/QAO/TAO/WAO/ZAO/cAO/eAO/gAO/jAO/m -AO/pAO/sAO/vAO/yAO/1AO/4AO/7AO/+APAAAPADAPAGAPAJAPAMAPAOAPARAPAUAPAXAPAaAPAdAPAf -APAiAPAlAPAoAPArAPAuAPAxAPAzAPA2APA5APA8APA/APBBAPBDAPBGAPBJAPBMAPBPAPBSAPBVAPBY -APBbAPBeAPBgAPBjAPBmAPBpAPBsAPBvAPByAPB1APB4APB7APB+APCBAPCEAPCHAPCKAPCNAPCPAPCS -APCVAPCYAPCbAPCeAPCgAPCjAPCmAPCpAPCsAPCuAPCxAPC0APC3APC6APC9APC/APDCAPDFAPDIAPDL -APDOAPDRAPDUAPDWAPDYAPDbAPDeAPDhAPDkAPDmAPDoAPDrAPDuAPDxAPD0APD3APD6APD8APD/APEC -APEFAPEIAPEKAPENAPEPAPERAPEUAPEXAPEaAPEcAPEfAPEhAPEkAPEnAPEqAPEzAPE2APQUAPQXAPQa -APQdAPQgAPQjAPQmAPQpAPQsAPQvAPQyAPQ1APQ4APQ7APQ+APRBAPREAPRHAPRKAPRNAPRQAPRTAPRW -APRZAPRcAPRfAPRiAPRlAPRoAPRrAPRuAPRxAPR0APR3APR6APR9APSAAPSDAPSGAPSJAPSMAPSPAPSS -APSVAPSYAPSbAPSeAPShAPSkAPSnAPSqAPStAPSwAPSzAPS2APS5APS8APS/APTCAPTFAPTIAPTLAPTO -APTQAPTTAPTWAPTZAPTcAPTfAPTiAPTlAPToAPTrAPTuAPTxAPT0APT3APT6APT9APUAAPUDAPUGAPUJ -APUMAPUPAPUSAPUVAPUYAPUbAPUeAPUhAPUkAPUnAPUqAPUtAPUvAPUyAPU1APU4APU7APU+APVBAPVE -APVHAPVKAPVNAPVQAPVTAPVWAPVZAPVcAPVfAPViAPVlAPVoAPVrAPVuAPVxAPV0APV3APV6APV9APWA -APWDAPWGAPWJAPWMAPWPAPWSAPWVAPWYAPWbAPWeAPWhAPWkAPWnAPWqAPWtAPWwAPWzAPW2APW5APW8 -APW/APXCAPXFAPXIAPXLAPXOAPXRAPXUAPXXAPXaAPXdAPXgAPXjAPXmAPXpAPXsAPXvAPXyAPX1APX4 -APX7APX+APYBAPYEAPYHAPYKAPYNAPYQAPYTAPYWAPYZAPYcAPYfAPYiAPYlAPYoAPYrAPYuAPYxAPY0 -APY3APY6APY9APZAAPZDAPZGAPZJAPZMAPZPAPZSAPZVAPZYAPZbAPZeAPZhAPZkAPZnAPZqAPZtAPZw -APZzAPZ2APZ5APZ8APZ/APaCAPaFAPaIAPaLAPaOAPaRAPaUAPaXAPaaAPadAPagAPajAPamAPapAPas -APavAPayAPa1APa4APa7APa+APbBAPbEAPbHAPbKAPbNAPbQAPbTAPbWAPbZAPbcAPbfAPbiAPblAPbo -APbrAPbuAPbxAPb0APb2APb5APb8APb/APcCAPcFAPcIAPcLAPcOAPcRAPcUAPcXAPcaAPcdAPcgAPcj -APcmAPcpAPcsAPcvAPcyAPc1APc4APc7APc+APdBAPdEAPdHAPdKAPdNAPdQAPdTAPdWAPdZAPdcAPdf -APdiAPdlAPdoAPdrAPduAPdxAPd0APd3APd6APd9APeAAPeDAPeGAPeJAPeMAPePAPeSAPeVAPeYAPeb -APeeAPehAPekAPenAPeqAPetAPewAPezAPe2APe5APe8APe/APfCAPfFAPfIAPfLAPfOAPfRAPfUAPfX -APfaAPfdAPfgAPfjAPfmAPfpAPfsAPfvAPfyAPf1APf4APf7APf+APgBAPgEAPgHAPgKAPgMAPgPAPgS -APgVAPgYAPgbAPgeAPghAPgkAPgnAPgqAPgtAPgwAPgzAPg2APg5APg8APg/APhCAPhFAPhIAPhLAPhO -APhRAPhUAPhXAPhsAPiOAPijAPjBAPjQAPjeAPj0APkJAPkUAPkhAPkvAPlFAPlZAPlsAPmMAPmvAPnE -APndAPoCAPorAPo+APqNAPqqAPq9APrXAPrzAPsKAPsiAPs2APtUAPttAPuCAPueAPuyAPvLAPvYAPvx -APwGAPwcAPw1APw+APxKAPxUAPxrAPyLAPygAPy2APzQAPznAP0yAP1SAP1gAP1zAP2OAP2qAP3CAP3R -AP3dAP3+AP4YAP4rAP5FAP5XAP5xAP6DAP6aAP62AP7KAP7gAP70AP8QAP8dAP8+AP9LAP9kAP+GAP+b -AP+zAP/TAP/qAQAGAQAiAQBEAQBcAQB9AQCJAQCsAQDDAQDhAQD7AQEbAQFCAQFiAQF/AQGRAQGoAQHD -AQHYAQHrAQIkAQI5AQJVAQJrAQKMAQKkAQKwAQK8AQLPAQLzAQMIAQMfAQMsAQM5AQNcAQN2AQONAQOv -AQPGAQPTAQPvAQQGAQQbAQQyAQRKAQRuAQSFAQSRAQSyAQTTAQTqAQT+AQUSAQUpAQVCAQVOAQVwAQWR -AQWnAQW8AQXRAQXpAQYFAQYPAQYlAQZGAQZeAQZ6AQaIAQafAQbEAQbfAQbxAQcLAQceAQcyAQdWAQdu -AQePAQexAQfRAQfzAQgHAQghAQhBAQhXAQhtAQiCAQiXAQi7AQjgAQj5AQkNAQkpAQlKAQldAQlvAQmF -AQmoAQnLAQnlAQn8AQoQAQooAQpHAQpnAQp2AQqFAQqSAQqeAQq1AQrBAQrYAQr5AQsSAQseAQszAQtG -AQtpAQt7AQuYAQu8AQvYAQv1AQwLAQwiAQxFAQxfAQx/AQybAQyyAQy/AQzWAQztAQ0CAQ0cAQ0lAQ08 -AQ1TAQ1xAQ2IAQ2cAQ2pAQ3BAQ3jAQ4MAQ4lAQ44AQ5VAQ5xAQ6HAQ6eAQ68AQ75AQ8SAQ8gAQ8pAQ8/ -AQ9hAQ94AQ+RAQ+jAQ+6AQ/RAQ/wARAIARAnARBMARBnARB7ARCSARCcARC1ARDJARDeARDwARENAREj -AREyARE+ARFaARFmARF9ARGRARGqARHBARHZARHyARIMARIWARI7ARJXARKGARKTARKzARLeARLyARMH -ARMjARM4ARNNARNiARNvAROCAROaAROxARPFARPbARP4ARQRARQyARRLARRaARRyARSAARSaARS/ARTO -ARTiARULARUhARU2ARVCARVUARViARV6ARWJARWiARW0ARXMARX1ARYMARYfARY+ARZWARZvARaDARaY -ARatARbQARblARb+ARcNARciARdBARdXARd6AReSARe0ARfJARfeARgDARgiARhCARhRARh+ARifARjD -ARjZARjyARkNARkbARktARlAARlXARlrARmOARmcARmrARnDARnPARnoARoHARocARpBARpTARplARp9 -ARqXARqgARqjARqkARqtARqwARqxARq6ARq9AR6DAR6GAR6IAR6KAR6NAR6QAR6TAR6WAR6YAR6bAR6e -AR6hAR6jAR6mAR6pAR6sAR6vAR6yAR60AR63AR66AR69AR7AAR7DAR7GAR7JAR7MAR7PAR7RAR7UAR7X -AR7aAR7dAR7gAR7jAR7mAR7oAR7rAR7tAR7wAR7zAR72AR75AR78AR7/AR8CAR8EAR8HAR8KAR8MAR8P -AR8SAR8VAR8XAR8aAR8dAR8gAR8jAR8mAR8pAR8sAR8vAR8yAR80AR83AR85AR88AR8/AR9CAR9FAR9I -AR9KAR9MAR9PAR9SAR9UAR9XAR9ZAR9cAR9fAR9hAR9kAR9nAR9qAR9tAR9wAR9zAR92AR95AR98AR9/ -AR+CAR+EAR+HAR+KAR+NAR+QAR+TAR+WAR+ZAR+cAR+fAR+iAR+lAR+oAR+rAR+uAR+xAR+0AR+3AR+6 -AR+9AR/AAR/DAR/GAR/JAR/LAR/NAR/QAR/TAR/WAR/YAR/aAR/cAR/fAR/iAR/lAR/oAR/qAR/tAR/w -AR/zAR/2AR/4AR/7AR/+ASABASAEASAHASAKASANASAQASASASAUASAXASAaASAcASAfASAiASAlASAo -ASArASAuASAxASA0ASA3ASA6ASA9ASBAASBCASBFASBHASBKASBNASBQASBSASBVASBYASBbASBeASBh -ASBkASBnASBqASBtASBwASBzASB2ASB5ASB8ASB+ASCBASCDASCGASCJASCMASCOASCRASCUASCXASCa -ASCdASCgASCjASCmASCpASCsASCvASCyASC1ASC4ASC7ASC+ASDBASDEASDHASDKASDNASDQASDTASDW -ASDZASDcASDfASDhASDjASDmASDpASDsASDuASDwASDzASD2ASD4ASD7ASD+ASEBASEDASEFASEIASEL -ASENASEQASETASEVASEXASEaASEcASEeASEhASEjASElASEnASEqASEtASEwASEyASE1ASE4ASE7ASE+ -ASFBASFEASFHASFKASFNASFQASFSASFVASFYASFbASFdASFgASFiASFlASFoASFrASFuASFxASF0ASF3 -ASF6ASF9ASF/ASGCASGFASGIASGLASGOASGRASGTASGWASGZASGcASGfASGiASGlASGoASGqASGtASGv -ASGyASG1ASG3ASG5ASG8ASG/ASHCASHEASHGASHJASHMASHOASHRASHUASHXASHaASHdASHgASHiASHl -ASHoASHqASHtASHwASHzASH2ASH5ASH7ASH+ASIAASICASIFASIIASILASIOASIRASITASIVASIYASIb -ASIeASIhASIjASImASIpASIsASIvASIyASI0ASI2ASI4ASI6ASI9ASJAASJDASJGASJIASJLASJOASJQ -ASJTASJWASJZASJcASJfASJhASJkASJnASJqASJtASJvASJyASJ1ASJ4ASJ7ASJ9ASKAASKDASKGASKJ -ASKLASKOASKRASKUASKXASKaASKdASKgASKiASKlASKnASKqASKtASKvASKyASK1ASK4ASK7ASK+ASLA -ASLDASLFASLIASLLASLOASLRASLUASLXASLaASLdASLgASLjASLmASLoASLrASLuASLwASLzASL2ASL5 -ASL8ASL/ASMCASMFASMIASMLASMNASMQASMTASMWASMYASMaASMdASMgASMjASMmASMpASMsASMvASMy -ASM1ASM4ASM7ASM9ASNAASNDASNGASNJASNMASNPASNRASNUASNXASNaASNdASNgASNiASNlASNoASNr -ASNtASNvASNyASN1ASN4ASN7ASN+ASOBASODASOGASOIASOLASOOASORASOUASOWASOZASOcASOfASOi -ASOlASOoASOqASOsASOvASOyASO1ASO4ASO7ASO+ASPAASPJASPMASeSASeVASeYASebASeeASehASek -ASenASeqASetASewASezASe2ASe5ASe8ASe/ASfCASfFASfIASfLASfOASfRASfUASfXASfaASfdASfg -ASfjASfmASfpASfsASfvASfyASf1ASf4ASf7ASf+ASgBASgEASgHASgKASgNASgQASgTASgWASgZASgc -ASgfASgiASglASgoASgrASguASgxASg0ASg3ASg6ASg9AShAAShDAShGAShJAShMAShPAShSAShVAShY -AShbASheAShhAShkAShnAShqAShtAShwAShzASh2ASh5ASh8ASh/ASiCASiFASiIASiLASiOASiRASiU -ASiXASiaASidASigASijASimASipASisASivASiyASi1ASi4ASi7ASi+ASjBASjEASjHASjKASjNASjQ -ASjTASjWASjZASjcASjfASjiASjlASjoASjrASjuASjxASj0ASj3ASj6ASj9ASkAASkDASkGASkJASkM -ASkPASkSASkVASkYASkbASkeASkhASkkASknASkqASktASkwASkzASk2ASk5ASk8ASk/ASlCASlFASlI -ASlLASlOASlRASlUASlXASlaASldASlgASljASlmASlpASlsASlvASlyASl1ASl4ASl7ASl+ASmBASmE -ASmHASmKASmNASmQASmTASmWASmZASmcASmfASmiASmlASmoASmrASmuASmxASm0ASm3ASm6ASm9ASnA -ASnDASnGASnJASnMASnPASnSASnVASnYASnbASneASnhASnkASnnASnqASntASnwASnzASn2ASn5ASn8 -ASn/ASoCASoFASoIASoLASoOASoRASoUASoXASoaASodASogASojASomASopASosASovASoyASo1ASo4 -ASo7ASo+ASpBASpEASpHASpKASpNASpQASpTASpWASpZASpcASpfASpiASplASpoASprASpuASpxASp0 -ASp3ASp6ASp9ASqAASqDASqGASqJASqMASqPASqSASqVASqYASqbASqeASqhASqkASqnASqqASqtASqw -ASqzASq2ASq5ASq8ASq/ASrCASrFASrIASrLASrOASrRASrUASrXASraASrdASrgASrjASrmASrpASrs -ASrvASryASr1ASr4ASr7ASr+ASsBASsEASsHASsKASsNASsQASsTASsWASsZASscASsfASsiASslASso -ASsrASsuASsxASs0ASs3ASs6ASs9AStAAStDAStGAStJAStMAStPAStSAStVAStYAStbASteASthAStk -AStnAStqASttAStwAStzASt2ASt5ASt8ASt/ASuCASuFASuIASuLASuOASuRASuUASuXASuaASudASug -ASujASumASupASusASuvASuyASu1ASu4ASu7ASu+ASvBASvEASvHASvKASvNASvQASvTASvWASvZASvc -ASvfASviASvlASvoASvrASvuASvxASv0ASv3ASv6ASv9ASwAASwDASwGASwJASwMASwPASwSASwVASwY -ASwbASweASwhASwkASwnASwqASwtASwwASwzASw2ASw5ASw8ASw/ASxCASxFASxIASxLASxOASxRASxU -ASxXASxaASxdASxgASxjASxmASxpASxsASxvASxyASx1ASx4ASx7ASx+ASyBASyEASyHASyKASyNASyQ -ASyTASyWASyZASycASyfASyiASylASyoASyrASyuASyxASy0ASy3ASy6ASy9ASzAASzDASzGASzJASzM -ASzPASzSASzVASzYASzbASzeASzhASzkASznASzqASztASzwASzzASz2ASz5ASz8ASz/AS0CAS0FAS0I -AS0LAS0OAS0RAS0UAS0XAS0aAS0dAS0gAS0jAS0mAS0pAS0sAS0vAS0yAS01AS04AS09AS1CAS1FAS1I -AS1LAS1OAS1TAS1YAS1bAS1eAS1hAS1mAS1pAS1sAS1vAS1yAS13AS16AS19AS2AAS2DAS2IAS2LAS2O -AS2RAS2UAS2XAS2cAS2fAS2kAS2nAS2qAS2tAS2yAS21AS26AS29AS3AAS3DAS3GAS3JAS3OAS3RAS3U -AS3XAS3aAS3dAS3gAS3lAS3oAS3rAS3uAS3xAS32AS37AS3+AS4BAS4EAS4HAS4KAS4NAS4QAS4TAS4W -AS4ZAS4eAS4hAS4kAS4nAS4sAS4vAS44AS49AS5AAS5DAS5IAS5LAS5OAS5RAS5TAS5YAS5bAS5gAS5l -AS5oAS5tAS5wAS5zAS52AS55AS58AS5/AS6CAS6FAS6KAS6NAS6PAS6SAS6XAS6cAS6fAS6iAS6lAS6q -AS6vAS6xAS62AS65AS68AS7BAS7EAS7HAS7KAS7NAS7SAS7VAS7YAS7bAS7eAS7jAS7mAS7pAS7uAS7x -AS72AS75AS78AS8BAS8GAS8JAS8OAS8QAS8TAS8WAS8YAS8dAS8gAS8jAS8oAS8rAS8uAS8xAS82AS87 -AS8+AS9DAS9GAS9JAS9MAS9RAS9UAS9ZAS9eAS9hAS9jAS9mAS9pAS9sAS9vAS9yAS93AS98AS9/AS+E -AS+HAS+KAS+NAS+QAS+TAS+WAS+bAS+eAS+hAS+kAS+pAS+uAS+xAS+2AS+7AS++AS/BAS/EAS/HAS/K -AS/NAS/QAS/TAS/WAS/bAS/eAS/hAS/mAS/pAS/sAS/vAS/yAS/3AS/6AS/9ATAAATADATAIATALATAO -ATARATAUATAZATAcATAhATAmATArATAuATAzATA2ATA5ATA8ATA/ATBCATBFATBKATBNATBQATBTATBW -ATBbATBgATBlATBqATBvATByATB1ATB4ATB7ATCAATCDATCGATCJATCMATCPATCUATCXATCcATChATCk -ATCnATCsATCxATC0ATC3ATC8ATC/ATDCATDHATDMATDPATDSATDVATDYATDaATDfATDkATDmATDpATDs -ATDvATDyATD1ATD6ATD9ATECATEFATEIATENATEQATESATEVATEYATEbATEeATEhATEkATEnATEqATEt -ATEwATEzATE2ATE5ATE8ATE/ATFCATFFATFIATFNATFQATFTATFVATFYATFbATFgATFjATFmATFpATFs -ATFvATF0ATF3ATF6ATF/ATGCATGHATGKATGNATGSATGVATGYATGbATGgATGlATGoATGrATGwATGzATG2 -ATG7ATG+ATHBATHEATHHATHKATHNATHSATHVATHYATHbATHeATHjATHmATHpATHsATHvATH0ATH3ATH6 -ATH9ATICATIFATIKATINATIQATITATIWATIYATIbATIgATIjATIoATIrATIuATIzATI4ATI7ATI+ATJB -ATJEATJHATJKATJNATJQATJTATJWATJZATJcATJfATJiATJlATJnATJqATJtATJwATJzATJ2ATJ5ATJ8 -ATKBATKEATKHATKKATKNATKQATKTATKWATKZATKcATKhATKkATKnATKqATKvATKyATK3ATK6ATK/ATLE -ATLHATLKATLMATLPATLSATLVATLYATLbATLgATLlATLoATLtATLwATL1ATL6ATL9ATMAATMDATMIATMN -ATMPATMSATMVATMYATMbATMeATMhATMkATMnATMqATMsATMvATMyATM3ATM8ATM/ATNCATNFATNIATNN -ATNQATNTATNWATNZATNcATNhATNkATNpATNsATNvATN0ATN3ATN8ATN/ATOCATOFATOKATOPATOSATOV -ATOYATOdATOgATOjATOmATOpATOsATOvATOyATO1ATO4ATO6ATO/ATPEATPHATPQATPSATPTATPcATPf -ATPgATPpATPsATPtATP2ATP7AAAAAAAAAwIAAAAAAAAgvAAAAAAAAAAAAAAAAAABNAo - - - diff --git a/macosx/English.lproj/Main.nib/keyedobjects.nib b/macosx/English.lproj/Main.nib/keyedobjects.nib deleted file mode 100644 index 5ff36883a838c642facf938d2ec4ebfb6272c72f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 104030 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 z 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 l>ME+=Qe91TE!E$s{!TTax - - - - CFBundleDevelopmentRegion - English - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIconFile - - CFBundleIdentifier - com.yourcompany.VBA-M - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleSignature - ???? - CFBundleVersion - 1.0 - NSMainNibFile - Main - NSPrincipalClass - NSApplication - - diff --git a/macosx/VBA-M.xcodeproj/project.pbxproj b/macosx/VBA-M.xcodeproj/project.pbxproj deleted file mode 100644 index f9176e78..00000000 --- a/macosx/VBA-M.xcodeproj/project.pbxproj +++ /dev/null @@ -1,917 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 44; - objects = { - -/* Begin PBXBuildFile section */ - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; - D2068FB30CEB7E0D00B908B0 /* Cheats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA20CEB7E0D00B908B0 /* Cheats.cpp */; }; - D2068FB40CEB7E0D00B908B0 /* EEprom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA30CEB7E0D00B908B0 /* EEprom.cpp */; }; - D2068FB50CEB7E0D00B908B0 /* Flash.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA40CEB7E0D00B908B0 /* Flash.cpp */; }; - D2068FB60CEB7E0D00B908B0 /* GBA.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA50CEB7E0D00B908B0 /* GBA.cpp */; }; - D2068FB70CEB7E0D00B908B0 /* Globals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA60CEB7E0D00B908B0 /* Globals.cpp */; }; - D2068FB80CEB7E0D00B908B0 /* Mode0.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA70CEB7E0D00B908B0 /* Mode0.cpp */; }; - D2068FB90CEB7E0D00B908B0 /* Mode1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA80CEB7E0D00B908B0 /* Mode1.cpp */; }; - D2068FBA0CEB7E0D00B908B0 /* Mode2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FA90CEB7E0D00B908B0 /* Mode2.cpp */; }; - D2068FBB0CEB7E0D00B908B0 /* Mode3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FAA0CEB7E0D00B908B0 /* Mode3.cpp */; }; - D2068FBC0CEB7E0D00B908B0 /* Mode4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FAB0CEB7E0D00B908B0 /* Mode4.cpp */; }; - D2068FBD0CEB7E0D00B908B0 /* Mode5.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FAC0CEB7E0D00B908B0 /* Mode5.cpp */; }; - D2068FBE0CEB7E0D00B908B0 /* RTC.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FAD0CEB7E0D00B908B0 /* RTC.cpp */; }; - D2068FBF0CEB7E0D00B908B0 /* Sound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FAE0CEB7E0D00B908B0 /* Sound.cpp */; }; - D2068FC00CEB7E0D00B908B0 /* Sram.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FAF0CEB7E0D00B908B0 /* Sram.cpp */; }; - D2068FC10CEB7E0D00B908B0 /* Text.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FB00CEB7E0D00B908B0 /* Text.cpp */; }; - D2068FC20CEB7E0D00B908B0 /* unzip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FB10CEB7E0D00B908B0 /* unzip.cpp */; }; - D2068FC30CEB7E0D00B908B0 /* Util.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FB20CEB7E0D00B908B0 /* Util.cpp */; }; - D2068FCD0CEB7E8400B908B0 /* GB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FC50CEB7E8400B908B0 /* GB.cpp */; }; - D2068FCE0CEB7E8400B908B0 /* gbCheats.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FC60CEB7E8400B908B0 /* gbCheats.cpp */; }; - D2068FCF0CEB7E8400B908B0 /* gbGfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FC70CEB7E8400B908B0 /* gbGfx.cpp */; }; - D2068FD00CEB7E8400B908B0 /* gbGlobals.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FC80CEB7E8400B908B0 /* gbGlobals.cpp */; }; - D2068FD10CEB7E8400B908B0 /* gbMemory.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FC90CEB7E8400B908B0 /* gbMemory.cpp */; }; - D2068FD20CEB7E8400B908B0 /* gbPrinter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FCA0CEB7E8400B908B0 /* gbPrinter.cpp */; }; - D2068FD30CEB7E8400B908B0 /* gbSGB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FCB0CEB7E8400B908B0 /* gbSGB.cpp */; }; - D2068FD40CEB7E8400B908B0 /* gbSound.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FCC0CEB7E8400B908B0 /* gbSound.cpp */; }; - D2068FE20CEB7FEB00B908B0 /* 2xSaI.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FD60CEB7FEB00B908B0 /* 2xSaI.cpp */; }; - D2068FE30CEB7FEB00B908B0 /* admame.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FD70CEB7FEB00B908B0 /* admame.cpp */; }; - D2068FE40CEB7FEB00B908B0 /* bilinear.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FD80CEB7FEB00B908B0 /* bilinear.cpp */; }; - D2068FE50CEB7FEB00B908B0 /* hq2x.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FD90CEB7FEB00B908B0 /* hq2x.cpp */; }; - D2068FE70CEB7FEB00B908B0 /* interframe.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FDB0CEB7FEB00B908B0 /* interframe.cpp */; }; - D2068FEA0CEB7FEB00B908B0 /* motionblur.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FDE0CEB7FEB00B908B0 /* motionblur.cpp */; }; - D2068FEB0CEB7FEB00B908B0 /* pixel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FDF0CEB7FEB00B908B0 /* pixel.cpp */; }; - D2068FEC0CEB7FEB00B908B0 /* scanline.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FE00CEB7FEB00B908B0 /* scanline.cpp */; }; - D2068FED0CEB7FEB00B908B0 /* simpleFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D2068FE10CEB7FEB00B908B0 /* simpleFilter.cpp */; }; - D2068FF00CEB809800B908B0 /* Main.nib in Resources */ = {isa = PBXBuildFile; fileRef = D2068FEE0CEB809800B908B0 /* Main.nib */; }; - D2068FF80CEB82FC00B908B0 /* KeyConfig.mm in Sources */ = {isa = PBXBuildFile; fileRef = D2068FF20CEB82FC00B908B0 /* KeyConfig.mm */; }; - D2068FF90CEB82FC00B908B0 /* MainClass.mm in Sources */ = {isa = PBXBuildFile; fileRef = D2068FF40CEB82FC00B908B0 /* MainClass.mm */; }; - D2068FFA0CEB82FC00B908B0 /* openfile.mm in Sources */ = {isa = PBXBuildFile; fileRef = D2068FF60CEB82FC00B908B0 /* openfile.mm */; }; - D2068FFB0CEB82FC00B908B0 /* SDL.mm in Sources */ = {isa = PBXBuildFile; fileRef = D2068FF70CEB82FC00B908B0 /* SDL.mm */; }; - D20690000CEB832100B908B0 /* cart.icns in Resources */ = {isa = PBXBuildFile; fileRef = D2068FFD0CEB832100B908B0 /* cart.icns */; }; - D20690010CEB832100B908B0 /* savestate.icns in Resources */ = {isa = PBXBuildFile; fileRef = D2068FFE0CEB832100B908B0 /* savestate.icns */; }; - D20690020CEB832100B908B0 /* system.icns in Resources */ = {isa = PBXBuildFile; fileRef = D2068FFF0CEB832100B908B0 /* system.icns */; }; - D20690B90CEB91B700B908B0 /* agbprint.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B00CEB91B700B908B0 /* agbprint.cpp */; }; - D20690BA0CEB91B700B908B0 /* armdis.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B10CEB91B700B908B0 /* armdis.cpp */; }; - D20690BB0CEB91B700B908B0 /* bios.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B20CEB91B700B908B0 /* bios.cpp */; }; - D20690BC0CEB91B700B908B0 /* elf.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B30CEB91B700B908B0 /* elf.cpp */; }; - D20690BD0CEB91B700B908B0 /* expr-lex.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B40CEB91B700B908B0 /* expr-lex.cpp */; }; - D20690BE0CEB91B700B908B0 /* expr.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B50CEB91B700B908B0 /* expr.cpp */; }; - D20690BF0CEB91B700B908B0 /* exprNode.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B60CEB91B700B908B0 /* exprNode.cpp */; }; - D20690C00CEB91B700B908B0 /* memgzio.c in Sources */ = {isa = PBXBuildFile; fileRef = D20690B70CEB91B700B908B0 /* memgzio.c */; }; - D20690C10CEB91B700B908B0 /* remote.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690B80CEB91B700B908B0 /* remote.cpp */; }; - D20690D40CEB922D00B908B0 /* Gfx.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690D30CEB922D00B908B0 /* Gfx.cpp */; }; - D20690F20CEB954800B908B0 /* snd_interp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D20690F10CEB954800B908B0 /* snd_interp.cpp */; }; - D20690F80CEB960E00B908B0 /* filterkit.c in Sources */ = {isa = PBXBuildFile; fileRef = D20690F50CEB960E00B908B0 /* filterkit.c */; }; - D20690F90CEB960E00B908B0 /* resample.c in Sources */ = {isa = PBXBuildFile; fileRef = D20690F60CEB960E00B908B0 /* resample.c */; }; - D20690FA0CEB960E00B908B0 /* resamplesubs.c in Sources */ = {isa = PBXBuildFile; fileRef = D20690F70CEB960E00B908B0 /* resamplesubs.c */; }; - D206911D0CEB981400B908B0 /* debugger.cpp in Sources */ = {isa = PBXBuildFile; fileRef = D206911C0CEB981400B908B0 /* debugger.cpp */; }; - D2B164FA0CF1EA3B00213737 /* libpng.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2B164F90CF1EA3100213737 /* libpng.framework */; }; - D2B165430CF1EB6200213737 /* SDL.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = D2B165360CF1EB5A00213737 /* SDL.framework */; }; - D2B165740CF1EEA600213737 /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2B165360CF1EB5A00213737 /* SDL.framework */; }; - D2B165750CF1EEAA00213737 /* libpng.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D2B164F90CF1EA3100213737 /* libpng.framework */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - D2B164F80CF1EA3100213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B164F40CF1EA3100213737 /* libpng.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 8D07F2C80486CC7A007CD1D0 /* libpng.framework */; - remoteInfo = libpng; - }; - D2B164FB0CF1EA4A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B164F40CF1EA3100213737 /* libpng.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = 8D07F2BC0486CC7A007CD1D0 /* libpng */; - remoteInfo = libpng; - }; - D2B165350CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF66C0761BA81005FE872 /* SDL.framework */; - remoteInfo = Framework; - }; - D2B165370CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF6B30761BA81005FE872 /* libSDL.a */; - remoteInfo = "Static Library"; - }; - D2B165390CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF6BA0761BA81005FE872 /* libSDLmain.a */; - remoteInfo = "Main Library"; - }; - D2B1653B0CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF6BE0761BA81005FE872 /* Standard DMG */; - remoteInfo = "Standard DMG"; - }; - D2B1653D0CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = BECDF6C30761BA81005FE872 /* Developer Extras Package */; - remoteInfo = "Developer Extras Package"; - }; - D2B1653F0CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 0014B9A809C0E585003A99D5 /* SDL.framework */; - remoteInfo = "Framework Without X11 Stuff (for those who didn't install the X11 headers with Xcode)"; - }; - D2B165410CF1EB5A00213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 2; - remoteGlobalIDString = 002F327609CA02D800EBEB88 /* libSDL.a */; - remoteInfo = "Static Library Without X11 Stuff (for those who didn't install the X11 headers with Xcode)"; - }; - D2B165720CF1EEA100213737 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - proxyType = 1; - remoteGlobalIDString = BECDF5FE0761BA81005FE872 /* Framework */; - remoteInfo = Framework; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - D206904C0CEB841000B908B0 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - D2B164FA0CF1EA3B00213737 /* libpng.framework in CopyFiles */, - D2B165430CF1EB6200213737 /* SDL.framework in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; - 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; - 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; - 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 8D1107320486CEB800E47090 /* VBA-M.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "VBA-M.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - D2068F770CEB7B1200B908B0 /* arm-new.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "arm-new.h"; path = "../src/arm-new.h"; sourceTree = SOURCE_ROOT; }; - D2068F780CEB7B1200B908B0 /* armdis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = armdis.h; path = ../src/armdis.h; sourceTree = SOURCE_ROOT; }; - D2068F790CEB7B1200B908B0 /* bios.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bios.h; path = ../src/bios.h; sourceTree = SOURCE_ROOT; }; - D2068F7A0CEB7B1200B908B0 /* Cheats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Cheats.h; path = ../src/Cheats.h; sourceTree = SOURCE_ROOT; }; - D2068F7B0CEB7B1200B908B0 /* EEprom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EEprom.h; path = ../src/EEprom.h; sourceTree = SOURCE_ROOT; }; - D2068F7C0CEB7B1200B908B0 /* elf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = elf.h; path = ../src/elf.h; sourceTree = SOURCE_ROOT; }; - D2068F7D0CEB7B1200B908B0 /* expr.cpp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = expr.cpp.h; path = ../src/expr.cpp.h; sourceTree = SOURCE_ROOT; }; - D2068F7E0CEB7B1200B908B0 /* exprNode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = exprNode.h; path = ../src/exprNode.h; sourceTree = SOURCE_ROOT; }; - D2068F7F0CEB7B1200B908B0 /* Flash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Flash.h; path = ../src/Flash.h; sourceTree = SOURCE_ROOT; }; - D2068F800CEB7B1200B908B0 /* GBA.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GBA.h; path = ../src/GBA.h; sourceTree = SOURCE_ROOT; }; - D2068F810CEB7B1200B908B0 /* GBAinline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GBAinline.h; path = ../src/GBAinline.h; sourceTree = SOURCE_ROOT; }; - D2068F820CEB7B1200B908B0 /* Gfx.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Gfx.h; path = ../src/Gfx.h; sourceTree = SOURCE_ROOT; }; - D2068F830CEB7B1200B908B0 /* Globals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Globals.h; path = ../src/Globals.h; sourceTree = SOURCE_ROOT; }; - D2068F840CEB7B1200B908B0 /* memgzio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = memgzio.h; path = ../src/memgzio.h; sourceTree = SOURCE_ROOT; }; - D2068F850CEB7B1200B908B0 /* NLS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NLS.h; path = ../src/NLS.h; sourceTree = SOURCE_ROOT; }; - D2068F860CEB7B1200B908B0 /* Port.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Port.h; path = ../src/Port.h; sourceTree = SOURCE_ROOT; }; - D2068F870CEB7B1200B908B0 /* Sound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sound.h; path = ../src/Sound.h; sourceTree = SOURCE_ROOT; }; - D2068F880CEB7B1200B908B0 /* Sram.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sram.h; path = ../src/Sram.h; sourceTree = SOURCE_ROOT; }; - D2068F890CEB7B1200B908B0 /* System.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = System.h; path = ../src/System.h; sourceTree = SOURCE_ROOT; }; - D2068F8A0CEB7B1200B908B0 /* Text.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Text.h; path = ../src/Text.h; sourceTree = SOURCE_ROOT; }; - D2068F8B0CEB7B1200B908B0 /* thumb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = thumb.h; path = ../src/thumb.h; sourceTree = SOURCE_ROOT; }; - D2068F8C0CEB7B1200B908B0 /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = ../src/unzip.h; sourceTree = SOURCE_ROOT; }; - D2068F8D0CEB7B1200B908B0 /* Util.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Util.h; path = ../src/Util.h; sourceTree = SOURCE_ROOT; }; - D2068F8E0CEB7B5300B908B0 /* gbCheats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbCheats.h; path = ../src/gb/gbCheats.h; sourceTree = SOURCE_ROOT; }; - D2068F8F0CEB7B5300B908B0 /* gbCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbCodes.h; path = ../src/gb/gbCodes.h; sourceTree = SOURCE_ROOT; }; - D2068F900CEB7B5300B908B0 /* gbGlobals.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbGlobals.h; path = ../src/gb/gbGlobals.h; sourceTree = SOURCE_ROOT; }; - D2068F910CEB7B5300B908B0 /* gbMemory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbMemory.h; path = ../src/gb/gbMemory.h; sourceTree = SOURCE_ROOT; }; - D2068F920CEB7B5300B908B0 /* gbPrinter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbPrinter.h; path = ../src/gb/gbPrinter.h; sourceTree = SOURCE_ROOT; }; - D2068F930CEB7B5300B908B0 /* gbSGB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbSGB.h; path = ../src/gb/gbSGB.h; sourceTree = SOURCE_ROOT; }; - D2068F940CEB7B5300B908B0 /* gbSound.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = gbSound.h; path = ../src/gb/gbSound.h; sourceTree = SOURCE_ROOT; }; - D2068FA20CEB7E0D00B908B0 /* Cheats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Cheats.cpp; path = ../src/Cheats.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA30CEB7E0D00B908B0 /* EEprom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EEprom.cpp; path = ../src/EEprom.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA40CEB7E0D00B908B0 /* Flash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Flash.cpp; path = ../src/Flash.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA50CEB7E0D00B908B0 /* GBA.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GBA.cpp; path = ../src/GBA.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA60CEB7E0D00B908B0 /* Globals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Globals.cpp; path = ../src/Globals.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA70CEB7E0D00B908B0 /* Mode0.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Mode0.cpp; path = ../src/Mode0.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA80CEB7E0D00B908B0 /* Mode1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Mode1.cpp; path = ../src/Mode1.cpp; sourceTree = SOURCE_ROOT; }; - D2068FA90CEB7E0D00B908B0 /* Mode2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Mode2.cpp; path = ../src/Mode2.cpp; sourceTree = SOURCE_ROOT; }; - D2068FAA0CEB7E0D00B908B0 /* Mode3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Mode3.cpp; path = ../src/Mode3.cpp; sourceTree = SOURCE_ROOT; }; - D2068FAB0CEB7E0D00B908B0 /* Mode4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Mode4.cpp; path = ../src/Mode4.cpp; sourceTree = SOURCE_ROOT; }; - D2068FAC0CEB7E0D00B908B0 /* Mode5.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Mode5.cpp; path = ../src/Mode5.cpp; sourceTree = SOURCE_ROOT; }; - D2068FAD0CEB7E0D00B908B0 /* RTC.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RTC.cpp; path = ../src/RTC.cpp; sourceTree = SOURCE_ROOT; }; - D2068FAE0CEB7E0D00B908B0 /* Sound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sound.cpp; path = ../src/Sound.cpp; sourceTree = SOURCE_ROOT; }; - D2068FAF0CEB7E0D00B908B0 /* Sram.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Sram.cpp; path = ../src/Sram.cpp; sourceTree = SOURCE_ROOT; }; - D2068FB00CEB7E0D00B908B0 /* Text.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Text.cpp; path = ../src/Text.cpp; sourceTree = SOURCE_ROOT; }; - D2068FB10CEB7E0D00B908B0 /* unzip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = unzip.cpp; path = ../src/unzip.cpp; sourceTree = SOURCE_ROOT; }; - D2068FB20CEB7E0D00B908B0 /* Util.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Util.cpp; path = ../src/Util.cpp; sourceTree = SOURCE_ROOT; }; - D2068FC50CEB7E8400B908B0 /* GB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GB.cpp; path = ../src/gb/GB.cpp; sourceTree = SOURCE_ROOT; }; - D2068FC60CEB7E8400B908B0 /* gbCheats.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbCheats.cpp; path = ../src/gb/gbCheats.cpp; sourceTree = SOURCE_ROOT; }; - D2068FC70CEB7E8400B908B0 /* gbGfx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbGfx.cpp; path = ../src/gb/gbGfx.cpp; sourceTree = SOURCE_ROOT; }; - D2068FC80CEB7E8400B908B0 /* gbGlobals.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbGlobals.cpp; path = ../src/gb/gbGlobals.cpp; sourceTree = SOURCE_ROOT; }; - D2068FC90CEB7E8400B908B0 /* gbMemory.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbMemory.cpp; path = ../src/gb/gbMemory.cpp; sourceTree = SOURCE_ROOT; }; - D2068FCA0CEB7E8400B908B0 /* gbPrinter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbPrinter.cpp; path = ../src/gb/gbPrinter.cpp; sourceTree = SOURCE_ROOT; }; - D2068FCB0CEB7E8400B908B0 /* gbSGB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbSGB.cpp; path = ../src/gb/gbSGB.cpp; sourceTree = SOURCE_ROOT; }; - D2068FCC0CEB7E8400B908B0 /* gbSound.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = gbSound.cpp; path = ../src/gb/gbSound.cpp; sourceTree = SOURCE_ROOT; }; - D2068FD60CEB7FEB00B908B0 /* 2xSaI.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = 2xSaI.cpp; path = ../src/2xSaI.cpp; sourceTree = SOURCE_ROOT; }; - D2068FD70CEB7FEB00B908B0 /* admame.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = admame.cpp; path = ../src/admame.cpp; sourceTree = SOURCE_ROOT; }; - D2068FD80CEB7FEB00B908B0 /* bilinear.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bilinear.cpp; path = ../src/bilinear.cpp; sourceTree = SOURCE_ROOT; }; - D2068FD90CEB7FEB00B908B0 /* hq2x.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = hq2x.cpp; path = ../src/hq2x.cpp; sourceTree = SOURCE_ROOT; }; - D2068FDB0CEB7FEB00B908B0 /* interframe.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = interframe.cpp; path = ../src/interframe.cpp; sourceTree = SOURCE_ROOT; }; - D2068FDE0CEB7FEB00B908B0 /* motionblur.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = motionblur.cpp; path = ../src/motionblur.cpp; sourceTree = SOURCE_ROOT; }; - D2068FDF0CEB7FEB00B908B0 /* pixel.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = pixel.cpp; path = ../src/pixel.cpp; sourceTree = SOURCE_ROOT; }; - D2068FE00CEB7FEB00B908B0 /* scanline.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = scanline.cpp; path = ../src/scanline.cpp; sourceTree = SOURCE_ROOT; }; - D2068FE10CEB7FEB00B908B0 /* simpleFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = simpleFilter.cpp; path = ../src/simpleFilter.cpp; sourceTree = SOURCE_ROOT; }; - D2068FEF0CEB809800B908B0 /* English */ = {isa = PBXFileReference; lastKnownFileType = wrapper.nib; name = English; path = English.lproj/Main.nib; sourceTree = ""; }; - D2068FF10CEB82FC00B908B0 /* KeyConfig.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyConfig.h; path = ../src/macosx/KeyConfig.h; sourceTree = SOURCE_ROOT; }; - D2068FF20CEB82FC00B908B0 /* KeyConfig.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = KeyConfig.mm; path = ../src/macosx/KeyConfig.mm; sourceTree = SOURCE_ROOT; }; - D2068FF30CEB82FC00B908B0 /* MainClass.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainClass.h; path = ../src/macosx/MainClass.h; sourceTree = SOURCE_ROOT; }; - D2068FF40CEB82FC00B908B0 /* MainClass.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MainClass.mm; path = ../src/macosx/MainClass.mm; sourceTree = SOURCE_ROOT; }; - D2068FF50CEB82FC00B908B0 /* openfile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = openfile.h; path = ../src/macosx/openfile.h; sourceTree = SOURCE_ROOT; }; - D2068FF60CEB82FC00B908B0 /* openfile.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = openfile.mm; path = ../src/macosx/openfile.mm; sourceTree = SOURCE_ROOT; }; - D2068FF70CEB82FC00B908B0 /* SDL.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = SDL.mm; path = ../src/macosx/SDL.mm; sourceTree = SOURCE_ROOT; }; - D2068FFD0CEB832100B908B0 /* cart.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = cart.icns; path = ../src/macosx/cart.icns; sourceTree = SOURCE_ROOT; }; - D2068FFE0CEB832100B908B0 /* savestate.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = savestate.icns; path = ../src/macosx/savestate.icns; sourceTree = SOURCE_ROOT; }; - D2068FFF0CEB832100B908B0 /* system.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = system.icns; path = ../src/macosx/system.icns; sourceTree = SOURCE_ROOT; }; - D20690B00CEB91B700B908B0 /* agbprint.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = agbprint.cpp; path = ../src/agbprint.cpp; sourceTree = SOURCE_ROOT; }; - D20690B10CEB91B700B908B0 /* armdis.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = armdis.cpp; path = ../src/armdis.cpp; sourceTree = SOURCE_ROOT; }; - D20690B20CEB91B700B908B0 /* bios.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = bios.cpp; path = ../src/bios.cpp; sourceTree = SOURCE_ROOT; }; - D20690B30CEB91B700B908B0 /* elf.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = elf.cpp; path = ../src/elf.cpp; sourceTree = SOURCE_ROOT; }; - D20690B40CEB91B700B908B0 /* expr-lex.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = "expr-lex.cpp"; path = "../src/expr-lex.cpp"; sourceTree = SOURCE_ROOT; }; - D20690B50CEB91B700B908B0 /* expr.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = expr.cpp; path = ../src/expr.cpp; sourceTree = SOURCE_ROOT; }; - D20690B60CEB91B700B908B0 /* exprNode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = exprNode.cpp; path = ../src/exprNode.cpp; sourceTree = SOURCE_ROOT; }; - D20690B70CEB91B700B908B0 /* memgzio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = memgzio.c; path = ../src/memgzio.c; sourceTree = SOURCE_ROOT; }; - D20690B80CEB91B700B908B0 /* remote.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = remote.cpp; path = ../src/remote.cpp; sourceTree = SOURCE_ROOT; }; - D20690D30CEB922D00B908B0 /* Gfx.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gfx.cpp; path = ../src/Gfx.cpp; sourceTree = SOURCE_ROOT; }; - D20690F10CEB954800B908B0 /* snd_interp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = snd_interp.cpp; path = ../src/snd_interp.cpp; sourceTree = SOURCE_ROOT; }; - D20690F30CEB955400B908B0 /* snd_interp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = snd_interp.h; path = ../src/snd_interp.h; sourceTree = SOURCE_ROOT; }; - D20690F50CEB960E00B908B0 /* filterkit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filterkit.c; path = "../src/libresample-0.1.3/src/filterkit.c"; sourceTree = SOURCE_ROOT; }; - D20690F60CEB960E00B908B0 /* resample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = resample.c; path = "../src/libresample-0.1.3/src/resample.c"; sourceTree = SOURCE_ROOT; }; - D20690F70CEB960E00B908B0 /* resamplesubs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = resamplesubs.c; path = "../src/libresample-0.1.3/src/resamplesubs.c"; sourceTree = SOURCE_ROOT; }; - D20690FD0CEB963000B908B0 /* libresample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = libresample.h; path = "../src/libresample-0.1.3/include/libresample.h"; sourceTree = SOURCE_ROOT; }; - D206911B0CEB980400B908B0 /* debugger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = debugger.h; path = ../src/sdl/debugger.h; sourceTree = SOURCE_ROOT; }; - D206911C0CEB981400B908B0 /* debugger.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = debugger.cpp; path = ../src/sdl/debugger.cpp; sourceTree = SOURCE_ROOT; }; - D2B164F40CF1EA3100213737 /* libpng.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libpng.xcodeproj; path = "../../dependencies/libpng-1.2.22/projects/xcode/libpng.xcodeproj"; sourceTree = SOURCE_ROOT; }; - D2B165260CF1EB5A00213737 /* SDL.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = SDL.xcodeproj; path = "../../dependencies/SDL-1.2.12/Xcode/SDL/SDL.xcodeproj"; sourceTree = SOURCE_ROOT; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 8D11072E0486CEB800E47090 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D2B165750CF1EEAA00213737 /* libpng.framework in Frameworks */, - D2B165740CF1EEA600213737 /* SDL.framework in Frameworks */, - 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 080E96DDFE201D6D7F000001 /* OS X-Specific Classes */ = { - isa = PBXGroup; - children = ( - D2068FF10CEB82FC00B908B0 /* KeyConfig.h */, - D2068FF20CEB82FC00B908B0 /* KeyConfig.mm */, - D2068FF30CEB82FC00B908B0 /* MainClass.h */, - D2068FF40CEB82FC00B908B0 /* MainClass.mm */, - D2068FF50CEB82FC00B908B0 /* openfile.h */, - D2068FF60CEB82FC00B908B0 /* openfile.mm */, - D2068FF70CEB82FC00B908B0 /* SDL.mm */, - ); - name = "OS X-Specific Classes"; - sourceTree = ""; - }; - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { - isa = PBXGroup; - children = ( - D2B165260CF1EB5A00213737 /* SDL.xcodeproj */, - D2B164F40CF1EA3100213737 /* libpng.xcodeproj */, - 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, - ); - name = "Linked Frameworks"; - sourceTree = ""; - }; - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { - isa = PBXGroup; - children = ( - 29B97324FDCFA39411CA2CEA /* AppKit.framework */, - 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, - 29B97325FDCFA39411CA2CEA /* Foundation.framework */, - ); - name = "Other Frameworks"; - sourceTree = ""; - }; - 19C28FACFE9D520D11CA2CBB /* Products */ = { - isa = PBXGroup; - children = ( - 8D1107320486CEB800E47090 /* VBA-M.app */, - ); - name = Products; - sourceTree = ""; - }; - 29B97314FDCFA39411CA2CEA /* VBA-M */ = { - isa = PBXGroup; - children = ( - 080E96DDFE201D6D7F000001 /* OS X-Specific Classes */, - D2068F740CEB792900B908B0 /* Includes */, - 29B97315FDCFA39411CA2CEA /* Sources */, - 29B97317FDCFA39411CA2CEA /* Resources */, - 29B97323FDCFA39411CA2CEA /* Frameworks */, - 19C28FACFE9D520D11CA2CBB /* Products */, - ); - name = "VBA-M"; - sourceTree = ""; - }; - 29B97315FDCFA39411CA2CEA /* Sources */ = { - isa = PBXGroup; - children = ( - D20690B00CEB91B700B908B0 /* agbprint.cpp */, - D20690B10CEB91B700B908B0 /* armdis.cpp */, - D20690B20CEB91B700B908B0 /* bios.cpp */, - D2068FA20CEB7E0D00B908B0 /* Cheats.cpp */, - D206911C0CEB981400B908B0 /* debugger.cpp */, - D20690B30CEB91B700B908B0 /* elf.cpp */, - D20690B40CEB91B700B908B0 /* expr-lex.cpp */, - D20690B50CEB91B700B908B0 /* expr.cpp */, - D20690B60CEB91B700B908B0 /* exprNode.cpp */, - D2068FA30CEB7E0D00B908B0 /* EEprom.cpp */, - D2068FA40CEB7E0D00B908B0 /* Flash.cpp */, - D2068FC40CEB7E5C00B908B0 /* GB */, - D2068FA50CEB7E0D00B908B0 /* GBA.cpp */, - D20690D30CEB922D00B908B0 /* Gfx.cpp */, - D2068FA60CEB7E0D00B908B0 /* Globals.cpp */, - D20690FB0CEB961300B908B0 /* libresample */, - D20690B70CEB91B700B908B0 /* memgzio.c */, - D2068FA70CEB7E0D00B908B0 /* Mode0.cpp */, - D2068FA80CEB7E0D00B908B0 /* Mode1.cpp */, - D2068FA90CEB7E0D00B908B0 /* Mode2.cpp */, - D2068FAA0CEB7E0D00B908B0 /* Mode3.cpp */, - D2068FAB0CEB7E0D00B908B0 /* Mode4.cpp */, - D2068FAC0CEB7E0D00B908B0 /* Mode5.cpp */, - D20690B80CEB91B700B908B0 /* remote.cpp */, - D2068FAD0CEB7E0D00B908B0 /* RTC.cpp */, - D2068FAE0CEB7E0D00B908B0 /* Sound.cpp */, - D20690F10CEB954800B908B0 /* snd_interp.cpp */, - D2068FAF0CEB7E0D00B908B0 /* Sram.cpp */, - D2068FB00CEB7E0D00B908B0 /* Text.cpp */, - D2068FB10CEB7E0D00B908B0 /* unzip.cpp */, - D2068FB20CEB7E0D00B908B0 /* Util.cpp */, - D2068FD50CEB7F8800B908B0 /* Video Filters */, - ); - name = Sources; - sourceTree = ""; - }; - 29B97317FDCFA39411CA2CEA /* Resources */ = { - isa = PBXGroup; - children = ( - D2068FFC0CEB830A00B908B0 /* Icons */, - D2068FEE0CEB809800B908B0 /* Main.nib */, - 8D1107310486CEB800E47090 /* Info.plist */, - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, - ); - name = Resources; - sourceTree = ""; - }; - 29B97323FDCFA39411CA2CEA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, - 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, - ); - name = Frameworks; - sourceTree = ""; - }; - D2068F740CEB792900B908B0 /* Includes */ = { - isa = PBXGroup; - children = ( - D2068F770CEB7B1200B908B0 /* arm-new.h */, - D2068F780CEB7B1200B908B0 /* armdis.h */, - D2068F790CEB7B1200B908B0 /* bios.h */, - D2068F7A0CEB7B1200B908B0 /* Cheats.h */, - D2068F7B0CEB7B1200B908B0 /* EEprom.h */, - D206911B0CEB980400B908B0 /* debugger.h */, - D2068F7C0CEB7B1200B908B0 /* elf.h */, - D2068F7D0CEB7B1200B908B0 /* expr.cpp.h */, - D2068F7E0CEB7B1200B908B0 /* exprNode.h */, - D2068F7F0CEB7B1200B908B0 /* Flash.h */, - D2068F800CEB7B1200B908B0 /* GBA.h */, - D2068F810CEB7B1200B908B0 /* GBAinline.h */, - D2068F8E0CEB7B5300B908B0 /* gbCheats.h */, - D2068F8F0CEB7B5300B908B0 /* gbCodes.h */, - D2068F900CEB7B5300B908B0 /* gbGlobals.h */, - D2068F910CEB7B5300B908B0 /* gbMemory.h */, - D2068F920CEB7B5300B908B0 /* gbPrinter.h */, - D2068F930CEB7B5300B908B0 /* gbSGB.h */, - D2068F940CEB7B5300B908B0 /* gbSound.h */, - D2068F820CEB7B1200B908B0 /* Gfx.h */, - D2068F830CEB7B1200B908B0 /* Globals.h */, - D20690FC0CEB962000B908B0 /* libresample */, - D2068F840CEB7B1200B908B0 /* memgzio.h */, - D2068F850CEB7B1200B908B0 /* NLS.h */, - D2068F860CEB7B1200B908B0 /* Port.h */, - D2068F870CEB7B1200B908B0 /* Sound.h */, - D20690F30CEB955400B908B0 /* snd_interp.h */, - D2068F880CEB7B1200B908B0 /* Sram.h */, - D2068F890CEB7B1200B908B0 /* System.h */, - D2068F8A0CEB7B1200B908B0 /* Text.h */, - D2068F8B0CEB7B1200B908B0 /* thumb.h */, - D2068F8C0CEB7B1200B908B0 /* unzip.h */, - D2068F8D0CEB7B1200B908B0 /* Util.h */, - ); - name = Includes; - sourceTree = ""; - }; - D2068FC40CEB7E5C00B908B0 /* GB */ = { - isa = PBXGroup; - children = ( - D2068FC50CEB7E8400B908B0 /* GB.cpp */, - D2068FC60CEB7E8400B908B0 /* gbCheats.cpp */, - D2068FC70CEB7E8400B908B0 /* gbGfx.cpp */, - D2068FC80CEB7E8400B908B0 /* gbGlobals.cpp */, - D2068FC90CEB7E8400B908B0 /* gbMemory.cpp */, - D2068FCA0CEB7E8400B908B0 /* gbPrinter.cpp */, - D2068FCB0CEB7E8400B908B0 /* gbSGB.cpp */, - D2068FCC0CEB7E8400B908B0 /* gbSound.cpp */, - ); - name = GB; - sourceTree = ""; - }; - D2068FD50CEB7F8800B908B0 /* Video Filters */ = { - isa = PBXGroup; - children = ( - D2068FD60CEB7FEB00B908B0 /* 2xSaI.cpp */, - D2068FD70CEB7FEB00B908B0 /* admame.cpp */, - D2068FD80CEB7FEB00B908B0 /* bilinear.cpp */, - D2068FD90CEB7FEB00B908B0 /* hq2x.cpp */, - D2068FDB0CEB7FEB00B908B0 /* interframe.cpp */, - D2068FDE0CEB7FEB00B908B0 /* motionblur.cpp */, - D2068FDF0CEB7FEB00B908B0 /* pixel.cpp */, - D2068FE00CEB7FEB00B908B0 /* scanline.cpp */, - D2068FE10CEB7FEB00B908B0 /* simpleFilter.cpp */, - ); - name = "Video Filters"; - sourceTree = ""; - }; - D2068FFC0CEB830A00B908B0 /* Icons */ = { - isa = PBXGroup; - children = ( - D2068FFD0CEB832100B908B0 /* cart.icns */, - D2068FFE0CEB832100B908B0 /* savestate.icns */, - D2068FFF0CEB832100B908B0 /* system.icns */, - ); - name = Icons; - sourceTree = ""; - }; - D20690FB0CEB961300B908B0 /* libresample */ = { - isa = PBXGroup; - children = ( - D20690F50CEB960E00B908B0 /* filterkit.c */, - D20690F60CEB960E00B908B0 /* resample.c */, - D20690F70CEB960E00B908B0 /* resamplesubs.c */, - ); - name = libresample; - sourceTree = ""; - }; - D20690FC0CEB962000B908B0 /* libresample */ = { - isa = PBXGroup; - children = ( - D20690FD0CEB963000B908B0 /* libresample.h */, - ); - name = libresample; - sourceTree = ""; - }; - D2B164F50CF1EA3100213737 /* Products */ = { - isa = PBXGroup; - children = ( - D2B164F90CF1EA3100213737 /* libpng.framework */, - ); - name = Products; - sourceTree = ""; - }; - D2B165270CF1EB5A00213737 /* Products */ = { - isa = PBXGroup; - children = ( - D2B165360CF1EB5A00213737 /* SDL.framework */, - D2B165380CF1EB5A00213737 /* libSDL.a */, - D2B1653A0CF1EB5A00213737 /* libSDLmain.a */, - D2B1653C0CF1EB5A00213737 /* Standard DMG */, - D2B1653E0CF1EB5A00213737 /* Developer Extras Package */, - D2B165400CF1EB5A00213737 /* SDL.framework */, - D2B165420CF1EB5A00213737 /* libSDL.a */, - ); - name = Products; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 8D1107260486CEB800E47090 /* VBA-M */ = { - isa = PBXNativeTarget; - buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "VBA-M" */; - buildPhases = ( - D20691000CEB964600B908B0 /* Configure libresample */, - 8D1107290486CEB800E47090 /* Resources */, - 8D11072C0486CEB800E47090 /* Sources */, - 8D11072E0486CEB800E47090 /* Frameworks */, - D206904C0CEB841000B908B0 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - D2B164FC0CF1EA4A00213737 /* PBXTargetDependency */, - D2B165730CF1EEA100213737 /* PBXTargetDependency */, - ); - name = "VBA-M"; - productInstallPath = "$(HOME)/Applications"; - productName = "VBA-M"; - productReference = 8D1107320486CEB800E47090 /* VBA-M.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 29B97313FDCFA39411CA2CEA /* Project object */ = { - isa = PBXProject; - buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "VBA-M" */; - compatibilityVersion = "Xcode 3.0"; - hasScannedForEncodings = 1; - mainGroup = 29B97314FDCFA39411CA2CEA /* VBA-M */; - projectDirPath = ""; - projectReferences = ( - { - ProductGroup = D2B164F50CF1EA3100213737 /* Products */; - ProjectRef = D2B164F40CF1EA3100213737 /* libpng.xcodeproj */; - }, - { - ProductGroup = D2B165270CF1EB5A00213737 /* Products */; - ProjectRef = D2B165260CF1EB5A00213737 /* SDL.xcodeproj */; - }, - ); - projectRoot = ""; - targets = ( - 8D1107260486CEB800E47090 /* VBA-M */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXReferenceProxy section */ - D2B164F90CF1EA3100213737 /* libpng.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = libpng.framework; - remoteRef = D2B164F80CF1EA3100213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B165360CF1EB5A00213737 /* SDL.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = SDL.framework; - remoteRef = D2B165350CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B165380CF1EB5A00213737 /* libSDL.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libSDL.a; - remoteRef = D2B165370CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B1653A0CF1EB5A00213737 /* libSDLmain.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libSDLmain.a; - remoteRef = D2B165390CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B1653C0CF1EB5A00213737 /* Standard DMG */ = { - isa = PBXReferenceProxy; - fileType = "compiled.mach-o.executable"; - path = "Standard DMG"; - remoteRef = D2B1653B0CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B1653E0CF1EB5A00213737 /* Developer Extras Package */ = { - isa = PBXReferenceProxy; - fileType = "compiled.mach-o.executable"; - path = "Developer Extras Package"; - remoteRef = D2B1653D0CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B165400CF1EB5A00213737 /* SDL.framework */ = { - isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = SDL.framework; - remoteRef = D2B1653F0CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; - D2B165420CF1EB5A00213737 /* libSDL.a */ = { - isa = PBXReferenceProxy; - fileType = archive.ar; - path = libSDL.a; - remoteRef = D2B165410CF1EB5A00213737 /* PBXContainerItemProxy */; - sourceTree = BUILT_PRODUCTS_DIR; - }; -/* End PBXReferenceProxy section */ - -/* Begin PBXResourcesBuildPhase section */ - 8D1107290486CEB800E47090 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, - D2068FF00CEB809800B908B0 /* Main.nib in Resources */, - D20690000CEB832100B908B0 /* cart.icns in Resources */, - D20690010CEB832100B908B0 /* savestate.icns in Resources */, - D20690020CEB832100B908B0 /* system.icns in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - D20691000CEB964600B908B0 /* Configure libresample */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Configure libresample"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "cd $SRCROOT/../src/libresample-0.1.3\n./configure"; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 8D11072C0486CEB800E47090 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - D2068FB30CEB7E0D00B908B0 /* Cheats.cpp in Sources */, - D2068FB40CEB7E0D00B908B0 /* EEprom.cpp in Sources */, - D2068FB50CEB7E0D00B908B0 /* Flash.cpp in Sources */, - D2068FB60CEB7E0D00B908B0 /* GBA.cpp in Sources */, - D2068FB70CEB7E0D00B908B0 /* Globals.cpp in Sources */, - D2068FB80CEB7E0D00B908B0 /* Mode0.cpp in Sources */, - D2068FB90CEB7E0D00B908B0 /* Mode1.cpp in Sources */, - D2068FBA0CEB7E0D00B908B0 /* Mode2.cpp in Sources */, - D2068FBB0CEB7E0D00B908B0 /* Mode3.cpp in Sources */, - D2068FBC0CEB7E0D00B908B0 /* Mode4.cpp in Sources */, - D2068FBD0CEB7E0D00B908B0 /* Mode5.cpp in Sources */, - D2068FBE0CEB7E0D00B908B0 /* RTC.cpp in Sources */, - D2068FBF0CEB7E0D00B908B0 /* Sound.cpp in Sources */, - D2068FC00CEB7E0D00B908B0 /* Sram.cpp in Sources */, - D2068FC10CEB7E0D00B908B0 /* Text.cpp in Sources */, - D2068FC20CEB7E0D00B908B0 /* unzip.cpp in Sources */, - D2068FC30CEB7E0D00B908B0 /* Util.cpp in Sources */, - D2068FCD0CEB7E8400B908B0 /* GB.cpp in Sources */, - D2068FCE0CEB7E8400B908B0 /* gbCheats.cpp in Sources */, - D2068FCF0CEB7E8400B908B0 /* gbGfx.cpp in Sources */, - D2068FD00CEB7E8400B908B0 /* gbGlobals.cpp in Sources */, - D2068FD10CEB7E8400B908B0 /* gbMemory.cpp in Sources */, - D2068FD20CEB7E8400B908B0 /* gbPrinter.cpp in Sources */, - D2068FD30CEB7E8400B908B0 /* gbSGB.cpp in Sources */, - D2068FD40CEB7E8400B908B0 /* gbSound.cpp in Sources */, - D2068FE20CEB7FEB00B908B0 /* 2xSaI.cpp in Sources */, - D2068FE30CEB7FEB00B908B0 /* admame.cpp in Sources */, - D2068FE40CEB7FEB00B908B0 /* bilinear.cpp in Sources */, - D2068FE50CEB7FEB00B908B0 /* hq2x.cpp in Sources */, - D2068FE70CEB7FEB00B908B0 /* interframe.cpp in Sources */, - D2068FEA0CEB7FEB00B908B0 /* motionblur.cpp in Sources */, - D2068FEB0CEB7FEB00B908B0 /* pixel.cpp in Sources */, - D2068FEC0CEB7FEB00B908B0 /* scanline.cpp in Sources */, - D2068FED0CEB7FEB00B908B0 /* simpleFilter.cpp in Sources */, - D2068FF80CEB82FC00B908B0 /* KeyConfig.mm in Sources */, - D2068FF90CEB82FC00B908B0 /* MainClass.mm in Sources */, - D2068FFA0CEB82FC00B908B0 /* openfile.mm in Sources */, - D2068FFB0CEB82FC00B908B0 /* SDL.mm in Sources */, - D20690B90CEB91B700B908B0 /* agbprint.cpp in Sources */, - D20690BA0CEB91B700B908B0 /* armdis.cpp in Sources */, - D20690BB0CEB91B700B908B0 /* bios.cpp in Sources */, - D20690BC0CEB91B700B908B0 /* elf.cpp in Sources */, - D20690BD0CEB91B700B908B0 /* expr-lex.cpp in Sources */, - D20690BE0CEB91B700B908B0 /* expr.cpp in Sources */, - D20690BF0CEB91B700B908B0 /* exprNode.cpp in Sources */, - D20690C00CEB91B700B908B0 /* memgzio.c in Sources */, - D20690C10CEB91B700B908B0 /* remote.cpp in Sources */, - D20690D40CEB922D00B908B0 /* Gfx.cpp in Sources */, - D20690F20CEB954800B908B0 /* snd_interp.cpp in Sources */, - D20690F80CEB960E00B908B0 /* filterkit.c in Sources */, - D20690F90CEB960E00B908B0 /* resample.c in Sources */, - D20690FA0CEB960E00B908B0 /* resamplesubs.c in Sources */, - D206911D0CEB981400B908B0 /* debugger.cpp in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - D2B164FC0CF1EA4A00213737 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = libpng; - targetProxy = D2B164FB0CF1EA4A00213737 /* PBXContainerItemProxy */; - }; - D2B165730CF1EEA100213737 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - name = Framework; - targetProxy = D2B165720CF1EEA100213737 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { - isa = PBXVariantGroup; - children = ( - 089C165DFE840E0CC02AAC07 /* English */, - ); - name = InfoPlist.strings; - sourceTree = ""; - }; - D2068FEE0CEB809800B908B0 /* Main.nib */ = { - isa = PBXVariantGroup; - children = ( - D2068FEF0CEB809800B908B0 /* English */, - ); - name = Main.nib; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - C01FCF4B08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - COPY_PHASE_STRIP = NO; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/Frameworks\"", - ); - GCC_DYNAMIC_NO_PIC = NO; - GCC_ENABLE_FIX_AND_CONTINUE = YES; - GCC_MODEL_TUNING = G5; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREFIX_HEADER = ""; - GCC_PREPROCESSOR_DEFINITIONS = ( - "C_CORE=1", - "STDC_HEADERS=1", - "FINAL_VERSION=1", - SDL, - "HAVE_STDINT_H=1", - "HAVE_INTTYPES_H=1", - "HAVE_STRINGS_H=1", - "HAVE_MEMORY_H=1", - "HAVE_STDLIB_H=1", - "HAVE_SYS_STAT_H=1", - "HAVE_SYS_TYPES_H=1", - "HAVE_ARPA_INET_H=1", - "HAVE_UNISTD_H=1", - ); - HEADER_SEARCH_PATHS = ( - "$(BUILD_DIR)/$(CONFIGURATION)/SDL.framework/Headers", - "$(BUILD_DIR)/$(CONFIGURATION)/libpng.framework/Headers", - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_CFLAGS = ( - "-Wno-unused", - "-ffast-math", - "-malign-natural", - "-fstrict-aliasing", - "-fsched-interblock", - "-force_cpusubtype_ALL", - "-Wall", - "-DBKPT_SUPPORT", - ); - OTHER_LDFLAGS = "-lz"; - PRODUCT_NAME = "VBA-M"; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - WRAPPER_EXTENSION = app; - ZERO_LINK = YES; - }; - name = Debug; - }; - C01FCF4C08A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - FRAMEWORK_SEARCH_PATHS = ( - "$(inherited)", - "\"$(SRCROOT)/Frameworks\"", - ); - GCC_MODEL_TUNING = G5; - "GCC_OPTIMIZATION_LEVEL[arch=ppc]" = 0; - GCC_PRECOMPILE_PREFIX_HEADER = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - "FINAL_VERSION=1", - "C_CORE=1", - "STDC_HEADERS=1", - "HAVE_UNISTD_H=1", - "HAVE_ARPA_INET_H=1", - "HAVE_SYS_TYPES_H=1", - "HAVE_SYS_STAT_H=1", - "HAVE_STDLIB_H=1", - "HAVE_STRING_H=1", - "HAVE_MEMORY_H=1", - "HAVE_STRINGS_H=1", - "HAVE_INTTYPES_H=1", - "HAVE_STDINT_H=1", - SDL, - ); - HEADER_SEARCH_PATHS = ( - "$(BUILD_DIR)/$(CONFIGURATION)/SDL.framework/Headers", - "$(BUILD_DIR)/$(CONFIGURATION)/libpng.framework/Headers", - ); - INFOPLIST_FILE = Info.plist; - INSTALL_PATH = "$(HOME)/Applications"; - OTHER_CFLAGS = ( - "-Wno-unused", - "-ffast-math", - "-malign-natural", - "-fstrict-aliasing", - "-fsched-interblock", - "-force_cpusubtype_ALL", - "-Wall", - "-DBKPT_SUPPORT", - ); - "OTHER_CFLAGS[arch=ppc]" = ( - "-Wno-unused", - "-ffast-math", - "-malign-natural", - "-fstrict-aliasing", - "-fsched-interblock", - "-force_cpusubtype_ALL", - "-Wall", - "-DBKPT_SUPPORT", - "-DWORDS_BIGENDIAN", - ); - OTHER_LDFLAGS = "-lz"; - PRODUCT_NAME = "VBA-M"; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; - C01FCF4F08A954540054247B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.5.sdk"; - }; - name = Debug; - }; - C01FCF5008A954540054247B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ARCHS = ( - ppc, - i386, - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - PREBINDING = NO; - SDKROOT = "$(DEVELOPER_SDK_DIR)/MacOSX10.4u.sdk"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "VBA-M" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4B08A954540054247B /* Debug */, - C01FCF4C08A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - C01FCF4E08A954540054247B /* Build configuration list for PBXProject "VBA-M" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - C01FCF4F08A954540054247B /* Debug */, - C01FCF5008A954540054247B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; -} diff --git a/src/macosx/KeyConfig.h b/src/macosx/KeyConfig.h deleted file mode 100644 index 05affbb9..00000000 --- a/src/macosx/KeyConfig.h +++ /dev/null @@ -1,9 +0,0 @@ -/* - * KeyConfig.h - * Visual Boy Advance - */ - -void calibrate(); -int config_main(); -int poll(); - diff --git a/src/macosx/KeyConfig.mm b/src/macosx/KeyConfig.mm deleted file mode 100644 index b59a68a5..00000000 --- a/src/macosx/KeyConfig.mm +++ /dev/null @@ -1,108 +0,0 @@ -#include -#include -#include -#include "MainClass.h" - -int stopPoll = 0; - -#define GETHATCODE(event) ((event.jhat.which+1)<<12)|(event.jhat.hat<<2)|\ - (event.jhat.value & SDL_HAT_UP ? 0 : event.jhat.value & SDL_HAT_DOWN ? 1 : event.jhat.value & SDL_HAT_RIGHT ? 2 : event.jhat.value & SDL_HAT_LEFT ? 3 : 0) - -#define GETBUTTONCODE(event) ((event.jbutton.which+1)<<12)|(event.jbutton.button+0x80) - -#define GETAXISCODE(event) ((event.jaxis.which+1)<<12)|(event.jaxis.axis<<1)|(event.jaxis.value > 16384 ? 1 : event.jaxis.value < -16384 ? 0 : 0) - -void calibrate( void ) -{ - SDL_Event event; - while(SDL_PollEvent(&event)) { - switch(event.type) { - case SDL_JOYHATMOTION: - break; - case SDL_JOYBUTTONDOWN: - //stopPoll = 1; - break; - case SDL_JOYAXISMOTION: - break; - case SDL_KEYDOWN: - stopPoll = 1; - break; - case SDL_KEYUP: - break; - } - } -} - -int poll() -{ - SDL_Event event; - while(SDL_PollEvent(&event)) { - switch(event.type) { - case SDL_JOYHATMOTION: - if (event.jhat.value != 0) - { - stopPoll = 1; - return GETHATCODE(event); - } - break; - case SDL_JOYBUTTONDOWN: - stopPoll = 1; - return GETBUTTONCODE(event); - break; - case SDL_JOYAXISMOTION: - if (event.jaxis.value < -23000 || event.jaxis.value > 23000) - { - stopPoll = 1; - return GETAXISCODE(event); - } - break; - case SDL_KEYDOWN: - stopPoll = 1; - return event.key.keysym.sym; - break; - case SDL_KEYUP: - break; - case SDL_MOUSEBUTTONDOWN: - stopPoll = 1; - break; - } - } - return 0; -} - -int config_main() -{ - - if(SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO|SDL_INIT_NOPARACHUTE)) { - printf("Failed to init SDL: %s\n", SDL_GetError()); - exit(-1); - } - - if(SDL_InitSubSystem(SDL_INIT_JOYSTICK)) { - printf("Failed to init joystick: %s\n", SDL_GetError()); - } - -// SDL_Surface *surface = SDL_SetVideoMode(0,0,0, -// SDL_ANYFORMAT); -// if (NULL == surface) { -// printf("Failed to set video mode: %s\n", SDL_GetError()); -// } - - int numJoy = SDL_NumJoysticks(); - - int i; - for(i = 0; i < numJoy; i++) { - SDL_JoystickOpen(i); - } - SDL_JoystickEventState(SDL_ENABLE); - - /*printf("%i joysticks were found.\n\n", SDL_NumJoysticks() ); - printf("The names of the joysticks are:\n"); - - for( i=0; i < SDL_NumJoysticks(); i++ ) - { - printf(" %s\n", SDL_JoystickName(i)); - }*/ - - return SDL_NumJoysticks(); -} diff --git a/src/macosx/MainClass.h b/src/macosx/MainClass.h deleted file mode 100644 index 35d825a0..00000000 --- a/src/macosx/MainClass.h +++ /dev/null @@ -1,131 +0,0 @@ -#import - -@interface SDLMain : NSObject -{ - IBOutlet NSWindow *prefsWindow; - IBOutlet NSPopUpButton *skipBios; - IBOutlet NSPopUpButton *pauseWhenInactive; - IBOutlet NSPopUpButton *realtimeClock; - IBOutlet NSPopUpButton *interframe; - IBOutlet NSPopUpButton *soundEcho; - IBOutlet NSPopUpButton *soundLowPass; - IBOutlet NSPopUpButton *soundOn; - IBOutlet NSPopUpButton *soundQuality; - IBOutlet NSPopUpButton *soundReverseStereo; - IBOutlet NSPopUpButton *removeIntros; - IBOutlet NSPopUpButton *flashSize; - IBOutlet NSPopUpButton *videoBorder; - IBOutlet NSPopUpButton *videoFilter; - IBOutlet NSPopUpButton *videoFullscreen; - IBOutlet NSPopUpButton *videoSize; - IBOutlet NSPopUpButton *videoWashedColors; - IBOutlet NSPopUpButton *gbaFrameSkip; - IBOutlet NSPopUpButton *gbFrameSkip; - IBOutlet NSPopUpButton *autoFrameSkip; - IBOutlet NSPopUpButton *showSpeed; - IBOutlet NSPopUpButton *useBios; - IBOutlet NSTextField *biosFilePath; - IBOutlet NSPopUpButton *throttle; - IBOutlet NSPopUpButton *changeFileType; -} -- (IBAction)closePrefs:(id)sender; -- (IBAction)loadConfig; -- (IBAction)closePrefsNull:(id)sender; -- (IBAction)openPrefs:(id)sender; -- (IBAction)openRomFromMenu:(id)sender; -- (IBAction)quit:(id)sender; -- (IBAction)changeCreator:(char *)filename; -- (IBAction)changeSaveCreator:(char *)filename; -- (IBAction)changeSgmCreator:(char *)statename; -- (IBAction)selectBiosFile:(id)sender; -- (IBAction)addCheatCBA; -- (IBAction)addCheatGSA; -@end - -@interface CheatClass : NSObject -{ - IBOutlet NSTextField *cheatField; - IBOutlet NSTextField *cheatField2; - IBOutlet NSTextField *cheatField3; - IBOutlet NSTextField *cheatField4; - IBOutlet NSTextField *cheatField5; - IBOutlet NSTextField *cheatField6; - IBOutlet NSWindow *cheatWindow; - IBOutlet NSTextField *cheatFieldGSA; - IBOutlet NSTextField *cheatFieldGSA2; - IBOutlet NSTextField *cheatFieldGSA3; - IBOutlet NSTextField *cheatFieldGSA4; - IBOutlet NSTextField *cheatFieldGSA5; - IBOutlet NSTextField *cheatFieldGSA6; - IBOutlet NSWindow *cheatWindowGSA; - IBOutlet NSMenuItem *cheatMenuCBA; - IBOutlet NSMenuItem *cheatMenuGSA; - IBOutlet NSMenu *cheatMenu; -} -- (IBAction)disableCheats; -- (IBAction)enableCheats; -- (IBAction)readCheatCBA:(id)sender; -- (IBAction)readCheatGSA:(id)sender; -- (IBAction)openCheatCBA:(id)sender; -- (IBAction)openCheatGSA:(id)sender; -@end - -@interface MenuClass : NSObject -- (IBAction)closeRom:(id)sender; -- (IBAction)resetEmulation:(id)sender; -- (IBAction)pauseEmulation:(id)sender; -- (IBAction)advanceFrame:(id)sender; -- (IBAction)toggleFullscreen:(id)sender; -@end - -@interface ConfigClass : NSObject -{ - IBOutlet NSButton *calibrateButton; - IBOutlet NSButton *defaultButton; - IBOutlet NSButton *OKButton; - IBOutlet NSButton *CancelButton; - IBOutlet NSTextField *aField; - IBOutlet NSTextField *bField; - IBOutlet NSTextField *downField; - IBOutlet NSTextField *leftField; - IBOutlet NSTextField *lField; - IBOutlet NSTextField *rField; - IBOutlet NSTextField *rightField; - IBOutlet NSTextField *selectField; - IBOutlet NSTextField *startField; - IBOutlet NSTextField *upField; - IBOutlet NSTextField *captureField; - IBOutlet NSTextField *speedField; - IBOutlet NSWindow *configWindow; - IBOutlet NSWindow *noteWindow; -} -- (void)loadKeyValues; -- (IBAction)beginConfig:(id)sender; -- (IBAction)endConfig:(id)sender; -- (IBAction)calibrate:(id)sender; -- (IBAction)pollA:(id)sender; -- (IBAction)pollB:(id)sender; -- (IBAction)pollCapture:(id)sender; -- (IBAction)pollSpeed:(id)sender; -- (IBAction)pollDown:(id)sender; -- (IBAction)pollL:(id)sender; -- (IBAction)pollLeft:(id)sender; -- (IBAction)pollR:(id)sender; -- (IBAction)pollRight:(id)sender; -- (IBAction)pollSelect:(id)sender; -- (IBAction)pollStart:(id)sender; -- (IBAction)pollUp:(id)sender; -@end - -extern SDLMain *gSDLMain; -extern bool changeType; -extern int done; -extern int emulating; -void sdlEmuReset( void ); -void sdlEmuPause( void ); -void sdlAdvanceFrame( void ); -void sdlToggleFullscreen( void ); -void cheatsAddCBACode(const char *code, const char *desc); -void cheatsAddGSACode(const char *code, const char *desc, bool v3); -void sdlWriteState(int num); -void sdlReadState(int num); \ No newline at end of file diff --git a/src/macosx/MainClass.mm b/src/macosx/MainClass.mm deleted file mode 100644 index 7916c4c1..00000000 --- a/src/macosx/MainClass.mm +++ /dev/null @@ -1,821 +0,0 @@ -#import -#import "MainClass.h" -#import "openfile.h" -#import "KeyConfig.h" -#import /* for MAXPATHLEN */ -#import - -extern void sdlSetDefaultPreferences(); - -/* Use this flag to determine whether we use SDLMain.nib or not */ -#define SDL_USE_NIB_FILE 1 - -#define prefs [NSUserDefaults standardUserDefaults] - -static int gArgc; -static char **gArgv; -static BOOL gFinderLaunch; -int runAgain = 0, cheatCBA = 0, cheatGSA = 0; -extern int stopPoll; -int keyConfig[12], configArray[20]; -char keyArray[12][12], code[6][256]; -extern bool paused; -extern bool wasPaused; -NSString *cheatString, * biosPath; -void emu_main(); -char launchFile[1024]; -NSString *keyLeftString, *keyRightString, *keyUpString, *keyDownString, *keyAString, *keyBString, *keyLString, *keyRString, *keyStartString, *keySelectString, *keySpeedString, *keyCaptureString; - -//Config externs -enum { - KEY_LEFT, KEY_RIGHT, - KEY_UP, KEY_DOWN, - KEY_BUTTON_A, KEY_BUTTON_B, - KEY_BUTTON_START, KEY_BUTTON_SELECT, - KEY_BUTTON_L, KEY_BUTTON_R, - KEY_BUTTON_SPEED, KEY_BUTTON_CAPTURE -}; - -extern unsigned short joypad[4][12]; - -@interface SDLApplication : NSApplication -@end - -@implementation SDLApplication -/* Invoked from the Quit menu item */ -- (void)terminate:(id)sender -{ - if (emulating) - { - done = true; - emulating = false; - } - else - { - exit(0); - } -} -@end - - -SDLMain *gSDLMain = NULL; -char biosFile[1024]; -bool changeType; - -/* The main class of the application, the application's delegate */ -@implementation SDLMain - -- (void) openHomepage:(id)sender -{ -[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"http://software.emuscene.com"]]; -} - -- (void) donate:(id)sender -{ -[[NSWorkspace sharedWorkspace] openURL:[NSURL URLWithString:@"https://www.paypal.com/xclick/business=payments%40victoly.com&item_name=EmuScene+Donation&no_note=1&tax=0¤cy_code=USD"]]; -} - -- (void) quit:(id)sender -{ - if (emulating) - { - done = true; - emulating = false; - } - else - { - exit(0); - } -} - -- (void) openPrefs:(id)sender -{ - paused = true; - SDL_PauseAudio(paused); - wasPaused = true; - - [self loadConfig]; - [prefsWindow makeKeyAndOrderFront:self]; -} - -- (void) closePrefsNull:(id)sender -{ - [prefsWindow orderOut:self]; - - paused = false; - SDL_PauseAudio(paused); - wasPaused = false; -} - -- (void) loadConfig -{ - [gbaFrameSkip selectItemAtIndex:[prefs integerForKey:@"frameskip"]]; - [gbFrameSkip selectItemAtIndex:[prefs integerForKey:@"gbFrameskip"]]; - [videoSize selectItemAtIndex:[prefs integerForKey:@"sizeOption"]]; - [videoFullscreen selectItemAtIndex:[prefs integerForKey:@"fullscreen"]]; - [useBios selectItemAtIndex:[prefs integerForKey:@"useBios"]]; - [skipBios selectItemAtIndex:[prefs integerForKey:@"skipBios"]]; - if ([prefs stringForKey:@"biosFile"] != nil) - { - [biosFilePath setStringValue:[[prefs stringForKey:@"biosFile"] lastPathComponent]]; - biosPath = [[NSString alloc] initWithString:[prefs stringForKey:@"biosFile"]]; - [biosPath retain]; - } - [videoFilter selectItemAtIndex:[prefs integerForKey:@"filter"]]; - if ([prefs integerForKey:@"gbBorderAutomatic"] == 1) - [videoBorder selectItemAtIndex:2]; - else - [videoBorder selectItemAtIndex:[prefs integerForKey:@"gbBorderOn"]]; - [videoWashedColors selectItemAtIndex:[prefs integerForKey:@"colorOption"]]; - if ([prefs integerForKey:@"soundQuality"] == 4) - [soundQuality selectItemAtIndex:2]; - else - [soundQuality selectItemAtIndex:([prefs integerForKey:@"soundQuality"]-1)]; - [soundOn selectItemAtIndex:(![prefs integerForKey:@"soundOff"])]; - [soundEcho selectItemAtIndex:[prefs integerForKey:@"soundEcho"]]; - [soundLowPass selectItemAtIndex:[prefs integerForKey:@"soundLowPass"]]; - [soundReverseStereo selectItemAtIndex:[prefs integerForKey:@"soundReverse"]]; - [removeIntros selectItemAtIndex:[prefs integerForKey:@"removeIntros"]]; - [flashSize selectItemAtIndex:[prefs integerForKey:@"flashSize"]]; - [interframe selectItemAtIndex:[prefs integerForKey:@"ifbType"]]; - [showSpeed selectItemAtIndex:[prefs integerForKey:@"showSpeed"]]; - [autoFrameSkip selectItemAtIndex:[prefs integerForKey:@"autoFrameSkip"]]; - if ([prefs integerForKey:@"throttle"]) - [throttle selectItemAtIndex:1]; - else - [throttle selectItemAtIndex:0]; - [pauseWhenInactive selectItemAtIndex:[prefs integerForKey:@"pauseWhenInactive"]]; - [realtimeClock selectItemAtIndex:[prefs integerForKey:@"rtcEnabled"]]; - [changeFileType selectItemAtIndex:[prefs integerForKey:@"changeType"]]; -} - -- (void)closePrefs:(id)sender -{ - [prefs setInteger:[gbaFrameSkip indexOfSelectedItem] forKey:@"frameskip"]; - [prefs setInteger:[gbFrameSkip indexOfSelectedItem] forKey:@"gbFrameskip"]; - [prefs setInteger:[videoSize indexOfSelectedItem] forKey:@"sizeOption"]; - [prefs setInteger:[videoFullscreen indexOfSelectedItem] forKey:@"fullscreen"]; - [prefs setInteger:[useBios indexOfSelectedItem] forKey:@"useBios"]; - [prefs setInteger:[skipBios indexOfSelectedItem] forKey:@"skipBios"]; - [prefs setObject:biosPath forKey:@"biosFile"]; - [prefs setInteger:[videoFilter indexOfSelectedItem] forKey:@"filter"]; - if ([videoBorder indexOfSelectedItem] == 3) - { - [prefs setInteger:1 forKey:@"gbBorderAutomatic"]; - [prefs setInteger:0 forKey:@"gbBorderOn"]; - } - else - { - [prefs setInteger:[videoBorder indexOfSelectedItem] forKey:@"gbBorderOn"]; - [prefs setInteger:0 forKey:@"gbBorderAutomatic"]; - } - [prefs setInteger:[videoWashedColors indexOfSelectedItem] forKey:@"colorOption"]; - if (([soundQuality indexOfSelectedItem] + 1) == 3) - [prefs setInteger:4 forKey:@"soundQuality"]; - else - [prefs setInteger:([soundQuality indexOfSelectedItem] + 1) forKey:@"soundQuality"]; - [prefs setInteger:(![soundOn indexOfSelectedItem]) forKey:@"soundOff"]; - [prefs setInteger:[soundEcho indexOfSelectedItem] forKey:@"soundEcho"]; - [prefs setInteger:[soundLowPass indexOfSelectedItem] forKey:@"soundLowPass"]; - [prefs setInteger:[soundReverseStereo indexOfSelectedItem] forKey:@"soundReverse"]; - [prefs setInteger:[removeIntros indexOfSelectedItem] forKey:@"removeIntros"]; - [prefs setInteger:[flashSize indexOfSelectedItem] forKey:@"flashSize"]; - [prefs setInteger:0 forKey:@"ifbType"]; - [prefs setInteger:[showSpeed indexOfSelectedItem] forKey:@"showSpeed"]; - [prefs setInteger:[autoFrameSkip indexOfSelectedItem] forKey:@"autoFrameSkip"]; - if (![soundOn indexOfSelectedItem]) - { - if ([throttle indexOfSelectedItem]) - [prefs setInteger:65 forKey:@"throttle"]; - else - [prefs setInteger:0 forKey:@"throttle"]; - } - else - { - [prefs setInteger:0 forKey:@"throttle"]; - } - [prefs setInteger:[pauseWhenInactive indexOfSelectedItem] forKey:@"pauseWhenInactive"]; - [prefs setInteger:[realtimeClock indexOfSelectedItem] forKey:@"rtcEnabled"]; - [prefs setInteger:[interframe indexOfSelectedItem] forKey:@"ifbType"]; - [prefs setInteger:[changeFileType indexOfSelectedItem] forKey:@"changeType"]; - - [prefsWindow orderOut:self]; - [prefs synchronize]; - - paused = !paused; - SDL_PauseAudio(paused); - if(paused) - wasPaused = true; -} - - --(void) defaultPrefs:(id)sender -{ - BOOL isOK; - NSString * path = [NSString stringWithString:@"~/Library/Preferences/VisualBoyAdvance.plist"]; - path = [path stringByExpandingTildeInPath]; - - if( [[NSFileManager defaultManager] fileExistsAtPath:path] ) - isOK = [[NSFileManager defaultManager] removeFileAtPath:path handler:nil]; - - sdlSetDefaultPreferences(); - [self loadConfig]; -} - -- (void) openRomFromMenu:(id)sender -{ - if (emulating) - { - runAgain = 1; - emulating = false; - } - else - { - emu_main(); - } -} - --(void) changeCreator:(char *) filename -{ - NSNumber *fileType = [NSNumber numberWithUnsignedLong:'Cart']; - NSNumber *fileCreator = [NSNumber numberWithUnsignedLong:'vboy']; - - NSString * fileString = [[NSString alloc] initWithCString:filename]; - - [[NSFileManager defaultManager] changeFileAttributes:[NSDictionary dictionaryWithObject:fileType forKey:NSFileHFSTypeCode] atPath:fileString]; - - [[NSFileManager defaultManager] changeFileAttributes:[NSDictionary dictionaryWithObject:fileCreator forKey:NSFileHFSCreatorCode] atPath:fileString]; -} - --(void) changeSaveCreator:(char *) filename -{ - NSNumber *fileType = [NSNumber numberWithUnsignedLong:'savf']; - NSNumber *fileCreator = [NSNumber numberWithUnsignedLong:'vboy']; - - NSString * fileString = [[NSString alloc] initWithCString:filename]; - - [[NSFileManager defaultManager] changeFileAttributes:[NSDictionary dictionaryWithObject:fileType forKey:NSFileHFSTypeCode] atPath:fileString]; - - [[NSFileManager defaultManager] changeFileAttributes:[NSDictionary dictionaryWithObject:fileCreator forKey:NSFileHFSCreatorCode] atPath:fileString]; -} - --(void) changeSgmCreator:(char *) statename -{ - NSNumber *fileType = [NSNumber numberWithUnsignedLong:'sgmf']; - NSNumber *fileCreator = [NSNumber numberWithUnsignedLong:'vboy']; - - NSString * fileString = [[NSString alloc] initWithCString:statename]; - - [[NSFileManager defaultManager] changeFileAttributes:[NSDictionary dictionaryWithObject:fileType forKey:NSFileHFSTypeCode] atPath:fileString]; - - [[NSFileManager defaultManager] changeFileAttributes:[NSDictionary dictionaryWithObject:fileCreator forKey:NSFileHFSCreatorCode] atPath:fileString]; -} - --(void) selectBiosFile:(id)sender -{ - if(openBiosFile(biosFile)) - { - biosPath = [NSString stringWithCString:biosFile]; - [biosFilePath setStringValue:[biosPath lastPathComponent]]; - [biosPath retain]; - } -} - -/* Set the working directory to the .app's parent directory */ -- (void) setupWorkingDirectory:(BOOL)shouldChdir -{ - char parentdir[MAXPATHLEN]; - char *c; - - strncpy ( parentdir, gArgv[0], sizeof(parentdir) ); - c = (char*) parentdir; - - while (*c != '\0') /* go to end */ - c++; - - while (*c != '/') /* back up to parent */ - c--; - - *c++ = '\0'; /* cut off last part (binary name) */ - - if (shouldChdir) - { - assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ - assert ( chdir ("../../../") == 0 ); /* chdir to the .app's parent */ - } -} - -- (void) addCheatCBA -{ - int i; - char desc[10]; - for (i=0; i<6; i++) - { - if (code[i][0] != '\0') - cheatsAddCBACode(code[i], desc); - } -} - -- (void) addCheatGSA -{ - int i; - char desc[10]; - for (i=0; i<6; i++) - { - if (code[i][0] != '\0') - cheatsAddGSACode(code[i], desc, false); - } -} - -/* Called before applicationDidFinishLaunching, handles associated file opening */ -- (BOOL) application: (NSApplication *) SDLApplication openFile: (NSString *) filename -{ - if (filename) - { - strcpy(launchFile, [filename UTF8String]); - if (emulating) - { - runAgain = 1; - emulating = false; - } - return TRUE; - } - else - { - return FALSE; - } -} - -/* Called when the internal event loop has just started running */ -- (void) applicationDidFinishLaunching: (NSNotification *) note -{ - - gSDLMain = self; - - /* Set the working directory to the .app's parent directory */ - //[self loadConfig]; - [self setupWorkingDirectory:gFinderLaunch]; - - /* Hand off to main application code */ - emu_main(); -} - -@end - -@implementation CheatClass - --(void) readCheatCBA:(id)sender -{ - cheatCBA = 1; - cheatString = [NSString stringWithString:[cheatField stringValue]]; - [cheatString getCString:code[0]]; - cheatString = [NSString stringWithString:[cheatField2 stringValue]]; - [cheatString getCString:code[1]]; - cheatString = [NSString stringWithString:[cheatField3 stringValue]]; - [cheatString getCString:code[2]]; - cheatString = [NSString stringWithString:[cheatField4 stringValue]]; - [cheatString getCString:code[3]]; - cheatString = [NSString stringWithString:[cheatField5 stringValue]]; - [cheatString getCString:code[4]]; - cheatString = [NSString stringWithString:[cheatField6 stringValue]]; - [cheatString getCString:code[5]]; - [cheatWindow orderOut:self]; -} - --(void) readCheatGSA:(id)sender -{ - cheatGSA = 1; - cheatString = [NSString stringWithString:[cheatFieldGSA stringValue]]; - [cheatString getCString:code[0]]; - cheatString = [NSString stringWithString:[cheatFieldGSA2 stringValue]]; - [cheatString getCString:code[1]]; - cheatString = [NSString stringWithString:[cheatFieldGSA3 stringValue]]; - [cheatString getCString:code[2]]; - cheatString = [NSString stringWithString:[cheatFieldGSA4 stringValue]]; - [cheatString getCString:code[3]]; - cheatString = [NSString stringWithString:[cheatFieldGSA5 stringValue]]; - [cheatString getCString:code[4]]; - cheatString = [NSString stringWithString:[cheatFieldGSA6 stringValue]]; - [cheatString getCString:code[5]]; - [cheatWindowGSA orderOut:self]; -} - - -- (BOOL)validateMenuItem:(NSMenuItem*)anItem -{ -if (emulating) - return NO; -else - return YES; -} - --(void) openCheatCBA:(id)sender -{ - [cheatWindow makeKeyAndOrderFront:self]; -} - --(void) openCheatGSA:(id)sender -{ - [cheatWindowGSA makeKeyAndOrderFront:self]; -} - --(void) disableCheats -{ - [cheatMenuCBA setAction:NULL]; - [cheatMenuGSA setAction:NULL]; -} - --(void) enableCheats -{ - [cheatMenuCBA setAction:@selector(openCheatCBA:)]; - [cheatMenuGSA setAction:@selector(openCheatGSA:)]; -} - - -@end - -@implementation MenuClass - -- (void) freezeState:(id)sender -{ -sdlWriteState(0); -} - -- (void) defrostState:(id)sender -{ -sdlReadState(0); -} - -- (void) closeRom:(id)sender -{ - emulating = false; -} - -// This is completely crazy. sdlEmuReset is declared in MainClass.h, which -// is included in SDL.mm, but then it is defined in SDL.mm. Madness. -// Restructure this. --(void) resetEmulation:(id)sender -{ - sdlEmuReset(); -} - --(void) pauseEmulation:(id)sender -{ - sdlEmuPause(); -} - --(void) advanceFrame:(id)sender -{ - sdlAdvanceFrame(); -} - --(void) toggleFullscreen:(id) sender -{ - // Passthrough to the C function. - sdlToggleFullscreen(); -} - -- (BOOL)validateMenuItem:(NSMenuItem*)anItem -{ -if (emulating) - return YES; -else - return NO; -} -@end - -@implementation ConfigClass - -- (BOOL)validateMenuItem:(NSMenuItem*)anItem -{ -if (emulating) - return NO; -else - return YES; -} - -- (void) closePrefsNull:(id)sender -{ - [configWindow orderOut:self]; - SDL_Quit(); -} - -- (void) beginConfig:(id)sender -{ -int num = config_main(); -[self loadKeyValues]; -[configWindow makeKeyAndOrderFront:self]; -if (num) - { - NSRunInformationalAlertPanel(@"Notice!", @"Before you configure your joystick(s), please press the Calibrate button and move your joystick(s) in all directions. Then press any key to exit the calibration and proceed to assign all keys.\n",@"OK",NULL,NULL); - [calibrateButton setEnabled:YES]; - } -else - { - [calibrateButton setEnabled:NO]; - } -} - -- (void) endConfig:(id)sender -{ - [configWindow orderOut:self]; - [configWindow release]; - [prefs setInteger:[leftField intValue] forKey:@"Joy0_Left"]; - [prefs setInteger:[rightField intValue] forKey:@"Joy0_Right"]; - [prefs setInteger:[upField intValue] forKey:@"Joy0_Up"]; - [prefs setInteger:[downField intValue] forKey:@"Joy0_Down"]; - [prefs setInteger:[aField intValue] forKey:@"Joy0_A"]; - [prefs setInteger:[bField intValue] forKey:@"Joy0_B"]; - [prefs setInteger:[lField intValue] forKey:@"Joy0_L"]; - [prefs setInteger:[rField intValue] forKey:@"Joy0_R"]; - [prefs setInteger:[startField intValue] forKey:@"Joy0_Start"]; - [prefs setInteger:[selectField intValue] forKey:@"Joy0_Select"]; - [prefs setInteger:[speedField intValue] forKey:@"Joy0_Speed"]; - [prefs setInteger:[captureField intValue] forKey:@"Joy0_Capture"]; - [prefs synchronize]; - SDL_Quit(); -} - --(void)loadKeyValues -{ - [leftField setIntValue:[prefs integerForKey:@"Joy0_Left"]]; - [rightField setIntValue:[prefs integerForKey:@"Joy0_Right"]]; - [upField setIntValue:[prefs integerForKey:@"Joy0_Up"]]; - [downField setIntValue:[prefs integerForKey:@"Joy0_Down"]]; - [aField setIntValue:[prefs integerForKey:@"Joy0_A"]]; - [bField setIntValue:[prefs integerForKey:@"Joy0_B"]]; - [lField setIntValue:[prefs integerForKey:@"Joy0_L"]]; - [rField setIntValue:[prefs integerForKey:@"Joy0_R"]]; - [startField setIntValue:[prefs integerForKey:@"Joy0_Start"]]; - [selectField setIntValue:[prefs integerForKey:@"Joy0_Select"]]; - [speedField setIntValue:[prefs integerForKey:@"Joy0_Speed"]]; - [captureField setIntValue:[prefs integerForKey:@"Joy0_Capture"]]; -} --(void)defaultKeys:(id)sender -{ - [prefs setInteger:0x0114 forKey:@"Joy0_Left"]; - [prefs setInteger:0x0113 forKey:@"Joy0_Right"]; - [prefs setInteger:0x0111 forKey:@"Joy0_Up"]; - [prefs setInteger:0x0112 forKey:@"Joy0_Down"]; - [prefs setInteger:0x007a forKey:@"Joy0_A"]; - [prefs setInteger:0x0078 forKey:@"Joy0_B"]; - [prefs setInteger:0x0061 forKey:@"Joy0_L"]; - [prefs setInteger:0x0073 forKey:@"Joy0_R"]; - [prefs setInteger:0x000d forKey:@"Joy0_Start"]; - [prefs setInteger:0x0008 forKey:@"Joy0_Select"]; - [prefs setInteger:0x0020 forKey:@"Joy0_Speed"]; - [prefs setInteger:0x003d forKey:@"Joy0_Capture"]; - [self loadKeyValues]; -} - -- (void)calibrate:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - calibrate(); - } - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollUp:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[0] = poll(); - } - [upField setIntValue:keyConfig[0]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollDown:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[1] = poll(); - } - [downField setIntValue:keyConfig[1]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollLeft:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[2] = poll(); - } - [leftField setIntValue:keyConfig[2]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollRight:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[3] = poll(); - } - [rightField setIntValue:keyConfig[3]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollA:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[4] = poll(); - } - [aField setIntValue:keyConfig[4]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollB:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[5] = poll(); - } - [bField setIntValue:keyConfig[5]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollL:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[6] = poll(); - } - [lField setIntValue:keyConfig[6]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollR:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[7] = poll(); - } - [rField setIntValue:keyConfig[7]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollStart:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[8] = poll(); - } - [startField setIntValue:keyConfig[8]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollSelect:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[9] = poll(); - } - [selectField setIntValue:keyConfig[9]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollCapture:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[10] = poll(); - } - [captureField setIntValue:keyConfig[10]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -- (void)pollSpeed:(id)sender -{ - [OKButton setEnabled:NO]; - [CancelButton setEnabled:NO]; - [defaultButton setEnabled:NO]; - while (!stopPoll) { - keyConfig[11] = poll(); - } - [speedField setIntValue:keyConfig[11]]; - stopPoll = 0; - [OKButton setEnabled:YES]; - [CancelButton setEnabled:YES]; - [defaultButton setEnabled:YES]; -} - -@end - -#ifdef main -# undef main -#endif - -/* Main entry point to executable - should *not* be SDL_main! */ -int main (int argc, char **argv) -{ - - /* Copy the arguments into a global variable */ - int i; - - /* This is passed if we are launched by double-clicking */ - if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { - gArgc = 1; - gFinderLaunch = YES; - } else { - gArgc = argc; - gFinderLaunch = NO; - } - gArgv = (char**) malloc (sizeof(*gArgv) * (gArgc+1)); - assert (gArgv != NULL); - for (i = 0; i < gArgc; i++) - gArgv[i] = argv[i]; - gArgv[i] = NULL; - - [SDLApplication poseAsClass:[NSApplication class]]; - NSApplicationMain (argc, (const char**)argv); - return 0; -} - -void emu_main() -{ - int status = 0; - /* Hand off to main application code */ - while(!done) - { - status = SDL_main (gArgc, gArgv); - if (runAgain) - { - runAgain = 0; - launchFile[0] = '\0'; - continue; - } - else - { - break; - } - } - - /* We're done, thank you for playing */ - if (done) - exit(status); - else - NSApplicationMain(gArgc, (const char**)gArgv); -} diff --git a/src/macosx/RomInfo.h b/src/macosx/RomInfo.h deleted file mode 100644 index fff0a5f8..00000000 --- a/src/macosx/RomInfo.h +++ /dev/null @@ -1,234 +0,0 @@ -/////// Rom Info -////// Included by SDL.m - - -/*struct WinGBACompanyName { - char *code; - char *name; -}; - -static WinGBACompanyName winGBARomInfoCompanies[] = { - { "01", "Nintendo" }, - { "02", "Rocket Games" }, - { "08", "Capcom" }, - { "09", "Hot B Co." }, - { "0A", "Jaleco" }, - { "0B", "Coconuts" }, - { "0C", "Coconuts Japan/Elite" }, - { "0H", "Starfish" }, - { "0L", "Warashi Inc." }, - { "13", "Electronic Arts Japan" }, - { "18", "Hudson Soft Japan" }, - { "1A", "Yonoman/Japan Art Media" }, - { "1P", "Creatures Inc." }, - { "20", "Destination Software" }, - { "22", "VR 1 Japan" }, - { "25", "San-X" }, - { "28", "Kemco Japan" }, - { "29", "Seta" }, - { "2K", "NEC InterChannel" }, - { "2L", "Tam" }, - { "2M", "GU Inc/Gajin/Jordan" }, - { "2N", "Smilesoft" }, - { "2Q", "Mediakite/Systemsoft Alpha Corp" }, - { "36", "Codemasters" }, - { "37", "GAGA Communications" }, - { "38", "Laguna" }, - { "39", "Telstar Fun and Games" }, - { "41", "Ubi Soft Entertainment" }, - { "47", "Spectrum Holobyte" }, - { "49", "IREM" }, - { "4D", "Malibu Games" }, - { "4F", "U.S. Gold" }, - { "4J", "Fox Interactive" }, - { "4K", "Time Warner Interactive" }, - { "4Q", "Disney" }, - { "4S", "EA SPORTS/THQ" }, - { "4X", "GT Interactive" }, - { "4Y", "RARE" }, - { "4Z", "Crave Entertainment" }, - { "50", "Absolute Entertainment" }, - { "51", "Acclaim" }, - { "52", "Activision" }, - { "53", "American Sammy Corp." }, - { "54", "Take 2 Interactive" }, - { "55", "Hi Tech" }, - { "56", "LJN LTD." }, - { "58", "Mattel" }, - { "5A", "Red Orb Entertainment" }, - { "5C", "Taxan" }, - { "5D", "Midway" }, - { "5G", "Majesco Sales Inc" }, - { "5H", "3DO" }, - { "5K", "Hasbro" }, - { "5L", "NewKidCo" }, - { "5M", "Telegames" }, - { "5N", "Metro3D" }, - { "5P", "Vatical Entertainment" }, - { "5Q", "LEGO Media" }, - { "5S", "Xicat Interactive" }, - { "5T", "Cryo Interactive" }, - { "5X", "Microids" }, - { "5W", "BKN Ent./Red Storm Ent." }, - { "5Z", "Conspiracy Entertainment Corp." }, - { "60", "Titus Interactive Studios" }, - { "61", "Virgin Interactive" }, - { "64", "LucasArts Entertainment" }, - { "67", "Ocean" }, - { "69", "Electronic Arts" }, - { "6E", "Elite Systems Ltd." }, - { "6F", "Electro Brain" }, - { "6H", "Crawfish" }, - { "6L", "BAM! Entertainment" }, - { "6M", "Studio 3" }, - { "6Q", "Classified Games" }, - { "6S", "TDK Mediactive" }, - { "6U", "DreamCatcher" }, - { "6V", "JoWood Productions" }, - { "6W", "SEGA" }, - { "6Y", "LSP" }, - { "70", "Infogrames" }, - { "71", "Interplay" }, - { "72", "JVC Musical Industries Inc" }, - { "75", "SCI" }, - { "78", "THQ" }, - { "79", "Accolade" }, - { "7A", "Triffix Ent. Inc." }, - { "7C", "Microprose Software" }, - { "7D", "Universal Interactive Studios" }, - { "7F", "Kemco" }, - { "7G", "Rage Software" }, - { "7M", "Asmik Ace Entertainment Inc./AIA" }, - { "83", "LOZC/G.Amusements" }, - { "8B", "Bulletproof Software" }, - { "8C", "Vic Tokai Inc." }, - { "8J", "General Entertainment" }, - { "8N", "Success" }, - { "8P", "SEGA Japan" }, - { "91", "Chun Soft" }, - { "93", "BEC" }, - { "97", "Kaneko" }, - { "99", "Victor Interactive Software" }, - { "9B", "Tecmo" }, - { "9C", "Imagineer" }, - { "9H", "Bottom Up" }, - { "9N", "Marvelous Entertainment" }, - { "9P", "Keynet Inc." }, - { "9Q", "Hands-On Entertainment" }, - { "A0", "Telenet/Olympia" }, - { "A1", "Hori" }, - { "A4", "Konami" }, - { "A6", "Kawada" }, - { "A7", "Takara" }, - { "A9", "Technos Japan Corp." }, - { "AC", "Toei Animation" }, - { "AD", "Toho" }, - { "AF", "Namco" }, - { "AG", "Media Rings Corporation/Amedio/Playmates" }, - { "AH", "J-Wing" }, - { "AK", "KID" }, - { "AL", "MediaFactory" }, - { "B0", "Acclaim Japan" }, - { "B1", "Nexoft" }, - { "B2", "Bandai" }, - { "B4", "Enix" }, - { "B6", "HAL Laboratory" }, - { "B7", "SNK" }, - { "B9", "Pony Canyon" }, - { "BA", "Culture Brain" }, - { "BB", "Sunsoft" }, - { "BD", "Sony Imagesoft" }, - { "BF", "Sammy" }, - { "BG", "Magical" }, - { "BJ", "Compile" }, - { "BL", "MTO Inc." }, - { "BN", "Sunrise Interactive" }, - { "BP", "Global A Entertainment" }, - { "BQ", "Fuuki" }, - { "C0", "Taito" }, - { "C2", "Kemco" }, - { "C3", "Square Soft" }, - { "C5", "Data East" }, - { "C6", "Broderbund Japan" }, - { "C8", "Koei" }, - { "CA", "Ultra Games" }, - { "CB", "Vapinc/NTVIC" }, - { "CC", "Use Co.,Ltd." }, - { "CE", "FCI" }, - { "CF", "Angel" }, - { "CM", "Konami Computer Enterteinment Osaka" }, - { "D1", "Sofel" }, - { "D3", "Sigma Enterprises" }, - { "D4", "Ask Kodansa/Lenar" }, - { "D7", "Copya System" }, - { "D9", "Banpresto" }, - { "DA", "TOMY" }, - { "DD", "NCS" }, - { "DF", "Altron Corporation" }, - { "E2", "Lad/Shogakukan.Nas/Yutaka" }, - { "E3", "Varie" }, - { "E5", "Epoch" }, - { "E7", "Athena" }, - { "E8", "Asmik Ace Entertainment Inc." }, - { "E9", "Natsume" }, - { "EA", "King Records" }, - { "EB", "Atlus" }, - { "EC", "Epic/Sony/Ocean" }, - { "EE", "IGS" }, - { "EL", "Vaill" }, - { "EM", "Konami Computer Entertainment Tokyo" }, - { "EN", "Alphadream Corporation" }, - { "F0", "A Wave" }, - { "HY", "Sachen" }, - { NULL, NULL } -}; - -static char *winGBARomInfoFindMakerCode(char *code) -{ - int i = 0; - while(winGBARomInfoCompanies[i].code) { - if(!strcmp(winGBARomInfoCompanies[i].code, code)) - return winGBARomInfoCompanies[i].name; - i++; - } - return 0; -}*/ - -if (showInfo) - { - char buffer[13]; - char maker[100]; - strncpy(buffer, (const char *)&rom[0xa0], 12); - buffer[12] = 0; - NSString * name = [[NSString alloc] initWithCString:buffer]; - [gSDLMain romInfoName:name]; - - strncpy(buffer, (const char *)&rom[0xac], 4); - buffer[4] = 0; - NSString * gameCode = [[NSString alloc] initWithCString:buffer]; - [gSDLMain romInfoGameCode:gameCode]; - - strncpy(buffer, (const char *)&rom[0xb0],2); - buffer[2] = 0; - NSString * makerCode = [[NSString alloc] initWithCString:buffer]; - [gSDLMain romInfoMakerCode:makerCode]; - - strcpy(maker, winGBARomInfoFindMakerCode(buffer)); - NSString * makerString = [[NSString alloc] initWithCString:maker]; - [gSDLMain romInfoMaker:makerString]; - - sprintf(buffer, "%02x", rom[0xb3]); - NSString * unitCode = [[NSString alloc] initWithCString:buffer]; - [gSDLMain romInfoUnitCode:unitCode]; - - sprintf(buffer, "%02x", rom[0xb4]); - NSString * deviceType = [[NSString alloc] initWithCString:buffer]; - [gSDLMain romInfoDeviceType:deviceType]; - - sprintf(buffer, "%02x", rom[0xbc]); - NSString * version = [[NSString alloc] initWithCString:buffer]; - [gSDLMain romInfoVersion:version]; - } - - -/////// diff --git a/src/macosx/SDL.mm b/src/macosx/SDL.mm deleted file mode 100644 index 59111b30..00000000 --- a/src/macosx/SDL.mm +++ /dev/null @@ -1,3114 +0,0 @@ -// VisualBoyAdvance - Nintendo Gameboy/GameboyAdvance (TM) emulator. -// Copyright (C) 1999-2003 Forgotten -// Copyright (C) 2005-2006 Forgotten and the VBA development team - -// This program is free software; you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation; either version 2, or(at your option) -// any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program; if not, write to the Free Software Foundation, -// Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -#include -#include -#include -#include -#include -#include - -#include "../AutoBuild.h" - -#include "SDL.h" -#include "../GBA.h" -#include "../agbprint.h" -#include "../Flash.h" -#include "../Port.h"a -#include "../RTC.h" -#include "../Sound.h" -#include "../Text.h" -#include "../unzip.h" -#include "../Util.h" -#include "../gb/GB.h" -#include "../gb/gbGlobals.h" -#include "openfile.h" -#include "MainClass.h" - -#ifndef _WIN32 -# include -# define GETCWD getcwd -#else // _WIN32 -# include -# define GETCWD _getcwd -#endif // _WIN32 - -#ifndef __GNUC__ -# define HAVE_DECL_GETOPT 0 -# define __STDC__ 1 -# include "../getopt.h" -#else // ! __GNUC__ -# define HAVE_DECL_GETOPT 1 -# include "getopt.h" -#endif // ! __GNUC__ - -#ifdef MMX -extern "C" bool cpu_mmx; -#endif -extern bool soundEcho; -extern bool soundLowPass; -extern bool soundReverse; -extern int Init_2xSaI(u32); -extern void _2xSaI(u8*,u32,u8*,u8*,u32,int,int); -extern void _2xSaI32(u8*,u32,u8*,u8*,u32,int,int); -extern void Super2xSaI(u8*,u32,u8*,u8*,u32,int,int); -extern void Super2xSaI32(u8*,u32,u8*,u8*,u32,int,int); -extern void SuperEagle(u8*,u32,u8*,u8*,u32,int,int); -extern void SuperEagle32(u8*,u32,u8*,u8*,u32,int,int); -extern void Pixelate(u8*,u32,u8*,u8*,u32,int,int); -extern void Pixelate32(u8*,u32,u8*,u8*,u32,int,int); -extern void MotionBlur(u8*,u32,u8*,u8*,u32,int,int); -extern void MotionBlur32(u8*,u32,u8*,u8*,u32,int,int); -extern void AdMame2x(u8*,u32,u8*,u8*,u32,int,int); -extern void AdMame2x32(u8*,u32,u8*,u8*,u32,int,int); -extern void Simple2x16(u8*,u32,u8*,u8*,u32,int,int); -extern void Simple2x32(u8*,u32,u8*,u8*,u32,int,int); -extern void Bilinear(u8*,u32,u8*,u8*,u32,int,int); -extern void Bilinear32(u8*,u32,u8*,u8*,u32,int,int); -extern void BilinearPlus(u8*,u32,u8*,u8*,u32,int,int); -extern void BilinearPlus32(u8*,u32,u8*,u8*,u32,int,int); -extern void Scanlines(u8*,u32,u8*,u8*,u32,int,int); -extern void Scanlines32(u8*,u32,u8*,u8*,u32,int,int); -extern void ScanlinesTV(u8*,u32,u8*,u8*,u32,int,int); -extern void ScanlinesTV32(u8*,u32,u8*,u8*,u32,int,int); -extern void hq2x(u8*,u32,u8*,u8*,u32,int,int); -extern void hq2x32(u8*,u32,u8*,u8*,u32,int,int); -extern void lq2x(u8*,u32,u8*,u8*,u32,int,int); -extern void lq2x32(u8*,u32,u8*,u8*,u32,int,int); - -extern void SmartIB(u8*,u32,int,int); -extern void SmartIB32(u8*,u32,int,int); -extern void MotionBlurIB(u8*,u32,int,int); -extern void MotionBlurIB32(u8*,u32,int,int); - -void Init_Overlay(SDL_Surface *surface, int overlaytype); -void Quit_Overlay(void); -void Draw_Overlay(SDL_Surface *surface, int size); - -extern void remoteInit(); -extern void remoteCleanUp(); -extern void remoteStubMain(); -extern void remoteStubSignal(int,int); -extern void remoteOutput(char *, u32); -extern void remoteSetProtocol(int); -extern void remoteSetPort(int); -extern void debuggerOutput(const char *, u32); - -extern void CPUUpdateRenderBuffers(bool); -extern int gbHardware; - -struct EmulatedSystem emulator = { - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - NULL, - false, - 0 -}; - -#define prefs [NSUserDefaults standardUserDefaults] - -SDL_Surface *surface = NULL; -SDL_Overlay *overlay = NULL; -SDL_Rect overlay_rect; - -int systemSpeed = 0; -int systemRedShift = 0; -int systemBlueShift = 0; -int systemGreenShift = 0; -int systemColorDepth = 0; -int systemDebug = 0; -int systemVerbose = 0; -int systemFrameSkip = 0; -int systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; - -int srcPitch = 0; -int srcWidth = 0; -int srcHeight = 0; -int destWidth = 0; -int destHeight = 0; - -int sensorX = 2047; -int sensorY = 2047; - -int filter = 0; -u8 *delta = NULL; - -int sdlPrintUsage = 0; -int disableMMX = 0; - -int cartridgeType = 3; -int sizeOption = 0; -int captureFormat = 0; - -int pauseWhenInactive = 0; -int active = 1; -int emulating = 0; -int RGB_LOW_BITS_MASK=0x821; -u32 systemColorMap32[0x10000]; -u16 systemColorMap16[0x10000]; -u16 systemGbPalette[24]; -void (*filterFunction)(u8*,u32,u8*,u8*,u32,int,int) = NULL; -void (*ifbFunction)(u8*,u32,int,int) = NULL; -int ifbType = 0; -#define VBA_MAX_PATH_LEN 2048 -char filename[VBA_MAX_PATH_LEN]; -char ipsname[VBA_MAX_PATH_LEN]; -char biosFileName[VBA_MAX_PATH_LEN]; -char captureDir[VBA_MAX_PATH_LEN]; -char saveDir[VBA_MAX_PATH_LEN]; -char batteryDir[VBA_MAX_PATH_LEN]; - -static char *rewindMemory = NULL; -static int rewindPos = 0; -static int rewindTopPos = 0; -static int rewindCounter = 0; -static int rewindCount = 0; -static bool rewindSaveNeeded = false; -static int rewindTimer = 0; - -bool (*emuWriteState)(const char *) = NULL; -bool (*emuWriteMemState)(char *, int) = NULL; -bool (*emuReadState)(const char *) = NULL; -bool (*emuReadMemState)(char *, int) = NULL; -bool (*emuWriteBattery)(const char *) = NULL; -bool (*emuReadBattery)(const char *) = NULL; -void (*emuReset)() = NULL; -void (*emuCleanUp)() = NULL; -bool (*emuWritePNG)(const char *) = NULL; -bool (*emuWriteBMP)(const char *) = NULL; -void (*emuMain)(int) = NULL; -void (*emuUpdateCPSR)() = NULL; -int emuCount = 0; -int done = 0; -extern char launchFile[1024]; -extern void CPUUpdateCPSR(); -extern int runAgain, cheatCBA, cheatGSA; - -#define REWIND_SIZE 400000 -#define SYSMSG_BUFFER_SIZE 1024 - -#define _stricmp strcasecmp - -bool sdlButtons[4][12] = { - { false, false, false, false, false, false, - false, false, false, false, false, false }, - { false, false, false, false, false, false, - false, false, false, false, false, false }, - { false, false, false, false, false, false, - false, false, false, false, false, false }, - { false, false, false, false, false, false, - false, false, false, false, false, false } -}; - -bool sdlMotionButtons[4] = { false, false, false, false }; - -int sdlNumDevices = 0; -SDL_Joystick **sdlDevices = NULL; - -bool wasPaused = false; -int autoFrameSkip = 0; -int frameskipadjust = 0; -int showRenderedFrames = 0; -int renderedFrames = 0; - -int throttle = 0; -u32 throttleLastTime = 0; -u32 autoFrameSkipLastTime = 0; - -int showSpeed = 1; -int showSpeedTransparent = 1; -bool disableStatusMessages = false; -bool paused = false; -bool pauseNextFrame = false; -bool debugger = false; -bool debuggerStub = false; -int fullscreen = 0; -bool systemSoundOn = false; -bool yuv = false; -int yuvType = 0; -bool removeIntros = false; -int sdlFlashSize = 0; -int sdlAutoIPS = 1; -int sdlRtcEnable = 0; -int sdlAgbPrint = 0; -int sdlMirroringEnable = 0; - -int sdlDefaultJoypad = 0; - -extern void debuggerSignal(int,int); -extern void debuggerMain(); - -void (*dbgMain)() = debuggerMain; -void (*dbgSignal)(int,int) = debuggerSignal; -void (*dbgOutput)(const char *, u32) = debuggerOutput; - -int mouseCounter = 0; -int autoFire = 0; -bool autoFireToggle = false; - -bool screenMessage = false; -char screenMessageBuffer[21]; -u32 screenMessageTime = 0; - -// Patch #1382692 by deathpudding. -SDL_sem *sdlBufferLock = NULL; -SDL_sem *sdlBufferFull = NULL; -SDL_sem *sdlBufferEmpty = NULL; -u8 sdlBuffer[4096]; -int sdlSoundLen = 0; -BOOL soundInShutdown = NO; - -char *arg0; - -#ifndef C_CORE -u8 sdlStretcher[16384]; -int sdlStretcherPos; -#else -void (*sdlStretcher)(u8 *, u8*) = NULL; -#endif - -enum { - KEY_LEFT, KEY_RIGHT, - KEY_UP, KEY_DOWN, - KEY_BUTTON_A, KEY_BUTTON_B, - KEY_BUTTON_START, KEY_BUTTON_SELECT, - KEY_BUTTON_L, KEY_BUTTON_R, - KEY_BUTTON_SPEED, KEY_BUTTON_CAPTURE -}; - -u16 joypad[4][12] = { - { SDLK_LEFT, SDLK_RIGHT, - SDLK_UP, SDLK_DOWN, - SDLK_z, SDLK_x, - SDLK_RETURN,SDLK_BACKSPACE, - SDLK_a, SDLK_s, - SDLK_SPACE, SDLK_F12 - }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } -}; - -u16 defaultJoypad[12] = { - SDLK_LEFT, SDLK_RIGHT, - SDLK_UP, SDLK_DOWN, - SDLK_z, SDLK_x, - SDLK_RETURN,SDLK_BACKSPACE, - SDLK_a, SDLK_s, - SDLK_SPACE, SDLK_F12 -}; - -u16 motion[4] = { - SDLK_KP4, SDLK_KP6, SDLK_KP8, SDLK_KP2 -}; - -u16 defaultMotion[4] = { - SDLK_KP4, SDLK_KP6, SDLK_KP8, SDLK_KP2 -}; - -struct option sdlOptions[] = { - { "agb-print", no_argument, &sdlAgbPrint, 1 }, - { "auto-frameskip", no_argument, &autoFrameSkip, 1 }, - { "bios", required_argument, 0, 'b' }, - { "config", required_argument, 0, 'c' }, - { "debug", no_argument, 0, 'd' }, - { "filter", required_argument, 0, 'f' }, - { "filter-normal", no_argument, &filter, 0 }, - { "filter-tv-mode", no_argument, &filter, 1 }, - { "filter-2xsai", no_argument, &filter, 2 }, - { "filter-super-2xsai", no_argument, &filter, 3 }, - { "filter-super-eagle", no_argument, &filter, 4 }, - { "filter-pixelate", no_argument, &filter, 5 }, - { "filter-motion-blur", no_argument, &filter, 6 }, - { "filter-advmame", no_argument, &filter, 7 }, - { "filter-simple2x", no_argument, &filter, 8 }, - { "filter-bilinear", no_argument, &filter, 9 }, - { "filter-bilinear+", no_argument, &filter, 10 }, - { "filter-scanlines", no_argument, &filter, 11 }, - { "filter-hq2x", no_argument, &filter, 12 }, - { "filter-lq2x", no_argument, &filter, 13 }, - { "flash-size", required_argument, 0, 'S' }, - { "flash-64k", no_argument, &sdlFlashSize, 0 }, - { "flash-128k", no_argument, &sdlFlashSize, 1 }, - { "frameskip", required_argument, 0, 's' }, - { "fullscreen", no_argument, &fullscreen, 1 }, - { "gdb", required_argument, 0, 'G' }, - { "help", no_argument, &sdlPrintUsage, 1 }, - { "ifb-none", no_argument, &ifbType, 0 }, - { "ifb-motion-blur", no_argument, &ifbType, 1 }, - { "ifb-smart", no_argument, &ifbType, 2 }, - { "ips", required_argument, 0, 'i' }, - { "no-agb-print", no_argument, &sdlAgbPrint, 0 }, - { "no-auto-frameskip", no_argument, &autoFrameSkip, 0 }, - { "no-debug", no_argument, 0, 'N' }, - { "no-ips", no_argument, &sdlAutoIPS, 0 }, - { "no-mmx", no_argument, &disableMMX, 1 }, - { "no-pause-when-inactive", no_argument, &pauseWhenInactive, 0 }, - { "no-rtc", no_argument, &sdlRtcEnable, 0 }, - { "no-show-speed", no_argument, &showSpeed, 0 }, - { "no-throttle", no_argument, &throttle, 0 }, - { "pause-when-inactive", no_argument, &pauseWhenInactive, 1 }, - { "profile", optional_argument, 0, 'p' }, - { "rtc", no_argument, &sdlRtcEnable, 1 }, - { "save-type", required_argument, 0, 't' }, - { "save-auto", no_argument, &cpuSaveType, 0 }, - { "save-eeprom", no_argument, &cpuSaveType, 1 }, - { "save-sram", no_argument, &cpuSaveType, 2 }, - { "save-flash", no_argument, &cpuSaveType, 3 }, - { "save-sensor", no_argument, &cpuSaveType, 4 }, - { "save-none", no_argument, &cpuSaveType, 5 }, - { "show-speed-normal", no_argument, &showSpeed, 1 }, - { "show-speed-detailed", no_argument, &showSpeed, 2 }, - { "throttle", required_argument, 0, 'T' }, - { "verbose", required_argument, 0, 'v' }, - { "video-1x", no_argument, &sizeOption, 0 }, - { "video-2x", no_argument, &sizeOption, 1 }, - { "video-3x", no_argument, &sizeOption, 2 }, - { "video-4x", no_argument, &sizeOption, 3 }, - { "yuv", required_argument, 0, 'Y' }, - { NULL, no_argument, NULL, 0 } -}; - -extern bool CPUIsGBAImage(char *); -extern bool gbIsGameboyRom(char *); - -#ifndef C_CORE -#define SDL_LONG(val) \ -*((u32 *)&sdlStretcher[sdlStretcherPos]) = val;\ -sdlStretcherPos+=4; - -#define SDL_AND_EAX(val) \ -sdlStretcher[sdlStretcherPos++] = 0x25;\ -SDL_LONG(val); - -#define SDL_AND_EBX(val) \ -sdlStretcher[sdlStretcherPos++] = 0x81;\ -sdlStretcher[sdlStretcherPos++] = 0xe3;\ -SDL_LONG(val); - -#define SDL_OR_EAX_EBX \ -sdlStretcher[sdlStretcherPos++] = 0x09;\ -sdlStretcher[sdlStretcherPos++] = 0xd8; - -#define SDL_LOADL_EBX \ -sdlStretcher[sdlStretcherPos++] = 0x8b;\ -sdlStretcher[sdlStretcherPos++] = 0x1f; - -#define SDL_LOADW \ -sdlStretcher[sdlStretcherPos++] = 0x66;\ -sdlStretcher[sdlStretcherPos++] = 0x8b;\ -sdlStretcher[sdlStretcherPos++] = 0x06;\ -sdlStretcher[sdlStretcherPos++] = 0x83;\ -sdlStretcher[sdlStretcherPos++] = 0xc6;\ -sdlStretcher[sdlStretcherPos++] = 0x02; - -#define SDL_LOADL \ -sdlStretcher[sdlStretcherPos++] = 0x8b;\ -sdlStretcher[sdlStretcherPos++] = 0x06;\ -sdlStretcher[sdlStretcherPos++] = 0x83;\ -sdlStretcher[sdlStretcherPos++] = 0xc6;\ -sdlStretcher[sdlStretcherPos++] = 0x04; - -#define SDL_LOADL2 \ -sdlStretcher[sdlStretcherPos++] = 0x8b;\ -sdlStretcher[sdlStretcherPos++] = 0x06;\ -sdlStretcher[sdlStretcherPos++] = 0x83;\ -sdlStretcher[sdlStretcherPos++] = 0xc6;\ -sdlStretcher[sdlStretcherPos++] = 0x03; - -#define SDL_STOREW \ -sdlStretcher[sdlStretcherPos++] = 0x66;\ -sdlStretcher[sdlStretcherPos++] = 0x89;\ -sdlStretcher[sdlStretcherPos++] = 0x07;\ -sdlStretcher[sdlStretcherPos++] = 0x83;\ -sdlStretcher[sdlStretcherPos++] = 0xc7;\ -sdlStretcher[sdlStretcherPos++] = 0x02; - -#define SDL_STOREL \ -sdlStretcher[sdlStretcherPos++] = 0x89;\ -sdlStretcher[sdlStretcherPos++] = 0x07;\ -sdlStretcher[sdlStretcherPos++] = 0x83;\ -sdlStretcher[sdlStretcherPos++] = 0xc7;\ -sdlStretcher[sdlStretcherPos++] = 0x04; - -#define SDL_STOREL2 \ -sdlStretcher[sdlStretcherPos++] = 0x89;\ -sdlStretcher[sdlStretcherPos++] = 0x07;\ -sdlStretcher[sdlStretcherPos++] = 0x83;\ -sdlStretcher[sdlStretcherPos++] = 0xc7;\ -sdlStretcher[sdlStretcherPos++] = 0x03; - -#define SDL_RET \ -sdlStretcher[sdlStretcherPos++] = 0xc3; - -#define SDL_PUSH_EAX \ -sdlStretcher[sdlStretcherPos++] = 0x50; - -#define SDL_PUSH_ECX \ -sdlStretcher[sdlStretcherPos++] = 0x51; - -#define SDL_PUSH_EBX \ -sdlStretcher[sdlStretcherPos++] = 0x53; - -#define SDL_PUSH_ESI \ -sdlStretcher[sdlStretcherPos++] = 0x56; - -#define SDL_PUSH_EDI \ -sdlStretcher[sdlStretcherPos++] = 0x57; - -#define SDL_POP_EAX \ -sdlStretcher[sdlStretcherPos++] = 0x58; - -#define SDL_POP_ECX \ -sdlStretcher[sdlStretcherPos++] = 0x59; - -#define SDL_POP_EBX \ -sdlStretcher[sdlStretcherPos++] = 0x5b; - -#define SDL_POP_ESI \ -sdlStretcher[sdlStretcherPos++] = 0x5e; - -#define SDL_POP_EDI \ -sdlStretcher[sdlStretcherPos++] = 0x5f; - -#define SDL_MOV_ECX(val) \ -sdlStretcher[sdlStretcherPos++] = 0xb9;\ -SDL_LONG(val); - -#define SDL_REP_MOVSB \ -sdlStretcher[sdlStretcherPos++] = 0xf3;\ -sdlStretcher[sdlStretcherPos++] = 0xa4; - -#define SDL_REP_MOVSW \ -sdlStretcher[sdlStretcherPos++] = 0xf3;\ -sdlStretcher[sdlStretcherPos++] = 0x66;\ -sdlStretcher[sdlStretcherPos++] = 0xa5; - -#define SDL_REP_MOVSL \ -sdlStretcher[sdlStretcherPos++] = 0xf3;\ -sdlStretcher[sdlStretcherPos++] = 0xa5; - -void sdlMakeStretcher(int width) -{ - sdlStretcherPos = 0; - switch(systemColorDepth) { - case 16: - if(sizeOption) { - SDL_PUSH_EAX; - SDL_PUSH_ESI; - SDL_PUSH_EDI; - for(int i = 0; i < width; i++) { - SDL_LOADW; - SDL_STOREW; - SDL_STOREW; - if(sizeOption > 1) { - SDL_STOREW; - } - if(sizeOption > 2) { - SDL_STOREW; - } - } - SDL_POP_EDI; - SDL_POP_ESI; - SDL_POP_EAX; - SDL_RET; - } else { - SDL_PUSH_ESI; - SDL_PUSH_EDI; - SDL_PUSH_ECX; - SDL_MOV_ECX(width); - SDL_REP_MOVSW; - SDL_POP_ECX; - SDL_POP_EDI; - SDL_POP_ESI; - SDL_RET; - } - break; - case 24: - if(sizeOption) { - SDL_PUSH_EAX; - SDL_PUSH_ESI; - SDL_PUSH_EDI; - int w = width - 1; - for(int i = 0; i < w; i++) { - SDL_LOADL2; - SDL_STOREL2; - SDL_STOREL2; - if(sizeOption > 1) { - SDL_STOREL2; - } - if(sizeOption > 2) { - SDL_STOREL2; - } - } - // need to write the last one - SDL_LOADL2; - SDL_STOREL2; - if(sizeOption > 1) { - SDL_STOREL2; - } - if(sizeOption > 2) { - SDL_STOREL2; - } - SDL_AND_EAX(0x00ffffff); - SDL_PUSH_EBX; - SDL_LOADL_EBX; - SDL_AND_EBX(0xff000000); - SDL_OR_EAX_EBX; - SDL_POP_EBX; - SDL_STOREL2; - SDL_POP_EDI; - SDL_POP_ESI; - SDL_POP_EAX; - SDL_RET; - } else { - SDL_PUSH_ESI; - SDL_PUSH_EDI; - SDL_PUSH_ECX; - SDL_MOV_ECX(3*width); - SDL_REP_MOVSB; - SDL_POP_ECX; - SDL_POP_EDI; - SDL_POP_ESI; - SDL_RET; - } - break; - case 32: - if(sizeOption) { - SDL_PUSH_EAX; - SDL_PUSH_ESI; - SDL_PUSH_EDI; - for(int i = 0; i < width; i++) { - SDL_LOADL; - SDL_STOREL; - SDL_STOREL; - if(sizeOption > 1) { - SDL_STOREL; - } - if(sizeOption > 2) { - SDL_STOREL; - } - } - SDL_POP_EDI; - SDL_POP_ESI; - SDL_POP_EAX; - SDL_RET; - } else { - SDL_PUSH_ESI; - SDL_PUSH_EDI; - SDL_PUSH_ECX; - SDL_MOV_ECX(width); - SDL_REP_MOVSL; - SDL_POP_ECX; - SDL_POP_EDI; - SDL_POP_ESI; - SDL_RET; - } - break; - } -} - -#ifdef _MSC_VER -#define SDL_CALL_STRETCHER \ -{\ -__asm mov eax, stretcher\ -__asm mov edi, dest\ -__asm mov esi, src\ -__asm call eax\ -} -#else -#define SDL_CALL_STRETCHER \ -asm volatile("call *%%eax"::"a" (stretcher),"S" (src),"D" (dest)) -#endif -#else -#define SDL_CALL_STRETCHER \ -sdlStretcher(src, dest) - -void sdlStretch16x1(u8 *src, u8 *dest) -{ - u16 *s = (u16 *)src; - u16 *d = (u16 *)dest; - for(int i = 0; i < srcWidth; i++) - *d++ = *s++; -} - -void sdlStretch16x2(u8 *src, u8 *dest) -{ - u16 *s = (u16 *)src; - u16 *d = (u16 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *s++; - } -} - -void sdlStretch16x3(u8 *src, u8 *dest) -{ - u16 *s = (u16 *)src; - u16 *d = (u16 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *s; - *d++ = *s++; - } -} - -void sdlStretch16x4(u8 *src, u8 *dest) -{ - u16 *s = (u16 *)src; - u16 *d = (u16 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *s; - *d++ = *s; - *d++ = *s++; - } -} - -void (*sdlStretcher16[4])(u8 *, u8 *) = { - sdlStretch16x1, - sdlStretch16x2, - sdlStretch16x3, - sdlStretch16x4 -}; - -void sdlStretch32x1(u8 *src, u8 *dest) -{ - u32 *s = (u32 *)src; - u32 *d = (u32 *)dest; - for(int i = 0; i < srcWidth; i++) - *d++ = *s++; -} - -void sdlStretch32x2(u8 *src, u8 *dest) -{ - u32 *s = (u32 *)src; - u32 *d = (u32 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *s++; - } -} - -void sdlStretch32x3(u8 *src, u8 *dest) -{ - u32 *s = (u32 *)src; - u32 *d = (u32 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *s; - *d++ = *s++; - } -} - -void sdlStretch32x4(u8 *src, u8 *dest) -{ - u32 *s = (u32 *)src; - u32 *d = (u32 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *s; - *d++ = *s; - *d++ = *s++; - } -} - -void (*sdlStretcher32[4])(u8 *, u8 *) = { - sdlStretch32x1, - sdlStretch32x2, - sdlStretch32x3, - sdlStretch32x4 -}; - -void sdlStretch24x1(u8 *src, u8 *dest) -{ - u8 *s = src; - u8 *d = dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s++; - *d++ = *s++; - *d++ = *s++; - } -} - -void sdlStretch24x2(u8 *src, u8 *dest) -{ - u8 *s = (u8 *)src; - u8 *d = (u8 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - } -} - -void sdlStretch24x3(u8 *src, u8 *dest) -{ - u8 *s = (u8 *)src; - u8 *d = (u8 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - } -} - -void sdlStretch24x4(u8 *src, u8 *dest) -{ - u8 *s = (u8 *)src; - u8 *d = (u8 *)dest; - for(int i = 0; i < srcWidth; i++) { - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - *d++ = *s; - *d++ = *(s+1); - *d++ = *(s+2); - s += 3; - } -} - -void (*sdlStretcher24[4])(u8 *, u8 *) = { - sdlStretch24x1, - sdlStretch24x2, - sdlStretch24x3, - sdlStretch24x4 -}; - -#endif - -u32 sdlFromHex(char *s) -{ - u32 value; - sscanf(s, "%x", &value); - return value; -} - -#ifdef __MSC__ -#define stat _stat -#define S_IFDIR _S_IFDIR -#endif - -void sdlCheckDirectory(char *dir) -{ - struct stat buf; - - int len = strlen(dir); - - char *p = dir + len - 1; - - if(*p == '/' || - *p == '\\') - *p = 0; - - if(stat(dir, &buf) == 0) { - if(!(buf.st_mode & S_IFDIR)) { - fprintf(stderr, "Error: %s is not a directory\n", dir); - dir[0] = 0; - } - } else { - fprintf(stderr, "Error: %s does not exist\n", dir); - dir[0] = 0; - } -} - -char *sdlGetFilename(char *name) -{ - static char filebuffer[2048]; - - int len = strlen(name); - - char *p = name + len - 1; - - while(true) { - if(*p == '/' || - *p == '\\') { - p++; - break; - } - len--; - p--; - if(len == 0) - break; - } - - if(len == 0) - strcpy(filebuffer, name); - else - strcpy(filebuffer, p); - return filebuffer; -} - -NSString *applicationSupportFolder() { - NSArray *paths = - NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, - NSUserDomainMask, YES); - NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex: - 0] : NSTemporaryDirectory(); - return [basePath - stringByAppendingPathComponent: [[NSBundle mainBundle] objectForInfoDictionaryKey: - @"CFBundleExecutable"]]; -} - -void sdlReadPreferences(FILE * f) -{ - joypad[0][KEY_LEFT] = [prefs integerForKey:@"Joy0_Left"]; - joypad[0][KEY_RIGHT] = [prefs integerForKey:@"Joy0_Right"]; - joypad[0][KEY_UP] = [prefs integerForKey:@"Joy0_Up"]; - joypad[0][KEY_DOWN] = [prefs integerForKey:@"Joy0_Down"]; - joypad[0][KEY_BUTTON_A] = [prefs integerForKey:@"Joy0_A"]; - joypad[0][KEY_BUTTON_B] = [prefs integerForKey:@"Joy0_B"]; - joypad[0][KEY_BUTTON_L] = [prefs integerForKey:@"Joy0_L"]; - joypad[0][KEY_BUTTON_R] = [prefs integerForKey:@"Joy0_R"]; - joypad[0][KEY_BUTTON_START] = [prefs integerForKey:@"Joy0_Start"]; - joypad[0][KEY_BUTTON_SELECT] = [prefs integerForKey:@"Joy0_Select"]; - joypad[0][KEY_BUTTON_SPEED] = [prefs integerForKey:@"Joy0_Speed"]; - joypad[0][KEY_BUTTON_CAPTURE] = [prefs integerForKey:@"Joy0_Capture"]; - //motion[KEY_LEFT] = [prefs integerForKey:@"Motion_Left"]; - //motion[KEY_RIGHT] = [prefs integerForKey:@"Motion_Right"]; - //motion[KEY_UP] = [prefs integerForKey:@"Motion_Up"]; - //motion[KEY_DOWN] = [prefs integerForKey:@"Motion_Down"]; - frameSkip = [prefs integerForKey:@"frameskip"]; - if(frameSkip < 0 || frameSkip > 9) - frameSkip = 2; - gbFrameSkip = [prefs integerForKey:@"gbFrameskip"]; - if(gbFrameSkip < 0 || gbFrameSkip > 9) - gbFrameSkip = 0; - sizeOption = [prefs integerForKey:@"sizeOption"]; - if(sizeOption < 0 || sizeOption > 3) - sizeOption = 0; - fullscreen = [prefs integerForKey:@"fullscreen"]; - useBios = [prefs integerForKey:@"useBios"]; - skipBios = [prefs integerForKey:@"skipBios"]; - NSString * bios = [prefs stringForKey:@"biosFile"]; - [bios getCString:biosFileName]; - filter = [prefs integerForKey:@"filter"]; - if(filter < 0 || filter > 13) - filter = 0; - gbBorderOn = [prefs integerForKey:@"gbBorderOn"]; - gbBorderAutomatic = [prefs integerForKey:@"gbBorderAutomatic"]; - gbColorOption = [prefs integerForKey:@"colorOption"]; - - // Set up our application support directories. Some people don't like this, and prefer - // the app to keep the folders near the app itself. Those people are wrong. - NSFileManager *fileManager = [NSFileManager defaultManager]; - NSString *appSupportFolder = applicationSupportFolder(); - - if (NO == [fileManager fileExistsAtPath: appSupportFolder]) { - [fileManager createDirectoryAtPath: appSupportFolder attributes:nil]; - } - - NSString *capture = [NSString stringWithFormat:@"%@/%@", appSupportFolder, @"Screenshots"]; - if (NO == [fileManager fileExistsAtPath: capture]) { - [fileManager createDirectoryAtPath: capture attributes: nil]; - } - [capture getCString:captureDir maxLength:(VBA_MAX_PATH_LEN - 1) encoding:NSUTF8StringEncoding]; - NSString *save = [NSString stringWithFormat:@"%@/%@", appSupportFolder, @"Save States"]; - if (NO == [fileManager fileExistsAtPath: save]) { - [fileManager createDirectoryAtPath: save attributes: nil]; - } - [save getCString:saveDir maxLength:(VBA_MAX_PATH_LEN - 1) encoding:NSUTF8StringEncoding]; - NSString *battery = [NSString stringWithFormat:@"%@/%@", appSupportFolder, @"Battery Saves"]; - if (NO == [fileManager fileExistsAtPath: battery]) { - [fileManager createDirectoryAtPath: battery attributes: nil]; - } - [battery getCString:batteryDir maxLength:(VBA_MAX_PATH_LEN - 1) encoding:NSUTF8StringEncoding]; - soundQuality = [prefs integerForKey:@"soundQuality"]; - switch(soundQuality) { - case 1: - case 2: - case 4: - break; - default: - NSLog(@"Unknown sound quality %d. Defaulting to 22Khz\n", - soundQuality); - soundQuality = 2; - break; - } - soundOffFlag = [prefs integerForKey:@"soundOff"]; - systemSoundOn = !soundOffFlag; - soundEcho = [prefs integerForKey:@"soundEcho"]; - soundLowPass = [prefs integerForKey:@"soundLowPass"]; - soundReverse = [prefs integerForKey:@"soundReverse"]; - removeIntros = [prefs integerForKey:@"removeIntros"]; - sdlFlashSize = [prefs integerForKey:@"flashSize"]; - if(sdlFlashSize != 0 && sdlFlashSize != 1) - sdlFlashSize = 0; - ifbType = [prefs integerForKey:@"ifbType"]; - if(ifbType < 0 || ifbType > 2) - ifbType = 0; - showSpeed = [prefs integerForKey:@"showSpeed"]; - if(showSpeed < 0 || showSpeed > 1) - showSpeed = 1; - showSpeedTransparent = showSpeed; - autoFrameSkip = [prefs integerForKey:@"autoFrameSkip"]; - throttle = [prefs integerForKey:@"throttle"]; - if(throttle != 0 && (throttle < 5 || throttle > 1000)) - throttle = 0; - pauseWhenInactive = [prefs integerForKey:@"pauseWhenInactive"]; - sdlRtcEnable = [prefs integerForKey:@"rtcEnabled"]; - changeType = [prefs integerForKey:@"changeType"]; -} - -void sdlSetDefaultPreferences() -{ - [prefs setInteger:0x0114 forKey:@"Joy0_Left"]; - [prefs setInteger:0x0113 forKey:@"Joy0_Right"]; - [prefs setInteger:0x0111 forKey:@"Joy0_Up"]; - [prefs setInteger:0x0112 forKey:@"Joy0_Down"]; - [prefs setInteger:0x007a forKey:@"Joy0_A"]; - [prefs setInteger:0x0078 forKey:@"Joy0_B"]; - [prefs setInteger:0x0061 forKey:@"Joy0_L"]; - [prefs setInteger:0x0073 forKey:@"Joy0_R"]; - [prefs setInteger:0x000d forKey:@"Joy0_Start"]; - [prefs setInteger:0x0008 forKey:@"Joy0_Select"]; - [prefs setInteger:0x0020 forKey:@"Joy0_Speed"]; - [prefs setInteger:0x003d forKey:@"Joy0_Capture"]; - [prefs setInteger:2 forKey:@"frameskip"]; - [prefs setInteger:0 forKey:@"gbFrameskip"]; - [prefs setInteger:0 forKey:@"sizeOption"]; - [prefs setInteger:0 forKey:@"fullscreen"]; - [prefs setInteger:0 forKey:@"useBios"]; - [prefs setInteger:0 forKey:@"skipBios"]; - [prefs setObject:@"gbasys.bin" forKey:@"biosFile"]; - [prefs setInteger:0 forKey:@"filter"]; - [prefs setInteger:0 forKey:@"gbBorderOn"]; - [prefs setInteger:1 forKey:@"gbBorderAutomatic"]; - [prefs setInteger:0 forKey:@"colorOption"]; - [prefs setInteger:2 forKey:@"soundQuality"]; - [prefs setInteger:0 forKey:@"soundOff"]; - [prefs setInteger:0 forKey:@"soundEcho"]; - [prefs setInteger:0 forKey:@"soundLowPass"]; - [prefs setInteger:0 forKey:@"soundReverse"]; - [prefs setInteger:0 forKey:@"removeIntros"]; - [prefs setInteger:1 forKey:@"flashSize"]; - [prefs setInteger:0 forKey:@"ifbType"]; - [prefs setInteger:0 forKey:@"showSpeed"]; - [prefs setInteger:0 forKey:@"autoFrameSkip"]; - [prefs setInteger:0 forKey:@"throttle"]; - [prefs setInteger:0 forKey:@"pauseWhenInactive"]; - [prefs setInteger:0 forKey:@"rtcEnabled"]; - [prefs setInteger:1 forKey:@"changeType"]; -} - -void sdlReadPreferences() -{ - if([prefs integerForKey:@"Version"] != 17) - { - [prefs setInteger:17 forKey:@"Version"]; - //set all defaults - sdlSetDefaultPreferences(); - } - - sdlReadPreferences(NULL); -} - -static void sdlApplyPerImagePreferences() -{ - //FILE *f = sdlFindFile("vba-over.ini"); - - FILE *f = nil; - if(!f) { - fprintf(stderr, "vba-over.ini NOT FOUND (using emulator settings)\n"); - return; - } else - fprintf(stderr, "Reading vba-over.ini\n"); - - char buffer[7]; - buffer[0] = '['; - buffer[1] = rom[0xac]; - buffer[2] = rom[0xad]; - buffer[3] = rom[0xae]; - buffer[4] = rom[0xaf]; - buffer[5] = ']'; - buffer[6] = 0; - - char readBuffer[2048]; - - bool found = false; - - while(1) { - char *s = fgets(readBuffer, 2048, f); - - if(s == NULL) - break; - - char *p = strchr(s, ';'); - - if(p) - *p = 0; - - char *token = strtok(s, " \t\n\r="); - - if(!token) - continue; - if(strlen(token) == 0) - continue; - - if(!strcmp(token, buffer)) { - found = true; - break; - } - } - - if(found) { - while(1) { - char *s = fgets(readBuffer, 2048, f); - - if(s == NULL) - break; - - char *p = strchr(s, ';'); - if(p) - *p = 0; - - char *token = strtok(s, " \t\n\r="); - if(!token) - continue; - if(strlen(token) == 0) - continue; - - if(token[0] == '[') // starting another image settings - break; - char *value = strtok(NULL, "\t\n\r="); - if(value == NULL) - continue; - - if(!strcmp(token, "rtcEnabled")) - rtcEnable(atoi(value) == 0 ? false : true); - else if(!strcmp(token, "flashSize")) { - int size = atoi(value); - if(size == 0x10000 || size == 0x20000) - flashSetSize(size); - } else if(!strcmp(token, "saveType")) { - int save = atoi(value); - if(save >= 0 && save <= 5) - cpuSaveType = save; - } else if(!strcmp(token, "mirroringEnabled")) { - mirroringEnable = (atoi(value) == 0 ? false : true); - } - } - } - fclose(f); -} - -static int sdlCalculateShift(u32 mask) -{ - int m = 0; - - while(mask) { - m++; - mask >>= 1; - } - - return m-5; -} - -static int sdlCalculateMaskWidth(u32 mask) -{ - int m = 0; - int mask2 = mask; - - while(mask2) { - m++; - mask2 >>= 1; - } - - int m2 = 0; - mask2 = mask; - while(!(mask2 & 1)) { - m2++; - mask2 >>= 1; - } - - return m - m2; -} - -void sdlWriteState(int num) -{ - char stateName[VBA_MAX_PATH_LEN]; - - if(saveDir[0]) - sprintf(stateName, "%s/%s%d.sgm", saveDir, sdlGetFilename(filename), - num+1); - else - sprintf(stateName,"%s%d.sgm", filename, num+1); - - if(emulator.emuWriteState) - emulator.emuWriteState(stateName); - - sprintf(stateName, "Wrote state %d", num+1); - systemScreenMessage(stateName); - - systemDrawScreen(); -} - -void sdlReadState(int num) -{ - char stateName[VBA_MAX_PATH_LEN]; - - if(saveDir[0]) - sprintf(stateName, "%s/%s%d.sgm", saveDir, sdlGetFilename(filename), - num+1); - else - sprintf(stateName,"%s%d.sgm", filename, num+1); - - if(emulator.emuReadState) - emulator.emuReadState(stateName); - - sprintf(stateName, "Loaded state %d", num+1); - systemScreenMessage(stateName); - - systemDrawScreen(); -} - -void sdlWriteBattery() -{ - char buffer[1048]; - - if(batteryDir[0]) - sprintf(buffer, "%s/%s.sav", batteryDir, sdlGetFilename(filename)); - else - sprintf(buffer, "%s.sav", filename); - - emulator.emuWriteBattery(buffer); - - // systemScreenMessage("Wrote battery"); -} - -void sdlReadBattery() -{ - char buffer[1048]; - - if(batteryDir[0]) - sprintf(buffer, "%s/%s.sav", batteryDir, sdlGetFilename(filename)); - else - sprintf(buffer, "%s.sav", filename); - - bool res = false; - - res = emulator.emuReadBattery(buffer); - - if(res) - systemScreenMessage("Loaded battery"); -} - -#define MOD_KEYS (KMOD_CTRL|KMOD_SHIFT|KMOD_ALT|KMOD_META) -#define MOD_NOCTRL (KMOD_SHIFT|KMOD_ALT|KMOD_META) -#define MOD_NOALT (KMOD_CTRL|KMOD_SHIFT|KMOD_META) -#define MOD_NOSHIFT (KMOD_CTRL|KMOD_ALT|KMOD_META) - -void sdlUpdateKey(int key, bool down) -{ - int i; - for(int j = 0; j < 4; j++) { - for(i = 0 ; i < 12; i++) { - if((joypad[j][i] & 0xf000) == 0) { - if(key == joypad[j][i]) - sdlButtons[j][i] = down; - } - } - } - for(i = 0 ; i < 4; i++) { - if((motion[i] & 0xf000) == 0) { - if(key == motion[i]) - sdlMotionButtons[i] = down; - } - } -} - -void sdlUpdateJoyButton(int which, - int button, - bool pressed) -{ - int i; - for(int j = 0; j < 4; j++) { - for(i = 0; i < 12; i++) { - int dev = (joypad[j][i] >> 12); - int b = joypad[j][i] & 0xfff; - if(dev) { - dev--; - - if((dev == which) && (b >= 128) && (b == (button+128))) { - sdlButtons[j][i] = pressed; - } - } - } - } - for(i = 0; i < 4; i++) { - int dev = (motion[i] >> 12); - int b = motion[i] & 0xfff; - if(dev) { - dev--; - - if((dev == which) && (b >= 128) && (b == (button+128))) { - sdlMotionButtons[i] = pressed; - } - } - } -} - -void sdlUpdateJoyHat(int which, - int hat, - int value) -{ - int i; - for(int j = 0; j < 4; j++) { - for(i = 0; i < 12; i++) { - int dev = (joypad[j][i] >> 12); - int a = joypad[j][i] & 0xfff; - if(dev) { - dev--; - - if((dev == which) && (a>=32) && (a < 48) && (((a&15)>>2) == hat)) { - int dir = a & 3; - int v = 0; - switch(dir) { - case 0: - v = value & SDL_HAT_UP; - break; - case 1: - v = value & SDL_HAT_DOWN; - break; - case 2: - v = value & SDL_HAT_RIGHT; - break; - case 3: - v = value & SDL_HAT_LEFT; - break; - } - sdlButtons[j][i] = (v ? true : false); - } - } - } - } - for(i = 0; i < 4; i++) { - int dev = (motion[i] >> 12); - int a = motion[i] & 0xfff; - if(dev) { - dev--; - - if((dev == which) && (a>=32) && (a < 48) && (((a&15)>>2) == hat)) { - int dir = a & 3; - int v = 0; - switch(dir) { - case 0: - v = value & SDL_HAT_UP; - break; - case 1: - v = value & SDL_HAT_DOWN; - break; - case 2: - v = value & SDL_HAT_RIGHT; - break; - case 3: - v = value & SDL_HAT_LEFT; - break; - } - sdlMotionButtons[i] = (v ? true : false); - } - } - } -} - -void sdlUpdateJoyAxis(int which, - int axis, - int value) -{ - int i; - for(int j = 0; j < 4; j++) { - for(i = 0; i < 12; i++) { - int dev = (joypad[j][i] >> 12); - int a = joypad[j][i] & 0xfff; - if(dev) { - dev--; - - if((dev == which) && (a < 32) && ((a>>1) == axis)) { - sdlButtons[j][i] = (a & 1) ? (value > 16384) : (value < -16384); - } - } - } - } - for(i = 0; i < 4; i++) { - int dev = (motion[i] >> 12); - int a = motion[i] & 0xfff; - if(dev) { - dev--; - - if((dev == which) && (a < 32) && ((a>>1) == axis)) { - sdlMotionButtons[i] = (a & 1) ? (value > 16384) : (value < -16384); - } - } - } -} - -bool sdlCheckJoyKey(int key) -{ - int dev = (key >> 12) - 1; - int what = key & 0xfff; - - if(what >= 128) { - // joystick button - int button = what - 128; - - if(button >= SDL_JoystickNumButtons(sdlDevices[dev])) - return false; - } else if (what < 0x20) { - // joystick axis - what >>= 1; - if(what >= SDL_JoystickNumAxes(sdlDevices[dev])) - return false; - } else if (what < 0x30) { - // joystick hat - what = (what & 15); - what >>= 2; - if(what >= SDL_JoystickNumHats(sdlDevices[dev])) - return false; - } - - // no problem found - return true; -} - -void sdlCheckKeys() -{ - sdlNumDevices = SDL_NumJoysticks(); - - if(sdlNumDevices) - sdlDevices = (SDL_Joystick **)calloc(1,sdlNumDevices * - sizeof(SDL_Joystick **)); - int i; - - bool usesJoy = false; - - for(int j = 0; j < 4; j++) { - for(i = 0; i < 12; i++) { - int dev = joypad[j][i] >> 12; - if(dev) { - dev--; - bool ok = false; - - if(sdlDevices) { - if(dev < sdlNumDevices) { - if(sdlDevices[dev] == NULL) { - sdlDevices[dev] = SDL_JoystickOpen(dev); - } - - ok = sdlCheckJoyKey(joypad[j][i]); - } else - ok = false; - } - - if(!ok) - joypad[j][i] = defaultJoypad[i]; - else - usesJoy = true; - } - } - } - - for(i = 0; i < 4; i++) { - int dev = motion[i] >> 12; - if(dev) { - dev--; - bool ok = false; - - if(sdlDevices) { - if(dev < sdlNumDevices) { - if(sdlDevices[dev] == NULL) { - sdlDevices[dev] = SDL_JoystickOpen(dev); - } - - ok = sdlCheckJoyKey(motion[i]); - } else - ok = false; - } - - if(!ok) - motion[i] = defaultMotion[i]; - else - usesJoy = true; - } - } - - if(usesJoy) - SDL_JoystickEventState(SDL_ENABLE); -} - -void sdlPollEvents() -{ - SDL_Event event; - while(SDL_PollEvent(&event)) { - switch(event.type) { - case SDL_QUIT: - emulating = 0; - break; - case SDL_ACTIVEEVENT: - if(pauseWhenInactive && (event.active.state & SDL_APPINPUTFOCUS)) { - active = event.active.gain; - if(active) { - if(!paused) { - if(emulating) - soundResume(); - } - } else { - wasPaused = true; - if(pauseWhenInactive) { - if(emulating) - soundPause(); - } - - memset(delta,255,sizeof(delta)); - } - } - break; - case SDL_MOUSEMOTION: - case SDL_MOUSEBUTTONUP: - case SDL_MOUSEBUTTONDOWN: - if(fullscreen) { - SDL_ShowCursor(SDL_ENABLE); - mouseCounter = 120; - } - break; - case SDL_JOYHATMOTION: - sdlUpdateJoyHat(event.jhat.which, - event.jhat.hat, - event.jhat.value); - break; - case SDL_JOYBUTTONDOWN: - case SDL_JOYBUTTONUP: - sdlUpdateJoyButton(event.jbutton.which, - event.jbutton.button, - event.jbutton.state == SDL_PRESSED); - break; - case SDL_JOYAXISMOTION: - sdlUpdateJoyAxis(event.jaxis.which, - event.jaxis.axis, - event.jaxis.value); - break; - case SDL_KEYDOWN: - sdlUpdateKey(event.key.keysym.sym, true); - break; - case SDL_KEYUP: - switch(event.key.keysym.sym) { - case SDLK_q: - if (event.key.keysym.mod & KMOD_META) { - done = true; - emulating = false; - } - break; - case SDLK_r: - if(event.key.keysym.mod & KMOD_META) { - if(emulating) { - emulator.emuReset(); - - systemScreenMessage("Reset"); - } - } - break; - case SDLK_b: - if(event.key.keysym.mod & KMOD_META) { - if(emulating && emulator.emuReadMemState && rewindMemory - && rewindCount) { - rewindPos = (rewindPos - 1) & 7; - emulator.emuReadMemState(&rewindMemory[REWIND_SIZE*rewindPos], - REWIND_SIZE); - rewindCount--; - rewindCounter = 0; - systemScreenMessage("Rewind"); - } - } - break; - case SDLK_p: - if(event.key.keysym.mod & KMOD_META) { - paused = !paused; - SDL_PauseAudio(paused); - if(paused) - wasPaused = true; - } - break; - case SDLK_ESCAPE: - sdlToggleFullscreen(); - break; - case SDLK_f: - if(event.key.keysym.mod & KMOD_CTRL) { - sdlToggleFullscreen(); - } - if (event.key.keysym.mod & KMOD_META) { - sdlWriteState(0); - } - break; - case SDLK_d: - if (event.key.keysym.mod & KMOD_META) { - sdlReadState(0); - } - case SDLK_F11: - if(dbgMain != debuggerMain) { - if(armState) { - armNextPC -= 4; - reg[15].I -= 4; - } else { - armNextPC -= 2; - reg[15].I -= 2; - } - } - debugger = true; - break; - case SDLK_F1: - case SDLK_F2: - case SDLK_F3: - case SDLK_F4: - case SDLK_F5: - case SDLK_F6: - case SDLK_F7: - case SDLK_F8: - case SDLK_F9: - case SDLK_F10: - if(!(event.key.keysym.mod & MOD_NOSHIFT) && - (event.key.keysym.mod & KMOD_SHIFT)) { - sdlWriteState(event.key.keysym.sym-SDLK_F1); - } else if(!(event.key.keysym.mod & MOD_KEYS)) { - sdlReadState(event.key.keysym.sym-SDLK_F1); - } - break; - case SDLK_1: - case SDLK_2: - case SDLK_3: - case SDLK_4: - if(!(event.key.keysym.mod & MOD_NOALT) && - (event.key.keysym.mod & KMOD_ALT)) { - char *disableMessages[4] = - { "autofire A disabled", - "autofire B disabled", - "autofire R disabled", - "autofire L disabled"}; - char *enableMessages[4] = - { "autofire A", - "autofire B", - "autofire R", - "autofire L"}; - int mask = 1 << (event.key.keysym.sym - SDLK_1); - if(event.key.keysym.sym > SDLK_2) - mask <<= 6; - if(autoFire & mask) { - autoFire &= ~mask; - systemScreenMessage(disableMessages[event.key.keysym.sym - SDLK_1]); - } else { - autoFire |= mask; - systemScreenMessage(enableMessages[event.key.keysym.sym - SDLK_1]); - } - } if(!(event.key.keysym.mod & MOD_NOCTRL) && - (event.key.keysym.mod & KMOD_CTRL)) { - int mask = 0x0100 << (event.key.keysym.sym - SDLK_1); - layerSettings ^= mask; - layerEnable = DISPCNT & layerSettings; - CPUUpdateRenderBuffers(false); - } - break; - case SDLK_5: - case SDLK_6: - case SDLK_7: - case SDLK_8: - if(!(event.key.keysym.mod & MOD_NOCTRL) && - (event.key.keysym.mod & KMOD_CTRL)) { - int mask = 0x0100 << (event.key.keysym.sym - SDLK_1); - layerSettings ^= mask; - layerEnable = DISPCNT & layerSettings; - } - break; - case SDLK_n: - if(event.key.keysym.mod & KMOD_META) { - if(paused) - paused = false; - pauseNextFrame = true; - } - break; - default: - break; - } - sdlUpdateKey(event.key.keysym.sym, false); - break; - } - } -} - -void usage(char *cmd) -{ - printf("%s [option ...] file\n", cmd); - printf("\ - \n\ - Options:\n\ - -1, --video-1x 1x\n\ - -2, --video-2x 2x\n\ - -3, --video-3x 3x\n\ - -4, --video-4x 4x\n\ - -F, --fullscreen Full screen\n\ - -G, --gdb=PROTOCOL GNU Remote Stub mode:\n\ - tcp - use TCP at port 55555\n\ - tcp:PORT - use TCP at port PORT\n\ - pipe - use pipe transport\n\ - -N, --no-debug Don't parse debug information\n\ - -S, --flash-size=SIZE Set the Flash size\n\ - --flash-64k 0 - 64K Flash\n\ - --flash-128k 1 - 128K Flash\n\ - -T, --throttle=THROTTLE Set the desired throttle (5...1000)\n\ - -Y, --yuv=TYPE Use YUV overlay for drawing:\n\ - 0 - YV12\n\ - 1 - UYVY\n\ - 2 - YVYU\n\ - 3 - YUY2\n\ - 4 - IYUV\n\ - -b, --bios=BIOS Use given bios file\n\ - -c, --config=FILE Read the given configuration file\n\ - -d, --debug Enter debugger\n\ - -f, --filter=FILTER Select filter:\n\ - --filter-normal 0 - normal mode\n\ - --filter-tv-mode 1 - TV Mode\n\ - --filter-2xsai 2 - 2xSaI\n\ - --filter-super-2xsai 3 - Super 2xSaI\n\ - --filter-super-eagle 4 - Super Eagle\n\ - --filter-pixelate 5 - Pixelate\n\ - --filter-motion-blur 6 - Motion Blur\n\ - --filter-advmame 7 - AdvanceMAME Scale2x\n\ - --filter-simple2x 8 - Simple2x\n\ - --filter-bilinear 9 - Bilinear\n\ - --filter-bilinear+ 10 - Bilinear Plus\n\ - --filter-scanlines 11 - Scanlines\n\ - --filter-hq2x 12 - hq2x\n\ - --filter-lq2x 13 - lq2x\n\ - -h, --help Print this help\n\ - -i, --ips=PATCH Apply given IPS patch\n\ - -p, --profile=[HERTZ] Enable profiling\n\ - -s, --frameskip=FRAMESKIP Set frame skip (0...9)\n\ - "); - printf("\ - -t, --save-type=TYPE Set the available save type\n\ - --save-auto 0 - Automatic (EEPROM, SRAM, FLASH)\n\ - --save-eeprom 1 - EEPROM\n\ - --save-sram 2 - SRAM\n\ - --save-flash 3 - FLASH\n\ - --save-sensor 4 - EEPROM+Sensor\n\ - --save-none 5 - NONE\n\ - -v, --verbose=VERBOSE Set verbose logging (trace.log)\n\ - 1 - SWI\n\ - 2 - Unaligned memory access\n\ - 4 - Illegal memory write\n\ - 8 - Illegal memory read\n\ - 16 - DMA 0\n\ - 32 - DMA 1\n\ - 64 - DMA 2\n\ - 128 - DMA 3\n\ - 256 - Undefined instruction\n\ - 512 - AGBPrint messages\n\ - \n\ - Long options only:\n\ - --agb-print Enable AGBPrint support\n\ - --auto-frameskip Enable auto frameskipping\n\ - --ifb-none No interframe blending\n\ - --ifb-motion-blur Interframe motion blur\n\ - --ifb-smart Smart interframe blending\n\ - --no-agb-print Disable AGBPrint support\n\ - --no-auto-frameskip Disable auto frameskipping\n\ - --no-ips Do not apply IPS patch\n\ - --no-mmx Disable MMX support\n\ - --no-pause-when-inactive Don't pause when inactive\n\ - --no-rtc Disable RTC support\n\ - --no-show-speed Don't show emulation speed\n\ - --no-throttle Disable thrrotle\n\ - --pause-when-inactive Pause when inactive\n\ - --rtc Enable RTC support\n\ - --show-speed-normal Show emulation speed\n\ - --show-speed-detailed Show detailed speed data\n\ - "); -} - -int main(int argc, char **argv) -{ - bool failed = false; - - char szFile[1024]; - captureDir[0] = 0; - saveDir[0] = 0; - batteryDir[0] = 0; - ipsname[0] = 0; - - frameSkip = 2; - gbBorderOn = 0; - - sdlReadPreferences(); - - if(sdlFlashSize == 0) - flashSetSize(0x10000); - else - flashSetSize(0x20000); - - rtcEnable(sdlRtcEnable ? true : false); - agbPrintEnable(sdlAgbPrint ? true : false); - - if(filter) { - sizeOption = 1; - } - - for(int i = 0; i < 24;) { - systemGbPalette[i++] = (0x1f) | (0x1f << 5) | (0x1f << 10); - systemGbPalette[i++] = (0x15) | (0x15 << 5) | (0x15 << 10); - systemGbPalette[i++] = (0x0c) | (0x0c << 5) | (0x0c << 10); - systemGbPalette[i++] = 0; - } - - szFile[0] = '\0'; - - if (launchFile[0] != '\0') - strcpy(szFile, launchFile); - else - openFile(szFile); - - if(szFile[0] != '\0') - { - - if (changeType) - [gSDLMain changeCreator:szFile]; - strcpy(filename, szFile); - char *p = strrchr(filename, '.'); - - if(p) - *p = 0; - - if(ipsname[0] == 0) - sprintf(ipsname, "%s.ips", filename); - - IMAGE_TYPE type = utilFindType(szFile); - - if(type == IMAGE_UNKNOWN) { - systemMessage(0, "Unknown file type %s", szFile); - exit(-1); - } - cartridgeType = (int)type; - - if(type == IMAGE_GB) { - failed = !gbLoadRom(szFile); - if(!failed) { - emulator = GBASystem; - cartridgeType = 1; - emuWriteState = gbWriteSaveState; - emuWriteMemState = gbWriteMemSaveState; - emuReadState = gbReadSaveState; - emuReadMemState = gbReadMemSaveState; - emuWriteBattery = gbWriteBatteryFile; - emuReadBattery = gbReadBatteryFile; - emuReset = gbReset; - emuCleanUp = gbCleanUp; - emuWritePNG = gbWritePNGFile; - emuWriteBMP = gbWriteBMPFile; - emuMain = gbEmulate; - emuUpdateCPSR = NULL; - emuCount = 70000/4; - if(sdlAutoIPS) { - int size = gbRomSize; - utilApplyIPS(ipsname, &gbRom, &size); - if(size != gbRomSize) { - extern bool gbUpdateSizes(); - gbUpdateSizes(); - gbReset(); - } - } - } - } else if(type == IMAGE_GBA) { - int size = CPULoadRom(szFile); - failed = (size == 0); - if(!failed) { - //if(cpuEnhancedDetection && cpuSaveType == 0) { - //utilGBAFindSave(rom, size); - //} - emulator = GBASystem; - - cartridgeType = 0; - emuWriteState = CPUWriteState; - emuWriteMemState = CPUWriteMemState; - emuReadState = CPUReadState; - emuReadMemState = CPUReadMemState; - emuWriteBattery = CPUWriteBatteryFile; - emuReadBattery = CPUReadBatteryFile; - emuReset = CPUReset; - emuCleanUp = CPUCleanUp; - emuWritePNG = CPUWritePNGFile; - emuWriteBMP = CPUWriteBMPFile; - emuMain = CPULoop; - emuUpdateCPSR = CPUUpdateCPSR; - emuCount = 50000; - - if(removeIntros && rom != NULL) { - WRITE32LE(&rom[0], 0xea00002e); - } - - CPUInit(biosFileName, useBios); - CPUReset(); - if(sdlAutoIPS) { - int size = 0x2000000; - utilApplyIPS(ipsname, &rom, &size); - if(size != 0x2000000) { - CPUReset(); - } - } - } - } - - if(failed) { - systemMessage(0, "Failed to load file %s", szFile); - return 0; - } - } else { - return 0; - } - - sdlReadBattery(); - - if (cheatCBA == 1 && cartridgeType == 0) - { - [gSDLMain addCheatCBA]; - cheatCBA = 0; - } - - if (cheatGSA == 1 && cartridgeType == 0) - { - [gSDLMain addCheatGSA]; - cheatGSA = 0; - } - - int flags = SDL_INIT_VIDEO|SDL_INIT_AUDIO| - SDL_INIT_TIMER|SDL_INIT_NOPARACHUTE; - - if(soundOffFlag) - flags ^= SDL_INIT_AUDIO; - - if(SDL_Init(flags)) { - systemMessage(0, "Failed to init SDL: %s", SDL_GetError()); - exit(-1); - } - - if(SDL_InitSubSystem(SDL_INIT_JOYSTICK)) { - systemMessage(0, "Failed to init joystick support: %s", SDL_GetError()); - } - - sdlCheckKeys(); - - if(cartridgeType == 0) { - srcWidth = 240; - srcHeight = 160; - systemFrameSkip = frameSkip; - } else if (cartridgeType == 1) { - if(gbBorderOn) { - srcWidth = 256; - srcHeight = 224; - gbBorderLineSkip = 256; - gbBorderColumnSkip = 48; - gbBorderRowSkip = 40; - } else { - srcWidth = 160; - srcHeight = 144; - gbBorderLineSkip = 160; - gbBorderColumnSkip = 0; - gbBorderRowSkip = 0; - } - systemFrameSkip = gbFrameSkip; - } else { - srcWidth = 320; - srcHeight = 240; - } - - destWidth = (sizeOption+1)*srcWidth; - destHeight = (sizeOption+1)*srcHeight; - - surface = SDL_SetVideoMode(destWidth, destHeight, 0, SDL_SWSURFACE); - - if(surface == NULL) { - systemMessage(0, "Failed to set video mode"); - SDL_Quit(); - return 0; - } - - systemRedShift = sdlCalculateShift(surface->format->Rmask); - systemGreenShift = sdlCalculateShift(surface->format->Gmask); - systemBlueShift = sdlCalculateShift(surface->format->Bmask); - - systemColorDepth = surface->format->BitsPerPixel; - if(systemColorDepth == 15) - systemColorDepth = 16; - - if(systemColorDepth != 16 && systemColorDepth != 24 && - systemColorDepth != 32) { - systemMessage(0,"Unsupported color depth '%d'.\nOnly 16, 24 and 32 bit color depths are supported\n", systemColorDepth); - SDL_Quit(); - return 0; - } - - surface = SDL_SetVideoMode(destWidth, destHeight, 0, SDL_SWSURFACE | (fullscreen ? SDL_FULLSCREEN : 0)); - - if(surface == NULL) { - systemMessage(0, "Failed to set video mode"); - SDL_Quit(); - return 0; - } - - SDL_ShowCursor(!fullscreen); - - switch(systemColorDepth) { - case 16: - sdlStretcher = sdlStretcher16[sizeOption]; - break; - case 24: - sdlStretcher = sdlStretcher24[sizeOption]; - break; - case 32: - sdlStretcher = sdlStretcher32[sizeOption]; - break; - default: - fprintf(stderr, "Unsupported resolution: %d\n", systemColorDepth); - exit(-1); - } - - //fprintf(stderr,"Color depth: %d\n", systemColorDepth); - - if(systemColorDepth == 16) { - if(sdlCalculateMaskWidth(surface->format->Gmask) == 6) { - Init_2xSaI(565); - RGB_LOW_BITS_MASK = 0x821; - } else { - Init_2xSaI(555); - RGB_LOW_BITS_MASK = 0x421; - } - if(cartridgeType == 2) { - for(int i = 0; i < 0x10000; i++) { - systemColorMap16[i] = (((i >> 1) & 0x1f) << systemBlueShift) | - (((i & 0x7c0) >> 6) << systemGreenShift) | - (((i & 0xf800) >> 11) << systemRedShift); - } - } else { - for(int i = 0; i < 0x10000; i++) { - systemColorMap16[i] = ((i & 0x1f) << systemRedShift) | - (((i & 0x3e0) >> 5) << systemGreenShift) | - (((i & 0x7c00) >> 10) << systemBlueShift); - } - } - srcPitch = srcWidth * 2+4; - } else { - if(systemColorDepth != 32) - filterFunction = NULL; - RGB_LOW_BITS_MASK = 0x010101; - if(systemColorDepth == 32) { - Init_2xSaI(32); - } - for(int i = 0; i < 0x10000; i++) { - systemColorMap32[i] = ((i & 0x1f) << systemRedShift) | - (((i & 0x3e0) >> 5) << systemGreenShift) | - (((i & 0x7c00) >> 10) << systemBlueShift); - } - if(systemColorDepth == 32) - srcPitch = srcWidth*4 + 4; - else - srcPitch = srcWidth*3; - } - - if(systemColorDepth != 32) { - switch(filter) { - case 0: - filterFunction = NULL; - break; - case 1: - filterFunction = ScanlinesTV; - break; - case 2: - filterFunction = _2xSaI; - break; - case 3: - filterFunction = Super2xSaI; - break; - case 4: - filterFunction = SuperEagle; - break; - case 5: - filterFunction = Pixelate; - break; - case 6: - filterFunction = MotionBlur; - break; - case 7: - filterFunction = AdMame2x; - break; - case 8: - filterFunction = Simple2x16; - break; - case 9: - filterFunction = Bilinear; - break; - case 10: - filterFunction = BilinearPlus; - break; - case 11: - filterFunction = Scanlines; - break; - case 12: - filterFunction = hq2x; - break; - case 13: - filterFunction = lq2x; - break; - default: - filterFunction = NULL; - break; - } - } else { - switch(filter) { - case 0: - filterFunction = NULL; - break; - case 1: - filterFunction = ScanlinesTV32; - break; - case 2: - filterFunction = _2xSaI32; - break; - case 3: - filterFunction = Super2xSaI32; - break; - case 4: - filterFunction = SuperEagle32; - break; - case 5: - filterFunction = Pixelate32; - break; - case 6: - filterFunction = MotionBlur32; - break; - case 7: - filterFunction = AdMame2x32; - break; - case 8: - filterFunction = Simple2x32; - break; - case 9: - filterFunction = Bilinear32; - break; - case 10: - filterFunction = BilinearPlus32; - break; - case 11: - filterFunction = Scanlines32; - break; - case 12: - filterFunction = hq2x32; - break; - case 13: - filterFunction = lq2x32; - break; - default: - filterFunction = NULL; - break; - } - } - - if(systemColorDepth == 16) { - switch(ifbType) { - case 0: - default: - ifbFunction = NULL; - break; - case 1: - ifbFunction = MotionBlurIB; - break; - case 2: - ifbFunction = SmartIB; - break; - } - } else if(systemColorDepth == 32) { - switch(ifbType) { - case 0: - default: - ifbFunction = NULL; - break; - case 1: - ifbFunction = MotionBlurIB32; - break; - case 2: - ifbFunction = SmartIB32; - break; - } - } else - ifbFunction = NULL; - - if(delta == NULL) { - delta = (u8*)malloc(322*242*4); - memset(delta, 255, 322*242*4); - } - - emulating = 1; - renderedFrames = 0; - - if(!soundOffFlag) - soundInit(); - - autoFrameSkipLastTime = throttleLastTime = systemGetClock(); - - SDL_WM_SetCaption("VBA", NULL); - - while(emulating) { - sdlPollEvents(); - if(!paused && active) - emuMain(emuCount); - else - SDL_Delay(500); - } - - emulating = 0; - //fprintf(stderr,"Shutting down\n"); - systemDrawScreen(); - soundShutdown(); - - if(gbRom != NULL || rom != NULL) { - - sdlWriteBattery(); - emuCleanUp(); - } - - if(delta) { - free(delta); - delta = NULL; - } - SDL_Quit(); - return 0; -} - -void systemMessage(int num, const char *msg, ...) -{ - char buffer[SYSMSG_BUFFER_SIZE*2]; - va_list valist; - - va_start(valist, msg); - vsprintf(buffer, msg, valist); - - fprintf(stderr, "%s\n", buffer); - va_end(valist); -} - -void systemDrawScreen() -{ - renderedFrames++; - - if(yuv) { - Draw_Overlay(surface, sizeOption+1); - return; - } - - SDL_LockSurface(surface); - - if(screenMessage) { - if(cartridgeType == 1 && gbBorderOn) { - gbSgbRenderBorder(); - } - if(((systemGetClock() - screenMessageTime) < 3000) && - !disableStatusMessages) { - drawText(pix, srcPitch, 10, srcHeight - 20, - screenMessageBuffer); - } else { - screenMessage = false; - } - } - - if(ifbFunction) { - if(systemColorDepth == 16) - ifbFunction(pix+destWidth+4, destWidth+4, srcWidth, srcHeight); - else - ifbFunction(pix+destWidth*2+4, destWidth*2+4, srcWidth, srcHeight); - } - - if(filterFunction) { - if(systemColorDepth == 16) - filterFunction(pix+destWidth+4,destWidth+4, delta, - (u8*)surface->pixels,surface->pitch, - srcWidth, - srcHeight); - else - filterFunction(pix+destWidth*2+4, - destWidth*2+4, - delta, - (u8*)surface->pixels, - surface->pitch, - srcWidth, - srcHeight); - } else { - int destPitch = surface->pitch; - u8 *src = pix; - u8 *dest = (u8*)surface->pixels; - int i; - u32 *stretcher = (u32 *)sdlStretcher; - if(systemColorDepth == 16) - src += srcPitch; - int option = sizeOption; - if(yuv) - option = 0; - switch(sizeOption) { - case 0: - for(i = 0; i < srcHeight; i++) { - SDL_CALL_STRETCHER; - src += srcPitch; - dest += destPitch; - } - break; - case 1: - for(i = 0; i < srcHeight; i++) { - SDL_CALL_STRETCHER; - dest += destPitch; - SDL_CALL_STRETCHER; - src += srcPitch; - dest += destPitch; - } - break; - case 2: - for(i = 0; i < srcHeight; i++) { - SDL_CALL_STRETCHER; - dest += destPitch; - SDL_CALL_STRETCHER; - dest += destPitch; - SDL_CALL_STRETCHER; - src += srcPitch; - dest += destPitch; - } - break; - case 3: - for(i = 0; i < srcHeight; i++) { - SDL_CALL_STRETCHER; - dest += destPitch; - SDL_CALL_STRETCHER; - dest += destPitch; - SDL_CALL_STRETCHER; - dest += destPitch; - SDL_CALL_STRETCHER; - src += srcPitch; - dest += destPitch; - } - break; - } - } - - if(showSpeed && fullscreen) { - char buffer[50]; - if(showSpeed == 1) - sprintf(buffer, "%d%%", systemSpeed); - else - sprintf(buffer, "%3d%%(%d, %d fps)", systemSpeed, - systemFrameSkip, - showRenderedFrames); - if(showSpeedTransparent) - drawTextTransp((u8*)surface->pixels, - surface->pitch, - 10, - surface->h-20, - buffer); - else - drawText((u8*)surface->pixels, - surface->pitch, - 10, - surface->h-20, - buffer); - } - - SDL_UnlockSurface(surface); - // SDL_UpdateRect(surface, 0, 0, destWidth, destHeight); - SDL_Flip(surface); -} - -bool systemReadJoypads() -{ - return true; -} - -u32 systemReadJoypad(int which) -{ - if(which < 0 || which > 3) - which = sdlDefaultJoypad; - - u32 res = 0; - - if(sdlButtons[which][KEY_BUTTON_A]) - res |= 1; - if(sdlButtons[which][KEY_BUTTON_B]) - res |= 2; - if(sdlButtons[which][KEY_BUTTON_SELECT]) - res |= 4; - if(sdlButtons[which][KEY_BUTTON_START]) - res |= 8; - if(sdlButtons[which][KEY_RIGHT]) - res |= 16; - if(sdlButtons[which][KEY_LEFT]) - res |= 32; - if(sdlButtons[which][KEY_UP]) - res |= 64; - if(sdlButtons[which][KEY_DOWN]) - res |= 128; - if(sdlButtons[which][KEY_BUTTON_R]) - res |= 256; - if(sdlButtons[which][KEY_BUTTON_L]) - res |= 512; - - // disallow L+R or U+D of being pressed at the same time - if((res & 48) == 48) - res &= ~16; - if((res & 192) == 192) - res &= ~128; - - if(sdlButtons[which][KEY_BUTTON_SPEED]) - res |= 1024; - if(sdlButtons[which][KEY_BUTTON_CAPTURE]) - res |= 2048; - - if(autoFire) { - res &= (~autoFire); - if(autoFireToggle) - res |= autoFire; - autoFireToggle = !autoFireToggle; - } - - return res; -} - -void systemSetTitle(const char *title) -{ - SDL_WM_SetCaption(title, NULL); -} - -void systemShowSpeed(int speed) -{ - systemSpeed = speed; - - showRenderedFrames = renderedFrames; - renderedFrames = 0; - - if(!fullscreen && showSpeed) { - char buffer[80]; - if(showSpeed == 1) - sprintf(buffer, "VisualBoyAdvance-%3d%%", systemSpeed); - else - sprintf(buffer, "VisualBoyAdvance-%3d%%(%d, %d fps)", systemSpeed, - systemFrameSkip, - showRenderedFrames); - - systemSetTitle(buffer); - } -} - -void systemFrame() -{ -} - -void system10Frames(int rate) -{ - u32 time = systemGetClock(); - if(!wasPaused && autoFrameSkip && !throttle) { - u32 diff = time - autoFrameSkipLastTime; - int speed = 100; - - if(diff) - speed = (1000000/rate)/diff; - - if(speed >= 98) { - frameskipadjust++; - - if(frameskipadjust >= 3) { - frameskipadjust=0; - if(systemFrameSkip > 0) - systemFrameSkip--; - } - } else { - if(speed < 80) - frameskipadjust -= (90 - speed)/5; - else if(systemFrameSkip < 9) - frameskipadjust--; - - if(frameskipadjust <= -2) { - frameskipadjust += 2; - if(systemFrameSkip < 9) - systemFrameSkip++; - } - } - } - if(!wasPaused && throttle) { - if(!speedup) { - u32 diff = time - throttleLastTime; - - int target = (1000000/(rate*throttle)); - int d = (target - diff); - - if(d > 0) { - SDL_Delay(d); - } - } - throttleLastTime = systemGetClock(); - } - if(rewindMemory) { - if(++rewindCounter >= rewindTimer) { - rewindSaveNeeded = true; - rewindCounter = 0; - } - } - - if(systemSaveUpdateCounter) { - if(--systemSaveUpdateCounter <= SYSTEM_SAVE_NOT_UPDATED) { - sdlWriteBattery(); - systemSaveUpdateCounter = SYSTEM_SAVE_NOT_UPDATED; - } - } - - wasPaused = false; - autoFrameSkipLastTime = time; -} - -void systemScreenCapture(int a) -{ - char buffer[VBA_MAX_PATH_LEN]; - - if(captureFormat) { - if(captureDir[0]) - sprintf(buffer, "%s/%s%02d.bmp", captureDir, sdlGetFilename(filename), a); - else - sprintf(buffer, "%s%02d.bmp", filename, a); - - emulator.emuWriteBMP(buffer); - } else { - if(captureDir[0]) - sprintf(buffer, "%s/%s%02d.png", captureDir, sdlGetFilename(filename), a); - else - sprintf(buffer, "%s%02d.png", filename, a); - emulator.emuWritePNG(buffer); - } - - systemScreenMessage("Screen capture"); -} - -void soundCallback(void *,u8 *stream,int len) -{ - if (!emulating || soundInShutdown) - return; - - // Patch #1382692 by deathpudding. - /* since this is running in a different thread, speedup and - * throttle can change at any time; save the value so locks - * stay in sync */ - bool lock = (!speedup && !throttle) ? true : false; - - if (lock) - SDL_SemWait (sdlBufferFull); - - SDL_SemWait (sdlBufferLock); - memcpy (stream, sdlBuffer, len); - sdlSoundLen = 0; - SDL_SemPost (sdlBufferLock); - - if (lock) - SDL_SemPost (sdlBufferEmpty); -} - -void systemWriteDataToSoundBuffer() -{ - // Patch #1382692 by deathpudding. - if (SDL_GetAudioStatus () != SDL_AUDIO_PLAYING) - SDL_PauseAudio (0); - - if ((sdlSoundLen + soundBufferLen) >= 2048*2) { - bool lock = (!speedup && !throttle) ? true : false; - - if (lock) - SDL_SemWait (sdlBufferEmpty); - - SDL_SemWait (sdlBufferLock); - int copied = 2048*2 - sdlSoundLen; - memcpy (sdlBuffer + sdlSoundLen, soundFinalWave, copied); - sdlSoundLen = 2048*2; - SDL_SemPost (sdlBufferLock); - - if (lock) { - SDL_SemPost (sdlBufferFull); - - /* wait for buffer to be dumped by soundCallback() */ - SDL_SemWait (sdlBufferEmpty); - SDL_SemPost (sdlBufferEmpty); - - SDL_SemWait (sdlBufferLock); - memcpy (sdlBuffer, ((u8 *)soundFinalWave) + copied, - soundBufferLen - copied); - sdlSoundLen = soundBufferLen - copied; - SDL_SemPost (sdlBufferLock); - } - else { - SDL_SemWait (sdlBufferLock); - memcpy (sdlBuffer, ((u8 *) soundFinalWave) + copied, soundBufferLen); - SDL_SemPost (sdlBufferLock); - } - } - else { - SDL_SemWait (sdlBufferLock); - memcpy (sdlBuffer + sdlSoundLen, soundFinalWave, soundBufferLen); - sdlSoundLen += soundBufferLen; - SDL_SemPost (sdlBufferLock); - } -} - -bool systemSoundInit() -{ - SDL_AudioSpec audio; - soundInShutdown = NO; - - switch(soundQuality) { - case 1: - audio.freq = 44100; - soundBufferLen = 1470*2; - break; - case 2: - audio.freq = 22050; - soundBufferLen = 736*2; - break; - case 4: - audio.freq = 11025; - soundBufferLen = 368*2; - break; - } - audio.format=AUDIO_S16SYS; - audio.channels = 2; - audio.samples = 1024; - audio.callback = soundCallback; - audio.userdata = NULL; - if(SDL_OpenAudio(&audio, NULL)) { - fprintf(stderr,"Failed to open audio: %s\n", SDL_GetError()); - return false; - } - soundBufferTotalLen = soundBufferLen*10; - // Patch #1382692 by deathpudding. - sdlBufferLock = SDL_CreateSemaphore (1); - sdlBufferFull = SDL_CreateSemaphore (0); - sdlBufferEmpty = SDL_CreateSemaphore (1); - sdlSoundLen = 0; - systemSoundOn = true; - return true; -} - -void systemSoundShutdown() -{ - // Patch #1382692 by deathpudding. - psoundTickfn(); - - // Make sure that all waiters exit. - soundInShutdown = YES; - - SDL_SemPost(sdlBufferFull); - SDL_CloseAudio (); - SDL_DestroySemaphore (sdlBufferLock); - SDL_DestroySemaphore (sdlBufferFull); - SDL_DestroySemaphore (sdlBufferEmpty); - sdlBufferLock = NULL; - sdlBufferFull = NULL; - sdlBufferEmpty = NULL; -} - -void systemSoundPause() -{ - SDL_PauseAudio(1); -} - -void systemSoundResume() -{ - SDL_PauseAudio(0); -} - -void systemSoundReset() -{ -} - -u32 systemGetClock() -{ - return SDL_GetTicks(); -} - -void systemUpdateMotionSensor() -{ - if(sdlMotionButtons[KEY_LEFT]) { - sensorX += 3; - if(sensorX > 2197) - sensorX = 2197; - if(sensorX < 2047) - sensorX = 2057; - } else if(sdlMotionButtons[KEY_RIGHT]) { - sensorX -= 3; - if(sensorX < 1897) - sensorX = 1897; - if(sensorX > 2047) - sensorX = 2037; - } else if(sensorX > 2047) { - sensorX -= 2; - if(sensorX < 2047) - sensorX = 2047; - } else { - sensorX += 2; - if(sensorX > 2047) - sensorX = 2047; - } - - if(sdlMotionButtons[KEY_UP]) { - sensorY += 3; - if(sensorY > 2197) - sensorY = 2197; - if(sensorY < 2047) - sensorY = 2057; - } else if(sdlMotionButtons[KEY_DOWN]) { - sensorY -= 3; - if(sensorY < 1897) - sensorY = 1897; - if(sensorY > 2047) - sensorY = 2037; - } else if(sensorY > 2047) { - sensorY -= 2; - if(sensorY < 2047) - sensorY = 2047; - } else { - sensorY += 2; - if(sensorY > 2047) - sensorY = 2047; - } -} - -int systemGetSensorX() -{ - return sensorX; -} - -int systemGetSensorY() -{ - return sensorY; -} - -void systemGbPrint(u8 *data,int pages,int feed,int palette, int contrast) -{ -} - -void systemScreenMessage(const char *msg) -{ - screenMessage = true; - screenMessageTime = systemGetClock(); - if(strlen(msg) > 20) { - strncpy(screenMessageBuffer, msg, 20); - screenMessageBuffer[20] = 0; - } else - strcpy(screenMessageBuffer, msg); -} - -bool systemCanChangeSoundQuality() -{ - return false; -} - -bool systemPauseOnFrame() -{ - if(pauseNextFrame) { - paused = true; - pauseNextFrame = false; - return true; - } - return false; -} - -// Code donated by Niels Wagenaar (BoycottAdvance) - -// GBA screensize. -#define GBA_WIDTH 240 -#define GBA_HEIGHT 160 - -void Init_Overlay(SDL_Surface *gbascreen, int overlaytype) -{ - - overlay = SDL_CreateYUVOverlay( GBA_WIDTH, - GBA_HEIGHT, - overlaytype, gbascreen); - fprintf(stderr, "Created %dx%dx%d %s %s overlay\n", - overlay->w,overlay->h,overlay->planes, - overlay->hw_overlay?"hardware":"software", - overlay->format==SDL_YV12_OVERLAY?"YV12": - overlay->format==SDL_IYUV_OVERLAY?"IYUV": - overlay->format==SDL_YUY2_OVERLAY?"YUY2": - overlay->format==SDL_UYVY_OVERLAY?"UYVY": - overlay->format==SDL_YVYU_OVERLAY?"YVYU": - "Unknown"); -} - -void Quit_Overlay(void) -{ - - SDL_FreeYUVOverlay(overlay); -} - -/* NOTE: These RGB conversion functions are not intended for speed, - only as examples. - */ -inline void RGBtoYUV(Uint8 *rgb, int *yuv) -{ - yuv[0] = (int)((0.257 * rgb[0]) + (0.504 * rgb[1]) + (0.098 * rgb[2]) + 16); - yuv[1] = (int)(128 - (0.148 * rgb[0]) - (0.291 * rgb[1]) + (0.439 * rgb[2])); - yuv[2] = (int)(128 + (0.439 * rgb[0]) - (0.368 * rgb[1]) - (0.071 * rgb[2])); -} - -inline void ConvertRGBtoYV12(SDL_Overlay *o) -{ - int x,y; - int yuv[3]; - Uint8 *p,*op[3]; - - SDL_LockYUVOverlay(o); - - /* Black initialization */ - /* - memset(o->pixels[0],0,o->pitches[0]*o->h); - memset(o->pixels[1],128,o->pitches[1]*((o->h+1)/2)); - memset(o->pixels[2],128,o->pitches[2]*((o->h+1)/2)); - */ - - /* Convert */ - for(y=0; y<160 && yh; y++) { - p=(Uint8 *)pix+srcPitch*y; - op[0]=o->pixels[0]+o->pitches[0]*y; - op[1]=o->pixels[1]+o->pitches[1]*(y/2); - op[2]=o->pixels[2]+o->pitches[2]*(y/2); - for(x=0; x<240 && xw; x++) { - RGBtoYUV(p,yuv); - *(op[0]++)=yuv[0]; - if(x%2==0 && y%2==0) { - *(op[1]++)=yuv[2]; - *(op[2]++)=yuv[1]; - } - p+=4;//s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); -} - -inline void ConvertRGBtoIYUV(SDL_Overlay *o) -{ - int x,y; - int yuv[3]; - Uint8 *p,*op[3]; - - SDL_LockYUVOverlay(o); - - /* Black initialization */ - /* - memset(o->pixels[0],0,o->pitches[0]*o->h); - memset(o->pixels[1],128,o->pitches[1]*((o->h+1)/2)); - memset(o->pixels[2],128,o->pitches[2]*((o->h+1)/2)); - */ - - /* Convert */ - for(y=0; y<160 && yh; y++) { - p=(Uint8 *)pix+srcPitch*y; - op[0]=o->pixels[0]+o->pitches[0]*y; - op[1]=o->pixels[1]+o->pitches[1]*(y/2); - op[2]=o->pixels[2]+o->pitches[2]*(y/2); - for(x=0; x<240 && xw; x++) { - RGBtoYUV(p,yuv); - *(op[0]++)=yuv[0]; - if(x%2==0 && y%2==0) { - *(op[1]++)=yuv[1]; - *(op[2]++)=yuv[2]; - } - p+=4; //s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); -} - -inline void ConvertRGBtoUYVY(SDL_Overlay *o) -{ - int x,y; - int yuv[3]; - Uint8 *p,*op; - - SDL_LockYUVOverlay(o); - - for(y=0; y<160 && yh; y++) { - p=(Uint8 *)pix+srcPitch*y; - op=o->pixels[0]+o->pitches[0]*y; - for(x=0; x<240 && xw; x++) { - RGBtoYUV(p,yuv); - if(x%2==0) { - *(op++)=yuv[1]; - *(op++)=yuv[0]; - *(op++)=yuv[2]; - } else - *(op++)=yuv[0]; - - p+=4; //s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); -} - -inline void ConvertRGBtoYVYU(SDL_Overlay *o) -{ - int x,y; - int yuv[3]; - Uint8 *p,*op; - - SDL_LockYUVOverlay(o); - - for(y=0; y<160 && yh; y++) { - p=(Uint8 *)pix+srcPitch*y; - op=o->pixels[0]+o->pitches[0]*y; - for(x=0; x<240 && xw; x++) { - RGBtoYUV(p,yuv); - if(x%2==0) { - *(op++)=yuv[0]; - *(op++)=yuv[2]; - op[1]=yuv[1]; - } else { - *op=yuv[0]; - op+=2; - } - - p+=4; //s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); -} - -inline void ConvertRGBtoYUY2(SDL_Overlay *o) -{ - int x,y; - int yuv[3]; - Uint8 *p,*op; - - SDL_LockYUVOverlay(o); - - for(y=0; y<160 && yh; y++) { - p=(Uint8 *)pix+srcPitch*y; - op=o->pixels[0]+o->pitches[0]*y; - for(x=0; x<240 && xw; x++) { - RGBtoYUV(p,yuv); - if(x%2==0) { - *(op++)=yuv[0]; - *(op++)=yuv[1]; - op[1]=yuv[2]; - } else { - *op=yuv[0]; - op+=2; - } - - p+=4; //s->format->BytesPerPixel; - } - } - - SDL_UnlockYUVOverlay(o); -} - -inline void Convert32bit(SDL_Surface *display) -{ - switch(overlay->format) { - case SDL_YV12_OVERLAY: - ConvertRGBtoYV12(overlay); - break; - case SDL_UYVY_OVERLAY: - ConvertRGBtoUYVY(overlay); - break; - case SDL_YVYU_OVERLAY: - ConvertRGBtoYVYU(overlay); - break; - case SDL_YUY2_OVERLAY: - ConvertRGBtoYUY2(overlay); - break; - case SDL_IYUV_OVERLAY: - ConvertRGBtoIYUV(overlay); - break; - default: - fprintf(stderr, "cannot convert RGB picture to obtained YUV format!\n"); - exit(1); - break; - } - -} - - -inline void Draw_Overlay(SDL_Surface *display, int size) -{ - SDL_LockYUVOverlay(overlay); - - Convert32bit(display); - - overlay_rect.x = 0; - overlay_rect.y = 0; - overlay_rect.w = GBA_WIDTH * size; - overlay_rect.h = GBA_HEIGHT * size; - - SDL_DisplayYUVOverlay(overlay, &overlay_rect); - SDL_UnlockYUVOverlay(overlay); -} - -void systemGbBorderOn() -{ - srcWidth = 256; - srcHeight = 224; - gbBorderLineSkip = 256; - gbBorderColumnSkip = 48; - gbBorderRowSkip = 40; - - destWidth = (sizeOption+1)*srcWidth; - destHeight = (sizeOption+1)*srcHeight; - - surface = SDL_SetVideoMode(destWidth, destHeight, 16, - SDL_ANYFORMAT|SDL_HWSURFACE|SDL_DOUBLEBUF| - (fullscreen ? SDL_FULLSCREEN : 0)); -#ifndef C_CORE - sdlMakeStretcher(srcWidth); -#else - switch(systemColorDepth) { - case 16: - sdlStretcher = sdlStretcher16[sizeOption]; - break; - case 24: - sdlStretcher = sdlStretcher24[sizeOption]; - break; - case 32: - sdlStretcher = sdlStretcher32[sizeOption]; - break; - default: - fprintf(stderr, "Unsupported resolution: %d\n", systemColorDepth); - exit(-1); - } -#endif - - if(systemColorDepth == 16) { - if(sdlCalculateMaskWidth(surface->format->Gmask) == 6) { - Init_2xSaI(565); - RGB_LOW_BITS_MASK = 0x821; - } else { - Init_2xSaI(555); - RGB_LOW_BITS_MASK = 0x421; - } - if(cartridgeType == 2) { - for(int i = 0; i < 0x10000; i++) { - systemColorMap16[i] = (((i >> 1) & 0x1f) << systemBlueShift) | - (((i & 0x7c0) >> 6) << systemGreenShift) | - (((i & 0xf800) >> 11) << systemRedShift); - } - } else { - for(int i = 0; i < 0x10000; i++) { - systemColorMap16[i] = ((i & 0x1f) << systemRedShift) | - (((i & 0x3e0) >> 5) << systemGreenShift) | - (((i & 0x7c00) >> 10) << systemBlueShift); - } - } - srcPitch = srcWidth * 2+4; - } else { - if(systemColorDepth != 32) - filterFunction = NULL; - RGB_LOW_BITS_MASK = 0x010101; - if(systemColorDepth == 32) { - Init_2xSaI(32); - } - for(int i = 0; i < 0x10000; i++) { - systemColorMap32[i] = ((i & 0x1f) << systemRedShift) | - (((i & 0x3e0) >> 5) << systemGreenShift) | - (((i & 0x7c00) >> 10) << systemBlueShift); - } - if(systemColorDepth == 32) - srcPitch = srcWidth*4 + 4; - else - srcPitch = srcWidth*3; - } -} - -void sdlEmuPause() -{ - paused = !paused; - SDL_PauseAudio(paused); - if(paused) - wasPaused = true; -} - -void sdlEmuReset() -{ - if(emulating) { - emulator.emuReset(); - systemScreenMessage("Reset"); - } -} - -void sdlAdvanceFrame() -{ - if(paused) { - paused = false; - } - pauseNextFrame = true; -} -void sdlToggleFullscreen() { - int flags = 0; - paused = 1; - SDL_PauseAudio(1); - fullscreen = !fullscreen; - SDL_ShowCursor(!fullscreen); - if(fullscreen) - flags |= SDL_FULLSCREEN|SDL_SWSURFACE; - else - flags |= SDL_SWSURFACE; - SDL_SetVideoMode(destWidth, destHeight, systemColorDepth, flags); - if (!wasPaused) - { - paused = 0; - SDL_PauseAudio(0); - } -} - diff --git a/src/macosx/cart.icns b/src/macosx/cart.icns deleted file mode 100755 index f3c9cba1..00000000 --- a/src/macosx/cart.icns +++ /dev/null @@ -1,28 +0,0 @@ -icns -ßÍÒ³ÆÕßïÿÍÐû¶±³´¶²¬¬°ºÃÇéÿÐÃĽ¶°µ³­³­ª²µ··¹´³´¸ÊãÿÊ´Á··µ³´®²¯³­¬²¸·´·¶¿»»¼µ¶Ôßÿ·Ê»¸±²²°®­±¯²°³µ¶µµ¸½ÇÏÅ¿ÄÇıĿÚÿ"·¶¹·±¯²²³³¯±¯±³´´²³¶ºÀ¼ÄÌËÎÈ¿ÁÌ˽¹ãÖÿ Ä·¸®¯¬³´³°±®€³²³´²²¸ÀÊÍÍËÀÁÉËÏɼ»ÌÉĶÏÒÿ Ä´´³´²´³°²²´±´±³¯¹ÁÄÌÐÐÍÇÄÈÇÆÍËÊʾ·ÉÉÁµ×Ïÿ-´½­¯²°°­²³±¶¼³²¶³´³·½ÄÊÏÏËÉÎÐËÅÈÌÊÆÈÊË̺ÇÍÅ´¿Ëÿ"´µ²¬¯¬¯°³¹¸½¾ÆÃµº½³±·ÃÆÏÌÍÎÊÈÆÉÇÍËÄ€Ë ÆÈÉÇ˹Ì˾¼ÅÇÿ5±¯²®¯«®²±µ¸ÀÆÈÊÐÏÎÉÆÌÎËÈËÍÍËÉÅÃÅÈÌÒÏÉËÈÊÈËÅÈɯĽ·Å˸ÁáÄÿ°³ª°®­«­±¸·ÀÊÈÓÖÒÎÊÈÆÉ€ËÌËËÃÆÈÉËЀÑÒÓÇÉÈÈÇÉÅÊÈÉËÄ·ÁŶÍÁÿ±¬­­««­°«¬²±´ÇÇÎ×ÖÖÐÅÄÁËË€ÌÆÈÅÈÊÑÎÒÑÒÏÍÐÐÑÊÄÅÈÅÇÅÂÄÄÊóÁĻ޽ÿ?¸±°°±«¬­­®¬±±²±³¿ÐÕÏÍÍËÌÉÆÆÊÇÉÆÉÇÏÑÒÓÑÎÒÏÓÕÒÒÐÔÐÃÆÉÈÆÄÃÆÇÆÀ¸¼Ã·Ó¹ÿC»¨±¯®®°°¯¯°±²³²´´°¸ÆÃÃÉÃÅÆÇÊÅÆÅÅÆËÏÒÑÎÐÐÏÐÏÎÐÑÒÑÓÑÑÉÂÂÅÆÆÌÇÆÁÈǸºÁÃØ¶ÿ¶·¯ª§ª«­¯¯­°²²±±´±¯±·Á¾Â€Æ+ÉÅÁÄÃÈÍÒÎÒÑÏÐÍÎÎÏÐÐÌÐÐÏÐÑÑÐÒÈÉÉÅÃþÁÄÄôºÅ±·²ÿö´²¬ªª©©€­®³²°±²°´¸½ÀÇÊÊÅÉÆÂÃÃÅÇÎÑÔЀÎ!ÏÐÐÍÐÏÏÎÐÎÏÑÑÐÐÑÒϼÉÅÄÄÆÉÇÉÊʹ·½ÍÜ®ÿ(ÌÃó°­­««®¬­¯®°³®±®²·¿ÆÉÉÍÌÉÊÇÃÂÅÉÊÎÏÏÑÎςΠÐÑÏÏÐÒÒÑÐÐÑЀÒÏÏÈÈÇÇÅļÁÆÄ¸¹¶¾á¬ÿ»¸¶­©¯«­°±°­®±µ¯°¯²¸¼Ä€Ê/ÉÉÆÁ¿ÄÆÉÍÏÎÍËÍÎÌÎÐÏÏÐÐÏÐÒÏÎÏÏÐÒÐÏÎÎÑÐÑÒÑÄÅÄÄÃÁÁɀǺ¸ºÒêªÿ%ؽ«¨¯²®«­¬²±®°±±°´´»ÅËÌÍÊÆÄÂÄÇËÏÍÍÌÌËÊ€ÌËÍÑÑÏπРÑÑÐÎÎÍÎÐÐÏÍÏÑÐÏÒÓÄÀÂÆÉÆÃÂÁÀÅ»²·ÁÛ©ÿ%ÜÁ¨ªª¬­­®¯²°°±±´º¿ÈËÉÈÊÆÃÃÆÉËÏÏÐÐÌÍÍÌÌ€ÎÌÍÎÏ€Ð#ÎÏÐÒÐÑÎÎÏÍÎÐÏÎÐÐÏÐÔÓÉÊÇÆÃÀÀÁÇÈÄ»³¶Áשÿϱ¬§«®µ°°±¯¯¹¿ÇÇÎÎÆÃ¿ÀÆÊ̓ÎÍ΀ÍÌÏÍÌÎÏ%ÐÏÏÑÏÑÐÑÏÎÍÍÏÏÐÏÐÏÐÏÏÒÆÁÆÁÆÄÊÆÈÎοµ½ÂÏ©ÿº±­€¯®¯·¾ÆÍÉÈÉÆ¿º»¿ÆÊÍÐÍ€Ì ÍÏÎÏÎÍÍÌÌËÍÎÌ€Î'ÍÌÎÏÐÑÐÐÑÐÑÏÎÒÒÎÏÏÎÍÏÏËÏÐÂÇÇÉËÊÉɯɽ´Á´Ù©ÿ!·±¯³¯´»ÅÇÈÆÅÇÆ¿ÃÆÇÊÉËÎÍÍËÌËÊÌÍÍÎÍ΀ÍËÍÎÍ΀ÏÍÍÏÑÑÎÏÑÐÑÑÐÒÑÐÎÍÎÏÎÌÇÉÈÎÇÇÈÈÅÈô¿¶â©ÿ¶µ´¯²ÅÈÂÂÆÇÄÈ¿ÆÍÌÌÇÉ€ËÊÌÎÍÌËÍËÌÌÍÌÍÏÎÍÍÎÏÏÍ̀Π-ÌÍÍÎÎÍÌÎÎÍÍÎÏÐ€Ï -ÊËËÊÍËÊÊËÍ̀̀ÎÐÏÎÐÑÐÏËÉËÌËÐÒÒ€ÏÎÎÏÐÑÑÏÐÍÎÎËÇÅÄÉÈ€Æ ÈÇÊÌÉÇ·¾¹Ìªÿ%Ù¹«³À¹»ºÁÇÊÆ½¸¼ÌËÍÍÊËËÌÌÍÌËÍÌÍÌÌÍÍÏÐÎÎÐ -ÎÌÎÎÍÏÐÏÐÒÒ€ÏÑÐÓÑÎÊÈÅÂÄÊÏÊËÄÄÆÇÆÈÍÇɹ·¸¾«ÿQº«±´¼ÆÆÂº¸¸»ÁÆÄÏÍÌÉÊËËÉËÌÌÊËËÊÊÍÌÏÏÐÐÏÏÐÑÑÐÎÎÏÏÐÑÐÑÑÐÑÐÏÏÌÇÆÆÉÊÈËÍÉÈÇÄÃÄÅÃÇÊÉȹµº°«ÿÊ®®·Â¼µµ¸¾ÆÉÊÈ¿ÐÍÌÌËÊ‚Ë7ÊËËÌËËÊÎÎÏÏÐÎÎÐÒÐÌÍÎÏÐÑÓÑÐÐÌÉÅÄÆÆÂÁÆÍÇÇÆÄÉÇÅÂÁ¿¹¿ÉÊɼ·À­«ÿØ®«´µ»¾ÂÂÅÅÇÇÆ¿ÎÎÍÌÉÉÊÉËËÊÊÌÌËÌÍÎÏÎÍÍÐÒÑÎÏÍÎÑÒÓÐÉÅÆÆÅÀ¿¼Å΀ÇÆÆÄÄÂÁÀ¾·¾ÉÍο´Â£¬ÿ·©°±ÂÄÿÁÄůľÊÎÌÊÉÈÉÉÊÍÌ1ÎÍÌÏÏÍÎÎÍÎÏÐÐÓÑÌÅÂÅÈÆÄ½¼ÄÎÔÕÖÇÇÉÉÆÄÂÅÀüÀÊË̼´Æ¢¬ÿŤ²¹ÃÃÁÁÃÃÇÈÊÂÇÎÍÌËÊÊËÉÉËÊÊÌÍÌÏÑÑÏÍÏÎÎÏÏÉÅÂÃÅÇÄ»¿ÈÎÓÒÑÎÎÏÇÆ€ÅÂÁÃÄÅÄÄÂÂÈÆÄ±Àº¼¬ÿÈ«±·¾ÃÂÃÄÅÇÈÇÂÅÐÊÊËËÉÊËËÌÌÊÌ€Í'ÎÎÏÏÐÐÍÎÍÊÂÀÅÆÃÀ¿ÁÉÏÓÔÐÎÐÐÏÍÎÅÂÇÇÄÀÄÁÆÅÄÁ½²¸Ä°ç¬ÿ0Ø´¯¹¾ÂÃÀÄÇÇÉÅÈÁÏÊÌËÊËÌÌÍÊÎËÊÎÍËÏÏÑÑÒÎÇÂÃÄÆÃ¿¿ÀÇÍÑ€ÓÐÏÐÏÒÑÎÎÆÂÇÂÂÅÆÃ¾½½À½¸¶¹¾Â§Ïó™ -·ÁÇ»©£«­®Â×— -"%QWQNOYLeºªšŽ¼’‰ - 2_SPPNYFˆ¾¢š¿‰ -##6#“Íp›pˆ8B\!-(-L\RLPXT_¶©–œ½ˆ - -  *9`\_]X_J–µ—£µ‡ - -  -*8l[W][^E†¯¨¦µ… -  .Qr[\\]ZT™©©®£„ - €$ )$ -   ";g^Z^Z_[[¦©§¨jƒ -  ,  - - -   -9SN=o“ƒl`da[SX`vkqvvtylhUJ/‹ -ñàå×ÁÁÀÇÙæñïÿßâÕÎÉÅÆÆÉÄ¿¾ÀÌÕÚéÿãÖÖÏÉÃÇÅÀÅÀ½ÄÇÊÈÈÄÄÈÌÞãÿÝÇÓÊÊÇÆÇÁÅÂÆ¿¾ÄÊÉÆÉÆÍÉËÎÇÉèßÿÊÝÍÉÄÅÅÃÂÁÄÂÅÃÆÇÈÇÇÊÏÙßÒÌÒ×ÕÃ×ùÚÿ"ÏÏÐÊÄÄÅÅÆÆÃÄÂÄÇÈÈÆÇÈÌÒÎÖÞÞßÖÎÑÝÜÏÌöÖÿ ÚÍÐÅÇÄÈÈÇÄÄ€ÆÅÆÇÅÅËÓÝàßÞÓÕÛÞâÜÏÎßÛ×ÉâÒÿ ØÅÇÉÉÇÊÈÅÇÆÈÅÉÇÆÈÄÅÂÌÔ×ÞããàÛ×ÛÚÙ߀ÞÑÊÜÜÔÈêÏÿ-ÈÒÁÃÅÃÅÂÇÈÅËÑÇÆÉÆÇÅÉÐ×ÝââßÜàäÞØÛßÝÙÛÝÞßÕÍÚàØÇÒËÿ1ÌÍÊÂÅÀÂÂÄÊÌÑÒÙÕÈÌÑÈÄÊ×ÙáÞàáÝÚÙÜÚàÞ×ÞÞÝØÛÜÙÞÕÌßÞÑÏØÇÿ5ÊÇÊÆÆÂÃÇÅÈÊÑÓØÝãááÜÙÞâßÜßáàÞܨרÛßåâÜÞÜÞÚÝØÜÜÙÖÑÊØÞËÔóÄÿ ÉÌÃÉÆÅÃÅÈÍËÓÜÙáââáÜÚÚÜÜÝÞßßà×ÙÜÜß‚äæÚÜÛÛÙÜØÝÚÜÝ×ÊÔØÉàÁÿ;ÈÃÅÅÄÄÇÉÃÅÌÊËÙÙáèåâÝÔÖÔÝÜÞÞÜØÛÙÜÝäáæäåâàããäÝ×ØÛØÚØÕ××ÝÖÆÔ×Îñ½ÿ?ÏÆÇÇÈÁÂÄÄÅÄÉÈÉÉÊÔâèâàÝÜÛÙÚØÝÙÛØÚÙãåæçäáæâäèææäçãÖÙÜÛÙ×ÖÙÚØÓËÏÖÊæ¹ÿ diff --git a/src/macosx/openfile.h b/src/macosx/openfile.h deleted file mode 100755 index 2a512d15..00000000 --- a/src/macosx/openfile.h +++ /dev/null @@ -1,11 +0,0 @@ -#include -#include -#import - - -int openFile(char * r); -int openBiosFile(char * r); -int configKey( int key ); - - - diff --git a/src/macosx/openfile.mm b/src/macosx/openfile.mm deleted file mode 100755 index a8ba2b5c..00000000 --- a/src/macosx/openfile.mm +++ /dev/null @@ -1,40 +0,0 @@ -#include "openfile.h" - -int openBiosFile( char * r ) -{ - NSOpenPanel *oPanel = [NSOpenPanel openPanel]; - int result; - NSArray *filesToOpen; - - [oPanel setAllowsMultipleSelection:NO]; - [oPanel setTitle:@"Open Bios File..."]; - result = [oPanel runModalForDirectory:nil file:nil types:nil]; - if (result == NSOKButton) - { - filesToOpen = [oPanel filenames]; - NSString *aFile = [filesToOpen objectAtIndex:0]; - strcpy(r , [aFile UTF8String]); - return 1; - } - return 0; -} - -int openFile( char * r ) - -{ - NSOpenPanel *oPanel = [NSOpenPanel openPanel]; - int result; - NSArray *filesToOpen; - - [oPanel setAllowsMultipleSelection:NO]; - [oPanel setTitle:@"Open Rom..."]; - result = [oPanel runModalForDirectory:nil file:nil types:nil]; - if (result == NSOKButton) - { - filesToOpen = [oPanel filenames]; - NSString *aFile = [filesToOpen objectAtIndex:0]; - strcpy(r , [aFile UTF8String]); - return 1; - } - return 0; -} diff --git a/src/macosx/savestate.icns b/src/macosx/savestate.icns deleted file mode 100755 index edd79b95befd9d9985601dc38e3ce9027bc53888..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41161 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 diff --git a/src/macosx/system.icns b/src/macosx/system.icns deleted file mode 100755 index c39d02f0f40bf0dd2b01731d8fff3a94eb80071b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43333 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