/* ============================================================================== This is an automatically generated GUI class created by the Projucer! Be careful when adding custom code to these files, as only the code within the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. Created with Projucer version: 6.0.5 ------------------------------------------------------------------------------ The Projucer is part of the JUCE library. Copyright (c) 2020 - Raw Material Software Limited. ============================================================================== */ //[Headers] You can add your own extra header files here... //[/Headers] #include "PluginGui.h" //[MiscUserDefs] You can add your own user definitions and misc code here... void PluginGui::updateFromParameters() { emulatorSlider->setValue(processor->getEnumParameter("Emulator"), juce::NotificationType::dontSendNotification); sineImageButton->setToggleState(false, dontSendNotification); halfsineImageButton->setToggleState(false, dontSendNotification); abssineImageButton->setToggleState(false, dontSendNotification); quartersineImageButton->setToggleState(false, dontSendNotification); alternatingsineImageButton->setToggleState(false, dontSendNotification); camelsineImageButton->setToggleState(false, dontSendNotification); squareImageButton->setToggleState(false, dontSendNotification); logsawImageButton->setToggleState(false, dontSendNotification); switch(processor->getEnumParameter("Modulator Wave")) { case 0: sineImageButton->setToggleState(true, dontSendNotification); break; case 1: halfsineImageButton->setToggleState(true, dontSendNotification); break; case 2: abssineImageButton->setToggleState(true, dontSendNotification); break; case 3: quartersineImageButton->setToggleState(true, dontSendNotification); break; case 4: alternatingsineImageButton->setToggleState(true, dontSendNotification); break; case 5: camelsineImageButton->setToggleState(true, dontSendNotification); break; case 6: squareImageButton->setToggleState(true, dontSendNotification); break; case 7: logsawImageButton->setToggleState(true, dontSendNotification); break; } sineImageButton2->setToggleState(false, dontSendNotification); halfsineImageButton2->setToggleState(false, dontSendNotification); abssineImageButton2->setToggleState(false, dontSendNotification); quartersineImageButton2->setToggleState(false, dontSendNotification); alternatingsineImageButton2->setToggleState(false, dontSendNotification); camelsineImageButton2->setToggleState(false, dontSendNotification); squareImageButton2->setToggleState(false, dontSendNotification); logsawImageButton2->setToggleState(false, dontSendNotification); switch(processor->getEnumParameter("Carrier Wave")) { case 0: sineImageButton2->setToggleState(true, dontSendNotification); break; case 1: halfsineImageButton2->setToggleState(true, dontSendNotification); break; case 2: abssineImageButton2->setToggleState(true, dontSendNotification); break; case 3: quartersineImageButton2->setToggleState(true, dontSendNotification); break; case 4: alternatingsineImageButton2->setToggleState(true, dontSendNotification); break; case 5: camelsineImageButton2->setToggleState(true, dontSendNotification); break; case 6: squareImageButton2->setToggleState(true, dontSendNotification); break; case 7: logsawImageButton2->setToggleState(true, dontSendNotification); break; } fmButton->setToggleState(false, dontSendNotification); additiveButton->setToggleState(false, dontSendNotification); switch (processor->getEnumParameter("Algorithm")) { case 0: fmButton->setToggleState(true, dontSendNotification); break; case 1: additiveButton->setToggleState(true, dontSendNotification); break; } disablePercussionButton->setToggleState(false, dontSendNotification); bassDrumButton->setToggleState(false, dontSendNotification); snareDrumButton->setToggleState(false, dontSendNotification); tomTomButton->setToggleState(false, dontSendNotification); cymbalButton->setToggleState(false, dontSendNotification); hiHatButton->setToggleState(false, dontSendNotification); switch (processor->getEnumParameter("Percussion Mode")) { case 0: disablePercussionButton->setToggleState(true, dontSendNotification); break; case 1: bassDrumButton->setToggleState(true, dontSendNotification); break; case 2: snareDrumButton->setToggleState(true, dontSendNotification); break; case 3: tomTomButton->setToggleState(true, dontSendNotification); break; case 4: cymbalButton->setToggleState(true, dontSendNotification); break; case 5: hiHatButton->setToggleState(true, dontSendNotification); break; } //DBG(" multipler " << processor->getEnumParameter("Modulator Frequency Multiplier")); int val = processor->getEnumParameter("Modulator Frequency Multiplier"); if (val <=10 ){ frequencyComboBox->setSelectedItemIndex (val, sendNotificationAsync); } else if (val == 12){ frequencyComboBox->setSelectedItemIndex (11, sendNotificationAsync); } else if (val == 15){ frequencyComboBox->setSelectedItemIndex (12, sendNotificationAsync); } val = processor->getEnumParameter("Carrier Frequency Multiplier"); if (val <=10 ){ frequencyComboBox2->setSelectedItemIndex (val, sendNotificationAsync); } else if (val == 12){ frequencyComboBox2->setSelectedItemIndex (11, sendNotificationAsync); } else if (val == 15){ frequencyComboBox2->setSelectedItemIndex (12, sendNotificationAsync); } attenuationSlider->setValue(processor->getEnumParameter("Modulator Attenuation") * -0.75, juce::NotificationType::dontSendNotification); attenuationSlider2->setValue(processor->getEnumParameter("Carrier Attenuation") * -0.75, juce::NotificationType::dontSendNotification); aSlider->setValue(processor->getIntParameter("Modulator Attack"), juce::NotificationType::dontSendNotification); dSlider->setValue(processor->getIntParameter("Modulator Decay"), juce::NotificationType::dontSendNotification); sSlider->setValue(processor->getIntParameter("Modulator Sustain Level"), juce::NotificationType::dontSendNotification); rSlider->setValue(processor->getIntParameter("Modulator Release"), juce::NotificationType::dontSendNotification); aSlider2->setValue(processor->getIntParameter("Carrier Attack"), juce::NotificationType::dontSendNotification); dSlider2->setValue(processor->getIntParameter("Carrier Decay"), juce::NotificationType::dontSendNotification); sSlider2->setValue(processor->getIntParameter("Carrier Sustain Level"), juce::NotificationType::dontSendNotification); rSlider2->setValue(processor->getIntParameter("Carrier Release"), juce::NotificationType::dontSendNotification); /// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": keyscaleAttenuationComboBox->setSelectedItemIndex ( processor->getEnumParameter("Modulator Keyscale Level"), sendNotificationAsync); keyscaleAttenuationComboBox2->setSelectedItemIndex ( processor->getEnumParameter("Carrier Keyscale Level"), sendNotificationAsync); tremoloButton->setToggleState(processor->getBoolParameter("Modulator Tremolo"), dontSendNotification); vibratoButton->setToggleState(processor->getBoolParameter("Modulator Vibrato"), dontSendNotification); sustainButton->setToggleState(processor->getBoolParameter("Modulator Sustain"), dontSendNotification); keyscaleEnvButton->setToggleState(processor->getBoolParameter("Modulator Keyscale Rate"), dontSendNotification); tremoloButton2->setToggleState(processor->getBoolParameter("Carrier Tremolo"), dontSendNotification); vibratoButton2->setToggleState(processor->getBoolParameter("Carrier Vibrato"), dontSendNotification); sustainButton2->setToggleState(processor->getBoolParameter("Carrier Sustain"), dontSendNotification); keyscaleEnvButton2->setToggleState(processor->getBoolParameter("Carrier Keyscale Rate"), dontSendNotification); vibratoSlider->setValue(processor->getEnumParameter("Vibrato Depth") * 7.0 + 7.0, juce::NotificationType::dontSendNotification); tremoloSlider->setValue(processor->getEnumParameter("Tremolo Depth") * 3.8 + 1.0, juce::NotificationType::dontSendNotification); feedbackSlider->setValue(processor->getIntParameter("Modulator Feedback"), juce::NotificationType::dontSendNotification); /// Jeff-Russ replaced the second arg of "true" with "sendNotificationAsync": velocityComboBox->setSelectedItemIndex ( processor->getEnumParameter("Modulator Velocity Sensitivity"), sendNotificationAsync); velocityComboBox2->setSelectedItemIndex ( processor->getEnumParameter("Carrier Velocity Sensitivity"), sendNotificationAsync); tooltipWindow.setColour(tooltipWindow.backgroundColourId, Colour(0x0)); tooltipWindow.setColour(tooltipWindow.textColourId, Colour(COLOUR_MID)); if (processor->lastLoadFile.length() > 0) { File file(processor->lastLoadFile); loadButton->setButtonText(file.getFileNameWithoutExtension()); } } void PluginGui::setRecordButtonState(bool recording) { if (recording) { recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_RECORDING)); recordButton->setButtonText("Recording.."); recordButton->setColour(ToggleButton::textColourId, Colour(COLOUR_RECORDING)); } else { recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); recordButton->setButtonText("Record to DRO"); recordButton->setColour(ToggleButton::textColourId, Colour(COLOUR_MID)); } } //[/MiscUserDefs] //============================================================================== PluginGui::PluginGui (AdlibBlasterAudioProcessor* ownerFilter) { //[Constructor_pre] You can add your own custom stuff here.. //[/Constructor_pre] groupComponent2.reset (new juce::GroupComponent ("new group", TRANS("Carrier"))); addAndMakeVisible (groupComponent2.get()); groupComponent2->setTextLabelPosition (juce::Justification::centredLeft); groupComponent2->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent2->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent2->setBounds (440, 88, 408, 344); groupComponent4.reset (new juce::GroupComponent ("new group", TRANS("Channels"))); addAndMakeVisible (groupComponent4.get()); groupComponent4->setTextLabelPosition (juce::Justification::centredLeft); groupComponent4->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent4->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent4->setBounds (16, 8, 832, 64); groupComponent11.reset (new juce::GroupComponent ("new group", TRANS("Percussion"))); addAndMakeVisible (groupComponent11.get()); groupComponent11->setTextLabelPosition (juce::Justification::centredLeft); groupComponent11->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent11->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent11->setBounds (496, 440, 192, 120); groupComponent10.reset (new juce::GroupComponent ("new group", TRANS("Algorithm"))); addAndMakeVisible (groupComponent10.get()); groupComponent10->setTextLabelPosition (juce::Justification::centredLeft); groupComponent10->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent10->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent10->setBounds (280, 440, 200, 120); groupComponent9.reset (new juce::GroupComponent ("new group", TRANS("File"))); addAndMakeVisible (groupComponent9.get()); groupComponent9->setTextLabelPosition (juce::Justification::centredLeft); groupComponent9->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent9->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent9->setBounds (704, 440, 144, 120); groupComponent.reset (new juce::GroupComponent ("new group", TRANS("Modulator"))); addAndMakeVisible (groupComponent.get()); groupComponent->setTextLabelPosition (juce::Justification::centredLeft); groupComponent->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent->setBounds (16, 88, 408, 344); frequencyComboBox.reset (new juce::ComboBox ("frequency combo box")); addAndMakeVisible (frequencyComboBox.get()); frequencyComboBox->setEditableText (false); frequencyComboBox->setJustificationType (juce::Justification::centredLeft); frequencyComboBox->setTextWhenNothingSelected (juce::String()); frequencyComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); frequencyComboBox->addListener (this); frequencyComboBox->setBounds (200, 168, 64, 24); frequencyLabel.reset (new juce::Label ("frequency label", TRANS("Frequency Multiplier"))); addAndMakeVisible (frequencyLabel.get()); frequencyLabel->setTooltip (TRANS("Multiplier applied to base note frequency")); frequencyLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel->setJustificationType (juce::Justification::centredLeft); frequencyLabel->setEditable (false, false, false); frequencyLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel->setBounds (40, 168, 152, 24); aSlider.reset (new juce::Slider ("a slider")); addAndMakeVisible (aSlider.get()); aSlider->setTooltip (TRANS("Envelope attack rate")); aSlider->setRange (0, 15, 1); aSlider->setSliderStyle (juce::Slider::LinearVertical); aSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); aSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); aSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); aSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); aSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); aSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); aSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); aSlider->addListener (this); aSlider->setBounds (40, 200, 30, 104); aLabel.reset (new juce::Label ("a label", TRANS("A"))); addAndMakeVisible (aLabel.get()); aLabel->setTooltip (TRANS("Attack rate")); aLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); aLabel->setJustificationType (juce::Justification::centred); aLabel->setEditable (false, false, false); aLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); aLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); aLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); aLabel->setBounds (40, 304, 30, 24); dSlider.reset (new juce::Slider ("d slider")); addAndMakeVisible (dSlider.get()); dSlider->setTooltip (TRANS("Envelope decay rate")); dSlider->setRange (0, 15, 1); dSlider->setSliderStyle (juce::Slider::LinearVertical); dSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); dSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); dSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); dSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); dSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); dSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); dSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); dSlider->addListener (this); dSlider->setBounds (88, 200, 30, 104); dLabel.reset (new juce::Label ("d label", TRANS("D"))); addAndMakeVisible (dLabel.get()); dLabel->setTooltip (TRANS("Decay rate")); dLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dLabel->setJustificationType (juce::Justification::centred); dLabel->setEditable (false, false, false); dLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); dLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel->setBounds (88, 304, 30, 24); sSlider.reset (new juce::Slider ("s slider")); addAndMakeVisible (sSlider.get()); sSlider->setTooltip (TRANS("Envelope sustain level")); sSlider->setRange (0, 15, 1); sSlider->setSliderStyle (juce::Slider::LinearVertical); sSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); sSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); sSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); sSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); sSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); sSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); sSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); sSlider->addListener (this); sSlider->setBounds (136, 200, 30, 104); dLabel2.reset (new juce::Label ("d label", TRANS("S"))); addAndMakeVisible (dLabel2.get()); dLabel2->setTooltip (TRANS("Sustain level")); dLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dLabel2->setJustificationType (juce::Justification::centred); dLabel2->setEditable (false, false, false); dLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); dLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel2->setBounds (136, 304, 30, 24); rSlider.reset (new juce::Slider ("r slider")); addAndMakeVisible (rSlider.get()); rSlider->setTooltip (TRANS("Envelope release rate")); rSlider->setRange (0, 15, 1); rSlider->setSliderStyle (juce::Slider::LinearVertical); rSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 30, 20); rSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); rSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); rSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); rSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); rSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); rSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); rSlider->addListener (this); rSlider->setBounds (184, 200, 30, 104); rLabel.reset (new juce::Label ("r label", TRANS("R"))); addAndMakeVisible (rLabel.get()); rLabel->setTooltip (TRANS("Release rate")); rLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); rLabel->setJustificationType (juce::Justification::centred); rLabel->setEditable (false, false, false); rLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); rLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); rLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); rLabel->setBounds (184, 304, 30, 24); attenuationSlider.reset (new juce::Slider ("attenuation slider")); addAndMakeVisible (attenuationSlider.get()); attenuationSlider->setRange (-47.25, 0, 0.75); attenuationSlider->setSliderStyle (juce::Slider::LinearVertical); attenuationSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 64, 20); attenuationSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); attenuationSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); attenuationSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); attenuationSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); attenuationSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); attenuationSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); attenuationSlider->addListener (this); attenuationSlider->setBounds (328, 184, 56, 142); attenuationLabel.reset (new juce::Label ("attenuation label", TRANS("Attenuation"))); addAndMakeVisible (attenuationLabel.get()); attenuationLabel->setTooltip (TRANS("Final output level adjustment")); attenuationLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); attenuationLabel->setJustificationType (juce::Justification::centred); attenuationLabel->setEditable (false, false, false); attenuationLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); attenuationLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); attenuationLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel->setBounds (304, 160, 112, 24); dbLabel.reset (new juce::Label ("db label", TRANS("dB"))); addAndMakeVisible (dbLabel.get()); dbLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel->setJustificationType (juce::Justification::centred); dbLabel->setEditable (false, false, false); dbLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel->setBounds (384, 304, 32, 24); sineImageButton.reset (new juce::ImageButton ("sine image button")); addAndMakeVisible (sineImageButton.get()); sineImageButton->setButtonText (TRANS("Sine")); sineImageButton->setRadioGroupId (1); sineImageButton->addListener (this); sineImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); sineImageButton->setBounds (88, 113, 34, 30); halfsineImageButton.reset (new juce::ImageButton ("half sine image button")); addAndMakeVisible (halfsineImageButton.get()); halfsineImageButton->setButtonText (TRANS("Half Sine")); halfsineImageButton->setRadioGroupId (1); halfsineImageButton->addListener (this); halfsineImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); halfsineImageButton->setBounds (128, 113, 34, 30); abssineImageButton.reset (new juce::ImageButton ("abs sine image button")); addAndMakeVisible (abssineImageButton.get()); abssineImageButton->setButtonText (TRANS("Abs Sine")); abssineImageButton->setRadioGroupId (1); abssineImageButton->addListener (this); abssineImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); abssineImageButton->setBounds (168, 113, 34, 30); quartersineImageButton.reset (new juce::ImageButton ("quarter sine image button")); addAndMakeVisible (quartersineImageButton.get()); quartersineImageButton->setButtonText (TRANS("Quarter Sine")); quartersineImageButton->setRadioGroupId (1); quartersineImageButton->addListener (this); quartersineImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); quartersineImageButton->setBounds (208, 113, 34, 30); waveLabel.reset (new juce::Label ("wave label", TRANS("Wave"))); addAndMakeVisible (waveLabel.get()); waveLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); waveLabel->setJustificationType (juce::Justification::centredLeft); waveLabel->setEditable (false, false, false); waveLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); waveLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); waveLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); waveLabel->setBounds (32, 115, 48, 24); tremoloButton.reset (new juce::ToggleButton ("tremolo button")); addAndMakeVisible (tremoloButton.get()); tremoloButton->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); tremoloButton->setButtonText (TRANS("Tremolo")); tremoloButton->addListener (this); tremoloButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); tremoloButton->setBounds (120, 352, 80, 24); vibratoButton.reset (new juce::ToggleButton ("vibrato button")); addAndMakeVisible (vibratoButton.get()); vibratoButton->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); vibratoButton->setButtonText (TRANS("Vibrato")); vibratoButton->addListener (this); vibratoButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); vibratoButton->setBounds (32, 352, 72, 24); sustainButton.reset (new juce::ToggleButton ("sustain button")); addAndMakeVisible (sustainButton.get()); sustainButton->setTooltip (TRANS("Enable or disable sustain when note is held")); sustainButton->setButtonText (TRANS("Sustain")); sustainButton->addListener (this); sustainButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); sustainButton->setBounds (32, 384, 70, 32); keyscaleEnvButton.reset (new juce::ToggleButton ("keyscale env button")); addAndMakeVisible (keyscaleEnvButton.get()); keyscaleEnvButton->setTooltip (TRANS("Speed up envelope rate with note frequency")); keyscaleEnvButton->setButtonText (TRANS("Keyscale Env. Rate")); keyscaleEnvButton->addListener (this); keyscaleEnvButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); keyscaleEnvButton->setBounds (120, 376, 101, 48); dbLabel2.reset (new juce::Label ("db label", TRANS("dB/8ve\n"))); addAndMakeVisible (dbLabel2.get()); dbLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel2->setJustificationType (juce::Justification::centred); dbLabel2->setEditable (false, false, false); dbLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel2->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel2->setBounds (792, 712, 72, 16); frequencyComboBox2.reset (new juce::ComboBox ("frequency combo box")); addAndMakeVisible (frequencyComboBox2.get()); frequencyComboBox2->setEditableText (false); frequencyComboBox2->setJustificationType (juce::Justification::centredLeft); frequencyComboBox2->setTextWhenNothingSelected (juce::String()); frequencyComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); frequencyComboBox2->addListener (this); frequencyComboBox2->setBounds (624, 168, 66, 24); frequencyLabel3.reset (new juce::Label ("frequency label", TRANS("Frequency Multiplier"))); addAndMakeVisible (frequencyLabel3.get()); frequencyLabel3->setTooltip (TRANS("Multiplier applied to base note frequency")); frequencyLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel3->setJustificationType (juce::Justification::centredLeft); frequencyLabel3->setEditable (false, false, false); frequencyLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel3->setBounds (464, 168, 152, 24); aSlider2.reset (new juce::Slider ("a slider")); addAndMakeVisible (aSlider2.get()); aSlider2->setRange (0, 15, 1); aSlider2->setSliderStyle (juce::Slider::LinearVertical); aSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); aSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); aSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); aSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); aSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); aSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); aSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); aSlider2->addListener (this); aSlider2->setBounds (464, 200, 30, 104); aLabel2.reset (new juce::Label ("a label", TRANS("A"))); addAndMakeVisible (aLabel2.get()); aLabel2->setTooltip (TRANS("Attack rate")); aLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); aLabel2->setJustificationType (juce::Justification::centred); aLabel2->setEditable (false, false, false); aLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); aLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); aLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); aLabel2->setBounds (464, 304, 30, 24); dSlider2.reset (new juce::Slider ("d slider")); addAndMakeVisible (dSlider2.get()); dSlider2->setRange (0, 15, 1); dSlider2->setSliderStyle (juce::Slider::LinearVertical); dSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); dSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); dSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); dSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); dSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); dSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); dSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); dSlider2->addListener (this); dSlider2->setBounds (512, 200, 30, 104); dLabel3.reset (new juce::Label ("d label", TRANS("D"))); addAndMakeVisible (dLabel3.get()); dLabel3->setTooltip (TRANS("Decay rate")); dLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dLabel3->setJustificationType (juce::Justification::centred); dLabel3->setEditable (false, false, false); dLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); dLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel3->setBounds (512, 304, 30, 24); sSlider2.reset (new juce::Slider ("s slider")); addAndMakeVisible (sSlider2.get()); sSlider2->setRange (0, 15, 1); sSlider2->setSliderStyle (juce::Slider::LinearVertical); sSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); sSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); sSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); sSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); sSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); sSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); sSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); sSlider2->addListener (this); sSlider2->setBounds (560, 200, 30, 104); dLabel4.reset (new juce::Label ("d label", TRANS("S"))); addAndMakeVisible (dLabel4.get()); dLabel4->setTooltip (TRANS("Sustain level")); dLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dLabel4->setJustificationType (juce::Justification::centred); dLabel4->setEditable (false, false, false); dLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); dLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dLabel4->setBounds (560, 304, 30, 24); rSlider2.reset (new juce::Slider ("r slider")); addAndMakeVisible (rSlider2.get()); rSlider2->setRange (0, 15, 1); rSlider2->setSliderStyle (juce::Slider::LinearVertical); rSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 40, 20); rSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); rSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); rSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); rSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); rSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); rSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); rSlider2->addListener (this); rSlider2->setBounds (608, 200, 30, 104); rLabel2.reset (new juce::Label ("r label", TRANS("R"))); addAndMakeVisible (rLabel2.get()); rLabel2->setTooltip (TRANS("Release rate")); rLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); rLabel2->setJustificationType (juce::Justification::centred); rLabel2->setEditable (false, false, false); rLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); rLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); rLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); rLabel2->setBounds (608, 304, 30, 24); attenuationSlider2.reset (new juce::Slider ("attenuation slider")); addAndMakeVisible (attenuationSlider2.get()); attenuationSlider2->setRange (-47.25, 0, 0.75); attenuationSlider2->setSliderStyle (juce::Slider::LinearVertical); attenuationSlider2->setTextBoxStyle (juce::Slider::TextBoxBelow, false, 64, 20); attenuationSlider2->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); attenuationSlider2->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); attenuationSlider2->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); attenuationSlider2->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); attenuationSlider2->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); attenuationSlider2->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); attenuationSlider2->addListener (this); attenuationSlider2->setBounds (752, 184, 56, 142); attenuationLabel2.reset (new juce::Label ("attenuation label", TRANS("Attenuation"))); addAndMakeVisible (attenuationLabel2.get()); attenuationLabel2->setTooltip (TRANS("Final output level adjustment")); attenuationLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); attenuationLabel2->setJustificationType (juce::Justification::centred); attenuationLabel2->setEditable (false, false, false); attenuationLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); attenuationLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); attenuationLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel2->setBounds (728, 160, 112, 24); dbLabel3.reset (new juce::Label ("db label", TRANS("dB"))); addAndMakeVisible (dbLabel3.get()); dbLabel3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel3->setJustificationType (juce::Justification::centred); dbLabel3->setEditable (false, false, false); dbLabel3->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel3->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel3->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel3->setBounds (800, 304, 40, 24); sineImageButton2.reset (new juce::ImageButton ("sine image button")); addAndMakeVisible (sineImageButton2.get()); sineImageButton2->setButtonText (TRANS("Sine")); sineImageButton2->setRadioGroupId (2); sineImageButton2->addListener (this); sineImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (full_sine_png, full_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); sineImageButton2->setBounds (512, 113, 34, 30); halfsineImageButton2.reset (new juce::ImageButton ("half sine image button")); addAndMakeVisible (halfsineImageButton2.get()); halfsineImageButton2->setButtonText (TRANS("Half Sine")); halfsineImageButton2->setRadioGroupId (2); halfsineImageButton2->addListener (this); halfsineImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (half_sine_png, half_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); halfsineImageButton2->setBounds (552, 113, 34, 30); abssineImageButton2.reset (new juce::ImageButton ("abs sine image button")); addAndMakeVisible (abssineImageButton2.get()); abssineImageButton2->setButtonText (TRANS("Abs Sine")); abssineImageButton2->setRadioGroupId (2); abssineImageButton2->addListener (this); abssineImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (abs_sine_png, abs_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); abssineImageButton2->setBounds (592, 113, 34, 30); quartersineImageButton2.reset (new juce::ImageButton ("quarter sine image button")); addAndMakeVisible (quartersineImageButton2.get()); quartersineImageButton2->setButtonText (TRANS("Quarter Sine")); quartersineImageButton2->setRadioGroupId (2); quartersineImageButton2->addListener (this); quartersineImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (quarter_sine_png, quarter_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); quartersineImageButton2->setBounds (632, 113, 34, 30); waveLabel2.reset (new juce::Label ("wave label", TRANS("Wave"))); addAndMakeVisible (waveLabel2.get()); waveLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); waveLabel2->setJustificationType (juce::Justification::centredLeft); waveLabel2->setEditable (false, false, false); waveLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); waveLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); waveLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); waveLabel2->setBounds (456, 115, 48, 24); tremoloButton2.reset (new juce::ToggleButton ("tremolo button")); addAndMakeVisible (tremoloButton2.get()); tremoloButton2->setTooltip (TRANS("Modulate amplitude at 3.7 Hz")); tremoloButton2->setButtonText (TRANS("Tremolo")); tremoloButton2->addListener (this); tremoloButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); tremoloButton2->setBounds (544, 352, 80, 24); vibratoButton2.reset (new juce::ToggleButton ("vibrato button")); addAndMakeVisible (vibratoButton2.get()); vibratoButton2->setTooltip (TRANS("Modulate frequency at 6.1 Hz")); vibratoButton2->setButtonText (TRANS("Vibrato")); vibratoButton2->addListener (this); vibratoButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); vibratoButton2->setBounds (456, 352, 72, 24); sustainButton2.reset (new juce::ToggleButton ("sustain button")); addAndMakeVisible (sustainButton2.get()); sustainButton2->setTooltip (TRANS("Enable or disable sustain when note is held")); sustainButton2->setButtonText (TRANS("Sustain")); sustainButton2->addListener (this); sustainButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); sustainButton2->setBounds (456, 384, 70, 24); keyscaleEnvButton2.reset (new juce::ToggleButton ("keyscale env button")); addAndMakeVisible (keyscaleEnvButton2.get()); keyscaleEnvButton2->setTooltip (TRANS("Speed up envelope rate with note frequency")); keyscaleEnvButton2->setButtonText (TRANS("Keyscale Env. Rate")); keyscaleEnvButton2->addListener (this); keyscaleEnvButton2->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); keyscaleEnvButton2->setBounds (544, 376, 102, 48); frequencyLabel4.reset (new juce::Label ("frequency label", TRANS("Keyscale Attenuation"))); addAndMakeVisible (frequencyLabel4.get()); frequencyLabel4->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); frequencyLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel4->setJustificationType (juce::Justification::centred); frequencyLabel4->setEditable (false, false, false); frequencyLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel4->setBounds (656, 376, 88, 48); groupComponent3.reset (new juce::GroupComponent ("new group", TRANS("Effect depth"))); addAndMakeVisible (groupComponent3.get()); groupComponent3->setTextLabelPosition (juce::Justification::centredLeft); groupComponent3->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0x00007f00)); groupComponent3->setColour (juce::GroupComponent::textColourId, juce::Colour (0x00007f00)); groupComponent3->setBounds (16, 440, 248, 120); tremoloSlider.reset (new juce::Slider ("tremolo slider")); addAndMakeVisible (tremoloSlider.get()); tremoloSlider->setRange (1, 4.8, 3.8); tremoloSlider->setSliderStyle (juce::Slider::LinearHorizontal); tremoloSlider->setTextBoxStyle (juce::Slider::TextBoxRight, true, 32, 20); tremoloSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); tremoloSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); tremoloSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); tremoloSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); tremoloSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); tremoloSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); tremoloSlider->addListener (this); tremoloSlider->setBounds (112, 472, 80, 24); frequencyLabel5.reset (new juce::Label ("frequency label", TRANS("Tremolo\n"))); addAndMakeVisible (frequencyLabel5.get()); frequencyLabel5->setTooltip (TRANS("OPL global tremolo depth")); frequencyLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel5->setJustificationType (juce::Justification::centredLeft); frequencyLabel5->setEditable (false, false, false); frequencyLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel5->setBounds (32, 472, 80, 24); dbLabel5.reset (new juce::Label ("db label", TRANS("dB"))); addAndMakeVisible (dbLabel5.get()); dbLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel5->setJustificationType (juce::Justification::centredLeft); dbLabel5->setEditable (false, false, false); dbLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel5->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel5->setBounds (200, 464, 32, 40); vibratoSlider.reset (new juce::Slider ("vibrato slider")); addAndMakeVisible (vibratoSlider.get()); vibratoSlider->setRange (7, 14, 7); vibratoSlider->setSliderStyle (juce::Slider::LinearHorizontal); vibratoSlider->setTextBoxStyle (juce::Slider::TextBoxRight, true, 32, 20); vibratoSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff007f00)); vibratoSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); vibratoSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); vibratoSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); vibratoSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); vibratoSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); vibratoSlider->addListener (this); vibratoSlider->setBounds (112, 512, 80, 24); frequencyLabel6.reset (new juce::Label ("frequency label", TRANS("Vibrato"))); addAndMakeVisible (frequencyLabel6.get()); frequencyLabel6->setTooltip (TRANS("OPL global vibrato depth")); frequencyLabel6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel6->setJustificationType (juce::Justification::centredLeft); frequencyLabel6->setEditable (false, false, false); frequencyLabel6->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel6->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel6->setBounds (32, 512, 80, 24); dbLabel6.reset (new juce::Label ("db label", TRANS("cents\n"))); addAndMakeVisible (dbLabel6.get()); dbLabel6->setTooltip (TRANS("A unit of pitch; 100 cents per semitone")); dbLabel6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel6->setJustificationType (juce::Justification::centredLeft); dbLabel6->setEditable (false, false, false); dbLabel6->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel6->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel6->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel6->setBounds (200, 504, 48, 40); feedbackSlider.reset (new juce::Slider ("feedback slider")); addAndMakeVisible (feedbackSlider.get()); feedbackSlider->setRange (0, 7, 1); feedbackSlider->setSliderStyle (juce::Slider::RotaryHorizontalVerticalDrag); feedbackSlider->setTextBoxStyle (juce::Slider::TextBoxBelow, true, 30, 20); feedbackSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff00af00)); feedbackSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); feedbackSlider->setColour (juce::Slider::rotarySliderFillColourId, juce::Colour (0xff00af00)); feedbackSlider->setColour (juce::Slider::rotarySliderOutlineColourId, juce::Colour (0xff007f00)); feedbackSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); feedbackSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); feedbackSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); feedbackSlider->setColour (juce::Slider::textBoxOutlineColourId, juce::Colour (0x008e989b)); feedbackSlider->addListener (this); feedbackSlider->setBounds (248, 237, 30, 67); frequencyLabel7.reset (new juce::Label ("frequency label", TRANS("Feedback"))); addAndMakeVisible (frequencyLabel7.get()); frequencyLabel7->setTooltip (TRANS("Extent to which modulator output is fed back into itself")); frequencyLabel7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel7->setJustificationType (juce::Justification::centred); frequencyLabel7->setEditable (false, false, false); frequencyLabel7->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel7->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel7->setBounds (224, 304, 80, 24); velocityComboBox.reset (new juce::ComboBox ("velocity combo box")); addAndMakeVisible (velocityComboBox.get()); velocityComboBox->setEditableText (false); velocityComboBox->setJustificationType (juce::Justification::centredLeft); velocityComboBox->setTextWhenNothingSelected (juce::String()); velocityComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); velocityComboBox->addItem (TRANS("Off"), 1); velocityComboBox->addItem (TRANS("Light"), 2); velocityComboBox->addItem (TRANS("Heavy"), 3); velocityComboBox->addListener (this); velocityComboBox->setBounds (328, 352, 76, 24); velocityComboBox2.reset (new juce::ComboBox ("velocity combo box")); addAndMakeVisible (velocityComboBox2.get()); velocityComboBox2->setEditableText (false); velocityComboBox2->setJustificationType (juce::Justification::centredLeft); velocityComboBox2->setTextWhenNothingSelected (juce::String()); velocityComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); velocityComboBox2->addItem (TRANS("Off"), 1); velocityComboBox2->addItem (TRANS("Light"), 2); velocityComboBox2->addItem (TRANS("Heavy"), 3); velocityComboBox2->addListener (this); velocityComboBox2->setBounds (760, 352, 72, 24); attenuationLabel4.reset (new juce::Label ("attenuation label", TRANS("Velocity Sensitivity"))); addAndMakeVisible (attenuationLabel4.get()); attenuationLabel4->setTooltip (TRANS("Set or disable velocity senstivity")); attenuationLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); attenuationLabel4->setJustificationType (juce::Justification::centred); attenuationLabel4->setEditable (false, false, false); attenuationLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); attenuationLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); attenuationLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel4->setBounds (760, 376, 80, 48); alternatingsineImageButton.reset (new juce::ImageButton ("alternating sine image button")); addAndMakeVisible (alternatingsineImageButton.get()); alternatingsineImageButton->setButtonText (TRANS("Alternating Sine")); alternatingsineImageButton->setRadioGroupId (1); alternatingsineImageButton->addListener (this); alternatingsineImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); alternatingsineImageButton->setBounds (288, 113, 34, 30); camelsineImageButton.reset (new juce::ImageButton ("camel sine image button")); addAndMakeVisible (camelsineImageButton.get()); camelsineImageButton->setButtonText (TRANS("Camel Sine")); camelsineImageButton->setRadioGroupId (1); camelsineImageButton->addListener (this); camelsineImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); camelsineImageButton->setBounds (248, 113, 34, 30); squareImageButton.reset (new juce::ImageButton ("square image button")); addAndMakeVisible (squareImageButton.get()); squareImageButton->setButtonText (TRANS("Square")); squareImageButton->setRadioGroupId (1); squareImageButton->addListener (this); squareImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); squareImageButton->setBounds (328, 113, 34, 30); logsawImageButton.reset (new juce::ImageButton ("logsaw image button")); addAndMakeVisible (logsawImageButton.get()); logsawImageButton->setButtonText (TRANS("Logarithmic Sawtooth")); logsawImageButton->setRadioGroupId (1); logsawImageButton->addListener (this); logsawImageButton->setImages (false, true, true, juce::ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); logsawImageButton->setBounds (368, 113, 34, 30); alternatingsineImageButton2.reset (new juce::ImageButton ("alternating sine image button")); addAndMakeVisible (alternatingsineImageButton2.get()); alternatingsineImageButton2->setButtonText (TRANS("Alternating Sine")); alternatingsineImageButton2->setRadioGroupId (2); alternatingsineImageButton2->addListener (this); alternatingsineImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (alternating_sine_png, alternating_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); alternatingsineImageButton2->setBounds (714, 114, 34, 30); camelsineImageButton2.reset (new juce::ImageButton ("camel sine image button")); addAndMakeVisible (camelsineImageButton2.get()); camelsineImageButton2->setButtonText (TRANS("Camel Sine")); camelsineImageButton2->setRadioGroupId (2); camelsineImageButton2->addListener (this); camelsineImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (camel_sine_png, camel_sine_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); camelsineImageButton2->setBounds (674, 114, 34, 30); squareImageButton2.reset (new juce::ImageButton ("square image button")); addAndMakeVisible (squareImageButton2.get()); squareImageButton2->setButtonText (TRANS("Square")); squareImageButton2->setRadioGroupId (2); squareImageButton2->addListener (this); squareImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (square_png, square_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); squareImageButton2->setBounds (754, 114, 34, 30); logsawImageButton2.reset (new juce::ImageButton ("logsaw image button")); addAndMakeVisible (logsawImageButton2.get()); logsawImageButton2->setButtonText (TRANS("Logarithmic Sawtooth")); logsawImageButton2->setRadioGroupId (2); logsawImageButton2->addListener (this); logsawImageButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (logarithmic_saw_png, logarithmic_saw_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); logsawImageButton2->setBounds (794, 114, 34, 30); dbLabel4.reset (new juce::Label ("db label", TRANS("dB/8ve\n"))); addAndMakeVisible (dbLabel4.get()); dbLabel4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel4->setJustificationType (juce::Justification::centred); dbLabel4->setEditable (false, false, false); dbLabel4->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel4->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel4->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel4->setBounds (792, 688, 72, 16); keyscaleAttenuationComboBox2.reset (new juce::ComboBox ("keyscale combo box")); addAndMakeVisible (keyscaleAttenuationComboBox2.get()); keyscaleAttenuationComboBox2->setEditableText (false); keyscaleAttenuationComboBox2->setJustificationType (juce::Justification::centredLeft); keyscaleAttenuationComboBox2->setTextWhenNothingSelected (juce::String()); keyscaleAttenuationComboBox2->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); keyscaleAttenuationComboBox2->addItem (TRANS("-0.0"), 1); keyscaleAttenuationComboBox2->addItem (TRANS("-3.0"), 2); keyscaleAttenuationComboBox2->addItem (TRANS("-1.5"), 3); keyscaleAttenuationComboBox2->addItem (TRANS("-6.0"), 4); keyscaleAttenuationComboBox2->addListener (this); keyscaleAttenuationComboBox2->setBounds (664, 352, 76, 24); keyscaleAttenuationComboBox.reset (new juce::ComboBox ("keyscale combo box")); addAndMakeVisible (keyscaleAttenuationComboBox.get()); keyscaleAttenuationComboBox->setEditableText (false); keyscaleAttenuationComboBox->setJustificationType (juce::Justification::centredLeft); keyscaleAttenuationComboBox->setTextWhenNothingSelected (juce::String()); keyscaleAttenuationComboBox->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); keyscaleAttenuationComboBox->addItem (TRANS("-0.0"), 1); keyscaleAttenuationComboBox->addItem (TRANS("-3.0"), 2); keyscaleAttenuationComboBox->addItem (TRANS("-1.5"), 3); keyscaleAttenuationComboBox->addItem (TRANS("-6.0"), 4); keyscaleAttenuationComboBox->addListener (this); keyscaleAttenuationComboBox->setBounds (232, 352, 76, 24); groupComponent5.reset (new juce::GroupComponent ("new group", TRANS("Emulator (currently locked)"))); addAndMakeVisible (groupComponent5.get()); groupComponent5->setTextLabelPosition (juce::Justification::centredLeft); groupComponent5->setColour (juce::GroupComponent::outlineColourId, juce::Colour (0xff007f00)); groupComponent5->setColour (juce::GroupComponent::textColourId, juce::Colour (0xff007f00)); groupComponent5->setBounds (24, 712, 408, 64); emulatorSlider.reset (new juce::Slider ("emulator slider")); addAndMakeVisible (emulatorSlider.get()); emulatorSlider->setRange (0, 1, 1); emulatorSlider->setSliderStyle (juce::Slider::LinearHorizontal); emulatorSlider->setTextBoxStyle (juce::Slider::NoTextBox, true, 44, 20); emulatorSlider->setColour (juce::Slider::thumbColourId, juce::Colour (0xff00af00)); emulatorSlider->setColour (juce::Slider::trackColourId, juce::Colour (0x7f007f00)); emulatorSlider->setColour (juce::Slider::textBoxTextColourId, juce::Colour (0xff007f00)); emulatorSlider->setColour (juce::Slider::textBoxBackgroundColourId, juce::Colours::black); emulatorSlider->setColour (juce::Slider::textBoxHighlightColourId, juce::Colour (0xff00af00)); emulatorSlider->addListener (this); emulatorSlider->setBounds (208, 736, 40, 24); emulatorLabel.reset (new juce::Label ("emulator label", TRANS("DOSBox"))); addAndMakeVisible (emulatorLabel.get()); emulatorLabel->setTooltip (TRANS("Use the OPL emulator from the DOSBox project")); emulatorLabel->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); emulatorLabel->setJustificationType (juce::Justification::centredRight); emulatorLabel->setEditable (false, false, false); emulatorLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); emulatorLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); emulatorLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); emulatorLabel->setBounds (120, 736, 72, 24); emulatorLabel2.reset (new juce::Label ("emulator label", TRANS("ZDoom"))); addAndMakeVisible (emulatorLabel2.get()); emulatorLabel2->setTooltip (TRANS("Use the OPL emulator from the ZDoom project")); emulatorLabel2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); emulatorLabel2->setJustificationType (juce::Justification::centredLeft); emulatorLabel2->setEditable (false, false, false); emulatorLabel2->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); emulatorLabel2->setColour (juce::TextEditor::textColourId, juce::Colours::black); emulatorLabel2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); emulatorLabel2->setBounds (256, 736, 72, 24); recordButton.reset (new juce::ToggleButton ("record button")); addAndMakeVisible (recordButton.get()); recordButton->setTooltip (TRANS("Start recording all register writes to a DRO file - an OPL recording file format defined by DOSBox")); recordButton->setButtonText (TRANS("Record to DRO (not working yet)")); recordButton->addListener (this); recordButton->setColour (juce::ToggleButton::textColourId, juce::Colour (0xff007f00)); recordButton->setBounds (32, 680, 224, 24); exportButton.reset (new juce::TextButton ("export button")); addAndMakeVisible (exportButton.get()); exportButton->setButtonText (TRANS("Export")); exportButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); exportButton->addListener (this); exportButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); exportButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); exportButton->setBounds (728, 512, 48, 24); loadButton.reset (new juce::TextButton ("load button")); addAndMakeVisible (loadButton.get()); loadButton->setButtonText (TRANS("Load")); loadButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); loadButton->addListener (this); loadButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); loadButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); loadButton->setBounds (728, 472, 96, 24); versionLabel.reset (new juce::Label ("version label", juce::String())); addAndMakeVisible (versionLabel.get()); versionLabel->setFont (juce::Font (12.00f, juce::Font::plain).withTypefaceStyle ("Regular")); versionLabel->setJustificationType (juce::Justification::centredRight); versionLabel->setEditable (false, false, false); versionLabel->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); versionLabel->setColour (juce::TextEditor::textColourId, juce::Colours::black); versionLabel->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); versionLabel->setBounds (648, 560, 198, 16); ToggleButtonOffExample.reset (new juce::ImageButton ("Toggle Button Off Example")); addAndMakeVisible (ToggleButtonOffExample.get()); ToggleButtonOffExample->setButtonText (TRANS("new button")); ToggleButtonOffExample->addListener (this); ToggleButtonOffExample->setImages (false, true, true, juce::ImageCache::getFromMemory (toggle_off_sq_png, toggle_off_sq_pngSize), 1.000f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); ToggleButtonOffExample->setBounds (1032, 584, 12, 12); ToggleButtonOnExample.reset (new juce::ImageButton ("Toggle Button On Example")); addAndMakeVisible (ToggleButtonOnExample.get()); ToggleButtonOnExample->setButtonText (TRANS("new button")); ToggleButtonOnExample->addListener (this); ToggleButtonOnExample->setImages (false, true, true, juce::ImageCache::getFromMemory (toggle_on_sq_png, toggle_on_sq_pngSize), 1.000f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); ToggleButtonOnExample->setBounds (1064, 584, 12, 12); label.reset (new juce::Label ("new label", TRANS("Toggle buttons"))); addAndMakeVisible (label.get()); label->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label->setJustificationType (juce::Justification::centred); label->setEditable (false, false, false); label->setColour (juce::Label::textColourId, juce::Colours::green); label->setColour (juce::TextEditor::textColourId, juce::Colours::black); label->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label->setBounds (1000, 608, 104, 24); label2.reset (new juce::Label ("new label", TRANS("Line borders"))); addAndMakeVisible (label2.get()); label2->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label2->setJustificationType (juce::Justification::centred); label2->setEditable (false, false, false); label2->setColour (juce::Label::textColourId, juce::Colours::green); label2->setColour (juce::TextEditor::textColourId, juce::Colours::black); label2->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label2->setBounds (872, 608, 104, 24); LineBorderButton1C.reset (new juce::ImageButton ("Line Border 1C")); addAndMakeVisible (LineBorderButton1C.get()); LineBorderButton1C->setButtonText (TRANS("new button")); LineBorderButton1C->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1C->setBounds (20, 336, 400, 6); LineBorderButton1A.reset (new juce::ImageButton ("Line Border 1A")); addAndMakeVisible (LineBorderButton1A.get()); LineBorderButton1A->setButtonText (TRANS("new button")); LineBorderButton1A->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1A->setBounds (20, 152, 400, 6); LineBorderButton1B.reset (new juce::ImageButton ("Line Border 1B")); addAndMakeVisible (LineBorderButton1B.get()); LineBorderButton1B->setButtonText (TRANS("new button")); LineBorderButton1B->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1B->setBounds (296, 156, 6, 182); label3.reset (new juce::Label ("new label", TRANS("Temporarily removed labels to avoid making wider boxes."))); addAndMakeVisible (label3.get()); label3->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label3->setJustificationType (juce::Justification::centred); label3->setEditable (false, false, false); label3->setColour (juce::Label::textColourId, juce::Colours::green); label3->setColour (juce::TextEditor::textColourId, juce::Colours::black); label3->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label3->setBounds (776, 736, 104, 56); LineBorderButton1C2.reset (new juce::ImageButton ("Line Border 1C")); addAndMakeVisible (LineBorderButton1C2.get()); LineBorderButton1C2->setButtonText (TRANS("new button")); LineBorderButton1C2->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1C2->setBounds (444, 336, 400, 6); LineBorderButton1A2.reset (new juce::ImageButton ("Line Border 1A")); addAndMakeVisible (LineBorderButton1A2.get()); LineBorderButton1A2->setButtonText (TRANS("new button")); LineBorderButton1A2->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1A2->setBounds (444, 152, 400, 6); LineBorderButton1B2.reset (new juce::ImageButton ("Line Border 1B")); addAndMakeVisible (LineBorderButton1B2.get()); LineBorderButton1B2->setButtonText (TRANS("new button")); LineBorderButton1B2->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1B2->setBounds (720, 156, 6, 182); LineBorderButton1C3.reset (new juce::ImageButton ("Line Border 1C")); addAndMakeVisible (LineBorderButton1C3.get()); LineBorderButton1C3->setButtonText (TRANS("new button")); LineBorderButton1C3->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_horiz_png, line_border_horiz_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1C3->setBounds (892, 584, 20, 6); LineBorderButton1B3.reset (new juce::ImageButton ("Line Border 1B")); addAndMakeVisible (LineBorderButton1B3.get()); LineBorderButton1B3->setButtonText (TRANS("new button")); LineBorderButton1B3->setImages (false, true, false, juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (line_border_vert_png, line_border_vert_pngSize), 0.600f, juce::Colour (0x00000000)); LineBorderButton1B3->setBounds (936, 576, 6, 20); algoSwitchButtonOffEx1.reset (new juce::ImageButton ("Algorithm Switch Off AM")); addAndMakeVisible (algoSwitchButtonOffEx1.get()); algoSwitchButtonOffEx1->setButtonText (TRANS("new button")); algoSwitchButtonOffEx1->addListener (this); algoSwitchButtonOffEx1->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx1->setBounds (952, 701, 64, 24); algoSwitchButtonOffEx2.reset (new juce::ImageButton ("Algorithm Switch Off FM")); addAndMakeVisible (algoSwitchButtonOffEx2.get()); algoSwitchButtonOffEx2->setButtonText (TRANS("new button")); algoSwitchButtonOffEx2->addListener (this); algoSwitchButtonOffEx2->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx2->setBounds (952, 727, 64, 24); algoSwitchButtonOnEx1.reset (new juce::ImageButton ("Algorithm Switch On AM")); addAndMakeVisible (algoSwitchButtonOnEx1.get()); algoSwitchButtonOnEx1->setButtonText (TRANS("new button")); algoSwitchButtonOnEx1->addListener (this); algoSwitchButtonOnEx1->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOnEx1->setBounds (1040, 701, 64, 24); algoSwitchButtonOnEx2.reset (new juce::ImageButton ("Algorithm Switch On FM")); addAndMakeVisible (algoSwitchButtonOnEx2.get()); algoSwitchButtonOnEx2->setButtonText (TRANS("new button")); algoSwitchButtonOnEx2->addListener (this); algoSwitchButtonOnEx2->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOnEx2->setBounds (1040, 727, 64, 24); label4.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label4.get()); label4->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label4->setJustificationType (juce::Justification::centredLeft); label4->setEditable (false, false, false); label4->setColour (juce::Label::textColourId, juce::Colours::green); label4->setColour (juce::TextEditor::textColourId, juce::Colours::black); label4->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label4->setBounds (970, 701, 32, 24); label5.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label5.get()); label5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label5->setJustificationType (juce::Justification::centredLeft); label5->setEditable (false, false, false); label5->setColour (juce::Label::textColourId, juce::Colours::green); label5->setColour (juce::TextEditor::textColourId, juce::Colours::black); label5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label5->setBounds (971, 727, 32, 24); label6.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label6.get()); label6->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label6->setJustificationType (juce::Justification::centredLeft); label6->setEditable (false, false, false); label6->setColour (juce::Label::textColourId, juce::Colours::black); label6->setColour (juce::TextEditor::textColourId, juce::Colours::black); label6->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label6->setBounds (1057, 701, 32, 24); label7.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label7.get()); label7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label7->setJustificationType (juce::Justification::centredLeft); label7->setEditable (false, false, false); label7->setColour (juce::Label::textColourId, juce::Colours::black); label7->setColour (juce::TextEditor::textColourId, juce::Colours::black); label7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label7->setBounds (1058, 727, 32, 24); label8.reset (new juce::Label ("new label", TRANS("Example AM/FM switches"))); addAndMakeVisible (label8.get()); label8->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label8->setJustificationType (juce::Justification::centred); label8->setEditable (false, false, false); label8->setColour (juce::Label::textColourId, juce::Colours::green); label8->setColour (juce::TextEditor::textColourId, juce::Colours::black); label8->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label8->setBounds (944, 816, 320, 24); algoSwitchButtonOn2Ex1.reset (new juce::ImageButton ("Algorithm Switch On2 AM")); addAndMakeVisible (algoSwitchButtonOn2Ex1.get()); algoSwitchButtonOn2Ex1->setButtonText (TRANS("new button")); algoSwitchButtonOn2Ex1->addListener (this); algoSwitchButtonOn2Ex1->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn2Ex1->setBounds (1128, 700, 64, 24); algoSwitchButtonOn2Ex2.reset (new juce::ImageButton ("Algorithm Switch On2 FM")); addAndMakeVisible (algoSwitchButtonOn2Ex2.get()); algoSwitchButtonOn2Ex2->setButtonText (TRANS("new button")); algoSwitchButtonOn2Ex2->addListener (this); algoSwitchButtonOn2Ex2->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on2_png, algo_switch_on2_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn2Ex2->setBounds (1128, 727, 64, 24); label9.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label9.get()); label9->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label9->setJustificationType (juce::Justification::centredLeft); label9->setEditable (false, false, false); label9->setColour (juce::Label::textColourId, juce::Colours::black); label9->setColour (juce::TextEditor::textColourId, juce::Colours::black); label9->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label9->setBounds (1145, 700, 32, 24); label10.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label10.get()); label10->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label10->setJustificationType (juce::Justification::centredLeft); label10->setEditable (false, false, false); label10->setColour (juce::Label::textColourId, juce::Colours::black); label10->setColour (juce::TextEditor::textColourId, juce::Colours::black); label10->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label10->setBounds (1146, 727, 32, 24); algoSwitchButtonOn3Ex1.reset (new juce::ImageButton ("Algorithm Switch On3 AM")); addAndMakeVisible (algoSwitchButtonOn3Ex1.get()); algoSwitchButtonOn3Ex1->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex1->addListener (this); algoSwitchButtonOn3Ex1->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex1->setBounds (1216, 700, 64, 24); algoSwitchButtonOn3Ex2.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); addAndMakeVisible (algoSwitchButtonOn3Ex2.get()); algoSwitchButtonOn3Ex2->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex2->addListener (this); algoSwitchButtonOn3Ex2->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex2->setBounds (1216, 727, 64, 24); label11.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label11.get()); label11->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label11->setJustificationType (juce::Justification::centredLeft); label11->setEditable (false, false, false); label11->setColour (juce::Label::textColourId, juce::Colours::black); label11->setColour (juce::TextEditor::textColourId, juce::Colours::black); label11->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label11->setBounds (1233, 700, 31, 24); label12.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label12.get()); label12->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label12->setJustificationType (juce::Justification::centredLeft); label12->setEditable (false, false, false); label12->setColour (juce::Label::textColourId, juce::Colours::black); label12->setColour (juce::TextEditor::textColourId, juce::Colours::black); label12->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label12->setBounds (1234, 727, 32, 24); TwoOpAMButton.reset (new juce::ImageButton ("Two OP AM Button")); addAndMakeVisible (TwoOpAMButton.get()); TwoOpAMButton->setButtonText (TRANS("new button")); TwoOpAMButton->addListener (this); TwoOpAMButton->setImages (false, true, false, juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpAMButton->setBounds (1173, 484, 60, 56); TwoOpFMButton.reset (new juce::ImageButton ("Two OP FM Button")); addAndMakeVisible (TwoOpFMButton.get()); TwoOpFMButton->setButtonText (TRANS("new button")); TwoOpFMButton->addListener (this); TwoOpFMButton->setImages (false, true, true, juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpFMButton->setBounds (1156, 568, 80, 26); label13.reset (new juce::Label ("new label", TRANS("M"))); addAndMakeVisible (label13.get()); label13->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label13->setJustificationType (juce::Justification::centred); label13->setEditable (false, false, false); label13->setColour (juce::TextEditor::textColourId, juce::Colours::black); label13->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label13->setBounds (1179, 489, 24, 24); label14.reset (new juce::Label ("new label", TRANS("C"))); addAndMakeVisible (label14.get()); label14->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label14->setJustificationType (juce::Justification::centred); label14->setEditable (false, false, false); label14->setColour (juce::TextEditor::textColourId, juce::Colours::black); label14->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label14->setBounds (1179, 518, 24, 24); label15.reset (new juce::Label ("new label", TRANS("M"))); addAndMakeVisible (label15.get()); label15->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label15->setJustificationType (juce::Justification::centred); label15->setEditable (false, false, false); label15->setColour (juce::TextEditor::textColourId, juce::Colours::black); label15->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label15->setBounds (1166, 572, 24, 24); label16.reset (new juce::Label ("new label", TRANS("C"))); addAndMakeVisible (label16.get()); label16->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label16->setJustificationType (juce::Justification::centred); label16->setEditable (false, false, false); label16->setColour (juce::TextEditor::textColourId, juce::Colours::black); label16->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label16->setBounds (1195, 572, 24, 24); label17.reset (new juce::Label ("new label", TRANS("Example Algorithms"))); addAndMakeVisible (label17.get()); label17->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label17->setJustificationType (juce::Justification::centred); label17->setEditable (false, false, false); label17->setColour (juce::Label::textColourId, juce::Colours::green); label17->setColour (juce::TextEditor::textColourId, juce::Colours::black); label17->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label17->setBounds (1128, 608, 136, 24); groupComponent6.reset (new juce::GroupComponent ("new group", juce::String())); addAndMakeVisible (groupComponent6.get()); groupComponent6->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); groupComponent6->setBounds (933, 56, 168, 95); algoSwitchButtonOnEx3.reset (new juce::ImageButton ("Algorithm Switch On AM")); addAndMakeVisible (algoSwitchButtonOnEx3.get()); algoSwitchButtonOnEx3->setButtonText (TRANS("new button")); algoSwitchButtonOnEx3->addListener (this); algoSwitchButtonOnEx3->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on_png, algo_switch_on_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOnEx3->setBounds (949, 82, 64, 24); label18.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label18.get()); label18->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label18->setJustificationType (juce::Justification::centredLeft); label18->setEditable (false, false, false); label18->setColour (juce::Label::textColourId, juce::Colours::black); label18->setColour (juce::TextEditor::textColourId, juce::Colours::black); label18->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label18->setBounds (966, 82, 32, 24); algoSwitchButtonOffEx3.reset (new juce::ImageButton ("Algorithm Switch Off FM")); addAndMakeVisible (algoSwitchButtonOffEx3.get()); algoSwitchButtonOffEx3->setButtonText (TRANS("new button")); algoSwitchButtonOffEx3->addListener (this); algoSwitchButtonOffEx3->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx3->setBounds (949, 108, 64, 24); label19.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label19.get()); label19->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label19->setJustificationType (juce::Justification::centredLeft); label19->setEditable (false, false, false); label19->setColour (juce::Label::textColourId, juce::Colours::green); label19->setColour (juce::TextEditor::textColourId, juce::Colours::black); label19->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label19->setBounds (968, 108, 32, 24); TwoOpAMButton2.reset (new juce::ImageButton ("Two OP AM Button")); addAndMakeVisible (TwoOpAMButton2.get()); TwoOpAMButton2->setButtonText (TRANS("new button")); TwoOpAMButton2->addListener (this); TwoOpAMButton2->setImages (false, true, false, juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpAMButton2->setBounds (1029, 77, 60, 56); label20.reset (new juce::Label ("new label", TRANS("M"))); addAndMakeVisible (label20.get()); label20->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label20->setJustificationType (juce::Justification::centred); label20->setEditable (false, false, false); label20->setColour (juce::TextEditor::textColourId, juce::Colours::black); label20->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label20->setBounds (1035, 82, 24, 24); label21.reset (new juce::Label ("new label", TRANS("C"))); addAndMakeVisible (label21.get()); label21->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label21->setJustificationType (juce::Justification::centred); label21->setEditable (false, false, false); label21->setColour (juce::TextEditor::textColourId, juce::Colours::black); label21->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label21->setBounds (1035, 111, 24, 24); label22.reset (new juce::Label ("new label", TRANS("Example Algo Sections w/ Diagram"))); addAndMakeVisible (label22.get()); label22->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label22->setJustificationType (juce::Justification::centred); label22->setEditable (false, false, false); label22->setColour (juce::Label::textColourId, juce::Colours::green); label22->setColour (juce::TextEditor::textColourId, juce::Colours::black); label22->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label22->setBounds (952, 160, 328, 40); algoSwitchButtonOffEx4.reset (new juce::ImageButton ("Algorithm Switch Off AM")); addAndMakeVisible (algoSwitchButtonOffEx4.get()); algoSwitchButtonOffEx4->setButtonText (TRANS("new button")); algoSwitchButtonOffEx4->addListener (this); algoSwitchButtonOffEx4->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx4->setBounds (1125, 82, 64, 24); label23.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label23.get()); label23->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label23->setJustificationType (juce::Justification::centredLeft); label23->setEditable (false, false, false); label23->setColour (juce::Label::textColourId, juce::Colours::green); label23->setColour (juce::TextEditor::textColourId, juce::Colours::black); label23->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label23->setBounds (1143, 82, 32, 24); algoSwitchButtonOn3Ex3.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); addAndMakeVisible (algoSwitchButtonOn3Ex3.get()); algoSwitchButtonOn3Ex3->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex3->addListener (this); algoSwitchButtonOn3Ex3->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex3->setBounds (1125, 109, 64, 24); label24.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label24.get()); label24->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label24->setJustificationType (juce::Justification::centredLeft); label24->setEditable (false, false, false); label24->setColour (juce::Label::textColourId, juce::Colours::black); label24->setColour (juce::TextEditor::textColourId, juce::Colours::black); label24->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label24->setBounds (1143, 109, 32, 24); TwoOpFMButton2.reset (new juce::ImageButton ("Two OP FM Button")); addAndMakeVisible (TwoOpFMButton2.get()); TwoOpFMButton2->setButtonText (TRANS("new button")); TwoOpFMButton2->addListener (this); TwoOpFMButton2->setImages (false, true, true, juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 1.000f, juce::Colour (0x00000000)); TwoOpFMButton2->setBounds (1196, 94, 80, 26); label25.reset (new juce::Label ("new label", TRANS("M"))); addAndMakeVisible (label25.get()); label25->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label25->setJustificationType (juce::Justification::centred); label25->setEditable (false, false, false); label25->setColour (juce::TextEditor::textColourId, juce::Colours::black); label25->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label25->setBounds (1206, 98, 24, 24); label26.reset (new juce::Label ("new label", TRANS("C"))); addAndMakeVisible (label26.get()); label26->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label26->setJustificationType (juce::Justification::centred); label26->setEditable (false, false, false); label26->setColour (juce::TextEditor::textColourId, juce::Colours::black); label26->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label26->setBounds (1235, 98, 24, 24); groupComponent7.reset (new juce::GroupComponent ("new group", juce::String())); addAndMakeVisible (groupComponent7.get()); groupComponent7->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); groupComponent7->setBounds (1112, 56, 168, 95); algoSwitchButtonOffEx5.reset (new juce::ImageButton ("Algorithm Switch Off AM")); addAndMakeVisible (algoSwitchButtonOffEx5.get()); algoSwitchButtonOffEx5->setButtonText (TRANS("new button")); algoSwitchButtonOffEx5->addListener (this); algoSwitchButtonOffEx5->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_off_png, algo_switch_off_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOffEx5->setBounds (1037, 250, 64, 24); label27.reset (new juce::Label ("new label", TRANS("AM"))); addAndMakeVisible (label27.get()); label27->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label27->setJustificationType (juce::Justification::centredLeft); label27->setEditable (false, false, false); label27->setColour (juce::Label::textColourId, juce::Colours::green); label27->setColour (juce::TextEditor::textColourId, juce::Colours::black); label27->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label27->setBounds (1055, 250, 32, 24); algoSwitchButtonOn3Ex4.reset (new juce::ImageButton ("Algorithm Switch On3 FM")); addAndMakeVisible (algoSwitchButtonOn3Ex4.get()); algoSwitchButtonOn3Ex4->setButtonText (TRANS("new button")); algoSwitchButtonOn3Ex4->addListener (this); algoSwitchButtonOn3Ex4->setImages (false, true, true, juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000), juce::ImageCache::getFromMemory (algo_switch_on3_png, algo_switch_on3_pngSize), 1.000f, juce::Colour (0x00000000)); algoSwitchButtonOn3Ex4->setBounds (1103, 250, 64, 24); label28.reset (new juce::Label ("new label", TRANS("FM"))); addAndMakeVisible (label28.get()); label28->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label28->setJustificationType (juce::Justification::centredLeft); label28->setEditable (false, false, false); label28->setColour (juce::Label::textColourId, juce::Colours::black); label28->setColour (juce::TextEditor::textColourId, juce::Colours::black); label28->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label28->setBounds (1121, 250, 32, 24); groupComponent8.reset (new juce::GroupComponent ("new group", juce::String())); addAndMakeVisible (groupComponent8.get()); groupComponent8->setColour (juce::GroupComponent::outlineColourId, juce::Colours::green); groupComponent8->setBounds (1008, 208, 168, 95); frequencyLabel9.reset (new juce::Label ("frequency label", TRANS("Algorithm"))); addAndMakeVisible (frequencyLabel9.get()); frequencyLabel9->setTooltip (TRANS("In additive mode, carrier and modulator output are simply summed rather than modulated")); frequencyLabel9->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel9->setJustificationType (juce::Justification::centredLeft); frequencyLabel9->setEditable (false, false, false); frequencyLabel9->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel9->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel9->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel9->setBounds (1067, 216, 72, 24); label29.reset (new juce::Label ("new label", TRANS("Example Algo Section w/o Diagram"))); addAndMakeVisible (label29.get()); label29->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label29->setJustificationType (juce::Justification::centred); label29->setEditable (false, false, false); label29->setColour (juce::Label::textColourId, juce::Colours::green); label29->setColour (juce::TextEditor::textColourId, juce::Colours::black); label29->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label29->setBounds (944, 304, 328, 40); label30.reset (new juce::Label ("new label", TRANS("Off On (Bright) On (Dark) On (Solid)"))); addAndMakeVisible (label30.get()); label30->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); label30->setJustificationType (juce::Justification::centred); label30->setEditable (false, false, false); label30->setColour (juce::Label::textColourId, juce::Colours::green); label30->setColour (juce::TextEditor::textColourId, juce::Colours::black); label30->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); label30->setBounds (961, 768, 319, 24); frequencyLabel10.reset (new juce::Label ("frequency label", TRANS("Keyscale Attenuation"))); addAndMakeVisible (frequencyLabel10.get()); frequencyLabel10->setTooltip (TRANS("Attenuate amplitude with note frequency in dB per octave")); frequencyLabel10->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); frequencyLabel10->setJustificationType (juce::Justification::centred); frequencyLabel10->setEditable (false, false, false); frequencyLabel10->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); frequencyLabel10->setColour (juce::TextEditor::textColourId, juce::Colours::black); frequencyLabel10->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); frequencyLabel10->setBounds (224, 376, 88, 48); attenuationLabel5.reset (new juce::Label ("attenuation label", TRANS("Velocity Sensitivity"))); addAndMakeVisible (attenuationLabel5.get()); attenuationLabel5->setTooltip (TRANS("Set or disable velocity senstivity")); attenuationLabel5->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); attenuationLabel5->setJustificationType (juce::Justification::centred); attenuationLabel5->setEditable (false, false, false); attenuationLabel5->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); attenuationLabel5->setColour (juce::TextEditor::textColourId, juce::Colours::black); attenuationLabel5->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); attenuationLabel5->setBounds (328, 376, 80, 48); fmButton.reset (new juce::ImageButton ("fm button")); addAndMakeVisible (fmButton.get()); fmButton->setTooltip (TRANS("FM: carrier frequency is modulated by the modulator")); fmButton->setButtonText (TRANS("FM")); fmButton->setRadioGroupId (3); fmButton->addListener (this); fmButton->setImages (false, true, true, juce::ImageCache::getFromMemory (twoopFm_png, twoopFm_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); fmButton->setBounds (298, 472, 72, 56); additiveButton.reset (new juce::ImageButton ("Additive mode button")); addAndMakeVisible (additiveButton.get()); additiveButton->setTooltip (TRANS("Additive: output the sum of the modulator and carrier")); additiveButton->setButtonText (TRANS("Additive Mode")); additiveButton->setRadioGroupId (3); additiveButton->addListener (this); additiveButton->setImages (false, true, true, juce::ImageCache::getFromMemory (twoopAm_png, twoopAm_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); additiveButton->setBounds (400, 472, 56, 56); bassDrumButton.reset (new juce::ImageButton ("bass drum button")); addAndMakeVisible (bassDrumButton.get()); bassDrumButton->setTooltip (TRANS("Bass drum")); bassDrumButton->setButtonText (TRANS("bass drum")); bassDrumButton->setRadioGroupId (4); bassDrumButton->addListener (this); bassDrumButton->setImages (false, true, true, juce::ImageCache::getFromMemory (bassdrum_png, bassdrum_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); bassDrumButton->setBounds (576, 464, 30, 30); snareDrumButton.reset (new juce::ImageButton ("snare drum button")); addAndMakeVisible (snareDrumButton.get()); snareDrumButton->setTooltip (TRANS("Snare")); snareDrumButton->setButtonText (TRANS("snare")); snareDrumButton->setRadioGroupId (4); snareDrumButton->addListener (this); snareDrumButton->setImages (false, true, true, juce::ImageCache::getFromMemory (snare_png, snare_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); snareDrumButton->setBounds (632, 464, 30, 30); disablePercussionButton.reset (new juce::ImageButton ("percussion disabled button")); addAndMakeVisible (disablePercussionButton.get()); disablePercussionButton->setTooltip (TRANS("Disable percussion")); disablePercussionButton->setButtonText (TRANS("disabled")); disablePercussionButton->setRadioGroupId (4); disablePercussionButton->addListener (this); disablePercussionButton->setImages (false, true, true, juce::ImageCache::getFromMemory (disabled_png, disabled_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); disablePercussionButton->setBounds (520, 464, 30, 30); tomTomButton.reset (new juce::ImageButton ("tom tom button")); addAndMakeVisible (tomTomButton.get()); tomTomButton->setTooltip (TRANS("Tom-tom")); tomTomButton->setButtonText (TRANS("tom tom")); tomTomButton->setRadioGroupId (4); tomTomButton->addListener (this); tomTomButton->setImages (false, true, true, juce::ImageCache::getFromMemory (tom_png, tom_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); tomTomButton->setBounds (520, 512, 30, 30); cymbalButton.reset (new juce::ImageButton ("cymbalButton")); addAndMakeVisible (cymbalButton.get()); cymbalButton->setTooltip (TRANS("Cymbal")); cymbalButton->setButtonText (TRANS("snare")); cymbalButton->setRadioGroupId (4); cymbalButton->addListener (this); cymbalButton->setImages (false, true, true, juce::ImageCache::getFromMemory (cymbal_png, cymbal_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); cymbalButton->setBounds (576, 512, 30, 30); hiHatButton.reset (new juce::ImageButton ("hi hat button")); addAndMakeVisible (hiHatButton.get()); hiHatButton->setTooltip (TRANS("Hi-hat")); hiHatButton->setButtonText (TRANS("hi-hat")); hiHatButton->setRadioGroupId (4); hiHatButton->addListener (this); hiHatButton->setImages (false, true, true, juce::ImageCache::getFromMemory (hihat_png, hihat_pngSize), 0.500f, juce::Colour (0x00000000), juce::Image(), 0.500f, juce::Colour (0x00000000), juce::Image(), 1.000f, juce::Colour (0x00000000)); hiHatButton->setBounds (632, 512, 30, 30); dbLabel7.reset (new juce::Label ("db label", TRANS("FM"))); addAndMakeVisible (dbLabel7.get()); dbLabel7->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel7->setJustificationType (juce::Justification::centredLeft); dbLabel7->setEditable (false, false, false); dbLabel7->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel7->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel7->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel7->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel7->setBounds (320, 520, 32, 40); dbLabel8.reset (new juce::Label ("db label", TRANS("Additive"))); addAndMakeVisible (dbLabel8.get()); dbLabel8->setFont (juce::Font (15.00f, juce::Font::plain).withTypefaceStyle ("Regular")); dbLabel8->setJustificationType (juce::Justification::centred); dbLabel8->setEditable (false, false, false); dbLabel8->setColour (juce::Label::textColourId, juce::Colour (0xff007f00)); dbLabel8->setColour (juce::Label::outlineColourId, juce::Colour (0x00000000)); dbLabel8->setColour (juce::TextEditor::textColourId, juce::Colours::black); dbLabel8->setColour (juce::TextEditor::backgroundColourId, juce::Colour (0x00000000)); dbLabel8->setBounds (392, 520, 72, 40); previousButton.reset (new juce::TextButton ("previous button")); addAndMakeVisible (previousButton.get()); previousButton->setButtonText (TRANS("-")); previousButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); previousButton->addListener (this); previousButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); previousButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); previousButton->setBounds (776, 512, 24, 24); nextButton.reset (new juce::TextButton ("next button")); addAndMakeVisible (nextButton.get()); nextButton->setButtonText (TRANS("+")); nextButton->setConnectedEdges (juce::Button::ConnectedOnLeft | juce::Button::ConnectedOnRight); nextButton->addListener (this); nextButton->setColour (juce::TextButton::buttonColourId, juce::Colour (0xff007f00)); nextButton->setColour (juce::TextButton::buttonOnColourId, juce::Colours::lime); nextButton->setBounds (800, 512, 24, 24); drawable1 = juce::Drawable::createFromImageData (gui_svg, gui_svgSize); //[UserPreSize] oplLookAndFeel.reset(new OPLLookAndFeel()); LookAndFeel::setDefaultLookAndFeel(oplLookAndFeel.get()); frequencyComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); frequencyComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); frequencyComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); frequencyComboBox->setColour (ComboBox::buttonColourId, Colours::black); frequencyComboBox->setColour (ComboBox::backgroundColourId, Colours::black); frequencyComboBox->addItem ("x1/2", 16); // can't use 0 :( frequencyComboBox->addItem ("x1", 1); frequencyComboBox->addItem ("x2", 2); frequencyComboBox->addItem ("x3", 3); frequencyComboBox->addItem ("x4", 4); frequencyComboBox->addItem ("x5", 5); frequencyComboBox->addItem ("x6", 6); frequencyComboBox->addItem ("x7", 7); frequencyComboBox->addItem ("x8", 8); frequencyComboBox->addItem ("x9", 9); frequencyComboBox->addItem ("x10", 10); frequencyComboBox->addItem ("x12", 12); frequencyComboBox->addItem ("x15", 15); frequencyComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); frequencyComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); frequencyComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); frequencyComboBox2->setColour (ComboBox::buttonColourId, Colours::black); frequencyComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); frequencyComboBox2->addItem ("x1/2", 16); // can't use 0 :( frequencyComboBox2->addItem ("x1", 1); frequencyComboBox2->addItem ("x2", 2); frequencyComboBox2->addItem ("x3", 3); frequencyComboBox2->addItem ("x4", 4); frequencyComboBox2->addItem ("x5", 5); frequencyComboBox2->addItem ("x6", 6); frequencyComboBox2->addItem ("x7", 7); frequencyComboBox2->addItem ("x8", 8); frequencyComboBox2->addItem ("x9", 9); frequencyComboBox2->addItem ("x10", 10); frequencyComboBox2->addItem ("x12", 12); frequencyComboBox2->addItem ("x15", 15); velocityComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); velocityComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); velocityComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); velocityComboBox->setColour (ComboBox::buttonColourId, Colours::black); velocityComboBox->setColour (ComboBox::backgroundColourId, Colours::black); velocityComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); velocityComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); velocityComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); velocityComboBox2->setColour (ComboBox::buttonColourId, Colours::black); velocityComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); keyscaleAttenuationComboBox->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); keyscaleAttenuationComboBox->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); keyscaleAttenuationComboBox->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); keyscaleAttenuationComboBox->setColour (ComboBox::buttonColourId, Colours::black); keyscaleAttenuationComboBox->setColour (ComboBox::backgroundColourId, Colours::black); keyscaleAttenuationComboBox2->setColour (ComboBox::textColourId, Colour (COLOUR_MID)); keyscaleAttenuationComboBox2->setColour (ComboBox::outlineColourId, Colour (COLOUR_MID)); keyscaleAttenuationComboBox2->setColour (ComboBox::arrowColourId, Colour (COLOUR_MID)); keyscaleAttenuationComboBox2->setColour (ComboBox::buttonColourId, Colours::black); keyscaleAttenuationComboBox2->setColour (ComboBox::backgroundColourId, Colours::black); sineImageButton->setClickingTogglesState(true); sineImageButton->setRepaintsOnMouseActivity(false); abssineImageButton->setClickingTogglesState(true); abssineImageButton->setRepaintsOnMouseActivity(false); halfsineImageButton->setClickingTogglesState(true); halfsineImageButton->setRepaintsOnMouseActivity(false); quartersineImageButton->setClickingTogglesState(true); quartersineImageButton->setRepaintsOnMouseActivity(false); alternatingsineImageButton->setClickingTogglesState(true); alternatingsineImageButton->setRepaintsOnMouseActivity(false); camelsineImageButton->setClickingTogglesState(true); camelsineImageButton->setRepaintsOnMouseActivity(false); squareImageButton->setClickingTogglesState(true); squareImageButton->setRepaintsOnMouseActivity(false); logsawImageButton->setClickingTogglesState(true); logsawImageButton->setRepaintsOnMouseActivity(false); sineImageButton2->setClickingTogglesState(true); sineImageButton2->setRepaintsOnMouseActivity(false); abssineImageButton2->setClickingTogglesState(true); abssineImageButton2->setRepaintsOnMouseActivity(false); halfsineImageButton2->setClickingTogglesState(true); halfsineImageButton2->setRepaintsOnMouseActivity(false); quartersineImageButton2->setClickingTogglesState(true); quartersineImageButton2->setRepaintsOnMouseActivity(false); alternatingsineImageButton2->setClickingTogglesState(true); alternatingsineImageButton2->setRepaintsOnMouseActivity(false); camelsineImageButton2->setClickingTogglesState(true); camelsineImageButton2->setRepaintsOnMouseActivity(false); squareImageButton2->setClickingTogglesState(true); squareImageButton2->setRepaintsOnMouseActivity(false); logsawImageButton2->setClickingTogglesState(true); logsawImageButton2->setRepaintsOnMouseActivity(false); fmButton->setClickingTogglesState(true); fmButton->setRepaintsOnMouseActivity(false); additiveButton->setClickingTogglesState(true); additiveButton->setRepaintsOnMouseActivity(false); disablePercussionButton->setClickingTogglesState(true); disablePercussionButton->setRepaintsOnMouseActivity(false); bassDrumButton->setClickingTogglesState(true); bassDrumButton->setRepaintsOnMouseActivity(false); snareDrumButton->setClickingTogglesState(true); snareDrumButton->setRepaintsOnMouseActivity(false); tomTomButton->setClickingTogglesState(true); tomTomButton->setRepaintsOnMouseActivity(false); cymbalButton->setClickingTogglesState(true); cymbalButton->setRepaintsOnMouseActivity(false); hiHatButton->setClickingTogglesState(true); hiHatButton->setRepaintsOnMouseActivity(false); recordButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); tremoloButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); vibratoButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); keyscaleEnvButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); sustainButton->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); tremoloButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); vibratoButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); keyscaleEnvButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); sustainButton2->setColour(TextButton::buttonColourId, Colour(COLOUR_MID)); Font fw(Font::getDefaultMonospacedFontName(), 14, Font::bold); channelButtonLookAndFeel.reset(new ChannelButtonLookAndFeel()); String context = String("Disable channel "); for (unsigned int i = 0; i < channels.size(); ++i) { TextButton *channel = new TextButton(TRANS("-"), context + String(i + 1)); channel->setLookAndFeel(channelButtonLookAndFeel.get()); channel->setColour(TextButton::ColourIds::buttonColourId, Colours::black); channel->setColour(TextButton::ColourIds::buttonOnColourId, Colours::black); channel->setColour(TextButton::ColourIds::textColourOnId, OPLLookAndFeel::DOS_GREEN); channel->setColour(TextButton::ColourIds::textColourOffId, OPLLookAndFeel::DOS_GREEN); channel->addListener(this); addAndMakeVisible(channel); channels[i] = channel; } versionLabel->setText(String(ProjectInfo::versionString).dropLastCharacters(2) #if DEMOVERSION += " Demo" #endif , NotificationType::dontSendNotification); // Change LookandFeelFree combobox oplComboBoxLookAndFeel.reset(new OPLComboBoxLookAndFeelMethods()); for (auto comB : {frequencyComboBox.get(), frequencyComboBox2.get(), velocityComboBox.get(), velocityComboBox2.get(), keyscaleAttenuationComboBox2.get(), keyscaleAttenuationComboBox.get()}){ comB->setLookAndFeel(oplComboBoxLookAndFeel.get()); } //[/UserPreSize] setSize (860, 580); //[Constructor] You can add your own custom stuff here.. processor = ownerFilter; startTimer(1000/30); // Update GUI Only if (processor->lastLoadFile.length() > 0) { File file(processor->lastLoadFile); loadButton->setButtonText(file.getFileNameWithoutExtension()); } //[/Constructor] } PluginGui::~PluginGui() { //[Destructor_pre]. You can add your own custom destruction code here.. //[/Destructor_pre] groupComponent2 = nullptr; groupComponent4 = nullptr; groupComponent11 = nullptr; groupComponent10 = nullptr; groupComponent9 = nullptr; groupComponent = nullptr; frequencyComboBox = nullptr; frequencyLabel = nullptr; aSlider = nullptr; aLabel = nullptr; dSlider = nullptr; dLabel = nullptr; sSlider = nullptr; dLabel2 = nullptr; rSlider = nullptr; rLabel = nullptr; attenuationSlider = nullptr; attenuationLabel = nullptr; dbLabel = nullptr; sineImageButton = nullptr; halfsineImageButton = nullptr; abssineImageButton = nullptr; quartersineImageButton = nullptr; waveLabel = nullptr; tremoloButton = nullptr; vibratoButton = nullptr; sustainButton = nullptr; keyscaleEnvButton = nullptr; dbLabel2 = nullptr; frequencyComboBox2 = nullptr; frequencyLabel3 = nullptr; aSlider2 = nullptr; aLabel2 = nullptr; dSlider2 = nullptr; dLabel3 = nullptr; sSlider2 = nullptr; dLabel4 = nullptr; rSlider2 = nullptr; rLabel2 = nullptr; attenuationSlider2 = nullptr; attenuationLabel2 = nullptr; dbLabel3 = nullptr; sineImageButton2 = nullptr; halfsineImageButton2 = nullptr; abssineImageButton2 = nullptr; quartersineImageButton2 = nullptr; waveLabel2 = nullptr; tremoloButton2 = nullptr; vibratoButton2 = nullptr; sustainButton2 = nullptr; keyscaleEnvButton2 = nullptr; frequencyLabel4 = nullptr; groupComponent3 = nullptr; tremoloSlider = nullptr; frequencyLabel5 = nullptr; dbLabel5 = nullptr; vibratoSlider = nullptr; frequencyLabel6 = nullptr; dbLabel6 = nullptr; feedbackSlider = nullptr; frequencyLabel7 = nullptr; velocityComboBox = nullptr; velocityComboBox2 = nullptr; attenuationLabel4 = nullptr; alternatingsineImageButton = nullptr; camelsineImageButton = nullptr; squareImageButton = nullptr; logsawImageButton = nullptr; alternatingsineImageButton2 = nullptr; camelsineImageButton2 = nullptr; squareImageButton2 = nullptr; logsawImageButton2 = nullptr; dbLabel4 = nullptr; keyscaleAttenuationComboBox2 = nullptr; keyscaleAttenuationComboBox = nullptr; groupComponent5 = nullptr; emulatorSlider = nullptr; emulatorLabel = nullptr; emulatorLabel2 = nullptr; recordButton = nullptr; exportButton = nullptr; loadButton = nullptr; versionLabel = nullptr; ToggleButtonOffExample = nullptr; ToggleButtonOnExample = nullptr; label = nullptr; label2 = nullptr; LineBorderButton1C = nullptr; LineBorderButton1A = nullptr; LineBorderButton1B = nullptr; label3 = nullptr; LineBorderButton1C2 = nullptr; LineBorderButton1A2 = nullptr; LineBorderButton1B2 = nullptr; LineBorderButton1C3 = nullptr; LineBorderButton1B3 = nullptr; algoSwitchButtonOffEx1 = nullptr; algoSwitchButtonOffEx2 = nullptr; algoSwitchButtonOnEx1 = nullptr; algoSwitchButtonOnEx2 = nullptr; label4 = nullptr; label5 = nullptr; label6 = nullptr; label7 = nullptr; label8 = nullptr; algoSwitchButtonOn2Ex1 = nullptr; algoSwitchButtonOn2Ex2 = nullptr; label9 = nullptr; label10 = nullptr; algoSwitchButtonOn3Ex1 = nullptr; algoSwitchButtonOn3Ex2 = nullptr; label11 = nullptr; label12 = nullptr; TwoOpAMButton = nullptr; TwoOpFMButton = nullptr; label13 = nullptr; label14 = nullptr; label15 = nullptr; label16 = nullptr; label17 = nullptr; groupComponent6 = nullptr; algoSwitchButtonOnEx3 = nullptr; label18 = nullptr; algoSwitchButtonOffEx3 = nullptr; label19 = nullptr; TwoOpAMButton2 = nullptr; label20 = nullptr; label21 = nullptr; label22 = nullptr; algoSwitchButtonOffEx4 = nullptr; label23 = nullptr; algoSwitchButtonOn3Ex3 = nullptr; label24 = nullptr; TwoOpFMButton2 = nullptr; label25 = nullptr; label26 = nullptr; groupComponent7 = nullptr; algoSwitchButtonOffEx5 = nullptr; label27 = nullptr; algoSwitchButtonOn3Ex4 = nullptr; label28 = nullptr; groupComponent8 = nullptr; frequencyLabel9 = nullptr; label29 = nullptr; label30 = nullptr; frequencyLabel10 = nullptr; attenuationLabel5 = nullptr; fmButton = nullptr; additiveButton = nullptr; bassDrumButton = nullptr; snareDrumButton = nullptr; disablePercussionButton = nullptr; tomTomButton = nullptr; cymbalButton = nullptr; hiHatButton = nullptr; dbLabel7 = nullptr; dbLabel8 = nullptr; previousButton = nullptr; nextButton = nullptr; drawable1 = nullptr; //[Destructor]. You can add your own custom destruction code here.. oplLookAndFeel = nullptr; for (unsigned int i = 0; i < channels.size(); ++i) { channels[i].reset(); } channelButtonLookAndFeel = nullptr; //[/Destructor] } //============================================================================== void PluginGui::paint (juce::Graphics& g) { //[UserPrePaint] Add your own custom painting code here.. //[/UserPrePaint] g.fillAll (juce::Colours::black); { int x = 0, y = 0, width = proportionOfWidth (1.0000f), height = proportionOfHeight (1.0000f); //[UserPaintCustomArguments] Customize the painting arguments here.. //[/UserPaintCustomArguments] g.setColour (juce::Colours::black); jassert (drawable1 != nullptr); if (drawable1 != nullptr) drawable1->drawWithin (g, juce::Rectangle (x, y, width, height).toFloat(), juce::RectanglePlacement::stretchToFit, 1.000f); } //[UserPaint] Add your own custom painting code here.. //[/UserPaint] } void PluginGui::resized() { //[UserPreResize] Add your own custom resize code here.. //[/UserPreResize] //[UserResized] Add your own custom resize handling here.. for (unsigned int i = 0; i < channels.size(); ++i) channels[i]->setBounds(64+88*i, 30, 28, 28); //[/UserResized] } void PluginGui::comboBoxChanged (juce::ComboBox* comboBoxThatHasChanged) { //[UsercomboBoxChanged_Pre] //[/UsercomboBoxChanged_Pre] if (comboBoxThatHasChanged == frequencyComboBox.get()) { //[UserComboBoxCode_frequencyComboBox] -- add your combo box handling code here.. int id = comboBoxThatHasChanged->getSelectedId(); if (id > 15) id = 0; processor->beginChangeGesture("Modulator Frequency Multiplier"); processor->setEnumParameter("Modulator Frequency Multiplier", id); processor->endChangeGesture("Modulator Frequency Multiplier"); //[/UserComboBoxCode_frequencyComboBox] } else if (comboBoxThatHasChanged == frequencyComboBox2.get()) { //[UserComboBoxCode_frequencyComboBox2] -- add your combo box handling code here.. int id = comboBoxThatHasChanged->getSelectedId(); if (id > 15) id = 0; processor->beginChangeGesture("Carrier Frequency Multiplier"); processor->setEnumParameter("Carrier Frequency Multiplier", id); processor->endChangeGesture("Carrier Frequency Multiplier"); //[/UserComboBoxCode_frequencyComboBox2] } else if (comboBoxThatHasChanged == velocityComboBox.get()) { //[UserComboBoxCode_velocityComboBox] -- add your combo box handling code here.. int id = comboBoxThatHasChanged->getSelectedId() - 1; processor->beginChangeGesture("Modulator Velocity Sensitivity"); processor->setEnumParameter("Modulator Velocity Sensitivity", id); processor->endChangeGesture("Modulator Velocity Sensitivity"); //[/UserComboBoxCode_velocityComboBox] } else if (comboBoxThatHasChanged == velocityComboBox2.get()) { //[UserComboBoxCode_velocityComboBox2] -- add your combo box handling code here.. int id = comboBoxThatHasChanged->getSelectedId() - 1; processor->beginChangeGesture("Carrier Velocity Sensitivity"); processor->setEnumParameter("Carrier Velocity Sensitivity", id); processor->endChangeGesture("Carrier Velocity Sensitivity"); //[/UserComboBoxCode_velocityComboBox2] } else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox2.get()) { //[UserComboBoxCode_keyscaleAttenuationComboBox2] -- add your combo box handling code here.. int id = comboBoxThatHasChanged->getSelectedId() - 1; processor->beginChangeGesture("Carrier Keyscale Level"); processor->setEnumParameter("Carrier Keyscale Level", id); processor->endChangeGesture("Carrier Keyscale Level"); //[/UserComboBoxCode_keyscaleAttenuationComboBox2] } else if (comboBoxThatHasChanged == keyscaleAttenuationComboBox.get()) { //[UserComboBoxCode_keyscaleAttenuationComboBox] -- add your combo box handling code here.. int id = comboBoxThatHasChanged->getSelectedId() - 1; processor->beginChangeGesture("Modulator Keyscale Level"); processor->setEnumParameter("Modulator Keyscale Level", id); processor->endChangeGesture("Modulator Keyscale Level"); //[/UserComboBoxCode_keyscaleAttenuationComboBox] } //[UsercomboBoxChanged_Post] //[/UsercomboBoxChanged_Post] } void PluginGui::sliderValueChanged (juce::Slider* sliderThatWasMoved) { //[UsersliderValueChanged_Pre] //[/UsersliderValueChanged_Pre] if (sliderThatWasMoved == aSlider.get()) { //[UserSliderCode_aSlider] -- add your slider handling code here.. processor->setIntParameter("Modulator Attack", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_aSlider] } else if (sliderThatWasMoved == dSlider.get()) { //[UserSliderCode_dSlider] -- add your slider handling code here.. processor->setIntParameter("Modulator Decay", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_dSlider] } else if (sliderThatWasMoved == sSlider.get()) { //[UserSliderCode_sSlider] -- add your slider handling code here.. processor->setIntParameter("Modulator Sustain Level", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_sSlider] } else if (sliderThatWasMoved == rSlider.get()) { //[UserSliderCode_rSlider] -- add your slider handling code here.. processor->setIntParameter("Modulator Release", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_rSlider] } else if (sliderThatWasMoved == attenuationSlider.get()) { //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. processor->setEnumParameter("Modulator Attenuation", -(int)(sliderThatWasMoved->getValue()/0.75)); //[/UserSliderCode_attenuationSlider] } else if (sliderThatWasMoved == aSlider2.get()) { //[UserSliderCode_aSlider2] -- add your slider handling code here.. processor->setIntParameter("Carrier Attack", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_aSlider2] } else if (sliderThatWasMoved == dSlider2.get()) { //[UserSliderCode_dSlider2] -- add your slider handling code here.. processor->setIntParameter("Carrier Decay", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_dSlider2] } else if (sliderThatWasMoved == sSlider2.get()) { //[UserSliderCode_sSlider2] -- add your slider handling code here.. processor->setIntParameter("Carrier Sustain Level", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_sSlider2] } else if (sliderThatWasMoved == rSlider2.get()) { //[UserSliderCode_rSlider2] -- add your slider handling code here.. processor->setIntParameter("Carrier Release", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_rSlider2] } else if (sliderThatWasMoved == attenuationSlider2.get()) { //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. processor->setEnumParameter("Carrier Attenuation", -(int)(sliderThatWasMoved->getValue()/0.75)); //[/UserSliderCode_attenuationSlider2] } else if (sliderThatWasMoved == tremoloSlider.get()) { //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. processor->setEnumParameter("Tremolo Depth", sliderThatWasMoved->getValue() < 2.0 ? 0 : 1); //[/UserSliderCode_tremoloSlider] } else if (sliderThatWasMoved == vibratoSlider.get()) { //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. processor->setEnumParameter("Vibrato Depth", sliderThatWasMoved->getValue() < 8.0 ? 0 : 1); //[/UserSliderCode_vibratoSlider] } else if (sliderThatWasMoved == feedbackSlider.get()) { //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. processor->setIntParameter("Modulator Feedback", (int)sliderThatWasMoved->getValue()); //[/UserSliderCode_feedbackSlider] } else if (sliderThatWasMoved == emulatorSlider.get()) { //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. //[/UserSliderCode_emulatorSlider] } //[UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post] } void PluginGui::buttonClicked (juce::Button* buttonThatWasClicked) { //[UserbuttonClicked_Pre] // TODO: // - fix button tooltip text // - automatically select channel(s) by default? // - record output to file for (int i = 1; i <= Hiopl::CHANNELS; ++i) { Button* channelButton = channels[i - 1]; if (buttonThatWasClicked == channelButton) { if (processor->nChannelsEnabled() > 1 || !processor->isChannelEnabled(i)) { processor->toggleChannel(i); } const bool channelEnabled = processor->isChannelEnabled(i); Colour textColour = channelEnabled ? OPLLookAndFeel::DOS_GREEN : OPLLookAndFeel::DOS_GREEN_DARK; channelButton->setColour(TextButton::ColourIds::textColourOnId, textColour); channelButton->setColour(TextButton::ColourIds::textColourOffId, textColour); return; } } //[/UserbuttonClicked_Pre] if (buttonThatWasClicked == sineImageButton.get()) { //[UserButtonCode_sineImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 0); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_sineImageButton] } else if (buttonThatWasClicked == halfsineImageButton.get()) { //[UserButtonCode_halfsineImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 1); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_halfsineImageButton] } else if (buttonThatWasClicked == abssineImageButton.get()) { //[UserButtonCode_abssineImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 2); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_abssineImageButton] } else if (buttonThatWasClicked == quartersineImageButton.get()) { //[UserButtonCode_quartersineImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 3); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_quartersineImageButton] } else if (buttonThatWasClicked == tremoloButton.get()) { //[UserButtonCode_tremoloButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Tremolo"); processor->setEnumParameter("Modulator Tremolo", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Modulator Tremolo"); updateFromHost=true; //[/UserButtonCode_tremoloButton] } else if (buttonThatWasClicked == vibratoButton.get()) { //[UserButtonCode_vibratoButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Vibrato"); processor->setEnumParameter("Modulator Vibrato", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Modulator Vibrato"); updateFromHost=true; //[/UserButtonCode_vibratoButton] } else if (buttonThatWasClicked == sustainButton.get()) { //[UserButtonCode_sustainButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Sustain"); processor->setEnumParameter("Modulator Sustain", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Modulator Sustain"); updateFromHost=true; //[/UserButtonCode_sustainButton] } else if (buttonThatWasClicked == keyscaleEnvButton.get()) { //[UserButtonCode_keyscaleEnvButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Keyscale Rate"); processor->setEnumParameter("Modulator Keyscale Rate", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Modulator Keyscale Rate"); updateFromHost=true; //[/UserButtonCode_keyscaleEnvButton] } else if (buttonThatWasClicked == sineImageButton2.get()) { //[UserButtonCode_sineImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 0); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_sineImageButton2] } else if (buttonThatWasClicked == halfsineImageButton2.get()) { //[UserButtonCode_halfsineImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 1); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_halfsineImageButton2] } else if (buttonThatWasClicked == abssineImageButton2.get()) { //[UserButtonCode_abssineImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 2); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_abssineImageButton2] } else if (buttonThatWasClicked == quartersineImageButton2.get()) { //[UserButtonCode_quartersineImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 3); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_quartersineImageButton2] } else if (buttonThatWasClicked == tremoloButton2.get()) { //[UserButtonCode_tremoloButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Tremolo"); processor->setEnumParameter("Carrier Tremolo", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Carrier Tremolo"); updateFromHost=true; //[/UserButtonCode_tremoloButton2] } else if (buttonThatWasClicked == vibratoButton2.get()) { //[UserButtonCode_vibratoButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Vibrato"); processor->setEnumParameter("Carrier Vibrato", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Carrier Vibrato"); updateFromHost=true; //[/UserButtonCode_vibratoButton2] } else if (buttonThatWasClicked == sustainButton2.get()) { //[UserButtonCode_sustainButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Sustain"); processor->setEnumParameter("Carrier Sustain", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Carrier Sustain"); updateFromHost=true; //[/UserButtonCode_sustainButton2] } else if (buttonThatWasClicked == keyscaleEnvButton2.get()) { //[UserButtonCode_keyscaleEnvButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Keyscale Rate"); processor->setEnumParameter("Carrier Keyscale Rate", buttonThatWasClicked->getToggleState() ? 1 : 0); processor->endChangeGesture("Carrier Keyscale Rate"); updateFromHost=true; //[/UserButtonCode_keyscaleEnvButton2] } else if (buttonThatWasClicked == alternatingsineImageButton.get()) { //[UserButtonCode_alternatingsineImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 4); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_alternatingsineImageButton] } else if (buttonThatWasClicked == camelsineImageButton.get()) { //[UserButtonCode_camelsineImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 5); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_camelsineImageButton] } else if (buttonThatWasClicked == squareImageButton.get()) { //[UserButtonCode_squareImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 6); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_squareImageButton] } else if (buttonThatWasClicked == logsawImageButton.get()) { //[UserButtonCode_logsawImageButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Modulator Wave"); processor->setEnumParameter("Modulator Wave", 7); processor->endChangeGesture("Modulator Wave"); updateFromHost=true; //[/UserButtonCode_logsawImageButton] } else if (buttonThatWasClicked == alternatingsineImageButton2.get()) { //[UserButtonCode_alternatingsineImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 4); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_alternatingsineImageButton2] } else if (buttonThatWasClicked == camelsineImageButton2.get()) { //[UserButtonCode_camelsineImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 5); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_camelsineImageButton2] } else if (buttonThatWasClicked == squareImageButton2.get()) { //[UserButtonCode_squareImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 6); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_squareImageButton2] } else if (buttonThatWasClicked == logsawImageButton2.get()) { //[UserButtonCode_logsawImageButton2] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Carrier Wave"); processor->setEnumParameter("Carrier Wave", 7); processor->endChangeGesture("Carrier Wave"); updateFromHost=true; //[/UserButtonCode_logsawImageButton2] } else if (buttonThatWasClicked == recordButton.get()) { //[UserButtonCode_recordButton] -- add your button handler code here.. //[/UserButtonCode_recordButton] } else if (buttonThatWasClicked == exportButton.get()) { //[UserButtonCode_exportButton] -- add your button handler code here.. FileChooser browser("Select SBI instrument file", instrumentLoadDirectory, #ifdef JUCE_IOS "*"); #endif #ifndef JUCE_IOS "*.sbi"); #endif if (browser.browseForFileToSave(true)){ File selectedFile = browser.getResult(); instrumentSaveDirectory = selectedFile.getParentDirectory(); processor->saveInstrumentToFile(selectedFile.getFullPathName()); } /*WildcardFileFilter wildcardFilter("*.sbi", String(), "SBI files"); FileBrowserComponent browser(FileBrowserComponent::saveMode + FileBrowserComponent::canSelectFiles, instrumentSaveDirectory, &wildcardFilter, nullptr); FileChooserDialogBox dialogBox("Export to", "Specify SBI output file", browser, true, Colours::darkgreen, this); if (dialogBox.show()) { File selectedFile = browser.getSelectedFile(0); instrumentSaveDirectory = browser.getRoot(); processor->saveInstrumentToFile(selectedFile.getFullPathName()); }*/ //[/UserButtonCode_exportButton] } else if (buttonThatWasClicked == loadButton.get()) { //[UserButtonCode_loadButton] -- add your button handler code here.. if (!showLoadMenu()){ loadBrowserFile(); } /*WildcardFileFilter wildcardFilter("*.sbi", String(), "SBI files"); FileBrowserComponent browser(FileBrowserComponent::openMode + FileBrowserComponent::canSelectFiles, instrumentLoadDirectory, &wildcardFilter, nullptr); FileChooserDialogBox dialogBox("Load", "Select SBI instrument file", browser, false, Colours::darkgreen, this); if (dialogBox.show()) { File selectedFile = browser.getSelectedFile(0); instrumentLoadDirectory = browser.getRoot(); processor->loadInstrumentFromFile(selectedFile.getFullPathName()); }*/ //[/UserButtonCode_loadButton] } else if (buttonThatWasClicked == ToggleButtonOffExample.get()) { //[UserButtonCode_ToggleButtonOffExample] -- add your button handler code here.. //[/UserButtonCode_ToggleButtonOffExample] } else if (buttonThatWasClicked == ToggleButtonOnExample.get()) { //[UserButtonCode_ToggleButtonOnExample] -- add your button handler code here.. //[/UserButtonCode_ToggleButtonOnExample] } else if (buttonThatWasClicked == algoSwitchButtonOffEx1.get()) { //[UserButtonCode_algoSwitchButtonOffEx1] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOffEx1] } else if (buttonThatWasClicked == algoSwitchButtonOffEx2.get()) { //[UserButtonCode_algoSwitchButtonOffEx2] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOffEx2] } else if (buttonThatWasClicked == algoSwitchButtonOnEx1.get()) { //[UserButtonCode_algoSwitchButtonOnEx1] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOnEx1] } else if (buttonThatWasClicked == algoSwitchButtonOnEx2.get()) { //[UserButtonCode_algoSwitchButtonOnEx2] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOnEx2] } else if (buttonThatWasClicked == algoSwitchButtonOn2Ex1.get()) { //[UserButtonCode_algoSwitchButtonOn2Ex1] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn2Ex1] } else if (buttonThatWasClicked == algoSwitchButtonOn2Ex2.get()) { //[UserButtonCode_algoSwitchButtonOn2Ex2] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn2Ex2] } else if (buttonThatWasClicked == algoSwitchButtonOn3Ex1.get()) { //[UserButtonCode_algoSwitchButtonOn3Ex1] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn3Ex1] } else if (buttonThatWasClicked == algoSwitchButtonOn3Ex2.get()) { //[UserButtonCode_algoSwitchButtonOn3Ex2] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn3Ex2] } else if (buttonThatWasClicked == TwoOpAMButton.get()) { //[UserButtonCode_TwoOpAMButton] -- add your button handler code here.. //[/UserButtonCode_TwoOpAMButton] } else if (buttonThatWasClicked == TwoOpFMButton.get()) { //[UserButtonCode_TwoOpFMButton] -- add your button handler code here.. //[/UserButtonCode_TwoOpFMButton] } else if (buttonThatWasClicked == algoSwitchButtonOnEx3.get()) { //[UserButtonCode_algoSwitchButtonOnEx3] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOnEx3] } else if (buttonThatWasClicked == algoSwitchButtonOffEx3.get()) { //[UserButtonCode_algoSwitchButtonOffEx3] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOffEx3] } else if (buttonThatWasClicked == TwoOpAMButton2.get()) { //[UserButtonCode_TwoOpAMButton2] -- add your button handler code here.. //[/UserButtonCode_TwoOpAMButton2] } else if (buttonThatWasClicked == algoSwitchButtonOffEx4.get()) { //[UserButtonCode_algoSwitchButtonOffEx4] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOffEx4] } else if (buttonThatWasClicked == algoSwitchButtonOn3Ex3.get()) { //[UserButtonCode_algoSwitchButtonOn3Ex3] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn3Ex3] } else if (buttonThatWasClicked == TwoOpFMButton2.get()) { //[UserButtonCode_TwoOpFMButton2] -- add your button handler code here.. //[/UserButtonCode_TwoOpFMButton2] } else if (buttonThatWasClicked == algoSwitchButtonOffEx5.get()) { //[UserButtonCode_algoSwitchButtonOffEx5] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOffEx5] } else if (buttonThatWasClicked == algoSwitchButtonOn3Ex4.get()) { //[UserButtonCode_algoSwitchButtonOn3Ex4] -- add your button handler code here.. //[/UserButtonCode_algoSwitchButtonOn3Ex4] } else if (buttonThatWasClicked == fmButton.get()) { //[UserButtonCode_fmButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Algorithm"); processor->setEnumParameter("Algorithm", 0); processor->endChangeGesture("Algorithm"); updateFromHost=true; //[/UserButtonCode_fmButton] } else if (buttonThatWasClicked == additiveButton.get()) { //[UserButtonCode_additiveButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Algorithm"); processor->setEnumParameter("Algorithm", 1); processor->endChangeGesture("Algorithm"); updateFromHost=true; //[/UserButtonCode_additiveButton] } else if (buttonThatWasClicked == bassDrumButton.get()) { //[UserButtonCode_bassDrumButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Percussion Mode"); processor->setEnumParameter("Percussion Mode", 1); processor->endChangeGesture("Percussion Mode"); updateFromHost=true; //[/UserButtonCode_bassDrumButton] } else if (buttonThatWasClicked == snareDrumButton.get()) { //[UserButtonCode_snareDrumButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Percussion Mode"); processor->setEnumParameter("Percussion Mode", 2); processor->endChangeGesture("Percussion Mode"); updateFromHost=true; //[/UserButtonCode_snareDrumButton] } else if (buttonThatWasClicked == disablePercussionButton.get()) { //[UserButtonCode_disablePercussionButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Percussion Mode"); processor->setEnumParameter("Percussion Mode", 0); processor->endChangeGesture("Percussion Mode"); updateFromHost=true; //[/UserButtonCode_disablePercussionButton] } else if (buttonThatWasClicked == tomTomButton.get()) { //[UserButtonCode_tomTomButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Percussion Mode"); processor->setEnumParameter("Percussion Mode", 3); processor->endChangeGesture("Percussion Mode"); updateFromHost=true; //[/UserButtonCode_tomTomButton] } else if (buttonThatWasClicked == cymbalButton.get()) { //[UserButtonCode_cymbalButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Percussion Mode"); processor->setEnumParameter("Percussion Mode", 4); processor->endChangeGesture("Percussion Mode"); updateFromHost=true; //[/UserButtonCode_cymbalButton] } else if (buttonThatWasClicked == hiHatButton.get()) { //[UserButtonCode_hiHatButton] -- add your button handler code here.. updateFromHost=false; processor->beginChangeGesture("Percussion Mode"); processor->setEnumParameter("Percussion Mode", 5); processor->endChangeGesture("Percussion Mode"); updateFromHost=true; //[/UserButtonCode_hiHatButton] } else if (buttonThatWasClicked == previousButton.get()) { //[UserButtonCode_previousButton] -- add your button handler code here.. loadPreNextFile(true); //[/UserButtonCode_previousButton] } else if (buttonThatWasClicked == nextButton.get()) { //[UserButtonCode_nextButton] -- add your button handler code here.. loadPreNextFile(false); //[/UserButtonCode_nextButton] } //[UserbuttonClicked_Post] //[/UserbuttonClicked_Post] } //[MiscUserCode] You can add your own definitions of your custom methods or any other code here... void PluginGui::sliderDragStarted (Slider* sliderThatWasMoved) { //[UsersliderValueChanged_Pre] DBG("Slider -> Start"); updateFromHost=false; //[/UsersliderValueChanged_Pre] if (sliderThatWasMoved == aSlider.get()) { //[UserSliderCode_aSlider] -- add your slider handling code here.. processor->beginChangeGesture("Modulator Attack"); //[/UserSliderCode_aSlider] } else if (sliderThatWasMoved == dSlider.get()) { //[UserSliderCode_dSlider] -- add your slider handling code here.. processor->beginChangeGesture("Modulator Decay"); //[/UserSliderCode_dSlider] } else if (sliderThatWasMoved == sSlider.get()) { //[UserSliderCode_sSlider] -- add your slider handling code here.. processor->beginChangeGesture("Modulator Sustain Level"); //[/UserSliderCode_sSlider] } else if (sliderThatWasMoved == rSlider.get()) { //[UserSliderCode_rSlider] -- add your slider handling code here.. processor->beginChangeGesture("Modulator Release"); //[/UserSliderCode_rSlider] } else if (sliderThatWasMoved == attenuationSlider.get()) { //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. processor->beginChangeGesture("Modulator Attenuation"); //[/UserSliderCode_attenuationSlider] } else if (sliderThatWasMoved == aSlider2.get()) { //[UserSliderCode_aSlider2] -- add your slider handling code here.. processor->beginChangeGesture("Carrier Attack"); //[/UserSliderCode_aSlider2] } else if (sliderThatWasMoved == dSlider2.get()) { //[UserSliderCode_dSlider2] -- add your slider handling code here.. processor->beginChangeGesture("Carrier Decay"); //[/UserSliderCode_dSlider2] } else if (sliderThatWasMoved == sSlider2.get()) { //[UserSliderCode_sSlider2] -- add your slider handling code here.. processor->beginChangeGesture("Carrier Sustain Level"); //[/UserSliderCode_sSlider2] } else if (sliderThatWasMoved == rSlider2.get()) { //[UserSliderCode_rSlider2] -- add your slider handling code here.. processor->beginChangeGesture("Carrier Release"); //[/UserSliderCode_rSlider2] } else if (sliderThatWasMoved == attenuationSlider2.get()) { //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. processor->beginChangeGesture("Carrier Attenuation"); //[/UserSliderCode_attenuationSlider2] } else if (sliderThatWasMoved == tremoloSlider.get()) { //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. processor->beginChangeGesture("Tremolo Depth"); //[/UserSliderCode_tremoloSlider] } else if (sliderThatWasMoved == vibratoSlider.get()) { //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. processor->beginChangeGesture("Vibrato Depth"); //[/UserSliderCode_vibratoSlider] } else if (sliderThatWasMoved == feedbackSlider.get()) { //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. processor->beginChangeGesture("Modulator Feedback"); //[/UserSliderCode_feedbackSlider] } else if (sliderThatWasMoved == emulatorSlider.get()) { //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. //[/UserSliderCode_emulatorSlider] } //[UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post] } void PluginGui::sliderDragEnded (Slider* sliderThatWasMoved) { //[UsersliderValueChanged_Pre] //[/UsersliderValueChanged_Pre] if (sliderThatWasMoved == aSlider.get()) { //[UserSliderCode_aSlider] -- add your slider handling code here.. processor->endChangeGesture("Modulator Attack"); //[/UserSliderCode_aSlider] } else if (sliderThatWasMoved == dSlider.get()) { //[UserSliderCode_dSlider] -- add your slider handling code here.. processor->endChangeGesture("Modulator Decay"); //[/UserSliderCode_dSlider] } else if (sliderThatWasMoved == sSlider.get()) { //[UserSliderCode_sSlider] -- add your slider handling code here.. processor->endChangeGesture("Modulator Sustain Level"); //[/UserSliderCode_sSlider] } else if (sliderThatWasMoved == rSlider.get()) { //[UserSliderCode_rSlider] -- add your slider handling code here.. processor->endChangeGesture("Modulator Release"); //[/UserSliderCode_rSlider] } else if (sliderThatWasMoved == attenuationSlider.get()) { //[UserSliderCode_attenuationSlider] -- add your slider handling code here.. processor->endChangeGesture("Modulator Attenuation"); //[/UserSliderCode_attenuationSlider] } else if (sliderThatWasMoved == aSlider2.get()) { //[UserSliderCode_aSlider2] -- add your slider handling code here.. processor->endChangeGesture("Carrier Attack"); //[/UserSliderCode_aSlider2] } else if (sliderThatWasMoved == dSlider2.get()) { //[UserSliderCode_dSlider2] -- add your slider handling code here.. processor->endChangeGesture("Carrier Decay"); //[/UserSliderCode_dSlider2] } else if (sliderThatWasMoved == sSlider2.get()) { //[UserSliderCode_sSlider2] -- add your slider handling code here.. processor->endChangeGesture("Carrier Sustain Level"); //[/UserSliderCode_sSlider2] } else if (sliderThatWasMoved == rSlider2.get()) { //[UserSliderCode_rSlider2] -- add your slider handling code here.. processor->endChangeGesture("Carrier Release"); //[/UserSliderCode_rSlider2] } else if (sliderThatWasMoved == attenuationSlider2.get()) { //[UserSliderCode_attenuationSlider2] -- add your slider handling code here.. processor->endChangeGesture("Carrier Attenuation"); //[/UserSliderCode_attenuationSlider2] } else if (sliderThatWasMoved == tremoloSlider.get()) { //[UserSliderCode_tremoloSlider] -- add your slider handling code here.. processor->endChangeGesture("Tremolo Depth"); //[/UserSliderCode_tremoloSlider] } else if (sliderThatWasMoved == vibratoSlider.get()) { //[UserSliderCode_vibratoSlider] -- add your slider handling code here.. processor->endChangeGesture("Vibrato Depth"); //[/UserSliderCode_vibratoSlider] } else if (sliderThatWasMoved == feedbackSlider.get()) { //[UserSliderCode_feedbackSlider] -- add your slider handling code here.. processor->endChangeGesture("Modulator Feedback"); //[/UserSliderCode_feedbackSlider] } else if (sliderThatWasMoved == emulatorSlider.get()) { //[UserSliderCode_emulatorSlider] -- add your slider handling code here.. //[/UserSliderCode_emulatorSlider] } //[UsersliderValueChanged_Post] updateFromHost=true; DBG("Slider -> End"); //[/UsersliderValueChanged_Post] } //============================================================================== // These methods implement the FileDragAndDropTarget interface, and allow our component // to accept drag-and-drop of files.. bool PluginGui::isInterestedInFileDrag (const StringArray& files) { return 1 == files.size() && ( files[0].toLowerCase().endsWith(".sbi") || files[0].toLowerCase().endsWith(".sb2") || files[0].toLowerCase().endsWith(".sb0") ); } void PluginGui::fileDragEnter (const StringArray& files, int x, int y) { } void PluginGui::fileDragMove (const StringArray& files, int x, int y) { } void PluginGui::fileDragExit (const StringArray& files) { } void PluginGui::filesDropped (const StringArray& files, int x, int y) { if (isInterestedInFileDrag(files)) { this->loadandUpdateInstrument(files[0]); } } void PluginGui::timerCallback() { for (int i = 0; i < Hiopl::CHANNELS; ++i) { channels[i]->setButtonText(processor->getChannelEnvelopeStage(i + 1)); } syncGUI(); } void PluginGui::loadPreNextFile(bool pre){ if (pre){ processor->selectedIdxFile -=1; } else{ processor->selectedIdxFile +=1; } if (allSbiFiles.size() > 0){ if (processor->selectedIdxFile > allSbiFiles.size() -1 ){ processor->selectedIdxFile = 0; } if (processor->selectedIdxFile <0 ){ processor->selectedIdxFile = allSbiFiles.size() - 1; } if (allSbiFiles[processor->selectedIdxFile].existsAsFile()){ this->loadandUpdateInstrument(allSbiFiles[processor->selectedIdxFile].getFullPathName()); } else { loadBrowserFile(); } } else{ Array dirs; instrumentLoadDirectory.findChildFiles(dirs, File::findDirectories, false); bool hasFile = false; dirs.sort(); for (auto dir: dirs){ Array files; dir.findChildFiles (files, File::findFiles, false, "*.sbi"); files.sort(); if (files.size() > 0){ for (auto file : files){ hasFile = true; allSbiFiles.add(file); } } } if (processor->selectedIdxFile > allSbiFiles.size() - 1){ processor->selectedIdxFile = 0; } if (processor->selectedIdxFile <0 ){ processor->selectedIdxFile = allSbiFiles.size() - 1; } if(hasFile){ if (allSbiFiles[processor->selectedIdxFile].existsAsFile()){ this->loadandUpdateInstrument(allSbiFiles[processor->selectedIdxFile].getFullPathName()); } else { loadBrowserFile(); } } else { loadBrowserFile(); } } } bool PluginGui::loadBrowserFile(){ FileChooser browser("Select SBI instrument file", instrumentLoadDirectory, #ifdef JUCE_IOS "*.sbi"); #endif #ifndef JUCE_IOS "*.sbi"); #endif if (browser.browseForFileToOpen()){ File selectedFile = browser.getResult(); instrumentLoadDirectory = selectedFile.getParentDirectory(); this->loadandUpdateInstrument(selectedFile.getFullPathName()); } return 0; } bool PluginGui::showLoadMenu() { menuLoad.clear(); Array dirs; allSbiFiles.clear(); bool hasFile = false; instrumentLoadDirectory.findChildFiles(dirs, File::findDirectories, false); dirs.sort(); for (auto dir: dirs) { Array files; dir.findChildFiles (files, File::findFiles, false, "*.sbi"); files.sort(); if (files.size() > 0) { bool selectedSub = false; PopupMenu subMenu; for (auto file : files) { allSbiFiles.add(file); hasFile = true; if (processor->lastLoadFile == file.getFullPathName()) { selectedSub = true; subMenu.addItem(allSbiFiles.size(), file.getFileNameWithoutExtension(), true, true); } else subMenu.addItem(allSbiFiles.size(), file.getFileNameWithoutExtension()); } if(selectedSub) menuLoad.addSubMenu (dir.getFileName(), std::move (subMenu), true, nullptr, true, 0); else menuLoad.addSubMenu(dir.getFileName(), subMenu); } } if(hasFile) { //int id = menuLoad.show(); menuLoad.showMenuAsync (PopupMenu::Options().withParentComponent (this->getTopLevelComponent()), [this](int id) { if (id > 0) { auto fileId = id - 1; processor->selectedIdxFile = fileId; auto sbiFile = this->allSbiFiles[fileId]; if (sbiFile.existsAsFile()) this->loadandUpdateInstrument(sbiFile.getFullPathName()); else this->loadBrowserFile(); } // No select, return true to ignore the popup menu else { return; } }); } return hasFile; } void PluginGui::loadandUpdateInstrument(String path) { processor->loadInstrumentFromFile(path); File file(path); loadButton->setButtonText(file.getFileNameWithoutExtension()); } void PluginGui::syncGUI(){ if (updateFromHost){ updateFromParameters(); } } //[/MiscUserCode] //============================================================================== #if 0 /* -- Projucer information section -- This is where the Projucer stores the metadata that describe this GUI layout, so make changes in here at your peril! BEGIN_JUCER_METADATA END_JUCER_METADATA */ #endif //============================================================================== // Binary resources - be careful not to edit any of these sections! // JUCER_RESOURCE: full_sine_png, 203, "../img/full_sine.png" static const unsigned char resource_PluginGui_full_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,146,73,68,65,84,88,133,237,151,81,14,64, 48,16,68,183,226,94,110,225,18,110,230,146,252,116,35,153,166,97,219,21,131,125,63,66,144,241,76,75,147,136,108,66,192,240,116,0,101,60,61,99,133,253,249,158,32,47,48,162,38,208,64,237,120,39,52,70,146, 224,168,185,250,196,206,102,104,140,68,16,228,232,72,235,59,119,234,10,141,145,8,130,148,51,235,212,120,39,235,117,75,222,230,110,209,24,41,103,86,43,78,163,141,198,72,4,65,250,59,162,116,126,181,105, 140,68,16,196,175,35,74,227,191,238,135,141,40,198,245,208,15,140,24,161,49,178,3,63,99,23,114,126,178,233,88,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::full_sine_png = (const char*) resource_PluginGui_full_sine_png; const int PluginGui::full_sine_pngSize = 203; // JUCER_RESOURCE: half_sine_png, 179, "../img/half_sine.png" static const unsigned char resource_PluginGui_half_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,122,73,68,65,84,88,133,237,148,65,10,128, 32,20,5,191,209,189,186,69,135,236,22,157,172,22,33,193,72,20,102,248,130,55,155,40,50,198,73,77,17,177,133,0,67,111,129,204,120,251,198,130,251,249,27,145,31,20,201,37,88,224,234,249,75,100,138,164,224, 174,121,58,227,198,101,100,138,88,132,156,107,164,246,159,55,90,43,50,69,44,66,202,147,117,170,252,82,237,184,245,184,200,20,41,79,214,78,200,20,177,8,177,8,177,8,177,8,177,8,177,8,217,1,254,115,12,122, 78,109,41,249,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::half_sine_png = (const char*) resource_PluginGui_half_sine_png; const int PluginGui::half_sine_pngSize = 179; // JUCER_RESOURCE: abs_sine_png, 181, "../img/abs_sine.png" static const unsigned char resource_PluginGui_abs_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,124,73,68,65,84,88,133,237,148,81,10,128, 32,16,5,215,232,94,221,162,67,118,201,250,81,130,17,209,182,192,13,222,252,21,62,153,125,150,201,204,78,11,192,50,91,160,176,118,87,28,120,222,7,119,126,152,251,65,35,101,34,78,210,122,255,50,23,166,145, 100,252,107,122,19,183,214,121,115,153,48,141,72,132,220,223,200,232,25,147,143,114,97,26,145,8,169,111,214,205,185,147,55,151,9,211,72,125,179,78,34,76,35,18,33,18,33,18,33,18,33,18,33,18,33,23,197,62, 17,185,230,123,254,103,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::abs_sine_png = (const char*) resource_PluginGui_abs_sine_png; const int PluginGui::abs_sine_pngSize = 181; // JUCER_RESOURCE: quarter_sine_png, 181, "../img/quarter_sine.png" static const unsigned char resource_PluginGui_quarter_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,124,73,68,65,84,88,133,237,150,81,10, 128,32,16,68,215,232,94,221,162,67,118,139,78,150,31,41,209,196,162,174,31,205,199,60,8,177,28,120,77,33,38,51,187,140,128,229,111,129,74,91,228,40,215,40,131,57,154,70,86,247,73,164,133,137,28,113,35, 245,141,118,152,183,136,230,10,52,141,72,4,121,254,17,252,198,189,68,115,0,77,35,18,65,190,251,200,230,172,244,238,207,230,206,123,160,105,36,153,206,35,111,36,130,72,4,145,8,34,17,68,34,136,68,144,12, 123,138,13,78,65,207,81,74,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::quarter_sine_png = (const char*) resource_PluginGui_quarter_sine_png; const int PluginGui::quarter_sine_pngSize = 181; // JUCER_RESOURCE: camel_sine_png, 174, "../img/camel_sine.png" static const unsigned char resource_PluginGui_camel_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,117,73,68,65,84,88,133,237,148,209,9,192, 32,12,68,99,233,94,221,162,67,118,139,78,86,63,218,80,56,41,129,40,245,62,238,129,136,6,225,229,132,20,51,187,140,128,101,182,128,243,45,114,60,43,91,31,38,242,51,107,115,227,93,238,201,115,18,154,68, 36,130,20,243,57,18,253,117,111,61,128,38,17,137,32,18,65,218,201,186,5,47,122,235,200,121,111,52,137,188,115,100,50,52,137,72,4,145,8,34,17,68,34,136,68,16,137,32,21,146,46,14,97,109,79,27,36,0,0,0,0, 73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::camel_sine_png = (const char*) resource_PluginGui_camel_sine_png; const int PluginGui::camel_sine_pngSize = 174; // JUCER_RESOURCE: alternating_sine_png, 197, "../img/alternating_sine.png" static const unsigned char resource_PluginGui_alternating_sine_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,140,73,68,65,84,88,133,99,100,96, 96,248,207,48,8,0,211,64,59,0,6,112,59,100,21,20,15,184,67,232,12,88,48,68,96,161,16,134,131,79,35,48,104,66,100,212,33,232,128,145,1,86,142,16,74,11,52,78,43,131,38,68,70,29,130,14,70,29,130,14,48,75, 86,123,2,58,112,201,103,67,233,169,36,186,224,32,132,26,52,33,130,40,71,8,1,26,151,51,131,38,68,70,29,130,14,70,29,130,14,136,207,53,48,64,163,22,220,160,9,145,81,135,160,3,210,211,8,12,80,185,197,54, 12,66,132,202,96,208,132,8,0,67,200,18,200,95,246,147,104,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::alternating_sine_png = (const char*) resource_PluginGui_alternating_sine_png; const int PluginGui::alternating_sine_pngSize = 197; // JUCER_RESOURCE: square_png, 179, "../img/square.png" static const unsigned char resource_PluginGui_square_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,122,73,68,65,84,88,133,237,150,177,17,128,48, 12,3,29,142,189,216,130,37,216,44,75,66,99,83,40,85,34,238,80,161,111,146,198,190,143,10,59,45,34,238,16,96,251,91,160,216,223,91,39,59,157,92,185,96,34,197,236,203,216,36,19,153,68,44,130,88,4,177,8, 98,17,100,156,172,199,98,167,217,186,43,207,156,228,50,137,180,96,255,35,181,107,86,119,148,90,34,22,65,44,130,88,4,177,8,50,238,154,85,200,223,188,76,34,252,174,249,8,153,68,30,246,154,9,40,60,195,35, 102,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::square_png = (const char*) resource_PluginGui_square_png; const int PluginGui::square_pngSize = 179; // JUCER_RESOURCE: logarithmic_saw_png, 206, "../img/logarithmic_saw.png" static const unsigned char resource_PluginGui_logarithmic_saw_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,34,0,0,0,30,8,6,0,0,0,73,255,204,20,0,0,0,149,73,68,65,84,88,133,237,150,81, 10,128,32,16,68,215,232,94,221,194,75,116,158,46,225,37,235,103,37,24,19,139,218,118,64,31,136,172,32,12,15,87,13,34,178,11,1,147,119,128,204,25,36,233,112,15,226,204,8,130,148,65,156,206,10,177,17,39, 104,130,204,197,74,212,57,65,109,12,177,145,12,154,193,245,143,33,54,178,64,189,65,125,247,142,193,125,200,170,179,26,166,49,18,196,234,63,210,58,91,208,149,52,70,234,93,243,150,134,1,164,3,35,72,237, 94,82,104,140,140,32,200,255,65,162,92,118,78,199,70,42,208,4,177,123,107,30,66,99,228,0,184,114,16,107,149,79,109,141,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::logarithmic_saw_png = (const char*) resource_PluginGui_logarithmic_saw_png; const int PluginGui::logarithmic_saw_pngSize = 206; // JUCER_RESOURCE: channeloff_png, 414, "../img/channeloff.png" static const unsigned char resource_PluginGui_channeloff_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127, 0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,222,8,25,20,6,56,156,246,144,159,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32, 119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,1,2,73,68,65,84,56,203,165,211,61,78,66,65,20,5,224,143,193,82,119,224,62,104,40,166,196,194,202,10,66,65,137,149,75,120,121,193,21,216,104,108,164,32,178, 128,183,1,94,66,67,66,172,172,140,27,176,178,192,202,70,139,55,26,2,138,2,39,153,102,230,220,159,185,231,220,154,85,100,14,113,138,46,154,233,118,138,17,10,185,183,101,122,88,9,110,99,129,11,20,104,164, 83,164,187,69,226,252,128,204,64,230,67,166,239,55,100,250,137,51,176,86,185,122,104,249,11,153,86,226,182,161,150,254,188,192,185,220,141,255,160,234,242,26,71,117,209,25,142,229,27,90,95,69,105,46,58, 193,107,72,211,30,218,30,67,116,67,146,106,178,67,130,9,154,193,158,8,201,36,113,135,216,136,105,72,14,235,237,144,160,135,81,248,118,92,182,133,10,21,183,129,162,174,244,46,122,194,157,104,166,244,252, 167,145,24,163,35,247,80,79,186,62,138,14,112,43,122,81,154,111,168,60,198,165,220,85,229,196,245,101,186,199,44,233,60,89,26,88,47,181,221,145,27,127,133,212,246,93,231,79,44,229,73,181,37,137,229,213, 0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::channeloff_png = (const char*) resource_PluginGui_channeloff_png; const int PluginGui::channeloff_pngSize = 414; // JUCER_RESOURCE: channelon_png, 326, "../img/channelon.png" static const unsigned char resource_PluginGui_channelon_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,16,0,0,0,16,8,6,0,0,0,31,243,255,97,0,0,0,6,98,75,71,68,0,0,0,0,0,0,249,67,187,127, 0,0,0,9,112,72,89,115,0,0,11,19,0,0,11,19,1,0,154,156,24,0,0,0,7,116,73,77,69,7,222,8,25,20,6,39,17,254,157,106,0,0,0,29,105,84,88,116,67,111,109,109,101,110,116,0,0,0,0,0,67,114,101,97,116,101,100,32, 119,105,116,104,32,71,73,77,80,100,46,101,7,0,0,0,170,73,68,65,84,56,203,173,147,177,13,194,48,16,69,159,143,148,176,81,20,101,129,84,84,68,217,5,89,176,0,204,16,193,0,30,0,69,202,8,169,88,131,12,64,145, 139,176,82,64,116,230,117,182,252,206,242,249,159,99,201,145,45,80,1,13,144,235,110,15,180,64,192,51,198,199,221,66,62,0,55,190,83,227,185,207,139,77,36,159,128,11,191,217,83,146,209,241,248,20,152,110, 94,35,207,20,148,60,233,24,156,190,249,133,141,157,104,195,172,84,162,221,182,210,72,244,85,22,114,33,17,209,144,88,233,69,19,102,165,21,32,36,20,8,162,217,174,13,114,141,103,156,146,216,49,80,146,1,197, 74,249,140,231,250,151,97,114,169,227,252,6,230,208,38,246,228,75,209,233,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::channelon_png = (const char*) resource_PluginGui_channelon_png; const int PluginGui::channelon_pngSize = 326; // JUCER_RESOURCE: toggle_off_sq_png, 118, "../img/toggle_off_sq.png" static const unsigned char resource_PluginGui_toggle_off_sq_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0,0,86,117,92,231,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0, 0,48,73,68,65,84,40,21,99,100,172,103,248,207,64,2,96,1,169,253,223,72,156,14,160,225,12,76,196,41,69,168,26,213,128,8,11,220,44,218,135,18,56,166,65,49,72,44,0,0,186,23,4,27,1,178,34,38,0,0,0,0,73,69, 78,68,174,66,96,130,0,0}; const char* PluginGui::toggle_off_sq_png = (const char*) resource_PluginGui_toggle_off_sq_png; const int PluginGui::toggle_off_sq_pngSize = 118; // JUCER_RESOURCE: toggle_on_sq_png, 134, "../img/toggle_on_sq.png" static const unsigned char resource_PluginGui_toggle_on_sq_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,12,0,0,0,12,8,6,0,0,0,86,117,92,231,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0, 64,73,68,65,84,40,21,99,100,172,103,248,207,64,2,96,1,169,253,223,72,156,14,160,225,12,96,13,32,229,32,14,62,0,51,148,9,159,34,108,114,163,26,176,133,10,186,24,60,30,96,225,140,174,0,157,15,214,64,40, 210,144,53,1,0,212,234,7,159,245,36,0,105,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::toggle_on_sq_png = (const char*) resource_PluginGui_toggle_on_sq_png; const int PluginGui::toggle_on_sq_pngSize = 134; // JUCER_RESOURCE: line_border_horiz_png, 108, "../img/line_border_horiz.png" static const unsigned char resource_PluginGui_line_border_horiz_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,22,0,0,0,6,8,6,0,0,0,199,98,110,160,0,0,0,1,115,82,71,66,0,174,206,28,233, 0,0,0,38,73,68,65,84,40,21,99,100,96,96,248,15,196,84,7,76,84,55,17,106,32,11,67,176,32,77,204,166,153,139,25,129,206,29,90,97,12,0,88,84,2,111,238,165,1,44,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::line_border_horiz_png = (const char*) resource_PluginGui_line_border_horiz_png; const int PluginGui::line_border_horiz_pngSize = 108; // JUCER_RESOURCE: line_border_vert_png, 107, "../img/line_border_vert.png" static const unsigned char resource_PluginGui_line_border_vert_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,6,0,0,0,22,8,6,0,0,0,227,26,237,211,0,0,0,1,115,82,71,66,0,174,206,28,233,0, 0,0,37,73,68,65,84,40,21,99,100,96,96,248,15,196,12,12,193,130,96,138,97,237,123,48,205,4,225,97,146,163,18,24,97,50,236,131,4,0,123,194,3,43,141,43,209,32,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::line_border_vert_png = (const char*) resource_PluginGui_line_border_vert_png; const int PluginGui::line_border_vert_pngSize = 107; // JUCER_RESOURCE: algo_switch_off_png, 162, "../img/algo_switch_off.png" static const unsigned char resource_PluginGui_algo_switch_off_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, 0,0,92,73,68,65,84,88,9,237,151,177,13,0,32,12,195,90,196,223,136,203,129,178,248,133,168,74,167,140,113,60,53,115,197,137,70,55,139,229,236,30,68,79,78,140,30,40,80,24,136,45,52,147,13,105,122,161,149, 13,177,133,102,178,33,77,47,180,178,33,182,208,76,54,164,233,133,86,54,196,22,154,201,134,52,189,208,234,127,172,245,233,117,185,11,224,6,4,43,49,160,14,163,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::algo_switch_off_png = (const char*) resource_PluginGui_algo_switch_off_png; const int PluginGui::algo_switch_off_pngSize = 162; // JUCER_RESOURCE: algo_switch_on_png, 168, "../img/algo_switch_on.png" static const unsigned char resource_PluginGui_algo_switch_on_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, 0,0,98,73,68,65,84,88,9,237,151,177,13,192,48,12,195,236,52,223,244,200,92,153,115,10,7,233,196,19,4,67,158,52,138,226,228,204,21,21,141,110,94,150,231,205,22,72,223,174,24,45,72,0,97,32,140,33,25,109, 72,82,11,74,217,16,198,144,140,54,36,169,5,165,108,8,99,72,70,27,146,212,130,82,54,132,49,36,163,13,73,106,65,169,255,99,189,159,94,151,59,99,230,7,124,25,120,111,199,0,0,0,0,73,69,78,68,174,66,96,130, 0,0}; const char* PluginGui::algo_switch_on_png = (const char*) resource_PluginGui_algo_switch_on_png; const int PluginGui::algo_switch_on_pngSize = 168; // JUCER_RESOURCE: algo_switch_on2_png, 169, "../img/algo_switch_on2.png" static const unsigned char resource_PluginGui_algo_switch_on2_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, 0,0,99,73,68,65,84,88,9,237,151,177,13,128,48,16,3,31,68,145,58,115,48,123,166,201,48,116,33,130,226,86,176,44,127,229,210,231,171,254,168,209,87,25,221,245,177,204,199,3,233,110,117,122,144,64,17,32, 182,208,76,49,164,233,133,86,49,196,22,154,41,134,52,189,208,42,134,216,66,51,197,144,166,23,90,197,16,91,104,166,24,210,244,66,171,255,99,221,159,158,203,189,241,194,4,31,18,119,100,16,0,0,0,0,73,69, 78,68,174,66,96,130,0,0}; const char* PluginGui::algo_switch_on2_png = (const char*) resource_PluginGui_algo_switch_on2_png; const int PluginGui::algo_switch_on2_pngSize = 169; // JUCER_RESOURCE: algo_switch_on3_png, 151, "../img/algo_switch_on3.png" static const unsigned char resource_PluginGui_algo_switch_on3_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,52,0,0,0,20,8,6,0,0,0,194,212,30,221,0,0,0,1,115,82,71,66,0,174,206,28,233,0, 0,0,81,73,68,65,84,88,9,237,146,65,10,0,32,12,195,166,71,159,237,199,21,252,65,47,65,70,118,47,165,201,70,237,117,170,209,205,70,91,222,20,7,253,110,84,67,26,130,9,248,114,48,240,184,78,67,49,50,56,160, 33,24,120,92,167,161,24,25,28,208,16,12,60,174,211,80,140,12,14,180,51,116,1,132,232,1,179,41,122,114,149,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::algo_switch_on3_png = (const char*) resource_PluginGui_algo_switch_on3_png; const int PluginGui::algo_switch_on3_pngSize = 151; // JUCER_RESOURCE: twoopAm_png, 1872, "../img/Two-OP AM.png" static const unsigned char resource_PluginGui_twoopAm_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,183,0,0,0,171,8,6,0,0,0,36,122,13,127,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,7,10, 73,68,65,84,120,1,237,157,191,110,84,71,20,135,231,174,221,208,145,221,164,67,72,116,161,112,30,0,185,72,73,210,217,239,1,72,32,37,101,156,50,145,82,36,77,222,194,86,20,41,166,11,5,242,3,64,65,164,20, 150,44,58,194,138,138,10,103,178,70,1,123,61,123,175,239,222,57,103,207,153,217,143,6,239,253,115,230,204,247,251,52,26,95,175,215,77,216,31,199,80,235,191,102,244,125,216,249,103,175,214,233,49,175,110, 2,163,238,211,156,133,64,185,4,144,187,220,236,232,252,10,2,200,125,5,32,78,151,75,0,185,203,205,142,206,175,32,128,220,87,0,226,116,185,4,54,91,91,223,157,54,173,231,188,157,56,248,116,47,196,127,191, 243,214,22,253,216,18,96,229,182,229,207,232,138,4,144,91,17,46,165,109,9,32,183,45,127,70,87,36,128,220,138,112,41,109,75,0,185,109,249,51,186,34,1,228,86,132,75,105,91,2,200,109,203,159,209,21,9,32, 183,34,92,74,219,18,64,110,91,254,140,174,72,0,185,21,225,82,218,150,0,114,219,242,103,116,69,2,200,173,8,151,210,182,4,144,219,150,63,163,43,18,64,110,69,184,148,182,37,208,180,254,130,176,208,91,94, 155,237,141,122,127,1,121,65,118,241,233,105,57,111,21,94,208,127,77,135,88,185,107,74,147,185,204,17,64,238,57,28,188,168,137,64,251,111,226,40,204,242,214,157,155,10,85,237,75,30,31,157,216,55,65,7, 9,1,86,238,4,9,7,106,33,128,220,181,36,201,60,18,2,200,157,32,225,64,45,4,144,187,150,36,153,71,66,0,185,19,36,28,168,133,0,114,215,146,36,243,72,8,32,119,130,132,3,181,16,64,238,90,146,100,30,9,1,228, 78,144,112,160,22,2,200,93,75,146,204,35,33,128,220,9,18,14,212,66,0,185,107,73,146,121,36,4,144,59,65,194,129,90,8,32,119,45,73,50,143,132,0,114,39,72,56,80,11,1,228,174,37,73,230,145,16,64,238,4,9,7, 106,33,128,220,181,36,201,60,18,2,200,157,32,225,64,45,4,144,187,150,36,153,71,66,0,185,19,36,28,168,133,0,114,215,146,36,243,72,8,32,119,130,132,3,181,16,88,233,231,150,212,2,173,115,30,251,99,95,31, 31,39,244,177,120,157,115,118,122,146,149,219,105,48,180,149,79,160,125,229,62,152,252,144,95,126,86,225,167,55,34,101,40,2,129,101,9,180,203,29,227,55,203,22,227,122,8,120,34,192,182,196,83,26,244,34, 74,0,185,69,113,82,204,19,129,246,109,137,167,46,75,234,197,234,233,132,183,167,52,14,50,99,229,118,16,2,45,232,16,216,12,77,243,173,78,233,143,85,101,158,186,124,44,199,23,16,232,71,96,51,236,188,254, 177,223,165,3,175,218,222,64,238,129,232,184,45,143,0,219,146,60,126,220,237,152,0,114,59,14,135,214,242,8,32,119,30,63,238,118,76,0,185,29,135,67,107,121,4,144,59,143,31,119,59,38,128,220,142,195,161, 181,60,2,200,157,199,143,187,29,19,64,110,199,225,208,90,30,1,228,206,227,199,221,142,9,32,183,227,112,104,45,143,0,114,231,241,227,110,199,4,144,219,113,56,180,150,71,0,185,243,248,113,183,99,2,200,237, 56,28,90,203,35,128,220,121,252,184,219,49,1,228,118,28,14,173,229,17,64,238,60,126,220,237,152,0,114,59,14,135,214,242,8,32,119,30,63,238,118,76,0,185,29,135,67,107,121,4,86,250,185,37,199,71,39,121, 221,114,55,4,150,32,192,202,189,4,44,46,45,139,0,114,151,149,23,221,46,65,64,125,91,18,159,158,54,75,244,195,165,16,16,35,192,202,45,134,146,66,222,8,32,183,183,68,232,71,140,0,114,139,161,164,80,22,129, 131,241,31,225,247,201,231,89,53,46,221,140,220,151,128,240,210,136,64,12,95,133,119,241,121,216,159,252,28,30,223,24,75,116,129,220,18,20,169,33,67,32,134,217,3,142,120,63,188,125,251,119,56,152,220, 11,127,126,153,245,192,3,185,101,98,161,138,44,129,113,136,241,151,240,230,249,179,240,219,103,119,135,150,70,238,161,228,184,79,159,64,140,183,195,233,233,97,24,184,31,71,110,253,136,24,33,151,192,192, 253,56,114,231,130,231,254,213,16,24,176,31,71,238,213,68,195,40,114,4,122,239,199,145,91,14,58,149,86,73,224,226,126,124,127,114,123,209,208,188,239,99,17,149,18,143,173,243,159,234,107,194,187,16,154, 95,195,181,107,123,225,238,203,233,135,248,88,185,63,144,224,255,114,9,156,237,199,99,188,119,249,249,56,43,119,185,145,206,119,190,206,43,247,60,137,217,34,222,188,8,97,244,136,149,251,50,24,94,151,79, 32,134,247,139,54,114,151,31,37,51,56,39,48,13,163,230,65,248,100,107,43,236,188,58,204,250,217,253,121,77,190,130,128,33,129,228,27,202,39,239,155,65,110,195,76,86,50,244,238,180,140,239,171,134,127, 207,240,56,196,230,97,216,125,61,219,103,207,255,67,238,121,30,188,42,134,64,243,87,104,70,15,207,182,31,109,45,179,231,110,35,195,113,175,4,230,246,213,93,77,178,114,119,209,225,156,31,2,45,251,234,174, 6,145,187,139,14,231,188,16,104,221,87,119,53,136,220,93,116,56,103,75,224,255,31,198,116,237,171,187,26,100,207,221,69,135,115,86,4,166,179,159,50,222,15,215,183,190,24,42,246,89,227,172,220,86,241,49, 110,74,96,192,190,58,45,114,126,4,185,207,89,240,149,37,129,38,28,206,158,87,63,90,244,188,122,104,91,200,61,148,28,247,201,18,216,153,126,45,91,112,246,214,41,233,130,212,131,128,23,2,200,237,37,9,250, 16,39,160,190,45,105,182,55,162,120,215,142,11,242,169,182,126,194,97,229,246,147,5,157,8,19,64,110,97,160,148,243,67,64,125,91,114,113,170,183,238,220,188,248,178,154,175,249,91,63,62,163,100,229,246, 153,11,93,9,16,64,110,1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,0,185,5,32,82,194,39,1,228,246,153,11,93, 9,16,64,110,1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,0,185,5,32,82,194,39,1,228,246,153,11,93,9,16,64,110, 1,136,148,240,73,0,185,125,230,66,87,2,4,144,91,0,34,37,124,18,64,110,159,185,208,149,0,1,228,22,128,72,9,159,4,144,219,103,46,116,37,64,96,165,159,91,34,208,175,255,18,195,255,228,156,255,185,21,214, 33,43,119,97,129,209,110,127,2,200,221,159,21,87,22,70,0,185,11,11,140,118,251,19,64,238,254,172,184,178,48,2,200,93,88,96,180,219,159,0,79,75,250,179,234,119,229,238,180,233,119,33,87,105,19,96,229,214, 38,76,125,51,2,200,109,134,158,129,181,9,32,183,54,97,234,155,17,64,110,51,244,12,172,77,0,185,181,9,83,223,140,0,114,155,161,103,96,109,2,200,173,77,152,250,102,4,144,219,12,61,3,107,19,64,110,109,194, 212,55,35,128,220,102,232,25,88,155,0,114,107,19,166,190,25,1,228,54,67,207,192,218,4,144,91,155,48,245,205,8,32,183,25,122,6,214,38,128,220,218,132,169,111,70,0,185,205,208,51,176,54,1,228,214,38,76, 125,51,2,200,109,134,158,129,181,9,32,183,54,97,234,155,17,64,110,51,244,12,172,77,0,185,181,9,83,223,140,0,114,155,161,103,96,109,2,200,173,77,152,250,102,4,86,250,185,37,199,71,39,102,19,101,224,245, 35,192,202,189,126,153,175,205,140,145,123,109,162,94,191,137,254,7,149,161,178,110,197,68,224,25,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::twoopAm_png = (const char*) resource_PluginGui_twoopAm_png; const int PluginGui::twoopAm_pngSize = 1872; // JUCER_RESOURCE: twoopFm_png, 1203, "../img/Two-OP FM.png" static const unsigned char resource_PluginGui_twoopFm_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,219,0,0,0,81,8,6,0,0,0,91,168,211,254,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,4,109, 73,68,65,84,120,1,237,221,177,79,147,65,24,199,241,231,10,11,147,218,202,102,76,220,100,168,127,128,97,208,193,4,221,202,127,225,0,38,144,232,40,140,154,104,162,131,254,23,109,140,137,176,201,96,248,3, 100,208,196,129,132,184,41,13,46,76,224,249,86,36,185,148,247,170,190,125,142,222,221,251,197,193,151,123,233,241,220,231,233,47,111,175,77,139,145,110,211,74,174,95,166,177,46,157,239,107,185,46,143, 117,165,37,208,72,171,92,170,69,32,93,1,194,150,110,239,168,60,49,1,194,150,88,195,40,55,93,1,194,150,110,239,168,60,49,1,194,150,88,195,40,55,93,129,105,111,233,139,125,227,61,23,219,137,222,229,53,177, 63,31,199,86,22,245,32,224,10,112,101,115,53,56,70,32,160,0,97,11,136,203,212,8,184,2,132,205,213,224,24,129,128,2,132,45,32,46,83,35,224,10,16,54,87,131,99,4,2,10,16,182,128,184,76,141,128,43,64,216, 92,13,142,17,8,40,64,216,2,226,50,53,2,174,0,97,115,53,56,70,32,160,0,97,11,136,203,212,8,184,2,132,205,213,224,24,129,128,2,132,45,32,46,83,35,224,10,16,54,87,131,99,4,2,10,16,182,128,184,76,141,128, 43,96,188,31,248,163,244,22,27,51,63,149,239,7,10,185,146,127,142,237,135,227,137,188,53,9,231,146,102,68,54,196,149,45,178,134,80,78,190,2,132,45,223,222,178,178,200,4,252,239,212,14,80,232,181,155,87, 3,204,58,249,41,119,183,247,38,95,132,83,1,206,14,70,68,135,92,217,34,106,6,165,228,45,64,216,242,238,47,171,139,72,128,176,69,212,12,74,201,91,128,176,229,221,95,86,23,145,0,97,139,168,25,148,146,183, 0,97,203,187,191,172,46,34,1,194,22,81,51,40,37,111,1,194,150,119,127,89,93,68,2,132,45,162,102,80,74,222,2,132,45,239,254,178,186,136,4,8,91,68,205,160,148,188,5,8,91,222,253,101,117,17,9,16,182,136, 154,65,41,121,11,16,182,188,251,203,234,34,18,32,108,17,53,131,82,34,18,232,53,223,201,219,214,117,205,138,8,155,166,38,115,229,35,96,229,174,28,217,29,233,182,94,200,230,149,166,198,194,8,155,134,34, 115,228,41,96,165,120,115,181,93,150,195,195,47,210,107,45,201,251,91,99,189,217,154,176,229,121,55,97,85,186,2,77,177,246,165,28,236,124,148,55,179,11,85,167,38,108,85,229,184,93,253,4,172,157,147,227, 227,13,169,184,159,35,108,245,187,203,176,226,113,5,42,238,231,8,219,184,240,220,190,158,2,21,246,115,132,173,158,119,21,86,173,39,240,207,251,57,194,166,135,206,76,117,22,112,247,115,221,214,92,25,197, 88,79,101,150,77,88,251,177,110,115,50,31,183,254,252,71,189,232,39,229,252,55,229,193,126,206,216,59,197,75,5,175,101,102,102,77,22,190,246,79,111,194,149,237,84,130,255,17,208,18,24,236,231,172,93,26, 126,125,206,127,101,235,181,158,168,252,238,103,7,42,211,48,9,2,9,10,156,238,231,238,75,111,118,213,31,54,107,31,38,184,56,74,70,32,62,1,43,166,248,39,60,140,140,175,53,84,148,143,64,95,26,230,129,92, 106,183,165,243,109,195,127,101,203,103,193,172,4,129,243,21,48,114,36,98,156,39,72,182,126,255,126,194,166,221,6,165,63,34,249,223,101,213,236,143,78,74,104,231,234,207,118,110,138,53,43,178,184,255, 105,184,135,132,109,88,132,239,17,168,36,96,62,139,105,172,12,30,46,250,110,62,45,198,60,242,157,84,26,215,121,86,83,169,24,166,65,64,89,96,176,47,91,151,11,237,87,114,123,171,120,248,232,255,154,150, 206,254,83,255,105,133,51,243,83,132,77,129,145,41,34,19,240,236,203,70,85,201,195,200,81,58,156,67,160,92,192,187,47,43,255,241,147,81,194,54,74,135,115,8,184,2,198,20,79,122,52,86,71,237,203,220,31, 31,62,230,117,182,97,17,190,71,224,172,64,191,120,110,99,89,46,182,111,84,13,218,96,74,174,108,103,97,25,65,224,68,160,194,190,108,20,29,97,27,165,195,185,250,10,24,217,40,94,47,91,45,123,189,172,42,10, 97,171,42,199,237,242,22,232,244,239,105,47,144,61,155,182,40,243,33,224,17,32,108,30,24,134,17,208,22,32,108,218,162,204,135,128,71,128,176,121,96,24,70,64,91,128,176,105,139,50,31,2,30,1,194,230,129, 97,24,1,109,1,194,166,45,202,124,8,120,4,8,155,7,134,97,4,180,5,8,155,182,40,243,33,224,17,32,108,30,24,134,17,208,22,32,108,218,162,204,135,128,71,128,176,121,96,24,70,64,91,128,176,105,139,50,31,2,30, 1,194,230,129,97,24,1,109,129,115,125,139,205,238,246,158,118,253,204,87,34,128,115,9,74,4,67,92,217,34,104,2,37,212,67,128,176,213,163,207,172,50,2,129,95,213,163,177,117,99,210,56,193,0,0,0,0,73,69, 78,68,174,66,96,130,0,0}; const char* PluginGui::twoopFm_png = (const char*) resource_PluginGui_twoopFm_png; const int PluginGui::twoopFm_pngSize = 1203; // JUCER_RESOURCE: bassdrum_png, 234, "../img/bassdrum.png" static const unsigned char resource_PluginGui_bassdrum_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,176,73,68,65,84,72,75,237,151,193,17,128, 32,12,4,67,101,118,97,145,118,97,101,250,138,206,28,19,47,4,4,30,248,211,33,89,238,66,16,146,136,92,50,224,73,243,130,143,160,29,251,119,28,87,220,29,172,64,156,185,245,29,5,146,113,182,226,238,224,70, 138,30,3,140,124,185,226,5,182,186,162,210,153,215,106,111,162,194,213,107,213,122,129,69,200,86,151,149,220,91,34,24,199,173,222,0,117,194,251,2,59,219,111,66,171,181,182,88,211,223,251,184,27,24,149, 48,112,112,53,43,198,254,31,119,7,51,160,78,185,185,226,105,193,149,74,237,26,51,197,205,193,184,39,235,212,180,143,75,143,185,238,115,245,48,112,240,194,16,13,227,55,137,104,102,18,119,3,1,34,108,1,9, 174,221,30,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; const char* PluginGui::bassdrum_png = (const char*) resource_PluginGui_bassdrum_png; const int PluginGui::bassdrum_pngSize = 234; // JUCER_RESOURCE: snare_png, 261, "../img/snare.png" static const unsigned char resource_PluginGui_snare_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,203,73,68,65,84,72,75,237,150,209,13,131,48, 12,5,195,100,221,162,67,118,11,38,43,63,88,149,94,244,240,65,80,172,86,229,51,56,62,46,137,77,150,214,218,187,21,60,203,239,128,31,251,242,173,199,203,120,191,241,237,224,151,49,120,238,227,14,104,198, 185,241,52,176,130,194,76,197,79,154,198,116,111,60,29,28,64,103,24,159,76,77,77,190,222,120,58,152,2,93,121,102,101,36,249,63,198,229,224,48,202,246,152,246,119,115,72,123,227,50,112,152,210,114,82,115, 55,15,239,113,25,56,76,92,171,204,246,88,207,8,54,46,7,103,102,244,253,105,99,154,56,139,251,131,187,203,222,104,235,116,117,45,167,252,250,223,41,219,83,173,138,20,236,202,136,246,110,216,120,198,111, 32,180,101,74,220,248,101,79,193,112,101,190,0,76,15,19,140,227,198,48,33,13,219,0,129,40,94,1,181,64,195,180,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; const char* PluginGui::snare_png = (const char*) resource_PluginGui_snare_png; const int PluginGui::snare_pngSize = 261; // JUCER_RESOURCE: disabled_png, 210, "../img/disabled.png" static const unsigned char resource_PluginGui_disabled_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,152,73,68,65,84,72,75,237,150,81,10,128,48, 12,67,187,75,122,72,47,169,63,78,161,48,146,148,97,55,168,95,194,218,62,147,56,93,51,179,203,18,174,86,224,191,92,47,171,63,167,207,231,246,8,154,15,250,199,86,167,129,187,80,245,1,200,122,252,114,145, 131,222,64,200,122,12,102,149,147,192,62,110,3,240,72,185,168,84,87,156,14,102,51,7,219,159,207,216,15,10,90,188,161,213,94,105,80,57,111,53,2,160,117,23,213,194,96,81,137,145,245,88,49,57,104,222,183, 90,5,138,219,109,225,255,113,240,0,130,218,112,198,104,66,112,189,192,65,227,244,182,52,171,111,130,58,64,1,51,47,73,27,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; const char* PluginGui::disabled_png = (const char*) resource_PluginGui_disabled_png; const int PluginGui::disabled_pngSize = 210; // JUCER_RESOURCE: tom_png, 231, "../img/tom.png" static const unsigned char resource_PluginGui_tom_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,174,73,68,65,84,72,75,237,150,209,13,128,32,12, 68,203,100,110,225,144,110,225,100,250,3,124,212,92,238,8,132,134,136,223,109,31,119,133,214,100,102,143,5,124,105,29,240,5,236,57,219,108,107,87,60,13,236,65,72,153,26,151,141,225,138,213,130,106,28, 5,151,66,141,189,171,157,38,249,88,113,56,216,95,86,181,199,37,15,196,115,197,97,96,127,98,245,57,13,239,113,24,88,29,80,195,21,111,48,114,96,91,237,156,225,3,228,63,179,186,88,163,174,59,53,142,174,197, 48,240,145,201,183,187,21,234,200,68,249,84,241,116,48,57,105,213,223,25,247,125,78,157,5,63,131,12,212,227,63,123,104,36,170,7,4,249,11,130,213,245,56,92,113,39,248,5,18,169,84,1,245,238,241,237,0,0, 0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::tom_png = (const char*) resource_PluginGui_tom_png; const int PluginGui::tom_pngSize = 231; // JUCER_RESOURCE: hihat_png, 189, "../img/hihat.png" static const unsigned char resource_PluginGui_hihat_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,131,73,68,65,84,72,75,99,100,96,96,248,207,48, 0,128,113,212,98,122,133,58,249,65,109,15,117,226,65,242,156,58,106,49,241,225,70,247,160,94,133,195,109,97,196,187,25,164,146,244,56,166,186,197,184,12,36,205,35,132,85,67,67,6,225,227,1,179,152,176, 91,169,170,130,244,56,166,146,245,131,32,168,7,125,28,83,61,59,17,27,119,3,102,49,204,129,116,47,50,71,45,30,109,8,16,153,59,200,47,50,71,83,53,145,65,12,83,54,4,131,154,68,31,162,43,39,223,199,20,90, 12,0,73,108,52,1,92,98,8,34,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0}; const char* PluginGui::hihat_png = (const char*) resource_PluginGui_hihat_png; const int PluginGui::hihat_pngSize = 189; // JUCER_RESOURCE: cymbal_png, 237, "../img/cymbal.png" static const unsigned char resource_PluginGui_cymbal_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,30,0,0,0,30,8,6,0,0,0,59,48,174,162,0,0,0,178,73,68,65,84,72,75,237,149,209,13,128,48, 8,5,233,100,110,225,144,110,225,100,250,97,209,4,67,30,164,21,108,82,127,140,161,114,61,68,90,136,232,160,132,171,76,112,84,213,227,74,189,84,165,253,186,15,0,222,140,31,97,21,235,132,41,71,237,198,97, 96,9,146,38,168,0,138,41,54,14,7,51,208,107,200,42,192,84,55,14,7,123,129,70,179,187,21,68,254,167,171,127,15,102,83,217,213,117,34,169,205,222,108,156,6,70,255,175,22,111,54,238,14,230,132,222,38,67, 27,81,242,189,103,117,26,88,154,243,179,117,146,25,71,173,126,58,25,19,188,42,109,124,239,251,99,81,233,129,1,192,168,123,157,113,187,177,51,49,90,62,193,168,66,221,226,105,165,62,1,75,77,70,1,212,184, 6,141,0,0,0,0,73,69,78,68,174,66,96,130,0,0,0,0}; const char* PluginGui::cymbal_png = (const char*) resource_PluginGui_cymbal_png; const int PluginGui::cymbal_pngSize = 237; // JUCER_RESOURCE: adlib_png, 1605, "../img/adlib.png" static const unsigned char resource_PluginGui_adlib_png[] = { 137,80,78,71,13,10,26,10,0,0,0,13,73,72,68,82,0,0,0,85,0,0,0,87,8,2,0,0,0,250,95,158,6,0,0,0,1,115,82,71,66,0,174,206,28,233,0,0,0,4,103,65, 77,65,0,0,177,143,11,252,97,5,0,0,0,9,112,72,89,115,0,0,14,195,0,0,14,195,1,199,111,168,100,0,0,5,218,73,68,65,84,120,94,237,156,107,79,34,73,20,134,253,15,26,227,7,163,162,130,220,193,75,54,222,88,84, 226,10,49,198,104,212,168,49,70,116,8,1,1,47,136,72,200,122,93,64,205,70,252,201,251,174,117,166,211,67,87,99,119,139,125,153,244,243,145,145,234,122,207,121,79,213,169,238,102,186,108,108,108,108,108, 108,108,108,108,108,100,137,70,163,139,139,139,127,118,148,165,165,165,191,20,19,143,199,167,166,166,104,54,250,51,61,61,93,171,213,26,141,198,63,50,188,190,190,254,171,134,247,247,247,108,54,171,60,4, 6,235,7,161,80,232,250,250,250,246,246,246,111,9,143,143,143,137,68,2,243,251,67,49,179,179,179,61,61,61,52,180,85,184,188,188,124,120,120,32,209,34,52,232,7,8,129,134,42,192,23,105,54,250,19,14,135,171, 213,234,253,253,61,233,22,129,16,104,171,130,92,46,167,170,10,140,212,15,2,129,64,169,84,146,171,130,213,213,85,181,85,208,219,219,75,67,91,133,124,62,15,169,36,90,132,6,253,128,85,1,54,23,74,177,2,224, 2,172,199,52,27,253,9,6,131,149,74,165,77,21,188,188,188,144,191,149,129,42,40,20,10,202,67,96,176,126,224,243,249,138,197,162,92,21,172,173,173,77,78,78,82,126,21,0,11,244,245,245,209,208,86,33,147,201, 200,85,129,90,253,64,91,21,224,91,52,27,253,193,66,136,237,240,238,238,142,116,139,208,86,5,205,102,243,252,252,92,85,21,24,169,31,164,211,233,167,167,39,18,253,43,104,19,214,215,215,21,186,64,72,254, 240,240,48,13,109,9,252,126,255,197,197,5,215,2,202,245,91,178,248,5,82,169,84,27,11,252,127,48,144,225,249,249,153,217,30,139,63,130,56,58,58,74,35,90,11,108,4,56,20,112,155,98,1,105,32,32,254,248,248, 152,217,30,44,47,47,187,221,110,26,209,114,96,234,103,103,103,220,42,0,16,191,185,185,217,82,8,80,222,221,221,77,223,255,13,72,38,147,200,42,41,254,21,174,126,32,36,95,14,85,123,225,202,202,74,52,26,165, 217,232,143,199,227,185,186,186,146,171,2,124,174,97,47,196,128,202,67,96,176,126,224,114,185,208,17,114,59,34,232,223,218,218,82,213,17,205,204,204,12,12,12,208,208,86,193,233,116,226,104,36,93,8,52, 232,7,8,129,134,42,192,223,211,108,12,225,224,224,128,187,16,32,4,248,92,67,21,96,115,81,85,5,6,235,31,27,27,203,229,114,114,29,209,206,206,142,218,42,24,26,26,162,161,173,194,222,222,94,173,86,35,209, 34,52,232,7,218,170,32,22,139,209,108,244,7,11,33,250,57,185,133,144,53,63,228,111,101,160,10,110,110,110,84,85,129,145,250,193,200,200,72,54,155,149,171,130,221,221,221,137,137,9,202,175,2,96,1,12,72, 67,91,133,237,237,109,185,42,80,171,31,176,42,88,88,88,160,20,43,0,46,64,91,77,179,209,31,156,103,208,20,115,143,70,218,170,224,237,237,173,90,173,42,15,129,193,250,129,195,225,200,100,50,220,219,132, 248,112,127,127,255,83,23,176,180,51,160,28,199,109,26,218,42,108,108,108,212,235,117,18,45,66,137,126,75,110,126,45,96,221,66,71,200,173,2,132,0,85,192,165,209,104,192,240,172,249,193,74,62,62,62,78, 195,89,145,193,193,193,116,58,205,173,2,32,141,2,196,99,239,16,182,253,120,60,110,109,253,0,235,144,156,5,208,47,183,84,1,148,247,247,247,211,55,173,14,118,129,72,36,242,227,199,15,110,254,185,250,1,66, 208,210,237,192,5,104,28,105,80,75,128,46,112,126,126,30,78,134,159,229,204,15,152,255,91,246,66,233,225,223,74,250,221,110,55,148,99,217,107,175,92,0,127,115,120,120,40,118,1,242,111,189,195,63,240,122, 189,115,115,115,104,123,160,92,238,118,160,20,169,126,192,214,63,182,4,146,7,62,128,17,240,175,116,61,243,128,206,4,202,113,236,81,165,92,128,91,5,64,122,254,55,163,126,24,190,84,42,105,83,46,128,16,28, 29,29,73,93,96,246,22,200,227,241,124,122,255,95,9,92,253,128,21,130,180,10,12,126,254,205,128,248,114,185,252,117,241,12,86,5,240,17,185,255,39,210,243,191,41,244,251,124,190,14,138,103,32,4,199,199, 199,210,42,48,221,249,63,16,8,84,42,149,206,138,7,92,253,128,85,65,203,225,23,46,152,53,234,249,247,233,233,41,247,14,215,215,145,171,2,233,249,223,48,253,193,96,80,238,229,151,142,128,125,4,45,51,142, 61,148,253,15,96,1,167,211,73,51,48,22,185,247,191,58,5,87,63,64,8,164,37,128,190,131,166,165,15,161,80,72,238,253,191,14,130,16,40,44,1,189,245,163,189,253,214,228,51,160,63,149,74,181,88,0,123,158,193, 37,16,14,135,117,72,62,224,234,7,200,54,165,254,3,189,243,143,101,175,227,123,158,28,112,25,249,254,39,198,251,31,219,30,246,39,154,224,119,98,70,255,99,54,104,245,117,48,63,48,163,255,219,188,225,241, 29,152,206,255,133,66,65,31,243,3,51,250,223,112,253,45,253,15,146,175,107,255,171,155,126,238,17,192,248,254,95,31,253,184,196,201,201,137,116,229,51,190,255,55,92,191,144,124,100,222,128,251,31,58,172, 255,92,231,131,102,179,89,169,84,12,214,143,156,124,235,254,15,241,201,100,82,122,243,3,32,249,166,184,5,36,247,251,191,142,32,167,31,226,133,155,63,200,60,62,161,217,232,207,119,156,127,152,231,25,220, 71,0,229,114,89,184,249,105,176,126,208,217,243,47,196,115,31,129,10,32,249,14,135,131,174,109,6,66,161,16,246,97,204,155,20,124,141,54,250,153,237,65,44,22,195,31,208,229,205,0,187,249,171,57,4,88,65, 200,238,31,112,95,132,18,63,2,134,231,205,165,31,248,124,62,109,247,191,241,21,37,239,191,153,206,246,82,180,61,255,104,163,95,252,139,8,100,222,227,241,208,149,76,11,123,254,85,175,215,113,92,33,125, 34,90,124,46,32,103,120,241,143,255,18,137,68,48,24,164,203,152,25,204,18,39,240,98,177,136,166,13,218,132,64,64,188,242,223,255,129,72,36,98,118,195,183,193,239,247,163,63,65,209,34,135,44,16,224,83, 253,130,225,145,118,203,191,234,199,240,122,189,16,131,64,228,243,121,114,182,12,226,255,255,3,110,183,240,239,223,184,184,92,46,4,130,165,151,11,148,255,62,239,185,217,216,216,216,216,88,133,174,174, 255,0,140,50,58,48,137,109,192,72,0,0,0,0,73,69,78,68,174,66,96,130,0,0}; const char* PluginGui::adlib_png = (const char*) resource_PluginGui_adlib_png; const int PluginGui::adlib_pngSize = 1605; // JUCER_RESOURCE: gui_svg, 25404, "../Media/gui.svg" static const unsigned char resource_PluginGui_gui_svg[] = { 60,63,120,109,108,32,118,101,114,115,105,111,110,61,34,49,46,48,34,32,101,110,99,111,100,105,110,103,61,34,85,84,70,45,56,34,32,115,116,97,110, 100,97,108,111,110,101,61,34,110,111,34,63,62,10,60,33,68,79,67,84,89,80,69,32,115,118,103,32,80,85,66,76,73,67,32,34,45,47,47,87,51,67,47,47,68,84,68,32,83,86,71,32,49,46,49,47,47,69,78,34,32,34,104, 116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,71,114,97,112,104,105,99,115,47,83,86,71,47,49,46,49,47,68,84,68,47,115,118,103,49,49,46,100,116,100,34,62,10,60,115,118,103,32,119,105,100, 116,104,61,34,49,48,48,37,34,32,104,101,105,103,104,116,61,34,49,48,48,37,34,32,118,105,101,119,66,111,120,61,34,48,32,48,32,56,54,48,32,53,56,48,34,32,118,101,114,115,105,111,110,61,34,49,46,49,34,32, 120,109,108,110,115,61,34,104,116,116,112,58,47,47,119,119,119,46,119,51,46,111,114,103,47,50,48,48,48,47,115,118,103,34,32,120,109,108,110,115,58,120,108,105,110,107,61,34,104,116,116,112,58,47,47,119, 119,119,46,119,51,46,111,114,103,47,49,57,57,57,47,120,108,105,110,107,34,32,120,109,108,58,115,112,97,99,101,61,34,112,114,101,115,101,114,118,101,34,32,120,109,108,110,115,58,115,101,114,105,102,61, 34,104,116,116,112,58,47,47,119,119,119,46,115,101,114,105,102,46,99,111,109,47,34,32,115,116,121,108,101,61,34,102,105,108,108,45,114,117,108,101,58,101,118,101,110,111,100,100,59,99,108,105,112,45,114, 117,108,101,58,101,118,101,110,111,100,100,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,114,111,117,110,100,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,114,111,117,110, 100,59,115,116,114,111,107,101,45,109,105,116,101,114,108,105,109,105,116,58,49,46,53,59,34,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48, 44,54,46,57,56,55,57,53,44,48,44,48,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,34,32,121,61,34,48,34,32,119,105,100,116,104,61,34,56,54,48,34,32,104,101,105,103,104,116,61,34, 56,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,53,44,49,53,44,49,53,41,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, 34,109,97,116,114,105,120,40,49,46,48,48,51,54,52,44,48,44,48,44,49,46,50,56,57,57,56,44,45,50,46,48,55,50,55,51,44,45,49,51,46,48,48,56,51,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120, 61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103, 98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,55,51,112,120,59,34,47,62,10,32,32,32,32,60,47, 103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,55,56,55,56,55,57,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,53,46,52,50,52,50,44,49,48,46, 52,52,51,56,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56, 46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116, 104,58,49,55,46,48,56,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102, 111,114,109,61,34,109,97,116,114,105,120,40,48,46,52,56,57,54,57,55,44,48,44,48,44,54,46,57,57,48,56,52,44,56,46,50,48,54,48,54,44,45,53,51,46,51,54,55,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101, 99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108, 58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,48,46,52,112,120,59,34,47,62,10,32,32,32, 32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,52,56,57,54,57,55,44,48,44,48,44,54,46,57,57,48,56,52,44,52,51,50,46,50,48,54,44,45,53, 51,46,51,54,55,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34, 52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45, 119,105,100,116,104,58,48,46,52,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,49,54,57,54,57,55,44,48, 44,48,44,50,46,50,56,56,54,55,44,55,48,50,46,54,48,54,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100, 116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98, 40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, 61,34,109,97,116,114,105,120,40,48,46,50,50,55,56,55,57,44,48,44,48,44,50,46,50,56,56,54,55,44,52,57,51,46,52,52,50,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120, 61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103, 98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47, 103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,50,51,56,49,51,44,48,44,48,44,50,46,50,56,56,54,55,44,50,55,54,46,57,50,51,44,51,57,57,46,48,56, 50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54, 51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44,51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116, 104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,50,57,52,57,48,51,44,48,44,48,44,50, 46,50,56,56,54,55,44,49,50,46,55,52,50,53,44,51,57,57,46,48,56,50,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61, 34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,51,48,44, 51,48,44,51,48,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,46,50,51,112,120,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, 97,116,114,105,120,40,48,46,48,56,57,54,57,55,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,53,46,50,48,54,49,44,56,57,46,57,53,48,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34, 50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, 49,44,48,44,49,41,59,115,116,114,111,107,101,58,98,108,97,99,107,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,54,46,53,52,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58, 115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111, 114,109,61,34,109,97,116,114,105,120,40,48,46,48,54,53,52,53,52,53,44,48,44,48,44,48,46,49,52,53,54,52,50,44,52,53,49,46,54,57,49,44,56,57,46,52,50,57,55,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101, 99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108, 58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,55,46,55,49,112,120,59,34,47,62,10,32,32,32,32, 60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,56,56,52,49,56,52,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,56,57,46,50,51,50,44,52, 52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34, 52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105, 100,116,104,58,49,54,46,54,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114, 59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,57,51,50,54,54,57,44,48,44,48,44,48,46,49,52,53,54,52,50,44, 53,48,53,46,49,51,53,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104, 101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116, 114,111,107,101,45,119,105,100,116,104,58,49,54,46,51,53,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111, 105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46,48,51,54,53,54,51,49,44,48,44,48, 44,48,46,49,52,53,54,52,50,44,55,49,51,46,49,49,51,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48,46,57,51,55,34,32,119,105,100, 116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,58,114,103,98, 40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,56,46,56,52,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97,114,101,59,115,116,114,111,107, 101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,48,46, 49,48,53,51,56,56,44,48,44,48,44,48,46,49,52,53,54,52,50,44,50,51,46,56,57,50,50,44,52,52,51,46,57,53,49,41,34,62,10,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,50,48,34,32,121,61,34,50,48, 46,57,51,55,34,32,119,105,100,116,104,61,34,56,50,53,34,32,104,101,105,103,104,116,61,34,52,56,46,48,54,51,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,49,44,48,44,49,41,59,115,116, 114,111,107,101,58,114,103,98,40,49,44,48,44,49,41,59,115,116,114,111,107,101,45,119,105,100,116,104,58,49,53,46,55,51,112,120,59,115,116,114,111,107,101,45,108,105,110,101,99,97,112,58,115,113,117,97, 114,101,59,115,116,114,111,107,101,45,108,105,110,101,106,111,105,110,58,109,105,116,101,114,59,34,47,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, 97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,54,46,56,48,56,44,45,56,52,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56, 44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53, 53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44, 45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48, 46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52, 54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56, 67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48, 46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44, 45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10, 32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,55,50,44,49,48, 52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44,45,48,46,51,76,48,46,50,55,53,44,48, 76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44, 45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111, 110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49, 56,44,49,57,50,46,52,53,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50, 51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48, 46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108, 58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103, 32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,57,46,55,56,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112, 97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48,46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44,45,48,46, 50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101,61,34,102, 105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, 32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,55,46,52,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,60,112,97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48,46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44, 45,48,46,50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101, 61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32, 32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,53,46,49,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55, 76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45, 48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, 122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, 50,50,49,46,55,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48, 46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53, 48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, 114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,55,46,56,56,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48, 46,48,50,54,44,45,48,46,53,51,50,67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49,67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50, 49,57,44,45,48,46,48,57,51,32,48,46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48,46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55, 44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48,55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46, 48,48,56,67,48,46,50,57,53,44,48,46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48,46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53, 32,48,46,49,51,54,44,45,48,46,53,51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54,48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48, 46,50,52,54,44,45,48,46,53,56,57,32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48, 46,54,52,52,32,48,46,50,57,53,44,45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44,45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53, 51,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32, 32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,55,44,45,52,46,56,48,49, 48,56,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34, 62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,51,44,45,48,46,50,48,51,76,48,46,49,57,50,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48, 76,48,46,49,51,53,44,48,76,48,46,49,51,53,44,45,48,46,52,57,53,76,48,46,50,49,55,44,48,76,48,46,51,50,49,44,48,76,48,46,51,57,55,44,45,48,46,53,48,50,76,48,46,51,57,55,44,48,76,48,46,53,48,49,44,48,76, 48,46,53,48,49,44,45,48,46,55,76,48,46,51,52,56,44,45,48,46,55,76,48,46,50,55,51,44,45,48,46,50,48,51,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41, 59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, 97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,55,46,53,54,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45, 48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32, 48,46,51,54,53,44,45,48,46,48,53,54,32,48,46,51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46, 49,57,56,44,45,48,46,55,48,56,67,48,46,48,57,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52, 49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44, 45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48, 46,48,57,50,67,48,46,49,54,51,44,45,48,46,48,57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54, 53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, 115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,52,46,54,57,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61, 34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,50,49,52,44,48,67,48,46,51,50,52,44,48,32,48,46,51,55,56,44,45,48,46,48,54,49,32,48,46,51,55,56,44,45,48,46,49,55,51,76,48,46,51,55,56,44, 45,48,46,53,50,55,67,48,46,51,55,56,44,45,48,46,54,51,57,32,48,46,51,50,52,44,45,48,46,55,32,48,46,50,49,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,49, 50,44,45,48,46,54,67,48,46,50,52,55,44,45,48,46,54,32,48,46,50,54,56,44,45,48,46,53,56,50,32,48,46,50,54,56,44,45,48,46,53,51,50,76,48,46,50,54,56,44,45,48,46,49,54,56,67,48,46,50,54,56,44,45,48,46,49, 49,56,32,48,46,50,52,55,44,45,48,46,49,32,48,46,50,49,50,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, 54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, 115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,50,46,48,51,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100, 61,34,77,48,46,49,52,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,49,54,55,67,48,46,48,51,53,44,45,48,46,48,53,53,32,48,46,48,57,49,44,48,46,48,48,57,32,48,46,49,57, 57,44,48,46,48,48,57,67,48,46,51,48,55,44,48,46,48,48,57,32,48,46,51,54,51,44,45,48,46,48,53,53,32,48,46,51,54,51,44,45,48,46,49,54,55,76,48,46,51,54,51,44,45,48,46,55,76,48,46,50,53,57,44,45,48,46,55, 76,48,46,50,53,57,44,45,48,46,49,54,67,48,46,50,53,57,44,45,48,46,49,49,32,48,46,50,51,55,44,45,48,46,48,57,50,32,48,46,50,48,50,44,45,48,46,48,57,50,67,48,46,49,54,55,44,45,48,46,48,57,50,32,48,46,49, 52,53,44,45,48,46,49,49,32,48,46,49,52,53,44,45,48,46,49,54,76,48,46,49,52,53,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, 108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, 105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,57,46,49,57,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48, 46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102, 105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, 32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,53,46,51,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32, 60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49, 50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48, 46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, 122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, 50,50,50,46,54,50,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49, 50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55, 90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32, 32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,57,46,48,51,52,44,49,48,52,46,55,57,51,41, 34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46, 48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46,51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48, 46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52, 52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56, 32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48, 46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48,57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49, 52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34, 47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,51,54,46,49,54,50, 44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55, 44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51, 52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55, 32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46, 50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46, 50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50, 53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44, 45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122, 101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44, 49,44,50,55,57,44,45,52,46,56,48,49,48,56,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56, 50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53, 53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44, 45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48, 46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52, 54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56, 32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46, 49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121, 108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10, 32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56,52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46, 49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48,76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76, 48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117, 108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56, 44,48,44,48,44,49,56,44,49,57,50,46,48,57,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46, 51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48, 46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53, 51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45, 48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54, 67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48, 46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49, 57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, 108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, 105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,57,46,51,51,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56, 50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46, 51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54, 57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76, 48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44, 45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44, 45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51, 56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44, 54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, 61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,54,46,53,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32, 121,61,34,45,48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54, 53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, 34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,57,46,57,57,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45, 48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48, 46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116, 121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, 10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,54,46,54,49,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32, 32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48, 46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53, 32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48, 54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56, 53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55, 44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57, 44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46, 54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32, 32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,45,49,52,54,46,57,50,57,44,51,52,55, 46,57,57,49,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51, 41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46, 55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46, 51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, 45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, 40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,52,52,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,51,56,57,76,48,46, 49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,57,76,48, 46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54, 53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, 34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,48,46,54,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45, 48,46,51,56,57,76,48,46,49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44, 45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40, 54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110, 115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,54,46,56,51,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100, 61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44, 48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48, 46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32, 32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,51,46,52,53,54,44,49,48,52,46, 55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54, 49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32, 48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46, 50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53, 57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44, 45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48, 48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105, 108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32, 32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,48,46,52,48,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32, 32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44, 45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44, 54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109, 61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,57,46,54,48,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52, 44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,50,49,52,44,48,67,48,46,51,50,52,44,48,32,48,46,51,55,56,44,45,48,46,48,54,49,32,48,46,51,55,56,44,45,48,46,49,55,51,76,48,46,51,55,56,44,45,48,46,53,50,55, 67,48,46,51,55,56,44,45,48,46,54,51,57,32,48,46,51,50,52,44,45,48,46,55,32,48,46,50,49,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,49,50,44,45,48,46,54, 67,48,46,50,52,55,44,45,48,46,54,32,48,46,50,54,56,44,45,48,46,53,56,50,32,48,46,50,54,56,44,45,48,46,53,51,50,76,48,46,50,54,56,44,45,48,46,49,54,56,67,48,46,50,54,56,44,45,48,46,49,49,56,32,48,46,50, 52,55,44,45,48,46,49,32,48,46,50,49,50,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48, 44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114, 109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,50,54,46,57,52,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49, 53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52, 44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34, 32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32, 60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,51,51,46,53,55,44,49,48,52,46,55,57,51,41,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,50,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50, 54,51,76,48,46,50,48,50,44,45,48,46,50,54,51,67,48,46,51,49,50,44,45,48,46,50,54,51,32,48,46,51,54,54,44,45,48,46,51,50,52,32,48,46,51,54,54,44,45,48,46,52,51,54,76,48,46,51,54,54,44,45,48,46,53,50,55, 67,48,46,51,54,54,44,45,48,46,54,51,57,32,48,46,51,49,50,44,45,48,46,55,32,48,46,50,48,50,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,50,44,45,48,46,54,67,48,46,50,51,55,44,45,48,46, 54,32,48,46,50,53,54,44,45,48,46,53,56,52,32,48,46,50,53,54,44,45,48,46,53,51,52,76,48,46,50,53,54,44,45,48,46,52,50,57,67,48,46,50,53,54,44,45,48,46,51,55,57,32,48,46,50,51,55,44,45,48,46,51,54,51,32, 48,46,50,48,50,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41, 59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109, 97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,52,48,46,52,52,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45, 48,46,55,76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51, 52,56,44,45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111, 110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49, 56,44,50,52,54,46,56,53,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44, 45,48,46,51,76,48,46,50,55,53,44,48,76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49, 53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, 108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34, 109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,49,49,56,46,52,51,54,44,51,52,55,46,57,57,49,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, 120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,57,54,44,48,76,48,46,50,56, 52,44,45,48,46,55,76,48,46,49,50,51,44,45,48,46,55,76,48,46,48,49,49,44,48,76,48,46,49,49,50,44,48,76,48,46,49,51,49,44,45,48,46,49,50,55,76,48,46,50,54,54,44,45,48,46,49,50,55,76,48,46,50,56,53,44,48, 76,48,46,51,57,54,44,48,90,77,48,46,49,52,53,44,45,48,46,50,50,50,76,48,46,49,57,56,44,45,48,46,53,55,54,76,48,46,50,53,49,44,45,48,46,50,50,50,76,48,46,49,52,53,44,45,48,46,50,50,50,90,34,32,115,116, 121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, 10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,53,46,49,53,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46, 49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110, 122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44, 49,57,49,46,50,53,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,53,44,45,48,46,51,57,76,48,46,50,48,53,44,45,48,46,50,57,76,48, 46,50,53,53,44,45,48,46,50,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54, 51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44, 45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48, 46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46,51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55, 48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54, 32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46,48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53, 57,44,45,48,46,51,57,76,48,46,50,48,53,44,45,48,46,51,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, 111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, 49,56,44,49,57,56,46,50,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46, 49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46, 51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57, 44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44, 45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48, 46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48, 57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, 45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, 40,49,56,44,48,44,48,44,49,56,44,50,48,53,46,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48, 46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46,51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45, 48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44,45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46, 53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44, 45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44,45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56, 54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32, 48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57,67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46, 49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102, 105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116, 114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,50,46,54,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32,121,61,34,45, 48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102, 105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116, 114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,54,46,48,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,48,56,44,45,48,46,55, 76,48,46,48,48,56,44,45,48,46,54,76,48,46,49,50,51,44,45,48,46,54,76,48,46,49,50,51,44,48,76,48,46,50,51,51,44,48,76,48,46,50,51,51,44,45,48,46,54,76,48,46,51,52,56,44,45,48,46,54,76,48,46,51,52,56,44, 45,48,46,55,76,48,46,48,48,56,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122, 101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50, 50,50,46,52,54,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,51,76,48,46,50,55,53,44,45,48,46, 51,76,48,46,50,55,53,44,48,76,48,46,51,56,55,44,48,76,48,46,51,56,55,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,55,76,48,46,50,55,53,44,45,48,46,52,76,48,46,49,53,44,45,48,46,52,76,48,46,49,53,44,45, 48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45, 114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, 40,49,56,44,48,44,48,44,49,56,44,50,51,48,46,49,53,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,51,44,45,48,46,50,48,51,76,48,46, 49,57,50,44,45,48,46,55,76,48,46,48,51,57,44,45,48,46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,53,44,48,76,48,46,49,51,53,44,45,48,46,52,57,53,76,48,46,50,49,55,44,48,76,48,46,51,50,49,44,48,76,48,46, 51,57,55,44,45,48,46,53,48,50,76,48,46,51,57,55,44,48,76,48,46,53,48,49,44,48,76,48,46,53,48,49,44,45,48,46,55,76,48,46,51,52,56,44,45,48,46,55,76,48,46,50,55,51,44,45,48,46,50,48,51,90,34,32,115,116, 121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, 10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,51,51,52,46,54,52,52,44,51,52,56,46,52,57,50,41,34,62,10, 32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,48,50,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,54,51,76,48, 46,50,48,50,44,45,48,46,50,54,51,67,48,46,51,49,50,44,45,48,46,50,54,51,32,48,46,51,54,54,44,45,48,46,51,50,52,32,48,46,51,54,54,44,45,48,46,52,51,54,76,48,46,51,54,54,44,45,48,46,53,50,55,67,48,46,51, 54,54,44,45,48,46,54,51,57,32,48,46,51,49,50,44,45,48,46,55,32,48,46,50,48,50,44,45,48,46,55,90,77,48,46,49,53,44,45,48,46,54,76,48,46,50,48,50,44,45,48,46,54,67,48,46,50,51,55,44,45,48,46,54,32,48,46, 50,53,54,44,45,48,46,53,56,52,32,48,46,50,53,54,44,45,48,46,53,51,52,76,48,46,50,53,54,44,45,48,46,52,50,57,67,48,46,50,53,54,44,45,48,46,51,55,57,32,48,46,50,51,55,44,45,48,46,51,54,51,32,48,46,50,48, 50,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,51,54,51,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, 108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, 120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,55,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46, 49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44, 45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102, 105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32, 32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,49,46,51,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32, 32,32,60,112,97,116,104,32,100,61,34,77,48,46,50,55,44,48,76,48,46,51,56,50,44,48,67,48,46,51,55,49,44,45,48,46,48,50,54,32,48,46,51,55,44,45,48,46,48,53,49,32,48,46,51,55,44,45,48,46,48,56,53,76,48,46, 51,55,44,45,48,46,49,57,51,67,48,46,51,55,44,45,48,46,50,54,54,32,48,46,51,53,50,44,45,48,46,51,49,57,32,48,46,50,57,55,44,45,48,46,51,52,50,67,48,46,51,52,54,44,45,48,46,51,54,53,32,48,46,51,54,57,44, 45,48,46,52,49,50,32,48,46,51,54,57,44,45,48,46,52,56,52,76,48,46,51,54,57,44,45,48,46,53,51,57,67,48,46,51,54,57,44,45,48,46,54,52,55,32,48,46,51,50,44,45,48,46,55,32,48,46,50,48,54,44,45,48,46,55,76, 48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56,53,76,48,46,49,56,56,44,45,48,46,50,56,53,67,48,46,50,51,56,44,45,48,46,50,56,53,32,48,46,50,54,44, 45,48,46,50,54,49,32,48,46,50,54,44,45,48,46,49,57,54,76,48,46,50,54,44,45,48,46,48,56,54,67,48,46,50,54,44,45,48,46,48,50,57,32,48,46,50,54,52,44,45,48,46,48,49,56,32,48,46,50,55,44,48,90,77,48,46,49, 53,44,45,48,46,54,76,48,46,50,48,51,44,45,48,46,54,67,48,46,50,52,50,44,45,48,46,54,32,48,46,50,53,57,44,45,48,46,53,55,56,32,48,46,50,53,57,44,45,48,46,53,50,56,76,48,46,50,53,57,44,45,48,46,52,53,57, 67,48,46,50,53,57,44,45,48,46,52,48,51,32,48,46,50,51,52,44,45,48,46,51,56,53,32,48,46,49,57,51,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,51,56,53,76,48,46,49,53,44,45,48,46,54,90,34,32,115,116, 121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62, 10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,56,46,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32, 32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,51,53,57,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,50,54,49,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46, 49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,51,32,48,46,49,57,56,44,45,48,46,48,57,51,67,48,46,49,54,51,44,45,48,46,48,57,51,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54, 49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44,45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32, 48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48,46,53,51,57,76,48,46,50,53,53,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,52,54,52,76,48,46,51,53,57,44,45,48,46,53,51,50,67,48,46, 51,53,57,44,45,48,46,54,52,52,32,48,46,51,48,51,44,45,48,46,55,48,56,32,48,46,49,57,53,44,45,48,46,55,48,56,67,48,46,48,56,55,44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51, 49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46,49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,56,55,44,48,46,48,48,56,32,48,46,49,57,53,44,48,46,48,48,56,67,48,46,51,48,51,44,48,46, 48,48,56,32,48,46,51,53,57,44,45,48,46,48,53,54,32,48,46,51,53,57,44,45,48,46,49,54,56,76,48,46,51,53,57,44,45,48,46,50,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53, 44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115, 102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,48,53,46,53,48,56,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34, 77,48,46,49,52,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,55,76,48,46,48,51,53,44,45,48,46,49,54,55,67,48,46,48,51,53,44,45,48,46,48,53,53,32,48,46,48,57,49,44,48,46,48,48,57,32,48,46,49,57,57,44, 48,46,48,48,57,67,48,46,51,48,55,44,48,46,48,48,57,32,48,46,51,54,51,44,45,48,46,48,53,53,32,48,46,51,54,51,44,45,48,46,49,54,55,76,48,46,51,54,51,44,45,48,46,55,76,48,46,50,53,57,44,45,48,46,55,76,48, 46,50,53,57,44,45,48,46,49,54,67,48,46,50,53,57,44,45,48,46,49,49,32,48,46,50,51,55,44,45,48,46,48,57,50,32,48,46,50,48,50,44,45,48,46,48,57,50,67,48,46,49,54,55,44,45,48,46,48,57,50,32,48,46,49,52,53, 44,45,48,46,49,49,32,48,46,49,52,53,44,45,48,46,49,54,76,48,46,49,52,53,44,45,48,46,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108, 108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105, 120,40,49,56,44,48,44,48,44,49,56,44,50,49,50,46,54,55,50,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,50,54,44,45,48,46,53,51,50, 67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49,67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50,49,57,44,45,48,46,48,57,51,32,48, 46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48,46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55,44,45,48,46,50,49,49,76,48,46,48, 50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48,55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46,48,48,56,67,48,46,50,57,53,44,48, 46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48,46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53,32,48,46,49,51,54,44,45,48,46,53, 51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54,48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48,46,50,52,54,44,45,48,46,53,56,57, 32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48,46,54,52,52,32,48,46,50,57,53,44, 45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44,45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53,51,50,90,34,32,115,116,121,108,101, 61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32, 32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,50,49,57,46,52,48,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32, 32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,50,54,44,45,48,46,53,51,50,67,48,46,48,50,54,44,45,48,46,51,51,50,32,48,46,50,52,49,44,45,48,46,51,48,53,32,48,46,50,52,49,44,45,48,46,49,54,49, 67,48,46,50,52,49,44,45,48,46,49,49,49,32,48,46,50,49,57,44,45,48,46,48,57,51,32,48,46,49,56,52,44,45,48,46,48,57,51,67,48,46,49,52,57,44,45,48,46,48,57,51,32,48,46,49,50,55,44,45,48,46,49,49,49,32,48, 46,49,50,55,44,45,48,46,49,54,49,76,48,46,49,50,55,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,50,49,49,76,48,46,48,50,51,44,45,48,46,49,54,56,67,48,46,48,50,51,44,45,48,46,48,53,54,32,48,46,48, 55,57,44,48,46,48,48,56,32,48,46,49,56,55,44,48,46,48,48,56,67,48,46,50,57,53,44,48,46,48,48,56,32,48,46,51,53,49,44,45,48,46,48,53,54,32,48,46,51,53,49,44,45,48,46,49,54,56,67,48,46,51,53,49,44,45,48, 46,51,54,56,32,48,46,49,51,54,44,45,48,46,51,57,53,32,48,46,49,51,54,44,45,48,46,53,51,57,67,48,46,49,51,54,44,45,48,46,53,56,57,32,48,46,49,53,54,44,45,48,46,54,48,56,32,48,46,49,57,49,44,45,48,46,54, 48,56,67,48,46,50,50,54,44,45,48,46,54,48,56,32,48,46,50,52,54,44,45,48,46,53,56,57,32,48,46,50,52,54,44,45,48,46,53,51,57,76,48,46,50,52,54,44,45,48,46,53,49,76,48,46,51,53,44,45,48,46,53,49,76,48,46, 51,53,44,45,48,46,53,51,50,67,48,46,51,53,44,45,48,46,54,52,52,32,48,46,50,57,53,44,45,48,46,55,48,56,32,48,46,49,56,56,44,45,48,46,55,48,56,67,48,46,48,56,49,44,45,48,46,55,48,56,32,48,46,48,50,54,44, 45,48,46,54,52,52,32,48,46,48,50,54,44,45,48,46,53,51,50,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, 111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, 49,56,44,50,50,54,46,49,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46,48,52,34,32,121,61,34,45,48,46,55,34,32,119,105,100,116,104,61, 34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110, 111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44, 49,56,44,50,50,57,46,53,53,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,48,51,49,44,45,48,46,53,51,50,76,48,46,48,51,49,44,45,48,46, 49,54,56,67,48,46,48,51,49,44,45,48,46,48,53,54,32,48,46,48,57,44,48,46,48,48,56,32,48,46,49,57,56,44,48,46,48,48,56,67,48,46,51,48,54,44,48,46,48,48,56,32,48,46,51,54,53,44,45,48,46,48,53,54,32,48,46, 51,54,53,44,45,48,46,49,54,56,76,48,46,51,54,53,44,45,48,46,53,51,50,67,48,46,51,54,53,44,45,48,46,54,52,52,32,48,46,51,48,54,44,45,48,46,55,48,56,32,48,46,49,57,56,44,45,48,46,55,48,56,67,48,46,48,57, 44,45,48,46,55,48,56,32,48,46,48,51,49,44,45,48,46,54,52,52,32,48,46,48,51,49,44,45,48,46,53,51,50,90,77,48,46,49,52,49,44,45,48,46,49,54,49,76,48,46,49,52,49,44,45,48,46,53,51,57,67,48,46,49,52,49,44, 45,48,46,53,56,57,32,48,46,49,54,51,44,45,48,46,54,48,56,32,48,46,49,57,56,44,45,48,46,54,48,56,67,48,46,50,51,51,44,45,48,46,54,48,56,32,48,46,50,53,53,44,45,48,46,53,56,57,32,48,46,50,53,53,44,45,48, 46,53,51,57,76,48,46,50,53,53,44,45,48,46,49,54,49,67,48,46,50,53,53,44,45,48,46,49,49,49,32,48,46,50,51,51,44,45,48,46,48,57,50,32,48,46,49,57,56,44,45,48,46,48,57,50,67,48,46,49,54,51,44,45,48,46,48, 57,50,32,48,46,49,52,49,44,45,48,46,49,49,49,32,48,46,49,52,49,44,45,48,46,49,54,49,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108, 45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120, 40,49,56,44,48,44,48,44,49,56,44,50,51,54,46,54,56,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,51,56,44,45,48,46,53,48,55,76,48, 46,50,55,53,44,48,76,48,46,51,56,56,44,48,76,48,46,51,56,56,44,45,48,46,55,76,48,46,50,57,44,45,48,46,55,76,48,46,50,57,44,45,48,46,50,56,49,76,48,46,49,55,55,44,45,48,46,55,76,48,46,48,51,57,44,45,48, 46,55,76,48,46,48,51,57,44,48,76,48,46,49,51,56,44,48,76,48,46,49,51,56,44,45,48,46,53,48,55,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105, 108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61, 34,109,97,116,114,105,120,40,49,44,48,44,48,44,49,44,53,52,48,46,54,52,52,44,51,52,56,46,52,57,50,41,34,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114, 105,120,40,49,56,44,48,44,48,44,49,56,44,49,55,55,46,56,50,52,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,51,56,57, 76,48,46,49,53,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,54,76,48,46,51,51,49,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,49,53,44,48,76,48,46,49,53,44,45,48,46,50,56, 57,76,48,46,50,57,50,44,45,48,46,50,56,57,76,48,46,50,57,50,44,45,48,46,51,56,57,76,48,46,49,53,44,45,48,46,51,56,57,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53, 48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, 114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,52,46,48,49,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,114,101,99,116,32,120,61,34,48,46, 48,52,34,32,121,61,34,45,48,46,55,34,32,119,105,100,116,104,61,34,48,46,49,49,34,32,104,101,105,103,104,116,61,34,48,46,55,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49, 53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111, 114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,56,55,46,52,51,54,44,49,48,52,46,55,57,51,41,34,62,10,32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48, 46,48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,51,49,44,48,76,48,46,51,51,49,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,55,76,48,46,48,52,44,45,48,46,55,90,34,32, 115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117,108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60, 47,103,62,10,32,32,32,32,32,32,32,32,60,103,32,116,114,97,110,115,102,111,114,109,61,34,109,97,116,114,105,120,40,49,56,44,48,44,48,44,49,56,44,49,57,51,46,53,51,56,44,49,48,52,46,55,57,51,41,34,62,10, 32,32,32,32,32,32,32,32,32,32,32,32,60,112,97,116,104,32,100,61,34,77,48,46,49,53,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,54,76,48,46,51,52,44,45,48,46,54,76,48,46,51,52,44,45,48,46,55,76,48,46, 48,52,44,45,48,46,55,76,48,46,48,52,44,48,76,48,46,51,52,44,48,76,48,46,51,52,44,45,48,46,49,76,48,46,49,53,44,45,48,46,49,76,48,46,49,53,44,45,48,46,51,48,53,76,48,46,51,48,49,44,45,48,46,51,48,53,76, 48,46,51,48,49,44,45,48,46,52,48,53,76,48,46,49,53,44,45,48,46,52,48,53,90,34,32,115,116,121,108,101,61,34,102,105,108,108,58,114,103,98,40,54,53,44,49,53,48,44,54,53,41,59,102,105,108,108,45,114,117, 108,101,58,110,111,110,122,101,114,111,59,34,47,62,10,32,32,32,32,32,32,32,32,60,47,103,62,10,32,32,32,32,60,47,103,62,10,60,47,115,118,103,62,10,0,0}; const char* PluginGui::gui_svg = (const char*) resource_PluginGui_gui_svg; const int PluginGui::gui_svgSize = 25404; //[EndFile] You can add extra defines here... //[/EndFile]