From 1c8b865d89b6cc5fd80e27af6e6b6a69c25da263 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Tue, 31 Dec 2013 13:02:53 +0100 Subject: [PATCH 01/16] [Taranis] Support for the 6POS Pots --- radio/src/eeprom_conversions.cpp | 20 +++++++++-- radio/src/gtests.cpp | 4 +-- radio/src/gui/menu_model.cpp | 6 ++-- radio/src/gui/menus.cpp | 10 +++--- radio/src/lcd.cpp | 2 +- radio/src/myeeprom.h | 13 +++++-- radio/src/opentx.cpp | 61 +++++++++++++++++++++----------- radio/src/opentx.h | 6 ++-- radio/src/translations/cz.h.txt | 3 +- radio/src/translations/de.h.txt | 3 +- radio/src/translations/en.h | 3 +- radio/src/translations/es.h.txt | 3 +- radio/src/translations/fr.h.txt | 3 +- radio/src/translations/it.h.txt | 3 +- radio/src/translations/pl.h.txt | 3 +- radio/src/translations/pt.h.txt | 3 +- radio/src/translations/se.h.txt | 3 +- 17 files changed, 101 insertions(+), 48 deletions(-) diff --git a/radio/src/eeprom_conversions.cpp b/radio/src/eeprom_conversions.cpp index 6edb00974..9bff69abf 100644 --- a/radio/src/eeprom_conversions.cpp +++ b/radio/src/eeprom_conversions.cpp @@ -177,6 +177,21 @@ void ConvertGeneralSettings_215_to_216(EEGeneral &settings) settings.version = 216; } +#if defined(PCBTARANIS) +int ConvertSwitch_215_to_216(int swtch) +{ + if (swtch < SWSRC_ON) + return swtch; + else + return swtch + (2*6); // 2 * 6-pos pots added as switches +} +#else +inline int ConvertSwitch_215_to_216(int swtch) +{ + return swtch; +} +#endif + void ConvertModel_215_to_216(ModelData &model) { // Virtual inputs added instead of Expo/DR @@ -188,6 +203,7 @@ void ConvertModel_215_to_216(ModelData &model) // Custom Switches: better precision for x when A comes from telemetry // Main View: altitude in top bar // Mixes: GVARS in weight moved from 512 to 4096 and -512 to -4096, because GVARS may be used in limits [-1250:1250] + // Switches: two 6-pos pots added TRACE("Model conversion from v215 to v216"); @@ -221,7 +237,7 @@ void ConvertModel_215_to_216(ModelData &model) g_model.mixData[i].phases = oldModel.mixData[i].phases; g_model.mixData[i].mltpx = oldModel.mixData[i].mltpx; g_model.mixData[i].weight = oldModel.mixData[i].weight; - g_model.mixData[i].swtch = oldModel.mixData[i].swtch; + g_model.mixData[i].swtch = ConvertSwitch_215_to_216(oldModel.mixData[i].swtch); if (oldModel.mixData[i].curveMode==0/*differential*/) { g_model.mixData[i].curve.type = CURVE_REF_DIFF; g_model.mixData[i].curve.value = oldModel.mixData[i].curveParam; @@ -281,7 +297,7 @@ void ConvertModel_215_to_216(ModelData &model) } g_model.expoData[i].srcRaw = MIXSRC_Rud+chn; g_model.expoData[i].chn = chn; - g_model.expoData[i].swtch = oldModel.expoData[i].swtch; + g_model.expoData[i].swtch = ConvertSwitch_215_to_216(oldModel.expoData[i].swtch); g_model.expoData[i].phases = oldModel.expoData[i].phases; g_model.expoData[i].weight = oldModel.expoData[i].weight; memcpy(&g_model.expoData[i].name, &oldModel.expoData[i].name, LEN_EXPOMIX_NAME); diff --git a/radio/src/gtests.cpp b/radio/src/gtests.cpp index 2b8d8f2e8..fe6cb1a0a 100644 --- a/radio/src/gtests.cpp +++ b/radio/src/gtests.cpp @@ -295,8 +295,8 @@ TEST(FrSkySPORT, checkCrc) TEST(getSwitch, undefCSW) { MODEL_RESET(); - EXPECT_EQ(getSwitch(MAX_PSWITCH), false); - EXPECT_EQ(getSwitch(-MAX_PSWITCH), true); // no good answer there! + EXPECT_EQ(getSwitch(NUM_PSWITCH), false); + EXPECT_EQ(getSwitch(-NUM_PSWITCH), true); // no good answer there! } #endif diff --git a/radio/src/gui/menu_model.cpp b/radio/src/gui/menu_model.cpp index d1f9889fb..c2f472a47 100644 --- a/radio/src/gui/menu_model.cpp +++ b/radio/src/gui/menu_model.cpp @@ -1055,7 +1055,7 @@ void menuModelSetup(uint8_t event) div_t qr = div(timer->start, 60); switch (m_posHorz) { case 0: - CHECK_INCDEC_MODELVAR(event, timer->mode, -2*(MAX_PSWITCH+NUM_CSW), TMR_VAROFS-1+2*(MAX_PSWITCH+NUM_CSW)); + CHECK_INCDEC_MODELVAR(event, timer->mode, -2*(NUM_PSWITCH+NUM_CSW), TMR_VAROFS-1+2*(NUM_PSWITCH+NUM_CSW)); break; case 1: CHECK_INCDEC_MODELVAR_ZERO(event, qr.quot, 59); @@ -1835,7 +1835,7 @@ void menuModelFlightModesAll(uint8_t event) } else { putsSwitches((5+LEN_FP_NAME)*FW+FW/2, y, p->swtch, attr); - if (active) CHECK_INCDEC_MODELSWITCH(event, p->swtch, -MAX_SWITCH, MAX_SWITCH); + if (active) CHECK_INCDEC_MODELSWITCH(event, p->swtch, -NUM_SWITCH, NUM_SWITCH); } break; @@ -4290,7 +4290,7 @@ void menuModelCustomSwitchOne(uint8_t event) case CSW_FIELD_ANDSW: lcd_putsLeft(y, STR_AND_SWITCH); putsSwitches(CSWONE_2ND_COLUMN, y, cs->andsw, attr); - if (attr) CHECK_INCDEC_MODELVAR(event, cs->andsw, -MAX_SWITCH, MAX_SWITCH); + if (attr) CHECK_INCDEC_MODELVAR(event, cs->andsw, -NUM_SWITCH, NUM_SWITCH); break; case CSW_FIELD_DURATION: lcd_putsLeft(y, STR_DURATION); diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 5580a998d..69af3f0fa 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -232,13 +232,13 @@ int16_t checkIncDec(uint8_t event, int16_t val, int16_t i_min, int16_t i_max, ui if (event == EVT_KEY_LONG(KEY_ENTER) && i_max > SWSRC_ON) { s_editMode = !s_editMode; if (newval > SWSRC_ON) - newval -= (MAX_SWITCH+1); + newval -= (NUM_SWITCH+1); else if (newval > 0) - newval += (MAX_SWITCH+1); + newval += (NUM_SWITCH+1); else if (newval < SWSRC_OFF) - newval += (MAX_SWITCH+1); + newval += (NUM_SWITCH+1); else if (newval < 0) - newval -= (MAX_SWITCH+1); + newval -= (NUM_SWITCH+1); } } #endif @@ -976,7 +976,7 @@ int8_t switchMenuItem(uint8_t x, uint8_t y, int8_t value, LcdFlags attr, uint8_t { lcd_putsColumnLeft(x, y, STR_SWITCH); putsSwitches(x, y, value, attr); - if (attr) CHECK_INCDEC_MODELSWITCH(event, value, -MAX_SWITCH, MAX_SWITCH); + if (attr) CHECK_INCDEC_MODELSWITCH(event, value, -NUM_SWITCH, NUM_SWITCH); return value; } diff --git a/radio/src/lcd.cpp b/radio/src/lcd.cpp index b8702878d..c02ffd5a0 100644 --- a/radio/src/lcd.cpp +++ b/radio/src/lcd.cpp @@ -1097,7 +1097,7 @@ void putsTmrMode(xcoord_t x, uint8_t y, int8_t mode, LcdFlags att) return; } - if (mode >= TMR_VAROFS+MAX_PSWITCH+NUM_CSW) { + if (mode >= TMR_VAROFS+NUM_PSWITCH+NUM_CSW) { mode++; } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 3c49e6f59..5343ef424 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -639,7 +639,7 @@ PACK( union u_int8int16_t { #if defined(CPUARM) #define MAX_CSW_DURATION 120 /*60s*/ #define MAX_CSW_DELAY 120 /*60s*/ -#define MAX_CSW_ANDSW MAX_SWITCH +#define MAX_CSW_ANDSW NUM_SWITCH typedef int16_t csw_telemetry_value_t; PACK(typedef struct t_CustomSwData { // Custom Switches data int16_t v1; @@ -1140,6 +1140,8 @@ enum SwitchSources { #endif SWSRC_FIRST_CSW, + SWSRC_LAST_SWITCH = SWSRC_FIRST_CSW-1, + SWSRC_SW1 = SWSRC_FIRST_CSW, SWSRC_SW2, SWSRC_SW3, @@ -1154,10 +1156,17 @@ enum SwitchSources { SWSRC_SWC, SWSRC_LAST_CSW = SWSRC_SW1+NUM_CSW-1, +#if defined(PCBTARANIS) + SWSRC_P11, + SWSRC_P16 = SWSRC_P11+5, + SWSRC_P21, + SWSRC_P26 = SWSRC_P21+5, +#endif + SWSRC_ON, SWSRC_FIRST_MOMENT_SWITCH, - SWSRC_LAST_MOMENT_SWITCH = SWSRC_FIRST_MOMENT_SWITCH+SWSRC_ON-1, + SWSRC_LAST_MOMENT_SWITCH = SWSRC_FIRST_MOMENT_SWITCH+SWSRC_LAST_CSW, #if !defined(PCBSTD) SWSRC_TRAINER_SHORT, diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index af664925e..d3c6f5e2d 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -1301,6 +1301,8 @@ uint8_t cswStates[NUM_CSW]; #if defined(PCBTARANIS) tmr10ms_t switchesMidposStart[6] = { 0 }; uint32_t switchesPos = 0; +tmr10ms_t potsLastposStart[2]; +uint8_t potsPos[2]; #define DELAY_SWITCH_3POS 10/*100ms*/ #define CHECK_2POS(sw) newPos |= (switchState(sw ## 0) ? (1 << (sw ## 0 - SW_SA0)) : (1 << (sw ## 0 - SW_SA0 + 1))) #define CHECK_3POS(idx, sw) if (switchState(sw ## 0)) { \ @@ -1321,8 +1323,7 @@ uint32_t switchesPos = 0; } \ newPos |= (switchesPos & (0x7 << (sw ## 0 - SW_SA0))); \ } -#define SWITCH_POSITION(sw) (switchesPos & (1<<(sw))) -void get3POSSwitchesPosition() +void getSwitchesPosition() { uint32_t newPos = 0; CHECK_3POS(0, SW_SA); @@ -1334,9 +1335,26 @@ void get3POSSwitchesPosition() CHECK_3POS(5, SW_SG); CHECK_2POS(SW_SH); switchesPos = newPos; + + for (int i=0; i<2; i++) { + int val = RESX + (int16_t)anaIn(POT1+i) + (RESX / 5); + uint8_t pos = limit(0, val / (2*RESX/5), 5); + uint8_t previousPos = potsPos[i] >> 4; + if (pos != previousPos) { + potsLastposStart[i] = get_tmr10ms(); + potsPos[i] = (pos << 4) | (potsPos[i] & 0x0f); + } + else if ((tmr10ms_t)(get_tmr10ms() - potsLastposStart[i]) > DELAY_SWITCH_3POS) { + potsLastposStart[i] = 0; + potsPos[i] = (pos << 4) | (pos); + } + } } +#define SWITCH_POSITION(sw) (switchesPos & (1<<(sw))) +#define POT_POSITION(sw) ((potsPos[(sw)/6] & 0x0f) == ((sw) % 6)) #else -#define get3POSSwitchesPosition() +#define getSwitchesPosition() +#define SWITCH_POSITION(idx) switchState((EnumKeys)(SW_BASE+(idx))) #endif int16_t csLastValue[NUM_CSW]; @@ -1353,15 +1371,16 @@ bool getSwitch(int8_t swtch) if (cs_idx == SWSRC_ON) { result = true; } - else if (cs_idx <= MAX_PSWITCH) { -#if defined(PCBTARANIS) - result = SWITCH_POSITION(cs_idx-SWSRC_SA0); -#else - result = switchState((EnumKeys)(SW_BASE+cs_idx-1)); -#endif + else if (cs_idx <= SWSRC_LAST_SWITCH) { + result = SWITCH_POSITION(cs_idx-SWSRC_FIRST_SWITCH); } +#if defined(PCBTARANIS) + else if (cs_idx >= SWSRC_P11 && cs_idx <= SWSRC_P26) { + result = POT_POSITION(cs_idx-SWSRC_P11); + } +#endif else { - cs_idx -= MAX_PSWITCH+1; + cs_idx -= SWSRC_FIRST_CSW; GETSWITCH_RECURSIVE_TYPE mask = ((GETSWITCH_RECURSIVE_TYPE)1 << cs_idx); if (s_last_switch_used & mask) { @@ -1550,7 +1569,7 @@ int8_t getMovedSwitch() } } #else - for (uint8_t i=MAX_PSWITCH; i>0; i--) { + for (uint8_t i=NUM_PSWITCH; i>0; i--) { bool prev; swstate_t mask = 0; if (i <= 3) { @@ -1562,7 +1581,7 @@ int8_t getMovedSwitch() } bool next = getSwitch(i); if (prev != next) { - if (i!=MAX_PSWITCH || next==true) + if (i!=NUM_PSWITCH || next==true) result = next ? i : -i; if (mask) switches_states ^= mask; @@ -2203,7 +2222,7 @@ void checkSwitches() } #else uint8_t x = 2; - for (uint8_t i=1; i2?(i+1):1+((states>>1)&0x3)), attr); if (i == 1 && attr) i++; @@ -3053,13 +3072,13 @@ void evalFunctions() #endif - if (swtch > MAX_SWITCH+1) { + if (swtch > NUM_SWITCH+1) { momentary = 1; - swtch -= MAX_SWITCH+1; + swtch -= NUM_SWITCH+1; } - if (swtch < -MAX_SWITCH-1) { + if (swtch < -NUM_SWITCH-1) { momentary = 1; - swtch += MAX_SWITCH+1; + swtch += NUM_SWITCH+1; } bool active = getSwitch(swtch); @@ -3684,7 +3703,7 @@ void doMixerCalculations() // therefore forget the exact calculation and use only 1 instead; good compromise lastTMR = tmr10ms; - get3POSSwitchesPosition(); + getSwitchesPosition(); getADC(); @@ -3871,9 +3890,9 @@ void doMixerCalculations() timerState->sum+=val; } - if (atm>=(TMR_VAROFS+MAX_SWITCH)){ // toggeled switch + if (atm>=(TMR_VAROFS+NUM_SWITCH)){ // toggeled switch if(!(timerState->toggled | timerState->sum | timerState->cnt | timerState->lastPos)) { timerState->lastPos = tm < 0; timerState->sum = 1; } // if initializing then init the lastPos - uint8_t swPos = getSwitch(tm>0 ? tm-(TMR_VAROFS+MAX_SWITCH-1) : tm+MAX_SWITCH); + uint8_t swPos = getSwitch(tm>0 ? tm-(TMR_VAROFS+NUM_SWITCH-1) : tm+NUM_SWITCH); if (swPos && !timerState->lastPos) timerState->toggled = !timerState->toggled; // if switch is flipped first time -> change counter state timerState->lastPos = swPos; } @@ -3910,7 +3929,7 @@ void doMixerCalculations() newTimerVal++; } else { - if (atm<(TMR_VAROFS+MAX_SWITCH)) + if (atm<(TMR_VAROFS+NUM_SWITCH)) timerState->toggled = tm>0 ? getSwitch(tm-(TMR_VAROFS-1)) : !getSwitch(-tm); // normal switch if (timerState->toggled) newTimerVal++; diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 1ce0294b7..b432a53c0 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -376,8 +376,8 @@ enum EnumKeys { #if defined(PCBTARANIS) #define NUM_SWITCHES 8 #define IS_3POS(sw) ((sw) != 5 && (sw) != 7) - #define MAX_PSWITCH (SW_SH2-SW_SA0+1) #define NUM_POTS 4 + #define NUM_POTSSW (2*6) #define NUM_SW_SRCRAW 8 #define SWSRC_THR SWSRC_SF2 #define SWSRC_GEA SWSRC_SG2 @@ -389,13 +389,13 @@ enum EnumKeys { #define NUM_SWITCHES 7 #define IS_3POS(sw) ((sw) == 0) #define IS_MOMENTARY(sw) (sw == SWSRC_TRN) - #define MAX_PSWITCH (SW_TRN-SW_ID0+1) // 9 physical switches #define NUM_POTS 3 #define NUM_SW_SRCRAW 1 #define SW_DSM2_BIND SW_TRN #endif -#define MAX_SWITCH (MAX_PSWITCH+NUM_CSW) +#define NUM_PSWITCH (SWSRC_LAST_SWITCH-SWSRC_FIRST_SWITCH+1) +#define NUM_SWITCH (NUM_PSWITCH+NUM_CSW+NUM_POTSSW) #if defined(PCBTARANIS) #define KEY_RIGHT KEY_PLUS diff --git a/radio/src/translations/cz.h.txt b/radio/src/translations/cz.h.txt index 145783ff3..379444d0e 100644 --- a/radio/src/translations/cz.h.txt +++ b/radio/src/translations/cz.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "*1 " + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "*1 " #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "*1 " #endif diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 8023eaf06..88490ce12 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "ONE" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "ONE" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "ONE" #endif diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 62876daf9..80f25935a 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "One" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "One" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "One" #endif diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index 11f626168..b689918f6 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "Uno" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "Uno" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "ACE""DIR""ELE""ALE""GEA""TRN" TR_CUSTOMSW "Uno" #endif diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 652776e6e..470b08b91 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "1*\0" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "1*\0" #endif diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 3a2c62fca..20033e41c 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "One" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "One" #endif diff --git a/radio/src/translations/pl.h.txt b/radio/src/translations/pl.h.txt index 5525754ed..9cb38c672 100644 --- a/radio/src/translations/pl.h.txt +++ b/radio/src/translations/pl.h.txt @@ -323,7 +323,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW " * " + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS " * " #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "GAZ""SK ""LOT""SW ""GEA""TRN" TR_CUSTOMSW " * " #endif diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index 691c840af..7361bb86f 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "1*\0" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "1*\0" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "1*\0" #endif diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 68de29549..71e5ede3f 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -322,7 +322,8 @@ #endif #if defined(PCBTARANIS) - #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW "One" + #define TR_6POS_POTS "P11""P12""P13""P14""P15""P16""P21""P22""P23""P24""P25""P26" + #define TR_VSWITCHES "SA\300""SA-""SA\301""SB\300""SB-""SB\301""SC\300""SC-""SC\301""SD\300""SD-""SD\301""SE\300""SE-""SE\301""SF\300""SF\301""SG\300""SG-""SG\301""SH\300""SH\301" TR_CUSTOMSW TR_6POS_POTS "One" #else #define TR_VSWITCHES TR_9X_3POS_SWITCHES "THR""RUD""ELE""AIL""GEA""TRN" TR_CUSTOMSW "One" #endif From 33eeb4cc64d9138825e209dd6f57717dc1ba7276 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Thu, 2 Jan 2014 12:38:18 +0100 Subject: [PATCH 02/16] [all] Compilation was broken except for Taranis :( --- radio/src/opentx.h | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index b432a53c0..501ea65a8 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -390,6 +390,7 @@ enum EnumKeys { #define IS_3POS(sw) ((sw) == 0) #define IS_MOMENTARY(sw) (sw == SWSRC_TRN) #define NUM_POTS 3 + #define NUM_POTSSW 0 #define NUM_SW_SRCRAW 1 #define SW_DSM2_BIND SW_TRN #endif @@ -398,14 +399,14 @@ enum EnumKeys { #define NUM_SWITCH (NUM_PSWITCH+NUM_CSW+NUM_POTSSW) #if defined(PCBTARANIS) -#define KEY_RIGHT KEY_PLUS -#define KEY_LEFT KEY_MINUS -#define KEY_UP KEY_PLUS -#define KEY_DOWN KEY_MINUS + #define KEY_RIGHT KEY_PLUS + #define KEY_LEFT KEY_MINUS + #define KEY_UP KEY_PLUS + #define KEY_DOWN KEY_MINUS #else -#define KEY_ENTER KEY_MENU -#define KEY_PLUS KEY_RIGHT -#define KEY_MINUS KEY_LEFT + #define KEY_ENTER KEY_MENU + #define KEY_PLUS KEY_RIGHT + #define KEY_MINUS KEY_LEFT #endif #include "myeeprom.h" From e4b3b3af850ea87509926d7f0cd4eb229315c68c Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Mon, 6 Jan 2014 11:52:05 +0100 Subject: [PATCH 03/16] [Taranis] Automatic detection of the 6pos switch within the calibration process --- radio/src/gui/menu_general.cpp | 61 +++++++++++++++++++++++++----- radio/src/gui/menus.cpp | 9 ++++- radio/src/myeeprom.h | 27 +++++++++++-- radio/src/opentx.cpp | 69 +++++++++++++++++++++++----------- radio/src/opentx.h | 9 ++++- 5 files changed, 137 insertions(+), 38 deletions(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index e6b7956ca..78d56bc2c 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1241,16 +1241,37 @@ void menuGeneralHardware(uint8_t event) void menuCommonCalib(uint8_t event) { - for (uint8_t i=0; i= NUM_STICKS && i < NUM_STICKS+NUM_POTS-2) { -#else - if (i >= NUM_STICKS) { -#endif + if (i >= POT1 && i <= POT_LAST) { reusableBuffer.calib.midVals[i] = (reusableBuffer.calib.hiVals[i] + reusableBuffer.calib.loVals[i]) / 2; +#if defined(PCBTARANIS) + uint8_t idx = i - POT1; + int count = reusableBuffer.calib.xpotsPositionsCount[idx]; + if (count <= 6) { + bool found = false; + for (int j=0; j reusableBuffer.calib.xpotsPositions[idx][j][0]-20 && vt < reusableBuffer.calib.xpotsPositions[idx][j][0]+20) { + reusableBuffer.calib.xpotsPositions[idx][j][0] = min(vt, reusableBuffer.calib.xpotsPositions[idx][j][0]); + reusableBuffer.calib.xpotsPositions[idx][j][1] = max(vt, reusableBuffer.calib.xpotsPositions[idx][j][1]); + if (reusableBuffer.calib.xpotsPositions[idx][j][1] - reusableBuffer.calib.xpotsPositions[idx][j][0] > 50) { + reusableBuffer.calib.xpotsPositionsCount[idx] = 255; + } + found = true; + break; + } + } + if (!found) { + if (count < 6) { + reusableBuffer.calib.xpotsPositions[idx][count][0] = vt; + reusableBuffer.calib.xpotsPositions[idx][count][1] = vt; + } + reusableBuffer.calib.xpotsPositionsCount[idx] += 1; + } + } +#endif } } @@ -1284,6 +1305,11 @@ void menuCommonCalib(uint8_t event) reusableBuffer.calib.loVals[i] = 15000; reusableBuffer.calib.hiVals[i] = -15000; reusableBuffer.calib.midVals[i] = anaIn(i); +#if defined(PCBTARANIS) + if (i50) { - g_eeGeneral.calibMid[i] = reusableBuffer.calib.midVals[i]; +#if defined(PCBTARANIS) + if (i>=POT1 && i<=POT_LAST && reusableBuffer.calib.xpotsPositionsCount[i-POT1] > 1) { + g_eeGeneral.potsType &= ~(1 << (i-POT1)); + if (reusableBuffer.calib.xpotsPositionsCount[i-POT1] <= 6) { + StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[i]; + calib->count = reusableBuffer.calib.xpotsPositionsCount[i-POT1]-1; + for (int j=0; jcount-1; j++) { + calib->steps[i] = (reusableBuffer.calib.xpotsPositions[i-POT1][j+1][0] + reusableBuffer.calib.xpotsPositions[i-POT1][j][1]) / 2; + } + g_eeGeneral.potsType |= (1 << (i-POT1)); + } + } + else +#endif + if (abs(reusableBuffer.calib.loVals[i]-reusableBuffer.calib.hiVals[i]) > 50) { + g_eeGeneral.calib[i].mid = reusableBuffer.calib.midVals[i]; int16_t v = reusableBuffer.calib.midVals[i] - reusableBuffer.calib.loVals[i]; - g_eeGeneral.calibSpanNeg[i] = v - v/STICK_TOLERANCE; + g_eeGeneral.calib[i].spanNeg = v - v/STICK_TOLERANCE; v = reusableBuffer.calib.hiVals[i] - reusableBuffer.calib.midVals[i]; - g_eeGeneral.calibSpanPos[i] = v - v/STICK_TOLERANCE; + g_eeGeneral.calib[i].spanPos = v - v/STICK_TOLERANCE; } } break; @@ -1316,6 +1356,7 @@ void menuCommonCalib(uint8_t event) } doMainScreenGraphics(); + #if defined(PCBTARANIS) drawPotsBars(); #endif diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 69af3f0fa..9feed0435 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -1263,7 +1263,14 @@ bool isSwitchAvailable(int16_t swtch) swtch = -swtch; } - if (swtch>=SWSRC_FIRST_CSW && swtch<=SWSRC_LAST_CSW) { +#if defined(PCBTARANIS) + if (swtch >= SWSRC_P11 && swtch <= SWSRC_P26) { + int index = (swtch - SWSRC_P11) / 6; + return (g_eeGeneral.potsType & (1<= SWSRC_FIRST_CSW && swtch <= SWSRC_LAST_CSW) { CustomSwData * cs = cswAddress(swtch-SWSRC_FIRST_CSW); return (cs->func != CS_OFF); } diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index 5343ef424..9a8dbb803 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -221,7 +221,7 @@ enum BeeperMode { }; #if defined(CPUARM) - #define EXTRA_GENERAL_FIELDS \ + #define EXTRA_GENERAL_FIELDS_ARM \ uint8_t backlightBright; \ int8_t currentCalib; \ int8_t temperatureWarn; \ @@ -240,6 +240,14 @@ enum BeeperMode { int8_t wavVolume; \ int8_t varioVolume; \ int8_t backgroundVolume; +#endif + +#if defined(PCBTARANIS) +#define EXTRA_GENERAL_FIELDS \ + EXTRA_GENERAL_FIELDS_ARM \ + uint8_t potsType; +#elif defined(CPUARM) + #define EXTRA_GENERAL_FIELDS EXTRA_GENERAL_FIELDS_ARM #elif defined(PXX) #define EXTRA_GENERAL_FIELDS uint8_t countryCode; #else @@ -303,13 +311,24 @@ enum BacklightMode { #define SPLASH_MODE uint8_t splashMode:1; uint8_t spare4:2 #endif +#if defined(PCBTARANIS) +PACK(typedef struct { + int8_t count; + int8_t steps[5]; +}) StepsCalibData; +#endif + +PACK(typedef struct { + int16_t mid; + int16_t spanNeg; + int16_t spanPos; +}) CalibData; + #define ALTERNATE_VIEW 0x10 PACK(typedef struct t_EEGeneral { uint8_t version; uint16_t variant; - int16_t calibMid[NUM_STICKS+NUM_POTS]; - int16_t calibSpanNeg[NUM_STICKS+NUM_POTS]; - int16_t calibSpanPos[NUM_STICKS+NUM_POTS]; + CalibData calib[NUM_STICKS+NUM_POTS]; uint16_t chkSum; int8_t currModel; uint8_t contrast; diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index d3c6f5e2d..0e07afb1d 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -503,7 +503,7 @@ void generalDefault() uint16_t evalChkSum() { uint16_t sum = 0; - const int16_t *calibValues = &g_eeGeneral.calibMid[0]; + const int16_t *calibValues = (const int16_t *) &g_eeGeneral.calib[0]; for (int i=0; i(0, val / (2*RESX/5), 5); - uint8_t previousPos = potsPos[i] >> 4; - if (pos != previousPos) { - potsLastposStart[i] = get_tmr10ms(); - potsPos[i] = (pos << 4) | (potsPos[i] & 0x0f); - } - else if ((tmr10ms_t)(get_tmr10ms() - potsLastposStart[i]) > DELAY_SWITCH_3POS) { - potsLastposStart[i] = 0; - potsPos[i] = (pos << 4) | (pos); + for (int i=0; icount>0 && calib->count<6) { + uint8_t pos = calib->count; + int v = (int16_t)anaIn(POT1+i); + for (int j=0; jcount; j++) { + if (v < calib->steps[j]) { + pos = j; + break; + } + } + uint8_t previousPos = potsPos[i] >> 4; + if (pos != previousPos) { + potsLastposStart[i] = get_tmr10ms(); + potsPos[i] = (pos << 4) | (potsPos[i] & 0x0f); + } + else if ((tmr10ms_t)(get_tmr10ms() - potsLastposStart[i]) > DELAY_SWITCH_3POS) { + potsLastposStart[i] = 0; + potsPos[i] = (pos << 4) | (pos); + } + } } } } @@ -2156,8 +2167,9 @@ void checkTHR() int16_t lowLim = THRCHK_DEADBAND - 1024 ; #else getADC(); // if thr is down - do not display warning at all - int16_t lowLim = g_eeGeneral.calibMid[thrchn]; - lowLim = (g_model.throttleReversed ? - lowLim - g_eeGeneral.calibSpanPos[thrchn] : lowLim - g_eeGeneral.calibSpanNeg[thrchn]); + CalibData * calib = &g_eeGeneral.calib[thrchn]; + int16_t lowLim = calib->mid; + lowLim = (g_model.throttleReversed ? - lowLim - calib->spanPos : lowLim - calib->spanNeg); lowLim += THRCHK_DEADBAND; #endif int16_t v = thrAnaIn(thrchn); @@ -2495,7 +2507,23 @@ void getADC() } for (uint32_t x=0; x> 3; + uint16_t v = temp[x] >> 3; +#if defined(PCBTARANIS) + StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[x]; + if (x >= POT1 && x <= POT_LAST && (g_eeGeneral.potsType & (1<<(x-POT1))) && calib->count>0 && calib->count<6) { + for (int i=0; i<=calib->count; i++) { + if (i == calib->count) { + s_anaFilt[x] = RESX; + } + else if (v < calib->steps[i]) { + s_anaFilt[x] = -RESX + i*2*RESX/calib->count; + break; + } + } + } + else +#endif + s_anaFilt[x] = v; } } #else @@ -2743,10 +2771,9 @@ void evalInputs(uint8_t mode) #ifndef SIMU if (i < NUM_STICKS+NUM_POTS) { - v -= g_eeGeneral.calibMid[i]; - v = v * (int32_t)RESX / (max((int16_t)100,(v>0 ? - g_eeGeneral.calibSpanPos[i] : - g_eeGeneral.calibSpanNeg[i]))); + CalibData * calib = &g_eeGeneral.calib[i]; + v -= calib->mid; + v = v * (int32_t)RESX / (max((int16_t)100, (v>0 ? calib->spanPos : calib->spanNeg))); } #endif diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 501ea65a8..d12bf7edd 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -377,7 +377,7 @@ enum EnumKeys { #define NUM_SWITCHES 8 #define IS_3POS(sw) ((sw) != 5 && (sw) != 7) #define NUM_POTS 4 - #define NUM_POTSSW (2*6) + #define NUM_XPOTS 2 #define NUM_SW_SRCRAW 8 #define SWSRC_THR SWSRC_SF2 #define SWSRC_GEA SWSRC_SG2 @@ -390,12 +390,13 @@ enum EnumKeys { #define IS_3POS(sw) ((sw) == 0) #define IS_MOMENTARY(sw) (sw == SWSRC_TRN) #define NUM_POTS 3 - #define NUM_POTSSW 0 + #define NUM_XPOTS 0 #define NUM_SW_SRCRAW 1 #define SW_DSM2_BIND SW_TRN #endif #define NUM_PSWITCH (SWSRC_LAST_SWITCH-SWSRC_FIRST_SWITCH+1) +#define NUM_POTSSW (NUM_XPOTS*6) #define NUM_SWITCH (NUM_PSWITCH+NUM_CSW+NUM_POTSSW) #if defined(PCBTARANIS) @@ -1042,12 +1043,14 @@ enum Analogs { #if defined(PCBTARANIS) POT1, POT2, + POT_LAST = POT2, SLIDER1, SLIDER2, #else POT1, POT2, POT3, + POT_LAST = POT3, #endif TX_VOLTAGE, #if defined(PCBSKY9X) && !defined(REVA) @@ -1565,6 +1568,8 @@ union ReusableBuffer int16_t loVals[NUM_STICKS+NUM_POTS]; int16_t hiVals[NUM_STICKS+NUM_POTS]; uint8_t state; + uint8_t xpotsPositionsCount[NUM_XPOTS]; + int16_t xpotsPositions[NUM_XPOTS][6][2]; } calib; #if defined(SDCARD) From 1dff05dc0222fd80924420982c0185084988915a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 8 Jan 2014 12:08:33 +0100 Subject: [PATCH 04/16] User scripts ignored --- radio/src/.gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/radio/src/.gitignore b/radio/src/.gitignore index 31c048a1d..0f2d1136d 100644 --- a/radio/src/.gitignore +++ b/radio/src/.gitignore @@ -6,3 +6,4 @@ /opentx.map /simu.d /snapshot_*.png +/*.sh From a292fabb02dfae6a4c3f474f7d2e8f4c885832be Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sun, 12 Jan 2014 12:57:14 +0100 Subject: [PATCH 05/16] [Taranis] 6Pos switch support is now ok. Calibration is automatic. More tests needed --- radio/src/gui/menu_general.cpp | 59 ++++++++++++++++++++++++---------- radio/src/gui/menus.cpp | 10 ++++-- radio/src/gui/view_main.cpp | 6 ++-- radio/src/myeeprom.h | 5 +-- radio/src/opentx.cpp | 53 +++++++++++++++++------------- radio/src/opentx.h | 7 ++++ 6 files changed, 94 insertions(+), 46 deletions(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index 78d56bc2c..766d05d8b 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1250,13 +1250,13 @@ void menuCommonCalib(uint8_t event) #if defined(PCBTARANIS) uint8_t idx = i - POT1; int count = reusableBuffer.calib.xpotsPositionsCount[idx]; - if (count <= 6) { + if (count <= POTS_POS_COUNT) { bool found = false; for (int j=0; j reusableBuffer.calib.xpotsPositions[idx][j][0]-20 && vt < reusableBuffer.calib.xpotsPositions[idx][j][0]+20) { + if (vt > reusableBuffer.calib.xpotsPositions[idx][j][0]-10 && vt < reusableBuffer.calib.xpotsPositions[idx][j][0]+10) { reusableBuffer.calib.xpotsPositions[idx][j][0] = min(vt, reusableBuffer.calib.xpotsPositions[idx][j][0]); reusableBuffer.calib.xpotsPositions[idx][j][1] = max(vt, reusableBuffer.calib.xpotsPositions[idx][j][1]); - if (reusableBuffer.calib.xpotsPositions[idx][j][1] - reusableBuffer.calib.xpotsPositions[idx][j][0] > 50) { + if (reusableBuffer.calib.xpotsPositions[idx][j][1] - reusableBuffer.calib.xpotsPositions[idx][j][0] > 20) { reusableBuffer.calib.xpotsPositionsCount[idx] = 255; } found = true; @@ -1301,6 +1301,10 @@ void menuCommonCalib(uint8_t event) lcd_putsAtt(0*FW, 2*FH, STR_SETMIDPOINT, s_noScroll ? INVERS : 0); lcd_putsLeft(3*FH, STR_MENUWHENDONE); +#if defined(PCBTARANIS) + g_eeGeneral.potsType = 0; +#endif + for (uint8_t i=0; i=POT1 && i<=POT_LAST && reusableBuffer.calib.xpotsPositionsCount[i-POT1] > 1) { - g_eeGeneral.potsType &= ~(1 << (i-POT1)); - if (reusableBuffer.calib.xpotsPositionsCount[i-POT1] <= 6) { - StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[i]; - calib->count = reusableBuffer.calib.xpotsPositionsCount[i-POT1]-1; - for (int j=0; jcount-1; j++) { - calib->steps[i] = (reusableBuffer.calib.xpotsPositions[i-POT1][j+1][0] + reusableBuffer.calib.xpotsPositions[i-POT1][j][1]) / 2; - } - g_eeGeneral.potsType |= (1 << (i-POT1)); - } - } - else -#endif if (abs(reusableBuffer.calib.loVals[i]-reusableBuffer.calib.hiVals[i]) > 50) { g_eeGeneral.calib[i].mid = reusableBuffer.calib.midVals[i]; int16_t v = reusableBuffer.calib.midVals[i] - reusableBuffer.calib.loVals[i]; @@ -1345,6 +1335,28 @@ void menuCommonCalib(uint8_t event) break; case 3: +#if defined(PCBTARANIS) + for (uint8_t i=POT1; i<=POT_LAST; i++) { + int idx = i - POT1; + int count = reusableBuffer.calib.xpotsPositionsCount[idx]; + if (count > 1 && count <= POTS_POS_COUNT) { + for (int j=0; jcount = count - 1; + for (int j=0; jcount; j++) { + calib->steps[j] = (reusableBuffer.calib.xpotsPositions[idx][j+1][0] + reusableBuffer.calib.xpotsPositions[idx][j][1]) >> 5; + } + } + } +#endif g_eeGeneral.chkSum = evalChkSum(); eeDirty(EE_GENERAL); reusableBuffer.calib.state = 4; @@ -1359,6 +1371,19 @@ void menuCommonCalib(uint8_t event) #if defined(PCBTARANIS) drawPotsBars(); + for (int i=POT1; i<=POT_LAST; i++) { + uint8_t steps = 0; + if (reusableBuffer.calib.state == 2) { + steps = reusableBuffer.calib.xpotsPositionsCount[i-POT1]; + } + else if (IS_MULTIPOS_POT(i)) { + StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[i]; + steps = calib->count + 1; + } + if (steps > 0 && steps <= POTS_POS_COUNT) { + lcd_outdezAtt(LCD_W/2-2+(i-POT1)*5, LCD_H-6, steps, TINSIZE); + } + } #endif } diff --git a/radio/src/gui/menus.cpp b/radio/src/gui/menus.cpp index 9feed0435..9277f05b3 100644 --- a/radio/src/gui/menus.cpp +++ b/radio/src/gui/menus.cpp @@ -1265,8 +1265,14 @@ bool isSwitchAvailable(int16_t swtch) #if defined(PCBTARANIS) if (swtch >= SWSRC_P11 && swtch <= SWSRC_P26) { - int index = (swtch - SWSRC_P11) / 6; - return (g_eeGeneral.potsType & (1<count >= ((swtch - SWSRC_P11) % POTS_POS_COUNT)); + } + else { + return false; + } } #endif diff --git a/radio/src/gui/view_main.cpp b/radio/src/gui/view_main.cpp index 51465631d..930119fbd 100644 --- a/radio/src/gui/view_main.cpp +++ b/radio/src/gui/view_main.cpp @@ -120,9 +120,9 @@ void drawPotsBars() { // Optimization by Mike Blandford - uint8_t x, y, len ; // declare temporary variables - for (x=LCD_W/2-5, y=NUM_STICKS; ycount>0 && calib->count<6) { - uint8_t pos = calib->count; - int v = (int16_t)anaIn(POT1+i); - for (int j=0; jcount; j++) { - if (v < calib->steps[j]) { - pos = j; - break; - } - } + if (calib->count>0 && calib->countcount); uint8_t previousPos = potsPos[i] >> 4; if (pos != previousPos) { potsLastposStart[i] = get_tmr10ms(); @@ -1360,9 +1354,10 @@ void getSwitchesPosition() } } } +#endif } #define SWITCH_POSITION(sw) (switchesPos & (1<<(sw))) -#define POT_POSITION(sw) ((potsPos[(sw)/6] & 0x0f) == ((sw) % 6)) +#define POT_POSITION(sw) ((potsPos[(sw)/POTS_POS_COUNT] & 0x0f) == ((sw) % POTS_POS_COUNT)) #else #define getSwitchesPosition() #define SWITCH_POSITION(idx) switchState((EnumKeys)(SW_BASE+(idx))) @@ -2502,6 +2497,15 @@ void getADC() for (uint32_t i=0; i<4; i++) { adcRead(); for (uint32_t x=0; x=POT1 && x<=POT2 && temp[x]!=Analog_values[x]) { + i = 0; + } + temp[x] = Analog_values[x]; + } + else +#endif temp[x] += Analog_values[x]; } } @@ -2509,14 +2513,14 @@ void getADC() for (uint32_t x=0; x> 3; #if defined(PCBTARANIS) + if (s_noScroll) v = temp[x] >> 1; StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[x]; - if (x >= POT1 && x <= POT_LAST && (g_eeGeneral.potsType & (1<<(x-POT1))) && calib->count>0 && calib->count<6) { - for (int i=0; i<=calib->count; i++) { - if (i == calib->count) { - s_anaFilt[x] = RESX; - } - else if (v < calib->steps[i]) { - s_anaFilt[x] = -RESX + i*2*RESX/calib->count; + if (IS_MULTIPOS_POT(x) && calib->count>0 && calib->count> 4); + s_anaFilt[x] = 2*RESX; + for (int i=0; icount; i++) { + if (vShifted < calib->steps[i]) { + s_anaFilt[x] = i*2*RESX/calib->count; break; } } @@ -2771,9 +2775,14 @@ void evalInputs(uint8_t mode) #ifndef SIMU if (i < NUM_STICKS+NUM_POTS) { - CalibData * calib = &g_eeGeneral.calib[i]; - v -= calib->mid; - v = v * (int32_t)RESX / (max((int16_t)100, (v>0 ? calib->spanPos : calib->spanNeg))); + if (IS_MULTIPOS_POT(i)) { + v -= RESX; + } + else { + CalibData * calib = &g_eeGeneral.calib[i]; + v -= calib->mid; + v = v * (int32_t)RESX / (max((int16_t)100, (v>0 ? calib->spanPos : calib->spanNeg))); + } } #endif @@ -3730,10 +3739,10 @@ void doMixerCalculations() // therefore forget the exact calculation and use only 1 instead; good compromise lastTMR = tmr10ms; - getSwitchesPosition(); - getADC(); + getSwitchesPosition(); + #if defined(PCBSKY9X) && !defined(REVA) && !defined(SIMU) Current_analogue = (Current_analogue*31 + s_anaFilt[8] ) >> 5 ; if (Current_analogue > Current_max) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index d12bf7edd..ead6c7fc2 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -412,6 +412,12 @@ enum EnumKeys { #include "myeeprom.h" +#if defined(PCBTARANIS) + #define IS_MULTIPOS_POT(x) ((x)>=POT1 && (x)<=POT_LAST && (g_eeGeneral.potsType & (1 << ((x)-POT1)))) +#else + #define IS_MULTIPOS_POT(x) (false) +#endif + #if ROTARY_ENCODERS > 0 #define IF_ROTARY_ENCODERS(x) x, #else @@ -1098,6 +1104,7 @@ template FORCEINLINE t min(t a, t b) { return a FORCEINLINE t max(t a, t b) { return a>b?a:b; } template FORCEINLINE t sgn(t a) { return a>0 ? 1 : (a < 0 ? -1 : 0); } template FORCEINLINE t limit(t mi, t x, t ma) { return min(max(mi,x),ma); } +template void swap(t & a, t & b) { t tmp = b; b = a; a = tmp; } #if defined(HELI) || defined(FRSKY_HUB) uint16_t isqrt32(uint32_t n); From b4c6d123c841d10acdc752fa688817821abb354a Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Wed, 15 Jan 2014 21:15:28 +0100 Subject: [PATCH 06/16] Better implementation for the automatic detection of a 6pos switch --- radio/src/gui/menu_general.cpp | 53 +++++++++++++++++++--------------- radio/src/opentx.cpp | 12 ++------ radio/src/opentx.h | 10 +++++-- 3 files changed, 40 insertions(+), 35 deletions(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index 766d05d8b..242b7f0fa 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1238,6 +1238,7 @@ void menuGeneralHardware(uint8_t event) } #endif +#define XPOT_DELTA 5 void menuCommonCalib(uint8_t event) { @@ -1249,26 +1250,30 @@ void menuCommonCalib(uint8_t event) reusableBuffer.calib.midVals[i] = (reusableBuffer.calib.hiVals[i] + reusableBuffer.calib.loVals[i]) / 2; #if defined(PCBTARANIS) uint8_t idx = i - POT1; - int count = reusableBuffer.calib.xpotsPositionsCount[idx]; + int count = reusableBuffer.calib.xpotsCalib[idx].stepsCount; if (count <= POTS_POS_COUNT) { - bool found = false; - for (int j=0; j reusableBuffer.calib.xpotsPositions[idx][j][0]-10 && vt < reusableBuffer.calib.xpotsPositions[idx][j][0]+10) { - reusableBuffer.calib.xpotsPositions[idx][j][0] = min(vt, reusableBuffer.calib.xpotsPositions[idx][j][0]); - reusableBuffer.calib.xpotsPositions[idx][j][1] = max(vt, reusableBuffer.calib.xpotsPositions[idx][j][1]); - if (reusableBuffer.calib.xpotsPositions[idx][j][1] - reusableBuffer.calib.xpotsPositions[idx][j][0] > 20) { - reusableBuffer.calib.xpotsPositionsCount[idx] = 255; - } - found = true; - break; - } + if (reusableBuffer.calib.xpotsCalib[idx].lastCount == 0 || vt < reusableBuffer.calib.xpotsCalib[idx].lastPosition - XPOT_DELTA || vt > reusableBuffer.calib.xpotsCalib[idx].lastPosition + XPOT_DELTA) { + reusableBuffer.calib.xpotsCalib[idx].lastPosition = vt; + reusableBuffer.calib.xpotsCalib[idx].lastCount = 1; } - if (!found) { - if (count < 6) { - reusableBuffer.calib.xpotsPositions[idx][count][0] = vt; - reusableBuffer.calib.xpotsPositions[idx][count][1] = vt; + else { + if (reusableBuffer.calib.xpotsCalib[idx].lastCount < 255) reusableBuffer.calib.xpotsCalib[idx].lastCount++; + } + if (reusableBuffer.calib.xpotsCalib[idx].lastCount == 8/*80ms*/) { + int16_t position = reusableBuffer.calib.xpotsCalib[idx].lastPosition; + bool found = false; + for (int j=0; j= reusableBuffer.calib.xpotsCalib[idx].steps[j]-XPOT_DELTA && position <= reusableBuffer.calib.xpotsCalib[idx].steps[j]+XPOT_DELTA) { + found = true; + break; + } + } + if (!found) { + if (count < POTS_POS_COUNT) { + reusableBuffer.calib.xpotsCalib[idx].steps[count] = position; + } + reusableBuffer.calib.xpotsCalib[idx].stepsCount += 1; } - reusableBuffer.calib.xpotsPositionsCount[idx] += 1; } } #endif @@ -1311,7 +1316,8 @@ void menuCommonCalib(uint8_t event) reusableBuffer.calib.midVals[i] = anaIn(i); #if defined(PCBTARANIS) if (i 1 && count <= POTS_POS_COUNT) { for (int j=0; jcount = count - 1; for (int j=0; jcount; j++) { - calib->steps[j] = (reusableBuffer.calib.xpotsPositions[idx][j+1][0] + reusableBuffer.calib.xpotsPositions[idx][j][1]) >> 5; + calib->steps[j] = (reusableBuffer.calib.xpotsCalib[idx].steps[j+1] + reusableBuffer.calib.xpotsCalib[idx].steps[j]) >> 5; } } } @@ -1374,7 +1379,7 @@ void menuCommonCalib(uint8_t event) for (int i=POT1; i<=POT_LAST; i++) { uint8_t steps = 0; if (reusableBuffer.calib.state == 2) { - steps = reusableBuffer.calib.xpotsPositionsCount[i-POT1]; + steps = reusableBuffer.calib.xpotsCalib[i-POT1].stepsCount; } else if (IS_MULTIPOS_POT(i)) { StepsCalibData * calib = (StepsCalibData *) &g_eeGeneral.calib[i]; diff --git a/radio/src/opentx.cpp b/radio/src/opentx.cpp index 2e7fb6d8f..6923ecdce 100644 --- a/radio/src/opentx.cpp +++ b/radio/src/opentx.cpp @@ -2497,17 +2497,11 @@ void getADC() for (uint32_t i=0; i<4; i++) { adcRead(); for (uint32_t x=0; x=POT1 && x<=POT2 && temp[x]!=Analog_values[x]) { - i = 0; - } - temp[x] = Analog_values[x]; - } - else -#endif temp[x] += Analog_values[x]; } +#if defined(PCBTARANIS) + if (s_noScroll) break; +#endif } for (uint32_t x=0; x Date: Mon, 27 Jan 2014 15:11:03 +0100 Subject: [PATCH 07/16] Added black outlines to 24x24, 32x32 and 48x48 icons to improve visibility Replaced 16x16 icons whith monoblack icons, to make them visible in menus --- .../originals/scripts/addblackoutline.sh | 10 ++++++++++ companion/src/themes/monowhite/16/add.png | Bin 250 -> 145 bytes .../src/themes/monowhite/16/arrow-left.png | Bin 261 -> 156 bytes .../src/themes/monowhite/16/arrow-right.png | Bin 264 -> 160 bytes .../src/themes/monowhite/16/changelog.png | Bin 278 -> 169 bytes companion/src/themes/monowhite/16/clear.png | Bin 278 -> 162 bytes companion/src/themes/monowhite/16/compare.png | Bin 305 -> 205 bytes .../src/themes/monowhite/16/configure.png | Bin 384 -> 364 bytes .../src/themes/monowhite/16/contributors.png | Bin 484 -> 463 bytes companion/src/themes/monowhite/16/copy.png | Bin 289 -> 176 bytes .../src/themes/monowhite/16/currentmodel.png | Bin 414 -> 393 bytes companion/src/themes/monowhite/16/cut.png | Bin 481 -> 494 bytes .../src/themes/monowhite/16/duplicate.png | Bin 317 -> 212 bytes companion/src/themes/monowhite/16/edit.png | Bin 321 -> 196 bytes companion/src/themes/monowhite/16/exit.png | Bin 348 -> 239 bytes companion/src/themes/monowhite/16/fuses.png | Bin 450 -> 426 bytes .../src/themes/monowhite/16/information.png | Bin 353 -> 341 bytes companion/src/themes/monowhite/16/library.png | Bin 265 -> 158 bytes companion/src/themes/monowhite/16/list.png | Bin 351 -> 248 bytes companion/src/themes/monowhite/16/logs.png | Bin 324 -> 206 bytes .../src/themes/monowhite/16/movedown.png | Bin 300 -> 184 bytes companion/src/themes/monowhite/16/moveup.png | Bin 285 -> 175 bytes companion/src/themes/monowhite/16/new.png | Bin 288 -> 181 bytes companion/src/themes/monowhite/16/open.png | Bin 278 -> 180 bytes .../src/themes/monowhite/16/paintbrush.png | Bin 432 -> 286 bytes companion/src/themes/monowhite/16/paste.png | Bin 337 -> 227 bytes companion/src/themes/monowhite/16/play.png | Bin 389 -> 371 bytes .../src/themes/monowhite/16/preferences.png | Bin 374 -> 258 bytes companion/src/themes/monowhite/16/print.png | Bin 289 -> 181 bytes .../src/themes/monowhite/16/profiles.png | Bin 304 -> 292 bytes .../src/themes/monowhite/16/read_eeprom.png | Bin 473 -> 348 bytes .../themes/monowhite/16/read_eeprom_file.png | Bin 388 -> 283 bytes .../src/themes/monowhite/16/read_flash.png | Bin 465 -> 346 bytes .../themes/monowhite/16/recentdocument.png | Bin 311 -> 199 bytes companion/src/themes/monowhite/16/save.png | Bin 292 -> 183 bytes companion/src/themes/monowhite/16/saveas.png | Bin 303 -> 195 bytes .../src/themes/monowhite/16/simulate.png | Bin 284 -> 181 bytes companion/src/themes/monowhite/16/stop.png | Bin 295 -> 144 bytes companion/src/themes/monowhite/16/update.png | Bin 402 -> 381 bytes companion/src/themes/monowhite/16/wizard.png | Bin 393 -> 344 bytes .../src/themes/monowhite/16/write_eeprom.png | Bin 474 -> 341 bytes .../themes/monowhite/16/write_eeprom_file.png | Bin 388 -> 287 bytes .../src/themes/monowhite/16/write_flash.png | Bin 465 -> 357 bytes companion/src/themes/monowhite/24/add.png | Bin 261 -> 343 bytes .../src/themes/monowhite/24/arrow-left.png | Bin 457 -> 531 bytes .../src/themes/monowhite/24/arrow-right.png | Bin 448 -> 525 bytes .../src/themes/monowhite/24/changelog.png | Bin 343 -> 424 bytes companion/src/themes/monowhite/24/clear.png | Bin 471 -> 571 bytes companion/src/themes/monowhite/24/compare.png | Bin 462 -> 605 bytes .../src/themes/monowhite/24/configure.png | Bin 398 -> 557 bytes .../src/themes/monowhite/24/contributors.png | Bin 494 -> 697 bytes companion/src/themes/monowhite/24/copy.png | Bin 359 -> 443 bytes .../src/themes/monowhite/24/currentmodel.png | Bin 506 -> 613 bytes companion/src/themes/monowhite/24/cut.png | Bin 577 -> 848 bytes .../src/themes/monowhite/24/duplicate.png | Bin 557 -> 679 bytes companion/src/themes/monowhite/24/edit.png | Bin 428 -> 589 bytes companion/src/themes/monowhite/24/exit.png | Bin 559 -> 741 bytes companion/src/themes/monowhite/24/fuses.png | Bin 581 -> 756 bytes .../src/themes/monowhite/24/information.png | Bin 296 -> 383 bytes companion/src/themes/monowhite/24/library.png | Bin 297 -> 377 bytes companion/src/themes/monowhite/24/list.png | Bin 531 -> 623 bytes companion/src/themes/monowhite/24/logs.png | Bin 408 -> 537 bytes .../src/themes/monowhite/24/movedown.png | Bin 439 -> 529 bytes companion/src/themes/monowhite/24/moveup.png | Bin 438 -> 528 bytes companion/src/themes/monowhite/24/new.png | Bin 328 -> 425 bytes companion/src/themes/monowhite/24/open.png | Bin 352 -> 477 bytes .../src/themes/monowhite/24/paintbrush.png | Bin 605 -> 755 bytes companion/src/themes/monowhite/24/paste.png | Bin 392 -> 515 bytes companion/src/themes/monowhite/24/play.png | Bin 417 -> 440 bytes .../src/themes/monowhite/24/preferences.png | Bin 501 -> 724 bytes companion/src/themes/monowhite/24/print.png | Bin 337 -> 425 bytes .../src/themes/monowhite/24/profiles.png | Bin 293 -> 372 bytes .../src/themes/monowhite/24/read_eeprom.png | Bin 683 -> 899 bytes .../themes/monowhite/24/read_eeprom_file.png | Bin 581 -> 853 bytes .../src/themes/monowhite/24/read_flash.png | Bin 723 -> 1083 bytes .../themes/monowhite/24/recentdocument.png | Bin 557 -> 771 bytes companion/src/themes/monowhite/24/save.png | Bin 304 -> 378 bytes companion/src/themes/monowhite/24/saveas.png | Bin 493 -> 655 bytes .../src/themes/monowhite/24/simulate.png | Bin 394 -> 446 bytes companion/src/themes/monowhite/24/stop.png | Bin 319 -> 343 bytes companion/src/themes/monowhite/24/update.png | Bin 501 -> 594 bytes companion/src/themes/monowhite/24/wizard.png | Bin 610 -> 818 bytes .../src/themes/monowhite/24/write_eeprom.png | Bin 690 -> 901 bytes .../themes/monowhite/24/write_eeprom_file.png | Bin 648 -> 866 bytes .../src/themes/monowhite/24/write_flash.png | Bin 734 -> 1109 bytes companion/src/themes/monowhite/32/add.png | Bin 376 -> 444 bytes .../src/themes/monowhite/32/arrow-left.png | Bin 390 -> 379 bytes .../src/themes/monowhite/32/arrow-right.png | Bin 386 -> 379 bytes .../src/themes/monowhite/32/changelog.png | Bin 393 -> 419 bytes companion/src/themes/monowhite/32/clear.png | Bin 396 -> 395 bytes companion/src/themes/monowhite/32/compare.png | Bin 446 -> 479 bytes .../src/themes/monowhite/32/configure.png | Bin 468 -> 567 bytes .../src/themes/monowhite/32/contributors.png | Bin 702 -> 896 bytes companion/src/themes/monowhite/32/copy.png | Bin 388 -> 401 bytes .../src/themes/monowhite/32/currentmodel.png | Bin 516 -> 628 bytes companion/src/themes/monowhite/32/cut.png | Bin 693 -> 933 bytes .../src/themes/monowhite/32/duplicate.png | Bin 466 -> 522 bytes companion/src/themes/monowhite/32/edit.png | Bin 543 -> 638 bytes companion/src/themes/monowhite/32/exit.png | Bin 569 -> 701 bytes companion/src/themes/monowhite/32/fuses.png | Bin 637 -> 815 bytes .../src/themes/monowhite/32/information.png | Bin 403 -> 450 bytes companion/src/themes/monowhite/32/library.png | Bin 378 -> 374 bytes companion/src/themes/monowhite/32/list.png | Bin 511 -> 607 bytes companion/src/themes/monowhite/32/logs.png | Bin 501 -> 607 bytes .../src/themes/monowhite/32/movedown.png | Bin 461 -> 538 bytes companion/src/themes/monowhite/32/moveup.png | Bin 444 -> 532 bytes companion/src/themes/monowhite/32/new.png | Bin 408 -> 461 bytes companion/src/themes/monowhite/32/open.png | Bin 449 -> 510 bytes .../src/themes/monowhite/32/paintbrush.png | Bin 614 -> 738 bytes companion/src/themes/monowhite/32/paste.png | Bin 467 -> 552 bytes companion/src/themes/monowhite/32/play.png | Bin 239 -> 459 bytes .../src/themes/monowhite/32/preferences.png | Bin 580 -> 689 bytes companion/src/themes/monowhite/32/print.png | Bin 418 -> 458 bytes .../src/themes/monowhite/32/profiles.png | Bin 338 -> 322 bytes .../src/themes/monowhite/32/read_eeprom.png | Bin 795 -> 970 bytes .../themes/monowhite/32/read_eeprom_file.png | Bin 778 -> 924 bytes .../src/themes/monowhite/32/read_flash.png | Bin 902 -> 1213 bytes .../themes/monowhite/32/recentdocument.png | Bin 661 -> 844 bytes companion/src/themes/monowhite/32/save.png | Bin 366 -> 380 bytes companion/src/themes/monowhite/32/saveas.png | Bin 418 -> 464 bytes .../src/themes/monowhite/32/simulate.png | Bin 396 -> 452 bytes companion/src/themes/monowhite/32/stop.png | Bin 181 -> 359 bytes companion/src/themes/monowhite/32/update.png | Bin 535 -> 636 bytes companion/src/themes/monowhite/32/wizard.png | Bin 701 -> 885 bytes .../src/themes/monowhite/32/write_eeprom.png | Bin 815 -> 986 bytes .../themes/monowhite/32/write_eeprom_file.png | Bin 791 -> 971 bytes .../src/themes/monowhite/32/write_flash.png | Bin 904 -> 1208 bytes companion/src/themes/monowhite/48/add.png | Bin 395 -> 459 bytes .../src/themes/monowhite/48/arrow-left.png | Bin 640 -> 850 bytes .../src/themes/monowhite/48/arrow-right.png | Bin 637 -> 772 bytes .../src/themes/monowhite/48/changelog.png | Bin 625 -> 802 bytes companion/src/themes/monowhite/48/clear.png | Bin 717 -> 891 bytes companion/src/themes/monowhite/48/compare.png | Bin 1039 -> 1453 bytes .../src/themes/monowhite/48/configure.png | Bin 649 -> 880 bytes .../src/themes/monowhite/48/contributors.png | Bin 1003 -> 1330 bytes companion/src/themes/monowhite/48/copy.png | Bin 615 -> 801 bytes .../src/themes/monowhite/48/currentmodel.png | Bin 764 -> 982 bytes companion/src/themes/monowhite/48/cut.png | Bin 1200 -> 1685 bytes .../src/themes/monowhite/48/duplicate.png | Bin 781 -> 1039 bytes companion/src/themes/monowhite/48/edit.png | Bin 840 -> 1164 bytes companion/src/themes/monowhite/48/exit.png | Bin 971 -> 1340 bytes companion/src/themes/monowhite/48/fuses.png | Bin 1056 -> 1455 bytes .../src/themes/monowhite/48/information.png | Bin 482 -> 584 bytes companion/src/themes/monowhite/48/library.png | Bin 518 -> 614 bytes companion/src/themes/monowhite/48/list.png | Bin 784 -> 1132 bytes companion/src/themes/monowhite/48/logs.png | Bin 730 -> 965 bytes .../src/themes/monowhite/48/movedown.png | Bin 662 -> 837 bytes companion/src/themes/monowhite/48/moveup.png | Bin 645 -> 811 bytes companion/src/themes/monowhite/48/new.png | Bin 602 -> 822 bytes companion/src/themes/monowhite/48/open.png | Bin 585 -> 708 bytes .../src/themes/monowhite/48/paintbrush.png | Bin 951 -> 1257 bytes companion/src/themes/monowhite/48/paste.png | Bin 707 -> 929 bytes companion/src/themes/monowhite/48/play.png | Bin 386 -> 568 bytes .../src/themes/monowhite/48/preferences.png | Bin 974 -> 1363 bytes companion/src/themes/monowhite/48/print.png | Bin 596 -> 842 bytes .../src/themes/monowhite/48/profiles.png | Bin 467 -> 612 bytes .../src/themes/monowhite/48/read_eeprom.png | Bin 1519 -> 2193 bytes .../themes/monowhite/48/read_eeprom_file.png | Bin 1474 -> 2105 bytes .../src/themes/monowhite/48/read_flash.png | Bin 1805 -> 2598 bytes .../themes/monowhite/48/recentdocument.png | Bin 1164 -> 1678 bytes companion/src/themes/monowhite/48/save.png | Bin 492 -> 600 bytes companion/src/themes/monowhite/48/saveas.png | Bin 649 -> 842 bytes .../src/themes/monowhite/48/simulate.png | Bin 534 -> 636 bytes companion/src/themes/monowhite/48/stop.png | Bin 249 -> 429 bytes companion/src/themes/monowhite/48/update.png | Bin 759 -> 981 bytes companion/src/themes/monowhite/48/wizard.png | Bin 1160 -> 1650 bytes .../src/themes/monowhite/48/write_eeprom.png | Bin 1563 -> 2239 bytes .../themes/monowhite/48/write_eeprom_file.png | Bin 1473 -> 2129 bytes .../src/themes/monowhite/48/write_flash.png | Bin 1828 -> 2644 bytes 169 files changed, 10 insertions(+) create mode 100755 companion/src/images/originals/scripts/addblackoutline.sh diff --git a/companion/src/images/originals/scripts/addblackoutline.sh b/companion/src/images/originals/scripts/addblackoutline.sh new file mode 100755 index 000000000..41e2876bd --- /dev/null +++ b/companion/src/images/originals/scripts/addblackoutline.sh @@ -0,0 +1,10 @@ +#!/bin/bash +for file in $(ls *png) +do + convert $file \( +clone \ + -channel A -morphology EdgeOut Diamond +channel \ + +level-colors black \ + \) -compose DstOver -composite $file +done + + diff --git a/companion/src/themes/monowhite/16/add.png b/companion/src/themes/monowhite/16/add.png index 0d768aa670cbf4ae71c4bd18ee34cff66845e1ae..e2cb16737319b2bdc54b26d131ba60024cce2379 100644 GIT binary patch delta 84 zcmeyxIFWIJ%0v@oFZL2oUsv{fjFOyYO3Q6{T^JY`lssJ=Lp07OCoHi3asGpRXhY`& ozEh$Ghu$7jJZ>UVmdKI;Vst0C2$?w*UYD delta 188 zcmbQp_=|CZ3NK5#qpu?aW7`757t`V=Dyr4%c)B=-Xq->}bG|{|z%U^CV13(vky#GA zn2!B7*uC+@#1y7O;sJA+A8<=WF*2M8Kd7b7#dj_m|7W{X&V??85jgVKJyPnLvDUbW?Cggg9=oKft9I=m9Ys#2j^J< QMW7A_Pgg&ebxsLQ0No)v+W-In diff --git a/companion/src/themes/monowhite/16/arrow-left.png b/companion/src/themes/monowhite/16/arrow-left.png index 66e5655a64a01c686f97858c2c9564ef8e83b75a..df382a72326a44e23b1ce2918dafbaa6425058fa 100644 GIT binary patch delta 95 zcmZo=n!`9jWul34D0_*guPggKMoCU{LB{W~!VC-yx}GkMAsXkC6C^4QbSQq351k{p z-(*+Q{~1X=KbA^L%ce@E;BGNsFt`!l%yn< zq*^5xr2;7iBLhPdT?0d1BhwH=BP#<_D?>AF14AnVgW$(!{-J2d)z44KOshoEVPItn Y)L{JD7h{XPn zA%elhq6AGnrV>UBOVN}tk>W@qtia+(CKTyESY0*X008%72nU+OnV0|o002ovPDHLk FV1n>=B$)sJ delta 202 zcmZ3$*ugYGg_kAW(btiIv2B6ji)rx_71ipkJY5_^G|nggIo}{}V0a;hky}Xmk&N3N zH3KEh!-=e7sxR^m1UPNdH;_5i5-$~cu)fWH#=R67mO@5`DQ;ZSvjxnY7#J8-OI#yL zQW8s2t&)pUffR$0fuV`6fuXLEX^5ebm4T_1p_#UUp_PF_@Z&T8kTe*jTIJ@aWTsW3 e=rFJ{HMKG|hUj>D+(!(kgTd3)&t;ucLK6VQ$327q diff --git a/companion/src/themes/monowhite/16/changelog.png b/companion/src/themes/monowhite/16/changelog.png index 3a20018b3cd34d7cd642387a2fdaeccb356fb33a..e1eba6ff6d976d2206206d1979a2deb56b708c66 100644 GIT binary patch delta 108 zcmV-y0F(cg0;vIzB#|^DVh40dO+^RZ0T~H3G}bG|{|KyX5OLgS?sY=%i% z4q|`Ke~>?TIFD8NkV^{df60H&s{fRAQXMb0`y>Z`knc`fqn7aX*#iSc_cew=GP4;D z>k8;!xa}Lmz`&qd;u=wsl30>zm0Xkxq!^403{7+m40Vl6Lkx|q3{0&I&9n^+tqcr; r9Uh7b2L_{#$kZp5cp;N||F@2WUiW3IA6>c$|ofoxd-!HKl zQZ_;oasrQ{7#J8-OI#yLQW8s2t&)pUffR$0fuV`6fuXLEX^5ebm4T_1p_#UUp_PF_ ru*2gs|4?+~=BH$)RifxHurjresDZ)L)z4*}Q$iB}1dvD_ diff --git a/companion/src/themes/monowhite/16/compare.png b/companion/src/themes/monowhite/16/compare.png index cd3ac1c4a1864bbb784bbecf89deb7077f762808..553ddaa10d6f1cf050cf0a50a4087fa27319e379 100644 GIT binary patch delta 145 zcmV;C0B--W0?h%CB#|^De+P6)O+^RZ0T~J~FO89CCIA2cUP(kjR4C7-kx>qSAPhrW zz;kmnZ)W{LU@{gH$4@g}n-YM(!%6EA2^T$BLuRd)?PMJ%02GT*CPyPNZJKpMiMx0J zSIBmFP1@`$gc>C%eg#0|cS`jQU4UP{u~}~7KOIWjtX%5=0000<2SrXqu0mjfK)N(y delta 243 zcmX@hxRGgs3NK5#qpu?aW7`757t`V=Dyr2dd%8G=Xq<1I;4O4Ofx|go=Kb4?Ra;6P z*Dol2s9-a}<=O8k^Q}s|zbAGz==QqDq#gQe#=pSOf1j1XEB(beo@;Bf0_>(-U+}xZ zNZ#ZEPsR+f)jPI4iQjUj{q$+pBh&m9ikunrC3@w<_?9bYFfcHvmbgZgq$HN4S|t~y z0;y;QBLhPdT?0d1BhwH=BP#<_D?>AF14AnVgW$(!{-Nl|%}>cpt3=UYXk}tyWnvD| UU~=SX9#8{=r>mdKI;Vst08Oe`bN~PV diff --git a/companion/src/themes/monowhite/16/configure.png b/companion/src/themes/monowhite/16/configure.png index 80ad994556722237af052826777487c157412514..6a3295aab189da0955f1ae3bccb1f9713e1ac5fa 100644 GIT binary patch delta 228 zcmZo*e#10jLVc>Ii(`n!`Q!wNNea!0Qf7&9Y_@D{Y@TgXd2UPQ85tOG98!^3_(hj3 zv~4F(9?xlseZ~erU||rGs*&>J?12LRA0t2pstz9YwW<((2~ z#xgQ5CMXFqF!c2DOXqKiNMT@LP%UwdC`m~yNwrEYN==L{No6oHFf`FMFw`})2r;y@ zGBmX^veY&(v@$RV-+agmMMrLaN@iLmLW6mTk&%_5g_V&7L_>lq`v#x}22WQ%mvv4F FO#lP8MyUV* delta 201 zcmaFE)WAGpLVcyDi(`n!`Q$(68{`cPdE8hfc`i@bsS_}3y5q!$Ld`0NS=j8@RN2_r z9NWGNaJsE9&o^9QbSAYRIpWxdxs5<@u<@amv*O|W676XQM-JWW3HW8t^6B68-{(Kf zf4Kka|EvGy|NZ|T&!NQ^-p~;9KmEUb#{*-&)&*<~wLgr!r!uRwUYPh#M%2hO#L&pf vz|_jnOxwWF%D^D_@tJ><^%-RpK{AF`AY=@YVb%1Q$N&VMu6{1-oD!M<61`B} diff --git a/companion/src/themes/monowhite/16/contributors.png b/companion/src/themes/monowhite/16/contributors.png index f7a642e0d9157839e38ad6428d14698d8caebe23..ca7664737534bcde911489ca7f79954d3a848ddc 100644 GIT binary patch delta 328 zcmaFDe4cs2g!&VnE{-7@=ht4`t9O`DsA>mUAmWWTe#TzOvq`5w#mO4q{&det&^nO&K|+UGK-d11%l zMH?fSbdPXXh;B(&FF7)GTXp}no+IDt#f6vuQu=kyM{8$9;TzA>^B)Mx zt0RB6(zlwar&cf=Q<9TWXp${gI>vh8>gA1(F12^~i-+aDdg(X2M*Fzf&$yG^rXPau zv(&Bj*1LM?n267_Z!Y!kmF;V5)s&7gFfgc=xJHzuB$lLFB^RXvDF!10Lla#CLtR6Q z5JO8VLsKgwOKk%~D+2?^@Xd$3P;}(xr(~v8B6OIC7#Ud^T38ubKy)OivTp!tVDNPH Kb6Mw<&;$TOy@~|@ delta 325 zcmV-L0lNOr1LOmckbm7tL_t(2&!v&EP6AOBM9%_-f{MxtLqSai6hL7@f_?ynF&h6y zAckNoe?W{@mV5!CcGB5c84~|M55?QvER8W?UiD_?&Asp5Nd88Se;V>!b4wY3GE>In zW5saJRUL{rR`o0>NkRpXX8=|RRCf~^>cpz|K6>a(Z3U$e`)5{s@XjRz;Eg3cmf0pR zc%nixz8!GF5eu%85_blC+g0`0P0Y*$ajoiur=lvhovXSIhK_w37QOLP)h|butlPI^ z`U`w9i`RsY(p~)QjQuy6WFe($L>WW+F4}vWTM5mggnlEMi<4mi98xkhR53C-Ff}?c zHY+eOIxsL(IC{D`hG?8mPFNuJqrc%1-wja( z&7;en*ssz|0?)FK#IZ0z|ch3z);u7G{n%z z%D~&y%Fs;Pz|hLTAo%f_e<(U~^HVa@Dp7P8SeY7GnV3K{@QG#C12r&sy85}Sb4q9e E0M{B%jsO4v diff --git a/companion/src/themes/monowhite/16/currentmodel.png b/companion/src/themes/monowhite/16/currentmodel.png index 380545d7ae5a63460b475f5f10753e552029625f..2f9d7288868fe210121fb6d7e26e3ef45a2aac5b 100644 GIT binary patch delta 211 zcmbQo+{rv)LVc5`i(`n!`Q(HJ))!JQxQZq?1q&P&XujX_oacNXYs7*Qt!4#g=4Os& z7G`E=@x#(=Y;FBKnX delta 232 zcmV1D*qrkbjp+L_t(2&$W>)4#GeXMqi;0K}ZmV3!r)yE>K4hc(?=M2uKbB zH^8FMm>M*MhiIE!eo_T9Vv{%DelxS1NPBenwIC;N7Zen)AbA_|0*qpi*5{l7FeC#u zl)#lO0#=#1H;#kjs?rD$SKd{9xC}HF^t{#gCxOOWOi4L$1R)j?jU0Ba?TRzcrr%lw z<9;)uAMfyo&w2tIvTsdgi6hyQ8vz^@GBs2&GCD9dIx#jYFflqXFjM2q{*z1r93e6> iR5CF-G%-3eFe@-IIxsM=6E{-7@=hsfu&vSAVXy1Qx?%i4kfeI(50MUphH4Z)pC#k**Tt5DR zjysr_m^(B$Bye;kSTOK4GJif2Hsw>Cm#Xor-)H~x*c_b{bgBA6mFG*og;GKHPqo)- zFIhM%@q>7M(bo7f)A~>1@r(^=Yr%7N4tUELj(5&fk5jZSSp& z<7GLE_ue{YzkNnyr@8!-5QddAI%gI>lWj0RmzJg$#3;ZJ`SIjDeHr!#ty98h)f_pu zws#FAyMdb<8c~vxSdwa$oKTbsq#2A13{7+m40R1HLJTdf3{9invsFiDVvtns;^TRJ~jK1h8jP zy`aWxmYA{N$_RiVR~F1D0i*=j@Xe7QGMs=q5q-Xx&`R#G6>;F%ym`+Kf*J#Rn-*Q$ z7P0NxqD}V!s5*CL_Z6+{%DGkXnc+X*d;lm=#9SoU$)1yd0UQ-FHB>P&IxsalF*YkO xF*-0XQ{&A3ld%CDAu=&kGBG+dF*-9aD=;xSFfgyT_ z{E%FP;yeZh28R0#l^9}ZzF;81kt|r;g2mmK5{yL09{@9`CADgt^4*r~l9YtHpWq30));aw--lE8)+b?zbf|k*e>M((h;5Y#WhZRmq>JHh5?#x-U zfOnV2T=8w&jm7+wPJTToyp7wsnO^fn-hN_!(EeulrReXxf8U4Aky#P@gMooT zwZt_dy(A^EB-JXpC>2OC7#SFv=o%R68kvR|8d({bS{a&Y8yH#{7z95)^AD;6q9Hdw iB{QuOMT4Q0p{bRD5ky0p{NsZ_4Gf;HelF{r5}E*f30sB$ diff --git a/companion/src/themes/monowhite/16/edit.png b/companion/src/themes/monowhite/16/edit.png index 8c7d5ecacf9daebacab3a13cead3da4242127304..f4786d4b06025b725d3560f645d8c6c0d4285683 100644 GIT binary patch delta 135 zcmV;20C@kw0>lB3B#|^DeFt<&O+^RZ0T~G@FtYL?Q2+n{RY^oaR4C75V4y4bj|79T zD?qTGqbvE!z=EPcgW)klFskk<1{E~R?xULVo8bwACJrm%N?tPP;!^-o!j4BCAbdEJ6SP002ovPDHLkV1n%&GuHqB delta 259 zcmX@Yc#vs=3NK5#qpu?aW7`757t`V=Dyr2Nd%8G=Xq;br(U7abfT#7Li-`WC1h=Uz|z8zLX-9W60d{N}!8l2w4wr3ePy zRz`+q)5@)GB5~!eC8ie o2SP(`eoAIqC5i?ED-$Ct6AOq24vRadff^V*UHx3vIVCg!06vdnq5uE@ diff --git a/companion/src/themes/monowhite/16/exit.png b/companion/src/themes/monowhite/16/exit.png index dba574237d88e6f53855e92171786769e814ed7c..b2b3c569c76731a25ec4e1bfede6263fd59e55da 100644 GIT binary patch delta 179 zcmV;k08Ibf0`CEkB#|^De+P6)O+^RZ0T~Mf7HE8V?f?J)fJsC_R4C8Ak+BVcFbo7w zY3PyIhDGSJM_7RYvO+dMtPv@7R!B!oXDINAUmv delta 287 zcmaFQc!z0%3NK5#qpu?aW7`757t`V=Dyr4@dAc};Xq;braU*ZDfdK1;<~BLa+bM!o z-x@?E8bmia9+8^3V&$dF2fbT`-MwZVxgPQVo@l!Gqu-j3?>qcpStW6~wns}^@X%E~ zha0i|e=^Kp2)(%QBw>@5u*TYDG6vn#XPtCR4_;oDd->^uoN~_xN#*ApB?>OTzH6{2 zU(hL=vA+A;OtF0a@~)2G*#Uq4%;sm=za};(y!0sp1A}UbYeY#(Vo9o1a#1RfVlXl= zG|@FM)HN~5@)GB5~!eC8jDhTQy=%(O~$4JKAbMi33#_t^9RH86Ox MyZX7Tb4q9e07>g`y8r+H diff --git a/companion/src/themes/monowhite/16/fuses.png b/companion/src/themes/monowhite/16/fuses.png index f49e7fc467cc3888fa359081ea4146b8a943e6fd..521de6d3a882a51443c6d799d98e1e695831add2 100644 GIT binary patch delta 291 zcmX@ayo!0kg!;vvE{-7@=ht2|>~k!XVEGWQnxW#dQRbj(+=i+5822<=oba0Cbe21C z=Ye-t?XhRS-*O)d)*Qt%Kjc3Ddu?U0r^c0cxhGpvYP_Yia#{{W)K3b1+9uEaa7CMs zk*4&nq8bgo8YQ3Anma#-{{B+$8~wR6-1dO{j&98^2BmGv3=9maC9V-ADTyViR>?)F zK#IZ0z|ch3z);uFBE-LL_t(2&!v&Q4#5BvM!ya~Bv1 zU4&ROM~v|hnb6>Xu}6p{#+(~&UJxC27!f|kkqv_R5CF-G%-3eFe@-IIxsM= SAtTT1STAaK5ZEH3Ds7>H7 zU#N6t=L0dvH5~qj=HHfd{30fMG4pkg*eunY3K1p2hNRfUy2skgB7gax->hh}XJBAZ zEpd$~Nl7e8wMs5Z1yT$~28JfO28OzZ79oa~R)(fl#s=DM28LD!27Ha}>?k^N^HVa@ kDiJ!&LyU~93@xmTEVRKI5>(kY05vdpy85}Sb4q9e02wYqp8x;= delta 194 zcmcc0^pI)7g!(8?7sn8d^T~hCH^>_pPFT^<8c~vxSdwa$T$Bo=7>o=IO>_+mbw!O#Lkx|q3{0&I&9n^+tqcr; pAD{U*S%OhU(a12w$k58f(8|~VBD4PSgnXb`44$rjF6*2UngCn2L{I<# diff --git a/companion/src/themes/monowhite/16/library.png b/companion/src/themes/monowhite/16/library.png index 0073fb1e223f43c477e17b3be9dab0d76d2289aa..62b81160654fb4f22f78c7a9687bb8ffd78d6d21 100644 GIT binary patch delta 97 zcmeBVn#VXnWul34ID3hwuPggKMoCU1&5$O+6ATOt`kpS1AsXkC6BZ~JB>d=Sk^SJE z9NNTe;PmqUjwdq=SR?~kBQA*iQNLN-e2{kvGefbNF!Mh9S4}{z44$rjF6*2UngAK) BAtC?( delta 203 zcmbQo*vT|Og_kAW(btiIv2B6ji)rx_71ipkJzX3_G|nggIo}{}U>M-v$b7h7R|A6^>bP0l+XkKIrl#R diff --git a/companion/src/themes/monowhite/16/list.png b/companion/src/themes/monowhite/16/list.png index e79516bbfe8c99f21b26cf09af18bd96683dfa24..5e71cd167a7cbd115892c4ba996d65287925eb02 100644 GIT binary patch delta 188 zcmV;t07L)Z0{8)tB#|^De+P6)O+^RZ0T~JqB#+0H3;+NCiAh93R4C75V4yi*M&a== zlry+7oMrflO(_pU4Z{b9{|x^bJ~K2k@S{t+LM37FGlL(d8GGQ;hcG1-8RkG09cEx) zU|^WfpbC*-f-7NU_{Z>;!G*z=;T6MwBykilm*F47e};wFq+A(3GBEsw^L}G~0000@$M0i#5tL1_x~ULBip|3y3>BCMGr)?moMe3 zs^WP)V-7omXtmH|wS2aVtCFOpS}giMr7kjCW5Ksf+eu`}UZbT2S*6#bX67*-e=n>X z@as(cr+V8*zb;RzJ<}F0aoO;5;Jg3FUoi+|%&mAO{O}nA1A}UbYeY#(Vo9o1a#1Rf zVlXl=G|@FM)HN~5@)GB5~!eC8jDhTQy=%(O}r4TeC~R>n{b-(OT4 SF)(m3FnGH9xvX<{9 delta 262 zcmX@dc!X(!3NK5#qpu?aW7`757t`V=Dyr3&dAc};Xq->}bG|{|z%ao5V11F#1Jxx7 ztj!vBtcE=8l5x&!|DXTx|9?G)F4OY<|LIK|CW_wpU;nNCd;RDCJpZTv-QKF@8kF$$ z|C9Q6|Hb~7|F!>6ujnHcd9d~Wp#aC-|DA4#XehBvROG&L^+t2o#Ky*n-zKs$NNi6r z=03fSJ&%EbLAAs+q9i4;B-JXpC>2OC7#SFv=o%R68kvR|8d({bS{a&Y8yH#{7z95) o^AANsZhlH;S|y4GLn}jbDzopr0Nm_l_W%F@ diff --git a/companion/src/themes/monowhite/16/movedown.png b/companion/src/themes/monowhite/16/movedown.png index 9179824296833b0f19ba60938c993151f81e4c89..ed017edfb9a55514e3a84ac10b5e5241b112c7d5 100644 GIT binary patch delta 123 zcmV->0EGXn0=NN?B#|^DaR+osO+^RZ0T~JzE6%zz)BpegNl8ROR4C75U>H2$KLa}o zpN-)^x`O}M`AkTHAK|PY*sS=^@Sou=0|NsC!#5}otCANCpHQV4QIsG6BQ^yHC5-sI d`=4RZ0RX3s8>Fuv2$}!@002ovPDHLkV1f+PE#m+H delta 238 zcmdnNxQ1zh3NK5#qpu?aW7`757t`V=Dyr4TdAc};Xq?|W!H}!LfrlksSA^y7e{o%% zoFjT-RqjH3+^oU5o1D#Djun^wVUuv4@%_&6lUxi%4sUCZgk8P3FENcZ;d`Ocei1RZ zWv5R%IDRPW32wsx6v@$ZaGBJi|xOtXbFfuxo;cRqz!i-?`Sxui=xh@2)!ag8WRNi0dVN-jzTQVd20h9`UL(!3&pOTqYiK4^M%E-*h#1NukVTRTcpaup{S3j3^P6;M1&MoC0LR4C7-P(cm=Fa%TC z|G#V(34(2zUeM5jXbNbQl68=fyNWAWhP9Xlk{UXT!0_#g&jxu>&=prRE$1s-wF(mH aGb3!r3=j{O?4?2g0000_ ZPyykR7g|vMtn>f?002ovPDHLkV1glxF53VA delta 216 zcmdnOIE`t73NK5#qpu?aW7`757t`V=Dyr3cc)B=-Xq-Pf(U9wa0nd?=nZI7z>?}U^ z`pT4~UO_QmvAUQh^kMk%6I!u7RPhk!gsbk(Gg|m7$rofuWUw rL9oN)GyhO@UftDnm{r-UW|Wi3vk diff --git a/companion/src/themes/monowhite/16/paintbrush.png b/companion/src/themes/monowhite/16/paintbrush.png index c2724c5100dda81db9b4cd43e79131afb61e498e..4333818ef8ba4092f27160e79b75e76c1e23b0ea 100644 GIT binary patch delta 270 zcmdnMJdbIDWIY=L1B3kM|A|0~Ey>&6h2cL4F4((#GEjuGz$3Dlfr0NZ2s0kfUy%Y7 zWH0gbb!ETDD9I(mn|Qz}2Pm}K)5S5w;`G@|hJ1{HBCQYeU33^)FJy~KP1RkYb7ay5 zja(NerV9uY`0t$ zQnFf}2+Q0%u-a%c^D~PlCY7sI@+!LX{>*+jFYA*=Q~OL#Q=g=_%6qhn3VcjwxQUl; z+4v*nf2qPv*R2@}IY<2(u literal 432 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHr zx4R3&|Mvbf`++>p0*}aI1_r*vAk26?e?t)CaNmk&uu%AFdR(b1O`n@twS}C~OH-^xSn?W#L}2suLnwzgQ1g-1FJft{tqy*0W;1Po~n&bgh3ss+g@N zewnHqP^$@av}%cKL`h0wNvc(HQ7VvPFfuSS(KRsCH8Kq`G_o=jx#uqI~f666nS9m$yxIMBAy&yFYpB>+-hhIdj+Ts`k(}9` zBnSrp1A-u?p>Dv{)zMyA0h@1Dtib|Ilp#P^&C>McbY;8JUyq6h9bBtkoCc78IsvA3 VAT{qtNd5o-002ovPDHLkV1mfpML7Tf delta 275 zcmaFNc#&y>3NK5#qpu?aW7`757t`V=Dyr2td%8G=Xq->}bG|{|KyX5Og5$%RMh3=r zQY(6Nj&N*sn&a4baK2;TL$hXnXU@abZQcc<{}n&{2Z6uoKhA%s|5?w`a7rQi;E9H# zM_=@%q$H#yB>eC_A)doiE-4Zy`%^xTspW5TV{@b6<=Gsr1-dNET}7-0<_m6gTkCDm zs7_Q7xyxYdrMXcrG5@)GB5~!eC8jDhTQy=%(O}r4Te@mmR3f_5DkozGuwe07(8A5T-G@yGywpl1!jQ& diff --git a/companion/src/themes/monowhite/16/play.png b/companion/src/themes/monowhite/16/play.png index a3bb9afc241c29bc0130a4cc76c54815905a230b..d4720f2d8733bbbb625605aef3cb1a136c76cbf5 100644 GIT binary patch delta 190 zcmZo={>(ICLcP1Ei(`n!`Q(HJ${k4wN7g^EKOD#w{D%^&AK%zwz|%-}Plvm#y~m6g$5=!4q9hDDML3`b(*_}!1D%wS+(P%UwdC`m~y zNwrEYN(E93Mh1o^x(0^2hL$0QW>&_QR;EVU28LD!22(7Jo19Q|*S^7Y9fjD`T*z(V8z delta 160 zcmey&)XF?zLQ&t4m{(;!%{xi(5aEzaj!OG|^^dap^y_?U=|2#cg`gIu2M9rTm z@%?|z#0N5>My4T#Mpg!$%u_Xdj$o4G(NnK_4Hi5(GR1m#!mODOG*(*dzc5j|Poep-)B1bsJsW$> z6&+O$)HhD)70*%qYV}z%$Gjrjx$a1AqKDk0Z5!0pwo8;Ym(O2)!G*tC^zW~C>Mo(L z9?j^@+rhxVpjzS@QIe8al4_M)lnSI6j0_A-bPWu3jZ8xfjjRkztqjey4GgUe41yn@ r`G=w*H$NpatrD(55v0S=%Gkil$O59nj{jsiPzQsjtDnm{r-UW|lH_$_ diff --git a/companion/src/themes/monowhite/16/print.png b/companion/src/themes/monowhite/16/print.png index 81033fef96697866a08a42f3bd9eb37078d1ae8d..39191c93905f864e8663b1a362da029193a90eca 100644 GIT binary patch delta 120 zcmV-;0Ehpf0<{5pwQC2Wvb>@HU3hzOp+f(m!Z@thg&BINfSF+*)Rg}W aR0IHA7!!NDr(7oh0000RdP`(kYX@0Ff`FMFw`|N4KXyb zGVnIFGBndRFtjo-2!4F#ABv9L{FKbJN)#OiR>qcACQuEXcRU{fH86O(`njxgN@xNA D3OZ1M diff --git a/companion/src/themes/monowhite/16/profiles.png b/companion/src/themes/monowhite/16/profiles.png index 6039ba23c639ca5ab02bfa7293aa7f32d2371c0d..01b13e3c7981514588617d60538b77760e58f67f 100644 GIT binary patch delta 156 zcmdnMw1jEGgnC&|7sn8d^T`Pk6$dz${x>!-FfjUad`hy^)}}ZHhW+>1xE?LpxsZW@ zLAAs+q9i4;B-JXpC>2OC7#SFv=o%R68d`)HT3Q*JS{WN?8yH#{81OZ=v!iIp%}>cp lt3+rp4>2;bGPJNVvd|U<>qt;#-vHFX;OXk;vd$@?2>{s2E>r*j delta 168 zcmZ3&w1H{DgnCU+7sn8d^T~hCH^>_pUWj4jp7QVffddClG`v!9TjZ0V@}&D=BCG5p zCWh(%x#WYr3jZ@OFsPQeMwFx^mZVxG7o`Fz1|tJQ6I}yCT_e*FLnA8#Q!7I=Z39Cq y1B2klXa1pR$jwj5Osj-zP&6_OF*39=F|;x^faqBNctSo<2ZN`ppUXO@geCy6&^UGg diff --git a/companion/src/themes/monowhite/16/read_eeprom.png b/companion/src/themes/monowhite/16/read_eeprom.png index da655ea1ca00b82abe0051989d5f1fa482d6715b..b58582958b642dc56b886699b948841d51f80f57 100644 GIT binary patch delta 332 zcmV-S0ki(u1Ka|T8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000fw z000fw0YWI7cmMzZ2XskIMF-vi845BbUvlHR0002#NklSa literal 473 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHr zx4R3&|Mvbf`++>p0*}aIptaXQn9)gNb_G!IlBbJfh{pNciEI6w9R*tV=Sq9rU!Z?+ zf%dGB3BRl+*}25NhLo-P_b3`SE0_hPf?d>&SoFwSXlrvgqkdVI@WeMvk-6+v=VazwL@z zc$7Dt>q?8JvRO|>&!LsK1)`qJWO>10u$1Y^@)`F(pH&T?;4okH`<`O9b!&dSao7_3 zxK%NE-;U%1!k@4BvVA?+Yh3zp^^y7ovjzJM!~mNjqy^aPTrE9VL2b@ zJJk}`h?11Vl2ohYqEsNoU}RuuqHAENYh)T?Xk=wzYGr7qZD43+U=aNH%s&(jx%nxX hX_Y7%46RHJtc=Ye8s0<{I|DT^c)I$ztaD0e0st;{sp$X! diff --git a/companion/src/themes/monowhite/16/read_eeprom_file.png b/companion/src/themes/monowhite/16/read_eeprom_file.png index beda75e23d6e2424ee707c6d2cc17fd220cc2126..214e82c4d6556a8e50e73eb69df34320ed72801c 100644 GIT binary patch delta 223 zcmV<503iQ_1DgVnB#|^De+P6)O+^RZ0T~K76KW@(sQ>@~tVu*cR4C7d(7kO!K@bGs zZ-Imk+=N91NDgR#49P{1IVPbNMC1~XNGQUwLt7-~UmO9aC+|Lp#wyh+GU^tb}AH%%r?1&);9iQlg>iT9+vCmfJOnR`i}lRjUw9f-2F2$%Cye zlHY>*=f^pU^`Y;>$l3`POJDUA3$KR04ZN6pZyHP{HpY^v&${V5VW00^^|LJzb1nWM ZxB(L#Lgft8M!o<5002ovPDHLkV1mOoV1@ty delta 327 zcmbQu)WSSLg_kAW(btiIv2B6ji)rx_71ipudAc};Xq+#-xY3u{QK0ohW%zG~^7EuXXR?YZ0K>1sInS-0(_*i?}sd*5z`g*rD)vy7Ymr zn)^c`XWreqh*d{s&1;x5Y1iskFoT__8LYTb6qKB#*T7mzc#GJH`0YIdFH8O*_ymB0 VP>X(n&7lAQ002ovPDHLkV1m;EfP4S| delta 405 zcmcb`bdh<23NK5#qpu?aW7`757t`V=Dyr5qGJCo>hG?9xow(N9xlp2Y{{5JlF=~gJ zTy>_ge$+Qu$&sDiYq1WJevP6$fp)9YxeSVy2k|vh^ok-xz!G za~tz}_V&;76zZLrQvOLczif3nB<#`az{_r$dpLJ_Pi^_t`RkM%8}*k;Md^cA1OMdxPf* zUkzNGlKIhLo|?Z$`k9jHGinNYnWuGDI5Jt5MLwLRzrcU;aUSuSqVu6erH7cjw?wA2 z)tWIFs$ZLQ{Kc;FX;-__A6+>2tl**Y!+Q=T6B#|^De+P6)O+^RZ0T~G~Cod5s;SV=@dR4C8AkV_7LFbG6n z8*k(3IJK#l7&n+;DY_F97+}H=eiH>f*;j;!My6;&#~p6Gb^A&J^pr7Q)z%#hc{EY< t@WJ--FX;*a&2g(gYGIhw6xHP<7gn7liL3RWp#T5?07*qoM6N<$0fO+S2b&;^_+cK9H zXc@2s-dX;T_j^_#uSuyUJI{ib6SWpbN|xO*C_ExvBq`3eEG==hacdR>1A}UbYeY#( zVo9o1VscR`kY+G4Ff`FMFw`|N4KXybGBC9=G}AUPv@$RVethO1ijLg;l+3hB6b%Me bCYDwv1`rL0%`>Bc8W=oX{an^LB{Ts5JQ7)& diff --git a/companion/src/themes/monowhite/16/save.png b/companion/src/themes/monowhite/16/save.png index 25c1dc9b8f48659444ea5c6c9772b1b2e42f41a5..dbf6d8695b19d822e49170d62581af30ed5b81ca 100644 GIT binary patch delta 122 zcmV-=0EPdg0=EH>B#|^Da0hfrO+^RZ0T~J+6WR)7asU7TNJ&INR4C8Qk2?+kAP7UB zg!^AfZ-$E+NH7jM*a1=~pTaE)0JiNQiwMPX?6t>EoyrWAns&yQukX~E z8>@}~JG=;w`KL2~|4!y_%u1azs(v{#Ffgc=xJHzuB$lLFB^RXvDF!10Lla#CLtP`& z5JNvBD+5z2Lo;myLn{M=;KyhFq3FoXPsvQHMA2brWo%+)XbI6EFOwPt)WG2B>gTe~ HDWM4fY~fLl diff --git a/companion/src/themes/monowhite/16/saveas.png b/companion/src/themes/monowhite/16/saveas.png index 129a543947fbfc6a7ce2fa988766799d6b1d411d..791c7be33247c32e3eac5cedac2bbc50b2378d34 100644 GIT binary patch delta 134 zcmV;10D1qf0>c52B#|^Dd<8c~vxSdwa$T$Bo= z7>ptf3{7+m40Vl6Lkx|q3{0&I&9n^+tqcr;AD{V$q9ZpyB{Qv(!3ar%p_Q?jm9Ygx V!~fko*8w#!c)I$ztaD0e0sv2^THF8t diff --git a/companion/src/themes/monowhite/16/simulate.png b/companion/src/themes/monowhite/16/simulate.png index 981976c19920e1dd72eb9c22d7bb823cc091e16d..5ce85479083ca4af8c4c67b73f19d5a9304bb439 100644 GIT binary patch delta 120 zcmV-;0Ehpa0<{5oPBQ7g26k{s*i)sRPD;RP60$mdp1&sK^fsy36 aAP4|P>JHW8Q?^V10000DLiHLwb?u2L7|B%^SYY zntopSaKr<9{uf!&3sM;v7*tDKBT7;dOH!?pi&B9UgOP!uiLQa6u90bop^=q=sg&6h2cL4F4((#GEjuGz$3Dlfq`2Xgc%uT&5-~K zvX^-Jy0YJ6l;qU5SZXvw2`D7%>Eak-aXL9c;!}fQ@BjHBwLVjJC0uC;WNzbRV95By VD6+m^VIEK+gQu&X%Q~loCIHaBB{={9 literal 295 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHr zx4R3&|Mvbf`++>p0*}aI1_o|n5N2eUHAey{sNm`17@~1L`Oo}|MRSm3O$(uVT zT7~rpu=Z@}*I}^S$1E>6X~dp_MAt0!|VFv z3aqKNDFH{*n9L8eYrM8));AM2GxSMG0D=!G6=x1~XuduEq5q-wVdb{XJpK}AHh9lZ zc#sm1Zs59Eg6p5boP-BQ#F?si-k9*GzF}Z6dnvko>65;kJO%~^)e_f;l9a@fRIB8o zR3OD*WMF8bYhb8rXc1y)X=P|?Wo)2rU}$Avz}MK$j-nwqKP5A*5~0C7#K_3X(89{d W0-_;7m3;$H1B0ilpUXO@geCy+a8aKC delta 220 zcmV<203-kX0+IuekbjFwL_t(2&tv@0fFCe1&|N_T!yAU549ggVuq$X{a9}WC5MX%D zumLXi9~r*;F9l^i{I3dOp_;(W@Bzwt&%le#giZe^{%82l@ZaR5CF-G%-3eFe@-I WIxsM= diff --git a/companion/src/themes/monowhite/16/wizard.png b/companion/src/themes/monowhite/16/wizard.png index 09f0ac05d3b12e0e063d5c16aad2d3e9e7e745ac..d1301c61315d3629652649bdd25e1df1acd58ed0 100644 GIT binary patch delta 328 zcmV-O0k{5%1K0wP8Gi-<001BJ|6u?C00v@9M??Vs0RI60puMM)00009a7bBm000XU z000XU0RWnu7ytkO2XskIMF-vi844*e?4JBx0002xNklKT8BL5XB!}5k(a2 zgeCJYn_cb-QLwP^P%Q2`!NTv);is^Q#buA^t!}n(U?9BVH-D3P1N>(gF`l0uziHGE zqS*w<0syJA004+;O;JuY!_$y~6|25K(pP;q-J})GtH?vCN42W`PXQp1ycd(_MXUNY zfKm0Ze=B-l@dJ6y9;}yrcMTvJvyXdYlM&r!TD4`VZ8tBABRGt~#O_ef zCl1-*Nmv{2#zD+gl8VVc;9p}5mWEyRxr!5I*t_{R-p0*}aI1_o|n5N2eUHAey{*yQQr7@~20>O@1X!v+E@-xnP^#m{t* zzu>)+?>>QoiU0pAO~?v*kuyK%^aSB1*UfX5L_0q(y%^ti>7Cq`9^GwG$N8T97Tn?z zBl(dn;(S)~44Ed0?``5Ap0It%+m%5`fzr=^oUmP2SJ?E?bK1_-+UUp# z?(>l1d738FFIOC~D_yv#nOdT#OxXpN(1Ki>x z=9jp{VpRKG5k42##vUH9gDsrl$O^S*9EP#ez{j|1d6aV=R|MV~__cxmi`lo;| XItN!reIfs@00000NkvXXu0mjf(q@l^ literal 474 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!60wlNoGJgf6SkfJR9T^xl_H+M9WCijWi-X*q z7}lMWc?skwBzpw;GB8xBF)%c=FfjZA3N^f7U???UV0e|lz+g3lfkC`r&aOZkpafHr zx4R3&|Mvbf`++>p0*}aIptaXQn9)gNb_G!IvZsq=Fw*EYK=Gk*eE7=7D zwKoQtOx;xI7}Du*eX4e~(z_!Q1dJxM{s@c{oN}PSGCj^xL5M-1L4fhclJgppf*#9x zQtlQk31Cs{St5}WzEuPtS2j8+UjD;REy{k5+t&hnpdK(|;fvY6$Z&dm}9UBg$s zir;GtAN8^N_ukI&OTXrKHT}NoU*@}F8~i_-AA9g$KO<|e(O#w>%u=6s1w8O^I|uZh zYKdz^NlIc#s#S7PDv)9@GB7mJH89jQG7T{_vNABWGBndRFtjo-2!4F#ABu+D{FKbJ gN)!!-R;ET)#)c3L-L=zPfEpM)UHx3vIVCg!0I}nt&Hw-a diff --git a/companion/src/themes/monowhite/16/write_eeprom_file.png b/companion/src/themes/monowhite/16/write_eeprom_file.png index 6bcdbc23bf194d866855ba3345c8002e5fa1b9fa..a7e7c36f841b37cf3da2151af91b11970f9af571 100644 GIT binary patch delta 227 zcmV<90382>1D^trB#|^De+P6)O+^RZ0T~K8H%~uHIRF3vut`KgR4C7d(7kN}K@i39 z-vS98xCx62ED_KE84^V}BfW@P5Rpr;apEEzI|N-~FdxzousVAWkl$!E(&(>!^QP;z z0xOj_qNtPC1_?n2Ny@{dOGZ+D;x8|-N2pMV61YISwneF7V^>(*Syk^wykDhjK$9rL z9sH=(2%7@^wsuU#_etN($h!khmOk4l79KtMGVow-dc9zn_%Ifpy|kCU0K43`&1LUI d%(L_l;0)GIN7z!9l}7*o002ovPDHLkV1j7lV6p%J delta 327 zcmbQw)WSSLg_kAW(btiIv2B6ji)rx_71ipudAc};Xq+#dV4HQ=LBQ?4Mpj94%%LYN zjUqc6c02GrJhxVRzUq!sf-IRu9M|<^?;P3RG~MabqN$7WBhu0et4%PhHxksIsRlv6tOGX?};&)?Ew?45}rr5hW>!C8<`)MX5lF!N|bSMAyJj*T^)) z(8$Wb)XLCI+rZGuz##bXnSUr6a`p35GSezibQoHhnp>HgLUhEJ6ifl?VDNPHb6Mw< G&;$TF1BI&q diff --git a/companion/src/themes/monowhite/16/write_flash.png b/companion/src/themes/monowhite/16/write_flash.png index 50350ff62af744ada099707dd6da89b502a1b266..81cdccdbce86df2909906155b19ac49fcdc9c4ad 100644 GIT binary patch delta 299 zcmV+`0o4A{1LXpcB#|^Ce*gz`Nliru-T@g4065Ubu_XWi0QN~lK~yNuh0!5PgHaU5 z@!vaFCSxKPEMl=Nh@ZfuBCM?m25rU#!6eKgSO#JpCWFjkGKgggYB0}Y5QPaMV<1dX z2Cre4xlPe?!UOmG?|JUIXUOjn<6KcS;tzy@`dH9J4+2J&tr^kqe_|mNiztdaEe<@% zNh_If#a+Uw4>zje)}d*$>Sm1Fw%j>PVJmpX xmR!q=6&&~e=1LcMArJZ%^v8MzRu=sO_yS;~Q7t)4KKcLv002ovPDHLkV1lW2guws+ delta 405 zcmaFLbdh<23NK5#qpu?aW7`757t`V=Dyr5qGJCo>hG?8Gov7&T94OH?-#Tw*jM||l zSDk6BAH`>cv}`p!xZrGtfX^YFrc{M%iAE=M)S4q)0-7tunl*d`cJj1no_b*T#-i-u zFF8K_n&&mopIXXK+Py{Zn(3r^6N?V6nMsxvj2(x>3J)!l?wkGVT~OQ+!}TGa83spn zryr@Q|KpmVl6TXf&}Yr9jjsbMSPzy~FAG~!`FN-3=}5VpUCQTfltrE4>a=_?!7hK! zCz&AQ1%|nD8W$gNzD!$Cy=02g^qc98E#fMRPMCGad}jWV`7z=_Q~tZ1T(RnBjQraz z)ov!2eh73eG*5WhRetS?@A)H&=WcyC6#n6SV?W<%!KT_o-E%V&-1eU~IlNaU@rXGC z1A}UbYeY#(Vo9o1a#1RfVlXl=G|@FM)HN~5@)GB5~!eC8jDhTQy= e%(O~$4F*=GPz?@uH~s-?VDNPHb6Mw<&;$VEE~aw; diff --git a/companion/src/themes/monowhite/24/add.png b/companion/src/themes/monowhite/24/add.png index fb461e23ab2b2fae9b1f908d4040d66bfb6f5394..6ca6fad8b90c3306b5573bbdfbbfc9e7fd890c2a 100644 GIT binary patch delta 224 zcmZo=y3RB~%Yk8IKlh(RRt5$J#^NA%Cx&(BWL^R}3dtTpz6=aiY77hwEes65fI#nTdo>3z>opix z^0PBAwEX9ln)c1;%EaliBIY56hE_(VRwky}28LD!1|DxUvL~L9RX`WF+%Vxf(3K3H Lu6{1-oD!M<+pkL_ delta 143 zcmcc4)XFqLi=DA;f#Hj3@e{Mu9Lzmk978NlC;vI`AeEpL_&4CvhxrffGo{!T%CA`7 zD5z=hVX2VYsv8YF|CDEY#ryL+@%AVib~7=sIdG`k?CY5`@ujSYX^5eLm655Hk-4^k sp_PGwv-TO~$x@863Z@|jmR3dF$N&;boFyt=akR{0KbGTZU6uP diff --git a/companion/src/themes/monowhite/24/arrow-left.png b/companion/src/themes/monowhite/24/arrow-left.png index 5a0d451f4c7962bcfda97b4d23735daed65d3312..ae050e67577459de6b7b76672c0664472035ccbb 100644 GIT binary patch delta 349 zcmX@fJeg%ee?23Qr;B5V#p$O(`@NkKMQra^?^6m2aN_V0EbKh6(4nB@!ormsmo8kn z^x8ACgJ)ekUd3k!MXy=z?t5@`;h6sz@e$0 zirfqu56kM-?mm*jymRk|uq_rjKj*7UoQNuSGJW2wa$a|BN9xV`nZFB9SE^g?UC|vp zGv>JCsV5yvii1ScBPN_Un)s_NUS)1_@RQV{2N}O--B+2pe&L7RF~1GB&U*Bjm7%Qp z7hBV&8U~N5wSn_h z`FQ#6qp7n}Ls$REnZLJa=FKA#w`?B%t6@CC$iVz1RO+8eT5eMsZ}GRFz{$~!vLfao thK5!~rdB4V+6IPJ1_mB)HL@r7Fv=>ROIU80aGe1NJYD@<);T3K0RW+YoznmS delta 323 zcmbQta*}yMe?7w?PZ!4!i_>o}EBY}P3LJg7eapcG4uT$9Qao(D;wzqUX^1>`Sh%5p zJFg+rwa_$_L#T<#b%E#44LRTUpS)&vX2rX?c!$02&h5C=r60NHN9?+oe<^g~^Go8>*3G`{UEijC|3TP#iEV|~ zJnv0XS$;EnXI%2}&h!s2Hh3@TNG>)gyKq*3IoQDXMOsH~GB>w>TWQc%y9;@JlT_AM z{?rctFMoYu9b?@AW_!o`f5RCV7*tDKBT7;dOH!?pi&B9UgOP!uiLQa6u90bop@Ef= zsg;qrwt=CQfq}F38D$0=WF5KrDVb@N2pxtYMut`MdRBL+T zT+A=JHFcRO_81wuD&BD5dV0vrNzC!7PDz4A?q#-pH>=C0|F-^qo^e{hDW|>dvJ6L5 zp$sV#OA=hqD6XA- z;>icr>5pIBpRU-|9rd?O<>k}cD_k~dsEcn`k*v6_8}e_P%L>K4lkVPSYFPi#ph0_f ze8hG;c9oxo9a|?(e|U83?)i$IeZN+VZ8EykV}03tQq8MXVn#tVn_up|^nA@_!Ele0 zmkn1fE1O#&yw1YiNG9^kjfQ%@hKge@cJ-NGxHqrNSW-IYvjhVJgKCLuL`h0wNvc(H zQ7VvPFfuSS(KRsCH8Kw|G_*1@wK6f)HZZg@Fz|S*k&U7uH$NpatrE8e%MBB*12r&s Ny85}Sb4p-r0s#EBq#^(S delta 265 zcmV+k0rvil1i%B3kADEUNkl=MLwFQ^|IZ%NgJ-1-)T2%r>(><8ESw#KWq_v&1B*|Mwzgzmw zsaNpgxMYWpF&H{3S-R^TJUJ}UdT!#&!lQ$F9o5I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`h}h@jv*GO@AeyV9dZzHNf+DQpnk&AW<~D; z^$BZPtqofP_q3S{9CVV9p1kIFJ1naqX-k0YZ(BFxN|xih!iYMf-U?VM+v z%V+J&x9>2#;+4qx@RgsJQF*FqhEBom2=BmO44Mr6^Byd`ylIn{K#wzcy85}Sb4q9e05P9)9{>OV delta 227 zcmZ3%e4S~67CU3x0>c;6;wNUQ)pvTjIEGl9PX2S=K`KEh&~~orpW_XyC3hH>D4a}Y z&i-G#cvj;&#;Nvy|M&l&{qOU`>kQ01|Ns9_{~`bX|L6a{C$>G<-uTe|@c&$(;QUsB z)Ia@iWZBr<*k&*^u|9NU!>bV+fX+d|5Wdc;93zMp+Tl5JLkiBU39Qb8Q1dD+2>(?K8@gvl(R-OhXJT bt&9z=j0_+Ws(SZK8Gyjk)z4*}Q$iB}3cOmg diff --git a/companion/src/themes/monowhite/24/clear.png b/companion/src/themes/monowhite/24/clear.png index 204df5685ef99a418d476c6d4642caf722138b62..64a23752d2afd8117763c6bbbd4d573963a58e06 100644 GIT binary patch delta 389 zcmV;00eb$|1G@x}kADF)NklG4a*%v#o7dBDUyn2&Z?Cf*IQRa}AK>p{C4ysV zhULU1-tiLfjJUujT4BHElGks~rj1<)ElmXM#$q*dq2O?S+W+2i%a!;@3pmeoa!uUWIDkv zzjkPJnD%8nz)}di+q!50UZ=KR539+GBr9hH7hVNIxsLu?I>%LngJak jH&ih(Ix;mnG&L(QF*-0XIk1q|00000NkvXXu0mjfTcNU* delta 288 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 diff --git a/companion/src/themes/monowhite/24/currentmodel.png b/companion/src/themes/monowhite/24/currentmodel.png index b42dce8da40e574f30cfaf5889a2fd686e45b543..dc2ed26e17459f45d1ac0d6ca3346e65cb82b7f9 100644 GIT binary patch delta 431 zcmV;g0Z{(>1LXvekADGPNklt)B!<2L05p~hr_QUtkq*4v{%MYy zB$G@ssYFDiYV0d}V@tu`U(SnzjVv{&AI;56COv5HoG0NF%Hm&lS#$|Vf-}CMF#Fto z@A_L733I&$wrVd>V@Ei5m)WNz1kD5SytW2ERdj<1?X1%45k{w3klu z)FOHG9y7)Pzx9sZ)~}fh%wiIUobJ9UwPUF)=zaH99mk ZD=;xSFfci=kknsi~eeR z)298;bD}h}0F(Fu927NFF)%tZH99gkD=;xSFfcI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`hdL~a#7sn8b(`SRcJ*EUo*naJU{H7u zl9?mvTr4GD?$JLZGZ&b5fAPVuogR~xnq86OS>0_ozgy+G-C;giHj90J zla`!UJ+?spnw#UR4Kd0m!^=L#Y$>tw2wJz4Z}Ec_`|3}3vwKY1bS5lqvC7Fuj8o)Q z&6SU{iMfuW#M?Xq_1SBZMpxW!`D8*MWd zZPK#Ox#js;>hjg##s^FcEaFDZFFE5L`$gRdnX0d~kg9H#}MqXWai+OWT ziRFbh9g(MBa#&M@^YGDa_1zwvTgQ$<0cd$!7;~@JVc93O)7CU3x0>c;6;wNUQ)-x7+x;TbdoIZQS-v4r-$gz*hFI?zU;7SdNV{BGd zR&EJTcvPK`p!Ubp{Lryg#}2kETz^Q7@0du20!Oo8GRJ~TQ@6;o|NH7*nqcs8&dYh9 zYbHOxSN%@+R`x@v>#iV%=R|ayP9rf3>&l9ka5UOK7loNo|m*u-mW3O{(taOwUMM zX3|YgGnr$(X-N!ASdCf!rA^y-WoMg}=43>hW!B$YI92Jx;W-_S(YwlerMIunKE0sB zGClm%?28g->n1Ikyf-FIak=GLC%w(n{U)W@`*$tgn0vKhMONhgeLE(V>V_I7TrInJ zX^n8HskKyF{`r)M!+o=M32zSHdg<-#x_RQ2Q_|v|r=MTb_bheUC++;tAAhO-t)G7& zKfhwiS26i-ws{N;45}rr5hW>!C8<`)MX5lF!N|bSMAyJj*T^))(7?*b)XKn44$rjF6*2UngIOY;r;*s diff --git a/companion/src/themes/monowhite/24/duplicate.png b/companion/src/themes/monowhite/24/duplicate.png index 16a36c3f5d0878cddcf0d5ac6fc5fc5f904b22c7..367f931f1a2b15b204d1a8fb86111a308ddc187d 100644 GIT binary patch delta 497 zcmVGGX(zVqFW zdx5e8^>fmJ0U$slU+!pIugG@VOURY%L n@BtklH&ih(Ix;mnG&L(QF*-0XIk1q|00000NkvXXu0mjf(!td- delta 374 zcmV-+0g3*n1+4^-kbfpgL_t(I%gvL$N&`U@g};$)gp@{`MG_DUX;WB;Xlbcpt1RRh zd;tp^QG5Vpg%mcTSlLM|1Pcp&0XN_l0S#=i7K(Uml68LuV;b??W|%vd%lR22M#I>M z@Bd)HNlq>f5L3$ZUwO_=Xi$M9$yXMk8X{dLQ7Itgh=_9zxqks*f?eK-SmD;b!56AX z^7=OwN!xl*H@#&T=|@)SaY3U<+KwiRgw$zKA3pFw2NxHJ8UNXbb*?y|N3~z4HXqVB zW0HMl*(|t_k+n?+2bULO49m=M#~M$7&k|LetVQg}2>A-^vKq=9vw&fWHt+1PMK1q& z4kbLUiD)rRlQ9!M^BmFxGk8S6JT>mQ#9<@pSfgPJ-vB`|eD-*Mn;7P0{U!e4pZ)^G zc*aTQNf_{xIRYINHB>P$Ix;mnGB+zQF*-0XLo3W9lWGDTATd-jF*-CcIx{dUFflqX UFt6i~ZvX%Q07*qoM6N<$f-Rbv!~g&Q diff --git a/companion/src/themes/monowhite/24/edit.png b/companion/src/themes/monowhite/24/edit.png index 1a50c1a2968188eed07ad3930bc7bf3778b58970..0f5ddf04fe2e5f6d24f8be5af05dccc114a928a0 100644 GIT binary patch delta 475 zcmV<10VMvc1I+}GDnJ0Sj|==^1poj50drDELIAGL9O(c603c&XQcVB=dL{q>fP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9O|`C4T`%NklfA7rh4A65CJaYnga?B^OfkS6Oz+FxNpN=&d6MGum#D;5_2mLXs@ibO_<--2B zDu17u0L?*?x0kHN(^z+dgWV%G>V;s=0`>t(ipBd3D^tgAQZ_1N?FA+H04SCpZ;Waz zgOwK8OeC|{DAnI|ZR7&WPS8rTkx8Vac1M!B7D{2p3%>GR04Pz_sFLJIE|kKYbt~4; zpZx$(qH6us+$C~i5i_~=08l`i^qpe59a0coKqZ31KkqELlHdUyx(R^r$C1#PdA_;(+Fr>o6#nW3 zjgBETlRg0*6gN~cF*-6eIy5yaFflqXFi7nvYm;vQ9UwPUF)=zaH99mkD=;xSFfci= RkkAgjxR)%3uiOtzM;Ix;vqGBPVLF*-0Xk19JB00000 LNkvXXu0mjfVC;Xg diff --git a/companion/src/themes/monowhite/24/exit.png b/companion/src/themes/monowhite/24/exit.png index 1b240513f76ce9acc5e22d0afec7f7af3b952f75..6940f153449dd9ab975ce5692f9725cf1114b6ef 100644 GIT binary patch delta 583 zcmV-N0=WIJ1my*gkbmAuL_t(I%hi%QXp>Fl6tpTXT?#H8go0gk5k_npK0!GEJk!W`&!pmy<0OiugaPU}oJq#fwzu7C0ZpW8P!s*K_15w4wp zLGAhM;gX5{jdE(}zE6ABtU5Jl4ri7`7L!EoMMZj-M`I$HC3E;s$kj zwqBsvp2GBnh=`QEI@fUkU}s`Tmy*bp2sb-pv#TlNi)u*C2t?HsAwp`>uh)Kv7^`ZU zzHUkT9kEJYM8sH~kI%=~SEMdd$?w%U_P5XBw`YrE2hc$GWOeHYiq zttMrz^w_pmkQ=0T0>I2sPT@u46R(-0%)hQJiR8U0_W2jHlfeNUQ8!dEF*-6eIy5ya zFflqXFi7nvYXATMC3HntbYx+4WjbwdWNBu305UK!G%YYOEiyM$F)=zaH99mkD=;xS VFfci=kkjI%I(PgtCqOF3Kh}wdpsWB=S zskx!g&{iM7PY_acfg=1CU2F`Dh=P(VpO)10Z;?~bIn(?5y$_u8!U;)h)z+f_4}mlX z4E`2~0z=Hw{u?09HhWdI#4d@SfPM~GCsx%F*4Ss@J0MJkQGejP`f`hmk|F%XWvx?c z$qf;A)DbalNnNSAYW9dZ^~6XW5b;>e84Usn@72{$HEGIj5tr3F<3XU$vN|OVJ)^$b zThX>xgJT*29tLJ9TYWGF)%tZH99gkD=;xSFfc< diff --git a/companion/src/themes/monowhite/24/fuses.png b/companion/src/themes/monowhite/24/fuses.png index 38f4a0cf7fca44bf587d48eae2ce6ba7b4dee525..0b00dcf56528463625d0f9e6aa7af3ec792f0f03 100644 GIT binary patch delta 580 zcmV-K0=xai1oQ=vkbmt-L_t(I%gvH8XcJ)=hTs2UxLn#GC|TTERJ72F(n1#n5h)Js zCQfY>luAKCChL^8%-R%sV3oaz3O2c3?iOQcF}NyB{^bg?sZ67YVP9P zZ~EYWpZ|Zq@BM*&SApGb3ir@N8Sb7_8Pm9n9(?u!Q?cR134e3MK7%~AcjRLJ!bP)L z4}Lnb7irb=r8SbQY}DSv}5N#~d@=j;kemoEP#b&*8KZ^?>Se6dD{zprR^h2++_7Pf*F@yuTi z0LKqLJgQH$rrElj!z@mr9|yXH*oPsUY@6Ymbu2@4&s;`4xS?2~uPrkvgTKzN;zl<_ z77OzQI&|r@%`A<+fGwAgLZjBYlYPne>>5gldg?~V7FvrcYtdv2-3uLOQRg%^R z^UWHme8&&~;QF~79kVE5fWQz$-w?=Ti(6-Ce{ zpePK?J6I}+R*D3s@G^?v1LP6Zyo8-b4^ia&rtp}Pcn*S%g=;mNZ>>Ljefv@nJ{NtT z?Eg|=A)JS~@S~?X5NhE#EcIyK@&GUP40V*EZ8VgnU0uM8Hh;Jc|b6vE=FWlMH8{ulig&`3=j<37rFCC z6VKL7sp!u${g&f?*#OUeXR0|sNQU9B!pA_-m`M}KFm<<9vPkzCZHdI9WSD|Q_p0xa zbh(OaEyUInZGYaqnvs0qR71(U7A8CDvdE>;JYY##P;#YhtfP*b{ndM%YTu%pP$Ix;mnGB+zQF*-0XLo3W90000bbd$US7$7lJGBG+dF*-9aD=;xS VFfgyI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`U+1M#}JFt$q5oh4b6_z8fUUR^-Z}^Qw1W=Y$`X=o3obXY%>;e=wN;(7w>D=I{BEW?dJ>M-Q$_&M-4b+WOc& zFEU5!pYqD%6VjFJUKC^}q^JZkpETn!<*j(k80`~ql#Q+JKg*ML3kHVGz0y&^=}gl< zPTVCcVjf~>Xk}z-Wn!vrU}$Av;PF-?d*W+Z1$1%C4HK>dy~E(?>gTe~DWM4fXtZH) delta 203 zcmey*w1R1Z7CU3x0>c;6;wNUQB}aL>IEGl9PX2S=K`KEh@GnEwgMG# zEFozRKPhLmDIXXZyl>ciG^q_^oGi#F8)zD0XkcYzYGq`uZD43+VBoBMMwx+uLAAs+ zq9i4;B-JW6KP5A*lEKKp&_vh3P}c~o!O+sm$QYu*_4zespaup{S3j3^P6I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`XWyk#}JFt$q5p14qXpT57+B_;B7VudwS-2 z-QK_btbeLb7x6A^YV=?ryD*=qPITJOqA+5&LO`4^ZbX})@9p^{->lQ1UOzl zaNvV{|9=TX37-F)E7D!QGf!+_o&WcL=hcSug(}vWCQ~wmyqX0V7|!=tmTm5EKLT`@ z>cst$BIY56hE_(VRwky}28LD!1|DxUvM0WgRX`WF+%VxfP!EHrtDnm{r-UW|c;6;wNUQr9^wWIEGl9PX2S=K`KEh@NdF(g`*#4J+v45(dH=S zDLU!Qum3v^xV31xElJpW_(0EL*?P&41RuAc$BnE(?K8@gZ5U-0 cz!Cr0f32kAUbOs>sboFyt=akR{0Jn=mM*si- diff --git a/companion/src/themes/monowhite/24/list.png b/companion/src/themes/monowhite/24/list.png index ba570f3e9ec75a3cd8a994403cbb6cb0611b7973..4ced8a69f80567f527244520e54e56d52944f1ce 100644 GIT binary patch delta 489 zcmbQt@}6bFg!&9m7sn8b)5!@EMh&wYr&kM%suYjpa0+Ojeh+8w(hOs zGR_%M5t6r0@&7r_s3w~-r{|@7SexHMZgs!^|63P*JHND8C|#m{ner6lgQkCyEq?sl z%RBwW(a+B%>WmD4;LpCwz*lnwPoI9zvs?1tqU?mUlFPjH$NmRzdNo^e|B=?s>G^R} zY*(M1{O#@RE7EqG72M+4#7d+kBqa82Huxxh>+dwJ-8MqNVE25}LS-z!fpEqe7Z zRLxH9VEFcuKJ87b{);_NDM(E?Cb_2GKJ|UNt$wlBQ;X9-Z~U#l|Bx?iNyqQ6n=0y0 z{gXfc(N#v$v$^L;dq=U*B=bXRLPi%Dm>HUcUi|&(sydH>fkCyzHKHUXu_QIgD!C{X zNHZ827@FuB80s3ChZq`K8JSv{m}(msS{WF4yw%7?)?t;KpOTqYiCcr^h6&e!8W=oX L{an^LB{Ts5@9W@( delta 372 zcmV-)0gL|c1d{}ikbewGL_t(I%iWW)OF~f?#lNRX;zI&g>DeOm7dVLsfuLZ6@TR0i z>5ph|a0mk3jQ$frp+TrcK@cLGnt~vBPzVy@<<}tMd-<-UOW?WNJ>P+IzjLmEY=^*> z^ZzI?C8}XqKOxEtd8W$YI{W*=q|BHlUa1h(3rsE

RX-!he-pppnF*GeOF)cDNR5CF-G%-3eFe@-IIxsM= SI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`hdPX5n7sn8b)5!@EM;zKrp8lUXUvPP=;G#eF zEhjx9n1utsy*3n?xX96e!xJ%fA8u~JzIS_%Z+ppqI9WvhKM>d-u3sZ{X^+`I`|}l3 z8pXG>rLrmR=ux`8@_&D7xzUaVtXh-Ul(%vFluNFXY>||Zm?1H3?v2s}^TROcSY{T8;2n}?Mr@tE}g`{|aglFkOa$Np6RzpsB^Z1>my&Huk2-o7F3XT5!b ztTWrP;|ruL`v2|Uo??7BrA=rV_sr;j`+xoacTe(IEYBPZ(?9i_s;nQEu!XU)u?eHuhpEVih|NU}a@5cnojg4O~Gh3FZbq3r)-qiHU`RJH_&``{_h3Afls2}#wk!c=4$x^Dm;t>Fn5F_?fJoO&1IMIJ;Mck#PxN`MN-pEacRe=Iy z8M-()%&8*?12kqZV-)D2Suo>>W`c!g94;{ov^cQBKxkld!DUA&4LGx==pWXwX-7>6 z16#_8=BBumY4|)S?Y%!6KJ^EG`VJn!){s??dYqH10UZ=IR536*GBr9fH!CnPIxsLp rE6gL4+yNaRHB>M;Ix;vqGBPVLF*-0Xk19JB00000NkvXXu0mjfyTx-+ diff --git a/companion/src/themes/monowhite/24/movedown.png b/companion/src/themes/monowhite/24/movedown.png index 7d99daf0a9eb7b87fc267e2831a112906a0f1b77..1110545aaa515615a4ac76ef57cf18e9d476b762 100644 GIT binary patch delta 347 zcmdnaJdtHWe?23Yr;B5V#p&b(3Dy=yW3KZv8>c?hoyAqmR@nBOLr-|qC$G$NCwa0~ zoMOE#)gsZe;r2ASZGXPzUTfwlDiExlxA^`%t-SOP2lAK?duIwx4L8#9mQ0ZVfh`v4 z`+^@%`K8&khAr~&{{1{WJWO8STOywuoG{2J^sUuBsdel_{eOAo!|`wYCMDhc{pZ+! zAh^H#%%1kQCw^ChIQ8#zF1xYS#U!d7-u3_MTd+{c+tZ6djQwSencU3^`x3&EthoYz zfrR|m8@^8#NK{}b*~$OE;u}b4eg5Wm&Rm8z2PS;K&@Z0o>pXXvM6mi@CktxWd$8)mE#2aUrD`GSwC-%-|O*K?i zHQV%+O-9;e|IhHv8)jFBf3JIfS`x9JMkr*R)U8vTSR7Ls~x|=V;XAucFDf5 ztUt@Z#2OC7#SFv=o%R68kvR|8dw>bS{a#Z8yH#{7&vR6QAW{_o1c=I kR;h*1VHjd$Xk}t(Wo!V^vHtOde4q{nPgg&ebxsLQ03I=M%>V!Z diff --git a/companion/src/themes/monowhite/24/moveup.png b/companion/src/themes/monowhite/24/moveup.png index fd887b4f0c22a428c5e26633b94c5c6d24b84d46..1c9f4d9d6dad7132ba73f4d2d7e7d8dd37b8c5d7 100644 GIT binary patch delta 346 zcmdnSJb`6Ge?23or;B5V#p$;b?Dd@sMcVFHdyCf#y;Rc546$!m*tuas#{>l-Lvyyo ztRpD~9x7^vxAnw24~7@)%vD{g-M#l<(~gO^)%M$6+f{Xy{l(_F-)-I(^j%qKyK&me zwYf{be7N7VcJ0)o@7{Q?Eq!V(eL4I}&-{HCgQ{;{y0ycbA;GS_-uCR)%hTO$_c1Uh z++)i#{TQBT_Hriw0ht}oT^k z;z2LdM{Pb@>GG?eyHD$gU6MXUw8zR?_>!uo;M($zN7DPf^L*~GsIpJ?V3ZXx4>2^f qGBUL?G1WFOv@$U8c&m{;xsp*<0bRm!!-VS$K;Y@>=d#Wzp$P!mf1N@A delta 304 zcmbQhvWo}8~QOZ3ba0qG!*el&vbpnsF7j8FtIJd%ae8CQ<0DY zCe?)>II0z$SGx!+ah`T}=g{-kcrjz;y*)o?SI%^q6KaO9QKkPpUrcN`D$| zeg1Ux`(MoV^Zc1R#l2G=cs~}ou*D%QiS1dItHWJ$BW2ap;1BgHt7KjzC$G_I>Egej z#dhz`yDxLU2w0qXXv?I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`bC~Djv*GO&raOPb=ZK%<-M2PiVItxc<*}l z*{WP~>6EsA0b>5w6)nP&PA8n0U@YPNqVqA2Ow_4!3}MHLW9?0sFlfZwvs3as)~9mU zz4hNyMZt*B^MRAwMHv11=O6mn9WAq%@!6!6UQxd+wx-<|tz%a3xar0!z`zxAX5I7K zx~e)2TW)6Vw%ndlG&4R#^KY7WS$mL2WzNQ(8=tsrUamUp_H64}|NJ&I*)=^lzj5L% xSrPLPLqjW5ODiKIZ39Cq1A_{sSNW5<8D$mFB{=JYE(3ke;OXk;vd$@?2>^UWb}Rq@ delta 212 zcmV;_04x8g1IPl9DhC0EpfTu{Uy*7ie|kwoK~y-)-IF;IfFKM-^Bqf%s3ljk;&?Vx z-_nGz$mm!Ynm~A20hBSB2Je3i(5)bFgtB`{+z9I<2kdTVVz5XX5Jnyr=>ZEP6W8k; z)a8gO(oPhmF5Qy3YN^EX5h%^)^(ZBb0?f3cgBMb=)99uIrN7f9{NPWY)moB*1Sf>H zJ(D{D9TYWGF)%tZH99gkD=;xSFfcI(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`fHvpjv*GOlM^IZ0}h-qnEcRQL~Nm#VPdFV z>MAv#z5C^zZS{&1v;Kw4{`mjZUL?kH{x11QZe^#R^>g%6T!M}taZqx&{NbyhGP7EW z#eog;6YZOomQDU=Y?NcS@I>d?l(+nI^6RD;-f{o*>Hq)d=Z?Mq-_M+5dv1f&)eigr z{|)N@{QStY`_q2;o#zZ+7#SECY&c-L=C;L0#oc;f? z=ODv#-~mF@9l=Cw))w`*cxP&~c+)|y{z zJV4K@mbgZgq$HN4S|t~y0x1R~149#C14CUS^ALYSLn~8DD_7KqUQhr delta 236 zcmV+R%rKMTKNJ?B z$^FL$yZ(Ru4+H!E*CWd@{zuk}3ougA4|f?Du|QQPtx=$^fzg7fLyW$+nj7?)$MwqP(C^hEsp!(g|0&G3~?tFEOXZ zlk)pQm#=tbKYz`j7Z?+G+>wX06Mjk9-D~oWF6O(I+r!v13LeC@34AFw;90P7j<#we z=!FCzKmlR!=1?fEN1lx0C3vGV0MrZ5S3GYs-mNJC1t_#)are)>&PQGCR@=#k;hro4 zpwdhXkNZPJ>L#D7U6L9h!@;}6+YPhyx#lAqINYf+YJXVV_$+G%LGB*TiSJ0UCgCmD zjnF%E!H1zJ>1T)mM07L^Z>03IA9l zB3evPmP_L}s^aDnV-X_SwWV>Xx()zNHgX{*CvpAHbbVbq{zm`T902b_U+`=kDvE*_rS z4%S}TIP*^SP3|4>N!DSPrvyoHzTi4!b4}{3=5kZnA79pXS^8{oy1PiXR&!}}?@LEx zIqz!C1G5*#Keq~VGw*usGVR&d$ZfeVRtoLl*u2LeB(J8)P3>lR^u525o}Hc_jtS0o z5nRMLo8@lG3Fg)JB&SJqr`A81Xx7%b+cJ0Aj>Xqw1%4K;czi~80lT1k$p@e5@~Z16 zDDdyOFVdQ&MBb@ E0L#zJfB*mh diff --git a/companion/src/themes/monowhite/24/paste.png b/companion/src/themes/monowhite/24/paste.png index b18ede9781186c3cd3839025ab01315a6cdb951c..e4ed5b9893be0a6dc21516c4a87c7463755169aa 100644 GIT binary patch delta 400 zcmeBRZf2RF<-oA9pZiZDD+2=qV{wqX6T`Z5GB1G~g=CK)Uj~LMH3o);76yi2K%s^g z3=E|P3=FRl7#OT(FffQ0%-I!aGtp43{*R}NV~EA+vlBLYF*}O5o|g_2-f+puaSQ*k zLu&DfnaW|`{-dg*0U(R2XTAMEOc4u(k zo0XU9?>=5<(bKjo|KZ0Uz1h4=*6Yo^Z|1?kbMKxt!%3f1LFH=31q#J{1yfek9WML8 z=6QHl%aUhP|W1XczU&^$#VJZ{+*GMERxxm*w$NZnqeO>m{x)z(O1!pEpG0KXVhZq`K r8JSv{m}(msS{WF4yw%8_?9C{vfG%OVVZwD_s4{rE`njxgN@xNA$oHsK delta 325 zcmZo>>0q9q#m?Ba!0^Si_=#C+^}9S>978NlpPgdJb;v=$^}d%vZ?D3OsYfmyJLFu! zARX;LVe^d}9AekZ#FlO5ae2eC-&I6C@vM|U>9U)$-wZ$h*L&@-gRb1(GkP+^Rr}cb1h64+qmbw+AgnCu9ms&NtH^>3d{PL@4TM)Cp@U0 z@sM7xvy{qAuSGt}s})&}c$HlHP|L8ecclQU$P$O$HJeL67M%F;{q6B`PUf)Y^hf+X zPs&#=YyZ99{{dUpzG($t`ywVVFfgc=xJHzuB$lLFB^RXvDF!10Lla#CLtP`&5JLki zBU39Qb8Q1dD+2>(?K8><4aPtnx%nxXX_d%23@ojTEUb)-AUgWBti^yj7(8A5T-G@y GGywpe`F@Z9 diff --git a/companion/src/themes/monowhite/24/play.png b/companion/src/themes/monowhite/24/play.png index 4d469ea5f26790defe9964638bc7563ab338d869..1fc7079ab0dca99ed2d4edd1512733474912cadb 100644 GIT binary patch delta 211 zcmZ3;yn}hdg!&#&7sn8b)5!@Ec?rDDLY}9#%ct)>d*Rpt?=@}zK_G6={EuwTGR(#s zrTziAk7s@qY+KCp%q9B=NVaqAA|3%eS-BX~jF-6g!)L?UVT! nWkt+G3=OS}Osz~zwG9ld3=BNpYGhBg$0A|5VZ!yv1&oFOhBRWP delta 236 zcmdnNypVaqg!)oX7sn8b(@!sNw)P~lRkd0Tt(+s)onS>nIy{7sS@ks+B~Nu_PPQ|jxtSr6fkCyzHKHUXu_VKd7b7#dg^nOYf{Ya19^85lTgpHXH&){vW@l9^VCtiiz2%E-dX Q$OxjLU&~r-ayz3T00q2PMgRZ+ diff --git a/companion/src/themes/monowhite/24/preferences.png b/companion/src/themes/monowhite/24/preferences.png index 06571c513d0497d167dfd5acb78772d45d5397e6..c08987642737f532d39f1fb8812a449c911f4563 100644 GIT binary patch delta 610 zcmV-o0-gQ!1JnhODnJ0Sj|==^1poj50drDELIAGL9O(c603c&XQcVB=dL{q>fP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9O|`CV$OIL_t(I%gvI{OB+EP#oz31G$>hX ziK$XOh|+?s7bBR1|A41Lp&+G)7Cctyy|K~wm9(oa!+E{3XBr2jLpeY(`N;^S` zTWxI##%5W}z8KGoSr!T#j39pqG$NX_ z`+pS(z^rkC#9;xyy;_sy93+63Xa^7uBv~k*1U4|@2~a{J`D#_X#!Y{sxKDF9fl2Sn zOG?Q6F75Xl+UI#ydV3dzo!DT8mU#>e1e0 z(`0T(Iidv%01(EP;yy`c)5<$^HeR|%jeo{B+vhwJHG+;np zt_l$8OjyU{bPOe)rBccQ0vB^IZNb{X<<2ym>(7sF__}}>y|l8_B;JuQjcQzdTR$?lW@cBb%~>c* z^>Nh|zvl0bwv3vCy}+lBw-45*s>Hq)$ delta 410 zcmV;L0cHNw1@!}vDhC0EpfTu{Uy*7iej z%~1b>vx`4KoVp6`;@=QgK}1Ivm1YqvI5?L$2zC-Ah|$5%A=V`CC6O%Nv%KWp?{PTq z@*GsJrfT;81JL+gg~m=-QmAe@&{W6Ri}X-sDbD@(^{Nl`3p_DVh!DrPh*d_!e{3UL zdEkyO&RAv$95Vek;1K{3aFT0V=bjrp8xS1=;Fd)`Gr$OdfO#7b9v7@3`1$tPL%aj9 znFXE=w+XPp7&t(@amfssdx(vzdz9qsTy07Fa^z}GQ8rdvK2J>Q8rMw8RAMHnD;Dfn z&C}ENLE2shWX%kc{HuYZA~WScW1AIDZ8M1)1@pM0o_5vLthV%0KCP*SjOo*&RXu#E zdMx3T#qHF6X1)O^X{ije+1h0Q001R)MObuXVRU6WV{&C-bY%cCFflYOFflDMHB>P$ zIx;mnGB+zQF*-0XLo3W9la~S=AT?AlIXW^pIx;dVFflqXFpnxb761SM07*qoM6N<$ Eg6mqZAOHXW diff --git a/companion/src/themes/monowhite/24/print.png b/companion/src/themes/monowhite/24/print.png index 58fb27833edbd9ec2c7c5f574f8fdb074989eafd..6826507cbfb98d062f2dceddeddb3d20a6228de4 100644 GIT binary patch delta 358 zcmcb}w32y(mIK4ae(pbstPBhcjKx9jP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`bC~Djv*GOw+1_M9X8;Z?ABL(10Nk`Bua6RrbwFnGH9xvXJ-xIurapa6glX= zx2FU;Eq3w+a)3hYD3UF6I4LM=xmHBgqRNf=81(0UZ=IR536*GBr9fH!CnPIxsLpE6gL4Yyll0HB>M;Iy5jkF*qwQ XF*-0XUbpEC00000NkvXXu0mjfS}awW diff --git a/companion/src/themes/monowhite/24/profiles.png b/companion/src/themes/monowhite/24/profiles.png index 45d7811905ded870fd11ecb1cb87a25b8d95a461..259727fd0422961bd8edbc2c769a5d0559cbb2b7 100644 GIT binary patch delta 262 zcmZ3=^o41HmIK4ae(pbstPBhcjKx9jP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`dm*J#}JFtPbWI^H7M|~gkNg^@IU{DfXx@q zsyKa)mK#^*^%U+D*fjgC$b;WeZPvHBbL06hd<;+D^hzhTQHM*QJ*nDjvZKJ#OJ|<5 zzR;0smP_k$yxi;;d?q$4J%TeyT;#*DhOp+c;6;wNUQ)rWh!IEGl9PX2S=K`KEh@NdGE15HQTe#{p<=fu`? zBR3&MfkQw_L_$L1pRtX?lE#V8J~}im7xnmRa;T5-o5?2mf5v~(ckq`=S*hG-OR*Oa zUGwG3mkU=J7@mbm*_TRi1u`%&sFt`!l%yn0x$im1%n5WkADJuNkl0~KW7wPHD&z5f#Mr!W1_lMoY-<`+%<5K2m(@%-hV!Qo2F{{$$gI`E16J~ z{U{I-#7G*+jn7)28%ZOH$V~J(xA6dq<9i=T{%8NppiG8(*sl;l!Bbc8Q~tNL*|f&l zA!LT`eL4J1PO&xA{(V`*d$8ovF=O3?KV>T<-WA5g600ya@E#E{zZ8C*=~3q}*u?{G zaEvhBbhFwf)PI7SsN!PF!&Q$7qrfKUv`+W-MPKQ(P7_2BDujQVW|`Uf?Ph;h!v&Vx z-6`kmOl$l2Xs3Va{Iv@&HPPl6$HW@ITaZG5dWU@9j>`@QGr+m@jo?4Z$jDH;c>DKoB_&j!cFFlwQ0gWjGzEH6$2eD%=7`o|uwTU3&nozn1$~np;=m)~MQUkN_Al zEtMTOFn@841H(VxSyPf;v0k+fdK-Pr(~h1tsu=*IK{tM!yp>J_9xCnAfq3%hP;}AK z+<1mD=XCrkCUN4auOjE4yzG-a`ATeM$yj%Z82krkch|?3Li9gsmjwM)PouT*#~|)H zg=s@5DLq<~vg29p-cbEZHnOtEUsSk6QNKJT1q*Zj0BD+A@_1K3Ym+?!9TYcIF)=za zH99mkD=;xSFfd5%C~K2$0v#YXR539+GBr9hH7hVNIxsLfu#ndP0000U(Gt9zn*c4r;B5V#p$V&3^RlaMUK_~pA<4nBvXfR_QL}Uo1N9KTXi;NnnrsPMJ!Ssk*mcvrnSSkkxX=1s z_50fQdlh6BI4bn}|9Ml%KWFh_WriblI?>qs;9nR1@RTO^a4eYLhMG`Pfl=Mk^;oyR6K8J=Ypw0ssZ zJS{0^dC+rS@ywU&+UwmkYwN$I<$dE>Sk7Qs{5!C8?}yaQr`bX?J}uV&|2xUsS1a@2 zlQ(?4nHu4V><#Qkd^VoVa13~+Y;-bWe|yA{);n?Z1!L5D9;fGeH*M7LoPJSr0f5wS?tAiE{p?shE#O)q3hpI(9@9UmY|6|r0 zMfu0a9%+BwrdwWIqx~@;Nn#z(vu0Lf=ZeY=3nsr?B5%s^ss0DI!Zw$<=%9?}3=9ma zC9V-ADTyViR>?)FK#IZ0z|ch3z);u7G{n%r%E;8p$XwgN(8|ETS^JDKiiX_$l+3hB jga!rE5CcmqQ)4R=Gl-6yi$A^rbuf6k`njxgN@xNAh#~LN diff --git a/companion/src/themes/monowhite/24/read_eeprom_file.png b/companion/src/themes/monowhite/24/read_eeprom_file.png index 53d89e9c02406654359b733d3df570185db45e40..bd203689c1bafdd49bc842944ce34f022baa42bc 100644 GIT binary patch delta 741 zcmVfP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9O|`C4T}=Nkl-@8-^%ckVmq+zbB?#l4F|jidCS+ymJsn{wB$56iY})mwC-K=zA@ zIe(f^+zk)Q&f1sXbFxuCLYL+?QEV-^&xPM;$<&WP^g$%kV7}&R{pAs-|7~5oI`(;L zJ{`Decs#%2%Trzq1oc>7tZgiNMOh2i)I*kd(dz#>4sI5iyoIR&F->8ixTqN_R#vZ+z&qKr|e_rIr+hxtk#2dgRUF znN`J5SfQYeWo(}?!>Rl>y-)chLB<`jNN%Ux?-@d51cgfhfN@*tAsj;ZwPJ-xMt>J< z83>r|#h$&52A=z^VZbkf(R?pi3 zp1za8$92sOm>Okb#c!+a+3sIY=#H&@w3D)aqD3{&RRjan6ax%w0Hab1PHwzdpROKK zT0pCwTE6|=sy&+ixkW;i0479N#9WO-jgPEw<)s!ye9^5hoYuu2)uk9%L2m&1-H&ih(Ix;mnG&L(Q XF*-0XIk1q|00000NkvXXu0mjf;wMKa delta 468 zcmV;_0W1F12E_!BDhC0EpfTu{Uy*7he*t$%L_t(I%Z-!2OIu+ShMya9k*Y{S5rk?7 zL8wDPaJ7GcWa!$(j+O|{Ep#YCmx7c1A4-=Fb;uIIHG{f{1Y6L>K@h1y(I%BX9ePu9 zzuX&p&hWk8kC$`abG{SFe^|s4ExrQa{T^BM%1bLof|zGdlIP2|-Sf~3D_sKOe_`_M zl_igzb6uSlpSk5H%RaVd&6#|{ke`#AloxV^wt3Mb`X$d3+!x{2jyKMEcatGHuRabE zT}{@}fRH14MXmlL4e%~OJGNAvGP^eu=_Lmm_$l`Gs*Vv>3g@_kaXIxMi5{g)cFXfnZj$~5@F8S}j3Cnfqm-(O85jB(5k+ng{$i32|Jg(Bzu6IZk; z?yDQtZ1>c-s$byYR~Cvm_lezb8wtZXmOo0ROPI)-eZ3Nll`+91Rf|$L6heK z9TYWGF)%tZH99gkD=;xSFfcfP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9O|`C4U1nNkli=Y&Q`VE`x&p>oAbYnjzGT0P4M`0>e zN=Iy(b}Lo-;rvY0#%3i=O!L*6m@HrK*^jg{MTR@ipNDgwd$`X%=K#+ShSoQFD($d< z{eKTN7+TlaC`M6pKQ=!93d61j8zudB<1U&u_hKWe0R6QVmfnor_8eGB8_!Jg&p$jj~%GsA6Tgg8; z#IMRuO2yoi-EYIu|2BQ}u$AI_t>le6Xn)K(%CGwzhud)or*QzneA5hojCah3#_Qz? zL$EhJnrfQ~SF5^f!L8DX$gk9XnKp0*%=WsVsV;UMahjiV1|Q%0-w! z|Kio8L`ZQ05}coTyxbcqi%?1Cd(+KTtRTanq0W1Rd|0O$wCdoWuyS?q{GFnrQyJn- zjZ+x?_<&Of=Z`rS<=0Dpi_mu0cB z#>h`-^!jgPXDC=v$7)=XQUC*oJ8cnyTJ=L3ckJ}BEC2`#xN>{CBj_ybVZ4ABIwn8) ztN(?iiEtF5-29mkVg0I@NSq9RUda#;N-DqVZ&>hV9YbIu$6sHep{!j)a~~(NJ-gfe zLp1sKJvagnXf{CkJarkJPk%Q~L@Txk`n1dzBM#GS_7U)uk50T6p1;(KG#6(|3l^yf zPIxBLTr6bZ^KxOKNuOcR(ELftL8~%A{s-2Fa<=1zM`{2703~!qSaf7zbY(hYa%Ew3 zWdJfTF*GeOF)cDTR539+GBr9hH7hVNIxsLu?I>#i001R)MObuXVKa1PI&E)cX=Zr< sGB7bTEif@HGB;E)F*-6eIy5yaFflqXFgdW0*8l(j07*qoM6N<$g5?y<`v3p{ delta 611 zcmV-p0-XK32-5|SDhC0EpfTu{Uy*7he*y(bL_t(I%Z-#vNY!Bw#eaXjYNYuhqM{6X zft!RZh^P=(l?xZGOG4IPn#R{T!8YrRSSMby#X!WgIKj&q7UCTz3A2|F-`GGl!@xM%ao;b71R#&YLJ2X z>(bKkz*x<5m;%B?{&79B6ChZ0WfP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9O|`CV%`%L_t(I%gvI%Pg7A8$G`X4J|S9^ z1dNK%1f$V7na}|jqX{t`jQ#;64n&7WqnmMXl61kvkTBSRxDg@*VxrYb`v6JBN-aiB zQ9~(2iYPR#Pb}~8-q(RZDSeMPdd_mskIy~#esh5T&cv28F|(~2!gXk+DXG{_sE)0^ zvVZH*QSkt>-7J>bD)Ze#B7n*r0Bky`&K(|QzBeo$S|c04W~9y`)u`}iZ&(DZ9%cm) zbdMXq?kc!nt`fN(iegkErr561KbpfPzfa`k^o5yAQraAF&Q_sw=RZ_Q{oTXVsZukt zTq|T+g182!9pIAs-^8e1jX0;&)cN54M1STTmruMDmrIc%aOgk3*Oz?-G+C~OYm%!*?(G-`yTgx&*i=DA;f#Hj3@e{Mu>f=3K978Nl@15kU;gTrQcHg>g5vL|s>Z}w^ZKo+Z zB1sF=674q$q#pJw^NKv1divNQr=QWMjx~8E8=7SG7~b5`e4Oq3In(R@r>f1K z&v|cCd*AZD;f424ey0AlXJ|E(kG1kEH&MJi@vzZyxsw}Q48P6tZ?NsU=-tM#)V`km zh=8Zkx9EM$M+79r*6wNCD|_-pr%vsY|0dUBB(tt8m^J0v#-w-2wck%is-9+6)122~ z{H^qIYR=~aGIi%9mo_U0@dQ8N^Z9s)Lm+`ce$gc6bsu&ys=C~CDJgV+@OI5q9Y>dY znx-qlu4i3d7`A0yrDy0T&6Q%?mqk~ooE4K(t2gX?w6L8e((IEh=Yo0BX@a6IHzfZcbS$*PVWvubX?3TgbaYVt~M)wNHw?<_vKU6naDgn@xUwZt`|BqgyV)hf9t z6-Y4{MH(2I=o%R68kvR|8dw>bS{a#Z8yH#{7&vR6QAW{`o1c=IR>@$5&|qL`Wn^Jx XWCYRBuVpO;)WG2B>gTe~DWM4fLUGF4 diff --git a/companion/src/themes/monowhite/24/save.png b/companion/src/themes/monowhite/24/save.png index 6861f1349d3098b93e190bee787547f924444a06..938c539593c7a5785116c5e6484231de91110d62 100644 GIT binary patch delta 310 zcmdnM^owbNmIK4ae(pbstPBhcjKx9jP7LeL$-D$|6p}rHd>I(3)EF2VS{N990fib~ zFff!FFfhDIU|_JC!N4G1FlSew%|t`B`eIKP#}JFt$q5p15A69gx|}Wb4t!yYU*LR_5S)<@NBU`3qZ}0VwlV34r|LfV<*xXtI3s?mT zXLwD@O*ojVI#J4?WWmmfDe8gm*n1KVt#53|Dw@+GqxQcu#QX^(gN3KhH?Nf;8-NbW zRxNRjC`m~yNwrEYN(E93Mh1o^x(0^2M&==ghE_(VRwky}28LD!1|DxUvVl4f8glbf ZGSez?Yp~of;W|(QgQu&X%Q~loCIEoUW-R~! delta 207 zcmeyxw1H`Y7CU3x0>c;6;wNUQ)hBtnIEGl9PX2S=K`KEh@NdHP5Ay6Hs#n``HKHc; z{QCdje#)Q!K)_=0`|y8Jj?k9egp>#A9Lo<}?(s1EJHN59aU!GbE6IhAp4>Xnbo6Y+ zK?Q%Ql*(BNb&E6}v2`xbT+hhhc+K42^l@Y`0|SFRdP`(kYbpuz{n|L z8e(W*Wn^k)WUg&sXk}pFtbIm#vMr;mf@z3>rInF|m5~udqF>8e3}_02r>mdKI;Vst E0GR(!#sB~S diff --git a/companion/src/themes/monowhite/24/saveas.png b/companion/src/themes/monowhite/24/saveas.png index 2dfa4f21ec4abfe18045ab3a881598b30d2937ed..31c3bfb733f8c435b758447d35d995e1fc1b2f80 100644 GIT binary patch delta 474 zcmV<00VV$J1CIrekADG(Nkl7dSX59h@8-^cM(%q6l>?R4G0{sWBHT*hkb<4YiGr&q3RyHokE3+~t0Ub2#@q z7x@3+EcYmaHi{gkq1qXuTi&i7NoQiw1puwZW`l`jjSe5K}XP|DqOVM58trXBy7;#hL4+@q&ymCfJz{q*lA?|#2K&ARBe)vFiwE(#^z z%6p_`tk?Z4*|N%DlhLMMky-}nApX^*C;L~b?ELwE&e8_ydlf7X=9DL~eO+{1 z!aZ`{PL>BVgvDz9*eNQ0{1CkD&S%z?GaavEv%2O@J7tn7x6e$asI;JB{sD81{~OBk z?SHW|Ffgc=xJHzuB$lLFB~R98;twzopr0L>_r*#H0l diff --git a/companion/src/themes/monowhite/24/simulate.png b/companion/src/themes/monowhite/24/simulate.png index a836dd016265746db6f810cb2a241c3fe814f655..12eec8c6a04ff710a5ece6ab2a1c17d405098c52 100644 GIT binary patch delta 262 zcmeBT-p4#)Lj8767sn8b)5!@EtUMs_m#1lm>P&;FOFO)V_SywJ{uwXa{)dl0(P{?9*^{MG_nxni}Bb{S7vu&!z{;H zClYGwVjrkDi!mFUW%@W8?wc=nf8TV2HR(V6dwzo4CoI|08EWOkz#zRpqt7QPHGi@U xqpXN|h@qjCk*Sr5skVWkm4SiBTaE0=zKpU8=n|G2CR}F#0#8>zmvv4FO#rUdYAXN$ delta 210 zcmdnT+{HX$LVdHRi(`nz>Eu7>9i$SJ0{?Efdf~i6hx_q*pC5n!pZx#pzvKqzH&Xxp z*Z;PEWG}1dLI37A7V?@L7i46xP?20?ykmFE zz Jmvv4FO#oUCU$p=L diff --git a/companion/src/themes/monowhite/24/stop.png b/companion/src/themes/monowhite/24/stop.png index d882a72705061e7da725ea4ed9a5eb56c46da503..4b1da49b0fa219a560d7e5a147da1e91b14040cf 100644 GIT binary patch delta 181 zcmdnbbe(C!gvbC-7sn8b)5!@EzZwKP|28zrx3B8w;hG^O_a`ao+2M8n-m7n`H_+87 z2&_wUQ;RV(F!PM)l`U|{&-z^}B$!z^Lq zMcF{}5JN*NBU39AQ*8r7D+2?Mw;I_D3=FCzt`Q|Ei6yC4x%nxXX_X8{28JfO28Oyu W=o&0HOt=ozz~JfX=d#Wzp$PzeDMF$E delta 133 zcmcc4w4Z6h1V;-`7sn8b)5(9%J4huc1^!LAa-iu*-GKxB&R5;pSaYO)NV2ds%e$HK z1oEE9e5vdg>S5HQY}n1jQ0L8Nve{VY!o-)dBBmjR23AI3Bz|+;wWt~$(69BHoDpLRe diff --git a/companion/src/themes/monowhite/24/update.png b/companion/src/themes/monowhite/24/update.png index 64f732f1cb7498ea80b66a009bbd91f2b9f18425..baf7f5ba20c8e443cd6d8f987071a6ae688365d8 100644 GIT binary patch delta 412 zcmV;N0b~C41JVSLkADG6Nkl13Qei=aQ#9E77OD86Cp@b*wVzlwe@EtC87M8Q^gf2Y8rUOj=&|U1G1%Ft+i*5N%e0zy;qHtul}aE4AveUcw>MEJwP798e$t$*|IwUbyl2FnhlVNuAe`s}26Of3 z&4zrnFbDM4s$R=0P;5g{KGNRtg`P7N&e2oG?mo!{K>|I~8)@3+wtZb-o$$K_xrYkz6!PV-jO%^Qv2LG%20)M`Mp3Z@z_>+eL9TYcI zF)=zaH99mkD=;xSFfd5%C~K3r0UaPWR539+GBr9hH7hVNIxsLfu#ndP0000fV delta 367 zcmcb_@|Af)e?7xHPZ!4!i_=dhZ_HwH6mfm87oE~sHtEnUB}T_B9?#jINMB-^ePGhL zqTMC`nle_4WjZmHP0~B4G{HV#wTP0Cfrj2Z5w97g*BNg=*_)>Ke(ubj#y0G-;_oK@ zt(W*vy1Kmfb+E7Kw=9**%a3=7OKq8Hv@j>^azle?X-tcT(Ieja<9sy+H@0#YGCz~d zl+*jN>g;+cuVwuv3G4POJf~87(|7xfz*}qmE7DG_JllL;*kIu?%TT#Up&M~0movNc z+&tD}z2~q)8+(Fphj(lCx)bm2E9mXc>EL)=Eyrdf=5lBD{V6``W`)yFt<--lVD-Py zrJiBm2ksZYmN-9RU|>)!am|P*Nl7e8wMs5Z1yT$~28JfO28OyurXhv~Rz{{)M&{ZE zhE@g!&e~^`Av&NMa`RI%(<%`f3`2|ztxOE9j13?f)<2$*57fZm>FVdQ&MBb@0O_BU A_5c6? diff --git a/companion/src/themes/monowhite/24/wizard.png b/companion/src/themes/monowhite/24/wizard.png index d25dcf52912d444a46c70a20f4eec68bc2b34289..88e5941d7a973f0a9f3b939c87334ab7b750451a 100644 GIT binary patch delta 687 zcmaFFvWaa%e?617r;B5V#p&KjcfBtMN*v#xo}Xv1)%WtkwP&wLcXkNrb7{%0?YQMy zUV4?=F;FtDR4`WLqU#s_D_Tk~v@|Zbo-Np=D!qA9=7O_V3q*@^cO2EY|LjlM!<@I@ zqpy8`C3Eh1KHLcRn@UWAL`YvCZ7>Y>Vabr#WBF2!C;S zaEg=vv&ziQEZdB!{IB;sS3bG2a4NSNgOs6#soSJw+c!9Sw5v7s7ez#zYzsQ=>8hU- zv1niENl}mbTNb>!8vB<%X{~Q>9Q(Otou=K}BjG9v0j(Ah{|@ry6&6O^?Jiq7oAGt>o8UVxw_jzhoTQ+TaKEIo zCc0JWdasvvQK8|&Ll33jwiOq2uyLF`94q|7DE9xRt&8l$zrM}7A-6efsnz`GdcM0a zGlKnQUG01`C*)K(5$+Mg-zBb zUXzXqe4FyfZ1Vn&@xZMcQXx7fQXVXdt^SHp zOU3Rh%w1~Nz)?1BVh5WDci^M?#9U!VN5Me*?wo6X&Zt!^pSiPm-)YOu8`%D?-&ON# z*-M!mex8g)D<@y>*nN1L*^TetVl8w&o>AjG6wzRLYR~7Rww65ghc=uuXDIKv$#B?= zLAC9U--Kj_OA7DKn2Hw(@LWB5-KoY`Y|h8Yk|F zi#(c?P9EDgzhecI0}3v)+}#9|<}p9&uz7qndiPAO3F-%URArV$Je?}L z=}3-4m-(u#?wuM*z48p_BLhdr_FA(HxBr= zZ}T4WSNS}-#>tUp#^L`yNo@#7e>Q8y{ykhi*L?S@-1CcLWwZRUtbD?Cov#5ea+VpE zw5&aMS(?K8?KI&$+gTe~DWM4fafZTd diff --git a/companion/src/themes/monowhite/24/write_eeprom.png b/companion/src/themes/monowhite/24/write_eeprom.png index 481cefa9eef1fc7f501cacbcf5135d8381d895bf..6a82777adbdfbcf80329e14902a554a5770715b8 100644 GIT binary patch delta 770 zcmdnQ+R8qmzn-bi)5S5w;&kaGYoE)3BFE~#f6C9++}dI0;HwwqtC9C`>0Hk|Eteazf0^q`g=bo;G|YO`-g!!N zcmBOxzqv6pwELSn6x^qOOp{_8gwcZA(iKfQ9rkznC<{y%gX8k;71 zSjcEeEE5-ul&inGc3u*@O^p8gsXMRiSj=x9(QqO`OK;hXl|NpTyBztcZCd_bx&K4O ztC9fr?E6zoj6Ek9a|w#y51M zy;Kez-aE&Ri@sr*!C-YG+fP@K;qaq&O{?vx?~|8FIUM{pIpiOgZqL(jv&U!B>+|0k zJn6go(#P26YnkSjH1(xG8Prc01mD?riCipFzJaby8vw`s~ zx5#U}EDw_|DK6P^;Fy^6?yK65ytF5n+dmCj_hj8sH~yLD6QA|gu)fj}To#$NrcK(` z?`FWN-@jH3SeCyjk=f0miw(5%b zQc>1LH+H|NmSk=J$9(^`-FoemquUu67*tDKBT7;dOH!?pi&B9UgOP!uiLQa6u910& wp`n$Lsg;STwt=CQfq} delta 509 zcmVAz|l1P(c8YN&mWYR&f9dvNe4y8J{ zx+xC+1I~hr2!gok>X5MrB6P4rhhm}7f-csOL9k%zg~TH9Qg4*U;hd9x<|LrMcQ`*j z&hx#O?~Q~5Oc4?4J>MB6F{>r3lEg`0xao}ZzH!ZZ3}D^5SAV=@-MYBzWAlAv&d+YU zMI{u>?7yw_}Zhg53KspJ@@RoChD{wykkzRSh3<|PseZygd%Ww z#->eYoVV?U$5NnX%_SGDS?d?#upV;Bu)2)#jt(WdnL(~_ks>|L^AaLKBH#wI6j|j~ zF!2be05C_J=YJ3a|EPTOz53T_12cc7mj=!4N7?4UNhfu~GBo&>xxYPFQiD>GFkZVu zBMJ&K>;mwR7L$CXH~8PN_!7T3%Y_^e z1rckV9xaY=n=0#kqRT06@`DNbtC4CPfHDW!;u$M!Q#fXVCii(no}Ks|!Wg$DZmRcu z;?KZ;iF?R1O4o+_;lT6=UlM;IyE*rGdU|TF*-0Xc6CZZ00000NkvXXu0mjf#y;xU diff --git a/companion/src/themes/monowhite/24/write_eeprom_file.png b/companion/src/themes/monowhite/24/write_eeprom_file.png index 2401be1a2b9a58605e4cfe63cf8480b73783c7d3..7cb6182bba5ef509484a2e5bc3db1e4468d3fc39 100644 GIT binary patch delta 708 zcmV;#0z3VP1>y#fkADJNNkl!V`^F#*9l4i@2 zq#%~$eN(hKD}NVwfLR1VC}5GNjq=JV4`ujCPrPJa{P@e-L=Xu|u&S^5bMOltF1R-? z(i3+`fODF=JE-`Mh-L4Jh!|-a&bu3Zoq9Nq^>GaI!9;HYM5D;h{bhx_kFsP@08Xs$ z6Mlxf6$2NX9{F)=zaH99mkD=;xSFfd5% qC~K2T0v#YXR539+GBr9hH7hVNIxsLfu#ndP00005cZr zZI+5>6&~N&;I8gecTKzH!VI~o;enQ4xw{)K%$#escterYrCIe$^ky3^td3nB-LYW( z6xXDfL;)tg8IQY8-_Nc{muje+q++>rX7sn0h2FnHBG*d=eeL$=jngaVy;^Xm&di!a zu~p>K6t^`u{4EqU;}risvS(SjW|GQE=X;wwqgou6cB*l!H0U#|GkmqDAu&BHD`MT` z;&&5@mU!${S$^O0UVo}aeZbt3(o|l(jK`9f4c#W&ESlQJa3!eg@25ktqsc# z6x?;5W+#0%`P0Ewz0#V-r_dyK4PGf2Zho)dpG_+tjRHPkFF~Q9h?i*lW)Znb4XetJl`w zF#oZm&f)}zwG0CTgKCLuL`h0wNvc(HQ7VvPFfuSS(KRsCH8Kq`G_W!fP?@5 z`Tzg`fam}Kbua(`>RI+y?e7jT@qQ9O|`C4U1>Nkld_qloUoaemfJwNXOR*KCS!6=&W zK7VH6L=9QVUUoG0N+lu-SbGgN9RKES_l*W8|1DMl5XG(3MP1FmnQ!AcTzIu$C&xbN zWkKH%y{DgGa?-<;FZ=KvfR?K3Y!Jfw+8m?0Sz~QgA{oHb3#9Eyc)7<1( zY3#)m7eE~6ur+u}iVIS-&c89M+UC=TC;&a2b`F^{m6F>tbLC0PILk>&M|EvSw{7ox zWK-~nb%f`$3BjA%k1@bZJV*%-S?ZlT*atg$a2X#-eR7B?i(VEkaalI#+Zt|*cYp9E z01!HnEu#X6e|k+Ai9MQ2sz1|ec>19xOy!(85jphdkF5ZJW()%Wk@^E0JBAh9%w(zC zTwi-@^mTp3T0`~!uY&*t0BCy#+Bw?emCrY5>+40&jzCSaYbZKRP>gH@;lfPQDZ7I$ z+8wxf^U{A8FG@cg8-L9g1kmK^-JX+!ojR=R(@EvjgeUN_YF!!3#r2ft zAi;|?Kv62JJ+LOElEjHkg5`#s-MD ztL|cdx%UN#0sveI6~^NBxe4(up++jYeS2pHs%+_K0+D>jNr;gFl~1QnMh~th2y+$d ze;8;j+0sN1p3U>OUehqepWLMLkP7MxV2MAN-5g#12~=vX&963As%gsbQe-JF63}H@l-p^_5op-*mz0NAC4l}P zD=m0KA3v3%lW+nZ6gN~cF*-6eIy5yaFflqXFi7nvYm=b@9UwPUF)=zaH99mkD=;xS VFfci=kkQ?ec?BN9}Wi{0jkhe>?1R z3q%454FOj1gD6l-m=^9Z3P1>ea-PuvBwon!m_xQ1w$Le``rVp%WSc$qSY(+m?Qq=; zp~je}ePy@3wi>e2wStvBHa18=R{Fae-Lkq?L&~1Mc*V-+keT z8x0w9za`T#%=5LA#_TX;uGKc%e`vXBu5gXn_IhS+#<0|P9<|EVW_r^h8@*}2^N}E& zbizv0#RHDHSxon^Jt>tKo+Yfc!I%x=d2bsKF=rm((To@58HX5W3qjtpoIFN>3Gz}p zDv;cKo7h8)AeYFeo(S)Wl9@utV2~)E0GBvmi;GMXOTA@8#HJLj^UW%DK3|kSVsaHw`(bXjgQIh5%%TC)oYeei)>%8WdB>&^IhFL;}Ro-c5#-ySm&i}QE&i>J575z*=K~!S zHB>P$Ix;mnGB+zQF*-0XLo3W9lNbaYAT?AmFgh_bIyE;dFflqXFiw+jxc~qF07*qo IM6N<$f-+?x_y7O^ diff --git a/companion/src/themes/monowhite/32/add.png b/companion/src/themes/monowhite/32/add.png index cea176a31d526704217b1be3501019e4f5af3b50..13447d37e3bf5ce3b75bdc972cd0c09a1c6b39b9 100644 GIT binary patch delta 258 zcmeytw1;`Zg!-+XE{-7{$CDEzSVfrK_H5$g;p5@qVVB^05O%1^fA{jnJ+{n;5A)xa zERb%z&QSULB~W@M4-eB0-h@RaJZ`)W{j45)l9_oua;B6t<}jGt6I5_#@LJUI$WNSC z^7nsXMx$@ayW3YK7Cd;^?jv$ihB23!t!=gVvKohvhuqq@?Jan2oI9YDvCMpCToON8On7(>gey5-X3g5On7NDlYM=uv0|Q@TPzTp)Z|2Ed xjPgQ;rdGxlRt9F;28LD!22tYKe3PviWfcrVP$jgzE^lH00#8>zmvv4FO#oXpRZjo_ delta 194 zcmdnP{DW!2g!)2H7sn8f){J4hxh3i!W*k%xyzry^BWLPkPDg3mxk;eJCE8xYj6 z@zhB4NHxgyPN;BasMfgIpwu->@1OGFw*N;O*ivjmz8zvTiLA~Dvg>faT3@q)@$$(R z1rHV%USV)jy~L;@#GW9tb|zaRBLla4a?brM3snXN2Gx?u!HiNu29{O^=2pfQ+6IPJ r1_rNx7j2we&nT;45MpR%Wo&6>Xb6$Gr(S&+sENVT)z4*}Q$iB}cXC0t diff --git a/companion/src/themes/monowhite/32/arrow-left.png b/companion/src/themes/monowhite/32/arrow-left.png index 48deb71822d506939fbb429aebdcd14b05510b44..060c33ea94785d29a4ba65bd4159ae1307eb1376 100644 GIT binary patch delta 194 zcmZo;{>?ODLVby+i(`n#@wZdFxf%?3T++L$-`6|wKUftYQQp+;r=;cdGH3GlOPBZ! zj2&jYnE1Mnb=QYI+8iG|1RljrI51bCmHFs{u8(n=mV38139pa7x$#h&pTPP0MDD#w zQ6GOu*zfW1JetJ1gvG?fVM$%(IfoAm&+trS&b+PpY3<$@(-{~hOEJm{8Jb!dTUZ&G nX&V??85l%~XY)<=WRz7f3_+F9_PV@@0SG)@{an^LB{Ts5fUiv1 delta 204 zcmV;-05kvl0)_*Skbi$kL_t(Y$L-Xy4uBvG1kkH-aP$BF&(9#Kle*B}0VX=onR_&} z!5m|?4CW{B3t$z_JgZ_o9i(v%kT?TqJO_k$2KWsmalkx^3%AD|T=4@tNYy)#?~gjL z3e^NO5b+d5BHIIr$Tv|SjJ}eipa3vzeE=D%0;Ki*mo|YHfC&>4HX0~uOOIHS4FMk# zFgZFfH###oD=;xSFfi-;a0UaPPR53O>GdVgjF)J`JIxsNaCws#H0000?ODLVby+i(`n#@wbz$`3@-XIM40a``tc~|3ar`tko8wpAIjYK6sp%%*?l8 zYr~34Ex)^rCzj9u#Td)6R>JMYQiVgC#GN*n%IytY6w{=8oz=Rbd3}}Lnq}PP8uQw} za7@Xb|Dkt3tEOb?L@vgF0JmwG$E?`zWn`<~U2#hNTmDj?;|vTr45}rr5hW>!C8<`) zMX5lF!N|bSMAyJj*T^u$(A3Jg;%8j delta 200 zcmey()WketLVdNTi(`n#@wZb9`3@LxF#8_4_y7O;{uk5o-U=D4)ZXeWpJIPr>mdKI;Vst0NV0S A1poj5 diff --git a/companion/src/themes/monowhite/32/changelog.png b/companion/src/themes/monowhite/32/changelog.png index 397a99c2cc82f93793e45e0f7b24b9a6142d6789..e547df71ea1b57f5496fa71b6ce54fb6cc3e63ba 100644 GIT binary patch delta 233 zcmeBVUd%jULj4?17sn8f<5#C1et_YQ6fzbnUY*KB68%(_ delta 231 zcmVOAW|01ij^$)KM(spdcjuGzT`R=FKW1ONZ0cJjvaQ4E8d-8@r}Bs8N7fz^{W z0Uu8=IXW;mIx{#cFflqXFzfqru>b%7C3HntbYx+4WjbwdWNBu305UK!G%YYOEiy1v hF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLkV1j(HSk3?d diff --git a/companion/src/themes/monowhite/32/clear.png b/companion/src/themes/monowhite/32/clear.png index ac0931302cdecf738c8dbed31fd3bb32148c8694..9449dfe4f4b86c27344c8a3fea24477ec9446398 100644 GIT binary patch delta 209 zcmeBS?q;4ap}xh_#WBR=_}dUiz5@yz*?<4fznPeJdP7rM^d_BeX_~xB96B|^Y|?25 z!!oSTGKNXan9HcP#=u~Ao5TiD)hyOC%b(j86djuXSev8UB380QSL5oGsKkSPVbUFO zU#6@NDcH<^!R;sGq$1wYsxHrqPh zh?5-w9}+M*IxsgnGdL?SF*-0X>-%!ClTHC0ATU%hHaasoIx#UTFflqXFy1G7!vFvP M07*qoM6N<$g5vX3mjD0& diff --git a/companion/src/themes/monowhite/32/compare.png b/companion/src/themes/monowhite/32/compare.png index 415091a75d8bcee5775222208a5770b74465e25f..90cec960201d886df66131d7edb8a85006300ae4 100644 GIT binary patch delta 293 zcmdnTe4ly3g!&tvE{-7{$FGKX3N;(>Y?jz}_5GIrZ;oGK7MK*_Hz!m7E8~m`$4xS` z|L%31XC%Ltt6;+WN83erh}>{uc@fMk5-omw!vC4q7q3{&yCZ(ai-09n7X)4eym`FL z;K#mP@$`&hf$gf^j8A#hql@^szKgV;v-qOtyJ(Xk(}G{MajgwDNqy|sxn`IObFnAi zWA1C$)Kz9We_iVgHv`+|@MRL7uWCQk?5V7}>AJIa!MA%?J+=xO8QuHuBq(%srL%&O zZUHCDKGuX43sX~VcB$z*_cC1g&N^9o?%@yJN|)@uFY@`MH2<>20kbk#HL_t(Y$L*9m5`Z8KL|MnPdjA{50vsY_abYYhOli#KcB-d%6c0T*>GnNMrQL+61Bif6~H9d*L3WWX9g4D*>Z%f7nj>tu(AM1xk>U zaRDDsFgZFfH###oD=;xSFfi-;appnF*GeOF)cDM iR53O>GdVgjF)J`JIxsNaCws#H0000A-$^KxF*FC3qU44Hn!O#S{r27L;I!9sdFpxIujl!Eo(CE<_$P*0 zq^16Nxa(rdGUxRvhDZlulJs&%vbM+|EBJoqvz-a0C1oTD0e=v5j?Z-@rY&!r2(aPX zlg4fH`g|h=VuXQU?$=P!`k!ffy|20dnkuB6DkbYJzygc`Ls>~JGfQ5$ z0QgyXeer-75CE70`m7m6>nSj&!4+_$y|ErJBh&(65400E!dO-Z2*^_aTxfo4;!{uw zhtuT5&ZV}nL=aj$IVM`z=}qjh`IxAv^WaVwF9HjbVq+A9(~kp%-$581&e;IR;3@lZ zkei59(~`>m$`zd6g-p30Ur`DIXW;mIx{#cFflqXFzfqrv6K1%9Uw4N hF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLkV1i)ca=HKj diff --git a/companion/src/themes/monowhite/32/contributors.png b/companion/src/themes/monowhite/32/contributors.png index 89fbf7950284a9b6a5f040055dfc55b02d3776dc..c9cd49ff1b00c9eca65721c7d6460cb835c0ce0c 100644 GIT binary patch delta 715 zcmV;+0yO=;1%L;TkADJrNklO5k6B3Y!fKdu!BbdO( zqoOftxoRwo1&Im9!bYPuG$s~CArX((!h*!a16)uc!pb5jo)8Zr0?M)C9?U$8ah9D~ zcCAhPs(Igg-}is-e+>NdaIC;>qm)UsB)*mcCjMsVW^(mt?tc&wc3JoaBrll#k~utS z<;qxeN<>7Ys6WA?p&($e+Pv~5okd%lUra=Z#QCsz)>xZ_3H%-wavm zCG?SZA6}Tz_^>iGKW42MA2uvhp#7$lZLxKv;HYq!!KPJcG281buDliFx?zyBKGTwu zSHZ@9&V)C{FKCGz*f91wXuEeAtg)X0aJN@oteAaphdmbh;;&QXb87fTkG)<2d`GK` zwi@B(oPU{7ns}PKaBXpSiL=mP_0Y3XuRF9>sioPq^W=mMz}H~wbJ`UEeC7*NIz&@% zFKVVV5wY*t^U)(r;WKUv!?Y(?)#VLJ8WaSmPaYu=5rHgHBc|B$8MXqQ^ho;E+B?uC znM;Hywv)4W;4N%PtB20v{4FH99jmIxsdX xFflqXFj^OD4wHcb9Uw7OF*Q0fI65#kD=;xSFfc1h)3N{n002ovPDHLkV1h@3S!VzM delta 570 zcmV-A0>%A+2fhW6kADHTNkl`KbL8cG8JPIcv1LymBpn&%hdOGg?b!EVVB(ggyUB?0WniI*5M@4FnOg`& zNK(^Wk!>C5R%O++q`ID@?6vmwUf+}`)})&1H`4EF`G5VOfEeSHJoG=VGyF=d6T*y} zA9-!Po7>I?m)TkMOF2;pUMc%0NE8JGyxUXsQf7m#-aB9P|JOFWz#o)DeoRU!1myq# z03~!qSaf7zbY(hYa%Ew3WdJfTF*GeOF)cDNR4_R@FgH3gI4dwQIxsNn`*N`W001R) zMObuXVKa1PI&E)cX=Zr diff --git a/companion/src/themes/monowhite/32/copy.png b/companion/src/themes/monowhite/32/copy.png index 837b2365df00fe0e606bc6dba7e11810cdbadf02..5499776ec36a47326c75fcc09e0d088ee9a4aa3e 100644 GIT binary patch delta 215 zcmZo+p2$35LVcH~i(`n#@wZdX@--;%G_QR4H@-5?MR3&+J^39tes2T4d9=p!SB*(q9>G z9mN&R^kX~aUHx3v IIVCg!0Kqp>r~m)} delta 252 zcmbQp+`>FzLVc~Li(`n#@wZdF`5Fv3T)H3r3zri=#;uf8MT53dknahtGbA1up)A&Qo#DVF^5xE~6sgEz_&M^4U zZCvrrHjZJ^pI;oT1^$Zv8~FVdQ&MBb@0L(aBYybcN diff --git a/companion/src/themes/monowhite/32/currentmodel.png b/companion/src/themes/monowhite/32/currentmodel.png index 89af84e3747fc76a91fcee30278f05cff395778b..9868bfdf241b42eb349ccd4a725c4827f51c8df6 100644 GIT binary patch delta 450 zcmV;z0X_bN1oQ-ukADGeNkl{=Xhv`p$RmmEf76i1Clmf6dS= z>5rv4vSQ&Os(;b5_UG^LyFH_cJg;!cDkU07i1$A`Dg3@c48#jO4_d=i_-?s6I?QSr z+hXwmSBQun>rBHQwxAy5iHII*$cq&?-YpQV-=c(tFD1$P<$EHgI(=-DG^Lq_s6~@- zy;!FhVq!C-zk83fAsV0Y-+ThtYW&>l7tkO8001R)MU$KX84@uyIx{#rFg7bNF*-0X sS{G{$lg9xaATd-iH99jmIxsdXFflqXFe^&avH$=807*qoM6N<$f<3p+asU7T delta 332 zcmV-S0ki(}1cU^TkADFDNkl(QJI@G*nKB#{NfS{|iyDF_309Lq{%omo`%J4RNu%vkgyHDC!2-ty9 z=v`6f)ygoyM%Y@c(i7vlJ|IhyTrnl)W0K@jA21}@kyg^2leBdK)5qEVEV1`V z8#Uwm|H{7rxCsFtrGygcF+3`h1_B=vFgZFfH###oD=;xSFfi-;a eGdVgjF)J`JIxsNaCws#H0000n)KSPH4giQ3vZ@vA7Z}GASX&He zgPpxv_lp6nJ(UgsC)zg1S^unGI~P(o`ImH{%aEfE3^{bQikoLJ2_J?k-u`H_ zus>SyVhBD=wtv|JIwE7C&O>D38w)*t{nbxQBing67JqU?KzMZ1>t995iAngJVJ&us zF)b#QT4O!2RtvW+PRi-ts3A8R;vH#Dk>qM{HAt$_-Dt>=>y664Nn0H5MuWraQ_7Gr zfo^z>5=pY6K~OQm&D~AON>;PbwK)*4RrWLkjnB z0~ka`xh_gbHyX^m4v|L(rZi}a7bUfP4KB+WS(I#X(3CzpAYX?t(_F*yoWH*Jz6hoo z*r~oqot^VzStEqU7RFES6EE<~u=9rRu-){)lr8Y%ZRBO;4&Pl5U+`Ja0C3;~%*f&^ z?sdMJ6(7+J1>bOi=Y&7N)Y(I*r@8r)M*<%bF*Q0fI65#kD=;xSFfdvdYYvlm0v#YR iR53L=GdMahHY+eOIxsLRO4G6c0000}<0GzMZNLV}f~u@}+SO3;Ad zx3CM?q=|)vmEZ^P8(7&|*a(W+Xc2>Of{iDN8f+Cf_m6sK1!EZ1r=}Lu>@`A1$Gv^Mbbbmh5;9OHf2=T1YA15eh zo;XG&#?pivN7(hscirku5=~QT490RszHDo?d;@W4v^fGp1Lh1rOe?Y*eR0Hh#tj?i z-JvhT{H(#EqxQHn?2ev87r!?UZQJfCLY!LP&a(Z_b!(C)O{;Hx+`#)im{#aPOM3R8 zIgwdoc&z!E!+*dk4VDn1k&Uqy&&A`|`DfDcxMvkG*mBW5`RHhs^y zH!?QKXzk@ixvXtXDAbYOJfSUWM-%!ClV}4SATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f{B6c A6951J diff --git a/companion/src/themes/monowhite/32/duplicate.png b/companion/src/themes/monowhite/32/duplicate.png index 5bbda5fa968f703f288eb2fdab7c792dd38372ea..2484c87a726745e5944607525ba654a0772ba23a 100644 GIT binary patch delta 388 zcmcb_+{H4Xzn+oV)5S5wtyh!ot>0$(gr#s|x=H-%MdF+5 z6kalaRWCbY{A%i#3l7$Y`1k%wC=a(*5}R=Mmf%JP2|=$qR)@-ZdVw6EA(yyK1MyyEODy_*?ktlRWmAglG7 z;}5O$#ku>l@1(n|{Li}6zpFM-&F}BjIDWtGj;7>SI(!Ta45}rr5hW>!C8<`)MX5lF z!N|bSMAyJj*T^u$(A3JbP0 Hl+XkK`1YXQ delta 281 zcmV+!0p|XS1kwYLkADEmNkl_b6|kWe0#xs$mVTW%=wulZ3fFV^>24oI6Ojo*)e1i+`Pk98Ozm>!k&st$*n0z9wq zt_|?=5H*0Mho}LFhX~j_MS|nwv&y__o`Y#&pZ+sBzPT05 zyP$OfU{enGR!SBFgH3gI4dwQIxsNn`*N|9%>f-CFjO%% fIx{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjfj=Fct diff --git a/companion/src/themes/monowhite/32/edit.png b/companion/src/themes/monowhite/32/edit.png index 8076a87944bf7f0799bd8bf22ba88cfb58fdc17f..c5b4d36f5a5421592f15989a6dfeb0d4c3c47852 100644 GIT binary patch delta 478 zcmV<40U`dM1pWk&kbiecL_t(Y$L-USG6_<7wd;%AhuKEO`qmvKe zAar(fR}|gsqAuc4v6j%WRtUARDpExJ15FU2CdVOdN^kB>T37wDbU5eNd(KUO|Hwj$ zXJ*KDRT9>4gsR^o8gF7cx_PPxh{yMVIKtG*m9w2e8Jjo(lLCb9ApINR-I9gLD#(6FjeRH9bGQ{o z@DUIQ8#xeY?GY!X-~ky z0T2TtEFe|}hF+jjm7bv;V4w^BGY~;Oo(&`$!dc=t`91qNc`-<_Rx0@XtpYfXKm!aK zAS!F5D?gWn1C(nPfKGZO*?sZ=(AS7~=bJBH5kdzb470@P^nWv&WSJ6k=dv!0EiP~C*cKz+L4$!h%*2@ABm|-oCV;84HnBkb!yiG7NNnKEp?VG^2|UGnzUH~ zyS#u<;f;y&(<2fDXF)OEIu^U5a7}#h#K>J#uWIK0Yby@y0WfTnMN(QzPm>S=9}+M* zIxsgnGdL?SF*-0X>-%!ClR*LA1ib~2kbkyGL_t(Y$L*9qOT$nU#eXmUAqw4s4t8)BarOhaxcVKOT)VsJ zCJ1)y4UaYlE(=KkFCEWYYJ@?+^yud&H975>? zlU^=MNntrd^1FSV#qRh5Sz5VO(IX*|Tct&IoUOAH_njw6LVu|D*?F3{A1yKO)b*(- zNkEZ4ojUXBD^%Yio7+1j-_7RtPA&T_qMFt}w^6dqRw^7ocLF$Aso0Z^61m|5&z%=Z zI;wCOzr1e&I6SIIQs;%|;R3daOq5IXDeQ0hAsSNeB#zvPMcwW zrxg1>SUWL30fF(?P88Vtu~TAy)EdRJYAhj1fr6jttU^k0R5?I#^H>SkJRYwcVB2XG z$_l%+VWI4_*dDhWz@tFuG`$P&!f6sxz)L2k|5WE#0^Gyi$D``31;T|BkaKLB?C5bXf}p24*A zW;CstW9jN~1VE^8KhnGHzLj^m;!S|(O1BxX!{dQ@0Wb$Vo_}2vU`!grkpBY2FjU6% zfD-`AEdK+DB><2-8{3%5x0zgWx%RWRxvm-?d{(-~s91p4 zN`O(Z*5F%l1t3vWzXoYU8kq8dB4f0)jcYufy%$KzSo`=B4}vcVO`9h*?;H(7ZW ze4j8PMu?aZNj*3pv*xoPRsjK!kmRz}J*QEK306$3UK=1fEVyLS3ky1Sr>p(sz3E-j zhYr;(?(u7D5BLEC&*E}rto}WdPXZqjFgZFfH###oD=;xSFfi-;a eGdVgjF)J`JIxsNaCws#H0000?Imo;}naEwnb_eO{*Ih3KDQ3 zHZ)xbZUmtV7Yc=LD!Ayvh2XC!hznQZ4{(!Mx-g0`jTdYSv1#z$(1mHz20O2dNhWEW zY5V~_tC{ni_nGs(=M3yeaMxRuLGr$}0}NB5><^1}u0%5Y;(xrySufePwMeEbj_D^K z>c~n`rEu^Qx0~g`)#92Y^{1Ke1N0g{B}uk)X`Y!~XGIldOQyvHFiyl9v9O$x?I5nF zc<$z><0(lpEn>j<>DS?F-iRKf;K(KE#VZ%_10gHw0|V2Eyo!@C#J5xtRZ#^2!Q)HlQnl_%ij9B$EbHBBm_9(YDQbZ94FW_ zrcS=8tUF#HSH3x!oSVOqqS#6fFoqh!maTFy&n$D?<3MY<6QT|%2lMp)udo483uD7y z9{4A7mkWGnlZOJ;Dgs`W08KYKM)u0vTgLl=bsjtNZGU6i?gkN%AEH5SVqHwBuvX$ z9!gEVk2Z#uTbr5aOG{GaM{w0+=SMnMTFoNd9zVL+k>#7uFEiX~ln~}JL#@m9qaJ?& zH4%Y<;>RO@lMezP5-~M8GdMahHY+eOIxsL=7i$iaKmr{gF;p=%Ix{#rFg7bNF*-0X TD@xO{00000NkvXXu0mjfndKtf delta 478 zcmV<40U`dc2K@w(kADGnNkl3`7leqYUMJGkX!PcLlgLEjk3EHc0 z5d;?nhYk*c*Wlpd1$YmFyWk+W2;$&R1(%j8lspa%>B%|dSm`DvOY-J>pX7YW$1!NI zHZ-9B?*WRcF;>6I`DzydoNKz|bpRI})CdX066gFxSh zgnf+})b0WK5zMPmOdupR@5nnPHi?$uMLRH*_m9|wp%k9hamkP~Y-Id6YFEw)lBXEgM|2`3k$ zrhmY$%6d^tCx7nSr`_%`M3B=dn*J?XENu$z9`IM1TMLg^pyTem>Fl|POxc~{ zI0)^wcoO9c*3!mgR!Z4S zWbNAkJclLY`%+rTzJpP%=}q_Qvzh;2+u(q2$T3^S_5-xK`IEr{A5SnjIxsgnGdL?S zF*-0X>-%!C0000bbVXQnWMOn=I&E)cX=Zro>dpW7uR)K>l5cr2GC z@4(p~Pwhnv>JlFuTh}4k&)9p^Cyz_u+4JP%qLSZ|f{(Zy5dH62Zm~=J-^1@rc?V7$ zIG}Ls%dVRGk9Etg^CbP4k|_HB{DB|+5>t09{`kMXq&4EI5SL4nYeO5Gfsv5U^OhKg zo_~(AY=;ju#B1#Nf1_CK-HKmd=Qlo-XSSY|)!ag8WRNi0dV%FR#7Osixt gGB7mJH89jQG7Lf0pzU>e6Ho(#r>mdKI;Vst0Dd5JkN^Mx delta 268 zcmX@aJehgIg!&#&7sn8f){J4hxh3iw}O(9qhj$Hv);nfb6!Tl)?XgGarrd2RXu zV*H20i}nQcwz?)s2>7VA?ENsmQE=Q z2bR0kuo*lm`gY;tp%siT7~H2k(wqcAhK3Lg_tdKo12r&sy85xYtaD0e0sy&gV>$o; diff --git a/companion/src/themes/monowhite/32/library.png b/companion/src/themes/monowhite/32/library.png index a7b1a1e61fb0b59c4f6663c1d2a0e03fee156886..bec53f4909772b6da8df2f2d977d4f41c4290a45 100644 GIT binary patch delta 194 zcmeyx^o?o4g!+6>7sn8f<8LP!@*Pm%VJ^J-zy9XkE*8I86Zm-Uvra?bUv zdrXsj9lrG^XzdYI@Y8hcDC%vOtzeK>lG5PbcyuuX1A}UbYs6$>MhPK9Q!8T&D+4oa m14AnVgDCNAzR9+XvI>SFs1n*I`-&rgX3Of9WvyJRpweDyEb>9yiC+Q2O8ei!zh$J8 z1rxM=k}~osr1ulVE0~i_0i;OFxZjBf0Nj&H7d_m6d~*N*0Fw&=91<`&IxsgnGdL?S wF*-0X>-%!ClQ{t$ATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f&mavF8}}l diff --git a/companion/src/themes/monowhite/32/list.png b/companion/src/themes/monowhite/32/list.png index b88fb932239ee523fdaf6b2635bf2f3a3d12450f..ba08fe0be48b692de73d13479be9e00a15e9e9df 100644 GIT binary patch delta 447 zcmV;w0YLu$1K$LYkADGJNklZZ1ZN)&?9%W()X2_#M0>ehd|7yj?wbMAi+FxS6p z6T8!!^Qf;ruB&LFFqK&}Or416&B$t#L40Oc$sr-;Ng(;mMSr;2gRskJ1QVo}HpR&5 zF3ZS8BA`YU@LPltZ6Di(s1Bq8D-jjk?Ttq14Qs{h+`HR7b4_Qq#SVtJ!WlAAXN#$m zLy0&MQKOlDMqM10Uu8>H99jmIxsdXFflqXFj^OD4gdfEC3HntbYx+4WjbwdWNBu305UK! pG%YYOEiy4wF*Q0fI65#kD=;xSFfc1h)3N{n002ovPDHLkV1i40z{3Cl delta 351 zcmV-l0igch1pfn&kADF8Nkl^j2 zSd0c6i7=CxL}Ig83?e4^3@WO6f22mI>-oOi^K)+D7;B7B!79pS=uD@f+QVo08DTZ zJeF*Hc;w6aq=SrV6DzWliCm;8dD+WI4pOz>#Fl>wfHA{BA9|(|q9saLHO488kmLc^ zn48Ab%7C3HntbYx+4Wjbwd xWNBu305UK!G%YYOEiy1vF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLkV1h1~lqmoJ diff --git a/companion/src/themes/monowhite/32/logs.png b/companion/src/themes/monowhite/32/logs.png index 6a67d1060f6550779469b112e8eb749d64507c4d..a234b09cf347a354b1df2aac8c93d8bc5fd2ad9f 100644 GIT binary patch delta 423 zcmV;Y0a*U^1K$LYkADGJNklt@v(sy_7Ip?|OgL8qN z{#69s2MIHrUq|5%;QMRZUI0;x4v=)xg=k2}vUk8x-vc?JnSThkO+2g0;Q{FbgWfV& zizUf$0khsp2#PmyPs6seCMuZk@KCcEQq&+j0Vuwrl7oh+mVIe7P0l5;YL#F+ASCV^ z&t$P6UqeL%fPlf;(-qFGD>MNCQLaDo{UA+}*^Ix09c*qLk^T}Q_5ewg>s7M<61&n} zHbatXdiwXf6;6+Iv zPGP|jfSgHTrNcIjQ@ijMVEqtrJJ)vo+y$3$-vM+=Fqh8vJJ(AIaP_5nc&aB$eFCNt z%9LC5Wgbn@~zLB%;wMs5PSD1|;@U z^e#cGpkIwjqZ2nkN1;(D6hDoe-JNsRnRB+;VxPB}c{1;R-ucQzVKQ|l%%1@gfY9Pd zrfUhg+8gN^1ccgH!`Yx84YNXswevrR_0Vl!K@a=GPBXwVZhuC-W`I7HasjIjlk^i@ zq|kAI6`y#tT{zLVmvU9rfJGmE+=0FgL2%7qs}``}9Xo44CtZgTmeN z0KTd>whVZ~aWZVzlcQV!=NT9JAHZdk^fqrH(R}G?=Bb#dQ*Gxf&VHsT0Q>@UL&*{; zC}frZ001R)MU(dd8BZ`dIxsgnGdL?SF*-0X>-%!C0000bbVXQnWMOn=I&E)cX=Zr< sGB7bTEif@HGB8vzHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$g26tPZvX%Q diff --git a/companion/src/themes/monowhite/32/movedown.png b/companion/src/themes/monowhite/32/movedown.png index 89429747dc3282a1e802a65fe72e79b5e462a176..0f8c0c6fe00478ea755820ec591fc68a1920c553 100644 GIT binary patch delta 354 zcmV-o0iFKM1DXVokADFZNklA!bHL=@7xF8f93me)C8f|rGa1R_C zg!%^>np^r0YI6&R$V*a0TO9O2uB5=R#UgPyzLvg_yE8v+y=VHq-}^p4UI+;ZVuQ%s zndzVDUOk_rKc~XfyV2Ai^#J6I`_EULfQg}f2p4zJ1-NM=^M5v_?TO=>J)NNY_k96C zdiy0ob0&!3Ox9wlpxwX%$maU%Sid{ZUwYg`LxD_mBz|ahxCLM^9?A@{xT3hzkn49X zD)inR`8RBKRjw!-)eHSj1F*hS(o}= zo#SP7fa^*_2p=H|7UflRfNJ~cq{jKGIzaV*dPs;O-@*5mD{C$d=aXLn9}+P&Ix{#r zFg7bNF*-0XS{G{$laK)&ATd-iH99jmIxsdXFflqXFe^&avH$=807*qoM6N<$f)q5I AO#lD@ delta 276 zcmV+v0qg#n1kD4GkADEhNklrhWx9tvp`+B2)^xSfGdVgj aF)J`JIxsNaCws#H0000fDJ12kRz(RAZK(c}w!> zjCp_me|^k)Sh?xl5w0H+^Z)++^dAW3zcaq06l-n$c=P`J|Nno3gn)wg6D<5^m8rG4 z+s`|^1uV4Io5$V5@WHp`>;ZG@6W!)moZZkH@%H(=`uO(D$2*sm$sCKTo{}hOc#Hq; z4vx!*%3BZ4QS|z*(PRHo;c$u5t*<-t4o&$SpSB?-0SG)cTCoTx|L{M-Alr9aV5!n` zNtp+We#WtTm^geBX*Tbw@I6!~#1mkBPM}Hga@?l*63jiakLU0ir6f&_-tvayu+pK8 z2|do%%*@P(B^Ukg;pu7VJ;1JU#g3~@n}H!-VC&l?&#gv-u|1Gs-F$hM-DldtKhd00f?{elF{r5}E)?MxQJI delta 259 zcmbQjvWIy>e?7xiPZ!4!kK@UI&O1mZEDHF)f>HS}123B$lh(h-Z9V^w{`>#y{}+2> zInxT>2fzRS{0{>6mCiGK`=9^s|8IWA=bq*bFaHbg_y&@&cUr}`eWBFAyX4Jz!qD}Nzfm3O7&F`Wr#T#`5xE-3s7_&irAqJ5R>x9WhC ztP6WzY7*%pGUgt8|Sqtz(+$*3=1B#y|Kj+C19)-TuI}U(#CFVl!-(g>}5C zKQA|>UwOu%#GSPaTn=jkJD!@nnXJVqFJx$HWo%((V5V(gXk}m!C7#VUIhs*c!7v0> ULfh-|CI%qzboFyt=akR{0Q0qTx&QzG delta 222 zcmV<403rX)1DFGlkbjX$L_t(Y$L*Cd3cw%?MHA`VBlP}IPuIEdI~CL<8VPQG7g6*4 zghUw>Qwqj!fC7LqvPo!8+R8dv188fnh42C{3*iNjh42FiCmsNIy~}8GO2j1BN>%%_ zbs&20a0GD=kcJ@x>41qx!kYtF&~P((l2}S)XSo9?^H3p8I~(|K(@K1ugI@CpCt(M? zzqUBw1G-`3qZi%~&XZpO9}+M*IxsgnGdL?SF*-0X>-%!ClaK)&ATU%hHaasoIx#UT YFflqXFy1G7!vFvP07*qoM6N<$f|BA_T>t<8 diff --git a/companion/src/themes/monowhite/32/open.png b/companion/src/themes/monowhite/32/open.png index 36416d0170c004b7c9bf4f1de857bc4cc4c03b89..3ae76d2234cfcb5d73f8114b1119045aad04d324 100644 GIT binary patch delta 375 zcmX@e{EvCUg!=EEE{-7{$CDEzSeTL>4Lut1dW&T zDl*TxB4MMTlfwM(e`-R)icSCjPoD7YR`Y*9<2~&gCO+Qw(!P27+-Lvg*qMI)H!w2T zaLD3>UPbl9>e*Mr!kBJJ%JdoQ997+(_WR?1mIM9IdHf49%^&V`^Z5P$ztVHb4;2?% z62AODzPwhXCx(GR{M`M6iP;6S&M+`AsFt`!l%yngTe~DWM4fMZ%lK delta 263 zcmV+i0r>v@1Hl83kbk;KL_t(Y$7B4@Kp9}7Q2(d_^f!Q!bOZJ<{6~S9;6FZS{T~%D z{Ac*jh-M-RxBWjp@DFYX5=8aFPf|l*@J6Es10zmIgaKO^c=1OL!+(bV43-eZELaQ( zVYo%m<(n9e<8r|yh6n~Zf(9hO7^p7z&%nTt&+vnw_8x}!FhnLJO6qK4c*`KpP)R`h z9|l$g2h{~{8KyD(B4~dOnyXRZn*W5r6MT8WgrN5S{~b^bU>q&hM-8Bc0RV!p=IvoC z$sd!D0Ur`DIXW;mIx{#cFflqXFzfqrv6I089Uw4NF*Z6gIXW>hD=;xSFfiUHd&2+# N002ovPDHLkV1j))ZIA!} diff --git a/companion/src/themes/monowhite/32/paintbrush.png b/companion/src/themes/monowhite/32/paintbrush.png index 62cefc607ea34526b4d04bd34a8499c827d4e890..04e19c28adf50c59aa627b531b7cc85bf5a7615e 100644 GIT binary patch delta 578 zcmV-I0=@m_1mXpdkbm1rL_t(Y$K{egNE=}o#-A?@Xu%+H5EQ8{j>SO)m7`EBq7)a$ zI=U$oLFiNm>FD5}4niRYk(Lg&IMfyqC5dT`e-L6@1VK{0L`{qdganea=hGovqA~W4 z%i!SiEg#4Ip6`91_XX}mFH6L`UC5Zn2O8H&W}ujX$8g%=W`9|as&VHc#!ydAP^rGke7Ph|9`E}Ao!_%x4r56^B`(3HY^)olAXR8uYSk5+|>{x z))4vt05ua0wtrEM!|}|0djeN0Ao2N+z~5H92LObJdJ^XXPh-o$M_bxYqF{IO1{o@u za7(2ktc#E!foP{!U}XN)iYPylCq2dRt7@(MnJv+BX7}6uq}>k*fP^Q%q$)r8)}uE* z=j>X(Qw^sC2?6DBdmBsoA@0QwG=thLbYcEM7!n+gHGf7CH8O>VBBaK6NhW0kkovYx zf(<@n%bS%=$ZDLIWFo*6+3dAM$ucfI@8~`fBNiK_|dTy-y z>ng*ZHWB097s_e-&9r$O09ueP1;0P~2fxsX5q68I5dZ)HC3HntbYx+4WjbSWWnpw> z05UK!G?Nel2NE$gIx{#rFg7bNF*-0XS{G{$lPLlnATd-iH99jmIxsdXFflqXFe^&a QvH$=807*qoM6N<$g89Y*YXATM delta 480 zcmaFF`iy15g!*_-7sn8f<7cPZdow!<9F1>M5Y!cA)m^hz=MVF|FtJ0TVoAzL$;&4k z>rcp>=;wNY<6%yS$7}Zw!W~l^J2DKywA>8rxzEnz-u*5%=*8}5Y0vJ>o_Y7?UXfQk zFZq7va;40^=lM^EackSuIr|QZ-@7e%7uQ+AM{_I2hu1C3x zeg9hAGkdmS;Y)4ny&N(-SaWnkOjcHU?km>f-5K5x?82Wkd+id@IT{yMO;g>gwRlsO zl~>R~T~Rlu?2f>q4&Ug1*IZi^l9r!Ts$r@zw$%!F+~+MP!Dsup!|<8F^Eb0z1U9~W zFT-3>(ID=&YzFH$-`ldLpX+_+n!S)ya_!{)yl0EmI;Td~773RQXSrPF>#t4(EakhS za70o;%y;i?_nrOfuMU{%ACUTcph}4GqPJ;IN}JHp`|r3n@3xNVPOtvH?(z(Ce!m(< z!-KQC-|f3J=f~ps+xvxnuzdcdJSBOr#cu`%2GtVRh?11Vl2ohYqEsNoU=(R!XrgOi zsB2^xVqj@yU~Xk>p>1GjWnl37chN=^9l7}_nQ4^_MlcNqA%ULk`h3$&!}W_@_{=6sSp42071TF`2AE5 zwR;T_Y;0_)Y&Umid72q4taP80Z)lUYh=sgud&$G|Y=6Ch%FPmatLzu&pQ zmYJFP@bBk5T|8@!v@uTNF3>nuz$nbz+Q2$r<;<@C0!-Ocgo_xJeQxjX=ixcZE^+IF z_Wyn^g)nCq$^Cz7|NpQ5Sog>6fnh_VhVlmq2FCmI4!K@D#F@rWrC{_(L{&{J!Ajzx zTEa5nBp!!u{}5e=LMJIUwgqfTX%+v~&ocD9R_lkKx+r9htT#(ww!0@Jd zio!z9x^0tF8Rh*AO|6VAtPISw4GgUe45Gxd`4|`&R7+eVN>UO_Qmu0HQ!>*k8H@}J eO>_+mb&U)|P&H_KUET!Lz~JfX=d#Wzp$P!61(jz2 delta 282 zcmV+#0p-E27GoqV%9rynNAn`s~F#zDoI!KUvL<`L=jrZjH--90j*ewL+9S5i@ z0us8yDJFsW|Ju3(9$p#6TDJ4&<&(Mr9}+M*IxsgnGdL?SF*-0X>-%!Clj{K;ATU%h gHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f;&rlJpcdz diff --git a/companion/src/themes/monowhite/32/play.png b/companion/src/themes/monowhite/32/play.png index 6e56f67660cd38dde595fd5f3f06f66ac8e78f90..c42949faba69ccb947e3218384f7f64cbb6a7226 100644 GIT binary patch delta 398 zcmaFQc$#^FiW^J1qpu?a!^VE@KZ&di3=E9LLGDfr>(0r%1acITJ%W507^>757#dm_ z7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD?*AMYZ}Po-U3d9> z$Ha%Cha*3|{r~^}{)+P{@4HiKi}%?muU+p$1pEw znkbkO4L_t(Y$L*89OB-Pvho6|MTXc~wMR9P{wa~5LD5X&7P#ydi z3I;(Pg;)xuyDoyGK?M;h6z@o|i9rlv5b*~UM4KjpOEBf2_vvt&^HNVQ$yDg)-M;Vp zJiPDseP8$=FA5kR>EIo)NAaLcTG8qL%}9x7O$y#xoqLk5qkrEYR!GvlM=;JLIakN* zhu8rEhWJvec0@|5%29LbX`eA#4yIe#x z8h?Jh^LeYGi7)F8bLjebtEW|}=Zh5IZ`@z^>G}50=G-f$d7E6mxq*R!LAAs+q9i4; zB-JXpC>2OC7#SFv=o%R68X1NdSXvpFTNztu8yH#{7`*;nv=O4g9I7KXKP5A*5~0H& e#L&#j*wV_-5TfIrdi7zT4hBzGKbLh*2~7YVv$it; diff --git a/companion/src/themes/monowhite/32/print.png b/companion/src/themes/monowhite/32/print.png index 95a8e23bdf4f3deccc6f025b1eace40aa304a483..b7cc71425930f4ada47583be8cd90989c4680df3 100644 GIT binary patch delta 323 zcmZ3)e2RI(g!;ptE{-7{$FEL4DAcUL(n(KVPya{LpgQu&X%Q~loCII#}fNuZ* delta 232 zcmVNmkl#on z&1`#O0wQipH4+Fyf1zynA{$Z>f?WEOTmc^vFgZFfH###oD=;xSFfi-;aGdVgjF)J`JIxsNaCws#H00006{%`LyMeyLUWt^Vk!b|leDwrb*+BlRm z*(UP3B{y<0mXb93_U~o^p`Y=!fgQu&X%Q~loCICfVJ=XvL diff --git a/companion/src/themes/monowhite/32/read_eeprom.png b/companion/src/themes/monowhite/32/read_eeprom.png index b5f4060f1d73dc29ee90966bd5a16db3b14afc1c..926fa49ac084ab54b335bc1e4c1616bd5483be3e 100644 GIT binary patch delta 788 zcmV+v1MB>o2FeGJkblETL_t(Y$BmRrZ&Ozkg};5SeMw@uhR}pTDnPs3HA$ zUh8ZF#B8xbtx~?rumDBBUot5`Ajc z@^|?F!M3szN!E}MA~7T!|ECO8{XOn?dibhk=Vu))&`D+?Yyt%ZZr?R6q8~MF1PGa4b_noAPhtWKlvMn^kohLP?HEYaZASvzQ5P2d| zb&Elvqa#Y)T{nTZ9K%>=$Hk|$0=EmA7i%YT1lspy&4%bNnQVC}3nL1FN1 zOdP|YPlKHdc`|KVFNU4Q`0b6Qlid0sB6EsbRHvDM0c{N-G8gXyBiJ6Ehyz$CXb)O} zG4DPpSV;$iX27UiUQA|S?d*`oj}`GQ+)|++-uYQj_}Lr%#E%GFfAs5Px05EQzSM(j zKi6JJQh(u6H3XF3ez6$=zx?@d>(=)&=Lbtkp3E)Y1=M~4lF8vUBLKTP~tU!CefBGTPOSk{}>UU8Mzy{s>TZ`vU);g_= z+1FSpX6#q*7bT)4=3)>mNTTN0w-)#m~C&W)cKD| z9`_E1>(?BUtpXnsF*Q0fI65#kD=;xSFfdvdYYvm%0v#YRR53L=GdMahHY+eOIxsLR SO4G6c0000TvILT)*Gk5Nt+?fcTG-uAa=eyte z&b>EA{GYXeIt&wxs)#qd#Ej9>(one*H%dSH{IZ;qQnAazuz&E`HA;(S{Bf2KN-UaL zd5TlsrnxWIS2ZwC=`h+&(Sje}y0FxdzVnb$`9mUEPqRDh&XJ+(E!iK5(BA zmw7+}OnAg?Ua+4jQh9uHZm%^EdaHi+eV`{o_q12{(&PXOjnvh9z0ouE^7F5k+SeCd zlcWaqW_ZjlAGyVEnt(V!yyFT{dP7_JIyMvsA)Ycs_Bl7~X7Bbl?;r`{3J$~4f!guY zbyI+g{2?ecxJKueBJp1&k&KN~lX!}gTmv5xFgZFfH###o yD=;xSFfi-;aGdVgjF)J`JIxsNaCws#H0000Dz9PNuitJkjJ%Yc)7EZgY=1|{Sh&Q^!(tnQB$QlNaMmJ953()i> zemIS~tRmU@XL?RH&dKiS?h( zQUWXtiS-pHMqR%qYh!?#w!n$$|DXs8wPw`{8FNey?CV~0$I|w^(ZnZBgMKcjeSbQk z*UNIuWl4~TmwVhr(fK#e7tHTYMf1!0>c*48M^#lx2mp9LE`D>sv+u80AKX?EE^W00 z?3ed5;(v7G>crypq`wh>R&lWiu=L^KIO~T zJ6$%rpRe6=1psN*U#^axnJWCPo*ncmgIwOs=AQ1IpL;POZ9o^6ko$$xGsX+jPYnpb zr&F0CvxsklfEOk-#XRhlg8e}V$P~L1%})>Vh$EHJmeJ&qTNzNsqshP&28krt`$8~V z2aaX_0mPG$OXWUeR+F3p9}+P&Ix{#rFg7bNF*-0XS{G{$lg$DhATd-iH99jmIxsdX YFflqXFe^&avH$=807*qoM6N<$f=w1xBLDyZ delta 595 zcmV-Z0<8U<2Z{!ekbeV7L_t(Y$EB4&ZxcZf#eWk!M{JbX7$cH2ZX!}3fdmo-5)$GQ z&{5FPB2iPpcc6lgfJ8x+2pU8W5)x8Mq!dU{0ZHKE#CGmcc+S2%@7X5I7Po(H-oBZ6 zyKCbAY~fU1nO#k}VbCn-Zu2mRi~C`tk@5g%3i~W!K-Xter+*3w08IwzY#D>&LI46H z1^`6t(@JN{02(>kM*#FN45JVH_I@cqT*7COO*~2Hd9GxQte0 zAjBo_x6r6fy4S}2Y5{-O7c9r;(5o`m;1WlGh*E$PkE{ng0$TiFESz-!mRUhSoeEuy z1)!1wB)|d7{D0yc06#Hcjc=v7FcKg^NRlG|ntv}ylG;8O39YHEx~D}_nxJA1s`Nd2 z16Doq9`Jqi&)K}g(0ai#9tO$RLI7VgXJ0;PW*ylJme*-et-?*25-2_m49pwLe}990&en&`|NO;2MmCH z9&?*lYb17CtLyXRz<9zY zpSi^!DuCEVeBdh4@SIecWzXm!S3Ve<^j$f?JTFtHAgGP}@^l94nG*m-WnP;FFxR_# zy2mw3>JXov_sLs2{tJAXCos6kx?__r10NDFIXW;mIx{#cFflqXFzfqrv6Ei|9Uw4N hF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLkV1lCX4K4rx diff --git a/companion/src/themes/monowhite/32/read_flash.png b/companion/src/themes/monowhite/32/read_flash.png index af4186962c7c722f4eee2958ab885ef3f5542b6d..4fb96674a65b7f20fa463145025569b005d3482a 100644 GIT binary patch delta 1034 zcmV+l1oiud2fYc9kADNUNklYHg%G zG*wVg^g%5m2(}=2L8vc2R6!AakwB?}We`K778Q&S>VvkKOeSe;HEAw}+)QH9+?q@> zlaABLBximf&NP$DL`&9r*|-1S|61#;wP8ESMhnA|WG$>xYzo0KjyQ1F?}c3mKQFDq6AsM8Ddd_8doB0?3okc5 z9N-8r937LS-iy!r)=&r`vH?=#H3|;zXt%?Xl;6$qqE2aH*j`k!?E*h-axa7ThxY{} z>6l-VK5DY(C4Vb~r1~IrKskHU@Js=$$QhJA3Gms@Hpe?(0H0?>IvJpW%h`VwTu4!5 z$bk!h*+fV}Je}9)86klWuXS0H&bB4yBt?m);cF>eoJ6d!9G{eK>fr$@d5bzuZ~(6r zO3X;o?4a~Y<2ATLEFs+B^93ZWXj%FuNIlgi_Kd$i_KB3q^C(TqBcBMtW?@uL5=w1J}E$NvRLfF_oH&#eG9b}9c&E%Vi zBt6z-!nys!-QTxpOG8*#WKkKE?1idkMuGQUZIsGed7T38<=mT%siPadby+Z=L6i_J4G&*}Bs`mZ4~htoik;xtuc5#GHg^8S0V{B?vKh*{W2N5qriq3CrPbsB4z&sC9`#mSsy%`X$K@E3AJu$H1CX!VW8J zMqy!L35^pqbJ|M5a2?UWHO>P#Ja zp63v%3f2c*GiePugZl2l6M6lTWPpjdE8FY%Hr;n?j7Q9L@&+(ev?dMI4i*2s`-x<> zp**r;fYE`wTroRxe^GliWC4dtj)%O-#iQ*9a~|J2&~^9E7yz@>vk#yaDg<9SwP z?|&|U4$r6k$(&uTHNwvv`Xx)LmKMqEIZ$JgX03g5O90e zG`H=kO3eS_N{b5=7nD*8OU|0{-YD3QmPhBE{k3g*(mr}mYeTEs<2C@vB7lOj^}kSR zZk#x6G&hI%nk%eiE}~3Dm5~Qs|GTxF$90`$R^Z{vb>dzB0ti>(soY3`dXpFf9}+P& zIx{#rFg7bNF*-0XS{G{$lSu;|ATd-iH99jmIxsdXFflqXFe^&avH$=807*qoM6N<$ Eg0OnzUjP6A delta 721 zcmV;?0xtc%35ExdkADJxNklUuex?7{@>7oNYEOGd7byiO@8mlxWS(l5##g3K!(Y#Y)5#iQHht{E3=`mZD@?aidoL)Gm;SQ)V`svDo%;vG<()&N^q!JinXw zdEWQ??fbmX^LyTy{GY|gg}NMB`|sZi2Yr?D{vH0>l#Pp^O@GzWVT#;GE36(7$q%pz zB4HgL39EBYSiMuV*p%mwC$i&VYi7xhO5Jfn<>u=P=0F+yyaNmXB}N7C?$ z%re%i{r*v}iGNt+AsakrZ6Mho;wSZ@v**(E;nhPf?$iQCj~?hJvW>ZUZ^@#xWvGDZlBysGMZ5g%s&=4K_B z5{<_B#deBmXAS@b8UOtlrp?em>E$Uf4R{3XWdhsWhIL|&C(^(deQiHY#5ewACi-EeHf9-u1R`hf+wr3vU2O0DZug zbh%>GF`FmU(oF)87QXX<#gx(qke5;2S-@J_X^zC|sEjmKjB*5|BiqaLnXTNUkOTl< z0Rnv3Dg#kUV%Ba=&>uaN)67LMroSLt3gfU`3Jwa!h#&Y1QGk~WN%i&5lTQR65->SB zFgH3gI4dwQIxsNn`*N|9fCL>NFjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjf D^^jt) diff --git a/companion/src/themes/monowhite/32/recentdocument.png b/companion/src/themes/monowhite/32/recentdocument.png index 4a4f2125299f4762629bc01f36231db7475571d2..c44509b05aa3e3d3023f43c4752e0324f06c53df 100644 GIT binary patch delta 662 zcmV;H0%`q~1DZ@hnD{QcF5uW{oI6( zec#*jJm1gz@VpN%{MSF1Y|en4!OXYY`8@~i5%~aHdB!S1NPjABLXxyu86pcPiaD1m zL)Ze4bDe zO?G0P2s{a-6X}F!{EXj#3mh*u#2tHYYe1X%D|K?@&<#68;Vbm^_$2AW^s(T2B0bkU zF*+ehx4qn@rhh!((rKS0HBBPoiYrc>R|lpgZMFLx7fT^>0Vb9t)raasl55tSHbd+O zPSw4aB&<^N%LQER@JesS86=#Vkz6yJ-=58YXH4oG=GyLncS{keVTxcj-ZnxP0KtYS zDHg)FJK%@4D#b$cVS;qF2DBly`{*J#AC85jU&}1oFMkq%%LEQLSJeXNx=jo?y7jh^ zwiY(lp~_Xfl?DI7a#Y$EBSWJjCCPGo>A?UpHBo6H!lcb6W(n>jxKli0a5b?uZ~nX< z<_ZG(@2o&~iq|$BWaUUolJkom4n1X-C{Y<0G&`66W@#$!z%bZ3){A?7$kaJH&L**h zFe2PCr&BVu&^uziLe||PvxgDU- zx#;$;CnV|jO25B)j>mhk1GI3T&j^vEpCkFnKZTd?G;fp}XOkxa9}+P&Ix{#rFg7bN wF*-0XS{G{$lUM>BATd-iH99jmIxsdXFflqXFe^&avH$=807*qoM6N<$g8yzdu>b%7 delta 478 zcmV<40U`d(29*VnkADG5QgFJE;bSrMU)uur_o0I!%8e71Vpg3 z5P~3r2&S>r+Fmh5f`X-;OR5M~>NY7%hmQH|lQ9p#yJ{)-`;)%;{2P4GNGtOrrY(c-o;f~vq;1*$ z0mStINyc(7LX+MC9}+M*IxsgnGdL?SF*-0X>-%!ClMe$OATU%hHaasoIx#UTFflqX UFy1G7!vFvP07*qoM6N<$f-mmg(*OVf diff --git a/companion/src/themes/monowhite/32/save.png b/companion/src/themes/monowhite/32/save.png index 461af833def3242d26da0dc47fe5e5b5d53aecf4..166b9a40cbeddef4200ff9d067a838ad266c8050 100644 GIT binary patch delta 194 zcmaFI^oMD}g!)oX7sn8f<8P;U^EEhdIIsNpFZ@`q;i(ck(Ypup)V?fjW!b!{<8c~vxSdwa$Tr^phQ9#JR(#pWx%Gg5N uz|hLT;PvmKjg##eWfcrU49%>JEv*a_hE;UxBPOS@0vRpG-Onsc4 zincwRxNzc8+I~+FW;rFf=7BU%R$d?NHHy6q9`x z8w55AuJ~rKi(P`{M}@^vjnV{`>B-g#x{RM0{ffJvl{5Ok>j9j1}bZ@-g0n6V>v zCI3+y`&Z|eRn9rpD8YF!Ew+5OUbzhKbP0l+XkK;xK=~ delta 283 zcmcb>yoh3wQa-zfBhduLK!!l=|=wwPc7?*Uq z^5;fn*JbDZ=KlWAkZ{Z8qsNui2MirJR9n5@e1F-;P`T16`DO;g!(SP>c z&%5$t>)AOwmvn|5ICyM-bKU{&lcx&~J5;c3VPIfTEpd$~Nl7e8wMs5Z1yT$~28JfO z28Oyuh9L%)RtDx)#unNJhE@g!uYVV9MA49&pOTqYiO^sWVrXV%Y-wd^sBItu(s56{ R`Y=!jgQu&X%Q~loCIE9Zb*umY diff --git a/companion/src/themes/monowhite/32/simulate.png b/companion/src/themes/monowhite/32/simulate.png index 9fe222a8a21b815fddc08a30601a4cee2282baf6..de935c6a5819ac56a5edd3e893b002fa3b60f110 100644 GIT binary patch delta 266 zcmeBSKEgazd4sJ7X;+k35u{xv9OyEcQ$qoH7w-pl%e@3|1xqXnS4W!~g`Iu6{1-oD!M< DtyOP| delta 210 zcmV;@04@K-1B?TZkbi|qL_t(Y$L*D|4S+BV1RYvhpo9&Wg((<=O(+msFa#?=#Q-dD z)CiFTeM1qu^`G?iOLmx6nW#^Ip97{y0&fi)B^GKQ0H9L=Fsgunl^B56N-W^jN<08| zis#&yAT?Hf%fY=?a>c@+Eb*jO&bZ)|AoWU=59*NI2bjZR3=ebZFC>7OUEgC235aEO zB$HMF9}+M*IxsgnGdL?SF*-0X>-%!ClZOEvATU%hHaasoIx#UTFflqXFy1G7!vFvP M07*qoM6N<$f?O?6_5c6? diff --git a/companion/src/themes/monowhite/32/stop.png b/companion/src/themes/monowhite/32/stop.png index 4feabacb9a289e7989ccef07cae2c286a572693d..b529d5cc02b56a66c4a5c95e1472467882fa0514 100644 GIT binary patch delta 297 zcmdnW_?&5iiW^J1qpu?a!^VE@KZ&di3=E9LLGDfr>(0r%1acITJ%W507^>757#dm_ z7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD?*AMYZ|_PZ!4!kK@S+609Q3ZX$C0&3cFH zo2>MVYYyfy@J}~;Epw>spWn|i(VHAB8=ma{GoRx?{mg?x3p+VaGC1`eUp1*S!`I@# z3dY53JyHe|ya_5%;>u;dDWaJo;;R-na4|6K4z;j!En(CIxF4h4;Ya- z|9Kd68U7R0ahdT84!Qr9|A_&X$a`+VPf{2tKI zKad*-&_HD2gWWuS*clFmsgYW4O%|RoWeyLVo$`yi!e$}@v4053;)Eiope4C~LX!4N zj2OeG9U+p>!X4((0-zUrt3gstA#S4oxPrMV??KO#%~u#Q5};Ej@dByJ+wsZdq=JR& zLg|NqrjOTBl~=eW(D914+QM38i#foSz(Br`s8^oR2b!#oxO-rBr!%%QgA|3}P88n1$8I@PJCSg7+Ci zzKSGY>&F3?HQ@=0nR;;maA6aU`tgSTLT?PW*Rhs@vjJ?AsR17nF*Q0fI65#kD=;xS uFfdvdYYvmz0UaPQR53L=GdMahHY+eOIxsLRO4G6c0000v$=q9o3DU>A5QrN4cHR~A1lA0;3CF$8Z#vX7Ni#@6U_|_im18_c%H<%>i$i0jo zDbSPr=-$_Q(XLJ;4b-r0V!#Z5DZ|(vUb=E!C-|;j*Q2&|pcRdDtI+lqHlylL%Y7%A zO?>+a-6a5@b{o1&purhcD?NLRX8Zkr;$IN>0`&vX-_Q;b*OLwc9}+M*IxsgnGdL?S wF*-0X>-%!ClRp9-ATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f-fmCc ziA*jo#-NFDa&~YvVRiCvV$`@0H)7Heum?@3L<6k_ii$$p>mM*i4K}sC*Wp^)Yw!AJ z@LBHi=KVe2`+eV&JK#S{GOhNvj?ZC#JuWY|Y7zVrrs*1s1Ao$LK8tjN`2YYeT*4h_ ztT|%1i_4`IoydTvg3SBYpkb0FD+`zH;`xayv)LGP@z=GP;n#=9&<`hl%Wrd8+SEKI zttWW?QmM4=tWyY`Ae`-9F4uPBQUqPr1~NT+8qj;QF$$p*06@5ZZ&t6mq8Mp(3U(U3?o`{wXIF~bpjY!)0C;z1a) zZ7};3j05m*PVamwSp-e;S;0&3AUY%`m`4;`2LOy8pMPhzeZ^o^K4t3(h&&>}#r!tK zVFz%-r!WiEm`{1Y%0kCAX4di<+QRKq3bRn{HTgU;h5;))$yzycxzvTX%pyf@(|lUs z)zX+niuyoi`IPE#x3o|=Xs8wCw0443a7{k5_-(!SivEfO^?^zqi@X>Jb%h@Un8Bmc zUfpEx6@R?9s;!*QCmoyc8ovib9-*>P1(7u1dOj;psdn||xP{F2UKDCOxLSj2B1!Jn z@%rJ_R&fAW`?+CQzbF#z;6Mkq^65Q`qKK2H9bC6ib9w?ap|+3fQuApp2(>D8)smVU zxahMZhGXWq^*_j9VSzWC;2);c*l9{5g{c4l0FzPz91<}#Ix{#rFg7bNF*-0XS{G{$ olYjypATd-iH99jmIxsdXFflqXFe^&avH$=807*qoM6N<$f>#+ySpWb4 delta 518 zcmV+h0{Q**2E7H4kADHSNklzfTlF6vw}FIn;1RY-qgQBa#qeLSjKk;B4&a zY%M%!sH`pgC#Zpf_Ie5bfW`)*fgDCVBZ-hJ)y~`fQ0(low?7B&O|dg?-}n38%zS6Y zpy{kJCBBxR_g zTZ#WQu!InwX@AvMVDJeT@z9R@fQOmTXS1BZ;1dEN*E~RM10Hi3eLgKCh~bgue)AUS zV2bovzVf6(;fXCir_a2Qj6D6C@C5R7Epqz&TXdY$#Ygr($sV;+KCrgDZ6w|@LPg>@qr6GCNOvzc$lcpfkU9E_>LPquHeT+{=hZ+Ex`;| z2}OYK4o~mGr9C{(#pjRn)m`QuH-%!ClQ;t%ATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qo IM6N<$f%x?;)FGhojA7l>%ni=>)4L+J*~9b zH}k!j`DWe%=zx_+$(~sU5dkISHjzTmK^UWWx%NhqtVv|MqksLpeRt#SffU)dp&bH4 z0)nli2JB%N1#j)W3@k^Hy$-*-bb|$qP^bWur~m{FPc-xj0ka8ONs{|)+i8GbR@k*R zl2BnS3pP|pn0n+BlOzS7#u85?i{+KbDiJbAnb2qFC{ZFPFbxKZ$Q@%H&4F!T3Yf>J z^U->+6s0LNtbb)q2I>x)^sQ;}k$G|vSj>EyqIIadMyf{^fljkWi~)g8V7o0}q+A## z0ZG}d3@T|M^C`sQ!PCg;s>M0s#!~YXnfpjakE*K$Q(Ya2rdb-xCbAmb`_|UMw(~YRrrG|&kbl`Ig>S}!uTrH-&o|M&H9lmX zp!j}b21B|N^9Xa+&VS8R=-n_zi#=l2bA=n>h;>uhiF1uaCwtoik(g7`qB=n!3}~wl ziMjMXFoIA0<0*lKf_ASJ7-e^KvZu7u`w}oH7He4zter2CwS1Nz!qu5q-3MO_rfz$q zJKRR-`hVl!p1AeV0oB*~>ukiKTUtI3@HBkzhGRbzZY60$PQn*fpsjabH50vd z+y7koDTx5AxBL5Q?d*xD(>j-*#>(`Ly}UVBd11J7;k!o*HURWw8M_;uI^&8mAe)5> zP@z4^@apUGB1>3zIOcY7K?SbE&VS>b*!Ir^%8TQPR!?#Wco~C_2mLoI!yn!3A|4Lz z(3UeWEdm$R^!MT1RsJ8v2vAlx&+12$!2%yoF*Q0fI65#kD=;xSFfdvdYYqSa03~!q zSaf7zbY(hiZ)9m^c>ppnF*GeOF)cDNR53L=GdMahHY+eOIxsLRO4G6c0000~Pe29lKt9Gq5{fG%M1cfSNZ}-`tr**f!ZW)w>sdS8DZINg_uO;t z&)A6num%+d+1q*csUtMc2-YV_Qd6km_CtVU?Jj_D-*(-e5q}71v2Tf08QCYN&IB@Y z%?6-SI5gz1ceq_}@lV=c2QXp<5H;W{brJyf=+Mm|>Yi)P%Idlp=$=Sg%kCkq67FkT+`*b)1xy(KXTqewRiS(6FgHhd(R1-Q(wf*{|nF9JBx|L&qBE;JJjQ{mhR{nLL> zkI2QJxMHW1Yy%$>FgZFfH###oD=;xSFfi-;aGdVgjF)J`JIxsNa SCws#H0000@z;cFe}~e&dmOA zX8yBx@IRs`3V?~$Mj%pk7m1H+ye+V!20*MqmHkKa1$|O?VSmV)J8r5Bg6<;~H#H%O zQfV2fQvef1S(mn`O&~xRNR&DX_*C>@>}P5WQf&fsRI4vqthXQ(d@6_lvZuq;Ts70{ zw%u9^&Q&06YI083J%W5|NEt^cVlt3*wNX!cki5Y zXU2*DLv60vLdfDK<614Di=Pw=mZrlPfb&G<6@(TLV@Nl{H-8D!B`n}_p)DM6Y;2n1 zFqzk8RHng6GD=ef87AOwxrn{Y*xBS!hB>WrAuOn81`RK(%-`~Syo8$hQ1@353)P?E zJvKHxVZ|8I_ePji~unNo&d}I z0O~{ltO3xXg@1sEMPO2WElv;t2Xy(x1pt2HfK|Q~>fwlh2q8&o+S}Rtk|e2bTvKRO zeRWJ0NwGlF8Z;Q$>K(9R;tqlD$((cffY>0PjYr<%+r9*Q8M_u);)LVE&KLtB`vCNu zVD?mVh>!yuZF=6y_HhJUr0_V3Wm=aX2z4Z>>P-BK!+-IZ*R0@@=N9j{&$X-uJ`A{r zfZJ^IkR7h_h*RJVVineBwII$v$aNg%=Evbv`&YY)|e@K3CsNgQ&+MZ&W2X)4e<2w53cFyTLG7(5vs{L~EyFgZFfH###oD=;xS uFfi-;aGdVgjF)J`JIxsNaCws#H0000+)QH9+}cbs z(~i^0Bximf&NMSqCu-JtID4#1`g~BNYY`yBz@FjFG*Gy zNo_$|fm(JV$A6HMhH_G=D;kwP3GmsSA!n&2Kuf`dbSywS7YhFgT4cn;Hv9$=bHyQe_0bOLNk6Lm{dpff)PInu=t~DZ$Fm4E1lxkHg^Y%xQGK`L zXvwf78DJ*iD)c(J%@5rY=MgiXx(*C=-6;djW0ikydm>e6sEw`}U~=RxSKN+1P|?!} zZeV}ak+3&)=}^z!qQ`fR^xyrn)2z(Oz%GDuMGaM&oi4HJ2e$(B7JNFKD%$FLJ(Vfy z?tg+wB7A_P!L#^DN|F_pl!{H6LG_*vO@7IWlfQ}Thk+A`2`2@osRoiwl<_t;#MY?W zc6y!KJT&bo{xG`z{;w*H4QRMuH#U{sUQ<|Vd%#HnU<|m;JUuex?7{@>7oNYF(=Fgb?Nra{eQH$2xEGZY{ zh9&SYm^x~2dkgo@J11n4VWY`KVas^0da`mJE+kO^WcSbC>67UfuLTGi+3 zv2hXsv0WYWmw(zNVwFei@PaLY(`FIh=Yt{|h#wsFt>5hvu_;3GY=p}huSI6l#iU8g zaJt$VF4U-c&?zqWiPw#nkiic1i@O8Eadm45cQWc)bethTm7S`-5%FO`z=ClBrbVqu zez22jGRy~{BIf1AO7=00@EDj0^Z@&rjYyg&v2lZ>Nq>{hk-DM|J5@~jTRo)efP;>V zlfn#tI^dwgxlC@WPlLOM3mvsP%(8ldGpNid2h_vjdXEMm%|$qIZjW=s zyTS441AkA5o4gdIxhT9My<)klwdx;VS!us_ZMPx-sPT@se3eZhR})_XkOD@5)<_9$ zV;+xa;VUUX`WWIq%b3b26gQT+zy>n(Mr>`=M=n)@89`t8JYH4)z;

NeX~Z06}I;f{Ok+tgR#3X*#Q4ti&kd`z=K3u7uF9L@7!XuU2=p_r{smaw3a^bvu)32<1RoMG zIXW;mIx{#cFflqXFzfqrv6FiQ9Uw4NF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLk FV1mWCRwMub diff --git a/companion/src/themes/monowhite/48/add.png b/companion/src/themes/monowhite/48/add.png index 827d7b2444b701279020187951a9f0cca1d0d6b9..cc8812cf42caa4b93d17121110d44a6357d6ca1c 100644 GIT binary patch delta 273 zcmeBXKFvH~Lj4g>7srr@!^sH}tcw#w3??lIYdFYoYS)1ejlaY=KD^xI+hkDxw04)z z9?>IA>=Qr#U+D0}rkQ!;tr;uc_62gg=}K&65Z;g==sd;pM+38%p-!sEGFGOVT{(Ym z_-y&pksy0~Rnrb5u9asLMH93ax7Dd!zQc5ei+yF1BkMGI^PA3o5q0eSpOb?dbti4S znqe_%rN{s56+2$Enzu&G^$sygP55!3fT4Q@vy}X7DV>BD?w?k$E*9fq`!HY@GlA delta 209 zcmX@j+|4{;LVb&;i(^Q{;p9K(9ik7oB!70-mDrk~5plq&DTrX+VfIC(f7Ruz z{XR@}|JO$bL%b zi2}yeTuRE7TMkJ=^ju(2=G^PENoxO+2nR8VUxfx)d| zAp=V*19K~53vB~KD+7bqzl%0b?qifyFbFX;vof}{GBkup+*7YU%m4(Qu6{1-oD!M< D)MZUv diff --git a/companion/src/themes/monowhite/48/arrow-left.png b/companion/src/themes/monowhite/48/arrow-left.png index e4220b5dd85c5724c62bc533114c6846a8f72618..b571db825be2ab5d1ed1a83984c064488a55740e 100644 GIT binary patch delta 719 zcmZo*y~H-5zn;n4)5S3);_%yP2eU5+$Q<8a={tFgC6f$76n>l8j5`h5Nbk4RZPV@vkq^BilRTHO*j z&9`#%ROKI5%(tF+E5%b^Suj{3Bsc?=AnC5Re%e z_-{@@U7^nOr~@JztL37O1pIgYb$NsRWofsacSDzly0bg@_1k|~zvylDss7VT=b0>_`4=bMuRlnQ&)$?8c|XLX$2;vM^ZM%*^;3dgtNOB|+luHizH! z^ko(crWJe^-@W+Cj(GcWmmP8)I#vt~P4j%J=H1+#a{H2XLb>dBKkxkMik(W`3=0~< zWum5aD@dfj(N@tWO3pcvgf7zaRIqh5PNmh%95(WmX+UY+p?*BDI zjWb}O)7G2(rc2-I*H-YY4GP@5oU4(gR-L);lK*`DdA)DWh~+Dv*J2RZAUd0;l#5O4 zwXTki&OiQt3~3V9+#6)Xy%-o6R7+eVN>UO_QmvAUQh^kMk%6I!u7RPhkzt6Tsg<#X um4Szuwt=CQfkBjbHXn+P-29Zxv`Q>Gpc=HjE^h*AVDNPHb6Mw<&;$TNok7q5 delta 507 zcmcb_*1$TUzn-zu)5S3);_%z+d-YiyC60egKX18FNU?}>dWHy>qSst|hoX`d>%L6t za0-dj3haKxby8HSbA^eCR;QExI)%Uqiw|^ufBJ59qVeT7=T5{OJ{Pik=JW3}XWl)V zBD-XpZs6lT5*>{aKZG4Vi3fXm&n|oJvqz&bFLF{{;lA|~m?Qb>nOJtudnV97KP++n zz6V^hKd3OvGz;zbtd5wc7^e%sr9@N2Ut>ce|JJ-j{K@XWo_{p)uX!$}AoR{+_qz?1`GW!+DJLd&)C&n%X?|EE82M@ui;Pjuf^ABXvqNX_6h$mwvo`5ajcD58 zsK|?Q-*p$OEM{pD6Wh|eOToQ%N`u0gjQMw%i%nd(O$?7Nb+R$?O`g*5!06a+rx;^t zw;PO222K;z_ut>>p_Q@c@524+sV_hB*9!UvIkxW;{_k|uf#=A9dWL-rZ0RK_;!z50 z+6)W~swJ)wB`Jv|saDBFsX&Us$iUD<*T7KM$S}mf(#pWx%Gg5Nz|hLT;PvmKjVKy& n^HVa@DiInCLJZBUj4iDU4IvutsaGEcYGCkm^>bP0l+XkKfR@qz diff --git a/companion/src/themes/monowhite/48/arrow-right.png b/companion/src/themes/monowhite/48/arrow-right.png index 52b41558c186e0b47a96d6c73f1b38ff1b00e0a5..233997acf152a563595d37d4c0a134b4c2fa26af 100644 GIT binary patch delta 589 zcmV-T02Q3`*r!xB!;Kd^MM>k<24yY$#?7!?w^0lAD7?z*+{At_<)!C+P8Q9Bf!_q z#~9ZzC=&=+(yS2Na^oVB76130;F`;zK}{=61lK;ghGfIfeSgPzmN95h&jJPpYspm) zt{_?Q>(V*qT?|GH%v7|3bK{Xy$N_clvd}6GDRY3^+``CW@*ExoJ)Nws0Q?A?Y z|6dWV|NB0BJ4-!-0CkM#VQLKA`|CAQ==}3Mz*0sn;{}-Ni}(KjiIkmRIvr%lW8kNf z@hnxzd;kAN82{s$(-x*w1}-WY&pbJM-`@|&#kTH#rhj;9885*+Y1Toc?DhB41BJs3 z;S3y9GM>G?em_d?y{ol>$%lcBI>w8z%$~FtIbr^KBXW?@ms-a2GtJw6=>HcO{QKqJ zWq~6MHl&q3_;NCzz~OTrCjNwR|NKAy{$nr08HRtPSb)E7m1Xcn;{9bf!*HH7<43_L z7zLwXa0&nb84hq4*fO|@lMezP5-~M8GdMahHY+eOIxsL=7i$iaKmr{gF;p=%Ix{#r bFg7bNF*-0XD@xO{00000NkvXXu0mjf5~Cvv delta 453 zcmV;$0XqJK2K@w(kbibbL_t(o!|j(lNCQC-K}Bh#2q#nj-4mvpaX2yBuyBy_ss**?Gh4&Ma#o zjg_Vb$BzIJAOideK#T9HElI^fD)M9+uplYVa^yf3?2=$f>)uQ9VIG|zhaQ%-i&=n-M>5->SBFgH3gI4dwQ vIxsNn`*N|9#{wN7FjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjfS_Z#u diff --git a/companion/src/themes/monowhite/48/changelog.png b/companion/src/themes/monowhite/48/changelog.png index c9e897edb7bdc4c6d66b01b34f970abd31059628..454dd7ad0075cc8830ed9ac7534a5d55b7ea557b 100644 GIT binary patch delta 671 zcmey!vWRU$e?615r;B4q#Np%w3D(647nt4FEaK$($Wpp5B_nBv+dNjzhu5~MwV2%d zEBEtrG~Z#)+3)JeLh4VY>Ljh zI59~s=h5EyM>z^QrEi^ij?IlP{>UmK$KCg*ax-K1hl4+=>K}98Vl&t0Ebdyd>h=B_ z6}z9=mWL%{!X9jFXl!g$yvi7xV%GeGpH+~pt@Hi1e>)DI)jXP)*Q%p zJgmdB@Ft%f`;JrziGKz*R*9c~b1*L#`PXnr{v>Y?&x;8Q85L{uHXd7QzFjin%GY?U zV*fOQLt=MZf&|5+9~`J}RD3PC`{UjB=M^-)mUJBKDB=E>?4a=?e5X=@>w~Tbe4b@; zY(P+&%g@OcKIt)oae$<>1fKyA6r9dDy5JnvG5h z9UG>(sW47Dt>n|7swj}lIBgS0H!I(dM-5Llan!$bDH3>CEM3U3pOx>(l@~pHKTl;ngM#SabOjzwPuCk=**SIx7I%GlG|Q#oIFt0WuZ%|| zlRmfVa6if^nEvSq^Q`C0IrVlGKVF^-WxUk;tEBy*;xdh&vI0IECL}VhJ)A7k!!(P5 zLFE3Ch9>o5VFm^U)e_f;l9a@fRIB8oR3OD*WMF8bYhb8rWEf&-YGrI;WniXlU}$Av l5G9_?hoT`jKP5A*5>tZ&Ooz7DRN^iu>HcpGM+Im7e%Vu=t--Pyg~VUCcrVQlxBsQhGy>xq+v`~J%I$TI9)K9RTJ5yOe8 zyat-m0+wq8pWEJXn<>T=u}*lm)~+w%MVgoIc&)zU_|R^}oyODOJr^!s6u+(cMy9C0 z!-J9t{j@5^LvON=#EOPqyz_d-yydLEf9J+9XEE%*rn<`N+4~pH3=9maC9V-ADXEDi zsaDBFAd11rz|ch3z);u7FvP&p%D~*p*h1UD(8|Ez_3xsMa2+5Gx%nxXX_W{K1|f!K cR>qcAhK3Lg_tdKo12r&sy85}Sb4q9e06Rw3?f?J) diff --git a/companion/src/themes/monowhite/48/clear.png b/companion/src/themes/monowhite/48/clear.png index 5ff3688e2a2b69c6270eef373a7cdb41d138d6cf..e09993be57dc6c92fca614b22f772b7ec08cf740 100644 GIT binary patch delta 710 zcmV;%0y+K71^Wh&kADJmNklG3>f&|VaN5B?;>t?L~ok0L~yG)y?@}d#xSUtUgUERQ<+uk z8w^3X;N8Of-sIkfGmcT1bY#!x9;YZzbdc!{v%!WCBJ)oqi^oK{F9R{=)f&QXdg@D2 zo`{G_2btb5hU&%fCX2^JL`1o-12K$h3vjjT^@sOVDicuYAY)Bn82tRz#{3?+a6}ap z$7KYxN_5Q}-G5rGhM??rUxbxI*!a|#M1?B*k4cFKA!_e}%MsdHQ>r-p)Dy*B*!a|V zqL5RvpOm_0;LuJFaOQG^R8^GrHhQA$#h9d`Kb@EPqCR>6;BcAa`ur`hwif0S@|l6mV%7UuUR)hjI^nP%&Kk=?c?n%s-_;!IQ*vTE)de9`1y zv=_&#qJOWM`+8qobT8WCh9$DKrie2y3kxb+aprc0_cs-x9>{p6RiZnW-ez~I`+l)* zrE$2;@$*f4vXmB<(WAW!BmI$YpIhwv^Lw$Bwk+a`c6vZyp8m+aG!Hh}_nf&Lq5HD1 ztdAZ51dQNOi(|;)LQs!51`HT5@UQV3jgB1%SOWpcsFPm;9}+P&Ix{#rFg7bNF*-0X sS{G{$laK-(ATd-iH99jmIxsdXFflqXFe^&avH$=807*qoM6N<$f-68>U;qFB delta 534 zcmV+x0_pwx2F(SKkADHiNklgTvnI*Y#5*na`v(ZKR67W`Wdo~i z8Kb~g$MQl6dk}z-;Y!KkhSj$F9iElwOH65eXaN=(B@2gZRvD$Bxc}f-7rhDK7OGB5 z$>K;U&KrkJ7=OMu0)#bcN*3Qramu8PUq=8~EODV+w--%!ClRg6-ATU%hHaasoIx#UT YFflqXFy1G7!vFvP07*qoM6N<$f^k*q>;M1& diff --git a/companion/src/themes/monowhite/48/compare.png b/companion/src/themes/monowhite/48/compare.png index 87e99c8c5cebdacb98b3828a2f9523d0c714c7e9..6f07fcc8af969501b246ddbd055d3fee5aab1771 100644 GIT binary patch delta 1300 zcmV+v1?&2c2(1f{kADQFNkl7 zA~vSR=DDALl>XJ?cop|nmtA&P6Y;3tHtq_dTu&nLh?zF_TWm|s3hDX~$N)|B)rmbt z<}+wtC1Bc=)Y0cyYS*HPldA;_y)G^0GM*{36^IwgBf#MpkXeghaWbp=OJNtRdB5%S zIrvms{N3AI&VSm9#jL<111p11Q-WZhJ-vwz0|joof(nGpeTin&;WQ4O`7;XDH};__ znGFB{_j?6Lr!B)oU#Xg5`n1OkBM7e20TDqT|WT8DwNfX>_b(uQqv4AH~bE+1NcD9)l&(@^b$5Q3h!m$%j9KdUV3t7En))`1A9%S z_J6mD{j7HYGz>}Em-I8!+l{O*INJY2QZueT^iGL1vS-hQumQkOyQ+;70@{q70Im2U z3a@zw5GV@@-vnUl$bIvt2r~Xy{r~_Jp_JM?068OPRe&(vE0BkffINE281aCW-h*F^ zhv{n2FyjI)(mDFA$D;tCQdG$J}8W`zF`LjD{z%MA$8zq{PZe8IGtyB%Zt|fydpH&3BmC`o^0AsiD zEzD~LuvA8_L=^&92KQS?30e;1pam@efF3kpVmSb<8^ACXlE^^{+&5asFaqF9SAVV| z0D;*;emB72Duf!R-ks_*D!Wv`Ks)Jy%as&x{)CG2FTEG33>DuxKDvN0UFT>SwHvzt z+`=g`1UIi7u@W(gP=)IVOb-e+us&Qq9m^h;41{3NT?UH*eSF0pgWSU>oqUYGLgf}E zoJ;|&WU>^F*YVeK0mJ4WzUN%;5IJVWqn0`Z0s=S)1gz+tJd6r>7DYb)hzVmN<;Pn2 z%kw*FZ;HZpe2j0f%he+H-_bvj#N%o5*qY#zp#vXJF*Q0fI65#kD=;xSFfdvdYYqSa z03~!qSaf7zbY(hiZ)9m^c>ppnF*GeOF)cDNR53L=GdMahHY+eOIxsLRO4G6c0000< KMNUMnLSTaUsV^*5Wj=br!nd(Ziw|GAG?V09H=<@v7xN`I>+^6YIMDKUQ5N5&#O zf~eo4L1}#(bVSWjqm<^IH5+2TPL~F3mhz&XD@zevFzBZc`@P<@!L+ru;W@um3b8xp-L7!N)mG7@K}Th5mU7pXM9`*J%kt4ZxWR5)S48xMlPeG}U}w=p z6|8!9aJppOoPP-(Uh@1q*b@i@iQrI>39qQIHOLxuA;ey5qjg9ccF}x6qFU?-tEe!* zj6;rw*xT&0)t}Z%8um`XTI3QnZqQ%RfJI}Wbu(iIANa+f`*dj1SdQ{Hnb@61DbuYU|sN^@Q|X;8w0KJ@Xjz2kB~ z_(ofdxc(gCuvaWd8umbxW92(}+Clp*NZKb^+^zf+J>$u|%Ugq+^Y(rf0QKt2aW4lj z0Z6Wwu^-xV~C|Fda8;r}XLpGEO)vQ{17lGOg3&fYauU`NWo$-RJ5f zXtu}RrGH-3W}EvR@kVHauPB1JzUApBE#OA|c2zG$9iGyP6Sip8<3}_b5UUoT)!j&Y z*LMP6`V@3&t`?wC3(_WJLGA^kNF|lO$X`hyFo$}5c7xB%Nrd&J@&Oqam;XO*uMPNB z%0@$assZ?4+r6$GKX}RKzOkt~DavV+{n}+6^M8c2J|jlJIaAdD)Y`5S=e;J4_lr4J zdPi&2sUGKx?ck^g;?}!8a?~Fdo%1zLMs-q%6}%^Rds|nLN5`E0G2oOsHOQJ5`Klcj z!5W=9BgXu$R^TT6Zk6(Vc_|t-6m<&+SrZyOYd~CseiP*Y#+Qn%lp6ilB(h3;i>S0r z(-=mySno*wlXRG3*FJ`n(!Wz4K?Tl*=CqSP1s@VHIXW;mIx{#cFflqXFzfqrv6FBG l9Uw4NF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLkV1l}kqEG+; diff --git a/companion/src/themes/monowhite/48/configure.png b/companion/src/themes/monowhite/48/configure.png index 6ace3af1910d2c3d73448083aa20ed7f1005ae2f..f4ba9449f9348bffb9fb0dd8f157e4eb43af0b41 100644 GIT binary patch delta 706 zcmV;z0zLhS1@H!tkADJbNklE81!o{Qg{X8i|=oMHFl-H_nz5T-(>h zY;IHApH6q@cXi(HobP$Q^Sti|@bK{P@ccV;8hb?8gd&LHMStjj97#f*lJsSch@T1$ zLCC#)K6UY6m-8d>f1TLchQr*7=ixFvS@qigjSxZznX<#krTj)=%jp+EH;EARz`gj6 zh9EUD8EVmkHXMnp6s@_}Yb0|&Ked`>r^5#Q7IcK=1xK+j6$=fcFE^O1?PldLu0RYL z2P8eFAu``@%zy5qn+rR}MuWaVtF#4b0KhSwHrI+e> z5*a*s6dlozn-kL^K!mfI#oI!@R=erfY7uqXs#*3L%!zuS$*Q-NgqsZ181C3YEC70K ziCM8@%bRz*1EB!`fG)B_cV=&M>50LvslZ*> zztm>EaB}0+w#ZeS0;)%ujjvdoIP>9P1D?ZElyHsd|rS7Yn2fGAa zLoW0^D|vNn+4d>o`b%E^TA5aV{p3@V`6@p}eymMbpY~(gBJJE4Q9%KBUj@e9K4rBm zBmA@1ZqLBNiS}Htm-jNy^9;(4eqz2XW0Ur#&A#8ebF^HTx$jI&Y7n@Xzf)YT6BZUcK3e|1?N6FxCR` zAJzlbzDZ2+Qv=nD85kH;OI#yLQW8s2t&)pUffR$0fuV`6fuXLEVTggHm4UgHv4ysQ yp_PHb>)%BiQ8eV{r(~v8A~YC;7@AobTUr?!LNwe{uRaXaz~JfX=d#Wzp$P!Ch~b9- diff --git a/companion/src/themes/monowhite/48/contributors.png b/companion/src/themes/monowhite/48/contributors.png index ab347bfb7464001aadd1c3836a462b77dba3220e..4c59eaeef625475e3dd128a9690ed73576fbec31 100644 GIT binary patch delta 1152 zcmV-`1b_SM2eJx~kADO!Nkl%a}AYyxvSHQD@N ziyDn#{&CU7EKBs)%w~+AQKNJE%fuPB1ryO^f0ivl8E!0e&<*3p0*2OGx~|^Xs1Tobx>Ap7Wgd<^pS2!~Y)4vVW`^J5dfE0~kRpZDs{_ zLWNm$!*eeN3cSR8RvO$846wub`~W_JL&TQhQ|_rPGg>kwx9f$ka2lcP-b}$ZHMA|< zCUJz?dR5J+NXVnPcxOn8Q{8z~jZU^893# z7i6f(&LAgWmfBSufFb@+!l!b2hIR%V#USJrB-X;B5e$O(RSv6H^6_`-eKfZ2bugX|0S{~6_{d+N(=^MycpMT(I^@~l9qs|tdIlK9pN_hcT z!Q02~8GNL4G$((<(u^R9Ac~B^F>mcQFXo((4=swHEPdkG{C-Vw@;%E^Gtkt+M*$mz>b00aPb zJJFREwwQ*%^2!_lfDq8+r41C=icgp?4G~Tb0CiE-LvI$OjFBBQs2<)D1prP_8I~PE z3wA+`6~LenuQJ!Qf9~%Yxv?-2FKA)cgPpvSq<#XcD5 zp8y8c+_!b+xv^BSBbFTASz(ZBHLbe82prI|GxHe39(j=uL5z7q7Rr(=Z^u28Dmrc7|uA#*&DAh&zws)I%=f zPJav-9;k&vdh-}K>qPVT6@ZMN(~C= zF-?*VPM_$l863HtO4t_G-+KR&$40?x&FsHA<0I%2p&|w=y$E@Db zQvcdxlvE`na_Z_E*ZFQyj~CbC@^mzR*G+hmDZ5_$RdyR6R;D zwEdN>7~s@}QpRT|a}QW`1KK_KqUlBDc;+%8H_l2k^#6l>&?9p!;D^=Ti#4oa)$lI` zYO~OE3_{bBeFGm7F*Q0fI65#kD=;xSFfdvdYYvmH105hSR53L=GdMahHY+eOIxsLR SO4G6c0000NklSVMP5yUGI^-RcEv`H5p zi;9p+#70<1NW{)YH$)=d(uf2R7E~&_kcb6>h{vX7>Y28orVXW~+G%Hg7QJTfWA4?P z5Sux7^WE?K=bU@Ld**+?8$kaSBmS{|)*x%}7ZCJh$0(v=^?&K9qDt7ffJzk6Xm#q2 zzItfjc8sEm*9@VbOO#mHshp+PU|Xps*G=6{vPrizM6jil9eprDxXLI-)LYlOL<|c_`!UC20?bF zat?%{6%$&`A<<&Z;T$(q;BOa$HE4cr*=J&Bz5VPl7IdUq@;#+1cw!O#4w?e8q_Hx zh)H)5cZ0DCX_O?XRHa&FV{=rYX)2K<Cnj zEsv?Cf-!$eQGfzA(c}<2%2wJfGcmSv%u(0EHi`(i8_eb`-*6(zYHnC&>WL7|Q2Cw9 z%yToC%zu4Lmp5N;73G%p9HEL>#@YcMG9{BiA-8cu2OE&-ybG~`4%hnIX^V7<3QX0)9amUK^xVWu(0g6f z3SH4^t<@cMd0t|wK{r~~v5mciso)IFu4~=O1%K92$PV6F<{O#wTQ`vUJ{YGZ8fS9u zP?M^)PhroyMD4283C&Q*G~1)c>apK}{V3*~OK9zgbDm=V+m@5`4NHE=;bH71GcxYH@e-3K=wO1Ymhb2FJ~39P@8)|SpWb4C3HntbYx+4 zWnwyGa%Ew3WdJfTF*GeOF)cDNR4_R@FgH3gI4dwQIxsNn`*N`W001R)MObuXVRU6W zZEs|0W_bWIFflYOFflDMFjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjf*O;Gw diff --git a/companion/src/themes/monowhite/48/copy.png b/companion/src/themes/monowhite/48/copy.png index dd08c322b83970d9ce236197943e60e29bdbdd36..f2f6d533bddee051b11aadb4e899ff8c0704ec52 100644 GIT binary patch delta 619 zcmV-x0+jvd1fd3ykADIhNkl;YwKX3Oy5zFE#~L58Ia|H!p~01!~T%I);$2m`}1 z+`b^ng0D{s@1Tmza)8jRV*52 zhA*Iq528k73x6P#G|Q2*rh51Tiu8Pd1b)eTTt0mX5>TqqjGhe4RJMSD@!bTwcW>@6 zFtCc9Qd7xch{80FG7A_OF8#=sy?^>F!*2n_tA;k=4AJN&Qj|;?7#Q|3F#P!Mesd>- zsWGeAK2t5$JMS5`P|boX7Z?N>7#J9sgcL*>7#J8>#ee1r+ND#`0&N3y5g}Fv9#j!Z zMQ3ekm*_hVN|ZX6sy<2&F|Nb@)twP3_s&_GiQW;y(4 zcx^yiA5Z}hpOYP^XF=m^hS^Z#L@vBGU|AIS002BH^Lg%P%;&F&3ZL{fraA z+ih>pKkqEJF+=#phR}cN(;I{ih#UXiTe9?L8WRHpgKCLuL`h0wNvc(HQ7Vv%W-u}^ zG|@FM)HN~;F|f2UFt;+c&^9o%GB9}kyJ#bdj@|DD?>wwhI{JO Rhk+UxJYD@<);T3K0RYVF(<}f0 diff --git a/companion/src/themes/monowhite/48/currentmodel.png b/companion/src/themes/monowhite/48/currentmodel.png index 9c5e3a5eedfb0a42149411b41a1877a727466b64..7002db95158bc14b91887238cceb72c8985e17d9 100644 GIT binary patch delta 801 zcmV++1K#}n1=a_UkADKsNklUfT;@;LsT|C5~FK1idZ!~Or0~Bn2rA(rfC@W=bJ`~XhXr+8rGFY%x$xmlLG%G-W)1`ZK+GJ<1m_7<0yFAy(PepD%qS9sCHjx40*4{YRGd78_2Y`(zXWu`xd8XDf z_e?#uvE8UZyjc4sDaoB<7Uz#(_Ris>7IGKr@XVJHY@O=G#8AM_k0)7~S|}s22LKtm z9en`{n3veGB~*IoU6jme(lY}_xSA1EM-DiU=fH-*p^Iv64>XYhq|A|~pf8U;Z8yO| zzjY%Dz<(=bS*ugBIMVm&AV?Db|VrIgaypZzKC(2VWS;{y58Y@Pi@J(N;f+lhwo0lfUF;~S;!Kj!whXDD9j zb_#Pd)AGbd7bu;yGoOX7IDZ{Vv(agnL*GWOAYRKWB8Q2)UE1k#P>=cp_J#|nw_k2( zBfTgM@PTBIf^($jdO%s?B`w7V$bagxq^vgFQ^FllK{@4A z2$K>9kkp7W%4kH%cmUlRRze94t2-V*UW1aPLFMBCjHynNRHv~JS-3u}Y_V@!w7TZG z?_ffy$~dJ7*R<+BNb0s44J+>-n*B7a+0lZ&+5o?l(6mlf`BMjGLpocvqNL~AcDsXf zyroPS+h(4AlYf@q=-9X>e8uP{!FpH6U*wKK{_BCT{VD-@r<6FW3M#_(74IhBuf; z7gH43-%!ClbHh@ATU%hHaasoIx#UTFflqX UFy1G7!vFvP07*qoM6N<$g6`xSQvd(} diff --git a/companion/src/themes/monowhite/48/cut.png b/companion/src/themes/monowhite/48/cut.png index b81fb0d9dc4a108b19afa54ef8927ee5b850b5b8..34462d12d547391999e3665e572ea8a96a76e397 100644 GIT binary patch delta 1561 zcmV+!2Il#&36%|ykADS@NklIS;Z*%55-*@Kx=l|yizTvAxDA+H`V-Y$&D1R9jQL}%*0wZX;^2`eM zH+qDR6C0=%zy7tnd+yNtXHACM7`c z0%a8}TCVIbld?8`Bu31^IXsREZ9@#=}2&U9(?3^@XXKJ-z`kWKlg7itc$@U4B z&vdIXtQN~AX zCI{T)2EZ)#Y*mA&GO}jg!X6(BDfVREBCCf~)xe&`tf|NYKor;R81y6yrt~T%M`R&o za?-0jvqR(<EQJmMmSCPP{fmhj<*F!ig0C(bD3YMsiUg zxM~`u#fbh=c>q{7yFxrK-Z1yfuE474i?UE50e?%7gcxwl#<+$+25}9{MsSEh5|$tV zDu0Ln_^qwPcJ2phv_wu$$9rcZl|Mc6ljHjLA(3947C!Z@>w9_*t<3JAAEnlB@ON=3K33OR!jZx7|P@ zwqVinlET1SE+XhunVww2rBeOo^fQAex% zANfBWtwcn&e#3nt$Kd8lrUaXij2y1?cO8*n(bOQ@zd>!gfvC5G;W5V@31#yObmSV{ z3ATZRN+y%ZOsKRCjP3$*73kRfu?yoI_I7Uvk-iDn{TmPw(ZYIUiDIiGt1Nw^a(^3c zBM%ZtkhkIXsHLSZvI?t3?5u_LL`32{;kd~iP@rG*_{z){?w zm#GIh!!kP{cSmGQ`Zg{!a%4EW?SDljYCWsZ(8^@$W=8npl9cNg;)PpYn zYp^f7mYif?$}>lh3_y*%q>73^h5?#!Y|RVLb?y~wtv?|&mJnv z0{?zeqc1*s;B`E^hMueSSm&3$POTq$?#+JmAo?OwF#%FTFKc;o&**)}YAmjcs$etx z+=>7|%4S4W6xX@0j!turmJhw`E6ec!?o=!`FxZ0Tr+3ZPl>6 zQ~&?~C3HntbYx+4WjbSWWnpw>05UK!G%YYOEiy4wF*Q0fI65#kD=;xSFfdvdYYqSa z03~!qSaf7zbY(hiZ)9m^c>ppnF*GeOF)cDNR53L=GdMahHY+eOIubB2D@xO{00000 LNkvXXu0mjf{J`Hx delta 1021 zcmV(;*cb?IeP@n2iun2nMon z;UGw=f}jxUM$&B5!9{gZL@HTT2uM^IToe=+3TYu?MF&9&qqr07AX0Sd*b&Oab|ws+ z&eLBPeSLlR{h67B3Z;17>Ye+Y@4N5bbI-YN1$ws@dB^(Wji|R1fuyE2 zvJ8ocMl`LY&yV-nkHt*}(Gs6QZep?D>-W!erJ_pfq7qA*e?k|PR#YoH*#k*RE2DVF z^l@dB4qLe}o6-SAJED*3fTlu6eQUXszpcWdj#mE=6(?q=chnD0P;=l#wzZ|-M$y67 zNVFFa=lRF(uz#r~{U+|X(C7V#prFk>bOp_k45d#p=R!VYb7ulwO!C?ZYjS~DAbpGr zG#%V)Ch6)-K=g6lHM2TL0#Qe(yHMBZ3qpl``~YQFaD_?FSHzffJmCUsxrW;wx#l>)BV+6uYnLt{Qh(exXmWN593*G>?~@8=X?=)x z({K?r$kIJ^u4~;V(W&J zVAjZzMRIIG#JOrL&Q;=wE#z1gm@fig#(GPsT} zff^Ix0y*FTahIo;b6ECCC^1fyDC3muQ($q9UKe@|4}ke_0f2*^T^ZwrUQ$((lvmdAWtEpCRaI&e9U$<5=e=L6B)!tKD*+cZtyhv(slQFM zXMc$v1M^1j>gF^JY8>}TC_HGh3+xMKUB2!<^+MkT=_pH)xc5MtQb)!miL# zwu>ho^gTw~Rnru+6zuy>kxPt)+=~8M^Expu*;mIV1!n!tGpL%bR#FK?B>kqM7S!4j z8q^v|Z?&MG?38XSBFgH3gI4dwQIxsNn r`*N|9SOy&+FjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjfkhS0j diff --git a/companion/src/themes/monowhite/48/duplicate.png b/companion/src/themes/monowhite/48/duplicate.png index a5f716f82d26abc7264d353d80f3177f1192bde2..44c8fe5cdc16fd0dfe3d527aa2e43f8b08f864dd 100644 GIT binary patch delta 859 zcmV-h1ElY58#Z>+Zs=(I0WS$n-c&;d;l<8%ACx&2vz`C^RMR!w3R*n z3%d1Id`qGSqJL><0BAxzFivBb@l@FVb?(yZpo^wy&&zj2Z)~B`>Vezam3#a>1nRI)SY~fAG;^WWzg}U)SwzLM?(3VGTNB=dtdA zzpZhm_O16PI7d}>8UHp>hg>#!?3-+(Z|a{_O?iF*c`~!CC8da zoARo9;&kE#obX@-1b9S4`73jQs08r-Y8Y?&NPnNhOycE}*(!v@t(yG;M1_0HAcA(E>hjB*ZL;sUR;Y0*PD_x-kF%xkI63E9FM~_X8)bpWkRuCP#ay z>KJ$g$^E`Z!^vDegA6hNfWJa+Faj!VDMpi@0v{4FH99jmIxsdXFflqXFj^OD4wKLV l9Uw7OF*Q0fI65#kD=;xSFfc1h)3N{n002ovPDHLkV1jg8joknM delta 623 zcmV-#0+9WW2#p4ikADINNklF|9LGPiyXf4U5IQLe3SB4g?(D5d0}lg1 zK^M(iP-5Xti6{aS>ZIaDMDJmTF0Gd!@Ze%3M0p9JK!aWXph@}buv4sWW@p|wyGStK zcNpHE-+X4i^WN{hF@(k{)8PB3fE4gQ0CK(-8>^~T#14u6#eXK>316$CmV#8vkuV*~ zytE5pB}WpOxR~7HIF3bsttnO2N)(lT%d^hJ1xDDaX;cl19IsZfsNfq_X+MzdD5H|i zq79}fW8yMNQ}B>vfPJ1a>LC_r$EY^|PMG5vJ3v2=Y4Z!Uc*Pfr`rlxO5$>`@GuL@T57~MH;D|Zy@fGM|mMgWAgQAFJXNe<@*#CMn(k~xH z? zj}HKpndU0%QGlp*P{}qc-m+@q8qetjzVU*Yu)SCpP%V?&jL`v<8RjhqIzjq?R>m2k znPcAZkX7BVIDl=Q0Qb%7 zC3HntbYx+4WjbwdWNBu305UK!G%YYOEiy1vF*Z6gIXW>hD=;xSFfiUHd&2+#002ov JPDHLkV1oVA8YBP! diff --git a/companion/src/themes/monowhite/48/edit.png b/companion/src/themes/monowhite/48/edit.png index c318f72b636e4a9f72eb3fb2a4df61c9cd040295..4fa0accd54beda23fb4acca76e468226f4618fc8 100644 GIT binary patch delta 985 zcmV;~119{)28;=ikADM&NklIqSt{T5%%Zr((M`> zJ&txzuDGlH+Dti=wvYP;akg)iaD_}4cd=}K&`HGFLXcK1Uhu~#MrKT>zH8uH7ZzyK z6DIzNBI+Q{8_8e}$`T-8ZTFIxep2_S-l?Vr{@`h=x}Ls@NJq2h1go?Ok^_ zh7fGhi#eOGIsC_W|_>cI)I6%>7uvyQI2pGXJ*us2C^f-$5Ta|ZJH(el>8A0S0h z1IxH2mdi~C?70>;?a0_O?(_ZdFP+i}LYbma+@(`8?|&#dz%*^nm{(ukcX`c5-vpUX z>8-Lm{RNotT9Le}Pp1S#5p^qkvmj(1x*@c(zn#*LYYx`mOL(1%+Mo}F3?PcSMhN{K_VbW><$csr~_e5dXnYCaReHWRiH$&>QBR=Yz z@dsij`G35N5}i-M9Nd7~tnT46?F)hBWM4SJB6|S91erb;IRWI1GlG{d1&T9_C1!|T z&2z{sWBY|*r(7-NmOgt=Pj!4a`z3iE^BmMo9**W~U<2V@*815Tky(o?4iJn0=F_y> za6;T&_5srm8o|q#W=hBmhc2vS>$p}L&hBe2Gk;6@dd%51t|06LHRmZ~P+a#TnoxEV zYlpntBB%@rk!ch07ZCx#vhbja=sO+dW~TK1QywjR z5`Rzl?GLz};86fDQn)?Kn~YufDuVC>#6pCEgwgGYXzJEq9xL~gSId8P8dL-~s27PI zbpSwV)Kqy@EnpK%d!^oil`4&A0a5^f7LWDl;CHS>3wVx?G$#R);f5ls#;r^v{W&fH zDw3RZ$tbtqO&!UegBE3=D^r@F;p=%Ix{#rFg7bNF*-0XD@xO{00000NkvXX Hu0mjfE)LLj delta 658 zcmV;D0&V?_3CISJkADI|Nkl%7OxG~tlgrq1zla4y6 z6GRgSqnl9^)CyGr2WyyM>Iwscg2A{*P&X5YMx${srZS)=DrGV9Cw?8SslE2@dRLCP z-1nAy?|$!n^83Db?{{a2?bVKLo<9VHfB+P6eL7B}&iHTK;eWkrgxs!0)z?RL$#9-y z>lSq~$zhDfEHZVOyiM;}&Xw+xWVysUuNF0FucD=-O^f<$lOL8Oz0@0bqpB@x=R6Z+ zhkt-~@8fD={mDW#5YnoA$rwoQ==(Ijd+RzJi)y7$yx3y8;9a%**>j8iarJRkj zS~O5z^i96AhkqPP9&8fNoQ<*q{*bI)epeEqIHtyF%PTyb~@LuTGgv) zNnnV5951zBF~m{c^1&;hUQLeBi@^ZXtg+54{hT1jso*j&wahJ`g$zApXyZuG0Qkf; zTIgYfHcz0N2%EuJRGGyxKX^)>uSDq$Is<@T%rj4%LnLgEwJifo6)5neT>An6Bs|00 z8v~5{&ay)P`SU&B(457}h7tZJhky{kU%I~ZN{SlVj*}h)9}+M*IxsgnGdL?SF*-0X s>-%!ClTQR4ATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f^K>=8vpTTC2P7{~u}V~1sz!Y-EuO2r~umbTI~N2FGrKd(lQI0CzH`oZzTY?hvwL!Y6|Lw$FMlGT?7OiY1^}HH*1CmG zq0i>oZ7ONCyHQB2MpizK&;&=Kb8G^tu zG{UOpL3{vB)UxmG*fpDSpc1bvSvx+VtE<*G5xe3e$hd2JHoVYxPe)a9?u6VTvwQU? z4-8s2@558^s(-|$>rr2|{tmA0!-0Hhh;0%mxm8Am)IBR$rtz5bXCMIzaS>F zyW+Wr$a?4#1K3MzKHWs7N~7Q;hnbj88k5{#AB#Z9XFp>8$j#zSYA3UN14**DhT2I?xlKCy$l#!HM zX_ovS_kX6LC%Q5b9_peDH-W$qMy0tPuYT5}{yi1; zU|Jn886NHQK>z?y4Y#mA&XrE1u3-$~AqZ#uVJFGNZ^hb-;J1Z00(5 z6CMERq{UFQTi0B`WJ&qKHyo4QIIC1D)_>b3PuF;2y}cYs(wLuhw%#}$9OVEDRn9z< zYq~4iT&Sb>@!{ZG(fdi02%=E`#rYm#vBI36^9$j{lb3o8hY4$fuUr5G3W?Tt&jnmj zpXK61?$3TDzQ;1ki%KC6ZaDR`LkKFCkM#9c{78O`)a4bI5O{+5eB-%x2j^K-d`E7u z|NgT{-w@BLl~?~X64`hVyRnV+u9++d0d8u<=v^cHh8A>SY~f|Ge86px4K`Q+%wPn4 z3pehHR`fs6zYZ42p{k(4Ig?!j9}+P&Ix{#rFg7bNF*-0XS{G{$la2!&ATd-iH99jm cIxsdXFflqXFe^&avH$=807*qoM6N<$f^KUhod5s; delta 790 zcmV+x1L^#{3d;wOkADKhNkllmrnJ(k3fG zT(k&@s20(p2e`_G3nM6c5H5RdS`-C=MMSiTsH{~%VvERkq(h~Un&W&eI$dV;+{c81 z3;(m2@1FnveBYe;-}BvbLt=I#Jj?v^0`meh5YddPOQ|Lgcz?>rz;l$zXODU%Nr!^Z znIk>OW|3tyG!p_*N;pm@CoQ>qG*RZ)ML&UBZgPp$)?ADxZcy*{3%$e}XraiXVgcJ( zN0d7xGhaatXSm`?|2LM?N+UU$3+&~T)7o){JtPV^!G71Q%l(_L4*iRynpI@k2Zxn# zYC4o>XR^~r)qmn=Sro`aa z+-B5OV3b?DG`NJ_Ha43;j4BqI1~u~yuZYuPZqbEoVd?Y&+df!Exj_T8r)36tP7LTx z8EdDDQUJ<`F%(1~pJIdFl1R&ZppgjhJ!LGxTO+WX+<#yz$Y!xY9aA!6e6`f~neRnp zPfyx<5MhBqt_EP`h}itqCXisvpu#``h0Z+753&jTq{pDD0MCms8x88U8H$bI2VV@T zbnYkjSWl%v-Oi@-5g4L_zh~kIM}3}KA&wCNKy(tfR9L;JMt#O%dQ@xo7~@&{)NLyJ zwJ*5Y<$vq0EZHfgKK-)EGCQj`H97cclk99Y5{cBGsqe)EviY5wHfWQ0Om zt2U*_ghn)?i7BIxRi=;|kN3eZOV`xz{Lj-PsZ&8+SFRU_-`O%(b$Xz2D}6#wbWjD} z41NMAtd%;T`--QL|I#xZ(JDp!=7$2m#)jFz237#WeCC~Fh&~Zq;6G!I9N*^!<^{as z50C)%*@hDO)sxNy9}+M*IxsgnGdL?SF*-0X>-%!Clm7%AATU%hHaasoIx#UTFflqX UFy1G7!vFvP07*qoM6N<$f=C;6=Kufz diff --git a/companion/src/themes/monowhite/48/fuses.png b/companion/src/themes/monowhite/48/fuses.png index 37ad3a4340fdd5def6898ec4ca36122a913266a0..c246f6c02a0f75e8950660ad962308d826220cf1 100644 GIT binary patch delta 1329 zcmV-11H(kf3L&h$Q zNE}l$*_LR?X8d8yFu`QTF{j&1G#Y;_CSD>s7Tv|UxB+ECbsg(kKm>Ji5i^!Txk?q* zK`NBekK>Q8(3ZCF5&vky^RI7DpXWW#IX&kEma&ZgJVbuZwtry{5@3Q;!0)4xi|vTR zIBY@%wnd%FOJW}zEdhgWOe{bik5lY>O7;2&WND%y+uwmCyzyvQI}s6)t*_wwppOt2 zFfv6_cG^fbBI2y3)CxQ<%(Ca!)sqXH?VMr78L0fzhkR1q$j4bt=~tLt5DODXThT*q zICV|I70B|5l7F#p9n;Yy5fL}0FuLf)$VJTJ5>@&iJtU~Ref1?DiOjH@_F>)}g%P0U8~YZ{0nBKu(-dlJDsefkxvDdRGBd(*K#0u2K{ zyx9r6`ye6xnj)kW_j|-BlAK@xh+j{R-GM9wBWLxI#(#&xlft8fm?URE{M?@v zNY7ylqFfRCGwR9dYK1X{kv*v}a$`h9%4QS@DRsQKs;kvgfE>lwV{2Eu;gV3xZ@6u= znhxu%CL$u56qy%jY%gq#zR=a?sleT}^}b&rI*u^N@XC{V&gTA#?8FffU8=`fFv0|Y zjUkuon}5Bs;Qsi1r3Md*4(02;4J0C>sk$a@%jOnx%re;elCCm&qC@+? zb&R^LBPS8fI7Z&7lYNFXUy_9rQb~_LulV3$aU=jtS=6^Whx3y)Yx&Q>jP>BHCTW7R zUp&H%H*n?XTFU)-Y>uiK?;+0CJ26P)u$(oz&41zUZukzR*n^kw3?6}e>Er+q9`x$b zZw5OPtCMTI|9%e3z8aJWFX;jjqSs_q%ubY*89aMxUyZ03q5qy90A$FR*E!Sc4JZ*t z&k6|=Z7+O6v)027=NQA7JjY331oAKxX-Gy4EEqs`{!{MG!89BQz1Op;>&|(c$IM~^ zL4STvQ`rNu>{v;hvtK+qokLYQvlp4MZfLgzwM9p%ehb~&t_`*$!Z^x>zQnS67!D+Eu;6$S*^qG!T>vdv1(8BVG6*^uoxrrVhJ60#(&I% z03cDcMcr4-WG$XWOvLV_O7}ZQVH`CPM`RxkyNOKS>oID%-af=vspIG1i%41Aq!{d+ zedo-sav)KRW}Bo4oL5kkbi!~1fUNz>>^~F;$MteH6ZDao^HVrm>0Ybi$n}y zdMN@x1hNo^KhcWb#b@R+mhr#FKa&v}PubG$c>n+aC3HntbYx+4WjbSWWnpw>05UK! zG%YYOEiy4wF*Q0fI65#kD=;xSFfdvdYYqSa03~!qSaf7zbY(hiZ)9m^c`5)hFflYO nFflDMF;p=%Ix{#rFg7bNF*-0XD@xO{00000NkvXXu0mjf1E_F7 delta 900 zcmV-~1AF|h3!n&)kADLhNkl7NO6vzM5YJBv?M^K42@!f=A@j}8&C6cFD zw21|gAex4a#FJWx1Q8Nn35}%%!lDb^_zJNQ8$=>R5HY@`+Il=R4NdyWoBk|Jr*GcO z)FtfRxvM$%-1DFNpZ`7Qj)nfOmHg-YMSvo}Kd@mTzNLz*Lw}c*HCR7Ui!@nj-BUUu zg2J(gU-pKrOh7}7Do)b_IM}R+iVC{cGhp91OJ!vG>9o3WHg%Ml15`6;IW90ObYYAm z^a9XLGCF-2fVf1y-60VYvw%*QoTTR~BT0n`KrQcl5cilJh*^yTWI4!4FMS<0^(FwL zIN)x7z^*d0Ab%zW1v^M$h{ivpI+jKyOfW(JEiaZ6CxJUUP^s?(BBHc{2`K8~|Fd%mKtKuJ|Av9xxXX zBUL~kKpz*GVkXmkh--ZJQoLa~rNn6BQyz6Wpq~uKseca3F>J_6^HN*Xpp?c-l7_2X zs8PE$!JY5YF+JBLWz->CU(IS!;aJQI9A41|q&b^M&KK4NIsY??gc!>n?o-RkJlz1K zY5IM7695ro4y9O}^l7Sza)Y%-017DQ2OCV@9%0zgV%n^|vb^V_%REzrmZU-|s%v*AR!+UxPlw(or zingB8zxl{joFhxn29;y6hBh;zf-Z|QZsqB9OIX;kvZ&=TkY?l15J6X^+iYz1@i4DD z?h460W?V^V3G%(!spbd~?;{biM z7Aag=!XTzaT_3H;-`H_Vs8Sg{Qky}=i8QPDpIihe0_Z0@R8f4gxCdC1K?NUAFgZFf zH###oD=;xSFfi-;appnF*GeOF)cDMR53O>GdVgj aF)J`JIxsNaCws#H0000VymSeg)n;{@3rROJ7sq*Z5GO^iSl(J%8V~|BwH_n6d4D%T}TAS(}Ut z4L(kOzRfY{p-#--)V&O1ADs?GNp_ZWFkM@AiZSYUy+}{fLq>*#yR|M{*~!uj3=FCz zt`Q|Ei6yC4$wjF^iowXh&_vh3P}j&X#L(2r*uu)dOxwWF%D^B>Je!Zf23bdLeoAIq XC2k$sUY9oktzhtU^>bP0l+XkK5bn78 delta 297 zcmV+^0oMM=1mXjbkADE$Nkl|Nr^_S^rsx)kTU0qW@R^hXFfUSm5v<0rnHCirUx9c%j3cH#s7Lep{vqcBnr2&Ykzpaj9&8w~w?Flxc51(X8-OG}FdNYv)QliC3v5->SBFgH3gI4dwQ vIxsNn`*N|93j!S=FjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjf_nLyS diff --git a/companion/src/themes/monowhite/48/library.png b/companion/src/themes/monowhite/48/library.png index 5d363913a7a90a70d36747bd6da90652fb3e30ed..35b42d9374f8949ec1e23fcc7df8b4bf32bbccb6 100644 GIT binary patch delta 450 zcmZo;dB!rKzn(GP)5S3);&5_;1nc4i5raolCZ-3d9Gt_>!|$=#Vcz0S_x_5{`(u6w z_MYa-X_#AhcVX~^|Bv40HsNduJa#uIpP<;l!~0N=)4~3AVyRTJ>vL{Qv!RTJ>9To`B8K zgw{M6?l#u@68ZPj{~h#M#V;XoiTF z%4fG@Yp*xwv8D-d8f0cmPe^AJW^QH>GrYwl_GoICQsqC>i*+(Sb_(~dmV7<9f;EMa zz3qRB6T8o0gW!ox4fTaD7(c~qyY=HR^C8jY%_k~1alHn*yL-;@FNYIOWn_9VnxAfr zh*gO&kUn`Ka?6K<^^c}1H7=Zgv27pgjH&w==Ih;7`NZ>k>i3sMhuNLP3=B97BqqGP z!~Nn|e^a0V7s#;;ewHDr=Qs|{Wnf@XEpd$~Nl7e8wMs5Z1yT%?*D!Jm8Jb!dTUZ&G nX&V??85l%~XY)-y$tbH}7=kLH?R9w*&zX!GmVp@5+E$GAnM5H|dkvUXjsW3Gw^$*;i8WjP1)qjm306wag zQZc5~(`{{eI4$K`dlhQ{(573XF51%3e=ornmA_$ckt71IglqprYd^qNDk6$K-A;7n z0Dh|WpFscwzzg?!0e!d^l#67#B9r(59}+M*IxsgnGdL?SF*-0X>-%!ClPLlnATU%h gHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f-swhng9R* diff --git a/companion/src/themes/monowhite/48/list.png b/companion/src/themes/monowhite/48/list.png index 1f516f5fde2ef3c8d54c6eb467bd7c8b7ded00fd..e603c79da8d9960370cfaec8793a37bbfca0cdb5 100644 GIT binary patch delta 1003 zcmVNlX)A7>3`O>4Mf4!2%-I2B?WxB*w%gN(9BY zL=Yu$!C;IbB8f42AbL{qpxz7zPX>&TU_vx1Mq_bd3r?U)aVcW3RH6n7T9HDTQra00 zEG@R9Ga$FV$C>%xf4=AY=luo*WQJ`bWlRhE2(SKk z1!@#1P9D+S)t-y?syfnLI#}SC1-WThmZO+_pH*+Sa3dVYah%KXxv)-RMhWzoH(Pr> zacHac?oN0Zmz}|g(3ghmv)Xvc1zLo2m^|-boN;IG$UL}@_2A8 ze44;jghhhvC4c!xEBLYS<2qXC!w+stQgZqwJw zDzP7lkn-8^Ws#cLFHMVFHqhg4%zyscn#WohqEfmgGX7WJXcJe3 zZ$jUFJ`Pd$cGZ|#Ip>ErIW=+vj``!7!jdC>lwqKaoYV5|@Kb3u3ZW8G!F+1>j&0Xg zFHa(s0Khu?zh-}brQ*sZt2Ej&MYR0jz^7h!9Z{h3)F`zYQUwCQ$mh;0ZMR-}?)({n zB>o{%v440)OX^_wo@`3hUA@(o{OiMQAT`ex-nl+LnG6>d_yLIgV}c#WHGyT!KQ6=} z@@sNZOsys|(RYz`_J3tOQ&<21Oi$)V+99sVT{z8Tw5#J($A8Hm*87AsYRzaWH;RwJZGs_^V_Rl%)qZd70g@VfLTpOe zcYl6C&Pp=Ew=7nKfmI_R*q$m!7Aje zhZIssKK%xOOE9xNNM2$9001R)MObuXVPte=I%9HWVRU5xGB7bTEif@HGBH#!H99jm zIxsdXFflqXFj^OD4gdfEC3HntbYx+4WjbwdWNBu305UK!G%YYOEiy4wF*Q0fI65#k ZD=;xSFfc1h)3N{n002ovPDHLkV1kdF&cpx! delta 602 zcmV-g0;T=z2#^MlkADIQNkl>WB z%)IaH=goU>#)qh_HPqODU7#-T9t8YKvjd_}G>da_UmJn27=ITNqFp3KQvCM33U4FC z5^3@PJa9^!UT-U_PYEzYoJ&gW9~*>eeXBs2HGbh{Y1a9qFJQ;wW>s;iVR5qxxMc2w zEL6baj%$^Ua&NLkdlV<)uX09Ri(`>jIi|xT_~U8s*QA)x338Az65LdDo*_j{hQ{kL z?PQFktNR^d^nd6c(?&iLr60c(R}o7iJwzF#NmU@kBAevcWr=|jTo#sY=17rapB1-U zkbP`piY@NUy=FONhTto%B9;~=`N@9@0OZ(Xfe$(Y00mB2HgOqPW;x>7HbY6kLX>xi z7`O~9PmXe-h{y`^G-*d@vmDy676B%NMVjfQG&Q2S{C@F7S4H0Zda#$*zWS8k7D59}+M*IxsgnGdL?SF*-0X>-%!C olP?4vATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$f+52N{{R30 diff --git a/companion/src/themes/monowhite/48/logs.png b/companion/src/themes/monowhite/48/logs.png index 12e4dad6505f00dc1984a07e28481bbc8edbc4b9..300d7c774577523ddd8ce3070114b35bfb303a38 100644 GIT binary patch delta 784 zcmV+r1MmFW1;q!DkADKbNklUr3Wt7{;G(-*oD{kZr6`W@$*46idpKLX9$L zAkj@^Ss>v}5R_U-6ox^Fn3@*m5X9)hKXsL|{*1PzmSk$0TC5deiAtdh=UV&sc9BJ! zTYk=O7r~x$^_}OO=XZGFyypW#3MnLZ$&3=o0L;MxC?zH0B>$83%K{5qtqM6O`vRff_EslF< zYX45H_`yFQUw@UHmjPS4!&!l;r8YN!9OrSsr;`|dq;(_M`a$ym`g|?m0+0)<53AzJ z(Fql#9*&49uCYhPP8%+|*=`T8QZ0{alT=m?o(*@=ZIj@d&W zzja_FFhH!R=z4rs8UXCtVcgcfSy9Z?Vk-b3Nu1lP2!E5@f7?HaPPjQ0+v`1$uuWI> zwBWMT8t(Lvi-^cN+1wp9js~Qos!T@?vPF$90#^)>u}$}SiO5!MzkRz zAOKre{C~tXPmb27q8o@?bfb{Nsufzzb0Q)l``0uLbJWL=0|$WmmVsR4QX7N~f8u{h ziv74N8|r#yo37U|)hq30zX48ilKW-9unlW`uFDqO-ta(t1@X%T`s1^}o8cUzvl25t zeZ70&eI{OecYp4H$3xQHCTk^z{qCGc7nhRw15NbqO|)L~cRN=ie}Kz#z=;6z^w{G$ z;j>k!vk8HX(HQ7B0QeN+^{teY2vP!%bC1nd;nlwYfD$pQII!6>KBSOB0)U^>`8ZtV zh&*7EYyuw=F*Q0fI65#kD=;xSFfdvdYYvm00v#YRR53L=GdMahHY+eOIxsLRO4G6c O0000U8L<&aIh+f_-7~$g==H{b%}yWzFd0V z34uKCbocPRKaThA`M&cZZ&l@S{|cZ2C!X%(jewJGc?v3`PJP!){q^Pv?&^tBifbd^as$w) zA>Guv7WBs(z@P?X>4o+RnHLA#)`7-alj%*b=Iq;hXwY56MnD>eCC!@ zKs{spBF!7Z=llkGd7quh0gv!I1hD=;xSFfiUHd&2+#002ovPDHLkV1jd__Spac diff --git a/companion/src/themes/monowhite/48/movedown.png b/companion/src/themes/monowhite/48/movedown.png index fcf443163016efa548b81e271a8a0b5048189c32..0b7a36667c9436d8172e4fdb4c8a3dfac10e764e 100644 GIT binary patch delta 655 zcmV;A0&xA71;qxCkADI_NklF|9LK-!&Fmj#cT3S_3M3cS0?Ui6W$T}U zE)nV>B7@STgCG4XQoR)3Mx(hDy8iD)gGK~hi8 zU)^d8|6*StuO*-~erCbBZmknY zNJJ$t5CE`jnzkNb6NKG_1i((uUaT8vO!rDZWyHYr!<1O)k^0Bc&n%4;u9+Z*z`@S> zj!&^frt;~nFbZ#Kl(k@`$2>un%!nc%s{H7rg9oRiaDQes{z7USO( zvW2E6zDX9#9P9ggr-X)DZs zqXz&7F8KmdWR-os`XvtQ>p9(k80Ka-^Jox=LY7!;c{BTvJyQLJ-?mU=gOQ}z%RYY%L^#D*|y*?IX%hHdN&-ejsD6}3R#8q@R6gubUFJNQg z^#DNNB4Zd@FMSH@dddw93=IBRegiF*E>E1*2T_wK0v{4FH99jmIxsdXFflqXFj^OD p4wG2|9Uw7OF*Q0fI65#kD=;xSFfc1h)3N{n002ovPDHLkV1fo-GVlNZ delta 479 zcmV<50U-Xx29^bokADG=Nkl4gNGd|9Q@y&vT|6m~tzre=|H7ORd zK#>#%CHdHptXauV@GtxT#ZGEONET)qX`^FWr8Nzz8rXN>pBX1=mNXTJ zFb6yWaLcrD%7;L-a!86hmWdTdV9~}A8&vzq$nyCEQXH<7zkpwX@A}WzmOu~)0zn|i z)eF9nm073kd-apo0v{4EIXW;mIx{#cFflqXFzfqrv6Bb`9Uw4NF*Z6gIXW>hD=;xS VFfiUHd&2+#002ovPDHLkV1kjE*-rof diff --git a/companion/src/themes/monowhite/48/moveup.png b/companion/src/themes/monowhite/48/moveup.png index 937bb7d5edd393fbf8724c04f703a816657edd8f..f219acca80a3d9e6f6ffa42fe710d08346bff1e4 100644 GIT binary patch delta 629 zcmV-*0*d{G1*-;-kADIrNklDRu*tEWIOnM za{2z2;Q_-x>id<8DKBFC-}m1ht88KNWMHMf1?iq!e!Teq|Np<2H)J+2I8fJcHij^{ zJ-=T6hk$=?@38G>FlJz)n(<5_Mq7S7|BnQoUKd)&NHr^b)PFa=zxy8*{JC_Ne<_0w z<%Tme*mCXv^6)<<_;ckv(-sCL21bgEXS9*r`1THxu|NO+MR1Os;#|l`krk#QEAL$T z{||2Bw;B5no&5g?Vcq(}9Mc$N$updhL4$ecgDXfb{xN+&TMzHtLno2MzArw^Fpoim zEaQ1r-MEMpIDbFN_b^RlkYG?}U9$QJlCSHC=`GH@|4 zFfcI4v9G*v7GcHTFFv~%vvCzVxKc6~lb9hlyg>N9cf5J? z65I%GJvIgzTqY5dRsOagjlcS$bS|;wEJl{9k_D^XAtMhPzm04?mlzef{=j z{1&j_l3@IA^7`WWxEFsa7+&DiefZrE^X7+q((iFwfU8F1<>F-KNdNe)9f#{-;MtE4 z>!sYzt}=hjaFMiHj)_T%F`q$?D78KesT{1Nmq<(`)YnXum8qj(6pVsVFysLMtBY0u zd+#GolNSOX5-~M8GdMahHY+eOIxsL=7i$iaNCF)oF;p=%Ix{#rFg7bNF*-0XD@xO{ P00000NkvXXu0mjfdDJl{ delta 462 zcmV;<0Wtoo289KXkADGvNklH?ih3LEY$hk)jhv+pU*vK zaq2jzuoWtBz6C5`0So*?Afy3x{!t+Jr;IRnT+mBN?qB@{7=Pvpa5`?M1Z4(Q{U%u2FGYfwN7XMC?D8RC02M}J1WSK$rR5>H3Gu|Q2mw~b9>4Kv<{M=pn5O0yc%b;j7C2DK8*X`0lM zru6V_{8VA>`3GDrYf|?=_D&Smp+5jcHKKFR{-%!ClkNf?ATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$ Ef;#lhn*aa+ diff --git a/companion/src/themes/monowhite/48/new.png b/companion/src/themes/monowhite/48/new.png index f5ddb907781e08557755d6283dd0a15e869bca9d..d5c749528257bcff03407113111ef34de2178e6c 100644 GIT binary patch delta 640 zcmV-`0)PG51hxi{kADI$Nkl5u=UU>Hmg+%b!hYM5R*t7 z^Y%x|iu9X9-uHp``Q-gRPksS4)l~IjETcnsMp>7}43?qN0e|&Y>H8nNX6=_HUBfTr zn|M!0SOMCaIWJFJxO3Qh76lfOEgn#i8d^U3y!G-CS+Pgh02ZPzoARUG$4fySvC-il z-=i311Bjk05v=7#*Fyl1`Tb+xcbD}@uHJKdqi7b1Ideff{YpIAU4`!+-KZOMx2>d- zqgxM?imVyMjeq0mRhdcz0ANnXZvWi;iZj+Dbp`q{fI4RZfPDJu@%PPdT1VX(V4heZ zN^VmKP=O=~#Nx7>YiQZ%@IT+nV#T2yczFT>0>b=lcXI&1dIT1JXDup7RR<822?n{x zsOaPl#Jv1(%G<%DR!#jLcG{xJ5kbrE4wZ(ex*}H}z<=sdu@+B_0*FVjjbJ4J;&KoI z^k=_l#6KCMp1k)&Q5G4ULqIUAVUXa>STP-SJ&PPWktJ52w7Xrc0C2GTC!@zy38``b zb76!zeKL}oZ3TeNjAABzhpln|7oU!Azl1-d?NT|Xj1gOSk!?O5`_dooD-ko?oNb)8 zP7+8L2R*pZU|GRx=sD}E=uWRRRSd2R3|cG`BB;rNRKg|01&bz%ww+7 ze$-S`Mf4975w|sbswj4o>;WGVF*Q0fI65#kD=;xSFfdvdYYvkg0v#YRR53L=GdMah aHY+eOIxsLRO4G6c0000`Wz{q`{0~wzBC9zHUgp6yEqgBfojyZXoC~>SgU8zkAEgyNTM!h3&bgKRc=%n zU`AYc?Tsh4aTqh=vJ6qzqE|-T=@?ZPAb8-I$JD6Z;ym>yS@6t0w|wF-=AbB3vxWAe zHmVumw^2K?TZR==X7X6x3LUn%X}baq^$-wa{Tbm(RnR&hNWZ(@%2v>KfP5uS34v*M zfVgC-%!CllcN2ATU%hHaasoIx#UTFflqXFy1G7!vFvP M07*qoM6N<$f{9|Iy${{92euF`l#iiU7L# z54Z_gK`h{5YOdMy|Hpp}!0?|`qZ}}T;XlKFhW{M5-`@TIAFBlhma{y!N2mldSM z0a;+wf`PYy1+VP?fI}PYi8QH!p&rgY&ajIp3qC*G%4V?ERDYN#3mo8q^8fRPWehMY z@LBLD*R1bF314gbd5_b)Q+#H`ma zgNT*m%&X5CzyFbF!P0#U^RZQ%j9Ao)GlVe+k?I46xeQN8)-wu5!6+C7bOHc!*j(&p zJNcoL+W{XEF*Q0fI65#kD=;xSFfdvdYYvkP0v#YRR53L=GdMahHY+eOIxsLRO4G6c O0000JVt delta 400 zcmV;B0dM}q1<3@Ekbgo+L_t(o!|j*7OT$nUM^8l2!NuaH=+Mcfqk~i3>rilWbaN92 z{{n}Ou6}?}q;wF$(WQe(&`oemR+pkhaS+k`T#b3Dxy6Feckh%7@1FZk$O|tJ!;P^a z_xAt~@PH8nl<|>poEYy5h-g!%Vjer>vIyXVeM;=HWNe?XnzE3|sw64Vx#rZAH4+^aJ1V-gm}lLr zC+6V$V?N-TE4G<3wtwf0`&1=I(TghD)T3EYsB)3hRGjk61|_qgL*jJ74Tw3R#)`T9 z9c{<3nOxSc7ERPO>*=YM?dJLpB3{{I);Rqq7lhfeOHq#*>SjF;w0LsV9g0e7DlrRc zC~*CgU5X~SB{J{e80Tdv@K-1g@Bj}O1;7`Qf}9qL|9HTYRstUqFgZFfH###oD=;xS uFfi-;aGdVgjF)J`JIxsNaCws#H0000T})eb7{;G-XaOy)bk)gZb0i}}G86gOqAX4q zqGWNIiHplLgScfGda(&2h(7KKcOSg-L$ zrYapck{P@~JZ~Q$Isd#J^+>x>rNVH(mkZiqNBwGyGT}=M;4BWJ9EB)EH9B*~Lt~6n zi5vS;#jne{@~Kspespbh=ti@GS;4i#-7fx1%3s+MHl>8uxMhhdivC&Fhc{BhhbPtW ze@{Q;PZe)g&wpOIWAxy;jG05$*l;vs=8&OrTu;2HNechC=G!rYzDWJxE4R>|O8&by z_|&r}$!r(b~m|9lpM^hH2dwMv&Tb5L&1Q01vwKaSsDI)qdyoRWvSB4 zp@|Vjmk&_v!QSL8%17&gnwc#HC7;e!Xgz3I8ZS#(KjASoe1%|bw357AXF(f`i|aeN6D@2xc@fRH zA(T@+}n}H%;dhM8e0-xjM4Sk&M^(JLIlsS4kd2?dQ7P@*D{|$0);B_2_59gr+U;qH*q6|PI8?_gtt7L;^OIj=EWklM2L;LF|6>zLhHi*n zbAOVze-)i^ZM*`#yT=;GR}S>!Jpej%K54-&02O*~G{iZRZ*d4$C=Je>TdYEfm^|2l zeS)Xk#Tm>XPq=(-m^@;^$Eo1~Kqs6vdq~ccq|g7zK&dSlASXuP!57D^; z4qb6oggHl&ryMx-tb+`WidL9b7XZ+ptAEFn_}q0CZGaJFw!n$%)#77Dec$1T58(EB z{p4ON8q$G}8Fl*AgpMNH9XOpXJOE_jSe0Fwxjz$vKVj(7qQiRc<=AUP41?H~Zae@~ z2%S&6$TBBtGl2(yY`iJ{kvV)!Ycq>~p#QD@0ns6~D{O76RR910C3HntbYx+4Ws_9{ z6B02sIx{#rFg7bNF*-0XS{G{$lX?RkATd-iH99jmIxsdXFflqXFe^&avH$=807*qo IM6N<$fT?VpQP5MVkt-#1w@he{FPl@6Gt$ zebcxQItOgOf@v=e660Jdm zeoy%?4+N9${YF$ph}QOtYZxFsk43MwqK zDs#YvSit(Je~;PCSGVNE2c*&(1?0N)$Z;}x4xDEfE8JQ&)|JoD6yOSbIYke52svVw zBF+LGZhz7k=OTao8gNhZ9l%&gfPiV#3zrJ^}M-jsiy6f)F8Y z@dF_i^9(p+B0uv{5#k;&2|zoAl+X)wBE%)2*-YN;u(PgWgo)^3Tm`%%{oes1NQ-%!CldJ?CATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qoM6N<$g43j4 ABLDyZ diff --git a/companion/src/themes/monowhite/48/paste.png b/companion/src/themes/monowhite/48/paste.png index f10703657998be1d7a8bc7bb95bdba43de6bd8c8..d912c3963ad09f7593e420497b03efb3cac076d9 100644 GIT binary patch delta 772 zcmV+f1N;2L1)&F!kADK1Nkl_U#a(eDRZ)y!!MYG!2!cw*LX%n*Q=?8Hu{0H=zR}jCG;JoyWUh-g zNyj`VNwGry*_?Clx##1ad+sm;R8-NX7nL_cgKpR$N&3qe#(x9E3I%M*mtJzd(_*iY ziV_3C>Ym>BAOaA%q!eEpdPd@er+BDw44tKwh=L70r~|e#bH-YukG``QAOKK>b34^W zx97+bC;)S~4iAV>0EOea{+rbX1)!4a_AGtd{)L?&k=2qm9QL+Kw$1oi0=x_L|6I73 z50S2py-%1Qseh7O9mkF2S?Oi>=(nl4uhUhJus>I_Oo!auCY7m^UidZ#6Gjtml(`>h zjwQNEXOJ(iXfPuTAdylKry?F}7nt?adL@!Q1(`^kyA$)ZDIn3Bw8Bcvlc&gVMw7|7yS_y#9)4R;TSY5-(fPWtzA-lS8+DS5K-E|^_5MqAm zauY&`e@gWb?b(u*a0b5=?X!*vg!eW1O}l%uAxb)A_LhCp;Q`df*G;NE94b2i2wyq# zX?zk;8{K-fJrkldz)_rHXA^}wQIC%F5CL8Ew=RXATURY9#YIGl%uyu(y4t!5h$;@? z@+tWPW`BdIrkntq#mOJ=eoWo%asU7u&vRxE{Quvk{{+Bs5c-`U4Df-D#sV7&7@2x{ z_Eqfn#sPxtkmH4vqmXzsbn$@9_aKM?3?w}(2G=ZS0T~Md@Wpa07|6Xel-WYe2C!ic zk>Yl_Lwb4G8DAv1#QN#lyJ$^coc{*|0Q8E!gDH(>N%jDSjC`LT#GCZ?E(`$ZaSZw# z^HGduN?%b$<ppnF*GeOF)cDNR53L=GdMahHY+eOIxsLRO4G6c0000gVs+T`c)Wv>Qs`I_0^_}jL;@fMl6`Wqs z9LKc8LXq8Jf}xVije}pNH7v{#Wh-2k!6?-^A#uj+^~}sYo4kaV*Dy#dV;uHvQ_( zyNh=FHoL@HO8se{{-<|Ku3de?*;_GXnrBV5wQfi%DJ@r0D$?9|DEAdF_ZvpRX&rxk zv|JTVt7JcUkvv(^o<-rb% z;9+aX8V9TVyUxXxtdA;RPkEbb{o(uU*ri-G0o(qoW;JTR`zv}QePXmdtK1Cr`j*7r zipJ%;xTXl+i`#V4`0Emr9yy=5DT4m@PpsXf$G@mq(_JX^t*Ol~!!rtrzJI1Np9_8V zO)J1eYino-YhCaI;W%#_#bw8j{byicP%UwdC`m~yNwrEYN(E93Mh1o^x(0^2Mus5< zmR1JlR>l_E28LD!2Csh?Z3Jtufa%E1PsvQHMCdRGF*LI>wzM)dgy^`ZUVRv-gTd3) K&t;ucLK6U!8~B+3 diff --git a/companion/src/themes/monowhite/48/play.png b/companion/src/themes/monowhite/48/play.png index 8f5a7f6bddd94e497f7e56ecc46484af43ab3c49..fb1ee191f7188e2eff0fc7510140c85e27523d1f 100644 GIT binary patch delta 509 zcmZo--oY|K#f>H1(btiIVPik{pF~y$1_s9BAa^H*b?0PW0yzrF9znhg3{`3j3=J&| z48MRv4KElNN(~qoUL`OvSj}Ky5HFasE6`@5qG~;(p{I*uNW|f{(`>z&9YtK|(nFMoHYQuQ-mRxX}>}Rq>$fY}FqQIP;X4z}R zTHb6e^s_uVr!qh7UUkFq$DV0Xd-kqev_RyF-l03pT2_pn(z2`-N7d3?nXHPwY^%sV zw{e}|gg%ve{pg!l6x0AI@&L zJ+JbZ;j>UC_et!HJKZHETNT2-RNrQl+qh7mN8k3<)As>KCpj7PJ$aM1s##b^gT-+1 z_rnU89X(YGR4i+5u2k1ltKyve;k8I)WY?1EI!C8<`)MX5lF!N|bSMAyJj*T_7?(9p`r)XKzE+rZGuz`*0JMmCCu-29YG ZowQ2aIxII#xDM38;OXk;vd$@?2>_yP#4G>+ delta 328 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 GGywp8s>yQz delta 282 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 SO4G6c0000^55!ty zf;OhLk~G$)wVhh^kBTB{gQP_IM;jtWe1wb-5RE2U`wzxyP+Ezt)hO1|h#4QWskYYP zB^m~K%pLB`+|@tk%y1twcji(|y3QYGpWj|*efM5_@3Z&4Re$00wbXHrH$l2ks7da1 z>P8iyPo_-mB)|2%2Mc^ch}Ou&=qwkHL`xXrs*ZW_X5`{XtctNm_5Ryq5z!mnk%>(7 zl?k4WzUYbvW5N)C`SEJ~mK7yu zs`X||$*NZCHh%^a6+%275%UMn=1Wury@S_~ND?7{Lmmg}_4XTAvDlN+qNOQS8I zR+Go&GLtdm;DR} zZ1R9w5VD1UX--Q9v{{{v-qL`#-3U%{mDUmG(}&u9dUUB30@iEyD>Lzg&CYX=4$o^$ z+Wi5@=`q|)1_vj-E+42n{Ind@m;V6yl=Trh5_8<`{e=TY;tu{-f1V; zZhv`_A~wD3wa5>8sX}w+jA8D+TPa3`dSHAn-kB=gsp0yWG!RoRq7R^-$hg z{6^Q{(~^F`hd9M4L%7$OZeCH7P8c?LBkIh`Q%>v$tkYS1rcA7VK4)|!rDmxzn^e7S z9eP27$w_v~UK3+OM7$AA$@7}%iO$$J%zu@MtuZO_{82-KJCuXf{15J)_4YaI*dQYNBU6?SBGe zWz>>vM-`6&oqlJxRpv{ZpBy~|7X zT4skOn!Tg@SbOlILw@X9Uol=&-pSBFgH3gI4dwQIxsNn`*N|9{0AK%FjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXX Hu0mjf)+?Xl diff --git a/companion/src/themes/monowhite/48/read_flash.png b/companion/src/themes/monowhite/48/read_flash.png index 39ffc14facf4ca9327fd78f7eec3af6840cb5370..d9fc136736a648830d3e953a23db9b5cfe10b111 100644 GIT binary patch delta 2430 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 diff --git a/companion/src/themes/monowhite/48/recentdocument.png b/companion/src/themes/monowhite/48/recentdocument.png index 4390a48a7954b7b493a4882f2757d82054f25ab7..90c3b1e1d08f224927494a0d8bb80ec2a7e0d3ef 100644 GIT binary patch delta 1503 zcmV<51t9v2362erkADS+Nkl7drr2m(V=-u~CAI-$B(_GIYLl9HH8i#utf_L8gcTPlqJRQLPFa@w*oB4V z*xi}eKR_)vi~ivse&?V0y?O6_X5M>q0k8B*FTI#)t?~G1&VR^C97Ef}0P*jKC$F6= z@TTr?w{h=$5L0y|A)n@4h!eZt_mz4XZQ>~%>*Eay8 zon0CipO|1EHf{Do%>q!GdamKtWNXn$0H|*dRoxm6S`!oIRTg~OcmRzH0000Klhzxb z>t_EU)F9ZqG;QYb?P`3T(S6fyJQB2r< zcj4*j+x0)bEU^4U%=nd(bR7XP~3J^FMVlE(5nzUDzV$XU!F$f_Bkc?#gg`UJ@ zkL&j^5n)~rHajL(dLDg)wE-}yZ#HTGV|Q0AuLmHB53lqN+=7USA?5%!ulTIg&(#kW z!1W^UyMN2-E1Q7wX14~n(w}dGz&QIH4Dbv`Bpen3SY!KTVSuv_I8D8GQFL?7sX?8_ z2J%Hk5_ zBMZA*z6-AGsDseO=d|OaedwMo)%ZI(As?^4`sfE2!H_F5UtawS^yiVJ%^QJq4T@Z92{Ap z7_gP3+395e_M{V~{^Gy$pQvDo{DfT0q^95y^GYTM!XwPC$f3=5}lcv_;&FM&39ml2kN>^cn4N z7w6g3q$PG9;Pfq(9nprF&tk7a{xmW~rWolU>aG=M!*kwK^kGDb+sI%=FCbbPMc4%3qDn4v zICks3s@60<9xcxb8c8Atph7dE$K#nxq|((_$^LIx*FxQ&I6vmWrmy|eZe;7wposIl zUtdPIu@*99j=OnTe(>80u;3GjE`P%~GvLA%TzP$hr5lG-xvFYcKUSJI8rAf%Dci39 zGMK10WdVH;bAU_$?p6o>8fL8lRdu5Y+4Gvt3EH;uZ$mE;jVOvO%kVh@k&#Z`V7oIiJMnuH*MdmNg6aHFom#CmvkS@tumw#{QAtEw# zy`9A-JbieWDG?hNadRvYnFdvg;z2c$t|_yyyN*W3z+1D~T@WuUJphQ9IG>!>YT~B( zqvEv_MD zDXL${12+c06tY&n~gC^~qP zh)669{(!fDt}-JEHh@bj@r1HeZ0zW z0t91uqlwsI^Cg}yrbHFIMqz3tx@;}9#)y{E1Pn9G4r+jgIEDI;5;ex`i>TV|RzFXq zP^p)wk7xKcexVjK2UCa|UM7Dz0Pq#N=^~3=ytfcyu^TOJp%%ZBrwes|tnSPthnunp zb6exfhjL1gdcJ^?9eN1vLDv1!UN&>YG9PxT>Y|GT%_O)r@3Iw1E;}gtnkvO%KpcWR9+#5nwCplU+qOkq4Y+ zFlhfw4}VZVGp~>}LpR82U@e=c0*UT}JipR}tEkzC5hLb^m7Y<%+!QEQ`?iygJAdFOZkUm|$u4!!dlFfuQ`RgNc~Tv+ zJW$;1DRsYhx_VY-xo6Z~Z%hWDO@{1HqwWn9$NbCJT|Y0g!Km6{XettW4t|;Uh8pKx zsz~PrI{ATaCU}HHjL%UO@jU5F(lVnb{txiLv;A7tPB&ZUHW90Bu=ut^ zh=1+(c}~6LLAL~vHpgrWu5a*w|ETA!nVFRgAY`qBs*d=i+q~Y7)sMW^V(a`()n9$w ztW*J*WogAEo^&(-KjAgAbCLsK$ZC%ojq!(S(o^o5efJ`1DSQkGQ^lhc zkjolEO!7A)4AIO7{5fBo3g9xNm_jzPk`{5!@)Ny`#1^IsNZ9@b#TleMc+=8glOP5k z5->SBFgH3gI4dwQIxsNn`*N|9Q3f3#FjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXX Hu0mjfYaG*< diff --git a/companion/src/themes/monowhite/48/save.png b/companion/src/themes/monowhite/48/save.png index b6d3800859a1ac7b31863d42c2ffc058d13794af..e29b45ab3384cecc5ac2fec87c815967b92cc217 100644 GIT binary patch delta 416 zcmV;R0bl;?1K0$RkADGCNkl^KSvlCmSOV+9t*Bs znD~K#Azwh-09o|wlfpX;3^4JV7a17U^;pIBnQF7#d5Qk z%X$Ia(toxvtX*Y@r^JE>AJ#IQ#V613fHEHtVFZ3K^z*@}1tY)$LiwPch8E-t5L=+- z3y@`jw!th0%E5rd!NI2=(#SCC=>~?2n4;8Z{K6eZY%MnmM!_hcG5`Rc3xwEy|3g!g zegPj6F*Q0fI65#kD=;xSFfdvdYYvmI0UaPQR53L=GdMahHY+eOIxsLRO4G6c0000< KMNUMnLSTZt2C{zu delta 322 zcmV-I0log%1ndKlkADE=NklPU-;V+2n4qZ9s7HL2Y3JwX=fD^3y&i^?u}K^ zjYMp8mYIa2cj_dfm=%jAr^v7{CkGU&He0f;VpPDMfH4D>+<(|=gEB;vXyeLiJ*f=k zR0TD45s`3V&H;!S=^DD&gDY8cu?v9ka0@W1|A5GPg~IAP;Rl{zLt&_vp99L*CMNa& z6nTIL^Z;PG$*Q%Bq0-%!ClN$mZATU%hHaasoIx#UTFflqX UFy1G7!vFvP07*qoM6N<$g2r=*!~g&Q diff --git a/companion/src/themes/monowhite/48/saveas.png b/companion/src/themes/monowhite/48/saveas.png index 94fccbe10ac2b39bbfed09fe8529e5eff1eeb2da..cb5c738ad8f8b73ce2cb4891054235c5151270ff 100644 GIT binary patch delta 660 zcmV;F0&D$=1Pe>F|9LK*isfZi$0uiF!!@~9l7HlP2FG53y zu;>=i!AvreZW7dai#^A-9XiYsv=ClO7RpsAC_~*~W65GXtSvU69RhLZV6f^euY*3_ zap%wOxI+c=InDfj!|(I^J?1?g;Ns%qIGk=&z_~hVWbqbdqkm+RUinL>j|sKcpAHoc z(Me-PHIdsNXdM)nj!$6#eC-p|3Gpv@&a1P)sNNJNf`$3G0*sJgs51I{_xiD>|WsENv}31Bz=xcGc)xzG`4?#!MD-}+w0hzvHAso4B0RjxhjYu_A;y_4)5)8 z#{a($T!AHajtU+_=-15%JNr9@r%>%qz~km%55;1;M1Ld_3+yFg0f|Utv7O>x7k7uX zZZ$zfFPP*n;@T;+X`>!*&w8ggsqf8;+3I*Y(<*Yl%KM_tdlB)!_FVXkx&H2oDM}MxF3U8E6;N}*$DhiurQ*o? zgPA_>#!==_&yIpE&a(EqgIs=pA>DF6(S4&A046?Nkv5`K(|sd2if750@>)8>jlyTp z?m-nTPkN_XMfjX3&ZZdT9O|CIJ6qo6ALkF&w+hy5!*EQK8v-8^F*Q0fI65#kD=;xS uFfdvdYYvl40v#YRR53L=GdMahHY+eOIxsLRO4G6c0000YU6o!AYFNAhyS$v83(I#l!@yW zv4mv9PFOz$q<|CvWVBVqLI{mpu4o5#MVAE$6HQqWTl7k?Sbvn`gnW=v#;~wP4N$1Q zYKv3PMg`npG0zl-yl|;C%3x7JYge^zPEls$&NFH`35$e#R%rk^W_1(d*nYnfio}f(K&~5!3&@zfRD4@<_5G?#2^v5Q}-nhuY@PyGnrYYd} z0a1>r%?=yh*njcWw|XDfbB_3k4(L!~jx{C+>JARza>4PJycwVjy#{U8hY;X$#vbp! zO2m6nQ+B1SsaIrLEWcLti`SEEOIcohl{cx#_@I{FqPp)56C4xl-%!ClMMqMATU%hHaasoIx#UTFflqXFy1G7!vFvP07*qo IM6N<$fTr5K-=WIKljI^4#MGKtvV)iER(#Xch$!(Q&dT#O8Ss z1^`tHx1LjMnZJPb03sq9{*m8^vlu4OYPH@F$X^C_dYKi5PF_xJ^Vh;eL3fHBSd$_%J~5Z zKmh&`a4&V|qhPWVUb!}^{I$)>KG?CQORNU~d@|xf6M%1~G=GWo0DuKO%9;SAJW(^f z4i^AmOpB5x@WYZDP2jK|s29Due!y381Ns55W1Ua<4!c;Ya-LUE@`^`R@+i;#!|tzJ z^u`q@I?o^@VQA9PuE3l=r+R%b<SBFgH3gI4dwQ vIxsNn`*N|9KLQ;fFjO%%Ix{&sF)=GJF*-0X-Y0v*00000NkvXXu0mjfa_*N> diff --git a/companion/src/themes/monowhite/48/stop.png b/companion/src/themes/monowhite/48/stop.png index 7818a3d4caeefe03b28d2ace12220d464b243264..028180e0f59f093739b97af6416be0ab99f4f94e 100644 GIT binary patch delta 368 zcmey#xR!Z>iW^J1qpu?a!^VE@KZ&di3=E9LLGDfr>(0r%1acITJ%W507^>757#dm_ z7=8hT8eT9klo~KFyh>nTu$sZZAYL$MSD?*AMYZ~6o-U3d5r^MSQ{+2rz~j1q?Sc&x zdHB{{;@i;uR$^~N{sp;(ipkD_wgE31c1GQ-H`w&AIOP+gQ%6a>v5?N3D<6LPPDq`i zI4^(m-aUu7H}zcJdT09r$EAAbuWC=4?PD~hsG7xoLw>d4^yPV{crLyzH#7cm`sKtG z93lY@jI2PSo{=@3(`7-C0;krc%&vVmO=rKBe)wr=ka+aPJNxF|oP1jU!}VW&9E|%! z?F_sf{_fNTdPcRxHKHUXu_VKd7c7#dm`nOd2cY8x0@85nrH k)yPKCkei>9nO2FUK^{$q<%S8@fjSsGUHx3vIVCg!0ODDO<^TWy delta 189 zcmV;u07Cz*1Ni}vB#~_+e+P6)O+^RZ0T&P^IODVlqW}N^ib+I4R9M69maz@PFbo9$ z4OW`Py|?l(nN72(67s3s*hC;1G1B~%1j!SrhJZ2Vad-_0C<k;sn55y89gg%z59 zYQ@fW4o8w2Shd|+Mr6&diGtG6zOM*SHuduKCtF~F1r}Iffdv-)GlobnC}R4sJL(1m r>Z~^mL`5GwepMLr0(CaR81n}{e6$`;6=@Rn00000NkvXXu0mjf0Gm=jP7-UD(HF zC$+QD)qZy`&v~Ec{XggB1rj7kkYGuefBISpEy}P9TBzZ|Cx1M^GdK{4S3r)WN?E*D zdS0EAE>rp4qplivkAK=iO_++utU2@Dq8IWL`1x&<3*m8buu&Dc%Ie%nx7(~xn?ulgjDhND;XW{IA$k^h&25u5!x(SMnLK5Q~)?Bp%(ZTXl{DkXa|4_FLsCx&}L=;z^E1$ z0rllW767($$P(JToZiwn06=&p+ybiC%>h6r2esGA)sn90st@;#5b`4 zwt3pp-A8&@;X*pL$ac1RcNYR- zPvs*FBT?>igZ=AGO!Z>+%pyv@yzz7P>fHHdc)FsyZ3=msz#(sW zvWorS@0`1(nQ@{CdIV!GhxgPPn0l~~q6C-G4qXH8;1UYNzo6RW`;q0;8rV89 zq7<>4BuJ3pKkyyc>zfT<)Ez*Ri2@%IF*Q0fI65#kD=;xSFfdvdYYvmT0v#YRR53L= eGdMahHY+eOIxsLRO4G6c0000EMl?k2}+hRBiSJAa?ZGrG4^sw*Mig(N|Q~G?WYQc>mfC1mCI`0E}n&$VLx2hIB)A>nGnRB|S zxqbDX7aj7FV^&oC;T5|&1*AM;!6+*_?AG=kRs-ZL_byraHKiN{P%$K&S+GgI{~D8@i+Ri*E)+n z3easmG&#|LbfaDZlC#<#9QBctUI>X^Bo%Q9Ow&a*R=16+_2ibB0207D0Q?3jz7pae z0r~;}0F!A09TG4(IxsgnGdL?SF*-0X>-%!Clb8b?ATU%hHaasoIx#UTFflqXFy1G7 Q!vFvP07*qoM6N<$f-d3{p#T5? diff --git a/companion/src/themes/monowhite/48/wizard.png b/companion/src/themes/monowhite/48/wizard.png index 7a61ffae7f92c6911c65d1d1efd127f101b21975..17e47641430904ba6474c00a7a074d533519c689 100644 GIT binary patch delta 1474 zcmV;z1wHzR3Gxh(kADSgNklF7=G@(ZEsryT56M0WxKp zD8_7RHnS{56ximbn{%k({_HD8v*?VAiHU43DA|Y3O$BKI3lt_FBBF632w}p+6)oR5 zXze}w(H2^1;kvS4d;YcOJElh{{F?{R0MmBSg)M%+6&Q9+)5Atuw}~d7RadyTdg`K z?!Sc=0F;wa5=3J;*3z4<2Ft@jAO1Lri^L4b#qCcBAAwM8#5QdA4L+oz*vYLImLd^R zpaNS5?DV3jxPJvfudkSuDPA&*VikS?W>Ok5-&Y|07@_>UXOMHg+-W;!Y?ytXNq>Z7ID%#Zn5M_Jhr_l(;T)(}-EGLPmt-{Xc^fL90 zo#lP4sec^i0AN7z74VOep1l%wdtSrR3fiKwAcQ?u6WJa@pGB1Yd&v2qKCJ0*dCS*F z4IxcAw^0CwAaK0SWrr+OB`U>fEQK0d=*DR~Sp8rl=^&=w`bn3DCEh|5#1KFXHQod5 z$bcVYh!_r5%d>CR5MyHAA|2`c*l+D2BSApl*%XPKHvbcmvfz1=jEVSRchtQLVv;CZF2(S{^5 zISleRJ*zi0ySD2y<$)KQu9EJTbjW}YHbv)~J6s}&*|;Q+dK2TlHZJD4NOU!mjub62 z>^HS-m7bWL=sVWsO15GOA9M7z*NA150I_x_<-yOmI>Dn^CPF*Y^R3?VY1B@p1Y}9o?az$M{hADR~U-$ zrJWuC2bn#e43ig{S|M{xX8FD?z6*)TYgcCggR1-9aUg>)9 zAULRSs?6wT!D=v$N5`Ex#a+#WxPS9LR)^ho@13EM|BO;>z&xx+RoDqC77SrLH4U{q zyROz9z4=j6K6ZOJlyjSlwZ8`*%qjLzIX#=T^oMRv|4bOeoVWt)@tWSVIh*sb$2)RB z!RqU3-J6rFrFVI6&eJ`|LEoEDfV~r7j+>rC2r-+|wAkmhIg;-^nUkWWcYk|(dLZvg zwOey~5^N3GYpjYmXKEtc)8?dVk?B1-00^nX$cvBLoF%M1saiUHB2I6Yz*>o+|DHp_ z+Pk~}nG;8E!^*H+V*}wPs&Ym{K&_dX`?!sF30ATd-iH99jm cIxsdXFflqXFe^&avH$=807*qoM6N<$g6|u|u>b%7 delta 1032 zcmV+j1o!*$42TJkkADM!NklQ(Q4?TNbYKTz z=hMU7xqHv-y|ZWbD)hTAbI$pl-{+q1`Tc&EanOUc!~>51|9=A{SXv={-GB*P}3bhAbz9o0@rk`oZC zMcrDf4t42eJ*J{Q*CkErs(w;Q7Jznb*K_KWtF@B;)&=D?uJbytd!9#9@2FpGO8R?B zx~)NdtdgBXAAj;MK`Zko>uCyjI2ay+#t@H0Ea5434sX8QG zQC{78)T@Q3Rn%m_r%Pk{N);vw;22v-lYb${0K(-IBP`&onlntXmp*QCj@11IxC~L^by^TR zxXG_Pa{mBLq!?q0j6c)E1i!J-D7yv#31j52nR86B$0)ORDf10adZSHo0BabcM8=Th zDNax%>wnLkB4wVY5$!JmKd>S&*Ub^5xemT3Pd0GE zQQ$0{-uPkr6S$n=uGeQ~_=x3*PEJrD%Mx1Yk( zSqkj*JYL~Crd{JTl6HWqI3{A8TtJ)zZ}}$#xPQ)@)w{A0r^I}_#eS9q61bIvfz<(4 zR9i^>ZtCi!(HW~&&^{eCI_9)yjP)DUpY^^6X?+$NKCeL|e8o0Mn$fUs3$3$h*Oi{L zkT`SC2*dQUfgUdK-NJ?DG7h2PcSP(6Hi@m?_aG9GW+*g#j{Vk^U*`lar$fal&>t#J zgMWZ%aWaht4+BJt)4!PTwScJ1De!*d;>-us_MEB}0}VL_AkFE}@OcInAASxHElzf^ z;+TMML*Kp-M;sHdor{!f!r$OP-0*XNhj@_*15w~WJaOh{QHo1GqR1QZgVzGYHbyDO z&zxvLk{6hWpE=P0A)aNAcde1A)*ys%RofR+6RT`>0zd@psM0000bbVXQn zWMOn=I%9HWVRU5xGB7bTEif@HGBH#zIXW;mIx{#cFflqXFzfqru>b%7C3HntbYx+4 zWjbwdWNBu305UK!G%YYOEiy1vF*Z6gIXW>hD=;xSFfiUHd&2+#002ovPDHLkU;%=I CCF7d_ diff --git a/companion/src/themes/monowhite/48/write_eeprom.png b/companion/src/themes/monowhite/48/write_eeprom.png index 1563c9de3d77ef7a31418b9016ac1867bf95fdba..b406ca98a4009e487f4f82e2ac63d4fee5c80543 100644 GIT binary patch delta 2068 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 Rd&2+#002ovPDHLkV1m2JggpQN diff --git a/companion/src/themes/monowhite/48/write_eeprom_file.png b/companion/src/themes/monowhite/48/write_eeprom_file.png index 9ae0c19c7435357483ac241c0f45433a65c0c554..d22daf82f387aa5e18ac684aefe1e7a7b96136e6 100644 GIT binary patch delta 2008 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 FV1kG)QzHNX diff --git a/companion/src/themes/monowhite/48/write_flash.png b/companion/src/themes/monowhite/48/write_flash.png index d66faf61337476cfe5a4cbf5da7e909f88ea3728..0c4594941a45e0613da95dc01049ec6121003f50 100644 GIT binary patch delta 2498 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 Ab^rhX From 2646307efd3a6777a99ea119a8e151b6b6ad137d Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 31 Jan 2014 10:57:44 +0100 Subject: [PATCH 08/16] Update DONATIONS.txt --- DONATIONS.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 0f9eb76b2..1c083a4c5 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -307,3 +307,5 @@ Bradley Murchie Maximilian Süß Dean Jansa Ronald Donker +Paul Oldenkamp +Dietmar Drees From 0446658f4b36d5154d1ce526012089ea6148bf57 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 31 Jan 2014 11:58:03 +0100 Subject: [PATCH 09/16] Issue #588 - S1/S2 Type added in Hardware configuration page --- radio/src/gui/menu_general.cpp | 28 +++++++++++++++++++--------- radio/src/translations.cpp | 3 +++ radio/src/translations.h | 10 +++++++--- radio/src/translations/de.h.txt | 5 +++++ radio/src/translations/en.h | 5 +++++ radio/src/translations/es.h.txt | 7 ++++++- radio/src/translations/fr.h.txt | 7 ++++++- radio/src/translations/it.h.txt | 9 +++++++-- radio/src/translations/pt.h.txt | 5 +++++ radio/src/translations/se.h.txt | 5 +++++ 10 files changed, 68 insertions(+), 16 deletions(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index ebf5b24b3..c5f97dae9 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1168,6 +1168,8 @@ void menuGeneralDiagAna(uint8_t event) #if defined(PCBTARANIS) enum menuGeneralHwItems { + ITEM_SETUP_HW_POT1, + ITEM_SETUP_HW_POT2, ITEM_SETUP_HW_UART3_MODE, ITEM_SETUP_HW_MAX }; @@ -1181,9 +1183,22 @@ void menuGeneralHardware(uint8_t event) uint8_t sub = m_posVert - 1; for (uint8_t i=0; i0) ? BLINK|INVERS : INVERS) : 0); + uint8_t y = 1 + 1*FH + i*FH; + uint8_t attr = (sub == i ? ((s_editMode>0) ? BLINK|INVERS : INVERS) : 0); switch(i) { + case ITEM_SETUP_HW_POT1: + case ITEM_SETUP_HW_POT2: + { + int idx = i - ITEM_SETUP_HW_POT1; + uint8_t mask = (1< reusableBuffer.calib.xpotsCalib[idx].lastPosition + XPOT_DELTA) { reusableBuffer.calib.xpotsCalib[idx].lastPosition = vt; reusableBuffer.calib.xpotsCalib[idx].lastCount = 1; @@ -1333,10 +1348,6 @@ void menuCommonCalib(uint8_t event) lcd_putsAtt(0*FW, 2*FH, STR_SETMIDPOINT, s_noScroll ? INVERS : 0); lcd_putsLeft(3*FH, STR_MENUWHENDONE); -#if defined(PCBTARANIS) - g_eeGeneral.potsType = 0; -#endif - for (uint8_t i=0; i 1 && count <= POTS_POS_COUNT) { + if (IS_MULTIPOS_POT(i) && count > 1 && count <= POTS_POS_COUNT) { for (int j=0; jcount = count - 1; for (int j=0; jcount; j++) { diff --git a/radio/src/translations.cpp b/radio/src/translations.cpp index f031ba40b..de37b6ee2 100644 --- a/radio/src/translations.cpp +++ b/radio/src/translations.cpp @@ -57,6 +57,7 @@ const pm_char STR_OPEN9X[] PROGMEM = ISTR(TRNCHN) #if defined(PCBTARANIS) ISTR(UART3MODES) + ISTR(POTTYPES) #endif ISTR(VTRIMINC) ISTR(RETA123) @@ -496,6 +497,8 @@ const pm_char STR_VIEW_TEXT[] PROGMEM = "View text"; const pm_char STR_VIEW_CHANNELS[] PROGMEM = "View Channels"; const pm_char STR_VIEW_NOTES[] PROGMEM = "View Notes"; const pm_char STR_UART3MODE[] PROGMEM = TR_UART3MODE; + const pm_char STR_POT1TYPE[] PROGMEM = TR_POT1TYPE; + const pm_char STR_POT2TYPE[] PROGMEM = TR_POT2TYPE; #endif #if MENUS_LOCK == 1 diff --git a/radio/src/translations.h b/radio/src/translations.h index 0c7f7af19..794c6b342 100644 --- a/radio/src/translations.h +++ b/radio/src/translations.h @@ -100,10 +100,11 @@ extern const pm_char STR_OPEN9X[]; #endif #define OFS_TRNCHN (OFS_TRNMODE + sizeof(TR_TRNMODE)) #if defined(PCBTARANIS) -#define OFS_UART3MODES (OFS_TRNCHN + sizeof(TR_TRNCHN)) -#define OFS_VTRIMINC (OFS_UART3MODES + sizeof(TR_UART3MODES)) + #define OFS_UART3MODES (OFS_TRNCHN + sizeof(TR_TRNCHN)) + #define OFS_POTTYPES (OFS_UART3MODES + sizeof(TR_UART3MODES)) + #define OFS_VTRIMINC (OFS_POTTYPES + sizeof(TR_POTTYPES)) #else -#define OFS_VTRIMINC (OFS_TRNCHN + sizeof(TR_TRNCHN)) + #define OFS_VTRIMINC (OFS_TRNCHN + sizeof(TR_TRNCHN)) #endif #define OFS_RETA123 (OFS_VTRIMINC + sizeof(TR_VTRIMINC)) #define OFS_VPROTOS (OFS_RETA123 + sizeof(TR_RETA123)) @@ -196,6 +197,7 @@ extern const pm_char STR_OPEN9X[]; #define STR_TRNMODE (STR_OPEN9X + OFS_TRNMODE) #define STR_TRNCHN (STR_OPEN9X + OFS_TRNCHN) #define STR_UART3MODES (STR_OPEN9X + OFS_UART3MODES) +#define STR_POTTYPES (STR_OPEN9X + OFS_POTTYPES) #define STR_VTRIMINC (STR_OPEN9X + OFS_VTRIMINC) #define STR_RETA123 (STR_OPEN9X + OFS_RETA123) #define STR_VPROTOS (STR_OPEN9X + OFS_VPROTOS) @@ -683,6 +685,8 @@ extern const pm_char STR_VIEW_TEXT[]; extern const pm_char STR_VIEW_CHANNELS[]; extern const pm_char STR_VIEW_NOTES[]; extern const pm_char STR_UART3MODE[]; + extern const pm_char STR_POT1TYPE[]; + extern const pm_char STR_POT2TYPE[]; #endif #if MENUS_LOCK == 1 diff --git a/radio/src/translations/de.h.txt b/radio/src/translations/de.h.txt index 4c719b79a..45355f3f4 100644 --- a/radio/src/translations/de.h.txt +++ b/radio/src/translations/de.h.txt @@ -71,6 +71,9 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATE:""ZEIT:" @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" diff --git a/radio/src/translations/en.h b/radio/src/translations/en.h index 4f0397900..1c9054538 100644 --- a/radio/src/translations/en.h +++ b/radio/src/translations/en.h @@ -71,6 +71,9 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATE:""TIME:" @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" diff --git a/radio/src/translations/es.h.txt b/radio/src/translations/es.h.txt index f1f81d0f5..65108e25f 100644 --- a/radio/src/translations/es.h.txt +++ b/radio/src/translations/es.h.txt @@ -1,4 +1,4 @@ -/* +/* * Authors (alphabetical order) * - Bertrand Songis * - Bernet Andre @@ -71,6 +71,9 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATA:""HORA:" @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH INDENT "Valor mAh" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" diff --git a/radio/src/translations/fr.h.txt b/radio/src/translations/fr.h.txt index 540aa08bd..09c7f0854 100644 --- a/radio/src/translations/fr.h.txt +++ b/radio/src/translations/fr.h.txt @@ -1,4 +1,4 @@ -/* +/* * Authors (alphabetical order) * - Bertrand Songis * - Bernet Andre @@ -71,6 +71,9 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATE:""HEURE" @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH TR(INDENT "Enr. mAh",INDENT "Enregistrer mAh") #define TR_FAS_OFFSET TR(INDENT "Corr FAS", INDENT "Correction FAS") #define TR_UART3MODE "Port série" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "RSSI Max" diff --git a/radio/src/translations/it.h.txt b/radio/src/translations/it.h.txt index 3f18eecf5..4326c226f 100644 --- a/radio/src/translations/it.h.txt +++ b/radio/src/translations/it.h.txt @@ -71,14 +71,17 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATA:""ORA :" #define LEN_VLCD "\006" #define TR_VLCD "NormalOptrex" -#define LEN_COUNTRYCODES TR("\002", "\007") -#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") +#define LEN_COUNTRYCODES TR("\002", "\007") +#define TR_COUNTRYCODES TR("US""JP""EU", "America""Japan\0 ""Europe\0") #define LEN_VTRIMINC "\006" #define TR_VTRIMINC "Exp ""ExFine""Fine ""Medio ""Ampio " @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" diff --git a/radio/src/translations/pt.h.txt b/radio/src/translations/pt.h.txt index a17f9af2f..33e9d16fe 100644 --- a/radio/src/translations/pt.h.txt +++ b/radio/src/translations/pt.h.txt @@ -71,6 +71,9 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "OFF\0 ""SPORT Mirror\0 ""Virtual SP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DATA:""HORA:" @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serial port" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" diff --git a/radio/src/translations/se.h.txt b/radio/src/translations/se.h.txt index 60bc0c6b2..ad1277001 100644 --- a/radio/src/translations/se.h.txt +++ b/radio/src/translations/se.h.txt @@ -71,6 +71,9 @@ #define LEN_UART3MODES "\017" #define TR_UART3MODES "Av\0 ""SPORT-spegel\0 ""VirtuellSP2UART" +#define LEN_POTTYPES "\017" +#define TR_POTTYPES "Pot\0 ""Multipos Switch" + #define LEN_DATETIME "\005" #define TR_DATETIME "DAG: ""TID: " @@ -680,6 +683,8 @@ #define TR_PERSISTENT_MAH INDENT "Store mAh" #define TR_FAS_OFFSET TR(INDENT "FAS Ofs", INDENT "FAS Offset") #define TR_UART3MODE "Serieport" +#define TR_POT1TYPE "S1 Type" +#define TR_POT2TYPE "S2 Type" #if defined(MAVLINK) #define TR_MAVLINK_RC_RSSI_SCALE_LABEL "Max RSSI" From 1cef62df483f7200417f511ff7de86d8b1914b91 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 31 Jan 2014 12:32:09 +0100 Subject: [PATCH 10/16] Compilation error --- radio/src/opentx.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/opentx.h b/radio/src/opentx.h index fa4152aba..981d360bd 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1582,8 +1582,8 @@ union ReusableBuffer uint8_t lastCount; int16_t lastPosition; } xpotsCalib[NUM_XPOTS]; - } calib; #endif + } calib; #if defined(SDCARD) struct From 8ef1456fe90e558f1f1ca1b9234773b8dd5470c0 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 31 Jan 2014 17:19:21 +0100 Subject: [PATCH 11/16] EEPROM support in Companion for the 6pos pots on Taranis --- companion/src/eeprominterface.cpp | 48 +++++++++++-------- companion/src/eeprominterface.h | 8 +++- .../src/firmwares/opentx/opentxeeprom.cpp | 40 ++++++++++++---- .../src/firmwares/opentx/opentxinterface.cpp | 4 ++ companion/src/helpers.cpp | 11 +++++ radio/src/myeeprom.h | 4 +- 6 files changed, 82 insertions(+), 33 deletions(-) diff --git a/companion/src/eeprominterface.cpp b/companion/src/eeprominterface.cpp index cf7686bea..9b5126780 100644 --- a/companion/src/eeprominterface.cpp +++ b/companion/src/eeprominterface.cpp @@ -67,7 +67,7 @@ RawSourceRange RawSource::getRange(bool singleprec) case TELEMETRY_SOURCE_A1: case TELEMETRY_SOURCE_A2: if (model) { - FrSkyChannelData channel = model->frsky.channels[index-TELEMETRY_SOURCE_A1]; // TODO const & + const FrSkyChannelData & channel = model->frsky.channels[index-TELEMETRY_SOURCE_A1]; float ratio = channel.getRatio(); if (channel.type==0 || channel.type==1 || channel.type==2) result.decimals = 2; @@ -239,26 +239,34 @@ QString SwitchDn(const char sw) QString RawSwitch::toString() { - static const QString switches9X[] = { QObject::tr("THR"), QObject::tr("RUD"), QObject::tr("ELE"), - QObject::tr("ID0"), QObject::tr("ID1"), QObject::tr("ID2"), - QObject::tr("AIL"), QObject::tr("GEA"), QObject::tr("TRN") - }; + static const QString switches9X[] = { + QString("THR"), QString("RUD"), QString("ELE"), + QString("ID0"), QString("ID1"), QString("ID2"), + QString("AIL"), QString("GEA"), QString("TRN") + }; - static const QString switchesX9D[] = { SwitchUp('A'), QString::fromUtf8("SA-"), SwitchDn('A'), - SwitchUp('B'), QString::fromUtf8("SB-"), SwitchDn('B'), - SwitchUp('C'), QString::fromUtf8("SC-"), SwitchDn('C'), - SwitchUp('D'), QString::fromUtf8("SD-"), SwitchDn('D'), - SwitchUp('E'), QString::fromUtf8("SE-"), SwitchDn('E'), - SwitchUp('F'), SwitchDn('F'), - SwitchUp('G'), QString::fromUtf8("SG-"), SwitchDn('G'), - SwitchUp('H'), SwitchDn('H'), - }; + static const QString switchesX9D[] = { + SwitchUp('A'), QString::fromUtf8("SA-"), SwitchDn('A'), + SwitchUp('B'), QString::fromUtf8("SB-"), SwitchDn('B'), + SwitchUp('C'), QString::fromUtf8("SC-"), SwitchDn('C'), + SwitchUp('D'), QString::fromUtf8("SD-"), SwitchDn('D'), + SwitchUp('E'), QString::fromUtf8("SE-"), SwitchDn('E'), + SwitchUp('F'), SwitchDn('F'), + SwitchUp('G'), QString::fromUtf8("SG-"), SwitchDn('G'), + SwitchUp('H'), SwitchDn('H'), + }; - static const QString virtualSwitches[] = { QObject::tr("LS1"), QObject::tr("LS2"), QObject::tr("LS3"), QObject::tr("LS4"), QObject::tr("LS5"), QObject::tr("LS6"), QObject::tr("LS7"), QObject::tr("LS8"), QObject::tr("LS9"), QObject::tr("LSA"), - QObject::tr("LSB"), QObject::tr("LSC"), QObject::tr("LSD"), QObject::tr("LSE"), QObject::tr("LSF"), QObject::tr("LSG"), QObject::tr("LSH"), QObject::tr("LSI"), QObject::tr("LSJ"), QObject::tr("LSK"), - QObject::tr("LSL"), QObject::tr("LSM"), QObject::tr("LSN"), QObject::tr("LSO"), QObject::tr("LSP"), QObject::tr("LSQ"), QObject::tr("LSR"), QObject::tr("LSS"), QObject::tr("LST"), QObject::tr("LSU"), - QObject::tr("LSV"), QObject::tr("LSW") - }; + static const QString virtualSwitches[] = { + QObject::tr("LS1"), QObject::tr("LS2"), QObject::tr("LS3"), QObject::tr("LS4"), QObject::tr("LS5"), QObject::tr("LS6"), QObject::tr("LS7"), QObject::tr("LS8"), QObject::tr("LS9"), QObject::tr("LSA"), + QObject::tr("LSB"), QObject::tr("LSC"), QObject::tr("LSD"), QObject::tr("LSE"), QObject::tr("LSF"), QObject::tr("LSG"), QObject::tr("LSH"), QObject::tr("LSI"), QObject::tr("LSJ"), QObject::tr("LSK"), + QObject::tr("LSL"), QObject::tr("LSM"), QObject::tr("LSN"), QObject::tr("LSO"), QObject::tr("LSP"), QObject::tr("LSQ"), QObject::tr("LSR"), QObject::tr("LSS"), QObject::tr("LST"), QObject::tr("LSU"), + QObject::tr("LSV"), QObject::tr("LSW") + }; + + static const QString multiposPots[] = { + QObject::tr("S11"), QObject::tr("S12"), QObject::tr("S13"), QObject::tr("S14"), QObject::tr("S15"), QObject::tr("S16"), + QObject::tr("S21"), QObject::tr("S22"), QObject::tr("S23"), QObject::tr("S24"), QObject::tr("S25"), QObject::tr("S26") + }; switch(type) { case SWITCH_TYPE_SWITCH: @@ -268,6 +276,8 @@ QString RawSwitch::toString() return index > 0 ? CHECK_IN_ARRAY(switches9X, index-1) : QString("!") + CHECK_IN_ARRAY(switches9X, -index-1); case SWITCH_TYPE_VIRTUAL: return index > 0 ? CHECK_IN_ARRAY(virtualSwitches, index-1) : QString("!") + CHECK_IN_ARRAY(virtualSwitches, -index-1); + case SWITCH_TYPE_MULTIPOS_POT: + return CHECK_IN_ARRAY(multiposPots, index); case SWITCH_TYPE_ON: return QObject::tr("ON"); case SWITCH_TYPE_ONM: diff --git a/companion/src/eeprominterface.h b/companion/src/eeprominterface.h index 915387e01..38b713c24 100644 --- a/companion/src/eeprominterface.h +++ b/companion/src/eeprominterface.h @@ -356,6 +356,7 @@ enum RawSwitchType { SWITCH_TYPE_NONE, SWITCH_TYPE_SWITCH, SWITCH_TYPE_VIRTUAL, + SWITCH_TYPE_MULTIPOS_POT, SWITCH_TYPE_MOMENT_SWITCH, SWITCH_TYPE_MOMENT_VIRTUAL, SWITCH_TYPE_ON, @@ -503,6 +504,7 @@ class GeneralSettings { unsigned int mavbaud; unsigned int switchUnlockStates; unsigned int hw_uartMode; + unsigned int potsType[8]; }; class CurveReference { @@ -737,7 +739,7 @@ class FrSkyChannelData { unsigned int multiplier; FrSkyAlarmData alarms[2]; - float getRatio() + float getRatio() const { if (type==0 || type==1 || type==2) return float(ratio << multiplier) / 10.0; @@ -1052,7 +1054,9 @@ enum Capability { EnhancedCurves, TelemetryInternalAlarms, HasFasOffset, - HasMahPersistent + HasMahPersistent, + MultiposPots, + MultiposPotsPositions }; enum UseContext { diff --git a/companion/src/firmwares/opentx/opentxeeprom.cpp b/companion/src/firmwares/opentx/opentxeeprom.cpp index a238d344d..0febeaf4e 100644 --- a/companion/src/firmwares/opentx/opentxeeprom.cpp +++ b/companion/src/firmwares/opentx/opentxeeprom.cpp @@ -56,21 +56,29 @@ class SwitchesConversionTable: public ConversionTable { addConversion(RawSwitch(SWITCH_TYPE_VIRTUAL, i), val++); } + if (IS_TARANIS(board) && version >= 216) { + for (int i=0; i<2; i++) { + for (int j=0; j<6; j++) { + addConversion(RawSwitch(SWITCH_TYPE_MULTIPOS_POT, i*6+j), val++); + } + } + } + addConversion(RawSwitch(SWITCH_TYPE_OFF), -val); addConversion(RawSwitch(SWITCH_TYPE_ON), val++); for (int i=1; i<=MAX_SWITCHES_POSITION(board); i++) { int s = switchIndex(i, board, version); - addConversion(RawSwitch(SWITCH_TYPE_MOMENT_SWITCH, -s), -val); + // addConversion(RawSwitch(SWITCH_TYPE_MOMENT_SWITCH, -s), -val); addConversion(RawSwitch(SWITCH_TYPE_MOMENT_SWITCH, s), val++); } for (int i=1; i<=MAX_CUSTOM_SWITCHES(board, version); i++) { - addConversion(RawSwitch(SWITCH_TYPE_MOMENT_VIRTUAL, -i), -val); + // addConversion(RawSwitch(SWITCH_TYPE_MOMENT_VIRTUAL, -i), -val); addConversion(RawSwitch(SWITCH_TYPE_MOMENT_VIRTUAL, i), val++); } - addConversion(RawSwitch(SWITCH_TYPE_ONM, 1 ), -val); + // addConversion(RawSwitch(SWITCH_TYPE_ONM, 1 ), -val); addConversion(RawSwitch(SWITCH_TYPE_ONM, 0 ), val++); addConversion(RawSwitch(SWITCH_TYPE_TRN, 0), val++); addConversion(RawSwitch(SWITCH_TYPE_TRN, 1), val++); @@ -2011,12 +2019,21 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE if (version >= 213 || (!IS_ARM(board) && version >= 212)) internalField.Append(new UnsignedField<16>(generalData.variant)); - for (int i=0; i(generalData.calibMid[i])); - for (int i=0; i(generalData.calibSpanNeg[i])); - for (int i=0; i(generalData.calibSpanPos[i])); + if (version >= 216) { + for (int i=0; i(generalData.calibMid[i])); + internalField.Append(new SignedField<16>(generalData.calibSpanNeg[i])); + internalField.Append(new SignedField<16>(generalData.calibSpanPos[i])); + } + } + else { + for (int i=0; i(generalData.calibMid[i])); + for (int i=0; i(generalData.calibSpanNeg[i])); + for (int i=0; i(generalData.calibSpanPos[i])); + } internalField.Append(new UnsignedField<16>(chkSum)); internalField.Append(new UnsignedField<8>(generalData.currModel)); @@ -2110,8 +2127,11 @@ Open9xGeneralDataNew::Open9xGeneralDataNew(GeneralSettings & generalData, BoardE internalField.Append(new SignedField<8>(generalData.varioVolume)); internalField.Append(new SignedField<8>(generalData.backgroundVolume)); } - if (version >= 216) { + if (IS_TARANIS(board) && version >= 216) { internalField.Append(new UnsignedField<8>(generalData.hw_uartMode)); + for (int i=0; i<8; i++) { + internalField.Append(new UnsignedField<1>(generalData.potsType[i])); + } } } } diff --git a/companion/src/firmwares/opentx/opentxinterface.cpp b/companion/src/firmwares/opentx/opentxinterface.cpp index 178dcf5a1..b70ef9d8a 100644 --- a/companion/src/firmwares/opentx/opentxinterface.cpp +++ b/companion/src/firmwares/opentx/opentxinterface.cpp @@ -682,6 +682,10 @@ int Open9xInterface::getCapability(const Capability capability) return (IS_STOCK(board) ? false : true); case HasMahPersistent: return (IS_ARM(board) ? true : false); + case MultiposPots: + return IS_TARANIS(board) ? 2 : 0; + case MultiposPotsPositions: + return IS_TARANIS(board) ? 6 : 0; default: return 0; } diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index 1c69e2207..97ef84275 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -842,6 +842,8 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr, return; } +#if 0 + // TODO check ... I removed negative toggle switches in the FW, no? if (attr & POPULATE_MSWITCHES) { if (attr & POPULATE_ONOFF) { item = RawSwitch(SWITCH_TYPE_ONM, 1); @@ -860,6 +862,7 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr, if (item == value) b->setCurrentIndex(b->count()-1); } } +#endif if (attr & POPULATE_ONOFF) { item = RawSwitch(SWITCH_TYPE_OFF); @@ -905,6 +908,14 @@ void populateSwitchCB(QComboBox *b, const RawSwitch & value, unsigned long attr, if (item == value) b->setCurrentIndex(b->count()-1); } + if (IS_TARANIS(GetEepromInterface()->getBoard())) { + for (int i=0; igetCapability(MultiposPots) * GetEepromInterface()->getCapability(MultiposPotsPositions); i++) { + item = RawSwitch(SWITCH_TYPE_MULTIPOS_POT, i); + b->addItem(item.toString(), item.toValue()); + if (item == value) b->setCurrentIndex(b->count()-1); + } + } + if (attr & POPULATE_ONOFF) { item = RawSwitch(SWITCH_TYPE_ON); b->addItem(item.toString(), item.toValue()); diff --git a/radio/src/myeeprom.h b/radio/src/myeeprom.h index d0b1147d1..0a0eaffcf 100644 --- a/radio/src/myeeprom.h +++ b/radio/src/myeeprom.h @@ -245,8 +245,8 @@ enum BeeperMode { #if defined(PCBTARANIS) #define EXTRA_GENERAL_FIELDS \ EXTRA_GENERAL_FIELDS_ARM \ - uint8_t potsType; \ - uint8_t hw_uartMode; + uint8_t hw_uartMode; \ + uint8_t potsType; #elif defined(CPUARM) #define EXTRA_GENERAL_FIELDS EXTRA_GENERAL_FIELDS_ARM #elif defined(PXX) From e44c49f189338dea058d8c079b86223894fbfd71 Mon Sep 17 00:00:00 2001 From: Jacek Drewniak Date: Fri, 31 Jan 2014 19:47:04 +0100 Subject: [PATCH 12/16] Translation of Companion + changes in core files to make translation file aviable --- companion/src/CMakeLists.txt | 2 +- companion/src/translations.qrc.in | 1 + companion/src/translations/companion_pl.ts | 10120 +++++++++++++++++++ 3 files changed, 10122 insertions(+), 1 deletion(-) create mode 100644 companion/src/translations/companion_pl.ts diff --git a/companion/src/CMakeLists.txt b/companion/src/CMakeLists.txt index 6b028706a..0f7ca9cd5 100644 --- a/companion/src/CMakeLists.txt +++ b/companion/src/CMakeLists.txt @@ -296,7 +296,7 @@ INCLUDE_DIRECTORIES( ${CMAKE_BINARY_DIR} ) INCLUDE_DIRECTORIES( ${CMAKE_SOURCE_DIR} ) -SET( LANGUAGES he pt ru de fr it sv cs ) +SET( LANGUAGES he pl pt ru de fr it sv cs ) FOREACH( language ${LANGUAGES} ) SET( companion_TS ${companion_TS} translations/companion_${language}.ts ) ENDFOREACH( language ) diff --git a/companion/src/translations.qrc.in b/companion/src/translations.qrc.in index 434cbd225..792ed43c9 100644 --- a/companion/src/translations.qrc.in +++ b/companion/src/translations.qrc.in @@ -4,6 +4,7 @@ companion_de.qm companion_he.qm companion_it.qm + companion_pl.qm companion_pt.qm companion_ru.qm companion_sv.qm diff --git a/companion/src/translations/companion_pl.ts b/companion/src/translations/companion_pl.ts new file mode 100644 index 000000000..6d147fec1 --- /dev/null +++ b/companion/src/translations/companion_pl.ts @@ -0,0 +1,10120 @@ + + + + + Channels + + + Name + Nazwa + + + + Offset + Wyrównanie + + + + Min + Min + + + + Max + Maks + + + + Invert + Odwróć + + + + Center + Centrowanie + + + + Sym + Sym + + + + Channel %1 + Kanały %1 + + + + --- + --- + + + + INV + Odwr + + + + CurveGroup + + + Diff + Róźnicowość + + + + Expo + Expo + + + + Func + Funkcja + + + + Curve + Krzywa + + + + Curves + + + Form + Formularz + + + + Standard + Standard + + + + Custom + Ustawienia Własne + + + + Lines + Linie + + + + Smooth + Gładkie + + + + Curve type + Typy Krzywej + + + + Curve name + Nazwa krzywej + + + + Curve %1 + Krzywa %1 + + + + %1 points + %1 punktowa + + + + Are you sure you want to reset curve %1 ? + Jesteś pewien by zresetować krzywą %1 ? + + + + Editing curve %1 + Edycja krzywej k%1 + + + + Not enough free points in EEPROM to store the curve. + Za mało wolnych punktów w eepromie by zapamiętać krzywą. + + + + CustomFunctionsPanel + + + Switch + Przełącznik + + + + Action + Akcja + + + + Parameters + Parametry + + + + Enable + Włączone + + + + ON + Włącz + + + + Error + Błąd + + + + Unable to find sound file %1! + Nie mogę odnaleźć pliku dźwiękowego %1! + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + CustomSwitchesPanel + + + Condition + Warunek + + + + V1 + Wartość 1 + + + + V2 + Wartość 2 + + + + AND + I (logiczne) + + + + Duration + Czas trwania + + + + Delay + Opóźnienie + + + + + LS%1 + PL%1 + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + Dialog + + + Dialog + Formularz + + + + Curve type + Typy Krzywych + + + + Coefficient + Współczynnik + + + + Both + Obie + + + + x>0 + x>0 + + + + x<0 + x<0 + + + + Y at X=0 + Y dla X=0 + + + + Side + Strona + + + + Y at X=-100 + Y dla X=-100 + + + + Y at X=100 + Y dla X=100 + + + + Linear + Liniowa + + + + Single Expo + Pojedyncze expo (wykładnicza) + + + + Symmetrical f(x)=-f(-x) + Symetryczna (nieparzysta) f(x)=-f(-x) + + + + Symmetrical f(x)=f(-x) + Symetryczna (parzysta) f(x)=f(-x) + + + + ExpoDialog + + + Weight + Waga + + + + Switch used by the input. +If blank then the input is considered to be "ON" all the time. + Przełącznik używany przez Wejście, jeśli pole jest puste: będzie uznane za "WŁĄCZONE" przez cały czas. + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Delay ans Slow</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These values control the speed and delay of the output of the mix. </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Delay is not zero the actuation of the mix will be delayed by the specified amount of seconds.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Slow is not zero then the speed of the mix will be set by the value specified -&gt; the value states the number of seconds it takes to transit from -100 to 100.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Opóźnienie i spowolnienie</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Te wartośći określają prędkość i opóźnienie wyjścia mikserów </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli opóżnienie nie jest równe 0 aktywacja miksera zostanie opózniona o określoną ilość sekund.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli spowolnienie nie jest równe 0 wtedy prędkość miksera zostanie ustawiona na podaną wartość-&gt; wartość oznacza liczbę sekund jaką mikser potrzebuje by pokonać drogę od -100 do 100.</p></body></html> + + + + Scale + Skala + + + + Include Trim + Uwzględnij trymer + + + + No + Nie + + + + Yes + Tak + + + + Curve + Krzywa + + + + The source for the mixer + Źródło miksera + + + + Input name + Wprowadź Nazwę + + + + + GV + ZG + + + + Phase used by the input. + Faza lotu używana przez Wejście. + + + + Flight modes + Fazy lotu + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + Switch + Przełącznik + + + + The curve used by the input + Krzywa używana przez Wejście + + + + Source + Źródło + + + + Line name + Nazwa linii + + + + Stick Side + Strona drążka + + + + NEG + x<0(Ujemnie) + + + + POS + x>0(Dodatnio) + + + + ALL + Wszystkie + + + + Edit %1 + Edycja %1 + + + + Rud + SK + + + + Ele + SW + + + + Thr + Gaz + + + + Ail + Lotki + + + + FlightMode + + + Form + Formularz + + + + Fade In + Spowolnienie aktywacji + + + + Fade Out + Spowolnienie wyłączania + + + + Name + Nazwa + + + + Switch + Przełącznik + + + + trim1 + trymer 1 + + + + trim2 + trymer 2 + + + + trim4 + trymer 4 + + + + trim3 + trymer 3 + + + + Rud + SK + + + + Ele + SW + + + + Thr + Gaz + + + + Ail + Lotki + + + + Rotary Encoder %1 + Pokrętło %1 + + + + GVAR%1 + ZmGl%1 + + + + FlightModes + + + Flight Mode %1 + Faza lotu %1 + + + + (%1) + (%1) + + + + (default) + (bazowa) + + + + GeneralEdit + + + General Edit + Główne ustawienia + + + + Store calib. and hw settings in selected profile + Zapamiętanie kalibracji i ustawień HW w wybranym profilu + + + + Retrieve calib. and hw settings from profile + Odtworzenie kalibracji i ustawień HW z profilu + + + + General settings used throught the transmitter. +These will be relevant for all models in the same EEPROM. + Główne ustawienia radia. +Będą one obowiązywać dla wszystkich modeli w tym samym EEPROM-ie. + + + + Setup + Ustawienia + + + + Timer Beeps + Pikanie timerów + + + + Contrast + Kontrast + + + + Channel Order (For Templates) + Kolejność kanałów (dla szablonów) + + + + Owner Name + Imię użytkownika + + + + Mode selection: + +Mode 1: + Left stick: Elevator, Rudder + Right stick: Throttle, Aileron + +Mode 2: + Left stick: Throttle, Rudder + Right stick: Elevator, Aileron + +Mode 3: + Left stick: Elevator, Aileron + Right stick: Throttle, Rudder + +Mode 4: + Left stick: Throttle, Aileron + Right stick: Elevator, Rudder + + + Wybór mode: + +Mode 1: + Lewa ręka : Ster Wysokości, Ster Kierunku + Prawa ręka : Gaz, Lotki + +Mode 2: + Lewa ręka : Gaz, Ster Kierunku + Prawa ręka : Ster Wysokości, Lotki + +Mode 3: + Lewa ręka : Ster Wysokości, Lotki + Prawa ręka : Gaz, Ster Kierunku + +Mode 4: + Lewa ręka : Gaz, Lotki + Prawa ręka : Ster Wysokości, Ster Kierunku + + + + + + Mode 1 (RUD ELE THR AIL) + Mod 1 (SK.SW.Gaz.Lot) + + + + Mode 2 (RUD THR ELE AIL) + Mod 2 (SK.Gaz.SW.Lot) + + + + Mode 3 (AIL ELE THR RUD) + Mod 3 (Lot.SW.Gaz.SK) + + + + Mode 4 (AIL THR ELE RUD) + Mod 4 (Lot.Gaz.SW.SK) + + + + + Quiet + Cichy + + + + Only Alarms + Tylko Alarmy + + + + + No Keys + Bez przycisków + + + + + All + Wszystkie + + + + MAVLink Baud Rate + Prędkość przesyłu MAVLink + + + + 4800 Baud + 4800 bps + + + + 9600 Baud + 9600 bps + + + + 14400 Baud + 14400 bps + + + + 19200 Baud + 19200 bps + + + + 38400 Baud + 38400 bps + + + + 57600 Baud + 57600 bps + + + + 76800 Baud + 76800 bps + + + + 115200 Baud + 115200 bps + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Single Beep Every whole Minute</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Jedno piknięcie co każdą pełną minutę</span></p></body></html> + + + + Every Minute + Co minutę + + + + Beeps at 30, 15, 10, and down from5 seconds + Sygnały w 30s, 15s, 10s i odliczanie od 5 sekund do 0 + + + + Count Down to Zero + Odliczanie do zera + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Flash backlight on timer beep</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Błyśnij podświetlaniem przy piknięciu timera</span></p></body></html> + + + + Flash on beep + Błyskanie w czasie sygnału + + + + If this value is not 0, any keypress will turn on the backlight and turn it off after the specified number of seconds. + Jeśli ta wartość jest różna od 0, każde naciśnięcie klawisza włączy podświetlenie, które zgaśnie po ustalonej liczbie sekund. + + + + + sec + s + + + + Input Filter + Wprowadź filtr + + + + + + + + + + + + Beeper volume + +0 - Quiet. No beeps at all. +1 - No Keys. Normal beeps but menu keys do not beep. +2 - Normal. +3 - Loud. +4 - Extra loud. + Głośność piknięć + +0 -Cicho. Żadnych piknięć. +1 - Bez przycisków. Normalne piknięcia ale bez pikania dla przycisków menu. +2 - Normalna. +3 - Głośna. +4 - Bardzo głośna. + + + + Alarms Only + Tylko alarmy + + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These will define startup warnings.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Throttle warning - will alert if the throttle is not at idle during startup</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Switch warning - will alert if switches are not in their defaul position</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Memory warning - will alert if there's not a lot of memory left</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Silent mode warning - will alert you if the beeper is set to quiet (0)</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" text-decoration: underline;">Warnings</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">To ustawienie definiuje ostrzeżenia startowe.</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie gazu - będzie ostrzegało gdy gaz nie jest na 0</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie o przełącznikach - będzie ostrzegało gdy przełączniki nie są w pozycji bazowej</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie pamięci - będzie ostrzegało gdy pozostało juz niewiele wolnej pamięci</p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Ostrzeżenie cichej pracy - będzie ostrzegało gdy pikanie jest ustawione na cicho(0)</p></body></html> + + + + Beeper Mode + Tryb pikania + + + + + + + Off + Wyłączony + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">LCD Screen Contrast</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Values can be 20-45</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Kontrast ekranu LCD</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:8pt;">Wartości z zakresu 20-45</span></p></body></html> + + + + Memory Startup Warning + Ostrzeżenie o małym zapasie pamięci + + + + + X-Short + Bardzo krótka + + + + + Short + Krótka + + + + + Normal + Normalna + + + + + Long + Długa + + + + + X-Long + Bardzo długa + + + + Battery warning voltage. +This is the threashhold where the battery warning sounds. + +Acceptable values are 5v..10v + Ostrzeżenie o napięciu zasilania. +Ustala próg ostrzeżenia. + +Dopuszczalne wartości 5v-10v + + + + Battery Warning + Ostrzeżenie o zasilaniu + + + + THR + Gaz + + + + RUD + SK + + + + ELE + SW + + + + AIL + Lotki + + + + GEA + + + + + ID0 + + + + + ID1 + + + + + ID2 + + + + + Sound Mode + Tryb dźwiękowy + + + + Pot Scrolling Enable + Przewijanie potencjometrem włączone + + + + Battery Calibration + Kalibracja zasilania + + + + If not zero will sound beeps if the transmitter has been left without inputs for the specified number of minutes. + Radio zasygnalizuje dźwiękiem brak aktywności po określonej liczbie minut. 0- wyłącza tę funkcję. + + + + min + Min + + + + + Show splash screen on startup + Pokazuj ekran startowy z logo + + + + Battery calibration: +This value will be added to the measured battery voltage. Use this value to calibrate the meter with an external meter. + Kalibracja zasilania: +Ta wartość będzie dodana do zmierzonej wartości napięcia zasilania. Użyj tej wartości w celu kalibracji wyświetlanego napięcia aby było zgodne z napięciem wskazywanym przez miernik. + + + + Single + Pojedynczy + + + + Oversample + + + + + Filter + Filtr + + + + Show Splash Screen on Startup + Pokazuj ekran startowy z logo + + + + Inactivity Timer + Timer bezczynności + + + + Beeper + Pikanie + + + + Speaker + Głośnik + + + + BeeperVoice + Pikanie i głosy + + + + SpeakerVoice + Głośnik i głosy + + + + Beeper Length + Długość piknięcia + + + + GPS Coordinates + Koordynaty GPS + + + + hh° (N/S) mm' ss''.dd + hh° (N/S) mm' ss''.dd + + + + NMEA + + + + + Timeshift from UTC + Strefa czasowa względem UTC + + + + Channel order + +This is used by the templated to determine which channel goes to what number output. + Kolejność kanałów + +To ustawienie jest używane przez szablony, określa jakie wyjście przypisane jest do kanału. + + + + Speaker Pitch (spkr only) + Wysokość tonów (tylko dźwięki) + + + + Haptic Mode + Tryb wibracji + + + + Stick Mode + Mod drążków + + + + Show Owner Name on Splash + Pokaż imię pilota na ekranie + + + + Telemetry NO DATA Alarm + Telemetria: Alarm braku danych + + + + LCD Display Type + Typ ekranu LCD + + + + Standard + Standard + + + + Optrex + + + + + This is the switch selectrion for turning on the backlight (if installed). + + + To jest przełącznik do włączenia podświetlenia (jeśli zainstalowane). + + + + Speaker Volume + Głośność dźwięków + + + + Haptic Length + Długość wibracji + + + + Haptic Strength + Siła wibracji + + + + BackLight Brightness + Jasność podświetlenia + + + + Alarm Warning + Ostrzeżenie alarmowe + + + + BackLight Auto OFF after + Podświetlenie. Automatyczne wyłącznie po + + + + Bandgap Measuring Enable + Włączone pomiary pasma + + + + RotEnc Navigation + Nawigacja pokrętłem + + + + BackLight Switch + Przełącznik podświetlania + + + + BackLight On Stick Move + Podświetlenie włączone przy ruchu drążka + + + + BackLight Invert + Odwróć podświetlanie + + + + Country Code + Kod kraju + + + + Europe + Europa + + + + Japan + Japonia + + + + America + Ameryka + + + + Metric + Metryczne + + + + Imperial + Imperialne + + + + Measurement Units + Jednostki miar + + + + FrSky Internal Alarm + Wewnętrzny alarm FrSky + + + + StickScroll + Przewijanie drążkiem + + + + PPMSim + + + + + Voice Language + Język komunikatów + + + + CrossTrim + Trymery krzyżowe + + + + Beep volume + Głośność sygnałów + + + + Wav volume + Głośność WAV + + + + Vario volume + Głośność wariometru + + + + Background volume + Głośność tła + + + + FAI Mode + Tryb FAI + + + + If you enable FAI, you loose the vario, the play functions, the telemetry screen. This function cannot be disabled by the radio. + Jeśli uaktywnisz tryb FAI, utracisz informacje o wariometrze, funkcje odtwarzania i ekrany telemetrii. Ten tryb nie może być dezaktywowany. + + + + Readonly Unlock + Odblokuj "Tylko do odczytu" + + + + SC + + + + + SE + + + + + SA + + + + + SF + + + + + SH + + + + + SD + + + + + SB + + + + + SG + + + + + Trainer + Trener + + + + Mode + Tryb + + + + Input + Wejście + + + + Weight + Waga + + + + Switch + Przełącznik + + + + + PPM 1 + PPM 1 + + + + + + + chn1 + Kanał 01 + + + + + + + chn2 + Kanał 02 + + + + + + + chn3 + Kanał 03 + + + + + + + chn4 + Kanał 04 + + + + + PPM 2 + PPM 2 + + + + + PPM 3 + PPM 3 + + + + + PPM 4 + PPM 4 + + + + Telemetry + Telemetria + + + + RSSI Alarm 1 + Alarm RSSI 1 + + + + + ---- + ---- + + + + + Yellow + Żółty + + + + + Orange + Pomarańczowy + + + + + Red + Czerwony + + + + RSSI Alarm 2 + Alarm RSSI 2 + + + + NO DATA Alarm + Alarm braku danych + + + + Calibration + Kalibracja + + + + POT 4 + Potencjometr 04 + + + + STICK 3 + Drążek 03 + + + + + Negative span + Ujemny zakres + + + + + Mid value + Wartość środkowa + + + + + Positive span + Dodatni zakres + + + + STICK 1 + Drążek 01 + + + + STICK 2 + Drążek 02 + + + + STICK 4 + Drążek 04 + + + + POT 1 + Potencjometr 01 + + + + POT 2 + Potencjometr 02 + + + + POT 3 + Potencjometr 03 + + + + + + + += (Sum) + += (Suma) + + + + + + + := (Replace) + := (Zastąpienie) + + + + Battery + Zasilanie + + + + v + V + + + + PPM Multiplier + Mnożnik PPM + + + + Current + Natężenie + + + + If you enable FAI, you loose the vario, the play functions, the telemetry screen. +This function cannot be disabled by the radio. +Are you sure ? + Jeśli uaktywnisz tryb FAI, utracisz informacje o wariometrze, +funkcje odtwarzania i ekrany telemetrii. Ten tryb nie może być dezaktywowany. +Jesteś pewien ? + + + + + Warning + Ostrzeżenie + + + + Wrong data in profile, radio calibration was not retrieved + Błędne dane w profilu, kalibracja nie została odzyskana + + + + Wrong data in profile, hw related parameters were not retrieved + Błędne dane w profilu, parametry HW nie zostały odzyskana + + + + Do you want to store calibration in %1 profile<br>overwriting existing calibration? + Chcesz zapamiętać dane kalibracji profilu %1<br> Zastąpią one aktualne dane kalibracji? + + + + Calibration and HW parameters saved. + Kalibracja i parametry HW zapamiętane. + + + + Heli + + + Form + Formularz + + + + Invert Elevator + Odwróć SW + + + + Invert Aileron + Odwróć lotki + + + + Invert Collective + Odwróć Pochylenie (Collective) + + + + Invert + Odwróć + + + + Off + Wyłącz + + + + 120 + 120 + + + + 120X + 120X + + + + 140 + 140 + + + + 90 + 90 + + + + Collective + Pochylenie (collective) + + + + Swash Type + Typ tarczy + + + + Swash Ring + Pierścień tarczy + + + + InputsPanel + + + + Move Up + W górę + + + + + Ctrl+Up + Ctrl+Up + + + + + Move Down + W dół + + + + + Ctrl+Down + Ctrl+Down + + + + Clear All Settings + Wyczyść wszytkie ustawienia + + + + Source(%1) + Źródło(%1) + + + + No Trim + Bez trymera + + + + Weight(%1) + Waga(%1) + + + + Switch(%1) + Przełącznik(%1) + + + + Not enough available inputs! + Za mało dostępnych wejść! + + + + Delete Selected Inputs? + Skasować Wybrane Wejścia? + + + + &Add + &Dodaj + + + + Ctrl+A + Ctrl+A + + + + &Edit + &Edycja + + + + Enter + Enter + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + Du&plicate + &Zduplikuj + + + + Ctrl+U + Ctrl+U + + + + Clear Inputs? + Wyczyść Wejścia? + + + + Really clear all the inputs? + Czy na pewno wyczyścić wszystkie wejścia? + + + + MainWindow + + + + + + File loaded + Plik załadowany + + + + Display previous warning again at startup ? + Wyświetlić poprzednie ostrzeżenie przy uruchomieniu? + + + + Checking for updates + Sprawdź aktualizacje + + + + + + + + Unable to check for updates. + Nie mogę sprawdzić aktualizacji. + + + + + + + + Save As + Zapisz jako + + + + Executable (*.exe) + Wykonywalny (*.exe) + + + + New release available + Dostępne jest nowe wydanie + + + + + No updates available at this time. + Brak aktualizacji dostępnych teraz. + + + + Would you like to launch the installer? + Chcesz uruchomić instalator? + + + + + + + + + + + + + + + + Error + Błąd + + + + + + + + Error opening file %1: +%2. + Błąd otwarcia pliku %1: +%2. + + + + Compilation server termporary failure, try later + Serwer kompilacji chwilowo nieczynny, spróbuj później + + + + Display previous message again at startup ? + Czy ponownie wyświetlić poprzednią informację przy uruchomieniu? + + + + Compilation server temporary failure, try later + Serwer kompilacji chwilowo nieczynny, spróbuj później + + + + + Compilation server too busy, try later + Serwer kompilacji zbyt zajęty, spróbuj później + + + + + Unknown server failure, try later + Nieznany błąd serwera, spróbuj później + + + + Firmware %1 does not seem to have ever been downloaded. +Version %2 is available. +Do you want to download it now ? + Firmware %1 nigdy nie zostało pobrane. +Dostępna jest wersja %2 +Pobrać teraz? + + + + + + Yes + Tak + + + + + No + Nie + + + + + Release Notes + Informacje o wydaniu + + + + + Do you want to download release %1 now ? + Chcesz pobrać wydanie %1 teraz? + + + + A new version of %1 firmware is available (current %2 - newer %3). +Do you want to download it now ? + Jest dostępna nowa wersja firmware %1 +(aktualna %2 - nowsza %3) +Chcesz pobrać teraz? + + + + Ignore this version (r%1)? + Zignorować wersję (r%1)? + + + + Release notes contain very important informations. Do you want to see them now ? + Opis wydania zawiera bardzo ważne informacje. Chcesz je przeczytać teraz? + + + + + File saved + Plik zapisany + + + + Firmware updates + Aktualizacja firmware + + + + Current firmware does not provide release notes informations. + Aktualny firmware nie zawiera opisu wydania. + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + + + + + Taranis radio not found + Nie znaleziono Radia Taranis + + + + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. + Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. + + + + + + Backup is impossible + Backup jest niemożliwy do wykonania + + + + + + The backup dir set in preferences does not exist + Brak ustawień ścieżki backupu + + + + + Warning + Ostrzeżenie + + + + Conversion failed + Konwersja nieudana + + + + Restore failed + Zapis nieudany + + + + Backup failed + Backup nieudany + + + + Copyright + + + + + + &%1 %2 + + + + + + + Companion - Models and Settings Editor - %1 - profile %2 + Companion - Edytor Modeli i Ustawień - %1 - profil %2 + + + + + + + Companion - Models and Settings Editor - %1 + Companion - Edytor Modeli i Ustawień - %1 + + + + A new version of Companion is available (version %1)<br>Would you like to download it? + Dostępna jest nowy Companion (wersja %1)<br>Chcesz ją pobrać ? + + + + A new release of Companion is available please check the OpenTX website! + Nowe wydanie Companion jest dostępne, proszę sprawdzić stronę OpenTX! + + + + Firmware does not longer fit in the Tx, due to selected firmware options + Firmware już nie mieści się w pamięci radia ze względu na wybrane parametry + + + + + Compilation server requires registration, please check OpenTX web site + Serwer kompilacji wymaga rejestracji, proszę odwiedzić stronę OpenTX + + + + Firmware does not fit in the Tx, due to selected firmware options + Firmware już nie mieści się w pamięci radia ze względu na wybrane parametry + + + + Do you want to write the firmware to the transmitter now ? + Chcesz wgrać firmware do radia teraz? + + + + Open + Otwórz + + + + + + + Read Models and Settings From Tx + Wczytaj Modele i Ustawienia z radia + + + + Write Models and settings from %1 to the Tx? + Czy zapisać Modele i Ustawienia z %1 do radia ? + + + + The file %1 +has not been recognized as a valid Models and Settings file +Write anyway ? + Plik %1 +nie został rozpoznany jako prawidłowy pli Modeli i Ustawień. +Czy mimo wszystko zapisać? + + + + + + + + + Backup Models and Settings From Tx + Zbakupuj Modele i Ustawienia z radia + + + + Cannot check Models and Settings compatibility! Continue anyway? + Nie mogę potwierdzić kompatybilności Modeli i Ustawień. Kontynuować? + + + + The transmitter firmware belongs to another product family, check file and preferences! + Firmwqare radia nalezy do innej rodziny produktów, sprawdź plik i preferencje ! + + + + The transmitter firmware is outdated, please upgrade! + Firmware radia jest przestarzały, proszę zaktualizować! + + + + Write Models and Settings To Tx + Zapisz Modele i Ustawienia do radia + + + + + Write Firmware To Tx + Zapisz firmware do radia + + + + Cannot convert Models and Settings for use with this firmware, original data will be used + Nie mogę skonwertować Modeli i Ustawień na ten rodzaj firmware, zostaną użyte oryginalne dane + + + + Restore Models and Settings To Tx + Odtwórz Modele i Ustawienia do radia + + + + Could not restore Models and Settings to TX. The models and settings data file can be found at: %1 + Nie mogę odtworzyć Modeli i Ustawień do radia. Plik modeli i ustawień mozna znaleźć w: %1 + + + + Firmware write failed + Zapis firmawe nie powiódł się + + + + Could not write firmware to to transmitter. The models and settings data file can be found at: %1 + Nie mogę zapisać Firmware do radia. Plik modeli i ustawień mozna znaleźć w: %1 + + + + Cannot backup existing Models and Settings from TX. Firmware write process aborted + Nie mogę zbackupować Modeli i Ustawień z radia, Zapis Firmawe przerwany + + + + Save transmitter Models and Settings to File + Zapisz Modele i Ustawienia z radia do pliku + + + + Impossible to identify the radio on your system, please verify that the eeprom disk is connected. + Identyfikacja radia niemożliwa w Twoim systemie, proszę sprawdzić podłączony dysk eeprom. + + + + Read Tx Firmware to File + Odczytaj firmware z radia do pliku + + + + OpenTX Home Page: <a href='%1'>%1</a> + Strona domowa OpenTX: <a href='%1'>%1</a> + + + + The OpenTX Companion project was originally forked from <a href='%2'>eePe</a> + Projekt Companion odłączony z oryginalnego <a href='%2'>eePe</a> + + + + If you've found this program useful, please support by <a href='%1'>donating</a> + Jeśli uważasz, że ten program jest użyteczny, wesprzyj poprzez <a href='%1'>donację</a> + + + + Version %1, %3 + Wersja %1, %3 + + + + About Companion + O aplikacji Companion + + + + &New + &Nowy + + + + Create a new file + Utwórz nowy plik + + + + &Open... + &Otwórz... + + + + Open an existing file + Otwórz istniejący plik + + + + &loadBackup... + &Załaduj backup... + + + + Load backup from file + Załaduj backup z pliku + + + + &Save + &Zapisz + + + + Save the document to disk + Zapisz dokument na dysku + + + + Save &As... + Zapisz j&ako... + + + + Save the document under a new name + Zapisz dokument pod nową nazwą + + + + Lo&gs + Lo&gi + + + + Ctrl+G + + + + + Open log file + Otwórz plik logów + + + + &Preferences... + &Preferencje... + + + + Edit general preferences + Edycja głównych ustawień + + + + &Check for updates... + &Sprawdź aktualizacje... + + + + Check for new version of Companion + Sprawdź nową wersję Companion + + + + Show Companion contributors list + Pokaz listę twórców Companion + + + + Show Companion changelog + Zobacz zmiany w Companion + + + + &Write Models and Settings To Tx + &Zapisz Modele i Ustawienia do radia + + + + Write Models and Settings to transmitter + Zapisz Modele i Ustawienia do radia + + + + &Read Models and Settings From Tx + &Wczytaj Modele i Ustawienia z radia + + + + Read Models and Settings from transmitter + Wczytaj Modele i Ustawienia z radia + + + + Write Firmware + Zapisz firmware + + + + Write firmware to transmitter + Zapisz firmware do radia + + + + Write Models and Settings from file to Tx + Zapisz Modele i Ustawienia z pliku do radia + + + + Write Models and Settings from file to transmitter + Zapisz Modele i Ustawienia z pliku do radia + + + + Save transmitter Models and Settings to file + Zapisz Modele i Ustawienia do pliku + + + + Save the Models and Settings from the transmitter to a file + Zapisz Modele i Ustawienia z radia do pliku + + + + Read Firmware + Wczytaj Firmware + + + + Read firmware from transmitter + Wczytaj Firmware z radia + + + + Configure software for reading from and writing to the transmitter + Ustawienia oprogramowania do odczytu i zapisu radia + + + + &Read/Write + &Odczyt/Zapis + + + + Write + Zapis + + + + + Invalid Models and Settings File %1 + Błędny plik %1 Modeli i Ustawień + + + + Invalid binary Models and Settings File %1 + Błędny binarny plik %1 Modeli i Ustawień + + + + Contributors &List... + &Lista twórców... + + + + ChangeLog... + Zmiany... + + + + Firmware ChangeLog... + Zmiany firmware... + + + + Show firmware changelog + Zobacz zmiany w firmware + + + + Compare... + Porównaj... + + + + Compare models + Porównaj modele + + + + Customize your &TX... + &Personalizuj swoje radio... + + + + Customize the splash screen of your TX + Personalizuj obrazek na swoim radiu + + + + E&xit + Za&kończ + + + + Exit the application + Zakończ aplikację companion9x + + + + Cu&t + &Wytnij + + + + Cut the current selection's contents to the clipboard + Wytnij zaznaczenie do schowka + + + + &Copy + &Kopiuj + + + + Copy the current selection's contents to the clipboard + Kopiuj zaznaczenie do schowka + + + + &Paste + &Wklej + + + + Paste the clipboard's contents into the current selection + Wklej zawartość schowka na aktualnej pozycji + + + + Ctrl+Alt+W + + + + + Ctrl+Alt+R + + + + + &Configure... + &Konfiguracja... + + + + &List programmers + &Lista programatorów + + + + List available programmers + Lista dostępnych programatorów + + + + &Fuses... + Ustawienia &mikro-kontrolera... + + + + Show fuses dialog + Pokaż okno ustawień mikro-kontrolera + + + + &Simulate + &Symulator + + + + Alt+S + + + + + Simulate selected model. + Symulacja wybranego modelu. + + + + &Print + &Drukuj + + + + Ctrl+P + + + + + Print current model. + Wydrukuj aktualny model. + + + + &About + &O aplikacji + + + + Show the application's About box + O aplikacji companion9x + + + + + Recent Files + Poprzednie pliki + + + + + Firmware Profiles + Profile firmware + + + + &File + &Plik + + + + &Edit + &Edycja + + + + &Help + &Pomoc + + + + File + Plik + + + + Edit + Edycja + + + + Help + Pomoc + + + + Ready + Gotowe + + + + Unable to find file %1! + Nie mogę znaleźć pliku %1! + + + + Error reading file %1: +%2. + Błąd odczytu pliku %1: +%2. + + + + MdiChild + + + free bytes + wolna pamięć[B] + + + + Editing model %1: + Edycja modelu %1: + + + + + + + + + + + + + + + + + + + + + + Error + Błąd + + + + + Unable to find file %1! + Nie mogę odnaleźć pliku %1! + + + + + + + Error opening file %1: +%2. + Błąd otwarcia pliku %1: +%2. + + + + + Invalid EEPROM File %1 + Zły plik EEPROM %1 + + + + Invalid binary EEPROM File %1 + Nieprawidłowy plik binarny EEPROM %1 + + + + + + + Save As + Zapisz jako + + + + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + + Error writing file %1: +%2. + Błąd zapisu pliku %1: +%2. + + + + Do you want to use model wizard? + Czy chcesz użyć konfiguratora modelu? + + + + + + Companion + Companion + + + + Ask this question again ? + Czy ponownie zapytać ? + + + + + Error reading file %1: +%2. + Błąd odczytu pliku %1: +%2. + + + + %1 has been modified. +Do you want to save your changes? + %1 został zmieniony. +Zapisać? + + + + Backup is impossible + Backup jest niemożliwy + + + + The backup dir set in preferences does not exist + Ustawienia preferencji katalogu backupu nie istnieją + + + + Cannot write temporary file! + Nie mogę zapisać pliku tymczasowego! + + + + + + Taranis radio not found + Nie odnaleziono Radia Taranis + + + + + + Impossible to identify the radio on your system, please verify the eeprom disk is connected. + Identyfikacja radia w Twoim systemie nie jest możliwa, sprawdź dysk eeprom podpięty do komputera. + + + + + + Backup EEPROM From Tx + Backup EEPROM z radia + + + + Cannot check eeprom compatibility! Continue anyway? + Nie mogę sprawdzić kompatybilności EEprom! Kontynuować ? + + + + + Warning + Ostrzeżenie + + + + Firmware in radio is of a different family of eeprom written, check file and preferences! + Firmware w radiu jest różny od zapisanego eepromu, sprawdź plik i ustawienia! + + + + Firmware in flash is outdated, please upgrade! + Firmware w radiu jest przestarzały. Proszę zaktualizować! + + + + Write EEPROM To Tx + Zapis EEPROM do radia + + + + Open + Otwórz + + + + Invalid binary backup File %1 + nieprawidłowy binarny plik %1 + + + + MixerDialog + + + Dialog + + + + + Source + Źródło + + + + + + + The source for the mixer + Źródło miksera + + + + Weight + Waga + + + + Offset + Wyrównanie + + + + Include Trim + Uwzględnij trymer + + + + + + GV + + + + + No + Nie + + + + Yes + Tak + + + + Curve + Krzywa + + + + The curve used by the mix + Krzywa użyta do miksera + + + + Switch used by the mix. +If blank then the mix is considered to be "ON" all the time. + Przełącznik użyty do miksera +Jeśli pusty - mikser będzie stale aktywny. + + + + Switch + Przełącznik + + + + Warning + Ostrzeżenie + + + + Mixer warning. +Setting this value will cause a beep to be emmitted when this value is active. + Ostrzeżenie miksera. +Ustawienie tej wartości spowoduje emitowanie dźwięku kiedy wartość będzie aktywna. + + + + OFF + Wyłącz + + + + 1 Beep + 1 piknięcie + + + + 2 Beep + 2 piknięcia + + + + 3 Beep + 3 piknięcia + + + + Multiplex + Połączenie + + + + Multiplexer + +This determines how mixer values are added. + +"+" means the value of the current mix is added to the previous mixes in the same channel. +"*" means the value of the current mix is amultiplied with the previous mixes in the same channel. +"R" means the value replaces the previous values. If the switch is off the value will be ignored. + Multiplexer + +Ustala w jaki sposób miksery są łączone. + +"+" oznacza dowanie wartości miksera do wcześniejszych mikserów na tym kanale. +"*" oznacza mnożenie wartości miksera przez wcześniejsze miksery na tym kanale. +"R" oznacza zastąpienie wartością miksera, wcześniejszych mikserów na tym kanale. + + + + ADD + Dodawaj + + + + MULTIPLY + Pomnóż + + + + REPLACE + Zastąp + + + + Name + Nazwa + + + + Flight modes + Fazy lotu + + + + Include DR/Expo + Dołącz DR/Expo + + + + 0 + + + + + 1 + + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + Delay + Opóźnienie + + + + Slow + Spowolnienie + + + + Up + Do góry / (+) + + + + Down + Do dołu / (-) + + + + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Delay ans Slow</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">These values control the speed and delay of the output of the mix. </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Delay is not zero the actuation of the mix will be delayed by the specified amount of seconds.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">If Slow is not zero then the speed of the mix will be set by the value specified -&gt; the value states the number of seconds it takes to transit from -100 to 100.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'MS Shell Dlg 2'; font-size:8.25pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">Opóźnienie i spowolnienie</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Te wartośći określają prędkość i opóźnienie wyjścia mikserów </p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli opóżnienie nie jest równe 0 aktywacja miksera zostanie opózniona o określoną ilość sekund.</p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Jeśli spowolnienie nie jest równe 0 wtedy prędkość miksera zostanie ustawiona na podaną wartość-&gt; wartość oznacza liczbę sekund jaką mikser potrzebuje by pokonać drogę od -100 do 100.</p></body></html> + + + + DEST -> X%1 + Cel -> X%1 + + + + DEST -> CH%1%2 + Cel -> KAN%1%2 + + + + Rud + SK + + + + Ele + SW + + + + Thr + Gaz + + + + Ail + Lotki + + + + MixesPanel + + + + Move Up + W górę + + + + + Ctrl+Up + Ctrl+Up + + + + + Move Down + W dół + + + + + Ctrl+Down + Ctrl+Down + + + + Clear Mixes + Wyczyść miksery + + + + + + X%1 + X%1 + + + + + + CH%1%2 + Kan %1%2 + + + + Weight(%1) + Waga(%1) + + + + Switch(%1) + Przełącznik(%1) + + + + No Trim + Bez trymera + + + + No DR/Expo + Bez DR/Expo + + + + Offset(%1) + Wyrównanie(%1) + + + + Delay(u%1:d%2) + Opóźnienie(u%1:d%2) + + + + Slow(u%1:d%2) + Spowolnienie(u%1:d%2) + + + + Warn(%1) + Ostrzeżenie(%1) + + + + Not enough available mixers! + Za mało dostępnych mikserów! + + + + Delete Selected Mixes? + Skasować wybrane miksery? + + + + &Add + &Dodaj + + + + Ctrl+A + Ctrl+A + + + + &Edit + &Edycja + + + + Enter + Enter + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + Ctrl+C + + + + &Cut + &Wytnij + + + + Ctrl+X + Ctrl+X + + + + &Paste + &Wklej + + + + Ctrl+V + Ctrl+V + + + + Du&plicate + &Zduplikuj + + + + Ctrl+U + Ctrl+U + + + + Clear Mixes? + Wyczyść miksery? + + + + Really clear all the mixes? + Czy na pewno wyczyścić wszystkie miksery? + + + + ModelEdit + + + Dialog + + + + + Simulate + Symulacja + + + + Setup + Ustawienia + + + + Heli + Heli + + + + Inputs + Wejścia + + + + Logical Switches + Przełączniki Logiczne + + + + Switch Assignment + Przypisanie Przełączników + + + + Channels + Kanały + + + + Mixes + Miksery + + + + Flight Modes + Fazy lotu + + + + Curves + Krzywe + + + + Telemetry + Telemetria + + + + Clear Curves? + Wyczyść krzywe? + + + + Really clear all the curves? + Czy na pewno wyczyścić wszystkie krzywe? + + + + ModelsListWidget + + + &Edit + &Edycja + + + + &Restore from backup + &Odtworzyć z backupu + + + + &Model Wizard + &Kreator ustawień modelu + + + + &Delete + &Wykasuj + + + + Delete + Wykasuj + + + + &Copy + &Kopiuj + + + + Ctrl+C + + + + + &Cut + &Wytnij + + + + Ctrl+X + + + + + &Paste + &Wklej + + + + Ctrl+V + + + + + D&uplicate + &Zduplikuj + + + + Ctrl+U + + + + + &Use as default + &Użyj jako bazowy + + + + P&rint model + Wy&drukuj model + + + + Alt+R + + + + + &Simulate model + &Zasymuluj model + + + + Alt+S + + + + + General Settings + Główne ustawienia + + + + Delete Selected Models? + Skasować wybrane modele? + + + + + Cannot delete default model. + Nie mogę wykasować bazowego modelu. + + + + Cannot cut default model. + Nie mogę wyciąć bazowego modelu. + + + + Do you want to overwrite TX general settings? + Chcesz nadpisać generalne ustawienia radia? + + + + You are pasting on an not empty model, are you sure? + Wklejasz na niepustym modelu, jesteś pewien? + + + + No free slot available, cannot duplicate + Brak wolnych miejsc, nie mogę zduplikować + + + + Module + + + Form + Formularz + + + + Failsafe Mode + Tryb Failsafe + + + + Start + Start + + + + PPM delay + Opóźnienie PPM + + + + usec + us + + + + Negative + Ujemna + + + + Positive + Dodatnia + + + + RX Number + Numer Odbiornika + + + + Master + Trener + + + + Slave + Uczeń + + + + Polarity + Polaryzacja + + + + Trainer Mode + Tryb trenera + + + + mSec + ms + + + + PPM Frame Length + Długość ramki PPM + + + + Label + Etykieta + + + + + ch + kanał + + + + Channels + Kanały + + + + Hold + Utrzymuj + + + + Custom + Ustawienia Własne + + + + No Pulses + Brak sygnałów + + + + Failsafe Positions + Pozycja Failsave + + + + Protocol + Protokół + + + + ModulePanel + + + Trainer Output + Wyjśćie Trenera + + + + Internal Radio System + Wenętrzny moduł radiowy + + + + External Radio Module + External Radio Module - Internal Radio System - zaznaczyć by opisać spójność nazw angielskich + + Zewnętrzny moduł radiowy + + + + QObject + + + + Rud + SK + + + + + Ele + SW + + + + + Thr + Gaz + + + + + Ail + Lotki + + + + + + P1 + Potencjometr 1 + + + + + + P2 + Potencjometr 2 + + + + + + P3 + Potencjometr 3 + + + + + S1 + Potencjometr 1 + + + + + S2 + Potencjometr 2 + + + + + LS + Lewy suwak + + + + + RS + Prawy suwak + + + + TrmR + Trymer SK + + + + TrmE + Trymer SW + + + + TrmT + Trymer gazu + + + + TrmA + Trymer lotek + + + + + REa + Pokrętło :a + + + + + REb + Pokrętło :b + + + + Batt + Bateria + + + + A1 + Sygnał telemetrii A1 + + + + A2 + Sygnał telemetrii A2 + + + + Alt + Wysokość + + + + Rpm + Obroty + + + + Fuel + Paliwo + + + + T1 + + + + + Tx + + + + + Rx + + + + + SWR + SWR + + + + RSSI + + + + + T2 + + + + + Speed + Prędkość + + + + Dist + Odległość + + + + GPS Alt + Wysokość GPS + + + + Cell + Cela + + + + Cels + Cele + + + + Vfas + + + + + Curr + Natężenie + + + + Cnsp + + + + + Powr + Moc + + + + AccX + + + + + AccY + + + + + AccZ + + + + + HDG + + + + + VSpd + + + + + A1- + + + + + A2- + + + + + Alt- + + + + + Alt+ + + + + + Rpm+ + + + + + T1+ + + + + + T2+ + + + + + Spd+ + + + + + Dst+ + + + + + Cur+ + + + + + ACC + + + + + Time + + + + + Pwr+ + + + + + + LS1 + PL1 + + + + + LS2 + PL2 + + + + + LS3 + PL3 + + + + + LS4 + PL4 + + + + + LS5 + PL5 + + + + + LS6 + PL6 + + + + + LS7 + PL7 + + + + + LS8 + PL8 + + + + + LS9 + PL9 + + + + + LSA + PLA + + + + + LSB + PLB + + + + + LSC + PLC + + + + + LSD + PLD + + + + + LSE + PLE + + + + + LSF + PLF + + + + + LSG + PLG + + + + + LSH + PLH + + + + + LSI + PLI + + + + + LSJ + PLJ + + + + + LSK + PLK + + + + + LSL + PLL + + + + + LSM + PLM, + + + + + LSN + PLN + + + + + LSO + PLO + + + + + LSP + PLP + + + + + LSQ + PLQ + + + + + LSR + PLR + + + + + LSS + PLS + + + + + LST + PLT + + + + + LSU + PLU + + + + + LSV + PLV + + + + + LSW + PLW + + + + Input %1 + Wejście %1 + + + + MAX + + + + + ONE + Jeden + + + + !ONE + Nie Jeden + + + + TRNs + + + + + TRNl + + + + + REAs + + + + + REAl + + + + + CYC%1 + + + + + PPM%1 + + + + + CH%1%2 + Kan %1%2 + + + + X%1 + + + + + + + + ---- + + + + + + + THR + THR + + + + RUD + SK + + + + ELE + SW + + + + ID0 + ID0 + + + + ID1 + ID1 + + + + ID2 + ID2 + + + + AIL + Lotki + + + + GEA + GEA + + + + TRN + TRN + + + + + ON + Włącz + + + + + OFF + Wyłącz + + + + Diff(%1) + Róźnicowość(%1) + + + + Expo(%1) + Expo(%1) + + + + Function(%1) + Funkcja(%1) + + + + Curve(%1) + Krzywa(%1) + + + + !Curve(%1) + !Krzywa(%1) + + + + th9x + + + + + er9x + + + + + + Support for frsky telemetry mod + Wsparcie dla telemetrii FrSky + + + + + Support for jeti telemetry mod + Wsparcie telemetrii JETI + + + + + Support for receiving ardupilot data + Wsparcie dla otrzymywania danych ardupilota + + + + + Support for receiving NMEA data + Wsparcie dla otrzymywania danych NMEA + + + + Support for telemetry easy board + Wsparcie dla platformy TelemetrEZ + + + + + Support for MAVLINK devices + Wsparcie urządzeń MAVLINK + + + + Rotary Encoder use in menus navigation + Użycie pokrętła do nawigacji w menu + + + + Possibility to enable FAI MODE at field + Umożliwienie uaktywniania tryb FAI w menu + + + + FAI MODE always enabled + Tryb FAI zawsze aktywny + + + + openTx for 9X board + openTx dla platformy 9X + + + + + + + + Enable heli menu and cyclic mix support + Uaktywnione menu Heli i wsparcie dla cyklicznych mikserów + + + + + + + + + Enable TEMPLATES menu + Uaktywnienie menu szablonów + + + + + + + No splash screen + Bez loga na ekranie + + + + + + + + + No flight modes + Firmware bez menu faz lotu + + + + + + + + + In model setup menus automatically set source by moving some of them + W menu ustawień modelu automatycznie wybierz źródło poprzez poruszenie nim + + + + + + + + + + + Use alternative SQT5 font + Użyj alternatywnego fontu SQT5 + + + + EEprom write progress bar + Pasek postępu wgrywania EEPROMu + + + + + No Winged Shadow How High support + Bez wsparcia - Winged Shadow How High + + + + + No vario support + Bez wsparcia wario + + + + + No GPS support + Bez wsparcia GPS + + + + + No gauges in the custom telemetry screen + Bez graficznych wskazań telemetrii + + + + Allow compensating for offset errors in FrSky FAS current sensors + Pozwolenie na kompensację błędów w czujnikach natężenia FrSky FAS + + + + openTx for 9XR + openTx dla platformy 9XR + + + + openTx for 9XR with M128 chip + openTx dla platformy 9XR z M128 + + + + Use FrSky Taranis sticks in a 9X/9XR + Użyj drążków Taranisa w 9X/9XR + + + + + Disable HELI menu and cyclic mix support + Dezaktywowane menu Heli i wsparcie dla cyklicznych mikserów + + + + + Disable TEMPLATES menu + Dezaktywowane menu szablonów + + + + + Disable Global variables + dezaktywowane zmienne globalne + + + + openTx for FrSky Taranis Rev4a + openTx dla FrSky Taranis Rev4a + + + + + + + + + Disable curves menus + Bez menu krzywych + + + + + + + Support for radio modified with regular speaker + Wsparcie dla modyfikacji radia zwykłym głośnikiem + + + + + + + + Used if you have modified your radio with voice mode + Używane jeśli radio jest zmodyfikowane w calu użycia komunikatów głosowych + + + + + + + Used if you have modified your radio with haptic mode + Używane jeśli radio jest zmodyfikowane do użycia wibracji + + + + + + + + + Battery graph + Grafika baterii + + + + + + + Enable the throttle trace in Statistics + Uaktywnić śledzenie gazu w statystykach + + + + openTx for M128 / 9X board + openTx dla platformy 9X z M128 + + + + openTx for Gruvin9x board / 9X + openTx dla platformy Gruvin9x / 9X + + + + Support of FrSky PXX protocol + Wsparcie dla protokołu Frsky PXX + + + + openTx for Sky9x board / 9X + openTx dla platformy Sky9x / 9X + + + + openTx for FrSky Taranis + openTx dla FrSky Taranis + + + + + + + + Support for DSM2 modules + wsparcie modułu DSM2 + + + + Your radio probably uses a wrong firmware, + eeprom size is 4096 but only the first 2048 are used + Twoje radio prawdopodobnie używa złego firmware, + wielkość eepromu jest 4096 ale tylko pierwsze 2048 jest używane + + + + + + + + + PPM center adjustment in limits + Limit dostrojenia centrowania PPM + + + + + + + + + + + PPM values displayed in us + Wartości PPM wyświetlane w us (mikrosekundy) + + + + + + + + + Symetrical Limits + Limity symetryczne + + + + + + + + Pots use in menus navigation + Użycie potencjometrów do nawigacji w menu + + + + + SmartieParts 2.2 Backlight support + Wsparcie podświetlenia SmartieParts 2.2 + + + + + + + + + In model setup menus automatically set switch by moving some of them + W menu modelu automatyczne wybranie przełącznika w przez jego poruszenie + + + + + + + Enable resetting values by pressing up and down at the same time + Szybkie nastawianie wartości +(+) a (-) neguje wartość +(+)a (UP) ustawia max +(-) a (DN) ustawia min +(UP) a (DN) ustawia 0 + + + + + + + + + No graphical check boxes and sliders + Brak graficznych chekboxów i sliderów + + + + + + + + + Don't use bold font for highlighting active items + Nie używaj podświetlenia dla wybranych aktywnych elementów, mikserów, krzywych, expo, etc + + + + + + + EEprom write Progress bar + Pasek postępu zapisywania EEPROM + + + + + + + + Imperial units + Imperialne jednostki w telemetrii + + + + Bluetooth interface + Interface Bluetooth + + + + + + + + + Global variables + Globalne zmienne + + + + Support for SD memory card + Wsparcie karty SD + + + + Support for DSM2 modules using ppm instead of true serial + Wsparcie modułu DSM2 przez użycie PPM zamiast prawdziwego szeregowego + + + + Enable HELI menu and cyclic mix support + Uaktywnij menu HELI i cyklicznych mikserów + + + + ersky9x + + + + + + + + Warning + Ostrzeżenie + + + + EEPROM saved with these warnings: + EEPROM zapisany z tymi ostrzeżeniami: + + + + + FM%1 + FP%1 + FM%1 + + + + Input%1 + Wejście %1 + + + + English + Angielski + + + + French + Francuski + + + + Italian + Włoski + + + + German + Niemiecki + + + + Czech + Czeski + + + + Slovak + Słowacki + + + + Spanish + Hiszpański + + + + Portuguese + Portugalski + + + + No + Nie + + + + RotEnc A + Pokrętło :A + + + + Rot Enc B + Pokrętło :B + + + + Rot Enc C + Pokrętło :C + + + + Rot Enc D + Pokrętło :D + + + + Rot Enc E + Pokrętło :E + + + + + No repeat + Bez powtórzeń + + + + %1 sec + %1 s + + + + Safety %1 + Bezpieczny %1 + + + + Trainer + Trener + + + + Trainer RUD + Trener - SK + + + + Trainer ELE + Trener - SW + + + + Trainer THR + Trener - Gaz + + + + Trainer AIL + Trener - Lotki + + + + Instant Trim + Natychmiastowe trymowanie + + + + Play Sound + Odtwórz dźwięk + + + + Play Haptic + Wibruj + + + + Reset + Zresetuj + + + + Vario + Wariometr + + + + Play Both + Odtwórz oba + + + + Play Value + Odtwórz wartość + + + + Start Logs + Start logowania + + + + Volume + Głośność + + + + Backlight + Podświetlenie + + + + Adjust GV%1 + Ustaw ZG%1 + + + + + + <font color=red><b>Inconsistent parameter</b></font> + Niespójny parametr + <font color=red><b>Niespójny parametr</b></font> + + + + Rotary Encoder + Pokrętło + + + + !Flight mode %1 + !Faza lotu %1 + + + + Flight mode %1 + Faza lotu %1 + + + + Yellow + Żółty + + + + Orange + Pomarańczowy + + + + Red + Czerwony + + + + Winged Shadow How High + + + + + Winged Shadow How High (not supported) + Winged Shadow How High (nie obsługiwane) + + + + FrSky Sensor Hub + Hub sensora FrSky + + + + + None + Żaden + + + + Imperial + Imperialne + + + + Metric + Metryczne + + + + Extra Fine + Bardzo dokładne + + + + Fine + Dokładne + + + + Medium + Średni + + + + Coarse + Gruby + + + + Exponential + Eksponencjalny + + + + Count Up + Licz + + + + Count Down + Odliczaj + + + + %1:%2, + + + + + : %1 Channels, %2usec Delay + :Kanały %1, opóźnienie %2usX + + + + Flight modes(%1) + Fazy lotu(%1) + + + + Flight mode(%1) + Faza lotu (%1) + + + + Rudder + SK + + + + Elevator + SW + + + + Throttle + Gaz + + + + Aileron + Lotki + + + + Play Track + Odtwórz ścieżkę + + + + + --- + + + + + Rud Trim + Trymer SK + + + + Ele Trim + Trymer SW + + + + Thr Trim + Trymer gazu + + + + Ail Trim + Trymer lotek + + + + Rot Enc + Pokrętło + + + + Swedish + Szwedzki + + + + CH%1 + Kan %1 + + + + Background Music + Muzyka tła + + + + Background Music Pause + Muzyka tła - pauza + + + + Delay %1 sec + Opóźnienie %1sec + + + + Duration %1 sec + Czas trwania %1 sec + + + + + + Timer1 + + + + + + + Timer2 + + + + + + All + Wszystkie + + + + + Telemetry + Telemetria + + + + Value + Wartość + + + + Decr: + Zmniejsz: + + + + Incr: + Zwiększ: + + + + Played once, not during startup + Otwarzaj raz, nie w trakcie uruchomienia + + + + %1s + + + + + Value + Wartość + + + + Source + Źródło + + + + GVAR + Zmienna + + + + Increment + Zwiększanie + + + + Own trim + Własne trymery + + + + Flight mode %1 trim + Flight phase %1 trim + Trymer fazy lotu FL%1 + + + + Own value + Własny Wartość + + + + Flight mode %1 value + Flight phase %1 value + Wartość Fazy lotu FL%1 + + + + Keys + Przyciski + + + + Sticks + Drążki + + + + Keys + Sticks + Przyciski i Drążki + + + + + -GV%1 + -ZG%1 + + + + + + GV%1 + ZG%1 + + + + + + Simulator for this firmware is not yet available + Nie jest dostępny symulator dla tego firmware + + + + + Simultaneous usage of expo and curves is no longer supported + Równoległe użycie expo i krzywych nie jest dłużej wspierane + + + + openTx only accepts %1 points in all curves + openTx dopuszcza tylko %1 punktów dla wszystkich krzywych + + + + + + OpenTX on this board doesn't accept this function + OpenTX na tej platformie nie dopuszcza tej funkcji + + + + + OpenTX doesn't accept this protocol + OpenTX nie obsługuje tego protokołu + + + + OpenTX doesn't allow this number of channels + OpenTX nie obsługuje tej ilości kanałów + + + + Simultaneous usage of expo and curves is no longer supported in open9x + Jednoczesne użycie expo i krzywych nie jest dłużej wspierane dla Open9x + + + + th9x on this board doesn't have Rotary Encoders + th9x nie posiada pokręteł na tej platformie + + + + Thanks all for the donations, kind messages, nice ideas, constructive proposals etc. for the next OpenTX/Companion funding model. + +We are really appreciative for that! + +The OpenTX/Companion Team. + Dziękujemy za wszystkie datki, miłe wiadomości, ciekawe pomysły, konstruktywne propozycje. etc. dla następnych aparatur działających z OpenTX/Companion + +Bardzo nam na tym zależy i są to dla nas bardzo wazne elementy + +Zespół OpenTX/Companion. + + + + Setup + + + Form + Formularz + + + + Model Name + Nazwa modelu + + + + Timer2 + Timer 02 + + + + Timer1 + Timer 01 + + + + Throttle Source + Źródło gazu + + + + Switch startup Warning + Ostrzeżenie o przełącznikach przy uruchomieniu + + + + Center beep + Pikanie przy centrowaniu + + + + Trim Increment + Kroki trymera + + + + ON + Włącz + + + + OFF + Wyłącz + + + + Check + Sprawdzenie + + + + Model Image + Obrazek modelu + + + + Exponential + Wykładnicze + + + + Extra Fine + Bardzo dokładne + + + + Fine + Dokładne + + + + Medium + Średnie + + + + Coarse + Zgrubne + + + + Extended Limits + Rozszerzone limity (125%) + + + + Extended Trims + Poszerzone trymery + + + + Throttle Trim + Trymer gazu + + + + Throttle Warning + Ostrzeżenie o gazie + + + + Reverse throttle operation. +If this is checked the throttle will be reversed. Idle will be forward, trim will also be reversed and the throttle warning will be reversed as well. + + + Odwrócenie gazu. +Wolne obroty będą na górze, trymer i ostrzeżenie o otwartym gazie również zostaną odwrócone. + + + + + Reverse Throttle + Odwrotna praca gazu + + + + Telemetry + + + Form + Formularz + + + + + + + A1 + A1 + + + + + + + A2 + A2 + + + + RSSI + RSSI + + + + Alarm 1 + Alarm 1 + + + + + ---- + ---- + + + + + Yellow + Żółty + + + + + Orange + Pomarańczowy + + + + + Red + Czerwony + + + + Alarm 2 + Alarm 2 + + + + Serial Protocol + Protokół szeregowy + + + + Volt source + Źródło napięcia + + + + Metric + Metryczne + + + + Imperial + Imperialne + + + + Current source + Źródło prądu(natężenia) + + + + Protocol + Protokół + + + + NONE + BRAK + + + + + FAS + FAS + + + + None + Żadne + + + + FrSky Sensor Hub + Hub Czujników FrSky + + + + CEL + Ogniwo + + + + 2 + 2 + + + + 3 + 3 + + + + 4 + 4 + + + + Units + Jednostki + + + + Blades + Łopaty śmigła + + + + Altimetry / Vario + Wysokościomierz/Wario + + + + Alti + Wysokościomierz + + + + Alti+ + Wysokościomierz+ + + + + Vario + Wario + + + + Sink Max + Maks. Opadanie + + + + Off + Wyłączone + + + + Climb Max + Maks. Wznoszenie + + + + Sink Min + Min. Opadanie + + + + Climb Min + Min. Wznoszenie + + + + Vario source + Źródło wario + + + + Vario limits + Limity wario + + + + Use GPS as altitude source + Używaj GPS jako źródła danych wysokości + + + + Display altitude in toolbar + Wyświetl wysokość na pasku + + + + Various + Różne + + + + mAh count + Licznik mAh + + + + FAS Offset + Wyrównanie FAS + + + + Persistent mAh + Stałe mAh + + + + Telemetry screen 1 + Panel telemetrii 1 + + + + + + Custom Screen Type + Typ panelu + + + + + + Nums + Liczby + + + + + + Bars + Paski + + + + + + Source + Źródło + + + + + + Min + Min + + + + + + Gauge + Pomiar + + + + + + Max + Maks + + + + + + Gauge 1 + Pomiar 1 + + + + + + Gauge 2 + Pomiar 2 + + + + + + Gauge 3 + Pomiar 3 + + + + + + Gauge 4 + Pomiar 4 + + + + Telemetry screen 2 + Panel telemetrii 2 + + + + Telemetry screen 3 + Panel telemetrii 3 + + + + TelemetryAnalog + + + Form + Formularz + + + + Unit + Jednostka + + + + Max Value + Maks. wartość + + + + Alarm 1 + Alarm 1 + + + + + ---- + ---- + + + + + Yellow + Żółty + + + + + Orange + Pomarańczowy + + + + + Red + Czerwony + + + + + < + < + + + + + > + > + + + + Alarm 2 + Alarm 2 + + + + Min Value + Min. Wartość + + + + Volts (V) + Wolty (V) + + + + Amps (A) + Ampery (A) + + + + Speed (m/s or ft/s) + Prędkość (m/s albo ft/s) + + + + Raw (-) + Bezwymiarowe (-) + + + + Speed (km/h or miles/h) + Prędkość (km/h albo míle/h) + + + + Meters (m or ft) + Wysokość (m albo ft) + + + + Temp (°) + Temp (°) + + + + Fuel (%) + Paliwo (%) + + + + mAmps (mA) + miliAmpery (mA) + + + + Range + Zasięg + + + + TelemetryPanel + + + Winged Shadow How High + Winged Shadow How High + + + + Winged Shadow How High (not supported) + Winged Shadow How High (Nie obsługiwane) + + + + Timer + + + Form + Formularz + + + + mm:ss + mm:ss + + + + Countdown + Odliczanie + + + + MinuteBeep + Pikanie minutowe + + + + Persistent + Stały + + + + (00:00:00) + (00:00:00) + + + + TimerPanel + + + None + Żaden + + + + Beeps + Dźwięk + + + + Countdown + Odlicznie + + + + avrOutputDialog + + + Dialog + + + + + Show Details + Pokaż szczegóły + + + + result + result + Wynik + + + + executable not found + executable not found + plik wykonywalny nie został znaleziony + + + + + Error + Błąd + + + + Cannot open source file + Nie mogę otworzyć pliku źródłowego + + + + Cannot write destination + Nie mogę zapisać w miejscu docelowym + + + + Writing file: + Zapisuję plik: + + + + ie: OpenTX for 9X board or OpenTX for 9XR board + ie: OpenTX dal platformy 9X lub OpenTX lub 9XR + + + + ie: OpenTX for M128 / 9X board or OpenTX for 9XR board with M128 chip + ie: OpenTX dla platformy M128 / 9X lub OpenTX dla platformy 9XR z chipem M128 + + + + ie: OpenTX for Gruvin9X board + ie: OpenTX dla platformy Gruvin9X + + + + Your radio uses a %1 CPU!!! + +Please check advanced burn options to set the correct cpu type. + Twoje radio używa procesora %1!!! + +Sprawdź zaawansowane funkcje wypiekania by ustalić prawidłowy procesor. + + + + Your radio uses a %1 CPU!!! + +Please select an appropriate firmware type to program it. + Twoje radio używa procesora %1!!! + +Proszę wybrać poprany rodzaj firmware. + + + + +You are currently using: + %1 + +Aktualnie używasz: + %1 + + + + + Writing + Zapis + + + + + Reading + Czytanie + + + + + Verifying + Weryfikacja + + + + done - exit code %1 + done - exit code %1 + Zakończone z kodem %1 + + + + done with errors + done with errors + Zakończone z Błędami + + + + + done - SUCCESSFUL + done - SUCCESSFUL + Zakończono sukcesem + + + + did not finish correctly + did not finish correctly + Nie zakończono poprawnie + + + + did not finish correctly! +Do you want some help ? + did not finish correctly! +Do you want some help ? + Nie zakończono poprawnie +Potrzebujesz pomocy ? + + + + Copy did not finish correctly + Nie zakończono poprawnie kopiowania + + + + finished correctly + finished correctly + Zakończono poprawnie + + + + Copy finished correctly + Zakończono poprawnie kopiowanie + + + + Started + Started + Rozpoczęto + + + + FUSES: Low=%1 High=%2 Ext=%3 + Bezpieczniki: Low=%1 High=%2 Ext=%3 + + + + burnConfigDialog + + + Programmer Configuration + Configuration AVRDUDE / SAM-BA + Konfiguracja programatora + + + + Location of AVRDUDE executable + Położenie wykonywalnego AVRDUDE + + + + + + + The location of the AVRDUDE executable. + Położenie wykonywalnego AVRDUDE. + + + + DFU-Util Location + Położenie narzędzia DFU + + + + + + Use this button to browse and look for the AVRDUDE executable file. + Użyj tego przycisku w celu znalezienia pliku wykonywalnego AVRDUDE. + + + + + + Browse... + Przeglądaj ... + + + + Programmer + Typ programatora + + + + Programmer used for communicating with the controller. +Please consult the programmer's documentation and the AVRDUDE documentation to select the appropriate programmer. + Programator użyty do komunikacji z mikrokontrolerem. + + + + List all available programmers. + Lista wszystkich dostępnych programów. + + + + List Available + Lista dostępnych + + + + + Extra arguments that will be passed to AVRDUDE on every call + Dodatkowe argumenty przekazywane do AVRDUDE przy każdorazowym wywołaniu + + + + + Extra arguments used in AVRDUDE. +This can be used for providing extra information to AVRDUDE. + +Please only use this if you know what you are doing. There are no error checks and you could cripple your controller. + Dodatkowe argumenty AVRDUDE. +Mogą być użyte do przekazania dodatowych informacji do AVRDUDE. + +Użyj tylko jeśli dokłądnie wiesz co robisz !! +Nie ma to spradzania błędów i mozesz uszkodzić mikrokontroler. + + + + + Extra Arguments + Dodatkowe argumenty + + + + Show AVRDUDE help + Pokaż pomoc AVRDUDE + + + + Show Help + Pokaż pomoc + + + + + Port + Port + + + + AVRDUDE Location + Położenie AVRDUDE + + + + Use advanced controls + Użyj zaawansowanych ustawień + + + + + CPU of your TX + Procesor/mikrokontroler twojego radia + + + + Communication port to the programmer. + + Port komunikacyjny do programatora. + + + + + CPU present on your 9x radio +Should be m64 for stock radios +m2560 for v4.1 boards + CPU zainstalowany w twoim radiu 9x : +m64 dla zwykłego radia +m2560 dla platformy V4 + + + + SAM-BA Location + Położenie SAM-BA + + + + Alternate device + Alternatywne urządzenie + + + + + Location of sam-ba executable + Położenie plików wykonywalnych sam-ba + + + + MCU + Typ procesora CPU/MCU + + + + ARM MCU + Procesor ARM + + + + sam-ba serial port + Port szeregowy sam-ba + + + + DFU-UTIL Configuration + Konfiguracja DFU-UTIL + + + + SAM-BA Configuration + Konfiguracja SAM-BA + + + + AVRDUDE Configuration + Konfiguracja AVRDUDE + + + + + + Select Location + Wybierz położenie + + + + + Companion + Companion + + + + <b><u>WARNING!</u></b><br>This will reset the fuses of %1 to the factory settings.<br>Writing fuses can mess up your radio.<br>Do this only if you are sure they are wrong!<br>Are you sure you want to continue? + <b><u>UWAGA!</u></b><br>U zresetuje bezpieczniki %1 do fabrycznych ustawień.<br>Zapis bezpieczników może uszkodzić twoje radio.<br>Zrób to tylko jeśli jesteś pewien że są złe!<br>Jesteś pewien by kontynuować? + + + + <b><u>WARNING!</u></b><br>Normally CPU type is automatically selected according to the chosen firmware.<br>If you change the CPU type the resulting eeprom could be inconsistent. + <b><u>Ostrzeżenie!</u></b><br>Normalnie typ procesora jest wybierany automatycznie zgodnie z wybranym firmware.<br>Jeśli zmienisz typ procesora dla EEpromu rezultaty mogą być nieprzewidywalne. + + + + burnDialog + + + Customize Splash + Własne logo + + + + + Write to TX + Zapisz do radia + + + + <html><head/><body><p>Modify calibration parameters using settings from current profile</p></body></html> + <html><head/><body><p>Zmiana parametrów kalibracji przy użyciu aktualnego profilu</p></body></html> + + + + Patch calibration setting from profile + Zamień ustawienia kalibracji wartościami z profilu + + + + <html><head/><body><p>Modify HW parameters using settings from current profile</p></body></html> + <html><head/><body><p>Zmień ustawiania parametrów HW przy pomocy wartości z aktualnego profilu</p></body></html> + + + + Patch HW setting from profile + Zmień ustawiania parametrów HW wartościami z profilu + + + + Date & Time + Data i Czas + + + + SVN + + + + + Variant + Wariant + + + + Invert Color + Odwróć kolory + + + + Load Image + Otwórz logo + + + + Open Splash Library + Otwórz bibliotekę obrazków + + + + ... + + + + + Substitute image in firmware + Zmień logo w firmware + + + + + Browse for file + Przeglądaj pliki + + + + Allows Companion to write to older version of the firmware + Pozwól Companion na zapis do starszej wersji firmware + + + + Backup and restore Models and Settings + Zbakupuj i odtwórz Modele i Ustawienia + + + + Use image in settings + Użyj Logo w ustawieniach + + + + Check Firmware compatibility + Sprawdź kompatybilność firmware + + + + Current Profile + Aktualny profil + + + + Cancel + Przerwij + + + + Write firmware to TX + Zapisz firmware do radia + + + + Current profile + Aktualny profil + + + + Open + Otwórz + + + + + + + + + Warning + Ostrzeżenie + + + + %1 is not a known firmware + %1 nie jest znanym firmware + + + + Burn anyway ! + Wypiecz mimo wszystko ! + + + + + + + + + + + + + Error + Błąd + + + + Unable to find file %1! + Nie mogę odnaleźć pliku %1! + + + + + + Error opening file %1: +%2. + Błąd otwarcia pliku %1: +%2. + + + + Write Models and Settings to TX + Zapisz Modele i Ustawienia do radia + + + + Write Models and Settings in %1 to TX + Zapisz Modele i Ustawienia w %1 do radia + + + + Choose file to load Models and Settings from + Wybierz plik Modeli i Ustawien do wczytania + + + + + + Invalid binary Models and Settings File %1, Proceed anyway ? + Nieprawidłowy plik Modeli i Ustawień : %1. Kontynuować ? + + + + Error reading file %1: +%2. + Błąd odczytu pliku %1: +%2. + + + + Open Image to load + Otwórz plik z logo + + + + Images (%1) + Obrazki (%1) + + + + + Cannot load %1. + Nie mogę załadować %1. + + + + Cannot save customized firmware + Nie mogę zapisać przystosowanego firmware + + + + Custom image not found + Własny obrazek nie odnaleziony + + + + No firmware selected + Brak wyboru firmware + + + + Wrong radio calibration data in profile, Settings not patched + Błędna kalibracja radia w profilu, Ustawienia nie spatchowane + + + + Wrong radio setting data in profile, Settings not patched + Błędne ustawienia radia w profilu, Ustawienia nie spatchowane + + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + Error writing file %1: +%2. + Błąd zapisu pliku %1: +%2. + + + + compareDialog + + + Dialog + + + + + Drag first model here + Przeciągnij tutaj pierwszy model + + + + Drag second model here + Przeciągnij tutaj drugi model + + + + Close + Zamknij + + + + Print + Drukuj + + + + Print to file + Drukuj do pliku + + + + General Model Settings + Główne ustawienia modelu + + + + + + Name + Nazwa + + + + + EEprom Size + Wielkość EEPROM + + + + + Timer1 + + + + + + Timer2 + + + + + + Protocol + Protokół + + + + + Pulse Polarity + Polaryzacja impulsu + + + + + Throttle Trim + Trymer gazu + + + + + + + Enabled + Włączone + + + + + + + Disabled + Wyłączone + + + + + Throttle Expo + Expo gazu + + + + + Trim Increment + Krok trymera + + + + + Center Beep + Dźwięk centrowania + + + + Flight modes Settings + Flight Phases Settings + Ustawiania faz lotu + + + + + Fades + Przejścia + + + + + Trims + Trymery + + + + + + + + + + + + + Switch + Przełącznik + + + + + IN + (+) + + + + + OUT + (-) + + + + + + + + + + + + + FM + FP + FL + + + + + Gvars + Gl-Zm + + + + + Rot. Enc. + Pokrętło. + + + + Limits + Limity + + + + + + + + + + Offset + Ofset + + + + + + + + Min + + + + + + + + + Max + Maks + + + + + + Invert + Odwróć + + + + + + + + + CH + Kanał + + + + + INV + Odwr + + + + + NOR + --- + + + + Global Variables + Zmienne globalne + + + + + GV + ZG + + + + Expo/Dr Settings + Expo/Ustawienia DR + + + + + Weight + Waga + + + + + Curve + Krzywa + + + + Mixers + Miksery + + + + + noTrim + Bez trymera + + + + + Delay(u%1:d%2) + Opóźnienie(u%1:d%2) + + + + + Slow(u%1:d%2) + Spowolnienie(u%1:d%2) + + + + + Warn + Ostrzeżenie + + + + + No name + Model bez nazwy + + + + + + + DISABLED + Wyłączone + + + + Curves + Krzywe + + + + 5 Points Curves + 5-cio punktowe Krzywe + + + + + + + pt %1 + punkt %1 + + + + 9 Points Curves + 9-cio punktowe Krzywe + + + + + Function + Funkcja + + + + + Param + Parametr + + + + + Enable + Włączone + + + + Telemetry Settings + Ustawienia telemetrii + + + + + Analog + Analogowy + + + + + Unit + Jednostki + + + + + Scale + Skala + + + + + + + A%1 + + + + + + Alarm 1 + + + + + + Alarm 2 + + + + + + + + Type + Typ + + + + + + + Condition + Warunek + + + + + + + + + Value + Wartość + + + + + + + Flight mode name + Nazwa fazy lotu + + + + + + + Flight modes + Fazy lotu + + + + + + + Flight mode + Faza lotu + + + + + Repeat + Powtórz + + + + Safety Switches + Przełącznik bezpieczeństwa + + + + + RSSI Alarm + Alarm RSSI + + + + + Telemetry Bars + Wskaźniki telemetryczne + + + + + Bar Number + Numer wskaźnika + + + + + Source + Źródło + + + + + Custom Telemetry View + Własny ekran telemetrii + + + + Logical Switches + Przełączniki Logiczne + + + + + LS + L suwak + + + + Switch Assignment + Przypisanie Przełączników + + + + CF + FS + + + + Print Document + Drukuj dokument + + + + Select PDF output file + Wybierz plik docelowy PDF + + + + contributorsDialog + + + Dialog + + + + + People who have contributed to this project + Ludzie związani z tym projektem + + + + Coders + Programiści + + + + Honors go to Rafal Tomczak (RadioClone), Thomas Husterer (th9x) and Erez Raviv (er9x and eePe) + Specjalne podziękowania Rafałowi Tomczakowi (RadioClone), Thomasowi Husteterowi (th9x) a także Erazowi Ravivowi(er9x i eePe) + + + + Companion Release Notes + Informacje o wydaniu Companion + + + + Thank you all !!! + Wszystkim wam dziękujemy !!! + + + + Contributors + Współpracownicy + + + + OpenTX Release Notes + Informacje o wydaniu OpenTX + + + + customizeSplashDialog + + + Customize Splash + Zrób własne loga + + + + Save Image + Zapisz logo + + + + Invert Color + Odwróć kolory + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><br /></p></body></html> + + + + + Load Firmware + Otwórz firmware + + + + Load Image + Otwórz logo + + + + Open Splash Library + Otwórz bibliotekę obrazków + + + + ... + + + + + Save Firmware + Save To Hex + Zapisz firmware + + + + + + Select an original firmware file + Wybierz oryginalny plik z firmware + + + + Open + Otwórz + + + + Select an image to customize your splash <br />or save actual firmware splash + Wybierz obrazek do spersonalizowania twojego ekranu <br />lub wgraj aktualny obrazek do firmware + + + + + + + Error + Błąd + + + + Could not find bitmap to replace in file + Nie mogę znaleźć bitmapy w celu zastąpienia pliku + + + + Open Image to load + Otwórz obrazek do załadowania + + + + Images (%1) + Obrazki (%1) + + + + + Cannot load %1. + Nie mogę wczytać %1. + + + + + Save your custimized firmware + Zgraj spersonalizowane firmware + + + + + Write to file + Zapis do pliku + + + + Error reading file %1 + Błąd otwarcia pliku %1 + + + + Firmware correctly saved. + Firmware zostało prawidłowo zapisane. + + + + Firmware not saved. + Firmware nie zostało zapisane. + + + + PNG images (*.png);; + Obrazki PNG (*.png);; + + + + downloadDialog + + + Downloading: + Pobierz: + + + + Unable to save the file %1: %2. + Nie mogę zapisać pliku %1: %2. + + + + Companion + Companion + + + + Download failed: %1. + Pobieranie nieudane: %1. + + + + fusesDialog + + + Fuses + Bezpieczniki + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Reads the current fuses in the AVR controller.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Proper states for </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">AtMega 64 </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse not set: 0E, 81, FF</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse set: 0E, 89, FF</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Proper states for AtMega 2560 :</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse not set: D7, 11, FC</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM erase fuse set: D7, 19, FC</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Czyta aktualne ustawienia bezpieczników z kontrolera AVR</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Prawidłowe ustawienia </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">AtMega 64 </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">:</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie nieustawionego bezpiecznika: 0E, 81, FF</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie ustawionego bezpiecznika: 0E, 89, FF</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Przwidłowe ustawienia AtMega 2560 :</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie nieustawionego bezpiecznika: D7, 11, FC</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">EEPROM wyczyszczenie ustawionego bezpiecznika: D7, 19, FC</span></p></body></html> + + + + Read Fuses + Odczytaj bezpieczniki + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset Fuses</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Fuses in the AVR tell it how to behave. Pressing this button sets the fuses to the default parameters needed in the FW. These parameters are different for stock and 4.1 MB, please verify you selected the appropriate processor type in preferences.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This button also sets the &quot;EEPROM protect&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This prevents erasing of the EEPROM when the flash memory is written.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">WARNING</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Setting fuses can lead to problems and even a total lockout from your controller. Do this only if you know what you are doing.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When in doubt consult either the project's page or the 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">If you do get locked out - google lookup for &quot;dealing with Fuse Bricks&quot;.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset bezpieczników</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Bezpieczniki w AVR opisz zachowanie. Naciśnięcie tego przycisku ustawia bezpieczniki do domyślnych parametrów potrzebnych w FW. Parametry te są różne dla zwykłej oraz 4,1 płyty głównej, sprawdź, czy wybrano odpowiedni typ procesora w preferencjach.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ten przycisk róznież ustawia &quot;Bezpiecznik ochrony EEPROM&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">To ochrania EEPROM przed wymazaniem gdy flaszujesz radio.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">UWAGA!!</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ustawianie bezpieczników moze prowadzić do problemów łacznie z całkowitym zablokowaniem twojego radia. Rób to tylko wtedy gdy masz absolutną pewność i wiedzę.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Gdy masz wątpliwości skonsultuj się ze stroną projektu lub na 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Jeśli urządzeni zostanie zablokowane przeszukaj google w celu znalezienia &quot;Jak naprawić Fuse BRICK &quot;.</span></p></body></html> + + + + Reset Fuses +EEPROM - PROTECT + Zresetuj bezpieczniki +EEPROM jest chroniony + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset Fuses</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Fuses in the AVR tell it how to behave. Pressing this button sets the fuses to the default parameters needed in the </span><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">FW. These parameters are different for stock and 4.1 MB, please verify you selected the appropriate processor type in preferences.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This button also clears the &quot;EEPROM protect&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">This causes erasing of the EEPROM when the flash memory is written.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">WARNING</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Setting fuses can lead to problems and even a total lockout from your controller. Do this only if you know what you are doing.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">When in doubt consult either the project's page or the 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">If you do get locked out - google lookup for &quot;dealing with Fuse Bricks&quot;.</span></p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;"> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">Reset bezpieczników</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Bezpiecznieki w AVR opisz zachowanie. Naciśnięcie tego przycisku ustawia bezpieczniki do domyślnych parametrów potrzebnych w FW. Parametry te są różne dla zwykłej oraz 4,1 płyty głównej, sprawdź, czy wybrano odpowiedni typ procesora w preferencjach.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ten przycisk róznież ustawia &quot;Bezpiecznik ochrony EEPROM&quot; Fuse.</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">To ochrania EEPROM przed wymazaniem gdy flaszujesz radio.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt; font-weight:600; text-decoration: underline;">UWAGA!!</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Ustawianie bezpieczników moze prowadzić do problemów łacznie z całkowitym zablokowaniem twojego radia. Rób to tylko wtedy gdy masz absolutną pewność i wiedzę.</span></p> +<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-family:'MS Shell Dlg 2'; font-size:8pt;"><br /></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Gdy masz wątpliwości skonsultuj się ze stroną projektu lub na 9xforum (http://9xforums.com/forum/)</span></p> +<p style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-family:'MS Shell Dlg 2'; font-size:8pt;">Jeśli urządzeni zostanie zablokowane przeszukaj google w celu znalezienia &quot;Jak naprawić Fuse BRICK &quot;.</span></p></body></html> + + + + Reset Fuses +EEPROM - DELETE + Zresetuj bezpieczniki +EEPROM będzie skasowany + + + + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">WARNING</span></p> +<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Changing the fuses can mess up your radio.</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Proceed only if you know what you are doing.</p></body></html> + <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"> +<html><head><meta name="qrichtext" content="1" /><style type="text/css"> +p, li { white-space: pre-wrap; } +</style></head><body style=" font-family:'Ubuntu'; font-size:11pt; font-weight:400; font-style:normal;"> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-weight:600; text-decoration: underline;">UWAGA!!</span></p> +<p align="center" style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; font-weight:600; text-decoration: underline;"></p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Zmiana ustawień bezpieczników może zepsuć swoje radio.</p> +<p align="center" style=" margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Rób to tylko wtedy gdy masz absolutną pewność i wiedzę.</p></body></html> + + + + joystickDialog + + + Configure Joystick + Ustaw joystick + + + + Ch2 + Kanał 02 + + + + + + + + + + + Not Assigned + Nie przydzielono + + + + + + + + + + + Right Vertical + Prawy pionowy + + + + + + + + + + + Right Horizontal + Prawy poziomy + + + + + + + + + + + Left Vertical + Lewy pionowy + + + + + + + + + + + Left Horizontal + Lewy poziomy + + + + + + + + + + + P1 + Potencjometr 1 + + + + + + + + + + + P2 + Potencjometr 2 + + + + + + + + + + + P3/LS + Potencjometr 3 /Lewy suwak + + + + + + + + + + + RS + Prawy suwak + + + + Ch1 + Kanał 01 + + + + Ch4 + Kanał 04 + + + + Ch6 + Kanał 06 + + + + Ch3 + Kanał 03 + + + + Ch5 + Kanał 05 + + + + Ch7 + Kanał 07 + + + + Ch8 + Kanał 08 + + + + Instructions + Instrukcja + + + + Cancel + Przerwij + + + + Next + Następny + + + + Ok + OK + + + + Move sticks and pots in every direction making full movement +Press next when finished + Poruszaj drązkami i potencjometrami w pełnym możliwym zakresie. +Naciśnij Dalej po skończeniu + + + + + Error + Błąd + + + + Cannot open joystick. + Nie mogę otwórz joysticka. + + + + Place sticks and pots in middle position. +Press next when done + Ustaw drążki i potencjometry w środku. +Naciśnij Dalej po skończeniu + + + + Map joystick channels to controls using comboboxes. +Press next when done + Zmapuj kanały joysticka używają comboboxów. +Naciśnij Dalej po skończeniu + + + + Check inversion checkbox to get maximum at top-right position. +Press next when done + Sprawdż checkbox rewersu w celu uzyskania maksimum w górnej prawej pozycji. +Naciśnij Dalej po skończeniu + + + + Press ok to save configuration +Press cancel to abort joystick calibration + Naciśnij OK w celu zapisu, Anuluj w celu przerwania kalibracji joysticka. +Tlačítkem Zrušit přerušíte kalibraci + + + + Duplicated stick assignement + Duplicitní přiřazení Drążki + + + + logsDialog + + + Companion Log Viewer + Companion - przegląd logów + + + + Filename + nazwa pliku + + + + Open LogFile + Otwórz plik logu + + + + Zoom + Przybliżenie + + + + X + X + + + + Y + Y + + + + Fly sessions + Loty + + + + Telemetry logs + Logi Telemetrii + + + + Time + Czas + + + + Error + Błąd + + + + Cannot write file %1: +%2. + Nie mogę zapisać pliku %1: +%2. + + + + Select your log file + Wybierz plik loga + + + + Available fields + Dostępne pola + + + + The selected logfile contains %1 invalid lines out of %2 total lines + Wybrany plik zawiera %1 błędnych linii z %2 wszystkich linii + + + + mdiChild + + + Simulate Tx + Symulacja radia + + + + modelConfigDialog + + + Model Configuration Wizard + Kreator ustawień modelu + + + + Engine + Silnik + + + + Model Type + Typ modelu + + + + Airplane + Samolot + + + + Helicopter + Heli + + + + Glider + Szybowiec + + + + Wing + Skrzydła + + + + Aileron controls + Lotki + + + + No Ailerons + Bez lotek + + + + 1 Servo (or Y) + Jedno serwo (lub odwracający Y kabel) + + + + + + 2 Servos + Dwa serwa + + + + Flaps controls + Klapy + + + + No Flaps + Bez klap + + + + 1 Servo (or inverting Y) + Jedno serwo (lub Y kabel) + + + + Spoilers + Przerywacze + + + + No Spoilers/Airbrakes + Bez przerywaczy/hamulców + + + + 1 Servo (or Y or inverting Y) + Jedno serwo (lub Y kabel) + + + + Swash Plate + Tarcza + + + + Swash plate + Tarcza + + + + 90° / Fixed / Coax + + + + + 120° + + + + + 120X° + + + + + 140° + + + + + FlyBarLess + + + + + Tail + Ogon + + + + Tail controls + Kontrola ogona + + + + 1 Servo Elevator / 1 Servo Rudder + 1x serwo SW / 1x serwo SK + + + + V Tail + Deltamix (Usterzenie motylkowe) + + + + 2 Servos Elevator / 1 Servo Rudder + 2x serwo SW / 1x serwo SK + + + + Gyroscope + Gyro + + + + NoGyro + Bez gyra + + + + Switch control + Kontrola przełącznikem + + + + Pot control + Kontrola potencjometrem + + + + Channel style + Styl kanału + + + + Open9x Style + Styl Open9x + + + + Futaba Style + Styl Futaba + + + + 2 + + + + + 3 + + + + + 4 + + + + + 5 + + + + + 6 + + + + + 7 + + + + + 8 + + + + + 9 + + + + + 1 + + + + + 10 + + + + + Ele2 + SW2 + + + + Use advanced controls + Użyj zaawansowanych ustawień + + + + Spoiler2 + Przerywacz2 + + + + Flap2 + Klapa2 + + + + Flap1 + Klapa1 + + + + Rud2 + SK2 + + + + + + + + + + AUTO + + + + + + + + + + + CH01 + Kanał 01 + + + + + + + + + + CH02 + Kanał 01 + + + + + + + + + + CH03 + Kanał 03 + + + + + + + + + + CH04 + Kanał 04 + + + + + + + + + + CH05 + Kanał 05 + + + + + + + + + + CH06 + Kanał 06 + + + + + + + + + + CH07 + Kanał 07 + + + + + + + + + + CH08 + Kanał 08 + + + + + + + + + + CH09 + Kanał 09 + + + + + + + + + + CH10 + Kanał 10 + + + + Ail2 + Lotka2 + + + + Spoiler 1 + Przerywacz1 + + + + Delta wing + Skrzydło delta + + + + + Not present + Brak + + + + Present + Jest + + + + Rudder + SK + + + + Single rudder + Pojedynczy SK + + + + Dual rudder (with 2 servos) + Podwójny SK (dwa serwa) + + + + Apply configuration ? + Zastosować konfigurację ? + + + + Apply configuration deleting existing model ? + Zastosować konfigurację kasując instniejący model ? + + + + preferencesDialog + + + Preferences + Preferencje + + + + Check for selected Fw updates + Sprawdź aktualizacje firmware + + + + Ask use of wizard for new models + Zapytać czy używać konfiguratora nowych modeli + + + + Invert Pixels + Odwrócić piksele + + + + + ... + + + + + Remember switches in simulator + Zapamietać przaełaczniki w symulatorze + + + + Enable + Włącz + + + + Calibrate + Kalibruj + + + + + + + Open Folder + Otwórz katalog + + + + FwInfo + + + + + Check for updates + Sprawdź aktualizacje + + + + Open Image + Otwórz obrazek + + + + Language + Język + + + + + Download + Pobierz + + + + Set language of voice. +May be different from firmware language + Ustaw język komuniaktów głosowych (). +Moze być inny od języka firmware + + + + Voice + Komuniakty głosowe + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + CheckBox + + + + + Ask for flashing after Download + Zapytaj o flaszowanie po pobraniu + + + + Export Profile + Eksport profili + + + + Import Profile + Import profili + + + + Profile Name + Nazwa profilu + + + + Automatically add version number to the filename after download + Automatycznie dodaj numer wersji do nazwy pliku po pobraniu + + + + Save Profile + Zapisz profil + + + + Show Splash At Start + Pokazuj ekran startowy z logo + + + + Automatic Backup Folder + Automatyczny Katalog Backupów + + + + Simu BackLight + BackLight Color + Kolor podświetlenia + + + + Blue + Niebieski + + + + Green + Zielony + + + + Red + Czerwony + + + + Orange + Pomarańczowy + + + + Yellow + Żółty + + + + Theme + Skórka + + + + + Requires restart + Wymagany restart + + + + Classic + Klasyczna + + + + Monochrome + Monochromatyczna + + + + MonoWhite + Mono-Biała + + + + MonoBlue + Mono-Niebieska + + + + Icon size + Wielkość Ikon + + + + Small + Mała + + + + Normal + Normalna + + + + Big + Duża + + + + Huge + Olbrzymia + + + + Check for updates on startup + Sprawdź aktualizacje na przy uruchomieniu + + + + Google Earth Executable + Wykonywalny plik Google Earth + + + + Find Executable + Znajdź wykonywalny plik + + + + Language (requires restart) + Język programu (wymaga restartu) + + + + Custom TX splash screen + Własny obrazek na wyświetlaczu + + + + Channel order + +This is used by the templated to determine which channel goes to what number output. + Kolejność kanałów + To ustawienie jest używane przez szablony, jakie wyjście przypisane jest do kanałów. + + + + Firmware + + + + + Default Stick Mode + Bazowy mod drążków + + + + Default Channel Order + Bazowa kolejność kanałów + + + + Personal splash library + Własna biblioteka obrazków + + + + Mode selection: + +Mode 1: + Left stick: Elevator, Rudder + Right stick: Throttle, Aileron + +Mode 2: + Left stick: Throttle, Rudder + Right stick: Elevator, Aileron + +Mode 3: + Left stick: Elevator, Aileron + Right stick: Throttle, Rudder + +Mode 4: + Left stick: Throttle, Aileron + Right stick: Elevator, Rudder + + + Wybór modu: + +Mode 1: + Lewa ręka : Ster Wysokości, Ster Kierunku + Prawa ręka : Gaz, Lotki + +Mode 2: + Lewa ręka : Gaz, Ster Kierunku + Prawa ręka : Ster Wysokości, Lotki + +Mode 3: + Lewa ręka : Ster Wysokości, Lotki + Prawa ręka : Gaz, Ster Kierunku + +Mode 4: + Lewa ręka : Gaz, Lotki + Prawa ręka : Ster Wysokości, Ster Kierunku + + + + + + Mode 1 (RUD ELE THR AIL) + Mod 1 (SK.SW.Gaz.Lot) + + + + Mode 2 (RUD THR ELE AIL) + Mod 2 (SK.Gaz.SW.Lot) + + + + Mode 3 (AIL ELE THR RUD) + Mod 3 (LOT.SW.Gaz.SK) + + + + Mode 4 (AIL THR ELE RUD) + Mod 4 (Lot.Gaz.SW.SK) + + + + Joystick + + + + + Include companion splashes + Załącz bazowe logo + + + + Only user defined splashes + Własne logo + + + + Splash library behaviour + Zachowanie bibliteki obrazków + + + + SD Structure path + Struktura karty SD + + + + Processor ID + ID procesora + + + + Recent History Size + Wielkość zapamietanej historii + + + + Profile slot + Slot profilu + + + + auto backup before write + Automatyczny backup przed zapisem + + + + Simulator capture folder + Katalog zapisu symulatora + + + + Use clipboard only + Użycie schowka do kopiowania + + + + Last downloaded release: %1 + Ostatnie pobrane wydanie: %1 + + + + Image stored in settings + Logo zapamietane w ustawieniach + + + + + No joysticks found + Brak oysticka + + + + Select the folder replicating your SD structure + Wybierz folder do zreplikowania struktury Twojej karty SD + + + + Profile name is empty, profile slot %1 will be deleted.<br>Are you sure ? + Nazwa profilu jest pusta, slot %1 będzie skasowany.<br>Jesteś pewien ? + + + + Select your library folder + Support for SD memory card + Wybierz katalog bibliteki + + + + Select your snapshot folder + Katalog obrazków dla symulatora + + + + The selected firmware has never been downloaded by Companion. + Wybrany firmware nie został nigdy pobrany przez Companion. + + + + The selected firmware cannot be downloaded by Companion. + Companion nie moze pobrac wybranego firmware. + + + + Select your Models and Settings backup folder + Wybierz folder do backupowania Modeli i Ustawień + + + + Select Google Earth executable + Wybierz wykonywalny plik Google Earth + + + + + Error + Błąd + + + + + Cannot load %1. + nie mogę wczytać %1. + + + + Export profile As + Wyeksportuj profil jako + + + + Profile slot is not empty, profile slot %1 will we overwritten.<br>Are you sure ? + Slot profilu nie jest pusty, slot %1 zostanie zapisany.<br>Jesteś pewien ? + + + + Open Profile to import + Otworzyć PRofil do zaimportowania + + + + Open Image to load + Otworzyć obrazek + + + + Images (%1) + Obrazki (%1) + + + + printDialog + + + Dialog + + + + + Close + Zamknij + + + + Print + Drukuj + + + + Print to file + Drukuj do pliku + + + + Setup for: + Ustawianie: + + + + printed on: %1 + Wydrukowanno na: %1 + + + + General Model Settings + Główne ustawienia modelu + + + + + + + Name + Nazwa + + + + EEprom Size + Rozmiar EEPROM + + + + Timer1 + + + + + Timer2 + + + + + Protocol + Protokół + + + + Pulse Polarity + Polaryzacja pulsu + + + + Throttle Trim + Trymer gazu + + + + + + Enabled + Włączone + + + + + Disabled + Wyłaczone + + + + Throttle Expo + Expo gazu + + + + Trim Increment + Krok trymera + + + + Center Beep + Sygnał centrowania + + + + Flight modes Settings + Flight Phases Settings + Uztawienie faz lotu + + + + Fades + Przejścia + + + + Trims + Trymery + + + + Gvars + Zmienne globalne + + + + Rot.Enc. + Pokrętło. + + + + + + + + Switch + Przełącznik + + + + Logical Switches + Przełączniki Logiczne + + + + + LS + PL + + + + Switch Assignments + Przypisanie Przełączników + + + + IN + (+) + + + + OUT + (-) + + + + + + + FM + FP + LR + + + + Expo/Dr Settings + Ustawienia Expo/DR + + + + Weight + Vaga + + + + + + Curve + Krzywa + + + + Mixers + Miksery + + + + + + + + CH + Kanał + + + + noTrim + Bez trimu + + + + + + + + Offset + Ofset + + + + Delay(u%1:d%2) + Opóżnienie(u%1:d%2) + + + + Slow(u%1:d%2) + Spowolnienie(u%1:d%2) + + + + Warn + Ostrzeżenie + + + + + DISABLED + Wyłączone + + + + Limits + Limity + + + + + + + Min + + + + + + + + Max + Maks + + + + + + Invert + Odwrócenie + + + + + + INV + Odwr + + + + + + NOR + --- + + + + Curves + Krzywe + + + + pt %1 + pkt %1 + + + + Global Variables + Zmienne globalne + + + + GV + GZ + + + + Safety Switches + Przełączniki bezpieczeństwa + + + + + + + + Value + Wartość + + + + Function + Funkcja + + + + Parameter + Parametr + + + + Repeat + Powtórz + + + + Telemetry Settings + Ustawienia telemetrii + + + + + Alarm 1 + Alarm 1 + + + + + Alarm 2 + Alarm 2 + + + + Analog + Analog + + + + Unit + Jednostki + + + + Scale + Skala + + + + + + + Type + Typ + + + + + + + Condition + Warunek + + + + A%1 + + + + + RSSI Alarm + Alarm RSSI + + + + Frsky serial protocol + Protokół szeregowy Frsky + + + + System of units + System jednostek + + + + Propeller blades + Łopaty śmigła + + + + Telemetry Bars + Belki telemetrii + + + + Bar Number + Numer belki + + + + Source + Źródło + + + + ODF files (*.odt);;PDF Files(*.pdf);;HTML-Files (*.htm *.html);;All Files (*) + pliki ODF (*.odt);;pliki PDF (*.pdf);;pliki HTML (*.htm *.html);;Wszystkie pliki (*) + + + + + Custom Telemetry View + Widok telemetrii użytkownika + + + + Flight mode name + Nazwa trybu lotu + + + + + Flight modes + Tryby lotu + + + + + Flight mode + Tryb lotu + + + + Print Document + Drukuj dokument + + + + Select PDF output file + Wybierz docelowy plik PDF + + + + simulatorDialog + + + + + + Right Double Click to Reset + Powójne kliknięcie RP myszy w celu zresetowania + + + + THR + Gaz + + + + RUD + SK + + + + ELE + SW + + + + AIL + Lot + + + + + Hold X + Przytrzymaj X + + + + + Fix X + Zablokuj X + + + + + Fix Y + Zablokuj Y + + + + + Hold Y + Zablokuj Y + + + + + + + TextLabel + + + + + TRN + + + + + GEA + + + + + ID0 + + + + + ID1 + + + + + ID2 + + + + + P1 + Potencjometr1 + + + + + + 0 % + + + + + P2 + Potencjometr2 + + + + P3 + Potencjometr3 + + + + 9x Simulator + Symulator 9x + + + + Outputs + Wyjścia + + + + CS1 + PL1 + + + + CS2 + PL2 + + + + CS3 + PL3 + + + + CS4 + PL4 + + + + CS5 + PL5 + + + + CS6 + PL6 + + + + CS7 + PL7 + + + + CS8 + PL8 + + + + CS9 + PL9 + + + + CSA + PLA + + + + CSB + PLB + + + + CSC + PLC + + + + CSD + PLD + + + + CSE + PLE + + + + CSF + PLF + + + + CSG + PLG + + + + CSH + PLH + + + + CSI + PLI + + + + CSJ + PLJ + + + + CSL + PLL + + + + CSM + PLM + + + + CSN + PLN + + + + CSO + PLO + + + + CSP + PLP + + + + CSQ + PLQ + + + + CSR + PLR + + + + CSS + PLS + + + + CST + PLT + + + + CSU + PLU + + + + CSV + PLV + + + + BEEP + Zvuk + + + + Companion Simulator + Symulator Companion + + + + CSK + SWK + PLK + + + + CSW + SWW + PLW + + + + CH1 + Kanał 01 + + + + + + + + + + + + + + + + + + + -100.1 + + + + + CH9 + Kanał 09 + + + + CH2 + Kanał 02 + + + + CH10 + Kanał 10 + + + + CH3 + Kanał 03 + + + + CH11 + Kanał 11 + + + + CH4 + Kanał 04 + + + + CH12 + Kanał 12 + + + + CH5 + Kanał 05 + + + + CH13 + Kanał 13 + + + + CH6 + Kanał 06 + + + + CH14 + Kanał 14 + + + + CH7 + Kanał 07 + + + + CH15 + Kanał 15 + + + + CH8 + Kanał 08 + + + + CH16 + Kanał 16 + + + + + Warning + Ostrzeżnie + + + + Joystick enabled but not configured correctly + Joystick uaktywniony ale nieprawidłowo skonfigurowany + + + + Cannot open joystick, joystick disabled + Nie mogę otworzyć joysticka, dezaktywowany + + + + Firmware %1 error: %2 + Firmware %1 błąd: %2 + + + + - Flight mode: %1(%2) + - Tryb lotu: %1(%2) + + + + Simulating Tx (%1) + Symulacja Tx (%1) + + + + Simulating + Symulacja + + + + splashLibrary + + + + ... + + + + + Splash Library - page %1 of %2 + Biblioteka obrazków - strona %1 z %2 + + + + Warning + Ostrzeżenie + + + + Invalid image in library %1 + Nieprawidłowy obrazek w bibliotece %1 + + + + Information + Informacja + + + + No valid image found in library, check your settings + Nie znaleziono prawodłowego obrazka w biblitece, sprawdź ustawienia + + + + xsimulatorDialog + + + + + SF + + + + + + SE + + + + + + SA + + + + + + SB + + + + + + + + Right Double Click to Reset + Podwójne klikniecie RP myszy w celu zresetowania + + + + + + + TextLabel + + + + + + Hold X + Przytrzymaj X + + + + + Fix X + Zablokuj X + + + + + Fix Y + Zablokuj Y + + + + + Hold Y + Przytrzymaj Y + + + + + SH + + + + + + SG + + + + + + SD + + + + + + SC + + + + + + S2 + Poten 2 + + + + + RS + P suwak + + + + + S1 + Poten 1 + + + + + LS + L suwak + + + + Outputs + Wyjścia + + + + CH1 + Kanał 01 + + + + Taranis Simulator + Symulator Taranis + + + + Companion Simulator + Symulator Companion + + + + + + + + + + + + + + + + + + + -100.1 + + + + + CH9 + Kanał 09 + + + + CH2 + Kanał 02 + + + + CH10 + Kanał 10 + + + + CH3 + Kanał 03 + + + + CH11 + Kanał 11 + + + + CH4 + Kanał 04 + + + + CH12 + Kanał 12 + + + + CH5 + Kanał 05 + + + + CH13 + Kanał 13 + + + + CH6 + Kanał 06 + + + + CH14 + Kanał 14 + + + + CH7 + Kanał 07 + + + + CH15 + Kanał 15 + + + + CH8 + Kanał 08 + + + + CH16 + Kanał 16 + + + + CSK + PLK + + + + CSC + PLC + + + + CSD + PLD + + + + CS7 + PL7 + + + + CSL + PLL + + + + CSB + PLB + + + + CS1 + PL1 + + + + CSH + PLH + + + + CSG + PLG + + + + CSE + PLE + + + + CSF + PLF + + + + CS8 + PL8 + + + + CS9 + PL9 + + + + CSA + PLA + + + + CSM + PLM + + + + CSJ + PLJ + + + + CSI + PLI + + + + CS4 + PL4 + + + + CS5 + PL5 + + + + CS2 + PL2 + + + + CS3 + PL3 + + + + CS6 + PL6 + + + + CSN + PLN + + + + CSO + PLO + + + + CSP + PLP + + + + CSQ + PLQ + + + + CSR + PLR + + + + CSS + PLS + + + + CST + PLT + + + + CSU + PLU + + + + CSV + PLV + + + + CSW + PLW + + + + + Warning + Osrzeżenie + + + + Joystick enabled but not configured correctly + Joystick aktywny ale nie skonfogurowany prawidłowo + + + + Cannot open joystick, joystick disabled + Nie mogę otworzyć joystika, Joystik wyłaczony + + + + Firmware %1 error: %2 + Firmware %1 bład: %2 + + + + - Flight mode: %1(%2) + - Tryb lotu: %1(%2) + + + + Simulating Tx (%1) + Symulacja Tx (%1) + + + + Simulating + Symulacja + + + From 2d884d413a7e16cb52ad6da204a2f86a45b11ea8 Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Fri, 31 Jan 2014 17:32:56 +0100 Subject: [PATCH 13/16] [Taranis] Pots type added to the Companion UI --- companion/src/generaledit.cpp | 27 ++++++++++- companion/src/generaledit.h | 3 ++ companion/src/generaledit.ui | 87 ++++++++++++++++++++++++++++++++++- companion/src/helpers.cpp | 3 +- 4 files changed, 117 insertions(+), 3 deletions(-) diff --git a/companion/src/generaledit.cpp b/companion/src/generaledit.cpp index fdff37ae9..f197eb7b1 100644 --- a/companion/src/generaledit.cpp +++ b/companion/src/generaledit.cpp @@ -64,7 +64,8 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : } this->layout()->removeItem(ui->TaranisReadOnlyUnlock); } - } else { + } + else { for (int i=0; pmsl[i]; i++) { pmsl[i]->hide(); } @@ -373,6 +374,18 @@ GeneralEdit::GeneralEdit(RadioData &radioData, QWidget *parent) : for (int i=0; tpmsld[i]; i++) { connect(tpmsld[i], SIGNAL(valueChanged(int)),this,SLOT(unlockSwitchEdited())); } + + if (GetEepromInterface()->getCapability(MultiposPots)) { + ui->pot1Type->setCurrentIndex(g_eeGeneral.potsType[0]); + ui->pot2Type->setCurrentIndex(g_eeGeneral.potsType[1]); + } + else { + ui->potsTypeSeparator->hide(); + ui->pot1Type->hide(); + ui->pot1TypeLabel->hide(); + ui->pot2Type->hide(); + ui->pot2TypeLabel->hide(); + } } GeneralEdit::~GeneralEdit() @@ -380,6 +393,18 @@ GeneralEdit::~GeneralEdit() delete ui; } +void GeneralEdit::on_pot1Type_currentIndexChanged(int index) +{ + g_eeGeneral.potsType[0] = index; + updateSettings(); +} + +void GeneralEdit::on_pot2Type_currentIndexChanged(int index) +{ + g_eeGeneral.potsType[1] = index; + updateSettings(); +} + void GeneralEdit::unlockSwitchEdited() { int i=0; diff --git a/companion/src/generaledit.h b/companion/src/generaledit.h index eb6895d13..ce160dc0b 100644 --- a/companion/src/generaledit.h +++ b/companion/src/generaledit.h @@ -119,6 +119,9 @@ private slots: void on_varioVolume_SL_valueChanged(); void on_wavVolume_SL_valueChanged(); + void on_pot1Type_currentIndexChanged(int index); + void on_pot2Type_currentIndexChanged(int index); + void on_stickmodeCB_currentIndexChanged(int index); void on_channelorderCB_currentIndexChanged(int index); void on_beeperCB_currentIndexChanged(int index); diff --git a/companion/src/generaledit.ui b/companion/src/generaledit.ui index 48a7445b5..29b17eb7d 100644 --- a/companion/src/generaledit.ui +++ b/companion/src/generaledit.ui @@ -110,7 +110,7 @@ These will be relevant for all models in the same EEPROM. - 0 + 3 @@ -3494,6 +3494,91 @@ p, li { white-space: pre-wrap; } + + + + + 0 + 10 + + + + Qt::Horizontal + + + + + + + + + + + + + Beeper volume + +0 - Quiet. No beeps at all. +1 - No Keys. Normal beeps but menu keys do not beep. +2 - Normal. +3 - Loud. +4 - Extra loud. + + + + Pot (normal) + + + + + Multipos Switch + + + + + + + + S1 Type + + + + + + + + + + + + + Beeper volume + +0 - Quiet. No beeps at all. +1 - No Keys. Normal beeps but menu keys do not beep. +2 - Normal. +3 - Loud. +4 - Extra loud. + + + + Pot (normal) + + + + + Multipos Switch + + + + + + + + S2 Type + + + diff --git a/companion/src/helpers.cpp b/companion/src/helpers.cpp index 97ef84275..2a5e4f2fc 100644 --- a/companion/src/helpers.cpp +++ b/companion/src/helpers.cpp @@ -1097,7 +1097,8 @@ void populateSourceCB(QComboBox *b, const RawSource & source, const ModelData & b->addItem(item.toString(), item.toValue()); if (item == source) b->setCurrentIndex(b->count()-1); } - } else if (flags & POPULATE_TELEMETRY) { + } + else if (flags & POPULATE_TELEMETRY) { for (int i=0; iaddItem(item.toString(), item.toValue()); From 298803ca048af0d3ba070041f2c1f234f6d6cb7d Mon Sep 17 00:00:00 2001 From: Bertrand Songis Date: Sat, 1 Feb 2014 08:23:44 +0100 Subject: [PATCH 14/16] Update DONATIONS.txt --- DONATIONS.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/DONATIONS.txt b/DONATIONS.txt index 1c083a4c5..aa31b72d6 100644 --- a/DONATIONS.txt +++ b/DONATIONS.txt @@ -309,3 +309,4 @@ Dean Jansa Ronald Donker Paul Oldenkamp Dietmar Drees +Bradley Murchie From a3b785246762e19fc76a98e31ade5b3a8d265874 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Sat, 1 Feb 2014 09:52:27 +0100 Subject: [PATCH 15/16] Overflow in S2 type selection --- radio/src/gui/menu_general.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index c5f97dae9..1febca121 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1191,7 +1191,7 @@ void menuGeneralHardware(uint8_t event) { int idx = i - ITEM_SETUP_HW_POT1; uint8_t mask = (1<> idx, 0, 1, attr, event); if (potType) g_eeGeneral.potsType |= mask; else From 7d5e37d5facbdd9a7cc8c707a8d7af27441e0677 Mon Sep 17 00:00:00 2001 From: Andre Bernet Date: Sat, 1 Feb 2014 10:13:18 +0100 Subject: [PATCH 16/16] Reset pot type to Pot if max no of steps exceeded to avoid stray switch entry --- radio/src/gui/menu_general.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/radio/src/gui/menu_general.cpp b/radio/src/gui/menu_general.cpp index 1febca121..e422861fd 100644 --- a/radio/src/gui/menu_general.cpp +++ b/radio/src/gui/menu_general.cpp @@ -1314,6 +1314,9 @@ void menuCommonCalib(uint8_t event) if (count < POTS_POS_COUNT) { reusableBuffer.calib.xpotsCalib[idx].steps[count] = position; } + else { + g_eeGeneral.potsType &= !(1<