diff --git a/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/AnimationAppExample b/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/AnimationAppExample index 6c4e12b39e..8b2307c77f 100755 Binary files a/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/AnimationAppExample and b/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/AnimationAppExample differ diff --git a/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/LaunchImage-700-568h@2x.png b/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/LaunchImage-700-568h@2x.png index a1cf1c2eff..0a1d33541f 100644 Binary files a/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/LaunchImage-700-568h@2x.png and b/examples/AnimationAppExample/Builds/iOS/build/Debug/AnimationAppExample.app/LaunchImage-700-568h@2x.png differ diff --git a/examples/DemoChanges.txt b/examples/DemoChanges.txt deleted file mode 100644 index 3bad25e6a3..0000000000 --- a/examples/DemoChanges.txt +++ /dev/null @@ -1,72 +0,0 @@ - -AnimationComponent template: - - base class for constantly repainting window. - - member variables for getElapsedFrames() etc. - - - -OPENGLComponent template: - - methods for load / draw object. - - 3D Camera object and mousehandling. - - - -AudioTemplate - - simplest waveform drawing of input. - - -07719784(0)995 - - - - -DEMO CHANGES: - -Sidebar: - dark grey background white text; - -Welcome: - Bouncy logo - Colours - -Animation: - background (to texture/dark grey) - content - -Code Editor: - dark grey background, white text - -Dialog Boxes: - replace aluminium with texture background - -MDI: - replace aluminium with texture background - -Multi-touch: - darker grey background - -Transforms: - replace aluminium with texture background - -Windows: - texture background - -2D Rendering: -Fonts: -Image formats: -Settings: -FilePlayback: -Latency detector: -Recording: -Synthesisers: -MIDI i/o: -Cryptography: -HTTP: -Multithreading: -XML & JSON: - replace aluminium with texture background diff --git a/examples/OpenGLAppExample/Builds/MacOSX/Info.plist b/examples/OpenGLAppExample/Builds/MacOSX/Info.plist new file mode 100644 index 0000000000..fa92825336 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/MacOSX/Info.plist @@ -0,0 +1,27 @@ + + + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.OpenGLAppExample + CFBundleName + OpenGLAppExample + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + + NSHighResolutionCapable + + + diff --git a/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj b/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..79f513e457 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/MacOSX/OpenGLAppExample.xcodeproj/project.pbxproj @@ -0,0 +1,2134 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + F2E327A47E10F43D6991A306 = {isa = PBXBuildFile; fileRef = 50151F5E1EA38C0768AD9AC8; }; + 7FF434A451FC85BF1B79BC7F = {isa = PBXBuildFile; fileRef = 3948321FE783006946DC8F1F; }; + 96CB0F03F9B80A334DEA2147 = {isa = PBXBuildFile; fileRef = DB3D37600C745E6F62C5A04B; }; + 8A6D37A2A20E92532DE4CDE6 = {isa = PBXBuildFile; fileRef = A2A8888BB2A9B1BF61955BEA; }; + 2A954B85CEC7CB6CDDE645AF = {isa = PBXBuildFile; fileRef = 8E5DB762FF5447085518EB85; }; + 3BFCAE441B663BD739FBCCB4 = {isa = PBXBuildFile; fileRef = 6CDDF198D9632DA763449E05; }; + BEC90605659632469EAEFED9 = {isa = PBXBuildFile; fileRef = 20425A69967DA67634118166; }; + B592CCDBC97987937D3E1990 = {isa = PBXBuildFile; fileRef = 84E689978B0D7D84B1A39C77; }; + 86349C45A45EB863AAFB24AD = {isa = PBXBuildFile; fileRef = 88B4E2B52BB5B6B622243FDC; }; + EA339F19B6848D97F15D2691 = {isa = PBXBuildFile; fileRef = 7C2C344C1697462278777A3C; }; + 6243594E2BFD65B88D9F9918 = {isa = PBXBuildFile; fileRef = 525E733E59BB89937210A34E; }; + 70755FD2C3B5797C7BD66CF3 = {isa = PBXBuildFile; fileRef = 201259150E2168D8B93D9C87; }; + A449C4B4D524AF85F99933DB = {isa = PBXBuildFile; fileRef = 56B04319D227E406E44AD15D; }; + 4A3B2112EAB24C18FCD790DD = {isa = PBXBuildFile; fileRef = 25D7DC711CE171A1F8DBFF05; }; + D0E5FADCDC70B5989BE7D147 = {isa = PBXBuildFile; fileRef = 9BE0EDFED0FC2720BB3AE101; }; + D31034CCE86D686B109ADE0F = {isa = PBXBuildFile; fileRef = DD387A0509039658A5DC2AE5; }; + 5211AFD1D8E7FD62EDA703A9 = {isa = PBXBuildFile; fileRef = 75A8F56B635DA7158E472382; }; + 6A909F1AEE38A7340456EBBD = {isa = PBXBuildFile; fileRef = 82443CD4F42884B9D33A85EA; }; + 1E0BAEC7950969D956E912F1 = {isa = PBXBuildFile; fileRef = 9BBC3E0155BC3F36F21F7EBB; }; + 4FC452CEC761FB0515E83B9C = {isa = PBXBuildFile; fileRef = C62300B9478B60BCBE254256; }; + 6790BEB5EE46E3DF6332536F = {isa = PBXBuildFile; fileRef = D4A815675983D742D87E37A5; }; + D4371AC9EBB0CA9B69C81C98 = {isa = PBXBuildFile; fileRef = FBDBBE33AEF062A1457DAA42; }; + 5EB3C30963D75E7D43D6AD9A = {isa = PBXBuildFile; fileRef = BA895F5D0FC2F40DA0566469; }; + 238A6E94B07DB483C42E0D18 = {isa = PBXBuildFile; fileRef = 3ED09149246BD2CC3D114FB1; }; + 8A7C3FEF41B5A5913396E7B1 = {isa = PBXBuildFile; fileRef = 7BE9659292437455B77D53F1; }; + 148EA191DA9D3066A3C4EEEC = {isa = PBXBuildFile; fileRef = 353C4A5B04236912332BDB1E; }; + BEE9A8C926B45616AC4426AB = {isa = PBXBuildFile; fileRef = 4DDD5CACDD472784437AB83C; }; + 0A0FD3B4C732A965C2642CC8 = {isa = PBXBuildFile; fileRef = C0C66A94FBDE992AAD71C698; }; + 978A2567AA64957C61694427 = {isa = PBXBuildFile; fileRef = C3B0CE7BC50EE3F20BB261EC; }; + 913CB51D1475C7F94739502A = {isa = PBXBuildFile; fileRef = D782993D6DAF0AF948A62517; }; + D54B744850AA08DC348CE8D8 = {isa = PBXBuildFile; fileRef = F07914AFCF34610BAC0D3B0B; }; + 938FA7CCB4CD0A844BE6509F = {isa = PBXBuildFile; fileRef = 757D9E8B34634C0E899922F9; }; + 003AAB5BFC9435FA4823BA2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 014A45F4DF5D4B850A2E712D = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 015766ED6CD9D55279FC884A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 019CD85E295A7290855D0C24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 01B29765150B583E2460837C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 01D4F510A1EE5495A8A419C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + 01FC5A0075F643D703F56555 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + 0411B541BEDEC5A67ECEAA31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 046591508FC3F71F74126E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04F64700F41A639DA16732BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 0557BAAD94B3B3AFAF7607EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 05F871A5DA3290898E2EBFBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 06FB32F5B510DEC2A6D2FBCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0737A415932C93579574CE2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + 0769D44014FDF069ECA54115 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07A41B027C9FC2A6DAC801F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 07E89C9A0EBF5FF6A0A05EA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0892B622D73826BB91C8E418 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0917DAAA83C16F4D430A4961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0950F9F7698F791C6BC7626A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 097B8DA5C29B16C544CEA626 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + 0B26EC9D2A47B858246A76EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; + 0C2B705429E7587EB29AAD6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 0C5D36923235127BEC48777C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 0C76BB6E3BA98DEED44473E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 0CB9B8098AB7F4CFF3991565 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0CD440EC6D9EF66E117E3EBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D158239399CB7487C663168 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + 0D5008DFFC00B074A9970585 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + 0D79BD52315BE837BAD64A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E1CA391708ADDE3952BF147 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConnectedChildProcess.h"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 0ED63C3FFD7B718988BDDAFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + 0F0458EF50C559CFF42DDC67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + 0F1752D7FC9D89588551D5C3 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 0F7BCDE5E324E86EEA86BA7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + 0F7EB01A494A7D2D347B9167 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 108D2A323EA2D7B31289AFFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 10FB75AD59E8E2AEF38167B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + 110D8C5EEF130FB1E1F7D286 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11614D602849B43F5ED92934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11F77DEDB8DDE2BC9B1DAB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 121C4D9B35F16FF170A9D4E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 1233B57573AB9503E0625ECB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12BD203CEA0CE311A5789BB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 13FC99389707E91E7EB6D000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + 13FF137ABBAC726B7785FE0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 140AFDDDAB2B88153F46692E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14254C2E6F168DB69F9F6494 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + 144BF62327063E0017BB7B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 14BAD66A370FA342144C7BFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; + 14BF2173D8CD3520B21E01E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 1542F586268CE982EE1C9607 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1565307D5DC70CAC563B579F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + 160486C90F388089629BA392 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + 16094015FECE7F7A1EE6B751 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 1633D4A7385E8AB77FB6723E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 16421110FEB104E290E3F13C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 168D70A9989ECA609D355DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 169C1D0433B29AF96A6FD27E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 16D38AE110B44FE0D5E26F9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17077E8777B646C03C92D20B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 1742A7C8BB2AA11AE93DA43D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 1782B7FCE431430BD11700EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 179BD4E3BB66F7CC1747ADAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17A033D6C28B1E76FA8BEFCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17AB5E83E71D5864435A011B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18459D45EE3F7766AB932678 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 18E61768FC20A6C65CF73DA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + 198B97A4FB9B21A3357160C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; + 19B1556541E4426450C8397C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 1A366C1E8FF34F708C0AF994 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A424A0B9D68C68CD5B075E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1AB2337020B7AA4AD329405A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1B0BEB542ED5BA84E52AEA2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BC364DFD3A975A0CBA0AC61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; + 1BDDC4F584BE877D4DC1ED90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + 1C02F9D8BEBC13937D8D9BAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1C196D0BC6B08623601273FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1CC05551F14FFC0161D8E12A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + 1CEAFFE79A9E1A1E32C2BFD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 1D6EA6E2DC8F03826454F21D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + 1DC4AC19C53D307B6007D02F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + 1E07768DDE29F15BF4F32C48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + 1E21F56456B1A05606B1A328 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 1E6168E98312F552A0C57E54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 1E7CA4A04A182412B3ECEBF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 1ED3843AC8AC67374F6F5F77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 1F0F8E76A0B7D289D66C4101 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1F6C3ACBB74CDDEBCBFCCA57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 201259150E2168D8B93D9C87 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = System/Library/Frameworks/QuickTime.framework; sourceTree = SDKROOT; }; + 20425A69967DA67634118166 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = DiscRecording.framework; path = System/Library/Frameworks/DiscRecording.framework; sourceTree = SDKROOT; }; + 20A48C39E51031BF57458A55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + 20F2CFC88281301E30E08682 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 21273C209FE7E19C59952EE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 21FAFC1D8D92872E96F56764 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + 220732F05D2DEBC2ADF2D45C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 223B9626308B07EEEDA7C89F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22B8E3336C2DA6F5DE3CE748 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22D01A956BCD31F2C54E4E38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23E996355EF7DFDCECA97B64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23EA0178C7150CBA80E79215 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 23F1F8A1566366CCFAC8A5BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 24E54A22403128BA82D02B09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 2517140ED8C0697A51CF87AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + 254F2F62D02E4B48191083CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 2553F95186E2565315E012CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_linux.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_linux.h"; sourceTree = "SOURCE_ROOT"; }; + 25B327FEFEA517FB80B16EA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 25D7DC711CE171A1F8DBFF05 = {isa = PBXFileReference; lastKnownFileType = file.nib; name = RecentFilesMenuTemplate.nib; path = RecentFilesMenuTemplate.nib; sourceTree = "SOURCE_ROOT"; }; + 260D03D00CBF739BB3A2F604 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + 266A60D0C3095B8F7F16751E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2740DD21925484E4BC243630 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 274546C14A985F7D454E16B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 274FB7736A16D65B40E1EA71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + 275CF9CA5A34E2825DB8792C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 279A6546016EEB8F9264EB39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + 279D354D902DE91EB32B1BE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27AB89D8B21801C1528F53C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27C1C1AD957D9955A13E3A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 281ADBFFA54CFADAE46AAE79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + 2822F9B316AEF7797E0F04B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 284C742F571D494237C52C2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 28BF10B49B1D14FE05CBC5DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + 28DEE4AF47201ED83DFD5875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 28ECC3EF6106E7DB0E4F256C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 2931E23782DDD4761EA6E711 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 293D0E58C45CE26287E99822 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2951B1B0EE3CE714426016F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A274CF384892F3968889E0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; + 2A5F9649D883210E5C67CEE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A765F108608FDD8B2089BD1 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_cryptography/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 2B594B1579F4770CA36E870C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2BCD3C3BC90487E5B932FC98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 2BEA66F83F12716439729EEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2BFABFBE400EBD477EEC1F7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 2C4E26E2F6F3B5522CA9993E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CB561058728D0EA3A66AF4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CD2FBF66999807E0B86E0B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + 2CE3A9187CAA637AAF93C273 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 2D23BD941B1F4B65E5A2C2F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2D4DFDFFC93646E9C078865E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2D6A1D77D896FF6DDD5EC49F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + 2DA8BDECC570B976D34D9263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2DBFFAB8701557418A4C7CA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2E1213ABCA6E339D156C6825 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E355DED51A6E9DFBFDA84CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 2E62B2A1D5FE20D7E675DC3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EC200E7CF8C908AC3DF4416 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; + 30CBDFC5F16FD990ABC2C486 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + 3134A6BDE49CF0D3F0B12FE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 31416E7F36800B9ACAEA176F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 317988D9466ECCE83B91CD24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_video.h"; path = "../../../../modules/juce_video/juce_video.h"; sourceTree = "SOURCE_ROOT"; }; + 3197F342A372898714E25F70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; + 31AF78DCC817DE98C01E1EEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 31B42F889DD1C79540881B97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + 31CD83018DA7BED28A70EC1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32940D3F55D43FA834DAD545 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32CFACA9C637ABD27F8A874F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_android.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_android.h"; sourceTree = "SOURCE_ROOT"; }; + 32D11E8A57FD1B5250A5E493 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 332346809620F9AFA7CF3D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 338C5E41B8903F0894709201 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 33B9E6212D92FB49C792ACE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 33D5910744D9482DBA614144 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 33FDA12B0256C2A4BD51B11E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 343BF0E7697F399B08D42CB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 34CBE9CCD9B23B1405C76D9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + 353C4A5B04236912332BDB1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 3545CC1CCF501BDBFF528908 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 354636C92CDB97DAF80D1E6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 355B143DFA326CC401844099 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 355F2CA65E4117FDE2391872 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35641C490EE335DDFF004FEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + 356A77E7E341874950015BD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + 35748B2B69B3A54D19679F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + 3594634D87002997155671C1 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 35B404161217DAE32CC143CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 360B3CDCB046B9D69C6F5ED4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 36632604A700FC8F53169301 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3693D26AD61B3B089A2B9CEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + 36C81D39EEE59DF7D8AB0E0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + 37BD426B7B7DD8BB3EF562A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38043242051AD4996B081769 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + 38A0CFC456FB82927DF8B990 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 38ADFF5CB2DD15D371425F8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3901027B107F1E3047BE9DAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3935FEBDBA2F8025F602042C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 393EA74C63AFA103F5F3264B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + 3948321FE783006946DC8F1F = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 396986DB8689B7C6909777E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + 39CD252C183BBF175E1C0602 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39DAB20FE9D55152EB2D224A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39E15EA7A7D5C14DC2567263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A52ADB8D2B72A1E6F455ABA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A5C86CF6276058B0D5AC399 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A8EA18FCAE5801EF1AECC06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3AC4E835893B368AD0A3A30F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 3AD3CC5787E119E3A1F6A55F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 3B172600E3C05D62F424449B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B2C9FC5B754F29B4BFF7EA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3B3B1BB15DFF71215E86A175 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B3FC34DE0D784314690A93C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 3B719AB087869724229AF10D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B883BA33260250D6C443F87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3C90895F90CF6FA4714DBF6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CCB2447E4FA1C412FEEE551 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 3CF6CC164ED4826B4DF73177 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 3D26B83681D1E47ADFB2D8A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../../../modules/juce_video/playback/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3DCD8AA2FF25FBE6919E8F64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DF5CBEC136D13446079C001 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 3E157C0C9F33470C32DE6008 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + 3E22FC06C346385E732377C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3E3D664A12153D29FC1D42ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + 3E5E15C429B5D8BDA6815193 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + 3E85ACEDFE88D01251E25E24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 3EA7A5F6F6D13A68653F06E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + 3ECBCBB5D76AD9DDE65BD81A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + 3ED09149246BD2CC3D114FB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 3F02F103D0EA0D398FA2A95D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + 3F20765E456B1B8FF59C2461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F312C95E458F86E5D814AD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F32203D512AD417AE3548E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F57F6B58B93E88A29F90809 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3FB32BF0AB8E9BD398E92361 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_opengl/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 406587D828CD424333E55C81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 40ACA092AB6B933E39268DAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 40E971224B83783243521871 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 410C72660348DFD81F81386C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4142E8BA365FE77662B11891 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 417D4A3533F8C72814441F51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 41D42F7438B6C953A2DC5038 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + 41F9BAD0BC589CC46CFEF495 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + 426B31F8A63727D575B2C782 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + 4271A817DD6497D0023C43A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 427EF6B8A919A04D12F63829 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 42AE889B4D596FF23E2D77CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 434AB1A1510034290ED3FBA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4391785C112C65C6C1F4E05A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4411214CB9D7F986DA5A92FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 4421B5629FD22618255E5539 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 449FC2FAA282C731A58D51E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 44EFBCE30DD206F4A55E4E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 45693266645F0549AD1FEA88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + 46258D3B622AB0E2EF63F709 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + 4660BCF2E3BB5D499FA4A5EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4676425D91097FBD1689298C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + 4683DEED4D9E52F0A84FCEE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 46F845FD963442D8748D3261 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + 4717C14F84229B39FA2FA86B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 473E98AA655246EECA75EDD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 47E94C2476E8A7171A484CF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 4825BC8A3502320ED671408E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 48285F283B8D98122DB9D028 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 484ACD3191DB5BEB198EEF97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + 489D9B3F2489315DBF5C552E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 48FCAA413FA6EC7E02B33A6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + 49837BCC6CD64D108AA3E37D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AB3D9133A3357A3FDAD3BB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AB453F1DFC4EA7AE058B0EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4ADEE86E1B443E58DA6A90FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4B409B90CC47BF0477D7F6E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + 4BF34287391AB2ED382C9CB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + 4C57FEDA7D19BB3D05326948 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C9A8BA6A094DC3490CF25B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 4CAE848C3F30163816E921DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; + 4D95426C0ADAF01F92462C1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + 4DDD5CACDD472784437AB83C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 4E053EF00EC72441FCC9A6ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E4A47F8BEEF90A57C0C98C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 4EBBA20040624174084744DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F70D57A0CFEEC0D7FADCB9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F9D0FABF1E74572460D086C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4FBA6C32DE977B1330BAD5DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 50151F5E1EA38C0768AD9AC8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 502503CB0C00102976DF1023 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 506DE1D3A739746007E33852 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 509031D02C057DCD1F713B6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 509FC03682CA45E87F7E0A67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + 50CAEE20832DF292261BF105 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51713BEF84B3A58844692401 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 51C3B7D6330C765ADFB672FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + 51FDDE6DD9DC3FB98747A0E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52057B317B0FC98209D5BEC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; + 525E733E59BB89937210A34E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 52B122DC1886502CCCD16ED2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5375E8C69E76D1570BE36946 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 53890D1A9DE3751F3A19C3C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + 541C3E9F5E720BF6D99D94CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 546D112DEC6A685B52E4D7AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 54B30BCC43C6CBF57A69A654 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + 54E56E35A31C662C67992C7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5576ADF82B58BDBBCC75477C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 55C1F41C94C7C8ED73FC3288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56B04319D227E406E44AD15D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = WebKit.framework; path = System/Library/Frameworks/WebKit.framework; sourceTree = SDKROOT; }; + 56C0EB0C9E4089ACA44588E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56C2444E299E030DE7243C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56CAE507F1D59D551C26B998 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 575F4E371F82188902F74A96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + 5784477EFEEAAD041BDF34D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + 5789E773C615D393363707C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 57FE8CC6D36C0376D4065444 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58301731C17BEF7BF07541AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5848A09E20AA6FE9EF1E6898 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58C9B8F93CF63036CA33A6C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5989B7979A4446D163FD7E13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 59B2E8822B445FDD2BC590B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59C461E6BF35CEC17FB2C9DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + 5AFAF9A5651C30F1FF28A76A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; + 5B546C6ED44CAF4197788BC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5B5D589850B147BE94D01D42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + 5BB4A463E17E9C4AD5F43FFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 5BD5301D9DFF3CEA10C32DBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; + 5BF81A5EBE596AB3F3E4C222 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 5C51BB323073B2AD0320825A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + 5CD7B0F647F366AC5510A13E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 5CE4484E6BAB76C9B49E6ADE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + 5CF8CAB948FAAB9164F206B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5D998A4BC436D82C3A6E8606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; }; + 5F43D23FA8A72E66792AE5C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F49099628EF3662332FDB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F6BDD2491C4086940AAE045 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60359F3EE85F679C1D118136 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + 60B2BAA3043C667FE98E94CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + 60F110007A8248E4318D9B0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61448959C09144CC093AA715 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61596F68A47C4BEA8F9A4D68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + 619377E030188B909977D85B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 61C1B6B3336D774EAE4994F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 623C7B6BD0B564F60F1F4012 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + 62935FD655DDDCE70536555F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62ABA7CF7D0CE2D7B3F7BFCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62F8069EE12495D7BDF5BCCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6364C602FBB1C4D7915DF708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 6436F4F5D143E72BD77EE053 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 6536E6457A8B77FDCC506401 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6549876733A874A58F78CE78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6555D39D3BE572E611DCA8EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 656CA5CB0EF44C76ACFFDCEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 661DA0426C81D826ADA90BAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 663F74D8282001BEA5E93096 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 665600E48FF051CFE90C698D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66634B351B20F6B1F16ED9D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 66B35673D58EF4ABC6C50824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 66CFF6B31868957CCF9A1C68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + 67066EE59E69BCD634D38ABA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 671B91E2FBEFF3E1A411B28A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 67239C8DF5524A278253F181 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 673396F4BEBFE86BF911DBB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + 6741B65B42E9858C7B580A36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67B47838D621A526D8148308 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + 6894AE00A49D15E9C4A31355 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; + 68C292BF84E3387285884015 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 68E2ACE653CDFA7D1EFBCB37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 694EB6B22E35E09B6AB43EE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6960FFB28F8600D605CEBEBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 69AE98AB9502B4B4E7EBCD60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WavefrontObjParser.h; path = ../../Source/Resources/WavefrontObjParser.h; sourceTree = "SOURCE_ROOT"; }; + 69CA413A66B0EA204C1AFF4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 69F89AFBA54B48038B47DDED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A972E2430F4B2D9A07D44D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../../modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; + 6AA216A8B8EF4E181BCD96A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6AC21250C86C558A82EE3B25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B107438F2E31C0BF985A733 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + 6B43A5B75AB87FC3CA8D05D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 6B5BE388D982E05CD2C7BE10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 6B5D185CB49DC6746B357183 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + 6BC5C181AD876196213378C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 6C3B851F65AB406E5B6CAF7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6C4A5B3781D999AFA15F1016 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 6C5F536D935CF788C07424CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C8C142D26BAD246C4ECC102 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_video/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 6C91F33E01BD39630B255C47 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6CDDF198D9632DA763449E05 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 6CE60A4F64042BC1A2391987 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 6CF6624AD370E4716D42CEDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D1D3AFCBD704E2E3A9AB0D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D3191834A1567C5C18A13AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D36D69499FD940CAD1E7484 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 6D9EBBDDFD2AF922A6947057 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DC6E88C0FC0045CD52064F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + 6DEF5E5D162E4F32631FE2D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + 6E35055BA3436FC2F9B77365 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 6EAF92417BE40684D0FAA797 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextDiff.cpp"; path = "../../../../modules/juce_core/text/juce_TextDiff.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F0A25914D95D4F547F91C79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F974A4B1AC400251425C8CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6FA9A28DB80D43E87900A1B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + 70407DF33563B729D4758A17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7049C408D43D64C1504F6505 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 7063B929C5E98B803E0464EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + 70687CABD6ABBC69E717B73D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7069BF224A795890367AB809 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + 70C9E5BB2C3C4F1314DD8F4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 7109E1D6A2AD7A013453C922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 71159E965AD35ED1496B5866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7156B58188258F7EBE617E15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 71F494877324567960FC3F84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + 7207669F41206DC961E08FD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7246A65F3B8646D764F3A355 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 72694B9BC870AF124976586F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; + 72723038519B5AB5FFB52EB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72B3FF3E4E9060A4F06F89F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72E1B34915000641B7AD80EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_CommonFile.cpp"; path = "../../../../modules/juce_core/native/juce_linux_CommonFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73636C4935CD275E66A85104 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73861DEE4EEBFF77B6293F90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 7392F4B60E4E28A340E465BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 73B62E5AA67F4B0483ED680F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + 74E1A5ECBC09930A520D1A98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 74E37866C31A35A559E1E80D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 757D9E8B34634C0E899922F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; + 7581EDAFA0B1746EC8139077 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 759899A48CDE9705331F456E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 75A8F56B635DA7158E472382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 75CD7766A1ACC3BA17C8B73B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 7609867A9F36324EA1C9F228 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + 76372445FC076FB8D26CEEC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + 7703A0B63AFF2C5FE9587CBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + 7712C8260E9F4A7C2BD9FD63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 773BD1E9176FB073B71705A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 774B3CFCF0748FE9E5EA4597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 776FC3A674D9CCD21CB2D7A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 77802A78E9D43C940C14B0BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77A353D0E709D31E3BE00A8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 77BAA6C13A52BE0F0A42FD0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 783C910D9B34E33F4C7D270F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + 78C9531A81D34333AEF14019 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 791D605377E089529EA264D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 793E09206EDE78138AB56CC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 794DEE7E5CC51940507F676F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 795DBB9CDC6751C052A03827 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79728934D091CBA959AD2B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + 7987CDDDE250EA56F0B26A0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + 79A01A9B8A17C9419EBC5F73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + 79F7E702E92F8B23B6BCA74E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7A76BF61E569CCC96B9E16DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + 7A9C6994055A82AFC438626A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + 7B1C3855706B615C704556DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 7B751B8BF3344D7C0980DAD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B7B6659C2DD68F2373F9D3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BAEC8D30E310460FB3FC406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BD85F5BFF691F3E548BC8B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 7BE9659292437455B77D53F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 7C2A56B41F84CF25DC4D7C7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C2C344C1697462278777A3C = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QTKit.framework; path = System/Library/Frameworks/QTKit.framework; sourceTree = SDKROOT; }; + 7C388E6394CB0A8C4C919751 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7CD48F7A63EA97AF58ED7C5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7D15374142A01E2760AC4818 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D21460B496E5E03FA58654B = {isa = PBXFileReference; lastKnownFileType = file.obj; name = teapot.obj; path = ../../Source/Resources/teapot.obj; sourceTree = "SOURCE_ROOT"; }; + 7DDF23FA0DDE4FCFB121CA68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 7E278ACE0E80F59FBEB3122F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E5D04471A75DF9057A4D73E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + 7EEFCCCD23C883F6B797834E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + 80465B70BFD2A13EDB18B702 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 80648C9ABD2B763398568A0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 80A6B9266A11D6977AD84546 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + 80BE3657BDC9B08AB3570055 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80C983055BC197AE9FEF51D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 81556F6E103D6843193EA1EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 816CA082336A8BC8A9AA61BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 819B5DAEB3840F04881F7CBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 82327EBDDBDE6104A0FFE08D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 82443CD4F42884B9D33A85EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 83619BFC8B92A2B5F17F596C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 838BB45D693ED0AAD43B93C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + 83C4DBF3382367051A65FF4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 83ED74D05C2699811929138C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; + 842FF0D158A48BD9C1651800 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + 84E689978B0D7D84B1A39C77 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = System/Library/Frameworks/IOKit.framework; sourceTree = SDKROOT; }; + 850622AD96A6D025EC1E832D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 850E016A9EA33CDCF888D7AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 85379D9BB0BA7D60CFF83DC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 853E685A7CBF56CB4A532768 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LAMEEncoderAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 856F3C72739BD34C8CA40F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8594A236A434383AA96AEB53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 8768714C4890B02A1719AC89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + 876EE7E42127474428BE3BFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 87C173B4D57F00E5523D3395 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 87EBB9223B9943D09D0ABA97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 88060C7661160C61E794D2B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + 880A65D7F29BF8701826BF81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 887EE77979249B8A3E7C2C49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + 88B4E2B52BB5B6B622243FDC = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 88EB915831B819EC3B7B124E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 89CC7514E6F2628CE82591BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 8A011075C19F974A22685EAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A67491E410C9DB6523DABF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 8B1374A21A81C82233EBC523 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; + 8B743E5BA29E435BACFE17BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8B8CEF7A6937C76CA7642C8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 8BA590FF6DD42B77C70BA092 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 8BD7E643486B7C1968E68D51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8C4045D24297D10F0EC9348F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8C69B0700CBEF4AAD6F41B08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D11B58353EBDC8EBE9C641D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D330180BEC5572287AB158A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + 8D57423CD5A1B516B5374499 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8DBDCF6753B9AE327FC8E382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 8DFA760FAD9756305F9C7515 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; + 8E06EBA4362C66A9040A2EC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 8E0D42B79853ED7FC60F931B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + 8E5DB762FF5447085518EB85 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 8F5EC320CBE18D8923C7D3EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F81943FE96DB8DD0ABB9DF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F9A2F59A71422296C56C8A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FA29927B18439A066241F38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FAA47BE39D087684520C15F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 8FFF7C1572807209B9A8A08D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 907D08843439A347B3E2A869 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + 91A5A6A217FA091F2ADBE3C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 92655A59F40624CBDA9194B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 92C99A9D9E9BCABE2AE26B9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 92E26ABEFD096B05F99EE036 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 942393EC874CEC183B67641C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 94D011BBB3D330AEDAC86D11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + 966F24941F855EA74A2A8914 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 972D271918F957FB6FCD6CFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 975BBC01D0C62E087E6246ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + 976CA25A81DCEEA8E07D2508 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 976E37CE9482096F8A82A8CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 97C71C2DD318EDB304FC1CEB = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_extra/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 983FBC7E850263512E41D13D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 985C549EBDB26AF7BFD6E8A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; + 9954A5B8424CE9ABC802AC8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; + 9986CD0D1752D063F3DC2652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99BF73D0D5B995E84BAB52B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 9A67CA8503FB1E02090F5FAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9AD78BC87097481DDC1815B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9B9B8DBEBEA5051A602DA6C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BBC3E0155BC3F36F21F7EBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 9BE0EDFED0FC2720BB3AE101 = {isa = PBXFileReference; lastKnownFileType = file.glsl; name = FragmentShader.glsl; path = ../../Source/FragmentShader.glsl; sourceTree = "SOURCE_ROOT"; }; + 9BECE88C6AB34861AF408C37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C0906C06A9D1558C2982BC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 9C52165BC295637D495791C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9C56D1AE6B7768F6E27D8F31 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 9CABACB9A2FF46A8B3059D8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + 9CF41B989B4516C8DB6CF7A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D87175DE3988B783002560D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9E46C8356029EC009F7A1C46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + 9F3DCE572188E0085FCF1956 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F8B21E7C672840ACD02251E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9FBCE80E444BA9E69C3F6172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9FE8D5E52AC84BCDEE8B414B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + A021D917DFD4DD5D4703913C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + A061F1646238A35ED0BDA32A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_events/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + A07D0C5C60BE446FD41ADE51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + A19D3050F95BFD17129EA013 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + A1C21D6CF6F456E34A0E7FBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + A20DD4F2960264FC20095777 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + A23A20A098747A2449C47047 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + A2A8888BB2A9B1BF61955BEA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + A2D465168084C9FFAE312E3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; + A3C0B621A37595B09825518B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + A3EFD0BE919B2F7AD7295F2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; + A4E723D11ADD694C4A3D318C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + A4F075DFF243F6BB90CD5950 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + A59F49F937F6C5E6E35B8B86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + A5A883D3DAD1D2BF2F044379 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + A646D188288588F6FB9E8C53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + A6B50D109A50FD28AE1D3F9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + A7EBBF2BCCB164C8F5C0423F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7F58281FD0F07ECE6D261A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + A80BB5CEC5BB5398B155F980 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + A8451C0D5D0549A7D923F2D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + A85BBB0551113A7CD910AA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + A878B40B811C4B83658F6A60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + A87A60BF515078DF23E1F737 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + A8A190EDD8CED5ACF3AEE2C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + A937C45D53029A6BD6DA500B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + AA54E821F947C9A9DC359693 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA55BD139AEC1B8272ABE461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA6A795F8A452B980C91770B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + AA8A3E0CF7623249B2907DB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + AABFFB2D2D9F9BB39C95BA25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB3CF49071E6EEF217783B8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + AB540AC77FB76E3B498E98A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + ABCD1CB78CD58A79D0A728D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + AC2A502E05BB93CB0840344D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + AC4730773DE422AE346C6D6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ACD7FAE9EE61A4085580912B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACEC05FF097A56FB7F3EF6B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + AD0DBF0531130EAD4DF2A8FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + AD16BF0DECF3EEFD7AE11457 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + AD7CF8E55597C12D264E26D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + ADA1339F195F699D7F5369F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + ADFFCCFC47120AF338FD8C22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + AE86A03508278775CA9F250B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AEA5E43C19B3566D5B2655E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + AEBF8C2FCAF972F014D43738 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + AF5C2B3C5CF657FA722F9A68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF6001FA947F3A7DF15CBF8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + AF80D629DF6AF8EEB11DE598 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + AFBCB46AC109F4982F012C0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + B05257BD950E35B28F9E88CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + B0E21FE9C68B99E4C751DF13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0FB5996D7068C230DC6D8E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0FE76D91413C32F64610594 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + B121FF657B96C6FFEB2C2DC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + B1440ED412E2277340903AB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + B1B76C913B09E3F684F76824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + B1C695101BE3D6A84272B6C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + B1C6C92A15E4605A40404381 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + B1C7A541DFF31B38F0A17C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + B1E4A1F07EFCCA50D963CF4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + B25D9BF429F016963A545287 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B28DFE72ADE03393BE8B764C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + B2A85C1813641574E4D15BF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + B2B042F73709D0057DE8A51E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + B2D09E29CCC80C27956BF314 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + B2E2A77534D9104C78E8F3E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + B2EE6F9509A435D69B2508AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + B36AA5249B5B2242486B4153 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + B49E98EF01462277526C417D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5A8A3579F03D2CCE4894848 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + B607DF0E27752A1B9A863CC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + B68B3E0BE0396ACD3CA52250 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + B73DF787FC51F08E279923A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + B7612EA3B34C6AC48079A447 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; + B77BD5847F412656109A378E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + B84BA430E8F477AB2EDC45CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + B8A6BFA35FDD1F48C1E4E688 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + B8C996306428DFB642CBFB14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + B8EF2AF777B74156958B72CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + B91A8133C3474D98AB6300CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + B97C816F9CBDE00E567E3144 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B99DD4C6D8C8F58C83ADD7CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_win32.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_win32.h"; sourceTree = "SOURCE_ROOT"; }; + B9B0A3004948FA2387C28829 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + B9EB38A9A966EBB9A359DED3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; + BA5A9BB00CD8BEA408371875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V1.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA5DE80E67A74A41D57E7663 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA895F5D0FC2F40DA0566469 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + BA99F87A1BC936C566A0DFA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB4B7332B8B456297344608E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + BB7442FBD89AFCE6AE14E0AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB8AD6D858D518E804AFA0C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + BBECF34C65D1DD35DE8C6F9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + BC35263317084BA60132B43D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC586A21CD33D786C4472FD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + BC7C088D053711418A5A5698 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + BCD3969359F2EB2EB970C412 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + BCD60A4DBAB2007ECBCAB17D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; + BD4C015152FD7519E50C9BCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + BD69D8ABDB6741F717E0DD1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDB1FA875F2C8263E3D2650A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + BDBC99D827A9F6C5B1B0ED5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE4CF2165544FB2D720E1DD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + BE635BACA572437D8DFDEEC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEA260469BBB48EB998AA4DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + BEAB03E92089D87D7D6A2353 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + BEFB2034FC381E2DD019E372 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + C007BC3372F44746BD6E98C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + C02F8C844FAD835F09408406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + C04188D62834AAE749694751 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + C05E16AAF0CF0676135C0C9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0A37CB25E8C40792454E820 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0AC297D17FA68BBAB417A64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + C0C66A94FBDE992AAD71C698 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + C159C35E078C5B5B9BFEFB52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + C1A299D4A5AAEA645975EEB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + C24880A7007CE75B7F8BBD71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + C2B61447889E781465E49AC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + C33DDF76E058D3E11E61DE63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + C3A68B435020C80FC29DB89D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3B0CE7BC50EE3F20BB261EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + C3B93391519DA8A352766580 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3E4252156EDD0E001A10DE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + C407BCC7CEC505584B25682E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + C45B9350ECC13FC8096D3873 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + C48140923F2A4DEDBA063DFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; + C50DA493E57234B3820BD77A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C52847A293D0E8958E88DFD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + C568E8888819EAFDCAEAF04F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + C57BA5F014343276128923F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C599A55407B6EB6AD55AE73C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + C62300B9478B60BCBE254256 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + C64D47A361026A76FC9BA9B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + C66D4CDC39A565833178EB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + C6B9F01A0AAA2A1DA8122912 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + C719606229204044D7C85339 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C7BABEEA061F989A0A74F708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + C7BB125979760AE4264BF23E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + C7F47C1BEDD7EE514BA40C27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + C8B71823C30A65066A852942 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C8CEDA86517FE447F3A3DCF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + C8FDA55A72DC4A244703C8F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C936095A19665316F5B675CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + C9CD8A1AB4DAA664557DEBDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; + CA3D1FE94B500CF86704EB13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + CBF3ED31F58A0874E0E9A64B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC0ED57DE1266CEB11001787 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC3E6F8333AA2D98AAC1235E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + CC42DBFB2ABA84046DD69E1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + CC83A115FBF5C65772BBFAE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../../../modules/juce_video/playback/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CD27B64646C58118052C3459 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE11BC7911220E9CFA1283D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE28252C42BBA94C930CF460 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; + CE9CAFB040BE90431A432537 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEB259E27BB64776AF6BF076 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEE5BF72C9D7E467212D8973 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + D17F209C6915C948F90F1349 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D276367530731B2C732C50CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + D37936ED5B5A415DF1F5F2C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + D8FDF81708D362F909F5421B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LagrangeInterpolator.h"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + DB3D37600C745E6F62C5A04B = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; + 5802E3490BEAFD892C837E2A = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenGLAppExample.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + C50CE0A0485507647C78F30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC1AE8EECC77B1915D24C9DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + CD44827B5286ADE94DB0B79C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + CD71ED4911896207B303106F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE5CDD52C447D5DCC7DE1259 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + CED808C5809FF89D32131CB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLAppComponent.cpp"; path = "../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFA38098B5AD00F5C0DF4D4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + CFEF06EB93957DEAE00A0030 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + D01183D850457CA55516B3B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D05F7D67DD28FF1156CBED39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D1A2603E46734D31975B7540 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + D1C13988EF76674213DF92F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + D23A9E25612E33C0C6AAA09E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + D23F862EE7BAEDAC24479902 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + D24F3C46F1A46422C080A0A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D258105EC6398A3984FD8DA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + D2C557606FD68958DC545A2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + D2EBB6A92000349A92809F02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + D476B9FCEF30511BC736C744 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + D4A815675983D742D87E37A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + D4CA818D9DA2269EBCE376DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; + D521465375DD0F179649668B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + D53FD6223C4A997E441E1F80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + D54457FBB5D7B2362E69D9AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + D677D05978DC2C67386B63AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + D67D8599E2F89D673EA36D9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6AC70136461C6F3FD1987F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6EDBF07E4162364DB8825D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + D74B9C3F462333A72B889773 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + D782993D6DAF0AF948A62517 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + D85876E3373EF8AC5F39A5A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8C269D8BFE34CF33A2B243C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + D8EB2E5BDF6806B37482DE70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + D8F75466ADD0287144087C5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D92B6F28EF1D46625BC2A18B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D93861E50D66746DF070A158 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + D99465F417B8D56C2C9A212D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + D9E4C045A178EA678116D439 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + D9F41579025D12F2CCF079C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + D9FDDAC72C576633FD41B2E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA12229986D485B2E2DE059B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA223B209C3FF00A91FAA1DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + DA67F5A5693214A2189039D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; + DB348CBC6734FFD0B7ED8A34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + DB59695708606C9604E11F0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC209283C24A9C0B601DB860 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + DC254EFF0D95657D703FA8F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + DC3E9EDCD85270B2E9D33BF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC9D4AE01FB7CF8D2877B198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + DCB52EFF8A9F5D9F6CF3D3FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD387A0509039658A5DC2AE5 = {isa = PBXFileReference; lastKnownFileType = file.glsl; name = VertexShader.glsl; path = ../../Source/VertexShader.glsl; sourceTree = "SOURCE_ROOT"; }; + DD542B6F61E6C27A0D5A5F2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE00116B59A20E5B69367B70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE1A6A1C0CCC94A3E3A887E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + DE3832516FB6969C0E3210D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + DE8A6DAED12A99017D7341E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEE9366528ACF7F2CC0A9F73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; + DF2B90185FBA2C86DE767F46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF42C1B300CA66580D0AED1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + DF53D8FD5DE7B15694D26E91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + E041ABD2C503FCB7EB7E49F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + E046CC53401A9551BDEA2D83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + E0544ED1BC8832C4D1296FAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + E068F61F296A52D25E329978 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + E0E847621EEAEEFB21B87986 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + E0FF460CC2AACA09D6C7412E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + E10DD1F7E7994B77BFF7C8AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; + E22C09309C11DAE1AA0AA148 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + E273A9AEACF13BC595F82289 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + E2B10A7DBF2B35A4C3A1DE21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2B33608E3097EE1E7801707 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2EEB444EC638B0C72A8A7E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + E31FDA8F23FEAB726361C8DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E3381BC529641894F95F9AD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E388DABC27B6A417CE9B7F7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + E441F10A3241806474779D5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + E45F076842C926BA5400B70B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + E47A2EEA203214804C09378D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E488221DF5AFED73C4518AE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + E49C04EACE55BED74E156911 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + E4D98F92A6646FC7CE4FFA1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + E50BADB05430CBE8BF33F8F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + E54011F26F7D9AD38D437851 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + E5D5588D0F985DB2D5A8BAF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + E5F97C758712010CF0E6D1B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + E62A008F49C8FB4ECEB6CC37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + E66B64B5619AFCB389836C06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + E6AB1D98C43E9017F546D707 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + E7D88F20FB6FEA84BFEC67D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7EF18BE4F22063894C6FF61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E81332E1BCBF978D86F92DFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + E83074E632966778B10AF088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; + E8ED8CA85BE4E1BF7C5ADF53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + E90FDEEB9C536E5E1124B00D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9164448EE60F4DB5F2A14D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9BB6F5CCB22B9CBEA0DFAB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + EA19F37E2AB4C42A1ACF17CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EA2BE0B9C8E1546D25A02D67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA53B7692D5E224F0477A791 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA77ADEA8100DFE7C2E0ABB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA8B6054D2E6C204214422CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + EAE65B593000E1AFCA63AEE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + EBABE678E857A993B3753B83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + ECD6C0DDB8587984580C96B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ECE3837512B3E620155A8432 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + ED4FD41F6F5825084831A29C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + ED9CF9B1476F08D13A1E636E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; }; + EE49ECC80B5D7D0DEFA0EF7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + EEBA2A14B5473C1F19BF3D3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + EEDD0D3608DCB2E459F3BF24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + EEE157CFCD553CC2F4D15CBB = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_devices/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + EEE1F3257D7C9A527D6647E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + EF0061905AEAC90A86145D40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + EF073EC891B2731068542C61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + EF70C0EA201D702D22D06396 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + EFDD05E3C006BA460761594C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + F0074D8C86D3265AF7889CCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + F05511231DB8D8615D4A336C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + F07914AFCF34610BAC0D3B0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + F0A8EA8AEA260ED20ED40247 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + F0F7DE7E362D726569559501 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + F1830606ECDFB808597E5A8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + F1BE04264A690B5EFA99FCA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1EB95EC0156CE6D16280A45 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2A3916171FCB01D6A68DD87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2C08F60BC16ABA3BE1F3A36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + F2DE7A0F77BCCBCFEEC0B500 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F2DFFAA96667B5897702E4B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + F2ED5A15267070B560EFFA2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F356FC782C13333907F2EE17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3813BA8E8B9F775D0A049FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3868CB33CA2805C31829647 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + F4B9C009E75153F873F4AA25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; }; + F4EA57711C5E9DC6746728FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5DBF428153938207320675F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5EB78612A35D53F005597D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + F6086AE27F4DEB9C75A8FFB5 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + F616A5D8C022126707081DC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + F6625EF536284FBD73183EA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + F67C770333721A5D9BFEFCF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + F67FF8B4FA78D4E285AC0242 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + F6A4E47EA1AA7392CFA6D8AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + F7487F2DEA61873B12C6CAC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7D32C5CE1D85C542190C26C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_graphics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + F7D98798130B4AB14E4E82F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + F7E246B8F8600787C3F10552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + F84732FE450246B23C813288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + F879E952E9ABC6FB12503AAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + F897C7899B56E5C6D5523353 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + F8E83B5544E2379CB0B323D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9022636187FF444897371F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + F937ACD8AA15A27F13F85A88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + F93D065EB34B3E5270F5626D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9A0A82AA4D8EDB4B2305849 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9EED40DD78515ADF3189694 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA6BDA8882AAEE02FB04E36F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA9CE8D2EEF012CB74C1E8CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + FAD5D9101D6427D96558C37F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAF22574F9AFF74820925F08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB748B4E5E7E7CB38BBF07AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBA60035993B1D5796D202DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FBD1053AF6BF9575682BCAF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + FBDBBE33AEF062A1457DAA42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + FBF25BFCF0541B78909B16C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + FBFB17CDB832B533BEF3BFAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC00E5ABDD903617E7498A0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC1E4BFBBE4B43200F8D30D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC2F6663A0086F14B8C0144E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + FC3CA13BBF45F16F19AE3047 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC50C6150E60281125E69115 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + FC5306AC9A046F7DF6CC09FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC865A2B46F423E11725FFBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + FCF5891DAC2887A6FE3EEA9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD04FE1CA7A8937A90864D6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD1A5CF76641E1CE7F29B44D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + FD2080564407C8EFE21CBC96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + FD36702E757F21E0C43E8907 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD6A6D3E26D069707DD51652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + FDB3097BE7C87FF74895E875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FDC6858C3E455F9E8376B58B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + FDFE40162E4F5CCAA833061C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + FE42628E4890B2FC1D85E574 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + FEADE63D967146EB972AA6A4 = {isa = PBXGroup; children = ( + 9BE0EDFED0FC2720BB3AE101, + DD387A0509039658A5DC2AE5, ); name = Shaders; sourceTree = ""; }; + A4D3B14A21B5F8202D2A49AE = {isa = PBXGroup; children = ( + 7D21460B496E5E03FA58654B, ); name = Resources; sourceTree = ""; }; + 3FD01CA071C629C30000EC75 = {isa = PBXGroup; children = ( + A4D3B14A21B5F8202D2A49AE, + 75A8F56B635DA7158E472382, + 82443CD4F42884B9D33A85EA, + 69AE98AB9502B4B4E7EBCD60, ); name = Source; sourceTree = ""; }; + 853E25E8F0EA391EE8D4A3B8 = {isa = PBXGroup; children = ( + FEADE63D967146EB972AA6A4, + 3FD01CA071C629C30000EC75, ); name = OpenGLAppExample; sourceTree = ""; }; + CA34E66B71A70E489DCD9028 = {isa = PBXGroup; children = ( + 11614D602849B43F5ED92934, + 6B5D185CB49DC6746B357183, + E47A2EEA203214804C09378D, + 47E94C2476E8A7171A484CF0, + 8C69B0700CBEF4AAD6F41B08, + E10DD1F7E7994B77BFF7C8AF, ); name = buffers; sourceTree = ""; }; + C2F146BC4298BBB96A2A6339 = {isa = PBXGroup; children = ( + 0917DAAA83C16F4D430A4961, + 04F64700F41A639DA16732BF, + FD04FE1CA7A8937A90864D6F, + A937C45D53029A6BD6DA500B, + 0557BAAD94B3B3AFAF7607EF, + EA8B6054D2E6C204214422CE, + 23F1F8A1566366CCFAC8A5BB, + 31AF78DCC817DE98C01E1EEE, + 8BD7E643486B7C1968E68D51, + 7A9C6994055A82AFC438626A, ); name = midi; sourceTree = ""; }; + 4DF8616B3F357D3ECEB23246 = {isa = PBXGroup; children = ( + 53890D1A9DE3751F3A19C3C3, + F879E952E9ABC6FB12503AAC, + 0950F9F7698F791C6BC7626A, + 3B719AB087869724229AF10D, + D8FDF81708D362F909F5421B, + 28ECC3EF6106E7DB0E4F256C, ); name = effects; sourceTree = ""; }; + EEDD06AB62749ED2479EBFA6 = {isa = PBXGroup; children = ( + 28DEE4AF47201ED83DFD5875, + 4F70D57A0CFEEC0D7FADCB9D, + 0C5D36923235127BEC48777C, + 6960FFB28F8600D605CEBEBD, + C64D47A361026A76FC9BA9B9, + 72B3FF3E4E9060A4F06F89F9, + CC1AE8EECC77B1915D24C9DA, + 50CAEE20832DF292261BF105, + 68E2ACE653CDFA7D1EFBCB37, + B84BA430E8F477AB2EDC45CB, + 661DA0426C81D826ADA90BAC, + 850E016A9EA33CDCF888D7AC, + EAE65B593000E1AFCA63AEE8, + 2CE3A9187CAA637AAF93C273, + B1440ED412E2277340903AB0, + 7B1C3855706B615C704556DD, ); name = sources; sourceTree = ""; }; + 3E8C1CC521C5C0085ABD5EF2 = {isa = PBXGroup; children = ( + 06FB32F5B510DEC2A6D2FBCD, + 24E54A22403128BA82D02B09, ); name = synthesisers; sourceTree = ""; }; + 333F7FC9E4E695D243B51D53 = {isa = PBXGroup; children = ( + CA34E66B71A70E489DCD9028, + C2F146BC4298BBB96A2A6339, + 4DF8616B3F357D3ECEB23246, + EEDD06AB62749ED2479EBFA6, + 3E8C1CC521C5C0085ABD5EF2, + F6086AE27F4DEB9C75A8FFB5, + 66634B351B20F6B1F16ED9D2, ); name = "juce_audio_basics"; sourceTree = ""; }; + 5C2DC77520F6E8AB1413621E = {isa = PBXGroup; children = ( + D276367530731B2C732C50CB, + A07D0C5C60BE446FD41ADE51, + 70687CABD6ABBC69E717B73D, + 8768714C4890B02A1719AC89, + 9A67CA8503FB1E02090F5FAD, + CE5CDD52C447D5DCC7DE1259, + D4CA818D9DA2269EBCE376DE, ); name = "audio_io"; sourceTree = ""; }; + ED484B85EA0EC12853FAC2A6 = {isa = PBXGroup; children = ( + A8A190EDD8CED5ACF3AEE2C9, + 0411B541BEDEC5A67ECEAA31, + 36C81D39EEE59DF7D8AB0E0B, + 62ABA7CF7D0CE2D7B3F7BFCD, + ACEC05FF097A56FB7F3EF6B9, ); name = "midi_io"; sourceTree = ""; }; + 9116D006293FCD1E0A12EE16 = {isa = PBXGroup; children = ( + CD27B64646C58118052C3459, + 51C3B7D6330C765ADFB672FF, + AABFFB2D2D9F9BB39C95BA25, + 45693266645F0549AD1FEA88, ); name = sources; sourceTree = ""; }; + 729710EC0419FCEE902079EF = {isa = PBXGroup; children = ( + 7703A0B63AFF2C5FE9587CBF, + 2E1213ABCA6E339D156C6825, + 619377E030188B909977D85B, ); name = "audio_cd"; sourceTree = ""; }; + 6BB4269ECC3477AD8A7A32A3 = {isa = PBXGroup; children = ( + 59B2E8822B445FDD2BC590B2, + ED4FD41F6F5825084831A29C, + 1542F586268CE982EE1C9607, + BDBC99D827A9F6C5B1B0ED5E, + BB7442FBD89AFCE6AE14E0AD, + 5F43D23FA8A72E66792AE5C7, + 7B751B8BF3344D7C0980DAD0, + 40ACA092AB6B933E39268DAF, + 0B26EC9D2A47B858246A76EF, + AF80D629DF6AF8EEB11DE598, + 5CF8CAB948FAAB9164F206B0, + 880A65D7F29BF8701826BF81, + 66B35673D58EF4ABC6C50824, + EE49ECC80B5D7D0DEFA0EF7A, + 410C72660348DFD81F81386C, + C0A37CB25E8C40792454E820, + DD542B6F61E6C27A0D5A5F2A, + 2951B1B0EE3CE714426016F1, + E488221DF5AFED73C4518AE7, ); name = native; sourceTree = ""; }; + EFBCC9AA9132896CF439C9BD = {isa = PBXGroup; children = ( + 5C2DC77520F6E8AB1413621E, + ED484B85EA0EC12853FAC2A6, + 9116D006293FCD1E0A12EE16, + 729710EC0419FCEE902079EF, + 6BB4269ECC3477AD8A7A32A3, + EEE157CFCD553CC2F4D15CBB, + EBABE678E857A993B3753B83, ); name = "juce_audio_devices"; sourceTree = ""; }; + D285EE2EABEF952CC46877BA = {isa = PBXGroup; children = ( + B5A8A3579F03D2CCE4894848, + 2DBFFAB8701557418A4C7CA2, + EA77ADEA8100DFE7C2E0ABB6, + A3C0B621A37595B09825518B, + A1C21D6CF6F456E34A0E7FBE, + 819B5DAEB3840F04881F7CBD, + 983FBC7E850263512E41D13D, + 3E157C0C9F33470C32DE6008, + 31416E7F36800B9ACAEA176F, + D8EB2E5BDF6806B37482DE70, + BC35263317084BA60132B43D, + 509FC03682CA45E87F7E0A67, + 13FF137ABBAC726B7785FE0B, + 108D2A323EA2D7B31289AFFE, + 2822F9B316AEF7797E0F04B4, ); name = format; sourceTree = ""; }; + F0E2F377D5961CE0CF2EEEC1 = {isa = PBXGroup; children = ( + 5F49099628EF3662332FDB0D, + AEBF8C2FCAF972F014D43738, + 73636C4935CD275E66A85104, + 3AC4E835893B368AD0A3A30F, + 38ADFF5CB2DD15D371425F8B, + AA6A795F8A452B980C91770B, + 853E685A7CBF56CB4A532768, + 2D4DFDFFC93646E9C078865E, + D05F7D67DD28FF1156CBED39, + 6B43A5B75AB87FC3CA8D05D3, + 33FDA12B0256C2A4BD51B11E, + D54457FBB5D7B2362E69D9AF, + 663F74D8282001BEA5E93096, + 68C292BF84E3387285884015, + 774B3CFCF0748FE9E5EA4597, + 1742A7C8BB2AA11AE93DA43D, + 16D38AE110B44FE0D5E26F9D, + C8CEDA86517FE447F3A3DCF2, ); name = codecs; sourceTree = ""; }; + CD94C234A6AF95D63133D736 = {isa = PBXGroup; children = ( + E22C09309C11DAE1AA0AA148, + 4E4A47F8BEEF90A57C0C98C5, ); name = sampler; sourceTree = ""; }; + 8BB98CFCE02C8F888DEAD934 = {isa = PBXGroup; children = ( + D285EE2EABEF952CC46877BA, + F0E2F377D5961CE0CF2EEEC1, + CD94C234A6AF95D63133D736, + 3594634D87002997155671C1, + 0737A415932C93579574CE2D, ); name = "juce_audio_formats"; sourceTree = ""; }; + D7A7AC6EED05D3EFB23E0FBD = {isa = PBXGroup; children = ( + 52057B317B0FC98209D5BEC9, + A4E723D11ADD694C4A3D318C, + B97C816F9CBDE00E567E3144, + A59F49F937F6C5E6E35B8B86, + F93D065EB34B3E5270F5626D, + 1F6C3ACBB74CDDEBCBFCCA57, + 10FB75AD59E8E2AEF38167B4, + CFA38098B5AD00F5C0DF4D4D, + 4D95426C0ADAF01F92462C1E, + 72694B9BC870AF124976586F, + F356FC782C13333907F2EE17, + 80648C9ABD2B763398568A0B, + 48285F283B8D98122DB9D028, + E66B64B5619AFCB389836C06, ); name = processors; sourceTree = ""; }; + 3D87BE7DE866701CC5B6C485 = {isa = PBXGroup; children = ( + 9FE8D5E52AC84BCDEE8B414B, + 266A60D0C3095B8F7F16751E, + 1A366C1E8FF34F708C0AF994, + 20F2CFC88281301E30E08682, ); name = format; sourceTree = ""; }; + 98BF95789FAFC50466F1A1DC = {isa = PBXGroup; children = ( + 23EA0178C7150CBA80E79215, + 1CC05551F14FFC0161D8E12A, + 966F24941F855EA74A2A8914, + EEBA2A14B5473C1F19BF3D3E, + C9CD8A1AB4DAA664557DEBDC, + B7612EA3B34C6AC48079A447, + 58C9B8F93CF63036CA33A6C3, + AD0DBF0531130EAD4DF2A8FA, + 8E0D42B79853ED7FC60F931B, + D8F75466ADD0287144087C5B, + 794DEE7E5CC51940507F676F, ); name = "format_types"; sourceTree = ""; }; + D943062B41CDE85FA2B03472 = {isa = PBXGroup; children = ( + 4ADEE86E1B443E58DA6A90FC, + E388DABC27B6A417CE9B7F7B, + 6D9EBBDDFD2AF922A6947057, + 66CFF6B31868957CCF9A1C68, + 976CA25A81DCEEA8E07D2508, + 71159E965AD35ED1496B5866, ); name = scanning; sourceTree = ""; }; + B0A8A78F56D39E5C52AB1C76 = {isa = PBXGroup; children = ( + D7A7AC6EED05D3EFB23E0FBD, + 3D87BE7DE866701CC5B6C485, + 98BF95789FAFC50466F1A1DC, + D943062B41CDE85FA2B03472, + 9C56D1AE6B7768F6E27D8F31, + F7E246B8F8600787C3F10552, ); name = "juce_audio_processors"; sourceTree = ""; }; + 9DB85B0F2371EE26F3E89D82 = {isa = PBXGroup; children = ( + 22D01A956BCD31F2C54E4E38, + E45F076842C926BA5400B70B, + 07A41B027C9FC2A6DAC801F3, + 975BBC01D0C62E087E6246ED, + E0FF460CC2AACA09D6C7412E, + 16094015FECE7F7A1EE6B751, + 80BE3657BDC9B08AB3570055, + 6B107438F2E31C0BF985A733, + C407BCC7CEC505584B25682E, + FBD1053AF6BF9575682BCAF8, + E9BB6F5CCB22B9CBEA0DFAB6, + 6AC21250C86C558A82EE3B25, + 60B2BAA3043C667FE98E94CC, + 6C91F33E01BD39630B255C47, + 71F494877324567960FC3F84, + 976E37CE9482096F8A82A8CE, + 842FF0D158A48BD9C1651800, + 355F2CA65E4117FDE2391872, + 48FCAA413FA6EC7E02B33A6E, + A2D465168084C9FFAE312E3C, + 6EAF92417BE40684D0FAA797, + 3197F342A372898714E25F70, ); name = text; sourceTree = ""; }; + C9A88DFF6E95D969C2A09F24 = {isa = PBXGroup; children = ( + FB748B4E5E7E7CB38BBF07AD, + C33DDF76E058D3E11E61DE63, + 7BAEC8D30E310460FB3FC406, + 3E3D664A12153D29FC1D42ED, + 05F871A5DA3290898E2EBFBE, + 5D998A4BC436D82C3A6E8606, + 41F9BAD0BC589CC46CFEF495, + 0F0458EF50C559CFF42DDC67, + C0AC297D17FA68BBAB417A64, ); name = maths; sourceTree = ""; }; + EDEB768592E2E04E19CBBB39 = {isa = PBXGroup; children = ( + F2DFFAA96667B5897702E4B6, + 5989B7979A4446D163FD7E13, + DEE9366528ACF7F2CC0A9F73, + FD6A6D3E26D069707DD51652, + 3E85ACEDFE88D01251E25E24, + BEFB2034FC381E2DD019E372, + 4660BCF2E3BB5D499FA4A5EF, + BE4CF2165544FB2D720E1DD6, + 671B91E2FBEFF3E1A411B28A, + C66D4CDC39A565833178EB0D, + 773BD1E9176FB073B71705A0, + DA67F5A5693214A2189039D4, + 1DC4AC19C53D307B6007D02F, + C7BABEEA061F989A0A74F708, ); name = memory; sourceTree = ""; }; + 1EB689C939940E8ABE1AD59B = {isa = PBXGroup; children = ( + E5F97C758712010CF0E6D1B5, + 160486C90F388089629BA392, + FC865A2B46F423E11725FFBC, + 8A67491E410C9DB6523DABF6, + 39E15EA7A7D5C14DC2567263, + 4421B5629FD22618255E5539, + ADFFCCFC47120AF338FD8C22, + 0C2B705429E7587EB29AAD6A, + 2BCD3C3BC90487E5B932FC98, + EF70C0EA201D702D22D06396, + 356A77E7E341874950015BD0, + 25B327FEFEA517FB80B16EA1, + 3901027B107F1E3047BE9DAC, + 9C0906C06A9D1558C2982BC1, + C04188D62834AAE749694751, + 0C76BB6E3BA98DEED44473E7, + 673396F4BEBFE86BF911DBB6, + 46258D3B622AB0E2EF63F709, + 9F8B21E7C672840ACD02251E, + F1830606ECDFB808597E5A8F, ); name = containers; sourceTree = ""; }; + 312A62049C445C01FDD661BD = {isa = PBXGroup; children = ( + BC7C088D053711418A5A5698, + A646D188288588F6FB9E8C53, + B1B76C913B09E3F684F76824, + 13FC99389707E91E7EB6D000, + 4AB3D9133A3357A3FDAD3BB1, + B9EB38A9A966EBB9A359DED3, + 2E355DED51A6E9DFBFDA84CC, + FE42628E4890B2FC1D85E574, + 2BEA66F83F12716439729EEA, + 6D36D69499FD940CAD1E7484, + ABCD1CB78CD58A79D0A728D0, + A6B50D109A50FD28AE1D3F9A, + F6A4E47EA1AA7392CFA6D8AD, + 097B8DA5C29B16C544CEA626, + 140AFDDDAB2B88153F46692E, + B1C6C92A15E4605A40404381, + CC3E6F8333AA2D98AAC1235E, + 61448959C09144CC093AA715, + 6DC6E88C0FC0045CD52064F1, + 8A011075C19F974A22685EAA, + 8E06EBA4362C66A9040A2EC6, + 77A353D0E709D31E3BE00A8C, ); name = threads; sourceTree = ""; }; + 447896868A39D1BBF6C215C4 = {isa = PBXGroup; children = ( + 8FA29927B18439A066241F38, + BB4B7332B8B456297344608E, + A5A883D3DAD1D2BF2F044379, + 7609867A9F36324EA1C9F228, + 56CAE507F1D59D551C26B998, + 5C51BB323073B2AD0320825A, ); name = time; sourceTree = ""; }; + B2800371CE1A826ABDD312A5 = {isa = PBXGroup; children = ( + 23E996355EF7DFDCECA97B64, + DE3832516FB6969C0E3210D4, + 55C1F41C94C7C8ED73FC3288, + 3EA7A5F6F6D13A68653F06E8, + FC3CA13BBF45F16F19AE3047, + 7BD85F5BFF691F3E548BC8B3, + A7F58281FD0F07ECE6D261A8, + 67239C8DF5524A278253F181, + 79F7E702E92F8B23B6BCA74E, + B8A6BFA35FDD1F48C1E4E688, + 7712C8260E9F4A7C2BD9FD63, + 575F4E371F82188902F74A96, + E273A9AEACF13BC595F82289, + EF073EC891B2731068542C61, + E068F61F296A52D25E329978, + CEB259E27BB64776AF6BF076, + AB3CF49071E6EEF217783B8A, ); name = files; sourceTree = ""; }; + 22AF4BABA7E4362DABCA3E9D = {isa = PBXGroup; children = ( + E2B33608E3097EE1E7801707, + 82327EBDDBDE6104A0FFE08D, + 7B7B6659C2DD68F2373F9D3C, + 70C9E5BB2C3C4F1314DD8F4B, + 434AB1A1510034290ED3FBA8, + 3ECBCBB5D76AD9DDE65BD81A, + E81332E1BCBF978D86F92DFE, + 7A76BF61E569CCC96B9E16DE, + F1EB95EC0156CE6D16280A45, + 2517140ED8C0697A51CF87AA, ); name = network; sourceTree = ""; }; + 6B04E6A30689BE379804BC1C = {isa = PBXGroup; children = ( + 3F20765E456B1B8FF59C2461, + 5BB4A463E17E9C4AD5F43FFE, + DF2B90185FBA2C86DE767F46, + 417D4A3533F8C72814441F51, + 972D271918F957FB6FCD6CFB, + BD69D8ABDB6741F717E0DD1C, + 2D23BD941B1F4B65E5A2C2F3, + E2EEB444EC638B0C72A8A7E6, + D99465F417B8D56C2C9A212D, + C7F47C1BEDD7EE514BA40C27, + 5375E8C69E76D1570BE36946, + F8E83B5544E2379CB0B323D8, + 3AD3CC5787E119E3A1F6A55F, + F05511231DB8D8615D4A336C, + 34CBE9CCD9B23B1405C76D9C, ); name = streams; sourceTree = ""; }; + 1D0C55594A9BAF09CB69ABA6 = {isa = PBXGroup; children = ( + 791D605377E089529EA264D0, + 5784477EFEEAAD041BDF34D4, + 3DCD8AA2FF25FBE6919E8F64, + 0F7BCDE5E324E86EEA86BA7A, ); name = logging; sourceTree = ""; }; + 810ABDB24E2FE53C90BFDDFA = {isa = PBXGroup; children = ( + 2A274CF384892F3968889E0C, + F2C08F60BC16ABA3BE1F3A36, + 509031D02C057DCD1F713B6B, + 83C4DBF3382367051A65FF4D, + D37936ED5B5A415DF1F5F2C2, + F67FF8B4FA78D4E285AC0242, ); name = system; sourceTree = ""; }; + 5A97C8FA90181188140B83A0 = {isa = PBXGroup; children = ( + E5D5588D0F985DB2D5A8BAF5, + BDB1FA875F2C8263E3D2650A, + C50CE0A0485507647C78F30E, + 5CD7B0F647F366AC5510A13E, ); name = xml; sourceTree = ""; }; + 96DA2309744F7B1844D7EADE = {isa = PBXGroup; children = ( + 36632604A700FC8F53169301, + ED9CF9B1476F08D13A1E636E, + 8F81943FE96DB8DD0ABB9DF7, + 0D158239399CB7487C663168, ); name = javascript; sourceTree = ""; }; + EAFC9A1D80CBC941C7724431 = {isa = PBXGroup; children = ( + 0F7EB01A494A7D2D347B9167, + 1E6168E98312F552A0C57E54, + FBFB17CDB832B533BEF3BFAB, + C02F8C844FAD835F09408406, + 32D11E8A57FD1B5250A5E493, + 396986DB8689B7C6909777E3, ); name = zip; sourceTree = ""; }; + 2C36774A2938F4DE66EA7B1F = {isa = PBXGroup; children = ( + 6549876733A874A58F78CE78, + 20A48C39E51031BF57458A55, ); name = "unit_tests"; sourceTree = ""; }; + CCC10C50368A3362DAC1E895 = {isa = PBXGroup; children = ( + D74B9C3F462333A72B889773, + D23F862EE7BAEDAC24479902, + F937ACD8AA15A27F13F85A88, + 6364C602FBB1C4D7915DF708, + 6B5BE388D982E05CD2C7BE10, ); name = misc; sourceTree = ""; }; + 791BA85C5C83D6BFBBF82631 = {isa = PBXGroup; children = ( + 57FE8CC6D36C0376D4065444, + 19B1556541E4426450C8397C, + 274FB7736A16D65B40E1EA71, + 0CD440EC6D9EF66E117E3EBD, + 2C4E26E2F6F3B5522CA9993E, + 274546C14A985F7D454E16B7, + 783C910D9B34E33F4C7D270F, + 72E1B34915000641B7AD80EF, + BA99F87A1BC936C566A0DFA7, + B36AA5249B5B2242486B4153, + F2A3916171FCB01D6A68DD87, + 11F77DEDB8DDE2BC9B1DAB0D, + AFBCB46AC109F4982F012C0A, + CFEF06EB93957DEAE00A0030, + A8451C0D5D0549A7D923F2D6, + 254F2F62D02E4B48191083CD, + E54011F26F7D9AD38D437851, + B2EE6F9509A435D69B2508AE, + FCF5891DAC2887A6FE3EEA9F, + BD4C015152FD7519E50C9BCA, + FC2F6663A0086F14B8C0144E, + FAF22574F9AFF74820925F08, + 12BD203CEA0CE311A5789BB8, + 32940D3F55D43FA834DAD545, + CEE5BF72C9D7E467212D8973, + 332346809620F9AFA7CF3D59, ); name = native; sourceTree = ""; }; + 6D357C7BC335FFE2B3877318 = {isa = PBXGroup; children = ( + 9DB85B0F2371EE26F3E89D82, + C9A88DFF6E95D969C2A09F24, + EDEB768592E2E04E19CBBB39, + 1EB689C939940E8ABE1AD59B, + 312A62049C445C01FDD661BD, + 447896868A39D1BBF6C215C4, + B2800371CE1A826ABDD312A5, + 22AF4BABA7E4362DABCA3E9D, + 6B04E6A30689BE379804BC1C, + 1D0C55594A9BAF09CB69ABA6, + 810ABDB24E2FE53C90BFDDFA, + 5A97C8FA90181188140B83A0, + 96DA2309744F7B1844D7EADE, + EAFC9A1D80CBC941C7724431, + 2C36774A2938F4DE66EA7B1F, + CCC10C50368A3362DAC1E895, + 791BA85C5C83D6BFBBF82631, + D8C269D8BFE34CF33A2B243C, + D476B9FCEF30511BC736C744, ); name = "juce_core"; sourceTree = ""; }; + C65F5142919A93D5CB350F76 = {isa = PBXGroup; children = ( + 198B97A4FB9B21A3357160C0, + 5BD5301D9DFF3CEA10C32DBB, + 5789E773C615D393363707C8, + 59C461E6BF35CEC17FB2C9DC, + E83074E632966778B10AF088, + 14BAD66A370FA342144C7BFC, ); name = encryption; sourceTree = ""; }; + 37082FEFC588B71DD2E9F80C = {isa = PBXGroup; children = ( + 56C0EB0C9E4089ACA44588E6, + 4CAE848C3F30163816E921DC, + 83ED74D05C2699811929138C, + 9954A5B8424CE9ABC802AC8C, ); name = hashing; sourceTree = ""; }; + 6BC6B2DDDAEB6F4F64D1A010 = {isa = PBXGroup; children = ( + C65F5142919A93D5CB350F76, + 37082FEFC588B71DD2E9F80C, + 2A765F108608FDD8B2089BD1, + 8B1374A21A81C82233EBC523, ); name = "juce_cryptography"; sourceTree = ""; }; + A6D444FE8D85CED1C171C0EC = {isa = PBXGroup; children = ( + B2E2A77534D9104C78E8F3E2, + D1A2603E46734D31975B7540, + 4EBBA20040624174084744DF, + 9E46C8356029EC009F7A1C46, ); name = values; sourceTree = ""; }; + FF74D4493903CDAEF7181A06 = {isa = PBXGroup; children = ( + 73B62E5AA67F4B0483ED680F, + 0CB9B8098AB7F4CFF3991565, + 14254C2E6F168DB69F9F6494, ); name = undomanager; sourceTree = ""; }; + FA2F4F69BFFFAE7A215E77CA = {isa = PBXGroup; children = ( + 260D03D00CBF739BB3A2F604, + 623C7B6BD0B564F60F1F4012, + 6D3191834A1567C5C18A13AA, + 4411214CB9D7F986DA5A92FD, ); name = "app_properties"; sourceTree = ""; }; + 1E71D5778D41DB63E6350D93 = {isa = PBXGroup; children = ( + A6D444FE8D85CED1C171C0EC, + FF74D4493903CDAEF7181A06, + FA2F4F69BFFFAE7A215E77CA, + 014A45F4DF5D4B850A2E712D, + 8B8CEF7A6937C76CA7642C8F, ); name = "juce_data_structures"; sourceTree = ""; }; + 6B69835D713DBE0AA1335554 = {isa = PBXGroup; children = ( + F9EED40DD78515ADF3189694, + FA9CE8D2EEF012CB74C1E8CA, + 8FAA47BE39D087684520C15F, + F1BE04264A690B5EFA99FCA5, + 7063B929C5E98B803E0464EE, + 907D08843439A347B3E2A869, + 6DEF5E5D162E4F32631FE2D7, + F4EA57711C5E9DC6746728FD, + FD2080564407C8EFE21CBC96, + 427EF6B8A919A04D12F63829, + 5576ADF82B58BDBBCC75477C, + 1E21F56456B1A05606B1A328, + 6A972E2430F4B2D9A07D44D2, ); name = messages; sourceTree = ""; }; + 21AE815F08BE75F4B146FF17 = {isa = PBXGroup; children = ( + CC0ED57DE1266CEB11001787, + BEA260469BBB48EB998AA4DB, + E7EF18BE4F22063894C6FF61, + F3868CB33CA2805C31829647, ); name = timers; sourceTree = ""; }; + CFA962EE09603F3370751E99 = {isa = PBXGroup; children = ( + E8ED8CA85BE4E1BF7C5ADF53, + C3E4252156EDD0E001A10DE3, + 51713BEF84B3A58844692401, + FDC6858C3E455F9E8376B58B, + E49C04EACE55BED74E156911, + 8F9A2F59A71422296C56C8A5, + DC209283C24A9C0B601DB860, + 58301731C17BEF7BF07541AF, + 1BDDC4F584BE877D4DC1ED90, ); name = broadcasters; sourceTree = ""; }; + C6AA6C3360946FAC6A1E4CFF = {isa = PBXGroup; children = ( + BA5DE80E67A74A41D57E7663, + 0E1CA391708ADDE3952BF147, + 35641C490EE335DDFF004FEC, + 54B30BCC43C6CBF57A69A654, + E31FDA8F23FEAB726361C8DB, + 3CCB2447E4FA1C412FEEE551, ); name = interprocess; sourceTree = ""; }; + ED26DB941C1087A481ED9C8B = {isa = PBXGroup; children = ( + A878B40B811C4B83658F6A60, + 3B3FC34DE0D784314690A93C, + 656CA5CB0EF44C76ACFFDCEA, + 3DF5CBEC136D13446079C001, + CC42DBFB2ABA84046DD69E1F, + DC254EFF0D95657D703FA8F6, + 121C4D9B35F16FF170A9D4E3, + 502503CB0C00102976DF1023, ); name = native; sourceTree = ""; }; + 1B0890891B764226EB568489 = {isa = PBXGroup; children = ( + 6B69835D713DBE0AA1335554, + 21AE815F08BE75F4B146FF17, + CFA962EE09603F3370751E99, + C6AA6C3360946FAC6A1E4CFF, + ED26DB941C1087A481ED9C8B, + A061F1646238A35ED0BDA32A, + 887EE77979249B8A3E7C2C49, ); name = "juce_events"; sourceTree = ""; }; + 76BAE43251ED78FD6BE739E9 = {isa = PBXGroup; children = ( + 2A5F9649D883210E5C67CEE4, + F7D98798130B4AB14E4E82F2, + 8F5EC320CBE18D8923C7D3EF, + C45B9350ECC13FC8096D3873, + 8B743E5BA29E435BACFE17BB, + F9022636187FF444897371F1, + 223B9626308B07EEEDA7C89F, + 0D5008DFFC00B074A9970585, + 46F845FD963442D8748D3261, ); name = colour; sourceTree = ""; }; + F0740B98E17BCB69B54B4619 = {isa = PBXGroup; children = ( + E2B10A7DBF2B35A4C3A1DE21, + B28DFE72ADE03393BE8B764C, + F5EB78612A35D53F005597D4, + 85379D9BB0BA7D60CFF83DC6, + EF0061905AEAC90A86145D40, + B2A85C1813641574E4D15BF2, + 1E7CA4A04A182412B3ECEBF6, ); name = contexts; sourceTree = ""; }; + DDD3EBD3493F3D8076685D09 = {isa = PBXGroup; children = ( + 1565307D5DC70CAC563B579F, + 14BF2173D8CD3520B21E01E0, + AEA5E43C19B3566D5B2655E9, + 6BC5C181AD876196213378C2, + 9BECE88C6AB34861AF408C37, + 6E35055BA3436FC2F9B77365, + E441F10A3241806474779D5A, + 91A5A6A217FA091F2ADBE3C5, ); name = images; sourceTree = ""; }; + 240D1F671827DE817DDE901B = {isa = PBXGroup; children = ( + 793E09206EDE78138AB56CC5, + F0074D8C86D3265AF7889CCF, + 2B594B1579F4770CA36E870C, ); name = "image_formats"; sourceTree = ""; }; + 9F57E3145B8DE085C7435C7D = {isa = PBXGroup; children = ( + CE9CAFB040BE90431A432537, + A19D3050F95BFD17129EA013, + 17077E8777B646C03C92D20B, + D2EBB6A92000349A92809F02, + 18E61768FC20A6C65CF73DA5, + A20DD4F2960264FC20095777, + 1F0F8E76A0B7D289D66C4101, + 41D42F7438B6C953A2DC5038, + D85876E3373EF8AC5F39A5A8, + AB540AC77FB76E3B498E98A6, + 27AB89D8B21801C1528F53C8, + D258105EC6398A3984FD8DA3, + 7EEFCCCD23C883F6B797834E, + 015766ED6CD9D55279FC884A, + A021D917DFD4DD5D4703913C, ); name = geometry; sourceTree = ""; }; + 997C7BFF828EBD6BDD06D036 = {isa = PBXGroup; children = ( + 7E5D04471A75DF9057A4D73E, + 6CF6624AD370E4716D42CEDF, + 284C742F571D494237C52C2D, ); name = placement; sourceTree = ""; }; + 013403E10034C0DA7BEE1F39 = {isa = PBXGroup; children = ( + AA55BD139AEC1B8272ABE461, + 506DE1D3A739746007E33852, + D6AC70136461C6F3FD1987F1, + CA3D1FE94B500CF86704EB13, + 279A6546016EEB8F9264EB39, + E0544ED1BC8832C4D1296FAB, + 4271A817DD6497D0023C43A3, + C1A299D4A5AAEA645975EEB8, + A4F075DFF243F6BB90CD5950, + 3CF6CC164ED4826B4DF73177, + 2CB561058728D0EA3A66AF4A, + F0A8EA8AEA260ED20ED40247, ); name = fonts; sourceTree = ""; }; + 556560AAD3C29E08F7AFBCBA = {isa = PBXGroup; children = ( + CE11BC7911220E9CFA1283D1, + DC9D4AE01FB7CF8D2877B198, + 4142E8BA365FE77662B11891, + 473E98AA655246EECA75EDD1, + C7BB125979760AE4264BF23E, ); name = effects; sourceTree = ""; }; + 66DC0A97992202B7629A58C7 = {isa = PBXGroup; children = ( + 3A8EA18FCAE5801EF1AECC06, + E041ABD2C503FCB7EB7E49F8, + 2E62B2A1D5FE20D7E675DC3F, + DC3E9EDCD85270B2E9D33BF8, + 87EBB9223B9943D09D0ABA97, + E4D98F92A6646FC7CE4FFA1B, + E6AB1D98C43E9017F546D707, + 4825BC8A3502320ED671408E, + 73861DEE4EEBFF77B6293F90, + 54E56E35A31C662C67992C7B, + 6741B65B42E9858C7B580A36, + D9FDDAC72C576633FD41B2E7, + 4AB453F1DFC4EA7AE058B0EA, ); name = native; sourceTree = ""; }; + B4351AB8FE980A7A843DD7EB = {isa = PBXGroup; children = ( + 76BAE43251ED78FD6BE739E9, + F0740B98E17BCB69B54B4619, + DDD3EBD3493F3D8076685D09, + 240D1F671827DE817DDE901B, + 9F57E3145B8DE085C7435C7D, + 997C7BFF828EBD6BDD06D036, + 013403E10034C0DA7BEE1F39, + 556560AAD3C29E08F7AFBCBA, + 66DC0A97992202B7629A58C7, + F7D32C5CE1D85C542190C26C, + 30CBDFC5F16FD990ABC2C486, ); name = "juce_graphics"; sourceTree = ""; }; + 5A794D6AA7ACA03DC348F94D = {isa = PBXGroup; children = ( + AC2A502E05BB93CB0840344D, + 31CD83018DA7BED28A70EC1C, + 2D6A1D77D896FF6DDD5EC49F, + 942393EC874CEC183B67641C, + AD16BF0DECF3EEFD7AE11457, + B91A8133C3474D98AB6300CE, + 3F02F103D0EA0D398FA2A95D, + 293D0E58C45CE26287E99822, + B8C996306428DFB642CBFB14, ); name = components; sourceTree = ""; }; + 4AA38BF06A0BA16074879F26 = {isa = PBXGroup; children = ( + 1782B7FCE431430BD11700EB, + B8EF2AF777B74156958B72CA, + 40E971224B83783243521871, + 7246A65F3B8646D764F3A355, + 81556F6E103D6843193EA1EC, + C936095A19665316F5B675CF, + 850622AD96A6D025EC1E832D, + B0FB5996D7068C230DC6D8E0, + DB348CBC6734FFD0B7ED8A34, + C50DA493E57234B3820BD77A, + BC586A21CD33D786C4472FD4, + 9986CD0D1752D063F3DC2652, + 16421110FEB104E290E3F13C, + 1A424A0B9D68C68CD5B075E7, + 74E1A5ECBC09930A520D1A98, + 1C196D0BC6B08623601273FF, + 2740DD21925484E4BC243630, + 484ACD3191DB5BEB198EEF97, + FBF25BFCF0541B78909B16C6, + 5B5D589850B147BE94D01D42, ); name = mouse; sourceTree = ""; }; + 9AF6FBC13AA9F0C35EC524A1 = {isa = PBXGroup; children = ( + 6D1D3AFCBD704E2E3A9AB0D9, + 776FC3A674D9CCD21CB2D7A0, + E90FDEEB9C536E5E1124B00D, + 4FBA6C32DE977B1330BAD5DD, + D521465375DD0F179649668B, + 38A0CFC456FB82927DF8B990, + 3A52ADB8D2B72A1E6F455ABA, + 1E07768DDE29F15BF4F32C48, + 665600E48FF051CFE90C698D, + 69CA413A66B0EA204C1AFF4A, + 42AE889B4D596FF23E2D77CB, + B1E4A1F07EFCCA50D963CF4F, + B77BD5847F412656109A378E, ); name = keyboard; sourceTree = ""; }; + 6401A528C034A7FE4E59C5C4 = {isa = PBXGroup; children = ( + 8FFF7C1572807209B9A8A08D, + 1D6EA6E2DC8F03826454F21D, + BE635BACA572437D8DFDEEC8, + 759899A48CDE9705331F456E, + 7069BF224A795890367AB809, + F84732FE450246B23C813288, + 9AD78BC87097481DDC1815B2, + 8BA590FF6DD42B77C70BA092, + 795DBB9CDC6751C052A03827, + 355B143DFA326CC401844099, + 17AB5E83E71D5864435A011B, + C24880A7007CE75B7F8BBD71, + DE8A6DAED12A99017D7341E1, + 168D70A9989ECA609D355DA6, + 1AB2337020B7AA4AD329405A, + 67066EE59E69BCD634D38ABA, + D1C13988EF76674213DF92F4, + B2D09E29CCC80C27956BF314, + A80BB5CEC5BB5398B155F980, + 3E5E15C429B5D8BDA6815193, + DB59695708606C9604E11F0B, + 354636C92CDB97DAF80D1E6A, + 4676425D91097FBD1689298C, + 6F974A4B1AC400251425C8CA, + 99BF73D0D5B995E84BAB52B2, + 2DA8BDECC570B976D34D9263, + 4B409B90CC47BF0477D7F6E4, ); name = widgets; sourceTree = ""; }; + 17E7CDE6EA0A435BF5A4DC15 = {isa = PBXGroup; children = ( + C3A68B435020C80FC29DB89D, + 44EFBCE30DD206F4A55E4E81, + 876EE7E42127474428BE3BFF, + 76372445FC076FB8D26CEEC4, + D93861E50D66746DF070A158, + AD7CF8E55597C12D264E26D5, + EA53B7692D5E224F0477A791, + 019CD85E295A7290855D0C24, + 61C1B6B3336D774EAE4994F9, + C8B71823C30A65066A852942, + 94D011BBB3D330AEDAC86D11, + 0769D44014FDF069ECA54115, + 7581EDAFA0B1746EC8139077, + 4391785C112C65C6C1F4E05A, + 856F3C72739BD34C8CA40F3A, + E7D88F20FB6FEA84BFEC67D1, + B1C695101BE3D6A84272B6C8, + 92C99A9D9E9BCABE2AE26B9C, + C719606229204044D7C85339, ); name = windows; sourceTree = ""; }; + 39294ED083C056829DCC6B0C = {isa = PBXGroup; children = ( + E9164448EE60F4DB5F2A14D1, + 01B29765150B583E2460837C, + 275CF9CA5A34E2825DB8792C, + C2B61447889E781465E49AC3, + 1B0BEB542ED5BA84E52AEA2E, + E50BADB05430CBE8BF33F8F5, ); name = menus; sourceTree = ""; }; + 68E400580DF6F5DE436B39EB = {isa = PBXGroup; children = ( + 2EC200E7CF8C908AC3DF4416, + 1BC364DFD3A975A0CBA0AC61, + 77802A78E9D43C940C14B0BF, + C599A55407B6EB6AD55AE73C, + F6625EF536284FBD73183EA1, + FD1A5CF76641E1CE7F29B44D, + 49837BCC6CD64D108AA3E37D, + 3693D26AD61B3B089A2B9CEC, + 62F8069EE12495D7BDF5BCCB, + 8D330180BEC5572287AB158A, + 39CD252C183BBF175E1C0602, + 33D5910744D9482DBA614144, + 7D15374142A01E2760AC4818, + D17F209C6915C948F90F1349, + CBF3ED31F58A0874E0E9A64B, + 21273C209FE7E19C59952EE3, + AE86A03508278775CA9F250B, + 3E22FC06C346385E732377C5, + 1C02F9D8BEBC13937D8D9BAA, + DA223B209C3FF00A91FAA1DD, + 52B122DC1886502CCCD16ED2, + 92E26ABEFD096B05F99EE036, + 6AA216A8B8EF4E181BCD96A4, + 7049C408D43D64C1504F6505, + FC5306AC9A046F7DF6CC09FD, + 60359F3EE85F679C1D118136, + DE00116B59A20E5B69367B70, + 79A01A9B8A17C9419EBC5F73, + FD36702E757F21E0C43E8907, + 4C9A8BA6A094DC3490CF25B0, + 7C388E6394CB0A8C4C919751, + 88060C7661160C61E794D2B1, + F3813BA8E8B9F775D0A049FF, + ECD6C0DDB8587984580C96B0, + 8D57423CD5A1B516B5374499, + 6C4A5B3781D999AFA15F1016, ); name = layout; sourceTree = ""; }; + 82356BA2755E3E9A105EE32C = {isa = PBXGroup; children = ( + F5DBF428153938207320675F, + BB8AD6D858D518E804AFA0C7, + 6536E6457A8B77FDCC506401, + A87A60BF515078DF23E1F737, + AA54E821F947C9A9DC359693, + BEAB03E92089D87D7D6A2353, + 3935FEBDBA2F8025F602042C, + 5CE4484E6BAB76C9B49E6ADE, + 3B883BA33260250D6C443F87, + 80A6B9266A11D6977AD84546, + 5848A09E20AA6FE9EF1E6898, + 28BF10B49B1D14FE05CBC5DA, + F2ED5A15267070B560EFFA2B, + ECE3837512B3E620155A8432, + F7487F2DEA61873B12C6CAC0, + 449FC2FAA282C731A58D51E6, + 0892B622D73826BB91C8E418, + 6436F4F5D143E72BD77EE053, ); name = buttons; sourceTree = ""; }; + 9A1C5344E2500919F67C1907 = {isa = PBXGroup; children = ( + 8D11B58353EBDC8EBE9C641D, + C52847A293D0E8958E88DFD5, + 17A033D6C28B1E76FA8BEFCF, + 816CA082336A8BC8A9AA61BD, + C3B93391519DA8A352766580, + 406587D828CD424333E55C81, + 33B9E6212D92FB49C792ACE9, + C6B9F01A0AAA2A1DA8122912, + 9CF41B989B4516C8DB6CF7A0, + 35748B2B69B3A54D19679F3A, + ACD7FAE9EE61A4085580912B, + 360B3CDCB046B9D69C6F5ED4, + 56C2444E299E030DE7243C7D, + 220732F05D2DEBC2ADF2D45C, ); name = positioning; sourceTree = ""; }; + 6373BAB4261AEB403399D2DE = {isa = PBXGroup; children = ( + EA2BE0B9C8E1546D25A02D67, + 38043242051AD4996B081769, + 0D79BD52315BE837BAD64A82, + 9CABACB9A2FF46A8B3059D8E, + FAD5D9101D6427D96558C37F, + FC50C6150E60281125E69115, + 3F57F6B58B93E88A29F90809, + FDFE40162E4F5CCAA833061C, + 9F3DCE572188E0085FCF1956, + ADA1339F195F699D7F5369F9, + 9B9B8DBEBEA5051A602DA6C1, + DE1A6A1C0CCC94A3E3A887E3, + DCB52EFF8A9F5D9F6CF3D3FC, + 61596F68A47C4BEA8F9A4D68, + D6EDBF07E4162364DB8825D9, ); name = drawables; sourceTree = ""; }; + 4A5017F3DFD59498929C74A1 = {isa = PBXGroup; children = ( + 87C173B4D57F00E5523D3395, + 5B546C6ED44CAF4197788BC0, + 6555D39D3BE572E611DCA8EB, + 3545CC1CCF501BDBFF528908, + 78C9531A81D34333AEF14019, + 1ED3843AC8AC67374F6F5F77, + 3B3B1BB15DFF71215E86A175, + EA19F37E2AB4C42A1ACF17CE, + 70407DF33563B729D4758A17, + 3134A6BDE49CF0D3F0B12FE2, + AF5C2B3C5CF657FA722F9A68, + 1633D4A7385E8AB77FB6723E, + 5F6BDD2491C4086940AAE045, + 7392F4B60E4E28A340E465BE, ); name = properties; sourceTree = ""; }; + 7C2B9213A4FC92A23B91DB75 = {isa = PBXGroup; children = ( + 046591508FC3F71F74126E81, + 8594A236A434383AA96AEB53, + BA5A9BB00CD8BEA408371875, + F4B9C009E75153F873F4AA25, + 694EB6B22E35E09B6AB43EE2, + C48140923F2A4DEDBA063DFD, + FA6BDA8882AAEE02FB04E36F, + 8DFA760FAD9756305F9C7515, ); name = lookandfeel; sourceTree = ""; }; + 42F8790BBB2D6EAC6A228F28 = {isa = PBXGroup; children = ( + 37BD426B7B7DD8BB3EF562A6, + 3B2C9FC5B754F29B4BFF7EA9, + 541C3E9F5E720BF6D99D94CD, + 426B31F8A63727D575B2C782, + 546D112DEC6A685B52E4D7AA, + D92B6F28EF1D46625BC2A18B, + B1C7A541DFF31B38F0A17C16, + D9F41579025D12F2CCF079C4, + 281ADBFFA54CFADAE46AAE79, + EEE1F3257D7C9A527D6647E1, + 7987CDDDE250EA56F0B26A0F, + 69F89AFBA54B48038B47DDED, + FDB3097BE7C87FF74895E875, + DA12229986D485B2E2DE059B, + D24F3C46F1A46422C080A0A7, + 144BF62327063E0017BB7B0A, + B49E98EF01462277526C417D, + D01183D850457CA55516B3B2, + 7E278ACE0E80F59FBEB3122F, + 6C3B851F65AB406E5B6CAF7B, + 39DAB20FE9D55152EB2D224A, + C8FDA55A72DC4A244703C8F4, ); name = filebrowser; sourceTree = ""; }; + EB0838BDF3EDD2A6C56D1B10 = {isa = PBXGroup; children = ( + 2CD2FBF66999807E0B86E0B0, + C568E8888819EAFDCAEAF04F, + 8DBDCF6753B9AE327FC8E382, + A23A20A098747A2449C47047, + 31B42F889DD1C79540881B97, + 62935FD655DDDCE70536555F, + EEDD0D3608DCB2E459F3BF24, + EFDD05E3C006BA460761594C, + 01D4F510A1EE5495A8A419C0, ); name = commands; sourceTree = ""; }; + 3F09D506DAF77142944CD206 = {isa = PBXGroup; children = ( + B25D9BF429F016963A545287, + 343BF0E7697F399B08D42CB7, + 60F110007A8248E4318D9B0D, + B68B3E0BE0396ACD3CA52250, ); name = misc; sourceTree = ""; }; + 2EFA9503FCACF0651BB57D5A = {isa = PBXGroup; children = ( + FC00E5ABDD903617E7498A0B, + 489D9B3F2489315DBF5C552E, ); name = application; sourceTree = ""; }; + BC1C3CB4DF57CE8A1B29522F = {isa = PBXGroup; children = ( + 4717C14F84229B39FA2FA86B, + 3A5C86CF6276058B0D5AC399, + AF6001FA947F3A7DF15CBF8B, + 2BFABFBE400EBD477EEC1F7D, + AA8A3E0CF7623249B2907DB1, + CD71ED4911896207B303106F, + 7207669F41206DC961E08FD2, + 6FA9A28DB80D43E87900A1B1, + 4BF34287391AB2ED382C9CB2, + C159C35E078C5B5B9BFEFB52, + 338C5E41B8903F0894709201, + 5BF81A5EBE596AB3F3E4C222, + 6CE60A4F64042BC1A2391987, + C05E16AAF0CF0676135C0C9B, + 279D354D902DE91EB32B1BE6, + 6C5F536D935CF788C07424CC, ); name = native; sourceTree = ""; }; + 1EFC1E01B0C1ECC1EA973E50 = {isa = PBXGroup; children = ( + 5A794D6AA7ACA03DC348F94D, + 4AA38BF06A0BA16074879F26, + 9AF6FBC13AA9F0C35EC524A1, + 6401A528C034A7FE4E59C5C4, + 17E7CDE6EA0A435BF5A4DC15, + 39294ED083C056829DCC6B0C, + 68E400580DF6F5DE436B39EB, + 82356BA2755E3E9A105EE32C, + 9A1C5344E2500919F67C1907, + 6373BAB4261AEB403399D2DE, + 4A5017F3DFD59498929C74A1, + 7C2B9213A4FC92A23B91DB75, + 42F8790BBB2D6EAC6A228F28, + EB0838BDF3EDD2A6C56D1B10, + 3F09D506DAF77142944CD206, + 2EFA9503FCACF0651BB57D5A, + BC1C3CB4DF57CE8A1B29522F, + 0F1752D7FC9D89588551D5C3, + A85BBB0551113A7CD910AA16, ); name = "juce_gui_basics"; sourceTree = ""; }; + 7B917E77D4B25A14822B94CB = {isa = PBXGroup; children = ( + 1233B57573AB9503E0625ECB, + 89CC7514E6F2628CE82591BD, + 3C90895F90CF6FA4714DBF6F, + 80465B70BFD2A13EDB18B702, + 4683DEED4D9E52F0A84FCEE2, + 7156B58188258F7EBE617E15, + C007BC3372F44746BD6E98C0, + B0FE76D91413C32F64610594, + 3B172600E3C05D62F424449B, + B05257BD950E35B28F9E88CC, + 110D8C5EEF130FB1E1F7D286, + 1CEAFFE79A9E1A1E32C2BFD6, ); name = "code_editor"; sourceTree = ""; }; + 206C4AD1A507D7D003F44AD4 = {isa = PBXGroup; children = ( + 169C1D0433B29AF96A6FD27E, + F0F7DE7E362D726569559501, ); name = documents; sourceTree = ""; }; + 8AB5C3D67E25D52FC85A482D = {isa = PBXGroup; children = ( + E3381BC529641894F95F9AD6, + 9FBCE80E444BA9E69C3F6172, + AC4730773DE422AE346C6D6B, ); name = embedding; sourceTree = ""; }; + 284172C32915E2B9B95F2B0A = {isa = PBXGroup; children = ( + F9A0A82AA4D8EDB4B2305849, + 7109E1D6A2AD7A013453C922, + BCD3969359F2EB2EB970C412, + 7C2A56B41F84CF25DC4D7C7F, + 2931E23782DDD4761EA6E711, + 3F312C95E458F86E5D814AD3, + E62A008F49C8FB4ECEB6CC37, + 8C4045D24297D10F0EC9348F, + 9C52165BC295637D495791C1, + A7EBBF2BCCB164C8F5C0423F, + BCD60A4DBAB2007ECBCAB17D, + F67C770333721A5D9BFEFCF6, + 18459D45EE3F7766AB932678, + 3F32203D512AD417AE3548E4, + 67B47838D621A526D8148308, + D53FD6223C4A997E441E1F80, + F897C7899B56E5C6D5523353, + 4C57FEDA7D19BB3D05326948, + FBA60035993B1D5796D202DF, + C57BA5F014343276128923F6, ); name = misc; sourceTree = ""; }; + 7934D8F0485905857255419D = {isa = PBXGroup; children = ( + 07E89C9A0EBF5FF6A0A05EA5, + 77BAA6C13A52BE0F0A42FD0E, + 179BD4E3BB66F7CC1747ADAA, + 51FDDE6DD9DC3FB98747A0E7, + 79728934D091CBA959AD2B20, + F2DE7A0F77BCCBCFEEC0B500, + B73DF787FC51F08E279923A6, + 22B8E3336C2DA6F5DE3CE748, + B607DF0E27752A1B9A863CC6, + FC1E4BFBBE4B43200F8D30D4, + D23A9E25612E33C0C6AAA09E, + 74E37866C31A35A559E1E80D, ); name = native; sourceTree = ""; }; + 5055ACAE49BC97DD34466C48 = {isa = PBXGroup; children = ( + 7B917E77D4B25A14822B94CB, + 206C4AD1A507D7D003F44AD4, + 8AB5C3D67E25D52FC85A482D, + 284172C32915E2B9B95F2B0A, + 7934D8F0485905857255419D, + 97C71C2DD318EDB304FC1CEB, + B121FF657B96C6FFEB2C2DC1, ); name = "juce_gui_extra"; sourceTree = ""; }; + B88C560247F2D57D82F21CBB = {isa = PBXGroup; children = ( + DF53D8FD5DE7B15694D26E91, + 01FC5A0075F643D703F56555, + 9D87175DE3988B783002560D, + 75CD7766A1ACC3BA17C8B73B, + 35B404161217DAE32CC143CB, + 88EB915831B819EC3B7B124E, + D67D8599E2F89D673EA36D9F, + D9E4C045A178EA678116D439, + 4F9D0FABF1E74572460D086C, + 393EA74C63AFA103F5F3264B, + 4E053EF00EC72441FCC9A6ED, + 92655A59F40624CBDA9194B5, + F616A5D8C022126707081DC9, + D677D05978DC2C67386B63AE, + B2B042F73709D0057DE8A51E, + 6F0A25914D95D4F547F91C79, + E046CC53401A9551BDEA2D83, ); name = opengl; sourceTree = ""; }; + FEE6ACB178D213783FF6E964 = {isa = PBXGroup; children = ( + 838BB45D693ED0AAD43B93C3, + B9B0A3004948FA2387C28829, + 21FAFC1D8D92872E96F56764, + CD44827B5286ADE94DB0B79C, ); name = geometry; sourceTree = ""; }; + AC7F13F5542D3403D8F2ACB8 = {isa = PBXGroup; children = ( + CED808C5809FF89D32131CB4, + 7CD48F7A63EA97AF58ED7C5F, ); name = utils; sourceTree = ""; }; + B04BB024408E06CCC786C13E = {isa = PBXGroup; children = ( + DF42C1B300CA66580D0AED1D, + 32CFACA9C637ABD27F8A874F, + A3EFD0BE919B2F7AD7295F2D, + 2553F95186E2565315E012CF, + 5AFAF9A5651C30F1FF28A76A, + B99DD4C6D8C8F58C83ADD7CA, + 0ED63C3FFD7B718988BDDAFF, ); name = native; sourceTree = ""; }; + 8C1FC7FA6E1B36498E7EB987 = {isa = PBXGroup; children = ( + B88C560247F2D57D82F21CBB, + FEE6ACB178D213783FF6E964, + AC7F13F5542D3403D8F2ACB8, + B04BB024408E06CCC786C13E, + 3FB32BF0AB8E9BD398E92361, + E0E847621EEAEEFB21B87986, ); name = "juce_opengl"; sourceTree = ""; }; + E1A6B922CD26B2E238FFE633 = {isa = PBXGroup; children = ( + CC83A115FBF5C65772BBFAE3, + 3D26B83681D1E47ADFB2D8A9, ); name = playback; sourceTree = ""; }; + B43E665356CC8841DCE56D07 = {isa = PBXGroup; children = ( + 83619BFC8B92A2B5F17F596C, + 985C549EBDB26AF7BFD6E8A4, ); name = capture; sourceTree = ""; }; + 9BD07AD149BE8BBE4BA6B001 = {isa = PBXGroup; children = ( + D2C557606FD68958DC545A2B, + 6894AE00A49D15E9C4A31355, + BBECF34C65D1DD35DE8C6F9B, + 003AAB5BFC9435FA4823BA2F, + 72723038519B5AB5FFB52EB9, + B0E21FE9C68B99E4C751DF13, ); name = native; sourceTree = ""; }; + 01C4A7ED89A1564ED222862E = {isa = PBXGroup; children = ( + E1A6B922CD26B2E238FFE633, + B43E665356CC8841DCE56D07, + 9BD07AD149BE8BBE4BA6B001, + 6C8C142D26BAD246C4ECC102, + 317988D9466ECCE83B91CD24, ); name = "juce_video"; sourceTree = ""; }; + 128007CA5E777E8B423777F8 = {isa = PBXGroup; children = ( + 333F7FC9E4E695D243B51D53, + EFBCC9AA9132896CF439C9BD, + 8BB98CFCE02C8F888DEAD934, + B0A8A78F56D39E5C52AB1C76, + 6D357C7BC335FFE2B3877318, + 6BC6B2DDDAEB6F4F64D1A010, + 1E71D5778D41DB63E6350D93, + 1B0890891B764226EB568489, + B4351AB8FE980A7A843DD7EB, + 1EFC1E01B0C1ECC1EA973E50, + 5055ACAE49BC97DD34466C48, + 8C1FC7FA6E1B36498E7EB987, + 01C4A7ED89A1564ED222862E, ); name = "Juce Modules"; sourceTree = ""; }; + 2F6322433CCE78DD6DD4EADF = {isa = PBXGroup; children = ( + 80C983055BC197AE9FEF51D0, + 9BBC3E0155BC3F36F21F7EBB, + 7DDF23FA0DDE4FCFB121CA68, + C62300B9478B60BCBE254256, + D4A815675983D742D87E37A5, + FBDBBE33AEF062A1457DAA42, + BA895F5D0FC2F40DA0566469, + 3ED09149246BD2CC3D114FB1, + 7BE9659292437455B77D53F1, + 353C4A5B04236912332BDB1E, + 4DDD5CACDD472784437AB83C, + C0C66A94FBDE992AAD71C698, + C3B0CE7BC50EE3F20BB261EC, + D782993D6DAF0AF948A62517, + F07914AFCF34610BAC0D3B0B, + 757D9E8B34634C0E899922F9, + 27C1C1AD957D9955A13E3A4E, ); name = "Juce Library Code"; sourceTree = ""; }; + 0483BF4E3FB318109FA0F8A5 = {isa = PBXGroup; children = ( + CE28252C42BBA94C930CF460, + 25D7DC711CE171A1F8DBFF05, ); name = Resources; sourceTree = ""; }; + 6F68D1090F539F5A1A041FAA = {isa = PBXGroup; children = ( + 50151F5E1EA38C0768AD9AC8, + 3948321FE783006946DC8F1F, + DB3D37600C745E6F62C5A04B, + A2A8888BB2A9B1BF61955BEA, + 8E5DB762FF5447085518EB85, + 6CDDF198D9632DA763449E05, + 20425A69967DA67634118166, + 84E689978B0D7D84B1A39C77, + 88B4E2B52BB5B6B622243FDC, + 7C2C344C1697462278777A3C, + 525E733E59BB89937210A34E, + 201259150E2168D8B93D9C87, + 56B04319D227E406E44AD15D, ); name = Frameworks; sourceTree = ""; }; + 5D365257108A916858E3947F = {isa = PBXGroup; children = ( + 5802E3490BEAFD892C837E2A, ); name = Products; sourceTree = ""; }; + 5EB8D0E327356FA2D5323013 = {isa = PBXGroup; children = ( + 853E25E8F0EA391EE8D4A3B8, + 128007CA5E777E8B423777F8, + 2F6322433CCE78DD6DD4EADF, + 0483BF4E3FB318109FA0F8A5, + 6F68D1090F539F5A1A041FAA, + 5D365257108A916858E3947F, ); name = Source; sourceTree = ""; }; + 8DA6C115CCBD9A0699A71FA5 = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + SDKROOT_ppc = macosx10.5; }; name = Debug; }; + D10126CC8CE60E150025A42D = {isa = XCBuildConfiguration; buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_MAC_F6D2F4CF=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + MACOSX_DEPLOYMENT_TARGET_ppc = 10.4; + SDKROOT_ppc = macosx10.5; }; name = Release; }; + 3132BF724B47EEFACACC0FF2 = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "OpenGLAppExample"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + 71C0F419A1E2F06DF9155ABE = {isa = XCBuildConfiguration; buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "OpenGLAppExample"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + 46FEBDB3E8E7421830E627F2 = {isa = XCConfigurationList; buildConfigurations = ( + 3132BF724B47EEFACACC0FF2, + 71C0F419A1E2F06DF9155ABE, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 72A1EE1BA283790385236C82 = {isa = XCConfigurationList; buildConfigurations = ( + 8DA6C115CCBD9A0699A71FA5, + D10126CC8CE60E150025A42D, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 5B757FF4605862B33A33271E = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 4A3B2112EAB24C18FCD790DD, ); runOnlyForDeploymentPostprocessing = 0; }; + F1D06D2C0F24121D958BCCF0 = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D0E5FADCDC70B5989BE7D147, + D31034CCE86D686B109ADE0F, + 5211AFD1D8E7FD62EDA703A9, + 6A909F1AEE38A7340456EBBD, + 1E0BAEC7950969D956E912F1, + 4FC452CEC761FB0515E83B9C, + 6790BEB5EE46E3DF6332536F, + D4371AC9EBB0CA9B69C81C98, + 5EB3C30963D75E7D43D6AD9A, + 238A6E94B07DB483C42E0D18, + 8A7C3FEF41B5A5913396E7B1, + 148EA191DA9D3066A3C4EEEC, + BEE9A8C926B45616AC4426AB, + 0A0FD3B4C732A965C2642CC8, + 978A2567AA64957C61694427, + 913CB51D1475C7F94739502A, + D54B744850AA08DC348CE8D8, + 938FA7CCB4CD0A844BE6509F, ); runOnlyForDeploymentPostprocessing = 0; }; + 54D4A7BDAE854DE0AE2D5E3E = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + F2E327A47E10F43D6991A306, + 7FF434A451FC85BF1B79BC7F, + 96CB0F03F9B80A334DEA2147, + 8A6D37A2A20E92532DE4CDE6, + 2A954B85CEC7CB6CDDE645AF, + 3BFCAE441B663BD739FBCCB4, + BEC90605659632469EAEFED9, + B592CCDBC97987937D3E1990, + 86349C45A45EB863AAFB24AD, + EA339F19B6848D97F15D2691, + 6243594E2BFD65B88D9F9918, + 70755FD2C3B5797C7BD66CF3, + A449C4B4D524AF85F99933DB, ); runOnlyForDeploymentPostprocessing = 0; }; + 7B81D348370C15990CC3A1BD = {isa = PBXNativeTarget; buildConfigurationList = 72A1EE1BA283790385236C82; buildPhases = ( + 5B757FF4605862B33A33271E, + F1D06D2C0F24121D958BCCF0, + 54D4A7BDAE854DE0AE2D5E3E, ); buildRules = ( ); dependencies = ( ); name = OpenGLAppExample; productName = OpenGLAppExample; productReference = 5802E3490BEAFD892C837E2A; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + 92078120DD024E75D724B8AB = {isa = PBXProject; buildConfigurationList = 46FEBDB3E8E7421830E627F2; attributes = { LastUpgradeCheck = 0440; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 5EB8D0E327356FA2D5323013; projectDirPath = ""; projectRoot = ""; targets = ( 7B81D348370C15990CC3A1BD ); }; + }; + rootObject = 92078120DD024E75D724B8AB; +} diff --git a/examples/OpenGLAppExample/Builds/MacOSX/RecentFilesMenuTemplate.nib b/examples/OpenGLAppExample/Builds/MacOSX/RecentFilesMenuTemplate.nib new file mode 100644 index 0000000000..cec7f7c72b Binary files /dev/null and b/examples/OpenGLAppExample/Builds/MacOSX/RecentFilesMenuTemplate.nib differ diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.sln b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.sln new file mode 100644 index 0000000000..8e552fd593 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.sln @@ -0,0 +1,19 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{3AF5984B-1995-D9AA-6A48-A11A7E29B8ED}") = "OpenGLAppExample", "OpenGLAppExample.vcxproj", "{7C7408CA-ACB1-2C65-426D-235C519770A9}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {7C7408CA-ACB1-2C65-426D-235C519770A9}.Debug|Win32.ActiveCfg = Debug|Win32 + {7C7408CA-ACB1-2C65-426D-235C519770A9}.Debug|Win32.Build.0 = Debug|Win32 + {7C7408CA-ACB1-2C65-426D-235C519770A9}.Release|Win32.ActiveCfg = Release|Win32 + {7C7408CA-ACB1-2C65-426D-235C519770A9}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj new file mode 100644 index 0000000000..d49093b4f3 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj @@ -0,0 +1,1703 @@ + + + + + + Debug + Win32 + + + Release + Win32 + + + + {7C7408CA-ACB1-2C65-426D-235C519770A9} + + + + Application + false + + + Application + false + true + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + .\Debug\ + OpenGLAppExample + true + .\Release\ + OpenGLAppExample + true + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + Disabled + EditAndContinue + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;DEBUG;_DEBUG;JUCER_VS2010_78A501D=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions) + MultiThreadedDebug + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + + + _DEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\OpenGLAppExample.exe + true + libcmt.lib; msvcrt.lib;;%(IgnoreSpecificDefaultLibraries) + true + $(IntDir)\OpenGLAppExample.pdb + Windows + MachineX86 + false + true + + + true + $(IntDir)\OpenGLAppExample.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + + MinSpace + ..\..\JuceLibraryCode;..\..\..\..\modules;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;NDEBUG;JUCER_VS2010_78A501D=1;JUCE_APP_VERSION=1.0.0;JUCE_APP_VERSION_HEX=0x10000;%(PreprocessorDefinitions) + MultiThreaded + true + + $(IntDir)\ + $(IntDir)\ + $(IntDir)\ + Level4 + true + true + + + NDEBUG;%(PreprocessorDefinitions) + + + $(OutDir)\OpenGLAppExample.exe + true + %(IgnoreSpecificDefaultLibraries) + false + $(IntDir)\OpenGLAppExample.pdb + Windows + MachineX86 + true + true + true + + + true + $(IntDir)\OpenGLAppExample.bsc + + + + + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters new file mode 100644 index 0000000000..d7911360e4 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/VisualStudio2010/OpenGLAppExample.vcxproj.filters @@ -0,0 +1,2918 @@ + + + + + + {2C84AFEA-39C5-45BB-67B0-D0028AFD3304} + + + {66A1AF91-A77F-473F-6845-129C256B37A7} + + + {A8EE5285-360D-2B24-CFF2-504431E3E613} + + + {29D36204-80CF-8BBE-A910-93F40B0EF06F} + + + {422C46B7-0467-2DB0-BF3C-16DFCAFD69AC} + + + {3247ED97-A75A-F50B-8CCC-46155E895806} + + + {A33A1E1D-AC2C-6382-8681-48B0FC374C60} + + + {3FD908F5-98C8-9A61-FC03-0BAF8913CBB0} + + + {11A75801-B027-40BD-4993-023023ACCBF7} + + + {EF2CAB40-0432-429B-C517-86ADF136BB8A} + + + {8F7EC212-3168-AD81-5064-C45BA838C408} + + + {CACD7B50-4DB3-76AF-A6E8-90DF94F8F594} + + + {9D270B31-2425-8FDB-84A4-6A2288FF5B2F} + + + {0F766DD4-A277-CB86-5647-42498C8B41E1} + + + {D64942B4-6984-3623-3347-45D472AE1C61} + + + {45C2CE26-EC4B-BA52-58F3-297C408E1483} + + + {01603E05-423B-5FC3-1BEE-E15ED33B5688} + + + {65CB28F8-0422-A8F3-9A17-959E12A1F8E2} + + + {2FE25F4C-E9DF-04A5-CAED-6E4B7CF28C59} + + + {0CD9E281-DDD0-91EC-6F77-EA9D9D5E0E1A} + + + {40C5CA7C-AEBB-05B1-11CE-AE41D87B5CCB} + + + {0B0E7392-324B-088C-FBEB-5FE999D61782} + + + {77E2C34E-A4D6-EDB5-A107-7CB3CEF0E8EF} + + + {20254EFE-6CBD-31A7-2119-92B1E0E0E311} + + + {70796D73-6D30-8A1B-4732-7C021E47C05A} + + + {EB8DD942-E2CB-869F-D381-E02A65BA790B} + + + {95CA1506-2B94-0DEE-0C8D-85EDEBBC4E88} + + + {244D11B0-2D68-3C08-A0B7-0D12469BC3AA} + + + {476C69CE-0B67-6B85-E888-45D91E37A29E} + + + {7C5AD030-F8CC-6E85-0AF6-196B3ED40AC6} + + + {0608ADE9-66EF-1A19-6D57-12D07F76EB53} + + + {05F3DB8A-499C-6ACA-282F-5BF8455A0DE1} + + + {C9F6D785-BF78-5AA1-B479-111C65397864} + + + {C8F726FC-26BF-2E6B-4ED5-55A7FE316D7D} + + + {DA0DC4AC-B511-A2D4-199A-C93454D6F114} + + + {91929C6F-7902-B87D-5260-2F6CBF8ACD93} + + + {C294408A-2005-2E9E-7AC0-8D3ABE8AC175} + + + {4634FFAE-9586-A970-364C-4FDDA635F99F} + + + {F2B2F310-F30F-7166-42A9-9BF9C230DA78} + + + {1B67A7C0-86E0-53F6-6AE3-7AD93B8DC95B} + + + {F03654BC-34D8-F975-BEA3-750CC2783D23} + + + {4927C7A1-9235-4AA1-93CD-B4E67E6F1E5F} + + + {FA891A58-9FDA-9651-43C4-714A19B5D08D} + + + {C79A4D23-7866-8F3E-AC39-BD68C52A9259} + + + {3C7C8F35-6C08-9866-6663-6FEFE2EFC9FC} + + + {7703D2CE-C32A-936A-0EEF-949FE6E52EB5} + + + {8D283B6C-13BA-9EF6-1B18-B1C393786943} + + + {928D8FCC-5E00-174B-6538-93E8D75AB396} + + + {1988E68A-A964-64CA-0E0C-26FF9BC5176C} + + + {3DF036EA-3B80-553B-2494-3AAC835CAE75} + + + {358AEA11-3F96-36AE-7B32-71373B5C5396} + + + {F2A38F45-6E55-E147-2E52-64A89FDD9D59} + + + {6172822C-01A5-E824-12DA-FA43FA934D35} + + + {41DC3BE3-D629-8A17-C32B-F5B4008B5FAD} + + + {B098BC87-3298-7E6B-12DC-D26C09CDCAED} + + + {6322B88F-984A-C3CD-6263-38D7AA49B6EC} + + + {73C1E759-AD90-59A3-942E-2D10FAA29107} + + + {EE1AE8C3-0908-8F53-A4E5-D930C7C97C26} + + + {4926B3FF-E797-F586-857A-69D9703FA2D1} + + + {EBC65085-3AD5-280C-1A29-2B1683643AA1} + + + {413F481F-075C-2958-115C-D8268682FCB7} + + + {69E1179D-76EC-26DC-C3E6-6602ED26D783} + + + {C1A1A236-AB01-173E-96C3-0706BFF93B1E} + + + {1182303F-ECA3-166D-AC0C-92C5E762CB93} + + + {26ECA2AF-7368-C6CC-58EF-017ECD1862D0} + + + {E37D25CD-4350-4614-055B-7ABC55E67895} + + + {FFC6E1CC-C772-75E6-5087-FB5D4E016799} + + + {8E43579F-C185-266D-DD67-F8B95BD80F2F} + + + {2CB59E7C-D0E4-7D27-2ACF-C7ABADEE936D} + + + {796B7886-44A7-34CC-9B95-BF4FB2C7B6F4} + + + {A92719C7-70BE-57C4-CE9E-A9BC9DFEB757} + + + {75F1F352-251A-75E0-D941-8431588F5C1E} + + + {DB6E3D09-66DA-12DA-BAE8-A5BFFA7A14AC} + + + {7BCEAB87-62FD-0327-EB5D-679E54EDB9B1} + + + {E980FADB-6E3F-B93C-DE02-CE4271C9BA93} + + + {C3B2EB8A-1A2F-306F-AA78-3E9D1593788B} + + + {7A53E6F1-1343-33B8-4CA8-1D7B714A0E76} + + + {5A0AA36E-3957-E413-14C6-31CBE15271DF} + + + {D7E3D10F-3ED8-DFC5-6DB3-E4ACBF8678FB} + + + {F408DCA2-D5E2-0A3A-A064-A1D045889BC1} + + + {5FDBD6B1-9BBD-392F-4DA5-FEA40A9370C4} + + + {46535B56-3737-2BE8-E3A0-571BCBEB2DA4} + + + {C2B9505B-27B4-F650-12BD-F477D4BBCBAA} + + + {61712B09-5783-ADFA-2001-5A0C3D7764EB} + + + {8A80BA78-D3A8-C0F8-7FFD-61AA028CE852} + + + {8EC9572F-3CCA-E930-74B6-CB6139DE0E17} + + + {C60A6FCA-9462-922E-AD8D-69F10C9049AF} + + + {D56498EE-E354-1F00-5EEE-8CF7944BEAFB} + + + {61B2920C-494D-D8CB-C0C7-5DBF3D76D164} + + + {66C9B809-8739-A217-C78D-A15D6089B8E3} + + + {C413328B-5D81-89EE-F4F3-75752E700DE4} + + + {639E16C5-DA8B-ADBA-6E24-7B596378EAB2} + + + {2D8D0E19-E676-83EB-38D9-F73500DD6B79} + + + {B3141847-8F13-F67D-45B2-E3ECF6E09088} + + + {9E586194-C056-101C-5311-F2AF5191AC80} + + + {151B49D8-6102-F802-1C07-D59931BC0574} + + + {72A923E2-C729-DB92-D7BF-A9D4AFAE5896} + + + {0E43EA8A-95EE-4253-E1B7-160F38ACBB00} + + + {7F11E7D2-54C0-2A36-5F15-BEC0A5374A08} + + + {EE985DEA-CD83-8132-7219-542BB1DAD560} + + + {8B4D1BAA-6DB4-CAEC-A0FA-271F354D5C61} + + + + + OpenGLAppExample\Source + + + OpenGLAppExample\Source + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\audio_cd + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\image_formats + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_video\capture + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Modules\juce_video\native + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + OpenGLAppExample\Source + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\buffers + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\midi + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\effects + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\sources + + + Juce Modules\juce_audio_basics\synthesisers + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\audio_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\midi_io + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\sources + + + Juce Modules\juce_audio_devices\audio_cd + + + Juce Modules\juce_audio_devices\audio_cd + + + Juce Modules\juce_audio_devices\native + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\format + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\codecs + + + Juce Modules\juce_audio_formats\sampler + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\processors + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\format_types + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors\scanning + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\text + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\maths + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\memory + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\containers + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\threads + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\time + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\files + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\network + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\streams + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\logging + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\system + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\xml + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\javascript + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\zip + + + Juce Modules\juce_core\unit_tests + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\misc + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core\native + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\encryption + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography\hashing + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\values + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\undomanager + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures\app_properties + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\messages + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\timers + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\broadcasters + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\interprocess + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events\native + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\colour + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\contexts + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\images + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\geometry + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\placement + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\fonts + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\effects + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics\native + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\components + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\mouse + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\keyboard + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\widgets + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\windows + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\menus + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\layout + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\buttons + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\positioning + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\drawables + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\properties + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\lookandfeel + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\filebrowser + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\commands + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\misc + + + Juce Modules\juce_gui_basics\application + + + Juce Modules\juce_gui_basics\native + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\code_editor + + + Juce Modules\juce_gui_extra\documents + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\embedding + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\misc + + + Juce Modules\juce_gui_extra\native + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\opengl + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\geometry + + + Juce Modules\juce_opengl\utils + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl\native + + + Juce Modules\juce_opengl + + + Juce Modules\juce_video\playback + + + Juce Modules\juce_video\playback + + + Juce Modules\juce_video\capture + + + Juce Modules\juce_video + + + Juce Library Code + + + Juce Library Code + + + Juce Library Code + + + + + OpenGLAppExample\Shaders + + + OpenGLAppExample\Shaders + + + OpenGLAppExample\Source\Resources + + + Juce Modules\juce_audio_basics + + + Juce Modules\juce_audio_devices + + + Juce Modules\juce_audio_formats + + + Juce Modules\juce_audio_processors + + + Juce Modules\juce_core + + + Juce Modules\juce_cryptography + + + Juce Modules\juce_data_structures + + + Juce Modules\juce_events + + + Juce Modules\juce_graphics + + + Juce Modules\juce_gui_basics + + + Juce Modules\juce_gui_extra + + + Juce Modules\juce_opengl + + + Juce Modules\juce_video + + + + + Juce Library Code + + + diff --git a/examples/OpenGLAppExample/Builds/VisualStudio2010/resources.rc b/examples/OpenGLAppExample/Builds/VisualStudio2010/resources.rc new file mode 100644 index 0000000000..fc6fbef4df --- /dev/null +++ b/examples/OpenGLAppExample/Builds/VisualStudio2010/resources.rc @@ -0,0 +1,29 @@ +#ifdef JUCE_USER_DEFINED_RC_FILE + #include JUCE_USER_DEFINED_RC_FILE +#else + +#undef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#include + +VS_VERSION_INFO VERSIONINFO +FILEVERSION 1,0,0,0 +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904E4" + BEGIN + VALUE "FileDescription", "OpenGLAppExample\0" + VALUE "FileVersion", "1.0.0\0" + VALUE "ProductName", "OpenGLAppExample\0" + VALUE "ProductVersion", "1.0.0\0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 65001 + END +END + +#endif diff --git a/examples/OpenGLAppExample/Builds/iOS/Info.plist b/examples/OpenGLAppExample/Builds/iOS/Info.plist new file mode 100644 index 0000000000..da966f1950 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/iOS/Info.plist @@ -0,0 +1,29 @@ + + + + + + LSRequiresIPhoneOS + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.OpenGLAppExample + CFBundleName + OpenGLAppExample + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleShortVersionString + 1.0.0 + CFBundleVersion + 1.0.0 + NSHumanReadableCopyright + + NSHighResolutionCapable + + + diff --git a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..1392efa08e --- /dev/null +++ b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample.xcodeproj/project.pbxproj @@ -0,0 +1,2124 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + + F2E327A47E10F43D6991A306 = {isa = PBXBuildFile; fileRef = 50151F5E1EA38C0768AD9AC8; }; + 7FF434A451FC85BF1B79BC7F = {isa = PBXBuildFile; fileRef = 3948321FE783006946DC8F1F; }; + 8F43218E0AFA8FBC12C39860 = {isa = PBXBuildFile; fileRef = C3C776709CFEB52B87A9E260; }; + 3BFCAE441B663BD739FBCCB4 = {isa = PBXBuildFile; fileRef = 6CDDF198D9632DA763449E05; }; + 5AE83D61A34B2B62A0610EBB = {isa = PBXBuildFile; fileRef = 9D95CB2E713755CD61842774; }; + 3FCDCEFCE3D77BE1FC8A1E17 = {isa = PBXBuildFile; fileRef = 740AFAC150EAC7E6A6D6E6FA; }; + FF3345FBD014D97240E35C15 = {isa = PBXBuildFile; fileRef = 51626197E6CE921E472AFCA1; }; + 6243594E2BFD65B88D9F9918 = {isa = PBXBuildFile; fileRef = 525E733E59BB89937210A34E; }; + 31F4958CEE4B57FD45310A05 = {isa = PBXBuildFile; fileRef = 844820FE23753AF260B13D1D; }; + E7FB9D1F12020A9A921577AB = {isa = PBXBuildFile; fileRef = 342622E99E9622EDF376B782; }; + D0E5FADCDC70B5989BE7D147 = {isa = PBXBuildFile; fileRef = 9BE0EDFED0FC2720BB3AE101; }; + D31034CCE86D686B109ADE0F = {isa = PBXBuildFile; fileRef = DD387A0509039658A5DC2AE5; }; + 5211AFD1D8E7FD62EDA703A9 = {isa = PBXBuildFile; fileRef = 75A8F56B635DA7158E472382; }; + 6A909F1AEE38A7340456EBBD = {isa = PBXBuildFile; fileRef = 82443CD4F42884B9D33A85EA; }; + 1E0BAEC7950969D956E912F1 = {isa = PBXBuildFile; fileRef = 9BBC3E0155BC3F36F21F7EBB; }; + 4FC452CEC761FB0515E83B9C = {isa = PBXBuildFile; fileRef = C62300B9478B60BCBE254256; }; + 6790BEB5EE46E3DF6332536F = {isa = PBXBuildFile; fileRef = D4A815675983D742D87E37A5; }; + D4371AC9EBB0CA9B69C81C98 = {isa = PBXBuildFile; fileRef = FBDBBE33AEF062A1457DAA42; }; + 5EB3C30963D75E7D43D6AD9A = {isa = PBXBuildFile; fileRef = BA895F5D0FC2F40DA0566469; }; + 238A6E94B07DB483C42E0D18 = {isa = PBXBuildFile; fileRef = 3ED09149246BD2CC3D114FB1; }; + 8A7C3FEF41B5A5913396E7B1 = {isa = PBXBuildFile; fileRef = 7BE9659292437455B77D53F1; }; + 148EA191DA9D3066A3C4EEEC = {isa = PBXBuildFile; fileRef = 353C4A5B04236912332BDB1E; }; + BEE9A8C926B45616AC4426AB = {isa = PBXBuildFile; fileRef = 4DDD5CACDD472784437AB83C; }; + 0A0FD3B4C732A965C2642CC8 = {isa = PBXBuildFile; fileRef = C0C66A94FBDE992AAD71C698; }; + 978A2567AA64957C61694427 = {isa = PBXBuildFile; fileRef = C3B0CE7BC50EE3F20BB261EC; }; + 913CB51D1475C7F94739502A = {isa = PBXBuildFile; fileRef = D782993D6DAF0AF948A62517; }; + D54B744850AA08DC348CE8D8 = {isa = PBXBuildFile; fileRef = F07914AFCF34610BAC0D3B0B; }; + 938FA7CCB4CD0A844BE6509F = {isa = PBXBuildFile; fileRef = 757D9E8B34634C0E899922F9; }; + 003AAB5BFC9435FA4823BA2F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_win32_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 014A45F4DF5D4B850A2E712D = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_data_structures/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 015766ED6CD9D55279FC884A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Rectangle.h"; path = "../../../../modules/juce_graphics/geometry/juce_Rectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 019CD85E295A7290855D0C24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DialogWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 01B29765150B583E2460837C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarComponent.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 01D4F510A1EE5495A8A419C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPressMappingSet.h"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.h"; sourceTree = "SOURCE_ROOT"; }; + 01FC5A0075F643D703F56555 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.h"; sourceTree = "SOURCE_ROOT"; }; + 0411B541BEDEC5A67ECEAA31 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageCollector.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 046591508FC3F71F74126E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 04F64700F41A639DA16732BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiBuffer.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 0557BAAD94B3B3AFAF7607EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiKeyboardState.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.cpp"; sourceTree = "SOURCE_ROOT"; }; + 05F871A5DA3290898E2EBFBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MathsFunctions.h"; path = "../../../../modules/juce_core/maths/juce_MathsFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + 06FB32F5B510DEC2A6D2FBCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Synthesiser.cpp"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0737A415932C93579574CE2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_formats.h"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.h"; sourceTree = "SOURCE_ROOT"; }; + 0769D44014FDF069ECA54115 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 07A41B027C9FC2A6DAC801F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_ASCII.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_ASCII.h"; sourceTree = "SOURCE_ROOT"; }; + 07E89C9A0EBF5FF6A0A05EA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0892B622D73826BB91C8E418 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0917DAAA83C16F4D430A4961 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiBuffer.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0950F9F7698F791C6BC7626A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilter.h"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 097B8DA5C29B16C544CEA626 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SpinLock.h"; path = "../../../../modules/juce_core/threads/juce_SpinLock.h"; sourceTree = "SOURCE_ROOT"; }; + 0B26EC9D2A47B858246A76EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDBurner.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDBurner.mm"; sourceTree = "SOURCE_ROOT"; }; + 0C2B705429E7587EB29AAD6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HashMap.h"; path = "../../../../modules/juce_core/containers/juce_HashMap.h"; sourceTree = "SOURCE_ROOT"; }; + 0C5D36923235127BEC48777C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 0C76BB6E3BA98DEED44473E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedValueSetter.h"; path = "../../../../modules/juce_core/containers/juce_ScopedValueSetter.h"; sourceTree = "SOURCE_ROOT"; }; + 0CB9B8098AB7F4CFF3991565 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UndoManager.cpp"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0CD440EC6D9EF66E117E3EBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Network.cpp"; path = "../../../../modules/juce_core/native/juce_android_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0D158239399CB7487C663168 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_JSON.h"; path = "../../../../modules/juce_core/javascript/juce_JSON.h"; sourceTree = "SOURCE_ROOT"; }; + 0D5008DFFC00B074A9970585 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FillType.h"; path = "../../../../modules/juce_graphics/colour/juce_FillType.h"; sourceTree = "SOURCE_ROOT"; }; + 0D79BD52315BE837BAD64A82 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableComposite.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.cpp"; sourceTree = "SOURCE_ROOT"; }; + 0E1CA391708ADDE3952BF147 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConnectedChildProcess.h"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + 0ED63C3FFD7B718988BDDAFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLExtensions.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGLExtensions.h"; sourceTree = "SOURCE_ROOT"; }; + 0F0458EF50C559CFF42DDC67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Random.h"; path = "../../../../modules/juce_core/maths/juce_Random.h"; sourceTree = "SOURCE_ROOT"; }; + 0F1752D7FC9D89588551D5C3 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 0F7BCDE5E324E86EEA86BA7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Logger.h"; path = "../../../../modules/juce_core/logging/juce_Logger.h"; sourceTree = "SOURCE_ROOT"; }; + 0F7EB01A494A7D2D347B9167 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPCompressorOutputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 108D2A323EA2D7B31289AFFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferingAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 10FB75AD59E8E2AEF38167B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorGraph.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp"; sourceTree = "SOURCE_ROOT"; }; + 110D8C5EEF130FB1E1F7D286 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XMLCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11614D602849B43F5ED92934 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDataConverters.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.cpp"; sourceTree = "SOURCE_ROOT"; }; + 11F77DEDB8DDE2BC9B1DAB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 121C4D9B35F16FF170A9D4E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_HiddenMessageWindow.h"; path = "../../../../modules/juce_events/native/juce_win32_HiddenMessageWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 1233B57573AB9503E0625ECB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeDocument.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 12BD203CEA0CE311A5789BB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Network.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + 13FC99389707E91E7EB6D000 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicLibrary.h"; path = "../../../../modules/juce_core/threads/juce_DynamicLibrary.h"; sourceTree = "SOURCE_ROOT"; }; + 13FF137ABBAC726B7785FE0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_BufferingAudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 140AFDDDAB2B88153F46692E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Thread.cpp"; path = "../../../../modules/juce_core/threads/juce_Thread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 14254C2E6F168DB69F9F6494 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoManager.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoManager.h"; sourceTree = "SOURCE_ROOT"; }; + 144BF62327063E0017BB7B0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 14BAD66A370FA342144C7BFC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RSAKey.h"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.h"; sourceTree = "SOURCE_ROOT"; }; + 14BF2173D8CD3520B21E01E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Image.h"; path = "../../../../modules/juce_graphics/images/juce_Image.h"; sourceTree = "SOURCE_ROOT"; }; + 1542F586268CE982EE1C9607 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_OpenSL.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_OpenSL.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1565307D5DC70CAC563B579F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Image.cpp"; path = "../../../../modules/juce_graphics/images/juce_Image.cpp"; sourceTree = "SOURCE_ROOT"; }; + 160486C90F388089629BA392 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AbstractFifo.h"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.h"; sourceTree = "SOURCE_ROOT"; }; + 16094015FECE7F7A1EE6B751 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF32.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF32.h"; sourceTree = "SOURCE_ROOT"; }; + 1633D4A7385E8AB77FB6723E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SliderPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 16421110FEB104E290E3F13C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInactivityDetector.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 168D70A9989ECA609D355DA6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableHeaderComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 169C1D0433B29AF96A6FD27E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBasedDocument.cpp"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + 16D38AE110B44FE0D5E26F9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WindowsMediaAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17077E8777B646C03C92D20B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BorderSize.h"; path = "../../../../modules/juce_graphics/geometry/juce_BorderSize.h"; sourceTree = "SOURCE_ROOT"; }; + 1742A7C8BB2AA11AE93DA43D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WavAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 1782B7FCE431430BD11700EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentDragger.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 179BD4E3BB66F7CC1747ADAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17A033D6C28B1E76FA8BEFCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinate.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.cpp"; sourceTree = "SOURCE_ROOT"; }; + 17AB5E83E71D5864435A011B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Slider.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.cpp"; sourceTree = "SOURCE_ROOT"; }; + 18459D45EE3F7766AB932678 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PreferencesPanel.h"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 18E61768FC20A6C65CF73DA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_EdgeTable.h"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.h"; sourceTree = "SOURCE_ROOT"; }; + 198B97A4FB9B21A3357160C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BlowFish.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.cpp"; sourceTree = "SOURCE_ROOT"; }; + 19B1556541E4426450C8397C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_android_JNIHelpers.h"; path = "../../../../modules/juce_core/native/juce_android_JNIHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 1A366C1E8FF34F708C0AF994 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormatManager.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1A424A0B9D68C68CD5B075E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInputSource.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1AB2337020B7AA4AD329405A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1B0BEB542ED5BA84E52AEA2E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PopupMenu.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1BC364DFD3A975A0CBA0AC61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPositionBehaviours.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPositionBehaviours.h"; sourceTree = "SOURCE_ROOT"; }; + 1BDDC4F584BE877D4DC1ED90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListenerList.h"; path = "../../../../modules/juce_events/broadcasters/juce_ListenerList.h"; sourceTree = "SOURCE_ROOT"; }; + 1C02F9D8BEBC13937D8D9BAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableCornerComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1C196D0BC6B08623601273FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseListener.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1CC05551F14FFC0161D8E12A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_AudioUnitPluginFormat.mm"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.mm"; sourceTree = "SOURCE_ROOT"; }; + 1CEAFFE79A9E1A1E32C2BFD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XMLCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_XMLCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 1D6EA6E2DC8F03826454F21D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComboBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.h"; sourceTree = "SOURCE_ROOT"; }; + 1DC4AC19C53D307B6007D02F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Singleton.h"; path = "../../../../modules/juce_core/memory/juce_Singleton.h"; sourceTree = "SOURCE_ROOT"; }; + 1E07768DDE29F15BF4F32C48 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyPress.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.h"; sourceTree = "SOURCE_ROOT"; }; + 1E21F56456B1A05606B1A328 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MountedVolumeListChangeDetector.h"; path = "../../../../modules/juce_events/messages/juce_MountedVolumeListChangeDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 1E6168E98312F552A0C57E54 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPCompressorOutputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPCompressorOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 1E7CA4A04A182412B3ECEBF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsSoftwareRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + 1ED3843AC8AC67374F6F5F77 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChoicePropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 1F0F8E76A0B7D289D66C4101 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Path.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_Path.cpp"; sourceTree = "SOURCE_ROOT"; }; + 1F6C3ACBB74CDDEBCBFCCA57 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 20A48C39E51031BF57458A55 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UnitTest.h"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.h"; sourceTree = "SOURCE_ROOT"; }; + 20F2CFC88281301E30E08682 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormatManager.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + 21273C209FE7E19C59952EE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiDocumentPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 21FAFC1D8D92872E96F56764 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Quaternion.h"; path = "../../../../modules/juce_opengl/geometry/juce_Quaternion.h"; sourceTree = "SOURCE_ROOT"; }; + 220732F05D2DEBC2ADF2D45C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeRectangle.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + 223B9626308B07EEEDA7C89F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FillType.cpp"; path = "../../../../modules/juce_graphics/colour/juce_FillType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22B8E3336C2DA6F5DE3CE748 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_mac_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + 22D01A956BCD31F2C54E4E38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CharacterFunctions.cpp"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23E996355EF7DFDCECA97B64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryIterator.cpp"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 23EA0178C7150CBA80E79215 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioUnitPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_AudioUnitPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 23F1F8A1566366CCFAC8A5BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessage.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 24E54A22403128BA82D02B09 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Synthesiser.h"; path = "../../../../modules/juce_audio_basics/synthesisers/juce_Synthesiser.h"; sourceTree = "SOURCE_ROOT"; }; + 2517140ED8C0697A51CF87AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_URL.h"; path = "../../../../modules/juce_core/network/juce_URL.h"; sourceTree = "SOURCE_ROOT"; }; + 254F2F62D02E4B48191083CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_SystemStats.mm"; path = "../../../../modules/juce_core/native/juce_mac_SystemStats.mm"; sourceTree = "SOURCE_ROOT"; }; + 2553F95186E2565315E012CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_linux.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_linux.h"; sourceTree = "SOURCE_ROOT"; }; + 25B327FEFEA517FB80B16EA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OwnedArray.h"; path = "../../../../modules/juce_core/containers/juce_OwnedArray.h"; sourceTree = "SOURCE_ROOT"; }; + 260D03D00CBF739BB3A2F604 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationProperties.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.cpp"; sourceTree = "SOURCE_ROOT"; }; + 266A60D0C3095B8F7F16751E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2740DD21925484E4BC243630 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseListener.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseListener.h"; sourceTree = "SOURCE_ROOT"; }; + 274546C14A985F7D454E16B7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_android_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 274FB7736A16D65B40E1EA71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Misc.cpp"; path = "../../../../modules/juce_core/native/juce_android_Misc.cpp"; sourceTree = "SOURCE_ROOT"; }; + 275CF9CA5A34E2825DB8792C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarModel.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 279A6546016EEB8F9264EB39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Font.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Font.cpp"; sourceTree = "SOURCE_ROOT"; }; + 279D354D902DE91EB32B1BE6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27AB89D8B21801C1528F53C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathStrokeType.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 27C1C1AD957D9955A13E3A4E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = JuceHeader.h; path = ../../JuceLibraryCode/JuceHeader.h; sourceTree = "SOURCE_ROOT"; }; + 281ADBFFA54CFADAE46AAE79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooser.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.h"; sourceTree = "SOURCE_ROOT"; }; + 2822F9B316AEF7797E0F04B4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedAudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_MemoryMappedAudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 284C742F571D494237C52C2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectanglePlacement.h"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.h"; sourceTree = "SOURCE_ROOT"; }; + 28BF10B49B1D14FE05CBC5DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ShapeButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.h"; sourceTree = "SOURCE_ROOT"; }; + 28DEE4AF47201ED83DFD5875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_AudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 28ECC3EF6106E7DB0E4F256C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Reverb.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Reverb.h"; sourceTree = "SOURCE_ROOT"; }; + 2931E23782DDD4761EA6E711 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleMessageComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 293D0E58C45CE26287E99822 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModalComponentManager.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2951B1B0EE3CE714426016F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A274CF384892F3968889E0C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CompilerSupport.h"; path = "../../../../modules/juce_core/system/juce_CompilerSupport.h"; sourceTree = "SOURCE_ROOT"; }; + 2A5F9649D883210E5C67CEE4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colour.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colour.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2A765F108608FDD8B2089BD1 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_cryptography/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 2B594B1579F4770CA36E870C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PNGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_PNGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2BCD3C3BC90487E5B932FC98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LinkedListPointer.h"; path = "../../../../modules/juce_core/containers/juce_LinkedListPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 2BEA66F83F12716439729EEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReadWriteLock.cpp"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2BFABFBE400EBD477EEC1F7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 2C4E26E2F6F3B5522CA9993E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_android_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CB561058728D0EA3A66AF4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Typeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2CD2FBF66999807E0B86E0B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandID.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandID.h"; sourceTree = "SOURCE_ROOT"; }; + 2CE3A9187CAA637AAF93C273 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReverbAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 2D23BD941B1F4B65E5A2C2F3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputStream.h"; path = "../../../../modules/juce_core/streams/juce_InputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 2D4DFDFFC93646E9C078865E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LAMEEncoderAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2D6A1D77D896FF6DDD5EC49F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Component.h"; path = "../../../../modules/juce_gui_basics/components/juce_Component.h"; sourceTree = "SOURCE_ROOT"; }; + 2DA8BDECC570B976D34D9263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TreeView.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2DBFFAB8701557418A4C7CA2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormat.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 2E1213ABCA6E339D156C6825 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2E355DED51A6E9DFBFDA84CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterProcessLock.h"; path = "../../../../modules/juce_core/threads/juce_InterProcessLock.h"; sourceTree = "SOURCE_ROOT"; }; + 2E62B2A1D5FE20D7E675DC3F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_freetype_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_freetype_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 2EC200E7CF8C908AC3DF4416 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedPosition.h"; path = "../../../../modules/juce_gui_basics/layout/juce_AnimatedPosition.h"; sourceTree = "SOURCE_ROOT"; }; + 30CBDFC5F16FD990ABC2C486 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_graphics.h"; path = "../../../../modules/juce_graphics/juce_graphics.h"; sourceTree = "SOURCE_ROOT"; }; + 3134A6BDE49CF0D3F0B12FE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyPanel.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 31416E7F36800B9ACAEA176F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatWriter.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 317988D9466ECCE83B91CD24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_video.h"; path = "../../../../modules/juce_video/juce_video.h"; sourceTree = "SOURCE_ROOT"; }; + 3197F342A372898714E25F70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDiff.h"; path = "../../../../modules/juce_core/text/juce_TextDiff.h"; sourceTree = "SOURCE_ROOT"; }; + 31AF78DCC817DE98C01E1EEE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessage.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 31B42F889DD1C79540881B97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandManager.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.h"; sourceTree = "SOURCE_ROOT"; }; + 31CD83018DA7BED28A70EC1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Component.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Component.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32940D3F55D43FA834DAD545 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Registry.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Registry.cpp"; sourceTree = "SOURCE_ROOT"; }; + 32CFACA9C637ABD27F8A874F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_android.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_android.h"; sourceTree = "SOURCE_ROOT"; }; + 32D11E8A57FD1B5250A5E493 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ZipFile.cpp"; path = "../../../../modules/juce_core/zip/juce_ZipFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 332346809620F9AFA7CF3D59 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Threads.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Threads.cpp"; sourceTree = "SOURCE_ROOT"; }; + 338C5E41B8903F0894709201 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + 33B9E6212D92FB49C792ACE9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeParallelogram.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.cpp"; sourceTree = "SOURCE_ROOT"; }; + 33D5910744D9482DBA614144 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ConcertinaPanel.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.h"; sourceTree = "SOURCE_ROOT"; }; + 33FDA12B0256C2A4BD51B11E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OggVorbisAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 342622E99E9622EDF376B782 = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = OpenGLAppExample/Images.xcassets; sourceTree = "SOURCE_ROOT"; }; + 343BF0E7697F399B08D42CB7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BubbleComponent.h"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 34CBE9CCD9B23B1405C76D9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SubregionStream.h"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.h"; sourceTree = "SOURCE_ROOT"; }; + 353C4A5B04236912332BDB1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_data_structures.mm"; path = "../../../../modules/juce_data_structures/juce_data_structures.mm"; sourceTree = "SOURCE_ROOT"; }; + 3545CC1CCF501BDBFF528908 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ButtonPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 354636C92CDB97DAF80D1E6A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 355B143DFA326CC401844099 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ProgressBar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.h"; sourceTree = "SOURCE_ROOT"; }; + 355F2CA65E4117FDE2391872 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPool.cpp"; path = "../../../../modules/juce_core/text/juce_StringPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 35641C490EE335DDFF004FEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnection.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.cpp"; sourceTree = "SOURCE_ROOT"; }; + 356A77E7E341874950015BD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedValueSet.h"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.h"; sourceTree = "SOURCE_ROOT"; }; + 35748B2B69B3A54D19679F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePoint.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.h"; sourceTree = "SOURCE_ROOT"; }; + 3594634D87002997155671C1 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_formats/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 35B404161217DAE32CC143CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLGraphicsContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 360B3CDCB046B9D69C6F5ED4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativePointPath.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.h"; sourceTree = "SOURCE_ROOT"; }; + 36632604A700FC8F53169301 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Javascript.cpp"; path = "../../../../modules/juce_core/javascript/juce_Javascript.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3693D26AD61B3B089A2B9CEC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBuilder.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.h"; sourceTree = "SOURCE_ROOT"; }; + 36C81D39EEE59DF7D8AB0E0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageCollector.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiMessageCollector.h"; sourceTree = "SOURCE_ROOT"; }; + 37BD426B7B7DD8BB3EF562A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsDisplayComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 38043242051AD4996B081769 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Drawable.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.h"; sourceTree = "SOURCE_ROOT"; }; + 38A0CFC456FB82927DF8B990 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyListener.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.h"; sourceTree = "SOURCE_ROOT"; }; + 38ADFF5CB2DD15D371425F8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FlacAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3901027B107F1E3047BE9DAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertySet.cpp"; path = "../../../../modules/juce_core/containers/juce_PropertySet.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3935FEBDBA2F8025F602042C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HyperlinkButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 393EA74C63AFA103F5F3264B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLImage.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.h"; sourceTree = "SOURCE_ROOT"; }; + 3948321FE783006946DC8F1F = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 396986DB8689B7C6909777E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ZipFile.h"; path = "../../../../modules/juce_core/zip/juce_ZipFile.h"; sourceTree = "SOURCE_ROOT"; }; + 39CD252C183BBF175E1C0602 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConcertinaPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ConcertinaPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39DAB20FE9D55152EB2D224A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImagePreviewComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 39E15EA7A7D5C14DC2567263 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DynamicObject.cpp"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A52ADB8D2B72A1E6F455ABA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPress.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyPress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A5C86CF6276058B0D5AC399 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3A8EA18FCAE5801EF1AECC06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3AC4E835893B368AD0A3A30F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CoreAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 3AD3CC5787E119E3A1F6A55F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OutputStream.h"; path = "../../../../modules/juce_core/streams/juce_OutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 3B172600E3C05D62F424449B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LuaCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B2C9FC5B754F29B4BFF7EA9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsDisplayComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsDisplayComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3B3B1BB15DFF71215E86A175 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B3FC34DE0D784314690A93C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_ios_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 3B719AB087869724229AF10D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LagrangeInterpolator.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3B883BA33260250D6C443F87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3C90895F90CF6FA4714DBF6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CodeEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3CCB2447E4FA1C412FEEE551 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnectionServer.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.h"; sourceTree = "SOURCE_ROOT"; }; + 3CF6CC164ED4826B4DF73177 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextLayout.h"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.h"; sourceTree = "SOURCE_ROOT"; }; + 3D26B83681D1E47ADFB2D8A9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeMovieComponent.h"; path = "../../../../modules/juce_video/playback/juce_QuickTimeMovieComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3DCD8AA2FF25FBE6919E8F64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Logger.cpp"; path = "../../../../modules/juce_core/logging/juce_Logger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3DF5CBEC136D13446079C001 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MessageManager.mm"; path = "../../../../modules/juce_events/native/juce_mac_MessageManager.mm"; sourceTree = "SOURCE_ROOT"; }; + 3E157C0C9F33470C32DE6008 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReaderSource.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.h"; sourceTree = "SOURCE_ROOT"; }; + 3E22FC06C346385E732377C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableBorderComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 3E3D664A12153D29FC1D42ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Expression.h"; path = "../../../../modules/juce_core/maths/juce_Expression.h"; sourceTree = "SOURCE_ROOT"; }; + 3E5E15C429B5D8BDA6815193 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Toolbar.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.h"; sourceTree = "SOURCE_ROOT"; }; + 3E85ACEDFE88D01251E25E24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LeakedObjectDetector.h"; path = "../../../../modules/juce_core/memory/juce_LeakedObjectDetector.h"; sourceTree = "SOURCE_ROOT"; }; + 3EA7A5F6F6D13A68653F06E8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_File.h"; path = "../../../../modules/juce_core/files/juce_File.h"; sourceTree = "SOURCE_ROOT"; }; + 3ECBCBB5D76AD9DDE65BD81A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NamedPipe.h"; path = "../../../../modules/juce_core/network/juce_NamedPipe.h"; sourceTree = "SOURCE_ROOT"; }; + 3ED09149246BD2CC3D114FB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_core.mm"; path = "../../../../modules/juce_core/juce_core.mm"; sourceTree = "SOURCE_ROOT"; }; + 3F02F103D0EA0D398FA2A95D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Desktop.h"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.h"; sourceTree = "SOURCE_ROOT"; }; + 3F20765E456B1B8FF59C2461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferedInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F312C95E458F86E5D814AD3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourSelector.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F32203D512AD417AE3548E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RecentlyOpenedFilesList.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3F57F6B58B93E88A29F90809 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawablePath.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 3FB32BF0AB8E9BD398E92361 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_opengl/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 406587D828CD424333E55C81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinatePositioner.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.h"; sourceTree = "SOURCE_ROOT"; }; + 40ACA092AB6B933E39268DAF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 40E971224B83783243521871 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DragAndDropContainer.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 410C72660348DFD81F81386C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDBurner.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDBurner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4142E8BA365FE77662B11891 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + 417D4A3533F8C72814441F51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputSource.h"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 41D42F7438B6C953A2DC5038 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Path.h"; path = "../../../../modules/juce_graphics/geometry/juce_Path.h"; sourceTree = "SOURCE_ROOT"; }; + 41F9BAD0BC589CC46CFEF495 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Random.cpp"; path = "../../../../modules/juce_core/maths/juce_Random.cpp"; sourceTree = "SOURCE_ROOT"; }; + 426B31F8A63727D575B2C782 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryContentsList.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.h"; sourceTree = "SOURCE_ROOT"; }; + 4271A817DD6497D0023C43A3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GlyphArrangement.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 427EF6B8A919A04D12F63829 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageManager.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + 42AE889B4D596FF23E2D77CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemClipboard.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_SystemClipboard.h"; sourceTree = "SOURCE_ROOT"; }; + 434AB1A1510034290ED3FBA8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedPipe.cpp"; path = "../../../../modules/juce_core/network/juce_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4391785C112C65C6C1F4E05A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadWithProgressWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4411214CB9D7F986DA5A92FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertiesFile.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.h"; sourceTree = "SOURCE_ROOT"; }; + 4421B5629FD22618255E5539 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DynamicObject.h"; path = "../../../../modules/juce_core/containers/juce_DynamicObject.h"; sourceTree = "SOURCE_ROOT"; }; + 449FC2FAA282C731A58D51E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToggleButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.h"; sourceTree = "SOURCE_ROOT"; }; + 44EFBCE30DD206F4A55E4E81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AlertWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 45693266645F0549AD1FEA88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioTransportSource.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.h"; sourceTree = "SOURCE_ROOT"; }; + 46258D3B622AB0E2EF63F709 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SparseSet.h"; path = "../../../../modules/juce_core/containers/juce_SparseSet.h"; sourceTree = "SOURCE_ROOT"; }; + 4660BCF2E3BB5D499FA4A5EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryBlock.cpp"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4676425D91097FBD1689298C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemFactory.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemFactory.h"; sourceTree = "SOURCE_ROOT"; }; + 4683DEED4D9E52F0A84FCEE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + 46F845FD963442D8748D3261 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PixelFormats.h"; path = "../../../../modules/juce_graphics/colour/juce_PixelFormats.h"; sourceTree = "SOURCE_ROOT"; }; + 4717C14F84229B39FA2FA86B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_android_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 473E98AA655246EECA75EDD1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_GlowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + 47E94C2476E8A7171A484CF0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSampleBuffer.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 4825BC8A3502320ED671408E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Fonts.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_Fonts.mm"; sourceTree = "SOURCE_ROOT"; }; + 48285F283B8D98122DB9D028 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDescription.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.cpp"; sourceTree = "SOURCE_ROOT"; }; + 484ACD3191DB5BEB198EEF97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SelectedItemSet.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_SelectedItemSet.h"; sourceTree = "SOURCE_ROOT"; }; + 489D9B3F2489315DBF5C552E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Application.h"; path = "../../../../modules/juce_gui_basics/application/juce_Application.h"; sourceTree = "SOURCE_ROOT"; }; + 48FCAA413FA6EC7E02B33A6E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPool.h"; path = "../../../../modules/juce_core/text/juce_StringPool.h"; sourceTree = "SOURCE_ROOT"; }; + 49837BCC6CD64D108AA3E37D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBuilder.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBuilder.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AB3D9133A3357A3FDAD3BB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_HighResolutionTimer.cpp"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4AB453F1DFC4EA7AE058B0EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4ADEE86E1B443E58DA6A90FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KnownPluginList.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4B409B90CC47BF0477D7F6E4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TreeView.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TreeView.h"; sourceTree = "SOURCE_ROOT"; }; + 4BF34287391AB2ED382C9CB2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MainMenu.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MainMenu.mm"; sourceTree = "SOURCE_ROOT"; }; + 4C57FEDA7D19BB3D05326948 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemTrayIconComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4C9A8BA6A094DC3490CF25B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableObjectResizer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.h"; sourceTree = "SOURCE_ROOT"; }; + 4CAE848C3F30163816E921DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MD5.h"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.h"; sourceTree = "SOURCE_ROOT"; }; + 4D95426C0ADAF01F92462C1E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorListener.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorListener.h"; sourceTree = "SOURCE_ROOT"; }; + 4DDD5CACDD472784437AB83C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_events.mm"; path = "../../../../modules/juce_events/juce_events.mm"; sourceTree = "SOURCE_ROOT"; }; + 4E053EF00EC72441FCC9A6ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLPixelFormat.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4E4A47F8BEEF90A57C0C98C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Sampler.h"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.h"; sourceTree = "SOURCE_ROOT"; }; + 4EBBA20040624174084744DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ValueTree.cpp"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F70D57A0CFEEC0D7FADCB9D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BufferingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4F9D0FABF1E74572460D086C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLImage.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + 4FBA6C32DE977B1330BAD5DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyboardFocusTraverser.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.h"; sourceTree = "SOURCE_ROOT"; }; + 50151F5E1EA38C0768AD9AC8 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Accelerate.framework; path = System/Library/Frameworks/Accelerate.framework; sourceTree = SDKROOT; }; + 502503CB0C00102976DF1023 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_win32_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 506DE1D3A739746007E33852 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AttributedString.h"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.h"; sourceTree = "SOURCE_ROOT"; }; + 509031D02C057DCD1F713B6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StandardHeader.h"; path = "../../../../modules/juce_core/system/juce_StandardHeader.h"; sourceTree = "SOURCE_ROOT"; }; + 509FC03682CA45E87F7E0A67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSubsectionReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.h"; sourceTree = "SOURCE_ROOT"; }; + 50CAEE20832DF292261BF105 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MixerAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 51626197E6CE921E472AFCA1 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + 51713BEF84B3A58844692401 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionListener.h"; sourceTree = "SOURCE_ROOT"; }; + 51C3B7D6330C765ADFB672FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioSourcePlayer.h"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.h"; sourceTree = "SOURCE_ROOT"; }; + 51FDDE6DD9DC3FB98747A0E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 52057B317B0FC98209D5BEC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPlayHead.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPlayHead.h"; sourceTree = "SOURCE_ROOT"; }; + 525E733E59BB89937210A34E = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 52B122DC1886502CCCD16ED2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableEdgeComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5375E8C69E76D1570BE36946 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryOutputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 53890D1A9DE3751F3A19C3C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Decibels.h"; path = "../../../../modules/juce_audio_basics/effects/juce_Decibels.h"; sourceTree = "SOURCE_ROOT"; }; + 541C3E9F5E720BF6D99D94CD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DirectoryContentsList.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 546D112DEC6A685B52E4D7AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileBrowserComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 54B30BCC43C6CBF57A69A654 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InterprocessConnection.h"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnection.h"; sourceTree = "SOURCE_ROOT"; }; + 54E56E35A31C662C67992C7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Direct2DGraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_Direct2DGraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5576ADF82B58BDBBCC75477C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageManager.h"; path = "../../../../modules/juce_events/messages/juce_MessageManager.h"; sourceTree = "SOURCE_ROOT"; }; + 55C1F41C94C7C8ED73FC3288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_File.cpp"; path = "../../../../modules/juce_core/files/juce_File.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56C0EB0C9E4089ACA44588E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MD5.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_MD5.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56C2444E299E030DE7243C7D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeRectangle.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 56CAE507F1D59D551C26B998 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Time.cpp"; path = "../../../../modules/juce_core/time/juce_Time.cpp"; sourceTree = "SOURCE_ROOT"; }; + 575F4E371F82188902F74A96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPath.h"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.h"; sourceTree = "SOURCE_ROOT"; }; + 5784477EFEEAAD041BDF34D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileLogger.h"; path = "../../../../modules/juce_core/logging/juce_FileLogger.h"; sourceTree = "SOURCE_ROOT"; }; + 5789E773C615D393363707C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Primes.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.cpp"; sourceTree = "SOURCE_ROOT"; }; + 57FE8CC6D36C0376D4065444 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Files.cpp"; path = "../../../../modules/juce_core/native/juce_android_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58301731C17BEF7BF07541AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeListener.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeListener.h"; sourceTree = "SOURCE_ROOT"; }; + 5848A09E20AA6FE9EF1E6898 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ShapeButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ShapeButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + 58C9B8F93CF63036CA33A6C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VST3PluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5989B7979A4446D163FD7E13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ByteOrder.h"; path = "../../../../modules/juce_core/memory/juce_ByteOrder.h"; sourceTree = "SOURCE_ROOT"; }; + 59B2E8822B445FDD2BC590B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 59C461E6BF35CEC17FB2C9DC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Primes.h"; path = "../../../../modules/juce_cryptography/encryption/juce_Primes.h"; sourceTree = "SOURCE_ROOT"; }; + 5AFAF9A5651C30F1FF28A76A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_osx.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_osx.h"; sourceTree = "SOURCE_ROOT"; }; + 5B546C6ED44CAF4197788BC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BooleanPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 5B5D589850B147BE94D01D42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipClient.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TooltipClient.h"; sourceTree = "SOURCE_ROOT"; }; + 5BB4A463E17E9C4AD5F43FFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BufferedInputStream.h"; path = "../../../../modules/juce_core/streams/juce_BufferedInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 5BD5301D9DFF3CEA10C32DBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BlowFish.h"; path = "../../../../modules/juce_cryptography/encryption/juce_BlowFish.h"; sourceTree = "SOURCE_ROOT"; }; + 5BF81A5EBE596AB3F3E4C222 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Windowing.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_Windowing.mm"; sourceTree = "SOURCE_ROOT"; }; + 5C51BB323073B2AD0320825A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Time.h"; path = "../../../../modules/juce_core/time/juce_Time.h"; sourceTree = "SOURCE_ROOT"; }; + 5CD7B0F647F366AC5510A13E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlElement.h"; path = "../../../../modules/juce_core/xml/juce_XmlElement.h"; sourceTree = "SOURCE_ROOT"; }; + 5CE4484E6BAB76C9B49E6ADE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HyperlinkButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_HyperlinkButton.h"; sourceTree = "SOURCE_ROOT"; }; + 5CF8CAB948FAAB9164F206B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5D998A4BC436D82C3A6E8606 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NormalisableRange.h"; path = "../../../../modules/juce_core/maths/juce_NormalisableRange.h"; sourceTree = "SOURCE_ROOT"; }; + 5F43D23FA8A72E66792AE5C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F49099628EF3662332FDB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AiffAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 5F6BDD2491C4086940AAE045 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 60359F3EE85F679C1D118136 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutManager.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.h"; sourceTree = "SOURCE_ROOT"; }; + 60B2BAA3043C667FE98E94CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_String.h"; path = "../../../../modules/juce_core/text/juce_String.h"; sourceTree = "SOURCE_ROOT"; }; + 60F110007A8248E4318D9B0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadower.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61448959C09144CC093AA715 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ThreadPool.cpp"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.cpp"; sourceTree = "SOURCE_ROOT"; }; + 61596F68A47C4BEA8F9A4D68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableText.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.h"; sourceTree = "SOURCE_ROOT"; }; + 619377E030188B909977D85B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDReader.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDReader.h"; sourceTree = "SOURCE_ROOT"; }; + 61C1B6B3336D774EAE4994F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DocumentWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 623C7B6BD0B564F60F1F4012 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationProperties.h"; path = "../../../../modules/juce_data_structures/app_properties/juce_ApplicationProperties.h"; sourceTree = "SOURCE_ROOT"; }; + 62935FD655DDDCE70536555F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandTarget.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62ABA7CF7D0CE2D7B3F7BFCD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiOutput.cpp"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.cpp"; sourceTree = "SOURCE_ROOT"; }; + 62F8069EE12495D7BDF5BCCB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentMovementWatcher.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6364C602FBB1C4D7915DF708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Uuid.h"; path = "../../../../modules/juce_core/misc/juce_Uuid.h"; sourceTree = "SOURCE_ROOT"; }; + 6436F4F5D143E72BD77EE053 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToolbarButton.h"; sourceTree = "SOURCE_ROOT"; }; + 6536E6457A8B77FDCC506401 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Button.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6549876733A874A58F78CE78 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_UnitTest.cpp"; path = "../../../../modules/juce_core/unit_tests/juce_UnitTest.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6555D39D3BE572E611DCA8EB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ButtonPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ButtonPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 656CA5CB0EF44C76ACFFDCEA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_linux_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + 661DA0426C81D826ADA90BAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResamplingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 663F74D8282001BEA5E93096 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_QuickTimeAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 665600E48FF051CFE90C698D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ModifierKeys.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.cpp"; sourceTree = "SOURCE_ROOT"; }; + 66634B351B20F6B1F16ED9D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_basics.h"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.h"; sourceTree = "SOURCE_ROOT"; }; + 66B35673D58EF4ABC6C50824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiDataConcatenator.h"; path = "../../../../modules/juce_audio_devices/native/juce_MidiDataConcatenator.h"; sourceTree = "SOURCE_ROOT"; }; + 66CFF6B31868957CCF9A1C68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDirectoryScanner.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.h"; sourceTree = "SOURCE_ROOT"; }; + 67066EE59E69BCD634D38ABA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TableListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 671B91E2FBEFF3E1A411B28A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OptionalScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_OptionalScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 67239C8DF5524A278253F181 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileInputStream.h"; path = "../../../../modules/juce_core/files/juce_FileInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + 673396F4BEBFE86BF911DBB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SortedSet.h"; path = "../../../../modules/juce_core/containers/juce_SortedSet.h"; sourceTree = "SOURCE_ROOT"; }; + 6741B65B42E9858C7B580A36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeface.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + 67B47838D621A526D8148308 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RecentlyOpenedFilesList.h"; path = "../../../../modules/juce_gui_extra/misc/juce_RecentlyOpenedFilesList.h"; sourceTree = "SOURCE_ROOT"; }; + 6894AE00A49D15E9C4A31355 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CameraDevice.mm"; path = "../../../../modules/juce_video/native/juce_mac_CameraDevice.mm"; sourceTree = "SOURCE_ROOT"; }; + 68C292BF84E3387285884015 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_QuickTimeAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_QuickTimeAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 68E2ACE653CDFA7D1EFBCB37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MixerAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_MixerAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 694EB6B22E35E09B6AB43EE2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V2.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6960FFB28F8600D605CEBEBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChannelRemappingAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 69AE98AB9502B4B4E7EBCD60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = WavefrontObjParser.h; path = ../../Source/Resources/WavefrontObjParser.h; sourceTree = "SOURCE_ROOT"; }; + 69CA413A66B0EA204C1AFF4A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModifierKeys.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_ModifierKeys.h"; sourceTree = "SOURCE_ROOT"; }; + 69F89AFBA54B48038B47DDED = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6A972E2430F4B2D9A07D44D2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NotificationType.h"; path = "../../../../modules/juce_events/messages/juce_NotificationType.h"; sourceTree = "SOURCE_ROOT"; }; + 6AA216A8B8EF4E181BCD96A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ScrollBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6AC21250C86C558A82EE3B25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_String.cpp"; path = "../../../../modules/juce_core/text/juce_String.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6B107438F2E31C0BF985A733 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Identifier.h"; path = "../../../../modules/juce_core/text/juce_Identifier.h"; sourceTree = "SOURCE_ROOT"; }; + 6B43A5B75AB87FC3CA8D05D3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MP3AudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 6B5BE388D982E05CD2C7BE10 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsRegistry.h"; path = "../../../../modules/juce_core/misc/juce_WindowsRegistry.h"; sourceTree = "SOURCE_ROOT"; }; + 6B5D185CB49DC6746B357183 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDataConverters.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioDataConverters.h"; sourceTree = "SOURCE_ROOT"; }; + 6BC5C181AD876196213378C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageCache.h"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.h"; sourceTree = "SOURCE_ROOT"; }; + 6C3B851F65AB406E5B6CAF7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileTreeComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 6C4A5B3781D999AFA15F1016 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Viewport.h"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.h"; sourceTree = "SOURCE_ROOT"; }; + 6C5F536D935CF788C07424CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6C8C142D26BAD246C4ECC102 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_video/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 6C91F33E01BD39630B255C47 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6CDDF198D9632DA763449E05 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; }; + 6CE60A4F64042BC1A2391987 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTouchMapper.h"; path = "../../../../modules/juce_gui_basics/native/juce_MultiTouchMapper.h"; sourceTree = "SOURCE_ROOT"; }; + 6CF6624AD370E4716D42CEDF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RectanglePlacement.cpp"; path = "../../../../modules/juce_graphics/placement/juce_RectanglePlacement.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D1D3AFCBD704E2E3A9AB0D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CaretComponent.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D3191834A1567C5C18A13AA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertiesFile.cpp"; path = "../../../../modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6D36D69499FD940CAD1E7484 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReadWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ReadWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + 6D9EBBDDFD2AF922A6947057 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginDirectoryScanner.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6DC6E88C0FC0045CD52064F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadPool.h"; path = "../../../../modules/juce_core/threads/juce_ThreadPool.h"; sourceTree = "SOURCE_ROOT"; }; + 6DEF5E5D162E4F32631FE2D7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Message.h"; path = "../../../../modules/juce_events/messages/juce_Message.h"; sourceTree = "SOURCE_ROOT"; }; + 6E35055BA3436FC2F9B77365 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageConvolutionKernel.h"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.h"; sourceTree = "SOURCE_ROOT"; }; + 6EAF92417BE40684D0FAA797 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextDiff.cpp"; path = "../../../../modules/juce_core/text/juce_TextDiff.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F0A25914D95D4F547F91C79 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLTexture.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6F974A4B1AC400251425C8CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemPalette.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.cpp"; sourceTree = "SOURCE_ROOT"; }; + 6FA9A28DB80D43E87900A1B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_FileChooser.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_FileChooser.mm"; sourceTree = "SOURCE_ROOT"; }; + 70407DF33563B729D4758A17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PropertyPanel.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7049C408D43D64C1504F6505 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScrollBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ScrollBar.h"; sourceTree = "SOURCE_ROOT"; }; + 7063B929C5E98B803E0464EE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DeletedAtShutdown.h"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.h"; sourceTree = "SOURCE_ROOT"; }; + 70687CABD6ABBC69E717B73D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODevice.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7069BF224A795890367AB809 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Label.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.cpp"; sourceTree = "SOURCE_ROOT"; }; + 70C9E5BB2C3C4F1314DD8F4B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MACAddress.h"; path = "../../../../modules/juce_core/network/juce_MACAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 7109E1D6A2AD7A013453C922 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AnimatedAppComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 71159E965AD35ED1496B5866 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginListComponent.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7156B58188258F7EBE617E15 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CPlusPlusCodeTokeniser.cpp"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.cpp"; sourceTree = "SOURCE_ROOT"; }; + 71F494877324567960FC3F84 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringArray.h"; path = "../../../../modules/juce_core/text/juce_StringArray.h"; sourceTree = "SOURCE_ROOT"; }; + 7207669F41206DC961E08FD2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Windowing.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Windowing.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7246A65F3B8646D764F3A355 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropContainer.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h"; sourceTree = "SOURCE_ROOT"; }; + 72694B9BC870AF124976586F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorParameter.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorParameter.h"; sourceTree = "SOURCE_ROOT"; }; + 72723038519B5AB5FFB52EB9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectShowComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_DirectShowComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72B3FF3E4E9060A4F06F89F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilterAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 72E1B34915000641B7AD80EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_CommonFile.cpp"; path = "../../../../modules/juce_core/native/juce_linux_CommonFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73636C4935CD275E66A85104 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CoreAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_CoreAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 73861DEE4EEBFF77B6293F90 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RenderingHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_RenderingHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + 7392F4B60E4E28A340E465BE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextPropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_TextPropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 73B62E5AA67F4B0483ED680F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UndoableAction.h"; path = "../../../../modules/juce_data_structures/undomanager/juce_UndoableAction.h"; sourceTree = "SOURCE_ROOT"; }; + 740AFAC150EAC7E6A6D6E6FA = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 74E1A5ECBC09930A520D1A98 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseInputSource.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 74E37866C31A35A559E1E80D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WebBrowserComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 757D9E8B34634C0E899922F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_video.mm"; path = "../../../../modules/juce_video/juce_video.mm"; sourceTree = "SOURCE_ROOT"; }; + 7581EDAFA0B1746EC8139077 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ResizableWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 759899A48CDE9705331F456E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageComponent.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 75A8F56B635DA7158E472382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = MainComponent.cpp; path = ../../Source/MainComponent.cpp; sourceTree = "SOURCE_ROOT"; }; + 75CD7766A1ACC3BA17C8B73B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLFrameBuffer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.h"; sourceTree = "SOURCE_ROOT"; }; + 7609867A9F36324EA1C9F228 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeTime.h"; path = "../../../../modules/juce_core/time/juce_RelativeTime.h"; sourceTree = "SOURCE_ROOT"; }; + 76372445FC076FB8D26CEEC4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallOutBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.h"; sourceTree = "SOURCE_ROOT"; }; + 7703A0B63AFF2C5FE9587CBF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioCDBurner.h"; path = "../../../../modules/juce_audio_devices/audio_cd/juce_AudioCDBurner.h"; sourceTree = "SOURCE_ROOT"; }; + 7712C8260E9F4A7C2BD9FD63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPath.cpp"; path = "../../../../modules/juce_core/files/juce_FileSearchPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + 773BD1E9176FB073B71705A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedPointer.h"; path = "../../../../modules/juce_core/memory/juce_ScopedPointer.h"; sourceTree = "SOURCE_ROOT"; }; + 774B3CFCF0748FE9E5EA4597 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WavAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_WavAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 776FC3A674D9CCD21CB2D7A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CaretComponent.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_CaretComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 77802A78E9D43C940C14B0BF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentAnimator.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.cpp"; sourceTree = "SOURCE_ROOT"; }; + 77A353D0E709D31E3BE00A8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WaitableEvent.h"; path = "../../../../modules/juce_core/threads/juce_WaitableEvent.h"; sourceTree = "SOURCE_ROOT"; }; + 77BAA6C13A52BE0F0A42FD0E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_ios_UIViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + 783C910D9B34E33F4C7D270F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BasicNativeHeaders.h"; path = "../../../../modules/juce_core/native/juce_BasicNativeHeaders.h"; sourceTree = "SOURCE_ROOT"; }; + 78C9531A81D34333AEF14019 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChoicePropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_ChoicePropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 791D605377E089529EA264D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileLogger.cpp"; path = "../../../../modules/juce_core/logging/juce_FileLogger.cpp"; sourceTree = "SOURCE_ROOT"; }; + 793E09206EDE78138AB56CC5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GIFLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_GIFLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + 794DEE7E5CC51940507F676F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 795DBB9CDC6751C052A03827 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ProgressBar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ProgressBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 79728934D091CBA959AD2B20 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AppleRemote.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_AppleRemote.mm"; sourceTree = "SOURCE_ROOT"; }; + 7987CDDDE250EA56F0B26A0F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileChooserDialogBox.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.h"; sourceTree = "SOURCE_ROOT"; }; + 79A01A9B8A17C9419EBC5F73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StretchableLayoutResizerBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.h"; sourceTree = "SOURCE_ROOT"; }; + 79F7E702E92F8B23B6BCA74E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileOutputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7A76BF61E569CCC96B9E16DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Socket.h"; path = "../../../../modules/juce_core/network/juce_Socket.h"; sourceTree = "SOURCE_ROOT"; }; + 7A9C6994055A82AFC438626A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiMessageSequence.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.h"; sourceTree = "SOURCE_ROOT"; }; + 7B1C3855706B615C704556DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToneGeneratorAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 7B751B8BF3344D7C0980DAD0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_JackAudio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_JackAudio.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7B7B6659C2DD68F2373F9D3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MACAddress.cpp"; path = "../../../../modules/juce_core/network/juce_MACAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BAEC8D30E310460FB3FC406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Expression.cpp"; path = "../../../../modules/juce_core/maths/juce_Expression.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7BD85F5BFF691F3E548BC8B3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileFilter.h"; path = "../../../../modules/juce_core/files/juce_FileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + 7BE9659292437455B77D53F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_cryptography.mm"; path = "../../../../modules/juce_cryptography/juce_cryptography.mm"; sourceTree = "SOURCE_ROOT"; }; + 7C2A56B41F84CF25DC4D7C7F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleMessageComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7C388E6394CB0A8C4C919751 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedButtonBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7CD48F7A63EA97AF58ED7C5F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLAppComponent.h"; path = "../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 7D15374142A01E2760AC4818 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GroupComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7D21460B496E5E03FA58654B = {isa = PBXFileReference; lastKnownFileType = file.obj; name = teapot.obj; path = ../../Source/Resources/teapot.obj; sourceTree = "SOURCE_ROOT"; }; + 7DDF23FA0DDE4FCFB121CA68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = BinaryData.h; path = ../../JuceLibraryCode/BinaryData.h; sourceTree = "SOURCE_ROOT"; }; + 7E278ACE0E80F59FBEB3122F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileTreeComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileTreeComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 7E5D04471A75DF9057A4D73E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Justification.h"; path = "../../../../modules/juce_graphics/placement/juce_Justification.h"; sourceTree = "SOURCE_ROOT"; }; + 7EEFCCCD23C883F6B797834E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Point.h"; path = "../../../../modules/juce_graphics/geometry/juce_Point.h"; sourceTree = "SOURCE_ROOT"; }; + 80465B70BFD2A13EDB18B702 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeEditorComponent.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 80648C9ABD2B763398568A0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GenericAudioProcessorEditor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.h"; sourceTree = "SOURCE_ROOT"; }; + 80A6B9266A11D6977AD84546 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ImageButton.h"; sourceTree = "SOURCE_ROOT"; }; + 80BE3657BDC9B08AB3570055 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Identifier.cpp"; path = "../../../../modules/juce_core/text/juce_Identifier.cpp"; sourceTree = "SOURCE_ROOT"; }; + 80C983055BC197AE9FEF51D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = AppConfig.h; path = ../../JuceLibraryCode/AppConfig.h; sourceTree = "SOURCE_ROOT"; }; + 81556F6E103D6843193EA1EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_DragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + 816CA082336A8BC8A9AA61BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeCoordinate.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinate.h"; sourceTree = "SOURCE_ROOT"; }; + 819B5DAEB3840F04881F7CBD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatReader.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.h"; sourceTree = "SOURCE_ROOT"; }; + 82327EBDDBDE6104A0FFE08D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IPAddress.h"; path = "../../../../modules/juce_core/network/juce_IPAddress.h"; sourceTree = "SOURCE_ROOT"; }; + 82443CD4F42884B9D33A85EA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = Main.cpp; path = ../../Source/Main.cpp; sourceTree = "SOURCE_ROOT"; }; + 83619BFC8B92A2B5F17F596C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CameraDevice.cpp"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + 838BB45D693ED0AAD43B93C3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Draggable3DOrientation.h"; path = "../../../../modules/juce_opengl/geometry/juce_Draggable3DOrientation.h"; sourceTree = "SOURCE_ROOT"; }; + 83C4DBF3382367051A65FF4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SystemStats.cpp"; path = "../../../../modules/juce_core/system/juce_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + 842FF0D158A48BD9C1651800 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringPairArray.h"; path = "../../../../modules/juce_core/text/juce_StringPairArray.h"; sourceTree = "SOURCE_ROOT"; }; + 844820FE23753AF260B13D1D = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 850622AD96A6D025EC1E832D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LassoComponent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_LassoComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 850E016A9EA33CDCF888D7AC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResamplingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ResamplingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + 85379D9BB0BA7D60CFF83DC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsPostScriptRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 853E685A7CBF56CB4A532768 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LAMEEncoderAudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_LAMEEncoderAudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 856F3C72739BD34C8CA40F3A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadWithProgressWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ThreadWithProgressWindow.h"; sourceTree = "SOURCE_ROOT"; }; + 8594A236A434383AA96AEB53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.h"; sourceTree = "SOURCE_ROOT"; }; + 8768714C4890B02A1719AC89 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODevice.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODevice.h"; sourceTree = "SOURCE_ROOT"; }; + 876EE7E42127474428BE3BFF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CallOutBox.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_CallOutBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 87C173B4D57F00E5523D3395 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BooleanPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_BooleanPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 87EBB9223B9943D09D0ABA97 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsContext.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 88060C7661160C61E794D2B1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedButtonBar.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedButtonBar.h"; sourceTree = "SOURCE_ROOT"; }; + 880A65D7F29BF8701826BF81 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_mac_CoreMidi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_mac_CoreMidi.cpp"; sourceTree = "SOURCE_ROOT"; }; + 887EE77979249B8A3E7C2C49 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_events.h"; path = "../../../../modules/juce_events/juce_events.h"; sourceTree = "SOURCE_ROOT"; }; + 88EB915831B819EC3B7B124E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLGraphicsContext.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + 89CC7514E6F2628CE82591BD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CodeDocument.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CodeDocument.h"; sourceTree = "SOURCE_ROOT"; }; + 8A011075C19F974A22685EAA = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TimeSliceThread.cpp"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8A67491E410C9DB6523DABF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrayAllocationBase.h"; path = "../../../../modules/juce_core/containers/juce_ArrayAllocationBase.h"; sourceTree = "SOURCE_ROOT"; }; + 8B743E5BA29E435BACFE17BB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Colours.cpp"; path = "../../../../modules/juce_graphics/colour/juce_Colours.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8BA590FF6DD42B77C70BA092 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ListBox.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.h"; sourceTree = "SOURCE_ROOT"; }; + 8BD7E643486B7C1968E68D51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiMessageSequence.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiMessageSequence.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8C4045D24297D10F0EC9348F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyMappingEditorComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8C69B0700CBEF4AAD6F41B08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FloatVectorOperations.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D11B58353EBDC8EBE9C641D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MarkerList.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8D330180BEC5572287AB158A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentMovementWatcher.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentMovementWatcher.h"; sourceTree = "SOURCE_ROOT"; }; + 8D57423CD5A1B516B5374499 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Viewport.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_Viewport.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8DBDCF6753B9AE327FC8E382 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandInfo.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.h"; sourceTree = "SOURCE_ROOT"; }; + 8DFA760FAD9756305F9C7515 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V3.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.h"; sourceTree = "SOURCE_ROOT"; }; + 8E06EBA4362C66A9040A2EC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TimeSliceThread.h"; path = "../../../../modules/juce_core/threads/juce_TimeSliceThread.h"; sourceTree = "SOURCE_ROOT"; }; + 8E0D42B79853ED7FC60F931B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VSTMidiEventList.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTMidiEventList.h"; sourceTree = "SOURCE_ROOT"; }; + 8F5EC320CBE18D8923C7D3EF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ColourGradient.cpp"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F81943FE96DB8DD0ABB9DF7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JSON.cpp"; path = "../../../../modules/juce_core/javascript/juce_JSON.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8F9A2F59A71422296C56C8A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChangeBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FA29927B18439A066241F38 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PerformanceCounter.cpp"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8FAA47BE39D087684520C15F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CallbackMessage.h"; path = "../../../../modules/juce_events/messages/juce_CallbackMessage.h"; sourceTree = "SOURCE_ROOT"; }; + 8FFF7C1572807209B9A8A08D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComboBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ComboBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 907D08843439A347B3E2A869 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Initialisation.h"; path = "../../../../modules/juce_events/messages/juce_Initialisation.h"; sourceTree = "SOURCE_ROOT"; }; + 91A5A6A217FA091F2ADBE3C5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageFileFormat.h"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 92655A59F40624CBDA9194B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLPixelFormat.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLPixelFormat.h"; sourceTree = "SOURCE_ROOT"; }; + 92C99A9D9E9BCABE2AE26B9C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TopLevelWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + 92E26ABEFD096B05F99EE036 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableEdgeComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableEdgeComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 942393EC874CEC183B67641C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentListener.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + 94D011BBB3D330AEDAC86D11 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NativeMessageBox.h"; path = "../../../../modules/juce_gui_basics/windows/juce_NativeMessageBox.h"; sourceTree = "SOURCE_ROOT"; }; + 966F24941F855EA74A2A8914 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LADSPAPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + 972D271918F957FB6FCD6CFB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_InputSource.h"; path = "../../../../modules/juce_core/streams/juce_InputSource.h"; sourceTree = "SOURCE_ROOT"; }; + 975BBC01D0C62E087E6246ED = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF8.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF8.h"; sourceTree = "SOURCE_ROOT"; }; + 976CA25A81DCEEA8E07D2508 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PluginListComponent.cpp"; path = "../../../../modules/juce_audio_processors/scanning/juce_PluginListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + 976E37CE9482096F8A82A8CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StringPairArray.cpp"; path = "../../../../modules/juce_core/text/juce_StringPairArray.cpp"; sourceTree = "SOURCE_ROOT"; }; + 97C71C2DD318EDB304FC1CEB = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_gui_extra/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 983FBC7E850263512E41D13D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReaderSource.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReaderSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + 985C549EBDB26AF7BFD6E8A4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CameraDevice.h"; path = "../../../../modules/juce_video/capture/juce_CameraDevice.h"; sourceTree = "SOURCE_ROOT"; }; + 9986CD0D1752D063F3DC2652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseInactivityDetector.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseInactivityDetector.cpp"; sourceTree = "SOURCE_ROOT"; }; + 99BF73D0D5B995E84BAB52B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ToolbarItemPalette.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemPalette.h"; sourceTree = "SOURCE_ROOT"; }; + 9A67CA8503FB1E02090F5FAD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioIODeviceType.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9AD78BC87097481DDC1815B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ListBox.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ListBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9B9B8DBEBEA5051A602DA6C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableShape.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9BBC3E0155BC3F36F21F7EBB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = BinaryData.cpp; path = ../../JuceLibraryCode/BinaryData.cpp; sourceTree = "SOURCE_ROOT"; }; + 9BE0EDFED0FC2720BB3AE101 = {isa = PBXFileReference; lastKnownFileType = file.glsl; name = FragmentShader.glsl; path = ../../Source/FragmentShader.glsl; sourceTree = "SOURCE_ROOT"; }; + 9BECE88C6AB34861AF408C37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageConvolutionKernel.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageConvolutionKernel.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9C0906C06A9D1558C2982BC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertySet.h"; path = "../../../../modules/juce_core/containers/juce_PropertySet.h"; sourceTree = "SOURCE_ROOT"; }; + 9C52165BC295637D495791C1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KeyMappingEditorComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_KeyMappingEditorComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9C56D1AE6B7768F6E27D8F31 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_processors/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + 9CABACB9A2FF46A8B3059D8E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableComposite.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableComposite.h"; sourceTree = "SOURCE_ROOT"; }; + 9CF41B989B4516C8DB6CF7A0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePoint.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePoint.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D87175DE3988B783002560D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLFrameBuffer.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLFrameBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9D95CB2E713755CD61842774 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + 9F3DCE572188E0085FCF1956 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableRectangle.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9F8B21E7C672840ACD02251E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Variant.cpp"; path = "../../../../modules/juce_core/containers/juce_Variant.cpp"; sourceTree = "SOURCE_ROOT"; }; + 9FBCE80E444BA9E69C3F6172 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NSViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_NSViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + 9FE8D5E52AC84BCDEE8B414B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format/juce_AudioPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + A021D917DFD4DD5D4703913C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RectangleList.h"; path = "../../../../modules/juce_graphics/geometry/juce_RectangleList.h"; sourceTree = "SOURCE_ROOT"; }; + A061F1646238A35ED0BDA32A = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_events/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + A07D0C5C60BE446FD41ADE51 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioDeviceManager.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h"; sourceTree = "SOURCE_ROOT"; }; + A19D3050F95BFD17129EA013 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AffineTransform.h"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.h"; sourceTree = "SOURCE_ROOT"; }; + A1C21D6CF6F456E34A0E7FBE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + A20DD4F2960264FC20095777 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Line.h"; path = "../../../../modules/juce_graphics/geometry/juce_Line.h"; sourceTree = "SOURCE_ROOT"; }; + A23A20A098747A2449C47047 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandManager.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + A2D465168084C9FFAE312E3C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_StringRef.h"; path = "../../../../modules/juce_core/text/juce_StringRef.h"; sourceTree = "SOURCE_ROOT"; }; + A3C0B621A37595B09825518B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatManager.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.h"; sourceTree = "SOURCE_ROOT"; }; + A3EFD0BE919B2F7AD7295F2D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_ios.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_ios.h"; sourceTree = "SOURCE_ROOT"; }; + A4E723D11ADD694C4A3D318C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioPluginInstance.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioPluginInstance.h"; sourceTree = "SOURCE_ROOT"; }; + A4F075DFF243F6BB90CD5950 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextLayout.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_TextLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + A59F49F937F6C5E6E35B8B86 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessor.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.h"; sourceTree = "SOURCE_ROOT"; }; + A5A883D3DAD1D2BF2F044379 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeTime.cpp"; path = "../../../../modules/juce_core/time/juce_RelativeTime.cpp"; sourceTree = "SOURCE_ROOT"; }; + A646D188288588F6FB9E8C53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChildProcess.h"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.h"; sourceTree = "SOURCE_ROOT"; }; + A6B50D109A50FD28AE1D3F9A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedReadLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedReadLock.h"; sourceTree = "SOURCE_ROOT"; }; + A7EBBF2BCCB164C8F5C0423F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LiveConstantEditor.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + A7F58281FD0F07ECE6D261A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputStream.cpp"; path = "../../../../modules/juce_core/files/juce_FileInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + A80BB5CEC5BB5398B155F980 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Toolbar.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_Toolbar.cpp"; sourceTree = "SOURCE_ROOT"; }; + A8451C0D5D0549A7D923F2D6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Strings.mm"; path = "../../../../modules/juce_core/native/juce_mac_Strings.mm"; sourceTree = "SOURCE_ROOT"; }; + A85BBB0551113A7CD910AA16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_basics.h"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.h"; sourceTree = "SOURCE_ROOT"; }; + A878B40B811C4B83658F6A60 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Messaging.cpp"; path = "../../../../modules/juce_events/native/juce_android_Messaging.cpp"; sourceTree = "SOURCE_ROOT"; }; + A87A60BF515078DF23E1F737 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Button.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_Button.h"; sourceTree = "SOURCE_ROOT"; }; + A8A190EDD8CED5ACF3AEE2C9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiInput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiInput.h"; sourceTree = "SOURCE_ROOT"; }; + A937C45D53029A6BD6DA500B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiFile.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.h"; sourceTree = "SOURCE_ROOT"; }; + AA54E821F947C9A9DC359693 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA55BD139AEC1B8272ABE461 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AttributedString.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_AttributedString.cpp"; sourceTree = "SOURCE_ROOT"; }; + AA6A795F8A452B980C91770B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FlacAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_FlacAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + AA8A3E0CF7623249B2907DB1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Clipboard.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_Clipboard.cpp"; sourceTree = "SOURCE_ROOT"; }; + AABFFB2D2D9F9BB39C95BA25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioTransportSource.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioTransportSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + AB3CF49071E6EEF217783B8A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WildcardFileFilter.h"; path = "../../../../modules/juce_core/files/juce_WildcardFileFilter.h"; sourceTree = "SOURCE_ROOT"; }; + AB540AC77FB76E3B498E98A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathIterator.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.h"; sourceTree = "SOURCE_ROOT"; }; + ABCD1CB78CD58A79D0A728D0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedLock.h"; sourceTree = "SOURCE_ROOT"; }; + AC2A502E05BB93CB0840344D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CachedComponentImage.h"; path = "../../../../modules/juce_gui_basics/components/juce_CachedComponentImage.h"; sourceTree = "SOURCE_ROOT"; }; + AC4730773DE422AE346C6D6B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_UIViewComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_UIViewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ACD7FAE9EE61A4085580912B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativePointPath.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativePointPath.cpp"; sourceTree = "SOURCE_ROOT"; }; + ACEC05FF097A56FB7F3EF6B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiOutput.h"; path = "../../../../modules/juce_audio_devices/midi_io/juce_MidiOutput.h"; sourceTree = "SOURCE_ROOT"; }; + AD0DBF0531130EAD4DF2A8FA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3PluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3PluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + AD16BF0DECF3EEFD7AE11457 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentListener.h"; path = "../../../../modules/juce_gui_basics/components/juce_ComponentListener.h"; sourceTree = "SOURCE_ROOT"; }; + AD7CF8E55597C12D264E26D5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentPeer.h"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.h"; sourceTree = "SOURCE_ROOT"; }; + ADA1339F195F699D7F5369F9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableRectangle.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableRectangle.h"; sourceTree = "SOURCE_ROOT"; }; + ADFFCCFC47120AF338FD8C22 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ElementComparator.h"; path = "../../../../modules/juce_core/containers/juce_ElementComparator.h"; sourceTree = "SOURCE_ROOT"; }; + AE86A03508278775CA9F250B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ResizableBorderComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableBorderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AEA5E43C19B3566D5B2655E9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageCache.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageCache.cpp"; sourceTree = "SOURCE_ROOT"; }; + AEBF8C2FCAF972F014D43738 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AiffAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_AiffAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + AF5C2B3C5CF657FA722F9A68 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SliderPropertyComponent.cpp"; path = "../../../../modules/juce_gui_basics/properties/juce_SliderPropertyComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + AF6001FA947F3A7DF15CBF8B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_ios_UIViewComponentPeer.mm"; path = "../../../../modules/juce_gui_basics/native/juce_ios_UIViewComponentPeer.mm"; sourceTree = "SOURCE_ROOT"; }; + AF80D629DF6AF8EEB11DE598 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_AudioCDReader.mm"; path = "../../../../modules/juce_audio_devices/native/juce_mac_AudioCDReader.mm"; sourceTree = "SOURCE_ROOT"; }; + AFBCB46AC109F4982F012C0A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Files.mm"; path = "../../../../modules/juce_core/native/juce_mac_Files.mm"; sourceTree = "SOURCE_ROOT"; }; + B05257BD950E35B28F9E88CC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LuaCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_LuaCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + B0E21FE9C68B99E4C751DF13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_QuickTimeMovieComponent.cpp"; path = "../../../../modules/juce_video/native/juce_win32_QuickTimeMovieComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0FB5996D7068C230DC6D8E0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseCursor.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B0FE76D91413C32F64610594 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniserFunctions.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniserFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + B121FF657B96C6FFEB2C2DC1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_gui_extra.h"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.h"; sourceTree = "SOURCE_ROOT"; }; + B1440ED412E2277340903AB0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToneGeneratorAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ToneGeneratorAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + B1B76C913B09E3F684F76824 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CriticalSection.h"; path = "../../../../modules/juce_core/threads/juce_CriticalSection.h"; sourceTree = "SOURCE_ROOT"; }; + B1C695101BE3D6A84272B6C8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TooltipWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.h"; sourceTree = "SOURCE_ROOT"; }; + B1C6C92A15E4605A40404381 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Thread.h"; path = "../../../../modules/juce_core/threads/juce_Thread.h"; sourceTree = "SOURCE_ROOT"; }; + B1C7A541DFF31B38F0A17C16 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserListener.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserListener.h"; sourceTree = "SOURCE_ROOT"; }; + B1E4A1F07EFCCA50D963CF4F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditorKeyMapper.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextEditorKeyMapper.h"; sourceTree = "SOURCE_ROOT"; }; + B25D9BF429F016963A545287 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BubbleComponent.cpp"; path = "../../../../modules/juce_gui_basics/misc/juce_BubbleComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B28DFE72ADE03393BE8B764C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + B2A85C1813641574E4D15BF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LowLevelGraphicsSoftwareRenderer.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsSoftwareRenderer.cpp"; sourceTree = "SOURCE_ROOT"; }; + B2B042F73709D0057DE8A51E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLShaderProgram.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.h"; sourceTree = "SOURCE_ROOT"; }; + B2D09E29CCC80C27956BF314 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextEditor.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.h"; sourceTree = "SOURCE_ROOT"; }; + B2EE6F9509A435D69B2508AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_ObjCHelpers.h"; path = "../../../../modules/juce_core/native/juce_osx_ObjCHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + B36AA5249B5B2242486B4153 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Network.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Network.cpp"; sourceTree = "SOURCE_ROOT"; }; + B49E98EF01462277526C417D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileSearchPathListComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + B5A8A3579F03D2CCE4894848 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + B607DF0E27752A1B9A863CC6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_WebBrowserComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + B68B3E0BE0396ACD3CA52250 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadower.h"; path = "../../../../modules/juce_gui_basics/misc/juce_DropShadower.h"; sourceTree = "SOURCE_ROOT"; }; + B73DF787FC51F08E279923A6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_NSViewComponent.mm"; path = "../../../../modules/juce_gui_extra/native/juce_mac_NSViewComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + B7612EA3B34C6AC48079A447 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Headers.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Headers.h"; sourceTree = "SOURCE_ROOT"; }; + B77BD5847F412656109A378E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextInputTarget.h"; path = "../../../../modules/juce_gui_basics/keyboard/juce_TextInputTarget.h"; sourceTree = "SOURCE_ROOT"; }; + B84BA430E8F477AB2EDC45CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PositionableAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_PositionableAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + B8A6BFA35FDD1F48C1E4E688 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileOutputStream.h"; path = "../../../../modules/juce_core/files/juce_FileOutputStream.h"; sourceTree = "SOURCE_ROOT"; }; + B8C996306428DFB642CBFB14 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ModalComponentManager.h"; path = "../../../../modules/juce_gui_basics/components/juce_ModalComponentManager.h"; sourceTree = "SOURCE_ROOT"; }; + B8EF2AF777B74156958B72CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentDragger.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_ComponentDragger.h"; sourceTree = "SOURCE_ROOT"; }; + B91A8133C3474D98AB6300CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Desktop.cpp"; path = "../../../../modules/juce_gui_basics/components/juce_Desktop.cpp"; sourceTree = "SOURCE_ROOT"; }; + B97C816F9CBDE00E567E3144 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessor.cpp"; sourceTree = "SOURCE_ROOT"; }; + B99DD4C6D8C8F58C83ADD7CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGL_win32.h"; path = "../../../../modules/juce_opengl/native/juce_OpenGL_win32.h"; sourceTree = "SOURCE_ROOT"; }; + B9B0A3004948FA2387C28829 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Matrix3D.h"; path = "../../../../modules/juce_opengl/geometry/juce_Matrix3D.h"; sourceTree = "SOURCE_ROOT"; }; + B9EB38A9A966EBB9A359DED3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HighResolutionTimer.h"; path = "../../../../modules/juce_core/threads/juce_HighResolutionTimer.h"; sourceTree = "SOURCE_ROOT"; }; + BA5A9BB00CD8BEA408371875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V1.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA5DE80E67A74A41D57E7663 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ConnectedChildProcess.cpp"; path = "../../../../modules/juce_events/interprocess/juce_ConnectedChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + BA895F5D0FC2F40DA0566469 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_processors.mm"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.mm"; sourceTree = "SOURCE_ROOT"; }; + BA99F87A1BC936C566A0DFA7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Files.cpp"; path = "../../../../modules/juce_core/native/juce_linux_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB4B7332B8B456297344608E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PerformanceCounter.h"; path = "../../../../modules/juce_core/time/juce_PerformanceCounter.h"; sourceTree = "SOURCE_ROOT"; }; + BB7442FBD89AFCE6AE14E0AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_ALSA.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_linux_ALSA.cpp"; sourceTree = "SOURCE_ROOT"; }; + BB8AD6D858D518E804AFA0C7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ArrowButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.h"; sourceTree = "SOURCE_ROOT"; }; + BBECF34C65D1DD35DE8C6F9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_QuickTimeMovieComponent.mm"; path = "../../../../modules/juce_video/native/juce_mac_QuickTimeMovieComponent.mm"; sourceTree = "SOURCE_ROOT"; }; + BC35263317084BA60132B43D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSubsectionReader.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioSubsectionReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + BC586A21CD33D786C4472FD4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseEvent.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.h"; sourceTree = "SOURCE_ROOT"; }; + BC7C088D053711418A5A5698 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ChildProcess.cpp"; path = "../../../../modules/juce_core/threads/juce_ChildProcess.cpp"; sourceTree = "SOURCE_ROOT"; }; + BCD3969359F2EB2EB970C412 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AppleRemote.h"; path = "../../../../modules/juce_gui_extra/misc/juce_AppleRemote.h"; sourceTree = "SOURCE_ROOT"; }; + BCD60A4DBAB2007ECBCAB17D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LiveConstantEditor.h"; path = "../../../../modules/juce_gui_extra/misc/juce_LiveConstantEditor.h"; sourceTree = "SOURCE_ROOT"; }; + BD4C015152FD7519E50C9BCA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_posix_SharedCode.h"; path = "../../../../modules/juce_core/native/juce_posix_SharedCode.h"; sourceTree = "SOURCE_ROOT"; }; + BD69D8ABDB6741F717E0DD1C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_InputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + BDB1FA875F2C8263E3D2650A = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_XmlDocument.h"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.h"; sourceTree = "SOURCE_ROOT"; }; + BDBC99D827A9F6C5B1B0ED5E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ios_Audio.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_ios_Audio.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE4CF2165544FB2D720E1DD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryBlock.h"; path = "../../../../modules/juce_core/memory/juce_MemoryBlock.h"; sourceTree = "SOURCE_ROOT"; }; + BEFB2034FC381E2DD019E372 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Memory.h"; path = "../../../../modules/juce_core/memory/juce_Memory.h"; sourceTree = "SOURCE_ROOT"; }; + C02F8C844FAD835F09408406 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GZIPDecompressorInputStream.h"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + C04188D62834AAE749694751 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedArray.h"; path = "../../../../modules/juce_core/containers/juce_ReferenceCountedArray.h"; sourceTree = "SOURCE_ROOT"; }; + C0A37CB25E8C40792454E820 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_AudioCDReader.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_AudioCDReader.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3C776709CFEB52B87A9E260 = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 5802E3490BEAFD892C837E2A = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = OpenGLAppExample.app; sourceTree = "BUILT_PRODUCTS_DIR"; }; + 83ED74D05C2699811929138C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SHA256.cpp"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.cpp"; sourceTree = "SOURCE_ROOT"; }; + 8B1374A21A81C82233EBC523 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_cryptography.h"; path = "../../../../modules/juce_cryptography/juce_cryptography.h"; sourceTree = "SOURCE_ROOT"; }; + 8B8CEF7A6937C76CA7642C8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_data_structures.h"; path = "../../../../modules/juce_data_structures/juce_data_structures.h"; sourceTree = "SOURCE_ROOT"; }; + 9954A5B8424CE9ABC802AC8C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SHA256.h"; path = "../../../../modules/juce_cryptography/hashing/juce_SHA256.h"; sourceTree = "SOURCE_ROOT"; }; + 9E46C8356029EC009F7A1C46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ValueTree.h"; path = "../../../../modules/juce_data_structures/values/juce_ValueTree.h"; sourceTree = "SOURCE_ROOT"; }; + B2E2A77534D9104C78E8F3E2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Value.cpp"; path = "../../../../modules/juce_data_structures/values/juce_Value.cpp"; sourceTree = "SOURCE_ROOT"; }; + BE635BACA572437D8DFDEEC8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ImageComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + BEA260469BBB48EB998AA4DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MultiTimer.h"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.h"; sourceTree = "SOURCE_ROOT"; }; + BEAB03E92089D87D7D6A2353 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_DrawableButton.h"; sourceTree = "SOURCE_ROOT"; }; + C007BC3372F44746BD6E98C0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CPlusPlusCodeTokeniser.h"; path = "../../../../modules/juce_gui_extra/code_editor/juce_CPlusPlusCodeTokeniser.h"; sourceTree = "SOURCE_ROOT"; }; + C05E16AAF0CF0676135C0C9B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DragAndDrop.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_win32_DragAndDrop.cpp"; sourceTree = "SOURCE_ROOT"; }; + C0AC297D17FA68BBAB417A64 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Range.h"; path = "../../../../modules/juce_core/maths/juce_Range.h"; sourceTree = "SOURCE_ROOT"; }; + C0C66A94FBDE992AAD71C698 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_graphics.mm"; path = "../../../../modules/juce_graphics/juce_graphics.mm"; sourceTree = "SOURCE_ROOT"; }; + C159C35E078C5B5B9BFEFB52 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_MouseCursor.mm"; path = "../../../../modules/juce_gui_basics/native/juce_mac_MouseCursor.mm"; sourceTree = "SOURCE_ROOT"; }; + C1A299D4A5AAEA645975EEB8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GlyphArrangement.h"; path = "../../../../modules/juce_graphics/fonts/juce_GlyphArrangement.h"; sourceTree = "SOURCE_ROOT"; }; + C24880A7007CE75B7F8BBD71 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Slider.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Slider.h"; sourceTree = "SOURCE_ROOT"; }; + C2B61447889E781465E49AC3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MenuBarModel.h"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarModel.h"; sourceTree = "SOURCE_ROOT"; }; + C33DDF76E058D3E11E61DE63 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_BigInteger.h"; path = "../../../../modules/juce_core/maths/juce_BigInteger.h"; sourceTree = "SOURCE_ROOT"; }; + C3A68B435020C80FC29DB89D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AlertWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_AlertWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3B0CE7BC50EE3F20BB261EC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_basics.mm"; path = "../../../../modules/juce_gui_basics/juce_gui_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + C3B93391519DA8A352766580 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RelativeCoordinatePositioner.cpp"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeCoordinatePositioner.cpp"; sourceTree = "SOURCE_ROOT"; }; + C3E4252156EDD0E001A10DE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActionBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + C407BCC7CEC505584B25682E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LocalisedStrings.cpp"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.cpp"; sourceTree = "SOURCE_ROOT"; }; + C45B9350ECC13FC8096D3873 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourGradient.h"; path = "../../../../modules/juce_graphics/colour/juce_ColourGradient.h"; sourceTree = "SOURCE_ROOT"; }; + C48140923F2A4DEDBA063DFD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V2.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V2.h"; sourceTree = "SOURCE_ROOT"; }; + C50CE0A0485507647C78F30E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlElement.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlElement.cpp"; sourceTree = "SOURCE_ROOT"; }; + C50DA493E57234B3820BD77A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MouseEvent.cpp"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseEvent.cpp"; sourceTree = "SOURCE_ROOT"; }; + C52847A293D0E8958E88DFD5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MarkerList.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_MarkerList.h"; sourceTree = "SOURCE_ROOT"; }; + C568E8888819EAFDCAEAF04F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationCommandInfo.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandInfo.cpp"; sourceTree = "SOURCE_ROOT"; }; + C57BA5F014343276128923F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WebBrowserComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_WebBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C599A55407B6EB6AD55AE73C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentAnimator.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentAnimator.h"; sourceTree = "SOURCE_ROOT"; }; + C62300B9478B60BCBE254256 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_basics.mm"; path = "../../../../modules/juce_audio_basics/juce_audio_basics.mm"; sourceTree = "SOURCE_ROOT"; }; + C64D47A361026A76FC9BA9B9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChannelRemappingAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_ChannelRemappingAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + C66D4CDC39A565833178EB0D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ReferenceCountedObject.h"; path = "../../../../modules/juce_core/memory/juce_ReferenceCountedObject.h"; sourceTree = "SOURCE_ROOT"; }; + C6B9F01A0AAA2A1DA8122912 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_RelativeParallelogram.h"; path = "../../../../modules/juce_gui_basics/positioning/juce_RelativeParallelogram.h"; sourceTree = "SOURCE_ROOT"; }; + C719606229204044D7C85339 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TopLevelWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_TopLevelWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C7BABEEA061F989A0A74F708 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WeakReference.h"; path = "../../../../modules/juce_core/memory/juce_WeakReference.h"; sourceTree = "SOURCE_ROOT"; }; + C7BB125979760AE4264BF23E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImageEffectFilter.h"; path = "../../../../modules/juce_graphics/effects/juce_ImageEffectFilter.h"; sourceTree = "SOURCE_ROOT"; }; + C7F47C1BEDD7EE514BA40C27 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryOutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryOutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + C8B71823C30A65066A852942 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DocumentWindow.h"; path = "../../../../modules/juce_gui_basics/windows/juce_DocumentWindow.h"; sourceTree = "SOURCE_ROOT"; }; + C8CEDA86517FE447F3A3DCF2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_WindowsMediaAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_WindowsMediaAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + C8FDA55A72DC4A244703C8F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ImagePreviewComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.h"; sourceTree = "SOURCE_ROOT"; }; + C936095A19665316F5B675CF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_FileDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + C9CD8A1AB4DAA664557DEBDC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_VST3Common.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_VST3Common.h"; sourceTree = "SOURCE_ROOT"; }; + CA3D1FE94B500CF86704EB13 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CustomTypeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.h"; sourceTree = "SOURCE_ROOT"; }; + CBF3ED31F58A0874E0E9A64B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiDocumentPanel.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_MultiDocumentPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC0ED57DE1266CEB11001787 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MultiTimer.cpp"; path = "../../../../modules/juce_events/timers/juce_MultiTimer.cpp"; sourceTree = "SOURCE_ROOT"; }; + CC1AE8EECC77B1915D24C9DA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_IIRFilterAudioSource.h"; path = "../../../../modules/juce_audio_basics/sources/juce_IIRFilterAudioSource.h"; sourceTree = "SOURCE_ROOT"; }; + CC3E6F8333AA2D98AAC1235E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ThreadLocalValue.h"; path = "../../../../modules/juce_core/threads/juce_ThreadLocalValue.h"; sourceTree = "SOURCE_ROOT"; }; + CC42DBFB2ABA84046DD69E1F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_osx_MessageQueue.h"; path = "../../../../modules/juce_events/native/juce_osx_MessageQueue.h"; sourceTree = "SOURCE_ROOT"; }; + CC83A115FBF5C65772BBFAE3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectShowComponent.h"; path = "../../../../modules/juce_video/playback/juce_DirectShowComponent.h"; sourceTree = "SOURCE_ROOT"; }; + CD27B64646C58118052C3459 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSourcePlayer.cpp"; path = "../../../../modules/juce_audio_devices/sources/juce_AudioSourcePlayer.cpp"; sourceTree = "SOURCE_ROOT"; }; + CD44827B5286ADE94DB0B79C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Vector3D.h"; path = "../../../../modules/juce_opengl/geometry/juce_Vector3D.h"; sourceTree = "SOURCE_ROOT"; }; + CD71ED4911896207B303106F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/native/juce_linux_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE11BC7911220E9CFA1283D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DropShadowEffect.cpp"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.cpp"; sourceTree = "SOURCE_ROOT"; }; + CE28252C42BBA94C930CF460 = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = Info.plist; path = Info.plist; sourceTree = "SOURCE_ROOT"; }; + CE5CDD52C447D5DCC7DE1259 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioIODeviceType.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioIODeviceType.h"; sourceTree = "SOURCE_ROOT"; }; + CE9CAFB040BE90431A432537 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AffineTransform.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_AffineTransform.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEB259E27BB64776AF6BF076 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_WildcardFileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_WildcardFileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + CED808C5809FF89D32131CB4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLAppComponent.cpp"; path = "../../../../modules/juce_opengl/utils/juce_OpenGLAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + CEE5BF72C9D7E467212D8973 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_win32_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + CFA38098B5AD00F5C0DF4D4D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioProcessorGraph.h"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorGraph.h"; sourceTree = "SOURCE_ROOT"; }; + CFEF06EB93957DEAE00A0030 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Network.mm"; path = "../../../../modules/juce_core/native/juce_mac_Network.mm"; sourceTree = "SOURCE_ROOT"; }; + D01183D850457CA55516B3B2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileSearchPathListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileSearchPathListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D05F7D67DD28FF1156CBED39 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MP3AudioFormat.cpp"; path = "../../../../modules/juce_audio_formats/codecs/juce_MP3AudioFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D17F209C6915C948F90F1349 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_GroupComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_GroupComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D1A2603E46734D31975B7540 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Value.h"; path = "../../../../modules/juce_data_structures/values/juce_Value.h"; sourceTree = "SOURCE_ROOT"; }; + D1C13988EF76674213DF92F4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextEditor.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TextEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + D23A9E25612E33C0C6AAA09E = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_SystemTrayIcon.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_SystemTrayIcon.cpp"; sourceTree = "SOURCE_ROOT"; }; + D23F862EE7BAEDAC24479902 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Result.h"; path = "../../../../modules/juce_core/misc/juce_Result.h"; sourceTree = "SOURCE_ROOT"; }; + D24F3C46F1A46422C080A0A7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FilenameComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D258105EC6398A3984FD8DA3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PathStrokeType.h"; path = "../../../../modules/juce_graphics/geometry/juce_PathStrokeType.h"; sourceTree = "SOURCE_ROOT"; }; + D276367530731B2C732C50CB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioDeviceManager.cpp"; path = "../../../../modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + D2C557606FD68958DC545A2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_CameraDevice.cpp"; path = "../../../../modules/juce_video/native/juce_android_CameraDevice.cpp"; sourceTree = "SOURCE_ROOT"; }; + D2EBB6A92000349A92809F02 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_EdgeTable.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_EdgeTable.cpp"; sourceTree = "SOURCE_ROOT"; }; + D37936ED5B5A415DF1F5F2C2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemStats.h"; path = "../../../../modules/juce_core/system/juce_SystemStats.h"; sourceTree = "SOURCE_ROOT"; }; + D476B9FCEF30511BC736C744 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_core.h"; path = "../../../../modules/juce_core/juce_core.h"; sourceTree = "SOURCE_ROOT"; }; + D4A815675983D742D87E37A5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_devices.mm"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.mm"; sourceTree = "SOURCE_ROOT"; }; + D4CA818D9DA2269EBCE376DE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemAudioVolume.h"; path = "../../../../modules/juce_audio_devices/audio_io/juce_SystemAudioVolume.h"; sourceTree = "SOURCE_ROOT"; }; + D521465375DD0F179649668B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyListener.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + D53FD6223C4A997E441E1F80 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SplashScreen.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.cpp"; sourceTree = "SOURCE_ROOT"; }; + D54457FBB5D7B2362E69D9AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OggVorbisAudioFormat.h"; path = "../../../../modules/juce_audio_formats/codecs/juce_OggVorbisAudioFormat.h"; sourceTree = "SOURCE_ROOT"; }; + D677D05978DC2C67386B63AE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLShaderProgram.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLShaderProgram.cpp"; sourceTree = "SOURCE_ROOT"; }; + D67D8599E2F89D673EA36D9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLHelpers.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6AC70136461C6F3FD1987F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_CustomTypeface.cpp"; path = "../../../../modules/juce_graphics/fonts/juce_CustomTypeface.cpp"; sourceTree = "SOURCE_ROOT"; }; + D6EDBF07E4162364DB8825D9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SVGParser.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_SVGParser.cpp"; sourceTree = "SOURCE_ROOT"; }; + D74B9C3F462333A72B889773 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Result.cpp"; path = "../../../../modules/juce_core/misc/juce_Result.cpp"; sourceTree = "SOURCE_ROOT"; }; + D782993D6DAF0AF948A62517 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_gui_extra.mm"; path = "../../../../modules/juce_gui_extra/juce_gui_extra.mm"; sourceTree = "SOURCE_ROOT"; }; + D85876E3373EF8AC5F39A5A8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PathIterator.cpp"; path = "../../../../modules/juce_graphics/geometry/juce_PathIterator.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8C269D8BFE34CF33A2B243C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_core/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + D8EB2E5BDF6806B37482DE70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AudioFormatWriter.h"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatWriter.h"; sourceTree = "SOURCE_ROOT"; }; + D8F75466ADD0287144087C5B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_VSTPluginFormat.cpp"; path = "../../../../modules/juce_audio_processors/format_types/juce_VSTPluginFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + D8FDF81708D362F909F5421B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LagrangeInterpolator.h"; path = "../../../../modules/juce_audio_basics/effects/juce_LagrangeInterpolator.h"; sourceTree = "SOURCE_ROOT"; }; + D92B6F28EF1D46625BC2A18B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBrowserComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileBrowserComponent.h"; sourceTree = "SOURCE_ROOT"; }; + D93861E50D66746DF070A158 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentPeer.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_ComponentPeer.cpp"; sourceTree = "SOURCE_ROOT"; }; + D99465F417B8D56C2C9A212D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryInputStream.h"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.h"; sourceTree = "SOURCE_ROOT"; }; + D9E4C045A178EA678116D439 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLHelpers.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + D9F41579025D12F2CCF079C4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooser.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooser.cpp"; sourceTree = "SOURCE_ROOT"; }; + D9FDDAC72C576633FD41B2E7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectWriteTypeLayout.cpp"; path = "../../../../modules/juce_graphics/native/juce_win32_DirectWriteTypeLayout.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA12229986D485B2E2DE059B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FilenameComponent.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FilenameComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DA223B209C3FF00A91FAA1DD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ResizableCornerComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ResizableCornerComponent.h"; sourceTree = "SOURCE_ROOT"; }; + DA67F5A5693214A2189039D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SharedResourcePointer.h"; path = "../../../../modules/juce_core/memory/juce_SharedResourcePointer.h"; sourceTree = "SOURCE_ROOT"; }; + DB348CBC6734FFD0B7ED8A34 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MouseCursor.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_MouseCursor.h"; sourceTree = "SOURCE_ROOT"; }; + DB59695708606C9604E11F0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToolbarItemComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_ToolbarItemComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC209283C24A9C0B601DB860 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ChangeBroadcaster.h"; path = "../../../../modules/juce_events/broadcasters/juce_ChangeBroadcaster.h"; sourceTree = "SOURCE_ROOT"; }; + DC254EFF0D95657D703FA8F6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedXLock.h"; path = "../../../../modules/juce_events/native/juce_ScopedXLock.h"; sourceTree = "SOURCE_ROOT"; }; + DC3E9EDCD85270B2E9D33BF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_Fonts.cpp"; path = "../../../../modules/juce_graphics/native/juce_linux_Fonts.cpp"; sourceTree = "SOURCE_ROOT"; }; + DC9D4AE01FB7CF8D2877B198 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DropShadowEffect.h"; path = "../../../../modules/juce_graphics/effects/juce_DropShadowEffect.h"; sourceTree = "SOURCE_ROOT"; }; + DCB52EFF8A9F5D9F6CF3D3FC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableText.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableText.cpp"; sourceTree = "SOURCE_ROOT"; }; + DD387A0509039658A5DC2AE5 = {isa = PBXFileReference; lastKnownFileType = file.glsl; name = VertexShader.glsl; path = ../../Source/VertexShader.glsl; sourceTree = "SOURCE_ROOT"; }; + DD542B6F61E6C27A0D5A5F2A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_DirectSound.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_DirectSound.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE00116B59A20E5B69367B70 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutResizerBar.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutResizerBar.cpp"; sourceTree = "SOURCE_ROOT"; }; + DE1A6A1C0CCC94A3E3A887E3 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableShape.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableShape.h"; sourceTree = "SOURCE_ROOT"; }; + DE3832516FB6969C0E3210D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DirectoryIterator.h"; path = "../../../../modules/juce_core/files/juce_DirectoryIterator.h"; sourceTree = "SOURCE_ROOT"; }; + DE8A6DAED12A99017D7341E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TableHeaderComponent.cpp"; path = "../../../../modules/juce_gui_basics/widgets/juce_TableHeaderComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + DEE9366528ACF7F2CC0A9F73 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ContainerDeletePolicy.h"; path = "../../../../modules/juce_core/memory/juce_ContainerDeletePolicy.h"; sourceTree = "SOURCE_ROOT"; }; + DF2B90185FBA2C86DE767F46 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileInputSource.cpp"; path = "../../../../modules/juce_core/streams/juce_FileInputSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + DF42C1B300CA66580D0AED1D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MissingGLDefinitions.h"; path = "../../../../modules/juce_opengl/native/juce_MissingGLDefinitions.h"; sourceTree = "SOURCE_ROOT"; }; + DF53D8FD5DE7B15694D26E91 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OpenGLContext.cpp"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + E041ABD2C503FCB7EB7E49F8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/native/juce_android_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + E046CC53401A9551BDEA2D83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLTexture.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLTexture.h"; sourceTree = "SOURCE_ROOT"; }; + E0544ED1BC8832C4D1296FAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Font.h"; path = "../../../../modules/juce_graphics/fonts/juce_Font.h"; sourceTree = "SOURCE_ROOT"; }; + E068F61F296A52D25E329978 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TemporaryFile.h"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.h"; sourceTree = "SOURCE_ROOT"; }; + E0E847621EEAEEFB21B87986 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_opengl.h"; path = "../../../../modules/juce_opengl/juce_opengl.h"; sourceTree = "SOURCE_ROOT"; }; + E0FF460CC2AACA09D6C7412E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharPointer_UTF16.h"; path = "../../../../modules/juce_core/text/juce_CharPointer_UTF16.h"; sourceTree = "SOURCE_ROOT"; }; + E10DD1F7E7994B77BFF7C8AF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FloatVectorOperations.h"; path = "../../../../modules/juce_audio_basics/buffers/juce_FloatVectorOperations.h"; sourceTree = "SOURCE_ROOT"; }; + E22C09309C11DAE1AA0AA148 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Sampler.cpp"; path = "../../../../modules/juce_audio_formats/sampler/juce_Sampler.cpp"; sourceTree = "SOURCE_ROOT"; }; + E273A9AEACF13BC595F82289 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MemoryMappedFile.h"; path = "../../../../modules/juce_core/files/juce_MemoryMappedFile.h"; sourceTree = "SOURCE_ROOT"; }; + E2B10A7DBF2B35A4C3A1DE21 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GraphicsContext.cpp"; path = "../../../../modules/juce_graphics/contexts/juce_GraphicsContext.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2B33608E3097EE1E7801707 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IPAddress.cpp"; path = "../../../../modules/juce_core/network/juce_IPAddress.cpp"; sourceTree = "SOURCE_ROOT"; }; + E2EEB444EC638B0C72A8A7E6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MemoryInputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_MemoryInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + E31FDA8F23FEAB726361C8DB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_InterprocessConnectionServer.cpp"; path = "../../../../modules/juce_events/interprocess/juce_InterprocessConnectionServer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E3381BC529641894F95F9AD6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ActiveXControlComponent.h"; path = "../../../../modules/juce_gui_extra/embedding/juce_ActiveXControlComponent.h"; sourceTree = "SOURCE_ROOT"; }; + E388DABC27B6A417CE9B7F7B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_KnownPluginList.h"; path = "../../../../modules/juce_audio_processors/scanning/juce_KnownPluginList.h"; sourceTree = "SOURCE_ROOT"; }; + E441F10A3241806474779D5A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ImageFileFormat.cpp"; path = "../../../../modules/juce_graphics/images/juce_ImageFileFormat.cpp"; sourceTree = "SOURCE_ROOT"; }; + E45F076842C926BA5400B70B = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_CharacterFunctions.h"; path = "../../../../modules/juce_core/text/juce_CharacterFunctions.h"; sourceTree = "SOURCE_ROOT"; }; + E47A2EEA203214804C09378D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioSampleBuffer.cpp"; path = "../../../../modules/juce_audio_basics/buffers/juce_AudioSampleBuffer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E488221DF5AFED73C4518AE7 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_WASAPI.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_WASAPI.cpp"; sourceTree = "SOURCE_ROOT"; }; + E49C04EACE55BED74E156911 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_AsyncUpdater.h"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.h"; sourceTree = "SOURCE_ROOT"; }; + E4D98F92A6646FC7CE4FFA1B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_CoreGraphicsContext.mm"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsContext.mm"; sourceTree = "SOURCE_ROOT"; }; + E50BADB05430CBE8BF33F8F5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PopupMenu.h"; path = "../../../../modules/juce_gui_basics/menus/juce_PopupMenu.h"; sourceTree = "SOURCE_ROOT"; }; + E54011F26F7D9AD38D437851 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_mac_Threads.mm"; path = "../../../../modules/juce_core/native/juce_mac_Threads.mm"; sourceTree = "SOURCE_ROOT"; }; + E5D5588D0F985DB2D5A8BAF5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_XmlDocument.cpp"; path = "../../../../modules/juce_core/xml/juce_XmlDocument.cpp"; sourceTree = "SOURCE_ROOT"; }; + E5F97C758712010CF0E6D1B5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AbstractFifo.cpp"; path = "../../../../modules/juce_core/containers/juce_AbstractFifo.cpp"; sourceTree = "SOURCE_ROOT"; }; + E62A008F49C8FB4ECEB6CC37 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ColourSelector.h"; path = "../../../../modules/juce_gui_extra/misc/juce_ColourSelector.h"; sourceTree = "SOURCE_ROOT"; }; + E66B64B5619AFCB389836C06 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PluginDescription.h"; path = "../../../../modules/juce_audio_processors/processors/juce_PluginDescription.h"; sourceTree = "SOURCE_ROOT"; }; + E6AB1D98C43E9017F546D707 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CoreGraphicsHelpers.h"; path = "../../../../modules/juce_graphics/native/juce_mac_CoreGraphicsHelpers.h"; sourceTree = "SOURCE_ROOT"; }; + E7D88F20FB6FEA84BFEC67D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TooltipWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_TooltipWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + E7EF18BE4F22063894C6FF61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Timer.cpp"; path = "../../../../modules/juce_events/timers/juce_Timer.cpp"; sourceTree = "SOURCE_ROOT"; }; + E81332E1BCBF978D86F92DFE = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Socket.cpp"; path = "../../../../modules/juce_core/network/juce_Socket.cpp"; sourceTree = "SOURCE_ROOT"; }; + E83074E632966778B10AF088 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_RSAKey.cpp"; path = "../../../../modules/juce_cryptography/encryption/juce_RSAKey.cpp"; sourceTree = "SOURCE_ROOT"; }; + E8ED8CA85BE4E1BF7C5ADF53 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ActionBroadcaster.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_ActionBroadcaster.cpp"; sourceTree = "SOURCE_ROOT"; }; + E90FDEEB9C536E5E1124B00D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyboardFocusTraverser.cpp"; path = "../../../../modules/juce_gui_basics/keyboard/juce_KeyboardFocusTraverser.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9164448EE60F4DB5F2A14D1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MenuBarComponent.cpp"; path = "../../../../modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + E9BB6F5CCB22B9CBEA0DFAB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_NewLine.h"; path = "../../../../modules/juce_core/text/juce_NewLine.h"; sourceTree = "SOURCE_ROOT"; }; + EA19F37E2AB4C42A1ACF17CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PropertyComponent.h"; path = "../../../../modules/juce_gui_basics/properties/juce_PropertyComponent.h"; sourceTree = "SOURCE_ROOT"; }; + EA2BE0B9C8E1546D25A02D67 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Drawable.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_Drawable.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA53B7692D5E224F0477A791 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DialogWindow.cpp"; path = "../../../../modules/juce_gui_basics/windows/juce_DialogWindow.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA77ADEA8100DFE7C2E0ABB6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioFormatManager.cpp"; path = "../../../../modules/juce_audio_formats/format/juce_AudioFormatManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + EA8B6054D2E6C204214422CE = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MidiKeyboardState.h"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiKeyboardState.h"; sourceTree = "SOURCE_ROOT"; }; + EAE65B593000E1AFCA63AEE8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ReverbAudioSource.cpp"; path = "../../../../modules/juce_audio_basics/sources/juce_ReverbAudioSource.cpp"; sourceTree = "SOURCE_ROOT"; }; + EBABE678E857A993B3753B83 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_devices.h"; path = "../../../../modules/juce_audio_devices/juce_audio_devices.h"; sourceTree = "SOURCE_ROOT"; }; + ECD6C0DDB8587984580C96B0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TabbedComponent.h"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.h"; sourceTree = "SOURCE_ROOT"; }; + ECE3837512B3E620155A8432 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextButton.h"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.h"; sourceTree = "SOURCE_ROOT"; }; + ED4FD41F6F5825084831A29C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_android_Midi.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_android_Midi.cpp"; sourceTree = "SOURCE_ROOT"; }; + ED9CF9B1476F08D13A1E636E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Javascript.h"; path = "../../../../modules/juce_core/javascript/juce_Javascript.h"; sourceTree = "SOURCE_ROOT"; }; + EE49ECC80B5D7D0DEFA0EF7A = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ASIO.cpp"; path = "../../../../modules/juce_audio_devices/native/juce_win32_ASIO.cpp"; sourceTree = "SOURCE_ROOT"; }; + EEBA2A14B5473C1F19BF3D3E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LADSPAPluginFormat.h"; path = "../../../../modules/juce_audio_processors/format_types/juce_LADSPAPluginFormat.h"; sourceTree = "SOURCE_ROOT"; }; + EEDD0D3608DCB2E459F3BF24 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationCommandTarget.h"; path = "../../../../modules/juce_gui_basics/commands/juce_ApplicationCommandTarget.h"; sourceTree = "SOURCE_ROOT"; }; + EEE157CFCD553CC2F4D15CBB = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_devices/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + EEE1F3257D7C9A527D6647E1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileChooserDialogBox.cpp"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileChooserDialogBox.cpp"; sourceTree = "SOURCE_ROOT"; }; + EF0061905AEAC90A86145D40 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsPostScriptRenderer.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsPostScriptRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + EF073EC891B2731068542C61 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TemporaryFile.cpp"; path = "../../../../modules/juce_core/files/juce_TemporaryFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + EF70C0EA201D702D22D06396 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_NamedValueSet.cpp"; path = "../../../../modules/juce_core/containers/juce_NamedValueSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + EFDD05E3C006BA460761594C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_KeyPressMappingSet.cpp"; path = "../../../../modules/juce_gui_basics/commands/juce_KeyPressMappingSet.cpp"; sourceTree = "SOURCE_ROOT"; }; + F0074D8C86D3265AF7889CCF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_JPEGLoader.cpp"; path = "../../../../modules/juce_graphics/image_formats/juce_JPEGLoader.cpp"; sourceTree = "SOURCE_ROOT"; }; + F05511231DB8D8615D4A336C = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_SubregionStream.cpp"; path = "../../../../modules/juce_core/streams/juce_SubregionStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + F07914AFCF34610BAC0D3B0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_opengl.mm"; path = "../../../../modules/juce_opengl/juce_opengl.mm"; sourceTree = "SOURCE_ROOT"; }; + F0A8EA8AEA260ED20ED40247 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Typeface.h"; path = "../../../../modules/juce_graphics/fonts/juce_Typeface.h"; sourceTree = "SOURCE_ROOT"; }; + F0F7DE7E362D726569559501 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileBasedDocument.h"; path = "../../../../modules/juce_gui_extra/documents/juce_FileBasedDocument.h"; sourceTree = "SOURCE_ROOT"; }; + F1830606ECDFB808597E5A8F = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Variant.h"; path = "../../../../modules/juce_core/containers/juce_Variant.h"; sourceTree = "SOURCE_ROOT"; }; + F1BE04264A690B5EFA99FCA5 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DeletedAtShutdown.cpp"; path = "../../../../modules/juce_events/messages/juce_DeletedAtShutdown.cpp"; sourceTree = "SOURCE_ROOT"; }; + F1EB95EC0156CE6D16280A45 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_URL.cpp"; path = "../../../../modules/juce_core/network/juce_URL.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2A3916171FCB01D6A68DD87 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_linux_SystemStats.cpp"; path = "../../../../modules/juce_core/native/juce_linux_SystemStats.cpp"; sourceTree = "SOURCE_ROOT"; }; + F2C08F60BC16ABA3BE1F3A36 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_PlatformDefs.h"; path = "../../../../modules/juce_core/system/juce_PlatformDefs.h"; sourceTree = "SOURCE_ROOT"; }; + F2DE7A0F77BCCBCFEEC0B500 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_mac_CarbonViewWrapperComponent.h"; path = "../../../../modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h"; sourceTree = "SOURCE_ROOT"; }; + F2DFFAA96667B5897702E4B6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Atomic.h"; path = "../../../../modules/juce_core/memory/juce_Atomic.h"; sourceTree = "SOURCE_ROOT"; }; + F2ED5A15267070B560EFFA2B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TextButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_TextButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F356FC782C13333907F2EE17 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GenericAudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_GenericAudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3813BA8E8B9F775D0A049FF = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_TabbedComponent.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_TabbedComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F3868CB33CA2805C31829647 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Timer.h"; path = "../../../../modules/juce_events/timers/juce_Timer.h"; sourceTree = "SOURCE_ROOT"; }; + F4B9C009E75153F873F4AA25 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LookAndFeel_V1.h"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V1.h"; sourceTree = "SOURCE_ROOT"; }; + F4EA57711C5E9DC6746728FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MessageListener.cpp"; path = "../../../../modules/juce_events/messages/juce_MessageListener.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5DBF428153938207320675F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ArrowButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ArrowButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F5EB78612A35D53F005597D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LowLevelGraphicsContext.h"; path = "../../../../modules/juce_graphics/contexts/juce_LowLevelGraphicsContext.h"; sourceTree = "SOURCE_ROOT"; }; + F6086AE27F4DEB9C75A8FFB5 = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_audio_basics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + F616A5D8C022126707081DC9 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_OpenGLRenderer.h"; path = "../../../../modules/juce_opengl/opengl/juce_OpenGLRenderer.h"; sourceTree = "SOURCE_ROOT"; }; + F6625EF536284FBD73183EA1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ComponentBoundsConstrainer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.cpp"; sourceTree = "SOURCE_ROOT"; }; + F67C770333721A5D9BFEFCF6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_PreferencesPanel.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_PreferencesPanel.cpp"; sourceTree = "SOURCE_ROOT"; }; + F67FF8B4FA78D4E285AC0242 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TargetPlatform.h"; path = "../../../../modules/juce_core/system/juce_TargetPlatform.h"; sourceTree = "SOURCE_ROOT"; }; + F6A4E47EA1AA7392CFA6D8AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ScopedWriteLock.h"; path = "../../../../modules/juce_core/threads/juce_ScopedWriteLock.h"; sourceTree = "SOURCE_ROOT"; }; + F7487F2DEA61873B12C6CAC0 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ToggleButton.cpp"; path = "../../../../modules/juce_gui_basics/buttons/juce_ToggleButton.cpp"; sourceTree = "SOURCE_ROOT"; }; + F7D32C5CE1D85C542190C26C = {isa = PBXFileReference; lastKnownFileType = file; name = "juce_module_info"; path = "../../../../modules/juce_graphics/juce_module_info"; sourceTree = "SOURCE_ROOT"; }; + F7D98798130B4AB14E4E82F2 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colour.h"; path = "../../../../modules/juce_graphics/colour/juce_Colour.h"; sourceTree = "SOURCE_ROOT"; }; + F7E246B8F8600787C3F10552 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_audio_processors.h"; path = "../../../../modules/juce_audio_processors/juce_audio_processors.h"; sourceTree = "SOURCE_ROOT"; }; + F84732FE450246B23C813288 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Label.h"; path = "../../../../modules/juce_gui_basics/widgets/juce_Label.h"; sourceTree = "SOURCE_ROOT"; }; + F879E952E9ABC6FB12503AAC = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_IIRFilter.cpp"; path = "../../../../modules/juce_audio_basics/effects/juce_IIRFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + F897C7899B56E5C6D5523353 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SplashScreen.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SplashScreen.h"; sourceTree = "SOURCE_ROOT"; }; + F8E83B5544E2379CB0B323D8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_OutputStream.cpp"; path = "../../../../modules/juce_core/streams/juce_OutputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9022636187FF444897371F1 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Colours.h"; path = "../../../../modules/juce_graphics/colour/juce_Colours.h"; sourceTree = "SOURCE_ROOT"; }; + F937ACD8AA15A27F13F85A88 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Uuid.cpp"; path = "../../../../modules/juce_core/misc/juce_Uuid.cpp"; sourceTree = "SOURCE_ROOT"; }; + F93D065EB34B3E5270F5626D = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AudioProcessorEditor.cpp"; path = "../../../../modules/juce_audio_processors/processors/juce_AudioProcessorEditor.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9A0A82AA4D8EDB4B2305849 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AnimatedAppComponent.cpp"; path = "../../../../modules/juce_gui_extra/misc/juce_AnimatedAppComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + F9EED40DD78515ADF3189694 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_ApplicationBase.cpp"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA6BDA8882AAEE02FB04E36F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_LookAndFeel_V3.cpp"; path = "../../../../modules/juce_gui_basics/lookandfeel/juce_LookAndFeel_V3.cpp"; sourceTree = "SOURCE_ROOT"; }; + FA9CE8D2EEF012CB74C1E8CA = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ApplicationBase.h"; path = "../../../../modules/juce_events/messages/juce_ApplicationBase.h"; sourceTree = "SOURCE_ROOT"; }; + FAD5D9101D6427D96558C37F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_DrawableImage.cpp"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.cpp"; sourceTree = "SOURCE_ROOT"; }; + FAF22574F9AFF74820925F08 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_Files.cpp"; path = "../../../../modules/juce_core/native/juce_win32_Files.cpp"; sourceTree = "SOURCE_ROOT"; }; + FB748B4E5E7E7CB38BBF07AD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_BigInteger.cpp"; path = "../../../../modules/juce_core/maths/juce_BigInteger.cpp"; sourceTree = "SOURCE_ROOT"; }; + FBA60035993B1D5796D202DF = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_SystemTrayIconComponent.h"; path = "../../../../modules/juce_gui_extra/misc/juce_SystemTrayIconComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FBD1053AF6BF9575682BCAF8 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_LocalisedStrings.h"; path = "../../../../modules/juce_core/text/juce_LocalisedStrings.h"; sourceTree = "SOURCE_ROOT"; }; + FBDBBE33AEF062A1457DAA42 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = "juce_audio_formats.mm"; path = "../../../../modules/juce_audio_formats/juce_audio_formats.mm"; sourceTree = "SOURCE_ROOT"; }; + FBF25BFCF0541B78909B16C6 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_TextDragAndDropTarget.h"; path = "../../../../modules/juce_gui_basics/mouse/juce_TextDragAndDropTarget.h"; sourceTree = "SOURCE_ROOT"; }; + FBFB17CDB832B533BEF3BFAB = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_GZIPDecompressorInputStream.cpp"; path = "../../../../modules/juce_core/zip/juce_GZIPDecompressorInputStream.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC00E5ABDD903617E7498A0B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_Application.cpp"; path = "../../../../modules/juce_gui_basics/application/juce_Application.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC1E4BFBBE4B43200F8D30D4 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_win32_ActiveXComponent.cpp"; path = "../../../../modules/juce_gui_extra/native/juce_win32_ActiveXComponent.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC2F6663A0086F14B8C0144E = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_win32_ComSmartPtr.h"; path = "../../../../modules/juce_core/native/juce_win32_ComSmartPtr.h"; sourceTree = "SOURCE_ROOT"; }; + FC3CA13BBF45F16F19AE3047 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_FileFilter.cpp"; path = "../../../../modules/juce_core/files/juce_FileFilter.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC50C6150E60281125E69115 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawableImage.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawableImage.h"; sourceTree = "SOURCE_ROOT"; }; + FC5306AC9A046F7DF6CC09FD = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableLayoutManager.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableLayoutManager.cpp"; sourceTree = "SOURCE_ROOT"; }; + FC865A2B46F423E11725FFBC = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Array.h"; path = "../../../../modules/juce_core/containers/juce_Array.h"; sourceTree = "SOURCE_ROOT"; }; + FCF5891DAC2887A6FE3EEA9F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_posix_NamedPipe.cpp"; path = "../../../../modules/juce_core/native/juce_posix_NamedPipe.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD04FE1CA7A8937A90864D6F = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_MidiFile.cpp"; path = "../../../../modules/juce_audio_basics/midi/juce_MidiFile.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD1A5CF76641E1CE7F29B44D = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_ComponentBoundsConstrainer.h"; path = "../../../../modules/juce_gui_basics/layout/juce_ComponentBoundsConstrainer.h"; sourceTree = "SOURCE_ROOT"; }; + FD2080564407C8EFE21CBC96 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_MessageListener.h"; path = "../../../../modules/juce_events/messages/juce_MessageListener.h"; sourceTree = "SOURCE_ROOT"; }; + FD36702E757F21E0C43E8907 = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_StretchableObjectResizer.cpp"; path = "../../../../modules/juce_gui_basics/layout/juce_StretchableObjectResizer.cpp"; sourceTree = "SOURCE_ROOT"; }; + FD6A6D3E26D069707DD51652 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_HeapBlock.h"; path = "../../../../modules/juce_core/memory/juce_HeapBlock.h"; sourceTree = "SOURCE_ROOT"; }; + FDB3097BE7C87FF74895E875 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_FileListComponent.h"; path = "../../../../modules/juce_gui_basics/filebrowser/juce_FileListComponent.h"; sourceTree = "SOURCE_ROOT"; }; + FDC6858C3E455F9E8376B58B = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; name = "juce_AsyncUpdater.cpp"; path = "../../../../modules/juce_events/broadcasters/juce_AsyncUpdater.cpp"; sourceTree = "SOURCE_ROOT"; }; + FDFE40162E4F5CCAA833061C = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_DrawablePath.h"; path = "../../../../modules/juce_gui_basics/drawables/juce_DrawablePath.h"; sourceTree = "SOURCE_ROOT"; }; + FE42628E4890B2FC1D85E574 = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = "juce_Process.h"; path = "../../../../modules/juce_core/threads/juce_Process.h"; sourceTree = "SOURCE_ROOT"; }; + FEADE63D967146EB972AA6A4 = {isa = PBXGroup; children = ( + 9BE0EDFED0FC2720BB3AE101, + DD387A0509039658A5DC2AE5, ); name = Shaders; sourceTree = ""; }; + A4D3B14A21B5F8202D2A49AE = {isa = PBXGroup; children = ( + 7D21460B496E5E03FA58654B, ); name = Resources; sourceTree = ""; }; + 3FD01CA071C629C30000EC75 = {isa = PBXGroup; children = ( + A4D3B14A21B5F8202D2A49AE, + 75A8F56B635DA7158E472382, + 82443CD4F42884B9D33A85EA, + 69AE98AB9502B4B4E7EBCD60, ); name = Source; sourceTree = ""; }; + 853E25E8F0EA391EE8D4A3B8 = {isa = PBXGroup; children = ( + FEADE63D967146EB972AA6A4, + 3FD01CA071C629C30000EC75, ); name = OpenGLAppExample; sourceTree = ""; }; + CA34E66B71A70E489DCD9028 = {isa = PBXGroup; children = ( + 11614D602849B43F5ED92934, + 6B5D185CB49DC6746B357183, + E47A2EEA203214804C09378D, + 47E94C2476E8A7171A484CF0, + 8C69B0700CBEF4AAD6F41B08, + E10DD1F7E7994B77BFF7C8AF, ); name = buffers; sourceTree = ""; }; + C2F146BC4298BBB96A2A6339 = {isa = PBXGroup; children = ( + 0917DAAA83C16F4D430A4961, + 04F64700F41A639DA16732BF, + FD04FE1CA7A8937A90864D6F, + A937C45D53029A6BD6DA500B, + 0557BAAD94B3B3AFAF7607EF, + EA8B6054D2E6C204214422CE, + 23F1F8A1566366CCFAC8A5BB, + 31AF78DCC817DE98C01E1EEE, + 8BD7E643486B7C1968E68D51, + 7A9C6994055A82AFC438626A, ); name = midi; sourceTree = ""; }; + 4DF8616B3F357D3ECEB23246 = {isa = PBXGroup; children = ( + 53890D1A9DE3751F3A19C3C3, + F879E952E9ABC6FB12503AAC, + 0950F9F7698F791C6BC7626A, + 3B719AB087869724229AF10D, + D8FDF81708D362F909F5421B, + 28ECC3EF6106E7DB0E4F256C, ); name = effects; sourceTree = ""; }; + EEDD06AB62749ED2479EBFA6 = {isa = PBXGroup; children = ( + 28DEE4AF47201ED83DFD5875, + 4F70D57A0CFEEC0D7FADCB9D, + 0C5D36923235127BEC48777C, + 6960FFB28F8600D605CEBEBD, + C64D47A361026A76FC9BA9B9, + 72B3FF3E4E9060A4F06F89F9, + CC1AE8EECC77B1915D24C9DA, + 50CAEE20832DF292261BF105, + 68E2ACE653CDFA7D1EFBCB37, + B84BA430E8F477AB2EDC45CB, + 661DA0426C81D826ADA90BAC, + 850E016A9EA33CDCF888D7AC, + EAE65B593000E1AFCA63AEE8, + 2CE3A9187CAA637AAF93C273, + B1440ED412E2277340903AB0, + 7B1C3855706B615C704556DD, ); name = sources; sourceTree = ""; }; + 3E8C1CC521C5C0085ABD5EF2 = {isa = PBXGroup; children = ( + 06FB32F5B510DEC2A6D2FBCD, + 24E54A22403128BA82D02B09, ); name = synthesisers; sourceTree = ""; }; + 333F7FC9E4E695D243B51D53 = {isa = PBXGroup; children = ( + CA34E66B71A70E489DCD9028, + C2F146BC4298BBB96A2A6339, + 4DF8616B3F357D3ECEB23246, + EEDD06AB62749ED2479EBFA6, + 3E8C1CC521C5C0085ABD5EF2, + F6086AE27F4DEB9C75A8FFB5, + 66634B351B20F6B1F16ED9D2, ); name = "juce_audio_basics"; sourceTree = ""; }; + 5C2DC77520F6E8AB1413621E = {isa = PBXGroup; children = ( + D276367530731B2C732C50CB, + A07D0C5C60BE446FD41ADE51, + 70687CABD6ABBC69E717B73D, + 8768714C4890B02A1719AC89, + 9A67CA8503FB1E02090F5FAD, + CE5CDD52C447D5DCC7DE1259, + D4CA818D9DA2269EBCE376DE, ); name = "audio_io"; sourceTree = ""; }; + ED484B85EA0EC12853FAC2A6 = {isa = PBXGroup; children = ( + A8A190EDD8CED5ACF3AEE2C9, + 0411B541BEDEC5A67ECEAA31, + 36C81D39EEE59DF7D8AB0E0B, + 62ABA7CF7D0CE2D7B3F7BFCD, + ACEC05FF097A56FB7F3EF6B9, ); name = "midi_io"; sourceTree = ""; }; + 9116D006293FCD1E0A12EE16 = {isa = PBXGroup; children = ( + CD27B64646C58118052C3459, + 51C3B7D6330C765ADFB672FF, + AABFFB2D2D9F9BB39C95BA25, + 45693266645F0549AD1FEA88, ); name = sources; sourceTree = ""; }; + 729710EC0419FCEE902079EF = {isa = PBXGroup; children = ( + 7703A0B63AFF2C5FE9587CBF, + 2E1213ABCA6E339D156C6825, + 619377E030188B909977D85B, ); name = "audio_cd"; sourceTree = ""; }; + 6BB4269ECC3477AD8A7A32A3 = {isa = PBXGroup; children = ( + 59B2E8822B445FDD2BC590B2, + ED4FD41F6F5825084831A29C, + 1542F586268CE982EE1C9607, + BDBC99D827A9F6C5B1B0ED5E, + BB7442FBD89AFCE6AE14E0AD, + 5F43D23FA8A72E66792AE5C7, + 7B751B8BF3344D7C0980DAD0, + 40ACA092AB6B933E39268DAF, + 0B26EC9D2A47B858246A76EF, + AF80D629DF6AF8EEB11DE598, + 5CF8CAB948FAAB9164F206B0, + 880A65D7F29BF8701826BF81, + 66B35673D58EF4ABC6C50824, + EE49ECC80B5D7D0DEFA0EF7A, + 410C72660348DFD81F81386C, + C0A37CB25E8C40792454E820, + DD542B6F61E6C27A0D5A5F2A, + 2951B1B0EE3CE714426016F1, + E488221DF5AFED73C4518AE7, ); name = native; sourceTree = ""; }; + EFBCC9AA9132896CF439C9BD = {isa = PBXGroup; children = ( + 5C2DC77520F6E8AB1413621E, + ED484B85EA0EC12853FAC2A6, + 9116D006293FCD1E0A12EE16, + 729710EC0419FCEE902079EF, + 6BB4269ECC3477AD8A7A32A3, + EEE157CFCD553CC2F4D15CBB, + EBABE678E857A993B3753B83, ); name = "juce_audio_devices"; sourceTree = ""; }; + D285EE2EABEF952CC46877BA = {isa = PBXGroup; children = ( + B5A8A3579F03D2CCE4894848, + 2DBFFAB8701557418A4C7CA2, + EA77ADEA8100DFE7C2E0ABB6, + A3C0B621A37595B09825518B, + A1C21D6CF6F456E34A0E7FBE, + 819B5DAEB3840F04881F7CBD, + 983FBC7E850263512E41D13D, + 3E157C0C9F33470C32DE6008, + 31416E7F36800B9ACAEA176F, + D8EB2E5BDF6806B37482DE70, + BC35263317084BA60132B43D, + 509FC03682CA45E87F7E0A67, + 13FF137ABBAC726B7785FE0B, + 108D2A323EA2D7B31289AFFE, + 2822F9B316AEF7797E0F04B4, ); name = format; sourceTree = ""; }; + F0E2F377D5961CE0CF2EEEC1 = {isa = PBXGroup; children = ( + 5F49099628EF3662332FDB0D, + AEBF8C2FCAF972F014D43738, + 73636C4935CD275E66A85104, + 3AC4E835893B368AD0A3A30F, + 38ADFF5CB2DD15D371425F8B, + AA6A795F8A452B980C91770B, + 853E685A7CBF56CB4A532768, + 2D4DFDFFC93646E9C078865E, + D05F7D67DD28FF1156CBED39, + 6B43A5B75AB87FC3CA8D05D3, + 33FDA12B0256C2A4BD51B11E, + D54457FBB5D7B2362E69D9AF, + 663F74D8282001BEA5E93096, + 68C292BF84E3387285884015, + 774B3CFCF0748FE9E5EA4597, + 1742A7C8BB2AA11AE93DA43D, + 16D38AE110B44FE0D5E26F9D, + C8CEDA86517FE447F3A3DCF2, ); name = codecs; sourceTree = ""; }; + CD94C234A6AF95D63133D736 = {isa = PBXGroup; children = ( + E22C09309C11DAE1AA0AA148, + 4E4A47F8BEEF90A57C0C98C5, ); name = sampler; sourceTree = ""; }; + 8BB98CFCE02C8F888DEAD934 = {isa = PBXGroup; children = ( + D285EE2EABEF952CC46877BA, + F0E2F377D5961CE0CF2EEEC1, + CD94C234A6AF95D63133D736, + 3594634D87002997155671C1, + 0737A415932C93579574CE2D, ); name = "juce_audio_formats"; sourceTree = ""; }; + D7A7AC6EED05D3EFB23E0FBD = {isa = PBXGroup; children = ( + 52057B317B0FC98209D5BEC9, + A4E723D11ADD694C4A3D318C, + B97C816F9CBDE00E567E3144, + A59F49F937F6C5E6E35B8B86, + F93D065EB34B3E5270F5626D, + 1F6C3ACBB74CDDEBCBFCCA57, + 10FB75AD59E8E2AEF38167B4, + CFA38098B5AD00F5C0DF4D4D, + 4D95426C0ADAF01F92462C1E, + 72694B9BC870AF124976586F, + F356FC782C13333907F2EE17, + 80648C9ABD2B763398568A0B, + 48285F283B8D98122DB9D028, + E66B64B5619AFCB389836C06, ); name = processors; sourceTree = ""; }; + 3D87BE7DE866701CC5B6C485 = {isa = PBXGroup; children = ( + 9FE8D5E52AC84BCDEE8B414B, + 266A60D0C3095B8F7F16751E, + 1A366C1E8FF34F708C0AF994, + 20F2CFC88281301E30E08682, ); name = format; sourceTree = ""; }; + 98BF95789FAFC50466F1A1DC = {isa = PBXGroup; children = ( + 23EA0178C7150CBA80E79215, + 1CC05551F14FFC0161D8E12A, + 966F24941F855EA74A2A8914, + EEBA2A14B5473C1F19BF3D3E, + C9CD8A1AB4DAA664557DEBDC, + B7612EA3B34C6AC48079A447, + 58C9B8F93CF63036CA33A6C3, + AD0DBF0531130EAD4DF2A8FA, + 8E0D42B79853ED7FC60F931B, + D8F75466ADD0287144087C5B, + 794DEE7E5CC51940507F676F, ); name = "format_types"; sourceTree = ""; }; + D943062B41CDE85FA2B03472 = {isa = PBXGroup; children = ( + 4ADEE86E1B443E58DA6A90FC, + E388DABC27B6A417CE9B7F7B, + 6D9EBBDDFD2AF922A6947057, + 66CFF6B31868957CCF9A1C68, + 976CA25A81DCEEA8E07D2508, + 71159E965AD35ED1496B5866, ); name = scanning; sourceTree = ""; }; + B0A8A78F56D39E5C52AB1C76 = {isa = PBXGroup; children = ( + D7A7AC6EED05D3EFB23E0FBD, + 3D87BE7DE866701CC5B6C485, + 98BF95789FAFC50466F1A1DC, + D943062B41CDE85FA2B03472, + 9C56D1AE6B7768F6E27D8F31, + F7E246B8F8600787C3F10552, ); name = "juce_audio_processors"; sourceTree = ""; }; + 9DB85B0F2371EE26F3E89D82 = {isa = PBXGroup; children = ( + 22D01A956BCD31F2C54E4E38, + E45F076842C926BA5400B70B, + 07A41B027C9FC2A6DAC801F3, + 975BBC01D0C62E087E6246ED, + E0FF460CC2AACA09D6C7412E, + 16094015FECE7F7A1EE6B751, + 80BE3657BDC9B08AB3570055, + 6B107438F2E31C0BF985A733, + C407BCC7CEC505584B25682E, + FBD1053AF6BF9575682BCAF8, + E9BB6F5CCB22B9CBEA0DFAB6, + 6AC21250C86C558A82EE3B25, + 60B2BAA3043C667FE98E94CC, + 6C91F33E01BD39630B255C47, + 71F494877324567960FC3F84, + 976E37CE9482096F8A82A8CE, + 842FF0D158A48BD9C1651800, + 355F2CA65E4117FDE2391872, + 48FCAA413FA6EC7E02B33A6E, + A2D465168084C9FFAE312E3C, + 6EAF92417BE40684D0FAA797, + 3197F342A372898714E25F70, ); name = text; sourceTree = ""; }; + C9A88DFF6E95D969C2A09F24 = {isa = PBXGroup; children = ( + FB748B4E5E7E7CB38BBF07AD, + C33DDF76E058D3E11E61DE63, + 7BAEC8D30E310460FB3FC406, + 3E3D664A12153D29FC1D42ED, + 05F871A5DA3290898E2EBFBE, + 5D998A4BC436D82C3A6E8606, + 41F9BAD0BC589CC46CFEF495, + 0F0458EF50C559CFF42DDC67, + C0AC297D17FA68BBAB417A64, ); name = maths; sourceTree = ""; }; + EDEB768592E2E04E19CBBB39 = {isa = PBXGroup; children = ( + F2DFFAA96667B5897702E4B6, + 5989B7979A4446D163FD7E13, + DEE9366528ACF7F2CC0A9F73, + FD6A6D3E26D069707DD51652, + 3E85ACEDFE88D01251E25E24, + BEFB2034FC381E2DD019E372, + 4660BCF2E3BB5D499FA4A5EF, + BE4CF2165544FB2D720E1DD6, + 671B91E2FBEFF3E1A411B28A, + C66D4CDC39A565833178EB0D, + 773BD1E9176FB073B71705A0, + DA67F5A5693214A2189039D4, + 1DC4AC19C53D307B6007D02F, + C7BABEEA061F989A0A74F708, ); name = memory; sourceTree = ""; }; + 1EB689C939940E8ABE1AD59B = {isa = PBXGroup; children = ( + E5F97C758712010CF0E6D1B5, + 160486C90F388089629BA392, + FC865A2B46F423E11725FFBC, + 8A67491E410C9DB6523DABF6, + 39E15EA7A7D5C14DC2567263, + 4421B5629FD22618255E5539, + ADFFCCFC47120AF338FD8C22, + 0C2B705429E7587EB29AAD6A, + 2BCD3C3BC90487E5B932FC98, + EF70C0EA201D702D22D06396, + 356A77E7E341874950015BD0, + 25B327FEFEA517FB80B16EA1, + 3901027B107F1E3047BE9DAC, + 9C0906C06A9D1558C2982BC1, + C04188D62834AAE749694751, + 0C76BB6E3BA98DEED44473E7, + 673396F4BEBFE86BF911DBB6, + 46258D3B622AB0E2EF63F709, + 9F8B21E7C672840ACD02251E, + F1830606ECDFB808597E5A8F, ); name = containers; sourceTree = ""; }; + 312A62049C445C01FDD661BD = {isa = PBXGroup; children = ( + BC7C088D053711418A5A5698, + A646D188288588F6FB9E8C53, + B1B76C913B09E3F684F76824, + 13FC99389707E91E7EB6D000, + 4AB3D9133A3357A3FDAD3BB1, + B9EB38A9A966EBB9A359DED3, + 2E355DED51A6E9DFBFDA84CC, + FE42628E4890B2FC1D85E574, + 2BEA66F83F12716439729EEA, + 6D36D69499FD940CAD1E7484, + ABCD1CB78CD58A79D0A728D0, + A6B50D109A50FD28AE1D3F9A, + F6A4E47EA1AA7392CFA6D8AD, + 097B8DA5C29B16C544CEA626, + 140AFDDDAB2B88153F46692E, + B1C6C92A15E4605A40404381, + CC3E6F8333AA2D98AAC1235E, + 61448959C09144CC093AA715, + 6DC6E88C0FC0045CD52064F1, + 8A011075C19F974A22685EAA, + 8E06EBA4362C66A9040A2EC6, + 77A353D0E709D31E3BE00A8C, ); name = threads; sourceTree = ""; }; + 447896868A39D1BBF6C215C4 = {isa = PBXGroup; children = ( + 8FA29927B18439A066241F38, + BB4B7332B8B456297344608E, + A5A883D3DAD1D2BF2F044379, + 7609867A9F36324EA1C9F228, + 56CAE507F1D59D551C26B998, + 5C51BB323073B2AD0320825A, ); name = time; sourceTree = ""; }; + B2800371CE1A826ABDD312A5 = {isa = PBXGroup; children = ( + 23E996355EF7DFDCECA97B64, + DE3832516FB6969C0E3210D4, + 55C1F41C94C7C8ED73FC3288, + 3EA7A5F6F6D13A68653F06E8, + FC3CA13BBF45F16F19AE3047, + 7BD85F5BFF691F3E548BC8B3, + A7F58281FD0F07ECE6D261A8, + 67239C8DF5524A278253F181, + 79F7E702E92F8B23B6BCA74E, + B8A6BFA35FDD1F48C1E4E688, + 7712C8260E9F4A7C2BD9FD63, + 575F4E371F82188902F74A96, + E273A9AEACF13BC595F82289, + EF073EC891B2731068542C61, + E068F61F296A52D25E329978, + CEB259E27BB64776AF6BF076, + AB3CF49071E6EEF217783B8A, ); name = files; sourceTree = ""; }; + 22AF4BABA7E4362DABCA3E9D = {isa = PBXGroup; children = ( + E2B33608E3097EE1E7801707, + 82327EBDDBDE6104A0FFE08D, + 7B7B6659C2DD68F2373F9D3C, + 70C9E5BB2C3C4F1314DD8F4B, + 434AB1A1510034290ED3FBA8, + 3ECBCBB5D76AD9DDE65BD81A, + E81332E1BCBF978D86F92DFE, + 7A76BF61E569CCC96B9E16DE, + F1EB95EC0156CE6D16280A45, + 2517140ED8C0697A51CF87AA, ); name = network; sourceTree = ""; }; + 6B04E6A30689BE379804BC1C = {isa = PBXGroup; children = ( + 3F20765E456B1B8FF59C2461, + 5BB4A463E17E9C4AD5F43FFE, + DF2B90185FBA2C86DE767F46, + 417D4A3533F8C72814441F51, + 972D271918F957FB6FCD6CFB, + BD69D8ABDB6741F717E0DD1C, + 2D23BD941B1F4B65E5A2C2F3, + E2EEB444EC638B0C72A8A7E6, + D99465F417B8D56C2C9A212D, + C7F47C1BEDD7EE514BA40C27, + 5375E8C69E76D1570BE36946, + F8E83B5544E2379CB0B323D8, + 3AD3CC5787E119E3A1F6A55F, + F05511231DB8D8615D4A336C, + 34CBE9CCD9B23B1405C76D9C, ); name = streams; sourceTree = ""; }; + 1D0C55594A9BAF09CB69ABA6 = {isa = PBXGroup; children = ( + 791D605377E089529EA264D0, + 5784477EFEEAAD041BDF34D4, + 3DCD8AA2FF25FBE6919E8F64, + 0F7BCDE5E324E86EEA86BA7A, ); name = logging; sourceTree = ""; }; + 810ABDB24E2FE53C90BFDDFA = {isa = PBXGroup; children = ( + 2A274CF384892F3968889E0C, + F2C08F60BC16ABA3BE1F3A36, + 509031D02C057DCD1F713B6B, + 83C4DBF3382367051A65FF4D, + D37936ED5B5A415DF1F5F2C2, + F67FF8B4FA78D4E285AC0242, ); name = system; sourceTree = ""; }; + 5A97C8FA90181188140B83A0 = {isa = PBXGroup; children = ( + E5D5588D0F985DB2D5A8BAF5, + BDB1FA875F2C8263E3D2650A, + C50CE0A0485507647C78F30E, + 5CD7B0F647F366AC5510A13E, ); name = xml; sourceTree = ""; }; + 96DA2309744F7B1844D7EADE = {isa = PBXGroup; children = ( + 36632604A700FC8F53169301, + ED9CF9B1476F08D13A1E636E, + 8F81943FE96DB8DD0ABB9DF7, + 0D158239399CB7487C663168, ); name = javascript; sourceTree = ""; }; + EAFC9A1D80CBC941C7724431 = {isa = PBXGroup; children = ( + 0F7EB01A494A7D2D347B9167, + 1E6168E98312F552A0C57E54, + FBFB17CDB832B533BEF3BFAB, + C02F8C844FAD835F09408406, + 32D11E8A57FD1B5250A5E493, + 396986DB8689B7C6909777E3, ); name = zip; sourceTree = ""; }; + 2C36774A2938F4DE66EA7B1F = {isa = PBXGroup; children = ( + 6549876733A874A58F78CE78, + 20A48C39E51031BF57458A55, ); name = "unit_tests"; sourceTree = ""; }; + CCC10C50368A3362DAC1E895 = {isa = PBXGroup; children = ( + D74B9C3F462333A72B889773, + D23F862EE7BAEDAC24479902, + F937ACD8AA15A27F13F85A88, + 6364C602FBB1C4D7915DF708, + 6B5BE388D982E05CD2C7BE10, ); name = misc; sourceTree = ""; }; + 791BA85C5C83D6BFBBF82631 = {isa = PBXGroup; children = ( + 57FE8CC6D36C0376D4065444, + 19B1556541E4426450C8397C, + 274FB7736A16D65B40E1EA71, + 0CD440EC6D9EF66E117E3EBD, + 2C4E26E2F6F3B5522CA9993E, + 274546C14A985F7D454E16B7, + 783C910D9B34E33F4C7D270F, + 72E1B34915000641B7AD80EF, + BA99F87A1BC936C566A0DFA7, + B36AA5249B5B2242486B4153, + F2A3916171FCB01D6A68DD87, + 11F77DEDB8DDE2BC9B1DAB0D, + AFBCB46AC109F4982F012C0A, + CFEF06EB93957DEAE00A0030, + A8451C0D5D0549A7D923F2D6, + 254F2F62D02E4B48191083CD, + E54011F26F7D9AD38D437851, + B2EE6F9509A435D69B2508AE, + FCF5891DAC2887A6FE3EEA9F, + BD4C015152FD7519E50C9BCA, + FC2F6663A0086F14B8C0144E, + FAF22574F9AFF74820925F08, + 12BD203CEA0CE311A5789BB8, + 32940D3F55D43FA834DAD545, + CEE5BF72C9D7E467212D8973, + 332346809620F9AFA7CF3D59, ); name = native; sourceTree = ""; }; + 6D357C7BC335FFE2B3877318 = {isa = PBXGroup; children = ( + 9DB85B0F2371EE26F3E89D82, + C9A88DFF6E95D969C2A09F24, + EDEB768592E2E04E19CBBB39, + 1EB689C939940E8ABE1AD59B, + 312A62049C445C01FDD661BD, + 447896868A39D1BBF6C215C4, + B2800371CE1A826ABDD312A5, + 22AF4BABA7E4362DABCA3E9D, + 6B04E6A30689BE379804BC1C, + 1D0C55594A9BAF09CB69ABA6, + 810ABDB24E2FE53C90BFDDFA, + 5A97C8FA90181188140B83A0, + 96DA2309744F7B1844D7EADE, + EAFC9A1D80CBC941C7724431, + 2C36774A2938F4DE66EA7B1F, + CCC10C50368A3362DAC1E895, + 791BA85C5C83D6BFBBF82631, + D8C269D8BFE34CF33A2B243C, + D476B9FCEF30511BC736C744, ); name = "juce_core"; sourceTree = ""; }; + C65F5142919A93D5CB350F76 = {isa = PBXGroup; children = ( + 198B97A4FB9B21A3357160C0, + 5BD5301D9DFF3CEA10C32DBB, + 5789E773C615D393363707C8, + 59C461E6BF35CEC17FB2C9DC, + E83074E632966778B10AF088, + 14BAD66A370FA342144C7BFC, ); name = encryption; sourceTree = ""; }; + 37082FEFC588B71DD2E9F80C = {isa = PBXGroup; children = ( + 56C0EB0C9E4089ACA44588E6, + 4CAE848C3F30163816E921DC, + 83ED74D05C2699811929138C, + 9954A5B8424CE9ABC802AC8C, ); name = hashing; sourceTree = ""; }; + 6BC6B2DDDAEB6F4F64D1A010 = {isa = PBXGroup; children = ( + C65F5142919A93D5CB350F76, + 37082FEFC588B71DD2E9F80C, + 2A765F108608FDD8B2089BD1, + 8B1374A21A81C82233EBC523, ); name = "juce_cryptography"; sourceTree = ""; }; + A6D444FE8D85CED1C171C0EC = {isa = PBXGroup; children = ( + B2E2A77534D9104C78E8F3E2, + D1A2603E46734D31975B7540, + 4EBBA20040624174084744DF, + 9E46C8356029EC009F7A1C46, ); name = values; sourceTree = ""; }; + FF74D4493903CDAEF7181A06 = {isa = PBXGroup; children = ( + 73B62E5AA67F4B0483ED680F, + 0CB9B8098AB7F4CFF3991565, + 14254C2E6F168DB69F9F6494, ); name = undomanager; sourceTree = ""; }; + FA2F4F69BFFFAE7A215E77CA = {isa = PBXGroup; children = ( + 260D03D00CBF739BB3A2F604, + 623C7B6BD0B564F60F1F4012, + 6D3191834A1567C5C18A13AA, + 4411214CB9D7F986DA5A92FD, ); name = "app_properties"; sourceTree = ""; }; + 1E71D5778D41DB63E6350D93 = {isa = PBXGroup; children = ( + A6D444FE8D85CED1C171C0EC, + FF74D4493903CDAEF7181A06, + FA2F4F69BFFFAE7A215E77CA, + 014A45F4DF5D4B850A2E712D, + 8B8CEF7A6937C76CA7642C8F, ); name = "juce_data_structures"; sourceTree = ""; }; + 6B69835D713DBE0AA1335554 = {isa = PBXGroup; children = ( + F9EED40DD78515ADF3189694, + FA9CE8D2EEF012CB74C1E8CA, + 8FAA47BE39D087684520C15F, + F1BE04264A690B5EFA99FCA5, + 7063B929C5E98B803E0464EE, + 907D08843439A347B3E2A869, + 6DEF5E5D162E4F32631FE2D7, + F4EA57711C5E9DC6746728FD, + FD2080564407C8EFE21CBC96, + 427EF6B8A919A04D12F63829, + 5576ADF82B58BDBBCC75477C, + 1E21F56456B1A05606B1A328, + 6A972E2430F4B2D9A07D44D2, ); name = messages; sourceTree = ""; }; + 21AE815F08BE75F4B146FF17 = {isa = PBXGroup; children = ( + CC0ED57DE1266CEB11001787, + BEA260469BBB48EB998AA4DB, + E7EF18BE4F22063894C6FF61, + F3868CB33CA2805C31829647, ); name = timers; sourceTree = ""; }; + CFA962EE09603F3370751E99 = {isa = PBXGroup; children = ( + E8ED8CA85BE4E1BF7C5ADF53, + C3E4252156EDD0E001A10DE3, + 51713BEF84B3A58844692401, + FDC6858C3E455F9E8376B58B, + E49C04EACE55BED74E156911, + 8F9A2F59A71422296C56C8A5, + DC209283C24A9C0B601DB860, + 58301731C17BEF7BF07541AF, + 1BDDC4F584BE877D4DC1ED90, ); name = broadcasters; sourceTree = ""; }; + C6AA6C3360946FAC6A1E4CFF = {isa = PBXGroup; children = ( + BA5DE80E67A74A41D57E7663, + 0E1CA391708ADDE3952BF147, + 35641C490EE335DDFF004FEC, + 54B30BCC43C6CBF57A69A654, + E31FDA8F23FEAB726361C8DB, + 3CCB2447E4FA1C412FEEE551, ); name = interprocess; sourceTree = ""; }; + ED26DB941C1087A481ED9C8B = {isa = PBXGroup; children = ( + A878B40B811C4B83658F6A60, + 3B3FC34DE0D784314690A93C, + 656CA5CB0EF44C76ACFFDCEA, + 3DF5CBEC136D13446079C001, + CC42DBFB2ABA84046DD69E1F, + DC254EFF0D95657D703FA8F6, + 121C4D9B35F16FF170A9D4E3, + 502503CB0C00102976DF1023, ); name = native; sourceTree = ""; }; + 1B0890891B764226EB568489 = {isa = PBXGroup; children = ( + 6B69835D713DBE0AA1335554, + 21AE815F08BE75F4B146FF17, + CFA962EE09603F3370751E99, + C6AA6C3360946FAC6A1E4CFF, + ED26DB941C1087A481ED9C8B, + A061F1646238A35ED0BDA32A, + 887EE77979249B8A3E7C2C49, ); name = "juce_events"; sourceTree = ""; }; + 76BAE43251ED78FD6BE739E9 = {isa = PBXGroup; children = ( + 2A5F9649D883210E5C67CEE4, + F7D98798130B4AB14E4E82F2, + 8F5EC320CBE18D8923C7D3EF, + C45B9350ECC13FC8096D3873, + 8B743E5BA29E435BACFE17BB, + F9022636187FF444897371F1, + 223B9626308B07EEEDA7C89F, + 0D5008DFFC00B074A9970585, + 46F845FD963442D8748D3261, ); name = colour; sourceTree = ""; }; + F0740B98E17BCB69B54B4619 = {isa = PBXGroup; children = ( + E2B10A7DBF2B35A4C3A1DE21, + B28DFE72ADE03393BE8B764C, + F5EB78612A35D53F005597D4, + 85379D9BB0BA7D60CFF83DC6, + EF0061905AEAC90A86145D40, + B2A85C1813641574E4D15BF2, + 1E7CA4A04A182412B3ECEBF6, ); name = contexts; sourceTree = ""; }; + DDD3EBD3493F3D8076685D09 = {isa = PBXGroup; children = ( + 1565307D5DC70CAC563B579F, + 14BF2173D8CD3520B21E01E0, + AEA5E43C19B3566D5B2655E9, + 6BC5C181AD876196213378C2, + 9BECE88C6AB34861AF408C37, + 6E35055BA3436FC2F9B77365, + E441F10A3241806474779D5A, + 91A5A6A217FA091F2ADBE3C5, ); name = images; sourceTree = ""; }; + 240D1F671827DE817DDE901B = {isa = PBXGroup; children = ( + 793E09206EDE78138AB56CC5, + F0074D8C86D3265AF7889CCF, + 2B594B1579F4770CA36E870C, ); name = "image_formats"; sourceTree = ""; }; + 9F57E3145B8DE085C7435C7D = {isa = PBXGroup; children = ( + CE9CAFB040BE90431A432537, + A19D3050F95BFD17129EA013, + 17077E8777B646C03C92D20B, + D2EBB6A92000349A92809F02, + 18E61768FC20A6C65CF73DA5, + A20DD4F2960264FC20095777, + 1F0F8E76A0B7D289D66C4101, + 41D42F7438B6C953A2DC5038, + D85876E3373EF8AC5F39A5A8, + AB540AC77FB76E3B498E98A6, + 27AB89D8B21801C1528F53C8, + D258105EC6398A3984FD8DA3, + 7EEFCCCD23C883F6B797834E, + 015766ED6CD9D55279FC884A, + A021D917DFD4DD5D4703913C, ); name = geometry; sourceTree = ""; }; + 997C7BFF828EBD6BDD06D036 = {isa = PBXGroup; children = ( + 7E5D04471A75DF9057A4D73E, + 6CF6624AD370E4716D42CEDF, + 284C742F571D494237C52C2D, ); name = placement; sourceTree = ""; }; + 013403E10034C0DA7BEE1F39 = {isa = PBXGroup; children = ( + AA55BD139AEC1B8272ABE461, + 506DE1D3A739746007E33852, + D6AC70136461C6F3FD1987F1, + CA3D1FE94B500CF86704EB13, + 279A6546016EEB8F9264EB39, + E0544ED1BC8832C4D1296FAB, + 4271A817DD6497D0023C43A3, + C1A299D4A5AAEA645975EEB8, + A4F075DFF243F6BB90CD5950, + 3CF6CC164ED4826B4DF73177, + 2CB561058728D0EA3A66AF4A, + F0A8EA8AEA260ED20ED40247, ); name = fonts; sourceTree = ""; }; + 556560AAD3C29E08F7AFBCBA = {isa = PBXGroup; children = ( + CE11BC7911220E9CFA1283D1, + DC9D4AE01FB7CF8D2877B198, + 4142E8BA365FE77662B11891, + 473E98AA655246EECA75EDD1, + C7BB125979760AE4264BF23E, ); name = effects; sourceTree = ""; }; + 66DC0A97992202B7629A58C7 = {isa = PBXGroup; children = ( + 3A8EA18FCAE5801EF1AECC06, + E041ABD2C503FCB7EB7E49F8, + 2E62B2A1D5FE20D7E675DC3F, + DC3E9EDCD85270B2E9D33BF8, + 87EBB9223B9943D09D0ABA97, + E4D98F92A6646FC7CE4FFA1B, + E6AB1D98C43E9017F546D707, + 4825BC8A3502320ED671408E, + 73861DEE4EEBFF77B6293F90, + 54E56E35A31C662C67992C7B, + 6741B65B42E9858C7B580A36, + D9FDDAC72C576633FD41B2E7, + 4AB453F1DFC4EA7AE058B0EA, ); name = native; sourceTree = ""; }; + B4351AB8FE980A7A843DD7EB = {isa = PBXGroup; children = ( + 76BAE43251ED78FD6BE739E9, + F0740B98E17BCB69B54B4619, + DDD3EBD3493F3D8076685D09, + 240D1F671827DE817DDE901B, + 9F57E3145B8DE085C7435C7D, + 997C7BFF828EBD6BDD06D036, + 013403E10034C0DA7BEE1F39, + 556560AAD3C29E08F7AFBCBA, + 66DC0A97992202B7629A58C7, + F7D32C5CE1D85C542190C26C, + 30CBDFC5F16FD990ABC2C486, ); name = "juce_graphics"; sourceTree = ""; }; + 5A794D6AA7ACA03DC348F94D = {isa = PBXGroup; children = ( + AC2A502E05BB93CB0840344D, + 31CD83018DA7BED28A70EC1C, + 2D6A1D77D896FF6DDD5EC49F, + 942393EC874CEC183B67641C, + AD16BF0DECF3EEFD7AE11457, + B91A8133C3474D98AB6300CE, + 3F02F103D0EA0D398FA2A95D, + 293D0E58C45CE26287E99822, + B8C996306428DFB642CBFB14, ); name = components; sourceTree = ""; }; + 4AA38BF06A0BA16074879F26 = {isa = PBXGroup; children = ( + 1782B7FCE431430BD11700EB, + B8EF2AF777B74156958B72CA, + 40E971224B83783243521871, + 7246A65F3B8646D764F3A355, + 81556F6E103D6843193EA1EC, + C936095A19665316F5B675CF, + 850622AD96A6D025EC1E832D, + B0FB5996D7068C230DC6D8E0, + DB348CBC6734FFD0B7ED8A34, + C50DA493E57234B3820BD77A, + BC586A21CD33D786C4472FD4, + 9986CD0D1752D063F3DC2652, + 16421110FEB104E290E3F13C, + 1A424A0B9D68C68CD5B075E7, + 74E1A5ECBC09930A520D1A98, + 1C196D0BC6B08623601273FF, + 2740DD21925484E4BC243630, + 484ACD3191DB5BEB198EEF97, + FBF25BFCF0541B78909B16C6, + 5B5D589850B147BE94D01D42, ); name = mouse; sourceTree = ""; }; + 9AF6FBC13AA9F0C35EC524A1 = {isa = PBXGroup; children = ( + 6D1D3AFCBD704E2E3A9AB0D9, + 776FC3A674D9CCD21CB2D7A0, + E90FDEEB9C536E5E1124B00D, + 4FBA6C32DE977B1330BAD5DD, + D521465375DD0F179649668B, + 38A0CFC456FB82927DF8B990, + 3A52ADB8D2B72A1E6F455ABA, + 1E07768DDE29F15BF4F32C48, + 665600E48FF051CFE90C698D, + 69CA413A66B0EA204C1AFF4A, + 42AE889B4D596FF23E2D77CB, + B1E4A1F07EFCCA50D963CF4F, + B77BD5847F412656109A378E, ); name = keyboard; sourceTree = ""; }; + 6401A528C034A7FE4E59C5C4 = {isa = PBXGroup; children = ( + 8FFF7C1572807209B9A8A08D, + 1D6EA6E2DC8F03826454F21D, + BE635BACA572437D8DFDEEC8, + 759899A48CDE9705331F456E, + 7069BF224A795890367AB809, + F84732FE450246B23C813288, + 9AD78BC87097481DDC1815B2, + 8BA590FF6DD42B77C70BA092, + 795DBB9CDC6751C052A03827, + 355B143DFA326CC401844099, + 17AB5E83E71D5864435A011B, + C24880A7007CE75B7F8BBD71, + DE8A6DAED12A99017D7341E1, + 168D70A9989ECA609D355DA6, + 1AB2337020B7AA4AD329405A, + 67066EE59E69BCD634D38ABA, + D1C13988EF76674213DF92F4, + B2D09E29CCC80C27956BF314, + A80BB5CEC5BB5398B155F980, + 3E5E15C429B5D8BDA6815193, + DB59695708606C9604E11F0B, + 354636C92CDB97DAF80D1E6A, + 4676425D91097FBD1689298C, + 6F974A4B1AC400251425C8CA, + 99BF73D0D5B995E84BAB52B2, + 2DA8BDECC570B976D34D9263, + 4B409B90CC47BF0477D7F6E4, ); name = widgets; sourceTree = ""; }; + 17E7CDE6EA0A435BF5A4DC15 = {isa = PBXGroup; children = ( + C3A68B435020C80FC29DB89D, + 44EFBCE30DD206F4A55E4E81, + 876EE7E42127474428BE3BFF, + 76372445FC076FB8D26CEEC4, + D93861E50D66746DF070A158, + AD7CF8E55597C12D264E26D5, + EA53B7692D5E224F0477A791, + 019CD85E295A7290855D0C24, + 61C1B6B3336D774EAE4994F9, + C8B71823C30A65066A852942, + 94D011BBB3D330AEDAC86D11, + 0769D44014FDF069ECA54115, + 7581EDAFA0B1746EC8139077, + 4391785C112C65C6C1F4E05A, + 856F3C72739BD34C8CA40F3A, + E7D88F20FB6FEA84BFEC67D1, + B1C695101BE3D6A84272B6C8, + 92C99A9D9E9BCABE2AE26B9C, + C719606229204044D7C85339, ); name = windows; sourceTree = ""; }; + 39294ED083C056829DCC6B0C = {isa = PBXGroup; children = ( + E9164448EE60F4DB5F2A14D1, + 01B29765150B583E2460837C, + 275CF9CA5A34E2825DB8792C, + C2B61447889E781465E49AC3, + 1B0BEB542ED5BA84E52AEA2E, + E50BADB05430CBE8BF33F8F5, ); name = menus; sourceTree = ""; }; + 68E400580DF6F5DE436B39EB = {isa = PBXGroup; children = ( + 2EC200E7CF8C908AC3DF4416, + 1BC364DFD3A975A0CBA0AC61, + 77802A78E9D43C940C14B0BF, + C599A55407B6EB6AD55AE73C, + F6625EF536284FBD73183EA1, + FD1A5CF76641E1CE7F29B44D, + 49837BCC6CD64D108AA3E37D, + 3693D26AD61B3B089A2B9CEC, + 62F8069EE12495D7BDF5BCCB, + 8D330180BEC5572287AB158A, + 39CD252C183BBF175E1C0602, + 33D5910744D9482DBA614144, + 7D15374142A01E2760AC4818, + D17F209C6915C948F90F1349, + CBF3ED31F58A0874E0E9A64B, + 21273C209FE7E19C59952EE3, + AE86A03508278775CA9F250B, + 3E22FC06C346385E732377C5, + 1C02F9D8BEBC13937D8D9BAA, + DA223B209C3FF00A91FAA1DD, + 52B122DC1886502CCCD16ED2, + 92E26ABEFD096B05F99EE036, + 6AA216A8B8EF4E181BCD96A4, + 7049C408D43D64C1504F6505, + FC5306AC9A046F7DF6CC09FD, + 60359F3EE85F679C1D118136, + DE00116B59A20E5B69367B70, + 79A01A9B8A17C9419EBC5F73, + FD36702E757F21E0C43E8907, + 4C9A8BA6A094DC3490CF25B0, + 7C388E6394CB0A8C4C919751, + 88060C7661160C61E794D2B1, + F3813BA8E8B9F775D0A049FF, + ECD6C0DDB8587984580C96B0, + 8D57423CD5A1B516B5374499, + 6C4A5B3781D999AFA15F1016, ); name = layout; sourceTree = ""; }; + 82356BA2755E3E9A105EE32C = {isa = PBXGroup; children = ( + F5DBF428153938207320675F, + BB8AD6D858D518E804AFA0C7, + 6536E6457A8B77FDCC506401, + A87A60BF515078DF23E1F737, + AA54E821F947C9A9DC359693, + BEAB03E92089D87D7D6A2353, + 3935FEBDBA2F8025F602042C, + 5CE4484E6BAB76C9B49E6ADE, + 3B883BA33260250D6C443F87, + 80A6B9266A11D6977AD84546, + 5848A09E20AA6FE9EF1E6898, + 28BF10B49B1D14FE05CBC5DA, + F2ED5A15267070B560EFFA2B, + ECE3837512B3E620155A8432, + F7487F2DEA61873B12C6CAC0, + 449FC2FAA282C731A58D51E6, + 0892B622D73826BB91C8E418, + 6436F4F5D143E72BD77EE053, ); name = buttons; sourceTree = ""; }; + 9A1C5344E2500919F67C1907 = {isa = PBXGroup; children = ( + 8D11B58353EBDC8EBE9C641D, + C52847A293D0E8958E88DFD5, + 17A033D6C28B1E76FA8BEFCF, + 816CA082336A8BC8A9AA61BD, + C3B93391519DA8A352766580, + 406587D828CD424333E55C81, + 33B9E6212D92FB49C792ACE9, + C6B9F01A0AAA2A1DA8122912, + 9CF41B989B4516C8DB6CF7A0, + 35748B2B69B3A54D19679F3A, + ACD7FAE9EE61A4085580912B, + 360B3CDCB046B9D69C6F5ED4, + 56C2444E299E030DE7243C7D, + 220732F05D2DEBC2ADF2D45C, ); name = positioning; sourceTree = ""; }; + 6373BAB4261AEB403399D2DE = {isa = PBXGroup; children = ( + EA2BE0B9C8E1546D25A02D67, + 38043242051AD4996B081769, + 0D79BD52315BE837BAD64A82, + 9CABACB9A2FF46A8B3059D8E, + FAD5D9101D6427D96558C37F, + FC50C6150E60281125E69115, + 3F57F6B58B93E88A29F90809, + FDFE40162E4F5CCAA833061C, + 9F3DCE572188E0085FCF1956, + ADA1339F195F699D7F5369F9, + 9B9B8DBEBEA5051A602DA6C1, + DE1A6A1C0CCC94A3E3A887E3, + DCB52EFF8A9F5D9F6CF3D3FC, + 61596F68A47C4BEA8F9A4D68, + D6EDBF07E4162364DB8825D9, ); name = drawables; sourceTree = ""; }; + 4A5017F3DFD59498929C74A1 = {isa = PBXGroup; children = ( + 87C173B4D57F00E5523D3395, + 5B546C6ED44CAF4197788BC0, + 6555D39D3BE572E611DCA8EB, + 3545CC1CCF501BDBFF528908, + 78C9531A81D34333AEF14019, + 1ED3843AC8AC67374F6F5F77, + 3B3B1BB15DFF71215E86A175, + EA19F37E2AB4C42A1ACF17CE, + 70407DF33563B729D4758A17, + 3134A6BDE49CF0D3F0B12FE2, + AF5C2B3C5CF657FA722F9A68, + 1633D4A7385E8AB77FB6723E, + 5F6BDD2491C4086940AAE045, + 7392F4B60E4E28A340E465BE, ); name = properties; sourceTree = ""; }; + 7C2B9213A4FC92A23B91DB75 = {isa = PBXGroup; children = ( + 046591508FC3F71F74126E81, + 8594A236A434383AA96AEB53, + BA5A9BB00CD8BEA408371875, + F4B9C009E75153F873F4AA25, + 694EB6B22E35E09B6AB43EE2, + C48140923F2A4DEDBA063DFD, + FA6BDA8882AAEE02FB04E36F, + 8DFA760FAD9756305F9C7515, ); name = lookandfeel; sourceTree = ""; }; + 42F8790BBB2D6EAC6A228F28 = {isa = PBXGroup; children = ( + 37BD426B7B7DD8BB3EF562A6, + 3B2C9FC5B754F29B4BFF7EA9, + 541C3E9F5E720BF6D99D94CD, + 426B31F8A63727D575B2C782, + 546D112DEC6A685B52E4D7AA, + D92B6F28EF1D46625BC2A18B, + B1C7A541DFF31B38F0A17C16, + D9F41579025D12F2CCF079C4, + 281ADBFFA54CFADAE46AAE79, + EEE1F3257D7C9A527D6647E1, + 7987CDDDE250EA56F0B26A0F, + 69F89AFBA54B48038B47DDED, + FDB3097BE7C87FF74895E875, + DA12229986D485B2E2DE059B, + D24F3C46F1A46422C080A0A7, + 144BF62327063E0017BB7B0A, + B49E98EF01462277526C417D, + D01183D850457CA55516B3B2, + 7E278ACE0E80F59FBEB3122F, + 6C3B851F65AB406E5B6CAF7B, + 39DAB20FE9D55152EB2D224A, + C8FDA55A72DC4A244703C8F4, ); name = filebrowser; sourceTree = ""; }; + EB0838BDF3EDD2A6C56D1B10 = {isa = PBXGroup; children = ( + 2CD2FBF66999807E0B86E0B0, + C568E8888819EAFDCAEAF04F, + 8DBDCF6753B9AE327FC8E382, + A23A20A098747A2449C47047, + 31B42F889DD1C79540881B97, + 62935FD655DDDCE70536555F, + EEDD0D3608DCB2E459F3BF24, + EFDD05E3C006BA460761594C, + 01D4F510A1EE5495A8A419C0, ); name = commands; sourceTree = ""; }; + 3F09D506DAF77142944CD206 = {isa = PBXGroup; children = ( + B25D9BF429F016963A545287, + 343BF0E7697F399B08D42CB7, + 60F110007A8248E4318D9B0D, + B68B3E0BE0396ACD3CA52250, ); name = misc; sourceTree = ""; }; + 2EFA9503FCACF0651BB57D5A = {isa = PBXGroup; children = ( + FC00E5ABDD903617E7498A0B, + 489D9B3F2489315DBF5C552E, ); name = application; sourceTree = ""; }; + BC1C3CB4DF57CE8A1B29522F = {isa = PBXGroup; children = ( + 4717C14F84229B39FA2FA86B, + 3A5C86CF6276058B0D5AC399, + AF6001FA947F3A7DF15CBF8B, + 2BFABFBE400EBD477EEC1F7D, + AA8A3E0CF7623249B2907DB1, + CD71ED4911896207B303106F, + 7207669F41206DC961E08FD2, + 6FA9A28DB80D43E87900A1B1, + 4BF34287391AB2ED382C9CB2, + C159C35E078C5B5B9BFEFB52, + 338C5E41B8903F0894709201, + 5BF81A5EBE596AB3F3E4C222, + 6CE60A4F64042BC1A2391987, + C05E16AAF0CF0676135C0C9B, + 279D354D902DE91EB32B1BE6, + 6C5F536D935CF788C07424CC, ); name = native; sourceTree = ""; }; + 1EFC1E01B0C1ECC1EA973E50 = {isa = PBXGroup; children = ( + 5A794D6AA7ACA03DC348F94D, + 4AA38BF06A0BA16074879F26, + 9AF6FBC13AA9F0C35EC524A1, + 6401A528C034A7FE4E59C5C4, + 17E7CDE6EA0A435BF5A4DC15, + 39294ED083C056829DCC6B0C, + 68E400580DF6F5DE436B39EB, + 82356BA2755E3E9A105EE32C, + 9A1C5344E2500919F67C1907, + 6373BAB4261AEB403399D2DE, + 4A5017F3DFD59498929C74A1, + 7C2B9213A4FC92A23B91DB75, + 42F8790BBB2D6EAC6A228F28, + EB0838BDF3EDD2A6C56D1B10, + 3F09D506DAF77142944CD206, + 2EFA9503FCACF0651BB57D5A, + BC1C3CB4DF57CE8A1B29522F, + 0F1752D7FC9D89588551D5C3, + A85BBB0551113A7CD910AA16, ); name = "juce_gui_basics"; sourceTree = ""; }; + 7B917E77D4B25A14822B94CB = {isa = PBXGroup; children = ( + 1233B57573AB9503E0625ECB, + 89CC7514E6F2628CE82591BD, + 3C90895F90CF6FA4714DBF6F, + 80465B70BFD2A13EDB18B702, + 4683DEED4D9E52F0A84FCEE2, + 7156B58188258F7EBE617E15, + C007BC3372F44746BD6E98C0, + B0FE76D91413C32F64610594, + 3B172600E3C05D62F424449B, + B05257BD950E35B28F9E88CC, + 110D8C5EEF130FB1E1F7D286, + 1CEAFFE79A9E1A1E32C2BFD6, ); name = "code_editor"; sourceTree = ""; }; + 206C4AD1A507D7D003F44AD4 = {isa = PBXGroup; children = ( + 169C1D0433B29AF96A6FD27E, + F0F7DE7E362D726569559501, ); name = documents; sourceTree = ""; }; + 8AB5C3D67E25D52FC85A482D = {isa = PBXGroup; children = ( + E3381BC529641894F95F9AD6, + 9FBCE80E444BA9E69C3F6172, + AC4730773DE422AE346C6D6B, ); name = embedding; sourceTree = ""; }; + 284172C32915E2B9B95F2B0A = {isa = PBXGroup; children = ( + F9A0A82AA4D8EDB4B2305849, + 7109E1D6A2AD7A013453C922, + BCD3969359F2EB2EB970C412, + 7C2A56B41F84CF25DC4D7C7F, + 2931E23782DDD4761EA6E711, + 3F312C95E458F86E5D814AD3, + E62A008F49C8FB4ECEB6CC37, + 8C4045D24297D10F0EC9348F, + 9C52165BC295637D495791C1, + A7EBBF2BCCB164C8F5C0423F, + BCD60A4DBAB2007ECBCAB17D, + F67C770333721A5D9BFEFCF6, + 18459D45EE3F7766AB932678, + 3F32203D512AD417AE3548E4, + 67B47838D621A526D8148308, + D53FD6223C4A997E441E1F80, + F897C7899B56E5C6D5523353, + 4C57FEDA7D19BB3D05326948, + FBA60035993B1D5796D202DF, + C57BA5F014343276128923F6, ); name = misc; sourceTree = ""; }; + 7934D8F0485905857255419D = {isa = PBXGroup; children = ( + 07E89C9A0EBF5FF6A0A05EA5, + 77BAA6C13A52BE0F0A42FD0E, + 179BD4E3BB66F7CC1747ADAA, + 51FDDE6DD9DC3FB98747A0E7, + 79728934D091CBA959AD2B20, + F2DE7A0F77BCCBCFEEC0B500, + B73DF787FC51F08E279923A6, + 22B8E3336C2DA6F5DE3CE748, + B607DF0E27752A1B9A863CC6, + FC1E4BFBBE4B43200F8D30D4, + D23A9E25612E33C0C6AAA09E, + 74E37866C31A35A559E1E80D, ); name = native; sourceTree = ""; }; + 5055ACAE49BC97DD34466C48 = {isa = PBXGroup; children = ( + 7B917E77D4B25A14822B94CB, + 206C4AD1A507D7D003F44AD4, + 8AB5C3D67E25D52FC85A482D, + 284172C32915E2B9B95F2B0A, + 7934D8F0485905857255419D, + 97C71C2DD318EDB304FC1CEB, + B121FF657B96C6FFEB2C2DC1, ); name = "juce_gui_extra"; sourceTree = ""; }; + B88C560247F2D57D82F21CBB = {isa = PBXGroup; children = ( + DF53D8FD5DE7B15694D26E91, + 01FC5A0075F643D703F56555, + 9D87175DE3988B783002560D, + 75CD7766A1ACC3BA17C8B73B, + 35B404161217DAE32CC143CB, + 88EB915831B819EC3B7B124E, + D67D8599E2F89D673EA36D9F, + D9E4C045A178EA678116D439, + 4F9D0FABF1E74572460D086C, + 393EA74C63AFA103F5F3264B, + 4E053EF00EC72441FCC9A6ED, + 92655A59F40624CBDA9194B5, + F616A5D8C022126707081DC9, + D677D05978DC2C67386B63AE, + B2B042F73709D0057DE8A51E, + 6F0A25914D95D4F547F91C79, + E046CC53401A9551BDEA2D83, ); name = opengl; sourceTree = ""; }; + FEE6ACB178D213783FF6E964 = {isa = PBXGroup; children = ( + 838BB45D693ED0AAD43B93C3, + B9B0A3004948FA2387C28829, + 21FAFC1D8D92872E96F56764, + CD44827B5286ADE94DB0B79C, ); name = geometry; sourceTree = ""; }; + AC7F13F5542D3403D8F2ACB8 = {isa = PBXGroup; children = ( + CED808C5809FF89D32131CB4, + 7CD48F7A63EA97AF58ED7C5F, ); name = utils; sourceTree = ""; }; + B04BB024408E06CCC786C13E = {isa = PBXGroup; children = ( + DF42C1B300CA66580D0AED1D, + 32CFACA9C637ABD27F8A874F, + A3EFD0BE919B2F7AD7295F2D, + 2553F95186E2565315E012CF, + 5AFAF9A5651C30F1FF28A76A, + B99DD4C6D8C8F58C83ADD7CA, + 0ED63C3FFD7B718988BDDAFF, ); name = native; sourceTree = ""; }; + 8C1FC7FA6E1B36498E7EB987 = {isa = PBXGroup; children = ( + B88C560247F2D57D82F21CBB, + FEE6ACB178D213783FF6E964, + AC7F13F5542D3403D8F2ACB8, + B04BB024408E06CCC786C13E, + 3FB32BF0AB8E9BD398E92361, + E0E847621EEAEEFB21B87986, ); name = "juce_opengl"; sourceTree = ""; }; + E1A6B922CD26B2E238FFE633 = {isa = PBXGroup; children = ( + CC83A115FBF5C65772BBFAE3, + 3D26B83681D1E47ADFB2D8A9, ); name = playback; sourceTree = ""; }; + B43E665356CC8841DCE56D07 = {isa = PBXGroup; children = ( + 83619BFC8B92A2B5F17F596C, + 985C549EBDB26AF7BFD6E8A4, ); name = capture; sourceTree = ""; }; + 9BD07AD149BE8BBE4BA6B001 = {isa = PBXGroup; children = ( + D2C557606FD68958DC545A2B, + 6894AE00A49D15E9C4A31355, + BBECF34C65D1DD35DE8C6F9B, + 003AAB5BFC9435FA4823BA2F, + 72723038519B5AB5FFB52EB9, + B0E21FE9C68B99E4C751DF13, ); name = native; sourceTree = ""; }; + 01C4A7ED89A1564ED222862E = {isa = PBXGroup; children = ( + E1A6B922CD26B2E238FFE633, + B43E665356CC8841DCE56D07, + 9BD07AD149BE8BBE4BA6B001, + 6C8C142D26BAD246C4ECC102, + 317988D9466ECCE83B91CD24, ); name = "juce_video"; sourceTree = ""; }; + 128007CA5E777E8B423777F8 = {isa = PBXGroup; children = ( + 333F7FC9E4E695D243B51D53, + EFBCC9AA9132896CF439C9BD, + 8BB98CFCE02C8F888DEAD934, + B0A8A78F56D39E5C52AB1C76, + 6D357C7BC335FFE2B3877318, + 6BC6B2DDDAEB6F4F64D1A010, + 1E71D5778D41DB63E6350D93, + 1B0890891B764226EB568489, + B4351AB8FE980A7A843DD7EB, + 1EFC1E01B0C1ECC1EA973E50, + 5055ACAE49BC97DD34466C48, + 8C1FC7FA6E1B36498E7EB987, + 01C4A7ED89A1564ED222862E, ); name = "Juce Modules"; sourceTree = ""; }; + 2F6322433CCE78DD6DD4EADF = {isa = PBXGroup; children = ( + 80C983055BC197AE9FEF51D0, + 9BBC3E0155BC3F36F21F7EBB, + 7DDF23FA0DDE4FCFB121CA68, + C62300B9478B60BCBE254256, + D4A815675983D742D87E37A5, + FBDBBE33AEF062A1457DAA42, + BA895F5D0FC2F40DA0566469, + 3ED09149246BD2CC3D114FB1, + 7BE9659292437455B77D53F1, + 353C4A5B04236912332BDB1E, + 4DDD5CACDD472784437AB83C, + C0C66A94FBDE992AAD71C698, + C3B0CE7BC50EE3F20BB261EC, + D782993D6DAF0AF948A62517, + F07914AFCF34610BAC0D3B0B, + 757D9E8B34634C0E899922F9, + 27C1C1AD957D9955A13E3A4E, ); name = "Juce Library Code"; sourceTree = ""; }; + 0483BF4E3FB318109FA0F8A5 = {isa = PBXGroup; children = ( + CE28252C42BBA94C930CF460, + 342622E99E9622EDF376B782, ); name = Resources; sourceTree = ""; }; + 6F68D1090F539F5A1A041FAA = {isa = PBXGroup; children = ( + 50151F5E1EA38C0768AD9AC8, + 3948321FE783006946DC8F1F, + C3C776709CFEB52B87A9E260, + 6CDDF198D9632DA763449E05, + 9D95CB2E713755CD61842774, + 740AFAC150EAC7E6A6D6E6FA, + 51626197E6CE921E472AFCA1, + 525E733E59BB89937210A34E, + 844820FE23753AF260B13D1D, ); name = Frameworks; sourceTree = ""; }; + 5D365257108A916858E3947F = {isa = PBXGroup; children = ( + 5802E3490BEAFD892C837E2A, ); name = Products; sourceTree = ""; }; + 5EB8D0E327356FA2D5323013 = {isa = PBXGroup; children = ( + 853E25E8F0EA391EE8D4A3B8, + 128007CA5E777E8B423777F8, + 2F6322433CCE78DD6DD4EADF, + 0483BF4E3FB318109FA0F8A5, + 6F68D1090F539F5A1A041FAA, + 5D365257108A916858E3947F, ); name = Source; sourceTree = ""; }; + 8DA6C115CCBD9A0699A71FA5 = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_DEBUG=1", + "DEBUG=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; }; name = Debug; }; + D10126CC8CE60E150025A42D = {isa = XCBuildConfiguration; buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_LINK_OBJC_RUNTIME = NO; + COMBINE_HIDPI_IMAGES = YES; + CONFIGURATION_BUILD_DIR = "$(PROJECT_DIR)/build/$(CONFIGURATION)"; + DEAD_CODE_STRIPPING = YES; + GCC_GENERATE_DEBUGGING_SYMBOLS = NO; + GCC_OPTIMIZATION_LEVEL = s; + GCC_PREPROCESSOR_DEFINITIONS = ( + "_NDEBUG=1", + "NDEBUG=1", + "JUCER_XCODE_IPHONE_5BC26AE3=1", + "JUCE_APP_VERSION=1.0.0", + "JUCE_APP_VERSION_HEX=0x10000", ); + GCC_SYMBOLS_PRIVATE_EXTERN = YES; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + HEADER_SEARCH_PATHS = ("../../JuceLibraryCode", "../../../../modules", "$(inherited)"); + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; }; name = Release; }; + 3132BF724B47EEFACACC0FF2 = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_NAME = "OpenGLAppExample"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Debug; }; + 71C0F419A1E2F06DF9155ABE = {isa = XCBuildConfiguration; buildSettings = { + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_INLINES_ARE_PRIVATE_EXTERN = YES; + GCC_MODEL_TUNING = G5; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_CHECK_SWITCH_STATEMENTS = YES; + GCC_WARN_MISSING_PARENTHESES = YES; + GCC_WARN_NON_VIRTUAL_DESTRUCTOR = YES; + GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PRODUCT_NAME = "OpenGLAppExample"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + WARNING_CFLAGS = -Wreorder; + ZERO_LINK = NO; }; name = Release; }; + 46FEBDB3E8E7421830E627F2 = {isa = XCConfigurationList; buildConfigurations = ( + 3132BF724B47EEFACACC0FF2, + 71C0F419A1E2F06DF9155ABE, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 72A1EE1BA283790385236C82 = {isa = XCConfigurationList; buildConfigurations = ( + 8DA6C115CCBD9A0699A71FA5, + D10126CC8CE60E150025A42D, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; + 5B757FF4605862B33A33271E = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + E7FB9D1F12020A9A921577AB, ); runOnlyForDeploymentPostprocessing = 0; }; + F1D06D2C0F24121D958BCCF0 = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + D0E5FADCDC70B5989BE7D147, + D31034CCE86D686B109ADE0F, + 5211AFD1D8E7FD62EDA703A9, + 6A909F1AEE38A7340456EBBD, + 1E0BAEC7950969D956E912F1, + 4FC452CEC761FB0515E83B9C, + 6790BEB5EE46E3DF6332536F, + D4371AC9EBB0CA9B69C81C98, + 5EB3C30963D75E7D43D6AD9A, + 238A6E94B07DB483C42E0D18, + 8A7C3FEF41B5A5913396E7B1, + 148EA191DA9D3066A3C4EEEC, + BEE9A8C926B45616AC4426AB, + 0A0FD3B4C732A965C2642CC8, + 978A2567AA64957C61694427, + 913CB51D1475C7F94739502A, + D54B744850AA08DC348CE8D8, + 938FA7CCB4CD0A844BE6509F, ); runOnlyForDeploymentPostprocessing = 0; }; + 54D4A7BDAE854DE0AE2D5E3E = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + F2E327A47E10F43D6991A306, + 7FF434A451FC85BF1B79BC7F, + 8F43218E0AFA8FBC12C39860, + 3BFCAE441B663BD739FBCCB4, + 5AE83D61A34B2B62A0610EBB, + 3FCDCEFCE3D77BE1FC8A1E17, + FF3345FBD014D97240E35C15, + 6243594E2BFD65B88D9F9918, + 31F4958CEE4B57FD45310A05, ); runOnlyForDeploymentPostprocessing = 0; }; + 7B81D348370C15990CC3A1BD = {isa = PBXNativeTarget; buildConfigurationList = 72A1EE1BA283790385236C82; buildPhases = ( + 5B757FF4605862B33A33271E, + F1D06D2C0F24121D958BCCF0, + 54D4A7BDAE854DE0AE2D5E3E, ); buildRules = ( ); dependencies = ( ); name = OpenGLAppExample; productName = OpenGLAppExample; productReference = 5802E3490BEAFD892C837E2A; productInstallPath = "$(HOME)/Applications"; productType = "com.apple.product-type.application"; }; + 92078120DD024E75D724B8AB = {isa = PBXProject; buildConfigurationList = 46FEBDB3E8E7421830E627F2; attributes = { LastUpgradeCheck = 0440; }; compatibilityVersion = "Xcode 3.2"; hasScannedForEncodings = 0; mainGroup = 5EB8D0E327356FA2D5323013; projectDirPath = ""; projectRoot = ""; targets = ( 7B81D348370C15990CC3A1BD ); }; + }; + rootObject = 92078120DD024E75D724B8AB; +} diff --git a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample/Images.xcassets/AppIcon.appiconset/Contents.json b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..765c4780a5 --- /dev/null +++ b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,58 @@ +{ + "images": [ + { + "idiom": "iphone", + "size": "29x29", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "40x40", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "2x" + }, + { + "idiom": "iphone", + "size": "60x60", + "scale": "3x" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "29x29", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "40x40", + "scale": "2x" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "1x" + }, + { + "idiom": "ipad", + "size": "76x76", + "scale": "2x" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000000..c805626cce --- /dev/null +++ b/examples/OpenGLAppExample/Builds/iOS/OpenGLAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,50 @@ +{ + "images": [ + { + "orientation": "portrait", + "idiom": "iphone", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x" + }, + { + "orientation": "portrait", + "idiom": "iphone", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x" + }, + { + "orientation": "portrait", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "1x" + }, + { + "orientation": "landscape", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "1x" + }, + { + "orientation": "portrait", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x" + }, + { + "orientation": "landscape", + "idiom": "ipad", + "extent": "full-screen", + "minimum-system-version": "7.0", + "scale": "2x" + } + ], + "info": { + "version": 1, + "author": "xcode" + } +} \ No newline at end of file diff --git a/examples/OpenGLAppExample/JuceLibraryCode/AppConfig.h b/examples/OpenGLAppExample/JuceLibraryCode/AppConfig.h new file mode 100644 index 0000000000..ce480db502 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/AppConfig.h @@ -0,0 +1,196 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + There's a section below where you can add your own custom code safely, and the + Introjucer will preserve the contents of that block, but the best way to change + any of these definitions is by using the Introjucer's project settings. + + Any commented-out settings will assume their default values. + +*/ + +#ifndef __JUCE_APPCONFIG_C3KRLE__ +#define __JUCE_APPCONFIG_C3KRLE__ + +//============================================================================== +// [BEGIN_USER_CODE_SECTION] + +// (You can add your own code in this section, and the Introjucer will not overwrite it) + +// [END_USER_CODE_SECTION] + +//============================================================================== +#define JUCE_MODULE_AVAILABLE_juce_audio_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_devices 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_formats 1 +#define JUCE_MODULE_AVAILABLE_juce_audio_processors 1 +#define JUCE_MODULE_AVAILABLE_juce_core 1 +#define JUCE_MODULE_AVAILABLE_juce_cryptography 1 +#define JUCE_MODULE_AVAILABLE_juce_data_structures 1 +#define JUCE_MODULE_AVAILABLE_juce_events 1 +#define JUCE_MODULE_AVAILABLE_juce_graphics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_basics 1 +#define JUCE_MODULE_AVAILABLE_juce_gui_extra 1 +#define JUCE_MODULE_AVAILABLE_juce_opengl 1 +#define JUCE_MODULE_AVAILABLE_juce_video 1 + +//============================================================================== +// juce_audio_devices flags: + +#ifndef JUCE_ASIO + //#define JUCE_ASIO +#endif + +#ifndef JUCE_WASAPI + //#define JUCE_WASAPI +#endif + +#ifndef JUCE_DIRECTSOUND + //#define JUCE_DIRECTSOUND +#endif + +#ifndef JUCE_ALSA + //#define JUCE_ALSA +#endif + +#ifndef JUCE_JACK + //#define JUCE_JACK +#endif + +#ifndef JUCE_USE_ANDROID_OPENSLES + //#define JUCE_USE_ANDROID_OPENSLES +#endif + +#ifndef JUCE_USE_CDREADER + //#define JUCE_USE_CDREADER +#endif + +#ifndef JUCE_USE_CDBURNER + //#define JUCE_USE_CDBURNER +#endif + +//============================================================================== +// juce_audio_formats flags: + +#ifndef JUCE_USE_FLAC + //#define JUCE_USE_FLAC +#endif + +#ifndef JUCE_USE_OGGVORBIS + //#define JUCE_USE_OGGVORBIS +#endif + +#ifndef JUCE_USE_MP3AUDIOFORMAT + //#define JUCE_USE_MP3AUDIOFORMAT +#endif + +#ifndef JUCE_USE_LAME_AUDIO_FORMAT + //#define JUCE_USE_LAME_AUDIO_FORMAT +#endif + +#ifndef JUCE_USE_WINDOWS_MEDIA_FORMAT + //#define JUCE_USE_WINDOWS_MEDIA_FORMAT +#endif + +//============================================================================== +// juce_audio_processors flags: + +#ifndef JUCE_PLUGINHOST_VST + //#define JUCE_PLUGINHOST_VST +#endif + +#ifndef JUCE_PLUGINHOST_VST3 + //#define JUCE_PLUGINHOST_VST3 +#endif + +#ifndef JUCE_PLUGINHOST_AU + //#define JUCE_PLUGINHOST_AU +#endif + +//============================================================================== +// juce_core flags: + +#ifndef JUCE_FORCE_DEBUG + //#define JUCE_FORCE_DEBUG +#endif + +#ifndef JUCE_LOG_ASSERTIONS + //#define JUCE_LOG_ASSERTIONS +#endif + +#ifndef JUCE_CHECK_MEMORY_LEAKS + //#define JUCE_CHECK_MEMORY_LEAKS +#endif + +#ifndef JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES + //#define JUCE_DONT_AUTOLINK_TO_WIN32_LIBRARIES +#endif + +#ifndef JUCE_INCLUDE_ZLIB_CODE + //#define JUCE_INCLUDE_ZLIB_CODE +#endif + +//============================================================================== +// juce_graphics flags: + +#ifndef JUCE_USE_COREIMAGE_LOADER + //#define JUCE_USE_COREIMAGE_LOADER +#endif + +#ifndef JUCE_USE_DIRECTWRITE + //#define JUCE_USE_DIRECTWRITE +#endif + +//============================================================================== +// juce_gui_basics flags: + +#ifndef JUCE_ENABLE_REPAINT_DEBUGGING + //#define JUCE_ENABLE_REPAINT_DEBUGGING +#endif + +#ifndef JUCE_USE_XSHM + //#define JUCE_USE_XSHM +#endif + +#ifndef JUCE_USE_XRENDER + //#define JUCE_USE_XRENDER +#endif + +#ifndef JUCE_USE_XCURSOR + //#define JUCE_USE_XCURSOR +#endif + +//============================================================================== +// juce_gui_extra flags: + +#ifndef JUCE_WEB_BROWSER + //#define JUCE_WEB_BROWSER +#endif + +#ifndef JUCE_ENABLE_LIVE_CONSTANT_EDITOR + //#define JUCE_ENABLE_LIVE_CONSTANT_EDITOR +#endif + +//============================================================================== +// juce_video flags: + +#ifndef JUCE_DIRECTSHOW + //#define JUCE_DIRECTSHOW +#endif + +#ifndef JUCE_MEDIAFOUNDATION + //#define JUCE_MEDIAFOUNDATION +#endif + +#ifndef JUCE_QUICKTIME + //#define JUCE_QUICKTIME +#endif + +#ifndef JUCE_USE_CAMERA + //#define JUCE_USE_CAMERA +#endif + + +#endif // __JUCE_APPCONFIG_C3KRLE__ diff --git a/examples/OpenGLAppExample/JuceLibraryCode/BinaryData.cpp b/examples/OpenGLAppExample/JuceLibraryCode/BinaryData.cpp new file mode 100644 index 0000000000..d110f2d07c --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/BinaryData.cpp @@ -0,0 +1,1191 @@ +/* ==================================== JUCER_BINARY_RESOURCE ==================================== + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +namespace BinaryData +{ + +//================== teapot.obj ================== +static const unsigned char temp_binary_data_0[] = +{ 35,32,77,97,120,50,79,98,106,32,86,101,114,115,105,111,110,32,52,46,48,32,77,97,114,32,49,48,116,104,44,32,50,48,48,49,10,35,10,35,32,111,98,106,101,99,116,32,84,101,97,112,111,116,48,49,32,116,111,32,99,111,109,101,32,46,46,46,10,35,10,118,32,32,53, +46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,53,46,56,51,50,48,51,49,32,52,46,52,57,52,49,52,49,32,48,46,48,48,48,48,48,48,10,118,32,32,53,46,57,52,53,51,49,51,32,52,46,54,49,55,49,56,56,32,48,46,48,48,48,48, +48,48,10,118,32,32,54,46,49,55,53,55,56,49,32,52,46,52,57,52,49,52,49,32,48,46,48,48,48,48,48,48,10,118,32,32,54,46,52,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,53,46,51,56,55,49,56,56,32,52,46,49,50,53,48,48,48, +32,50,46,55,52,55,53,48,48,10,118,32,32,53,46,50,57,55,49,48,48,32,52,46,52,57,52,49,52,49,32,50,46,55,48,57,49,55,48,10,118,32,32,53,46,52,48,49,54,48,50,32,52,46,54,49,55,49,56,56,32,50,46,55,53,51,54,51,51,10,118,32,32,53,46,54,49,52,50,48,57,32,52, +46,52,57,52,49,52,49,32,50,46,56,52,52,48,57,50,10,118,32,32,53,46,56,52,56,52,51,55,32,52,46,49,50,53,48,48,48,32,50,46,57,52,51,55,53,48,10,118,32,32,51,46,56,57,57,54,56,56,32,52,46,49,50,53,48,48,48,32,52,46,57,55,48,48,48,48,10,118,32,32,51,46,56, +51,48,51,53,50,32,52,46,52,57,52,49,52,49,32,52,46,57,48,48,54,54,52,10,118,32,32,51,46,57,49,48,55,56,50,32,52,46,54,49,55,49,56,56,32,52,46,57,56,49,48,57,52,10,118,32,32,52,46,48,55,52,52,49,52,32,52,46,52,57,52,49,52,49,32,53,46,49,52,52,55,50,55, +10,118,32,32,52,46,50,53,52,54,56,55,32,52,46,49,50,53,48,48,48,32,53,46,51,50,53,48,48,48,10,118,32,32,49,46,54,55,55,49,56,56,32,52,46,49,50,53,48,48,48,32,54,46,52,53,55,53,48,48,10,118,32,32,49,46,54,51,56,56,53,56,32,52,46,52,57,52,49,52,49,32,54, +46,51,54,55,52,49,50,10,118,32,32,49,46,54,56,51,51,50,48,32,52,46,54,49,55,49,56,56,32,54,46,52,55,49,57,49,52,10,118,32,32,49,46,55,55,51,55,56,48,32,52,46,52,57,52,49,52,49,32,54,46,54,56,52,53,50,50,10,118,32,32,49,46,56,55,51,52,51,56,32,52,46,49, +50,53,48,48,48,32,54,46,57,49,56,55,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,49,50,53,48,48,48,32,55,46,48,48,48,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,52,57,52,49,52,49,32,54,46,57,48,50,51,52,52,10,118,32,32,45,49,46, +48,55,48,51,49,50,32,52,46,54,49,55,49,56,56,32,55,46,48,49,53,54,50,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,52,57,52,49,52,49,32,55,46,50,52,54,48,57,52,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,49,50,53,48,48,48,32,55,46,53,48,48, +48,48,48,10,118,32,32,45,52,46,48,48,55,54,53,54,32,52,46,49,50,53,48,48,48,32,54,46,52,53,55,53,48,48,10,118,32,32,45,51,46,56,53,57,53,55,50,32,52,46,52,57,52,49,52,49,32,54,46,51,54,55,52,49,50,10,118,32,32,45,51,46,56,52,55,54,55,54,32,52,46,54,49, +55,49,56,56,32,54,46,52,55,49,57,49,52,10,118,32,32,45,51,46,57,49,55,51,55,49,32,52,46,52,57,52,49,52,49,32,54,46,54,56,52,53,50,50,10,118,32,32,45,52,46,48,49,52,48,54,50,32,52,46,49,50,53,48,48,48,32,54,46,57,49,56,55,53,48,10,118,32,32,45,54,46,50, +48,57,48,54,51,32,52,46,49,50,53,48,48,48,32,52,46,57,55,48,48,48,48,10,118,32,32,45,54,46,48,52,50,49,54,56,32,52,46,52,57,52,49,52,49,32,52,46,57,48,48,54,54,52,10,118,32,32,45,54,46,48,55,50,53,48,48,32,52,46,54,49,55,49,56,56,32,52,46,57,56,49,48, +57,52,10,118,32,32,45,54,46,50,49,55,54,55,53,32,52,46,52,57,52,49,52,49,32,53,46,49,52,52,55,50,55,10,118,32,32,45,54,46,51,57,53,51,49,50,32,52,46,49,50,53,48,48,48,32,53,46,51,50,53,48,48,48,10,118,32,32,45,55,46,53,57,49,48,57,51,32,52,46,49,50,53, +48,48,48,32,50,46,55,52,55,53,48,48,10,118,32,32,45,55,46,52,54,52,52,50,49,32,52,46,52,57,52,49,52,49,32,50,46,55,48,57,49,55,48,10,118,32,32,45,55,46,53,53,48,49,51,55,32,52,46,54,49,55,49,56,56,32,50,46,55,53,51,54,51,51,10,118,32,32,45,55,46,55,53, +53,56,50,50,32,52,46,52,57,52,49,52,49,32,50,46,56,52,52,48,57,50,10,118,32,32,45,55,46,57,56,57,48,54,50,32,52,46,49,50,53,48,48,48,32,50,46,57,52,51,55,53,48,10,118,32,32,45,56,46,48,55,48,51,49,51,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,32,32,45,55,46,57,55,50,54,53,54,32,52,46,52,57,52,49,52,49,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,48,56,53,57,51,56,32,52,46,54,49,55,49,56,56,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,51,49,54,52,48,54,32,52,46,52,57,52,49, +52,49,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,53,55,48,51,49,51,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,55,46,53,50,55,56,49,50,32,52,46,49,50,53,48,48,48,32,45,50,46,55,52,55,53,48,48,10,118,32,32,45,55,46,52,51, +55,55,50,52,32,52,46,52,57,52,49,52,49,32,45,50,46,55,48,57,49,55,48,10,118,32,32,45,55,46,53,52,50,50,50,55,32,52,46,54,49,55,49,56,56,32,45,50,46,55,53,51,54,51,51,10,118,32,32,45,55,46,55,53,52,56,51,52,32,52,46,52,57,52,49,52,49,32,45,50,46,56,52, +52,48,57,50,10,118,32,32,45,55,46,57,56,57,48,54,50,32,52,46,49,50,53,48,48,48,32,45,50,46,57,52,51,55,53,48,10,118,32,32,45,54,46,48,52,48,51,49,50,32,52,46,49,50,53,48,48,48,32,45,52,46,57,55,48,48,48,48,10,118,32,32,45,53,46,57,55,48,57,55,55,32,52, +46,52,57,52,49,52,49,32,45,52,46,57,48,48,54,54,52,10,118,32,32,45,54,46,48,53,49,52,48,54,32,52,46,54,49,55,49,56,56,32,45,52,46,57,56,49,48,57,52,10,118,32,32,45,54,46,50,49,53,48,51,57,32,52,46,52,57,52,49,52,49,32,45,53,46,49,52,52,55,50,55,10,118, +32,32,45,54,46,51,57,53,51,49,50,32,52,46,49,50,53,48,48,48,32,45,53,46,51,50,53,48,48,48,10,118,32,32,45,51,46,56,49,55,56,49,50,32,52,46,49,50,53,48,48,48,32,45,54,46,52,53,55,53,48,48,10,118,32,32,45,51,46,55,55,57,52,56,50,32,52,46,52,57,52,49,52, +49,32,45,54,46,51,54,55,52,49,50,10,118,32,32,45,51,46,56,50,51,57,52,53,32,52,46,54,49,55,49,56,56,32,45,54,46,52,55,49,57,49,52,10,118,32,32,45,51,46,57,49,52,52,48,52,32,52,46,52,57,52,49,52,49,32,45,54,46,54,56,52,53,50,50,10,118,32,32,45,52,46,48, +49,52,48,54,50,32,52,46,49,50,53,48,48,48,32,45,54,46,57,49,56,55,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,49,50,53,48,48,48,32,45,55,46,48,48,48,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,52,57,52,49,52,49,32,45,54,46,57, +48,50,51,52,52,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,54,49,55,49,56,56,32,45,55,46,48,49,53,54,50,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,52,57,52,49,52,49,32,45,55,46,50,52,54,48,57,52,10,118,32,32,45,49,46,48,55,48,51,49,50,32, +52,46,49,50,53,48,48,48,32,45,55,46,53,48,48,48,48,48,10,118,32,32,49,46,54,55,55,49,56,56,32,52,46,49,50,53,48,48,48,32,45,54,46,52,53,55,53,48,48,10,118,32,32,49,46,54,51,56,56,53,56,32,52,46,52,57,52,49,52,49,32,45,54,46,51,54,55,52,49,50,10,118,32, +32,49,46,54,56,51,51,50,48,32,52,46,54,49,55,49,56,56,32,45,54,46,52,55,49,57,49,52,10,118,32,32,49,46,55,55,51,55,56,48,32,52,46,52,57,52,49,52,49,32,45,54,46,54,56,52,53,50,50,10,118,32,32,49,46,56,55,51,52,51,56,32,52,46,49,50,53,48,48,48,32,45,54, +46,57,49,56,55,53,48,10,118,32,32,51,46,56,57,57,54,56,56,32,52,46,49,50,53,48,48,48,32,45,52,46,57,55,48,48,48,48,10,118,32,32,51,46,56,51,48,51,53,50,32,52,46,52,57,52,49,52,49,32,45,52,46,57,48,48,54,54,52,10,118,32,32,51,46,57,49,48,55,56,50,32,52, +46,54,49,55,49,56,56,32,45,52,46,57,56,49,48,57,52,10,118,32,32,52,46,48,55,52,52,49,52,32,52,46,52,57,52,49,52,49,32,45,53,46,49,52,52,55,50,55,10,118,32,32,52,46,50,53,52,54,56,55,32,52,46,49,50,53,48,48,48,32,45,53,46,51,50,53,48,48,48,10,118,32,32, +53,46,51,56,55,49,56,56,32,52,46,49,50,53,48,48,48,32,45,50,46,55,52,55,53,48,48,10,118,32,32,53,46,50,57,55,49,48,48,32,52,46,52,57,52,49,52,49,32,45,50,46,55,48,57,49,55,48,10,118,32,32,53,46,52,48,49,54,48,50,32,52,46,54,49,55,49,56,56,32,45,50,46, +55,53,51,54,51,51,10,118,32,32,53,46,54,49,52,50,48,57,32,52,46,52,57,52,49,52,49,32,45,50,46,56,52,52,48,57,50,10,118,32,32,53,46,56,52,56,52,51,55,32,52,46,49,50,53,48,48,48,32,45,50,46,57,52,51,55,53,48,10,118,32,32,55,46,51,52,55,54,53,54,32,50,46, +49,54,50,49,48,57,32,48,46,48,48,48,48,48,48,10,118,32,32,56,46,49,52,56,52,51,56,32,48,46,50,51,52,51,55,53,32,48,46,48,48,48,48,48,48,10,118,32,32,56,46,55,49,52,56,52,52,32,45,49,46,54,50,51,48,52,55,32,48,46,48,48,48,48,48,48,10,118,32,32,56,46,57, +50,57,54,56,56,32,45,51,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,54,46,54,57,53,50,54,52,32,50,46,49,54,50,49,48,57,32,51,46,51,48,52,48,53,51,10,118,32,32,55,46,52,51,51,57,56,53,32,48,46,50,51,52,51,55,53,32,51,46,54,49,56,51,54, +48,10,118,32,32,55,46,57,53,54,52,57,52,32,45,49,46,54,50,51,48,52,55,32,51,46,56,52,48,54,55,52,10,118,32,32,56,46,49,53,52,54,56,56,32,45,51,46,51,55,53,48,48,48,32,51,46,57,50,53,48,48,48,10,118,32,32,52,46,57,48,54,52,52,54,32,50,46,49,54,50,49,48, +57,32,53,46,57,55,54,55,53,56,10,118,32,32,53,46,52,55,53,48,48,48,32,48,46,50,51,52,51,55,53,32,54,46,53,52,53,51,49,50,10,118,32,32,53,46,56,55,55,49,52,57,32,45,49,46,54,50,51,48,52,55,32,54,46,57,52,55,52,54,49,10,118,32,32,54,46,48,50,57,54,56,56, +32,45,51,46,51,55,53,48,48,48,32,55,46,49,48,48,48,48,48,10,118,32,32,50,46,50,51,51,55,52,48,32,50,46,49,54,50,49,48,57,32,55,46,55,54,53,53,55,54,10,118,32,32,50,46,53,52,56,48,52,55,32,48,46,50,51,52,51,55,53,32,56,46,53,48,52,50,57,55,10,118,32,32, +50,46,55,55,48,51,54,50,32,45,49,46,54,50,51,48,52,55,32,57,46,48,50,54,56,48,55,10,118,32,32,50,46,56,53,52,54,56,56,32,45,51,46,51,55,53,48,48,48,32,57,46,50,50,53,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,50,46,49,54,50,49,48,57,32,56,46, +52,49,55,57,54,57,10,118,32,32,45,49,46,48,55,48,51,49,50,32,48,46,50,51,52,51,55,53,32,57,46,50,49,56,55,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,49,46,54,50,51,48,52,55,32,57,46,55,56,53,49,53,54,10,118,32,32,45,49,46,48,55,48,51,49,50,32, +45,51,46,51,55,53,48,48,48,32,49,48,46,48,48,48,48,48,48,10,118,32,32,45,52,46,51,55,52,51,54,53,32,50,46,49,54,50,49,48,57,32,55,46,55,54,53,53,55,54,10,118,32,32,45,52,46,54,56,56,54,55,50,32,48,46,50,51,52,51,55,53,32,56,46,53,48,52,50,57,55,10,118, +32,32,45,52,46,57,49,48,57,56,54,32,45,49,46,54,50,51,48,52,55,32,57,46,48,50,54,56,48,55,10,118,32,32,45,52,46,57,57,53,51,49,51,32,45,51,46,51,55,53,48,48,48,32,57,46,50,50,53,48,48,48,10,118,32,32,45,55,46,48,52,55,48,55,49,32,50,46,49,54,50,49,48, +57,32,53,46,57,55,54,55,53,56,10,118,32,32,45,55,46,54,49,53,54,50,52,32,48,46,50,51,52,51,55,53,32,54,46,53,52,53,51,49,50,10,118,32,32,45,56,46,48,49,55,55,55,51,32,45,49,46,54,50,51,48,52,55,32,54,46,57,52,55,52,54,49,10,118,32,32,45,56,46,49,55,48, +51,49,50,32,45,51,46,51,55,53,48,48,48,32,55,46,49,48,48,48,48,48,10,118,32,32,45,56,46,56,51,53,56,56,57,32,50,46,49,54,50,49,48,57,32,51,46,51,48,52,48,53,51,10,118,32,32,45,57,46,53,55,52,54,49,48,32,48,46,50,51,52,51,55,53,32,51,46,54,49,56,51,54, +48,10,118,32,32,45,49,48,46,48,57,55,49,49,57,32,45,49,46,54,50,51,48,52,55,32,51,46,56,52,48,54,55,52,10,118,32,32,45,49,48,46,50,57,53,51,49,51,32,45,51,46,51,55,53,48,48,48,32,51,46,57,50,53,48,48,48,10,118,32,32,45,57,46,52,56,56,50,56,49,32,50,46, +49,54,50,49,48,57,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,48,46,50,56,57,48,54,51,32,48,46,50,51,52,51,55,53,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,48,46,56,53,53,52,54,57,32,45,49,46,54,50,51,48,52,55,32,48,46,48,48,48,48,48,48,10,118,32, +32,45,49,49,46,48,55,48,51,49,51,32,45,51,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,56,51,53,56,56,57,32,50,46,49,54,50,49,48,57,32,45,51,46,51,48,52,48,53,51,10,118,32,32,45,57,46,53,55,52,54,49,48,32,48,46,50,51,52,51,55, +53,32,45,51,46,54,49,56,51,54,48,10,118,32,32,45,49,48,46,48,57,55,49,49,57,32,45,49,46,54,50,51,48,52,55,32,45,51,46,56,52,48,54,55,52,10,118,32,32,45,49,48,46,50,57,53,51,49,51,32,45,51,46,51,55,53,48,48,48,32,45,51,46,57,50,53,48,48,48,10,118,32,32, +45,55,46,48,52,55,48,55,49,32,50,46,49,54,50,49,48,57,32,45,53,46,57,55,54,55,53,56,10,118,32,32,45,55,46,54,49,53,54,50,52,32,48,46,50,51,52,51,55,53,32,45,54,46,53,52,53,51,49,50,10,118,32,32,45,56,46,48,49,55,55,55,51,32,45,49,46,54,50,51,48,52,55, +32,45,54,46,57,52,55,52,54,49,10,118,32,32,45,56,46,49,55,48,51,49,50,32,45,51,46,51,55,53,48,48,48,32,45,55,46,49,48,48,48,48,48,10,118,32,32,45,52,46,51,55,52,51,54,53,32,50,46,49,54,50,49,48,57,32,45,55,46,55,54,53,53,55,54,10,118,32,32,45,52,46,54, +56,56,54,55,50,32,48,46,50,51,52,51,55,53,32,45,56,46,53,48,52,50,57,55,10,118,32,32,45,52,46,57,49,48,57,56,54,32,45,49,46,54,50,51,48,52,55,32,45,57,46,48,50,54,56,48,55,10,118,32,32,45,52,46,57,57,53,51,49,51,32,45,51,46,51,55,53,48,48,48,32,45,57, +46,50,50,53,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,50,46,49,54,50,49,48,57,32,45,56,46,52,49,55,57,54,57,10,118,32,32,45,49,46,48,55,48,51,49,50,32,48,46,50,51,52,51,55,53,32,45,57,46,50,49,56,55,53,48,10,118,32,32,45,49,46,48,55,48,51,49, +50,32,45,49,46,54,50,51,48,52,55,32,45,57,46,55,56,53,49,53,54,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,51,46,51,55,53,48,48,48,32,45,49,48,46,48,48,48,48,48,48,10,118,32,32,50,46,50,51,51,55,52,48,32,50,46,49,54,50,49,48,57,32,45,55,46,55,54,53, +53,55,54,10,118,32,32,50,46,53,52,56,48,52,55,32,48,46,50,51,52,51,55,53,32,45,56,46,53,48,52,50,57,55,10,118,32,32,50,46,55,55,48,51,54,50,32,45,49,46,54,50,51,48,52,55,32,45,57,46,48,50,54,56,48,55,10,118,32,32,50,46,56,53,52,54,56,56,32,45,51,46,51, +55,53,48,48,48,32,45,57,46,50,50,53,48,48,48,10,118,32,32,52,46,57,48,54,52,52,54,32,50,46,49,54,50,49,48,57,32,45,53,46,57,55,54,55,53,56,10,118,32,32,53,46,52,55,53,48,48,48,32,48,46,50,51,52,51,55,53,32,45,54,46,53,52,53,51,49,50,10,118,32,32,53,46, +56,55,55,49,52,57,32,45,49,46,54,50,51,48,52,55,32,45,54,46,57,52,55,52,54,49,10,118,32,32,54,46,48,50,57,54,56,56,32,45,51,46,51,55,53,48,48,48,32,45,55,46,49,48,48,48,48,48,10,118,32,32,54,46,54,57,53,50,54,52,32,50,46,49,54,50,49,48,57,32,45,51,46, +51,48,52,48,53,51,10,118,32,32,55,46,52,51,51,57,56,53,32,48,46,50,51,52,51,55,53,32,45,51,46,54,49,56,51,54,48,10,118,32,32,55,46,57,53,54,52,57,52,32,45,49,46,54,50,51,48,52,55,32,45,51,46,56,52,48,54,55,52,10,118,32,32,56,46,49,53,52,54,56,56,32,45, +51,46,51,55,53,48,48,48,32,45,51,46,57,50,53,48,48,48,10,118,32,32,56,46,53,51,57,48,54,51,32,45,52,46,56,53,55,52,50,50,32,48,46,48,48,48,48,48,48,10,118,32,32,55,46,54,55,57,54,56,56,32,45,53,46,57,53,51,49,50,53,32,48,46,48,48,48,48,48,48,10,118,32, +32,54,46,56,50,48,51,49,51,32,45,54,46,54,57,55,50,54,54,32,48,46,48,48,48,48,48,48,10,118,32,32,54,46,52,50,57,54,56,56,32,45,55,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,55,46,55,57,52,51,51,54,32,45,52,46,56,53,55,52,50,50,32,51, +46,55,55,49,54,56,48,10,118,32,32,55,46,48,48,49,53,54,50,32,45,53,46,57,53,51,49,50,53,32,51,46,52,51,52,51,55,53,10,118,32,32,54,46,50,48,56,55,56,57,32,45,54,46,54,57,55,50,54,54,32,51,46,48,57,55,48,55,48,10,118,32,32,53,46,56,52,56,52,51,55,32,45, +55,46,49,50,53,48,48,48,32,50,46,57,52,51,55,53,48,10,118,32,32,53,46,55,53,50,51,52,51,32,45,52,46,56,53,55,52,50,50,32,54,46,56,50,50,54,53,54,10,118,32,32,53,46,49,52,50,49,56,55,32,45,53,46,57,53,51,49,50,53,32,54,46,50,49,50,53,48,48,10,118,32,32, +52,46,53,51,50,48,51,49,32,45,54,46,54,57,55,50,54,54,32,53,46,54,48,50,51,52,52,10,118,32,32,52,46,50,53,52,54,56,55,32,45,55,46,49,50,53,48,48,48,32,53,46,51,50,53,48,48,48,10,118,32,32,50,46,55,48,49,51,54,55,32,45,52,46,56,53,55,52,50,50,32,56,46, +56,54,52,54,52,57,10,118,32,32,50,46,51,54,52,48,54,51,32,45,53,46,57,53,51,49,50,53,32,56,46,48,55,49,56,55,53,10,118,32,32,50,46,48,50,54,55,53,56,32,45,54,46,54,57,55,50,54,54,32,55,46,50,55,57,49,48,49,10,118,32,32,49,46,56,55,51,52,51,56,32,45,55, +46,49,50,53,48,48,48,32,54,46,57,49,56,55,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,52,46,56,53,55,52,50,50,32,57,46,54,48,57,51,55,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,53,46,57,53,51,49,50,53,32,56,46,55,53,48,48,48,48,10,118,32, +32,45,49,46,48,55,48,51,49,50,32,45,54,46,54,57,55,50,54,54,32,55,46,56,57,48,54,50,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,49,50,53,48,48,48,32,55,46,53,48,48,48,48,48,10,118,32,32,45,52,46,56,52,49,57,57,50,32,45,52,46,56,53,55,52,50, +50,32,56,46,56,54,52,54,52,57,10,118,32,32,45,52,46,53,48,52,54,56,55,32,45,53,46,57,53,51,49,50,53,32,56,46,48,55,49,56,55,53,10,118,32,32,45,52,46,49,54,55,51,56,51,32,45,54,46,54,57,55,50,54,54,32,55,46,50,55,57,49,48,49,10,118,32,32,45,52,46,48,49, +52,48,54,50,32,45,55,46,49,50,53,48,48,48,32,54,46,57,49,56,55,53,48,10,118,32,32,45,55,46,56,57,50,57,54,56,32,45,52,46,56,53,55,52,50,50,32,54,46,56,50,50,54,53,54,10,118,32,32,45,55,46,50,56,50,56,49,50,32,45,53,46,57,53,51,49,50,53,32,54,46,50,49, +50,53,48,48,10,118,32,32,45,54,46,54,55,50,54,53,54,32,45,54,46,54,57,55,50,54,54,32,53,46,54,48,50,51,52,52,10,118,32,32,45,54,46,51,57,53,51,49,50,32,45,55,46,49,50,53,48,48,48,32,53,46,51,50,53,48,48,48,10,118,32,32,45,57,46,57,51,52,57,54,49,32,45, +52,46,56,53,55,52,50,50,32,51,46,55,55,49,54,56,48,10,118,32,32,45,57,46,49,52,50,49,56,55,32,45,53,46,57,53,51,49,50,53,32,51,46,52,51,52,51,55,53,10,118,32,32,45,56,46,51,52,57,52,49,52,32,45,54,46,54,57,55,50,54,54,32,51,46,48,57,55,48,55,48,10,118, +32,32,45,55,46,57,56,57,48,54,50,32,45,55,46,49,50,53,48,48,48,32,50,46,57,52,51,55,53,48,10,118,32,32,45,49,48,46,54,55,57,54,56,56,32,45,52,46,56,53,55,52,50,50,32,48,46,48,48,48,48,48,48,10,118,32,32,45,57,46,56,50,48,51,49,51,32,45,53,46,57,53,51, +49,50,53,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,57,54,48,57,51,56,32,45,54,46,54,57,55,50,54,54,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,53,55,48,51,49,51,32,45,55,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,57,46, +57,51,52,57,54,49,32,45,52,46,56,53,55,52,50,50,32,45,51,46,55,55,49,54,56,48,10,118,32,32,45,57,46,49,52,50,49,56,55,32,45,53,46,57,53,51,49,50,53,32,45,51,46,52,51,52,51,55,53,10,118,32,32,45,56,46,51,52,57,52,49,52,32,45,54,46,54,57,55,50,54,54,32, +45,51,46,48,57,55,48,55,48,10,118,32,32,45,55,46,57,56,57,48,54,50,32,45,55,46,49,50,53,48,48,48,32,45,50,46,57,52,51,55,53,48,10,118,32,32,45,55,46,56,57,50,57,54,56,32,45,52,46,56,53,55,52,50,50,32,45,54,46,56,50,50,54,53,54,10,118,32,32,45,55,46,50, +56,50,56,49,50,32,45,53,46,57,53,51,49,50,53,32,45,54,46,50,49,50,53,48,48,10,118,32,32,45,54,46,54,55,50,54,53,54,32,45,54,46,54,57,55,50,54,54,32,45,53,46,54,48,50,51,52,52,10,118,32,32,45,54,46,51,57,53,51,49,50,32,45,55,46,49,50,53,48,48,48,32,45, +53,46,51,50,53,48,48,48,10,118,32,32,45,52,46,56,52,49,57,57,50,32,45,52,46,56,53,55,52,50,50,32,45,56,46,56,54,52,54,52,57,10,118,32,32,45,52,46,53,48,52,54,56,55,32,45,53,46,57,53,51,49,50,53,32,45,56,46,48,55,49,56,55,53,10,118,32,32,45,52,46,49,54, +55,51,56,51,32,45,54,46,54,57,55,50,54,54,32,45,55,46,50,55,57,49,48,49,10,118,32,32,45,52,46,48,49,52,48,54,50,32,45,55,46,49,50,53,48,48,48,32,45,54,46,57,49,56,55,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,52,46,56,53,55,52,50,50,32,45,57, +46,54,48,57,51,55,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,53,46,57,53,51,49,50,53,32,45,56,46,55,53,48,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,54,46,54,57,55,50,54,54,32,45,55,46,56,57,48,54,50,53,10,118,32,32,45,49,46,48,55,48, +51,49,50,32,45,55,46,49,50,53,48,48,48,32,45,55,46,53,48,48,48,48,48,10,118,32,32,50,46,55,48,49,51,54,55,32,45,52,46,56,53,55,52,50,50,32,45,56,46,56,54,52,54,52,57,10,118,32,32,50,46,51,54,52,48,54,51,32,45,53,46,57,53,51,49,50,53,32,45,56,46,48,55, +49,56,55,53,10,118,32,32,50,46,48,50,54,55,53,56,32,45,54,46,54,57,55,50,54,54,32,45,55,46,50,55,57,49,48,49,10,118,32,32,49,46,56,55,51,52,51,56,32,45,55,46,49,50,53,48,48,48,32,45,54,46,57,49,56,55,53,48,10,118,32,32,53,46,55,53,50,51,52,51,32,45,52, +46,56,53,55,52,50,50,32,45,54,46,56,50,50,54,53,54,10,118,32,32,53,46,49,52,50,49,56,55,32,45,53,46,57,53,51,49,50,53,32,45,54,46,50,49,50,53,48,48,10,118,32,32,52,46,53,51,50,48,51,49,32,45,54,46,54,57,55,50,54,54,32,45,53,46,54,48,50,51,52,52,10,118, +32,32,52,46,50,53,52,54,56,55,32,45,55,46,49,50,53,48,48,48,32,45,53,46,51,50,53,48,48,48,10,118,32,32,55,46,55,57,52,51,51,54,32,45,52,46,56,53,55,52,50,50,32,45,51,46,55,55,49,54,56,48,10,118,32,32,55,46,48,48,49,53,54,50,32,45,53,46,57,53,51,49,50, +53,32,45,51,46,52,51,52,51,55,53,10,118,32,32,54,46,50,48,56,55,56,57,32,45,54,46,54,57,55,50,54,54,32,45,51,46,48,57,55,48,55,48,10,118,32,32,53,46,56,52,56,52,51,55,32,45,55,46,49,50,53,48,48,48,32,45,50,46,57,52,51,55,53,48,10,118,32,32,54,46,50,53, +57,55,54,54,32,45,55,46,52,48,48,51,57,49,32,48,46,48,48,48,48,48,48,10,118,32,32,53,46,51,53,49,53,54,51,32,45,55,46,54,52,48,54,50,53,32,48,46,48,48,48,48,48,48,10,118,32,32,51,46,49,48,55,52,50,50,32,45,55,46,56,49,48,53,52,55,32,48,46,48,48,48,48, +48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,53,46,54,57,49,54,56,53,32,45,55,46,52,48,48,51,57,49,32,50,46,56,55,55,48,53,54,10,118,32,32,52,46,56,53,51,56,54,56,32,45,55,46,54,52, +48,54,50,53,32,50,46,53,50,48,53,56,54,10,118,32,32,50,46,55,56,51,54,52,56,32,45,55,46,56,49,48,53,52,55,32,49,46,54,51,57,55,54,49,10,118,32,32,52,46,49,51,52,48,52,51,32,45,55,46,52,48,48,51,57,49,32,53,46,50,48,52,51,53,53,10,118,32,32,51,46,52,56, +57,50,49,57,32,45,55,46,54,52,48,54,50,53,32,52,46,53,53,57,53,51,49,10,118,32,32,49,46,56,57,53,56,55,57,32,45,55,46,56,49,48,53,52,55,32,50,46,57,54,54,49,57,49,10,118,32,32,49,46,56,48,54,55,52,51,32,45,55,46,52,48,48,51,57,49,32,54,46,55,54,49,57, +57,55,10,118,32,32,49,46,52,53,48,50,55,52,32,45,55,46,54,52,48,54,50,53,32,53,46,57,50,52,49,56,48,10,118,32,32,48,46,53,54,57,52,52,56,32,45,55,46,56,49,48,53,52,55,32,51,46,56,53,51,57,54,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,52,48, +48,51,57,49,32,55,46,51,51,48,48,55,56,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,54,52,48,54,50,53,32,54,46,52,50,49,56,55,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,56,49,48,53,52,55,32,52,46,49,55,55,55,51,52,10,118,32,32,45,51, +46,57,52,55,51,54,56,32,45,55,46,52,48,48,51,57,49,32,54,46,55,54,49,57,57,55,10,118,32,32,45,51,46,53,57,48,56,57,56,32,45,55,46,54,52,48,54,50,53,32,53,46,57,50,52,49,56,48,10,118,32,32,45,50,46,55,49,48,48,55,51,32,45,55,46,56,49,48,53,52,55,32,51, +46,56,53,51,57,54,48,10,118,32,32,45,54,46,50,55,52,54,54,56,32,45,55,46,52,48,48,51,57,49,32,53,46,50,48,52,51,53,53,10,118,32,32,45,53,46,54,50,57,56,52,52,32,45,55,46,54,52,48,54,50,53,32,52,46,53,53,57,53,51,49,10,118,32,32,45,52,46,48,51,54,53,48, +52,32,45,55,46,56,49,48,53,52,55,32,50,46,57,54,54,49,57,49,10,118,32,32,45,55,46,56,51,50,51,48,57,32,45,55,46,52,48,48,51,57,49,32,50,46,56,55,55,48,53,54,10,118,32,32,45,54,46,57,57,52,52,57,50,32,45,55,46,54,52,48,54,50,53,32,50,46,53,50,48,53,56, +54,10,118,32,32,45,52,46,57,50,52,50,55,50,32,45,55,46,56,49,48,53,52,55,32,49,46,54,51,57,55,54,49,10,118,32,32,45,56,46,52,48,48,51,57,49,32,45,55,46,52,48,48,51,57,49,32,48,46,48,48,48,48,48,48,10,118,32,32,45,55,46,52,57,50,49,56,56,32,45,55,46,54, +52,48,54,50,53,32,48,46,48,48,48,48,48,48,10,118,32,32,45,53,46,50,52,56,48,52,55,32,45,55,46,56,49,48,53,52,55,32,48,46,48,48,48,48,48,48,10,118,32,32,45,55,46,56,51,50,51,48,57,32,45,55,46,52,48,48,51,57,49,32,45,50,46,56,55,55,48,53,54,10,118,32,32, +45,54,46,57,57,52,52,57,50,32,45,55,46,54,52,48,54,50,53,32,45,50,46,53,50,48,53,56,54,10,118,32,32,45,52,46,57,50,52,50,55,50,32,45,55,46,56,49,48,53,52,55,32,45,49,46,54,51,57,55,54,49,10,118,32,32,45,54,46,50,55,52,54,54,56,32,45,55,46,52,48,48,51, +57,49,32,45,53,46,50,48,52,51,53,53,10,118,32,32,45,53,46,54,50,57,56,52,52,32,45,55,46,54,52,48,54,50,53,32,45,52,46,53,53,57,53,51,49,10,118,32,32,45,52,46,48,51,54,53,48,52,32,45,55,46,56,49,48,53,52,55,32,45,50,46,57,54,54,49,57,49,10,118,32,32,45, +51,46,57,52,55,51,54,56,32,45,55,46,52,48,48,51,57,49,32,45,54,46,55,54,49,57,57,55,10,118,32,32,45,51,46,53,57,48,56,57,56,32,45,55,46,54,52,48,54,50,53,32,45,53,46,57,50,52,49,56,48,10,118,32,32,45,50,46,55,49,48,48,55,51,32,45,55,46,56,49,48,53,52, +55,32,45,51,46,56,53,51,57,54,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,52,48,48,51,57,49,32,45,55,46,51,51,48,48,55,56,10,118,32,32,45,49,46,48,55,48,51,49,50,32,45,55,46,54,52,48,54,50,53,32,45,54,46,52,50,49,56,55,53,10,118,32,32,45,49, +46,48,55,48,51,49,50,32,45,55,46,56,49,48,53,52,55,32,45,52,46,49,55,55,55,51,52,10,118,32,32,49,46,56,48,54,55,52,51,32,45,55,46,52,48,48,51,57,49,32,45,54,46,55,54,49,57,57,55,10,118,32,32,49,46,52,53,48,50,55,52,32,45,55,46,54,52,48,54,50,53,32,45, +53,46,57,50,52,49,56,48,10,118,32,32,48,46,53,54,57,52,52,56,32,45,55,46,56,49,48,53,52,55,32,45,51,46,56,53,51,57,54,48,10,118,32,32,52,46,49,51,52,48,52,51,32,45,55,46,52,48,48,51,57,49,32,45,53,46,50,48,52,51,53,53,10,118,32,32,51,46,52,56,57,50,49, +57,32,45,55,46,54,52,48,54,50,53,32,45,52,46,53,53,57,53,51,49,10,118,32,32,49,46,56,57,53,56,55,57,32,45,55,46,56,49,48,53,52,55,32,45,50,46,57,54,54,49,57,49,10,118,32,32,53,46,54,57,49,54,56,53,32,45,55,46,52,48,48,51,57,49,32,45,50,46,56,55,55,48, +53,54,10,118,32,32,52,46,56,53,51,56,54,56,32,45,55,46,54,52,48,54,50,53,32,45,50,46,53,50,48,53,56,54,10,118,32,32,50,46,55,56,51,54,52,56,32,45,55,46,56,49,48,53,52,55,32,45,49,46,54,51,57,55,54,49,10,118,32,32,45,57,46,48,55,48,51,49,51,32,50,46,50, +53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,49,46,52,48,54,50,53,48,32,50,46,50,51,50,52,50,50,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,51,46,49,51,50,56,49,51,32,50,46,49,48,57,51,55,53,32,48,46,48,48,48,48,48,48,10,118,32,32,45, +49,52,46,50,48,51,49,50,53,32,49,46,55,55,53,51,57,49,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,52,46,53,55,48,51,49,51,32,49,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,57,57,50,49,56,56,32,50,46,52,50,53,55,56,49,32,48, +46,56,52,51,55,53,48,10,118,32,32,45,49,49,46,52,55,53,56,51,48,32,50,46,52,48,53,52,53,55,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,51,46,50,57,56,56,50,56,32,50,46,50,54,51,49,56,52,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,52,50,49,54, +51,49,32,49,46,56,55,55,48,49,52,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,56,48,52,54,56,56,32,49,46,49,50,53,48,48,48,32,48,46,56,52,51,55,53,48,10,118,32,32,45,56,46,56,50,48,51,49,51,32,50,46,56,49,50,53,48,48,32,49,46,49,50,53,48,48,48, +10,118,32,32,45,49,49,46,54,50,56,57,48,54,32,50,46,55,56,54,49,51,52,32,49,46,49,50,53,48,48,48,10,118,32,32,45,49,51,46,54,54,52,48,54,51,32,50,46,54,48,49,53,54,51,32,49,46,49,50,53,48,48,48,10,118,32,32,45,49,52,46,57,48,50,51,52,52,32,50,46,49,48, +48,53,56,54,32,49,46,49,50,53,48,48,48,10,118,32,32,45,49,53,46,51,50,48,51,49,51,32,49,46,49,50,53,48,48,48,32,49,46,49,50,53,48,48,48,10,118,32,32,45,56,46,54,52,56,52,51,56,32,51,46,49,57,57,50,49,57,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,49, +46,55,56,49,57,56,50,32,51,46,49,54,54,56,48,57,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,48,50,57,50,57,55,32,50,46,57,51,57,57,52,49,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,53,46,51,56,51,48,53,55,32,50,46,51,50,52,49,53,56,32,48,46, +56,52,51,55,53,48,10,118,32,32,45,49,53,46,56,51,53,57,51,56,32,49,46,49,50,53,48,48,48,32,48,46,56,52,51,55,53,48,10,118,32,32,45,56,46,53,55,48,51,49,51,32,51,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,49,46,56,53,49,53,54,51, +32,51,46,51,51,57,56,52,52,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,52,46,49,57,53,51,49,51,32,51,46,48,57,51,55,53,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,53,46,54,48,49,53,54,51,32,50,46,52,50,53,55,56,49,32,48,46,48,48,48,48,48,48,10, +118,32,32,45,49,54,46,48,55,48,51,49,51,32,49,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,56,46,54,52,56,52,51,56,32,51,46,49,57,57,50,49,57,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,49,46,55,56,49,57,56,50,32,51,46,49,54,54, +56,48,57,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,48,50,57,50,57,55,32,50,46,57,51,57,57,52,49,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,53,46,51,56,51,48,53,55,32,50,46,51,50,52,49,53,56,32,45,48,46,56,52,51,55,53,48,10,118,32,32, +45,49,53,46,56,51,53,57,51,56,32,49,46,49,50,53,48,48,48,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,56,46,56,50,48,51,49,51,32,50,46,56,49,50,53,48,48,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49,49,46,54,50,56,57,48,54,32,50,46,55,56,54,49,51, +52,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49,51,46,54,54,52,48,54,51,32,50,46,54,48,49,53,54,51,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49,52,46,57,48,50,51,52,52,32,50,46,49,48,48,53,56,54,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49, +53,46,51,50,48,51,49,51,32,49,46,49,50,53,48,48,48,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,56,46,57,57,50,49,56,56,32,50,46,52,50,53,55,56,49,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,49,46,52,55,53,56,51,48,32,50,46,52,48,53,52,53,55,32, +45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,51,46,50,57,56,56,50,56,32,50,46,50,54,51,49,56,52,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,52,50,49,54,51,49,32,49,46,56,55,55,48,49,52,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46, +56,48,52,54,56,56,32,49,46,49,50,53,48,48,48,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,51,55,53,48,48,48,32,48,46,49,48,53,52,54,57,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,51,46,55,53,55,56,49,51,32,45,49,46,49,50,53,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,32,32,45,49,50,46,54,55,49,56,55,53,32,45,50,46,51,53,53,52,54,57,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,49,46,48,55,48,51,49,51,32,45,51,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,52,46,53,56, +56,48,49,51,32,48,46,48,48,55,48,53,48,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,51,46,57,48,57,49,56,48,32,45,49,46,50,55,53,49,52,54,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,50,46,55,50,52,57,55,54,32,45,50,46,53,52,48,56,54,51,32,48,46,56, +52,51,55,53,48,10,118,32,32,45,49,48,46,57,57,50,49,56,56,32,45,51,46,54,48,57,51,55,53,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,53,46,48,53,54,54,52,49,32,45,48,46,50,48,57,52,55,51,32,49,46,49,50,53,48,48,48,10,118,32,32,45,49,52,46,50,52,50,49, +56,56,32,45,49,46,54,48,53,52,54,57,32,49,46,49,50,53,48,48,48,10,118,32,32,45,49,50,46,56,52,49,55,57,55,32,45,50,46,57,52,56,55,51,48,32,49,46,49,50,53,48,48,48,10,118,32,32,45,49,48,46,56,50,48,51,49,51,32,45,52,46,49,50,53,48,48,48,32,49,46,49,50, +53,48,48,48,10,118,32,32,45,49,53,46,53,50,53,50,54,57,32,45,48,46,52,50,53,57,57,53,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,53,55,53,49,57,53,32,45,49,46,57,51,53,55,57,49,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,50,46,57,53,56,54,49, +56,32,45,51,46,51,53,54,53,57,56,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,48,46,54,52,56,52,51,56,32,45,52,46,54,52,48,54,50,53,32,48,46,56,52,51,55,53,48,10,118,32,32,45,49,53,46,55,51,56,50,56,49,32,45,48,46,53,50,52,52,49,52,32,48,46,48,48,48, +48,48,48,10,118,32,32,45,49,52,46,55,50,54,53,54,51,32,45,50,46,48,56,53,57,51,56,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,51,46,48,49,49,55,49,57,32,45,51,46,53,52,49,57,57,50,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,48,46,53,55,48,51,49,51, +32,45,52,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,49,53,46,53,50,53,50,54,57,32,45,48,46,52,50,53,57,57,53,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,52,46,53,55,53,49,57,53,32,45,49,46,57,51,53,55,57,49,32,45,48,46,56,52, +51,55,53,48,10,118,32,32,45,49,50,46,57,53,56,54,49,56,32,45,51,46,51,53,54,53,57,56,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,48,46,54,52,56,52,51,56,32,45,52,46,54,52,48,54,50,53,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,53,46,48,53,54, +54,52,49,32,45,48,46,50,48,57,52,55,51,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49,52,46,50,52,50,49,56,56,32,45,49,46,54,48,53,52,54,57,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49,50,46,56,52,49,55,57,55,32,45,50,46,57,52,56,55,51,48,32,45, +49,46,49,50,53,48,48,48,10,118,32,32,45,49,48,46,56,50,48,51,49,51,32,45,52,46,49,50,53,48,48,48,32,45,49,46,49,50,53,48,48,48,10,118,32,32,45,49,52,46,53,56,56,48,49,51,32,48,46,48,48,55,48,53,48,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,51,46, +57,48,57,49,56,48,32,45,49,46,50,55,53,49,52,54,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,50,46,55,50,52,57,55,54,32,45,50,46,53,52,48,56,54,51,32,45,48,46,56,52,51,55,53,48,10,118,32,32,45,49,48,46,57,57,50,49,56,56,32,45,51,46,54,48,57,51,55, +53,32,45,48,46,56,52,51,55,53,48,10,118,32,32,55,46,52,50,57,54,56,56,32,45,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,57,46,56,50,56,49,50,53,32,45,48,46,49,57,57,50,49,57,32,48,46,48,48,48,48,48,48,10,118,32,32,49,48,46,56,54,55, +49,56,56,32,49,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,49,49,46,52,51,55,53,48,48,32,50,46,55,51,48,52,54,57,32,48,46,48,48,48,48,48,48,10,118,32,32,49,50,46,52,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,32,32,55,46,52,50,57,54,56,56,32,45,49,46,51,57,52,53,51,49,32,49,46,56,53,54,50,53,48,10,118,32,32,49,48,46,48,49,49,50,51,48,32,45,48,46,54,55,55,49,50,52,32,49,46,54,55,54,48,55,52,10,118,32,32,49,49,46,49,48,49,53,54,51,32,48,46,56,52,54,54, +56,48,32,49,46,50,55,57,54,56,56,10,118,32,32,49,49,46,55,50,51,49,52,53,32,50,46,54,50,57,55,54,49,32,48,46,56,56,51,51,48,49,10,118,32,32,49,50,46,56,57,56,52,51,56,32,52,46,49,50,53,48,48,48,32,48,46,55,48,51,49,50,53,10,118,32,32,55,46,52,50,57,54, +56,56,32,45,50,46,56,49,50,53,48,48,32,50,46,52,55,53,48,48,48,10,118,32,32,49,48,46,52,49,52,48,54,51,32,45,49,46,55,50,56,53,49,54,32,50,46,50,51,52,55,54,54,10,118,32,32,49,49,46,54,49,55,49,56,56,32,48,46,50,51,52,51,55,53,32,49,46,55,48,54,50,53, +48,10,118,32,32,49,50,46,51,53,49,53,54,51,32,50,46,52,48,56,50,48,51,32,49,46,49,55,55,55,51,52,10,118,32,32,49,51,46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,57,51,55,53,48,48,10,118,32,32,55,46,52,50,57,54,56,56,32,45,52,46,50,51,48,52, +54,57,32,49,46,56,53,54,50,53,48,10,118,32,32,49,48,46,56,49,54,56,57,53,32,45,50,46,55,55,57,57,48,55,32,49,46,54,55,54,48,55,52,10,118,32,32,49,50,46,49,51,50,56,49,51,32,45,48,46,51,55,55,57,51,48,32,49,46,50,55,57,54,56,56,10,118,32,32,49,50,46,57, +55,57,57,56,48,32,50,46,49,56,54,54,52,54,32,48,46,56,56,51,51,48,49,10,118,32,32,49,52,46,57,54,48,57,51,56,32,52,46,49,50,53,48,48,48,32,48,46,55,48,51,49,50,53,10,118,32,32,55,46,52,50,57,54,56,56,32,45,52,46,56,55,53,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,32,32,49,49,46,48,48,48,48,48,48,32,45,51,46,50,53,55,56,49,51,32,48,46,48,48,48,48,48,48,10,118,32,32,49,50,46,51,54,55,49,56,56,32,45,48,46,54,53,54,50,53,48,32,48,46,48,48,48,48,48,48,10,118,32,32,49,51,46,50,54,53,54,50,53,32,50,46,48, +56,53,57,51,56,32,48,46,48,48,48,48,48,48,10,118,32,32,49,53,46,52,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,55,46,52,50,57,54,56,56,32,45,52,46,50,51,48,52,54,57,32,45,49,46,56,53,54,50,53,48,10,118,32,32,49,48, +46,56,49,54,56,57,53,32,45,50,46,55,55,57,57,48,55,32,45,49,46,54,55,54,48,55,52,10,118,32,32,49,50,46,49,51,50,56,49,51,32,45,48,46,51,55,55,57,51,48,32,45,49,46,50,55,57,54,56,56,10,118,32,32,49,50,46,57,55,57,57,56,48,32,50,46,49,56,54,54,52,54,32, +45,48,46,56,56,51,51,48,49,10,118,32,32,49,52,46,57,54,48,57,51,56,32,52,46,49,50,53,48,48,48,32,45,48,46,55,48,51,49,50,53,10,118,32,32,55,46,52,50,57,54,56,56,32,45,50,46,56,49,50,53,48,48,32,45,50,46,52,55,53,48,48,48,10,118,32,32,49,48,46,52,49,52, +48,54,51,32,45,49,46,55,50,56,53,49,54,32,45,50,46,50,51,52,55,54,54,10,118,32,32,49,49,46,54,49,55,49,56,56,32,48,46,50,51,52,51,55,53,32,45,49,46,55,48,54,50,53,48,10,118,32,32,49,50,46,51,53,49,53,54,51,32,50,46,52,48,56,50,48,51,32,45,49,46,49,55, +55,55,51,52,10,118,32,32,49,51,46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,45,48,46,57,51,55,53,48,48,10,118,32,32,55,46,52,50,57,54,56,56,32,45,49,46,51,57,52,53,51,49,32,45,49,46,56,53,54,50,53,48,10,118,32,32,49,48,46,48,49,49,50,51,48,32,45, +48,46,54,55,55,49,50,52,32,45,49,46,54,55,54,48,55,52,10,118,32,32,49,49,46,49,48,49,53,54,51,32,48,46,56,52,54,54,56,48,32,45,49,46,50,55,57,54,56,56,10,118,32,32,49,49,46,55,50,51,49,52,53,32,50,46,54,50,57,55,54,49,32,45,48,46,56,56,51,51,48,49,10, +118,32,32,49,50,46,56,57,56,52,51,56,32,52,46,49,50,53,48,48,48,32,45,48,46,55,48,51,49,50,53,10,118,32,32,49,50,46,55,56,57,48,54,51,32,52,46,51,51,53,57,51,56,32,48,46,48,48,48,48,48,48,10,118,32,32,49,51,46,48,53,52,54,56,56,32,52,46,52,48,54,50,53, +48,32,48,46,48,48,48,48,48,48,10,118,32,32,49,51,46,49,51,50,56,49,51,32,52,46,51,51,53,57,51,56,32,48,46,48,48,48,48,48,48,10,118,32,32,49,50,46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,49,51,46,50,57,49,48, +55,55,32,52,46,51,52,54,50,51,55,32,48,46,54,53,57,49,56,48,10,118,32,32,49,51,46,53,50,53,56,55,57,32,52,46,52,50,50,55,50,57,32,48,46,53,54,50,53,48,48,10,118,32,32,49,51,46,53,51,50,56,57,56,32,52,46,51,53,48,51,53,55,32,48,46,52,54,53,56,50,48,10, +118,32,32,49,51,46,50,52,50,49,56,56,32,52,46,49,50,53,48,48,48,32,48,46,52,50,49,56,55,53,10,118,32,32,49,52,46,51,57,53,53,48,56,32,52,46,51,54,56,56,57,54,32,48,46,56,55,56,57,48,54,10,118,32,32,49,52,46,53,54,50,53,48,48,32,52,46,52,53,56,57,56,52, +32,48,46,55,53,48,48,48,48,10,118,32,32,49,52,46,52,49,51,48,56,54,32,52,46,51,56,50,48,56,48,32,48,46,54,50,49,48,57,52,10,118,32,32,49,51,46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,53,54,50,53,48,48,10,118,32,32,49,53,46,52,57,57,57,51, +57,32,52,46,51,57,49,53,53,54,32,48,46,54,53,57,49,56,48,10,118,32,32,49,53,46,53,57,57,49,50,49,32,52,46,52,57,53,50,51,57,32,48,46,53,54,50,53,48,48,10,118,32,32,49,53,46,50,57,51,50,55,52,32,52,46,52,49,51,56,48,52,32,48,46,52,54,53,56,50,48,10,118, +32,32,49,52,46,54,49,55,49,56,56,32,52,46,49,50,53,48,48,48,32,48,46,52,50,49,56,55,53,10,118,32,32,49,54,46,48,48,49,57,53,51,32,52,46,52,48,49,56,53,53,32,48,46,48,48,48,48,48,48,10,118,32,32,49,54,46,48,55,48,51,49,51,32,52,46,53,49,49,55,49,57,32, +48,46,48,48,48,48,48,48,10,118,32,32,49,53,46,54,57,51,51,53,57,32,52,46,52,50,56,50,50,52,32,48,46,48,48,48,48,48,48,10,118,32,32,49,52,46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,49,53,46,52,57,57,57,51,57, +32,52,46,51,57,49,53,53,54,32,45,48,46,54,53,57,49,56,48,10,118,32,32,49,53,46,53,57,57,49,50,49,32,52,46,52,57,53,50,51,57,32,45,48,46,53,54,50,53,48,48,10,118,32,32,49,53,46,50,57,51,50,55,52,32,52,46,52,49,51,56,48,52,32,45,48,46,52,54,53,56,50,48, +10,118,32,32,49,52,46,54,49,55,49,56,56,32,52,46,49,50,53,48,48,48,32,45,48,46,52,50,49,56,55,53,10,118,32,32,49,52,46,51,57,53,53,48,56,32,52,46,51,54,56,56,57,54,32,45,48,46,56,55,56,57,48,54,10,118,32,32,49,52,46,53,54,50,53,48,48,32,52,46,52,53,56, +57,56,52,32,45,48,46,55,53,48,48,48,48,10,118,32,32,49,52,46,52,49,51,48,56,54,32,52,46,51,56,50,48,56,48,32,45,48,46,54,50,49,48,57,52,10,118,32,32,49,51,46,57,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,45,48,46,53,54,50,53,48,48,10,118,32,32,49,51, +46,50,57,49,48,55,55,32,52,46,51,52,54,50,51,55,32,45,48,46,54,53,57,49,56,48,10,118,32,32,49,51,46,53,50,53,56,55,57,32,52,46,52,50,50,55,50,57,32,45,48,46,53,54,50,53,48,48,10,118,32,32,49,51,46,53,51,50,56,57,56,32,52,46,51,53,48,51,53,55,32,45,48, +46,52,54,53,56,50,48,10,118,32,32,49,51,46,50,52,50,49,56,56,32,52,46,49,50,53,48,48,48,32,45,48,46,52,50,49,56,55,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,55,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,48,46,54,51,50,56,49,51,32, +55,46,54,50,56,57,48,54,32,48,46,48,48,48,48,48,48,10,118,32,32,48,46,53,53,52,54,56,56,32,55,46,48,51,49,50,53,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,48,46,48,56,53,57,51,55,32,54,46,50,57,50,57,54,57,32,48,46,48,48,48,48,48,48,10,118,32,32,45, +48,46,48,55,48,51,49,50,32,53,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,48,46,53,48,49,52,49,52,32,55,46,54,50,56,57,48,54,32,48,46,54,55,48,50,53,54,10,118,32,32,48,46,52,50,57,50,55,56,32,55,46,48,51,49,50,53,48,32,48,46,54,51,57, +51,57,53,10,118,32,32,45,48,46,49,54,50,48,50,57,32,54,46,50,57,50,57,54,57,32,48,46,51,56,54,57,54,48,10,118,32,32,45,48,46,49,52,55,56,49,50,32,53,46,54,50,53,48,48,48,32,48,46,51,57,50,53,48,48,10,118,32,32,48,46,49,52,48,52,56,57,32,55,46,54,50,56, +57,48,54,32,49,46,50,49,48,56,48,49,10,118,32,32,48,46,48,56,52,56,52,52,32,55,46,48,51,49,50,53,48,32,49,46,49,53,53,49,53,54,10,118,32,32,45,48,46,51,55,48,56,55,57,32,54,46,50,57,50,57,54,57,32,48,46,54,57,57,52,51,52,10,118,32,32,45,48,46,51,54,48, +51,49,50,32,53,46,54,50,53,48,48,48,32,48,46,55,49,48,48,48,48,10,118,32,32,45,48,46,52,48,48,48,53,54,32,55,46,54,50,56,57,48,54,32,49,46,53,55,49,55,50,54,10,118,32,32,45,48,46,52,51,48,57,49,56,32,55,46,48,51,49,50,53,48,32,49,46,52,57,57,53,57,48, +10,118,32,32,45,48,46,54,56,51,51,53,50,32,54,46,50,57,50,57,54,57,32,48,46,57,48,56,50,56,52,10,118,32,32,45,48,46,54,55,55,56,49,50,32,53,46,54,50,53,48,48,48,32,48,46,57,50,50,53,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,55,46,54,50,56,57,48, +54,32,49,46,55,48,51,49,50,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,55,46,48,51,49,50,53,48,32,49,46,54,50,53,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,54,46,50,57,50,57,54,57,32,48,46,57,56,52,51,55,53,10,118,32,32,45,49,46,48,55,48,51, +49,50,32,53,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,10,118,32,32,45,49,46,55,52,48,53,54,57,32,55,46,54,50,56,57,48,54,32,49,46,53,55,49,55,50,54,10,118,32,32,45,49,46,55,48,57,55,48,55,32,55,46,48,51,49,50,53,48,32,49,46,52,57,57,53,57,48,10, +118,32,32,45,49,46,52,53,55,50,55,51,32,54,46,50,57,50,57,54,57,32,48,46,57,48,56,50,56,52,10,118,32,32,45,49,46,52,54,50,56,49,50,32,53,46,54,50,53,48,48,48,32,48,46,57,50,50,53,48,48,10,118,32,32,45,50,46,50,56,49,49,49,51,32,55,46,54,50,56,57,48,54, +32,49,46,50,49,48,56,48,49,10,118,32,32,45,50,46,50,50,53,52,54,57,32,55,46,48,51,49,50,53,48,32,49,46,49,53,53,49,53,54,10,118,32,32,45,49,46,55,54,57,55,52,54,32,54,46,50,57,50,57,54,57,32,48,46,54,57,57,52,51,52,10,118,32,32,45,49,46,55,56,48,51,49, +50,32,53,46,54,50,53,48,48,48,32,48,46,55,49,48,48,48,48,10,118,32,32,45,50,46,54,52,50,48,51,56,32,55,46,54,50,56,57,48,54,32,48,46,54,55,48,50,53,54,10,118,32,32,45,50,46,53,54,57,57,48,50,32,55,46,48,51,49,50,53,48,32,48,46,54,51,57,51,57,53,10,118, +32,32,45,49,46,57,55,56,53,57,54,32,54,46,50,57,50,57,54,57,32,48,46,51,56,54,57,54,48,10,118,32,32,45,49,46,57,57,50,56,49,50,32,53,46,54,50,53,48,48,48,32,48,46,51,57,50,53,48,48,10,118,32,32,45,50,46,55,55,51,52,51,56,32,55,46,54,50,56,57,48,54,32, +48,46,48,48,48,48,48,48,10,118,32,32,45,50,46,54,57,53,51,49,51,32,55,46,48,51,49,50,53,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,50,46,48,53,52,54,56,55,32,54,46,50,57,50,57,54,57,32,48,46,48,48,48,48,48,48,10,118,32,32,45,50,46,48,55,48,51,49,50, +32,53,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,50,46,54,52,50,48,51,56,32,55,46,54,50,56,57,48,54,32,45,48,46,54,55,48,50,53,54,10,118,32,32,45,50,46,53,54,57,57,48,50,32,55,46,48,51,49,50,53,48,32,45,48,46,54,51,57,51,57,53,10, +118,32,32,45,49,46,57,55,56,53,57,54,32,54,46,50,57,50,57,54,57,32,45,48,46,51,56,54,57,54,48,10,118,32,32,45,49,46,57,57,50,56,49,50,32,53,46,54,50,53,48,48,48,32,45,48,46,51,57,50,53,48,48,10,118,32,32,45,50,46,50,56,49,49,49,51,32,55,46,54,50,56,57, +48,54,32,45,49,46,50,49,48,56,48,49,10,118,32,32,45,50,46,50,50,53,52,54,57,32,55,46,48,51,49,50,53,48,32,45,49,46,49,53,53,49,53,54,10,118,32,32,45,49,46,55,54,57,55,52,54,32,54,46,50,57,50,57,54,57,32,45,48,46,54,57,57,52,51,52,10,118,32,32,45,49,46, +55,56,48,51,49,50,32,53,46,54,50,53,48,48,48,32,45,48,46,55,49,48,48,48,48,10,118,32,32,45,49,46,55,52,48,53,54,57,32,55,46,54,50,56,57,48,54,32,45,49,46,53,55,49,55,50,54,10,118,32,32,45,49,46,55,48,57,55,48,55,32,55,46,48,51,49,50,53,48,32,45,49,46, +52,57,57,53,57,48,10,118,32,32,45,49,46,52,53,55,50,55,51,32,54,46,50,57,50,57,54,57,32,45,48,46,57,48,56,50,56,52,10,118,32,32,45,49,46,52,54,50,56,49,50,32,53,46,54,50,53,48,48,48,32,45,48,46,57,50,50,53,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50, +32,55,46,54,50,56,57,48,54,32,45,49,46,55,48,51,49,50,53,10,118,32,32,45,49,46,48,55,48,51,49,50,32,55,46,48,51,49,50,53,48,32,45,49,46,54,50,53,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,54,46,50,57,50,57,54,57,32,45,48,46,57,56,52,51,55,53, +10,118,32,32,45,49,46,48,55,48,51,49,50,32,53,46,54,50,53,48,48,48,32,45,49,46,48,48,48,48,48,48,10,118,32,32,45,48,46,52,48,48,48,53,54,32,55,46,54,50,56,57,48,54,32,45,49,46,53,55,49,55,50,54,10,118,32,32,45,48,46,52,51,48,57,49,56,32,55,46,48,51,49, +50,53,48,32,45,49,46,52,57,57,53,57,48,10,118,32,32,45,48,46,54,56,51,51,53,50,32,54,46,50,57,50,57,54,57,32,45,48,46,57,48,56,50,56,52,10,118,32,32,45,48,46,54,55,55,56,49,50,32,53,46,54,50,53,48,48,48,32,45,48,46,57,50,50,53,48,48,10,118,32,32,48,46, +49,52,48,52,56,57,32,55,46,54,50,56,57,48,54,32,45,49,46,50,49,48,56,48,49,10,118,32,32,48,46,48,56,52,56,52,52,32,55,46,48,51,49,50,53,48,32,45,49,46,49,53,53,49,53,54,10,118,32,32,45,48,46,51,55,48,56,55,57,32,54,46,50,57,50,57,54,57,32,45,48,46,54, +57,57,52,51,52,10,118,32,32,45,48,46,51,54,48,51,49,50,32,53,46,54,50,53,48,48,48,32,45,48,46,55,49,48,48,48,48,10,118,32,32,48,46,53,48,49,52,49,52,32,55,46,54,50,56,57,48,54,32,45,48,46,54,55,48,50,53,54,10,118,32,32,48,46,52,50,57,50,55,56,32,55,46, +48,51,49,50,53,48,32,45,48,46,54,51,57,51,57,53,10,118,32,32,45,48,46,49,54,50,48,50,57,32,54,46,50,57,50,57,54,57,32,45,48,46,51,56,54,57,54,48,10,118,32,32,45,48,46,49,52,55,56,49,50,32,53,46,54,50,53,48,48,48,32,45,48,46,51,57,50,53,48,48,10,118,32, +32,49,46,50,49,48,57,51,56,32,53,46,49,55,57,54,56,56,32,48,46,48,48,48,48,48,48,10,118,32,32,51,46,48,53,52,54,56,56,32,52,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,52,46,55,49,48,57,51,56,32,52,46,53,55,48,51,49,51,32,48,46,48,48, +48,48,48,48,10,118,32,32,53,46,52,50,57,54,56,56,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,49,46,48,51,52,49,52,49,32,53,46,49,55,57,54,56,56,32,48,46,56,57,53,51,57,49,10,118,32,32,50,46,55,51,53,48,48,48,32,52,46,56,55,53,48, +48,48,32,49,46,54,49,57,48,54,50,10,118,32,32,52,46,50,54,50,56,57,49,32,52,46,53,55,48,51,49,51,32,50,46,50,54,57,49,52,48,10,118,32,32,52,46,57,50,53,57,51,56,32,52,46,49,50,53,48,48,48,32,50,46,53,53,49,50,53,48,10,118,32,32,48,46,53,52,57,51,55,53, +32,53,46,49,55,57,54,56,56,32,49,46,54,49,57,54,56,56,10,118,32,32,49,46,56,53,56,52,51,56,32,52,46,56,55,53,48,48,48,32,50,46,57,50,56,55,53,48,10,118,32,32,51,46,48,51,52,51,55,53,32,52,46,53,55,48,51,49,51,32,52,46,49,48,52,54,56,55,10,118,32,32,51, +46,53,52,52,54,56,56,32,52,46,49,50,53,48,48,48,32,52,46,54,49,53,48,48,48,10,118,32,32,45,48,46,49,55,52,57,50,50,32,53,46,49,55,57,54,56,56,32,50,46,49,48,52,52,53,51,10,118,32,32,48,46,53,52,56,55,53,48,32,52,46,56,55,53,48,48,48,32,51,46,56,48,53, +51,49,51,10,118,32,32,49,46,49,57,56,56,50,56,32,52,46,53,55,48,51,49,51,32,53,46,51,51,51,50,48,51,10,118,32,32,49,46,52,56,48,57,51,56,32,52,46,49,50,53,48,48,48,32,53,46,57,57,54,50,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,53,46,49,55,57,54, +56,56,32,50,46,50,56,49,50,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,56,55,53,48,48,48,32,52,46,49,50,53,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,53,55,48,51,49,51,32,53,46,55,56,49,50,53,48,10,118,32,32,45,49,46,48,55,48, +51,49,50,32,52,46,49,50,53,48,48,48,32,54,46,53,48,48,48,48,48,10,118,32,32,45,49,46,57,54,53,55,48,51,32,53,46,49,55,57,54,56,56,32,50,46,49,48,52,52,53,51,10,118,32,32,45,50,46,54,56,57,51,55,53,32,52,46,56,55,53,48,48,48,32,51,46,56,48,53,51,49,51, +10,118,32,32,45,51,46,51,51,57,52,53,51,32,52,46,53,55,48,51,49,51,32,53,46,51,51,51,50,48,51,10,118,32,32,45,51,46,54,50,49,53,54,50,32,52,46,49,50,53,48,48,48,32,53,46,57,57,54,50,53,48,10,118,32,32,45,50,46,54,57,48,48,48,48,32,53,46,49,55,57,54,56, +56,32,49,46,54,49,57,54,56,56,10,118,32,32,45,51,46,57,57,57,48,54,50,32,52,46,56,55,53,48,48,48,32,50,46,57,50,56,55,53,48,10,118,32,32,45,53,46,49,55,52,57,57,57,32,52,46,53,55,48,51,49,51,32,52,46,49,48,52,54,56,55,10,118,32,32,45,53,46,54,56,53,51, +49,50,32,52,46,49,50,53,48,48,48,32,52,46,54,49,53,48,48,48,10,118,32,32,45,51,46,49,55,52,55,54,53,32,53,46,49,55,57,54,56,56,32,48,46,56,57,53,51,57,49,10,118,32,32,45,52,46,56,55,53,54,50,53,32,52,46,56,55,53,48,48,48,32,49,46,54,49,57,48,54,50,10, +118,32,32,45,54,46,52,48,51,53,49,54,32,52,46,53,55,48,51,49,51,32,50,46,50,54,57,49,52,48,10,118,32,32,45,55,46,48,54,54,53,54,51,32,52,46,49,50,53,48,48,48,32,50,46,53,53,49,50,53,48,10,118,32,32,45,51,46,51,53,49,53,54,50,32,53,46,49,55,57,54,56,56, +32,48,46,48,48,48,48,48,48,10,118,32,32,45,53,46,49,57,53,51,49,51,32,52,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,54,46,56,53,49,53,54,51,32,52,46,53,55,48,51,49,51,32,48,46,48,48,48,48,48,48,10,118,32,32,45,55,46,53,55,48,51,49, +51,32,52,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,32,32,45,51,46,49,55,52,55,54,53,32,53,46,49,55,57,54,56,56,32,45,48,46,56,57,53,51,57,49,10,118,32,32,45,52,46,56,55,53,54,50,53,32,52,46,56,55,53,48,48,48,32,45,49,46,54,49,57,48,54,50, +10,118,32,32,45,54,46,52,48,51,53,49,54,32,52,46,53,55,48,51,49,51,32,45,50,46,50,54,57,49,52,48,10,118,32,32,45,55,46,48,54,54,53,54,51,32,52,46,49,50,53,48,48,48,32,45,50,46,53,53,49,50,53,48,10,118,32,32,45,50,46,54,57,48,48,48,48,32,53,46,49,55,57, +54,56,56,32,45,49,46,54,49,57,54,56,56,10,118,32,32,45,51,46,57,57,57,48,54,50,32,52,46,56,55,53,48,48,48,32,45,50,46,57,50,56,55,53,48,10,118,32,32,45,53,46,49,55,52,57,57,57,32,52,46,53,55,48,51,49,51,32,45,52,46,49,48,52,54,56,55,10,118,32,32,45,53, +46,54,56,53,51,49,50,32,52,46,49,50,53,48,48,48,32,45,52,46,54,49,53,48,48,48,10,118,32,32,45,49,46,57,54,53,55,48,51,32,53,46,49,55,57,54,56,56,32,45,50,46,49,48,52,52,53,51,10,118,32,32,45,50,46,54,56,57,51,55,53,32,52,46,56,55,53,48,48,48,32,45,51, +46,56,48,53,51,49,51,10,118,32,32,45,51,46,51,51,57,52,53,51,32,52,46,53,55,48,51,49,51,32,45,53,46,51,51,51,50,48,51,10,118,32,32,45,51,46,54,50,49,53,54,50,32,52,46,49,50,53,48,48,48,32,45,53,46,57,57,54,50,53,48,10,118,32,32,45,49,46,48,55,48,51,49, +50,32,53,46,49,55,57,54,56,56,32,45,50,46,50,56,49,50,53,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,56,55,53,48,48,48,32,45,52,46,49,50,53,48,48,48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,53,55,48,51,49,51,32,45,53,46,55,56,49,50,53, +48,10,118,32,32,45,49,46,48,55,48,51,49,50,32,52,46,49,50,53,48,48,48,32,45,54,46,53,48,48,48,48,48,10,118,32,32,45,48,46,49,55,52,57,50,50,32,53,46,49,55,57,54,56,56,32,45,50,46,49,48,52,52,53,51,10,118,32,32,48,46,53,52,56,55,53,48,32,52,46,56,55,53, +48,48,48,32,45,51,46,56,48,53,51,49,51,10,118,32,32,49,46,49,57,56,56,50,56,32,52,46,53,55,48,51,49,51,32,45,53,46,51,51,51,50,48,51,10,118,32,32,49,46,52,56,48,57,51,56,32,52,46,49,50,53,48,48,48,32,45,53,46,57,57,54,50,53,48,10,118,32,32,48,46,53,52, +57,51,55,53,32,53,46,49,55,57,54,56,56,32,45,49,46,54,49,57,54,56,56,10,118,32,32,49,46,56,53,56,52,51,56,32,52,46,56,55,53,48,48,48,32,45,50,46,57,50,56,55,53,48,10,118,32,32,51,46,48,51,52,51,55,53,32,52,46,53,55,48,51,49,51,32,45,52,46,49,48,52,54, +56,55,10,118,32,32,51,46,53,52,52,54,56,56,32,52,46,49,50,53,48,48,48,32,45,52,46,54,49,53,48,48,48,10,118,32,32,49,46,48,51,52,49,52,49,32,53,46,49,55,57,54,56,56,32,45,48,46,56,57,53,51,57,49,10,118,32,32,50,46,55,51,53,48,48,48,32,52,46,56,55,53,48, +48,48,32,45,49,46,54,49,57,48,54,50,10,118,32,32,52,46,50,54,50,56,57,49,32,52,46,53,55,48,51,49,51,32,45,50,46,50,54,57,49,52,48,10,118,32,32,52,46,57,50,53,57,51,56,32,52,46,49,50,53,48,48,48,32,45,50,46,53,53,49,50,53,48,10,35,32,53,51,48,32,118,101, +114,116,105,99,101,115,10,10,118,116,32,32,50,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48, +48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,49,46,55,53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,53,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48, +48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,50,46,48,48, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46, +50,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46, +57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +49,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32, +49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,55,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48, +48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48, +48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,53,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55, +53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,50,46,48, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49, +46,53,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49, +46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,49,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48, +32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,55,53,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48, +48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,48,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53, +48,48,48,48,32,49,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,53, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46, +48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46, +57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +49,46,55,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32, +49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,49,46,50,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48, +48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,54,55,53,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48, +48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53, +48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,52, +53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48, +46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49, +46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,50,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48, +32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,49,46,53,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,50,50,53,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48, +48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,54,55,53,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48, +48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +55,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46, +52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +48,46,50,53,48,48,48,48,32,49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32, +49,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,48,48,48,48,48,48,32,49,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48, +48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,53,53,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48, +48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,56,53,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50, +53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49, +46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48, +46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48, +32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,48,46,50,53,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48, +48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,53,53,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53, +48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,56,53, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46, +53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46, +52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +49,46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32, +48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48, +48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48, +48,48,48,32,48,46,53,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,56,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,53,53,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48, +48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,51, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49, +46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,49,46,50,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48, +32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48, +48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,52,48,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48, +48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,49,48, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +48,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46, +51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,50,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +50,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,55,53,48,48,48,48,32, +48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,49,46,53,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48, +48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48, +48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,52,48,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55, +53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,49, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48, +46,50,53,48,48,48,48,32,48,46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,52,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48, +46,51,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,50,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,49,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,56,55,53,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48, +32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,48,46,56,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,53,48,48,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48, +48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,55,53,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48, +48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +53,48,48,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46, +54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +48,46,50,53,48,48,48,48,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32, +48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,49,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,56,55,53,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48, +48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53, +48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,53,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54, +50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48, +46,53,48,48,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48, +46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,48,46,51,55,53,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,49,50,53,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48, +32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,51,55,53,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48, +48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48, +48,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,52,53, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46, +48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +48,46,56,55,53,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32, +48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,48,48,48,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,54,55,53,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48, +48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,50,53,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48, +48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,57,48,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53, +48,48,48,48,48,32,48,46,52,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,54,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57, +53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48, +46,54,50,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48, +46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,48,46,55,53,48,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48, +32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,49,46,48,48,48,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,57,55,53,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48, +48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,57,50,53,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50, +53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +51,55,53,48,48,48,32,48,46,57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,50,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46, +57,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,57,55,53,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32, +49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,56,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48, +48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,50,53,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48, +48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,48, +48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48, +46,50,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48, +46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48, +32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,49,46,48,48,48,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48, +48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,53,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50, +53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +48,46,51,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32, +48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,49,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48, +48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48, +48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,50,53,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55, +53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,55, +53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48, +46,54,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48, +48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32, +32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48, +46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48, +32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118, +116,32,32,48,46,50,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,53,48,48,48,48,48, +32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48, +48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48, +10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48, +48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48, +48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,50,53, +48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46, +56,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48, +48,48,48,48,10,118,116,32,32,48,46,56,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46, +55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,55,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32, +48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46, +48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,54,50,53,48,48,48,32, +48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116, +32,32,48,46,53,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32, +48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48, +48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10, +118,116,32,32,48,46,51,55,53,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,53,48,48,48,48, +48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,51,55,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48, +48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48, +48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,49,46,48,48,48, +48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49, +50,53,48,48,48,32,48,46,50,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,49,50,53,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48,48,48,32,48,46,48,48,48, +48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,55,53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,53,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,50, +53,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,116,32,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,35,32,56,48,48,32,116,101,120,116,117,114,101,32,118,101,114,116,105,99,101,115,10,10,118,110,32,32,45,48,46,57, +54,54,55,52,50,32,45,48,46,50,53,53,55,53,50,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,57,54,54,56,50,52,32,48,46,50,53,53,52,52,51,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,48,57,50,48,53,50,32,48,46,57,57,53,55,53,52,32,48,46, +48,48,48,48,48,48,10,118,110,32,32,48,46,54,56,50,48,53,48,32,48,46,55,51,49,51,48,53,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,56,55,48,51,48,49,32,48,46,52,57,50,53,50,49,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,56,57,51,48,49,52, +32,45,48,46,50,53,54,51,52,53,32,45,48,46,51,54,57,56,56,50,10,118,110,32,32,45,48,46,56,57,51,52,51,55,32,48,46,50,53,53,57,57,54,32,45,48,46,51,54,57,49,48,50,10,118,110,32,32,45,48,46,48,56,51,56,55,55,32,48,46,57,57,53,56,52,51,32,45,48,46,48,51, +53,53,48,55,10,118,110,32,32,48,46,54,50,57,55,50,52,32,48,46,55,51,49,56,54,48,32,48,46,50,54,48,52,51,57,10,118,110,32,32,48,46,56,48,51,55,50,53,32,48,46,52,57,51,51,55,48,32,48,46,51,51,50,53,56,52,10,118,110,32,32,45,48,46,54,56,51,52,48,55,32,45, +48,46,50,53,54,55,50,56,32,45,48,46,54,56,51,52,48,55,10,118,110,32,32,45,48,46,54,56,51,53,51,49,32,48,46,50,53,54,48,54,56,32,45,48,46,54,56,51,53,51,49,10,118,110,32,32,45,48,46,48,54,52,57,50,53,32,48,46,57,57,53,55,55,54,32,45,48,46,48,54,52,57, +50,53,10,118,110,32,32,48,46,52,56,49,51,57,57,32,48,46,55,51,50,52,54,57,32,48,46,52,56,49,51,57,57,10,118,110,32,32,48,46,54,49,52,56,48,52,32,48,46,52,57,51,57,57,55,32,48,46,54,49,52,56,48,52,10,118,110,32,32,45,48,46,51,54,57,56,56,50,32,45,48,46, +50,53,54,51,52,53,32,45,48,46,56,57,51,48,49,52,10,118,110,32,32,45,48,46,51,54,57,49,48,50,32,48,46,50,53,53,57,57,54,32,45,48,46,56,57,51,52,51,55,10,118,110,32,32,45,48,46,48,51,53,53,48,55,32,48,46,57,57,53,56,52,51,32,45,48,46,48,56,51,56,55,55, +10,118,110,32,32,48,46,50,54,48,52,51,57,32,48,46,55,51,49,56,54,48,32,48,46,54,50,57,55,50,52,10,118,110,32,32,48,46,51,51,50,53,56,52,32,48,46,52,57,51,51,54,57,32,48,46,56,48,51,55,50,53,10,118,110,32,32,45,48,46,48,48,50,56,52,56,32,45,48,46,50,53, +55,56,54,51,32,45,48,46,57,54,54,49,55,55,10,118,110,32,32,45,48,46,48,48,49,57,50,51,32,48,46,50,53,52,55,51,54,32,45,48,46,57,54,55,48,48,57,10,118,110,32,32,45,48,46,48,48,48,50,54,54,32,48,46,57,57,53,55,51,52,32,45,48,46,48,57,50,50,55,48,10,118, +110,32,32,48,46,48,48,48,48,50,52,32,48,46,55,51,49,50,57,53,32,48,46,54,56,50,48,54,49,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,52,57,50,53,50,49,32,48,46,56,55,48,51,48,49,10,118,110,32,32,48,46,51,55,57,48,53,56,32,45,48,46,51,53,57,51, +48,48,32,45,48,46,56,53,50,55,55,49,10,118,110,32,32,48,46,51,55,55,49,49,48,32,48,46,49,52,57,48,56,53,32,45,48,46,57,49,52,48,57,49,10,118,110,32,32,48,46,48,50,55,53,48,50,32,48,46,57,57,50,48,56,49,32,45,48,46,49,50,50,53,53,50,10,118,110,32,32,45, +48,46,50,54,49,48,49,48,32,48,46,55,50,54,55,54,50,32,48,46,54,51,53,51,54,55,10,118,110,32,32,45,48,46,51,51,50,52,56,53,32,48,46,52,57,50,53,52,54,32,48,46,56,48,52,50,55,49,10,118,110,32,32,48,46,54,54,51,53,52,56,32,45,48,46,52,49,48,55,57,48,32, +45,48,46,54,50,53,50,54,52,10,118,110,32,32,48,46,55,49,50,54,54,52,32,48,46,48,55,51,55,50,50,32,45,48,46,54,57,55,54,50,49,10,118,110,32,32,48,46,48,57,57,55,50,54,32,48,46,57,56,55,53,48,57,32,45,48,46,49,50,49,57,56,51,10,118,110,32,32,45,48,46,52, +56,55,51,50,48,32,48,46,55,50,51,55,53,52,32,48,46,52,56,56,53,54,57,10,118,110,32,32,45,48,46,54,49,53,50,52,50,32,48,46,52,57,50,54,48,50,32,48,46,54,49,53,52,56,52,10,118,110,32,32,48,46,56,56,48,48,50,56,32,45,48,46,51,51,50,57,48,54,32,45,48,46, +51,51,56,55,48,57,10,118,110,32,32,48,46,57,49,55,50,55,54,32,48,46,49,54,55,49,49,51,32,45,48,46,51,54,49,52,57,51,10,118,110,32,32,48,46,49,49,51,53,56,52,32,48,46,57,57,50,51,54,53,32,45,48,46,48,52,56,48,55,48,10,118,110,32,32,45,48,46,54,51,52,49, +53,48,32,48,46,55,50,55,53,48,56,32,48,46,50,54,49,56,56,57,10,118,110,32,32,45,48,46,56,48,52,49,50,54,32,48,46,52,57,50,54,51,52,32,48,46,51,51,50,55,48,53,10,118,110,32,32,48,46,57,54,54,54,57,48,32,45,48,46,50,53,53,55,51,56,32,48,46,48,49,48,52, +53,52,10,118,110,32,32,48,46,57,54,55,52,52,50,32,48,46,50,53,50,57,54,50,32,48,46,48,48,56,49,48,51,10,118,110,32,32,48,46,48,57,51,52,51,54,32,48,46,57,57,53,54,50,52,32,48,46,48,48,49,50,56,49,10,118,110,32,32,45,48,46,54,56,50,49,54,55,32,48,46,55, +51,49,49,57,54,32,45,48,46,48,48,48,51,52,51,10,118,110,32,32,45,48,46,56,55,48,51,50,50,32,48,46,52,57,50,52,56,51,32,45,48,46,48,48,48,48,53,52,10,118,110,32,32,48,46,56,57,51,48,49,52,32,45,48,46,50,53,54,51,52,53,32,48,46,51,54,57,56,56,50,10,118, +110,32,32,48,46,56,57,51,52,51,55,32,48,46,50,53,53,57,57,54,32,48,46,51,54,57,49,48,50,10,118,110,32,32,48,46,48,56,51,56,55,55,32,48,46,57,57,53,56,52,51,32,48,46,48,51,53,53,48,55,10,118,110,32,32,45,48,46,54,50,57,55,50,52,32,48,46,55,51,49,56,54, +48,32,45,48,46,50,54,48,52,51,57,10,118,110,32,32,45,48,46,56,48,51,55,50,53,32,48,46,52,57,51,51,55,48,32,45,48,46,51,51,50,53,56,52,10,118,110,32,32,48,46,54,56,51,52,48,55,32,45,48,46,50,53,54,55,50,56,32,48,46,54,56,51,52,48,55,10,118,110,32,32,48, +46,54,56,51,53,51,49,32,48,46,50,53,54,48,54,56,32,48,46,54,56,51,53,51,49,10,118,110,32,32,48,46,48,54,52,57,50,53,32,48,46,57,57,53,55,55,54,32,48,46,48,54,52,57,50,53,10,118,110,32,32,45,48,46,52,56,49,51,57,57,32,48,46,55,51,50,52,54,57,32,45,48, +46,52,56,49,51,57,57,10,118,110,32,32,45,48,46,54,49,52,56,48,52,32,48,46,52,57,51,57,57,55,32,45,48,46,54,49,52,56,48,52,10,118,110,32,32,48,46,51,54,57,56,56,50,32,45,48,46,50,53,54,51,52,53,32,48,46,56,57,51,48,49,52,10,118,110,32,32,48,46,51,54,57, +49,48,50,32,48,46,50,53,53,57,57,54,32,48,46,56,57,51,52,51,55,10,118,110,32,32,48,46,48,51,53,53,48,55,32,48,46,57,57,53,56,52,51,32,48,46,48,56,51,56,55,55,10,118,110,32,32,45,48,46,50,54,48,52,51,57,32,48,46,55,51,49,56,54,48,32,45,48,46,54,50,57, +55,50,52,10,118,110,32,32,45,48,46,51,51,50,53,56,52,32,48,46,52,57,51,51,54,57,32,45,48,46,56,48,51,55,50,53,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,50,53,53,55,53,50,32,48,46,57,54,54,55,52,50,10,118,110,32,32,48,46,48,48,48,48,48,48,32, +48,46,50,53,53,52,52,51,32,48,46,57,54,54,56,50,52,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,57,57,53,55,53,52,32,48,46,48,57,50,48,53,50,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,55,51,49,51,48,53,32,45,48,46,54,56,50,48,53,48,10,118, +110,32,32,48,46,48,48,48,48,48,48,32,48,46,52,57,50,53,50,49,32,45,48,46,56,55,48,51,48,49,10,118,110,32,32,45,48,46,51,54,57,56,56,50,32,45,48,46,50,53,54,51,52,53,32,48,46,56,57,51,48,49,52,10,118,110,32,32,45,48,46,51,54,57,49,48,50,32,48,46,50,53, +53,57,57,54,32,48,46,56,57,51,52,51,55,10,118,110,32,32,45,48,46,48,51,53,53,48,55,32,48,46,57,57,53,56,52,51,32,48,46,48,56,51,56,55,55,10,118,110,32,32,48,46,50,54,48,52,51,57,32,48,46,55,51,49,56,54,48,32,45,48,46,54,50,57,55,50,52,10,118,110,32,32, +48,46,51,51,50,53,56,52,32,48,46,52,57,51,51,55,48,32,45,48,46,56,48,51,55,50,53,10,118,110,32,32,45,48,46,54,56,51,52,48,55,32,45,48,46,50,53,54,55,50,56,32,48,46,54,56,51,52,48,55,10,118,110,32,32,45,48,46,54,56,51,53,51,49,32,48,46,50,53,54,48,54, +56,32,48,46,54,56,51,53,51,49,10,118,110,32,32,45,48,46,48,54,52,57,50,53,32,48,46,57,57,53,55,55,54,32,48,46,48,54,52,57,50,53,10,118,110,32,32,48,46,52,56,49,51,57,57,32,48,46,55,51,50,52,54,57,32,45,48,46,52,56,49,51,57,57,10,118,110,32,32,48,46,54, +49,52,56,48,52,32,48,46,52,57,51,57,57,55,32,45,48,46,54,49,52,56,48,52,10,118,110,32,32,45,48,46,56,57,51,48,49,52,32,45,48,46,50,53,54,51,52,53,32,48,46,51,54,57,56,56,50,10,118,110,32,32,45,48,46,56,57,51,52,51,55,32,48,46,50,53,53,57,57,54,32,48, +46,51,54,57,49,48,50,10,118,110,32,32,45,48,46,48,56,51,56,55,55,32,48,46,57,57,53,56,52,51,32,48,46,48,51,53,53,48,55,10,118,110,32,32,48,46,54,50,57,55,50,52,32,48,46,55,51,49,56,54,48,32,45,48,46,50,54,48,52,51,57,10,118,110,32,32,48,46,56,48,51,55, +50,53,32,48,46,52,57,51,51,54,57,32,45,48,46,51,51,50,53,56,52,10,118,110,32,32,48,46,57,49,53,51,50,49,32,48,46,52,48,50,55,50,53,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,57,52,49,56,48,56,32,48,46,51,51,54,49,53,49,32,48,46,48,48,48,48, +48,48,10,118,110,32,32,48,46,57,55,56,54,57,48,32,48,46,50,48,53,51,52,50,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,57,57,55,56,48,52,32,45,48,46,48,54,54,50,52,48,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,56,52,53,52,51,56,32,48,46, +52,48,51,53,52,54,32,48,46,51,52,57,56,51,53,10,118,110,32,32,48,46,56,54,57,57,57,54,32,48,46,51,51,54,56,53,57,32,48,46,51,54,48,48,52,55,10,118,110,32,32,48,46,57,48,52,49,57,51,32,48,46,50,48,53,55,57,49,32,48,46,51,55,52,50,56,48,10,118,110,32,32, +48,46,57,50,49,56,55,57,32,45,48,46,48,54,54,51,55,48,32,48,46,51,56,49,55,53,50,10,118,110,32,32,48,46,54,52,54,56,48,50,32,48,46,52,48,52,48,57,54,32,48,46,54,52,54,56,48,50,10,118,110,32,32,48,46,54,54,53,54,53,53,32,48,46,51,51,55,51,53,49,32,48, +46,54,54,53,54,53,53,10,118,110,32,32,48,46,54,57,49,57,50,51,32,48,46,50,48,54,49,50,48,32,48,46,54,57,49,57,50,51,10,118,110,32,32,48,46,55,48,53,53,52,51,32,45,48,46,48,54,54,52,56,48,32,48,46,55,48,53,53,52,50,10,118,110,32,32,48,46,51,52,57,56,51, +53,32,48,46,52,48,51,53,52,54,32,48,46,56,52,53,52,51,56,10,118,110,32,32,48,46,51,54,48,48,52,55,32,48,46,51,51,54,56,53,57,32,48,46,56,54,57,57,57,54,10,118,110,32,32,48,46,51,55,52,50,56,48,32,48,46,50,48,53,55,57,49,32,48,46,57,48,52,49,57,51,10, +118,110,32,32,48,46,51,56,49,55,53,50,32,45,48,46,48,54,54,51,54,57,32,48,46,57,50,49,56,55,57,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,52,48,50,55,50,53,32,48,46,57,49,53,51,50,49,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,51,51,54, +49,53,49,32,48,46,57,52,49,56,48,56,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,50,48,53,51,52,50,32,48,46,57,55,56,54,57,48,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,48,54,54,50,52,48,32,48,46,57,57,55,56,48,52,10,118,110,32,32,45,48, +46,51,52,57,56,51,53,32,48,46,52,48,51,53,52,54,32,48,46,56,52,53,52,51,56,10,118,110,32,32,45,48,46,51,54,48,48,52,55,32,48,46,51,51,54,56,53,57,32,48,46,56,54,57,57,57,54,10,118,110,32,32,45,48,46,51,55,52,50,56,48,32,48,46,50,48,53,55,57,49,32,48, +46,57,48,52,49,57,51,10,118,110,32,32,45,48,46,51,56,49,55,53,50,32,45,48,46,48,54,54,51,55,48,32,48,46,57,50,49,56,55,57,10,118,110,32,32,45,48,46,54,52,54,56,48,50,32,48,46,52,48,52,48,57,54,32,48,46,54,52,54,56,48,50,10,118,110,32,32,45,48,46,54,54, +53,54,53,53,32,48,46,51,51,55,51,53,49,32,48,46,54,54,53,54,53,53,10,118,110,32,32,45,48,46,54,57,49,57,50,51,32,48,46,50,48,54,49,50,48,32,48,46,54,57,49,57,50,51,10,118,110,32,32,45,48,46,55,48,53,53,52,50,32,45,48,46,48,54,54,52,56,48,32,48,46,55, +48,53,53,52,51,10,118,110,32,32,45,48,46,56,52,53,52,51,56,32,48,46,52,48,51,53,52,54,32,48,46,51,52,57,56,51,53,10,118,110,32,32,45,48,46,56,54,57,57,57,54,32,48,46,51,51,54,56,53,57,32,48,46,51,54,48,48,52,55,10,118,110,32,32,45,48,46,57,48,52,49,57, +51,32,48,46,50,48,53,55,57,49,32,48,46,51,55,52,50,56,48,10,118,110,32,32,45,48,46,57,50,49,56,55,57,32,45,48,46,48,54,54,51,54,57,32,48,46,51,56,49,55,53,50,10,118,110,32,32,45,48,46,57,49,53,51,50,49,32,48,46,52,48,50,55,50,53,32,48,46,48,48,48,48, +48,48,10,118,110,32,32,45,48,46,57,52,49,56,48,56,32,48,46,51,51,54,49,53,49,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,57,55,56,54,57,48,32,48,46,50,48,53,51,52,50,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,57,57,55,56,48,52,32, +45,48,46,48,54,54,50,52,48,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,56,52,53,52,51,56,32,48,46,52,48,51,53,52,54,32,45,48,46,51,52,57,56,51,53,10,118,110,32,32,45,48,46,56,54,57,57,57,54,32,48,46,51,51,54,56,53,57,32,45,48,46,51,54,48,48, +52,55,10,118,110,32,32,45,48,46,57,48,52,49,57,51,32,48,46,50,48,53,55,57,49,32,45,48,46,51,55,52,50,56,48,10,118,110,32,32,45,48,46,57,50,49,56,55,57,32,45,48,46,48,54,54,51,55,48,32,45,48,46,51,56,49,55,53,50,10,118,110,32,32,45,48,46,54,52,54,56,48, +50,32,48,46,52,48,52,48,57,54,32,45,48,46,54,52,54,56,48,50,10,118,110,32,32,45,48,46,54,54,53,54,53,53,32,48,46,51,51,55,51,53,49,32,45,48,46,54,54,53,54,53,53,10,118,110,32,32,45,48,46,54,57,49,57,50,51,32,48,46,50,48,54,49,50,48,32,45,48,46,54,57, +49,57,50,51,10,118,110,32,32,45,48,46,55,48,53,53,52,51,32,45,48,46,48,54,54,52,56,48,32,45,48,46,55,48,53,53,52,50,10,118,110,32,32,45,48,46,51,52,57,56,51,53,32,48,46,52,48,51,53,52,54,32,45,48,46,56,52,53,52,51,56,10,118,110,32,32,45,48,46,51,54,48, +48,52,55,32,48,46,51,51,54,56,53,57,32,45,48,46,56,54,57,57,57,54,10,118,110,32,32,45,48,46,51,55,52,50,56,48,32,48,46,50,48,53,55,57,49,32,45,48,46,57,48,52,49,57,51,10,118,110,32,32,45,48,46,51,56,49,55,53,50,32,45,48,46,48,54,54,51,54,57,32,45,48, +46,57,50,49,56,55,57,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,52,48,50,55,50,53,32,45,48,46,57,49,53,51,50,49,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,51,51,54,49,53,49,32,45,48,46,57,52,49,56,48,56,10,118,110,32,32,45,48,46,48,48, +48,48,48,48,32,48,46,50,48,53,51,52,50,32,45,48,46,57,55,56,54,57,48,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,48,54,54,50,52,48,32,45,48,46,57,57,55,56,48,52,10,118,110,32,32,48,46,51,52,57,56,51,53,32,48,46,52,48,51,53,52,54,32,45,48, +46,56,52,53,52,51,56,10,118,110,32,32,48,46,51,54,48,48,52,55,32,48,46,51,51,54,56,53,57,32,45,48,46,56,54,57,57,57,54,10,118,110,32,32,48,46,51,55,52,50,56,48,32,48,46,50,48,53,55,57,49,32,45,48,46,57,48,52,49,57,51,10,118,110,32,32,48,46,51,56,49,55, +53,50,32,45,48,46,48,54,54,51,55,48,32,45,48,46,57,50,49,56,55,57,10,118,110,32,32,48,46,54,52,54,56,48,50,32,48,46,52,48,52,48,57,54,32,45,48,46,54,52,54,56,48,50,10,118,110,32,32,48,46,54,54,53,54,53,53,32,48,46,51,51,55,51,53,49,32,45,48,46,54,54, +53,54,53,53,10,118,110,32,32,48,46,54,57,49,57,50,51,32,48,46,50,48,54,49,50,48,32,45,48,46,54,57,49,57,50,51,10,118,110,32,32,48,46,55,48,53,53,52,50,32,45,48,46,48,54,54,52,56,48,32,45,48,46,55,48,53,53,52,51,10,118,110,32,32,48,46,56,52,53,52,51,56, +32,48,46,52,48,51,53,52,54,32,45,48,46,51,52,57,56,51,53,10,118,110,32,32,48,46,56,54,57,57,57,54,32,48,46,51,51,54,56,53,57,32,45,48,46,51,54,48,48,52,55,10,118,110,32,32,48,46,57,48,52,49,57,51,32,48,46,50,48,53,55,57,49,32,45,48,46,51,55,52,50,56, +48,10,118,110,32,32,48,46,57,50,49,56,55,57,32,45,48,46,48,54,54,51,54,57,32,45,48,46,51,56,49,55,53,50,10,118,110,32,32,48,46,57,48,48,49,56,50,32,45,48,46,52,51,53,53,49,51,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,55,50,57,54,49,49,32,45,48, +46,54,56,51,56,54,51,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,54,57,51,57,53,49,32,45,48,46,55,50,48,48,50,50,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,55,57,51,57,53,48,32,45,48,46,54,48,55,57,56,51,32,48,46,48,48,48,48,48,48,10, +118,110,32,32,48,46,56,51,49,52,51,55,32,45,48,46,52,51,54,49,56,48,32,48,46,51,52,52,49,55,57,10,118,110,32,32,48,46,54,55,51,53,49,50,32,45,48,46,54,56,52,54,54,54,32,48,46,50,55,56,53,57,52,10,118,110,32,32,48,46,54,52,48,51,57,57,32,45,48,46,55,50, +48,57,50,52,32,48,46,50,54,52,56,55,52,10,118,110,32,32,48,46,55,51,50,57,52,57,32,45,48,46,54,48,56,57,57,53,32,48,46,51,48,51,49,54,55,10,118,110,32,32,48,46,54,51,54,48,57,50,32,45,48,46,52,51,54,55,55,56,32,48,46,54,51,54,48,57,50,10,118,110,32,32, +48,46,53,49,52,57,54,53,32,45,48,46,54,56,53,50,57,48,32,48,46,53,49,52,57,54,53,10,118,110,32,32,48,46,52,56,57,54,53,49,32,45,48,46,55,50,49,52,52,54,32,48,46,52,56,57,54,53,49,10,118,110,32,32,48,46,53,54,48,53,53,53,32,45,48,46,54,48,57,53,53,52, +32,48,46,53,54,48,53,53,53,10,118,110,32,32,48,46,51,52,52,49,55,57,32,45,48,46,52,51,54,49,56,48,32,48,46,56,51,49,52,51,55,10,118,110,32,32,48,46,50,55,56,53,57,53,32,45,48,46,54,56,52,54,54,54,32,48,46,54,55,51,53,49,50,10,118,110,32,32,48,46,50,54, +52,56,55,52,32,45,48,46,55,50,48,57,50,52,32,48,46,54,52,48,51,57,57,10,118,110,32,32,48,46,51,48,51,49,54,55,32,45,48,46,54,48,56,57,57,53,32,48,46,55,51,50,57,52,57,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,52,51,53,53,49,51,32,48,46, +57,48,48,49,56,50,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,54,56,51,56,54,51,32,48,46,55,50,57,54,49,49,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,55,50,48,48,50,50,32,48,46,54,57,51,57,53,49,10,118,110,32,32,45,48,46,48,48,48, +48,48,48,32,45,48,46,54,48,55,57,56,51,32,48,46,55,57,51,57,53,48,10,118,110,32,32,45,48,46,51,52,52,49,55,57,32,45,48,46,52,51,54,49,56,48,32,48,46,56,51,49,52,51,55,10,118,110,32,32,45,48,46,50,55,56,53,57,52,32,45,48,46,54,56,52,54,54,54,32,48,46, +54,55,51,53,49,50,10,118,110,32,32,45,48,46,50,54,52,56,55,52,32,45,48,46,55,50,48,57,50,52,32,48,46,54,52,48,51,57,57,10,118,110,32,32,45,48,46,51,48,51,49,54,55,32,45,48,46,54,48,56,57,57,53,32,48,46,55,51,50,57,52,57,10,118,110,32,32,45,48,46,54,51, +54,48,57,50,32,45,48,46,52,51,54,55,55,56,32,48,46,54,51,54,48,57,50,10,118,110,32,32,45,48,46,53,49,52,57,54,53,32,45,48,46,54,56,53,50,57,48,32,48,46,53,49,52,57,54,53,10,118,110,32,32,45,48,46,52,56,57,54,53,49,32,45,48,46,55,50,49,52,52,54,32,48, +46,52,56,57,54,53,49,10,118,110,32,32,45,48,46,53,54,48,53,53,53,32,45,48,46,54,48,57,53,53,52,32,48,46,53,54,48,53,53,53,10,118,110,32,32,45,48,46,56,51,49,52,51,55,32,45,48,46,52,51,54,49,56,48,32,48,46,51,52,52,49,55,57,10,118,110,32,32,45,48,46,54, +55,51,53,49,50,32,45,48,46,54,56,52,54,54,54,32,48,46,50,55,56,53,57,53,10,118,110,32,32,45,48,46,54,52,48,51,57,57,32,45,48,46,55,50,48,57,50,52,32,48,46,50,54,52,56,55,52,10,118,110,32,32,45,48,46,55,51,50,57,52,57,32,45,48,46,54,48,56,57,57,53,32, +48,46,51,48,51,49,54,55,10,118,110,32,32,45,48,46,57,48,48,49,56,50,32,45,48,46,52,51,53,53,49,51,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,55,50,57,54,49,49,32,45,48,46,54,56,51,56,54,51,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45, +48,46,54,57,51,57,53,49,32,45,48,46,55,50,48,48,50,50,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,55,57,51,57,53,48,32,45,48,46,54,48,55,57,56,51,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,56,51,49,52,51,55,32,45,48,46,52,51,54, +49,56,48,32,45,48,46,51,52,52,49,55,57,10,118,110,32,32,45,48,46,54,55,51,53,49,50,32,45,48,46,54,56,52,54,54,54,32,45,48,46,50,55,56,53,57,52,10,118,110,32,32,45,48,46,54,52,48,51,57,57,32,45,48,46,55,50,48,57,50,52,32,45,48,46,50,54,52,56,55,52,10, +118,110,32,32,45,48,46,55,51,50,57,52,57,32,45,48,46,54,48,56,57,57,53,32,45,48,46,51,48,51,49,54,55,10,118,110,32,32,45,48,46,54,51,54,48,57,50,32,45,48,46,52,51,54,55,55,56,32,45,48,46,54,51,54,48,57,50,10,118,110,32,32,45,48,46,53,49,52,57,54,53,32, +45,48,46,54,56,53,50,57,48,32,45,48,46,53,49,52,57,54,53,10,118,110,32,32,45,48,46,52,56,57,54,53,49,32,45,48,46,55,50,49,52,52,54,32,45,48,46,52,56,57,54,53,49,10,118,110,32,32,45,48,46,53,54,48,53,53,53,32,45,48,46,54,48,57,53,53,52,32,45,48,46,53, +54,48,53,53,53,10,118,110,32,32,45,48,46,51,52,52,49,55,57,32,45,48,46,52,51,54,49,56,48,32,45,48,46,56,51,49,52,51,55,10,118,110,32,32,45,48,46,50,55,56,53,57,53,32,45,48,46,54,56,52,54,54,54,32,45,48,46,54,55,51,53,49,50,10,118,110,32,32,45,48,46,50, +54,52,56,55,52,32,45,48,46,55,50,48,57,50,52,32,45,48,46,54,52,48,51,57,57,10,118,110,32,32,45,48,46,51,48,51,49,54,55,32,45,48,46,54,48,56,57,57,53,32,45,48,46,55,51,50,57,52,57,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,52,51,53,53,49,51, +32,45,48,46,57,48,48,49,56,50,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,54,56,51,56,54,51,32,45,48,46,55,50,57,54,49,49,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,55,50,48,48,50,50,32,45,48,46,54,57,51,57,53,49,10,118,110,32,32, +48,46,48,48,48,48,48,48,32,45,48,46,54,48,55,57,56,51,32,45,48,46,55,57,51,57,53,48,10,118,110,32,32,48,46,51,52,52,49,55,57,32,45,48,46,52,51,54,49,56,48,32,45,48,46,56,51,49,52,51,55,10,118,110,32,32,48,46,50,55,56,53,57,52,32,45,48,46,54,56,52,54, +54,54,32,45,48,46,54,55,51,53,49,50,10,118,110,32,32,48,46,50,54,52,56,55,52,32,45,48,46,55,50,48,57,50,52,32,45,48,46,54,52,48,51,57,57,10,118,110,32,32,48,46,51,48,51,49,54,55,32,45,48,46,54,48,56,57,57,53,32,45,48,46,55,51,50,57,52,57,10,118,110,32, +32,48,46,54,51,54,48,57,50,32,45,48,46,52,51,54,55,55,56,32,45,48,46,54,51,54,48,57,50,10,118,110,32,32,48,46,53,49,52,57,54,53,32,45,48,46,54,56,53,50,57,48,32,45,48,46,53,49,52,57,54,53,10,118,110,32,32,48,46,52,56,57,54,53,49,32,45,48,46,55,50,49, +52,52,54,32,45,48,46,52,56,57,54,53,49,10,118,110,32,32,48,46,53,54,48,53,53,53,32,45,48,46,54,48,57,53,53,52,32,45,48,46,53,54,48,53,53,53,10,118,110,32,32,48,46,56,51,49,52,51,55,32,45,48,46,52,51,54,49,56,48,32,45,48,46,51,52,52,49,55,57,10,118,110, +32,32,48,46,54,55,51,53,49,50,32,45,48,46,54,56,52,54,54,54,32,45,48,46,50,55,56,53,57,53,10,118,110,32,32,48,46,54,52,48,51,57,57,32,45,48,46,55,50,48,57,50,52,32,45,48,46,50,54,52,56,55,52,10,118,110,32,32,48,46,55,51,50,57,52,57,32,45,48,46,54,48, +56,57,57,53,32,45,48,46,51,48,51,49,54,55,10,118,110,32,32,48,46,54,50,51,56,54,48,32,45,48,46,55,56,49,53,51,54,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,49,55,55,50,57,49,32,45,48,46,57,56,52,49,53,57,32,45,48,46,48,48,48,48,48,48,10,118,110, +32,32,48,46,48,52,57,50,48,55,32,45,48,46,57,57,56,55,56,57,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,49,46,48,48,48,48,48,48,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,53,55,54,50,51,48,32,45,48,46,55,56,49,56, +48,49,32,48,46,50,51,56,50,49,55,10,118,110,32,32,48,46,49,54,51,54,50,56,32,45,48,46,57,56,52,50,48,56,32,48,46,48,54,55,53,50,55,10,118,110,32,32,48,46,48,52,53,52,50,50,32,45,48,46,57,57,56,55,57,50,32,48,46,48,49,56,55,51,54,10,118,110,32,32,48,46, +52,52,48,52,49,54,32,45,48,46,55,56,50,51,52,56,32,48,46,52,52,48,52,49,54,10,118,110,32,32,48,46,49,50,52,57,48,51,32,45,48,46,57,56,52,50,55,54,32,48,46,49,50,52,57,48,51,10,118,110,32,32,48,46,48,51,52,54,54,50,32,45,48,46,57,57,56,55,57,56,32,48, +46,48,51,52,54,54,50,10,118,110,32,32,48,46,50,51,56,50,49,55,32,45,48,46,55,56,49,56,48,49,32,48,46,53,55,54,50,51,48,10,118,110,32,32,48,46,48,54,55,53,50,55,32,45,48,46,57,56,52,50,48,56,32,48,46,49,54,51,54,50,56,10,118,110,32,32,48,46,48,49,56,55, +51,54,32,45,48,46,57,57,56,55,57,50,32,48,46,48,52,53,52,50,50,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,55,56,49,53,51,54,32,48,46,54,50,51,56,54,48,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,57,56,52,49,53,57,32,48,46,49,55, +55,50,57,49,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,57,57,56,55,56,57,32,48,46,48,52,57,50,48,55,10,118,110,32,32,45,48,46,50,51,56,50,49,55,32,45,48,46,55,56,49,56,48,49,32,48,46,53,55,54,50,51,48,10,118,110,32,32,45,48,46,48,54,55,53, +50,55,32,45,48,46,57,56,52,50,48,56,32,48,46,49,54,51,54,50,56,10,118,110,32,32,45,48,46,48,49,56,55,51,54,32,45,48,46,57,57,56,55,57,50,32,48,46,48,52,53,52,50,50,10,118,110,32,32,45,48,46,52,52,48,52,49,54,32,45,48,46,55,56,50,51,52,56,32,48,46,52, +52,48,52,49,54,10,118,110,32,32,45,48,46,49,50,52,57,48,51,32,45,48,46,57,56,52,50,55,54,32,48,46,49,50,52,57,48,51,10,118,110,32,32,45,48,46,48,51,52,54,54,50,32,45,48,46,57,57,56,55,57,56,32,48,46,48,51,52,54,54,50,10,118,110,32,32,45,48,46,53,55,54, +50,51,48,32,45,48,46,55,56,49,56,48,49,32,48,46,50,51,56,50,49,55,10,118,110,32,32,45,48,46,49,54,51,54,50,56,32,45,48,46,57,56,52,50,48,56,32,48,46,48,54,55,53,50,55,10,118,110,32,32,45,48,46,48,52,53,52,50,50,32,45,48,46,57,57,56,55,57,50,32,48,46, +48,49,56,55,51,54,10,118,110,32,32,45,48,46,54,50,51,56,54,48,32,45,48,46,55,56,49,53,51,54,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,49,55,55,50,57,49,32,45,48,46,57,56,52,49,53,57,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,48, +52,57,50,48,55,32,45,48,46,57,57,56,55,56,57,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,53,55,54,50,51,48,32,45,48,46,55,56,49,56,48,49,32,45,48,46,50,51,56,50,49,55,10,118,110,32,32,45,48,46,49,54,51,54,50,56,32,45,48,46,57,56,52,50,48, +56,32,45,48,46,48,54,55,53,50,55,10,118,110,32,32,45,48,46,48,52,53,52,50,50,32,45,48,46,57,57,56,55,57,50,32,45,48,46,48,49,56,55,51,54,10,118,110,32,32,45,48,46,52,52,48,52,49,54,32,45,48,46,55,56,50,51,52,56,32,45,48,46,52,52,48,52,49,54,10,118,110, +32,32,45,48,46,49,50,52,57,48,51,32,45,48,46,57,56,52,50,55,54,32,45,48,46,49,50,52,57,48,51,10,118,110,32,32,45,48,46,48,51,52,54,54,50,32,45,48,46,57,57,56,55,57,56,32,45,48,46,48,51,52,54,54,50,10,118,110,32,32,45,48,46,50,51,56,50,49,55,32,45,48, +46,55,56,49,56,48,49,32,45,48,46,53,55,54,50,51,48,10,118,110,32,32,45,48,46,48,54,55,53,50,55,32,45,48,46,57,56,52,50,48,56,32,45,48,46,49,54,51,54,50,56,10,118,110,32,32,45,48,46,48,49,56,55,51,54,32,45,48,46,57,57,56,55,57,50,32,45,48,46,48,52,53, +52,50,50,10,118,110,32,32,48,46,48,48,48,48,48,48,32,45,48,46,55,56,49,53,51,54,32,45,48,46,54,50,51,56,54,48,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,45,48,46,57,56,52,49,53,57,32,45,48,46,49,55,55,50,57,49,10,118,110,32,32,48,46,48,48,48,48,48, +48,32,45,48,46,57,57,56,55,56,57,32,45,48,46,48,52,57,50,48,55,10,118,110,32,32,48,46,50,51,56,50,49,55,32,45,48,46,55,56,49,56,48,49,32,45,48,46,53,55,54,50,51,48,10,118,110,32,32,48,46,48,54,55,53,50,55,32,45,48,46,57,56,52,50,48,56,32,45,48,46,49, +54,51,54,50,56,10,118,110,32,32,48,46,48,49,56,55,51,54,32,45,48,46,57,57,56,55,57,50,32,45,48,46,48,52,53,52,50,50,10,118,110,32,32,48,46,52,52,48,52,49,54,32,45,48,46,55,56,50,51,52,56,32,45,48,46,52,52,48,52,49,54,10,118,110,32,32,48,46,49,50,52,57, +48,51,32,45,48,46,57,56,52,50,55,54,32,45,48,46,49,50,52,57,48,51,10,118,110,32,32,48,46,48,51,52,54,54,50,32,45,48,46,57,57,56,55,57,56,32,45,48,46,48,51,52,54,54,50,10,118,110,32,32,48,46,53,55,54,50,51,48,32,45,48,46,55,56,49,56,48,49,32,45,48,46, +50,51,56,50,49,55,10,118,110,32,32,48,46,49,54,51,54,50,56,32,45,48,46,57,56,52,50,48,56,32,45,48,46,48,54,55,53,50,55,10,118,110,32,32,48,46,48,52,53,52,50,50,32,45,48,46,57,57,56,55,57,50,32,45,48,46,48,49,56,55,51,54,10,118,110,32,32,48,46,48,48,55, +55,56,54,32,45,48,46,57,57,57,57,55,48,32,45,48,46,48,48,48,50,49,54,10,118,110,32,32,48,46,48,51,57,49,51,56,32,45,48,46,57,57,57,50,51,51,32,45,48,46,48,48,48,57,56,57,10,118,110,32,32,48,46,49,55,57,53,49,50,32,45,48,46,57,56,51,55,52,54,32,45,48, +46,48,48,52,51,54,57,10,118,110,32,32,48,46,54,49,50,50,57,57,32,45,48,46,55,57,48,53,53,55,32,45,48,46,48,49,48,52,54,48,10,118,110,32,32,48,46,57,56,54,49,53,50,32,45,48,46,49,54,53,55,48,56,32,45,48,46,48,48,54,54,55,48,10,118,110,32,32,48,46,48,48, +55,48,51,57,32,45,48,46,56,49,50,52,57,53,32,48,46,53,56,50,57,50,54,10,118,110,32,32,48,46,48,51,54,49,50,55,32,45,48,46,56,51,55,50,53,55,32,48,46,53,52,53,54,49,52,10,118,110,32,32,48,46,49,54,49,56,52,54,32,45,48,46,56,49,48,52,50,49,32,48,46,53, +54,51,48,52,56,10,118,110,32,32,48,46,52,56,50,51,54,53,32,45,48,46,53,57,53,49,52,56,32,48,46,54,52,50,55,52,54,10,118,110,32,32,48,46,55,51,56,55,50,48,32,45,48,46,49,49,52,53,57,52,32,48,46,54,54,52,49,57,57,10,118,110,32,32,45,48,46,48,48,49,57,48, +57,32,48,46,49,54,50,49,50,49,32,48,46,57,56,54,55,54,57,10,118,110,32,32,48,46,48,48,50,55,54,50,32,48,46,48,49,55,49,48,55,32,48,46,57,57,57,56,53,48,10,118,110,32,32,48,46,48,49,48,53,51,51,32,48,46,48,55,51,51,57,56,32,48,46,57,57,55,50,52,55,10, +118,110,32,32,45,48,46,48,54,54,48,52,49,32,48,46,49,51,48,48,55,48,32,48,46,57,56,57,51,48,51,10,118,110,32,32,45,48,46,48,57,52,52,50,55,32,48,46,48,49,54,53,57,52,32,48,46,57,57,53,51,57,51,10,118,110,32,32,45,48,46,48,48,57,50,48,51,32,48,46,56,55, +49,53,48,57,32,48,46,52,57,48,50,57,51,10,118,110,32,32,45,48,46,48,52,56,54,48,54,32,48,46,56,52,48,54,48,57,32,48,46,53,51,57,52,53,55,10,118,110,32,32,45,48,46,50,50,51,50,57,56,32,48,46,56,48,50,56,56,48,32,48,46,53,53,50,55,51,57,10,118,110,32,32, +45,48,46,53,57,54,51,54,53,32,48,46,53,53,57,57,55,49,32,48,46,53,55,53,49,51,53,10,118,110,32,32,45,48,46,56,48,51,51,51,55,32,48,46,48,54,56,50,51,54,32,48,46,53,57,49,54,48,51,10,118,110,32,32,45,48,46,48,49,48,53,54,49,32,48,46,57,57,57,57,52,52, +32,48,46,48,48,48,49,48,51,10,118,110,32,32,45,48,46,48,53,56,55,57,56,32,48,46,57,57,56,50,55,48,32,48,46,48,48,48,55,49,48,10,118,110,32,32,45,48,46,50,56,48,55,49,48,32,48,46,57,53,57,55,56,55,32,48,46,48,48,51,50,54,57,10,118,110,32,32,45,48,46,55, +52,57,55,50,51,32,48,46,54,54,49,55,51,56,32,48,46,48,48,52,50,54,56,10,118,110,32,32,45,48,46,57,57,55,51,53,49,32,48,46,48,55,50,55,49,52,32,48,46,48,48,50,48,53,57,10,118,110,32,32,45,48,46,48,48,56,55,57,50,32,48,46,56,55,49,52,57,51,32,45,48,46, +52,57,48,51,51,48,10,118,110,32,32,45,48,46,48,52,54,52,57,52,32,48,46,56,52,49,49,55,56,32,45,48,46,53,51,56,55,53,54,10,118,110,32,32,45,48,46,50,49,55,57,48,57,32,48,46,56,48,54,56,48,55,32,45,48,46,53,52,57,49,54,49,10,118,110,32,32,45,48,46,53,57, +55,50,57,49,32,48,46,53,54,48,48,50,54,32,45,48,46,53,55,52,49,50,49,10,118,110,32,32,45,48,46,56,48,52,48,48,48,32,48,46,48,54,50,57,49,51,32,45,48,46,53,57,49,50,57,50,10,118,110,32,32,45,48,46,48,48,49,56,48,54,32,48,46,49,54,49,54,57,49,32,45,48, +46,57,56,54,56,52,48,10,118,110,32,32,48,46,48,48,50,48,51,49,32,48,46,48,49,52,53,53,53,32,45,48,46,57,57,57,56,57,50,10,118,110,32,32,48,46,48,48,57,50,49,53,32,48,46,48,54,48,48,54,57,32,45,48,46,57,57,56,49,53,50,10,118,110,32,32,45,48,46,48,53,57, +51,51,52,32,48,46,49,49,51,56,54,53,32,45,48,46,57,57,49,55,50,51,10,118,110,32,32,45,48,46,48,56,54,56,57,57,32,48,46,48,49,50,50,57,48,32,45,48,46,57,57,54,49,52,49,10,118,110,32,32,48,46,48,48,54,52,49,56,32,45,48,46,56,49,50,51,55,57,32,45,48,46, +53,56,51,48,57,53,10,118,110,32,32,48,46,48,51,51,55,56,51,32,45,48,46,56,51,55,53,49,50,32,45,48,46,53,52,53,51,55,51,10,118,110,32,32,48,46,49,53,55,49,49,51,32,45,48,46,56,49,49,57,52,55,32,45,48,46,53,54,50,49,57,48,10,118,110,32,32,48,46,52,56,52, +52,48,54,32,45,48,46,53,56,57,51,54,54,32,45,48,46,54,52,54,53,50,56,10,118,110,32,32,48,46,55,51,56,56,55,48,32,45,48,46,49,48,49,51,50,48,32,45,48,46,54,54,54,49,56,55,10,118,110,32,32,48,46,57,52,54,53,49,50,32,48,46,51,50,50,54,53,48,32,45,48,46, +48,48,51,51,53,55,10,118,110,32,32,48,46,56,50,53,56,51,48,32,48,46,53,54,51,56,55,48,32,45,48,46,48,48,55,52,53,50,10,118,110,32,32,48,46,54,53,48,48,49,49,32,48,46,55,53,57,56,57,51,32,45,48,46,48,48,54,57,51,55,10,118,110,32,32,48,46,53,51,50,52,50, +57,32,48,46,56,52,54,52,53,57,32,45,48,46,48,48,53,50,52,53,10,118,110,32,32,48,46,55,50,53,54,48,56,32,48,46,50,53,57,51,53,49,32,48,46,54,51,55,51,54,49,10,118,110,32,32,48,46,54,52,53,57,52,53,32,48,46,52,54,49,57,56,56,32,48,46,54,48,55,55,49,57, +10,118,110,32,32,48,46,53,51,49,54,49,53,32,48,46,54,51,54,54,54,48,32,48,46,53,53,56,54,49,52,10,118,110,32,32,48,46,52,50,52,57,54,52,32,48,46,54,56,49,55,49,55,32,48,46,53,57,53,53,52,48,10,118,110,32,32,45,48,46,48,52,57,53,54,50,32,45,48,46,48,49, +57,55,53,53,32,48,46,57,57,56,53,55,54,10,118,110,32,32,45,48,46,48,51,55,56,49,54,32,45,48,46,48,51,53,54,50,52,32,48,46,57,57,56,54,53,48,10,118,110,32,32,45,48,46,48,51,55,57,49,52,32,45,48,46,48,51,54,53,49,50,32,48,46,57,57,56,54,49,52,10,118,110, +32,32,45,48,46,49,54,56,56,53,52,32,45,48,46,50,57,55,57,52,53,32,48,46,57,51,57,53,51,48,10,118,110,32,32,45,48,46,55,52,50,51,52,50,32,45,48,46,50,57,57,49,54,54,32,48,46,53,57,57,53,50,51,10,118,110,32,32,45,48,46,54,49,57,54,48,50,32,45,48,46,53, +50,57,52,48,54,32,48,46,53,55,57,53,48,50,10,118,110,32,32,45,48,46,52,56,51,55,48,56,32,45,48,46,54,56,53,55,54,48,32,48,46,53,52,51,56,51,55,10,118,110,32,32,45,48,46,52,52,53,50,57,51,32,45,48,46,55,57,52,51,53,53,32,48,46,52,49,51,49,55,55,10,118, +110,32,32,45,48,46,57,50,54,53,49,51,32,45,48,46,51,55,54,50,53,56,32,48,46,48,48,49,57,57,54,10,118,110,32,32,45,48,46,55,53,51,57,50,48,32,45,48,46,54,53,54,57,53,50,32,48,46,48,48,52,51,49,55,10,118,110,32,32,45,48,46,53,54,54,50,50,52,32,45,48,46, +56,50,52,50,52,52,32,48,46,48,48,51,52,54,49,10,118,110,32,32,45,48,46,52,56,49,56,48,52,32,45,48,46,56,55,54,50,55,55,32,48,46,48,48,49,56,53,48,10,118,110,32,32,45,48,46,55,52,52,54,55,53,32,45,48,46,50,57,52,52,50,53,32,45,48,46,53,57,56,57,55,55, +10,118,110,32,32,45,48,46,54,50,49,57,52,57,32,45,48,46,53,50,56,49,49,52,32,45,48,46,53,55,56,49,54,53,10,118,110,32,32,45,48,46,52,56,49,49,55,49,32,45,48,46,54,56,56,51,52,48,32,45,48,46,53,52,50,56,50,56,10,118,110,32,32,45,48,46,52,51,56,48,53,53, +32,45,48,46,55,57,55,48,51,53,32,45,48,46,52,49,53,55,52,52,10,118,110,32,32,45,48,46,48,52,52,51,51,55,32,45,48,46,48,49,55,48,53,54,32,45,48,46,57,57,56,56,55,49,10,118,110,32,32,45,48,46,48,50,54,49,55,54,32,45,48,46,48,50,56,49,54,54,32,45,48,46, +57,57,57,50,54,48,10,118,110,32,32,45,48,46,48,50,53,50,57,52,32,45,48,46,48,50,56,51,51,50,32,45,48,46,57,57,57,50,55,56,10,118,110,32,32,45,48,46,49,53,55,52,56,50,32,45,48,46,50,56,57,51,57,50,32,45,48,46,57,52,52,49,54,55,10,118,110,32,32,48,46,55, +50,56,50,52,52,32,48,46,50,53,50,52,49,48,32,45,48,46,54,51,55,49,52,50,10,118,110,32,32,48,46,54,52,55,48,53,53,32,48,46,52,53,57,55,50,53,32,45,48,46,54,48,56,50,53,52,10,118,110,32,32,48,46,53,50,50,57,57,52,32,48,46,54,52,48,54,53,55,32,45,48,46, +53,54,50,49,55,48,10,118,110,32,32,48,46,52,48,57,57,55,56,32,48,46,54,56,50,56,53,55,32,45,48,46,54,48,52,54,54,57,10,118,110,32,32,45,48,46,50,51,48,55,56,55,32,48,46,57,55,50,57,56,50,32,45,48,46,48,48,54,53,50,51,10,118,110,32,32,45,48,46,53,52,56, +57,51,54,32,48,46,56,51,53,56,54,51,32,45,48,46,48,48,49,53,49,49,10,118,110,32,32,45,48,46,56,55,53,54,55,49,32,48,46,52,56,50,56,48,54,32,48,46,48,48,57,56,57,51,10,118,110,32,32,45,48,46,56,55,55,53,53,52,32,48,46,52,55,57,48,57,55,32,48,46,48,49, +57,48,57,50,10,118,110,32,32,45,48,46,54,57,54,49,57,48,32,48,46,55,49,55,52,51,57,32,48,46,48,50,52,52,57,55,10,118,110,32,32,45,48,46,49,53,50,56,55,55,32,48,46,54,56,55,50,49,49,32,48,46,55,49,48,49,57,48,10,118,110,32,32,45,48,46,51,49,54,55,50,49, +32,48,46,54,51,55,55,53,48,32,48,46,55,48,50,49,49,51,10,118,110,32,32,45,48,46,54,48,49,48,54,55,32,48,46,52,55,49,52,53,50,32,48,46,54,52,53,51,51,48,10,118,110,32,32,45,48,46,54,51,53,56,56,57,32,48,46,52,52,54,48,57,48,32,48,46,54,50,57,56,48,49, +10,118,110,32,32,45,48,46,52,51,53,55,52,54,32,48,46,54,48,49,48,48,56,32,48,46,54,55,48,48,49,49,10,118,110,32,32,48,46,49,49,49,49,49,51,32,45,48,46,48,56,53,48,55,48,32,48,46,57,57,48,49,54,48,10,118,110,32,32,48,46,50,50,51,51,49,48,32,48,46,48,48, +54,53,52,48,32,48,46,57,55,52,55,50,54,10,118,110,32,32,48,46,49,57,48,48,57,55,32,48,46,49,53,52,57,54,52,32,48,46,57,54,57,52,53,56,10,118,110,32,32,48,46,48,48,53,50,55,49,32,48,46,49,56,57,52,56,50,32,48,46,57,56,49,56,55,48,10,118,110,32,32,45,48, +46,48,49,49,55,53,50,32,48,46,50,52,54,54,56,56,32,48,46,57,54,57,48,50,52,10,118,110,32,32,48,46,51,52,51,57,48,54,32,45,48,46,55,50,50,55,57,54,32,48,46,53,57,57,52,49,50,10,118,110,32,32,48,46,53,55,50,52,56,57,32,45,48,46,53,54,55,54,53,54,32,48, +46,53,57,49,54,50,55,10,118,110,32,32,48,46,55,56,55,52,51,54,32,45,48,46,50,53,54,52,53,57,32,48,46,53,54,48,53,49,50,10,118,110,32,32,48,46,54,52,55,48,57,55,32,45,48,46,51,48,54,51,55,52,32,48,46,54,57,56,49,52,49,10,118,110,32,32,48,46,52,50,55,53, +50,56,32,45,48,46,52,57,57,51,52,51,32,48,46,55,53,51,53,55,54,10,118,110,32,32,48,46,52,49,48,57,50,54,32,45,48,46,57,49,49,54,54,56,32,48,46,48,48,49,50,56,52,10,118,110,32,32,48,46,54,55,49,53,50,48,32,45,48,46,55,52,48,57,56,54,32,45,48,46,48,48, +48,56,57,57,10,118,110,32,32,48,46,57,50,50,48,50,54,32,45,48,46,51,56,55,48,54,48,32,45,48,46,48,48,55,50,53,51,10,118,110,32,32,48,46,56,52,54,57,49,48,32,45,48,46,53,51,49,53,53,54,32,45,48,46,48,49,51,56,53,52,10,118,110,32,32,48,46,53,51,53,57,50, +52,32,45,48,46,56,52,52,50,48,49,32,45,48,46,48,49,48,53,48,53,10,118,110,32,32,48,46,51,52,49,49,56,56,32,45,48,46,55,50,50,56,50,51,32,45,48,46,54,48,48,57,51,49,10,118,110,32,32,48,46,53,55,56,54,54,52,32,45,48,46,53,54,49,49,51,57,32,45,48,46,53, +57,49,56,51,56,10,118,110,32,32,48,46,55,56,52,56,54,57,32,45,48,46,50,53,49,48,50,48,32,45,48,46,53,54,54,53,52,50,10,118,110,32,32,48,46,54,52,50,54,56,49,32,45,48,46,51,48,50,50,53,55,32,45,48,46,55,48,51,57,57,48,10,118,110,32,32,48,46,52,49,56,53, +56,57,32,45,48,46,53,48,48,48,52,50,32,45,48,46,55,53,56,49,49,55,10,118,110,32,32,48,46,49,49,53,56,48,54,32,45,48,46,48,55,57,49,51,57,32,45,48,46,57,57,48,49,49,52,10,118,110,32,32,48,46,50,51,50,56,49,49,32,48,46,48,49,50,53,54,53,32,45,48,46,57, +55,50,52,52,49,10,118,110,32,32,48,46,50,48,54,54,54,50,32,48,46,49,53,51,54,48,49,32,45,48,46,57,54,54,50,56,48,10,118,110,32,32,48,46,48,50,52,53,48,48,32,48,46,49,54,49,52,52,51,32,45,48,46,57,56,54,53,55,56,10,118,110,32,32,48,46,48,48,51,51,56,50, +32,48,46,50,49,49,49,49,53,32,45,48,46,57,55,55,52,53,53,10,118,110,32,32,45,48,46,49,51,52,57,49,50,32,48,46,54,56,55,52,57,49,32,45,48,46,55,49,51,53,53,49,10,118,110,32,32,45,48,46,51,49,57,53,52,48,32,48,46,54,51,51,48,55,51,32,45,48,46,55,48,53, +48,54,51,10,118,110,32,32,45,48,46,54,48,51,57,48,50,32,48,46,52,54,49,52,52,50,32,45,48,46,54,52,57,57,48,51,10,118,110,32,32,45,48,46,54,51,49,56,49,53,32,48,46,52,51,55,49,54,57,32,45,48,46,54,52,48,48,55,50,10,118,110,32,32,45,48,46,52,50,52,51,48, +54,32,48,46,54,49,50,55,48,54,32,45,48,46,54,54,54,55,53,48,10,118,110,32,32,45,48,46,52,50,53,56,48,49,32,48,46,57,48,52,55,53,51,32,48,46,48,49,48,56,48,53,10,118,110,32,32,48,46,48,50,50,48,52,54,32,48,46,57,57,57,55,53,54,32,48,46,48,48,49,54,50, +51,10,118,110,32,32,48,46,57,57,57,53,57,56,32,48,46,48,50,53,56,55,53,32,48,46,48,49,49,53,53,54,10,118,110,32,32,48,46,55,48,57,53,56,55,32,45,48,46,55,48,52,53,53,50,32,48,46,48,48,57,54,55,50,10,118,110,32,32,45,48,46,50,53,57,56,53,56,32,48,46,55, +57,49,57,51,55,32,48,46,53,53,50,53,52,56,10,118,110,32,32,48,46,48,48,57,53,51,57,32,48,46,57,57,57,55,50,48,32,45,48,46,48,50,49,54,55,52,10,118,110,32,32,48,46,52,49,48,49,53,55,32,48,46,51,51,50,57,49,50,32,45,48,46,56,52,57,48,56,50,10,118,110,32, +32,48,46,53,52,49,53,50,51,32,45,48,46,53,52,56,54,49,57,32,45,48,46,54,51,55,48,48,49,10,118,110,32,32,48,46,48,52,54,51,49,49,32,48,46,52,53,53,50,50,51,32,48,46,56,56,57,49,55,50,10,118,110,32,32,45,48,46,48,49,48,54,56,56,32,48,46,57,56,56,55,57, +52,32,48,46,49,52,56,57,48,48,10,118,110,32,32,45,48,46,48,52,52,51,55,54,32,48,46,54,56,50,57,52,54,32,45,48,46,55,50,57,49,50,48,10,118,110,32,32,48,46,49,50,50,56,50,52,32,48,46,48,48,57,50,51,51,32,45,48,46,57,57,50,51,56,53,10,118,110,32,32,48,46, +52,56,49,56,51,57,32,45,48,46,49,56,48,52,52,48,32,48,46,56,53,55,52,56,48,10,118,110,32,32,48,46,52,53,53,50,55,50,32,48,46,55,51,54,55,53,50,32,48,46,52,57,57,57,50,53,10,118,110,32,32,45,48,46,50,50,48,53,52,50,32,48,46,57,48,55,49,57,51,32,45,48, +46,51,53,56,50,55,55,10,118,110,32,32,45,48,46,50,51,53,57,49,57,32,48,46,54,53,55,50,53,48,32,45,48,46,55,49,53,55,57,55,10,118,110,32,32,48,46,55,50,56,48,57,52,32,45,48,46,54,56,53,51,48,48,32,45,48,46,48,49,53,53,56,53,10,118,110,32,32,48,46,56,56, +56,55,51,56,32,48,46,52,53,56,49,49,50,32,45,48,46,48,49,54,54,55,57,10,118,110,32,32,45,48,46,50,54,48,48,57,56,32,48,46,57,54,53,53,56,50,32,48,46,48,48,48,56,48,48,10,118,110,32,32,45,48,46,51,55,49,54,49,49,32,48,46,57,50,56,51,55,56,32,45,48,46, +48,48,52,52,49,56,10,118,110,32,32,48,46,52,56,48,49,54,53,32,45,48,46,49,55,56,51,54,50,32,45,48,46,56,53,56,56,53,51,10,118,110,32,32,48,46,52,56,56,49,48,50,32,48,46,55,49,54,56,48,50,32,45,48,46,52,57,55,57,52,55,10,118,110,32,32,45,48,46,50,50,50, +48,48,52,32,48,46,57,48,53,51,57,57,32,48,46,51,54,49,56,57,50,10,118,110,32,32,45,48,46,50,51,53,52,48,53,32,48,46,54,54,51,49,56,48,32,48,46,55,49,48,52,55,55,10,118,110,32,32,48,46,48,53,56,55,50,48,32,48,46,52,51,55,55,48,50,32,45,48,46,56,57,55, +50,48,48,10,118,110,32,32,48,46,48,48,49,51,50,54,32,48,46,57,56,54,52,53,57,32,45,48,46,49,54,52,48,48,50,10,118,110,32,32,45,48,46,48,52,52,49,57,48,32,48,46,54,56,49,54,55,53,32,48,46,55,51,48,51,49,57,10,118,110,32,32,48,46,49,51,56,56,48,49,32,45, +48,46,48,51,52,49,56,56,32,48,46,57,56,57,55,51,48,10,118,110,32,32,45,48,46,50,53,56,56,57,48,32,48,46,55,57,55,50,48,54,32,45,48,46,53,52,53,51,56,48,10,118,110,32,32,48,46,48,49,50,50,55,48,32,48,46,57,57,57,55,51,57,32,48,46,48,49,57,50,56,55,10, +118,110,32,32,48,46,51,57,56,54,51,50,32,48,46,51,53,52,56,57,48,32,48,46,56,52,53,54,54,51,10,118,110,32,32,48,46,53,51,55,53,54,52,32,45,48,46,53,56,49,51,57,56,32,48,46,54,49,48,55,51,56,10,118,110,32,32,48,46,48,48,48,48,48,48,32,49,46,48,48,48,48, +48,48,32,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,56,50,52,53,52,48,32,48,46,53,54,53,56,48,52,32,48,46,48,48,48,48,49,55,10,118,110,32,32,48,46,57,49,55,55,48,49,32,45,48,46,51,57,55,50,55,50,32,48,46,48,48,48,48,51,52,10,118,110,32,32,48,46,57, +51,53,50,54,57,32,45,48,46,51,53,51,57,51,57,32,48,46,48,48,48,49,49,51,10,118,110,32,32,48,46,55,56,48,55,49,50,32,48,46,54,50,52,56,57,48,32,48,46,48,48,48,48,55,53,10,118,110,32,32,48,46,55,54,50,54,52,48,32,48,46,53,54,53,48,51,53,32,48,46,51,49, +52,56,50,53,10,118,110,32,32,48,46,56,52,55,57,56,50,32,45,48,46,51,57,55,57,57,56,32,48,46,51,53,48,48,51,52,10,118,110,32,32,48,46,56,54,52,49,52,49,32,45,48,46,51,53,53,50,54,49,32,48,46,51,53,54,52,52,49,10,118,110,32,32,48,46,55,50,48,57,57,50,32, +48,46,54,50,53,54,50,53,32,48,46,50,57,55,57,51,51,10,118,110,32,32,48,46,53,56,51,51,53,55,32,48,46,53,54,53,49,54,53,32,48,46,53,56,51,51,51,56,10,118,110,32,32,48,46,54,52,56,52,56,53,32,45,48,46,51,57,56,55,50,54,32,48,46,54,52,56,52,52,56,10,118, +110,32,32,48,46,54,54,48,56,55,50,32,45,48,46,51,53,53,56,57,52,32,48,46,54,54,48,55,52,56,10,118,110,32,32,48,46,53,53,49,56,54,50,32,48,46,54,50,53,50,57,48,32,48,46,53,53,49,55,56,48,10,118,110,32,32,48,46,51,49,52,56,50,52,32,48,46,53,54,53,48,53, +49,32,48,46,55,54,50,54,50,57,10,118,110,32,32,48,46,51,53,48,48,52,53,32,45,48,46,51,57,55,57,55,54,32,48,46,56,52,55,57,56,56,10,118,110,32,32,48,46,51,53,54,52,55,52,32,45,48,46,51,53,53,49,57,57,32,48,46,56,54,52,49,53,51,10,118,110,32,32,48,46,50, +57,55,57,56,51,32,48,46,54,50,53,53,49,53,32,48,46,55,50,49,48,54,55,10,118,110,32,32,45,48,46,48,48,48,48,49,55,32,48,46,53,54,53,56,48,52,32,48,46,56,50,52,53,52,48,10,118,110,32,32,45,48,46,48,48,48,48,51,52,32,45,48,46,51,57,55,50,55,50,32,48,46, +57,49,55,55,48,49,10,118,110,32,32,45,48,46,48,48,48,49,49,51,32,45,48,46,51,53,51,57,51,57,32,48,46,57,51,53,50,54,57,10,118,110,32,32,45,48,46,48,48,48,48,55,53,32,48,46,54,50,52,56,57,48,32,48,46,55,56,48,55,49,50,10,118,110,32,32,45,48,46,51,49,52, +56,50,53,32,48,46,53,54,53,48,51,53,32,48,46,55,54,50,54,52,48,10,118,110,32,32,45,48,46,51,53,48,48,51,52,32,45,48,46,51,57,55,57,57,56,32,48,46,56,52,55,57,56,50,10,118,110,32,32,45,48,46,51,53,54,52,52,49,32,45,48,46,51,53,53,50,54,49,32,48,46,56, +54,52,49,52,49,10,118,110,32,32,45,48,46,50,57,55,57,51,51,32,48,46,54,50,53,54,50,53,32,48,46,55,50,48,57,57,50,10,118,110,32,32,45,48,46,53,56,51,51,51,56,32,48,46,53,54,53,49,54,53,32,48,46,53,56,51,51,53,55,10,118,110,32,32,45,48,46,54,52,56,52,52, +56,32,45,48,46,51,57,56,55,50,54,32,48,46,54,52,56,52,56,53,10,118,110,32,32,45,48,46,54,54,48,55,52,56,32,45,48,46,51,53,53,56,57,52,32,48,46,54,54,48,56,55,50,10,118,110,32,32,45,48,46,53,53,49,55,56,48,32,48,46,54,50,53,50,57,48,32,48,46,53,53,49, +56,54,50,10,118,110,32,32,45,48,46,55,54,50,54,50,57,32,48,46,53,54,53,48,53,49,32,48,46,51,49,52,56,50,52,10,118,110,32,32,45,48,46,56,52,55,57,56,56,32,45,48,46,51,57,55,57,55,54,32,48,46,51,53,48,48,52,53,10,118,110,32,32,45,48,46,56,54,52,49,53,51, +32,45,48,46,51,53,53,49,57,57,32,48,46,51,53,54,52,55,52,10,118,110,32,32,45,48,46,55,50,49,48,54,55,32,48,46,54,50,53,53,49,53,32,48,46,50,57,55,57,56,51,10,118,110,32,32,45,48,46,56,50,52,53,52,48,32,48,46,53,54,53,56,48,52,32,45,48,46,48,48,48,48, +49,55,10,118,110,32,32,45,48,46,57,49,55,55,48,49,32,45,48,46,51,57,55,50,55,50,32,45,48,46,48,48,48,48,51,52,10,118,110,32,32,45,48,46,57,51,53,50,54,57,32,45,48,46,51,53,51,57,51,57,32,45,48,46,48,48,48,49,49,51,10,118,110,32,32,45,48,46,55,56,48,55, +49,50,32,48,46,54,50,52,56,57,48,32,45,48,46,48,48,48,48,55,53,10,118,110,32,32,45,48,46,55,54,50,54,52,48,32,48,46,53,54,53,48,51,53,32,45,48,46,51,49,52,56,50,53,10,118,110,32,32,45,48,46,56,52,55,57,56,50,32,45,48,46,51,57,55,57,57,56,32,45,48,46, +51,53,48,48,51,52,10,118,110,32,32,45,48,46,56,54,52,49,52,49,32,45,48,46,51,53,53,50,54,49,32,45,48,46,51,53,54,52,52,49,10,118,110,32,32,45,48,46,55,50,48,57,57,50,32,48,46,54,50,53,54,50,53,32,45,48,46,50,57,55,57,51,51,10,118,110,32,32,45,48,46,53, +56,51,51,53,55,32,48,46,53,54,53,49,54,53,32,45,48,46,53,56,51,51,51,56,10,118,110,32,32,45,48,46,54,52,56,52,56,53,32,45,48,46,51,57,56,55,50,54,32,45,48,46,54,52,56,52,52,56,10,118,110,32,32,45,48,46,54,54,48,56,55,50,32,45,48,46,51,53,53,56,57,52, +32,45,48,46,54,54,48,55,52,56,10,118,110,32,32,45,48,46,53,53,49,56,54,50,32,48,46,54,50,53,50,57,48,32,45,48,46,53,53,49,55,56,48,10,118,110,32,32,45,48,46,51,49,52,56,50,52,32,48,46,53,54,53,48,53,49,32,45,48,46,55,54,50,54,50,57,10,118,110,32,32,45, +48,46,51,53,48,48,52,53,32,45,48,46,51,57,55,57,55,54,32,45,48,46,56,52,55,57,56,56,10,118,110,32,32,45,48,46,51,53,54,52,55,52,32,45,48,46,51,53,53,49,57,57,32,45,48,46,56,54,52,49,53,51,10,118,110,32,32,45,48,46,50,57,55,57,56,51,32,48,46,54,50,53, +53,49,53,32,45,48,46,55,50,49,48,54,55,10,118,110,32,32,48,46,48,48,48,48,49,55,32,48,46,53,54,53,56,48,52,32,45,48,46,56,50,52,53,52,48,10,118,110,32,32,48,46,48,48,48,48,51,52,32,45,48,46,51,57,55,50,55,50,32,45,48,46,57,49,55,55,48,49,10,118,110,32, +32,48,46,48,48,48,49,49,51,32,45,48,46,51,53,51,57,51,57,32,45,48,46,57,51,53,50,54,57,10,118,110,32,32,48,46,48,48,48,48,55,53,32,48,46,54,50,52,56,57,48,32,45,48,46,55,56,48,55,49,50,10,118,110,32,32,48,46,51,49,52,56,50,53,32,48,46,53,54,53,48,51, +53,32,45,48,46,55,54,50,54,52,48,10,118,110,32,32,48,46,51,53,48,48,51,52,32,45,48,46,51,57,55,57,57,56,32,45,48,46,56,52,55,57,56,50,10,118,110,32,32,48,46,51,53,54,52,52,49,32,45,48,46,51,53,53,50,54,49,32,45,48,46,56,54,52,49,52,49,10,118,110,32,32, +48,46,50,57,55,57,51,51,32,48,46,54,50,53,54,50,53,32,45,48,46,55,50,48,57,57,50,10,118,110,32,32,48,46,53,56,51,51,51,56,32,48,46,53,54,53,49,54,53,32,45,48,46,53,56,51,51,53,55,10,118,110,32,32,48,46,54,52,56,52,52,56,32,45,48,46,51,57,56,55,50,54, +32,45,48,46,54,52,56,52,56,53,10,118,110,32,32,48,46,54,54,48,55,52,56,32,45,48,46,51,53,53,56,57,52,32,45,48,46,54,54,48,56,55,50,10,118,110,32,32,48,46,53,53,49,55,56,48,32,48,46,54,50,53,50,57,48,32,45,48,46,53,53,49,56,54,50,10,118,110,32,32,48,46, +55,54,50,54,50,57,32,48,46,53,54,53,48,53,49,32,45,48,46,51,49,52,56,50,52,10,118,110,32,32,48,46,56,52,55,57,56,56,32,45,48,46,51,57,55,57,55,54,32,45,48,46,51,53,48,48,52,53,10,118,110,32,32,48,46,56,54,52,49,53,51,32,45,48,46,51,53,53,49,57,57,32, +45,48,46,51,53,54,52,55,52,10,118,110,32,32,48,46,55,50,49,48,54,55,32,48,46,54,50,53,53,49,53,32,45,48,46,50,57,55,57,56,51,10,118,110,32,32,48,46,50,51,54,53,56,51,32,48,46,57,55,49,54,49,49,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,49,55, +51,48,56,52,32,48,46,57,56,52,57,48,55,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,51,55,57,55,48,51,32,48,46,57,50,53,49,48,56,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,48,46,53,50,54,54,55,51,32,48,46,56,53,48,48,54,56,32,48,46,48,48, +48,48,48,48,10,118,110,32,32,48,46,50,49,55,57,55,56,32,48,46,57,55,49,55,55,53,32,48,46,48,57,48,50,49,54,10,118,110,32,32,48,46,49,53,57,53,56,57,32,48,46,57,56,52,57,55,55,32,48,46,48,54,53,57,54,49,10,118,110,32,32,48,46,51,53,48,52,57,56,32,48,46, +57,50,53,51,49,49,32,48,46,49,52,52,55,52,48,10,118,110,32,32,48,46,52,56,53,53,57,48,32,48,46,56,53,48,54,53,51,32,48,46,50,48,49,52,55,52,10,118,110,32,32,48,46,49,54,54,54,51,49,32,48,46,57,55,49,56,51,56,32,48,46,49,54,54,54,51,49,10,118,110,32,32, +48,46,49,50,49,57,48,56,32,48,46,57,56,53,48,50,54,32,48,46,49,50,49,57,48,56,10,118,110,32,32,48,46,50,54,55,54,54,56,32,48,46,57,50,53,53,56,53,32,48,46,50,54,55,54,54,56,10,118,110,32,32,48,46,51,55,49,51,49,53,32,48,46,56,53,49,48,50,57,32,48,46, +51,55,49,51,49,53,10,118,110,32,32,48,46,48,57,48,50,49,54,32,48,46,57,55,49,55,55,53,32,48,46,50,49,55,57,55,56,10,118,110,32,32,48,46,48,54,53,57,54,49,32,48,46,57,56,52,57,55,55,32,48,46,49,53,57,53,56,57,10,118,110,32,32,48,46,49,52,52,55,52,48,32, +48,46,57,50,53,51,49,49,32,48,46,51,53,48,52,57,56,10,118,110,32,32,48,46,50,48,49,52,55,53,32,48,46,56,53,48,54,53,51,32,48,46,52,56,53,53,57,48,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,57,55,49,54,49,49,32,48,46,50,51,54,53,56,51,10,118,110, +32,32,48,46,48,48,48,48,48,48,32,48,46,57,56,52,57,48,55,32,48,46,49,55,51,48,56,52,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,57,50,53,49,48,56,32,48,46,51,55,57,55,48,51,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,56,53,48,48,54,56, +32,48,46,53,50,54,54,55,51,10,118,110,32,32,45,48,46,48,57,48,50,49,54,32,48,46,57,55,49,55,55,53,32,48,46,50,49,55,57,55,56,10,118,110,32,32,45,48,46,48,54,53,57,54,49,32,48,46,57,56,52,57,55,55,32,48,46,49,53,57,53,56,57,10,118,110,32,32,45,48,46,49, +52,52,55,52,48,32,48,46,57,50,53,51,49,49,32,48,46,51,53,48,52,57,56,10,118,110,32,32,45,48,46,50,48,49,52,55,52,32,48,46,56,53,48,54,53,51,32,48,46,52,56,53,53,57,48,10,118,110,32,32,45,48,46,49,54,54,54,51,49,32,48,46,57,55,49,56,51,56,32,48,46,49, +54,54,54,51,49,10,118,110,32,32,45,48,46,49,50,49,57,48,56,32,48,46,57,56,53,48,50,54,32,48,46,49,50,49,57,48,56,10,118,110,32,32,45,48,46,50,54,55,54,54,56,32,48,46,57,50,53,53,56,53,32,48,46,50,54,55,54,54,56,10,118,110,32,32,45,48,46,51,55,49,51,49, +53,32,48,46,56,53,49,48,50,57,32,48,46,51,55,49,51,49,53,10,118,110,32,32,45,48,46,50,49,55,57,55,56,32,48,46,57,55,49,55,55,53,32,48,46,48,57,48,50,49,54,10,118,110,32,32,45,48,46,49,53,57,53,56,57,32,48,46,57,56,52,57,55,55,32,48,46,48,54,53,57,54, +49,10,118,110,32,32,45,48,46,51,53,48,52,57,56,32,48,46,57,50,53,51,49,49,32,48,46,49,52,52,55,52,48,10,118,110,32,32,45,48,46,52,56,53,53,57,48,32,48,46,56,53,48,54,53,51,32,48,46,50,48,49,52,55,53,10,118,110,32,32,45,48,46,50,51,54,53,56,51,32,48,46, +57,55,49,54,49,49,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,49,55,51,48,56,52,32,48,46,57,56,52,57,48,55,32,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,51,55,57,55,48,51,32,48,46,57,50,53,49,48,56,32,48,46,48,48,48,48,48,48,10,118,110, +32,32,45,48,46,53,50,54,54,55,51,32,48,46,56,53,48,48,54,56,32,45,48,46,48,48,48,48,48,48,10,118,110,32,32,45,48,46,50,49,55,57,55,56,32,48,46,57,55,49,55,55,53,32,45,48,46,48,57,48,50,49,54,10,118,110,32,32,45,48,46,49,53,57,53,56,57,32,48,46,57,56, +52,57,55,55,32,45,48,46,48,54,53,57,54,49,10,118,110,32,32,45,48,46,51,53,48,52,57,56,32,48,46,57,50,53,51,49,49,32,45,48,46,49,52,52,55,52,48,10,118,110,32,32,45,48,46,52,56,53,53,57,48,32,48,46,56,53,48,54,53,51,32,45,48,46,50,48,49,52,55,52,10,118, +110,32,32,45,48,46,49,54,54,54,51,49,32,48,46,57,55,49,56,51,56,32,45,48,46,49,54,54,54,51,49,10,118,110,32,32,45,48,46,49,50,49,57,48,56,32,48,46,57,56,53,48,50,54,32,45,48,46,49,50,49,57,48,56,10,118,110,32,32,45,48,46,50,54,55,54,54,56,32,48,46,57, +50,53,53,56,53,32,45,48,46,50,54,55,54,54,56,10,118,110,32,32,45,48,46,51,55,49,51,49,53,32,48,46,56,53,49,48,50,57,32,45,48,46,51,55,49,51,49,53,10,118,110,32,32,45,48,46,48,57,48,50,49,54,32,48,46,57,55,49,55,55,53,32,45,48,46,50,49,55,57,55,56,10, +118,110,32,32,45,48,46,48,54,53,57,54,49,32,48,46,57,56,52,57,55,55,32,45,48,46,49,53,57,53,56,57,10,118,110,32,32,45,48,46,49,52,52,55,52,48,32,48,46,57,50,53,51,49,49,32,45,48,46,51,53,48,52,57,56,10,118,110,32,32,45,48,46,50,48,49,52,55,53,32,48,46, +56,53,48,54,53,51,32,45,48,46,52,56,53,53,57,48,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,57,55,49,54,49,49,32,45,48,46,50,51,54,53,56,51,10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,57,56,52,57,48,55,32,45,48,46,49,55,51,48,56,52, +10,118,110,32,32,45,48,46,48,48,48,48,48,48,32,48,46,57,50,53,49,48,56,32,45,48,46,51,55,57,55,48,51,10,118,110,32,32,48,46,48,48,48,48,48,48,32,48,46,56,53,48,48,54,56,32,45,48,46,53,50,54,54,55,51,10,118,110,32,32,48,46,48,57,48,50,49,54,32,48,46,57, +55,49,55,55,53,32,45,48,46,50,49,55,57,55,56,10,118,110,32,32,48,46,48,54,53,57,54,49,32,48,46,57,56,52,57,55,55,32,45,48,46,49,53,57,53,56,57,10,118,110,32,32,48,46,49,52,52,55,52,48,32,48,46,57,50,53,51,49,49,32,45,48,46,51,53,48,52,57,56,10,118,110, +32,32,48,46,50,48,49,52,55,52,32,48,46,56,53,48,54,53,51,32,45,48,46,52,56,53,53,57,48,10,118,110,32,32,48,46,49,54,54,54,51,49,32,48,46,57,55,49,56,51,56,32,45,48,46,49,54,54,54,51,49,10,118,110,32,32,48,46,49,50,49,57,48,56,32,48,46,57,56,53,48,50, +54,32,45,48,46,49,50,49,57,48,56,10,118,110,32,32,48,46,50,54,55,54,54,56,32,48,46,57,50,53,53,56,53,32,45,48,46,50,54,55,54,54,56,10,118,110,32,32,48,46,51,55,49,51,49,53,32,48,46,56,53,49,48,50,57,32,45,48,46,51,55,49,51,49,53,10,118,110,32,32,48,46, +50,49,55,57,55,56,32,48,46,57,55,49,55,55,53,32,45,48,46,48,57,48,50,49,54,10,118,110,32,32,48,46,49,53,57,53,56,57,32,48,46,57,56,52,57,55,55,32,45,48,46,48,54,53,57,54,49,10,118,110,32,32,48,46,51,53,48,52,57,56,32,48,46,57,50,53,51,49,49,32,45,48, +46,49,52,52,55,52,48,10,118,110,32,32,48,46,52,56,53,53,57,48,32,48,46,56,53,48,54,53,51,32,45,48,46,50,48,49,52,55,53,10,35,32,53,51,48,32,118,101,114,116,101,120,32,110,111,114,109,97,108,115,10,10,103,32,84,101,97,112,111,116,48,49,10,102,32,49,47, +49,47,49,32,54,47,54,47,54,32,55,47,55,47,55,10,102,32,55,47,55,47,55,32,50,47,50,47,50,32,49,47,49,47,49,10,102,32,50,47,50,47,50,32,55,47,55,47,55,32,56,47,56,47,56,10,102,32,56,47,56,47,56,32,51,47,51,47,51,32,50,47,50,47,50,10,102,32,51,47,51,47, +51,32,56,47,56,47,56,32,57,47,57,47,57,10,102,32,57,47,57,47,57,32,52,47,52,47,52,32,51,47,51,47,51,10,102,32,52,47,52,47,52,32,57,47,57,47,57,32,49,48,47,49,48,47,49,48,10,102,32,49,48,47,49,48,47,49,48,32,53,47,53,47,53,32,52,47,52,47,52,10,102,32, +54,47,54,47,54,32,49,49,47,49,49,47,49,49,32,49,50,47,49,50,47,49,50,10,102,32,49,50,47,49,50,47,49,50,32,55,47,55,47,55,32,54,47,54,47,54,10,102,32,55,47,55,47,55,32,49,50,47,49,50,47,49,50,32,49,51,47,49,51,47,49,51,10,102,32,49,51,47,49,51,47,49,51, +32,56,47,56,47,56,32,55,47,55,47,55,10,102,32,56,47,56,47,56,32,49,51,47,49,51,47,49,51,32,49,52,47,49,52,47,49,52,10,102,32,49,52,47,49,52,47,49,52,32,57,47,57,47,57,32,56,47,56,47,56,10,102,32,57,47,57,47,57,32,49,52,47,49,52,47,49,52,32,49,53,47,49, +53,47,49,53,10,102,32,49,53,47,49,53,47,49,53,32,49,48,47,49,48,47,49,48,32,57,47,57,47,57,10,102,32,49,49,47,49,49,47,49,49,32,49,54,47,49,54,47,49,54,32,49,55,47,49,55,47,49,55,10,102,32,49,55,47,49,55,47,49,55,32,49,50,47,49,50,47,49,50,32,49,49,47, +49,49,47,49,49,10,102,32,49,50,47,49,50,47,49,50,32,49,55,47,49,55,47,49,55,32,49,56,47,49,56,47,49,56,10,102,32,49,56,47,49,56,47,49,56,32,49,51,47,49,51,47,49,51,32,49,50,47,49,50,47,49,50,10,102,32,49,51,47,49,51,47,49,51,32,49,56,47,49,56,47,49,56, +32,49,57,47,49,57,47,49,57,10,102,32,49,57,47,49,57,47,49,57,32,49,52,47,49,52,47,49,52,32,49,51,47,49,51,47,49,51,10,102,32,49,52,47,49,52,47,49,52,32,49,57,47,49,57,47,49,57,32,50,48,47,50,48,47,50,48,10,102,32,50,48,47,50,48,47,50,48,32,49,53,47,49, +53,47,49,53,32,49,52,47,49,52,47,49,52,10,102,32,49,54,47,49,54,47,49,54,32,50,49,47,50,49,47,50,49,32,50,50,47,50,50,47,50,50,10,102,32,50,50,47,50,50,47,50,50,32,49,55,47,49,55,47,49,55,32,49,54,47,49,54,47,49,54,10,102,32,49,55,47,49,55,47,49,55,32, +50,50,47,50,50,47,50,50,32,50,51,47,50,51,47,50,51,10,102,32,50,51,47,50,51,47,50,51,32,49,56,47,49,56,47,49,56,32,49,55,47,49,55,47,49,55,10,102,32,49,56,47,49,56,47,49,56,32,50,51,47,50,51,47,50,51,32,50,52,47,50,52,47,50,52,10,102,32,50,52,47,50,52, +47,50,52,32,49,57,47,49,57,47,49,57,32,49,56,47,49,56,47,49,56,10,102,32,49,57,47,49,57,47,49,57,32,50,52,47,50,52,47,50,52,32,50,53,47,50,53,47,50,53,10,102,32,50,53,47,50,53,47,50,53,32,50,48,47,50,48,47,50,48,32,49,57,47,49,57,47,49,57,10,102,32,50, +49,47,50,54,47,50,49,32,50,54,47,51,49,47,50,54,32,50,55,47,51,50,47,50,55,10,102,32,50,55,47,51,50,47,50,55,32,50,50,47,50,55,47,50,50,32,50,49,47,50,54,47,50,49,10,102,32,50,50,47,50,55,47,50,50,32,50,55,47,51,50,47,50,55,32,50,56,47,51,51,47,50,56, +10,102,32,50,56,47,51,51,47,50,56,32,50,51,47,50,56,47,50,51,32,50,50,47,50,55,47,50,50,10,102,32,50,51,47,50,56,47,50,51,32,50,56,47,51,51,47,50,56,32,50,57,47,51,52,47,50,57,10,102,32,50,57,47,51,52,47,50,57,32,50,52,47,50,57,47,50,52,32,50,51,47,50, +56,47,50,51,10,102,32,50,52,47,50,57,47,50,52,32,50,57,47,51,52,47,50,57,32,51,48,47,51,53,47,51,48,10,102,32,51,48,47,51,53,47,51,48,32,50,53,47,51,48,47,50,53,32,50,52,47,50,57,47,50,52,10,102,32,50,54,47,51,49,47,50,54,32,51,49,47,51,54,47,51,49,32, +51,50,47,51,55,47,51,50,10,102,32,51,50,47,51,55,47,51,50,32,50,55,47,51,50,47,50,55,32,50,54,47,51,49,47,50,54,10,102,32,50,55,47,51,50,47,50,55,32,51,50,47,51,55,47,51,50,32,51,51,47,51,56,47,51,51,10,102,32,51,51,47,51,56,47,51,51,32,50,56,47,51,51, +47,50,56,32,50,55,47,51,50,47,50,55,10,102,32,50,56,47,51,51,47,50,56,32,51,51,47,51,56,47,51,51,32,51,52,47,51,57,47,51,52,10,102,32,51,52,47,51,57,47,51,52,32,50,57,47,51,52,47,50,57,32,50,56,47,51,51,47,50,56,10,102,32,50,57,47,51,52,47,50,57,32,51, +52,47,51,57,47,51,52,32,51,53,47,52,48,47,51,53,10,102,32,51,53,47,52,48,47,51,53,32,51,48,47,51,53,47,51,48,32,50,57,47,51,52,47,50,57,10,102,32,51,49,47,51,54,47,51,49,32,51,54,47,52,49,47,51,54,32,51,55,47,52,50,47,51,55,10,102,32,51,55,47,52,50,47, +51,55,32,51,50,47,51,55,47,51,50,32,51,49,47,51,54,47,51,49,10,102,32,51,50,47,51,55,47,51,50,32,51,55,47,52,50,47,51,55,32,51,56,47,52,51,47,51,56,10,102,32,51,56,47,52,51,47,51,56,32,51,51,47,51,56,47,51,51,32,51,50,47,51,55,47,51,50,10,102,32,51,51, +47,51,56,47,51,51,32,51,56,47,52,51,47,51,56,32,51,57,47,52,52,47,51,57,10,102,32,51,57,47,52,52,47,51,57,32,51,52,47,51,57,47,51,52,32,51,51,47,51,56,47,51,51,10,102,32,51,52,47,51,57,47,51,52,32,51,57,47,52,52,47,51,57,32,52,48,47,52,53,47,52,48,10, +102,32,52,48,47,52,53,47,52,48,32,51,53,47,52,48,47,51,53,32,51,52,47,51,57,47,51,52,10,102,32,51,54,47,52,49,47,51,54,32,52,49,47,52,54,47,52,49,32,52,50,47,52,55,47,52,50,10,102,32,52,50,47,52,55,47,52,50,32,51,55,47,52,50,47,51,55,32,51,54,47,52,49, +47,51,54,10,102,32,51,55,47,52,50,47,51,55,32,52,50,47,52,55,47,52,50,32,52,51,47,52,56,47,52,51,10,102,32,52,51,47,52,56,47,52,51,32,51,56,47,52,51,47,51,56,32,51,55,47,52,50,47,51,55,10,102,32,51,56,47,52,51,47,51,56,32,52,51,47,52,56,47,52,51,32,52, +52,47,52,57,47,52,52,10,102,32,52,52,47,52,57,47,52,52,32,51,57,47,52,52,47,51,57,32,51,56,47,52,51,47,51,56,10,102,32,51,57,47,52,52,47,51,57,32,52,52,47,52,57,47,52,52,32,52,53,47,53,48,47,52,53,10,102,32,52,53,47,53,48,47,52,53,32,52,48,47,52,53,47, +52,48,32,51,57,47,52,52,47,51,57,10,102,32,52,49,47,53,49,47,52,49,32,52,54,47,53,54,47,52,54,32,52,55,47,53,55,47,52,55,10,102,32,52,55,47,53,55,47,52,55,32,52,50,47,53,50,47,52,50,32,52,49,47,53,49,47,52,49,10,102,32,52,50,47,53,50,47,52,50,32,52,55, +47,53,55,47,52,55,32,52,56,47,53,56,47,52,56,10,102,32,52,56,47,53,56,47,52,56,32,52,51,47,53,51,47,52,51,32,52,50,47,53,50,47,52,50,10,102,32,52,51,47,53,51,47,52,51,32,52,56,47,53,56,47,52,56,32,52,57,47,53,57,47,52,57,10,102,32,52,57,47,53,57,47,52, +57,32,52,52,47,53,52,47,52,52,32,52,51,47,53,51,47,52,51,10,102,32,52,52,47,53,52,47,52,52,32,52,57,47,53,57,47,52,57,32,53,48,47,54,48,47,53,48,10,102,32,53,48,47,54,48,47,53,48,32,52,53,47,53,53,47,52,53,32,52,52,47,53,52,47,52,52,10,102,32,52,54,47, +53,54,47,52,54,32,53,49,47,54,49,47,53,49,32,53,50,47,54,50,47,53,50,10,102,32,53,50,47,54,50,47,53,50,32,52,55,47,53,55,47,52,55,32,52,54,47,53,54,47,52,54,10,102,32,52,55,47,53,55,47,52,55,32,53,50,47,54,50,47,53,50,32,53,51,47,54,51,47,53,51,10,102, +32,53,51,47,54,51,47,53,51,32,52,56,47,53,56,47,52,56,32,52,55,47,53,55,47,52,55,10,102,32,52,56,47,53,56,47,52,56,32,53,51,47,54,51,47,53,51,32,53,52,47,54,52,47,53,52,10,102,32,53,52,47,54,52,47,53,52,32,52,57,47,53,57,47,52,57,32,52,56,47,53,56,47, +52,56,10,102,32,52,57,47,53,57,47,52,57,32,53,52,47,54,52,47,53,52,32,53,53,47,54,53,47,53,53,10,102,32,53,53,47,54,53,47,53,53,32,53,48,47,54,48,47,53,48,32,52,57,47,53,57,47,52,57,10,102,32,53,49,47,54,49,47,53,49,32,53,54,47,54,54,47,53,54,32,53,55, +47,54,55,47,53,55,10,102,32,53,55,47,54,55,47,53,55,32,53,50,47,54,50,47,53,50,32,53,49,47,54,49,47,53,49,10,102,32,53,50,47,54,50,47,53,50,32,53,55,47,54,55,47,53,55,32,53,56,47,54,56,47,53,56,10,102,32,53,56,47,54,56,47,53,56,32,53,51,47,54,51,47,53, +51,32,53,50,47,54,50,47,53,50,10,102,32,53,51,47,54,51,47,53,51,32,53,56,47,54,56,47,53,56,32,53,57,47,54,57,47,53,57,10,102,32,53,57,47,54,57,47,53,57,32,53,52,47,54,52,47,53,52,32,53,51,47,54,51,47,53,51,10,102,32,53,52,47,54,52,47,53,52,32,53,57,47, +54,57,47,53,57,32,54,48,47,55,48,47,54,48,10,102,32,54,48,47,55,48,47,54,48,32,53,53,47,54,53,47,53,53,32,53,52,47,54,52,47,53,52,10,102,32,53,54,47,54,54,47,53,54,32,54,49,47,55,49,47,54,49,32,54,50,47,55,50,47,54,50,10,102,32,54,50,47,55,50,47,54,50, +32,53,55,47,54,55,47,53,55,32,53,54,47,54,54,47,53,54,10,102,32,53,55,47,54,55,47,53,55,32,54,50,47,55,50,47,54,50,32,54,51,47,55,51,47,54,51,10,102,32,54,51,47,55,51,47,54,51,32,53,56,47,54,56,47,53,56,32,53,55,47,54,55,47,53,55,10,102,32,53,56,47,54, +56,47,53,56,32,54,51,47,55,51,47,54,51,32,54,52,47,55,52,47,54,52,10,102,32,54,52,47,55,52,47,54,52,32,53,57,47,54,57,47,53,57,32,53,56,47,54,56,47,53,56,10,102,32,53,57,47,54,57,47,53,57,32,54,52,47,55,52,47,54,52,32,54,53,47,55,53,47,54,53,10,102,32, +54,53,47,55,53,47,54,53,32,54,48,47,55,48,47,54,48,32,53,57,47,54,57,47,53,57,10,102,32,54,49,47,55,54,47,54,49,32,54,54,47,56,49,47,54,54,32,54,55,47,56,50,47,54,55,10,102,32,54,55,47,56,50,47,54,55,32,54,50,47,55,55,47,54,50,32,54,49,47,55,54,47,54, +49,10,102,32,54,50,47,55,55,47,54,50,32,54,55,47,56,50,47,54,55,32,54,56,47,56,51,47,54,56,10,102,32,54,56,47,56,51,47,54,56,32,54,51,47,55,56,47,54,51,32,54,50,47,55,55,47,54,50,10,102,32,54,51,47,55,56,47,54,51,32,54,56,47,56,51,47,54,56,32,54,57,47, +56,52,47,54,57,10,102,32,54,57,47,56,52,47,54,57,32,54,52,47,55,57,47,54,52,32,54,51,47,55,56,47,54,51,10,102,32,54,52,47,55,57,47,54,52,32,54,57,47,56,52,47,54,57,32,55,48,47,56,53,47,55,48,10,102,32,55,48,47,56,53,47,55,48,32,54,53,47,56,48,47,54,53, +32,54,52,47,55,57,47,54,52,10,102,32,54,54,47,56,49,47,54,54,32,55,49,47,56,54,47,55,49,32,55,50,47,56,55,47,55,50,10,102,32,55,50,47,56,55,47,55,50,32,54,55,47,56,50,47,54,55,32,54,54,47,56,49,47,54,54,10,102,32,54,55,47,56,50,47,54,55,32,55,50,47,56, +55,47,55,50,32,55,51,47,56,56,47,55,51,10,102,32,55,51,47,56,56,47,55,51,32,54,56,47,56,51,47,54,56,32,54,55,47,56,50,47,54,55,10,102,32,54,56,47,56,51,47,54,56,32,55,51,47,56,56,47,55,51,32,55,52,47,56,57,47,55,52,10,102,32,55,52,47,56,57,47,55,52,32, +54,57,47,56,52,47,54,57,32,54,56,47,56,51,47,54,56,10,102,32,54,57,47,56,52,47,54,57,32,55,52,47,56,57,47,55,52,32,55,53,47,57,48,47,55,53,10,102,32,55,53,47,57,48,47,55,53,32,55,48,47,56,53,47,55,48,32,54,57,47,56,52,47,54,57,10,102,32,55,49,47,56,54, +47,55,49,32,55,54,47,57,49,47,55,54,32,55,55,47,57,50,47,55,55,10,102,32,55,55,47,57,50,47,55,55,32,55,50,47,56,55,47,55,50,32,55,49,47,56,54,47,55,49,10,102,32,55,50,47,56,55,47,55,50,32,55,55,47,57,50,47,55,55,32,55,56,47,57,51,47,55,56,10,102,32,55, +56,47,57,51,47,55,56,32,55,51,47,56,56,47,55,51,32,55,50,47,56,55,47,55,50,10,102,32,55,51,47,56,56,47,55,51,32,55,56,47,57,51,47,55,56,32,55,57,47,57,52,47,55,57,10,102,32,55,57,47,57,52,47,55,57,32,55,52,47,56,57,47,55,52,32,55,51,47,56,56,47,55,51, +10,102,32,55,52,47,56,57,47,55,52,32,55,57,47,57,52,47,55,57,32,56,48,47,57,53,47,56,48,10,102,32,56,48,47,57,53,47,56,48,32,55,53,47,57,48,47,55,53,32,55,52,47,56,57,47,55,52,10,102,32,55,54,47,57,49,47,55,54,32,49,47,57,54,47,49,32,50,47,57,55,47,50, +10,102,32,50,47,57,55,47,50,32,55,55,47,57,50,47,55,55,32,55,54,47,57,49,47,55,54,10,102,32,55,55,47,57,50,47,55,55,32,50,47,57,55,47,50,32,51,47,57,56,47,51,10,102,32,51,47,57,56,47,51,32,55,56,47,57,51,47,55,56,32,55,55,47,57,50,47,55,55,10,102,32, +55,56,47,57,51,47,55,56,32,51,47,57,56,47,51,32,52,47,57,57,47,52,10,102,32,52,47,57,57,47,52,32,55,57,47,57,52,47,55,57,32,55,56,47,57,51,47,55,56,10,102,32,55,57,47,57,52,47,55,57,32,52,47,57,57,47,52,32,53,47,49,48,48,47,53,10,102,32,53,47,49,48,48, +47,53,32,56,48,47,57,53,47,56,48,32,55,57,47,57,52,47,55,57,10,102,32,53,47,49,48,49,47,53,32,49,48,47,49,48,54,47,49,48,32,56,53,47,49,48,55,47,56,53,10,102,32,56,53,47,49,48,55,47,56,53,32,56,49,47,49,48,50,47,56,49,32,53,47,49,48,49,47,53,10,102,32, +56,49,47,49,48,50,47,56,49,32,56,53,47,49,48,55,47,56,53,32,56,54,47,49,48,56,47,56,54,10,102,32,56,54,47,49,48,56,47,56,54,32,56,50,47,49,48,51,47,56,50,32,56,49,47,49,48,50,47,56,49,10,102,32,56,50,47,49,48,51,47,56,50,32,56,54,47,49,48,56,47,56,54, +32,56,55,47,49,48,57,47,56,55,10,102,32,56,55,47,49,48,57,47,56,55,32,56,51,47,49,48,52,47,56,51,32,56,50,47,49,48,51,47,56,50,10,102,32,56,51,47,49,48,52,47,56,51,32,56,55,47,49,48,57,47,56,55,32,56,56,47,49,49,48,47,56,56,10,102,32,56,56,47,49,49,48, +47,56,56,32,56,52,47,49,48,53,47,56,52,32,56,51,47,49,48,52,47,56,51,10,102,32,49,48,47,49,48,54,47,49,48,32,49,53,47,49,49,49,47,49,53,32,56,57,47,49,49,50,47,56,57,10,102,32,56,57,47,49,49,50,47,56,57,32,56,53,47,49,48,55,47,56,53,32,49,48,47,49,48, +54,47,49,48,10,102,32,56,53,47,49,48,55,47,56,53,32,56,57,47,49,49,50,47,56,57,32,57,48,47,49,49,51,47,57,48,10,102,32,57,48,47,49,49,51,47,57,48,32,56,54,47,49,48,56,47,56,54,32,56,53,47,49,48,55,47,56,53,10,102,32,56,54,47,49,48,56,47,56,54,32,57,48, +47,49,49,51,47,57,48,32,57,49,47,49,49,52,47,57,49,10,102,32,57,49,47,49,49,52,47,57,49,32,56,55,47,49,48,57,47,56,55,32,56,54,47,49,48,56,47,56,54,10,102,32,56,55,47,49,48,57,47,56,55,32,57,49,47,49,49,52,47,57,49,32,57,50,47,49,49,53,47,57,50,10,102, +32,57,50,47,49,49,53,47,57,50,32,56,56,47,49,49,48,47,56,56,32,56,55,47,49,48,57,47,56,55,10,102,32,49,53,47,49,49,49,47,49,53,32,50,48,47,49,49,54,47,50,48,32,57,51,47,49,49,55,47,57,51,10,102,32,57,51,47,49,49,55,47,57,51,32,56,57,47,49,49,50,47,56, +57,32,49,53,47,49,49,49,47,49,53,10,102,32,56,57,47,49,49,50,47,56,57,32,57,51,47,49,49,55,47,57,51,32,57,52,47,49,49,56,47,57,52,10,102,32,57,52,47,49,49,56,47,57,52,32,57,48,47,49,49,51,47,57,48,32,56,57,47,49,49,50,47,56,57,10,102,32,57,48,47,49,49, +51,47,57,48,32,57,52,47,49,49,56,47,57,52,32,57,53,47,49,49,57,47,57,53,10,102,32,57,53,47,49,49,57,47,57,53,32,57,49,47,49,49,52,47,57,49,32,57,48,47,49,49,51,47,57,48,10,102,32,57,49,47,49,49,52,47,57,49,32,57,53,47,49,49,57,47,57,53,32,57,54,47,49, +50,48,47,57,54,10,102,32,57,54,47,49,50,48,47,57,54,32,57,50,47,49,49,53,47,57,50,32,57,49,47,49,49,52,47,57,49,10,102,32,50,48,47,49,49,54,47,50,48,32,50,53,47,49,50,49,47,50,53,32,57,55,47,49,50,50,47,57,55,10,102,32,57,55,47,49,50,50,47,57,55,32,57, +51,47,49,49,55,47,57,51,32,50,48,47,49,49,54,47,50,48,10,102,32,57,51,47,49,49,55,47,57,51,32,57,55,47,49,50,50,47,57,55,32,57,56,47,49,50,51,47,57,56,10,102,32,57,56,47,49,50,51,47,57,56,32,57,52,47,49,49,56,47,57,52,32,57,51,47,49,49,55,47,57,51,10, +102,32,57,52,47,49,49,56,47,57,52,32,57,56,47,49,50,51,47,57,56,32,57,57,47,49,50,52,47,57,57,10,102,32,57,57,47,49,50,52,47,57,57,32,57,53,47,49,49,57,47,57,53,32,57,52,47,49,49,56,47,57,52,10,102,32,57,53,47,49,49,57,47,57,53,32,57,57,47,49,50,52,47, +57,57,32,49,48,48,47,49,50,53,47,49,48,48,10,102,32,49,48,48,47,49,50,53,47,49,48,48,32,57,54,47,49,50,48,47,57,54,32,57,53,47,49,49,57,47,57,53,10,102,32,50,53,47,49,50,54,47,50,53,32,51,48,47,49,51,49,47,51,48,32,49,48,49,47,49,51,50,47,49,48,49,10, +102,32,49,48,49,47,49,51,50,47,49,48,49,32,57,55,47,49,50,55,47,57,55,32,50,53,47,49,50,54,47,50,53,10,102,32,57,55,47,49,50,55,47,57,55,32,49,48,49,47,49,51,50,47,49,48,49,32,49,48,50,47,49,51,51,47,49,48,50,10,102,32,49,48,50,47,49,51,51,47,49,48,50, +32,57,56,47,49,50,56,47,57,56,32,57,55,47,49,50,55,47,57,55,10,102,32,57,56,47,49,50,56,47,57,56,32,49,48,50,47,49,51,51,47,49,48,50,32,49,48,51,47,49,51,52,47,49,48,51,10,102,32,49,48,51,47,49,51,52,47,49,48,51,32,57,57,47,49,50,57,47,57,57,32,57,56, +47,49,50,56,47,57,56,10,102,32,57,57,47,49,50,57,47,57,57,32,49,48,51,47,49,51,52,47,49,48,51,32,49,48,52,47,49,51,53,47,49,48,52,10,102,32,49,48,52,47,49,51,53,47,49,48,52,32,49,48,48,47,49,51,48,47,49,48,48,32,57,57,47,49,50,57,47,57,57,10,102,32,51, +48,47,49,51,49,47,51,48,32,51,53,47,49,51,54,47,51,53,32,49,48,53,47,49,51,55,47,49,48,53,10,102,32,49,48,53,47,49,51,55,47,49,48,53,32,49,48,49,47,49,51,50,47,49,48,49,32,51,48,47,49,51,49,47,51,48,10,102,32,49,48,49,47,49,51,50,47,49,48,49,32,49,48, +53,47,49,51,55,47,49,48,53,32,49,48,54,47,49,51,56,47,49,48,54,10,102,32,49,48,54,47,49,51,56,47,49,48,54,32,49,48,50,47,49,51,51,47,49,48,50,32,49,48,49,47,49,51,50,47,49,48,49,10,102,32,49,48,50,47,49,51,51,47,49,48,50,32,49,48,54,47,49,51,56,47,49, +48,54,32,49,48,55,47,49,51,57,47,49,48,55,10,102,32,49,48,55,47,49,51,57,47,49,48,55,32,49,48,51,47,49,51,52,47,49,48,51,32,49,48,50,47,49,51,51,47,49,48,50,10,102,32,49,48,51,47,49,51,52,47,49,48,51,32,49,48,55,47,49,51,57,47,49,48,55,32,49,48,56,47, +49,52,48,47,49,48,56,10,102,32,49,48,56,47,49,52,48,47,49,48,56,32,49,48,52,47,49,51,53,47,49,48,52,32,49,48,51,47,49,51,52,47,49,48,51,10,102,32,51,53,47,49,51,54,47,51,53,32,52,48,47,49,52,49,47,52,48,32,49,48,57,47,49,52,50,47,49,48,57,10,102,32,49, +48,57,47,49,52,50,47,49,48,57,32,49,48,53,47,49,51,55,47,49,48,53,32,51,53,47,49,51,54,47,51,53,10,102,32,49,48,53,47,49,51,55,47,49,48,53,32,49,48,57,47,49,52,50,47,49,48,57,32,49,49,48,47,49,52,51,47,49,49,48,10,102,32,49,49,48,47,49,52,51,47,49,49, +48,32,49,48,54,47,49,51,56,47,49,48,54,32,49,48,53,47,49,51,55,47,49,48,53,10,102,32,49,48,54,47,49,51,56,47,49,48,54,32,49,49,48,47,49,52,51,47,49,49,48,32,49,49,49,47,49,52,52,47,49,49,49,10,102,32,49,49,49,47,49,52,52,47,49,49,49,32,49,48,55,47,49, +51,57,47,49,48,55,32,49,48,54,47,49,51,56,47,49,48,54,10,102,32,49,48,55,47,49,51,57,47,49,48,55,32,49,49,49,47,49,52,52,47,49,49,49,32,49,49,50,47,49,52,53,47,49,49,50,10,102,32,49,49,50,47,49,52,53,47,49,49,50,32,49,48,56,47,49,52,48,47,49,48,56,32, +49,48,55,47,49,51,57,47,49,48,55,10,102,32,52,48,47,49,52,49,47,52,48,32,52,53,47,49,52,54,47,52,53,32,49,49,51,47,49,52,55,47,49,49,51,10,102,32,49,49,51,47,49,52,55,47,49,49,51,32,49,48,57,47,49,52,50,47,49,48,57,32,52,48,47,49,52,49,47,52,48,10,102, +32,49,48,57,47,49,52,50,47,49,48,57,32,49,49,51,47,49,52,55,47,49,49,51,32,49,49,52,47,49,52,56,47,49,49,52,10,102,32,49,49,52,47,49,52,56,47,49,49,52,32,49,49,48,47,49,52,51,47,49,49,48,32,49,48,57,47,49,52,50,47,49,48,57,10,102,32,49,49,48,47,49,52, +51,47,49,49,48,32,49,49,52,47,49,52,56,47,49,49,52,32,49,49,53,47,49,52,57,47,49,49,53,10,102,32,49,49,53,47,49,52,57,47,49,49,53,32,49,49,49,47,49,52,52,47,49,49,49,32,49,49,48,47,49,52,51,47,49,49,48,10,102,32,49,49,49,47,49,52,52,47,49,49,49,32,49, +49,53,47,49,52,57,47,49,49,53,32,49,49,54,47,49,53,48,47,49,49,54,10,102,32,49,49,54,47,49,53,48,47,49,49,54,32,49,49,50,47,49,52,53,47,49,49,50,32,49,49,49,47,49,52,52,47,49,49,49,10,102,32,52,53,47,49,53,49,47,52,53,32,53,48,47,49,53,54,47,53,48,32, +49,49,55,47,49,53,55,47,49,49,55,10,102,32,49,49,55,47,49,53,55,47,49,49,55,32,49,49,51,47,49,53,50,47,49,49,51,32,52,53,47,49,53,49,47,52,53,10,102,32,49,49,51,47,49,53,50,47,49,49,51,32,49,49,55,47,49,53,55,47,49,49,55,32,49,49,56,47,49,53,56,47,49, +49,56,10,102,32,49,49,56,47,49,53,56,47,49,49,56,32,49,49,52,47,49,53,51,47,49,49,52,32,49,49,51,47,49,53,50,47,49,49,51,10,102,32,49,49,52,47,49,53,51,47,49,49,52,32,49,49,56,47,49,53,56,47,49,49,56,32,49,49,57,47,49,53,57,47,49,49,57,10,102,32,49,49, +57,47,49,53,57,47,49,49,57,32,49,49,53,47,49,53,52,47,49,49,53,32,49,49,52,47,49,53,51,47,49,49,52,10,102,32,49,49,53,47,49,53,52,47,49,49,53,32,49,49,57,47,49,53,57,47,49,49,57,32,49,50,48,47,49,54,48,47,49,50,48,10,102,32,49,50,48,47,49,54,48,47,49, +50,48,32,49,49,54,47,49,53,53,47,49,49,54,32,49,49,53,47,49,53,52,47,49,49,53,10,102,32,53,48,47,49,53,54,47,53,48,32,53,53,47,49,54,49,47,53,53,32,49,50,49,47,49,54,50,47,49,50,49,10,102,32,49,50,49,47,49,54,50,47,49,50,49,32,49,49,55,47,49,53,55,47, +49,49,55,32,53,48,47,49,53,54,47,53,48,10,102,32,49,49,55,47,49,53,55,47,49,49,55,32,49,50,49,47,49,54,50,47,49,50,49,32,49,50,50,47,49,54,51,47,49,50,50,10,102,32,49,50,50,47,49,54,51,47,49,50,50,32,49,49,56,47,49,53,56,47,49,49,56,32,49,49,55,47,49, +53,55,47,49,49,55,10,102,32,49,49,56,47,49,53,56,47,49,49,56,32,49,50,50,47,49,54,51,47,49,50,50,32,49,50,51,47,49,54,52,47,49,50,51,10,102,32,49,50,51,47,49,54,52,47,49,50,51,32,49,49,57,47,49,53,57,47,49,49,57,32,49,49,56,47,49,53,56,47,49,49,56,10, +102,32,49,49,57,47,49,53,57,47,49,49,57,32,49,50,51,47,49,54,52,47,49,50,51,32,49,50,52,47,49,54,53,47,49,50,52,10,102,32,49,50,52,47,49,54,53,47,49,50,52,32,49,50,48,47,49,54,48,47,49,50,48,32,49,49,57,47,49,53,57,47,49,49,57,10,102,32,53,53,47,49,54, +49,47,53,53,32,54,48,47,49,54,54,47,54,48,32,49,50,53,47,49,54,55,47,49,50,53,10,102,32,49,50,53,47,49,54,55,47,49,50,53,32,49,50,49,47,49,54,50,47,49,50,49,32,53,53,47,49,54,49,47,53,53,10,102,32,49,50,49,47,49,54,50,47,49,50,49,32,49,50,53,47,49,54, +55,47,49,50,53,32,49,50,54,47,49,54,56,47,49,50,54,10,102,32,49,50,54,47,49,54,56,47,49,50,54,32,49,50,50,47,49,54,51,47,49,50,50,32,49,50,49,47,49,54,50,47,49,50,49,10,102,32,49,50,50,47,49,54,51,47,49,50,50,32,49,50,54,47,49,54,56,47,49,50,54,32,49, +50,55,47,49,54,57,47,49,50,55,10,102,32,49,50,55,47,49,54,57,47,49,50,55,32,49,50,51,47,49,54,52,47,49,50,51,32,49,50,50,47,49,54,51,47,49,50,50,10,102,32,49,50,51,47,49,54,52,47,49,50,51,32,49,50,55,47,49,54,57,47,49,50,55,32,49,50,56,47,49,55,48,47, +49,50,56,10,102,32,49,50,56,47,49,55,48,47,49,50,56,32,49,50,52,47,49,54,53,47,49,50,52,32,49,50,51,47,49,54,52,47,49,50,51,10,102,32,54,48,47,49,54,54,47,54,48,32,54,53,47,49,55,49,47,54,53,32,49,50,57,47,49,55,50,47,49,50,57,10,102,32,49,50,57,47,49, +55,50,47,49,50,57,32,49,50,53,47,49,54,55,47,49,50,53,32,54,48,47,49,54,54,47,54,48,10,102,32,49,50,53,47,49,54,55,47,49,50,53,32,49,50,57,47,49,55,50,47,49,50,57,32,49,51,48,47,49,55,51,47,49,51,48,10,102,32,49,51,48,47,49,55,51,47,49,51,48,32,49,50, +54,47,49,54,56,47,49,50,54,32,49,50,53,47,49,54,55,47,49,50,53,10,102,32,49,50,54,47,49,54,56,47,49,50,54,32,49,51,48,47,49,55,51,47,49,51,48,32,49,51,49,47,49,55,52,47,49,51,49,10,102,32,49,51,49,47,49,55,52,47,49,51,49,32,49,50,55,47,49,54,57,47,49, +50,55,32,49,50,54,47,49,54,56,47,49,50,54,10,102,32,49,50,55,47,49,54,57,47,49,50,55,32,49,51,49,47,49,55,52,47,49,51,49,32,49,51,50,47,49,55,53,47,49,51,50,10,102,32,49,51,50,47,49,55,53,47,49,51,50,32,49,50,56,47,49,55,48,47,49,50,56,32,49,50,55,47, +49,54,57,47,49,50,55,10,102,32,54,53,47,49,55,54,47,54,53,32,55,48,47,49,56,49,47,55,48,32,49,51,51,47,49,56,50,47,49,51,51,10,102,32,49,51,51,47,49,56,50,47,49,51,51,32,49,50,57,47,49,55,55,47,49,50,57,32,54,53,47,49,55,54,47,54,53,10,102,32,49,50,57, +47,49,55,55,47,49,50,57,32,49,51,51,47,49,56,50,47,49,51,51,32,49,51,52,47,49,56,51,47,49,51,52,10,102,32,49,51,52,47,49,56,51,47,49,51,52,32,49,51,48,47,49,55,56,47,49,51,48,32,49,50,57,47,49,55,55,47,49,50,57,10,102,32,49,51,48,47,49,55,56,47,49,51, +48,32,49,51,52,47,49,56,51,47,49,51,52,32,49,51,53,47,49,56,52,47,49,51,53,10,102,32,49,51,53,47,49,56,52,47,49,51,53,32,49,51,49,47,49,55,57,47,49,51,49,32,49,51,48,47,49,55,56,47,49,51,48,10,102,32,49,51,49,47,49,55,57,47,49,51,49,32,49,51,53,47,49, +56,52,47,49,51,53,32,49,51,54,47,49,56,53,47,49,51,54,10,102,32,49,51,54,47,49,56,53,47,49,51,54,32,49,51,50,47,49,56,48,47,49,51,50,32,49,51,49,47,49,55,57,47,49,51,49,10,102,32,55,48,47,49,56,49,47,55,48,32,55,53,47,49,56,54,47,55,53,32,49,51,55,47, +49,56,55,47,49,51,55,10,102,32,49,51,55,47,49,56,55,47,49,51,55,32,49,51,51,47,49,56,50,47,49,51,51,32,55,48,47,49,56,49,47,55,48,10,102,32,49,51,51,47,49,56,50,47,49,51,51,32,49,51,55,47,49,56,55,47,49,51,55,32,49,51,56,47,49,56,56,47,49,51,56,10,102, +32,49,51,56,47,49,56,56,47,49,51,56,32,49,51,52,47,49,56,51,47,49,51,52,32,49,51,51,47,49,56,50,47,49,51,51,10,102,32,49,51,52,47,49,56,51,47,49,51,52,32,49,51,56,47,49,56,56,47,49,51,56,32,49,51,57,47,49,56,57,47,49,51,57,10,102,32,49,51,57,47,49,56, +57,47,49,51,57,32,49,51,53,47,49,56,52,47,49,51,53,32,49,51,52,47,49,56,51,47,49,51,52,10,102,32,49,51,53,47,49,56,52,47,49,51,53,32,49,51,57,47,49,56,57,47,49,51,57,32,49,52,48,47,49,57,48,47,49,52,48,10,102,32,49,52,48,47,49,57,48,47,49,52,48,32,49, +51,54,47,49,56,53,47,49,51,54,32,49,51,53,47,49,56,52,47,49,51,53,10,102,32,55,53,47,49,56,54,47,55,53,32,56,48,47,49,57,49,47,56,48,32,49,52,49,47,49,57,50,47,49,52,49,10,102,32,49,52,49,47,49,57,50,47,49,52,49,32,49,51,55,47,49,56,55,47,49,51,55,32, +55,53,47,49,56,54,47,55,53,10,102,32,49,51,55,47,49,56,55,47,49,51,55,32,49,52,49,47,49,57,50,47,49,52,49,32,49,52,50,47,49,57,51,47,49,52,50,10,102,32,49,52,50,47,49,57,51,47,49,52,50,32,49,51,56,47,49,56,56,47,49,51,56,32,49,51,55,47,49,56,55,47,49, +51,55,10,102,32,49,51,56,47,49,56,56,47,49,51,56,32,49,52,50,47,49,57,51,47,49,52,50,32,49,52,51,47,49,57,52,47,49,52,51,10,102,32,49,52,51,47,49,57,52,47,49,52,51,32,49,51,57,47,49,56,57,47,49,51,57,32,49,51,56,47,49,56,56,47,49,51,56,10,102,32,49,51, +57,47,49,56,57,47,49,51,57,32,49,52,51,47,49,57,52,47,49,52,51,32,49,52,52,47,49,57,53,47,49,52,52,10,102,32,49,52,52,47,49,57,53,47,49,52,52,32,49,52,48,47,49,57,48,47,49,52,48,32,49,51,57,47,49,56,57,47,49,51,57,10,102,32,56,48,47,49,57,49,47,56,48, +32,53,47,49,57,54,47,53,32,56,49,47,49,57,55,47,56,49,10,102,32,56,49,47,49,57,55,47,56,49,32,49,52,49,47,49,57,50,47,49,52,49,32,56,48,47,49,57,49,47,56,48,10,102,32,49,52,49,47,49,57,50,47,49,52,49,32,56,49,47,49,57,55,47,56,49,32,56,50,47,49,57,56, +47,56,50,10,102,32,56,50,47,49,57,56,47,56,50,32,49,52,50,47,49,57,51,47,49,52,50,32,49,52,49,47,49,57,50,47,49,52,49,10,102,32,49,52,50,47,49,57,51,47,49,52,50,32,56,50,47,49,57,56,47,56,50,32,56,51,47,49,57,57,47,56,51,10,102,32,56,51,47,49,57,57,47, +56,51,32,49,52,51,47,49,57,52,47,49,52,51,32,49,52,50,47,49,57,51,47,49,52,50,10,102,32,49,52,51,47,49,57,52,47,49,52,51,32,56,51,47,49,57,57,47,56,51,32,56,52,47,50,48,48,47,56,52,10,102,32,56,52,47,50,48,48,47,56,52,32,49,52,52,47,49,57,53,47,49,52, +52,32,49,52,51,47,49,57,52,47,49,52,51,10,102,32,56,52,47,50,48,49,47,56,52,32,56,56,47,50,48,54,47,56,56,32,49,52,57,47,50,48,55,47,49,52,57,10,102,32,49,52,57,47,50,48,55,47,49,52,57,32,49,52,53,47,50,48,50,47,49,52,53,32,56,52,47,50,48,49,47,56,52, +10,102,32,49,52,53,47,50,48,50,47,49,52,53,32,49,52,57,47,50,48,55,47,49,52,57,32,49,53,48,47,50,48,56,47,49,53,48,10,102,32,49,53,48,47,50,48,56,47,49,53,48,32,49,52,54,47,50,48,51,47,49,52,54,32,49,52,53,47,50,48,50,47,49,52,53,10,102,32,49,52,54,47, +50,48,51,47,49,52,54,32,49,53,48,47,50,48,56,47,49,53,48,32,49,53,49,47,50,48,57,47,49,53,49,10,102,32,49,53,49,47,50,48,57,47,49,53,49,32,49,52,55,47,50,48,52,47,49,52,55,32,49,52,54,47,50,48,51,47,49,52,54,10,102,32,49,52,55,47,50,48,52,47,49,52,55, +32,49,53,49,47,50,48,57,47,49,53,49,32,49,53,50,47,50,49,48,47,49,53,50,10,102,32,49,53,50,47,50,49,48,47,49,53,50,32,49,52,56,47,50,48,53,47,49,52,56,32,49,52,55,47,50,48,52,47,49,52,55,10,102,32,56,56,47,50,48,54,47,56,56,32,57,50,47,50,49,49,47,57, +50,32,49,53,51,47,50,49,50,47,49,53,51,10,102,32,49,53,51,47,50,49,50,47,49,53,51,32,49,52,57,47,50,48,55,47,49,52,57,32,56,56,47,50,48,54,47,56,56,10,102,32,49,52,57,47,50,48,55,47,49,52,57,32,49,53,51,47,50,49,50,47,49,53,51,32,49,53,52,47,50,49,51, +47,49,53,52,10,102,32,49,53,52,47,50,49,51,47,49,53,52,32,49,53,48,47,50,48,56,47,49,53,48,32,49,52,57,47,50,48,55,47,49,52,57,10,102,32,49,53,48,47,50,48,56,47,49,53,48,32,49,53,52,47,50,49,51,47,49,53,52,32,49,53,53,47,50,49,52,47,49,53,53,10,102,32, +49,53,53,47,50,49,52,47,49,53,53,32,49,53,49,47,50,48,57,47,49,53,49,32,49,53,48,47,50,48,56,47,49,53,48,10,102,32,49,53,49,47,50,48,57,47,49,53,49,32,49,53,53,47,50,49,52,47,49,53,53,32,49,53,54,47,50,49,53,47,49,53,54,10,102,32,49,53,54,47,50,49,53, +47,49,53,54,32,49,53,50,47,50,49,48,47,49,53,50,32,49,53,49,47,50,48,57,47,49,53,49,10,102,32,57,50,47,50,49,49,47,57,50,32,57,54,47,50,49,54,47,57,54,32,49,53,55,47,50,49,55,47,49,53,55,10,102,32,49,53,55,47,50,49,55,47,49,53,55,32,49,53,51,47,50,49, +50,47,49,53,51,32,57,50,47,50,49,49,47,57,50,10,102,32,49,53,51,47,50,49,50,47,49,53,51,32,49,53,55,47,50,49,55,47,49,53,55,32,49,53,56,47,50,49,56,47,49,53,56,10,102,32,49,53,56,47,50,49,56,47,49,53,56,32,49,53,52,47,50,49,51,47,49,53,52,32,49,53,51, +47,50,49,50,47,49,53,51,10,102,32,49,53,52,47,50,49,51,47,49,53,52,32,49,53,56,47,50,49,56,47,49,53,56,32,49,53,57,47,50,49,57,47,49,53,57,10,102,32,49,53,57,47,50,49,57,47,49,53,57,32,49,53,53,47,50,49,52,47,49,53,53,32,49,53,52,47,50,49,51,47,49,53, +52,10,102,32,49,53,53,47,50,49,52,47,49,53,53,32,49,53,57,47,50,49,57,47,49,53,57,32,49,54,48,47,50,50,48,47,49,54,48,10,102,32,49,54,48,47,50,50,48,47,49,54,48,32,49,53,54,47,50,49,53,47,49,53,54,32,49,53,53,47,50,49,52,47,49,53,53,10,102,32,57,54,47, +50,49,54,47,57,54,32,49,48,48,47,50,50,49,47,49,48,48,32,49,54,49,47,50,50,50,47,49,54,49,10,102,32,49,54,49,47,50,50,50,47,49,54,49,32,49,53,55,47,50,49,55,47,49,53,55,32,57,54,47,50,49,54,47,57,54,10,102,32,49,53,55,47,50,49,55,47,49,53,55,32,49,54, +49,47,50,50,50,47,49,54,49,32,49,54,50,47,50,50,51,47,49,54,50,10,102,32,49,54,50,47,50,50,51,47,49,54,50,32,49,53,56,47,50,49,56,47,49,53,56,32,49,53,55,47,50,49,55,47,49,53,55,10,102,32,49,53,56,47,50,49,56,47,49,53,56,32,49,54,50,47,50,50,51,47,49, +54,50,32,49,54,51,47,50,50,52,47,49,54,51,10,102,32,49,54,51,47,50,50,52,47,49,54,51,32,49,53,57,47,50,49,57,47,49,53,57,32,49,53,56,47,50,49,56,47,49,53,56,10,102,32,49,53,57,47,50,49,57,47,49,53,57,32,49,54,51,47,50,50,52,47,49,54,51,32,49,54,52,47, +50,50,53,47,49,54,52,10,102,32,49,54,52,47,50,50,53,47,49,54,52,32,49,54,48,47,50,50,48,47,49,54,48,32,49,53,57,47,50,49,57,47,49,53,57,10,102,32,49,48,48,47,50,50,54,47,49,48,48,32,49,48,52,47,50,51,49,47,49,48,52,32,49,54,53,47,50,51,50,47,49,54,53, +10,102,32,49,54,53,47,50,51,50,47,49,54,53,32,49,54,49,47,50,50,55,47,49,54,49,32,49,48,48,47,50,50,54,47,49,48,48,10,102,32,49,54,49,47,50,50,55,47,49,54,49,32,49,54,53,47,50,51,50,47,49,54,53,32,49,54,54,47,50,51,51,47,49,54,54,10,102,32,49,54,54,47, +50,51,51,47,49,54,54,32,49,54,50,47,50,50,56,47,49,54,50,32,49,54,49,47,50,50,55,47,49,54,49,10,102,32,49,54,50,47,50,50,56,47,49,54,50,32,49,54,54,47,50,51,51,47,49,54,54,32,49,54,55,47,50,51,52,47,49,54,55,10,102,32,49,54,55,47,50,51,52,47,49,54,55, +32,49,54,51,47,50,50,57,47,49,54,51,32,49,54,50,47,50,50,56,47,49,54,50,10,102,32,49,54,51,47,50,50,57,47,49,54,51,32,49,54,55,47,50,51,52,47,49,54,55,32,49,54,56,47,50,51,53,47,49,54,56,10,102,32,49,54,56,47,50,51,53,47,49,54,56,32,49,54,52,47,50,51, +48,47,49,54,52,32,49,54,51,47,50,50,57,47,49,54,51,10,102,32,49,48,52,47,50,51,49,47,49,48,52,32,49,48,56,47,50,51,54,47,49,48,56,32,49,54,57,47,50,51,55,47,49,54,57,10,102,32,49,54,57,47,50,51,55,47,49,54,57,32,49,54,53,47,50,51,50,47,49,54,53,32,49, +48,52,47,50,51,49,47,49,48,52,10,102,32,49,54,53,47,50,51,50,47,49,54,53,32,49,54,57,47,50,51,55,47,49,54,57,32,49,55,48,47,50,51,56,47,49,55,48,10,102,32,49,55,48,47,50,51,56,47,49,55,48,32,49,54,54,47,50,51,51,47,49,54,54,32,49,54,53,47,50,51,50,47, +49,54,53,10,102,32,49,54,54,47,50,51,51,47,49,54,54,32,49,55,48,47,50,51,56,47,49,55,48,32,49,55,49,47,50,51,57,47,49,55,49,10,102,32,49,55,49,47,50,51,57,47,49,55,49,32,49,54,55,47,50,51,52,47,49,54,55,32,49,54,54,47,50,51,51,47,49,54,54,10,102,32,49, +54,55,47,50,51,52,47,49,54,55,32,49,55,49,47,50,51,57,47,49,55,49,32,49,55,50,47,50,52,48,47,49,55,50,10,102,32,49,55,50,47,50,52,48,47,49,55,50,32,49,54,56,47,50,51,53,47,49,54,56,32,49,54,55,47,50,51,52,47,49,54,55,10,102,32,49,48,56,47,50,51,54,47, +49,48,56,32,49,49,50,47,50,52,49,47,49,49,50,32,49,55,51,47,50,52,50,47,49,55,51,10,102,32,49,55,51,47,50,52,50,47,49,55,51,32,49,54,57,47,50,51,55,47,49,54,57,32,49,48,56,47,50,51,54,47,49,48,56,10,102,32,49,54,57,47,50,51,55,47,49,54,57,32,49,55,51, +47,50,52,50,47,49,55,51,32,49,55,52,47,50,52,51,47,49,55,52,10,102,32,49,55,52,47,50,52,51,47,49,55,52,32,49,55,48,47,50,51,56,47,49,55,48,32,49,54,57,47,50,51,55,47,49,54,57,10,102,32,49,55,48,47,50,51,56,47,49,55,48,32,49,55,52,47,50,52,51,47,49,55, +52,32,49,55,53,47,50,52,52,47,49,55,53,10,102,32,49,55,53,47,50,52,52,47,49,55,53,32,49,55,49,47,50,51,57,47,49,55,49,32,49,55,48,47,50,51,56,47,49,55,48,10,102,32,49,55,49,47,50,51,57,47,49,55,49,32,49,55,53,47,50,52,52,47,49,55,53,32,49,55,54,47,50, +52,53,47,49,55,54,10,102,32,49,55,54,47,50,52,53,47,49,55,54,32,49,55,50,47,50,52,48,47,49,55,50,32,49,55,49,47,50,51,57,47,49,55,49,10,102,32,49,49,50,47,50,52,49,47,49,49,50,32,49,49,54,47,50,52,54,47,49,49,54,32,49,55,55,47,50,52,55,47,49,55,55,10, +102,32,49,55,55,47,50,52,55,47,49,55,55,32,49,55,51,47,50,52,50,47,49,55,51,32,49,49,50,47,50,52,49,47,49,49,50,10,102,32,49,55,51,47,50,52,50,47,49,55,51,32,49,55,55,47,50,52,55,47,49,55,55,32,49,55,56,47,50,52,56,47,49,55,56,10,102,32,49,55,56,47,50, +52,56,47,49,55,56,32,49,55,52,47,50,52,51,47,49,55,52,32,49,55,51,47,50,52,50,47,49,55,51,10,102,32,49,55,52,47,50,52,51,47,49,55,52,32,49,55,56,47,50,52,56,47,49,55,56,32,49,55,57,47,50,52,57,47,49,55,57,10,102,32,49,55,57,47,50,52,57,47,49,55,57,32, +49,55,53,47,50,52,52,47,49,55,53,32,49,55,52,47,50,52,51,47,49,55,52,10,102,32,49,55,53,47,50,52,52,47,49,55,53,32,49,55,57,47,50,52,57,47,49,55,57,32,49,56,48,47,50,53,48,47,49,56,48,10,102,32,49,56,48,47,50,53,48,47,49,56,48,32,49,55,54,47,50,52,53, +47,49,55,54,32,49,55,53,47,50,52,52,47,49,55,53,10,102,32,49,49,54,47,50,53,49,47,49,49,54,32,49,50,48,47,50,53,54,47,49,50,48,32,49,56,49,47,50,53,55,47,49,56,49,10,102,32,49,56,49,47,50,53,55,47,49,56,49,32,49,55,55,47,50,53,50,47,49,55,55,32,49,49, +54,47,50,53,49,47,49,49,54,10,102,32,49,55,55,47,50,53,50,47,49,55,55,32,49,56,49,47,50,53,55,47,49,56,49,32,49,56,50,47,50,53,56,47,49,56,50,10,102,32,49,56,50,47,50,53,56,47,49,56,50,32,49,55,56,47,50,53,51,47,49,55,56,32,49,55,55,47,50,53,50,47,49, +55,55,10,102,32,49,55,56,47,50,53,51,47,49,55,56,32,49,56,50,47,50,53,56,47,49,56,50,32,49,56,51,47,50,53,57,47,49,56,51,10,102,32,49,56,51,47,50,53,57,47,49,56,51,32,49,55,57,47,50,53,52,47,49,55,57,32,49,55,56,47,50,53,51,47,49,55,56,10,102,32,49,55, +57,47,50,53,52,47,49,55,57,32,49,56,51,47,50,53,57,47,49,56,51,32,49,56,52,47,50,54,48,47,49,56,52,10,102,32,49,56,52,47,50,54,48,47,49,56,52,32,49,56,48,47,50,53,53,47,49,56,48,32,49,55,57,47,50,53,52,47,49,55,57,10,102,32,49,50,48,47,50,53,54,47,49, +50,48,32,49,50,52,47,50,54,49,47,49,50,52,32,49,56,53,47,50,54,50,47,49,56,53,10,102,32,49,56,53,47,50,54,50,47,49,56,53,32,49,56,49,47,50,53,55,47,49,56,49,32,49,50,48,47,50,53,54,47,49,50,48,10,102,32,49,56,49,47,50,53,55,47,49,56,49,32,49,56,53,47, +50,54,50,47,49,56,53,32,49,56,54,47,50,54,51,47,49,56,54,10,102,32,49,56,54,47,50,54,51,47,49,56,54,32,49,56,50,47,50,53,56,47,49,56,50,32,49,56,49,47,50,53,55,47,49,56,49,10,102,32,49,56,50,47,50,53,56,47,49,56,50,32,49,56,54,47,50,54,51,47,49,56,54, +32,49,56,55,47,50,54,52,47,49,56,55,10,102,32,49,56,55,47,50,54,52,47,49,56,55,32,49,56,51,47,50,53,57,47,49,56,51,32,49,56,50,47,50,53,56,47,49,56,50,10,102,32,49,56,51,47,50,53,57,47,49,56,51,32,49,56,55,47,50,54,52,47,49,56,55,32,49,56,56,47,50,54, +53,47,49,56,56,10,102,32,49,56,56,47,50,54,53,47,49,56,56,32,49,56,52,47,50,54,48,47,49,56,52,32,49,56,51,47,50,53,57,47,49,56,51,10,102,32,49,50,52,47,50,54,49,47,49,50,52,32,49,50,56,47,50,54,54,47,49,50,56,32,49,56,57,47,50,54,55,47,49,56,57,10,102, +32,49,56,57,47,50,54,55,47,49,56,57,32,49,56,53,47,50,54,50,47,49,56,53,32,49,50,52,47,50,54,49,47,49,50,52,10,102,32,49,56,53,47,50,54,50,47,49,56,53,32,49,56,57,47,50,54,55,47,49,56,57,32,49,57,48,47,50,54,56,47,49,57,48,10,102,32,49,57,48,47,50,54, +56,47,49,57,48,32,49,56,54,47,50,54,51,47,49,56,54,32,49,56,53,47,50,54,50,47,49,56,53,10,102,32,49,56,54,47,50,54,51,47,49,56,54,32,49,57,48,47,50,54,56,47,49,57,48,32,49,57,49,47,50,54,57,47,49,57,49,10,102,32,49,57,49,47,50,54,57,47,49,57,49,32,49, +56,55,47,50,54,52,47,49,56,55,32,49,56,54,47,50,54,51,47,49,56,54,10,102,32,49,56,55,47,50,54,52,47,49,56,55,32,49,57,49,47,50,54,57,47,49,57,49,32,49,57,50,47,50,55,48,47,49,57,50,10,102,32,49,57,50,47,50,55,48,47,49,57,50,32,49,56,56,47,50,54,53,47, +49,56,56,32,49,56,55,47,50,54,52,47,49,56,55,10,102,32,49,50,56,47,50,54,54,47,49,50,56,32,49,51,50,47,50,55,49,47,49,51,50,32,49,57,51,47,50,55,50,47,49,57,51,10,102,32,49,57,51,47,50,55,50,47,49,57,51,32,49,56,57,47,50,54,55,47,49,56,57,32,49,50,56, +47,50,54,54,47,49,50,56,10,102,32,49,56,57,47,50,54,55,47,49,56,57,32,49,57,51,47,50,55,50,47,49,57,51,32,49,57,52,47,50,55,51,47,49,57,52,10,102,32,49,57,52,47,50,55,51,47,49,57,52,32,49,57,48,47,50,54,56,47,49,57,48,32,49,56,57,47,50,54,55,47,49,56, +57,10,102,32,49,57,48,47,50,54,56,47,49,57,48,32,49,57,52,47,50,55,51,47,49,57,52,32,49,57,53,47,50,55,52,47,49,57,53,10,102,32,49,57,53,47,50,55,52,47,49,57,53,32,49,57,49,47,50,54,57,47,49,57,49,32,49,57,48,47,50,54,56,47,49,57,48,10,102,32,49,57,49, +47,50,54,57,47,49,57,49,32,49,57,53,47,50,55,52,47,49,57,53,32,49,57,54,47,50,55,53,47,49,57,54,10,102,32,49,57,54,47,50,55,53,47,49,57,54,32,49,57,50,47,50,55,48,47,49,57,50,32,49,57,49,47,50,54,57,47,49,57,49,10,102,32,49,51,50,47,50,55,54,47,49,51, +50,32,49,51,54,47,50,56,49,47,49,51,54,32,49,57,55,47,50,56,50,47,49,57,55,10,102,32,49,57,55,47,50,56,50,47,49,57,55,32,49,57,51,47,50,55,55,47,49,57,51,32,49,51,50,47,50,55,54,47,49,51,50,10,102,32,49,57,51,47,50,55,55,47,49,57,51,32,49,57,55,47,50, +56,50,47,49,57,55,32,49,57,56,47,50,56,51,47,49,57,56,10,102,32,49,57,56,47,50,56,51,47,49,57,56,32,49,57,52,47,50,55,56,47,49,57,52,32,49,57,51,47,50,55,55,47,49,57,51,10,102,32,49,57,52,47,50,55,56,47,49,57,52,32,49,57,56,47,50,56,51,47,49,57,56,32, +49,57,57,47,50,56,52,47,49,57,57,10,102,32,49,57,57,47,50,56,52,47,49,57,57,32,49,57,53,47,50,55,57,47,49,57,53,32,49,57,52,47,50,55,56,47,49,57,52,10,102,32,49,57,53,47,50,55,57,47,49,57,53,32,49,57,57,47,50,56,52,47,49,57,57,32,50,48,48,47,50,56,53, +47,50,48,48,10,102,32,50,48,48,47,50,56,53,47,50,48,48,32,49,57,54,47,50,56,48,47,49,57,54,32,49,57,53,47,50,55,57,47,49,57,53,10,102,32,49,51,54,47,50,56,49,47,49,51,54,32,49,52,48,47,50,56,54,47,49,52,48,32,50,48,49,47,50,56,55,47,50,48,49,10,102,32, +50,48,49,47,50,56,55,47,50,48,49,32,49,57,55,47,50,56,50,47,49,57,55,32,49,51,54,47,50,56,49,47,49,51,54,10,102,32,49,57,55,47,50,56,50,47,49,57,55,32,50,48,49,47,50,56,55,47,50,48,49,32,50,48,50,47,50,56,56,47,50,48,50,10,102,32,50,48,50,47,50,56,56, +47,50,48,50,32,49,57,56,47,50,56,51,47,49,57,56,32,49,57,55,47,50,56,50,47,49,57,55,10,102,32,49,57,56,47,50,56,51,47,49,57,56,32,50,48,50,47,50,56,56,47,50,48,50,32,50,48,51,47,50,56,57,47,50,48,51,10,102,32,50,48,51,47,50,56,57,47,50,48,51,32,49,57, +57,47,50,56,52,47,49,57,57,32,49,57,56,47,50,56,51,47,49,57,56,10,102,32,49,57,57,47,50,56,52,47,49,57,57,32,50,48,51,47,50,56,57,47,50,48,51,32,50,48,52,47,50,57,48,47,50,48,52,10,102,32,50,48,52,47,50,57,48,47,50,48,52,32,50,48,48,47,50,56,53,47,50, +48,48,32,49,57,57,47,50,56,52,47,49,57,57,10,102,32,49,52,48,47,50,56,54,47,49,52,48,32,49,52,52,47,50,57,49,47,49,52,52,32,50,48,53,47,50,57,50,47,50,48,53,10,102,32,50,48,53,47,50,57,50,47,50,48,53,32,50,48,49,47,50,56,55,47,50,48,49,32,49,52,48,47, +50,56,54,47,49,52,48,10,102,32,50,48,49,47,50,56,55,47,50,48,49,32,50,48,53,47,50,57,50,47,50,48,53,32,50,48,54,47,50,57,51,47,50,48,54,10,102,32,50,48,54,47,50,57,51,47,50,48,54,32,50,48,50,47,50,56,56,47,50,48,50,32,50,48,49,47,50,56,55,47,50,48,49, +10,102,32,50,48,50,47,50,56,56,47,50,48,50,32,50,48,54,47,50,57,51,47,50,48,54,32,50,48,55,47,50,57,52,47,50,48,55,10,102,32,50,48,55,47,50,57,52,47,50,48,55,32,50,48,51,47,50,56,57,47,50,48,51,32,50,48,50,47,50,56,56,47,50,48,50,10,102,32,50,48,51,47, +50,56,57,47,50,48,51,32,50,48,55,47,50,57,52,47,50,48,55,32,50,48,56,47,50,57,53,47,50,48,56,10,102,32,50,48,56,47,50,57,53,47,50,48,56,32,50,48,52,47,50,57,48,47,50,48,52,32,50,48,51,47,50,56,57,47,50,48,51,10,102,32,49,52,52,47,50,57,49,47,49,52,52, +32,56,52,47,50,57,54,47,56,52,32,49,52,53,47,50,57,55,47,49,52,53,10,102,32,49,52,53,47,50,57,55,47,49,52,53,32,50,48,53,47,50,57,50,47,50,48,53,32,49,52,52,47,50,57,49,47,49,52,52,10,102,32,50,48,53,47,50,57,50,47,50,48,53,32,49,52,53,47,50,57,55,47, +49,52,53,32,49,52,54,47,50,57,56,47,49,52,54,10,102,32,49,52,54,47,50,57,56,47,49,52,54,32,50,48,54,47,50,57,51,47,50,48,54,32,50,48,53,47,50,57,50,47,50,48,53,10,102,32,50,48,54,47,50,57,51,47,50,48,54,32,49,52,54,47,50,57,56,47,49,52,54,32,49,52,55, +47,50,57,57,47,49,52,55,10,102,32,49,52,55,47,50,57,57,47,49,52,55,32,50,48,55,47,50,57,52,47,50,48,55,32,50,48,54,47,50,57,51,47,50,48,54,10,102,32,50,48,55,47,50,57,52,47,50,48,55,32,49,52,55,47,50,57,57,47,49,52,55,32,49,52,56,47,51,48,48,47,49,52, +56,10,102,32,49,52,56,47,51,48,48,47,49,52,56,32,50,48,56,47,50,57,53,47,50,48,56,32,50,48,55,47,50,57,52,47,50,48,55,10,102,32,49,52,56,47,51,48,49,47,49,52,56,32,49,53,50,47,51,48,54,47,49,53,50,32,50,49,51,47,51,48,55,47,50,49,51,10,102,32,50,49,51, +47,51,48,55,47,50,49,51,32,50,48,57,47,51,48,50,47,50,48,57,32,49,52,56,47,51,48,49,47,49,52,56,10,102,32,50,48,57,47,51,48,50,47,50,48,57,32,50,49,51,47,51,48,55,47,50,49,51,32,50,49,52,47,51,48,56,47,50,49,52,10,102,32,50,49,52,47,51,48,56,47,50,49, +52,32,50,49,48,47,51,48,51,47,50,49,48,32,50,48,57,47,51,48,50,47,50,48,57,10,102,32,50,49,48,47,51,48,51,47,50,49,48,32,50,49,52,47,51,48,56,47,50,49,52,32,50,49,53,47,51,48,57,47,50,49,53,10,102,32,50,49,53,47,51,48,57,47,50,49,53,32,50,49,49,47,51, +48,52,47,50,49,49,32,50,49,48,47,51,48,51,47,50,49,48,10,102,32,50,49,49,47,51,48,52,47,50,49,49,32,50,49,53,47,51,48,57,47,50,49,53,32,50,49,50,47,51,49,48,47,50,49,50,10,102,32,49,53,50,47,51,48,54,47,49,53,50,32,49,53,54,47,51,49,49,47,49,53,54,32, +50,49,54,47,51,49,50,47,50,49,54,10,102,32,50,49,54,47,51,49,50,47,50,49,54,32,50,49,51,47,51,48,55,47,50,49,51,32,49,53,50,47,51,48,54,47,49,53,50,10,102,32,50,49,51,47,51,48,55,47,50,49,51,32,50,49,54,47,51,49,50,47,50,49,54,32,50,49,55,47,51,49,51, +47,50,49,55,10,102,32,50,49,55,47,51,49,51,47,50,49,55,32,50,49,52,47,51,48,56,47,50,49,52,32,50,49,51,47,51,48,55,47,50,49,51,10,102,32,50,49,52,47,51,48,56,47,50,49,52,32,50,49,55,47,51,49,51,47,50,49,55,32,50,49,56,47,51,49,52,47,50,49,56,10,102,32, +50,49,56,47,51,49,52,47,50,49,56,32,50,49,53,47,51,48,57,47,50,49,53,32,50,49,52,47,51,48,56,47,50,49,52,10,102,32,50,49,53,47,51,48,57,47,50,49,53,32,50,49,56,47,51,49,52,47,50,49,56,32,50,49,50,47,51,49,53,47,50,49,50,10,102,32,49,53,54,47,51,49,49, +47,49,53,54,32,49,54,48,47,51,49,54,47,49,54,48,32,50,49,57,47,51,49,55,47,50,49,57,10,102,32,50,49,57,47,51,49,55,47,50,49,57,32,50,49,54,47,51,49,50,47,50,49,54,32,49,53,54,47,51,49,49,47,49,53,54,10,102,32,50,49,54,47,51,49,50,47,50,49,54,32,50,49, +57,47,51,49,55,47,50,49,57,32,50,50,48,47,51,49,56,47,50,50,48,10,102,32,50,50,48,47,51,49,56,47,50,50,48,32,50,49,55,47,51,49,51,47,50,49,55,32,50,49,54,47,51,49,50,47,50,49,54,10,102,32,50,49,55,47,51,49,51,47,50,49,55,32,50,50,48,47,51,49,56,47,50, +50,48,32,50,50,49,47,51,49,57,47,50,50,49,10,102,32,50,50,49,47,51,49,57,47,50,50,49,32,50,49,56,47,51,49,52,47,50,49,56,32,50,49,55,47,51,49,51,47,50,49,55,10,102,32,50,49,56,47,51,49,52,47,50,49,56,32,50,50,49,47,51,49,57,47,50,50,49,32,50,49,50,47, +51,50,48,47,50,49,50,10,102,32,49,54,48,47,51,49,54,47,49,54,48,32,49,54,52,47,51,50,49,47,49,54,52,32,50,50,50,47,51,50,50,47,50,50,50,10,102,32,50,50,50,47,51,50,50,47,50,50,50,32,50,49,57,47,51,49,55,47,50,49,57,32,49,54,48,47,51,49,54,47,49,54,48, +10,102,32,50,49,57,47,51,49,55,47,50,49,57,32,50,50,50,47,51,50,50,47,50,50,50,32,50,50,51,47,51,50,51,47,50,50,51,10,102,32,50,50,51,47,51,50,51,47,50,50,51,32,50,50,48,47,51,49,56,47,50,50,48,32,50,49,57,47,51,49,55,47,50,49,57,10,102,32,50,50,48,47, +51,49,56,47,50,50,48,32,50,50,51,47,51,50,51,47,50,50,51,32,50,50,52,47,51,50,52,47,50,50,52,10,102,32,50,50,52,47,51,50,52,47,50,50,52,32,50,50,49,47,51,49,57,47,50,50,49,32,50,50,48,47,51,49,56,47,50,50,48,10,102,32,50,50,49,47,51,49,57,47,50,50,49, +32,50,50,52,47,51,50,52,47,50,50,52,32,50,49,50,47,51,50,53,47,50,49,50,10,102,32,49,54,52,47,51,50,54,47,49,54,52,32,49,54,56,47,51,51,49,47,49,54,56,32,50,50,53,47,51,51,50,47,50,50,53,10,102,32,50,50,53,47,51,51,50,47,50,50,53,32,50,50,50,47,51,50, +55,47,50,50,50,32,49,54,52,47,51,50,54,47,49,54,52,10,102,32,50,50,50,47,51,50,55,47,50,50,50,32,50,50,53,47,51,51,50,47,50,50,53,32,50,50,54,47,51,51,51,47,50,50,54,10,102,32,50,50,54,47,51,51,51,47,50,50,54,32,50,50,51,47,51,50,56,47,50,50,51,32,50, +50,50,47,51,50,55,47,50,50,50,10,102,32,50,50,51,47,51,50,56,47,50,50,51,32,50,50,54,47,51,51,51,47,50,50,54,32,50,50,55,47,51,51,52,47,50,50,55,10,102,32,50,50,55,47,51,51,52,47,50,50,55,32,50,50,52,47,51,50,57,47,50,50,52,32,50,50,51,47,51,50,56,47, +50,50,51,10,102,32,50,50,52,47,51,50,57,47,50,50,52,32,50,50,55,47,51,51,52,47,50,50,55,32,50,49,50,47,51,51,53,47,50,49,50,10,102,32,49,54,56,47,51,51,49,47,49,54,56,32,49,55,50,47,51,51,54,47,49,55,50,32,50,50,56,47,51,51,55,47,50,50,56,10,102,32,50, +50,56,47,51,51,55,47,50,50,56,32,50,50,53,47,51,51,50,47,50,50,53,32,49,54,56,47,51,51,49,47,49,54,56,10,102,32,50,50,53,47,51,51,50,47,50,50,53,32,50,50,56,47,51,51,55,47,50,50,56,32,50,50,57,47,51,51,56,47,50,50,57,10,102,32,50,50,57,47,51,51,56,47, +50,50,57,32,50,50,54,47,51,51,51,47,50,50,54,32,50,50,53,47,51,51,50,47,50,50,53,10,102,32,50,50,54,47,51,51,51,47,50,50,54,32,50,50,57,47,51,51,56,47,50,50,57,32,50,51,48,47,51,51,57,47,50,51,48,10,102,32,50,51,48,47,51,51,57,47,50,51,48,32,50,50,55, +47,51,51,52,47,50,50,55,32,50,50,54,47,51,51,51,47,50,50,54,10,102,32,50,50,55,47,51,51,52,47,50,50,55,32,50,51,48,47,51,51,57,47,50,51,48,32,50,49,50,47,51,52,48,47,50,49,50,10,102,32,49,55,50,47,51,51,54,47,49,55,50,32,49,55,54,47,51,52,49,47,49,55, +54,32,50,51,49,47,51,52,50,47,50,51,49,10,102,32,50,51,49,47,51,52,50,47,50,51,49,32,50,50,56,47,51,51,55,47,50,50,56,32,49,55,50,47,51,51,54,47,49,55,50,10,102,32,50,50,56,47,51,51,55,47,50,50,56,32,50,51,49,47,51,52,50,47,50,51,49,32,50,51,50,47,51, +52,51,47,50,51,50,10,102,32,50,51,50,47,51,52,51,47,50,51,50,32,50,50,57,47,51,51,56,47,50,50,57,32,50,50,56,47,51,51,55,47,50,50,56,10,102,32,50,50,57,47,51,51,56,47,50,50,57,32,50,51,50,47,51,52,51,47,50,51,50,32,50,51,51,47,51,52,52,47,50,51,51,10, +102,32,50,51,51,47,51,52,52,47,50,51,51,32,50,51,48,47,51,51,57,47,50,51,48,32,50,50,57,47,51,51,56,47,50,50,57,10,102,32,50,51,48,47,51,51,57,47,50,51,48,32,50,51,51,47,51,52,52,47,50,51,51,32,50,49,50,47,51,52,53,47,50,49,50,10,102,32,49,55,54,47,51, +52,49,47,49,55,54,32,49,56,48,47,51,52,54,47,49,56,48,32,50,51,52,47,51,52,55,47,50,51,52,10,102,32,50,51,52,47,51,52,55,47,50,51,52,32,50,51,49,47,51,52,50,47,50,51,49,32,49,55,54,47,51,52,49,47,49,55,54,10,102,32,50,51,49,47,51,52,50,47,50,51,49,32, +50,51,52,47,51,52,55,47,50,51,52,32,50,51,53,47,51,52,56,47,50,51,53,10,102,32,50,51,53,47,51,52,56,47,50,51,53,32,50,51,50,47,51,52,51,47,50,51,50,32,50,51,49,47,51,52,50,47,50,51,49,10,102,32,50,51,50,47,51,52,51,47,50,51,50,32,50,51,53,47,51,52,56, +47,50,51,53,32,50,51,54,47,51,52,57,47,50,51,54,10,102,32,50,51,54,47,51,52,57,47,50,51,54,32,50,51,51,47,51,52,52,47,50,51,51,32,50,51,50,47,51,52,51,47,50,51,50,10,102,32,50,51,51,47,51,52,52,47,50,51,51,32,50,51,54,47,51,52,57,47,50,51,54,32,50,49, +50,47,51,53,48,47,50,49,50,10,102,32,49,56,48,47,51,53,49,47,49,56,48,32,49,56,52,47,51,53,54,47,49,56,52,32,50,51,55,47,51,53,55,47,50,51,55,10,102,32,50,51,55,47,51,53,55,47,50,51,55,32,50,51,52,47,51,53,50,47,50,51,52,32,49,56,48,47,51,53,49,47,49, +56,48,10,102,32,50,51,52,47,51,53,50,47,50,51,52,32,50,51,55,47,51,53,55,47,50,51,55,32,50,51,56,47,51,53,56,47,50,51,56,10,102,32,50,51,56,47,51,53,56,47,50,51,56,32,50,51,53,47,51,53,51,47,50,51,53,32,50,51,52,47,51,53,50,47,50,51,52,10,102,32,50,51, +53,47,51,53,51,47,50,51,53,32,50,51,56,47,51,53,56,47,50,51,56,32,50,51,57,47,51,53,57,47,50,51,57,10,102,32,50,51,57,47,51,53,57,47,50,51,57,32,50,51,54,47,51,53,52,47,50,51,54,32,50,51,53,47,51,53,51,47,50,51,53,10,102,32,50,51,54,47,51,53,52,47,50, +51,54,32,50,51,57,47,51,53,57,47,50,51,57,32,50,49,50,47,51,54,48,47,50,49,50,10,102,32,49,56,52,47,51,53,54,47,49,56,52,32,49,56,56,47,51,54,49,47,49,56,56,32,50,52,48,47,51,54,50,47,50,52,48,10,102,32,50,52,48,47,51,54,50,47,50,52,48,32,50,51,55,47, +51,53,55,47,50,51,55,32,49,56,52,47,51,53,54,47,49,56,52,10,102,32,50,51,55,47,51,53,55,47,50,51,55,32,50,52,48,47,51,54,50,47,50,52,48,32,50,52,49,47,51,54,51,47,50,52,49,10,102,32,50,52,49,47,51,54,51,47,50,52,49,32,50,51,56,47,51,53,56,47,50,51,56, +32,50,51,55,47,51,53,55,47,50,51,55,10,102,32,50,51,56,47,51,53,56,47,50,51,56,32,50,52,49,47,51,54,51,47,50,52,49,32,50,52,50,47,51,54,52,47,50,52,50,10,102,32,50,52,50,47,51,54,52,47,50,52,50,32,50,51,57,47,51,53,57,47,50,51,57,32,50,51,56,47,51,53, +56,47,50,51,56,10,102,32,50,51,57,47,51,53,57,47,50,51,57,32,50,52,50,47,51,54,52,47,50,52,50,32,50,49,50,47,51,54,53,47,50,49,50,10,102,32,49,56,56,47,51,54,49,47,49,56,56,32,49,57,50,47,51,54,54,47,49,57,50,32,50,52,51,47,51,54,55,47,50,52,51,10,102, +32,50,52,51,47,51,54,55,47,50,52,51,32,50,52,48,47,51,54,50,47,50,52,48,32,49,56,56,47,51,54,49,47,49,56,56,10,102,32,50,52,48,47,51,54,50,47,50,52,48,32,50,52,51,47,51,54,55,47,50,52,51,32,50,52,52,47,51,54,56,47,50,52,52,10,102,32,50,52,52,47,51,54, +56,47,50,52,52,32,50,52,49,47,51,54,51,47,50,52,49,32,50,52,48,47,51,54,50,47,50,52,48,10,102,32,50,52,49,47,51,54,51,47,50,52,49,32,50,52,52,47,51,54,56,47,50,52,52,32,50,52,53,47,51,54,57,47,50,52,53,10,102,32,50,52,53,47,51,54,57,47,50,52,53,32,50, +52,50,47,51,54,52,47,50,52,50,32,50,52,49,47,51,54,51,47,50,52,49,10,102,32,50,52,50,47,51,54,52,47,50,52,50,32,50,52,53,47,51,54,57,47,50,52,53,32,50,49,50,47,51,55,48,47,50,49,50,10,102,32,49,57,50,47,51,54,54,47,49,57,50,32,49,57,54,47,51,55,49,47, +49,57,54,32,50,52,54,47,51,55,50,47,50,52,54,10,102,32,50,52,54,47,51,55,50,47,50,52,54,32,50,52,51,47,51,54,55,47,50,52,51,32,49,57,50,47,51,54,54,47,49,57,50,10,102,32,50,52,51,47,51,54,55,47,50,52,51,32,50,52,54,47,51,55,50,47,50,52,54,32,50,52,55, +47,51,55,51,47,50,52,55,10,102,32,50,52,55,47,51,55,51,47,50,52,55,32,50,52,52,47,51,54,56,47,50,52,52,32,50,52,51,47,51,54,55,47,50,52,51,10,102,32,50,52,52,47,51,54,56,47,50,52,52,32,50,52,55,47,51,55,51,47,50,52,55,32,50,52,56,47,51,55,52,47,50,52, +56,10,102,32,50,52,56,47,51,55,52,47,50,52,56,32,50,52,53,47,51,54,57,47,50,52,53,32,50,52,52,47,51,54,56,47,50,52,52,10,102,32,50,52,53,47,51,54,57,47,50,52,53,32,50,52,56,47,51,55,52,47,50,52,56,32,50,49,50,47,51,55,53,47,50,49,50,10,102,32,49,57,54, +47,51,55,54,47,49,57,54,32,50,48,48,47,51,56,49,47,50,48,48,32,50,52,57,47,51,56,50,47,50,52,57,10,102,32,50,52,57,47,51,56,50,47,50,52,57,32,50,52,54,47,51,55,55,47,50,52,54,32,49,57,54,47,51,55,54,47,49,57,54,10,102,32,50,52,54,47,51,55,55,47,50,52, +54,32,50,52,57,47,51,56,50,47,50,52,57,32,50,53,48,47,51,56,51,47,50,53,48,10,102,32,50,53,48,47,51,56,51,47,50,53,48,32,50,52,55,47,51,55,56,47,50,52,55,32,50,52,54,47,51,55,55,47,50,52,54,10,102,32,50,52,55,47,51,55,56,47,50,52,55,32,50,53,48,47,51, +56,51,47,50,53,48,32,50,53,49,47,51,56,52,47,50,53,49,10,102,32,50,53,49,47,51,56,52,47,50,53,49,32,50,52,56,47,51,55,57,47,50,52,56,32,50,52,55,47,51,55,56,47,50,52,55,10,102,32,50,52,56,47,51,55,57,47,50,52,56,32,50,53,49,47,51,56,52,47,50,53,49,32, +50,49,50,47,51,56,53,47,50,49,50,10,102,32,50,48,48,47,51,56,49,47,50,48,48,32,50,48,52,47,51,56,54,47,50,48,52,32,50,53,50,47,51,56,55,47,50,53,50,10,102,32,50,53,50,47,51,56,55,47,50,53,50,32,50,52,57,47,51,56,50,47,50,52,57,32,50,48,48,47,51,56,49, +47,50,48,48,10,102,32,50,52,57,47,51,56,50,47,50,52,57,32,50,53,50,47,51,56,55,47,50,53,50,32,50,53,51,47,51,56,56,47,50,53,51,10,102,32,50,53,51,47,51,56,56,47,50,53,51,32,50,53,48,47,51,56,51,47,50,53,48,32,50,52,57,47,51,56,50,47,50,52,57,10,102,32, +50,53,48,47,51,56,51,47,50,53,48,32,50,53,51,47,51,56,56,47,50,53,51,32,50,53,52,47,51,56,57,47,50,53,52,10,102,32,50,53,52,47,51,56,57,47,50,53,52,32,50,53,49,47,51,56,52,47,50,53,49,32,50,53,48,47,51,56,51,47,50,53,48,10,102,32,50,53,49,47,51,56,52, +47,50,53,49,32,50,53,52,47,51,56,57,47,50,53,52,32,50,49,50,47,51,57,48,47,50,49,50,10,102,32,50,48,52,47,51,56,54,47,50,48,52,32,50,48,56,47,51,57,49,47,50,48,56,32,50,53,53,47,51,57,50,47,50,53,53,10,102,32,50,53,53,47,51,57,50,47,50,53,53,32,50,53, +50,47,51,56,55,47,50,53,50,32,50,48,52,47,51,56,54,47,50,48,52,10,102,32,50,53,50,47,51,56,55,47,50,53,50,32,50,53,53,47,51,57,50,47,50,53,53,32,50,53,54,47,51,57,51,47,50,53,54,10,102,32,50,53,54,47,51,57,51,47,50,53,54,32,50,53,51,47,51,56,56,47,50, +53,51,32,50,53,50,47,51,56,55,47,50,53,50,10,102,32,50,53,51,47,51,56,56,47,50,53,51,32,50,53,54,47,51,57,51,47,50,53,54,32,50,53,55,47,51,57,52,47,50,53,55,10,102,32,50,53,55,47,51,57,52,47,50,53,55,32,50,53,52,47,51,56,57,47,50,53,52,32,50,53,51,47, +51,56,56,47,50,53,51,10,102,32,50,53,52,47,51,56,57,47,50,53,52,32,50,53,55,47,51,57,52,47,50,53,55,32,50,49,50,47,51,57,53,47,50,49,50,10,102,32,50,48,56,47,51,57,49,47,50,48,56,32,49,52,56,47,51,57,54,47,49,52,56,32,50,48,57,47,51,57,55,47,50,48,57, +10,102,32,50,48,57,47,51,57,55,47,50,48,57,32,50,53,53,47,51,57,50,47,50,53,53,32,50,48,56,47,51,57,49,47,50,48,56,10,102,32,50,53,53,47,51,57,50,47,50,53,53,32,50,48,57,47,51,57,55,47,50,48,57,32,50,49,48,47,51,57,56,47,50,49,48,10,102,32,50,49,48,47, +51,57,56,47,50,49,48,32,50,53,54,47,51,57,51,47,50,53,54,32,50,53,53,47,51,57,50,47,50,53,53,10,102,32,50,53,54,47,51,57,51,47,50,53,54,32,50,49,48,47,51,57,56,47,50,49,48,32,50,49,49,47,51,57,57,47,50,49,49,10,102,32,50,49,49,47,51,57,57,47,50,49,49, +32,50,53,55,47,51,57,52,47,50,53,55,32,50,53,54,47,51,57,51,47,50,53,54,10,102,32,50,53,55,47,51,57,52,47,50,53,55,32,50,49,49,47,51,57,57,47,50,49,49,32,50,49,50,47,52,48,48,47,50,49,50,10,102,32,50,53,56,47,52,48,49,47,50,53,56,32,50,54,51,47,52,48, +54,47,50,54,51,32,50,54,52,47,52,48,55,47,50,54,52,10,102,32,50,54,52,47,52,48,55,47,50,54,52,32,50,53,57,47,52,48,50,47,50,53,57,32,50,53,56,47,52,48,49,47,50,53,56,10,102,32,50,53,57,47,52,48,50,47,50,53,57,32,50,54,52,47,52,48,55,47,50,54,52,32,50, +54,53,47,52,48,56,47,50,54,53,10,102,32,50,54,53,47,52,48,56,47,50,54,53,32,50,54,48,47,52,48,51,47,50,54,48,32,50,53,57,47,52,48,50,47,50,53,57,10,102,32,50,54,48,47,52,48,51,47,50,54,48,32,50,54,53,47,52,48,56,47,50,54,53,32,50,54,54,47,52,48,57,47, +50,54,54,10,102,32,50,54,54,47,52,48,57,47,50,54,54,32,50,54,49,47,52,48,52,47,50,54,49,32,50,54,48,47,52,48,51,47,50,54,48,10,102,32,50,54,49,47,52,48,52,47,50,54,49,32,50,54,54,47,52,48,57,47,50,54,54,32,50,54,55,47,52,49,48,47,50,54,55,10,102,32,50, +54,55,47,52,49,48,47,50,54,55,32,50,54,50,47,52,48,53,47,50,54,50,32,50,54,49,47,52,48,52,47,50,54,49,10,102,32,50,54,51,47,52,48,54,47,50,54,51,32,50,54,56,47,52,49,49,47,50,54,56,32,50,54,57,47,52,49,50,47,50,54,57,10,102,32,50,54,57,47,52,49,50,47, +50,54,57,32,50,54,52,47,52,48,55,47,50,54,52,32,50,54,51,47,52,48,54,47,50,54,51,10,102,32,50,54,52,47,52,48,55,47,50,54,52,32,50,54,57,47,52,49,50,47,50,54,57,32,50,55,48,47,52,49,51,47,50,55,48,10,102,32,50,55,48,47,52,49,51,47,50,55,48,32,50,54,53, +47,52,48,56,47,50,54,53,32,50,54,52,47,52,48,55,47,50,54,52,10,102,32,50,54,53,47,52,48,56,47,50,54,53,32,50,55,48,47,52,49,51,47,50,55,48,32,50,55,49,47,52,49,52,47,50,55,49,10,102,32,50,55,49,47,52,49,52,47,50,55,49,32,50,54,54,47,52,48,57,47,50,54, +54,32,50,54,53,47,52,48,56,47,50,54,53,10,102,32,50,54,54,47,52,48,57,47,50,54,54,32,50,55,49,47,52,49,52,47,50,55,49,32,50,55,50,47,52,49,53,47,50,55,50,10,102,32,50,55,50,47,52,49,53,47,50,55,50,32,50,54,55,47,52,49,48,47,50,54,55,32,50,54,54,47,52, +48,57,47,50,54,54,10,102,32,50,54,56,47,52,49,49,47,50,54,56,32,50,55,51,47,52,49,54,47,50,55,51,32,50,55,52,47,52,49,55,47,50,55,52,10,102,32,50,55,52,47,52,49,55,47,50,55,52,32,50,54,57,47,52,49,50,47,50,54,57,32,50,54,56,47,52,49,49,47,50,54,56,10, +102,32,50,54,57,47,52,49,50,47,50,54,57,32,50,55,52,47,52,49,55,47,50,55,52,32,50,55,53,47,52,49,56,47,50,55,53,10,102,32,50,55,53,47,52,49,56,47,50,55,53,32,50,55,48,47,52,49,51,47,50,55,48,32,50,54,57,47,52,49,50,47,50,54,57,10,102,32,50,55,48,47,52, +49,51,47,50,55,48,32,50,55,53,47,52,49,56,47,50,55,53,32,50,55,54,47,52,49,57,47,50,55,54,10,102,32,50,55,54,47,52,49,57,47,50,55,54,32,50,55,49,47,52,49,52,47,50,55,49,32,50,55,48,47,52,49,51,47,50,55,48,10,102,32,50,55,49,47,52,49,52,47,50,55,49,32, +50,55,54,47,52,49,57,47,50,55,54,32,50,55,55,47,52,50,48,47,50,55,55,10,102,32,50,55,55,47,52,50,48,47,50,55,55,32,50,55,50,47,52,49,53,47,50,55,50,32,50,55,49,47,52,49,52,47,50,55,49,10,102,32,50,55,51,47,52,49,54,47,50,55,51,32,50,55,56,47,52,50,49, +47,50,55,56,32,50,55,57,47,52,50,50,47,50,55,57,10,102,32,50,55,57,47,52,50,50,47,50,55,57,32,50,55,52,47,52,49,55,47,50,55,52,32,50,55,51,47,52,49,54,47,50,55,51,10,102,32,50,55,52,47,52,49,55,47,50,55,52,32,50,55,57,47,52,50,50,47,50,55,57,32,50,56, +48,47,52,50,51,47,50,56,48,10,102,32,50,56,48,47,52,50,51,47,50,56,48,32,50,55,53,47,52,49,56,47,50,55,53,32,50,55,52,47,52,49,55,47,50,55,52,10,102,32,50,55,53,47,52,49,56,47,50,55,53,32,50,56,48,47,52,50,51,47,50,56,48,32,50,56,49,47,52,50,52,47,50, +56,49,10,102,32,50,56,49,47,52,50,52,47,50,56,49,32,50,55,54,47,52,49,57,47,50,55,54,32,50,55,53,47,52,49,56,47,50,55,53,10,102,32,50,55,54,47,52,49,57,47,50,55,54,32,50,56,49,47,52,50,52,47,50,56,49,32,50,56,50,47,52,50,53,47,50,56,50,10,102,32,50,56, +50,47,52,50,53,47,50,56,50,32,50,55,55,47,52,50,48,47,50,55,55,32,50,55,54,47,52,49,57,47,50,55,54,10,102,32,50,55,56,47,52,50,54,47,50,55,56,32,50,56,51,47,52,51,49,47,50,56,51,32,50,56,52,47,52,51,50,47,50,56,52,10,102,32,50,56,52,47,52,51,50,47,50, +56,52,32,50,55,57,47,52,50,55,47,50,55,57,32,50,55,56,47,52,50,54,47,50,55,56,10,102,32,50,55,57,47,52,50,55,47,50,55,57,32,50,56,52,47,52,51,50,47,50,56,52,32,50,56,53,47,52,51,51,47,50,56,53,10,102,32,50,56,53,47,52,51,51,47,50,56,53,32,50,56,48,47, +52,50,56,47,50,56,48,32,50,55,57,47,52,50,55,47,50,55,57,10,102,32,50,56,48,47,52,50,56,47,50,56,48,32,50,56,53,47,52,51,51,47,50,56,53,32,50,56,54,47,52,51,52,47,50,56,54,10,102,32,50,56,54,47,52,51,52,47,50,56,54,32,50,56,49,47,52,50,57,47,50,56,49, +32,50,56,48,47,52,50,56,47,50,56,48,10,102,32,50,56,49,47,52,50,57,47,50,56,49,32,50,56,54,47,52,51,52,47,50,56,54,32,50,56,55,47,52,51,53,47,50,56,55,10,102,32,50,56,55,47,52,51,53,47,50,56,55,32,50,56,50,47,52,51,48,47,50,56,50,32,50,56,49,47,52,50, +57,47,50,56,49,10,102,32,50,56,51,47,52,51,49,47,50,56,51,32,50,56,56,47,52,51,54,47,50,56,56,32,50,56,57,47,52,51,55,47,50,56,57,10,102,32,50,56,57,47,52,51,55,47,50,56,57,32,50,56,52,47,52,51,50,47,50,56,52,32,50,56,51,47,52,51,49,47,50,56,51,10,102, +32,50,56,52,47,52,51,50,47,50,56,52,32,50,56,57,47,52,51,55,47,50,56,57,32,50,57,48,47,52,51,56,47,50,57,48,10,102,32,50,57,48,47,52,51,56,47,50,57,48,32,50,56,53,47,52,51,51,47,50,56,53,32,50,56,52,47,52,51,50,47,50,56,52,10,102,32,50,56,53,47,52,51, +51,47,50,56,53,32,50,57,48,47,52,51,56,47,50,57,48,32,50,57,49,47,52,51,57,47,50,57,49,10,102,32,50,57,49,47,52,51,57,47,50,57,49,32,50,56,54,47,52,51,52,47,50,56,54,32,50,56,53,47,52,51,51,47,50,56,53,10,102,32,50,56,54,47,52,51,52,47,50,56,54,32,50, +57,49,47,52,51,57,47,50,57,49,32,50,57,50,47,52,52,48,47,50,57,50,10,102,32,50,57,50,47,52,52,48,47,50,57,50,32,50,56,55,47,52,51,53,47,50,56,55,32,50,56,54,47,52,51,52,47,50,56,54,10,102,32,50,56,56,47,52,51,54,47,50,56,56,32,50,57,51,47,52,52,49,47, +50,57,51,32,50,57,52,47,52,52,50,47,50,57,52,10,102,32,50,57,52,47,52,52,50,47,50,57,52,32,50,56,57,47,52,51,55,47,50,56,57,32,50,56,56,47,52,51,54,47,50,56,56,10,102,32,50,56,57,47,52,51,55,47,50,56,57,32,50,57,52,47,52,52,50,47,50,57,52,32,50,57,53, +47,52,52,51,47,50,57,53,10,102,32,50,57,53,47,52,52,51,47,50,57,53,32,50,57,48,47,52,51,56,47,50,57,48,32,50,56,57,47,52,51,55,47,50,56,57,10,102,32,50,57,48,47,52,51,56,47,50,57,48,32,50,57,53,47,52,52,51,47,50,57,53,32,50,57,54,47,52,52,52,47,50,57, +54,10,102,32,50,57,54,47,52,52,52,47,50,57,54,32,50,57,49,47,52,51,57,47,50,57,49,32,50,57,48,47,52,51,56,47,50,57,48,10,102,32,50,57,49,47,52,51,57,47,50,57,49,32,50,57,54,47,52,52,52,47,50,57,54,32,50,57,55,47,52,52,53,47,50,57,55,10,102,32,50,57,55, +47,52,52,53,47,50,57,55,32,50,57,50,47,52,52,48,47,50,57,50,32,50,57,49,47,52,51,57,47,50,57,49,10,102,32,50,57,51,47,52,52,49,47,50,57,51,32,50,53,56,47,52,52,54,47,50,53,56,32,50,53,57,47,52,52,55,47,50,53,57,10,102,32,50,53,57,47,52,52,55,47,50,53, +57,32,50,57,52,47,52,52,50,47,50,57,52,32,50,57,51,47,52,52,49,47,50,57,51,10,102,32,50,57,52,47,52,52,50,47,50,57,52,32,50,53,57,47,52,52,55,47,50,53,57,32,50,54,48,47,52,52,56,47,50,54,48,10,102,32,50,54,48,47,52,52,56,47,50,54,48,32,50,57,53,47,52, +52,51,47,50,57,53,32,50,57,52,47,52,52,50,47,50,57,52,10,102,32,50,57,53,47,52,52,51,47,50,57,53,32,50,54,48,47,52,52,56,47,50,54,48,32,50,54,49,47,52,52,57,47,50,54,49,10,102,32,50,54,49,47,52,52,57,47,50,54,49,32,50,57,54,47,52,52,52,47,50,57,54,32, +50,57,53,47,52,52,51,47,50,57,53,10,102,32,50,57,54,47,52,52,52,47,50,57,54,32,50,54,49,47,52,52,57,47,50,54,49,32,50,54,50,47,52,53,48,47,50,54,50,10,102,32,50,54,50,47,52,53,48,47,50,54,50,32,50,57,55,47,52,52,53,47,50,57,55,32,50,57,54,47,52,52,52, +47,50,57,54,10,102,32,50,54,50,47,52,53,49,47,50,54,50,32,50,54,55,47,52,53,54,47,50,54,55,32,51,48,50,47,52,53,55,47,51,48,50,10,102,32,51,48,50,47,52,53,55,47,51,48,50,32,50,57,56,47,52,53,50,47,50,57,56,32,50,54,50,47,52,53,49,47,50,54,50,10,102,32, +50,57,56,47,52,53,50,47,50,57,56,32,51,48,50,47,52,53,55,47,51,48,50,32,51,48,51,47,52,53,56,47,51,48,51,10,102,32,51,48,51,47,52,53,56,47,51,48,51,32,50,57,57,47,52,53,51,47,50,57,57,32,50,57,56,47,52,53,50,47,50,57,56,10,102,32,50,57,57,47,52,53,51, +47,50,57,57,32,51,48,51,47,52,53,56,47,51,48,51,32,51,48,52,47,52,53,57,47,51,48,52,10,102,32,51,48,52,47,52,53,57,47,51,48,52,32,51,48,48,47,52,53,52,47,51,48,48,32,50,57,57,47,52,53,51,47,50,57,57,10,102,32,51,48,48,47,52,53,52,47,51,48,48,32,51,48, +52,47,52,53,57,47,51,48,52,32,51,48,53,47,52,54,48,47,51,48,53,10,102,32,51,48,53,47,52,54,48,47,51,48,53,32,51,48,49,47,52,53,53,47,51,48,49,32,51,48,48,47,52,53,52,47,51,48,48,10,102,32,50,54,55,47,52,53,54,47,50,54,55,32,50,55,50,47,52,54,49,47,50, +55,50,32,51,48,54,47,52,54,50,47,51,48,54,10,102,32,51,48,54,47,52,54,50,47,51,48,54,32,51,48,50,47,52,53,55,47,51,48,50,32,50,54,55,47,52,53,54,47,50,54,55,10,102,32,51,48,50,47,52,53,55,47,51,48,50,32,51,48,54,47,52,54,50,47,51,48,54,32,51,48,55,47, +52,54,51,47,51,48,55,10,102,32,51,48,55,47,52,54,51,47,51,48,55,32,51,48,51,47,52,53,56,47,51,48,51,32,51,48,50,47,52,53,55,47,51,48,50,10,102,32,51,48,51,47,52,53,56,47,51,48,51,32,51,48,55,47,52,54,51,47,51,48,55,32,51,48,56,47,52,54,52,47,51,48,56, +10,102,32,51,48,56,47,52,54,52,47,51,48,56,32,51,48,52,47,52,53,57,47,51,48,52,32,51,48,51,47,52,53,56,47,51,48,51,10,102,32,51,48,52,47,52,53,57,47,51,48,52,32,51,48,56,47,52,54,52,47,51,48,56,32,51,48,57,47,52,54,53,47,51,48,57,10,102,32,51,48,57,47, +52,54,53,47,51,48,57,32,51,48,53,47,52,54,48,47,51,48,53,32,51,48,52,47,52,53,57,47,51,48,52,10,102,32,50,55,50,47,52,54,49,47,50,55,50,32,50,55,55,47,52,54,54,47,50,55,55,32,51,49,48,47,52,54,55,47,51,49,48,10,102,32,51,49,48,47,52,54,55,47,51,49,48, +32,51,48,54,47,52,54,50,47,51,48,54,32,50,55,50,47,52,54,49,47,50,55,50,10,102,32,51,48,54,47,52,54,50,47,51,48,54,32,51,49,48,47,52,54,55,47,51,49,48,32,51,49,49,47,52,54,56,47,51,49,49,10,102,32,51,49,49,47,52,54,56,47,51,49,49,32,51,48,55,47,52,54, +51,47,51,48,55,32,51,48,54,47,52,54,50,47,51,48,54,10,102,32,51,48,55,47,52,54,51,47,51,48,55,32,51,49,49,47,52,54,56,47,51,49,49,32,51,49,50,47,52,54,57,47,51,49,50,10,102,32,51,49,50,47,52,54,57,47,51,49,50,32,51,48,56,47,52,54,52,47,51,48,56,32,51, +48,55,47,52,54,51,47,51,48,55,10,102,32,51,48,56,47,52,54,52,47,51,48,56,32,51,49,50,47,52,54,57,47,51,49,50,32,51,49,51,47,52,55,48,47,51,49,51,10,102,32,51,49,51,47,52,55,48,47,51,49,51,32,51,48,57,47,52,54,53,47,51,48,57,32,51,48,56,47,52,54,52,47, +51,48,56,10,102,32,50,55,55,47,52,54,54,47,50,55,55,32,50,56,50,47,52,55,49,47,50,56,50,32,51,49,52,47,52,55,50,47,51,49,52,10,102,32,51,49,52,47,52,55,50,47,51,49,52,32,51,49,48,47,52,54,55,47,51,49,48,32,50,55,55,47,52,54,54,47,50,55,55,10,102,32,51, +49,48,47,52,54,55,47,51,49,48,32,51,49,52,47,52,55,50,47,51,49,52,32,51,49,53,47,52,55,51,47,51,49,53,10,102,32,51,49,53,47,52,55,51,47,51,49,53,32,51,49,49,47,52,54,56,47,51,49,49,32,51,49,48,47,52,54,55,47,51,49,48,10,102,32,51,49,49,47,52,54,56,47, +51,49,49,32,51,49,53,47,52,55,51,47,51,49,53,32,51,49,54,47,52,55,52,47,51,49,54,10,102,32,51,49,54,47,52,55,52,47,51,49,54,32,51,49,50,47,52,54,57,47,51,49,50,32,51,49,49,47,52,54,56,47,51,49,49,10,102,32,51,49,50,47,52,54,57,47,51,49,50,32,51,49,54, +47,52,55,52,47,51,49,54,32,51,49,55,47,52,55,53,47,51,49,55,10,102,32,51,49,55,47,52,55,53,47,51,49,55,32,51,49,51,47,52,55,48,47,51,49,51,32,51,49,50,47,52,54,57,47,51,49,50,10,102,32,50,56,50,47,52,55,54,47,50,56,50,32,50,56,55,47,52,56,49,47,50,56, +55,32,51,49,56,47,52,56,50,47,51,49,56,10,102,32,51,49,56,47,52,56,50,47,51,49,56,32,51,49,52,47,52,55,55,47,51,49,52,32,50,56,50,47,52,55,54,47,50,56,50,10,102,32,51,49,52,47,52,55,55,47,51,49,52,32,51,49,56,47,52,56,50,47,51,49,56,32,51,49,57,47,52, +56,51,47,51,49,57,10,102,32,51,49,57,47,52,56,51,47,51,49,57,32,51,49,53,47,52,55,56,47,51,49,53,32,51,49,52,47,52,55,55,47,51,49,52,10,102,32,51,49,53,47,52,55,56,47,51,49,53,32,51,49,57,47,52,56,51,47,51,49,57,32,51,50,48,47,52,56,52,47,51,50,48,10, +102,32,51,50,48,47,52,56,52,47,51,50,48,32,51,49,54,47,52,55,57,47,51,49,54,32,51,49,53,47,52,55,56,47,51,49,53,10,102,32,51,49,54,47,52,55,57,47,51,49,54,32,51,50,48,47,52,56,52,47,51,50,48,32,51,50,49,47,52,56,53,47,51,50,49,10,102,32,51,50,49,47,52, +56,53,47,51,50,49,32,51,49,55,47,52,56,48,47,51,49,55,32,51,49,54,47,52,55,57,47,51,49,54,10,102,32,50,56,55,47,52,56,49,47,50,56,55,32,50,57,50,47,52,56,54,47,50,57,50,32,51,50,50,47,52,56,55,47,51,50,50,10,102,32,51,50,50,47,52,56,55,47,51,50,50,32, +51,49,56,47,52,56,50,47,51,49,56,32,50,56,55,47,52,56,49,47,50,56,55,10,102,32,51,49,56,47,52,56,50,47,51,49,56,32,51,50,50,47,52,56,55,47,51,50,50,32,51,50,51,47,52,56,56,47,51,50,51,10,102,32,51,50,51,47,52,56,56,47,51,50,51,32,51,49,57,47,52,56,51, +47,51,49,57,32,51,49,56,47,52,56,50,47,51,49,56,10,102,32,51,49,57,47,52,56,51,47,51,49,57,32,51,50,51,47,52,56,56,47,51,50,51,32,51,50,52,47,52,56,57,47,51,50,52,10,102,32,51,50,52,47,52,56,57,47,51,50,52,32,51,50,48,47,52,56,52,47,51,50,48,32,51,49, +57,47,52,56,51,47,51,49,57,10,102,32,51,50,48,47,52,56,52,47,51,50,48,32,51,50,52,47,52,56,57,47,51,50,52,32,51,50,53,47,52,57,48,47,51,50,53,10,102,32,51,50,53,47,52,57,48,47,51,50,53,32,51,50,49,47,52,56,53,47,51,50,49,32,51,50,48,47,52,56,52,47,51, +50,48,10,102,32,50,57,50,47,52,56,54,47,50,57,50,32,50,57,55,47,52,57,49,47,50,57,55,32,51,50,54,47,52,57,50,47,51,50,54,10,102,32,51,50,54,47,52,57,50,47,51,50,54,32,51,50,50,47,52,56,55,47,51,50,50,32,50,57,50,47,52,56,54,47,50,57,50,10,102,32,51,50, +50,47,52,56,55,47,51,50,50,32,51,50,54,47,52,57,50,47,51,50,54,32,51,50,55,47,52,57,51,47,51,50,55,10,102,32,51,50,55,47,52,57,51,47,51,50,55,32,51,50,51,47,52,56,56,47,51,50,51,32,51,50,50,47,52,56,55,47,51,50,50,10,102,32,51,50,51,47,52,56,56,47,51, +50,51,32,51,50,55,47,52,57,51,47,51,50,55,32,51,50,56,47,52,57,52,47,51,50,56,10,102,32,51,50,56,47,52,57,52,47,51,50,56,32,51,50,52,47,52,56,57,47,51,50,52,32,51,50,51,47,52,56,56,47,51,50,51,10,102,32,51,50,52,47,52,56,57,47,51,50,52,32,51,50,56,47, +52,57,52,47,51,50,56,32,51,50,57,47,52,57,53,47,51,50,57,10,102,32,51,50,57,47,52,57,53,47,51,50,57,32,51,50,53,47,52,57,48,47,51,50,53,32,51,50,52,47,52,56,57,47,51,50,52,10,102,32,50,57,55,47,52,57,49,47,50,57,55,32,50,54,50,47,52,57,54,47,50,54,50, +32,50,57,56,47,52,57,55,47,50,57,56,10,102,32,50,57,56,47,52,57,55,47,50,57,56,32,51,50,54,47,52,57,50,47,51,50,54,32,50,57,55,47,52,57,49,47,50,57,55,10,102,32,51,50,54,47,52,57,50,47,51,50,54,32,50,57,56,47,52,57,55,47,50,57,56,32,50,57,57,47,52,57, +56,47,50,57,57,10,102,32,50,57,57,47,52,57,56,47,50,57,57,32,51,50,55,47,52,57,51,47,51,50,55,32,51,50,54,47,52,57,50,47,51,50,54,10,102,32,51,50,55,47,52,57,51,47,51,50,55,32,50,57,57,47,52,57,56,47,50,57,57,32,51,48,48,47,52,57,57,47,51,48,48,10,102, +32,51,48,48,47,52,57,57,47,51,48,48,32,51,50,56,47,52,57,52,47,51,50,56,32,51,50,55,47,52,57,51,47,51,50,55,10,102,32,51,50,56,47,52,57,52,47,51,50,56,32,51,48,48,47,52,57,57,47,51,48,48,32,51,48,49,47,53,48,48,47,51,48,49,10,102,32,51,48,49,47,53,48, +48,47,51,48,49,32,51,50,57,47,52,57,53,47,51,50,57,32,51,50,56,47,52,57,52,47,51,50,56,10,102,32,51,51,48,47,53,48,49,47,51,51,48,32,51,51,53,47,53,48,54,47,51,51,53,32,51,51,54,47,53,48,55,47,51,51,54,10,102,32,51,51,54,47,53,48,55,47,51,51,54,32,51, +51,49,47,53,48,50,47,51,51,49,32,51,51,48,47,53,48,49,47,51,51,48,10,102,32,51,51,49,47,53,48,50,47,51,51,49,32,51,51,54,47,53,48,55,47,51,51,54,32,51,51,55,47,53,48,56,47,51,51,55,10,102,32,51,51,55,47,53,48,56,47,51,51,55,32,51,51,50,47,53,48,51,47, +51,51,50,32,51,51,49,47,53,48,50,47,51,51,49,10,102,32,51,51,50,47,53,48,51,47,51,51,50,32,51,51,55,47,53,48,56,47,51,51,55,32,51,51,56,47,53,48,57,47,51,51,56,10,102,32,51,51,56,47,53,48,57,47,51,51,56,32,51,51,51,47,53,48,52,47,51,51,51,32,51,51,50, +47,53,48,51,47,51,51,50,10,102,32,51,51,51,47,53,48,52,47,51,51,51,32,51,51,56,47,53,48,57,47,51,51,56,32,51,51,57,47,53,49,48,47,51,51,57,10,102,32,51,51,57,47,53,49,48,47,51,51,57,32,51,51,52,47,53,48,53,47,51,51,52,32,51,51,51,47,53,48,52,47,51,51, +51,10,102,32,51,51,53,47,53,48,54,47,51,51,53,32,51,52,48,47,53,49,49,47,51,52,48,32,51,52,49,47,53,49,50,47,51,52,49,10,102,32,51,52,49,47,53,49,50,47,51,52,49,32,51,51,54,47,53,48,55,47,51,51,54,32,51,51,53,47,53,48,54,47,51,51,53,10,102,32,51,51,54, +47,53,48,55,47,51,51,54,32,51,52,49,47,53,49,50,47,51,52,49,32,51,52,50,47,53,49,51,47,51,52,50,10,102,32,51,52,50,47,53,49,51,47,51,52,50,32,51,51,55,47,53,48,56,47,51,51,55,32,51,51,54,47,53,48,55,47,51,51,54,10,102,32,51,51,55,47,53,48,56,47,51,51, +55,32,51,52,50,47,53,49,51,47,51,52,50,32,51,52,51,47,53,49,52,47,51,52,51,10,102,32,51,52,51,47,53,49,52,47,51,52,51,32,51,51,56,47,53,48,57,47,51,51,56,32,51,51,55,47,53,48,56,47,51,51,55,10,102,32,51,51,56,47,53,48,57,47,51,51,56,32,51,52,51,47,53, +49,52,47,51,52,51,32,51,52,52,47,53,49,53,47,51,52,52,10,102,32,51,52,52,47,53,49,53,47,51,52,52,32,51,51,57,47,53,49,48,47,51,51,57,32,51,51,56,47,53,48,57,47,51,51,56,10,102,32,51,52,48,47,53,49,49,47,51,52,48,32,51,52,53,47,53,49,54,47,51,52,53,32, +51,52,54,47,53,49,55,47,51,52,54,10,102,32,51,52,54,47,53,49,55,47,51,52,54,32,51,52,49,47,53,49,50,47,51,52,49,32,51,52,48,47,53,49,49,47,51,52,48,10,102,32,51,52,49,47,53,49,50,47,51,52,49,32,51,52,54,47,53,49,55,47,51,52,54,32,51,52,55,47,53,49,56, +47,51,52,55,10,102,32,51,52,55,47,53,49,56,47,51,52,55,32,51,52,50,47,53,49,51,47,51,52,50,32,51,52,49,47,53,49,50,47,51,52,49,10,102,32,51,52,50,47,53,49,51,47,51,52,50,32,51,52,55,47,53,49,56,47,51,52,55,32,51,52,56,47,53,49,57,47,51,52,56,10,102,32, +51,52,56,47,53,49,57,47,51,52,56,32,51,52,51,47,53,49,52,47,51,52,51,32,51,52,50,47,53,49,51,47,51,52,50,10,102,32,51,52,51,47,53,49,52,47,51,52,51,32,51,52,56,47,53,49,57,47,51,52,56,32,51,52,57,47,53,50,48,47,51,52,57,10,102,32,51,52,57,47,53,50,48, +47,51,52,57,32,51,52,52,47,53,49,53,47,51,52,52,32,51,52,51,47,53,49,52,47,51,52,51,10,102,32,51,52,53,47,53,49,54,47,51,52,53,32,51,53,48,47,53,50,49,47,51,53,48,32,51,53,49,47,53,50,50,47,51,53,49,10,102,32,51,53,49,47,53,50,50,47,51,53,49,32,51,52, +54,47,53,49,55,47,51,52,54,32,51,52,53,47,53,49,54,47,51,52,53,10,102,32,51,52,54,47,53,49,55,47,51,52,54,32,51,53,49,47,53,50,50,47,51,53,49,32,51,53,50,47,53,50,51,47,51,53,50,10,102,32,51,53,50,47,53,50,51,47,51,53,50,32,51,52,55,47,53,49,56,47,51, +52,55,32,51,52,54,47,53,49,55,47,51,52,54,10,102,32,51,52,55,47,53,49,56,47,51,52,55,32,51,53,50,47,53,50,51,47,51,53,50,32,51,53,51,47,53,50,52,47,51,53,51,10,102,32,51,53,51,47,53,50,52,47,51,53,51,32,51,52,56,47,53,49,57,47,51,52,56,32,51,52,55,47, +53,49,56,47,51,52,55,10,102,32,51,52,56,47,53,49,57,47,51,52,56,32,51,53,51,47,53,50,52,47,51,53,51,32,51,53,52,47,53,50,53,47,51,53,52,10,102,32,51,53,52,47,53,50,53,47,51,53,52,32,51,52,57,47,53,50,48,47,51,52,57,32,51,52,56,47,53,49,57,47,51,52,56, +10,102,32,51,53,48,47,53,50,54,47,51,53,48,32,51,53,53,47,53,51,49,47,51,53,53,32,51,53,54,47,53,51,50,47,51,53,54,10,102,32,51,53,54,47,53,51,50,47,51,53,54,32,51,53,49,47,53,50,55,47,51,53,49,32,51,53,48,47,53,50,54,47,51,53,48,10,102,32,51,53,49,47, +53,50,55,47,51,53,49,32,51,53,54,47,53,51,50,47,51,53,54,32,51,53,55,47,53,51,51,47,51,53,55,10,102,32,51,53,55,47,53,51,51,47,51,53,55,32,51,53,50,47,53,50,56,47,51,53,50,32,51,53,49,47,53,50,55,47,51,53,49,10,102,32,51,53,50,47,53,50,56,47,51,53,50, +32,51,53,55,47,53,51,51,47,51,53,55,32,51,53,56,47,53,51,52,47,51,53,56,10,102,32,51,53,56,47,53,51,52,47,51,53,56,32,51,53,51,47,53,50,57,47,51,53,51,32,51,53,50,47,53,50,56,47,51,53,50,10,102,32,51,53,51,47,53,50,57,47,51,53,51,32,51,53,56,47,53,51, +52,47,51,53,56,32,51,53,57,47,53,51,53,47,51,53,57,10,102,32,51,53,57,47,53,51,53,47,51,53,57,32,51,53,52,47,53,51,48,47,51,53,52,32,51,53,51,47,53,50,57,47,51,53,51,10,102,32,51,53,53,47,53,51,49,47,51,53,53,32,51,54,48,47,53,51,54,47,51,54,48,32,51, +54,49,47,53,51,55,47,51,54,49,10,102,32,51,54,49,47,53,51,55,47,51,54,49,32,51,53,54,47,53,51,50,47,51,53,54,32,51,53,53,47,53,51,49,47,51,53,53,10,102,32,51,53,54,47,53,51,50,47,51,53,54,32,51,54,49,47,53,51,55,47,51,54,49,32,51,54,50,47,53,51,56,47, +51,54,50,10,102,32,51,54,50,47,53,51,56,47,51,54,50,32,51,53,55,47,53,51,51,47,51,53,55,32,51,53,54,47,53,51,50,47,51,53,54,10,102,32,51,53,55,47,53,51,51,47,51,53,55,32,51,54,50,47,53,51,56,47,51,54,50,32,51,54,51,47,53,51,57,47,51,54,51,10,102,32,51, +54,51,47,53,51,57,47,51,54,51,32,51,53,56,47,53,51,52,47,51,53,56,32,51,53,55,47,53,51,51,47,51,53,55,10,102,32,51,53,56,47,53,51,52,47,51,53,56,32,51,54,51,47,53,51,57,47,51,54,51,32,51,54,52,47,53,52,48,47,51,54,52,10,102,32,51,54,52,47,53,52,48,47, +51,54,52,32,51,53,57,47,53,51,53,47,51,53,57,32,51,53,56,47,53,51,52,47,51,53,56,10,102,32,51,54,48,47,53,51,54,47,51,54,48,32,51,54,53,47,53,52,49,47,51,54,53,32,51,54,54,47,53,52,50,47,51,54,54,10,102,32,51,54,54,47,53,52,50,47,51,54,54,32,51,54,49, +47,53,51,55,47,51,54,49,32,51,54,48,47,53,51,54,47,51,54,48,10,102,32,51,54,49,47,53,51,55,47,51,54,49,32,51,54,54,47,53,52,50,47,51,54,54,32,51,54,55,47,53,52,51,47,51,54,55,10,102,32,51,54,55,47,53,52,51,47,51,54,55,32,51,54,50,47,53,51,56,47,51,54, +50,32,51,54,49,47,53,51,55,47,51,54,49,10,102,32,51,54,50,47,53,51,56,47,51,54,50,32,51,54,55,47,53,52,51,47,51,54,55,32,51,54,56,47,53,52,52,47,51,54,56,10,102,32,51,54,56,47,53,52,52,47,51,54,56,32,51,54,51,47,53,51,57,47,51,54,51,32,51,54,50,47,53, +51,56,47,51,54,50,10,102,32,51,54,51,47,53,51,57,47,51,54,51,32,51,54,56,47,53,52,52,47,51,54,56,32,51,54,57,47,53,52,53,47,51,54,57,10,102,32,51,54,57,47,53,52,53,47,51,54,57,32,51,54,52,47,53,52,48,47,51,54,52,32,51,54,51,47,53,51,57,47,51,54,51,10, +102,32,51,54,53,47,53,52,49,47,51,54,53,32,51,51,48,47,53,52,54,47,51,51,48,32,51,51,49,47,53,52,55,47,51,51,49,10,102,32,51,51,49,47,53,52,55,47,51,51,49,32,51,54,54,47,53,52,50,47,51,54,54,32,51,54,53,47,53,52,49,47,51,54,53,10,102,32,51,54,54,47,53, +52,50,47,51,54,54,32,51,51,49,47,53,52,55,47,51,51,49,32,51,51,50,47,53,52,56,47,51,51,50,10,102,32,51,51,50,47,53,52,56,47,51,51,50,32,51,54,55,47,53,52,51,47,51,54,55,32,51,54,54,47,53,52,50,47,51,54,54,10,102,32,51,54,55,47,53,52,51,47,51,54,55,32, +51,51,50,47,53,52,56,47,51,51,50,32,51,51,51,47,53,52,57,47,51,51,51,10,102,32,51,51,51,47,53,52,57,47,51,51,51,32,51,54,56,47,53,52,52,47,51,54,56,32,51,54,55,47,53,52,51,47,51,54,55,10,102,32,51,54,56,47,53,52,52,47,51,54,56,32,51,51,51,47,53,52,57, +47,51,51,51,32,51,51,52,47,53,53,48,47,51,51,52,10,102,32,51,51,52,47,53,53,48,47,51,51,52,32,51,54,57,47,53,52,53,47,51,54,57,32,51,54,56,47,53,52,52,47,51,54,56,10,102,32,51,51,52,47,53,53,49,47,51,51,52,32,51,51,57,47,53,53,54,47,51,51,57,32,51,55, +52,47,53,53,55,47,51,55,52,10,102,32,51,55,52,47,53,53,55,47,51,55,52,32,51,55,48,47,53,53,50,47,51,55,48,32,51,51,52,47,53,53,49,47,51,51,52,10,102,32,51,55,48,47,53,53,50,47,51,55,48,32,51,55,52,47,53,53,55,47,51,55,52,32,51,55,53,47,53,53,56,47,51, +55,53,10,102,32,51,55,53,47,53,53,56,47,51,55,53,32,51,55,49,47,53,53,51,47,51,55,49,32,51,55,48,47,53,53,50,47,51,55,48,10,102,32,51,55,49,47,53,53,51,47,51,55,49,32,51,55,53,47,53,53,56,47,51,55,53,32,51,55,54,47,53,53,57,47,51,55,54,10,102,32,51,55, +54,47,53,53,57,47,51,55,54,32,51,55,50,47,53,53,52,47,51,55,50,32,51,55,49,47,53,53,51,47,51,55,49,10,102,32,51,55,50,47,53,53,52,47,51,55,50,32,51,55,54,47,53,53,57,47,51,55,54,32,51,55,55,47,53,54,48,47,51,55,55,10,102,32,51,55,55,47,53,54,48,47,51, +55,55,32,51,55,51,47,53,53,53,47,51,55,51,32,51,55,50,47,53,53,52,47,51,55,50,10,102,32,51,51,57,47,53,53,54,47,51,51,57,32,51,52,52,47,53,54,49,47,51,52,52,32,51,55,56,47,53,54,50,47,51,55,56,10,102,32,51,55,56,47,53,54,50,47,51,55,56,32,51,55,52,47, +53,53,55,47,51,55,52,32,51,51,57,47,53,53,54,47,51,51,57,10,102,32,51,55,52,47,53,53,55,47,51,55,52,32,51,55,56,47,53,54,50,47,51,55,56,32,51,55,57,47,53,54,51,47,51,55,57,10,102,32,51,55,57,47,53,54,51,47,51,55,57,32,51,55,53,47,53,53,56,47,51,55,53, +32,51,55,52,47,53,53,55,47,51,55,52,10,102,32,51,55,53,47,53,53,56,47,51,55,53,32,51,55,57,47,53,54,51,47,51,55,57,32,51,56,48,47,53,54,52,47,51,56,48,10,102,32,51,56,48,47,53,54,52,47,51,56,48,32,51,55,54,47,53,53,57,47,51,55,54,32,51,55,53,47,53,53, +56,47,51,55,53,10,102,32,51,55,54,47,53,53,57,47,51,55,54,32,51,56,48,47,53,54,52,47,51,56,48,32,51,56,49,47,53,54,53,47,51,56,49,10,102,32,51,56,49,47,53,54,53,47,51,56,49,32,51,55,55,47,53,54,48,47,51,55,55,32,51,55,54,47,53,53,57,47,51,55,54,10,102, +32,51,52,52,47,53,54,49,47,51,52,52,32,51,52,57,47,53,54,54,47,51,52,57,32,51,56,50,47,53,54,55,47,51,56,50,10,102,32,51,56,50,47,53,54,55,47,51,56,50,32,51,55,56,47,53,54,50,47,51,55,56,32,51,52,52,47,53,54,49,47,51,52,52,10,102,32,51,55,56,47,53,54, +50,47,51,55,56,32,51,56,50,47,53,54,55,47,51,56,50,32,51,56,51,47,53,54,56,47,51,56,51,10,102,32,51,56,51,47,53,54,56,47,51,56,51,32,51,55,57,47,53,54,51,47,51,55,57,32,51,55,56,47,53,54,50,47,51,55,56,10,102,32,51,55,57,47,53,54,51,47,51,55,57,32,51, +56,51,47,53,54,56,47,51,56,51,32,51,56,52,47,53,54,57,47,51,56,52,10,102,32,51,56,52,47,53,54,57,47,51,56,52,32,51,56,48,47,53,54,52,47,51,56,48,32,51,55,57,47,53,54,51,47,51,55,57,10,102,32,51,56,48,47,53,54,52,47,51,56,48,32,51,56,52,47,53,54,57,47, +51,56,52,32,51,56,53,47,53,55,48,47,51,56,53,10,102,32,51,56,53,47,53,55,48,47,51,56,53,32,51,56,49,47,53,54,53,47,51,56,49,32,51,56,48,47,53,54,52,47,51,56,48,10,102,32,51,52,57,47,53,54,54,47,51,52,57,32,51,53,52,47,53,55,49,47,51,53,52,32,51,56,54, +47,53,55,50,47,51,56,54,10,102,32,51,56,54,47,53,55,50,47,51,56,54,32,51,56,50,47,53,54,55,47,51,56,50,32,51,52,57,47,53,54,54,47,51,52,57,10,102,32,51,56,50,47,53,54,55,47,51,56,50,32,51,56,54,47,53,55,50,47,51,56,54,32,51,56,55,47,53,55,51,47,51,56, +55,10,102,32,51,56,55,47,53,55,51,47,51,56,55,32,51,56,51,47,53,54,56,47,51,56,51,32,51,56,50,47,53,54,55,47,51,56,50,10,102,32,51,56,51,47,53,54,56,47,51,56,51,32,51,56,55,47,53,55,51,47,51,56,55,32,51,56,56,47,53,55,52,47,51,56,56,10,102,32,51,56,56, +47,53,55,52,47,51,56,56,32,51,56,52,47,53,54,57,47,51,56,52,32,51,56,51,47,53,54,56,47,51,56,51,10,102,32,51,56,52,47,53,54,57,47,51,56,52,32,51,56,56,47,53,55,52,47,51,56,56,32,51,56,57,47,53,55,53,47,51,56,57,10,102,32,51,56,57,47,53,55,53,47,51,56, +57,32,51,56,53,47,53,55,48,47,51,56,53,32,51,56,52,47,53,54,57,47,51,56,52,10,102,32,51,53,52,47,53,55,54,47,51,53,52,32,51,53,57,47,53,56,49,47,51,53,57,32,51,57,48,47,53,56,50,47,51,57,48,10,102,32,51,57,48,47,53,56,50,47,51,57,48,32,51,56,54,47,53, +55,55,47,51,56,54,32,51,53,52,47,53,55,54,47,51,53,52,10,102,32,51,56,54,47,53,55,55,47,51,56,54,32,51,57,48,47,53,56,50,47,51,57,48,32,51,57,49,47,53,56,51,47,51,57,49,10,102,32,51,57,49,47,53,56,51,47,51,57,49,32,51,56,55,47,53,55,56,47,51,56,55,32, +51,56,54,47,53,55,55,47,51,56,54,10,102,32,51,56,55,47,53,55,56,47,51,56,55,32,51,57,49,47,53,56,51,47,51,57,49,32,51,57,50,47,53,56,52,47,51,57,50,10,102,32,51,57,50,47,53,56,52,47,51,57,50,32,51,56,56,47,53,55,57,47,51,56,56,32,51,56,55,47,53,55,56, +47,51,56,55,10,102,32,51,56,56,47,53,55,57,47,51,56,56,32,51,57,50,47,53,56,52,47,51,57,50,32,51,57,51,47,53,56,53,47,51,57,51,10,102,32,51,57,51,47,53,56,53,47,51,57,51,32,51,56,57,47,53,56,48,47,51,56,57,32,51,56,56,47,53,55,57,47,51,56,56,10,102,32, +51,53,57,47,53,56,49,47,51,53,57,32,51,54,52,47,53,56,54,47,51,54,52,32,51,57,52,47,53,56,55,47,51,57,52,10,102,32,51,57,52,47,53,56,55,47,51,57,52,32,51,57,48,47,53,56,50,47,51,57,48,32,51,53,57,47,53,56,49,47,51,53,57,10,102,32,51,57,48,47,53,56,50, +47,51,57,48,32,51,57,52,47,53,56,55,47,51,57,52,32,51,57,53,47,53,56,56,47,51,57,53,10,102,32,51,57,53,47,53,56,56,47,51,57,53,32,51,57,49,47,53,56,51,47,51,57,49,32,51,57,48,47,53,56,50,47,51,57,48,10,102,32,51,57,49,47,53,56,51,47,51,57,49,32,51,57, +53,47,53,56,56,47,51,57,53,32,51,57,54,47,53,56,57,47,51,57,54,10,102,32,51,57,54,47,53,56,57,47,51,57,54,32,51,57,50,47,53,56,52,47,51,57,50,32,51,57,49,47,53,56,51,47,51,57,49,10,102,32,51,57,50,47,53,56,52,47,51,57,50,32,51,57,54,47,53,56,57,47,51, +57,54,32,51,57,55,47,53,57,48,47,51,57,55,10,102,32,51,57,55,47,53,57,48,47,51,57,55,32,51,57,51,47,53,56,53,47,51,57,51,32,51,57,50,47,53,56,52,47,51,57,50,10,102,32,51,54,52,47,53,56,54,47,51,54,52,32,51,54,57,47,53,57,49,47,51,54,57,32,51,57,56,47, +53,57,50,47,51,57,56,10,102,32,51,57,56,47,53,57,50,47,51,57,56,32,51,57,52,47,53,56,55,47,51,57,52,32,51,54,52,47,53,56,54,47,51,54,52,10,102,32,51,57,52,47,53,56,55,47,51,57,52,32,51,57,56,47,53,57,50,47,51,57,56,32,51,57,57,47,53,57,51,47,51,57,57, +10,102,32,51,57,57,47,53,57,51,47,51,57,57,32,51,57,53,47,53,56,56,47,51,57,53,32,51,57,52,47,53,56,55,47,51,57,52,10,102,32,51,57,53,47,53,56,56,47,51,57,53,32,51,57,57,47,53,57,51,47,51,57,57,32,52,48,48,47,53,57,52,47,52,48,48,10,102,32,52,48,48,47, +53,57,52,47,52,48,48,32,51,57,54,47,53,56,57,47,51,57,54,32,51,57,53,47,53,56,56,47,51,57,53,10,102,32,51,57,54,47,53,56,57,47,51,57,54,32,52,48,48,47,53,57,52,47,52,48,48,32,52,48,49,47,53,57,53,47,52,48,49,10,102,32,52,48,49,47,53,57,53,47,52,48,49, +32,51,57,55,47,53,57,48,47,51,57,55,32,51,57,54,47,53,56,57,47,51,57,54,10,102,32,51,54,57,47,53,57,49,47,51,54,57,32,51,51,52,47,53,57,54,47,51,51,52,32,51,55,48,47,53,57,55,47,51,55,48,10,102,32,51,55,48,47,53,57,55,47,51,55,48,32,51,57,56,47,53,57, +50,47,51,57,56,32,51,54,57,47,53,57,49,47,51,54,57,10,102,32,51,57,56,47,53,57,50,47,51,57,56,32,51,55,48,47,53,57,55,47,51,55,48,32,51,55,49,47,53,57,56,47,51,55,49,10,102,32,51,55,49,47,53,57,56,47,51,55,49,32,51,57,57,47,53,57,51,47,51,57,57,32,51, +57,56,47,53,57,50,47,51,57,56,10,102,32,51,57,57,47,53,57,51,47,51,57,57,32,51,55,49,47,53,57,56,47,51,55,49,32,51,55,50,47,53,57,57,47,51,55,50,10,102,32,51,55,50,47,53,57,57,47,51,55,50,32,52,48,48,47,53,57,52,47,52,48,48,32,51,57,57,47,53,57,51,47, +51,57,57,10,102,32,52,48,48,47,53,57,52,47,52,48,48,32,51,55,50,47,53,57,57,47,51,55,50,32,51,55,51,47,54,48,48,47,51,55,51,10,102,32,51,55,51,47,54,48,48,47,51,55,51,32,52,48,49,47,53,57,53,47,52,48,49,32,52,48,48,47,53,57,52,47,52,48,48,10,102,32,52, +48,55,47,54,48,55,47,52,48,55,32,52,48,51,47,54,48,50,47,52,48,51,32,52,48,50,47,54,48,49,47,52,48,50,10,102,32,52,48,51,47,54,48,50,47,52,48,51,32,52,48,55,47,54,48,55,47,52,48,55,32,52,48,56,47,54,48,56,47,52,48,56,10,102,32,52,48,56,47,54,48,56,47, +52,48,56,32,52,48,52,47,54,48,51,47,52,48,52,32,52,48,51,47,54,48,50,47,52,48,51,10,102,32,52,48,52,47,54,48,51,47,52,48,52,32,52,48,56,47,54,48,56,47,52,48,56,32,52,48,57,47,54,48,57,47,52,48,57,10,102,32,52,48,57,47,54,48,57,47,52,48,57,32,52,48,53, +47,54,48,52,47,52,48,53,32,52,48,52,47,54,48,51,47,52,48,52,10,102,32,52,48,53,47,54,48,52,47,52,48,53,32,52,48,57,47,54,48,57,47,52,48,57,32,52,49,48,47,54,49,48,47,52,49,48,10,102,32,52,49,48,47,54,49,48,47,52,49,48,32,52,48,54,47,54,48,53,47,52,48, +54,32,52,48,53,47,54,48,52,47,52,48,53,10,102,32,52,49,49,47,54,49,50,47,52,49,49,32,52,48,55,47,54,48,55,47,52,48,55,32,52,48,50,47,54,48,54,47,52,48,50,10,102,32,52,48,55,47,54,48,55,47,52,48,55,32,52,49,49,47,54,49,50,47,52,49,49,32,52,49,50,47,54, +49,51,47,52,49,50,10,102,32,52,49,50,47,54,49,51,47,52,49,50,32,52,48,56,47,54,48,56,47,52,48,56,32,52,48,55,47,54,48,55,47,52,48,55,10,102,32,52,48,56,47,54,48,56,47,52,48,56,32,52,49,50,47,54,49,51,47,52,49,50,32,52,49,51,47,54,49,52,47,52,49,51,10, +102,32,52,49,51,47,54,49,52,47,52,49,51,32,52,48,57,47,54,48,57,47,52,48,57,32,52,48,56,47,54,48,56,47,52,48,56,10,102,32,52,48,57,47,54,48,57,47,52,48,57,32,52,49,51,47,54,49,52,47,52,49,51,32,52,49,52,47,54,49,53,47,52,49,52,10,102,32,52,49,52,47,54, +49,53,47,52,49,52,32,52,49,48,47,54,49,48,47,52,49,48,32,52,48,57,47,54,48,57,47,52,48,57,10,102,32,52,49,53,47,54,49,55,47,52,49,53,32,52,49,49,47,54,49,50,47,52,49,49,32,52,48,50,47,54,49,49,47,52,48,50,10,102,32,52,49,49,47,54,49,50,47,52,49,49,32, +52,49,53,47,54,49,55,47,52,49,53,32,52,49,54,47,54,49,56,47,52,49,54,10,102,32,52,49,54,47,54,49,56,47,52,49,54,32,52,49,50,47,54,49,51,47,52,49,50,32,52,49,49,47,54,49,50,47,52,49,49,10,102,32,52,49,50,47,54,49,51,47,52,49,50,32,52,49,54,47,54,49,56, +47,52,49,54,32,52,49,55,47,54,49,57,47,52,49,55,10,102,32,52,49,55,47,54,49,57,47,52,49,55,32,52,49,51,47,54,49,52,47,52,49,51,32,52,49,50,47,54,49,51,47,52,49,50,10,102,32,52,49,51,47,54,49,52,47,52,49,51,32,52,49,55,47,54,49,57,47,52,49,55,32,52,49, +56,47,54,50,48,47,52,49,56,10,102,32,52,49,56,47,54,50,48,47,52,49,56,32,52,49,52,47,54,49,53,47,52,49,52,32,52,49,51,47,54,49,52,47,52,49,51,10,102,32,52,49,57,47,54,50,50,47,52,49,57,32,52,49,53,47,54,49,55,47,52,49,53,32,52,48,50,47,54,49,54,47,52, +48,50,10,102,32,52,49,53,47,54,49,55,47,52,49,53,32,52,49,57,47,54,50,50,47,52,49,57,32,52,50,48,47,54,50,51,47,52,50,48,10,102,32,52,50,48,47,54,50,51,47,52,50,48,32,52,49,54,47,54,49,56,47,52,49,54,32,52,49,53,47,54,49,55,47,52,49,53,10,102,32,52,49, +54,47,54,49,56,47,52,49,54,32,52,50,48,47,54,50,51,47,52,50,48,32,52,50,49,47,54,50,52,47,52,50,49,10,102,32,52,50,49,47,54,50,52,47,52,50,49,32,52,49,55,47,54,49,57,47,52,49,55,32,52,49,54,47,54,49,56,47,52,49,54,10,102,32,52,49,55,47,54,49,57,47,52, +49,55,32,52,50,49,47,54,50,52,47,52,50,49,32,52,50,50,47,54,50,53,47,52,50,50,10,102,32,52,50,50,47,54,50,53,47,52,50,50,32,52,49,56,47,54,50,48,47,52,49,56,32,52,49,55,47,54,49,57,47,52,49,55,10,102,32,52,50,51,47,54,51,50,47,52,50,51,32,52,49,57,47, +54,50,55,47,52,49,57,32,52,48,50,47,54,50,54,47,52,48,50,10,102,32,52,49,57,47,54,50,55,47,52,49,57,32,52,50,51,47,54,51,50,47,52,50,51,32,52,50,52,47,54,51,51,47,52,50,52,10,102,32,52,50,52,47,54,51,51,47,52,50,52,32,52,50,48,47,54,50,56,47,52,50,48, +32,52,49,57,47,54,50,55,47,52,49,57,10,102,32,52,50,48,47,54,50,56,47,52,50,48,32,52,50,52,47,54,51,51,47,52,50,52,32,52,50,53,47,54,51,52,47,52,50,53,10,102,32,52,50,53,47,54,51,52,47,52,50,53,32,52,50,49,47,54,50,57,47,52,50,49,32,52,50,48,47,54,50, +56,47,52,50,48,10,102,32,52,50,49,47,54,50,57,47,52,50,49,32,52,50,53,47,54,51,52,47,52,50,53,32,52,50,54,47,54,51,53,47,52,50,54,10,102,32,52,50,54,47,54,51,53,47,52,50,54,32,52,50,50,47,54,51,48,47,52,50,50,32,52,50,49,47,54,50,57,47,52,50,49,10,102, +32,52,50,55,47,54,51,55,47,52,50,55,32,52,50,51,47,54,51,50,47,52,50,51,32,52,48,50,47,54,51,49,47,52,48,50,10,102,32,52,50,51,47,54,51,50,47,52,50,51,32,52,50,55,47,54,51,55,47,52,50,55,32,52,50,56,47,54,51,56,47,52,50,56,10,102,32,52,50,56,47,54,51, +56,47,52,50,56,32,52,50,52,47,54,51,51,47,52,50,52,32,52,50,51,47,54,51,50,47,52,50,51,10,102,32,52,50,52,47,54,51,51,47,52,50,52,32,52,50,56,47,54,51,56,47,52,50,56,32,52,50,57,47,54,51,57,47,52,50,57,10,102,32,52,50,57,47,54,51,57,47,52,50,57,32,52, +50,53,47,54,51,52,47,52,50,53,32,52,50,52,47,54,51,51,47,52,50,52,10,102,32,52,50,53,47,54,51,52,47,52,50,53,32,52,50,57,47,54,51,57,47,52,50,57,32,52,51,48,47,54,52,48,47,52,51,48,10,102,32,52,51,48,47,54,52,48,47,52,51,48,32,52,50,54,47,54,51,53,47, +52,50,54,32,52,50,53,47,54,51,52,47,52,50,53,10,102,32,52,51,49,47,54,52,50,47,52,51,49,32,52,50,55,47,54,51,55,47,52,50,55,32,52,48,50,47,54,51,54,47,52,48,50,10,102,32,52,50,55,47,54,51,55,47,52,50,55,32,52,51,49,47,54,52,50,47,52,51,49,32,52,51,50, +47,54,52,51,47,52,51,50,10,102,32,52,51,50,47,54,52,51,47,52,51,50,32,52,50,56,47,54,51,56,47,52,50,56,32,52,50,55,47,54,51,55,47,52,50,55,10,102,32,52,50,56,47,54,51,56,47,52,50,56,32,52,51,50,47,54,52,51,47,52,51,50,32,52,51,51,47,54,52,52,47,52,51, +51,10,102,32,52,51,51,47,54,52,52,47,52,51,51,32,52,50,57,47,54,51,57,47,52,50,57,32,52,50,56,47,54,51,56,47,52,50,56,10,102,32,52,50,57,47,54,51,57,47,52,50,57,32,52,51,51,47,54,52,52,47,52,51,51,32,52,51,52,47,54,52,53,47,52,51,52,10,102,32,52,51,52, +47,54,52,53,47,52,51,52,32,52,51,48,47,54,52,48,47,52,51,48,32,52,50,57,47,54,51,57,47,52,50,57,10,102,32,52,51,53,47,54,52,55,47,52,51,53,32,52,51,49,47,54,52,50,47,52,51,49,32,52,48,50,47,54,52,49,47,52,48,50,10,102,32,52,51,49,47,54,52,50,47,52,51, +49,32,52,51,53,47,54,52,55,47,52,51,53,32,52,51,54,47,54,52,56,47,52,51,54,10,102,32,52,51,54,47,54,52,56,47,52,51,54,32,52,51,50,47,54,52,51,47,52,51,50,32,52,51,49,47,54,52,50,47,52,51,49,10,102,32,52,51,50,47,54,52,51,47,52,51,50,32,52,51,54,47,54, +52,56,47,52,51,54,32,52,51,55,47,54,52,57,47,52,51,55,10,102,32,52,51,55,47,54,52,57,47,52,51,55,32,52,51,51,47,54,52,52,47,52,51,51,32,52,51,50,47,54,52,51,47,52,51,50,10,102,32,52,51,51,47,54,52,52,47,52,51,51,32,52,51,55,47,54,52,57,47,52,51,55,32, +52,51,56,47,54,53,48,47,52,51,56,10,102,32,52,51,56,47,54,53,48,47,52,51,56,32,52,51,52,47,54,52,53,47,52,51,52,32,52,51,51,47,54,52,52,47,52,51,51,10,102,32,52,51,57,47,54,53,55,47,52,51,57,32,52,51,53,47,54,53,50,47,52,51,53,32,52,48,50,47,54,53,49, +47,52,48,50,10,102,32,52,51,53,47,54,53,50,47,52,51,53,32,52,51,57,47,54,53,55,47,52,51,57,32,52,52,48,47,54,53,56,47,52,52,48,10,102,32,52,52,48,47,54,53,56,47,52,52,48,32,52,51,54,47,54,53,51,47,52,51,54,32,52,51,53,47,54,53,50,47,52,51,53,10,102,32, +52,51,54,47,54,53,51,47,52,51,54,32,52,52,48,47,54,53,56,47,52,52,48,32,52,52,49,47,54,53,57,47,52,52,49,10,102,32,52,52,49,47,54,53,57,47,52,52,49,32,52,51,55,47,54,53,52,47,52,51,55,32,52,51,54,47,54,53,51,47,52,51,54,10,102,32,52,51,55,47,54,53,52, +47,52,51,55,32,52,52,49,47,54,53,57,47,52,52,49,32,52,52,50,47,54,54,48,47,52,52,50,10,102,32,52,52,50,47,54,54,48,47,52,52,50,32,52,51,56,47,54,53,53,47,52,51,56,32,52,51,55,47,54,53,52,47,52,51,55,10,102,32,52,52,51,47,54,54,50,47,52,52,51,32,52,51, +57,47,54,53,55,47,52,51,57,32,52,48,50,47,54,53,54,47,52,48,50,10,102,32,52,51,57,47,54,53,55,47,52,51,57,32,52,52,51,47,54,54,50,47,52,52,51,32,52,52,52,47,54,54,51,47,52,52,52,10,102,32,52,52,52,47,54,54,51,47,52,52,52,32,52,52,48,47,54,53,56,47,52, +52,48,32,52,51,57,47,54,53,55,47,52,51,57,10,102,32,52,52,48,47,54,53,56,47,52,52,48,32,52,52,52,47,54,54,51,47,52,52,52,32,52,52,53,47,54,54,52,47,52,52,53,10,102,32,52,52,53,47,54,54,52,47,52,52,53,32,52,52,49,47,54,53,57,47,52,52,49,32,52,52,48,47, +54,53,56,47,52,52,48,10,102,32,52,52,49,47,54,53,57,47,52,52,49,32,52,52,53,47,54,54,52,47,52,52,53,32,52,52,54,47,54,54,53,47,52,52,54,10,102,32,52,52,54,47,54,54,53,47,52,52,54,32,52,52,50,47,54,54,48,47,52,52,50,32,52,52,49,47,54,53,57,47,52,52,49, +10,102,32,52,52,55,47,54,54,55,47,52,52,55,32,52,52,51,47,54,54,50,47,52,52,51,32,52,48,50,47,54,54,49,47,52,48,50,10,102,32,52,52,51,47,54,54,50,47,52,52,51,32,52,52,55,47,54,54,55,47,52,52,55,32,52,52,56,47,54,54,56,47,52,52,56,10,102,32,52,52,56,47, +54,54,56,47,52,52,56,32,52,52,52,47,54,54,51,47,52,52,52,32,52,52,51,47,54,54,50,47,52,52,51,10,102,32,52,52,52,47,54,54,51,47,52,52,52,32,52,52,56,47,54,54,56,47,52,52,56,32,52,52,57,47,54,54,57,47,52,52,57,10,102,32,52,52,57,47,54,54,57,47,52,52,57, +32,52,52,53,47,54,54,52,47,52,52,53,32,52,52,52,47,54,54,51,47,52,52,52,10,102,32,52,52,53,47,54,54,52,47,52,52,53,32,52,52,57,47,54,54,57,47,52,52,57,32,52,53,48,47,54,55,48,47,52,53,48,10,102,32,52,53,48,47,54,55,48,47,52,53,48,32,52,52,54,47,54,54, +53,47,52,52,54,32,52,52,53,47,54,54,52,47,52,52,53,10,102,32,52,53,49,47,54,55,50,47,52,53,49,32,52,52,55,47,54,54,55,47,52,52,55,32,52,48,50,47,54,54,54,47,52,48,50,10,102,32,52,52,55,47,54,54,55,47,52,52,55,32,52,53,49,47,54,55,50,47,52,53,49,32,52, +53,50,47,54,55,51,47,52,53,50,10,102,32,52,53,50,47,54,55,51,47,52,53,50,32,52,52,56,47,54,54,56,47,52,52,56,32,52,52,55,47,54,54,55,47,52,52,55,10,102,32,52,52,56,47,54,54,56,47,52,52,56,32,52,53,50,47,54,55,51,47,52,53,50,32,52,53,51,47,54,55,52,47, +52,53,51,10,102,32,52,53,51,47,54,55,52,47,52,53,51,32,52,52,57,47,54,54,57,47,52,52,57,32,52,52,56,47,54,54,56,47,52,52,56,10,102,32,52,52,57,47,54,54,57,47,52,52,57,32,52,53,51,47,54,55,52,47,52,53,51,32,52,53,52,47,54,55,53,47,52,53,52,10,102,32,52, +53,52,47,54,55,53,47,52,53,52,32,52,53,48,47,54,55,48,47,52,53,48,32,52,52,57,47,54,54,57,47,52,52,57,10,102,32,52,53,53,47,54,56,50,47,52,53,53,32,52,53,49,47,54,55,55,47,52,53,49,32,52,48,50,47,54,55,54,47,52,48,50,10,102,32,52,53,49,47,54,55,55,47, +52,53,49,32,52,53,53,47,54,56,50,47,52,53,53,32,52,53,54,47,54,56,51,47,52,53,54,10,102,32,52,53,54,47,54,56,51,47,52,53,54,32,52,53,50,47,54,55,56,47,52,53,50,32,52,53,49,47,54,55,55,47,52,53,49,10,102,32,52,53,50,47,54,55,56,47,52,53,50,32,52,53,54, +47,54,56,51,47,52,53,54,32,52,53,55,47,54,56,52,47,52,53,55,10,102,32,52,53,55,47,54,56,52,47,52,53,55,32,52,53,51,47,54,55,57,47,52,53,51,32,52,53,50,47,54,55,56,47,52,53,50,10,102,32,52,53,51,47,54,55,57,47,52,53,51,32,52,53,55,47,54,56,52,47,52,53, +55,32,52,53,56,47,54,56,53,47,52,53,56,10,102,32,52,53,56,47,54,56,53,47,52,53,56,32,52,53,52,47,54,56,48,47,52,53,52,32,52,53,51,47,54,55,57,47,52,53,51,10,102,32,52,53,57,47,54,56,55,47,52,53,57,32,52,53,53,47,54,56,50,47,52,53,53,32,52,48,50,47,54, +56,49,47,52,48,50,10,102,32,52,53,53,47,54,56,50,47,52,53,53,32,52,53,57,47,54,56,55,47,52,53,57,32,52,54,48,47,54,56,56,47,52,54,48,10,102,32,52,54,48,47,54,56,56,47,52,54,48,32,52,53,54,47,54,56,51,47,52,53,54,32,52,53,53,47,54,56,50,47,52,53,53,10, +102,32,52,53,54,47,54,56,51,47,52,53,54,32,52,54,48,47,54,56,56,47,52,54,48,32,52,54,49,47,54,56,57,47,52,54,49,10,102,32,52,54,49,47,54,56,57,47,52,54,49,32,52,53,55,47,54,56,52,47,52,53,55,32,52,53,54,47,54,56,51,47,52,53,54,10,102,32,52,53,55,47,54, +56,52,47,52,53,55,32,52,54,49,47,54,56,57,47,52,54,49,32,52,54,50,47,54,57,48,47,52,54,50,10,102,32,52,54,50,47,54,57,48,47,52,54,50,32,52,53,56,47,54,56,53,47,52,53,56,32,52,53,55,47,54,56,52,47,52,53,55,10,102,32,52,54,51,47,54,57,50,47,52,54,51,32, +52,53,57,47,54,56,55,47,52,53,57,32,52,48,50,47,54,56,54,47,52,48,50,10,102,32,52,53,57,47,54,56,55,47,52,53,57,32,52,54,51,47,54,57,50,47,52,54,51,32,52,54,52,47,54,57,51,47,52,54,52,10,102,32,52,54,52,47,54,57,51,47,52,54,52,32,52,54,48,47,54,56,56, +47,52,54,48,32,52,53,57,47,54,56,55,47,52,53,57,10,102,32,52,54,48,47,54,56,56,47,52,54,48,32,52,54,52,47,54,57,51,47,52,54,52,32,52,54,53,47,54,57,52,47,52,54,53,10,102,32,52,54,53,47,54,57,52,47,52,54,53,32,52,54,49,47,54,56,57,47,52,54,49,32,52,54, +48,47,54,56,56,47,52,54,48,10,102,32,52,54,49,47,54,56,57,47,52,54,49,32,52,54,53,47,54,57,52,47,52,54,53,32,52,54,54,47,54,57,53,47,52,54,54,10,102,32,52,54,54,47,54,57,53,47,52,54,54,32,52,54,50,47,54,57,48,47,52,54,50,32,52,54,49,47,54,56,57,47,52, +54,49,10,102,32,52,48,51,47,54,57,55,47,52,48,51,32,52,54,51,47,54,57,50,47,52,54,51,32,52,48,50,47,54,57,49,47,52,48,50,10,102,32,52,54,51,47,54,57,50,47,52,54,51,32,52,48,51,47,54,57,55,47,52,48,51,32,52,48,52,47,54,57,56,47,52,48,52,10,102,32,52,48, +52,47,54,57,56,47,52,48,52,32,52,54,52,47,54,57,51,47,52,54,52,32,52,54,51,47,54,57,50,47,52,54,51,10,102,32,52,54,52,47,54,57,51,47,52,54,52,32,52,48,52,47,54,57,56,47,52,48,52,32,52,48,53,47,54,57,57,47,52,48,53,10,102,32,52,48,53,47,54,57,57,47,52, +48,53,32,52,54,53,47,54,57,52,47,52,54,53,32,52,54,52,47,54,57,51,47,52,54,52,10,102,32,52,54,53,47,54,57,52,47,52,54,53,32,52,48,53,47,54,57,57,47,52,48,53,32,52,48,54,47,55,48,48,47,52,48,54,10,102,32,52,48,54,47,55,48,48,47,52,48,54,32,52,54,54,47, +54,57,53,47,52,54,54,32,52,54,53,47,54,57,52,47,52,54,53,10,102,32,52,48,54,47,55,48,49,47,52,48,54,32,52,49,48,47,55,48,54,47,52,49,48,32,52,55,49,47,55,48,55,47,52,55,49,10,102,32,52,55,49,47,55,48,55,47,52,55,49,32,52,54,55,47,55,48,50,47,52,54,55, +32,52,48,54,47,55,48,49,47,52,48,54,10,102,32,52,54,55,47,55,48,50,47,52,54,55,32,52,55,49,47,55,48,55,47,52,55,49,32,52,55,50,47,55,48,56,47,52,55,50,10,102,32,52,55,50,47,55,48,56,47,52,55,50,32,52,54,56,47,55,48,51,47,52,54,56,32,52,54,55,47,55,48, +50,47,52,54,55,10,102,32,52,54,56,47,55,48,51,47,52,54,56,32,52,55,50,47,55,48,56,47,52,55,50,32,52,55,51,47,55,48,57,47,52,55,51,10,102,32,52,55,51,47,55,48,57,47,52,55,51,32,52,54,57,47,55,48,52,47,52,54,57,32,52,54,56,47,55,48,51,47,52,54,56,10,102, +32,52,54,57,47,55,48,52,47,52,54,57,32,52,55,51,47,55,48,57,47,52,55,51,32,52,55,52,47,55,49,48,47,52,55,52,10,102,32,52,55,52,47,55,49,48,47,52,55,52,32,52,55,48,47,55,48,53,47,52,55,48,32,52,54,57,47,55,48,52,47,52,54,57,10,102,32,52,49,48,47,55,48, +54,47,52,49,48,32,52,49,52,47,55,49,49,47,52,49,52,32,52,55,53,47,55,49,50,47,52,55,53,10,102,32,52,55,53,47,55,49,50,47,52,55,53,32,52,55,49,47,55,48,55,47,52,55,49,32,52,49,48,47,55,48,54,47,52,49,48,10,102,32,52,55,49,47,55,48,55,47,52,55,49,32,52, +55,53,47,55,49,50,47,52,55,53,32,52,55,54,47,55,49,51,47,52,55,54,10,102,32,52,55,54,47,55,49,51,47,52,55,54,32,52,55,50,47,55,48,56,47,52,55,50,32,52,55,49,47,55,48,55,47,52,55,49,10,102,32,52,55,50,47,55,48,56,47,52,55,50,32,52,55,54,47,55,49,51,47, +52,55,54,32,52,55,55,47,55,49,52,47,52,55,55,10,102,32,52,55,55,47,55,49,52,47,52,55,55,32,52,55,51,47,55,48,57,47,52,55,51,32,52,55,50,47,55,48,56,47,52,55,50,10,102,32,52,55,51,47,55,48,57,47,52,55,51,32,52,55,55,47,55,49,52,47,52,55,55,32,52,55,56, +47,55,49,53,47,52,55,56,10,102,32,52,55,56,47,55,49,53,47,52,55,56,32,52,55,52,47,55,49,48,47,52,55,52,32,52,55,51,47,55,48,57,47,52,55,51,10,102,32,52,49,52,47,55,49,49,47,52,49,52,32,52,49,56,47,55,49,54,47,52,49,56,32,52,55,57,47,55,49,55,47,52,55, +57,10,102,32,52,55,57,47,55,49,55,47,52,55,57,32,52,55,53,47,55,49,50,47,52,55,53,32,52,49,52,47,55,49,49,47,52,49,52,10,102,32,52,55,53,47,55,49,50,47,52,55,53,32,52,55,57,47,55,49,55,47,52,55,57,32,52,56,48,47,55,49,56,47,52,56,48,10,102,32,52,56,48, +47,55,49,56,47,52,56,48,32,52,55,54,47,55,49,51,47,52,55,54,32,52,55,53,47,55,49,50,47,52,55,53,10,102,32,52,55,54,47,55,49,51,47,52,55,54,32,52,56,48,47,55,49,56,47,52,56,48,32,52,56,49,47,55,49,57,47,52,56,49,10,102,32,52,56,49,47,55,49,57,47,52,56, +49,32,52,55,55,47,55,49,52,47,52,55,55,32,52,55,54,47,55,49,51,47,52,55,54,10,102,32,52,55,55,47,55,49,52,47,52,55,55,32,52,56,49,47,55,49,57,47,52,56,49,32,52,56,50,47,55,50,48,47,52,56,50,10,102,32,52,56,50,47,55,50,48,47,52,56,50,32,52,55,56,47,55, +49,53,47,52,55,56,32,52,55,55,47,55,49,52,47,52,55,55,10,102,32,52,49,56,47,55,49,54,47,52,49,56,32,52,50,50,47,55,50,49,47,52,50,50,32,52,56,51,47,55,50,50,47,52,56,51,10,102,32,52,56,51,47,55,50,50,47,52,56,51,32,52,55,57,47,55,49,55,47,52,55,57,32, +52,49,56,47,55,49,54,47,52,49,56,10,102,32,52,55,57,47,55,49,55,47,52,55,57,32,52,56,51,47,55,50,50,47,52,56,51,32,52,56,52,47,55,50,51,47,52,56,52,10,102,32,52,56,52,47,55,50,51,47,52,56,52,32,52,56,48,47,55,49,56,47,52,56,48,32,52,55,57,47,55,49,55, +47,52,55,57,10,102,32,52,56,48,47,55,49,56,47,52,56,48,32,52,56,52,47,55,50,51,47,52,56,52,32,52,56,53,47,55,50,52,47,52,56,53,10,102,32,52,56,53,47,55,50,52,47,52,56,53,32,52,56,49,47,55,49,57,47,52,56,49,32,52,56,48,47,55,49,56,47,52,56,48,10,102,32, +52,56,49,47,55,49,57,47,52,56,49,32,52,56,53,47,55,50,52,47,52,56,53,32,52,56,54,47,55,50,53,47,52,56,54,10,102,32,52,56,54,47,55,50,53,47,52,56,54,32,52,56,50,47,55,50,48,47,52,56,50,32,52,56,49,47,55,49,57,47,52,56,49,10,102,32,52,50,50,47,55,50,54, +47,52,50,50,32,52,50,54,47,55,51,49,47,52,50,54,32,52,56,55,47,55,51,50,47,52,56,55,10,102,32,52,56,55,47,55,51,50,47,52,56,55,32,52,56,51,47,55,50,55,47,52,56,51,32,52,50,50,47,55,50,54,47,52,50,50,10,102,32,52,56,51,47,55,50,55,47,52,56,51,32,52,56, +55,47,55,51,50,47,52,56,55,32,52,56,56,47,55,51,51,47,52,56,56,10,102,32,52,56,56,47,55,51,51,47,52,56,56,32,52,56,52,47,55,50,56,47,52,56,52,32,52,56,51,47,55,50,55,47,52,56,51,10,102,32,52,56,52,47,55,50,56,47,52,56,52,32,52,56,56,47,55,51,51,47,52, +56,56,32,52,56,57,47,55,51,52,47,52,56,57,10,102,32,52,56,57,47,55,51,52,47,52,56,57,32,52,56,53,47,55,50,57,47,52,56,53,32,52,56,52,47,55,50,56,47,52,56,52,10,102,32,52,56,53,47,55,50,57,47,52,56,53,32,52,56,57,47,55,51,52,47,52,56,57,32,52,57,48,47, +55,51,53,47,52,57,48,10,102,32,52,57,48,47,55,51,53,47,52,57,48,32,52,56,54,47,55,51,48,47,52,56,54,32,52,56,53,47,55,50,57,47,52,56,53,10,102,32,52,50,54,47,55,51,49,47,52,50,54,32,52,51,48,47,55,51,54,47,52,51,48,32,52,57,49,47,55,51,55,47,52,57,49, +10,102,32,52,57,49,47,55,51,55,47,52,57,49,32,52,56,55,47,55,51,50,47,52,56,55,32,52,50,54,47,55,51,49,47,52,50,54,10,102,32,52,56,55,47,55,51,50,47,52,56,55,32,52,57,49,47,55,51,55,47,52,57,49,32,52,57,50,47,55,51,56,47,52,57,50,10,102,32,52,57,50,47, +55,51,56,47,52,57,50,32,52,56,56,47,55,51,51,47,52,56,56,32,52,56,55,47,55,51,50,47,52,56,55,10,102,32,52,56,56,47,55,51,51,47,52,56,56,32,52,57,50,47,55,51,56,47,52,57,50,32,52,57,51,47,55,51,57,47,52,57,51,10,102,32,52,57,51,47,55,51,57,47,52,57,51, +32,52,56,57,47,55,51,52,47,52,56,57,32,52,56,56,47,55,51,51,47,52,56,56,10,102,32,52,56,57,47,55,51,52,47,52,56,57,32,52,57,51,47,55,51,57,47,52,57,51,32,52,57,52,47,55,52,48,47,52,57,52,10,102,32,52,57,52,47,55,52,48,47,52,57,52,32,52,57,48,47,55,51, +53,47,52,57,48,32,52,56,57,47,55,51,52,47,52,56,57,10,102,32,52,51,48,47,55,51,54,47,52,51,48,32,52,51,52,47,55,52,49,47,52,51,52,32,52,57,53,47,55,52,50,47,52,57,53,10,102,32,52,57,53,47,55,52,50,47,52,57,53,32,52,57,49,47,55,51,55,47,52,57,49,32,52, +51,48,47,55,51,54,47,52,51,48,10,102,32,52,57,49,47,55,51,55,47,52,57,49,32,52,57,53,47,55,52,50,47,52,57,53,32,52,57,54,47,55,52,51,47,52,57,54,10,102,32,52,57,54,47,55,52,51,47,52,57,54,32,52,57,50,47,55,51,56,47,52,57,50,32,52,57,49,47,55,51,55,47, +52,57,49,10,102,32,52,57,50,47,55,51,56,47,52,57,50,32,52,57,54,47,55,52,51,47,52,57,54,32,52,57,55,47,55,52,52,47,52,57,55,10,102,32,52,57,55,47,55,52,52,47,52,57,55,32,52,57,51,47,55,51,57,47,52,57,51,32,52,57,50,47,55,51,56,47,52,57,50,10,102,32,52, +57,51,47,55,51,57,47,52,57,51,32,52,57,55,47,55,52,52,47,52,57,55,32,52,57,56,47,55,52,53,47,52,57,56,10,102,32,52,57,56,47,55,52,53,47,52,57,56,32,52,57,52,47,55,52,48,47,52,57,52,32,52,57,51,47,55,51,57,47,52,57,51,10,102,32,52,51,52,47,55,52,49,47, +52,51,52,32,52,51,56,47,55,52,54,47,52,51,56,32,52,57,57,47,55,52,55,47,52,57,57,10,102,32,52,57,57,47,55,52,55,47,52,57,57,32,52,57,53,47,55,52,50,47,52,57,53,32,52,51,52,47,55,52,49,47,52,51,52,10,102,32,52,57,53,47,55,52,50,47,52,57,53,32,52,57,57, +47,55,52,55,47,52,57,57,32,53,48,48,47,55,52,56,47,53,48,48,10,102,32,53,48,48,47,55,52,56,47,53,48,48,32,52,57,54,47,55,52,51,47,52,57,54,32,52,57,53,47,55,52,50,47,52,57,53,10,102,32,52,57,54,47,55,52,51,47,52,57,54,32,53,48,48,47,55,52,56,47,53,48, +48,32,53,48,49,47,55,52,57,47,53,48,49,10,102,32,53,48,49,47,55,52,57,47,53,48,49,32,52,57,55,47,55,52,52,47,52,57,55,32,52,57,54,47,55,52,51,47,52,57,54,10,102,32,52,57,55,47,55,52,52,47,52,57,55,32,53,48,49,47,55,52,57,47,53,48,49,32,53,48,50,47,55, +53,48,47,53,48,50,10,102,32,53,48,50,47,55,53,48,47,53,48,50,32,52,57,56,47,55,52,53,47,52,57,56,32,52,57,55,47,55,52,52,47,52,57,55,10,102,32,52,51,56,47,55,53,49,47,52,51,56,32,52,52,50,47,55,53,54,47,52,52,50,32,53,48,51,47,55,53,55,47,53,48,51,10, +102,32,53,48,51,47,55,53,55,47,53,48,51,32,52,57,57,47,55,53,50,47,52,57,57,32,52,51,56,47,55,53,49,47,52,51,56,10,102,32,52,57,57,47,55,53,50,47,52,57,57,32,53,48,51,47,55,53,55,47,53,48,51,32,53,48,52,47,55,53,56,47,53,48,52,10,102,32,53,48,52,47,55, +53,56,47,53,48,52,32,53,48,48,47,55,53,51,47,53,48,48,32,52,57,57,47,55,53,50,47,52,57,57,10,102,32,53,48,48,47,55,53,51,47,53,48,48,32,53,48,52,47,55,53,56,47,53,48,52,32,53,48,53,47,55,53,57,47,53,48,53,10,102,32,53,48,53,47,55,53,57,47,53,48,53,32, +53,48,49,47,55,53,52,47,53,48,49,32,53,48,48,47,55,53,51,47,53,48,48,10,102,32,53,48,49,47,55,53,52,47,53,48,49,32,53,48,53,47,55,53,57,47,53,48,53,32,53,48,54,47,55,54,48,47,53,48,54,10,102,32,53,48,54,47,55,54,48,47,53,48,54,32,53,48,50,47,55,53,53, +47,53,48,50,32,53,48,49,47,55,53,52,47,53,48,49,10,102,32,52,52,50,47,55,53,54,47,52,52,50,32,52,52,54,47,55,54,49,47,52,52,54,32,53,48,55,47,55,54,50,47,53,48,55,10,102,32,53,48,55,47,55,54,50,47,53,48,55,32,53,48,51,47,55,53,55,47,53,48,51,32,52,52, +50,47,55,53,54,47,52,52,50,10,102,32,53,48,51,47,55,53,55,47,53,48,51,32,53,48,55,47,55,54,50,47,53,48,55,32,53,48,56,47,55,54,51,47,53,48,56,10,102,32,53,48,56,47,55,54,51,47,53,48,56,32,53,48,52,47,55,53,56,47,53,48,52,32,53,48,51,47,55,53,55,47,53, +48,51,10,102,32,53,48,52,47,55,53,56,47,53,48,52,32,53,48,56,47,55,54,51,47,53,48,56,32,53,48,57,47,55,54,52,47,53,48,57,10,102,32,53,48,57,47,55,54,52,47,53,48,57,32,53,48,53,47,55,53,57,47,53,48,53,32,53,48,52,47,55,53,56,47,53,48,52,10,102,32,53,48, +53,47,55,53,57,47,53,48,53,32,53,48,57,47,55,54,52,47,53,48,57,32,53,49,48,47,55,54,53,47,53,49,48,10,102,32,53,49,48,47,55,54,53,47,53,49,48,32,53,48,54,47,55,54,48,47,53,48,54,32,53,48,53,47,55,53,57,47,53,48,53,10,102,32,52,52,54,47,55,54,49,47,52, +52,54,32,52,53,48,47,55,54,54,47,52,53,48,32,53,49,49,47,55,54,55,47,53,49,49,10,102,32,53,49,49,47,55,54,55,47,53,49,49,32,53,48,55,47,55,54,50,47,53,48,55,32,52,52,54,47,55,54,49,47,52,52,54,10,102,32,53,48,55,47,55,54,50,47,53,48,55,32,53,49,49,47, +55,54,55,47,53,49,49,32,53,49,50,47,55,54,56,47,53,49,50,10,102,32,53,49,50,47,55,54,56,47,53,49,50,32,53,48,56,47,55,54,51,47,53,48,56,32,53,48,55,47,55,54,50,47,53,48,55,10,102,32,53,48,56,47,55,54,51,47,53,48,56,32,53,49,50,47,55,54,56,47,53,49,50, +32,53,49,51,47,55,54,57,47,53,49,51,10,102,32,53,49,51,47,55,54,57,47,53,49,51,32,53,48,57,47,55,54,52,47,53,48,57,32,53,48,56,47,55,54,51,47,53,48,56,10,102,32,53,48,57,47,55,54,52,47,53,48,57,32,53,49,51,47,55,54,57,47,53,49,51,32,53,49,52,47,55,55, +48,47,53,49,52,10,102,32,53,49,52,47,55,55,48,47,53,49,52,32,53,49,48,47,55,54,53,47,53,49,48,32,53,48,57,47,55,54,52,47,53,48,57,10,102,32,52,53,48,47,55,54,54,47,52,53,48,32,52,53,52,47,55,55,49,47,52,53,52,32,53,49,53,47,55,55,50,47,53,49,53,10,102, +32,53,49,53,47,55,55,50,47,53,49,53,32,53,49,49,47,55,54,55,47,53,49,49,32,52,53,48,47,55,54,54,47,52,53,48,10,102,32,53,49,49,47,55,54,55,47,53,49,49,32,53,49,53,47,55,55,50,47,53,49,53,32,53,49,54,47,55,55,51,47,53,49,54,10,102,32,53,49,54,47,55,55, +51,47,53,49,54,32,53,49,50,47,55,54,56,47,53,49,50,32,53,49,49,47,55,54,55,47,53,49,49,10,102,32,53,49,50,47,55,54,56,47,53,49,50,32,53,49,54,47,55,55,51,47,53,49,54,32,53,49,55,47,55,55,52,47,53,49,55,10,102,32,53,49,55,47,55,55,52,47,53,49,55,32,53, +49,51,47,55,54,57,47,53,49,51,32,53,49,50,47,55,54,56,47,53,49,50,10,102,32,53,49,51,47,55,54,57,47,53,49,51,32,53,49,55,47,55,55,52,47,53,49,55,32,53,49,56,47,55,55,53,47,53,49,56,10,102,32,53,49,56,47,55,55,53,47,53,49,56,32,53,49,52,47,55,55,48,47, +53,49,52,32,53,49,51,47,55,54,57,47,53,49,51,10,102,32,52,53,52,47,55,55,54,47,52,53,52,32,52,53,56,47,55,56,49,47,52,53,56,32,53,49,57,47,55,56,50,47,53,49,57,10,102,32,53,49,57,47,55,56,50,47,53,49,57,32,53,49,53,47,55,55,55,47,53,49,53,32,52,53,52, +47,55,55,54,47,52,53,52,10,102,32,53,49,53,47,55,55,55,47,53,49,53,32,53,49,57,47,55,56,50,47,53,49,57,32,53,50,48,47,55,56,51,47,53,50,48,10,102,32,53,50,48,47,55,56,51,47,53,50,48,32,53,49,54,47,55,55,56,47,53,49,54,32,53,49,53,47,55,55,55,47,53,49, +53,10,102,32,53,49,54,47,55,55,56,47,53,49,54,32,53,50,48,47,55,56,51,47,53,50,48,32,53,50,49,47,55,56,52,47,53,50,49,10,102,32,53,50,49,47,55,56,52,47,53,50,49,32,53,49,55,47,55,55,57,47,53,49,55,32,53,49,54,47,55,55,56,47,53,49,54,10,102,32,53,49,55, +47,55,55,57,47,53,49,55,32,53,50,49,47,55,56,52,47,53,50,49,32,53,50,50,47,55,56,53,47,53,50,50,10,102,32,53,50,50,47,55,56,53,47,53,50,50,32,53,49,56,47,55,56,48,47,53,49,56,32,53,49,55,47,55,55,57,47,53,49,55,10,102,32,52,53,56,47,55,56,49,47,52,53, +56,32,52,54,50,47,55,56,54,47,52,54,50,32,53,50,51,47,55,56,55,47,53,50,51,10,102,32,53,50,51,47,55,56,55,47,53,50,51,32,53,49,57,47,55,56,50,47,53,49,57,32,52,53,56,47,55,56,49,47,52,53,56,10,102,32,53,49,57,47,55,56,50,47,53,49,57,32,53,50,51,47,55, +56,55,47,53,50,51,32,53,50,52,47,55,56,56,47,53,50,52,10,102,32,53,50,52,47,55,56,56,47,53,50,52,32,53,50,48,47,55,56,51,47,53,50,48,32,53,49,57,47,55,56,50,47,53,49,57,10,102,32,53,50,48,47,55,56,51,47,53,50,48,32,53,50,52,47,55,56,56,47,53,50,52,32, +53,50,53,47,55,56,57,47,53,50,53,10,102,32,53,50,53,47,55,56,57,47,53,50,53,32,53,50,49,47,55,56,52,47,53,50,49,32,53,50,48,47,55,56,51,47,53,50,48,10,102,32,53,50,49,47,55,56,52,47,53,50,49,32,53,50,53,47,55,56,57,47,53,50,53,32,53,50,54,47,55,57,48, +47,53,50,54,10,102,32,53,50,54,47,55,57,48,47,53,50,54,32,53,50,50,47,55,56,53,47,53,50,50,32,53,50,49,47,55,56,52,47,53,50,49,10,102,32,52,54,50,47,55,56,54,47,52,54,50,32,52,54,54,47,55,57,49,47,52,54,54,32,53,50,55,47,55,57,50,47,53,50,55,10,102,32, +53,50,55,47,55,57,50,47,53,50,55,32,53,50,51,47,55,56,55,47,53,50,51,32,52,54,50,47,55,56,54,47,52,54,50,10,102,32,53,50,51,47,55,56,55,47,53,50,51,32,53,50,55,47,55,57,50,47,53,50,55,32,53,50,56,47,55,57,51,47,53,50,56,10,102,32,53,50,56,47,55,57,51, +47,53,50,56,32,53,50,52,47,55,56,56,47,53,50,52,32,53,50,51,47,55,56,55,47,53,50,51,10,102,32,53,50,52,47,55,56,56,47,53,50,52,32,53,50,56,47,55,57,51,47,53,50,56,32,53,50,57,47,55,57,52,47,53,50,57,10,102,32,53,50,57,47,55,57,52,47,53,50,57,32,53,50, +53,47,55,56,57,47,53,50,53,32,53,50,52,47,55,56,56,47,53,50,52,10,102,32,53,50,53,47,55,56,57,47,53,50,53,32,53,50,57,47,55,57,52,47,53,50,57,32,53,51,48,47,55,57,53,47,53,51,48,10,102,32,53,51,48,47,55,57,53,47,53,51,48,32,53,50,54,47,55,57,48,47,53, +50,54,32,53,50,53,47,55,56,57,47,53,50,53,10,102,32,52,54,54,47,55,57,49,47,52,54,54,32,52,48,54,47,55,57,54,47,52,48,54,32,52,54,55,47,55,57,55,47,52,54,55,10,102,32,52,54,55,47,55,57,55,47,52,54,55,32,53,50,55,47,55,57,50,47,53,50,55,32,52,54,54,47, +55,57,49,47,52,54,54,10,102,32,53,50,55,47,55,57,50,47,53,50,55,32,52,54,55,47,55,57,55,47,52,54,55,32,52,54,56,47,55,57,56,47,52,54,56,10,102,32,52,54,56,47,55,57,56,47,52,54,56,32,53,50,56,47,55,57,51,47,53,50,56,32,53,50,55,47,55,57,50,47,53,50,55, +10,102,32,53,50,56,47,55,57,51,47,53,50,56,32,52,54,56,47,55,57,56,47,52,54,56,32,52,54,57,47,55,57,57,47,52,54,57,10,102,32,52,54,57,47,55,57,57,47,52,54,57,32,53,50,57,47,55,57,52,47,53,50,57,32,53,50,56,47,55,57,51,47,53,50,56,10,102,32,53,50,57,47, +55,57,52,47,53,50,57,32,52,54,57,47,55,57,57,47,52,54,57,32,52,55,48,47,56,48,48,47,52,55,48,10,102,32,52,55,48,47,56,48,48,47,52,55,48,32,53,51,48,47,55,57,53,47,53,51,48,32,53,50,57,47,55,57,52,47,53,50,57,10,35,32,57,57,50,32,102,97,99,101,115,10, +10,103,10,0,0 }; + +const char* teapot_obj = (const char*) temp_binary_data_0; + + +const char* getNamedResource (const char*, int&) throw(); +const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw() +{ + unsigned int hash = 0; + if (resourceNameUTF8 != 0) + while (*resourceNameUTF8 != 0) + hash = 31 * hash + (unsigned int) *resourceNameUTF8++; + + switch (hash) + { + case 0x754c69fd: numBytes = 95000; return teapot_obj; + default: break; + } + + numBytes = 0; + return 0; +} + +const char* namedResourceList[] = +{ + "teapot_obj" +}; + +} diff --git a/examples/OpenGLAppExample/JuceLibraryCode/BinaryData.h b/examples/OpenGLAppExample/JuceLibraryCode/BinaryData.h new file mode 100644 index 0000000000..470f5ff3bb --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/BinaryData.h @@ -0,0 +1,26 @@ +/* ========================================================================================= + + This is an auto-generated file: Any edits you make may be overwritten! + +*/ + +#ifndef BINARYDATA_H_65160528_INCLUDED +#define BINARYDATA_H_65160528_INCLUDED + +namespace BinaryData +{ + extern const char* teapot_obj; + const int teapot_objSize = 95000; + + // Points to the start of a list of resource names. + extern const char* namedResourceList[]; + + // Number of elements in the namedResourceList array. + const int namedResourceListSize = 1; + + // If you provide the name of one of the binary resource variables above, this function will + // return the corresponding data and its size (or a null pointer if the name isn't found). + const char* getNamedResource (const char* resourceNameUTF8, int& dataSizeInBytes) throw(); +} + +#endif diff --git a/examples/OpenGLAppExample/JuceLibraryCode/JuceHeader.h b/examples/OpenGLAppExample/JuceLibraryCode/JuceHeader.h new file mode 100644 index 0000000000..0af28d33be --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/JuceHeader.h @@ -0,0 +1,47 @@ +/* + + IMPORTANT! This file is auto-generated each time you save your + project - if you alter its contents, your changes may be overwritten! + + This is the header file that your files should include in order to get all the + JUCE library headers. You should avoid including the JUCE headers directly in + your own source files, because that wouldn't pick up the correct configuration + options for your app. + +*/ + +#ifndef __APPHEADERFILE_C3KRLE__ +#define __APPHEADERFILE_C3KRLE__ + +#include "AppConfig.h" +#include "modules/juce_audio_basics/juce_audio_basics.h" +#include "modules/juce_audio_devices/juce_audio_devices.h" +#include "modules/juce_audio_formats/juce_audio_formats.h" +#include "modules/juce_audio_processors/juce_audio_processors.h" +#include "modules/juce_core/juce_core.h" +#include "modules/juce_cryptography/juce_cryptography.h" +#include "modules/juce_data_structures/juce_data_structures.h" +#include "modules/juce_events/juce_events.h" +#include "modules/juce_graphics/juce_graphics.h" +#include "modules/juce_gui_basics/juce_gui_basics.h" +#include "modules/juce_gui_extra/juce_gui_extra.h" +#include "modules/juce_opengl/juce_opengl.h" +#include "modules/juce_video/juce_video.h" +#include "BinaryData.h" + +#if ! DONT_SET_USING_JUCE_NAMESPACE + // If your code uses a lot of JUCE classes, then this will obviously save you + // a lot of typing, but can be disabled by setting DONT_SET_USING_JUCE_NAMESPACE. + using namespace juce; +#endif + +#if ! JUCE_DONT_DECLARE_PROJECTINFO +namespace ProjectInfo +{ + const char* const projectName = "OpenGLAppExample"; + const char* const versionString = "1.0.0"; + const int versionNumber = 0x10000; +} +#endif + +#endif // __APPHEADERFILE_C3KRLE__ diff --git a/examples/OpenGLAppExample/JuceLibraryCode/ReadMe.txt b/examples/OpenGLAppExample/JuceLibraryCode/ReadMe.txt new file mode 100644 index 0000000000..f6c3564e99 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/ReadMe.txt @@ -0,0 +1,12 @@ + + Important Note!! + ================ + +The purpose of this folder is to contain files that are auto-generated by the Introjucer, +and ALL files in this folder will be mercilessly DELETED and completely re-written whenever +the Introjucer saves your project. + +Therefore, it's a bad idea to make any manual changes to the files in here, or to +put any of your own files in here if you don't want to lose them. (Of course you may choose +to add the folder's contents to your version-control system so that you can re-merge your own +modifications after the Introjucer has saved its changes). diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h new file mode 100644 index 0000000000..b9a775c861 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_basics/juce_audio_basics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_basics/juce_audio_basics.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h new file mode 100644 index 0000000000..6a672ccda4 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_devices/juce_audio_devices.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_devices/juce_audio_devices.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h new file mode 100644 index 0000000000..4307ccc794 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_formats/juce_audio_formats.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_formats/juce_audio_formats.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h new file mode 100644 index 0000000000..bd61929b93 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_audio_processors/juce_audio_processors.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_audio_processors/juce_audio_processors.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_core/juce_core.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_core/juce_core.h new file mode 100644 index 0000000000..ee07e01a50 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_core/juce_core.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_core/juce_core.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h new file mode 100644 index 0000000000..860c0221c7 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_cryptography/juce_cryptography.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_cryptography/juce_cryptography.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h new file mode 100644 index 0000000000..00f01d46aa --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_data_structures/juce_data_structures.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_data_structures/juce_data_structures.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_events/juce_events.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_events/juce_events.h new file mode 100644 index 0000000000..d0b4133815 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_events/juce_events.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_events/juce_events.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_graphics/juce_graphics.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_graphics/juce_graphics.h new file mode 100644 index 0000000000..f287a18ee6 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_graphics/juce_graphics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_graphics/juce_graphics.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h new file mode 100644 index 0000000000..c678c1cfc9 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_gui_basics/juce_gui_basics.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h new file mode 100644 index 0000000000..7efee1d103 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_gui_extra/juce_gui_extra.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_gui_extra/juce_gui_extra.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_opengl/juce_opengl.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_opengl/juce_opengl.h new file mode 100644 index 0000000000..e427fa2135 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_opengl/juce_opengl.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_opengl/juce_opengl.h" + diff --git a/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_video/juce_video.h b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_video/juce_video.h new file mode 100644 index 0000000000..1b77c4a466 --- /dev/null +++ b/examples/OpenGLAppExample/JuceLibraryCode/modules/juce_video/juce_video.h @@ -0,0 +1,5 @@ +// This is an auto-generated file to redirect any included +// module headers to the correct external folder. + +#include "../../../../../modules/juce_video/juce_video.h" + diff --git a/examples/OpenGLAppExample/OpenGLAppExample.jucer b/examples/OpenGLAppExample/OpenGLAppExample.jucer new file mode 100644 index 0000000000..b87826ba38 --- /dev/null +++ b/examples/OpenGLAppExample/OpenGLAppExample.jucer @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/OpenGLAppExample/Source/FragmentShader.glsl b/examples/OpenGLAppExample/Source/FragmentShader.glsl new file mode 100644 index 0000000000..92f989064a --- /dev/null +++ b/examples/OpenGLAppExample/Source/FragmentShader.glsl @@ -0,0 +1,10 @@ +/* + ============================================================================== + + FragmentShader.cpp + Created: 11 Nov 2014 12:17:53pm + Author: Felix Faire + + ============================================================================== +*/ + diff --git a/examples/OpenGLAppExample/Source/Main.cpp b/examples/OpenGLAppExample/Source/Main.cpp new file mode 100644 index 0000000000..f21b0d2868 --- /dev/null +++ b/examples/OpenGLAppExample/Source/Main.cpp @@ -0,0 +1,102 @@ +/* + ============================================================================== + + This file was auto-generated by the Introjucer! + + It contains the basic startup code for a Juce application. + + ============================================================================== +*/ + +#include "../JuceLibraryCode/JuceHeader.h" + + +Component* createMainContentComponent(); + +//============================================================================== +class OpenGLAppExampleApplication : public JUCEApplication +{ +public: + //============================================================================== + OpenGLAppExampleApplication() {} + + const String getApplicationName() override { return ProjectInfo::projectName; } + const String getApplicationVersion() override { return ProjectInfo::versionString; } + bool moreThanOneInstanceAllowed() override { return true; } + + //============================================================================== + void initialise (const String& commandLine) override + { + // This method is where you should put your application's initialisation code.. + + mainWindow = new MainWindow (getApplicationName()); + } + + void shutdown() override + { + // Add your application's shutdown code here.. + + mainWindow = nullptr; // (deletes our window) + } + + //============================================================================== + void systemRequestedQuit() override + { + // This is called when the app is being asked to quit: you can ignore this + // request and let the app carry on running, or call quit() to allow the app to close. + quit(); + } + + void anotherInstanceStarted (const String& commandLine) override + { + // When another instance of the app is launched while this one is running, + // this method is invoked, and the commandLine parameter tells you what + // the other instance's command-line arguments were. + } + + //============================================================================== + /* + This class implements the desktop window that contains an instance of + our MainContentComponent class. + */ + class MainWindow : public DocumentWindow + { + public: + MainWindow (String name) : DocumentWindow (name, + Colours::lightgrey, + DocumentWindow::allButtons) + { + setUsingNativeTitleBar (true); + setContentOwned (createMainContentComponent(), true); + setResizable (true, true); + + centreWithSize (getWidth(), getHeight()); + setVisible (true); + } + + void closeButtonPressed() override + { + // This is called when the user tries to close this window. Here, we'll just + // ask the app to quit when this happens, but you can change this to do + // whatever you need. + JUCEApplication::getInstance()->systemRequestedQuit(); + } + + /* Note: Be careful if you override any DocumentWindow methods - the base + class uses a lot of them, so by overriding you might break its functionality. + It's best to do all your work in your content component instead, but if + you really have to override any DocumentWindow methods, make sure your + subclass also calls the superclass's method. + */ + + private: + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainWindow) + }; + +private: + ScopedPointer mainWindow; +}; + +//============================================================================== +// This macro generates the main() routine that launches the app. +START_JUCE_APPLICATION (OpenGLAppExampleApplication) diff --git a/examples/OpenGLAppExample/Source/MainComponent.cpp b/examples/OpenGLAppExample/Source/MainComponent.cpp new file mode 100644 index 0000000000..78ce8f6e90 --- /dev/null +++ b/examples/OpenGLAppExample/Source/MainComponent.cpp @@ -0,0 +1,396 @@ +/* + ============================================================================== + + This file was auto-generated! + + ============================================================================== +*/ + +#ifndef MAINCOMPONENT_H_INCLUDED +#define MAINCOMPONENT_H_INCLUDED + +#include "../JuceLibraryCode/JuceHeader.h" +#include "WavefrontObjParser.h" + + + +//============================================================================== +/* + This component lives inside our window, and this is where you should put all + your controls and content. +*/ +class MainContentComponent : public OpenGLAppComponent +{ +public: + //============================================================================== + MainContentComponent() + { + setSize (800, 600); + } + + ~MainContentComponent() + { + shutdownOpenGL(); + } + + void initialise() override + { + setShaders(); + } + + void shutdown() override + { + shader = nullptr; + shape = nullptr; + attributes = nullptr; + uniforms = nullptr; + } + + + Matrix3D getProjectionMatrix() const + { + float w = 1.0f / (0.5 + 0.1f); + float h = w * getLocalBounds().toFloat().getAspectRatio (false); + return Matrix3D::fromFrustum (-w, w, -h, h, 4.0f, 30.0f); + } + + Matrix3D getViewMatrix() const + { + Matrix3D viewMatrix (Vector3D (0.0f, 0.0f, -10.0f)); + Matrix3D rotationMatrix = viewMatrix.rotated (Vector3D (-0.3f, 5.0f*sin(getFrameCounter()*0.01f), 0.0f)); + + return viewMatrix * rotationMatrix; + } + + void render() override + { + + jassert (OpenGLHelpers::isContextActive()); + + const float desktopScale = (float) openGLContext.getRenderingScale(); + OpenGLHelpers::clear (Colour::greyLevel(0.1)); + + //glEnable (GL_DEPTH_TEST); + //glDepthFunc (GL_LESS); + glEnable (GL_BLEND); + glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + + glViewport (0, 0, roundToInt (desktopScale * getWidth()), roundToInt (desktopScale * getHeight())); + + shader->use(); + + if (uniforms->projectionMatrix != nullptr) + uniforms->projectionMatrix->setMatrix4 (getProjectionMatrix().mat, 1, false); + + if (uniforms->viewMatrix != nullptr) + uniforms->viewMatrix->setMatrix4 (getViewMatrix().mat, 1, false); + + shape->draw (openGLContext, *attributes); + + // Reset the element buffers so child Components draw correctly + openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, 0); + openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, 0); + + } + + void paint (Graphics& g) override + { + // You can add your component specific drawing code here! + // This will draw over the top of the openGL background. + + g.setColour(Colours::white); + g.setFont (20); + g.drawText ("OpenGL Example", 25, 20, 300, 30, Justification::left); + g.drawLine (20, 20, 170, 20); + g.drawLine (20, 50, 170, 50); + } + + void resized() override + { + // This is called when the MainContentComponent is resized. + // If you add any child components, this is where you should + // update their positions. + + } + + void setShaders() + { + vertexShader = { + "attribute vec4 position;\n" + "attribute vec4 sourceColour;\n" + "attribute vec2 texureCoordIn;\n" + "\n" + "uniform mat4 projectionMatrix;\n" + "uniform mat4 viewMatrix;\n" + "\n" + "varying vec4 destinationColour;\n" + "varying vec2 textureCoordOut;\n" + "\n" + "void main()\n" + "{\n" + " destinationColour = sourceColour;\n" + " textureCoordOut = texureCoordIn;\n" + " gl_Position = projectionMatrix * viewMatrix * position;\n" + "}\n"}; + + fragmentShader = { + #if JUCE_OPENGL_ES + "varying lowp vec4 destinationColour;\n" + "varying lowp vec2 textureCoordOut;\n" + #else + "varying vec4 destinationColour;\n" + "varying vec2 textureCoordOut;\n" + #endif + "\n" + "void main()\n" + "{\n" + " vec4 colour = vec4(0.95, 0.57, 0.03, 0.7);\n" + " gl_FragColor = colour;\n" + "}\n" }; + + + + ScopedPointer newShader (new OpenGLShaderProgram (openGLContext)); + String statusText; + + if (newShader->addVertexShader (OpenGLHelpers::translateVertexShaderToV3 (vertexShader)) + && newShader->addFragmentShader (OpenGLHelpers::translateFragmentShaderToV3 (fragmentShader)) + && newShader->link()) + { + shape = nullptr; + attributes = nullptr; + uniforms = nullptr; + + shader = newShader; + shader->use(); + + shape = new Shape (openGLContext); + attributes = new Attributes (openGLContext, *shader); + uniforms = new Uniforms (openGLContext, *shader); + + statusText = "GLSL: v" + String (OpenGLShaderProgram::getLanguageVersion(), 2); + } + else + { + statusText = newShader->getLastError(); + } + } + + +private: + //============================================================================== + + // private member variables + +struct Vertex + { + float position[3]; + float normal[3]; + float colour[4]; + float texCoord[2]; + }; + + //============================================================================== + // This class just manages the attributes that the shaders use. + struct Attributes + { + Attributes (OpenGLContext& openGLContext, OpenGLShaderProgram& shader) + { + position = createAttribute (openGLContext, shader, "position"); + normal = createAttribute (openGLContext, shader, "normal"); + sourceColour = createAttribute (openGLContext, shader, "sourceColour"); + texureCoordIn = createAttribute (openGLContext, shader, "texureCoordIn"); + } + + void enable (OpenGLContext& openGLContext) + { + if (position != nullptr) + { + openGLContext.extensions.glVertexAttribPointer (position->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), 0); + openGLContext.extensions.glEnableVertexAttribArray (position->attributeID); + } + + if (normal != nullptr) + { + openGLContext.extensions.glVertexAttribPointer (normal->attributeID, 3, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 3)); + openGLContext.extensions.glEnableVertexAttribArray (normal->attributeID); + } + + if (sourceColour != nullptr) + { + openGLContext.extensions.glVertexAttribPointer (sourceColour->attributeID, 4, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 6)); + openGLContext.extensions.glEnableVertexAttribArray (sourceColour->attributeID); + } + + if (texureCoordIn != nullptr) + { + openGLContext.extensions.glVertexAttribPointer (texureCoordIn->attributeID, 2, GL_FLOAT, GL_FALSE, sizeof (Vertex), (GLvoid*) (sizeof (float) * 10)); + openGLContext.extensions.glEnableVertexAttribArray (texureCoordIn->attributeID); + } + } + + void disable (OpenGLContext& openGLContext) + { + if (position != nullptr) openGLContext.extensions.glDisableVertexAttribArray (position->attributeID); + if (normal != nullptr) openGLContext.extensions.glDisableVertexAttribArray (normal->attributeID); + if (sourceColour != nullptr) openGLContext.extensions.glDisableVertexAttribArray (sourceColour->attributeID); + if (texureCoordIn != nullptr) openGLContext.extensions.glDisableVertexAttribArray (texureCoordIn->attributeID); + } + + ScopedPointer position, normal, sourceColour, texureCoordIn; + + private: + static OpenGLShaderProgram::Attribute* createAttribute (OpenGLContext& openGLContext, + OpenGLShaderProgram& shader, + const char* attributeName) + { + if (openGLContext.extensions.glGetAttribLocation (shader.getProgramID(), attributeName) < 0) + return nullptr; + + return new OpenGLShaderProgram::Attribute (shader, attributeName); + } + }; + + //============================================================================== + // This class just manages the uniform values that the demo shaders use. + struct Uniforms + { + Uniforms (OpenGLContext& openGLContext, OpenGLShaderProgram& shader) + { + projectionMatrix = createUniform (openGLContext, shader, "projectionMatrix"); + viewMatrix = createUniform (openGLContext, shader, "viewMatrix"); + } + + ScopedPointer projectionMatrix, viewMatrix; + + private: + static OpenGLShaderProgram::Uniform* createUniform (OpenGLContext& openGLContext, + OpenGLShaderProgram& shader, + const char* uniformName) + { + if (openGLContext.extensions.glGetUniformLocation (shader.getProgramID(), uniformName) < 0) + return nullptr; + + return new OpenGLShaderProgram::Uniform (shader, uniformName); + } + }; + + //============================================================================== + /** This loads a 3D model from an OBJ file and converts it into some vertex buffers + that we can draw. + */ + struct Shape + { + Shape (OpenGLContext& openGLContext) + { + if (shapeFile.load (BinaryData::teapot_obj).wasOk()) + for (int i = 0; i < shapeFile.shapes.size(); ++i) + vertexBuffers.add (new VertexBuffer (openGLContext, *shapeFile.shapes.getUnchecked(i))); + + } + + void draw (OpenGLContext& openGLContext, Attributes& attributes) + { + for (int i = 0; i < vertexBuffers.size(); ++i) + { + VertexBuffer& vertexBuffer = *vertexBuffers.getUnchecked (i); + vertexBuffer.bind(); + + attributes.enable (openGLContext); + glDrawElements (GL_TRIANGLES, vertexBuffer.numIndices, GL_UNSIGNED_INT, 0); + attributes.disable (openGLContext); + } + } + + private: + struct VertexBuffer + { + VertexBuffer (OpenGLContext& context, WavefrontObjFile::Shape& shape) : openGLContext (context) + { + numIndices = shape.mesh.indices.size(); + + openGLContext.extensions.glGenBuffers (1, &vertexBuffer); + openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); + + Array vertices; + createVertexListFromMesh (shape.mesh, vertices, Colours::green); + + openGLContext.extensions.glBufferData (GL_ARRAY_BUFFER, vertices.size() * sizeof (Vertex), + vertices.getRawDataPointer(), GL_STATIC_DRAW); + + openGLContext.extensions.glGenBuffers (1, &indexBuffer); + openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); + openGLContext.extensions.glBufferData (GL_ELEMENT_ARRAY_BUFFER, numIndices * sizeof (juce::uint32), + shape.mesh.indices.getRawDataPointer(), GL_STATIC_DRAW); + } + + ~VertexBuffer() + { + openGLContext.extensions.glDeleteBuffers (1, &vertexBuffer); + openGLContext.extensions.glDeleteBuffers (1, &indexBuffer); + } + + void bind() + { + openGLContext.extensions.glBindBuffer (GL_ARRAY_BUFFER, vertexBuffer); + openGLContext.extensions.glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, indexBuffer); + } + + GLuint vertexBuffer, indexBuffer; + int numIndices; + OpenGLContext& openGLContext; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (VertexBuffer) + }; + + WavefrontObjFile shapeFile; + OwnedArray vertexBuffers; + + static void createVertexListFromMesh (const WavefrontObjFile::Mesh& mesh, Array& list, Colour colour) + { + const float scale = 0.2f; + WavefrontObjFile::TextureCoord defaultTexCoord = { 0.5f, 0.5f }; + WavefrontObjFile::Vertex defaultNormal = { 0.5f, 0.5f, 0.5f }; + + for (int i = 0; i < mesh.vertices.size(); ++i) + { + const WavefrontObjFile::Vertex& v = mesh.vertices.getReference (i); + + const WavefrontObjFile::Vertex& n + = i < mesh.normals.size() ? mesh.normals.getReference (i) : defaultNormal; + + const WavefrontObjFile::TextureCoord& tc + = i < mesh.textureCoords.size() ? mesh.textureCoords.getReference (i) : defaultTexCoord; + + Vertex vert = + { + { scale * v.x, scale * v.y, scale * v.z, }, + { scale * n.x, scale * n.y, scale * n.z, }, + { colour.getFloatRed(), colour.getFloatGreen(), colour.getFloatBlue(), colour.getFloatAlpha() }, + { tc.x, tc.y } + }; + + list.add (vert); + } + } + }; + + const char* vertexShader; + const char* fragmentShader; + + ScopedPointer shader; + ScopedPointer shape; + ScopedPointer attributes; + ScopedPointer uniforms; + + String newVertexShader, newFragmentShader; + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent) +}; + + +// (This function is called by the app startup code to create our main component) +Component* createMainContentComponent() { return new MainContentComponent(); } + + +#endif // MAINCOMPONENT_H_INCLUDED diff --git a/examples/OpenGLAppExample/Source/Resources/WavefrontObjParser.h b/examples/OpenGLAppExample/Source/Resources/WavefrontObjParser.h new file mode 100644 index 0000000000..ca8a3b3ff0 --- /dev/null +++ b/examples/OpenGLAppExample/Source/Resources/WavefrontObjParser.h @@ -0,0 +1,359 @@ +/* + ============================================================================== + + This file is part of the JUCE library - "Jules' Utility Class Extensions" + Copyright 2004-12 by Raw Material Software Ltd. + + ------------------------------------------------------------------------------ + + JUCE can be redistributed and/or modified under the terms of the GNU General + Public License (Version 2), as published by the Free Software Foundation. + A copy of the license is included in the JUCE distribution, or can be found + online at www.gnu.org/licenses. + + JUCE 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. + + ------------------------------------------------------------------------------ + + To release a closed-source product which uses JUCE, commercial licenses are + available: visit www.rawmaterialsoftware.com/juce for more information. + + ============================================================================== +*/ + +#include + + +//============================================================================== +/** + This is a quick-and-dirty parser for the 3D OBJ file format. + + Just call load() and if there aren't any errors, the 'shapes' array should + be filled with all the shape objects that were loaded from the file. +*/ +class WavefrontObjFile +{ +public: + WavefrontObjFile() {} + + Result load (const String& objFileContent) + { + shapes.clear(); + return parseObjFile (StringArray::fromLines (objFileContent)); + } + + Result load (const File& file) + { + sourceFile = file; + return load (file.loadFileAsString()); + } + + //============================================================================== + typedef juce::uint32 Index; + + struct Vertex { float x, y, z; }; + struct TextureCoord { float x, y; }; + + struct Mesh + { + Array vertices, normals; + Array textureCoords; + Array indices; + }; + + struct Material + { + Material() noexcept : shininess (1.0f), refractiveIndex (0.0f) + { + zerostruct (ambient); + zerostruct (diffuse); + zerostruct (specular); + zerostruct (transmittance); + zerostruct (emission); + } + + String name; + + Vertex ambient, diffuse, specular, transmittance, emission; + float shininess, refractiveIndex; + + String ambientTextureName, diffuseTextureName, + specularTextureName, normalTextureName; + + StringPairArray parameters; + }; + + struct Shape + { + String name; + Mesh mesh; + Material material; + }; + + OwnedArray shapes; + +private: + //============================================================================== + File sourceFile; + + struct TripleIndex + { + TripleIndex() noexcept : vertexIndex (-1), textureIndex (-1), normalIndex (-1) {} + bool operator< (const TripleIndex& other) const noexcept { return vertexIndex < other.vertexIndex; } + + int vertexIndex, textureIndex, normalIndex; + }; + + struct IndexMap + { + std::map map; + + Index getIndexFor (TripleIndex i, Mesh& newMesh, const Mesh& srcMesh) + { + const std::map::iterator it (map.find (i)); + + if (it != map.end()) + return it->second; + + const Index index = (Index) newMesh.vertices.size(); + + if (isPositiveAndBelow (i.vertexIndex, srcMesh.vertices.size())) + newMesh.vertices.add (srcMesh.vertices.getReference (i.vertexIndex)); + + if (isPositiveAndBelow (i.normalIndex, srcMesh.normals.size())) + newMesh.normals.add (srcMesh.normals.getReference (i.normalIndex)); + + if (isPositiveAndBelow (i.textureIndex, srcMesh.textureCoords.size())) + newMesh.textureCoords.add (srcMesh.textureCoords.getReference (i.textureIndex)); + + map[i] = index; + return index; + } + }; + + static float parseFloat (String::CharPointerType& t) + { + t = t.findEndOfWhitespace(); + return (float) CharacterFunctions::readDoubleValue (t); + } + + static Vertex parseVertex (String::CharPointerType t) + { + Vertex v; + v.x = parseFloat (t); + v.y = parseFloat (t); + v.z = parseFloat (t); + return v; + } + + static TextureCoord parseTextureCoord (String::CharPointerType t) + { + TextureCoord tc; + tc.x = parseFloat (t); + tc.y = parseFloat (t); + return tc; + } + + static bool matchToken (String::CharPointerType& t, const char* token) + { + const int len = (int) strlen (token); + + if (CharacterFunctions::compareUpTo (CharPointer_ASCII (token), t, len) == 0) + { + String::CharPointerType end = t + len; + + if (end.isEmpty() || end.isWhitespace()) + { + t = end.findEndOfWhitespace(); + return true; + } + } + + return false; + } + + struct Face + { + Face (String::CharPointerType t) + { + while (! t.isEmpty()) + triples.add (parseTriple (t)); + } + + Array triples; + + void addIndices (Mesh& newMesh, const Mesh& srcMesh, IndexMap& indexMap) + { + TripleIndex i0 (triples[0]), i1, i2 (triples[1]); + + for (int i = 2; i < triples.size(); ++i) + { + i1 = i2; + i2 = triples.getReference (i); + + newMesh.indices.add (indexMap.getIndexFor (i0, newMesh, srcMesh)); + newMesh.indices.add (indexMap.getIndexFor (i1, newMesh, srcMesh)); + newMesh.indices.add (indexMap.getIndexFor (i2, newMesh, srcMesh)); + } + } + + static TripleIndex parseTriple (String::CharPointerType& t) + { + TripleIndex i; + + t = t.findEndOfWhitespace(); + i.vertexIndex = t.getIntValue32() - 1; + t = findEndOfFaceToken (t); + + if (t.isEmpty() || t.getAndAdvance() != '/') + return i; + + if (*t == '/') + { + ++t; + } + else + { + i.textureIndex = t.getIntValue32() - 1; + t = findEndOfFaceToken (t); + + if (t.isEmpty() || t.getAndAdvance() != '/') + return i; + } + + i.normalIndex = t.getIntValue32() - 1; + t = findEndOfFaceToken (t); + return i; + } + + static String::CharPointerType findEndOfFaceToken (String::CharPointerType t) noexcept + { + return CharacterFunctions::findEndOfToken (t, CharPointer_ASCII ("/ \t"), String::empty.getCharPointer()); + } + }; + + static Shape* parseFaceGroup (const Mesh& srcMesh, + const Array& faceGroup, + const Material& material, + const String& name) + { + if (faceGroup.size() == 0) + return nullptr; + + ScopedPointer shape (new Shape()); + shape->name = name; + shape->material = material; + + IndexMap indexMap; + + for (int i = 0; i < faceGroup.size(); ++i) + faceGroup.getReference(i).addIndices (shape->mesh, srcMesh, indexMap); + + return shape.release(); + } + + Result parseObjFile (const StringArray& lines) + { + Mesh mesh; + Array faceGroup; + + Array knownMaterials; + Material lastMaterial; + String lastName; + + for (int lineNum = 0; lineNum < lines.size(); ++lineNum) + { + String::CharPointerType l = lines[lineNum].getCharPointer().findEndOfWhitespace(); + + if (matchToken (l, "v")) { mesh.vertices.add (parseVertex (l)); continue; } + if (matchToken (l, "vn")) { mesh.normals.add (parseVertex (l)); continue; } + if (matchToken (l, "vt")) { mesh.textureCoords.add (parseTextureCoord (l)); continue; } + if (matchToken (l, "f")) { faceGroup.add (Face (l)); continue; } + + if (matchToken (l, "usemtl")) + { + const String name (String (l).trim()); + + for (int i = knownMaterials.size(); --i >= 0;) + { + if (knownMaterials.getReference(i).name == name) + { + lastMaterial = knownMaterials.getReference(i); + break; + } + } + + continue; + } + + if (matchToken (l, "mtllib")) + { + Result r = parseMaterial (knownMaterials, String (l).trim()); + continue; + } + + if (matchToken (l, "g") || matchToken (l, "o")) + { + if (Shape* shape = parseFaceGroup (mesh, faceGroup, lastMaterial, lastName)) + shapes.add (shape); + + faceGroup.clear(); + lastName = StringArray::fromTokens (l, " \t", "")[0]; + continue; + } + } + + if (Shape* shape = parseFaceGroup (mesh, faceGroup, lastMaterial, lastName)) + shapes.add (shape); + + return Result::ok(); + } + + Result parseMaterial (Array& materials, const String& filename) + { + jassert (sourceFile.exists()); + File f (sourceFile.getSiblingFile (filename)); + + if (! f.exists()) + return Result::fail ("Cannot open file: " + filename); + + StringArray lines; + lines.addLines (f.loadFileAsString()); + + materials.clear(); + Material material; + + for (int i = 0; i < lines.size(); ++i) + { + String::CharPointerType l (lines[i].getCharPointer().findEndOfWhitespace()); + + if (matchToken (l, "newmtl")) { materials.add (material); material.name = String (l).trim(); continue; } + + if (matchToken (l, "Ka")) { material.ambient = parseVertex (l); continue; } + if (matchToken (l, "Kd")) { material.diffuse = parseVertex (l); continue; } + if (matchToken (l, "Ks")) { material.specular = parseVertex (l); continue; } + if (matchToken (l, "Kt")) { material.transmittance = parseVertex (l); continue; } + if (matchToken (l, "Ke")) { material.emission = parseVertex (l); continue; } + if (matchToken (l, "Ni")) { material.refractiveIndex = parseFloat (l); continue; } + if (matchToken (l, "Ns")) { material.shininess = parseFloat (l); continue; } + + if (matchToken (l, "map_Ka")) { material.ambientTextureName = String (l).trim(); continue; } + if (matchToken (l, "map_Kd")) { material.diffuseTextureName = String (l).trim(); continue; } + if (matchToken (l, "map_Ks")) { material.specularTextureName = String (l).trim(); continue; } + if (matchToken (l, "map_Ns")) { material.normalTextureName = String (l).trim(); continue; } + + StringArray tokens; + tokens.addTokens (l, " \t", ""); + + if (tokens.size() >= 2) + material.parameters.set (tokens[0].trim(), tokens[1].trim()); + } + + materials.add (material); + return Result::ok(); + } + + JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (WavefrontObjFile) +}; diff --git a/examples/OpenGLAppExample/Source/Resources/teapot.obj b/examples/OpenGLAppExample/Source/Resources/teapot.obj new file mode 100644 index 0000000000..b6c6810782 --- /dev/null +++ b/examples/OpenGLAppExample/Source/Resources/teapot.obj @@ -0,0 +1,2866 @@ +# Max2Obj Version 4.0 Mar 10th, 2001 +# +# object Teapot01 to come ... +# +v 5.929688 4.125000 0.000000 +v 5.832031 4.494141 0.000000 +v 5.945313 4.617188 0.000000 +v 6.175781 4.494141 0.000000 +v 6.429688 4.125000 0.000000 +v 5.387188 4.125000 2.747500 +v 5.297100 4.494141 2.709170 +v 5.401602 4.617188 2.753633 +v 5.614209 4.494141 2.844092 +v 5.848437 4.125000 2.943750 +v 3.899688 4.125000 4.970000 +v 3.830352 4.494141 4.900664 +v 3.910782 4.617188 4.981094 +v 4.074414 4.494141 5.144727 +v 4.254687 4.125000 5.325000 +v 1.677188 4.125000 6.457500 +v 1.638858 4.494141 6.367412 +v 1.683320 4.617188 6.471914 +v 1.773780 4.494141 6.684522 +v 1.873438 4.125000 6.918750 +v -1.070312 4.125000 7.000000 +v -1.070312 4.494141 6.902344 +v -1.070312 4.617188 7.015625 +v -1.070312 4.494141 7.246094 +v -1.070312 4.125000 7.500000 +v -4.007656 4.125000 6.457500 +v -3.859572 4.494141 6.367412 +v -3.847676 4.617188 6.471914 +v -3.917371 4.494141 6.684522 +v -4.014062 4.125000 6.918750 +v -6.209063 4.125000 4.970000 +v -6.042168 4.494141 4.900664 +v -6.072500 4.617188 4.981094 +v -6.217675 4.494141 5.144727 +v -6.395312 4.125000 5.325000 +v -7.591093 4.125000 2.747500 +v -7.464421 4.494141 2.709170 +v -7.550137 4.617188 2.753633 +v -7.755822 4.494141 2.844092 +v -7.989062 4.125000 2.943750 +v -8.070313 4.125000 0.000000 +v -7.972656 4.494141 0.000000 +v -8.085938 4.617188 0.000000 +v -8.316406 4.494141 0.000000 +v -8.570313 4.125000 0.000000 +v -7.527812 4.125000 -2.747500 +v -7.437724 4.494141 -2.709170 +v -7.542227 4.617188 -2.753633 +v -7.754834 4.494141 -2.844092 +v -7.989062 4.125000 -2.943750 +v -6.040312 4.125000 -4.970000 +v -5.970977 4.494141 -4.900664 +v -6.051406 4.617188 -4.981094 +v -6.215039 4.494141 -5.144727 +v -6.395312 4.125000 -5.325000 +v -3.817812 4.125000 -6.457500 +v -3.779482 4.494141 -6.367412 +v -3.823945 4.617188 -6.471914 +v -3.914404 4.494141 -6.684522 +v -4.014062 4.125000 -6.918750 +v -1.070312 4.125000 -7.000000 +v -1.070312 4.494141 -6.902344 +v -1.070312 4.617188 -7.015625 +v -1.070312 4.494141 -7.246094 +v -1.070312 4.125000 -7.500000 +v 1.677188 4.125000 -6.457500 +v 1.638858 4.494141 -6.367412 +v 1.683320 4.617188 -6.471914 +v 1.773780 4.494141 -6.684522 +v 1.873438 4.125000 -6.918750 +v 3.899688 4.125000 -4.970000 +v 3.830352 4.494141 -4.900664 +v 3.910782 4.617188 -4.981094 +v 4.074414 4.494141 -5.144727 +v 4.254687 4.125000 -5.325000 +v 5.387188 4.125000 -2.747500 +v 5.297100 4.494141 -2.709170 +v 5.401602 4.617188 -2.753633 +v 5.614209 4.494141 -2.844092 +v 5.848437 4.125000 -2.943750 +v 7.347656 2.162109 0.000000 +v 8.148438 0.234375 0.000000 +v 8.714844 -1.623047 0.000000 +v 8.929688 -3.375000 0.000000 +v 6.695264 2.162109 3.304053 +v 7.433985 0.234375 3.618360 +v 7.956494 -1.623047 3.840674 +v 8.154688 -3.375000 3.925000 +v 4.906446 2.162109 5.976758 +v 5.475000 0.234375 6.545312 +v 5.877149 -1.623047 6.947461 +v 6.029688 -3.375000 7.100000 +v 2.233740 2.162109 7.765576 +v 2.548047 0.234375 8.504297 +v 2.770362 -1.623047 9.026807 +v 2.854688 -3.375000 9.225000 +v -1.070312 2.162109 8.417969 +v -1.070312 0.234375 9.218750 +v -1.070312 -1.623047 9.785156 +v -1.070312 -3.375000 10.000000 +v -4.374365 2.162109 7.765576 +v -4.688672 0.234375 8.504297 +v -4.910986 -1.623047 9.026807 +v -4.995313 -3.375000 9.225000 +v -7.047071 2.162109 5.976758 +v -7.615624 0.234375 6.545312 +v -8.017773 -1.623047 6.947461 +v -8.170312 -3.375000 7.100000 +v -8.835889 2.162109 3.304053 +v -9.574610 0.234375 3.618360 +v -10.097119 -1.623047 3.840674 +v -10.295313 -3.375000 3.925000 +v -9.488281 2.162109 0.000000 +v -10.289063 0.234375 0.000000 +v -10.855469 -1.623047 0.000000 +v -11.070313 -3.375000 0.000000 +v -8.835889 2.162109 -3.304053 +v -9.574610 0.234375 -3.618360 +v -10.097119 -1.623047 -3.840674 +v -10.295313 -3.375000 -3.925000 +v -7.047071 2.162109 -5.976758 +v -7.615624 0.234375 -6.545312 +v -8.017773 -1.623047 -6.947461 +v -8.170312 -3.375000 -7.100000 +v -4.374365 2.162109 -7.765576 +v -4.688672 0.234375 -8.504297 +v -4.910986 -1.623047 -9.026807 +v -4.995313 -3.375000 -9.225000 +v -1.070312 2.162109 -8.417969 +v -1.070312 0.234375 -9.218750 +v -1.070312 -1.623047 -9.785156 +v -1.070312 -3.375000 -10.000000 +v 2.233740 2.162109 -7.765576 +v 2.548047 0.234375 -8.504297 +v 2.770362 -1.623047 -9.026807 +v 2.854688 -3.375000 -9.225000 +v 4.906446 2.162109 -5.976758 +v 5.475000 0.234375 -6.545312 +v 5.877149 -1.623047 -6.947461 +v 6.029688 -3.375000 -7.100000 +v 6.695264 2.162109 -3.304053 +v 7.433985 0.234375 -3.618360 +v 7.956494 -1.623047 -3.840674 +v 8.154688 -3.375000 -3.925000 +v 8.539063 -4.857422 0.000000 +v 7.679688 -5.953125 0.000000 +v 6.820313 -6.697266 0.000000 +v 6.429688 -7.125000 0.000000 +v 7.794336 -4.857422 3.771680 +v 7.001562 -5.953125 3.434375 +v 6.208789 -6.697266 3.097070 +v 5.848437 -7.125000 2.943750 +v 5.752343 -4.857422 6.822656 +v 5.142187 -5.953125 6.212500 +v 4.532031 -6.697266 5.602344 +v 4.254687 -7.125000 5.325000 +v 2.701367 -4.857422 8.864649 +v 2.364063 -5.953125 8.071875 +v 2.026758 -6.697266 7.279101 +v 1.873438 -7.125000 6.918750 +v -1.070312 -4.857422 9.609375 +v -1.070312 -5.953125 8.750000 +v -1.070312 -6.697266 7.890625 +v -1.070312 -7.125000 7.500000 +v -4.841992 -4.857422 8.864649 +v -4.504687 -5.953125 8.071875 +v -4.167383 -6.697266 7.279101 +v -4.014062 -7.125000 6.918750 +v -7.892968 -4.857422 6.822656 +v -7.282812 -5.953125 6.212500 +v -6.672656 -6.697266 5.602344 +v -6.395312 -7.125000 5.325000 +v -9.934961 -4.857422 3.771680 +v -9.142187 -5.953125 3.434375 +v -8.349414 -6.697266 3.097070 +v -7.989062 -7.125000 2.943750 +v -10.679688 -4.857422 0.000000 +v -9.820313 -5.953125 0.000000 +v -8.960938 -6.697266 0.000000 +v -8.570313 -7.125000 0.000000 +v -9.934961 -4.857422 -3.771680 +v -9.142187 -5.953125 -3.434375 +v -8.349414 -6.697266 -3.097070 +v -7.989062 -7.125000 -2.943750 +v -7.892968 -4.857422 -6.822656 +v -7.282812 -5.953125 -6.212500 +v -6.672656 -6.697266 -5.602344 +v -6.395312 -7.125000 -5.325000 +v -4.841992 -4.857422 -8.864649 +v -4.504687 -5.953125 -8.071875 +v -4.167383 -6.697266 -7.279101 +v -4.014062 -7.125000 -6.918750 +v -1.070312 -4.857422 -9.609375 +v -1.070312 -5.953125 -8.750000 +v -1.070312 -6.697266 -7.890625 +v -1.070312 -7.125000 -7.500000 +v 2.701367 -4.857422 -8.864649 +v 2.364063 -5.953125 -8.071875 +v 2.026758 -6.697266 -7.279101 +v 1.873438 -7.125000 -6.918750 +v 5.752343 -4.857422 -6.822656 +v 5.142187 -5.953125 -6.212500 +v 4.532031 -6.697266 -5.602344 +v 4.254687 -7.125000 -5.325000 +v 7.794336 -4.857422 -3.771680 +v 7.001562 -5.953125 -3.434375 +v 6.208789 -6.697266 -3.097070 +v 5.848437 -7.125000 -2.943750 +v 6.259766 -7.400391 0.000000 +v 5.351563 -7.640625 0.000000 +v 3.107422 -7.810547 0.000000 +v -1.070312 -7.875000 0.000000 +v 5.691685 -7.400391 2.877056 +v 4.853868 -7.640625 2.520586 +v 2.783648 -7.810547 1.639761 +v 4.134043 -7.400391 5.204355 +v 3.489219 -7.640625 4.559531 +v 1.895879 -7.810547 2.966191 +v 1.806743 -7.400391 6.761997 +v 1.450274 -7.640625 5.924180 +v 0.569448 -7.810547 3.853960 +v -1.070312 -7.400391 7.330078 +v -1.070312 -7.640625 6.421875 +v -1.070312 -7.810547 4.177734 +v -3.947368 -7.400391 6.761997 +v -3.590898 -7.640625 5.924180 +v -2.710073 -7.810547 3.853960 +v -6.274668 -7.400391 5.204355 +v -5.629844 -7.640625 4.559531 +v -4.036504 -7.810547 2.966191 +v -7.832309 -7.400391 2.877056 +v -6.994492 -7.640625 2.520586 +v -4.924272 -7.810547 1.639761 +v -8.400391 -7.400391 0.000000 +v -7.492188 -7.640625 0.000000 +v -5.248047 -7.810547 0.000000 +v -7.832309 -7.400391 -2.877056 +v -6.994492 -7.640625 -2.520586 +v -4.924272 -7.810547 -1.639761 +v -6.274668 -7.400391 -5.204355 +v -5.629844 -7.640625 -4.559531 +v -4.036504 -7.810547 -2.966191 +v -3.947368 -7.400391 -6.761997 +v -3.590898 -7.640625 -5.924180 +v -2.710073 -7.810547 -3.853960 +v -1.070312 -7.400391 -7.330078 +v -1.070312 -7.640625 -6.421875 +v -1.070312 -7.810547 -4.177734 +v 1.806743 -7.400391 -6.761997 +v 1.450274 -7.640625 -5.924180 +v 0.569448 -7.810547 -3.853960 +v 4.134043 -7.400391 -5.204355 +v 3.489219 -7.640625 -4.559531 +v 1.895879 -7.810547 -2.966191 +v 5.691685 -7.400391 -2.877056 +v 4.853868 -7.640625 -2.520586 +v 2.783648 -7.810547 -1.639761 +v -9.070313 2.250000 0.000000 +v -11.406250 2.232422 0.000000 +v -13.132813 2.109375 0.000000 +v -14.203125 1.775391 0.000000 +v -14.570313 1.125000 0.000000 +v -8.992188 2.425781 0.843750 +v -11.475830 2.405457 0.843750 +v -13.298828 2.263184 0.843750 +v -14.421631 1.877014 0.843750 +v -14.804688 1.125000 0.843750 +v -8.820313 2.812500 1.125000 +v -11.628906 2.786134 1.125000 +v -13.664063 2.601563 1.125000 +v -14.902344 2.100586 1.125000 +v -15.320313 1.125000 1.125000 +v -8.648438 3.199219 0.843750 +v -11.781982 3.166809 0.843750 +v -14.029297 2.939941 0.843750 +v -15.383057 2.324158 0.843750 +v -15.835938 1.125000 0.843750 +v -8.570313 3.375000 0.000000 +v -11.851563 3.339844 0.000000 +v -14.195313 3.093750 0.000000 +v -15.601563 2.425781 0.000000 +v -16.070313 1.125000 0.000000 +v -8.648438 3.199219 -0.843750 +v -11.781982 3.166809 -0.843750 +v -14.029297 2.939941 -0.843750 +v -15.383057 2.324158 -0.843750 +v -15.835938 1.125000 -0.843750 +v -8.820313 2.812500 -1.125000 +v -11.628906 2.786134 -1.125000 +v -13.664063 2.601563 -1.125000 +v -14.902344 2.100586 -1.125000 +v -15.320313 1.125000 -1.125000 +v -8.992188 2.425781 -0.843750 +v -11.475830 2.405457 -0.843750 +v -13.298828 2.263184 -0.843750 +v -14.421631 1.877014 -0.843750 +v -14.804688 1.125000 -0.843750 +v -14.375000 0.105469 0.000000 +v -13.757813 -1.125000 0.000000 +v -12.671875 -2.355469 0.000000 +v -11.070313 -3.375000 0.000000 +v -14.588013 0.007050 0.843750 +v -13.909180 -1.275146 0.843750 +v -12.724976 -2.540863 0.843750 +v -10.992188 -3.609375 0.843750 +v -15.056641 -0.209473 1.125000 +v -14.242188 -1.605469 1.125000 +v -12.841797 -2.948730 1.125000 +v -10.820313 -4.125000 1.125000 +v -15.525269 -0.425995 0.843750 +v -14.575195 -1.935791 0.843750 +v -12.958618 -3.356598 0.843750 +v -10.648438 -4.640625 0.843750 +v -15.738281 -0.524414 0.000000 +v -14.726563 -2.085938 0.000000 +v -13.011719 -3.541992 0.000000 +v -10.570313 -4.875000 0.000000 +v -15.525269 -0.425995 -0.843750 +v -14.575195 -1.935791 -0.843750 +v -12.958618 -3.356598 -0.843750 +v -10.648438 -4.640625 -0.843750 +v -15.056641 -0.209473 -1.125000 +v -14.242188 -1.605469 -1.125000 +v -12.841797 -2.948730 -1.125000 +v -10.820313 -4.125000 -1.125000 +v -14.588013 0.007050 -0.843750 +v -13.909180 -1.275146 -0.843750 +v -12.724976 -2.540863 -0.843750 +v -10.992188 -3.609375 -0.843750 +v 7.429688 -0.750000 0.000000 +v 9.828125 -0.199219 0.000000 +v 10.867188 1.125000 0.000000 +v 11.437500 2.730469 0.000000 +v 12.429688 4.125000 0.000000 +v 7.429688 -1.394531 1.856250 +v 10.011230 -0.677124 1.676074 +v 11.101563 0.846680 1.279688 +v 11.723145 2.629761 0.883301 +v 12.898438 4.125000 0.703125 +v 7.429688 -2.812500 2.475000 +v 10.414063 -1.728516 2.234766 +v 11.617188 0.234375 1.706250 +v 12.351563 2.408203 1.177734 +v 13.929688 4.125000 0.937500 +v 7.429688 -4.230469 1.856250 +v 10.816895 -2.779907 1.676074 +v 12.132813 -0.377930 1.279688 +v 12.979980 2.186646 0.883301 +v 14.960938 4.125000 0.703125 +v 7.429688 -4.875000 0.000000 +v 11.000000 -3.257813 0.000000 +v 12.367188 -0.656250 0.000000 +v 13.265625 2.085938 0.000000 +v 15.429688 4.125000 0.000000 +v 7.429688 -4.230469 -1.856250 +v 10.816895 -2.779907 -1.676074 +v 12.132813 -0.377930 -1.279688 +v 12.979980 2.186646 -0.883301 +v 14.960938 4.125000 -0.703125 +v 7.429688 -2.812500 -2.475000 +v 10.414063 -1.728516 -2.234766 +v 11.617188 0.234375 -1.706250 +v 12.351563 2.408203 -1.177734 +v 13.929688 4.125000 -0.937500 +v 7.429688 -1.394531 -1.856250 +v 10.011230 -0.677124 -1.676074 +v 11.101563 0.846680 -1.279688 +v 11.723145 2.629761 -0.883301 +v 12.898438 4.125000 -0.703125 +v 12.789063 4.335938 0.000000 +v 13.054688 4.406250 0.000000 +v 13.132813 4.335938 0.000000 +v 12.929688 4.125000 0.000000 +v 13.291077 4.346237 0.659180 +v 13.525879 4.422729 0.562500 +v 13.532898 4.350357 0.465820 +v 13.242188 4.125000 0.421875 +v 14.395508 4.368896 0.878906 +v 14.562500 4.458984 0.750000 +v 14.413086 4.382080 0.621094 +v 13.929688 4.125000 0.562500 +v 15.499939 4.391556 0.659180 +v 15.599121 4.495239 0.562500 +v 15.293274 4.413804 0.465820 +v 14.617188 4.125000 0.421875 +v 16.001953 4.401855 0.000000 +v 16.070313 4.511719 0.000000 +v 15.693359 4.428224 0.000000 +v 14.929688 4.125000 0.000000 +v 15.499939 4.391556 -0.659180 +v 15.599121 4.495239 -0.562500 +v 15.293274 4.413804 -0.465820 +v 14.617188 4.125000 -0.421875 +v 14.395508 4.368896 -0.878906 +v 14.562500 4.458984 -0.750000 +v 14.413086 4.382080 -0.621094 +v 13.929688 4.125000 -0.562500 +v 13.291077 4.346237 -0.659180 +v 13.525879 4.422729 -0.562500 +v 13.532898 4.350357 -0.465820 +v 13.242188 4.125000 -0.421875 +v -1.070312 7.875000 0.000000 +v 0.632813 7.628906 0.000000 +v 0.554688 7.031250 0.000000 +v -0.085937 6.292969 0.000000 +v -0.070312 5.625000 0.000000 +v 0.501414 7.628906 0.670256 +v 0.429278 7.031250 0.639395 +v -0.162029 6.292969 0.386960 +v -0.147812 5.625000 0.392500 +v 0.140489 7.628906 1.210801 +v 0.084844 7.031250 1.155156 +v -0.370879 6.292969 0.699434 +v -0.360312 5.625000 0.710000 +v -0.400056 7.628906 1.571726 +v -0.430918 7.031250 1.499590 +v -0.683352 6.292969 0.908284 +v -0.677812 5.625000 0.922500 +v -1.070312 7.628906 1.703125 +v -1.070312 7.031250 1.625000 +v -1.070312 6.292969 0.984375 +v -1.070312 5.625000 1.000000 +v -1.740569 7.628906 1.571726 +v -1.709707 7.031250 1.499590 +v -1.457273 6.292969 0.908284 +v -1.462812 5.625000 0.922500 +v -2.281113 7.628906 1.210801 +v -2.225469 7.031250 1.155156 +v -1.769746 6.292969 0.699434 +v -1.780312 5.625000 0.710000 +v -2.642038 7.628906 0.670256 +v -2.569902 7.031250 0.639395 +v -1.978596 6.292969 0.386960 +v -1.992812 5.625000 0.392500 +v -2.773438 7.628906 0.000000 +v -2.695313 7.031250 0.000000 +v -2.054687 6.292969 0.000000 +v -2.070312 5.625000 0.000000 +v -2.642038 7.628906 -0.670256 +v -2.569902 7.031250 -0.639395 +v -1.978596 6.292969 -0.386960 +v -1.992812 5.625000 -0.392500 +v -2.281113 7.628906 -1.210801 +v -2.225469 7.031250 -1.155156 +v -1.769746 6.292969 -0.699434 +v -1.780312 5.625000 -0.710000 +v -1.740569 7.628906 -1.571726 +v -1.709707 7.031250 -1.499590 +v -1.457273 6.292969 -0.908284 +v -1.462812 5.625000 -0.922500 +v -1.070312 7.628906 -1.703125 +v -1.070312 7.031250 -1.625000 +v -1.070312 6.292969 -0.984375 +v -1.070312 5.625000 -1.000000 +v -0.400056 7.628906 -1.571726 +v -0.430918 7.031250 -1.499590 +v -0.683352 6.292969 -0.908284 +v -0.677812 5.625000 -0.922500 +v 0.140489 7.628906 -1.210801 +v 0.084844 7.031250 -1.155156 +v -0.370879 6.292969 -0.699434 +v -0.360312 5.625000 -0.710000 +v 0.501414 7.628906 -0.670256 +v 0.429278 7.031250 -0.639395 +v -0.162029 6.292969 -0.386960 +v -0.147812 5.625000 -0.392500 +v 1.210938 5.179688 0.000000 +v 3.054688 4.875000 0.000000 +v 4.710938 4.570313 0.000000 +v 5.429688 4.125000 0.000000 +v 1.034141 5.179688 0.895391 +v 2.735000 4.875000 1.619062 +v 4.262891 4.570313 2.269140 +v 4.925938 4.125000 2.551250 +v 0.549375 5.179688 1.619688 +v 1.858438 4.875000 2.928750 +v 3.034375 4.570313 4.104687 +v 3.544688 4.125000 4.615000 +v -0.174922 5.179688 2.104453 +v 0.548750 4.875000 3.805313 +v 1.198828 4.570313 5.333203 +v 1.480938 4.125000 5.996250 +v -1.070312 5.179688 2.281250 +v -1.070312 4.875000 4.125000 +v -1.070312 4.570313 5.781250 +v -1.070312 4.125000 6.500000 +v -1.965703 5.179688 2.104453 +v -2.689375 4.875000 3.805313 +v -3.339453 4.570313 5.333203 +v -3.621562 4.125000 5.996250 +v -2.690000 5.179688 1.619688 +v -3.999062 4.875000 2.928750 +v -5.174999 4.570313 4.104687 +v -5.685312 4.125000 4.615000 +v -3.174765 5.179688 0.895391 +v -4.875625 4.875000 1.619062 +v -6.403516 4.570313 2.269140 +v -7.066563 4.125000 2.551250 +v -3.351562 5.179688 0.000000 +v -5.195313 4.875000 0.000000 +v -6.851563 4.570313 0.000000 +v -7.570313 4.125000 0.000000 +v -3.174765 5.179688 -0.895391 +v -4.875625 4.875000 -1.619062 +v -6.403516 4.570313 -2.269140 +v -7.066563 4.125000 -2.551250 +v -2.690000 5.179688 -1.619688 +v -3.999062 4.875000 -2.928750 +v -5.174999 4.570313 -4.104687 +v -5.685312 4.125000 -4.615000 +v -1.965703 5.179688 -2.104453 +v -2.689375 4.875000 -3.805313 +v -3.339453 4.570313 -5.333203 +v -3.621562 4.125000 -5.996250 +v -1.070312 5.179688 -2.281250 +v -1.070312 4.875000 -4.125000 +v -1.070312 4.570313 -5.781250 +v -1.070312 4.125000 -6.500000 +v -0.174922 5.179688 -2.104453 +v 0.548750 4.875000 -3.805313 +v 1.198828 4.570313 -5.333203 +v 1.480938 4.125000 -5.996250 +v 0.549375 5.179688 -1.619688 +v 1.858438 4.875000 -2.928750 +v 3.034375 4.570313 -4.104687 +v 3.544688 4.125000 -4.615000 +v 1.034141 5.179688 -0.895391 +v 2.735000 4.875000 -1.619062 +v 4.262891 4.570313 -2.269140 +v 4.925938 4.125000 -2.551250 +# 530 vertices + +vt 2.000000 2.000000 0.000000 +vt 2.000000 1.975000 0.000000 +vt 2.000000 1.950000 0.000000 +vt 2.000000 1.925000 0.000000 +vt 2.000000 1.900000 0.000000 +vt 1.750000 2.000000 0.000000 +vt 1.750000 1.975000 0.000000 +vt 1.750000 1.950000 0.000000 +vt 1.750000 1.925000 0.000000 +vt 1.750000 1.900000 0.000000 +vt 1.500000 2.000000 0.000000 +vt 1.500000 1.975000 0.000000 +vt 1.500000 1.950000 0.000000 +vt 1.500000 1.925000 0.000000 +vt 1.500000 1.900000 0.000000 +vt 1.250000 2.000000 0.000000 +vt 1.250000 1.975000 0.000000 +vt 1.250000 1.950000 0.000000 +vt 1.250000 1.925000 0.000000 +vt 1.250000 1.900000 0.000000 +vt 1.000000 2.000000 0.000000 +vt 1.000000 1.975000 0.000000 +vt 1.000000 1.950000 0.000000 +vt 1.000000 1.925000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 1.000000 2.000000 0.000000 +vt 1.000000 1.975000 0.000000 +vt 1.000000 1.950000 0.000000 +vt 1.000000 1.925000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 0.750000 2.000000 0.000000 +vt 0.750000 1.975000 0.000000 +vt 0.750000 1.950000 0.000000 +vt 0.750000 1.925000 0.000000 +vt 0.750000 1.900000 0.000000 +vt 0.500000 2.000000 0.000000 +vt 0.500000 1.975000 0.000000 +vt 0.500000 1.950000 0.000000 +vt 0.500000 1.925000 0.000000 +vt 0.500000 1.900000 0.000000 +vt 0.250000 2.000000 0.000000 +vt 0.250000 1.975000 0.000000 +vt 0.250000 1.950000 0.000000 +vt 0.250000 1.925000 0.000000 +vt 0.250000 1.900000 0.000000 +vt 0.000000 2.000000 0.000000 +vt 0.000000 1.975000 0.000000 +vt 0.000000 1.950000 0.000000 +vt 0.000000 1.925000 0.000000 +vt 0.000000 1.900000 0.000000 +vt 2.000000 2.000000 0.000000 +vt 2.000000 1.975000 0.000000 +vt 2.000000 1.950000 0.000000 +vt 2.000000 1.925000 0.000000 +vt 2.000000 1.900000 0.000000 +vt 1.750000 2.000000 0.000000 +vt 1.750000 1.975000 0.000000 +vt 1.750000 1.950000 0.000000 +vt 1.750000 1.925000 0.000000 +vt 1.750000 1.900000 0.000000 +vt 1.500000 2.000000 0.000000 +vt 1.500000 1.975000 0.000000 +vt 1.500000 1.950000 0.000000 +vt 1.500000 1.925000 0.000000 +vt 1.500000 1.900000 0.000000 +vt 1.250000 2.000000 0.000000 +vt 1.250000 1.975000 0.000000 +vt 1.250000 1.950000 0.000000 +vt 1.250000 1.925000 0.000000 +vt 1.250000 1.900000 0.000000 +vt 1.000000 2.000000 0.000000 +vt 1.000000 1.975000 0.000000 +vt 1.000000 1.950000 0.000000 +vt 1.000000 1.925000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 1.000000 2.000000 0.000000 +vt 1.000000 1.975000 0.000000 +vt 1.000000 1.950000 0.000000 +vt 1.000000 1.925000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 0.750000 2.000000 0.000000 +vt 0.750000 1.975000 0.000000 +vt 0.750000 1.950000 0.000000 +vt 0.750000 1.925000 0.000000 +vt 0.750000 1.900000 0.000000 +vt 0.500000 2.000000 0.000000 +vt 0.500000 1.975000 0.000000 +vt 0.500000 1.950000 0.000000 +vt 0.500000 1.925000 0.000000 +vt 0.500000 1.900000 0.000000 +vt 0.250000 2.000000 0.000000 +vt 0.250000 1.975000 0.000000 +vt 0.250000 1.950000 0.000000 +vt 0.250000 1.925000 0.000000 +vt 0.250000 1.900000 0.000000 +vt 0.000000 2.000000 0.000000 +vt 0.000000 1.975000 0.000000 +vt 0.000000 1.950000 0.000000 +vt 0.000000 1.925000 0.000000 +vt 0.000000 1.900000 0.000000 +vt 2.000000 1.900000 0.000000 +vt 2.000000 1.675000 0.000000 +vt 2.000000 1.450000 0.000000 +vt 2.000000 1.225000 0.000000 +vt 2.000000 1.000000 0.000000 +vt 1.750000 1.900000 0.000000 +vt 1.750000 1.675000 0.000000 +vt 1.750000 1.450000 0.000000 +vt 1.750000 1.225000 0.000000 +vt 1.750000 1.000000 0.000000 +vt 1.500000 1.900000 0.000000 +vt 1.500000 1.675000 0.000000 +vt 1.500000 1.450000 0.000000 +vt 1.500000 1.225000 0.000000 +vt 1.500000 1.000000 0.000000 +vt 1.250000 1.900000 0.000000 +vt 1.250000 1.675000 0.000000 +vt 1.250000 1.450000 0.000000 +vt 1.250000 1.225000 0.000000 +vt 1.250000 1.000000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 1.000000 1.675000 0.000000 +vt 1.000000 1.450000 0.000000 +vt 1.000000 1.225000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 1.000000 1.675000 0.000000 +vt 1.000000 1.450000 0.000000 +vt 1.000000 1.225000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 0.750000 1.900000 0.000000 +vt 0.750000 1.675000 0.000000 +vt 0.750000 1.450000 0.000000 +vt 0.750000 1.225000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.500000 1.900000 0.000000 +vt 0.500000 1.675000 0.000000 +vt 0.500000 1.450000 0.000000 +vt 0.500000 1.225000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.250000 1.900000 0.000000 +vt 0.250000 1.675000 0.000000 +vt 0.250000 1.450000 0.000000 +vt 0.250000 1.225000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.000000 1.900000 0.000000 +vt 0.000000 1.675000 0.000000 +vt 0.000000 1.450000 0.000000 +vt 0.000000 1.225000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 2.000000 1.900000 0.000000 +vt 2.000000 1.675000 0.000000 +vt 2.000000 1.450000 0.000000 +vt 2.000000 1.225000 0.000000 +vt 2.000000 1.000000 0.000000 +vt 1.750000 1.900000 0.000000 +vt 1.750000 1.675000 0.000000 +vt 1.750000 1.450000 0.000000 +vt 1.750000 1.225000 0.000000 +vt 1.750000 1.000000 0.000000 +vt 1.500000 1.900000 0.000000 +vt 1.500000 1.675000 0.000000 +vt 1.500000 1.450000 0.000000 +vt 1.500000 1.225000 0.000000 +vt 1.500000 1.000000 0.000000 +vt 1.250000 1.900000 0.000000 +vt 1.250000 1.675000 0.000000 +vt 1.250000 1.450000 0.000000 +vt 1.250000 1.225000 0.000000 +vt 1.250000 1.000000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 1.000000 1.675000 0.000000 +vt 1.000000 1.450000 0.000000 +vt 1.000000 1.225000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 1.900000 0.000000 +vt 1.000000 1.675000 0.000000 +vt 1.000000 1.450000 0.000000 +vt 1.000000 1.225000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 0.750000 1.900000 0.000000 +vt 0.750000 1.675000 0.000000 +vt 0.750000 1.450000 0.000000 +vt 0.750000 1.225000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.500000 1.900000 0.000000 +vt 0.500000 1.675000 0.000000 +vt 0.500000 1.450000 0.000000 +vt 0.500000 1.225000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.250000 1.900000 0.000000 +vt 0.250000 1.675000 0.000000 +vt 0.250000 1.450000 0.000000 +vt 0.250000 1.225000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.000000 1.900000 0.000000 +vt 0.000000 1.675000 0.000000 +vt 0.000000 1.450000 0.000000 +vt 0.000000 1.225000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 2.000000 1.000000 0.000000 +vt 2.000000 0.850000 0.000000 +vt 2.000000 0.700000 0.000000 +vt 2.000000 0.550000 0.000000 +vt 2.000000 0.400000 0.000000 +vt 1.750000 1.000000 0.000000 +vt 1.750000 0.850000 0.000000 +vt 1.750000 0.700000 0.000000 +vt 1.750000 0.550000 0.000000 +vt 1.750000 0.400000 0.000000 +vt 1.500000 1.000000 0.000000 +vt 1.500000 0.850000 0.000000 +vt 1.500000 0.700000 0.000000 +vt 1.500000 0.550000 0.000000 +vt 1.500000 0.400000 0.000000 +vt 1.250000 1.000000 0.000000 +vt 1.250000 0.850000 0.000000 +vt 1.250000 0.700000 0.000000 +vt 1.250000 0.550000 0.000000 +vt 1.250000 0.400000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.850000 0.000000 +vt 1.000000 0.700000 0.000000 +vt 1.000000 0.550000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.850000 0.000000 +vt 1.000000 0.700000 0.000000 +vt 1.000000 0.550000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.850000 0.000000 +vt 0.750000 0.700000 0.000000 +vt 0.750000 0.550000 0.000000 +vt 0.750000 0.400000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.850000 0.000000 +vt 0.500000 0.700000 0.000000 +vt 0.500000 0.550000 0.000000 +vt 0.500000 0.400000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.850000 0.000000 +vt 0.250000 0.700000 0.000000 +vt 0.250000 0.550000 0.000000 +vt 0.250000 0.400000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.850000 0.000000 +vt 0.000000 0.700000 0.000000 +vt 0.000000 0.550000 0.000000 +vt 0.000000 0.400000 0.000000 +vt 2.000000 1.000000 0.000000 +vt 2.000000 0.850000 0.000000 +vt 2.000000 0.700000 0.000000 +vt 2.000000 0.550000 0.000000 +vt 2.000000 0.400000 0.000000 +vt 1.750000 1.000000 0.000000 +vt 1.750000 0.850000 0.000000 +vt 1.750000 0.700000 0.000000 +vt 1.750000 0.550000 0.000000 +vt 1.750000 0.400000 0.000000 +vt 1.500000 1.000000 0.000000 +vt 1.500000 0.850000 0.000000 +vt 1.500000 0.700000 0.000000 +vt 1.500000 0.550000 0.000000 +vt 1.500000 0.400000 0.000000 +vt 1.250000 1.000000 0.000000 +vt 1.250000 0.850000 0.000000 +vt 1.250000 0.700000 0.000000 +vt 1.250000 0.550000 0.000000 +vt 1.250000 0.400000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.850000 0.000000 +vt 1.000000 0.700000 0.000000 +vt 1.000000 0.550000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.850000 0.000000 +vt 1.000000 0.700000 0.000000 +vt 1.000000 0.550000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.850000 0.000000 +vt 0.750000 0.700000 0.000000 +vt 0.750000 0.550000 0.000000 +vt 0.750000 0.400000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.850000 0.000000 +vt 0.500000 0.700000 0.000000 +vt 0.500000 0.550000 0.000000 +vt 0.500000 0.400000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.850000 0.000000 +vt 0.250000 0.700000 0.000000 +vt 0.250000 0.550000 0.000000 +vt 0.250000 0.400000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.850000 0.000000 +vt 0.000000 0.700000 0.000000 +vt 0.000000 0.550000 0.000000 +vt 0.000000 0.400000 0.000000 +vt 2.000000 0.400000 0.000000 +vt 2.000000 0.300000 0.000000 +vt 2.000000 0.200000 0.000000 +vt 2.000000 0.100000 0.000000 +vt 2.000000 0.000000 0.000000 +vt 1.750000 0.400000 0.000000 +vt 1.750000 0.300000 0.000000 +vt 1.750000 0.200000 0.000000 +vt 1.750000 0.100000 0.000000 +vt 1.750000 0.000000 0.000000 +vt 1.500000 0.400000 0.000000 +vt 1.500000 0.300000 0.000000 +vt 1.500000 0.200000 0.000000 +vt 1.500000 0.100000 0.000000 +vt 1.500000 0.000000 0.000000 +vt 1.250000 0.400000 0.000000 +vt 1.250000 0.300000 0.000000 +vt 1.250000 0.200000 0.000000 +vt 1.250000 0.100000 0.000000 +vt 1.250000 0.000000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 1.000000 0.300000 0.000000 +vt 1.000000 0.200000 0.000000 +vt 1.000000 0.100000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 1.000000 0.300000 0.000000 +vt 1.000000 0.200000 0.000000 +vt 1.000000 0.100000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.750000 0.400000 0.000000 +vt 0.750000 0.300000 0.000000 +vt 0.750000 0.200000 0.000000 +vt 0.750000 0.100000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.500000 0.400000 0.000000 +vt 0.500000 0.300000 0.000000 +vt 0.500000 0.200000 0.000000 +vt 0.500000 0.100000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.250000 0.400000 0.000000 +vt 0.250000 0.300000 0.000000 +vt 0.250000 0.200000 0.000000 +vt 0.250000 0.100000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.000000 0.400000 0.000000 +vt 0.000000 0.300000 0.000000 +vt 0.000000 0.200000 0.000000 +vt 0.000000 0.100000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 2.000000 0.400000 0.000000 +vt 2.000000 0.300000 0.000000 +vt 2.000000 0.200000 0.000000 +vt 2.000000 0.100000 0.000000 +vt 2.000000 0.000000 0.000000 +vt 1.750000 0.400000 0.000000 +vt 1.750000 0.300000 0.000000 +vt 1.750000 0.200000 0.000000 +vt 1.750000 0.100000 0.000000 +vt 1.750000 0.000000 0.000000 +vt 1.500000 0.400000 0.000000 +vt 1.500000 0.300000 0.000000 +vt 1.500000 0.200000 0.000000 +vt 1.500000 0.100000 0.000000 +vt 1.500000 0.000000 0.000000 +vt 1.250000 0.400000 0.000000 +vt 1.250000 0.300000 0.000000 +vt 1.250000 0.200000 0.000000 +vt 1.250000 0.100000 0.000000 +vt 1.250000 0.000000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 1.000000 0.300000 0.000000 +vt 1.000000 0.200000 0.000000 +vt 1.000000 0.100000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 1.000000 0.400000 0.000000 +vt 1.000000 0.300000 0.000000 +vt 1.000000 0.200000 0.000000 +vt 1.000000 0.100000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.750000 0.400000 0.000000 +vt 0.750000 0.300000 0.000000 +vt 0.750000 0.200000 0.000000 +vt 0.750000 0.100000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.500000 0.400000 0.000000 +vt 0.500000 0.300000 0.000000 +vt 0.500000 0.200000 0.000000 +vt 0.500000 0.100000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.250000 0.400000 0.000000 +vt 0.250000 0.300000 0.000000 +vt 0.250000 0.200000 0.000000 +vt 0.250000 0.100000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.000000 0.400000 0.000000 +vt 0.000000 0.300000 0.000000 +vt 0.000000 0.200000 0.000000 +vt 0.000000 0.100000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.875000 0.000000 +vt 1.000000 0.750000 0.000000 +vt 1.000000 0.625000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 0.875000 0.875000 0.000000 +vt 0.875000 0.750000 0.000000 +vt 0.875000 0.625000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.875000 0.000000 +vt 0.750000 0.750000 0.000000 +vt 0.750000 0.625000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.625000 0.875000 0.000000 +vt 0.625000 0.750000 0.000000 +vt 0.625000 0.625000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.875000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.625000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.875000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.625000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.375000 0.875000 0.000000 +vt 0.375000 0.750000 0.000000 +vt 0.375000 0.625000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.875000 0.000000 +vt 0.250000 0.750000 0.000000 +vt 0.250000 0.625000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.125000 0.875000 0.000000 +vt 0.125000 0.750000 0.000000 +vt 0.125000 0.625000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.875000 0.000000 +vt 0.000000 0.750000 0.000000 +vt 0.000000 0.625000 0.000000 +vt 0.000000 0.500000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 1.000000 0.375000 0.000000 +vt 1.000000 0.250000 0.000000 +vt 1.000000 0.125000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.875000 0.375000 0.000000 +vt 0.875000 0.250000 0.000000 +vt 0.875000 0.125000 0.000000 +vt 0.875000 0.000000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.750000 0.375000 0.000000 +vt 0.750000 0.250000 0.000000 +vt 0.750000 0.125000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.625000 0.375000 0.000000 +vt 0.625000 0.250000 0.000000 +vt 0.625000 0.125000 0.000000 +vt 0.625000 0.000000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.375000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.125000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.375000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.125000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.375000 0.375000 0.000000 +vt 0.375000 0.250000 0.000000 +vt 0.375000 0.125000 0.000000 +vt 0.375000 0.000000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.250000 0.375000 0.000000 +vt 0.250000 0.250000 0.000000 +vt 0.250000 0.125000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.125000 0.375000 0.000000 +vt 0.125000 0.250000 0.000000 +vt 0.125000 0.125000 0.000000 +vt 0.125000 0.000000 0.000000 +vt 0.000000 0.500000 0.000000 +vt 0.000000 0.375000 0.000000 +vt 0.000000 0.250000 0.000000 +vt 0.000000 0.125000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 0.225000 0.000000 +vt 0.500000 0.450000 0.000000 +vt 0.500000 0.675000 0.000000 +vt 0.500000 0.900000 0.000000 +vt 0.625000 0.000000 0.000000 +vt 0.625000 0.225000 0.000000 +vt 0.625000 0.450000 0.000000 +vt 0.625000 0.675000 0.000000 +vt 0.625000 0.900000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.750000 0.225000 0.000000 +vt 0.750000 0.450000 0.000000 +vt 0.750000 0.675000 0.000000 +vt 0.750000 0.900000 0.000000 +vt 0.875000 0.000000 0.000000 +vt 0.875000 0.225000 0.000000 +vt 0.875000 0.450000 0.000000 +vt 0.875000 0.675000 0.000000 +vt 0.875000 0.900000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 1.000000 0.225000 0.000000 +vt 1.000000 0.450000 0.000000 +vt 1.000000 0.675000 0.000000 +vt 1.000000 0.900000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 0.000000 0.225000 0.000000 +vt 0.000000 0.450000 0.000000 +vt 0.000000 0.675000 0.000000 +vt 0.000000 0.900000 0.000000 +vt 0.125000 0.000000 0.000000 +vt 0.125000 0.225000 0.000000 +vt 0.125000 0.450000 0.000000 +vt 0.125000 0.675000 0.000000 +vt 0.125000 0.900000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.250000 0.225000 0.000000 +vt 0.250000 0.450000 0.000000 +vt 0.250000 0.675000 0.000000 +vt 0.250000 0.900000 0.000000 +vt 0.375000 0.000000 0.000000 +vt 0.375000 0.225000 0.000000 +vt 0.375000 0.450000 0.000000 +vt 0.375000 0.675000 0.000000 +vt 0.375000 0.900000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 0.225000 0.000000 +vt 0.500000 0.450000 0.000000 +vt 0.500000 0.675000 0.000000 +vt 0.500000 0.900000 0.000000 +vt 0.500000 0.900000 0.000000 +vt 0.500000 0.925000 0.000000 +vt 0.500000 0.950000 0.000000 +vt 0.500000 0.975000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.625000 0.900000 0.000000 +vt 0.625000 0.925000 0.000000 +vt 0.625000 0.950000 0.000000 +vt 0.625000 0.975000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.750000 0.900000 0.000000 +vt 0.750000 0.925000 0.000000 +vt 0.750000 0.950000 0.000000 +vt 0.750000 0.975000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.875000 0.900000 0.000000 +vt 0.875000 0.925000 0.000000 +vt 0.875000 0.950000 0.000000 +vt 0.875000 0.975000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 1.000000 0.900000 0.000000 +vt 1.000000 0.925000 0.000000 +vt 1.000000 0.950000 0.000000 +vt 1.000000 0.975000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 0.000000 0.900000 0.000000 +vt 0.000000 0.925000 0.000000 +vt 0.000000 0.950000 0.000000 +vt 0.000000 0.975000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.125000 0.900000 0.000000 +vt 0.125000 0.925000 0.000000 +vt 0.125000 0.950000 0.000000 +vt 0.125000 0.975000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.250000 0.900000 0.000000 +vt 0.250000 0.925000 0.000000 +vt 0.250000 0.950000 0.000000 +vt 0.250000 0.975000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.375000 0.900000 0.000000 +vt 0.375000 0.925000 0.000000 +vt 0.375000 0.950000 0.000000 +vt 0.375000 0.975000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.500000 0.900000 0.000000 +vt 0.500000 0.925000 0.000000 +vt 0.500000 0.950000 0.000000 +vt 0.500000 0.975000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.750000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 1.000000 0.250000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 0.875000 0.750000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.875000 0.250000 0.000000 +vt 0.875000 0.000000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.750000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.750000 0.250000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.625000 0.750000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.625000 0.250000 0.000000 +vt 0.625000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.375000 0.750000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.375000 0.250000 0.000000 +vt 0.375000 0.000000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.750000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.250000 0.250000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.125000 0.750000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.125000 0.250000 0.000000 +vt 0.125000 0.000000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.750000 0.000000 +vt 0.000000 0.500000 0.000000 +vt 0.000000 0.250000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.750000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 1.000000 0.250000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 0.875000 0.750000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.875000 0.250000 0.000000 +vt 0.875000 0.000000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.750000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.750000 0.250000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.625000 0.750000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.625000 0.250000 0.000000 +vt 0.625000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.375000 0.750000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.375000 0.250000 0.000000 +vt 0.375000 0.000000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.750000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.250000 0.250000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.125000 0.750000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.125000 0.250000 0.000000 +vt 0.125000 0.000000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.750000 0.000000 +vt 0.000000 0.500000 0.000000 +vt 0.000000 0.250000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.750000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 1.000000 0.250000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 0.875000 0.750000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.875000 0.250000 0.000000 +vt 0.875000 0.000000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.750000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.750000 0.250000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.625000 0.750000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.625000 0.250000 0.000000 +vt 0.625000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.375000 0.750000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.375000 0.250000 0.000000 +vt 0.375000 0.000000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.750000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.250000 0.250000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.125000 0.750000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.125000 0.250000 0.000000 +vt 0.125000 0.000000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.750000 0.000000 +vt 0.000000 0.500000 0.000000 +vt 0.000000 0.250000 0.000000 +vt 0.000000 0.000000 0.000000 +vt 1.000000 1.000000 0.000000 +vt 1.000000 0.750000 0.000000 +vt 1.000000 0.500000 0.000000 +vt 1.000000 0.250000 0.000000 +vt 1.000000 0.000000 0.000000 +vt 0.875000 1.000000 0.000000 +vt 0.875000 0.750000 0.000000 +vt 0.875000 0.500000 0.000000 +vt 0.875000 0.250000 0.000000 +vt 0.875000 0.000000 0.000000 +vt 0.750000 1.000000 0.000000 +vt 0.750000 0.750000 0.000000 +vt 0.750000 0.500000 0.000000 +vt 0.750000 0.250000 0.000000 +vt 0.750000 0.000000 0.000000 +vt 0.625000 1.000000 0.000000 +vt 0.625000 0.750000 0.000000 +vt 0.625000 0.500000 0.000000 +vt 0.625000 0.250000 0.000000 +vt 0.625000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.500000 1.000000 0.000000 +vt 0.500000 0.750000 0.000000 +vt 0.500000 0.500000 0.000000 +vt 0.500000 0.250000 0.000000 +vt 0.500000 0.000000 0.000000 +vt 0.375000 1.000000 0.000000 +vt 0.375000 0.750000 0.000000 +vt 0.375000 0.500000 0.000000 +vt 0.375000 0.250000 0.000000 +vt 0.375000 0.000000 0.000000 +vt 0.250000 1.000000 0.000000 +vt 0.250000 0.750000 0.000000 +vt 0.250000 0.500000 0.000000 +vt 0.250000 0.250000 0.000000 +vt 0.250000 0.000000 0.000000 +vt 0.125000 1.000000 0.000000 +vt 0.125000 0.750000 0.000000 +vt 0.125000 0.500000 0.000000 +vt 0.125000 0.250000 0.000000 +vt 0.125000 0.000000 0.000000 +vt 0.000000 1.000000 0.000000 +vt 0.000000 0.750000 0.000000 +vt 0.000000 0.500000 0.000000 +vt 0.000000 0.250000 0.000000 +vt 0.000000 0.000000 0.000000 +# 800 texture vertices + +vn -0.966742 -0.255752 0.000000 +vn -0.966824 0.255443 0.000000 +vn -0.092052 0.995754 0.000000 +vn 0.682050 0.731305 0.000000 +vn 0.870301 0.492521 0.000000 +vn -0.893014 -0.256345 -0.369882 +vn -0.893437 0.255996 -0.369102 +vn -0.083877 0.995843 -0.035507 +vn 0.629724 0.731860 0.260439 +vn 0.803725 0.493370 0.332584 +vn -0.683407 -0.256728 -0.683407 +vn -0.683531 0.256068 -0.683531 +vn -0.064925 0.995776 -0.064925 +vn 0.481399 0.732469 0.481399 +vn 0.614804 0.493997 0.614804 +vn -0.369882 -0.256345 -0.893014 +vn -0.369102 0.255996 -0.893437 +vn -0.035507 0.995843 -0.083877 +vn 0.260439 0.731860 0.629724 +vn 0.332584 0.493369 0.803725 +vn -0.002848 -0.257863 -0.966177 +vn -0.001923 0.254736 -0.967009 +vn -0.000266 0.995734 -0.092270 +vn 0.000024 0.731295 0.682061 +vn -0.000000 0.492521 0.870301 +vn 0.379058 -0.359300 -0.852771 +vn 0.377110 0.149085 -0.914091 +vn 0.027502 0.992081 -0.122552 +vn -0.261010 0.726762 0.635367 +vn -0.332485 0.492546 0.804271 +vn 0.663548 -0.410790 -0.625264 +vn 0.712664 0.073722 -0.697621 +vn 0.099726 0.987509 -0.121983 +vn -0.487320 0.723754 0.488569 +vn -0.615242 0.492602 0.615484 +vn 0.880028 -0.332906 -0.338709 +vn 0.917276 0.167113 -0.361493 +vn 0.113584 0.992365 -0.048070 +vn -0.634150 0.727508 0.261889 +vn -0.804126 0.492634 0.332705 +vn 0.966690 -0.255738 0.010454 +vn 0.967442 0.252962 0.008103 +vn 0.093436 0.995624 0.001281 +vn -0.682167 0.731196 -0.000343 +vn -0.870322 0.492483 -0.000054 +vn 0.893014 -0.256345 0.369882 +vn 0.893437 0.255996 0.369102 +vn 0.083877 0.995843 0.035507 +vn -0.629724 0.731860 -0.260439 +vn -0.803725 0.493370 -0.332584 +vn 0.683407 -0.256728 0.683407 +vn 0.683531 0.256068 0.683531 +vn 0.064925 0.995776 0.064925 +vn -0.481399 0.732469 -0.481399 +vn -0.614804 0.493997 -0.614804 +vn 0.369882 -0.256345 0.893014 +vn 0.369102 0.255996 0.893437 +vn 0.035507 0.995843 0.083877 +vn -0.260439 0.731860 -0.629724 +vn -0.332584 0.493369 -0.803725 +vn 0.000000 -0.255752 0.966742 +vn 0.000000 0.255443 0.966824 +vn 0.000000 0.995754 0.092052 +vn 0.000000 0.731305 -0.682050 +vn 0.000000 0.492521 -0.870301 +vn -0.369882 -0.256345 0.893014 +vn -0.369102 0.255996 0.893437 +vn -0.035507 0.995843 0.083877 +vn 0.260439 0.731860 -0.629724 +vn 0.332584 0.493370 -0.803725 +vn -0.683407 -0.256728 0.683407 +vn -0.683531 0.256068 0.683531 +vn -0.064925 0.995776 0.064925 +vn 0.481399 0.732469 -0.481399 +vn 0.614804 0.493997 -0.614804 +vn -0.893014 -0.256345 0.369882 +vn -0.893437 0.255996 0.369102 +vn -0.083877 0.995843 0.035507 +vn 0.629724 0.731860 -0.260439 +vn 0.803725 0.493369 -0.332584 +vn 0.915321 0.402725 -0.000000 +vn 0.941808 0.336151 0.000000 +vn 0.978690 0.205342 0.000000 +vn 0.997804 -0.066240 -0.000000 +vn 0.845438 0.403546 0.349835 +vn 0.869996 0.336859 0.360047 +vn 0.904193 0.205791 0.374280 +vn 0.921879 -0.066370 0.381752 +vn 0.646802 0.404096 0.646802 +vn 0.665655 0.337351 0.665655 +vn 0.691923 0.206120 0.691923 +vn 0.705543 -0.066480 0.705542 +vn 0.349835 0.403546 0.845438 +vn 0.360047 0.336859 0.869996 +vn 0.374280 0.205791 0.904193 +vn 0.381752 -0.066369 0.921879 +vn 0.000000 0.402725 0.915321 +vn -0.000000 0.336151 0.941808 +vn 0.000000 0.205342 0.978690 +vn 0.000000 -0.066240 0.997804 +vn -0.349835 0.403546 0.845438 +vn -0.360047 0.336859 0.869996 +vn -0.374280 0.205791 0.904193 +vn -0.381752 -0.066370 0.921879 +vn -0.646802 0.404096 0.646802 +vn -0.665655 0.337351 0.665655 +vn -0.691923 0.206120 0.691923 +vn -0.705542 -0.066480 0.705543 +vn -0.845438 0.403546 0.349835 +vn -0.869996 0.336859 0.360047 +vn -0.904193 0.205791 0.374280 +vn -0.921879 -0.066369 0.381752 +vn -0.915321 0.402725 0.000000 +vn -0.941808 0.336151 -0.000000 +vn -0.978690 0.205342 0.000000 +vn -0.997804 -0.066240 0.000000 +vn -0.845438 0.403546 -0.349835 +vn -0.869996 0.336859 -0.360047 +vn -0.904193 0.205791 -0.374280 +vn -0.921879 -0.066370 -0.381752 +vn -0.646802 0.404096 -0.646802 +vn -0.665655 0.337351 -0.665655 +vn -0.691923 0.206120 -0.691923 +vn -0.705543 -0.066480 -0.705542 +vn -0.349835 0.403546 -0.845438 +vn -0.360047 0.336859 -0.869996 +vn -0.374280 0.205791 -0.904193 +vn -0.381752 -0.066369 -0.921879 +vn -0.000000 0.402725 -0.915321 +vn 0.000000 0.336151 -0.941808 +vn -0.000000 0.205342 -0.978690 +vn -0.000000 -0.066240 -0.997804 +vn 0.349835 0.403546 -0.845438 +vn 0.360047 0.336859 -0.869996 +vn 0.374280 0.205791 -0.904193 +vn 0.381752 -0.066370 -0.921879 +vn 0.646802 0.404096 -0.646802 +vn 0.665655 0.337351 -0.665655 +vn 0.691923 0.206120 -0.691923 +vn 0.705542 -0.066480 -0.705543 +vn 0.845438 0.403546 -0.349835 +vn 0.869996 0.336859 -0.360047 +vn 0.904193 0.205791 -0.374280 +vn 0.921879 -0.066369 -0.381752 +vn 0.900182 -0.435513 0.000000 +vn 0.729611 -0.683863 0.000000 +vn 0.693951 -0.720022 -0.000000 +vn 0.793950 -0.607983 0.000000 +vn 0.831437 -0.436180 0.344179 +vn 0.673512 -0.684666 0.278594 +vn 0.640399 -0.720924 0.264874 +vn 0.732949 -0.608995 0.303167 +vn 0.636092 -0.436778 0.636092 +vn 0.514965 -0.685290 0.514965 +vn 0.489651 -0.721446 0.489651 +vn 0.560555 -0.609554 0.560555 +vn 0.344179 -0.436180 0.831437 +vn 0.278595 -0.684666 0.673512 +vn 0.264874 -0.720924 0.640399 +vn 0.303167 -0.608995 0.732949 +vn -0.000000 -0.435513 0.900182 +vn -0.000000 -0.683863 0.729611 +vn 0.000000 -0.720022 0.693951 +vn -0.000000 -0.607983 0.793950 +vn -0.344179 -0.436180 0.831437 +vn -0.278594 -0.684666 0.673512 +vn -0.264874 -0.720924 0.640399 +vn -0.303167 -0.608995 0.732949 +vn -0.636092 -0.436778 0.636092 +vn -0.514965 -0.685290 0.514965 +vn -0.489651 -0.721446 0.489651 +vn -0.560555 -0.609554 0.560555 +vn -0.831437 -0.436180 0.344179 +vn -0.673512 -0.684666 0.278595 +vn -0.640399 -0.720924 0.264874 +vn -0.732949 -0.608995 0.303167 +vn -0.900182 -0.435513 -0.000000 +vn -0.729611 -0.683863 -0.000000 +vn -0.693951 -0.720022 0.000000 +vn -0.793950 -0.607983 -0.000000 +vn -0.831437 -0.436180 -0.344179 +vn -0.673512 -0.684666 -0.278594 +vn -0.640399 -0.720924 -0.264874 +vn -0.732949 -0.608995 -0.303167 +vn -0.636092 -0.436778 -0.636092 +vn -0.514965 -0.685290 -0.514965 +vn -0.489651 -0.721446 -0.489651 +vn -0.560555 -0.609554 -0.560555 +vn -0.344179 -0.436180 -0.831437 +vn -0.278595 -0.684666 -0.673512 +vn -0.264874 -0.720924 -0.640399 +vn -0.303167 -0.608995 -0.732949 +vn 0.000000 -0.435513 -0.900182 +vn 0.000000 -0.683863 -0.729611 +vn -0.000000 -0.720022 -0.693951 +vn 0.000000 -0.607983 -0.793950 +vn 0.344179 -0.436180 -0.831437 +vn 0.278594 -0.684666 -0.673512 +vn 0.264874 -0.720924 -0.640399 +vn 0.303167 -0.608995 -0.732949 +vn 0.636092 -0.436778 -0.636092 +vn 0.514965 -0.685290 -0.514965 +vn 0.489651 -0.721446 -0.489651 +vn 0.560555 -0.609554 -0.560555 +vn 0.831437 -0.436180 -0.344179 +vn 0.673512 -0.684666 -0.278595 +vn 0.640399 -0.720924 -0.264874 +vn 0.732949 -0.608995 -0.303167 +vn 0.623860 -0.781536 0.000000 +vn 0.177291 -0.984159 -0.000000 +vn 0.049207 -0.998789 0.000000 +vn 0.000000 -1.000000 0.000000 +vn 0.576230 -0.781801 0.238217 +vn 0.163628 -0.984208 0.067527 +vn 0.045422 -0.998792 0.018736 +vn 0.440416 -0.782348 0.440416 +vn 0.124903 -0.984276 0.124903 +vn 0.034662 -0.998798 0.034662 +vn 0.238217 -0.781801 0.576230 +vn 0.067527 -0.984208 0.163628 +vn 0.018736 -0.998792 0.045422 +vn -0.000000 -0.781536 0.623860 +vn 0.000000 -0.984159 0.177291 +vn -0.000000 -0.998789 0.049207 +vn -0.238217 -0.781801 0.576230 +vn -0.067527 -0.984208 0.163628 +vn -0.018736 -0.998792 0.045422 +vn -0.440416 -0.782348 0.440416 +vn -0.124903 -0.984276 0.124903 +vn -0.034662 -0.998798 0.034662 +vn -0.576230 -0.781801 0.238217 +vn -0.163628 -0.984208 0.067527 +vn -0.045422 -0.998792 0.018736 +vn -0.623860 -0.781536 -0.000000 +vn -0.177291 -0.984159 0.000000 +vn -0.049207 -0.998789 -0.000000 +vn -0.576230 -0.781801 -0.238217 +vn -0.163628 -0.984208 -0.067527 +vn -0.045422 -0.998792 -0.018736 +vn -0.440416 -0.782348 -0.440416 +vn -0.124903 -0.984276 -0.124903 +vn -0.034662 -0.998798 -0.034662 +vn -0.238217 -0.781801 -0.576230 +vn -0.067527 -0.984208 -0.163628 +vn -0.018736 -0.998792 -0.045422 +vn 0.000000 -0.781536 -0.623860 +vn -0.000000 -0.984159 -0.177291 +vn 0.000000 -0.998789 -0.049207 +vn 0.238217 -0.781801 -0.576230 +vn 0.067527 -0.984208 -0.163628 +vn 0.018736 -0.998792 -0.045422 +vn 0.440416 -0.782348 -0.440416 +vn 0.124903 -0.984276 -0.124903 +vn 0.034662 -0.998798 -0.034662 +vn 0.576230 -0.781801 -0.238217 +vn 0.163628 -0.984208 -0.067527 +vn 0.045422 -0.998792 -0.018736 +vn 0.007786 -0.999970 -0.000216 +vn 0.039138 -0.999233 -0.000989 +vn 0.179512 -0.983746 -0.004369 +vn 0.612299 -0.790557 -0.010460 +vn 0.986152 -0.165708 -0.006670 +vn 0.007039 -0.812495 0.582926 +vn 0.036127 -0.837257 0.545614 +vn 0.161846 -0.810421 0.563048 +vn 0.482365 -0.595148 0.642746 +vn 0.738720 -0.114594 0.664199 +vn -0.001909 0.162121 0.986769 +vn 0.002762 0.017107 0.999850 +vn 0.010533 0.073398 0.997247 +vn -0.066041 0.130070 0.989303 +vn -0.094427 0.016594 0.995393 +vn -0.009203 0.871509 0.490293 +vn -0.048606 0.840609 0.539457 +vn -0.223298 0.802880 0.552739 +vn -0.596365 0.559971 0.575135 +vn -0.803337 0.068236 0.591603 +vn -0.010561 0.999944 0.000103 +vn -0.058798 0.998270 0.000710 +vn -0.280710 0.959787 0.003269 +vn -0.749723 0.661738 0.004268 +vn -0.997351 0.072714 0.002059 +vn -0.008792 0.871493 -0.490330 +vn -0.046494 0.841178 -0.538756 +vn -0.217909 0.806807 -0.549161 +vn -0.597291 0.560026 -0.574121 +vn -0.804000 0.062913 -0.591292 +vn -0.001806 0.161691 -0.986840 +vn 0.002031 0.014555 -0.999892 +vn 0.009215 0.060069 -0.998152 +vn -0.059334 0.113865 -0.991723 +vn -0.086899 0.012290 -0.996141 +vn 0.006418 -0.812379 -0.583095 +vn 0.033783 -0.837512 -0.545373 +vn 0.157113 -0.811947 -0.562190 +vn 0.484406 -0.589366 -0.646528 +vn 0.738870 -0.101320 -0.666187 +vn 0.946512 0.322650 -0.003357 +vn 0.825830 0.563870 -0.007452 +vn 0.650011 0.759893 -0.006937 +vn 0.532429 0.846459 -0.005245 +vn 0.725608 0.259351 0.637361 +vn 0.645945 0.461988 0.607719 +vn 0.531615 0.636660 0.558614 +vn 0.424964 0.681717 0.595540 +vn -0.049562 -0.019755 0.998576 +vn -0.037816 -0.035624 0.998650 +vn -0.037914 -0.036512 0.998614 +vn -0.168854 -0.297945 0.939530 +vn -0.742342 -0.299166 0.599523 +vn -0.619602 -0.529406 0.579502 +vn -0.483708 -0.685760 0.543837 +vn -0.445293 -0.794355 0.413177 +vn -0.926513 -0.376258 0.001996 +vn -0.753920 -0.656952 0.004317 +vn -0.566224 -0.824244 0.003461 +vn -0.481804 -0.876277 0.001850 +vn -0.744675 -0.294425 -0.598977 +vn -0.621949 -0.528114 -0.578165 +vn -0.481171 -0.688340 -0.542828 +vn -0.438055 -0.797035 -0.415744 +vn -0.044337 -0.017056 -0.998871 +vn -0.026176 -0.028166 -0.999260 +vn -0.025294 -0.028332 -0.999278 +vn -0.157482 -0.289392 -0.944167 +vn 0.728244 0.252410 -0.637142 +vn 0.647055 0.459725 -0.608254 +vn 0.522994 0.640657 -0.562170 +vn 0.409978 0.682857 -0.604669 +vn -0.230787 0.972982 -0.006523 +vn -0.548936 0.835863 -0.001511 +vn -0.875671 0.482806 0.009893 +vn -0.877554 0.479097 0.019092 +vn -0.696190 0.717439 0.024497 +vn -0.152877 0.687211 0.710190 +vn -0.316721 0.637750 0.702113 +vn -0.601067 0.471452 0.645330 +vn -0.635889 0.446090 0.629801 +vn -0.435746 0.601008 0.670011 +vn 0.111113 -0.085070 0.990160 +vn 0.223310 0.006540 0.974726 +vn 0.190097 0.154964 0.969458 +vn 0.005271 0.189482 0.981870 +vn -0.011752 0.246688 0.969024 +vn 0.343906 -0.722796 0.599412 +vn 0.572489 -0.567656 0.591627 +vn 0.787436 -0.256459 0.560512 +vn 0.647097 -0.306374 0.698141 +vn 0.427528 -0.499343 0.753576 +vn 0.410926 -0.911668 0.001284 +vn 0.671520 -0.740986 -0.000899 +vn 0.922026 -0.387060 -0.007253 +vn 0.846910 -0.531556 -0.013854 +vn 0.535924 -0.844201 -0.010505 +vn 0.341188 -0.722823 -0.600931 +vn 0.578664 -0.561139 -0.591838 +vn 0.784869 -0.251020 -0.566542 +vn 0.642681 -0.302257 -0.703990 +vn 0.418589 -0.500042 -0.758117 +vn 0.115806 -0.079139 -0.990114 +vn 0.232811 0.012565 -0.972441 +vn 0.206662 0.153601 -0.966280 +vn 0.024500 0.161443 -0.986578 +vn 0.003382 0.211115 -0.977455 +vn -0.134912 0.687491 -0.713551 +vn -0.319540 0.633073 -0.705063 +vn -0.603902 0.461442 -0.649903 +vn -0.631815 0.437169 -0.640072 +vn -0.424306 0.612706 -0.666750 +vn -0.425801 0.904753 0.010805 +vn 0.022046 0.999756 0.001623 +vn 0.999598 0.025875 0.011556 +vn 0.709587 -0.704552 0.009672 +vn -0.259858 0.791937 0.552548 +vn 0.009539 0.999720 -0.021674 +vn 0.410157 0.332912 -0.849082 +vn 0.541523 -0.548619 -0.637001 +vn 0.046311 0.455223 0.889172 +vn -0.010688 0.988794 0.148900 +vn -0.044376 0.682946 -0.729120 +vn 0.122824 0.009233 -0.992385 +vn 0.481839 -0.180440 0.857480 +vn 0.455272 0.736752 0.499925 +vn -0.220542 0.907193 -0.358277 +vn -0.235919 0.657250 -0.715797 +vn 0.728094 -0.685300 -0.015585 +vn 0.888738 0.458112 -0.016679 +vn -0.260098 0.965582 0.000800 +vn -0.371611 0.928378 -0.004418 +vn 0.480165 -0.178362 -0.858853 +vn 0.488102 0.716802 -0.497947 +vn -0.222004 0.905399 0.361892 +vn -0.235405 0.663180 0.710477 +vn 0.058720 0.437702 -0.897200 +vn 0.001326 0.986459 -0.164002 +vn -0.044190 0.681675 0.730319 +vn 0.138801 -0.034188 0.989730 +vn -0.258890 0.797206 -0.545380 +vn 0.012270 0.999739 0.019287 +vn 0.398632 0.354890 0.845663 +vn 0.537564 -0.581398 0.610738 +vn 0.000000 1.000000 0.000000 +vn 0.824540 0.565804 0.000017 +vn 0.917701 -0.397272 0.000034 +vn 0.935269 -0.353939 0.000113 +vn 0.780712 0.624890 0.000075 +vn 0.762640 0.565035 0.314825 +vn 0.847982 -0.397998 0.350034 +vn 0.864141 -0.355261 0.356441 +vn 0.720992 0.625625 0.297933 +vn 0.583357 0.565165 0.583338 +vn 0.648485 -0.398726 0.648448 +vn 0.660872 -0.355894 0.660748 +vn 0.551862 0.625290 0.551780 +vn 0.314824 0.565051 0.762629 +vn 0.350045 -0.397976 0.847988 +vn 0.356474 -0.355199 0.864153 +vn 0.297983 0.625515 0.721067 +vn -0.000017 0.565804 0.824540 +vn -0.000034 -0.397272 0.917701 +vn -0.000113 -0.353939 0.935269 +vn -0.000075 0.624890 0.780712 +vn -0.314825 0.565035 0.762640 +vn -0.350034 -0.397998 0.847982 +vn -0.356441 -0.355261 0.864141 +vn -0.297933 0.625625 0.720992 +vn -0.583338 0.565165 0.583357 +vn -0.648448 -0.398726 0.648485 +vn -0.660748 -0.355894 0.660872 +vn -0.551780 0.625290 0.551862 +vn -0.762629 0.565051 0.314824 +vn -0.847988 -0.397976 0.350045 +vn -0.864153 -0.355199 0.356474 +vn -0.721067 0.625515 0.297983 +vn -0.824540 0.565804 -0.000017 +vn -0.917701 -0.397272 -0.000034 +vn -0.935269 -0.353939 -0.000113 +vn -0.780712 0.624890 -0.000075 +vn -0.762640 0.565035 -0.314825 +vn -0.847982 -0.397998 -0.350034 +vn -0.864141 -0.355261 -0.356441 +vn -0.720992 0.625625 -0.297933 +vn -0.583357 0.565165 -0.583338 +vn -0.648485 -0.398726 -0.648448 +vn -0.660872 -0.355894 -0.660748 +vn -0.551862 0.625290 -0.551780 +vn -0.314824 0.565051 -0.762629 +vn -0.350045 -0.397976 -0.847988 +vn -0.356474 -0.355199 -0.864153 +vn -0.297983 0.625515 -0.721067 +vn 0.000017 0.565804 -0.824540 +vn 0.000034 -0.397272 -0.917701 +vn 0.000113 -0.353939 -0.935269 +vn 0.000075 0.624890 -0.780712 +vn 0.314825 0.565035 -0.762640 +vn 0.350034 -0.397998 -0.847982 +vn 0.356441 -0.355261 -0.864141 +vn 0.297933 0.625625 -0.720992 +vn 0.583338 0.565165 -0.583357 +vn 0.648448 -0.398726 -0.648485 +vn 0.660748 -0.355894 -0.660872 +vn 0.551780 0.625290 -0.551862 +vn 0.762629 0.565051 -0.314824 +vn 0.847988 -0.397976 -0.350045 +vn 0.864153 -0.355199 -0.356474 +vn 0.721067 0.625515 -0.297983 +vn 0.236583 0.971611 -0.000000 +vn 0.173084 0.984907 -0.000000 +vn 0.379703 0.925108 -0.000000 +vn 0.526673 0.850068 0.000000 +vn 0.217978 0.971775 0.090216 +vn 0.159589 0.984977 0.065961 +vn 0.350498 0.925311 0.144740 +vn 0.485590 0.850653 0.201474 +vn 0.166631 0.971838 0.166631 +vn 0.121908 0.985026 0.121908 +vn 0.267668 0.925585 0.267668 +vn 0.371315 0.851029 0.371315 +vn 0.090216 0.971775 0.217978 +vn 0.065961 0.984977 0.159589 +vn 0.144740 0.925311 0.350498 +vn 0.201475 0.850653 0.485590 +vn 0.000000 0.971611 0.236583 +vn 0.000000 0.984907 0.173084 +vn 0.000000 0.925108 0.379703 +vn -0.000000 0.850068 0.526673 +vn -0.090216 0.971775 0.217978 +vn -0.065961 0.984977 0.159589 +vn -0.144740 0.925311 0.350498 +vn -0.201474 0.850653 0.485590 +vn -0.166631 0.971838 0.166631 +vn -0.121908 0.985026 0.121908 +vn -0.267668 0.925585 0.267668 +vn -0.371315 0.851029 0.371315 +vn -0.217978 0.971775 0.090216 +vn -0.159589 0.984977 0.065961 +vn -0.350498 0.925311 0.144740 +vn -0.485590 0.850653 0.201475 +vn -0.236583 0.971611 0.000000 +vn -0.173084 0.984907 0.000000 +vn -0.379703 0.925108 0.000000 +vn -0.526673 0.850068 -0.000000 +vn -0.217978 0.971775 -0.090216 +vn -0.159589 0.984977 -0.065961 +vn -0.350498 0.925311 -0.144740 +vn -0.485590 0.850653 -0.201474 +vn -0.166631 0.971838 -0.166631 +vn -0.121908 0.985026 -0.121908 +vn -0.267668 0.925585 -0.267668 +vn -0.371315 0.851029 -0.371315 +vn -0.090216 0.971775 -0.217978 +vn -0.065961 0.984977 -0.159589 +vn -0.144740 0.925311 -0.350498 +vn -0.201475 0.850653 -0.485590 +vn -0.000000 0.971611 -0.236583 +vn -0.000000 0.984907 -0.173084 +vn -0.000000 0.925108 -0.379703 +vn 0.000000 0.850068 -0.526673 +vn 0.090216 0.971775 -0.217978 +vn 0.065961 0.984977 -0.159589 +vn 0.144740 0.925311 -0.350498 +vn 0.201474 0.850653 -0.485590 +vn 0.166631 0.971838 -0.166631 +vn 0.121908 0.985026 -0.121908 +vn 0.267668 0.925585 -0.267668 +vn 0.371315 0.851029 -0.371315 +vn 0.217978 0.971775 -0.090216 +vn 0.159589 0.984977 -0.065961 +vn 0.350498 0.925311 -0.144740 +vn 0.485590 0.850653 -0.201475 +# 530 vertex normals + +g Teapot01 +f 1/1/1 6/6/6 7/7/7 +f 7/7/7 2/2/2 1/1/1 +f 2/2/2 7/7/7 8/8/8 +f 8/8/8 3/3/3 2/2/2 +f 3/3/3 8/8/8 9/9/9 +f 9/9/9 4/4/4 3/3/3 +f 4/4/4 9/9/9 10/10/10 +f 10/10/10 5/5/5 4/4/4 +f 6/6/6 11/11/11 12/12/12 +f 12/12/12 7/7/7 6/6/6 +f 7/7/7 12/12/12 13/13/13 +f 13/13/13 8/8/8 7/7/7 +f 8/8/8 13/13/13 14/14/14 +f 14/14/14 9/9/9 8/8/8 +f 9/9/9 14/14/14 15/15/15 +f 15/15/15 10/10/10 9/9/9 +f 11/11/11 16/16/16 17/17/17 +f 17/17/17 12/12/12 11/11/11 +f 12/12/12 17/17/17 18/18/18 +f 18/18/18 13/13/13 12/12/12 +f 13/13/13 18/18/18 19/19/19 +f 19/19/19 14/14/14 13/13/13 +f 14/14/14 19/19/19 20/20/20 +f 20/20/20 15/15/15 14/14/14 +f 16/16/16 21/21/21 22/22/22 +f 22/22/22 17/17/17 16/16/16 +f 17/17/17 22/22/22 23/23/23 +f 23/23/23 18/18/18 17/17/17 +f 18/18/18 23/23/23 24/24/24 +f 24/24/24 19/19/19 18/18/18 +f 19/19/19 24/24/24 25/25/25 +f 25/25/25 20/20/20 19/19/19 +f 21/26/21 26/31/26 27/32/27 +f 27/32/27 22/27/22 21/26/21 +f 22/27/22 27/32/27 28/33/28 +f 28/33/28 23/28/23 22/27/22 +f 23/28/23 28/33/28 29/34/29 +f 29/34/29 24/29/24 23/28/23 +f 24/29/24 29/34/29 30/35/30 +f 30/35/30 25/30/25 24/29/24 +f 26/31/26 31/36/31 32/37/32 +f 32/37/32 27/32/27 26/31/26 +f 27/32/27 32/37/32 33/38/33 +f 33/38/33 28/33/28 27/32/27 +f 28/33/28 33/38/33 34/39/34 +f 34/39/34 29/34/29 28/33/28 +f 29/34/29 34/39/34 35/40/35 +f 35/40/35 30/35/30 29/34/29 +f 31/36/31 36/41/36 37/42/37 +f 37/42/37 32/37/32 31/36/31 +f 32/37/32 37/42/37 38/43/38 +f 38/43/38 33/38/33 32/37/32 +f 33/38/33 38/43/38 39/44/39 +f 39/44/39 34/39/34 33/38/33 +f 34/39/34 39/44/39 40/45/40 +f 40/45/40 35/40/35 34/39/34 +f 36/41/36 41/46/41 42/47/42 +f 42/47/42 37/42/37 36/41/36 +f 37/42/37 42/47/42 43/48/43 +f 43/48/43 38/43/38 37/42/37 +f 38/43/38 43/48/43 44/49/44 +f 44/49/44 39/44/39 38/43/38 +f 39/44/39 44/49/44 45/50/45 +f 45/50/45 40/45/40 39/44/39 +f 41/51/41 46/56/46 47/57/47 +f 47/57/47 42/52/42 41/51/41 +f 42/52/42 47/57/47 48/58/48 +f 48/58/48 43/53/43 42/52/42 +f 43/53/43 48/58/48 49/59/49 +f 49/59/49 44/54/44 43/53/43 +f 44/54/44 49/59/49 50/60/50 +f 50/60/50 45/55/45 44/54/44 +f 46/56/46 51/61/51 52/62/52 +f 52/62/52 47/57/47 46/56/46 +f 47/57/47 52/62/52 53/63/53 +f 53/63/53 48/58/48 47/57/47 +f 48/58/48 53/63/53 54/64/54 +f 54/64/54 49/59/49 48/58/48 +f 49/59/49 54/64/54 55/65/55 +f 55/65/55 50/60/50 49/59/49 +f 51/61/51 56/66/56 57/67/57 +f 57/67/57 52/62/52 51/61/51 +f 52/62/52 57/67/57 58/68/58 +f 58/68/58 53/63/53 52/62/52 +f 53/63/53 58/68/58 59/69/59 +f 59/69/59 54/64/54 53/63/53 +f 54/64/54 59/69/59 60/70/60 +f 60/70/60 55/65/55 54/64/54 +f 56/66/56 61/71/61 62/72/62 +f 62/72/62 57/67/57 56/66/56 +f 57/67/57 62/72/62 63/73/63 +f 63/73/63 58/68/58 57/67/57 +f 58/68/58 63/73/63 64/74/64 +f 64/74/64 59/69/59 58/68/58 +f 59/69/59 64/74/64 65/75/65 +f 65/75/65 60/70/60 59/69/59 +f 61/76/61 66/81/66 67/82/67 +f 67/82/67 62/77/62 61/76/61 +f 62/77/62 67/82/67 68/83/68 +f 68/83/68 63/78/63 62/77/62 +f 63/78/63 68/83/68 69/84/69 +f 69/84/69 64/79/64 63/78/63 +f 64/79/64 69/84/69 70/85/70 +f 70/85/70 65/80/65 64/79/64 +f 66/81/66 71/86/71 72/87/72 +f 72/87/72 67/82/67 66/81/66 +f 67/82/67 72/87/72 73/88/73 +f 73/88/73 68/83/68 67/82/67 +f 68/83/68 73/88/73 74/89/74 +f 74/89/74 69/84/69 68/83/68 +f 69/84/69 74/89/74 75/90/75 +f 75/90/75 70/85/70 69/84/69 +f 71/86/71 76/91/76 77/92/77 +f 77/92/77 72/87/72 71/86/71 +f 72/87/72 77/92/77 78/93/78 +f 78/93/78 73/88/73 72/87/72 +f 73/88/73 78/93/78 79/94/79 +f 79/94/79 74/89/74 73/88/73 +f 74/89/74 79/94/79 80/95/80 +f 80/95/80 75/90/75 74/89/74 +f 76/91/76 1/96/1 2/97/2 +f 2/97/2 77/92/77 76/91/76 +f 77/92/77 2/97/2 3/98/3 +f 3/98/3 78/93/78 77/92/77 +f 78/93/78 3/98/3 4/99/4 +f 4/99/4 79/94/79 78/93/78 +f 79/94/79 4/99/4 5/100/5 +f 5/100/5 80/95/80 79/94/79 +f 5/101/5 10/106/10 85/107/85 +f 85/107/85 81/102/81 5/101/5 +f 81/102/81 85/107/85 86/108/86 +f 86/108/86 82/103/82 81/102/81 +f 82/103/82 86/108/86 87/109/87 +f 87/109/87 83/104/83 82/103/82 +f 83/104/83 87/109/87 88/110/88 +f 88/110/88 84/105/84 83/104/83 +f 10/106/10 15/111/15 89/112/89 +f 89/112/89 85/107/85 10/106/10 +f 85/107/85 89/112/89 90/113/90 +f 90/113/90 86/108/86 85/107/85 +f 86/108/86 90/113/90 91/114/91 +f 91/114/91 87/109/87 86/108/86 +f 87/109/87 91/114/91 92/115/92 +f 92/115/92 88/110/88 87/109/87 +f 15/111/15 20/116/20 93/117/93 +f 93/117/93 89/112/89 15/111/15 +f 89/112/89 93/117/93 94/118/94 +f 94/118/94 90/113/90 89/112/89 +f 90/113/90 94/118/94 95/119/95 +f 95/119/95 91/114/91 90/113/90 +f 91/114/91 95/119/95 96/120/96 +f 96/120/96 92/115/92 91/114/91 +f 20/116/20 25/121/25 97/122/97 +f 97/122/97 93/117/93 20/116/20 +f 93/117/93 97/122/97 98/123/98 +f 98/123/98 94/118/94 93/117/93 +f 94/118/94 98/123/98 99/124/99 +f 99/124/99 95/119/95 94/118/94 +f 95/119/95 99/124/99 100/125/100 +f 100/125/100 96/120/96 95/119/95 +f 25/126/25 30/131/30 101/132/101 +f 101/132/101 97/127/97 25/126/25 +f 97/127/97 101/132/101 102/133/102 +f 102/133/102 98/128/98 97/127/97 +f 98/128/98 102/133/102 103/134/103 +f 103/134/103 99/129/99 98/128/98 +f 99/129/99 103/134/103 104/135/104 +f 104/135/104 100/130/100 99/129/99 +f 30/131/30 35/136/35 105/137/105 +f 105/137/105 101/132/101 30/131/30 +f 101/132/101 105/137/105 106/138/106 +f 106/138/106 102/133/102 101/132/101 +f 102/133/102 106/138/106 107/139/107 +f 107/139/107 103/134/103 102/133/102 +f 103/134/103 107/139/107 108/140/108 +f 108/140/108 104/135/104 103/134/103 +f 35/136/35 40/141/40 109/142/109 +f 109/142/109 105/137/105 35/136/35 +f 105/137/105 109/142/109 110/143/110 +f 110/143/110 106/138/106 105/137/105 +f 106/138/106 110/143/110 111/144/111 +f 111/144/111 107/139/107 106/138/106 +f 107/139/107 111/144/111 112/145/112 +f 112/145/112 108/140/108 107/139/107 +f 40/141/40 45/146/45 113/147/113 +f 113/147/113 109/142/109 40/141/40 +f 109/142/109 113/147/113 114/148/114 +f 114/148/114 110/143/110 109/142/109 +f 110/143/110 114/148/114 115/149/115 +f 115/149/115 111/144/111 110/143/110 +f 111/144/111 115/149/115 116/150/116 +f 116/150/116 112/145/112 111/144/111 +f 45/151/45 50/156/50 117/157/117 +f 117/157/117 113/152/113 45/151/45 +f 113/152/113 117/157/117 118/158/118 +f 118/158/118 114/153/114 113/152/113 +f 114/153/114 118/158/118 119/159/119 +f 119/159/119 115/154/115 114/153/114 +f 115/154/115 119/159/119 120/160/120 +f 120/160/120 116/155/116 115/154/115 +f 50/156/50 55/161/55 121/162/121 +f 121/162/121 117/157/117 50/156/50 +f 117/157/117 121/162/121 122/163/122 +f 122/163/122 118/158/118 117/157/117 +f 118/158/118 122/163/122 123/164/123 +f 123/164/123 119/159/119 118/158/118 +f 119/159/119 123/164/123 124/165/124 +f 124/165/124 120/160/120 119/159/119 +f 55/161/55 60/166/60 125/167/125 +f 125/167/125 121/162/121 55/161/55 +f 121/162/121 125/167/125 126/168/126 +f 126/168/126 122/163/122 121/162/121 +f 122/163/122 126/168/126 127/169/127 +f 127/169/127 123/164/123 122/163/122 +f 123/164/123 127/169/127 128/170/128 +f 128/170/128 124/165/124 123/164/123 +f 60/166/60 65/171/65 129/172/129 +f 129/172/129 125/167/125 60/166/60 +f 125/167/125 129/172/129 130/173/130 +f 130/173/130 126/168/126 125/167/125 +f 126/168/126 130/173/130 131/174/131 +f 131/174/131 127/169/127 126/168/126 +f 127/169/127 131/174/131 132/175/132 +f 132/175/132 128/170/128 127/169/127 +f 65/176/65 70/181/70 133/182/133 +f 133/182/133 129/177/129 65/176/65 +f 129/177/129 133/182/133 134/183/134 +f 134/183/134 130/178/130 129/177/129 +f 130/178/130 134/183/134 135/184/135 +f 135/184/135 131/179/131 130/178/130 +f 131/179/131 135/184/135 136/185/136 +f 136/185/136 132/180/132 131/179/131 +f 70/181/70 75/186/75 137/187/137 +f 137/187/137 133/182/133 70/181/70 +f 133/182/133 137/187/137 138/188/138 +f 138/188/138 134/183/134 133/182/133 +f 134/183/134 138/188/138 139/189/139 +f 139/189/139 135/184/135 134/183/134 +f 135/184/135 139/189/139 140/190/140 +f 140/190/140 136/185/136 135/184/135 +f 75/186/75 80/191/80 141/192/141 +f 141/192/141 137/187/137 75/186/75 +f 137/187/137 141/192/141 142/193/142 +f 142/193/142 138/188/138 137/187/137 +f 138/188/138 142/193/142 143/194/143 +f 143/194/143 139/189/139 138/188/138 +f 139/189/139 143/194/143 144/195/144 +f 144/195/144 140/190/140 139/189/139 +f 80/191/80 5/196/5 81/197/81 +f 81/197/81 141/192/141 80/191/80 +f 141/192/141 81/197/81 82/198/82 +f 82/198/82 142/193/142 141/192/141 +f 142/193/142 82/198/82 83/199/83 +f 83/199/83 143/194/143 142/193/142 +f 143/194/143 83/199/83 84/200/84 +f 84/200/84 144/195/144 143/194/143 +f 84/201/84 88/206/88 149/207/149 +f 149/207/149 145/202/145 84/201/84 +f 145/202/145 149/207/149 150/208/150 +f 150/208/150 146/203/146 145/202/145 +f 146/203/146 150/208/150 151/209/151 +f 151/209/151 147/204/147 146/203/146 +f 147/204/147 151/209/151 152/210/152 +f 152/210/152 148/205/148 147/204/147 +f 88/206/88 92/211/92 153/212/153 +f 153/212/153 149/207/149 88/206/88 +f 149/207/149 153/212/153 154/213/154 +f 154/213/154 150/208/150 149/207/149 +f 150/208/150 154/213/154 155/214/155 +f 155/214/155 151/209/151 150/208/150 +f 151/209/151 155/214/155 156/215/156 +f 156/215/156 152/210/152 151/209/151 +f 92/211/92 96/216/96 157/217/157 +f 157/217/157 153/212/153 92/211/92 +f 153/212/153 157/217/157 158/218/158 +f 158/218/158 154/213/154 153/212/153 +f 154/213/154 158/218/158 159/219/159 +f 159/219/159 155/214/155 154/213/154 +f 155/214/155 159/219/159 160/220/160 +f 160/220/160 156/215/156 155/214/155 +f 96/216/96 100/221/100 161/222/161 +f 161/222/161 157/217/157 96/216/96 +f 157/217/157 161/222/161 162/223/162 +f 162/223/162 158/218/158 157/217/157 +f 158/218/158 162/223/162 163/224/163 +f 163/224/163 159/219/159 158/218/158 +f 159/219/159 163/224/163 164/225/164 +f 164/225/164 160/220/160 159/219/159 +f 100/226/100 104/231/104 165/232/165 +f 165/232/165 161/227/161 100/226/100 +f 161/227/161 165/232/165 166/233/166 +f 166/233/166 162/228/162 161/227/161 +f 162/228/162 166/233/166 167/234/167 +f 167/234/167 163/229/163 162/228/162 +f 163/229/163 167/234/167 168/235/168 +f 168/235/168 164/230/164 163/229/163 +f 104/231/104 108/236/108 169/237/169 +f 169/237/169 165/232/165 104/231/104 +f 165/232/165 169/237/169 170/238/170 +f 170/238/170 166/233/166 165/232/165 +f 166/233/166 170/238/170 171/239/171 +f 171/239/171 167/234/167 166/233/166 +f 167/234/167 171/239/171 172/240/172 +f 172/240/172 168/235/168 167/234/167 +f 108/236/108 112/241/112 173/242/173 +f 173/242/173 169/237/169 108/236/108 +f 169/237/169 173/242/173 174/243/174 +f 174/243/174 170/238/170 169/237/169 +f 170/238/170 174/243/174 175/244/175 +f 175/244/175 171/239/171 170/238/170 +f 171/239/171 175/244/175 176/245/176 +f 176/245/176 172/240/172 171/239/171 +f 112/241/112 116/246/116 177/247/177 +f 177/247/177 173/242/173 112/241/112 +f 173/242/173 177/247/177 178/248/178 +f 178/248/178 174/243/174 173/242/173 +f 174/243/174 178/248/178 179/249/179 +f 179/249/179 175/244/175 174/243/174 +f 175/244/175 179/249/179 180/250/180 +f 180/250/180 176/245/176 175/244/175 +f 116/251/116 120/256/120 181/257/181 +f 181/257/181 177/252/177 116/251/116 +f 177/252/177 181/257/181 182/258/182 +f 182/258/182 178/253/178 177/252/177 +f 178/253/178 182/258/182 183/259/183 +f 183/259/183 179/254/179 178/253/178 +f 179/254/179 183/259/183 184/260/184 +f 184/260/184 180/255/180 179/254/179 +f 120/256/120 124/261/124 185/262/185 +f 185/262/185 181/257/181 120/256/120 +f 181/257/181 185/262/185 186/263/186 +f 186/263/186 182/258/182 181/257/181 +f 182/258/182 186/263/186 187/264/187 +f 187/264/187 183/259/183 182/258/182 +f 183/259/183 187/264/187 188/265/188 +f 188/265/188 184/260/184 183/259/183 +f 124/261/124 128/266/128 189/267/189 +f 189/267/189 185/262/185 124/261/124 +f 185/262/185 189/267/189 190/268/190 +f 190/268/190 186/263/186 185/262/185 +f 186/263/186 190/268/190 191/269/191 +f 191/269/191 187/264/187 186/263/186 +f 187/264/187 191/269/191 192/270/192 +f 192/270/192 188/265/188 187/264/187 +f 128/266/128 132/271/132 193/272/193 +f 193/272/193 189/267/189 128/266/128 +f 189/267/189 193/272/193 194/273/194 +f 194/273/194 190/268/190 189/267/189 +f 190/268/190 194/273/194 195/274/195 +f 195/274/195 191/269/191 190/268/190 +f 191/269/191 195/274/195 196/275/196 +f 196/275/196 192/270/192 191/269/191 +f 132/276/132 136/281/136 197/282/197 +f 197/282/197 193/277/193 132/276/132 +f 193/277/193 197/282/197 198/283/198 +f 198/283/198 194/278/194 193/277/193 +f 194/278/194 198/283/198 199/284/199 +f 199/284/199 195/279/195 194/278/194 +f 195/279/195 199/284/199 200/285/200 +f 200/285/200 196/280/196 195/279/195 +f 136/281/136 140/286/140 201/287/201 +f 201/287/201 197/282/197 136/281/136 +f 197/282/197 201/287/201 202/288/202 +f 202/288/202 198/283/198 197/282/197 +f 198/283/198 202/288/202 203/289/203 +f 203/289/203 199/284/199 198/283/198 +f 199/284/199 203/289/203 204/290/204 +f 204/290/204 200/285/200 199/284/199 +f 140/286/140 144/291/144 205/292/205 +f 205/292/205 201/287/201 140/286/140 +f 201/287/201 205/292/205 206/293/206 +f 206/293/206 202/288/202 201/287/201 +f 202/288/202 206/293/206 207/294/207 +f 207/294/207 203/289/203 202/288/202 +f 203/289/203 207/294/207 208/295/208 +f 208/295/208 204/290/204 203/289/203 +f 144/291/144 84/296/84 145/297/145 +f 145/297/145 205/292/205 144/291/144 +f 205/292/205 145/297/145 146/298/146 +f 146/298/146 206/293/206 205/292/205 +f 206/293/206 146/298/146 147/299/147 +f 147/299/147 207/294/207 206/293/206 +f 207/294/207 147/299/147 148/300/148 +f 148/300/148 208/295/208 207/294/207 +f 148/301/148 152/306/152 213/307/213 +f 213/307/213 209/302/209 148/301/148 +f 209/302/209 213/307/213 214/308/214 +f 214/308/214 210/303/210 209/302/209 +f 210/303/210 214/308/214 215/309/215 +f 215/309/215 211/304/211 210/303/210 +f 211/304/211 215/309/215 212/310/212 +f 152/306/152 156/311/156 216/312/216 +f 216/312/216 213/307/213 152/306/152 +f 213/307/213 216/312/216 217/313/217 +f 217/313/217 214/308/214 213/307/213 +f 214/308/214 217/313/217 218/314/218 +f 218/314/218 215/309/215 214/308/214 +f 215/309/215 218/314/218 212/315/212 +f 156/311/156 160/316/160 219/317/219 +f 219/317/219 216/312/216 156/311/156 +f 216/312/216 219/317/219 220/318/220 +f 220/318/220 217/313/217 216/312/216 +f 217/313/217 220/318/220 221/319/221 +f 221/319/221 218/314/218 217/313/217 +f 218/314/218 221/319/221 212/320/212 +f 160/316/160 164/321/164 222/322/222 +f 222/322/222 219/317/219 160/316/160 +f 219/317/219 222/322/222 223/323/223 +f 223/323/223 220/318/220 219/317/219 +f 220/318/220 223/323/223 224/324/224 +f 224/324/224 221/319/221 220/318/220 +f 221/319/221 224/324/224 212/325/212 +f 164/326/164 168/331/168 225/332/225 +f 225/332/225 222/327/222 164/326/164 +f 222/327/222 225/332/225 226/333/226 +f 226/333/226 223/328/223 222/327/222 +f 223/328/223 226/333/226 227/334/227 +f 227/334/227 224/329/224 223/328/223 +f 224/329/224 227/334/227 212/335/212 +f 168/331/168 172/336/172 228/337/228 +f 228/337/228 225/332/225 168/331/168 +f 225/332/225 228/337/228 229/338/229 +f 229/338/229 226/333/226 225/332/225 +f 226/333/226 229/338/229 230/339/230 +f 230/339/230 227/334/227 226/333/226 +f 227/334/227 230/339/230 212/340/212 +f 172/336/172 176/341/176 231/342/231 +f 231/342/231 228/337/228 172/336/172 +f 228/337/228 231/342/231 232/343/232 +f 232/343/232 229/338/229 228/337/228 +f 229/338/229 232/343/232 233/344/233 +f 233/344/233 230/339/230 229/338/229 +f 230/339/230 233/344/233 212/345/212 +f 176/341/176 180/346/180 234/347/234 +f 234/347/234 231/342/231 176/341/176 +f 231/342/231 234/347/234 235/348/235 +f 235/348/235 232/343/232 231/342/231 +f 232/343/232 235/348/235 236/349/236 +f 236/349/236 233/344/233 232/343/232 +f 233/344/233 236/349/236 212/350/212 +f 180/351/180 184/356/184 237/357/237 +f 237/357/237 234/352/234 180/351/180 +f 234/352/234 237/357/237 238/358/238 +f 238/358/238 235/353/235 234/352/234 +f 235/353/235 238/358/238 239/359/239 +f 239/359/239 236/354/236 235/353/235 +f 236/354/236 239/359/239 212/360/212 +f 184/356/184 188/361/188 240/362/240 +f 240/362/240 237/357/237 184/356/184 +f 237/357/237 240/362/240 241/363/241 +f 241/363/241 238/358/238 237/357/237 +f 238/358/238 241/363/241 242/364/242 +f 242/364/242 239/359/239 238/358/238 +f 239/359/239 242/364/242 212/365/212 +f 188/361/188 192/366/192 243/367/243 +f 243/367/243 240/362/240 188/361/188 +f 240/362/240 243/367/243 244/368/244 +f 244/368/244 241/363/241 240/362/240 +f 241/363/241 244/368/244 245/369/245 +f 245/369/245 242/364/242 241/363/241 +f 242/364/242 245/369/245 212/370/212 +f 192/366/192 196/371/196 246/372/246 +f 246/372/246 243/367/243 192/366/192 +f 243/367/243 246/372/246 247/373/247 +f 247/373/247 244/368/244 243/367/243 +f 244/368/244 247/373/247 248/374/248 +f 248/374/248 245/369/245 244/368/244 +f 245/369/245 248/374/248 212/375/212 +f 196/376/196 200/381/200 249/382/249 +f 249/382/249 246/377/246 196/376/196 +f 246/377/246 249/382/249 250/383/250 +f 250/383/250 247/378/247 246/377/246 +f 247/378/247 250/383/250 251/384/251 +f 251/384/251 248/379/248 247/378/247 +f 248/379/248 251/384/251 212/385/212 +f 200/381/200 204/386/204 252/387/252 +f 252/387/252 249/382/249 200/381/200 +f 249/382/249 252/387/252 253/388/253 +f 253/388/253 250/383/250 249/382/249 +f 250/383/250 253/388/253 254/389/254 +f 254/389/254 251/384/251 250/383/250 +f 251/384/251 254/389/254 212/390/212 +f 204/386/204 208/391/208 255/392/255 +f 255/392/255 252/387/252 204/386/204 +f 252/387/252 255/392/255 256/393/256 +f 256/393/256 253/388/253 252/387/252 +f 253/388/253 256/393/256 257/394/257 +f 257/394/257 254/389/254 253/388/253 +f 254/389/254 257/394/257 212/395/212 +f 208/391/208 148/396/148 209/397/209 +f 209/397/209 255/392/255 208/391/208 +f 255/392/255 209/397/209 210/398/210 +f 210/398/210 256/393/256 255/392/255 +f 256/393/256 210/398/210 211/399/211 +f 211/399/211 257/394/257 256/393/256 +f 257/394/257 211/399/211 212/400/212 +f 258/401/258 263/406/263 264/407/264 +f 264/407/264 259/402/259 258/401/258 +f 259/402/259 264/407/264 265/408/265 +f 265/408/265 260/403/260 259/402/259 +f 260/403/260 265/408/265 266/409/266 +f 266/409/266 261/404/261 260/403/260 +f 261/404/261 266/409/266 267/410/267 +f 267/410/267 262/405/262 261/404/261 +f 263/406/263 268/411/268 269/412/269 +f 269/412/269 264/407/264 263/406/263 +f 264/407/264 269/412/269 270/413/270 +f 270/413/270 265/408/265 264/407/264 +f 265/408/265 270/413/270 271/414/271 +f 271/414/271 266/409/266 265/408/265 +f 266/409/266 271/414/271 272/415/272 +f 272/415/272 267/410/267 266/409/266 +f 268/411/268 273/416/273 274/417/274 +f 274/417/274 269/412/269 268/411/268 +f 269/412/269 274/417/274 275/418/275 +f 275/418/275 270/413/270 269/412/269 +f 270/413/270 275/418/275 276/419/276 +f 276/419/276 271/414/271 270/413/270 +f 271/414/271 276/419/276 277/420/277 +f 277/420/277 272/415/272 271/414/271 +f 273/416/273 278/421/278 279/422/279 +f 279/422/279 274/417/274 273/416/273 +f 274/417/274 279/422/279 280/423/280 +f 280/423/280 275/418/275 274/417/274 +f 275/418/275 280/423/280 281/424/281 +f 281/424/281 276/419/276 275/418/275 +f 276/419/276 281/424/281 282/425/282 +f 282/425/282 277/420/277 276/419/276 +f 278/426/278 283/431/283 284/432/284 +f 284/432/284 279/427/279 278/426/278 +f 279/427/279 284/432/284 285/433/285 +f 285/433/285 280/428/280 279/427/279 +f 280/428/280 285/433/285 286/434/286 +f 286/434/286 281/429/281 280/428/280 +f 281/429/281 286/434/286 287/435/287 +f 287/435/287 282/430/282 281/429/281 +f 283/431/283 288/436/288 289/437/289 +f 289/437/289 284/432/284 283/431/283 +f 284/432/284 289/437/289 290/438/290 +f 290/438/290 285/433/285 284/432/284 +f 285/433/285 290/438/290 291/439/291 +f 291/439/291 286/434/286 285/433/285 +f 286/434/286 291/439/291 292/440/292 +f 292/440/292 287/435/287 286/434/286 +f 288/436/288 293/441/293 294/442/294 +f 294/442/294 289/437/289 288/436/288 +f 289/437/289 294/442/294 295/443/295 +f 295/443/295 290/438/290 289/437/289 +f 290/438/290 295/443/295 296/444/296 +f 296/444/296 291/439/291 290/438/290 +f 291/439/291 296/444/296 297/445/297 +f 297/445/297 292/440/292 291/439/291 +f 293/441/293 258/446/258 259/447/259 +f 259/447/259 294/442/294 293/441/293 +f 294/442/294 259/447/259 260/448/260 +f 260/448/260 295/443/295 294/442/294 +f 295/443/295 260/448/260 261/449/261 +f 261/449/261 296/444/296 295/443/295 +f 296/444/296 261/449/261 262/450/262 +f 262/450/262 297/445/297 296/444/296 +f 262/451/262 267/456/267 302/457/302 +f 302/457/302 298/452/298 262/451/262 +f 298/452/298 302/457/302 303/458/303 +f 303/458/303 299/453/299 298/452/298 +f 299/453/299 303/458/303 304/459/304 +f 304/459/304 300/454/300 299/453/299 +f 300/454/300 304/459/304 305/460/305 +f 305/460/305 301/455/301 300/454/300 +f 267/456/267 272/461/272 306/462/306 +f 306/462/306 302/457/302 267/456/267 +f 302/457/302 306/462/306 307/463/307 +f 307/463/307 303/458/303 302/457/302 +f 303/458/303 307/463/307 308/464/308 +f 308/464/308 304/459/304 303/458/303 +f 304/459/304 308/464/308 309/465/309 +f 309/465/309 305/460/305 304/459/304 +f 272/461/272 277/466/277 310/467/310 +f 310/467/310 306/462/306 272/461/272 +f 306/462/306 310/467/310 311/468/311 +f 311/468/311 307/463/307 306/462/306 +f 307/463/307 311/468/311 312/469/312 +f 312/469/312 308/464/308 307/463/307 +f 308/464/308 312/469/312 313/470/313 +f 313/470/313 309/465/309 308/464/308 +f 277/466/277 282/471/282 314/472/314 +f 314/472/314 310/467/310 277/466/277 +f 310/467/310 314/472/314 315/473/315 +f 315/473/315 311/468/311 310/467/310 +f 311/468/311 315/473/315 316/474/316 +f 316/474/316 312/469/312 311/468/311 +f 312/469/312 316/474/316 317/475/317 +f 317/475/317 313/470/313 312/469/312 +f 282/476/282 287/481/287 318/482/318 +f 318/482/318 314/477/314 282/476/282 +f 314/477/314 318/482/318 319/483/319 +f 319/483/319 315/478/315 314/477/314 +f 315/478/315 319/483/319 320/484/320 +f 320/484/320 316/479/316 315/478/315 +f 316/479/316 320/484/320 321/485/321 +f 321/485/321 317/480/317 316/479/316 +f 287/481/287 292/486/292 322/487/322 +f 322/487/322 318/482/318 287/481/287 +f 318/482/318 322/487/322 323/488/323 +f 323/488/323 319/483/319 318/482/318 +f 319/483/319 323/488/323 324/489/324 +f 324/489/324 320/484/320 319/483/319 +f 320/484/320 324/489/324 325/490/325 +f 325/490/325 321/485/321 320/484/320 +f 292/486/292 297/491/297 326/492/326 +f 326/492/326 322/487/322 292/486/292 +f 322/487/322 326/492/326 327/493/327 +f 327/493/327 323/488/323 322/487/322 +f 323/488/323 327/493/327 328/494/328 +f 328/494/328 324/489/324 323/488/323 +f 324/489/324 328/494/328 329/495/329 +f 329/495/329 325/490/325 324/489/324 +f 297/491/297 262/496/262 298/497/298 +f 298/497/298 326/492/326 297/491/297 +f 326/492/326 298/497/298 299/498/299 +f 299/498/299 327/493/327 326/492/326 +f 327/493/327 299/498/299 300/499/300 +f 300/499/300 328/494/328 327/493/327 +f 328/494/328 300/499/300 301/500/301 +f 301/500/301 329/495/329 328/494/328 +f 330/501/330 335/506/335 336/507/336 +f 336/507/336 331/502/331 330/501/330 +f 331/502/331 336/507/336 337/508/337 +f 337/508/337 332/503/332 331/502/331 +f 332/503/332 337/508/337 338/509/338 +f 338/509/338 333/504/333 332/503/332 +f 333/504/333 338/509/338 339/510/339 +f 339/510/339 334/505/334 333/504/333 +f 335/506/335 340/511/340 341/512/341 +f 341/512/341 336/507/336 335/506/335 +f 336/507/336 341/512/341 342/513/342 +f 342/513/342 337/508/337 336/507/336 +f 337/508/337 342/513/342 343/514/343 +f 343/514/343 338/509/338 337/508/337 +f 338/509/338 343/514/343 344/515/344 +f 344/515/344 339/510/339 338/509/338 +f 340/511/340 345/516/345 346/517/346 +f 346/517/346 341/512/341 340/511/340 +f 341/512/341 346/517/346 347/518/347 +f 347/518/347 342/513/342 341/512/341 +f 342/513/342 347/518/347 348/519/348 +f 348/519/348 343/514/343 342/513/342 +f 343/514/343 348/519/348 349/520/349 +f 349/520/349 344/515/344 343/514/343 +f 345/516/345 350/521/350 351/522/351 +f 351/522/351 346/517/346 345/516/345 +f 346/517/346 351/522/351 352/523/352 +f 352/523/352 347/518/347 346/517/346 +f 347/518/347 352/523/352 353/524/353 +f 353/524/353 348/519/348 347/518/347 +f 348/519/348 353/524/353 354/525/354 +f 354/525/354 349/520/349 348/519/348 +f 350/526/350 355/531/355 356/532/356 +f 356/532/356 351/527/351 350/526/350 +f 351/527/351 356/532/356 357/533/357 +f 357/533/357 352/528/352 351/527/351 +f 352/528/352 357/533/357 358/534/358 +f 358/534/358 353/529/353 352/528/352 +f 353/529/353 358/534/358 359/535/359 +f 359/535/359 354/530/354 353/529/353 +f 355/531/355 360/536/360 361/537/361 +f 361/537/361 356/532/356 355/531/355 +f 356/532/356 361/537/361 362/538/362 +f 362/538/362 357/533/357 356/532/356 +f 357/533/357 362/538/362 363/539/363 +f 363/539/363 358/534/358 357/533/357 +f 358/534/358 363/539/363 364/540/364 +f 364/540/364 359/535/359 358/534/358 +f 360/536/360 365/541/365 366/542/366 +f 366/542/366 361/537/361 360/536/360 +f 361/537/361 366/542/366 367/543/367 +f 367/543/367 362/538/362 361/537/361 +f 362/538/362 367/543/367 368/544/368 +f 368/544/368 363/539/363 362/538/362 +f 363/539/363 368/544/368 369/545/369 +f 369/545/369 364/540/364 363/539/363 +f 365/541/365 330/546/330 331/547/331 +f 331/547/331 366/542/366 365/541/365 +f 366/542/366 331/547/331 332/548/332 +f 332/548/332 367/543/367 366/542/366 +f 367/543/367 332/548/332 333/549/333 +f 333/549/333 368/544/368 367/543/367 +f 368/544/368 333/549/333 334/550/334 +f 334/550/334 369/545/369 368/544/368 +f 334/551/334 339/556/339 374/557/374 +f 374/557/374 370/552/370 334/551/334 +f 370/552/370 374/557/374 375/558/375 +f 375/558/375 371/553/371 370/552/370 +f 371/553/371 375/558/375 376/559/376 +f 376/559/376 372/554/372 371/553/371 +f 372/554/372 376/559/376 377/560/377 +f 377/560/377 373/555/373 372/554/372 +f 339/556/339 344/561/344 378/562/378 +f 378/562/378 374/557/374 339/556/339 +f 374/557/374 378/562/378 379/563/379 +f 379/563/379 375/558/375 374/557/374 +f 375/558/375 379/563/379 380/564/380 +f 380/564/380 376/559/376 375/558/375 +f 376/559/376 380/564/380 381/565/381 +f 381/565/381 377/560/377 376/559/376 +f 344/561/344 349/566/349 382/567/382 +f 382/567/382 378/562/378 344/561/344 +f 378/562/378 382/567/382 383/568/383 +f 383/568/383 379/563/379 378/562/378 +f 379/563/379 383/568/383 384/569/384 +f 384/569/384 380/564/380 379/563/379 +f 380/564/380 384/569/384 385/570/385 +f 385/570/385 381/565/381 380/564/380 +f 349/566/349 354/571/354 386/572/386 +f 386/572/386 382/567/382 349/566/349 +f 382/567/382 386/572/386 387/573/387 +f 387/573/387 383/568/383 382/567/382 +f 383/568/383 387/573/387 388/574/388 +f 388/574/388 384/569/384 383/568/383 +f 384/569/384 388/574/388 389/575/389 +f 389/575/389 385/570/385 384/569/384 +f 354/576/354 359/581/359 390/582/390 +f 390/582/390 386/577/386 354/576/354 +f 386/577/386 390/582/390 391/583/391 +f 391/583/391 387/578/387 386/577/386 +f 387/578/387 391/583/391 392/584/392 +f 392/584/392 388/579/388 387/578/387 +f 388/579/388 392/584/392 393/585/393 +f 393/585/393 389/580/389 388/579/388 +f 359/581/359 364/586/364 394/587/394 +f 394/587/394 390/582/390 359/581/359 +f 390/582/390 394/587/394 395/588/395 +f 395/588/395 391/583/391 390/582/390 +f 391/583/391 395/588/395 396/589/396 +f 396/589/396 392/584/392 391/583/391 +f 392/584/392 396/589/396 397/590/397 +f 397/590/397 393/585/393 392/584/392 +f 364/586/364 369/591/369 398/592/398 +f 398/592/398 394/587/394 364/586/364 +f 394/587/394 398/592/398 399/593/399 +f 399/593/399 395/588/395 394/587/394 +f 395/588/395 399/593/399 400/594/400 +f 400/594/400 396/589/396 395/588/395 +f 396/589/396 400/594/400 401/595/401 +f 401/595/401 397/590/397 396/589/396 +f 369/591/369 334/596/334 370/597/370 +f 370/597/370 398/592/398 369/591/369 +f 398/592/398 370/597/370 371/598/371 +f 371/598/371 399/593/399 398/592/398 +f 399/593/399 371/598/371 372/599/372 +f 372/599/372 400/594/400 399/593/399 +f 400/594/400 372/599/372 373/600/373 +f 373/600/373 401/595/401 400/594/400 +f 407/607/407 403/602/403 402/601/402 +f 403/602/403 407/607/407 408/608/408 +f 408/608/408 404/603/404 403/602/403 +f 404/603/404 408/608/408 409/609/409 +f 409/609/409 405/604/405 404/603/404 +f 405/604/405 409/609/409 410/610/410 +f 410/610/410 406/605/406 405/604/405 +f 411/612/411 407/607/407 402/606/402 +f 407/607/407 411/612/411 412/613/412 +f 412/613/412 408/608/408 407/607/407 +f 408/608/408 412/613/412 413/614/413 +f 413/614/413 409/609/409 408/608/408 +f 409/609/409 413/614/413 414/615/414 +f 414/615/414 410/610/410 409/609/409 +f 415/617/415 411/612/411 402/611/402 +f 411/612/411 415/617/415 416/618/416 +f 416/618/416 412/613/412 411/612/411 +f 412/613/412 416/618/416 417/619/417 +f 417/619/417 413/614/413 412/613/412 +f 413/614/413 417/619/417 418/620/418 +f 418/620/418 414/615/414 413/614/413 +f 419/622/419 415/617/415 402/616/402 +f 415/617/415 419/622/419 420/623/420 +f 420/623/420 416/618/416 415/617/415 +f 416/618/416 420/623/420 421/624/421 +f 421/624/421 417/619/417 416/618/416 +f 417/619/417 421/624/421 422/625/422 +f 422/625/422 418/620/418 417/619/417 +f 423/632/423 419/627/419 402/626/402 +f 419/627/419 423/632/423 424/633/424 +f 424/633/424 420/628/420 419/627/419 +f 420/628/420 424/633/424 425/634/425 +f 425/634/425 421/629/421 420/628/420 +f 421/629/421 425/634/425 426/635/426 +f 426/635/426 422/630/422 421/629/421 +f 427/637/427 423/632/423 402/631/402 +f 423/632/423 427/637/427 428/638/428 +f 428/638/428 424/633/424 423/632/423 +f 424/633/424 428/638/428 429/639/429 +f 429/639/429 425/634/425 424/633/424 +f 425/634/425 429/639/429 430/640/430 +f 430/640/430 426/635/426 425/634/425 +f 431/642/431 427/637/427 402/636/402 +f 427/637/427 431/642/431 432/643/432 +f 432/643/432 428/638/428 427/637/427 +f 428/638/428 432/643/432 433/644/433 +f 433/644/433 429/639/429 428/638/428 +f 429/639/429 433/644/433 434/645/434 +f 434/645/434 430/640/430 429/639/429 +f 435/647/435 431/642/431 402/641/402 +f 431/642/431 435/647/435 436/648/436 +f 436/648/436 432/643/432 431/642/431 +f 432/643/432 436/648/436 437/649/437 +f 437/649/437 433/644/433 432/643/432 +f 433/644/433 437/649/437 438/650/438 +f 438/650/438 434/645/434 433/644/433 +f 439/657/439 435/652/435 402/651/402 +f 435/652/435 439/657/439 440/658/440 +f 440/658/440 436/653/436 435/652/435 +f 436/653/436 440/658/440 441/659/441 +f 441/659/441 437/654/437 436/653/436 +f 437/654/437 441/659/441 442/660/442 +f 442/660/442 438/655/438 437/654/437 +f 443/662/443 439/657/439 402/656/402 +f 439/657/439 443/662/443 444/663/444 +f 444/663/444 440/658/440 439/657/439 +f 440/658/440 444/663/444 445/664/445 +f 445/664/445 441/659/441 440/658/440 +f 441/659/441 445/664/445 446/665/446 +f 446/665/446 442/660/442 441/659/441 +f 447/667/447 443/662/443 402/661/402 +f 443/662/443 447/667/447 448/668/448 +f 448/668/448 444/663/444 443/662/443 +f 444/663/444 448/668/448 449/669/449 +f 449/669/449 445/664/445 444/663/444 +f 445/664/445 449/669/449 450/670/450 +f 450/670/450 446/665/446 445/664/445 +f 451/672/451 447/667/447 402/666/402 +f 447/667/447 451/672/451 452/673/452 +f 452/673/452 448/668/448 447/667/447 +f 448/668/448 452/673/452 453/674/453 +f 453/674/453 449/669/449 448/668/448 +f 449/669/449 453/674/453 454/675/454 +f 454/675/454 450/670/450 449/669/449 +f 455/682/455 451/677/451 402/676/402 +f 451/677/451 455/682/455 456/683/456 +f 456/683/456 452/678/452 451/677/451 +f 452/678/452 456/683/456 457/684/457 +f 457/684/457 453/679/453 452/678/452 +f 453/679/453 457/684/457 458/685/458 +f 458/685/458 454/680/454 453/679/453 +f 459/687/459 455/682/455 402/681/402 +f 455/682/455 459/687/459 460/688/460 +f 460/688/460 456/683/456 455/682/455 +f 456/683/456 460/688/460 461/689/461 +f 461/689/461 457/684/457 456/683/456 +f 457/684/457 461/689/461 462/690/462 +f 462/690/462 458/685/458 457/684/457 +f 463/692/463 459/687/459 402/686/402 +f 459/687/459 463/692/463 464/693/464 +f 464/693/464 460/688/460 459/687/459 +f 460/688/460 464/693/464 465/694/465 +f 465/694/465 461/689/461 460/688/460 +f 461/689/461 465/694/465 466/695/466 +f 466/695/466 462/690/462 461/689/461 +f 403/697/403 463/692/463 402/691/402 +f 463/692/463 403/697/403 404/698/404 +f 404/698/404 464/693/464 463/692/463 +f 464/693/464 404/698/404 405/699/405 +f 405/699/405 465/694/465 464/693/464 +f 465/694/465 405/699/405 406/700/406 +f 406/700/406 466/695/466 465/694/465 +f 406/701/406 410/706/410 471/707/471 +f 471/707/471 467/702/467 406/701/406 +f 467/702/467 471/707/471 472/708/472 +f 472/708/472 468/703/468 467/702/467 +f 468/703/468 472/708/472 473/709/473 +f 473/709/473 469/704/469 468/703/468 +f 469/704/469 473/709/473 474/710/474 +f 474/710/474 470/705/470 469/704/469 +f 410/706/410 414/711/414 475/712/475 +f 475/712/475 471/707/471 410/706/410 +f 471/707/471 475/712/475 476/713/476 +f 476/713/476 472/708/472 471/707/471 +f 472/708/472 476/713/476 477/714/477 +f 477/714/477 473/709/473 472/708/472 +f 473/709/473 477/714/477 478/715/478 +f 478/715/478 474/710/474 473/709/473 +f 414/711/414 418/716/418 479/717/479 +f 479/717/479 475/712/475 414/711/414 +f 475/712/475 479/717/479 480/718/480 +f 480/718/480 476/713/476 475/712/475 +f 476/713/476 480/718/480 481/719/481 +f 481/719/481 477/714/477 476/713/476 +f 477/714/477 481/719/481 482/720/482 +f 482/720/482 478/715/478 477/714/477 +f 418/716/418 422/721/422 483/722/483 +f 483/722/483 479/717/479 418/716/418 +f 479/717/479 483/722/483 484/723/484 +f 484/723/484 480/718/480 479/717/479 +f 480/718/480 484/723/484 485/724/485 +f 485/724/485 481/719/481 480/718/480 +f 481/719/481 485/724/485 486/725/486 +f 486/725/486 482/720/482 481/719/481 +f 422/726/422 426/731/426 487/732/487 +f 487/732/487 483/727/483 422/726/422 +f 483/727/483 487/732/487 488/733/488 +f 488/733/488 484/728/484 483/727/483 +f 484/728/484 488/733/488 489/734/489 +f 489/734/489 485/729/485 484/728/484 +f 485/729/485 489/734/489 490/735/490 +f 490/735/490 486/730/486 485/729/485 +f 426/731/426 430/736/430 491/737/491 +f 491/737/491 487/732/487 426/731/426 +f 487/732/487 491/737/491 492/738/492 +f 492/738/492 488/733/488 487/732/487 +f 488/733/488 492/738/492 493/739/493 +f 493/739/493 489/734/489 488/733/488 +f 489/734/489 493/739/493 494/740/494 +f 494/740/494 490/735/490 489/734/489 +f 430/736/430 434/741/434 495/742/495 +f 495/742/495 491/737/491 430/736/430 +f 491/737/491 495/742/495 496/743/496 +f 496/743/496 492/738/492 491/737/491 +f 492/738/492 496/743/496 497/744/497 +f 497/744/497 493/739/493 492/738/492 +f 493/739/493 497/744/497 498/745/498 +f 498/745/498 494/740/494 493/739/493 +f 434/741/434 438/746/438 499/747/499 +f 499/747/499 495/742/495 434/741/434 +f 495/742/495 499/747/499 500/748/500 +f 500/748/500 496/743/496 495/742/495 +f 496/743/496 500/748/500 501/749/501 +f 501/749/501 497/744/497 496/743/496 +f 497/744/497 501/749/501 502/750/502 +f 502/750/502 498/745/498 497/744/497 +f 438/751/438 442/756/442 503/757/503 +f 503/757/503 499/752/499 438/751/438 +f 499/752/499 503/757/503 504/758/504 +f 504/758/504 500/753/500 499/752/499 +f 500/753/500 504/758/504 505/759/505 +f 505/759/505 501/754/501 500/753/500 +f 501/754/501 505/759/505 506/760/506 +f 506/760/506 502/755/502 501/754/501 +f 442/756/442 446/761/446 507/762/507 +f 507/762/507 503/757/503 442/756/442 +f 503/757/503 507/762/507 508/763/508 +f 508/763/508 504/758/504 503/757/503 +f 504/758/504 508/763/508 509/764/509 +f 509/764/509 505/759/505 504/758/504 +f 505/759/505 509/764/509 510/765/510 +f 510/765/510 506/760/506 505/759/505 +f 446/761/446 450/766/450 511/767/511 +f 511/767/511 507/762/507 446/761/446 +f 507/762/507 511/767/511 512/768/512 +f 512/768/512 508/763/508 507/762/507 +f 508/763/508 512/768/512 513/769/513 +f 513/769/513 509/764/509 508/763/508 +f 509/764/509 513/769/513 514/770/514 +f 514/770/514 510/765/510 509/764/509 +f 450/766/450 454/771/454 515/772/515 +f 515/772/515 511/767/511 450/766/450 +f 511/767/511 515/772/515 516/773/516 +f 516/773/516 512/768/512 511/767/511 +f 512/768/512 516/773/516 517/774/517 +f 517/774/517 513/769/513 512/768/512 +f 513/769/513 517/774/517 518/775/518 +f 518/775/518 514/770/514 513/769/513 +f 454/776/454 458/781/458 519/782/519 +f 519/782/519 515/777/515 454/776/454 +f 515/777/515 519/782/519 520/783/520 +f 520/783/520 516/778/516 515/777/515 +f 516/778/516 520/783/520 521/784/521 +f 521/784/521 517/779/517 516/778/516 +f 517/779/517 521/784/521 522/785/522 +f 522/785/522 518/780/518 517/779/517 +f 458/781/458 462/786/462 523/787/523 +f 523/787/523 519/782/519 458/781/458 +f 519/782/519 523/787/523 524/788/524 +f 524/788/524 520/783/520 519/782/519 +f 520/783/520 524/788/524 525/789/525 +f 525/789/525 521/784/521 520/783/520 +f 521/784/521 525/789/525 526/790/526 +f 526/790/526 522/785/522 521/784/521 +f 462/786/462 466/791/466 527/792/527 +f 527/792/527 523/787/523 462/786/462 +f 523/787/523 527/792/527 528/793/528 +f 528/793/528 524/788/524 523/787/523 +f 524/788/524 528/793/528 529/794/529 +f 529/794/529 525/789/525 524/788/524 +f 525/789/525 529/794/529 530/795/530 +f 530/795/530 526/790/526 525/789/525 +f 466/791/466 406/796/406 467/797/467 +f 467/797/467 527/792/527 466/791/466 +f 527/792/527 467/797/467 468/798/468 +f 468/798/468 528/793/528 527/792/527 +f 528/793/528 468/798/468 469/799/469 +f 469/799/469 529/794/529 528/793/528 +f 529/794/529 469/799/469 470/800/470 +f 470/800/470 530/795/530 529/794/529 +# 992 faces + +g diff --git a/examples/OpenGLAppExample/Source/VertexShader.glsl b/examples/OpenGLAppExample/Source/VertexShader.glsl new file mode 100644 index 0000000000..4bc25651fe --- /dev/null +++ b/examples/OpenGLAppExample/Source/VertexShader.glsl @@ -0,0 +1,9 @@ +/* + ============================================================================== + + VertexShader.cpp + Created: 11 Nov 2014 12:17:40pm + Author: Felix Faire + + ============================================================================== +*/ diff --git a/extras/Introjucer/JuceLibraryCode/BinaryData.cpp b/extras/Introjucer/JuceLibraryCode/BinaryData.cpp index 87357e438f..a45c587fa1 100644 --- a/extras/Introjucer/JuceLibraryCode/BinaryData.cpp +++ b/extras/Introjucer/JuceLibraryCode/BinaryData.cpp @@ -716,10 +716,10 @@ static const unsigned char temp_binary_data_8[] = "\r\n" "void CONTENTCOMPCLASS::paint (Graphics& g)\r\n" "{\r\n" -" g.fillAll (Colour (0xffeeddff));\r\n" +" g.fillAll (Colour (0xff001F36));\r\n" "\r\n" " g.setFont (Font (16.0f));\r\n" -" g.setColour (Colours::black);\r\n" +" g.setColour (Colours::white);\r\n" " g.drawText (\"Hello World!\", getLocalBounds(), Justification::centred, true);\r\n" "}\r\n" "\r\n" @@ -1361,15 +1361,14 @@ static const unsigned char temp_binary_data_20[] = "\r\n" " void render() override\r\n" " {\r\n" +" OpenGLHelpers::clear (Colours::black);\r\n" +" \r\n" " }\r\n" "\r\n" " void paint (Graphics& g) override\r\n" " {\r\n" -" // (Our component is opaque, so we must completely fill the background with a solid colour)\r\n" -" g.fillAll (Colours::black);\r\n" -"\r\n" -"\r\n" -" // You can add your drawing code here!\r\n" +" // You can add your component specific drawing code here!\r\n" +" // This will draw over the top of the openGL background.\r\n" " }\r\n" "\r\n" " void resized() override\r\n" @@ -3658,7 +3657,7 @@ const char* getNamedResource (const char* resourceNameUTF8, int& numBytes) throw case 0x02a2a077: numBytes = 262; return jucer_NewCppFileTemplate_cpp; case 0x0842c43c: numBytes = 308; return jucer_NewCppFileTemplate_h; case 0x36e634a1: numBytes = 1626; return jucer_NewInlineComponentTemplate_h; - case 0x7fbac252: numBytes = 1834; return jucer_OpenGLComponentTemplate_cpp; + case 0x7fbac252: numBytes = 1835; return jucer_OpenGLComponentTemplate_cpp; case 0x44be9398: numBytes = 2922; return AudioPluginXCodeScript_txt; case 0x4a0cfd09: numBytes = 151; return background_tile_png; case 0x763d39dc: numBytes = 1050; return colourscheme_dark_xml; diff --git a/extras/Introjucer/JuceLibraryCode/BinaryData.h b/extras/Introjucer/JuceLibraryCode/BinaryData.h index 66bafef40f..a522bb6473 100644 --- a/extras/Introjucer/JuceLibraryCode/BinaryData.h +++ b/extras/Introjucer/JuceLibraryCode/BinaryData.h @@ -70,7 +70,7 @@ namespace BinaryData const int jucer_NewInlineComponentTemplate_hSize = 1626; extern const char* jucer_OpenGLComponentTemplate_cpp; - const int jucer_OpenGLComponentTemplate_cppSize = 1834; + const int jucer_OpenGLComponentTemplate_cppSize = 1835; extern const char* AudioPluginXCodeScript_txt; const int AudioPluginXCodeScript_txtSize = 2922; diff --git a/extras/Introjucer/Source/BinaryData/jucer_ContentCompTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_ContentCompTemplate.cpp index 8d67cb6fa7..e26f687afd 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_ContentCompTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_ContentCompTemplate.cpp @@ -21,10 +21,10 @@ CONTENTCOMPCLASS::~CONTENTCOMPCLASS() void CONTENTCOMPCLASS::paint (Graphics& g) { - g.fillAll (Colour (0xffeeddff)); + g.fillAll (Colour (0xff001F36)); g.setFont (Font (16.0f)); - g.setColour (Colours::black); + g.setColour (Colours::white); g.drawText ("Hello World!", getLocalBounds(), Justification::centred, true); } diff --git a/extras/Introjucer/Source/BinaryData/jucer_OpenGLComponentTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_OpenGLComponentTemplate.cpp deleted file mode 100644 index bb256a7967..0000000000 --- a/extras/Introjucer/Source/BinaryData/jucer_OpenGLComponentTemplate.cpp +++ /dev/null @@ -1,77 +0,0 @@ -/* - ============================================================================== - - This file was auto-generated! - - ============================================================================== -*/ - -#ifndef MAINCOMPONENT_H_INCLUDED -#define MAINCOMPONENT_H_INCLUDED - -INCLUDE_JUCE - -//============================================================================== -/* - This component lives inside our window, and this is where you should put all - your controls and content. -*/ -class MainContentComponent : public OpenGLAppComponent -{ -public: - //============================================================================== - MainContentComponent() - { - setSize (800, 600); - } - - ~MainContentComponent() - { - shutdownOpenGL(); - } - - void initialise() override - { - } - - void shutdown() override - { - } - - void render() override - { - } - - void paint (Graphics& g) override - { - // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); - - - // You can add your drawing code here! - } - - void resized() override - { - // This is called when the MainContentComponent is resized. - // If you add any child components, this is where you should - // update their positions. - } - - -private: - //============================================================================== - - // private member variables - - - - JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MainContentComponent) -}; - - -// (This function is called by the app startup code to create our main component) -Component* createMainContentComponent() { return new MainContentComponent(); } - - -#endif // MAINCOMPONENT_H_INCLUDED diff --git a/extras/Introjucer/Source/BinaryData/jucer_OpenglComponentTemplate.cpp b/extras/Introjucer/Source/BinaryData/jucer_OpenglComponentTemplate.cpp index bb256a7967..502221803a 100644 --- a/extras/Introjucer/Source/BinaryData/jucer_OpenglComponentTemplate.cpp +++ b/extras/Introjucer/Source/BinaryData/jucer_OpenglComponentTemplate.cpp @@ -40,15 +40,14 @@ public: void render() override { + OpenGLHelpers::clear (Colours::black); + } void paint (Graphics& g) override { - // (Our component is opaque, so we must completely fill the background with a solid colour) - g.fillAll (Colours::black); - - - // You can add your drawing code here! + // You can add your component specific drawing code here! + // This will draw over the top of the openGL background. } void resized() override diff --git a/extras/Introjucer/Source/Wizards/jucer_NewProjectWizard.h b/extras/Introjucer/Source/Wizards/jucer_NewProjectWizard.h index 616879363b..6e034d6df9 100644 --- a/extras/Introjucer/Source/Wizards/jucer_NewProjectWizard.h +++ b/extras/Introjucer/Source/Wizards/jucer_NewProjectWizard.h @@ -181,30 +181,6 @@ struct NewProjectWizard return project.release(); } - bool selectJuceFolder() - { - for (;;) - { - FileChooser fc ("Select your JUCE modules folder...", - findDefaultModulesFolder(), - "*"); - - if (! fc.browseForDirectory()) - return false; - - if (isJuceModulesFolder (fc.getResult())) - { - modulesFolder = fc.getResult(); - return true; - } - - AlertWindow::showMessageBox (AlertWindow::WarningIcon, - "Not a valid JUCE modules folder!", - "Please select the folder containing your juce_* modules!\n\n" - "This is required so that the new project can be given some essential core modules."); - } - } - //============================================================================== File getSourceFilesFolder() const { diff --git a/extras/Introjucer/Source/Wizards/jucer_NewProjectWizardComponent.h b/extras/Introjucer/Source/Wizards/jucer_NewProjectWizardComponent.h index a27e077b64..d4f104fa1e 100644 --- a/extras/Introjucer/Source/Wizards/jucer_NewProjectWizardComponent.h +++ b/extras/Introjucer/Source/Wizards/jucer_NewProjectWizardComponent.h @@ -25,6 +25,112 @@ #ifndef NEWPROJECTWIZARDCOMPONENTS_H_INCLUDED #define NEWPROJECTWIZARDCOMPONENTS_H_INCLUDED +class ModulesFolderPathBox : public Component, + private ButtonListener, + private ComboBoxListener +{ +public: + + ModulesFolderPathBox(const File& initialFileOrDirectory) + : currentPathBox ("currentPathBox"), + openFolderButton (TRANS("...")), + modulesLabel (String::empty, TRANS("Modules Folder") + ":") + { + + if (initialFileOrDirectory == File::nonexistent) + { + currentPathBox.setText ("couldnt open file", dontSendNotification); + setRoot(findDefaultModulesFolder()); + } + else if (initialFileOrDirectory.isDirectory()) + { + setRoot(initialFileOrDirectory); + } + + addAndMakeVisible (currentPathBox); + currentPathBox.setEditableText (true); + currentPathBox.addListener (this); + + addAndMakeVisible (openFolderButton); + openFolderButton.addListener (this); + openFolderButton.setTooltip (TRANS ("Select JUCE modules folder")); + + addAndMakeVisible (modulesLabel); + modulesLabel.attachToComponent (¤tPathBox, true); + + } + + ~ModulesFolderPathBox() + { + } + + void resized() override + { + Rectangle bounds = getLocalBounds(); + + modulesLabel.setBounds (bounds.removeFromLeft (110)); + + openFolderButton.setBounds (bounds.removeFromRight (40)); + bounds.removeFromRight (5); + + currentPathBox.setBounds (bounds); + } + + bool selectJuceFolder() + { + for (;;) + { + FileChooser fc ("Select your JUCE modules folder...", + findDefaultModulesFolder(), + "*"); + + if (! fc.browseForDirectory()) + return false; + + if (isJuceModulesFolder (fc.getResult())) + { + modulesFolder = fc.getResult(); + setRoot (modulesFolder); + return true; + } + + AlertWindow::showMessageBox (AlertWindow::WarningIcon, + "Not a valid JUCE modules folder!", + "Please select the folder containing your juce_* modules!\n\n" + "This is required so that the new project can be given some essential core modules."); + } + } + + void setRoot (const File& newRootDirectory) + { + if (currentRoot != newRootDirectory) + { + currentRoot = newRootDirectory; + + String currentRootName (currentRoot.getFullPathName()); + if (currentRootName.isEmpty()) + currentRootName = File::separatorString; + + currentPathBox.setText (currentRootName, dontSendNotification); + } + } + + void buttonClicked (Button*) override + { + selectJuceFolder(); + } + + void comboBoxChanged (ComboBox* comboBoxThatHasChanged) override + { + } + +private: + ComboBox currentPathBox; + File currentRoot, modulesFolder; + TextButton openFolderButton; + Label modulesLabel; +}; + /** The target platforms chooser for the chosen template. */ class PlatformTargetsComp : public Component, @@ -170,7 +276,8 @@ public: fileOutline (String::empty, TRANS("Project Folder") + ":"), targetsOutline (String::empty, TRANS("Target Platforms") + ":"), createButton (TRANS("Create") + "..."), - cancelButton (TRANS("Cancel")) + cancelButton (TRANS("Cancel")), + modulesPathBox (findDefaultModulesFolder()) { setOpaque (false); @@ -212,6 +319,10 @@ public: cancelButton.addShortcut (KeyPress (KeyPress::escapeKey)); cancelButton.setBounds ("right - 130, createButton.top, createButton.left - 10, createButton.bottom"); cancelButton.addListener (this); + + addChildAndSetID (&modulesPathBox, "modulesPathBox"); + modulesPathBox.setBounds ("targetsOutline.left, targetsOutline.top - 45, targetsOutline.right, targetsOutline.top - 20"); + updateCustomItems(); updateCreateButton(); @@ -270,8 +381,6 @@ public: return; } - if (! wizard->selectJuceFolder()) - return; ScopedPointer project (wizard->runWizard (*this, projectName.getText(), fileBrowser.getSelectedFile (0))); @@ -313,6 +422,7 @@ private: GroupComponent targetsOutline; TextButton createButton, cancelButton; OwnedArray customItems; + ModulesFolderPathBox modulesPathBox; NewProjectWizardClasses::NewProjectWizard* createWizard() { diff --git a/modules/juce_box2d/box2d/Collision/b2CollideEdge.cpp b/modules/juce_box2d/box2d/Collision/b2CollideEdge.cpp deleted file mode 100644 index 12a1a733ae..0000000000 --- a/modules/juce_box2d/box2d/Collision/b2CollideEdge.cpp +++ /dev/null @@ -1,698 +0,0 @@ -/* - * Copyright (c) 2007-2009 Erin Catto http://www.box2d.org - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * 3. This notice may not be removed or altered from any source distribution. - */ - -#include "b2Collision.h" -#include "Shapes/b2CircleShape.h" -#include "Shapes/b2EdgeShape.h" -#include "Shapes/b2PolygonShape.h" - - -// Compute contact points for edge versus circle. -// This accounts for edge connectivity. -void b2CollideEdgeAndCircle(b2Manifold* manifold, - const b2EdgeShape* edgeA, const b2Transform& xfA, - const b2CircleShape* circleB, const b2Transform& xfB) -{ - manifold->pointCount = 0; - - // Compute circle in frame of edge - b2Vec2 Q = b2MulT(xfA, b2Mul(xfB, circleB->m_p)); - - b2Vec2 A = edgeA->m_vertex1, B = edgeA->m_vertex2; - b2Vec2 e = B - A; - - // Barycentric coordinates - float32 u = b2Dot(e, B - Q); - float32 v = b2Dot(e, Q - A); - - float32 radius = edgeA->m_radius + circleB->m_radius; - - b2ContactFeature cf; - cf.indexB = 0; - cf.typeB = b2ContactFeature::e_vertex; - - // Region A - if (v <= 0.0f) - { - b2Vec2 P = A; - b2Vec2 d = Q - P; - float32 dd = b2Dot(d, d); - if (dd > radius * radius) - { - return; - } - - // Is there an edge connected to A? - if (edgeA->m_hasVertex0) - { - b2Vec2 A1 = edgeA->m_vertex0; - b2Vec2 B1 = A; - b2Vec2 e1 = B1 - A1; - float32 u1 = b2Dot(e1, B1 - Q); - - // Is the circle in Region AB of the previous edge? - if (u1 > 0.0f) - { - return; - } - } - - cf.indexA = 0; - cf.typeA = b2ContactFeature::e_vertex; - manifold->pointCount = 1; - manifold->type = b2Manifold::e_circles; - manifold->localNormal.SetZero(); - manifold->localPoint = P; - manifold->points[0].id.key = 0; - manifold->points[0].id.cf = cf; - manifold->points[0].localPoint = circleB->m_p; - return; - } - - // Region B - if (u <= 0.0f) - { - b2Vec2 P = B; - b2Vec2 d = Q - P; - float32 dd = b2Dot(d, d); - if (dd > radius * radius) - { - return; - } - - // Is there an edge connected to B? - if (edgeA->m_hasVertex3) - { - b2Vec2 B2 = edgeA->m_vertex3; - b2Vec2 A2 = B; - b2Vec2 e2 = B2 - A2; - float32 v2 = b2Dot(e2, Q - A2); - - // Is the circle in Region AB of the next edge? - if (v2 > 0.0f) - { - return; - } - } - - cf.indexA = 1; - cf.typeA = b2ContactFeature::e_vertex; - manifold->pointCount = 1; - manifold->type = b2Manifold::e_circles; - manifold->localNormal.SetZero(); - manifold->localPoint = P; - manifold->points[0].id.key = 0; - manifold->points[0].id.cf = cf; - manifold->points[0].localPoint = circleB->m_p; - return; - } - - // Region AB - float32 den = b2Dot(e, e); - b2Assert(den > 0.0f); - b2Vec2 P = (1.0f / den) * (u * A + v * B); - b2Vec2 d = Q - P; - float32 dd = b2Dot(d, d); - if (dd > radius * radius) - { - return; - } - - b2Vec2 n(-e.y, e.x); - if (b2Dot(n, Q - A) < 0.0f) - { - n.Set(-n.x, -n.y); - } - n.Normalize(); - - cf.indexA = 0; - cf.typeA = b2ContactFeature::e_face; - manifold->pointCount = 1; - manifold->type = b2Manifold::e_faceA; - manifold->localNormal = n; - manifold->localPoint = A; - manifold->points[0].id.key = 0; - manifold->points[0].id.cf = cf; - manifold->points[0].localPoint = circleB->m_p; -} - -// This structure is used to keep track of the best separating axis. -struct b2EPAxis -{ - enum Type - { - e_unknown, - e_edgeA, - e_edgeB - }; - - Type type; - int32 index; - float32 separation; -}; - -// This holds polygon B expressed in frame A. -struct b2TempPolygon -{ - b2Vec2 vertices[b2_maxPolygonVertices]; - b2Vec2 normals[b2_maxPolygonVertices]; - int32 count; -}; - -// Reference face used for clipping -struct b2ReferenceFace -{ - int32 i1, i2; - - b2Vec2 v1, v2; - - b2Vec2 normal; - - b2Vec2 sideNormal1; - float32 sideOffset1; - - b2Vec2 sideNormal2; - float32 sideOffset2; -}; - -// This class collides and edge and a polygon, taking into account edge adjacency. -struct b2EPCollider -{ - void Collide(b2Manifold* manifold, const b2EdgeShape* edgeA, const b2Transform& xfA, - const b2PolygonShape* polygonB, const b2Transform& xfB); - b2EPAxis ComputeEdgeSeparation(); - b2EPAxis ComputePolygonSeparation(); - - enum VertexType - { - e_isolated, - e_concave, - e_convex - }; - - b2TempPolygon m_polygonB; - - b2Transform m_xf; - b2Vec2 m_centroidB; - b2Vec2 m_v0, m_v1, m_v2, m_v3; - b2Vec2 m_normal0, m_normal1, m_normal2; - b2Vec2 m_normal; - VertexType m_type1, m_type2; - b2Vec2 m_lowerLimit, m_upperLimit; - float32 m_radius; - bool m_front; -}; - -// Algorithm: -// 1. Classify v1 and v2 -// 2. Classify polygon centroid as front or back -// 3. Flip normal if necessary -// 4. Initialize normal range to [-pi, pi] about face normal -// 5. Adjust normal range according to adjacent edges -// 6. Visit each separating axes, only accept axes within the range -// 7. Return if _any_ axis indicates separation -// 8. Clip -void b2EPCollider::Collide(b2Manifold* manifold, const b2EdgeShape* edgeA, const b2Transform& xfA, - const b2PolygonShape* polygonB, const b2Transform& xfB) -{ - m_xf = b2MulT(xfA, xfB); - - m_centroidB = b2Mul(m_xf, polygonB->m_centroid); - - m_v0 = edgeA->m_vertex0; - m_v1 = edgeA->m_vertex1; - m_v2 = edgeA->m_vertex2; - m_v3 = edgeA->m_vertex3; - - bool hasVertex0 = edgeA->m_hasVertex0; - bool hasVertex3 = edgeA->m_hasVertex3; - - b2Vec2 edge1 = m_v2 - m_v1; - edge1.Normalize(); - m_normal1.Set(edge1.y, -edge1.x); - float32 offset1 = b2Dot(m_normal1, m_centroidB - m_v1); - float32 offset0 = 0.0f, offset2 = 0.0f; - bool convex1 = false, convex2 = false; - - // Is there a preceding edge? - if (hasVertex0) - { - b2Vec2 edge0 = m_v1 - m_v0; - edge0.Normalize(); - m_normal0.Set(edge0.y, -edge0.x); - convex1 = b2Cross(edge0, edge1) >= 0.0f; - offset0 = b2Dot(m_normal0, m_centroidB - m_v0); - } - - // Is there a following edge? - if (hasVertex3) - { - b2Vec2 edge2 = m_v3 - m_v2; - edge2.Normalize(); - m_normal2.Set(edge2.y, -edge2.x); - convex2 = b2Cross(edge1, edge2) > 0.0f; - offset2 = b2Dot(m_normal2, m_centroidB - m_v2); - } - - // Determine front or back collision. Determine collision normal limits. - if (hasVertex0 && hasVertex3) - { - if (convex1 && convex2) - { - m_front = offset0 >= 0.0f || offset1 >= 0.0f || offset2 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = m_normal0; - m_upperLimit = m_normal2; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = -m_normal1; - m_upperLimit = -m_normal1; - } - } - else if (convex1) - { - m_front = offset0 >= 0.0f || (offset1 >= 0.0f && offset2 >= 0.0f); - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = m_normal0; - m_upperLimit = m_normal1; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = -m_normal2; - m_upperLimit = -m_normal1; - } - } - else if (convex2) - { - m_front = offset2 >= 0.0f || (offset0 >= 0.0f && offset1 >= 0.0f); - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = m_normal1; - m_upperLimit = m_normal2; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = -m_normal1; - m_upperLimit = -m_normal0; - } - } - else - { - m_front = offset0 >= 0.0f && offset1 >= 0.0f && offset2 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = m_normal1; - m_upperLimit = m_normal1; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = -m_normal2; - m_upperLimit = -m_normal0; - } - } - } - else if (hasVertex0) - { - if (convex1) - { - m_front = offset0 >= 0.0f || offset1 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = m_normal0; - m_upperLimit = -m_normal1; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = m_normal1; - m_upperLimit = -m_normal1; - } - } - else - { - m_front = offset0 >= 0.0f && offset1 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = m_normal1; - m_upperLimit = -m_normal1; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = m_normal1; - m_upperLimit = -m_normal0; - } - } - } - else if (hasVertex3) - { - if (convex2) - { - m_front = offset1 >= 0.0f || offset2 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = -m_normal1; - m_upperLimit = m_normal2; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = -m_normal1; - m_upperLimit = m_normal1; - } - } - else - { - m_front = offset1 >= 0.0f && offset2 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = -m_normal1; - m_upperLimit = m_normal1; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = -m_normal2; - m_upperLimit = m_normal1; - } - } - } - else - { - m_front = offset1 >= 0.0f; - if (m_front) - { - m_normal = m_normal1; - m_lowerLimit = -m_normal1; - m_upperLimit = -m_normal1; - } - else - { - m_normal = -m_normal1; - m_lowerLimit = m_normal1; - m_upperLimit = m_normal1; - } - } - - // Get polygonB in frameA - m_polygonB.count = polygonB->m_vertexCount; - for (int32 i = 0; i < polygonB->m_vertexCount; ++i) - { - m_polygonB.vertices[i] = b2Mul(m_xf, polygonB->m_vertices[i]); - m_polygonB.normals[i] = b2Mul(m_xf.q, polygonB->m_normals[i]); - } - - m_radius = 2.0f * b2_polygonRadius; - - manifold->pointCount = 0; - - b2EPAxis edgeAxis = ComputeEdgeSeparation(); - - // If no valid normal can be found than this edge should not collide. - if (edgeAxis.type == b2EPAxis::e_unknown) - { - return; - } - - if (edgeAxis.separation > m_radius) - { - return; - } - - b2EPAxis polygonAxis = ComputePolygonSeparation(); - if (polygonAxis.type != b2EPAxis::e_unknown && polygonAxis.separation > m_radius) - { - return; - } - - // Use hysteresis for jitter reduction. - const float32 k_relativeTol = 0.98f; - const float32 k_absoluteTol = 0.001f; - - b2EPAxis primaryAxis; - if (polygonAxis.type == b2EPAxis::e_unknown) - { - primaryAxis = edgeAxis; - } - else if (polygonAxis.separation > k_relativeTol * edgeAxis.separation + k_absoluteTol) - { - primaryAxis = polygonAxis; - } - else - { - primaryAxis = edgeAxis; - } - - b2ClipVertex ie[2]; - b2ReferenceFace rf; - if (primaryAxis.type == b2EPAxis::e_edgeA) - { - manifold->type = b2Manifold::e_faceA; - - // Search for the polygon normal that is most anti-parallel to the edge normal. - int32 bestIndex = 0; - float32 bestValue = b2Dot(m_normal, m_polygonB.normals[0]); - for (int32 i = 1; i < m_polygonB.count; ++i) - { - float32 value = b2Dot(m_normal, m_polygonB.normals[i]); - if (value < bestValue) - { - bestValue = value; - bestIndex = i; - } - } - - int32 i1 = bestIndex; - int32 i2 = i1 + 1 < m_polygonB.count ? i1 + 1 : 0; - - ie[0].v = m_polygonB.vertices[i1]; - ie[0].id.cf.indexA = 0; - ie[0].id.cf.indexB = (uint8) i1; - ie[0].id.cf.typeA = b2ContactFeature::e_face; - ie[0].id.cf.typeB = b2ContactFeature::e_vertex; - - ie[1].v = m_polygonB.vertices[i2]; - ie[1].id.cf.indexA = 0; - ie[1].id.cf.indexB = (uint8) i2; - ie[1].id.cf.typeA = b2ContactFeature::e_face; - ie[1].id.cf.typeB = b2ContactFeature::e_vertex; - - if (m_front) - { - rf.i1 = 0; - rf.i2 = 1; - rf.v1 = m_v1; - rf.v2 = m_v2; - rf.normal = m_normal1; - } - else - { - rf.i1 = 1; - rf.i2 = 0; - rf.v1 = m_v2; - rf.v2 = m_v1; - rf.normal = -m_normal1; - } - } - else - { - manifold->type = b2Manifold::e_faceB; - - ie[0].v = m_v1; - ie[0].id.cf.indexA = 0; - ie[0].id.cf.indexB = (uint8) primaryAxis.index; - ie[0].id.cf.typeA = b2ContactFeature::e_vertex; - ie[0].id.cf.typeB = b2ContactFeature::e_face; - - ie[1].v = m_v2; - ie[1].id.cf.indexA = 0; - ie[1].id.cf.indexB = (uint8) primaryAxis.index; - ie[1].id.cf.typeA = b2ContactFeature::e_vertex; - ie[1].id.cf.typeB = b2ContactFeature::e_face; - - rf.i1 = primaryAxis.index; - rf.i2 = rf.i1 + 1 < m_polygonB.count ? rf.i1 + 1 : 0; - rf.v1 = m_polygonB.vertices[rf.i1]; - rf.v2 = m_polygonB.vertices[rf.i2]; - rf.normal = m_polygonB.normals[rf.i1]; - } - - rf.sideNormal1.Set(rf.normal.y, -rf.normal.x); - rf.sideNormal2 = -rf.sideNormal1; - rf.sideOffset1 = b2Dot(rf.sideNormal1, rf.v1); - rf.sideOffset2 = b2Dot(rf.sideNormal2, rf.v2); - - // Clip incident edge against extruded edge1 side edges. - b2ClipVertex clipPoints1[2]; - b2ClipVertex clipPoints2[2]; - int32 np; - - // Clip to box side 1 - np = b2ClipSegmentToLine(clipPoints1, ie, rf.sideNormal1, rf.sideOffset1, rf.i1); - - if (np < b2_maxManifoldPoints) - { - return; - } - - // Clip to negative box side 1 - np = b2ClipSegmentToLine(clipPoints2, clipPoints1, rf.sideNormal2, rf.sideOffset2, rf.i2); - - if (np < b2_maxManifoldPoints) - { - return; - } - - // Now clipPoints2 contains the clipped points. - if (primaryAxis.type == b2EPAxis::e_edgeA) - { - manifold->localNormal = rf.normal; - manifold->localPoint = rf.v1; - } - else - { - manifold->localNormal = polygonB->m_normals[rf.i1]; - manifold->localPoint = polygonB->m_vertices[rf.i1]; - } - - int32 pointCount = 0; - for (int32 i = 0; i < b2_maxManifoldPoints; ++i) - { - float32 separation; - - separation = b2Dot(rf.normal, clipPoints2[i].v - rf.v1); - - if (separation <= m_radius) - { - b2ManifoldPoint* cp = manifold->points + pointCount; - - if (primaryAxis.type == b2EPAxis::e_edgeA) - { - cp->localPoint = b2MulT(m_xf, clipPoints2[i].v); - cp->id = clipPoints2[i].id; - } - else - { - cp->localPoint = clipPoints2[i].v; - cp->id.cf.typeA = clipPoints2[i].id.cf.typeB; - cp->id.cf.typeB = clipPoints2[i].id.cf.typeA; - cp->id.cf.indexA = clipPoints2[i].id.cf.indexB; - cp->id.cf.indexB = clipPoints2[i].id.cf.indexA; - } - - ++pointCount; - } - } - - manifold->pointCount = pointCount; -} - -b2EPAxis b2EPCollider::ComputeEdgeSeparation() -{ - b2EPAxis axis; - axis.type = b2EPAxis::e_edgeA; - axis.index = m_front ? 0 : 1; - axis.separation = FLT_MAX; - - for (int32 i = 0; i < m_polygonB.count; ++i) - { - float32 s = b2Dot(m_normal, m_polygonB.vertices[i] - m_v1); - if (s < axis.separation) - { - axis.separation = s; - } - } - - return axis; -} - -b2EPAxis b2EPCollider::ComputePolygonSeparation() -{ - b2EPAxis axis; - axis.type = b2EPAxis::e_unknown; - axis.index = -1; - axis.separation = -FLT_MAX; - - b2Vec2 perp(-m_normal.y, m_normal.x); - - for (int32 i = 0; i < m_polygonB.count; ++i) - { - b2Vec2 n = -m_polygonB.normals[i]; - - float32 s1 = b2Dot(n, m_polygonB.vertices[i] - m_v1); - float32 s2 = b2Dot(n, m_polygonB.vertices[i] - m_v2); - float32 s = b2Min(s1, s2); - - if (s > m_radius) - { - // No collision - axis.type = b2EPAxis::e_edgeB; - axis.index = i; - axis.separation = s; - return axis; - } - - // Adjacency - if (b2Dot(n, perp) >= 0.0f) - { - if (b2Dot(n - m_upperLimit, m_normal) < -b2_angularSlop) - { - continue; - } - } - else - { - if (b2Dot(n - m_lowerLimit, m_normal) < -b2_angularSlop) - { - continue; - } - } - - if (s > axis.separation) - { - axis.type = b2EPAxis::e_edgeB; - axis.index = i; - axis.separation = s; - } - } - - return axis; -} - -void b2CollideEdgeAndPolygon( b2Manifold* manifold, - const b2EdgeShape* edgeA, const b2Transform& xfA, - const b2PolygonShape* polygonB, const b2Transform& xfB) -{ - b2EPCollider collider; - collider.Collide(manifold, edgeA, xfA, polygonB, xfB); -} diff --git a/modules/juce_box2d/box2d/Collision/b2Collision.cpp b/modules/juce_box2d/box2d/Collision/b2Collision.cpp deleted file mode 100644 index 529498f89d..0000000000 --- a/modules/juce_box2d/box2d/Collision/b2Collision.cpp +++ /dev/null @@ -1,249 +0,0 @@ -/* -* Copyright (c) 2007-2009 Erin Catto http://www.box2d.org -* -* This software is provided 'as-is', without any express or implied -* warranty. In no event will the authors be held liable for any damages -* arising from the use of this software. -* Permission is granted to anyone to use this software for any purpose, -* including commercial applications, and to alter it and redistribute it -* freely, subject to the following restrictions: -* 1. The origin of this software must not be misrepresented; you must not -* claim that you wrote the original software. If you use this software -* in a product, an acknowledgment in the product documentation would be -* appreciated but is not required. -* 2. Altered source versions must be plainly marked as such, and must not be -* misrepresented as being the original software. -* 3. This notice may not be removed or altered from any source distribution. -*/ - -#include "b2Collision.h" -#include "b2Distance.h" - -void b2WorldManifold::Initialize(const b2Manifold* manifold, - const b2Transform& xfA, float32 radiusA, - const b2Transform& xfB, float32 radiusB) -{ - if (manifold->pointCount == 0) - { - return; - } - - switch (manifold->type) - { - case b2Manifold::e_circles: - { - normal.Set(1.0f, 0.0f); - b2Vec2 pointA = b2Mul(xfA, manifold->localPoint); - b2Vec2 pointB = b2Mul(xfB, manifold->points[0].localPoint); - if (b2DistanceSquared(pointA, pointB) > b2_epsilon * b2_epsilon) - { - normal = pointB - pointA; - normal.Normalize(); - } - - b2Vec2 cA = pointA + radiusA * normal; - b2Vec2 cB = pointB - radiusB * normal; - points[0] = 0.5f * (cA + cB); - } - break; - - case b2Manifold::e_faceA: - { - normal = b2Mul(xfA.q, manifold->localNormal); - b2Vec2 planePoint = b2Mul(xfA, manifold->localPoint); - - for (int32 i = 0; i < manifold->pointCount; ++i) - { - b2Vec2 clipPoint = b2Mul(xfB, manifold->points[i].localPoint); - b2Vec2 cA = clipPoint + (radiusA - b2Dot(clipPoint - planePoint, normal)) * normal; - b2Vec2 cB = clipPoint - radiusB * normal; - points[i] = 0.5f * (cA + cB); - } - } - break; - - case b2Manifold::e_faceB: - { - normal = b2Mul(xfB.q, manifold->localNormal); - b2Vec2 planePoint = b2Mul(xfB, manifold->localPoint); - - for (int32 i = 0; i < manifold->pointCount; ++i) - { - b2Vec2 clipPoint = b2Mul(xfA, manifold->points[i].localPoint); - b2Vec2 cB = clipPoint + (radiusB - b2Dot(clipPoint - planePoint, normal)) * normal; - b2Vec2 cA = clipPoint - radiusA * normal; - points[i] = 0.5f * (cA + cB); - } - - // Ensure normal points from A to B. - normal = -normal; - } - break; - } -} - -void b2GetPointStates(b2PointState state1[b2_maxManifoldPoints], b2PointState state2[b2_maxManifoldPoints], - const b2Manifold* manifold1, const b2Manifold* manifold2) -{ - for (int32 i = 0; i < b2_maxManifoldPoints; ++i) - { - state1[i] = b2_nullState; - state2[i] = b2_nullState; - } - - // Detect persists and removes. - for (int32 i = 0; i < manifold1->pointCount; ++i) - { - b2ContactID id = manifold1->points[i].id; - - state1[i] = b2_removeState; - - for (int32 j = 0; j < manifold2->pointCount; ++j) - { - if (manifold2->points[j].id.key == id.key) - { - state1[i] = b2_persistState; - break; - } - } - } - - // Detect persists and adds. - for (int32 i = 0; i < manifold2->pointCount; ++i) - { - b2ContactID id = manifold2->points[i].id; - - state2[i] = b2_addState; - - for (int32 j = 0; j < manifold1->pointCount; ++j) - { - if (manifold1->points[j].id.key == id.key) - { - state2[i] = b2_persistState; - break; - } - } - } -} - -// From Real-time Collision Detection, p179. -bool b2AABB::RayCast(b2RayCastOutput* output, const b2RayCastInput& input) const -{ - float32 tmin = -b2_maxFloat; - float32 tmax = b2_maxFloat; - - b2Vec2 p = input.p1; - b2Vec2 d = input.p2 - input.p1; - b2Vec2 absD = b2Abs(d); - - b2Vec2 normal; - - for (int32 i = 0; i < 2; ++i) - { - if (absD(i) < b2_epsilon) - { - // Parallel. - if (p(i) < lowerBound(i) || upperBound(i) < p(i)) - { - return false; - } - } - else - { - float32 inv_d = 1.0f / d(i); - float32 t1 = (lowerBound(i) - p(i)) * inv_d; - float32 t2 = (upperBound(i) - p(i)) * inv_d; - - // Sign of the normal vector. - float32 s = -1.0f; - - if (t1 > t2) - { - b2Swap(t1, t2); - s = 1.0f; - } - - // Push the min up - if (t1 > tmin) - { - normal.SetZero(); - normal(i) = s; - tmin = t1; - } - - // Pull the max down - tmax = b2Min(tmax, t2); - - if (tmin > tmax) - { - return false; - } - } - } - - // Does the ray start inside the box? - // Does the ray intersect beyond the max fraction? - if (tmin < 0.0f || input.maxFraction < tmin) - { - return false; - } - - // Intersection. - output->fraction = tmin; - output->normal = normal; - return true; -} - -// Sutherland-Hodgman clipping. -int32 b2ClipSegmentToLine(b2ClipVertex vOut[2], const b2ClipVertex vIn[2], - const b2Vec2& normal, float32 offset, int32 vertexIndexA) -{ - // Start with no output points - int32 numOut = 0; - - // Calculate the distance of end points to the line - float32 distance0 = b2Dot(normal, vIn[0].v) - offset; - float32 distance1 = b2Dot(normal, vIn[1].v) - offset; - - // If the points are behind the plane - if (distance0 <= 0.0f) vOut[numOut++] = vIn[0]; - if (distance1 <= 0.0f) vOut[numOut++] = vIn[1]; - - // If the points are on different sides of the plane - if (distance0 * distance1 < 0.0f) - { - // Find intersection point of edge and plane - float32 interp = distance0 / (distance0 - distance1); - vOut[numOut].v = vIn[0].v + interp * (vIn[1].v - vIn[0].v); - - // VertexA is hitting edgeB. - vOut[numOut].id.cf.indexA = (uint8) vertexIndexA; - vOut[numOut].id.cf.indexB = vIn[0].id.cf.indexB; - vOut[numOut].id.cf.typeA = b2ContactFeature::e_vertex; - vOut[numOut].id.cf.typeB = b2ContactFeature::e_face; - ++numOut; - } - - return numOut; -} - -bool b2TestOverlap( const b2Shape* shapeA, int32 indexA, - const b2Shape* shapeB, int32 indexB, - const b2Transform& xfA, const b2Transform& xfB) -{ - b2DistanceInput input; - input.proxyA.Set(shapeA, indexA); - input.proxyB.Set(shapeB, indexB); - input.transformA = xfA; - input.transformB = xfB; - input.useRadii = true; - - b2SimplexCache cache; - cache.count = 0; - - b2DistanceOutput output; - - b2Distance(&output, &cache, &input); - - return output.distance < 10.0f * b2_epsilon; -} diff --git a/modules/juce_browser_plugin_client/wrapper/juce_activex_gluecode.cpp b/modules/juce_browser_plugin_client/wrapper/juce_activex_gluecode.cpp deleted file mode 100644 index 28235a1fdf..0000000000 --- a/modules/juce_browser_plugin_client/wrapper/juce_activex_gluecode.cpp +++ /dev/null @@ -1,947 +0,0 @@ -/* - ============================================================================== - - This file is part of the JUCE library. - Copyright (c) 2013 - Raw Material Software Ltd. - - Permission is granted to use this software under the terms of either: - a) the GPL v2 (or any later version) - b) the Affero GPL v3 - - Details of these licenses can be found at: www.gnu.org/licenses - - JUCE 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. - - ------------------------------------------------------------------------------ - - To release a closed-source product which uses JUCE, commercial licenses are - available: visit www.juce.com for more information. - - ============================================================================== -*/ - -//============================================================================== -/* - This file contains all the gubbins to create an ActiveX browser plugin that - wraps your BrowserPluginComponent object. - -*/ -//============================================================================== -#if _MSC_VER - -//============================================================================== -#include -#include -#include -#pragma warning (disable:4584) - -#include "../juce_browser_plugin.h" -using namespace juce; - -#include "juce_BrowserPluginComponent.h" - -#ifndef JuceBrowserPlugin_ActiveXCLSID -#error "For an activeX plugin, you need to define JuceBrowserPlugin_ActiveXCLSID in your BrowserPluginCharacteristics.h file!" -#endif - -//============================================================================== -#if JUCE_DEBUG -static int numDOWID = 0, numJuceSO = 0; -#endif - -#define log(a) DBG(a) - -// Cunning trick used to add functions to export list without messing about with .def files. -#define EXPORTED_FUNCTION comment(linker, "/EXPORT:" __FUNCTION__ "=" __FUNCDNAME__) - -//============================================================================== -static void juceVarToVariant (const var& v, VARIANT& dest); -static var variantTojuceVar (const VARIANT& v); - -//============================================================================== -// Takes care of the logic in invoking var methods from IDispatch callbacks. -class IDispatchHelper -{ -public: - IDispatchHelper() {} - - String getStringFromDISPID (const DISPID hash) const - { - return identifierNames [identifierIDs.indexOf (hash)]; - } - - DISPID getDISPIDForName (const String& name) - { - const int i = identifierNames.indexOf (String (name)); - - if (i >= 0) - return identifierIDs[i]; - - const DISPID newID = (DISPID) name.hashCode64(); - identifierNames.add (name); - identifierIDs.add (newID); - return newID; - } - - HRESULT doGetIDsOfNames (LPOLESTR* rgszNames, UINT cNames, DISPID* rgDispId) - { - for (unsigned int i = 0; i < cNames; ++i) - rgDispId[i] = getDISPIDForName (rgszNames[i]); - - return S_OK; - } - - HRESULT doInvoke (const var& v, - DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, - VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) - { - const Identifier memberId (getStringFromDISPID (dispIdMember)); - - DynamicObject* const object = v.getDynamicObject(); - - if (memberId.toString().isEmpty() || object == nullptr) - return DISP_E_MEMBERNOTFOUND; - - if ((wFlags & DISPATCH_METHOD) != 0) - { - if (object->hasMethod (memberId)) - { - const int numArgs = pDispParams == nullptr ? 0 : pDispParams->cArgs; - var result; - - if (numArgs == 0) - { - result = v.call (memberId); - } - else - { - Array args; - for (int j = numArgs; --j >= 0;) - args.add (variantTojuceVar (pDispParams->rgvarg[j])); - - result = v.invoke (memberId, numArgs == 0 ? nullptr : args.getRawDataPointer(), numArgs); - } - - if (pVarResult != nullptr) - juceVarToVariant (result, *pVarResult); - - return S_OK; - } - } - else if ((wFlags & DISPATCH_PROPERTYGET) != 0) - { - if (object->hasProperty (memberId) && pVarResult != nullptr) - { - juceVarToVariant (object->getProperty (memberId), *pVarResult); - return S_OK; - } - } - else if ((wFlags & DISPATCH_PROPERTYPUT) != 0) - { - if (pDispParams != nullptr && pDispParams->cArgs > 0) - { - object->setProperty (memberId, variantTojuceVar (pDispParams->rgvarg[0])); - return S_OK; - } - } - - return DISP_E_MEMBERNOTFOUND; - } - -private: - Array identifierIDs; - StringArray identifierNames; - - JUCE_DECLARE_NON_COPYABLE (IDispatchHelper) -}; - -//============================================================================== -// Makes a var look like an IDispatch -class IDispatchWrappingDynamicObject : public IDispatch -{ -public: - IDispatchWrappingDynamicObject (const var& object_) - : object (object_), - refCount (1) - { - DBG ("num Juce wrapper objs: " + String (++numJuceSO)); - } - - virtual ~IDispatchWrappingDynamicObject() - { - DBG ("num Juce wrapper objs: " + String (--numJuceSO)); - } - - HRESULT __stdcall QueryInterface (REFIID id, void __RPC_FAR* __RPC_FAR* result) - { - if (id == IID_IUnknown) { AddRef(); *result = (IUnknown*) this; return S_OK; } - if (id == IID_IDispatch) { AddRef(); *result = (IDispatch*) this; return S_OK; } - - *result = 0; - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() { return ++refCount; } - ULONG __stdcall Release() { const int r = --refCount; if (r == 0) delete this; return r; } - - HRESULT __stdcall GetTypeInfoCount (UINT*) { return E_NOTIMPL; } - HRESULT __stdcall GetTypeInfo (UINT, LCID, ITypeInfo**) { return E_NOTIMPL; } - - HRESULT __stdcall GetIDsOfNames (REFIID riid, LPOLESTR* rgszNames, UINT cNames, - LCID lcid, DISPID* rgDispId) - { - return iDispatchHelper.doGetIDsOfNames (rgszNames, cNames, rgDispId); - } - - HRESULT __stdcall Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, - DISPPARAMS* pDispParams, VARIANT* pVarResult, - EXCEPINFO* pExcepInfo, UINT* puArgErr) - { - return iDispatchHelper.doInvoke (object, dispIdMember, riid, lcid, wFlags, pDispParams, - pVarResult, pExcepInfo, puArgErr); - } - -private: - //============================================================================== - var object; - int refCount; - IDispatchHelper iDispatchHelper; - - JUCE_DECLARE_NON_COPYABLE (IDispatchWrappingDynamicObject) -}; - - -//============================================================================== -// Makes an IDispatch look like a var -class DynamicObjectWrappingIDispatch : public DynamicObject -{ -public: - DynamicObjectWrappingIDispatch (IDispatch* const source_) - : source (source_) - { - source->AddRef(); - log ("num IDispatch wrapper objs: " + String (++numDOWID)); - } - - ~DynamicObjectWrappingIDispatch() - { - source->Release(); - log ("num IDispatch wrapper objs: " + String (--numDOWID)); - } - - var getProperty (const Identifier& propertyName) const override - { - const String nameCopy (propertyName.toString()); - LPCOLESTR name = nameCopy.toUTF16(); - DISPID id = 0; - if (source->GetIDsOfNames (IID_NULL, (LPOLESTR*) &name, 1, 0, &id) == S_OK) - { - EXCEPINFO excepInfo; - DISPPARAMS params; - zerostruct (params); - UINT argError; - VARIANT result; - zerostruct (result); - - if (source->Invoke (id, IID_NULL, 0, DISPATCH_PROPERTYGET, - ¶ms, &result, &excepInfo, &argError) == S_OK) - { - var v (variantTojuceVar (result)); - VariantClear (&result); - return v; - } - } - - return var(); - } - - bool hasProperty (const Identifier& propertyName) const override - { - const String nameCopy (propertyName.toString()); - LPCOLESTR name = nameCopy.toUTF16(); - DISPID id = 0; - return source->GetIDsOfNames (IID_NULL, (LPOLESTR*) &name, 1, 0, &id) == S_OK; - } - - void setProperty (const Identifier& propertyName, const var& newValue) override - { - const String nameCopy (propertyName.toString()); - LPCOLESTR name = nameCopy.toUTF16(); - DISPID id = 0; - if (source->GetIDsOfNames (IID_NULL, (LPOLESTR*) &name, 1, 0, &id) == S_OK) - { - VARIANT param; - zerostruct (param); - juceVarToVariant (newValue, param); - - DISPPARAMS dispParams; - zerostruct (dispParams); - dispParams.cArgs = 1; - dispParams.rgvarg = ¶m; - EXCEPINFO excepInfo; - zerostruct (excepInfo); - - VARIANT result; - zerostruct (result); - UINT argError = 0; - - if (source->Invoke (id, IID_NULL, 0, DISPATCH_PROPERTYPUT, - &dispParams, &result, &excepInfo, &argError) == S_OK) - { - VariantClear (&result); - } - - VariantClear (¶m); - } - } - - void removeProperty (const Identifier& propertyName) override - { - setProperty (propertyName, var()); - } - - bool hasMethod (const Identifier& methodName) const override - { - const String nameCopy (methodName.toString()); - LPCOLESTR name = nameCopy.toUTF16(); - DISPID id = 0; - return source->GetIDsOfNames (IID_NULL, (LPOLESTR*) &name, 1, 0, &id) == S_OK; - } - - var invokeMethod (Identifier methodName, const var::NativeFunctionArgs& args) override - { - var returnValue; - const String nameCopy (methodName.toString()); - LPCOLESTR name = nameCopy.toUTF16(); - DISPID id = 0; - if (source->GetIDsOfNames (IID_NULL, (LPOLESTR*) &name, 1, 0, &id) == S_OK) - { - HeapBlock params; - params.calloc (args.numArguments + 1); - - for (int i = 0; i < args.numArguments; ++i) - juceVarToVariant (args.arguments[(args.numArguments - 1) - i], params[i]); - - DISPPARAMS dispParams; - zerostruct (dispParams); - dispParams.cArgs = args.numArguments; - dispParams.rgvarg = params; - - EXCEPINFO excepInfo; - zerostruct (excepInfo); - - VARIANT result; - zerostruct (result); - UINT argError = 0; - - if (source->Invoke (id, IID_NULL, 0, DISPATCH_METHOD, - &dispParams, &result, &excepInfo, &argError) == S_OK) - { - returnValue = variantTojuceVar (result); - VariantClear (&result); - } - } - - return returnValue; - } - -private: - IDispatch* const source; - - JUCE_DECLARE_NON_COPYABLE (DynamicObjectWrappingIDispatch) -}; - - -//============================================================================== -void juceVarToVariant (const var& v, VARIANT& dest) -{ - if (v.isVoid()) - { - dest.vt = VT_EMPTY; - } - else if (v.isInt()) - { - dest.vt = VT_INT; - dest.intVal = (int) v; - } - else if (v.isBool()) - { - dest.vt = VT_BOOL; - dest.boolVal = (int) v; - } - else if (v.isDouble()) - { - dest.vt = VT_R8; - dest.dblVal = (double) v; - } - else if (v.isString()) - { - dest.vt = VT_BSTR; - dest.bstrVal = SysAllocString (v.toString().toUTF16()); - } - else if (v.getDynamicObject() != nullptr) - { - dest.vt = VT_DISPATCH; - dest.pdispVal = new IDispatchWrappingDynamicObject (v); - } - else if (v.isMethod()) - { - dest.vt = VT_EMPTY; - } -} - -var variantTojuceVar (const VARIANT& v) -{ - if ((v.vt & VT_ARRAY) != 0) - { - //xxx - } - else - { - switch (v.vt & ~VT_BYREF) - { - case VT_VOID: - case VT_EMPTY: return var(); - case VT_I1: return var ((int) v.cVal); - case VT_I2: return var ((int) v.iVal); - case VT_I4: return var ((int) v.lVal); - case VT_I8: return var (String (v.llVal)); - case VT_UI1: return var ((int) v.bVal); - case VT_UI2: return var ((int) v.uiVal); - case VT_UI4: return var ((int) v.ulVal); - case VT_UI8: return var (String (v.ullVal)); - case VT_INT: return var ((int) v.intVal); - case VT_UINT: return var ((int) v.uintVal); - case VT_R4: return var ((double) v.fltVal); - case VT_R8: return var ((double) v.dblVal); - case VT_BSTR: return var (String (v.bstrVal)); - case VT_BOOL: return var (v.boolVal ? true : false); - case VT_DISPATCH: return var (new DynamicObjectWrappingIDispatch (v.pdispVal)); - default: break; - } - } - - return var(); -} - -//============================================================================== -// This acts as the embedded HWND -class AXBrowserPluginHolderComponent : public Component -{ -public: - AXBrowserPluginHolderComponent() - : parentHWND (0), - browser (nullptr) - { - setOpaque (true); - setWantsKeyboardFocus (false); - - addAndMakeVisible (child = createBrowserPlugin()); - jassert (child != nullptr); // You have to create one of these! - } - - ~AXBrowserPluginHolderComponent() - { - setWindow (nullptr); - child = nullptr; - } - - //============================================================================== - void paint (Graphics& g) override - { - if (child == nullptr || ! child->isOpaque()) - g.fillAll (Colours::white); - } - - void resized() override - { - if (child != nullptr) - child->setBounds (getLocalBounds()); - } - - var getObject() { return child->getJavascriptObject(); } - - void setWindow (IOleInPlaceSite* site) - { - if (browser != nullptr) - { - browser->Release(); - browser = nullptr; - } - - HWND newHWND = 0; - - if (site != nullptr) - { - site->GetWindow (&newHWND); - - IServiceProvider* sp = nullptr; - site->QueryInterface (IID_IServiceProvider, (void**) &sp); - - if (sp != nullptr) - { - sp->QueryService (IID_IWebBrowserApp, IID_IWebBrowser2, (void**) &browser); - sp->Release(); - } - } - - if (parentHWND != newHWND) - { - removeFromDesktop(); - setVisible (false); - - parentHWND = newHWND; - - if (parentHWND != 0) - { - addToDesktop (0); - - HWND ourHWND = (HWND) getWindowHandle(); - SetParent (ourHWND, parentHWND); - DWORD val = GetWindowLong (ourHWND, GWL_STYLE); - val = (val & ~WS_POPUP) | WS_CHILD; - SetWindowLong (ourHWND, GWL_STYLE, val); - - setVisible (true); - } - } - - if (site != nullptr) - site->OnInPlaceActivate(); - } - - String getBrowserURL() const - { - if (browser == nullptr) - return String::empty; - - BSTR url = nullptr; - browser->get_LocationURL (&url); - return URL::removeEscapeChars (url); - } - -private: - //============================================================================== - ScopedPointer child; - HWND parentHWND; - IWebBrowser2* browser; - - JUCE_DECLARE_NON_COPYABLE (AXBrowserPluginHolderComponent) -}; - -//============================================================================== -extern String browserVersionDesc; - -static String getExePath() -{ - TCHAR moduleFile [2048] = { 0 }; - GetModuleFileName (0, moduleFile, 2048); - return moduleFile; -} - -static String getExeVersion (const String& exeFileName, const String& fieldName) -{ - DWORD pointlessWin32Variable; - DWORD size = GetFileVersionInfoSize (exeFileName.toUTF16(), &pointlessWin32Variable); - - if (size > 0) - { - HeapBlock exeInfo; - exeInfo.calloc (size); - - if (GetFileVersionInfo (exeFileName.toUTF16(), 0, size, exeInfo)) - { - TCHAR* result = nullptr; - unsigned int resultLen = 0; - - // try the 1200 codepage (Unicode) - String queryStr ("\\StringFileInfo\\040904B0\\" + fieldName); - - if (! VerQueryValue (exeInfo, (LPTSTR) queryStr.toUTF16().getAddress(), (void**) &result, &resultLen)) - { - // try the 1252 codepage (Windows Multilingual) - queryStr = "\\StringFileInfo\\040904E4\\" + fieldName; - VerQueryValue (exeInfo, (LPTSTR) queryStr.toUTF16().getAddress(), (void**) &result, &resultLen); - } - - return String (result, resultLen); - } - } - - return String::empty; -} - -static int numActivePlugins = 0; - -class JuceActiveXObject : public IUnknown, - public IDispatch, - public IObjectWithSite, - public IObjectSafety, - public IOleInPlaceObject -{ -public: - JuceActiveXObject() - : site (nullptr), refCount (0) - { - log ("JuceActiveXObject"); - } - - ~JuceActiveXObject() - { - log ("~JuceActiveXObject"); - holderComp = nullptr; - } - - HRESULT __stdcall QueryInterface (REFIID id, void __RPC_FAR* __RPC_FAR* result) - { - if (id == IID_IUnknown) { AddRef(); *result = (IUnknown*) this; return S_OK; } - if (id == IID_IDispatch) { AddRef(); *result = (IDispatch*) this; return S_OK; } - if (id == IID_IObjectWithSite) { AddRef(); *result = (IObjectWithSite*) this; return S_OK; } - if (id == IID_IObjectSafety) { AddRef(); *result = (IObjectSafety*) this; return S_OK; } - if (id == IID_IOleInPlaceObject) { AddRef(); *result = (IOleInPlaceObject*) this; return S_OK; } - if (id == IID_IOleWindow) { AddRef(); *result = (IOleWindow*) (IOleInPlaceObject*) this; return S_OK; } - - *result = 0; - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() { return ++refCount; } - ULONG __stdcall Release() { const int r = --refCount; if (r == 0) delete this; return r; } - - HRESULT __stdcall GetTypeInfoCount (UINT* pctinfo) { return E_NOTIMPL; } - HRESULT __stdcall GetTypeInfo (UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) { return E_NOTIMPL; } - - HRESULT __stdcall GetIDsOfNames (REFIID riid, LPOLESTR* rgszNames, UINT cNames, - LCID lcid, DISPID* rgDispId) - { - return iDispatchHelper.doGetIDsOfNames (rgszNames, cNames, rgDispId); - } - - HRESULT __stdcall Invoke (DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, - DISPPARAMS* pDispParams, VARIANT* pVarResult, - EXCEPINFO* pExcepInfo, UINT* puArgErr) - { - if (holderComp == nullptr) - return DISP_E_MEMBERNOTFOUND; - - return iDispatchHelper.doInvoke (holderComp->getObject(), - dispIdMember, riid, lcid, wFlags, pDispParams, - pVarResult, pExcepInfo, puArgErr); - } - - HRESULT __stdcall SetSite (IUnknown* newSite) - { - if (newSite != site) - { - if (site != nullptr) - site->Release(); - - site = newSite; - - if (site != nullptr) - { - site->AddRef(); - - IOleInPlaceSite* inPlaceSite = nullptr; - site->QueryInterface (IID_IOleInPlaceSite, (void**) &inPlaceSite); - - if (inPlaceSite != nullptr) - { - createHolderComp(); - - holderComp->setWindow (inPlaceSite); - inPlaceSite->Release(); - } - else - { - deleteHolderComp(); - } - } - else - { - deleteHolderComp(); - } - } - - return S_OK; - } - - void createHolderComp() - { - if (holderComp == nullptr) - { - if (numActivePlugins++ == 0) - { - log ("initialiseJuce_GUI()"); - initialiseJuce_GUI(); - - browserVersionDesc = "Internet Explorer " + getExeVersion (getExePath(), "FileVersion"); - } - - holderComp = new AXBrowserPluginHolderComponent(); - } - } - - void deleteHolderComp() - { - if (holderComp != nullptr) - { - holderComp = nullptr; - - if (--numActivePlugins == 0) - { - log ("shutdownJuce_GUI()"); - shutdownJuce_GUI(); - } - } - } - - HRESULT __stdcall GetSite (REFIID riid, void **ppvSite) - { - *ppvSite = site; - return S_OK; - } - - //============================================================================== - HRESULT __stdcall SetObjectRects (LPCRECT r, LPCRECT c) - { - if (holderComp != nullptr) - holderComp->setBounds (r->left, r->top, r->right - r->left, r->bottom - r->top); - - return S_OK; - } - - HRESULT __stdcall GetWindow (HWND* phwnd) - { - if (holderComp == nullptr) - return E_NOTIMPL; - - *phwnd = (HWND) holderComp->getWindowHandle(); - return S_OK; - } - - //============================================================================== - HRESULT __stdcall ContextSensitiveHelp (BOOL fEnterMode) { return E_NOTIMPL; } - HRESULT __stdcall InPlaceDeactivate() { return E_NOTIMPL; } - HRESULT __stdcall UIDeactivate() { return E_NOTIMPL; } - HRESULT __stdcall ReactivateAndUndo() { return E_NOTIMPL; } - - //============================================================================== - HRESULT __stdcall GetInterfaceSafetyOptions (REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions) - { - *pdwSupportedOptions = *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_CALLER|INTERFACESAFE_FOR_UNTRUSTED_DATA; - return S_OK; - } - - HRESULT __stdcall SetInterfaceSafetyOptions (REFIID, DWORD, DWORD) { return S_OK; } - -private: - IUnknown* site; - int refCount; - ScopedPointer holderComp; - IDispatchHelper iDispatchHelper; - - JUCE_DECLARE_NON_COPYABLE (JuceActiveXObject) -}; - -//============================================================================== -class JuceActiveXObjectFactory : public IUnknown, - public IClassFactory -{ -public: - JuceActiveXObjectFactory() : refCount (0) {} - - HRESULT __stdcall QueryInterface (REFIID id, void __RPC_FAR* __RPC_FAR* result) - { - if (id == IID_IUnknown) { AddRef(); *result = (IUnknown*) this; return S_OK; } - if (id == IID_IClassFactory) { AddRef(); *result = (IClassFactory*) this; return S_OK; } - - *result = nullptr; - return E_NOINTERFACE; - } - - ULONG __stdcall AddRef() { return ++refCount; } - ULONG __stdcall Release() { const int r = --refCount; if (r == 0) delete this; return r; } - - HRESULT __stdcall CreateInstance (IUnknown* pUnkOuter, REFIID riid, void** ppvObject) - { - *ppvObject = nullptr; - - if (pUnkOuter != nullptr && riid != IID_IUnknown) - return CLASS_E_NOAGGREGATION; - - JuceActiveXObject* ax = new JuceActiveXObject(); - return ax->QueryInterface (riid, ppvObject); - } - - HRESULT __stdcall LockServer (BOOL /*fLock*/) { return S_OK; } - -private: - int refCount; - - JUCE_DECLARE_NON_COPYABLE (JuceActiveXObjectFactory) -}; - -//============================================================================== -String getActiveXBrowserURL (const BrowserPluginComponent* comp) -{ - if (AXBrowserPluginHolderComponent* ax = dynamic_cast (comp->getParentComponent())) - return ax->getBrowserURL(); - - return String(); -} - -//============================================================================== -extern "C" BOOL WINAPI DllMain (HANDLE instance, DWORD reason, LPVOID) -{ - #pragma EXPORTED_FUNCTION - - switch (reason) - { - case DLL_PROCESS_ATTACH: - log ("DLL_PROCESS_ATTACH"); - Process::setCurrentModuleInstanceHandle (instance); - break; - - case DLL_PROCESS_DETACH: - log ("DLL_PROCESS_DETACH"); - browserVersionDesc.clear(); - - // IE has a tendency to leak our objects, so although none of this should be - // necessary, it's best to make sure.. - jassert (numActivePlugins == 0); - shutdownJuce_GUI(); - break; - - default: - break; - } - - return TRUE; -} - -static String CLSIDToJuceString (REFCLSID clsid) -{ - LPWSTR s = nullptr; - StringFromIID (clsid, &s); - - if (s == nullptr) - return String::empty; - - const String result (s); - LPMALLOC malloc; - CoGetMalloc (1, &malloc); - if (malloc != nullptr) - { - malloc->Free (s); - malloc->Release(); - } - - return result.removeCharacters ("{}").trim(); -} - -STDAPI DllGetClassObject (REFCLSID rclsid, REFIID riid, LPVOID* ppv) -{ - #pragma EXPORTED_FUNCTION - - *ppv = nullptr; - - if (CLSIDToJuceString (rclsid).equalsIgnoreCase (String (JuceBrowserPlugin_ActiveXCLSID))) - { - JuceActiveXObjectFactory* afx = new JuceActiveXObjectFactory(); - if (afx->QueryInterface (riid, ppv) == S_OK) - return S_OK; - - delete afx; - } - - return CLASS_E_CLASSNOTAVAILABLE; -} - -STDAPI DllCanUnloadNow() -{ - #pragma EXPORTED_FUNCTION - return S_OK; -} - -//============================================================================== -static String makeLegalRegistryName (const String& s) -{ - return s.retainCharacters ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_."); -} - -static HRESULT doRegistration (const bool unregister) -{ - const String company (makeLegalRegistryName (JuceBrowserPlugin_Company)); - const String plugin (makeLegalRegistryName (JuceBrowserPlugin_Name)); - const String clsID ("{" + String (JuceBrowserPlugin_ActiveXCLSID).toUpperCase() + "}"); - const String root ("HKEY_CLASSES_ROOT\\"); - const String companyDotPlugin (company + "." + plugin); - const String companyDotPluginCur (companyDotPlugin + ".1"); - const String clsIDRoot (root + "CLSID\\" + clsID + "\\"); - const String dllPath (File::getSpecialLocation (File::currentApplicationFile).getFullPathName()); - - StringPairArray settings; - settings.set (root + companyDotPluginCur + "\\", JuceBrowserPlugin_Name); - settings.set (root + companyDotPluginCur + "\\CLSID\\", clsID); - settings.set (root + companyDotPlugin + "\\", JuceBrowserPlugin_Name); - settings.set (root + companyDotPlugin + "\\CLSID\\", clsID); - settings.set (root + companyDotPlugin + "\\CurVer\\", companyDotPluginCur); - settings.set (clsIDRoot, JuceBrowserPlugin_Name); - settings.set (clsIDRoot + "Implemented Categories\\{7DD95801-9882-11CF-9FA9-00AA006C42C4}\\", String::empty); - settings.set (clsIDRoot + "Implemented Categories\\{7DD95802-9882-11CF-9FA9-00AA006C42C4}\\", String::empty); - settings.set (clsIDRoot + "ProgID\\", companyDotPluginCur); - settings.set (clsIDRoot + "VersionIndependentProgID\\", companyDotPlugin); - settings.set (clsIDRoot + "Programmable\\", String::empty); - settings.set (clsIDRoot + "InProcServer32\\", dllPath); - settings.set (clsIDRoot + "InProcServer32\\ThreadingModel", "Apartment"); - settings.set (clsIDRoot + "Control\\", String::empty); - settings.set (clsIDRoot + "Insertable\\", String::empty); - settings.set (clsIDRoot + "ToolboxBitmap32\\", dllPath + ", 101"); - settings.set (clsIDRoot + "TypeLib\\", ""); - settings.set (clsIDRoot + "Version\\", JuceBrowserPlugin_Version); - - if (unregister) - { - for (int i = 0; i < settings.getAllKeys().size(); ++i) - WindowsRegistry::deleteValue (settings.getAllKeys()[i]); - - WindowsRegistry::deleteKey (root + companyDotPluginCur); - WindowsRegistry::deleteKey (root + companyDotPlugin); - WindowsRegistry::deleteKey (clsIDRoot); - - if (WindowsRegistry::valueExists (clsIDRoot + "InProcServer32")) - return SELFREG_E_CLASS; - } - else - { - WindowsRegistry::deleteKey (clsIDRoot); - - for (int i = 0; i < settings.getAllKeys().size(); ++i) - WindowsRegistry::setValue (settings.getAllKeys()[i], - settings [settings.getAllKeys()[i]]); - - // check whether the registration actually worked - if not, we probably don't have - // enough privileges to write to the registry.. - if (WindowsRegistry::getValue (clsIDRoot + "InProcServer32\\") != dllPath) - return SELFREG_E_CLASS; - } - - return S_OK; -} - -STDAPI DllRegisterServer() -{ - #pragma EXPORTED_FUNCTION - return doRegistration (false); -} - -STDAPI DllUnregisterServer() -{ - #pragma EXPORTED_FUNCTION - return doRegistration (true); -} - -#endif diff --git a/modules/juce_opengl/utils/juce_OpenGLAppComponent.h b/modules/juce_opengl/utils/juce_OpenGLAppComponent.h index 858ea617b0..607fbbafe3 100644 --- a/modules/juce_opengl/utils/juce_OpenGLAppComponent.h +++ b/modules/juce_opengl/utils/juce_OpenGLAppComponent.h @@ -62,10 +62,11 @@ public: */ virtual void render() = 0; + OpenGLContext openGLContext; private: //============================================================================== - OpenGLContext openGLContext; + int frameCounter; void newOpenGLContextCreated() override;