From 48d30e50c729d20be14036089d136eb4c5726339 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 22 Mar 2019 18:20:00 +0100 Subject: [PATCH 001/453] Wavelet Clarity and Unsharp mask --- rtdata/languages/default | 17 + rtengine/dcrop.cc | 112 +- rtengine/improccoordinator.cc | 152 ++- rtengine/ipwavelet.cc | 949 ++++++++------- rtengine/procparams.cc | 24 + rtengine/procparams.h | 6 + rtengine/simpleprocess.cc | 561 +++++---- rtgui/paramsedited.cc | 38 +- rtgui/paramsedited.h | 6 + rtgui/wavelet.cc | 2115 ++++++++++++++++++--------------- rtgui/wavelet.h | 21 +- 11 files changed, 2327 insertions(+), 1674 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 09f6fe9c1..432da3054 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -780,6 +780,12 @@ HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +HISTORY_MSG_WAVCLARI;Clarity +HISTORY_MSG_WAVUSHAMET;Clarity method +HISTORY_MSG_WAVMERGEL;Merge L +HISTORY_MSG_WAVMERGEC;Merge C +HISTORY_MSG_WAVSOFTRAD;Soft radius clarity +HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2129,6 +2135,7 @@ TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold betwe TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" TP_WAVELET_CHSL;Sliders TP_WAVELET_CHTYPE;Chrominance method +TP_WAVELET_CLARI;Clarity - Usharp Mask TP_WAVELET_COLORT;Opacity Red-Green TP_WAVELET_COMPCONT;Contrast TP_WAVELET_COMPGAMMA;Compression gamma @@ -2211,6 +2218,8 @@ TP_WAVELET_MEDGREINF;First level TP_WAVELET_MEDI;Reduce artifacts in blue sky TP_WAVELET_MEDILEV;Edge detection TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. +TP_WAVELET_MERGEL;Merge Luma +TP_WAVELET_MERGEC;Merge Chroma TP_WAVELET_NEUTRAL;Neutral TP_WAVELET_NOIS;Denoise TP_WAVELET_NOISE;Denoise and Refine @@ -2238,6 +2247,7 @@ TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. TP_WAVELET_SKY;Sky targetting/protection TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. +TP_WAVELET_SOFTRAD;Soft Radius TP_WAVELET_STREN;Strength TP_WAVELET_STRENGTH;Strength TP_WAVELET_SUPE;Extra @@ -2256,6 +2266,13 @@ TP_WAVELET_TMSTRENGTH;Compression strength TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. TP_WAVELET_TMTYPE;Compression method TP_WAVELET_TON;Toning +TP_WAVELET_USHARP;Clarity method +TP_WAVELET_USH;None +TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels +TP_WAVELET_SHA;Sharp mask +TP_WAVELET_CLA;Clarity +TP_WAVELET_USHARP;Sharp method +TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment TP_WBALANCE_AUTO;Auto TP_WBALANCE_CAMERA;Camera TP_WBALANCE_CLOUDY;Cloudy diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 0872049d8..695fd9056 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -23,6 +23,7 @@ #include "procparams.h" #include "refreshmap.h" #include "rt_math.h" +#include "guidedfilter.h" namespace { @@ -43,7 +44,7 @@ extern const Settings* settings; Crop::Crop(ImProcCoordinator* parent, EditDataProvider *editDataProvider, bool isDetailWindow) : PipetteBuffer(editDataProvider), origCrop(nullptr), laboCrop(nullptr), labnCrop(nullptr), - cropImg (nullptr), transCrop (nullptr), cieCrop (nullptr), + cropImg(nullptr), transCrop(nullptr), cieCrop(nullptr), updating(false), newUpdatePending(false), skip(10), cropx(0), cropy(0), cropw(-1), croph(-1), trafx(0), trafy(0), trafw(-1), trafh(-1), @@ -825,15 +826,17 @@ void Crop::update(int todo) parent->ipf.workingtrc(workingCrop, workingCrop, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, parent->getCustomTransformOut(), false, true, true); } } + double rrm, ggm, bbm; DCPProfile::ApplyState as; DCPProfile *dcpProf = parent->imgsrc->getDCP(params.icm, as); LUTu histToneCurve; - parent->ipf.rgbProc (workingCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve, + parent->ipf.rgbProc(workingCrop, laboCrop, this, parent->hltonecurve, parent->shtonecurve, parent->tonecurve, params.toneCurve.saturation, parent->rCurve, parent->gCurve, parent->bCurve, parent->colourToningSatLimit, parent->colourToningSatLimitOpacity, parent->ctColorCurve, parent->ctOpacityCurve, parent->opautili, parent->clToningcurve, parent->cl2Toningcurve, parent->customToneCurve1, parent->customToneCurve2, parent->beforeToneCurveBW, parent->afterToneCurveBW, rrm, ggm, bbm, parent->bwAutoR, parent->bwAutoG, parent->bwAutoB, dcpProf, as, histToneCurve); + if (workingCrop != baseCrop) { delete workingCrop; } @@ -893,8 +896,8 @@ void Crop::update(int todo) parent->ipf.MLsharpen(labnCrop); if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { - parent->ipf.MLmicrocontrast (labnCrop); - parent->ipf.sharpening (labnCrop, params.sharpening, parent->sharpMask); + parent->ipf.MLmicrocontrast(labnCrop); + parent->ipf.sharpening(labnCrop, params.sharpening, parent->sharpMask); } } @@ -938,7 +941,7 @@ void Crop::update(int todo) if (params.wavelet.Tilesmethod == "big") { realtile = 22; - } else /*if (params.wavelet.Tilesmethod == "lit")*/ { + } else { /*if (params.wavelet.Tilesmethod == "lit")*/ realtile = 12; } @@ -985,15 +988,106 @@ void Crop::update(int todo) LUTu dummy; params.wavelet.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + LabImage *unshar = nullptr; + Glib::ustring provis; + LabImage *provradius = nullptr; + + if (WaveParams.softrad > 0.f) { + provradius = new LabImage(labnCrop->W, labnCrop->H); + provradius->CopyFrom(labnCrop); + } + + + + if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + + unshar = new LabImage(labnCrop->W, labnCrop->H); + provis = params.wavelet.CLmethod; + params.wavelet.CLmethod = "all"; + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + unshar->CopyFrom(labnCrop); + + params.wavelet.CLmethod = provis; + + } parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + + if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + + float mL = (float)(WaveParams.mergeL / 100.f); + float mC = (float)(WaveParams.mergeC / 100.f); + float mL0; + float mC0; + + if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { + mL0 = mC0 = 0.f; + mL = -mL; + mC = -mC; + } else if (WaveParams.CLmethod == "sup" && WaveParams.Backmethod == "resid") { + mL0 = mL; + mC0 = mC; + } else { + mL0 = mL = mC0 = mC = 0.f; + } + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int x = 0; x < labnCrop->H; x++) + for (int y = 0; y < labnCrop->W; y++) { + labnCrop->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * labnCrop->L[x][y]; + labnCrop->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * labnCrop->a[x][y]; + labnCrop->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * labnCrop->b[x][y]; + } + + delete unshar; + unshar = NULL; + + if (WaveParams.softrad > 0.f) { + array2D ble(labnCrop->W, labnCrop->H); + array2D guid(labnCrop->W, labnCrop->H); + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < labnCrop->H ; ir++) + for (int jr = 0; jr < labnCrop->W; jr++) { + ble[ir][jr] = (labnCrop->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + + float blur = 10.f / skip * (0.1f + 0.8f * WaveParams.softrad); + rtengine::guidedFilter(guid, ble, ble, blur, 0.001, false); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < labnCrop->H; ir++) + for (int jr = 0; jr < labnCrop->W; jr++) { + labnCrop->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; + } + } + + if (WaveParams.softrad > 0.f) { + delete provradius; + provradius = NULL; + } + + + } + + } - parent->ipf.softLight(labnCrop); + parent->ipf.softLight(labnCrop); - // } - - // } if (params.colorappearance.enabled) { float fnum = parent->imgsrc->getMetaData()->getFNumber(); // F number float fiso = parent->imgsrc->getMetaData()->getISOSpeed() ; // ISO diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index ec047f853..c6207964f 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -28,6 +28,7 @@ #include #include #include +#include "guidedfilter.h" #include "color.h" #ifdef _OPENMP #include @@ -45,11 +46,11 @@ ImProcCoordinator::ImProcCoordinator() : fattal_11_dcrop_cache(nullptr), previmg(nullptr), workimg(nullptr), - ncie (nullptr), - imgsrc (nullptr), - lastAwbEqual (0.), - lastAwbTempBias (0.0), - monitorIntent (RI_RELATIVE), + ncie(nullptr), + imgsrc(nullptr), + lastAwbEqual(0.), + lastAwbTempBias(0.0), + monitorIntent(RI_RELATIVE), softProof(false), gamutCheck(false), sharpMask(false), @@ -181,12 +182,12 @@ ImProcCoordinator::~ImProcCoordinator() imgsrc->decreaseRef(); - if(customTransformIn) { + if (customTransformIn) { cmsDeleteTransform(customTransformIn); customTransformIn = nullptr; } - if(customTransformOut) { + if (customTransformOut) { cmsDeleteTransform(customTransformOut); customTransformOut = nullptr; } @@ -271,9 +272,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) imgsrc->setCurrentFrame(params->raw.bayersensor.imageNum); imgsrc->preprocess(rp, params->lensProf, params->coarse); + if (flatFieldAutoClipListener && rp.ff_AutoClipControl) { flatFieldAutoClipListener->flatFieldAutoClipValueChanged(imgsrc->getFlatFieldAutoClipValue()); } + imgsrc->getRAWHistogram(histRedRaw, histGreenRaw, histBlueRaw); highDetailPreprocessComputed = highDetailNeeded; @@ -307,8 +310,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) printf("Demosaic X-Trans image with using method: %s\n", rp.xtranssensor.method.c_str()); } } - if(imgsrc->getSensorType() == ST_BAYER) { - if(params->raw.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { + + if (imgsrc->getSensorType() == ST_BAYER) { + if (params->raw.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { imgsrc->setBorder(params->raw.bayersensor.border); } else { imgsrc->setBorder(std::max(params->raw.bayersensor.border, 2)); @@ -316,6 +320,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } else if (imgsrc->getSensorType() == ST_FUJI_XTRANS) { imgsrc->setBorder(params->raw.xtranssensor.border); } + bool autoContrast = imgsrc->getSensorType() == ST_BAYER ? params->raw.bayersensor.dualDemosaicAutoContrast : params->raw.xtranssensor.dualDemosaicAutoContrast; double contrastThreshold = imgsrc->getSensorType() == ST_BAYER ? params->raw.bayersensor.dualDemosaicContrast : params->raw.xtranssensor.dualDemosaicContrast; imgsrc->demosaic(rp, autoContrast, contrastThreshold); //enabled demosaic @@ -323,6 +328,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (imgsrc->getSensorType() == ST_BAYER && bayerAutoContrastListener && autoContrast) { bayerAutoContrastListener->autoContrastChanged(autoContrast ? contrastThreshold : -1.0); } + if (imgsrc->getSensorType() == ST_FUJI_XTRANS && xtransAutoContrastListener && autoContrast) { xtransAutoContrastListener->autoContrastChanged(autoContrast ? contrastThreshold : -1.0); } @@ -578,7 +584,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) progress("Exposure curve & CIELAB conversion...", 100 * readyphase / numofphases); - if (todo & (M_AUTOEXP | M_RGBCURVE)) { + if (todo & (M_AUTOEXP | M_RGBCURVE)) { if (params->icm.workingTRC == "Custom") { //exec TRC IN free if (oprevi == orig_prev) { oprevi = new Imagefloat(pW, pH); @@ -590,17 +596,21 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") { const int cw = oprevi->getWidth(); const int ch = oprevi->getHeight(); + // put gamma TRC to 1 - if(customTransformIn) { + if (customTransformIn) { cmsDeleteTransform(customTransformIn); customTransformIn = nullptr; } + ipf.workingtrc(oprevi, oprevi, cw, ch, -5, params->icm.workingProfile, 2.4, 12.92310, customTransformIn, true, false, true); + //adjust TRC - if(customTransformOut) { + if (customTransformOut) { cmsDeleteTransform(customTransformOut); customTransformOut = nullptr; } + ipf.workingtrc(oprevi, oprevi, cw, ch, 5, params->icm.workingProfile, params->icm.workingTRCGamma, params->icm.workingTRCSlope, customTransformOut, false, true, true); } } @@ -608,7 +618,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if ((todo & M_RGBCURVE) || (todo & M_CROP)) { - // if (hListener) oprevi->calcCroppedHistogram(params, scale, histCropped); + // if (hListener) oprevi->calcCroppedHistogram(params, scale, histCropped); //complexCurve also calculated pre-curves histogram depending on crop CurveFactory::complexCurve(params->toneCurve.expcomp, params->toneCurve.black / 65535.0, @@ -702,7 +712,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) DCPProfile::ApplyState as; DCPProfile *dcpProf = imgsrc->getDCP(params->icm, as); - ipf.rgbProc (oprevi, oprevl, nullptr, hltonecurve, shtonecurve, tonecurve, params->toneCurve.saturation, + ipf.rgbProc(oprevi, oprevl, nullptr, hltonecurve, shtonecurve, tonecurve, params->toneCurve.saturation, rCurve, gCurve, bCurve, colourToningSatLimit, colourToningSatLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, beforeToneCurveBW, afterToneCurveBW, rrm, ggm, bbm, bwAutoR, bwAutoG, bwAutoB, params->toneCurve.expcomp, params->toneCurve.hlcompr, params->toneCurve.hlcomprthresh, dcpProf, as, histToneCurve); if (params->blackwhite.enabled && params->blackwhite.autoc && abwListener) { @@ -838,20 +848,119 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) //CurveFactory::curveWavContL ( wavcontlutili,params->wavelet.lcurve, wavclCurve, LUTu & histogramwavcl, LUTu & outBeforeWavCLurveHistogram,int skip); CurveFactory::curveWavContL(wavcontlutili, params->wavelet.wavclCurve, wavclCurve, scale == 1 ? 1 : 16); - if ((params->wavelet.enabled)) { WaveletParams WaveParams = params->wavelet; - // WaveParams.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY); WaveParams.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); - int kall = 0; progress("Wavelet...", 100 * readyphase / numofphases); - // ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, scale); + LabImage *unshar = nullptr; + Glib::ustring provis; + LabImage *provradius = nullptr; + + if (WaveParams.softrad > 0.f) { + provradius = new LabImage(pW, pH); + provradius->CopyFrom(nprevl); + } + + + + + if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + unshar = new LabImage(pW, pH); + provis = params->wavelet.CLmethod; + params->wavelet.CLmethod = "all"; + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + + unshar->CopyFrom(nprevl); + + params->wavelet.CLmethod = provis; + + } + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + float mL = (float)(WaveParams.mergeL / 100.f); + float mC = (float)(WaveParams.mergeC / 100.f); + float mL0; + float mC0; + + if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { + mL0 = mC0 = 0.f; + mL = -mL; + mC = -mC; + } else if (WaveParams.CLmethod == "sup" && WaveParams.Backmethod == "resid") { + mL0 = mL; + mC0 = mC; + } else { + mL0 = mL = mC0 = mC = 0.f; + } + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int x = 0; x < pH; x++) + for (int y = 0; y < pW; y++) { + nprevl->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * nprevl->L[x][y]; + nprevl->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * nprevl->a[x][y]; + nprevl->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * nprevl->b[x][y]; + } + + delete unshar; + unshar = NULL; + + if (WaveParams.softrad > 0.f) { + array2D ble(pW, pH); + array2D guid(pW, pH); + /* + #ifdef _OPENMP + const int numThreads = omp_get_max_threads(); + #endif + + bool multiTh = false; + + if (numThreads > 1) { + multiTh = true; + } + */ +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < pH; ir++) + for (int jr = 0; jr < pW; jr++) { + ble[ir][jr] = (nprevl->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + + float blur = 10.f / scale * (0.1f + 0.8f * WaveParams.softrad); + // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + rtengine::guidedFilter(guid, ble, ble, blur, 0.001, false); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < pH; ir++) + for (int jr = 0; jr < pW; jr++) { + nprevl->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; + } + } + + if (WaveParams.softrad > 0.f) { + delete provradius; + provradius = NULL; + } + + + } } - ipf.softLight(nprevl); + ipf.softLight(nprevl); if (params->colorappearance.enabled) { //L histo and Chroma histo for ciecam @@ -1010,6 +1119,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) hListener->histogramChanged(histRed, histGreen, histBlue, histLuma, histToneCurve, histLCurve, histCCurve, /*histCLurve, histLLCurve,*/ histLCAM, histCCAM, histRedRaw, histGreenRaw, histBlueRaw, histChroma, histLRETI); } } + if (orig_prev != oprevi) { delete oprevi; oprevi = nullptr; @@ -1307,7 +1417,7 @@ void ImProcCoordinator::getSoftProofing(bool &softProof, bool &gamutCheck) gamutCheck = this->gamutCheck; } -void ImProcCoordinator::setSharpMask (bool sharpMask) +void ImProcCoordinator::setSharpMask(bool sharpMask) { this->sharpMask = sharpMask; } @@ -1477,7 +1587,7 @@ void ImProcCoordinator::process() while (changeSinceLast) { const bool panningRelatedChange = - params->toneCurve != nextParams->toneCurve + params->toneCurve != nextParams->toneCurve || params->labCurve != nextParams->labCurve || params->localContrast != nextParams->localContrast || params->rgbCurves != nextParams->rgbCurves diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index d3595b42c..8b5f33b74 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -41,6 +41,7 @@ #include "EdgePreservingDecomposition.h" #include "iccstore.h" #include "procparams.h" +#include "guidedfilter.h" #ifdef _OPENMP #include @@ -149,38 +150,46 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // init variables to display Munsell corrections MunsellDebugInfo* MunsDebugInfo = new MunsellDebugInfo(); #endif - TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (params->icm.workingProfile); + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix(params->icm.workingProfile); const double wip[3][3] = { {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, {wiprof[2][0], wiprof[2][1], wiprof[2][2]} }; const short int imheight = lab->H, imwidth = lab->W; + LabImage *provradius = nullptr; + + if (waparams.softradend > 0.f && params->wavelet.expfinal) { + provradius = new LabImage(lab->W, lab->H); + provradius->CopyFrom(lab); + } + struct cont_params cp; + cp.avoi = params->wavelet.avoid; - if(params->wavelet.Medgreinf == "more") { + if (params->wavelet.Medgreinf == "more") { cp.reinforce = 1; } - if(params->wavelet.Medgreinf == "none") { + if (params->wavelet.Medgreinf == "none") { cp.reinforce = 2; } - if(params->wavelet.Medgreinf == "less") { + if (params->wavelet.Medgreinf == "less") { cp.reinforce = 3; } - if(params->wavelet.NPmethod == "none") { + if (params->wavelet.NPmethod == "none") { cp.lip3 = false; } - if(params->wavelet.NPmethod == "low") { + if (params->wavelet.NPmethod == "low") { cp.lip3 = true; cp.neigh = 0; } - if(params->wavelet.NPmethod == "high") { + if (params->wavelet.NPmethod == "high") { cp.lip3 = true; cp.neigh = 1; } @@ -192,27 +201,27 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.tonemap = false; cp.bam = false; - if(params->wavelet.tmrs == 0) { + if (params->wavelet.tmrs == 0) { cp.tonemap = false; } else { cp.tonemap = true; } - if(params->wavelet.TMmethod == "cont") { + if (params->wavelet.TMmethod == "cont") { cp.contmet = 1; - } else if(params->wavelet.TMmethod == "tm") { + } else if (params->wavelet.TMmethod == "tm") { cp.contmet = 2; } - if(params->wavelet.BAmethod != "none") { + if (params->wavelet.BAmethod != "none") { cp.bam = true; } - if(params->wavelet.BAmethod == "sli") { + if (params->wavelet.BAmethod == "sli") { cp.BAmet = 1; } - if(params->wavelet.BAmethod == "cur") { + if (params->wavelet.BAmethod == "cur") { cp.BAmet = 2; } @@ -226,15 +235,15 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.toningena = params->wavelet.exptoning; cp.noiseena = params->wavelet.expnoise; - if(params->wavelet.Backmethod == "black") { + if (params->wavelet.Backmethod == "black") { cp.backm = 0; } - if(params->wavelet.Backmethod == "grey") { + if (params->wavelet.Backmethod == "grey") { cp.backm = 1; } - if(params->wavelet.Backmethod == "resid") { + if (params->wavelet.Backmethod == "resid") { cp.backm = 2; } @@ -246,7 +255,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.edgsens = 60.f; cp.edgampl = 10.f; - if(cp.lipp) { + if (cp.lipp) { cp.edgsens = (float) params->wavelet.edgesensi; cp.edgampl = (float) params->wavelet.edgeampli; } @@ -257,7 +266,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const static const float scales[10] = {1.f, 2.f, 4.f, 8.f, 16.f, 32.f, 64.f, 128.f, 256.f, 512.f}; float scaleskip[10]; - for(int sc = 0; sc < 10; sc++) { + for (int sc = 0; sc < 10; sc++) { scaleskip[sc] = scales[sc] / skip; } @@ -267,23 +276,23 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //int DaubLen = settings->daubech ? 8 : 6; int DaubLen; - if(params->wavelet.daubcoeffmethod == "2_") { + if (params->wavelet.daubcoeffmethod == "2_") { DaubLen = 4; } - if(params->wavelet.daubcoeffmethod == "4_") { + if (params->wavelet.daubcoeffmethod == "4_") { DaubLen = 6; } - if(params->wavelet.daubcoeffmethod == "6_") { + if (params->wavelet.daubcoeffmethod == "6_") { DaubLen = 8; } - if(params->wavelet.daubcoeffmethod == "10_") { + if (params->wavelet.daubcoeffmethod == "10_") { DaubLen = 12; } - if(params->wavelet.daubcoeffmethod == "14_") { + if (params->wavelet.daubcoeffmethod == "14_") { DaubLen = 16; } @@ -292,11 +301,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // if(params->wavelet.CHSLmethod=="CU") cp.CHSLmet=2; cp.EDmet = 1; - if(params->wavelet.EDmethod == "SL") { + if (params->wavelet.EDmethod == "SL") { cp.EDmet = 1; } - if(params->wavelet.EDmethod == "CU") { + if (params->wavelet.EDmethod == "CU") { cp.EDmet = 2; } @@ -316,29 +325,29 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.CHmet = 0; cp.HSmet = false; - if(params->wavelet.CHmethod == "with") { + if (params->wavelet.CHmethod == "with") { cp.CHmet = 1; } - if(params->wavelet.CHmethod == "link") { + if (params->wavelet.CHmethod == "link") { cp.CHmet = 2; } - if(params->wavelet.HSmethod == "with") { + if (params->wavelet.HSmethod == "with") { cp.HSmet = true; } cp.strength = min(1.f, max(0.f, ((float)params->wavelet.strength / 100.f))); - for(int m = 0; m < maxmul; m++) { + for (int m = 0; m < maxmul; m++) { cp.mulC[m] = waparams.ch[m]; } - if(waOpacityCurveRG) { + if (waOpacityCurveRG) { cp.opaRG = true; } - if(cp.opaRG) { + if (cp.opaRG) { cp.mulopaRG[0] = 200.f * (waOpacityCurveRG[0] - 0.5f); cp.mulopaRG[1] = 200.f * (waOpacityCurveRG[62] - 0.5f); cp.mulopaRG[2] = 200.f * (waOpacityCurveRG[125] - 0.5f); @@ -349,16 +358,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.mulopaRG[7] = 200.f * (waOpacityCurveRG[438] - 0.5f); cp.mulopaRG[8] = 200.f * (waOpacityCurveRG[500] - 0.5f); } else { - for(int level = 0; level < 9; level++) { + for (int level = 0; level < 9; level++) { cp.mulopaRG[level] = 0.f; } } - if(waOpacityCurveBY) { + if (waOpacityCurveBY) { cp.opaBY = true; } - if(cp.opaBY) { + if (cp.opaBY) { cp.mulopaBY[0] = 200.f * (waOpacityCurveBY[0] - 0.5f); cp.mulopaBY[1] = 200.f * (waOpacityCurveBY[62] - 0.5f); cp.mulopaBY[2] = 200.f * (waOpacityCurveBY[125] - 0.5f); @@ -369,47 +378,47 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.mulopaBY[7] = 200.f * (waOpacityCurveBY[438] - 0.5f); cp.mulopaBY[8] = 200.f * (waOpacityCurveBY[500] - 0.5f); } else { - for(int level = 0; level < 9; level++) { + for (int level = 0; level < 9; level++) { cp.mulopaBY[level] = 0.f; } } - if(wavCLVCcurve) { + if (wavCLVCcurve) { cp.edgcurv = true; } - if(waOpacityCurveWL) { + if (waOpacityCurveWL) { cp.diagcurv = true; } - for(int m = 0; m < maxmul; m++) { + for (int m = 0; m < maxmul; m++) { cp.mul[m] = waparams.c[m]; } cp.mul[9] = (float) waparams.sup; - for(int sc = 0; sc < 10; sc++) { //reduce strength if zoom < 100% for contrast - if(sc == 0) { - if(scaleskip[sc] < 1.f) { + for (int sc = 0; sc < 10; sc++) { //reduce strength if zoom < 100% for contrast + if (sc == 0) { + if (scaleskip[sc] < 1.f) { cp.mul[sc] *= (atten0 * scaleskip[sc]); } } else { - if(scaleskip[sc] < 1.f) { + if (scaleskip[sc] < 1.f) { cp.mul[sc] *= (atten123 * scaleskip[sc]); } } } // if(settings->verbose) printf("Wav mul 0=%f 1=%f 2=%f 3=%f 4=%f 5=%f 6=%f 7=%f 8=%f 9=%f\n",cp.mul[0],cp.mul[1],cp.mul[2],cp.mul[3],cp.mul[4],cp.mul[5],cp.mul[6],cp.mul[7],cp.mul[8],cp.mul[9]); - for(int sc = 0; sc < 9; sc++) { //reduce strength if zoom < 100% for chroma and tuning - if(sc == 0) { - if(scaleskip[sc] < 1.f) { + for (int sc = 0; sc < 9; sc++) { //reduce strength if zoom < 100% for chroma and tuning + if (sc == 0) { + if (scaleskip[sc] < 1.f) { cp.mulC[sc] *= (atten0 * scaleskip[sc]); cp.mulopaRG[sc] *= (atten0 * scaleskip[sc]); cp.mulopaBY[sc] *= (atten0 * scaleskip[sc]); } } else { - if(scaleskip[sc] < 1.f) { + if (scaleskip[sc] < 1.f) { cp.mulC[sc] *= (atten123 * scaleskip[sc]); cp.mulopaRG[sc] *= (atten123 * scaleskip[sc]); cp.mulopaBY[sc] *= (atten123 * scaleskip[sc]); @@ -489,28 +498,28 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int minwin = min(imwidth, imheight); int maxlevelcrop = 9; - if(cp.mul[9] != 0) { + if (cp.mul[9] != 0) { maxlevelcrop = 10; } // adap maximum level wavelet to size of crop - if(minwin * skip < 1024) { + if (minwin * skip < 1024) { maxlevelcrop = 9; //sampling wavelet 512 } - if(minwin * skip < 512) { + if (minwin * skip < 512) { maxlevelcrop = 8; //sampling wavelet 256 } - if(minwin * skip < 256) { + if (minwin * skip < 256) { maxlevelcrop = 7; //sampling 128 } - if(minwin * skip < 128) { + if (minwin * skip < 128) { maxlevelcrop = 6; } - if(minwin < 64) { + if (minwin < 64) { maxlevelcrop = 5; } @@ -518,7 +527,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int levwav = params->wavelet.thres; - if(levwav == 9 && cp.mul[9] != 0) { + if (levwav == 9 && cp.mul[9] != 0) { levwav = 10; } @@ -530,7 +539,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // if(cp.mul[levwav-1]!=0.f) // break; // I suppress this fonctionality ==> crash for level < 3 - if(levwav < 1) { + if (levwav < 1) { return; // nothing to do } @@ -540,11 +549,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //output buffer int realtile = 0; - if(params->wavelet.Tilesmethod == "big") { + if (params->wavelet.Tilesmethod == "big") { realtile = 22; } - if(params->wavelet.Tilesmethod == "lit") { + if (params->wavelet.Tilesmethod == "lit") { realtile = 12; } @@ -552,16 +561,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int overlap = (int) tilesize * 0.125f; int numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip; - if(params->wavelet.Tilesmethod == "full") { + if (params->wavelet.Tilesmethod == "full") { kall = 0; } - Tile_calc (tilesize, overlap, kall, imwidth, imheight, numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip); + Tile_calc(tilesize, overlap, kall, imwidth, imheight, numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip); const int numtiles = numtiles_W * numtiles_H; LabImage * dsttmp; - if(numtiles == 1) { + if (numtiles == 1) { dsttmp = dst; } else { dsttmp = new LabImage(imwidth, imheight); @@ -576,58 +585,57 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int minsizetile = min(tilewidth, tileheight); int maxlev2 = 10; - if(minsizetile < 1024 && levwav == 10) { + if (minsizetile < 1024 && levwav == 10) { maxlev2 = 9; } - if(minsizetile < 512) { + if (minsizetile < 512) { maxlev2 = 8; } - if(minsizetile < 256) { + if (minsizetile < 256) { maxlev2 = 7; } - if(minsizetile < 128) { + if (minsizetile < 128) { maxlev2 = 6; } levwav = min(maxlev2, levwav); //printf("levwav = %d\n",levwav); - #ifdef _OPENMP int numthreads = 1; int maxnumberofthreadsforwavelet = 0; //reduce memory for big tile size - if(kall != 0) { - if(realtile <= 22) { + if (kall != 0) { + if (realtile <= 22) { maxnumberofthreadsforwavelet = 2; } - if(realtile <= 20) { + if (realtile <= 20) { maxnumberofthreadsforwavelet = 3; } - if(realtile <= 18) { + if (realtile <= 18) { maxnumberofthreadsforwavelet = 4; } - if(realtile <= 16) { + if (realtile <= 16) { maxnumberofthreadsforwavelet = 6; } - if(realtile <= 14) { + if (realtile <= 14) { maxnumberofthreadsforwavelet = 8; } //printf("maxNRT=%d\n",maxnumberofthreadsforwavelet); - if((maxnumberofthreadsforwavelet == 6 || maxnumberofthreadsforwavelet == 8) && levwav == 10) { + if ((maxnumberofthreadsforwavelet == 6 || maxnumberofthreadsforwavelet == 8) && levwav == 10) { maxnumberofthreadsforwavelet -= 2; } - if(levwav <= 7 && maxnumberofthreadsforwavelet == 8) { + if (levwav <= 7 && maxnumberofthreadsforwavelet == 8) { maxnumberofthreadsforwavelet = 0; } } @@ -636,13 +644,13 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // Calculate number of tiles. If less than omp_get_max_threads(), then limit num_threads to number of tiles - if( options.rgbDenoiseThreadLimit > 0) { + if (options.rgbDenoiseThreadLimit > 0) { maxnumberofthreadsforwavelet = min(max(options.rgbDenoiseThreadLimit / 2, 1), maxnumberofthreadsforwavelet); } numthreads = MIN(numtiles, omp_get_max_threads()); - if(maxnumberofthreadsforwavelet > 0) { + if (maxnumberofthreadsforwavelet > 0) { numthreads = MIN(numthreads, maxnumberofthreadsforwavelet); } @@ -650,20 +658,20 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const wavNestedLevels = omp_get_max_threads() / numthreads; bool oldNested = omp_get_nested(); - if(wavNestedLevels < 2) { + if (wavNestedLevels < 2) { wavNestedLevels = 1; } else { omp_set_nested(true); } - if(maxnumberofthreadsforwavelet > 0) - while(wavNestedLevels * numthreads > maxnumberofthreadsforwavelet) { + if (maxnumberofthreadsforwavelet > 0) + while (wavNestedLevels * numthreads > maxnumberofthreadsforwavelet) { wavNestedLevels--; } #endif - if(settings->verbose) { + if (settings->verbose) { printf("Ip Wavelet uses %d main thread(s) and up to %d nested thread(s) for each main thread\n", numthreads, wavNestedLevels); } @@ -703,10 +711,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float **Lold = nullptr; float *LoldBuffer = nullptr; - if(numtiles == 1) { // untiled processing => we can use output buffer for labco + if (numtiles == 1) { // untiled processing => we can use output buffer for labco labco = dst; - if(cp.avoi) { // we need a buffer to hold a copy of the L channel + if (cp.avoi) { // we need a buffer to hold a copy of the L channel Lold = new float*[tileheight]; LoldBuffer = new float[tilewidth * tileheight]; memcpy(LoldBuffer, lab->L[0], tilewidth * tileheight * sizeof(float)); @@ -741,7 +749,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const _mm_storeu_ps(&varhue[i1][j1], huev); _mm_storeu_ps(&varchro[i1][j1], chrov); - if(labco != lab) { + if (labco != lab) { _mm_storeu_ps(&(labco->L[i1][j1]), LVFU(lab->L[i][j])); _mm_storeu_ps(&(labco->a[i1][j1]), av); _mm_storeu_ps(&(labco->b[i1][j1]), bv); @@ -759,7 +767,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const varhue[i1][j1] = xatan2f(b, a); varchro[i1][j1] = (sqrtf(a * a + b * b)) / 327.68f; - if(labco != lab) { + if (labco != lab) { labco->L[i1][j1] = lab->L[i][j]; labco->a[i1][j1] = a; labco->b[i1][j1] = b; @@ -768,7 +776,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } //to avoid artifacts in blue sky - if(params->wavelet.median) { + if (params->wavelet.median) { float** tmL; int wid = labco->W; int hei = labco->H; @@ -779,8 +787,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const tmL[i] = new float[wid]; } - for(int i = borderL; i < hei - borderL; i++ ) { - for(int j = borderL; j < wid - borderL; j++) { + for (int i = borderL; i < hei - borderL; i++) { + for (int j = borderL; j < wid - borderL; j++) { tmL[i][j] = labco->L[i][j]; } } @@ -791,14 +799,14 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int i = 1; i < hei - 1; i++) { for (int j = 1; j < wid - 1; j++) { - if((varhue[i][j] < -1.3f && varhue[i][j] > - 2.5f) && (varchro[i][j] > 15.f && varchro[i][j] < 55.f) && labco->L[i][j] > 6000.f) { //blue sky + med3x3 ==> after for more effect use denoise - tmL[i][j] = median(labco->L[i][j] , labco->L[i - 1][j], labco->L[i + 1][j] , labco->L[i][j + 1], labco->L[i][j - 1], labco->L[i - 1][j - 1], labco->L[i - 1][j + 1], labco->L[i + 1][j - 1], labco->L[i + 1][j + 1]); //3x3 + if ((varhue[i][j] < -1.3f && varhue[i][j] > - 2.5f) && (varchro[i][j] > 15.f && varchro[i][j] < 55.f) && labco->L[i][j] > 6000.f) { //blue sky + med3x3 ==> after for more effect use denoise + tmL[i][j] = median(labco->L[i][j], labco->L[i - 1][j], labco->L[i + 1][j], labco->L[i][j + 1], labco->L[i][j - 1], labco->L[i - 1][j - 1], labco->L[i - 1][j + 1], labco->L[i + 1][j - 1], labco->L[i + 1][j + 1]); //3x3 } } } - for(int i = borderL; i < hei - borderL; i++ ) { - for(int j = borderL; j < wid - borderL; j++) { + for (int i = borderL; i < hei - borderL; i++) { + for (int j = borderL; j < wid - borderL; j++) { labco->L[i][j] = tmL[i][j]; } } @@ -811,7 +819,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // end blue sky } - if(numtiles == 1) { + if (numtiles == 1) { // reduce the varhue array to get faster access in following processing and reduce peak memory usage float temphue[(tilewidth + 1) / 2] ALIGNED64; @@ -825,7 +833,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const memcpy(varhue[i], temphue, ((tilewidth + 1) / 2) * sizeof(float)); } - for(int i = (tileheight + 1) / 2; i < tileheight; i++) { + for (int i = (tileheight + 1) / 2; i < tileheight; i++) { delete [] varhue[i]; varhue[i] = nullptr; } @@ -842,20 +850,20 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int levwavL = levwav; bool ref0 = false; - if((cp.lev0s > 0.f || cp.lev1s > 0.f || cp.lev2s > 0.f || cp.lev3s > 0.f) && cp.noiseena) { + if ((cp.lev0s > 0.f || cp.lev1s > 0.f || cp.lev2s > 0.f || cp.lev3s > 0.f) && cp.noiseena) { ref0 = true; } // printf("LevwavL before: %d\n",levwavL); - if(cp.contrast == 0.f && !cp.tonemap && cp.conres == 0.f && cp.conresH == 0.f && cp.val == 0 && !ref0 && params->wavelet.CLmethod == "all") { // no processing of residual L or edge=> we probably can reduce the number of levels - while(levwavL > 0 && cp.mul[levwavL - 1] == 0.f) { // cp.mul[level] == 0.f means no changes to level + if (cp.contrast == 0.f && !cp.tonemap && cp.conres == 0.f && cp.conresH == 0.f && cp.val == 0 && !ref0 && params->wavelet.CLmethod == "all") { // no processing of residual L or edge=> we probably can reduce the number of levels + while (levwavL > 0 && cp.mul[levwavL - 1] == 0.f) { // cp.mul[level] == 0.f means no changes to level levwavL--; } } // printf("LevwavL after: %d\n",levwavL); // if(cp.noiseena){ - if(levwavL < 4 ) { + if (levwavL < 4) { levwavL = 4; //to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! } @@ -863,10 +871,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // else { // if(levwavL < 3) levwavL=3;//to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! // } - if(levwavL > 0) { - wavelet_decomposition* Ldecomp = new wavelet_decomposition (labco->data, labco->W, labco->H, levwavL, 1, skip, max(1, wavNestedLevels), DaubLen ); + if (levwavL > 0) { + wavelet_decomposition* Ldecomp = new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, max(1, wavNestedLevels), DaubLen); - if(!Ldecomp->memoryAllocationFailed) { + if (!Ldecomp->memoryAllocationFailed) { float madL[8][3]; #ifdef _OPENMP @@ -886,19 +894,19 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const bool ref = false; - if((cp.lev0s > 0.f || cp.lev1s > 0.f || cp.lev2s > 0.f || cp.lev3s > 0.f) && cp.noiseena) { + if ((cp.lev0s > 0.f || cp.lev1s > 0.f || cp.lev2s > 0.f || cp.lev3s > 0.f) && cp.noiseena) { ref = true; } bool contr = false; - for(int f = 0; f < levwavL; f++) { - if(cp.mul[f] != 0.f) { + for (int f = 0; f < levwavL; f++) { + if (cp.mul[f] != 0.f) { contr = true; } } - if(cp.val > 0 || ref || contr) {//edge + if (cp.val > 0 || ref || contr) { //edge Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } @@ -910,7 +918,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[2] = 8.f * SQR((cp.lev2n / 125.0) * (1.0 + cp.lev2n / 25.0)); vari[3] = 8.f * SQR((cp.lev3n / 125.0) * (1.0 + cp.lev3n / 25.0)); - if((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { + if ((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { int edge = 1; vari[0] = max(0.0001f, vari[0]); vari[1] = max(0.0001f, vari[1]); @@ -937,7 +945,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const WaveletcontAllL(labco, varhue, varchro, *Ldecomp, cp, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); - if(cp.val > 0 || ref || contr || cp.diagcurv) {//edge + if (cp.val > 0 || ref || contr || cp.diagcurv) { //edge Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } @@ -964,21 +972,21 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } - if(!hhutili) {//always a or b + if (!hhutili) { //always a or b int levwava = levwav; // printf("Levwava before: %d\n",levwava); - if(cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels - while(levwava > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwava - 1] == 0.f )) || (cp.CHmet != 2 && (levwava == 10 || (!cp.curv || cp.mulC[levwava - 1] == 0.f))))) && (!cp.opaRG || levwava == 10 || (cp.opaRG && cp.mulopaRG[levwava - 1] == 0.f)) && ((levwava == 10 || (cp.CHSLmet == 1 && cp.mulC[levwava - 1] == 0.f)))) { + if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels + while (levwava > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwava - 1] == 0.f)) || (cp.CHmet != 2 && (levwava == 10 || (!cp.curv || cp.mulC[levwava - 1] == 0.f))))) && (!cp.opaRG || levwava == 10 || (cp.opaRG && cp.mulopaRG[levwava - 1] == 0.f)) && ((levwava == 10 || (cp.CHSLmet == 1 && cp.mulC[levwava - 1] == 0.f)))) { levwava--; } } //printf("Levwava after: %d\n",levwava); - if(levwava > 0) { - wavelet_decomposition* adecomp = new wavelet_decomposition (labco->data + datalen, labco->W, labco->H, levwava, 1, skip, max(1, wavNestedLevels), DaubLen ); + if (levwava > 0) { + wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, max(1, wavNestedLevels), DaubLen); - if(!adecomp->memoryAllocationFailed) { + if (!adecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); adecomp->reconstruct(labco->data + datalen, cp.strength); } @@ -989,17 +997,17 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int levwavb = levwav; //printf("Levwavb before: %d\n",levwavb); - if(cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels - while(levwavb > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavb - 1] == 0.f )) || (cp.CHmet != 2 && (levwavb == 10 || (!cp.curv || cp.mulC[levwavb - 1] == 0.f))))) && (!cp.opaBY || levwavb == 10 || (cp.opaBY && cp.mulopaBY[levwavb - 1] == 0.f)) && ((levwavb == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavb - 1] == 0.f)))) { + if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels + while (levwavb > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavb - 1] == 0.f)) || (cp.CHmet != 2 && (levwavb == 10 || (!cp.curv || cp.mulC[levwavb - 1] == 0.f))))) && (!cp.opaBY || levwavb == 10 || (cp.opaBY && cp.mulopaBY[levwavb - 1] == 0.f)) && ((levwavb == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavb - 1] == 0.f)))) { levwavb--; } } // printf("Levwavb after: %d\n",levwavb); - if(levwavb > 0) { - wavelet_decomposition* bdecomp = new wavelet_decomposition (labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, max(1, wavNestedLevels), DaubLen ); + if (levwavb > 0) { + wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, max(1, wavNestedLevels), DaubLen); - if(!bdecomp->memoryAllocationFailed) { + if (!bdecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *bdecomp, waOpacityCurveW, cp, false); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); } @@ -1010,21 +1018,21 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int levwavab = levwav; // printf("Levwavab before: %d\n",levwavab); - if(cp.chrores == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels - while(levwavab > 0 && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavab - 1] == 0.f )) || (cp.CHmet != 2 && (levwavab == 10 || (!cp.curv || cp.mulC[levwavab - 1] == 0.f))))) && (!cp.opaRG || levwavab == 10 || (cp.opaRG && cp.mulopaRG[levwavab - 1] == 0.f)) && ((levwavab == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavab - 1] == 0.f)))) { + if (cp.chrores == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels + while (levwavab > 0 && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavab - 1] == 0.f)) || (cp.CHmet != 2 && (levwavab == 10 || (!cp.curv || cp.mulC[levwavab - 1] == 0.f))))) && (!cp.opaRG || levwavab == 10 || (cp.opaRG && cp.mulopaRG[levwavab - 1] == 0.f)) && ((levwavab == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavab - 1] == 0.f)))) { levwavab--; } } // printf("Levwavab after: %d\n",levwavab); - if(levwavab > 0) { - wavelet_decomposition* adecomp = new wavelet_decomposition (labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, max(1, wavNestedLevels), DaubLen ); - wavelet_decomposition* bdecomp = new wavelet_decomposition (labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, max(1, wavNestedLevels), DaubLen ); + if (levwavab > 0) { + wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, max(1, wavNestedLevels), DaubLen); + wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, max(1, wavNestedLevels), DaubLen); - if(!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { + if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); WaveletcontAllAB(labco, varhue, varchro, *bdecomp, waOpacityCurveW, cp, false); - WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili ); + WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); adecomp->reconstruct(labco->data + datalen, cp.strength); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); @@ -1040,12 +1048,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const delete hhCurve; } - if(numtiles > 1 || (numtiles == 1 /*&& cp.avoi*/)) {//in all case since I add contrast curve + if (numtiles > 1 || (numtiles == 1 /*&& cp.avoi*/)) { //in all case since I add contrast curve //calculate mask for feathering output tile overlaps float Vmask[height + overlap] ALIGNED16; float Hmask[width + overlap] ALIGNED16; - if(numtiles > 1) { + if (numtiles > 1) { for (int i = 0; i < height; i++) { Vmask[i] = 1; } @@ -1091,7 +1099,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float xBuffer[rowWidth] ALIGNED64; float yBuffer[rowWidth] ALIGNED64; - if(cp.avoi) { + if (cp.avoi) { int col; __m128 av, bv; __m128 cv, yv, xv; @@ -1100,7 +1108,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const __m128 c327d68v = _mm_set1_ps(327.68f); vmask xyMask; - for(col = 0; col < rowWidth - 3; col += 4) { + for (col = 0; col < rowWidth - 3; col += 4) { av = LVFU(labco->a[i1][col]); bv = LVFU(labco->b[i1][col]); STVF(atan2Buffer[col], xatan2f(bv, av)); @@ -1117,7 +1125,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } - for(; col < rowWidth; col++) { + for (; col < rowWidth; col++) { float a = labco->a[i1][col]; float b = labco->b[i1][col]; atan2Buffer[col] = xatan2f(b, a); @@ -1133,7 +1141,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int j = tileleft; j < tileright; j++) { int j1 = j - tileleft; - if(cp.avoi) { //Gamut and Munsell + if (cp.avoi) { //Gamut and Munsell #ifdef __SSE2__ float HH = atan2Buffer[j1]; float Chprov1 = chprovBuffer[j1]; @@ -1153,7 +1161,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const L = labco->L[i1][j1]; const float Lin = labco->L[i1][j1]; - if(wavclCurve && cp.finena) { + if (wavclCurve && cp.finena) { labco->L[i1][j1] = (0.5f * Lin + 1.5f * wavclCurve[Lin]) / 2.f; //apply contrast curve } @@ -1184,8 +1192,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Color::AllMunsellLch(true, Lprov1, Lprov2, HH, Chprov, memChprov, correctionHue, correctlum); #endif - if(correctionHue != 0.f || correctlum != 0.f) { // only calculate sin and cos if HH changed - if(fabs(correctionHue) < 0.015f) { + if (correctionHue != 0.f || correctlum != 0.f) { // only calculate sin and cos if HH changed + if (fabs(correctionHue) < 0.015f) { HH += correctlum; // correct only if correct Munsell chroma very little. } @@ -1198,7 +1206,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const L = labco->L[i1][j1]; const float Lin = labco->L[i1][j1]; - if(wavclCurve && cp.finena) { + if (wavclCurve && cp.finena) { labco->L[i1][j1] = (0.5f * Lin + 1.5f * wavclCurve[Lin]) / 2.f; //apply contrast curve } @@ -1207,7 +1215,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const b = labco->b[i1][j1]; } - if(numtiles > 1) { + if (numtiles > 1) { float factor = Vmask[i1] * Hmask[j1]; dsttmp->L[i][j] += factor * L; dsttmp->a[i][j] += factor * a; @@ -1222,19 +1230,19 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } - if(LoldBuffer != nullptr) { + if (LoldBuffer != nullptr) { delete [] LoldBuffer; delete [] Lold; } - if(numtiles > 1) { + if (numtiles > 1) { delete labco; } } } for (int i = 0; i < tileheight; i++) - if(varhue[i] != nullptr) { + if (varhue[i] != nullptr) { delete [] varhue[i]; } @@ -1251,11 +1259,54 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const omp_set_nested(oldNested); #endif - if(numtiles != 1) { + if (numtiles != 1) { dst->CopyFrom(dsttmp); delete dsttmp; } + if (waparams.softradend > 0.f && cp.finena) { + array2D ble(lab->W, lab->H); + array2D guid(lab->W, lab->H); + + bool multiTh = false; + +#ifdef _OPENMP + if (numthreads > 1) { + multiTh = true; + } +#endif + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < lab->H; ir++) + for (int jr = 0; jr < lab->W; jr++) { + ble[ir][jr] = (dst->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + + float blur = 10.f / skip * (0.1f + 0.1f * waparams.softradend); + + rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < lab->H; ir++) + for (int jr = 0; jr < lab->W; jr++) { + dst->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; + } + } + + if (waparams.softradend > 0.f && cp.finena) { + delete provradius; + provradius = NULL; + } + #ifdef _DEBUG delete MunsDebugInfo; #endif @@ -1267,7 +1318,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const #undef offset #undef epsilon -void ImProcFunctions::Aver( float * RESTRICT DataList, int datalen, float &averagePlus, float &averageNeg, float &max, float &min) +void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averagePlus, float &averageNeg, float &max, float &min) { //find absolute mean @@ -1286,19 +1337,19 @@ void ImProcFunctions::Aver( float * RESTRICT DataList, int datalen, float &aver #pragma omp for reduction(+:averaP,averaN,countP,countN) nowait #endif - for(int i = 0; i < datalen; i++) { - if(DataList[i] >= thres) { + for (int i = 0; i < datalen; i++) { + if (DataList[i] >= thres) { averaP += DataList[i]; - if(DataList[i] > lmax) { + if (DataList[i] > lmax) { lmax = DataList[i]; } countP++; - } else if(DataList[i] < -thres) { + } else if (DataList[i] < -thres) { averaN += DataList[i]; - if(DataList[i] < lmin) { + if (DataList[i] < lmin) { lmin = DataList[i]; } @@ -1315,13 +1366,13 @@ void ImProcFunctions::Aver( float * RESTRICT DataList, int datalen, float &aver } } - if(countP > 0) { + if (countP > 0) { averagePlus = averaP / countP; } else { averagePlus = 0; } - if(countN > 0) { + if (countN > 0) { averageNeg = averaN / countN; } else { averageNeg = 0; @@ -1330,7 +1381,7 @@ void ImProcFunctions::Aver( float * RESTRICT DataList, int datalen, float &aver } -void ImProcFunctions::Sigma( float * RESTRICT DataList, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg) +void ImProcFunctions::Sigma(float * RESTRICT DataList, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg) { int countP = 0, countN = 0; double variP = 0.0, variN = 0.0; // use double precision for large summations @@ -1340,23 +1391,23 @@ void ImProcFunctions::Sigma( float * RESTRICT DataList, int datalen, float aver #pragma omp parallel for reduction(+:variP,variN,countP,countN) num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif - for(int i = 0; i < datalen; i++) { - if(DataList[i] >= thres) { + for (int i = 0; i < datalen; i++) { + if (DataList[i] >= thres) { variP += SQR(DataList[i] - averagePlus); countP++; - } else if(DataList[i] <= -thres) { + } else if (DataList[i] <= -thres) { variN += SQR(DataList[i] - averageNeg); countN++; } } - if(countP > 0) { + if (countP > 0) { sigmaPlus = sqrt(variP / countP); } else { sigmaPlus = 0; } - if(countN > 0) { + if (countN > 0) { sigmaNeg = sqrt(variN / countN); } else { sigmaNeg = 0; @@ -1377,12 +1428,12 @@ void ImProcFunctions::Evaluate2(wavelet_decomposition &WaveletCoeffs_L, float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); - Eval2 (WavCoeffs_L, lvl, Wlvl_L, Hlvl_L, mean, meanN, sigma, sigmaN, MaxP, MaxN); + Eval2(WavCoeffs_L, lvl, Wlvl_L, Hlvl_L, mean, meanN, sigma, sigmaN, MaxP, MaxN); } } -void ImProcFunctions::Eval2 (float ** WavCoeffs_L, int level, - int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN) +void ImProcFunctions::Eval2(float ** WavCoeffs_L, int level, + int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN) { float avLP[4], avLN[4]; @@ -1432,17 +1483,17 @@ void ImProcFunctions::CompressDR(float *Source, int W_L, int H_L, float Compress float exponent; - if(DetailBoost > 0.f && DetailBoost < 0.05f ) { + if (DetailBoost > 0.f && DetailBoost < 0.05f) { float betemp = expf(-(2.f - DetailBoost + 0.694f)) - 1.f; //0.694 = log(2) - exponent = 1.2f * xlogf( -betemp); + exponent = 1.2f * xlogf(-betemp); exponent /= 20.f; - } else if(DetailBoost >= 0.05f && DetailBoost < 0.25f ) { + } else if (DetailBoost >= 0.05f && DetailBoost < 0.25f) { float betemp = expf(-(2.f - DetailBoost + 0.694f)) - 1.f; //0.694 = log(2) - exponent = 1.2f * xlogf( -betemp); + exponent = 1.2f * xlogf(-betemp); exponent /= (-75.f * DetailBoost + 23.75f); - } else if(DetailBoost >= 0.25f) { + } else if (DetailBoost >= 0.25f) { float betemp = expf(-(2.f - DetailBoost + 0.694f)) - 1.f; //0.694 = log(2) - exponent = 1.2f * xlogf( -betemp); + exponent = 1.2f * xlogf(-betemp); exponent /= (-2.f * DetailBoost + 5.5f); } else { exponent = (Compression - 1.0f) / 20.f; @@ -1461,12 +1512,12 @@ void ImProcFunctions::CompressDR(float *Source, int W_L, int H_L, float Compress #pragma omp for #endif - for(int i = 0; i < n - 3; i += 4) { + for (int i = 0; i < n - 3; i += 4) { STVFU(Source[i], xexpf(xlogf(LVFU(Source[i])) * exponentv)); } } - for(int i = n - (n % 4); i < n; i++) { + for (int i = n - (n % 4); i < n; i++) { Source[i] = xexpf(xlogf(Source[i]) * exponent); } @@ -1475,7 +1526,7 @@ void ImProcFunctions::CompressDR(float *Source, int W_L, int H_L, float Compress #pragma omp parallel for #endif - for(int i = 0; i < n; i++) { + for (int i = 0; i < n; i++) { Source[i] = xexpf(xlogf(Source[i]) * exponent); } @@ -1489,7 +1540,7 @@ void ImProcFunctions::ContrastResid(float * WavCoeffs_L0, struct cont_params &cp float gamm = params->wavelet.gamma; cp.TMmeth = 2; //default after testing - if(cp.TMmeth == 1) { + if (cp.TMmeth == 1) { min0 = 0.0f; max0 = 32768.f; } else if (cp.TMmeth == 2) { @@ -1500,7 +1551,7 @@ void ImProcFunctions::ContrastResid(float * WavCoeffs_L0, struct cont_params &cp #pragma omp parallel for #endif - for(int i = 0; i < W_L * H_L; i++) { + for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L0[i] = (WavCoeffs_L0[i] - min0) / max0; WavCoeffs_L0[i] *= gamm; } @@ -1508,7 +1559,7 @@ void ImProcFunctions::ContrastResid(float * WavCoeffs_L0, struct cont_params &cp float Compression = expf(-stren); //This modification turns numbers symmetric around 0 into exponents. float DetailBoost = stren; - if(stren < 0.0f) { + if (stren < 0.0f) { DetailBoost = 0.0f; //Go with effect of exponent only if uncompressing. } @@ -1520,7 +1571,7 @@ void ImProcFunctions::ContrastResid(float * WavCoeffs_L0, struct cont_params &cp #pragma omp parallel for // removed schedule(dynamic,10) #endif - for(int ii = 0; ii < W_L * H_L; ii++) { + for (int ii = 0; ii < W_L * H_L; ii++) { WavCoeffs_L0[ii] = WavCoeffs_L0[ii] * max0 * (1.f / gamm) + min0; } } @@ -1540,7 +1591,7 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat EdgePreservingDecomposition epd2(W_L, H_L); cp.TMmeth = 2; //default after testing - if(cp.TMmeth == 1) { + if (cp.TMmeth == 1) { min0 = 0.0f; max0 = 32768.f; } else if (cp.TMmeth == 2) { @@ -1552,7 +1603,7 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat #pragma omp parallel for #endif - for(int i = 0; i < W_L * H_L; i++) { + for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L0[i] = (WavCoeffs_L0[i] - min0) / max0; WavCoeffs_L0[i] *= gamm; } @@ -1560,12 +1611,12 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat float Compression = expf(-stren); //This modification turns numbers symmetric around 0 into exponents. float DetailBoost = stren; - if(stren < 0.0f) { + if (stren < 0.0f) { DetailBoost = 0.0f; //Go with effect of exponent only if uncompressing. } //Auto select number of iterates. Note that p->EdgeStopping = 0 makes a Gaussian blur. - if(Iterates == 0) { + if (Iterates == 0) { Iterates = (unsigned int)(edgest * 15.0f); } @@ -1577,7 +1628,7 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat #pragma omp parallel for // removed schedule(dynamic,10) #endif - for(int ii = 0; ii < W_L * H_L; ii++) { + for (int ii = 0; ii < W_L * H_L; ii++) { WavCoeffs_L0[ii] = WavCoeffs_L0[ii] * max0 * (1.f / gamm) + min0; } } @@ -1592,7 +1643,7 @@ void ImProcFunctions::WaveletcontAllLfinal(wavelet_decomposition &WaveletCoeffs_ int Wlvl_L = WaveletCoeffs_L.level_W(lvl); int Hlvl_L = WaveletCoeffs_L.level_H(lvl); float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); - finalContAllL (WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, mean, sigma, MaxP, waOpacityCurveWL); + finalContAllL(WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, mean, sigma, MaxP, waOpacityCurveWL); } } } @@ -1615,7 +1666,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float max0 = 0.f; float min0 = FLT_MAX; - if(contrast != 0.f || (cp.tonemap && cp.resena)) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step + if (contrast != 0.f || (cp.tonemap && cp.resena)) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step #ifdef _OPENMP #pragma omp parallel for reduction(+:avedbl) num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif @@ -1635,12 +1686,12 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #pragma omp for #endif - for(int i = 0; i < W_L * H_L; i++) { - if(WavCoeffs_L0[i] < lminL) { + for (int i = 0; i < W_L * H_L; i++) { + if (WavCoeffs_L0[i] < lminL) { lminL = WavCoeffs_L0[i]; } - if(WavCoeffs_L0[i] > lmaxL) { + if (WavCoeffs_L0[i] > lmaxL) { lmaxL = WavCoeffs_L0[i]; } @@ -1650,11 +1701,11 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #pragma omp critical #endif { - if(lminL < min0) { + if (lminL < min0) { min0 = lminL; } - if(lmaxL > max0) { + if (lmaxL > max0) { max0 = lmaxL; } } @@ -1666,7 +1717,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * // printf("MAXmax0=%f MINmin0=%f\n",max0,min0); //tone mapping - if(cp.tonemap && cp.contmet == 2 && cp.resena) { + if (cp.tonemap && cp.contmet == 2 && cp.resena) { //iterate = 5 EPDToneMapResid(WavCoeffs_L0, 5, skip, cp, W_L, H_L, max0, min0); @@ -1691,7 +1742,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float *koeLibuffer = nullptr; - for(int y = 0; y < 12; y++) { + for (int y = 0; y < 12; y++) { maxkoeLi[y] = 0.f; //9 } @@ -1701,7 +1752,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * koeLi[i] = &koeLibuffer[i * W_L * H_L]; } - for(int j = 0; j < 12; j++) //9 + for (int j = 0; j < 12; j++) //9 for (int i = 0; i < W_L * H_L; i++) { koeLi[j][i] = 0.f; } @@ -1710,17 +1761,17 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif { - if(contrast != 0.f && cp.resena && max0 > 0.0) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step + if (contrast != 0.f && cp.resena && max0 > 0.0) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step { #ifdef _OPENMP #pragma omp for #endif for (int i = 0; i < W_L * H_L; i++) { //contrast - if(WavCoeffs_L0[i] < 32768.f) { + if (WavCoeffs_L0[i] < 32768.f) { float prov; - if( WavCoeffs_L0[i] > ave) { + if (WavCoeffs_L0[i] > ave) { float kh = ah * (WavCoeffs_L0[i] / 327.68f) + bh; prov = WavCoeffs_L0[i]; WavCoeffs_L0[i] = ave + kh * (WavCoeffs_L0[i] - ave); @@ -1738,7 +1789,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } - if(cp.tonemap && cp.contmet == 1 && cp.resena) { + if (cp.tonemap && cp.contmet == 1 && cp.resena) { float maxp = max0 * 256.f; float minp = min0 * 256.f; #ifdef _OPENMP @@ -1751,7 +1802,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #pragma omp barrier #endif - if((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step + if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step #ifdef _OPENMP #pragma omp for nowait #endif @@ -1763,15 +1814,15 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //shadow float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? - if(cp.th > (100.f - tran)) { + if (cp.th > (100.f - tran)) { tran = 100.f - cp.th; } - if(LL100 < cp.th) { + if (LL100 < cp.th) { float aalp = (1.f - alp) / cp.th; //no changes for LL100 = cp.th float kk = aalp * LL100 + alp; WavCoeffs_L0[i] *= (1.f + kk * cp.conres / 200.f); - } else if(LL100 < cp.th + tran) { + } else if (LL100 < cp.th + tran) { float ath = -cp.conres / tran; float bth = cp.conres - ath * cp.th; WavCoeffs_L0[i] *= (1.f + (LL100 * ath + bth) / 200.f); @@ -1780,13 +1831,13 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //highlight tran = 5.f; - if(cp.thH < (tran)) { + if (cp.thH < (tran)) { tran = cp.thH; } - if(LL100 > cp.thH) { + if (LL100 > cp.thH) { WavCoeffs_L0[i] *= (1.f + cp.conresH / 200.f); - } else if(LL100 > (cp.thH - tran)) { + } else if (LL100 > (cp.thH - tran)) { float athH = cp.conresH / tran; float bthH = cp.conresH - athH * cp.thH; WavCoeffs_L0[i] *= (1.f + (LL100 * athH + bthH) / 200.f); @@ -1806,7 +1857,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float eddlipampl = 1.f + cp.edgampl / 50.f; - if(cp.detectedge) { //enabled Lipschitz control...more memory..more time... + if (cp.detectedge) { //enabled Lipschitz control...more memory..more time... float *tmCBuffer = new float[H_L * W_L]; float *tmC[H_L]; @@ -1824,7 +1875,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * int H_L = WaveletCoeffs_L.level_H(lvl); float ** WavCoeffs_LL = WaveletCoeffs_L.level_coeffs(lvl); - calckoe(WavCoeffs_LL, cp, koeLi, lvl , dir, W_L, H_L, edd, maxkoeLi, tmC); + calckoe(WavCoeffs_LL, cp, koeLi, lvl, dir, W_L, H_L, edd, maxkoeLi, tmC); // return convolution KoeLi and maxkoeLi of level 0 1 2 3 and Dir Horiz, Vert, Diag } } @@ -1843,7 +1894,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //treatment of koeLi and maxkoeLi float interm = 0.f; - if(cp.lip3 && cp.lipp) { + if (cp.lip3 && cp.lipp) { // comparison between pixel and neighbours const auto neigh = cp.neigh == 1; const auto kneigh = neigh ? 28.f : 38.f; @@ -1882,11 +1933,11 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //Liamp=1 for eddlipinfl //liamp > 1 for alp >eddlipinfl and alph < 1 //Liamp < 1 for alp < eddlipinfl and alph > 0 - if(alph > 1.f) { + if (alph > 1.f) { alph = 1.f / alph; } - if(beta > 1.f) { + if (beta > 1.f) { beta = 1.f / beta; } @@ -1896,14 +1947,14 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float bet = 1.f; //if(cp.lip3) {//enhance algorithm - if(alph > eddlipinfl && beta < 0.85f * eddlipinfl) { //0.85 arbitrary value ==> eliminate from edge if H V D too different + if (alph > eddlipinfl && beta < 0.85f * eddlipinfl) { //0.85 arbitrary value ==> eliminate from edge if H V D too different bet = beta; } //} float AmpLip = 1.f; - if(alph > eddlipinfl) { + if (alph > eddlipinfl) { AmpLip = alipinfl * alph + blipinfl; //If beta low reduce kampli kampli = SQR(bet) * AmpLip * aamp; } else { @@ -1923,7 +1974,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * interm *= kampli; - if(interm < cp.eddetthr / eddlow) { + if (interm < cp.eddetthr / eddlow) { interm = 0.01f; //eliminate too low values } @@ -1949,7 +2000,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); - ContAllL (koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); + ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); } @@ -1957,7 +2008,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } //delete edge detection - if(koeLibuffer) { + if (koeLibuffer) { delete [] koeLibuffer; } } @@ -1998,7 +2049,7 @@ void ImProcFunctions::WaveletAandBAllAB(wavelet_decomposition &WaveletCoeffs_a, STVF(chrbuffer[k], chrv); } - for(; k < W_L; k++) { + for (; k < W_L; k++) { huebuffer[k] = xatan2f(WavCoeffs_b0[i * W_L + k], WavCoeffs_a0[i * W_L + k]); chrbuffer[k] = sqrtf(SQR(WavCoeffs_b0[i * W_L + k]) + SQR(WavCoeffs_a0[i * W_L + k])) / 327.68f; } @@ -2044,7 +2095,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif { - if(cp.chrores != 0.f && cp.resena) { // cp.chrores == 0.f means all will be multiplied by 1.f, so we can skip the processing of residual + if (cp.chrores != 0.f && cp.resena) { // cp.chrores == 0.f means all will be multiplied by 1.f, so we can skip the processing of residual #ifdef _OPENMP #pragma omp for nowait @@ -2058,22 +2109,22 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float modhue = varhue[ii][jj]; float scale = 1.f; - if(skyprot > 0.f) { - if((modhue < cp.t_ry && modhue > cp.t_ly)) { + if (skyprot > 0.f) { + if ((modhue < cp.t_ry && modhue > cp.t_ly)) { scale = (100.f - cp.sky) / 100.1f; - } else if((modhue >= cp.t_ry && modhue < cp.b_ry)) { + } else if ((modhue >= cp.t_ry && modhue < cp.b_ry)) { scale = (100.f - cp.sky) / 100.1f; float ar = (scale - 1.f) / (cp.t_ry - cp.b_ry); float br = scale - cp.t_ry * ar; scale = ar * modhue + br; - } else if((modhue > cp.b_ly && modhue < cp.t_ly)) { + } else if ((modhue > cp.b_ly && modhue < cp.t_ly)) { scale = (100.f - cp.sky) / 100.1f; float al = (scale - 1.f) / (-cp.b_ly + cp.t_ly); float bl = scale - cp.t_ly * al; scale = al * modhue + bl; } - } else if(skyprot < 0.f) { - if((modhue > cp.t_ry || modhue < cp.t_ly)) { + } else if (skyprot < 0.f) { + if ((modhue > cp.t_ry || modhue < cp.t_ly)) { scale = (100.f + cp.sky) / 100.1f; } @@ -2097,7 +2148,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float } } - if(cp.cbena && cp.resena) {//if user select Toning and color balance + if (cp.cbena && cp.resena) { //if user select Toning and color balance #ifdef _OPENMP #pragma omp for nowait @@ -2110,24 +2161,24 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float sca = 1.f; //amplifer - reducter...about 1, but perhaps 0.6 or 1.3 - if(useChannelA) {//green red (little magenta) + if (useChannelA) { //green red (little magenta) //transition to avoid artifacts with 6 between 30 to 36 and 63 to 69 float aa = (cp.grmed - cp.grlow) / 6.f; float bb = cp.grlow - 30.f * aa; float aaa = (cp.grhigh - cp.grmed) / 6.f; float bbb = cp.grmed - 63.f * aaa; - if(LL < 30.f) { //shadows + if (LL < 30.f) { //shadows WavCoeffs_ab0[i] += cp.grlow * (sca) * 300.f; - } else if(LL >= 30.f && LL < 36.f) { //transition + } else if (LL >= 30.f && LL < 36.f) { //transition float tr = aa * LL + bb; WavCoeffs_ab0[i] += tr * (sca) * 300.f; - } else if(LL >= 36.f && LL < 63.f) { //midtones + } else if (LL >= 36.f && LL < 63.f) { //midtones WavCoeffs_ab0[i] += cp.grmed * (sca) * 300.f; - } else if(LL >= 63.f && LL < 69.f) { //transition + } else if (LL >= 63.f && LL < 69.f) { //transition float trh = aaa * LL + bbb; WavCoeffs_ab0[i] += trh * (sca) * 300.f; - } else if(LL >= 69.f) { //highlights + } else if (LL >= 69.f) { //highlights WavCoeffs_ab0[i] += cp.grhigh * (sca) * 300.f; } } else { //blue yellow @@ -2137,17 +2188,17 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float aaa1 = (cp.blhigh - cp.blmed) / 6.f; float bbb1 = cp.blmed - 63.f * aaa1; - if(LL < 30.f) { + if (LL < 30.f) { WavCoeffs_ab0[i] += cp.bllow * (sca) * 300.f; - } else if(LL >= 30.f && LL < 36.f) { + } else if (LL >= 30.f && LL < 36.f) { float tr1 = aa1 * LL + bb1; WavCoeffs_ab0[i] += tr1 * (sca) * 300.f; - } else if(LL >= 36.f && LL < 63.f) { + } else if (LL >= 36.f && LL < 63.f) { WavCoeffs_ab0[i] += cp.blmed * (sca) * 300.f; - } else if(LL >= 63.f && LL < 69.f) { + } else if (LL >= 63.f && LL < 69.f) { float trh1 = aaa1 * LL + bbb1; WavCoeffs_ab0[i] += trh1 * (sca) * 300.f; - } else if(LL >= 69.f) { + } else if (LL >= 69.f) { WavCoeffs_ab0[i] += cp.blhigh * (sca) * 300.f; } } @@ -2165,7 +2216,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float int Hlvl_ab = WaveletCoeffs_ab.level_H(lvl); float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); - ContAllAB (labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); + ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); } } @@ -2181,7 +2232,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c int borderL = 2; // printf("cpedth=%f\n",cp.eddetthr); - if(cp.eddetthr < 30.f) { + if (cp.eddetthr < 30.f) { borderL = 1; // I calculate coefficients with r size matrix 3x3 r=1 ; 5x5 r=2; 7x7 r=3 @@ -2205,7 +2256,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c } } - } else if(cp.eddetthr >= 30.f && cp.eddetthr < 50.f) { + } else if (cp.eddetthr >= 30.f && cp.eddetthr < 50.f) { borderL = 1; for (int i = 1; i < H_L - 1; i++) { //sigma=0.85 @@ -2221,7 +2272,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c } - else if(cp.eddetthr >= 50.f && cp.eddetthr < 75.f) { + else if (cp.eddetthr >= 50.f && cp.eddetthr < 75.f) { borderL = 1; for (int i = 1; i < H_L - 1; i++) { @@ -2233,11 +2284,11 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c } } - else if(cp.eddetthr >= 75.f) { + else if (cp.eddetthr >= 75.f) { borderL = 2; //if(cp.lip3 && level > 1) { - if(level > 1) {// do not activate 5x5 if level 0 or 1 + if (level > 1) { // do not activate 5x5 if level 0 or 1 for (int i = 2; i < H_L - 2; i++) { for (int j = 2; j < W_L - 2; j++) { @@ -2255,7 +2306,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c // 4 9 12 9 4 // 2 4 5 4 2 // divi 159 - if(cp.eddetthr < 85.f) { //sigma=1.1 + if (cp.eddetthr < 85.f) { //sigma=1.1 tmC[i][j] = (15.f * WavCoeffs_LL[dir][i * W_L + j] + 10.f * WavCoeffs_LL[dir][(i - 1) * W_L + j] + 10.f * WavCoeffs_LL[dir][(i + 1) * W_L + j] + 10.f * WavCoeffs_LL[dir][i * W_L + j + 1] + 10.f * WavCoeffs_LL[dir][i * W_L + j - 1] + 7.f * WavCoeffs_LL[dir][(i - 1) * W_L + j - 1] + 7.f * WavCoeffs_LL[dir][(i - 1) * W_L + j + 1] + 7.f * WavCoeffs_LL[dir][(i + 1) * W_L + j - 1] + 7.f * WavCoeffs_LL[dir][(i + 1) * W_L + j + 1] @@ -2306,24 +2357,24 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c thr2 += cp.eddet / 30.f; //to test float diffFactor = (cp.eddet / 100.f); - for(int i = 0; i < H_L; i++ ) { - for(int j = 0; j < W_L; j++) { + for (int i = 0; i < H_L; i++) { + for (int j = 0; j < W_L; j++) { koeLi[level * 3 + dir - 1][i * W_L + j] = 1.f; } } - for(int i = borderL; i < H_L - borderL; i++ ) { - for(int j = borderL; j < W_L - borderL; j++) { + for (int i = borderL; i < H_L - borderL; i++) { + for (int j = borderL; j < W_L - borderL; j++) { // my own algo : probably a little false, but simpler as Lipschitz ! // Thr2 = maximum of the function ==> Lipsitch says = probably edge // float temp = WavCoeffs_LL[dir][i*W_L + j]; // if(temp>=0.f && temp < thr) temp = thr; // if(temp < 0.f && temp > -thr) temp = -thr; - float temp = max(fabsf(WavCoeffs_LL[dir][i * W_L + j]), thr ); + float temp = max(fabsf(WavCoeffs_LL[dir][i * W_L + j]), thr); koeLi[level * 3 + dir - 1][i * W_L + j] = min(thr2, fabs(tmC[i][j] / temp)); // limit maxi //it will be more complicated to calculate both Wh and Wv, but we have also Wd==> pseudo Lipschitz - if(koeLi[level * 3 + dir - 1][i * W_L + j] > maxkoeLi[level * 3 + dir - 1]) { + if (koeLi[level * 3 + dir - 1][i * W_L + j] > maxkoeLi[level * 3 + dir - 1]) { maxkoeLi[level * 3 + dir - 1] = koeLi[level * 3 + dir - 1][i * W_L + j]; } @@ -2335,10 +2386,10 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c } -void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, - int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) +void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, + int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) { - if(cp.diagcurv && cp.finena && MaxP[level] > 0.f && mean[level] != 0.f && sigma[level] != 0.f ) { //curve + if (cp.diagcurv && cp.finena && MaxP[level] > 0.f && mean[level] != 0.f && sigma[level] != 0.f) { //curve float insigma = 0.666f; //SD float logmax = log(MaxP[level]); //log Max float rapX = (mean[level] + sigma[level]) / MaxP[level]; //rapport between sD / max @@ -2356,12 +2407,12 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, for (int i = 0; i < W_L * H_L; i++) { float absciss; - if(fabsf(WavCoeffs_L[dir][i]) >= (mean[level] + sigma[level])) { //for max + if (fabsf(WavCoeffs_L[dir][i]) >= (mean[level] + sigma[level])) { //for max float valcour = xlogf(fabsf(WavCoeffs_L[dir][i])); float valc = valcour - logmax; float vald = valc * rap; absciss = xexpf(vald); - } else if(fabsf(WavCoeffs_L[dir][i]) >= mean[level]) { + } else if (fabsf(WavCoeffs_L[dir][i]) >= mean[level]) { absciss = asig * fabsf(WavCoeffs_L[dir][i]) + bsig; } else { absciss = amean * fabsf(WavCoeffs_L[dir][i]); @@ -2382,34 +2433,34 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, int choiceClevel = 0; - if(params->wavelet.CLmethod == "one") { + if (params->wavelet.CLmethod == "one") { choiceClevel = 0; - } else if(params->wavelet.CLmethod == "inf") { + } else if (params->wavelet.CLmethod == "inf") { choiceClevel = 1; - } else if(params->wavelet.CLmethod == "sup") { + } else if (params->wavelet.CLmethod == "sup") { choiceClevel = 2; - } else if(params->wavelet.CLmethod == "all") { + } else if (params->wavelet.CLmethod == "all") { choiceClevel = 3; } int choiceDir = 0; - if(params->wavelet.Dirmethod == "one") { + if (params->wavelet.Dirmethod == "one") { choiceDir = 1; - } else if(params->wavelet.Dirmethod == "two") { + } else if (params->wavelet.Dirmethod == "two") { choiceDir = 2; - } else if(params->wavelet.Dirmethod == "thr") { + } else if (params->wavelet.Dirmethod == "thr") { choiceDir = 3; - } else if(params->wavelet.Dirmethod == "all") { + } else if (params->wavelet.Dirmethod == "all") { choiceDir = 0; } int dir1 = (choiceDir == 2) ? 1 : 2; int dir2 = (choiceDir == 3) ? 1 : 3; - if(choiceClevel < 3) { // not all levels visible, paint residual - if(level == 0) { - if(cp.backm != 2) { // nothing to change when residual is used as background + if (choiceClevel < 3) { // not all levels visible, paint residual + if (level == 0) { + if (cp.backm != 2) { // nothing to change when residual is used as background float backGroundColor = (cp.backm == 1) ? 12000.f : 0.f; for (int i = 0; i < W_L * H_L; i++) { @@ -2419,10 +2470,10 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, } } - if(choiceClevel == 0) { // Only one level + if (choiceClevel == 0) { // Only one level - if(choiceDir == 0) { // All directions - if(level != choicelevel) { // zero all for the levels != choicelevel + if (choiceDir == 0) { // All directions + if (level != choicelevel) { // zero all for the levels != choicelevel for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir][i] = 0.f; @@ -2431,21 +2482,21 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, } } else { // zero the unwanted directions for level == choicelevel - if(choicelevel >= cp.maxilev) { + if (choicelevel >= cp.maxilev) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir][i] = 0.f; } } - } else if(level != choicelevel) { // zero all for the levels != choicelevel + } else if (level != choicelevel) { // zero all for the levels != choicelevel for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir1][i] = WavCoeffs_L[dir2][i] = 0.f; } } } - } else if(choiceClevel == 1) { // Only below level - if(choiceDir == 0) { // All directions - if(level > choicelevel) { + } else if (choiceClevel == 1) { // Only below level + if (choiceDir == 0) { // All directions + if (level > choicelevel) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir][i] = 0.f; @@ -2453,15 +2504,15 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, } } } else { // zero the unwanted directions for level >= choicelevel - if(level > choicelevel) { + if (level > choicelevel) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir1][i] = WavCoeffs_L[dir2][i] = 0.f; } } } - } else if(choiceClevel == 2) { // Only above level - if(choiceDir == 0) { // All directions - if(level <= choicelevel) { + } else if (choiceClevel == 2) { // Only above level + if (choiceDir == 0) { // All directions + if (level <= choicelevel) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir][i] = 0.f; @@ -2469,7 +2520,7 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, } } } else { // zero the unwanted directions for level >= choicelevel - if(choicelevel >= cp.maxilev) { + if (choicelevel >= cp.maxilev) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir][i] = 0.f; @@ -2478,7 +2529,7 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, } - else if(level <= choicelevel) { + else if (level <= choicelevel) { for (int i = 0; i < W_L * H_L; i++) { WavCoeffs_L[dir1][i] = WavCoeffs_L[dir2][i] = 0.f; } @@ -2489,16 +2540,16 @@ void ImProcFunctions::finalContAllL (float ** WavCoeffs_L, float * WavCoeffs_L0, } -void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * labco, float ** varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, - int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) +void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * labco, float ** varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, + int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) { - assert (level >= 0); - assert (maxlvl > level); + assert(level >= 0); + assert(maxlvl > level); static const float scales[10] = {1.f, 2.f, 4.f, 8.f, 16.f, 32.f, 64.f, 128.f, 256.f, 512.f}; float scaleskip[10]; - for(int sc = 0; sc < 10; sc++) { + for (int sc = 0; sc < 10; sc++) { scaleskip[sc] = scales[sc] / skip; } @@ -2510,11 +2561,11 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float aedstr = (eddstrength - 1.f) / 90.f; float bedstr = 1.f - 10.f * aedstr; - if(cp.val > 0 && cp.edgeena) { + if (cp.val > 0 && cp.edgeena) { float * koe = nullptr; float maxkoe = 0.f; - if(!lipschitz) { + if (!lipschitz) { koe = new float [H_L * W_L]; for (int i = 0; i < W_L * H_L; i++) { @@ -2523,7 +2574,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit maxkoe = 0.f; - if(cp.detectedge) { + if (cp.detectedge) { float** tmC; int borderL = 1; tmC = new float*[H_L]; @@ -2549,25 +2600,25 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit - for(int i = borderL; i < H_L - borderL; i++ ) { - for(int j = borderL; j < W_L - borderL; j++) { + for (int i = borderL; i < H_L - borderL; i++) { + for (int j = borderL; j < W_L - borderL; j++) { // my own algo : probably a little false, but simpler as Lipschitz ! float thr = 40.f; //avoid artifact eg. noise...to test float thr2 = edd; //edd can be modified in option ed_detect thr2 += cp.eddet / 30.f; //to test float temp = WavCoeffs_L[dir][i * W_L + j]; - if(temp >= 0.f && temp < thr) { + if (temp >= 0.f && temp < thr) { temp = thr; } - if(temp < 0.f && temp > -thr) { + if (temp < 0.f && temp > -thr) { temp = -thr; } koe[i * W_L + j] = min(thr2, fabs(tmC[i][j] / temp)); - if(koe[i * W_L + j] > maxkoe) { + if (koe[i * W_L + j] > maxkoe) { maxkoe = koe[i * W_L + j]; } @@ -2575,7 +2626,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit diff *= (cp.eddet / 100.f); float interm = maxkoe - diff; - if(interm < cp.eddetthr / 30.f) { + if (interm < cp.eddetthr / 30.f) { interm = 0.01f; } @@ -2608,18 +2659,18 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float repart = (float)cp.til; float brepart; - if(cp.reinforce == 1) { + if (cp.reinforce == 1) { brepart = 3.f; } - if(cp.reinforce == 3) { + if (cp.reinforce == 3) { brepart = 0.5f; //arbitrary value to increase / decrease repart, between 1 and 0 } float arepart = -(brepart - 1.f) / (lim0 / 60.f); if (cp.reinforce != 2) { - if(rad < lim0 / 60.f) { + if (rad < lim0 / 60.f) { repart *= (arepart * rad + brepart); //linear repartition of repart } } @@ -2633,35 +2684,35 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float expkoef = -pow(fabs(rad - lev), koef); //reduce effect for high levels if (cp.reinforce == 3) { - if(rad < lim0 / 60.f && level == 0) { + if (rad < lim0 / 60.f && level == 0) { expkoef *= abs(repart); //reduce effect for low values of rad and level=0==> quasi only level 1 is effective } } if (cp.reinforce == 1) { - if(rad < lim0 / 60.f && level == 1) { + if (rad < lim0 / 60.f && level == 1) { expkoef /= repart; //increase effect for low values of rad and level=1==> quasi only level 0 is effective } } //take into account local contrast - float refin = value * exp (expkoef); + float refin = value * exp(expkoef); - if(cp.link && cp.noiseena) { //combi + if (cp.link && cp.noiseena) { //combi { - if(level == 0) { + if (level == 0) { refin *= (1.f + cp.lev0s / 50.f); // we can change this sensibility! } - if(level == 1) { + if (level == 1) { refin *= (1.f + cp.lev1s / 50.f); } - if(level == 2) { + if (level == 2) { refin *= (1.f + cp.lev2s / 50.f); } - if(level == 3) { + if (level == 3) { refin *= (1.f + cp.lev3s / 50.f); } } @@ -2669,7 +2720,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float edgePrecalc = 1.f + refin; //estimate edge "pseudo variance" - if(cp.EDmet == 2 && MaxP[level] > 0.f) { //curve + if (cp.EDmet == 2 && MaxP[level] > 0.f) { //curve // if(exa) {//curve float insigma = 0.666f; //SD float logmax = log(MaxP[level]); //log Max @@ -2685,21 +2736,21 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float kmul; int borderL = 1; - for(int i = borderL; i < H_L - borderL; i++ ) { - for(int j = borderL; j < W_L - borderL; j++) { + for (int i = borderL; i < H_L - borderL; i++) { + for (int j = borderL; j < W_L - borderL; j++) { int k = i * W_L + j; - if(cp.detectedge) { - if(!lipschitz) { - if(cp.eddet > 10.f) { + if (cp.detectedge) { + if (!lipschitz) { + if (cp.eddet > 10.f) { edge = (aedstr * cp.eddet + bedstr) * (edgePrecalc * (1.f + koe[k])) / (1.f + 0.9f * maxkoe); } else { edge = (edgePrecalc * (1.f + koe[k])) / (1.f + 0.9f * maxkoe); } } - if(lipschitz) { - if(level < 4) { + if (lipschitz) { + if (level < 4) { edge = 1.f + (edgePrecalc - 1.f) * (koeLi[level * 3][k]) / (1.f + 0.9f * maxkoeLi[level * 3 + dir - 1]); } else { edge = edgePrecalc; @@ -2709,16 +2760,16 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit edge = edgePrecalc; } - if(cp.edgcurv) { - if(fabs(WavCoeffs_L[dir][k]) >= (mean[level] + sigma[level])) { //for max + if (cp.edgcurv) { + if (fabs(WavCoeffs_L[dir][k]) >= (mean[level] + sigma[level])) { //for max float valcour = log(fabs(WavCoeffs_L[dir][k])); float valc = valcour - logmax; float vald = valc * rap; absciss = exp(vald); - } else if(fabs(WavCoeffs_L[dir][k]) >= mean[level] && fabs(WavCoeffs_L[dir][k]) < (mean[level] + sigma[level])) { + } else if (fabs(WavCoeffs_L[dir][k]) >= mean[level] && fabs(WavCoeffs_L[dir][k]) < (mean[level] + sigma[level])) { absciss = asig * fabs(WavCoeffs_L[dir][k]) + bsig; - } else if(fabs(WavCoeffs_L[dir][k]) < mean[level]) { + } else if (fabs(WavCoeffs_L[dir][k]) < mean[level]) { absciss = amean * fabs(WavCoeffs_L[dir][k]); } @@ -2740,7 +2791,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float am = (abssd - bbssd) / 0.666f; float kmuld = 0.f; - if(absciss > 0.666f && absciss < 1.f) { + if (absciss > 0.666f && absciss < 1.f) { kmul = a_abssd * absciss + b_abssd; //about max ==> kinterm kmuld = da_abssd * absciss + db_abssd; } else { @@ -2751,20 +2802,20 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float kc = kmul * (wavCLVCcurve[absciss * 500.f] - 0.5f); float kcd = kmuld * (wavCLVCcurve[absciss * 500.f] - 0.5f); - if(kc >= 0.f) { + if (kc >= 0.f) { float reduceeffect = 0.6f; kinterm = 1.f + reduceeffect * kmul * (wavCLVCcurve[absciss * 500.f] - 0.5f); //about 1 to 3 general and big amplification for max (under 0) } else { kinterm = 1.f - (SQR(kcd)) / 10.f; } - if(kinterm < 0.f) { + if (kinterm < 0.f) { kinterm = 0.01f; } edge *= kinterm; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } } @@ -2772,7 +2823,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit WavCoeffs_L[dir][k] *= edge; } } - } else if(cp.EDmet == 1) { //threshold adjuster + } else if (cp.EDmet == 1) { //threshold adjuster float MaxPCompare = MaxP[level] * SQR(cp.edg_max / 100.f); //100 instead of b_r...case if b_r < 100 float MaxNCompare = MaxN[level] * SQR(cp.edg_max / 100.f); //always reduce a little edge for near max values float edgeSdCompare = (mean[level] + 1.5f * sigma[level]) * SQR(cp.edg_sd / t_r); // 1.5 standard deviation #80% range between mean 50% and 80% @@ -2781,7 +2832,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float edgeMeanFactor = cbrt(cp.edg_mean / t_l); float interm; - if(cp.edg_low < 10.f) { + if (cp.edg_low < 10.f) { interm = cbrt((5.f + cp.edg_low) / 5.f); } else { interm = 1.437f; //cbrt(3); @@ -2795,21 +2846,21 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit //for (int i=0; i 10.f) { + if (cp.detectedge) { + if (!lipschitz) { + if (cp.eddet > 10.f) { edge = (aedstr * cp.eddet + bedstr) * (edgePrecalc * (1.f + koe[k])) / (1.f + 0.9f * maxkoe); } else { edge = (edgePrecalc * (1.f + koe[k])) / (1.f + 0.9f * maxkoe); } } - if(lipschitz) { - if(level < 4) { + if (lipschitz) { + if (level < 4) { edge = 1.f + (edgePrecalc - 1.f) * (koeLi[level * 3][k]) / (1.f + 0.9f * maxkoeLi[level * 3 + dir - 1]); } else { edge = edgePrecalc; @@ -2829,17 +2880,17 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit // If we move sliders to the left, local contrast is reduced // if we move sliders to the right local contrast is increased // MaxP, MaxN, mean, sigma are calculated if necessary (val > 0) by evaluate2(), eval2(), aver() , sigma() - if(b_r < 100.f && cp.edg_max / b_r > 1.f) { //in case of b_r < 100 and slider move to right + if (b_r < 100.f && cp.edg_max / b_r > 1.f) { //in case of b_r < 100 and slider move to right if (WavCoeffs_L[dir][k] > MaxPCompare * cp.edg_max / b_r) { edge *= edgMaxFsup; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } } else if (WavCoeffs_L[dir][k] < MaxNCompare * cp.edg_max / b_r) { edge *= edgMaxFsup; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } } @@ -2848,14 +2899,14 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit if (WavCoeffs_L[dir][k] > MaxPCompare) { edge *= edgeMaxFactor; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } }//reduce edge if > new max else if (WavCoeffs_L[dir][k] < MaxNCompare) { edge *= edgeMaxFactor; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } } @@ -2864,7 +2915,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit //if (fabs(WavCoeffs_L[dir][i]) > edgeSdCompare) { edge *= edgeSdFactor; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } }//modify effect if sd change @@ -2872,7 +2923,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit if (fabs(WavCoeffs_L[dir][k]) < edgeMeanCompare) { edge *= edgeMeanFactor; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } } // modify effect if mean change @@ -2880,7 +2931,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit if (fabs(WavCoeffs_L[dir][k]) < edgeLowCompare) { edge *= edgeLowFactor; - if(edge < 1.f) { + if (edge < 1.f) { edge = 1.f; } } @@ -2890,29 +2941,29 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit } } - if(!lipschitz) { + if (!lipschitz) { delete [] koe; } } - if(!cp.link && cp.noiseena) { //used both with denoise 1 2 3 + if (!cp.link && cp.noiseena) { //used both with denoise 1 2 3 float refine = 0.f; for (int i = 0; i < W_L * H_L; i++) { - if(level == 0) { + if (level == 0) { refine = cp.lev0s / 40.f; } - if(level == 1) { + if (level == 1) { refine = cp.lev1s / 40.f; } - if(level == 2) { + if (level == 2) { refine = cp.lev2s / 40.f; } - if(level == 3) { + if (level == 3) { refine = cp.lev3s / 40.f; } @@ -2923,7 +2974,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float cpMul = cp.mul[level]; - if(cpMul != 0.f && cp.contena) { // cpMul == 0.f means all will be multiplied by 1.f, so we can skip this + if (cpMul != 0.f && cp.contena) { // cpMul == 0.f means all will be multiplied by 1.f, so we can skip this const float skinprot = params->wavelet.skinprotect; const float skinprotneg = -skinprot; @@ -2950,30 +3001,30 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit for (int i = 0; i < W_L * H_L; i++) { float kLlev = 1.f; - if(cpMul < 0.f) { + if (cpMul < 0.f) { beta = 1.f; // disabled for negatives values "less contrast" } else { float WavCL = fabsf(WavCoeffs_L[dir][i]); //reduction amplification: max action between mean / 2 and mean + sigma // arbitrary coefficient, we can add a slider !! - if(WavCL < mea[0]) { + if (WavCL < mea[0]) { beta = 0.6f; //preserve very low contrast (sky...) - } else if(WavCL < mea[1]) { + } else if (WavCL < mea[1]) { beta = 0.8f; - } else if(WavCL < mea[2]) { + } else if (WavCL < mea[2]) { beta = 1.f; //standard - } else if(WavCL < mea[3]) { + } else if (WavCL < mea[3]) { beta = 1.f; - } else if(WavCL < mea[4]) { + } else if (WavCL < mea[4]) { beta = 0.8f; //+sigma - } else if(WavCL < mea[5]) { + } else if (WavCL < mea[5]) { beta = 0.6f; - } else if(WavCL < mea[6]) { + } else if (WavCL < mea[6]) { beta = 0.4f; - } else if(WavCL < mea[7]) { + } else if (WavCL < mea[7]) { beta = 0.2f; // + 2 sigma - } else if(WavCL < mea[8]) { + } else if (WavCL < mea[8]) { beta = 0.1f; } else { beta = 0.0f; @@ -2992,8 +3043,8 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit LL100res = WavCoeffs_L0[i] / 327.68f; float delta = fabs(LL100init - LL100res) / (maxlvl / 2); - for(int ml = 0; ml < maxlvl; ml++) { - if(ml < maxlvl / 2) { + for (int ml = 0; ml < maxlvl; ml++) { + if (ml < maxlvl / 2) { kH[ml] = (LL100res + ml * delta) / LL100res; // fixed a priori max to level middle } else { kH[ml] = (LL100init - ml * delta) / LL100res; @@ -3001,16 +3052,16 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit } - if(useChromAndHue) { + if (useChromAndHue) { float modhue = varhue[ii][jj]; modchro = varchrom[ii * 2][jj * 2]; // hue chroma skin with initial lab datas scale = 1.f; - if(skinprot > 0.f) { - Color::SkinSatCbdl2 (LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); //0 for skin and extand - } else if(skinprot < 0.f) { - Color::SkinSatCbdl2 (LL100, modhue, modchro, skinprotneg, scale, false, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); + if (skinprot > 0.f) { + Color::SkinSatCbdl2(LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); //0 for skin and extand + } else if (skinprot < 0.f) { + Color::SkinSatCbdl2(LL100, modhue, modchro, skinprotneg, scale, false, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); if (scale == 1.f) { scale = factorHard; @@ -3021,14 +3072,14 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit } - if(Chutili) { + if (Chutili) { int i_i = i / W_L; int j_j = i - i_i * W_L; double lr; float modhue2 = varhue[i_i][j_j]; float valparam = float((ChCurve->getVal(lr = Color::huelab_to_huehsv2(modhue2)) - 0.5f)); //get valparam=f(H) - if(valparam > 0.f) { + if (valparam > 0.f) { scale2 = 1.f + 3.f * valparam; //arbitrary value } else { scale2 = 1.f + 1.9f * valparam; //near 0 but not zero if curve # 0 @@ -3039,7 +3090,7 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float diagacc = 1.f; float alpha = (1024.f + 15.f * (float) cpMul * scale * scale2 * beta * diagacc) / 1024.f ; - if(cp.HSmet && cp.contena) { + if (cp.HSmet && cp.contena) { float aaal = (1.f - alpha) / ((cp.b_lhl - cp.t_lhl) * kH[level]); float bbal = 1.f - aaal * cp.b_lhl * kH[level]; float aaar = (alpha - 1.f) / (cp.t_rhl - cp.b_rhl) * kH[level]; @@ -3050,24 +3101,24 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float aaarS = (alpha - 1.f) / (cp.t_rsl - cp.b_rsl); float bbbrS = 1.f - cp.b_rsl * aaarS; - if(level <= cp.numlevH) { //in function of levels - if((LL100 > cp.t_lhl * kH[level] && LL100 < cp.t_rhl * kH[level])) { + if (level <= cp.numlevH) { //in function of levels + if ((LL100 > cp.t_lhl * kH[level] && LL100 < cp.t_rhl * kH[level])) { kLlev = alpha; - } else if((LL100 > cp.b_lhl * kH[level] && LL100 <= cp.t_lhl * kH[level])) { + } else if ((LL100 > cp.b_lhl * kH[level] && LL100 <= cp.t_lhl * kH[level])) { kLlev = aaal * LL100 + bbal; - } else if((LL100 > cp.t_rhl * kH[level] && LL100 <= cp.b_rhl * kH[level])) { + } else if ((LL100 > cp.t_rhl * kH[level] && LL100 <= cp.b_rhl * kH[level])) { kLlev = aaar * LL100 + bbbr; } else { kLlev = 1.f; } } - if(level >= (9 - cp.numlevS)) { - if((LL100 > cp.t_lsl && LL100 < cp.t_rsl)) { + if (level >= (9 - cp.numlevS)) { + if ((LL100 > cp.t_lsl && LL100 < cp.t_rsl)) { kLlev = alpha; - } else if((LL100 > cp.b_lsl && LL100 <= cp.t_lsl)) { + } else if ((LL100 > cp.b_lsl && LL100 <= cp.t_lsl)) { kLlev = aaalS * LL100 + bbalS; - } else if((LL100 > cp.t_rsl && LL100 <= cp.b_rsl)) { + } else if ((LL100 > cp.t_rsl && LL100 <= cp.b_rsl)) { kLlev = aaarS * LL100 + bbbrS; } else { kLlev = 1.f; @@ -3082,27 +3133,27 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit } } - if(waOpacityCurveW) { + if (waOpacityCurveW) { cp.opaW = true; } - if(cp.bam && cp.finena) { - if(cp.opaW && cp.BAmet == 2) { + if (cp.bam && cp.finena) { + if (cp.opaW && cp.BAmet == 2) { int iteration = cp.ite; int itplus = 7 + iteration; int itmoins = 7 - iteration; int med = maxlvl / 2; int it; - if(level < med) { + if (level < med) { it = itmoins; - } else if(level == med) { + } else if (level == med) { it = 7; - } else /*if(level > med)*/ { + } else { /*if(level > med)*/ it = itplus; } - for(int j = 0; j < it; j++) { + for (int j = 0; j < it; j++) { //float bal = cp.balan;//-100 +100 float kba = 1.f; @@ -3115,11 +3166,11 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float k1 = 0.3f * (waOpacityCurveW[6.f * LL100] - 0.5f); //k1 between 0 and 0.5 0.5==> 1/6=0.16 float k2 = k1 * 2.f; - if(dir < 3) { + if (dir < 3) { kba = 1.f + k1; } - if(dir == 3) { + if (dir == 3) { kba = 1.f - k2; } @@ -3128,22 +3179,22 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit } } - if(cp.BAmet == 1) { + if (cp.BAmet == 1) { int iteration = cp.ite; int itplus = 7 + iteration; int itmoins = 7 - iteration; int med = maxlvl / 2; int it; - if(level < med) { + if (level < med) { it = itmoins; - } else if(level == med) { + } else if (level == med) { it = 7; - } else /*if(level > med)*/ { + } else { /*if(level > med)*/ it = itplus; } - for(int j = 0; j < it; j++) { + for (int j = 0; j < it; j++) { float bal = cp.balan;//-100 +100 float kba = 1.f; @@ -3160,12 +3211,12 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit float b0 = 100000.f; float a0 = -4970.f; - if(LL100 > 80.f) { + if (LL100 > 80.f) { k1 = aa * LL100 + bb; k2 = 0.5f * k1; } - if(LL100 < 20.f) { + if (LL100 < 20.f) { k1 = a0 * LL100 + b0; k2 = 0.5f * k1; } @@ -3174,11 +3225,11 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit //k2=300.f; //k1=0.3f*(waOpacityCurveW[6.f*LL100]-0.5f);//k1 between 0 and 0.5 0.5==> 1/6=0.16 //k2=k1*2.f; - if(dir < 3) { + if (dir < 3) { kba = 1.f + bal / k1; } - if(dir == 3) { + if (dir == 3) { kba = 1.f - bal / k2; } @@ -3194,12 +3245,12 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit choicelevel = choicelevel == -1 ? 4 : choicelevel; } -void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float **varchrom, float ** WavCoeffs_ab, float * WavCoeffs_ab0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, - int W_ab, int H_ab, const bool useChannelA) +void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, float **varchrom, float ** WavCoeffs_ab, float * WavCoeffs_ab0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, + int W_ab, int H_ab, const bool useChannelA) { float cpMul = cp.mul[level]; - if(cpMul != 0.f && cp.CHmet == 2 && cp.chro != 0.f && cp.chromena) { // cpMul == 0.f or cp.chro = 0.f means all will be multiplied by 1.f, so we can skip this + if (cpMul != 0.f && cp.CHmet == 2 && cp.chro != 0.f && cp.chromena) { // cpMul == 0.f or cp.chro = 0.f means all will be multiplied by 1.f, so we can skip this const float skinprot = params->wavelet.skinprotect; const float skinprotneg = -skinprot; const float factorHard = (1.f - skinprotneg / 100.f); @@ -3210,7 +3261,7 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float alphaC = (1024.f + 15.f * cpMul * cpChrom / 50.f) / 1024.f ; for (int i = 0; i < W_ab * H_ab; i++) { - if(useSkinControl) { + if (useSkinControl) { int ii = i / W_ab; int jj = i - ii * W_ab; float LL100 = labco->L[ii * 2][jj * 2] / 327.68f; @@ -3219,10 +3270,10 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, // hue chroma skin with initial lab datas float scale = 1.f; - if(skinprot > 0.f) { - Color::SkinSatCbdl2 (LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); //0 for skin and extand - } else if(skinprot < 0.f) { - Color::SkinSatCbdl2 (LL100, modhue, modchro, skinprotneg, scale, false, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); + if (skinprot > 0.f) { + Color::SkinSatCbdl2(LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); //0 for skin and extand + } else if (skinprot < 0.f) { + Color::SkinSatCbdl2(LL100, modhue, modchro, skinprotneg, scale, false, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); scale = (scale == 1.f) ? factorHard : 1.f; } @@ -3238,7 +3289,7 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float cpMulC = cp.mulC[level]; // if( (cp.curv || cp.CHSLmet==1) && cp.CHmet!=2 && level < 9 && cpMulC != 0.f) { // cpMulC == 0.f means all will be multiplied by 1.f, so we can skip - if( cp.CHmet != 2 && level < 9 && cpMulC != 0.f && cp.chromena) { // cpMulC == 0.f means all will be multiplied by 1.f, so we can skip + if (cp.CHmet != 2 && level < 9 && cpMulC != 0.f && cp.chromena) { // cpMulC == 0.f means all will be multiplied by 1.f, so we can skip const float skinprot = params->wavelet.skinprotect; const float skinprotneg = -skinprot; const float factorHard = (1.f - skinprotneg / 100.f); @@ -3251,37 +3302,37 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float scale = 1.f; float modchro = varchrom[ii * 2][jj * 2]; - if(useSkinControl) { + if (useSkinControl) { // hue chroma skin with initial lab datas float LL100 = labco->L[ii * 2][jj * 2] / 327.68f; float modhue = varhue[ii][jj]; - if(skinprot > 0.f) { - Color::SkinSatCbdl2 (LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 1); //1 for curve - } else if(skinprot < 0.f) { - Color::SkinSatCbdl2 (LL100, modhue, modchro, skinprotneg, scale, false, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 1); + if (skinprot > 0.f) { + Color::SkinSatCbdl2(LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 1); //1 for curve + } else if (skinprot < 0.f) { + Color::SkinSatCbdl2(LL100, modhue, modchro, skinprotneg, scale, false, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 1); scale = (scale == 1.f) ? factorHard : 1.f; } } float beta = (1024.f + 20.f * cpMulC * scale) / 1024.f ; - if(beta < 0.02f) { + if (beta < 0.02f) { beta = 0.02f; } float kClev = beta; - if(cp.CHmet == 1) { - if(level < cp.chrom) { + if (cp.CHmet == 1) { + if (level < cp.chrom) { //linear for saturated - if((modchro > cp.t_lsat && modchro < cp.t_rsat)) { + if ((modchro > cp.t_lsat && modchro < cp.t_rsat)) { kClev = beta; - } else if((modchro > cp.b_lsat && modchro <= cp.t_lsat)) { + } else if ((modchro > cp.b_lsat && modchro <= cp.t_lsat)) { float aaal = (1.f - beta) / (cp.b_lsat - cp.t_lsat); float bbal = 1.f - aaal * cp.b_lsat; kClev = aaal * modchro + bbal; - } else if((modchro > cp.t_rsat && modchro <= cp.b_rsat)) { + } else if ((modchro > cp.t_rsat && modchro <= cp.b_rsat)) { float aaar = (beta - 1.f) / (cp.t_rsat - cp.b_rsat); float bbbr = 1.f - cp.b_rsat * aaar; kClev = aaar * modchro + bbbr; @@ -3290,13 +3341,13 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, } } else { //linear for pastel - if((modchro > cp.t_lpast && modchro < cp.t_rpast)) { + if ((modchro > cp.t_lpast && modchro < cp.t_rpast)) { kClev = beta; - } else if((modchro > cp.b_lpast && modchro <= cp.t_lpast)) { + } else if ((modchro > cp.b_lpast && modchro <= cp.t_lpast)) { float aaalS = (1.f - beta) / (cp.b_lpast - cp.t_lpast); float bbalS = 1.f - aaalS * cp.b_lpast; kClev = aaalS * modchro + bbalS; - } else if((modchro > cp.t_rpast && modchro <= cp.b_rpast)) { + } else if ((modchro > cp.t_rpast && modchro <= cp.b_rpast)) { float aaarS = (beta - 1.f) / (cp.t_rpast - cp.b_rpast); float bbbrS = 1.f - cp.b_rpast * aaarS; kClev = aaarS * modchro + bbbrS; @@ -3304,7 +3355,7 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, kClev = 1.f; } } - } else if(cp.CHmet == 0) { + } else if (cp.CHmet == 0) { kClev = beta; } @@ -3315,19 +3366,21 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, bool useOpacity; float mulOpacity = 0.f; - if(useChannelA) { + if (useChannelA) { useOpacity = cp.opaRG; - if(level < 9) { + + if (level < 9) { mulOpacity = cp.mulopaRG[level]; } } else { useOpacity = cp.opaBY; - if(level < 9) { + + if (level < 9) { mulOpacity = cp.mulopaBY[level]; } } - if((useOpacity && level < 9 && mulOpacity != 0.f) && cp.toningena) { //toning + if ((useOpacity && level < 9 && mulOpacity != 0.f) && cp.toningena) { //toning float beta = (1024.f + 20.f * mulOpacity) / 1024.f ; @@ -3339,28 +3392,28 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, // WavCoeffs_ab[dir][i] += beta; } - if(waOpacityCurveW) { + if (waOpacityCurveW) { cp.opaW = true; } - if(cp.bam && cp.diag) { + if (cp.bam && cp.diag) { //printf("OK Chroma\n"); - if(cp.opaW && cp.BAmet == 2) { + if (cp.opaW && cp.BAmet == 2) { int iteration = cp.ite; int itplus = 7 + iteration; int itmoins = 7 - iteration; int med = maxlvl / 2; int it; - if(level < med) { + if (level < med) { it = itmoins; - } else if(level == med) { + } else if (level == med) { it = 7; - } else /*if(level > med)*/ { + } else { /*if(level > med)*/ it = itplus; } - for(int j = 0; j < it; j++) { + for (int j = 0; j < it; j++) { //float bal = cp.balan;//-100 +100 float kba = 1.f; @@ -3373,11 +3426,11 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float k1 = 0.3f * (waOpacityCurveW[6.f * LL100] - 0.5f); //k1 between 0 and 0.5 0.5==> 1/6=0.16 float k2 = k1 * 2.f; - if(dir < 3) { + if (dir < 3) { kba = 1.f + k1; } - if(dir == 3) { + if (dir == 3) { kba = 1.f - k2; } @@ -3386,22 +3439,22 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, } } - if(cp.BAmet == 1) { + if (cp.BAmet == 1) { int iteration = cp.ite; int itplus = 7 + iteration; int itmoins = 7 - iteration; int med = maxlvl / 2; int it; - if(level < med) { + if (level < med) { it = itmoins; - } else if(level == med) { + } else if (level == med) { it = 7; - } else /*if(level > med)*/ { + } else { /*if(level > med)*/ it = itplus; } - for(int j = 0; j < it; j++) { + for (int j = 0; j < it; j++) { float bal = cp.balan;//-100 +100 float kba = 1.f; @@ -3418,12 +3471,12 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, float b0 = 100000.f; float a0 = -4970.f; - if(LL100 > 80.f) { + if (LL100 > 80.f) { k1 = aa * LL100 + bb; k2 = 0.5f * k1; } - if(LL100 < 20.f) { + if (LL100 < 20.f) { k1 = a0 * LL100 + b0; k2 = 0.5f * k1; } @@ -3432,11 +3485,11 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, //k2=300.f; //k1=0.3f*(waOpacityCurveW[6.f*LL100]-0.5f);//k1 between 0 and 0.5 0.5==> 1/6=0.16 //k2=k1*2.f; - if(dir < 3) { + if (dir < 3) { kba = 1.f + bal / k1; } - if(dir == 3) { + if (dir == 3) { kba = 1.f - bal / k2; } @@ -3452,34 +3505,34 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, choicelevel = choicelevel == -1 ? 4 : choicelevel; int choiceClevel = 0; - if(params->wavelet.CLmethod == "one") { + if (params->wavelet.CLmethod == "one") { choiceClevel = 0; - } else if(params->wavelet.CLmethod == "inf") { + } else if (params->wavelet.CLmethod == "inf") { choiceClevel = 1; - } else if(params->wavelet.CLmethod == "sup") { + } else if (params->wavelet.CLmethod == "sup") { choiceClevel = 2; - } else if(params->wavelet.CLmethod == "all") { + } else if (params->wavelet.CLmethod == "all") { choiceClevel = 3; } int choiceDir = 0; - if(params->wavelet.Dirmethod == "one") { + if (params->wavelet.Dirmethod == "one") { choiceDir = 1; - } else if(params->wavelet.Dirmethod == "two") { + } else if (params->wavelet.Dirmethod == "two") { choiceDir = 2; - } else if(params->wavelet.Dirmethod == "thr") { + } else if (params->wavelet.Dirmethod == "thr") { choiceDir = 3; - } else if(params->wavelet.Dirmethod == "all") { + } else if (params->wavelet.Dirmethod == "all") { choiceDir = 0; } int dir1 = (choiceDir == 2) ? 1 : 2; int dir2 = (choiceDir == 3) ? 1 : 3; - if(choiceClevel < 3) { // not all levels visible, paint residual - if(level == 0) { - if(cp.backm != 2) { // nothing to change when residual is used as background + if (choiceClevel < 3) { // not all levels visible, paint residual + if (level == 0) { + if (cp.backm != 2) { // nothing to change when residual is used as background for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab0[i] = 0.f; } @@ -3487,9 +3540,9 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, } } - if(choiceClevel == 0) { // Only one level - if(choiceDir == 0) { // All directions - if(level != choicelevel) { // zero all for the levels != choicelevel + if (choiceClevel == 0) { // Only one level + if (choiceDir == 0) { // All directions + if (level != choicelevel) { // zero all for the levels != choicelevel for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir][i] = 0.f; @@ -3497,21 +3550,21 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, } } } else { // zero the unwanted directions for level == choicelevel - if(choicelevel >= cp.maxilev) { + if (choicelevel >= cp.maxilev) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir][i] = 0.f; } } - } else if(level != choicelevel) { // zero all for the levels != choicelevel + } else if (level != choicelevel) { // zero all for the levels != choicelevel for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir1][i] = WavCoeffs_ab[dir2][i] = 0.f; } } } - } else if(choiceClevel == 1) { // Only below level - if(choiceDir == 0) { // All directions - if(level > choicelevel) { + } else if (choiceClevel == 1) { // Only below level + if (choiceDir == 0) { // All directions + if (level > choicelevel) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir][i] = 0.f; @@ -3519,15 +3572,15 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, } } } else { // zero the unwanted directions for level >= choicelevel - if(level > choicelevel) { + if (level > choicelevel) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir1][i] = WavCoeffs_ab[dir2][i] = 0.f; } } } - } else if(choiceClevel == 2) { // Only above level - if(choiceDir == 0) { // All directions - if(level <= choicelevel) { + } else if (choiceClevel == 2) { // Only above level + if (choiceDir == 0) { // All directions + if (level <= choicelevel) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir][i] = 0.f; @@ -3535,13 +3588,13 @@ void ImProcFunctions::ContAllAB (LabImage * labco, int maxlvl, float ** varhue, } } } else { // zero the unwanted directions for level >= choicelevel - if(choicelevel >= cp.maxilev) { + if (choicelevel >= cp.maxilev) { for (int dir = 1; dir < 4; dir++) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir][i] = 0.f; } } - } else if(level <= choicelevel) { + } else if (level <= choicelevel) { for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir1][i] = WavCoeffs_ab[dir2][i] = 0.f; } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 6d914bb27..1bbab3f74 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2150,6 +2150,10 @@ WaveletParams::WaveletParams() : bluemed(0), greenhigh(0), bluehigh(0), + mergeL(40.), + mergeC(20.), + softrad(0.), + softradend(0.), lipst(false), avoid(false), tmr(false), @@ -2165,6 +2169,7 @@ WaveletParams::WaveletParams() : expfinal(false), exptoning(false), expnoise(false), + expclari(false), Lmethod(4), CLmethod("all"), Backmethod("grey"), @@ -2172,6 +2177,7 @@ WaveletParams::WaveletParams() : daubcoeffmethod("4_"), CHmethod("without"), Medgreinf("less"), + ushamethod("none"), CHSLmethod("SL"), EDmethod("CU"), NPmethod("none"), @@ -2239,6 +2245,10 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && bluemed == other.bluemed && greenhigh == other.greenhigh && bluehigh == other.bluehigh + && mergeL == other.mergeL + && mergeC == other.mergeC + && softrad == other.softrad + && softradend == other.softradend && lipst == other.lipst && avoid == other.avoid && tmr == other.tmr @@ -2259,6 +2269,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && expedge == other.expedge && expresid == other.expresid && expfinal == other.expfinal + && expclari == other.expclari && exptoning == other.exptoning && expnoise == other.expnoise && Lmethod == other.Lmethod @@ -2268,6 +2279,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && daubcoeffmethod == other.daubcoeffmethod && CHmethod == other.CHmethod && Medgreinf == other.Medgreinf + && ushamethod == other.ushamethod && CHSLmethod == other.CHSLmethod && EDmethod == other.EDmethod && NPmethod == other.NPmethod @@ -3335,6 +3347,10 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.bluehigh, "Wavelet", "CBbluehigh", wavelet.bluehigh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.bluemed, "Wavelet", "CBbluemed", wavelet.bluemed, keyFile); saveToKeyfile(!pedited || pedited->wavelet.bluelow, "Wavelet", "CBbluelow", wavelet.bluelow, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.mergeL, "Wavelet", "MergeL", wavelet.mergeL, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.mergeC, "Wavelet", "MergeC", wavelet.mergeC, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.softrad, "Wavelet", "Softrad", wavelet.softrad, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.softradend, "Wavelet", "Softradend", wavelet.softradend, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expcontrast, "Wavelet", "Expcontrast", wavelet.expcontrast, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expchroma, "Wavelet", "Expchroma", wavelet.expchroma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expedge, "Wavelet", "Expedge", wavelet.expedge, keyFile); @@ -3342,6 +3358,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.expfinal, "Wavelet", "Expfinal", wavelet.expfinal, keyFile); saveToKeyfile(!pedited || pedited->wavelet.exptoning, "Wavelet", "Exptoning", wavelet.exptoning, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expnoise, "Wavelet", "Expnoise", wavelet.expnoise, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.expclari, "Wavelet", "Expclari", wavelet.expclari, keyFile); for (int i = 0; i < 9; i++) { std::stringstream ss; @@ -3376,6 +3393,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.chroma, "Wavelet", "ThresholdChroma", wavelet.chroma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.CHmethod, "Wavelet", "CHromaMethod", wavelet.CHmethod, keyFile); saveToKeyfile(!pedited || pedited->wavelet.Medgreinf, "Wavelet", "Medgreinf", wavelet.Medgreinf, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.ushamethod, "Wavelet", "Ushamethod", wavelet.ushamethod, keyFile); saveToKeyfile(!pedited || pedited->wavelet.CHSLmethod, "Wavelet", "CHSLromaMethod", wavelet.CHSLmethod, keyFile); saveToKeyfile(!pedited || pedited->wavelet.EDmethod, "Wavelet", "EDMethod", wavelet.EDmethod, keyFile); saveToKeyfile(!pedited || pedited->wavelet.NPmethod, "Wavelet", "NPMethod", wavelet.NPmethod, keyFile); @@ -4457,6 +4475,10 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "CBbluehigh", pedited, wavelet.bluehigh, pedited->wavelet.bluehigh); assignFromKeyfile(keyFile, "Wavelet", "CBbluemed", pedited, wavelet.bluemed, pedited->wavelet.bluemed); assignFromKeyfile(keyFile, "Wavelet", "CBbluelow", pedited, wavelet.bluelow, pedited->wavelet.bluelow); + assignFromKeyfile(keyFile, "Wavelet", "MergeL", pedited, wavelet.mergeL, pedited->wavelet.mergeL); + assignFromKeyfile(keyFile, "Wavelet", "MergeC", pedited, wavelet.mergeC, pedited->wavelet.mergeC); + assignFromKeyfile(keyFile, "Wavelet", "Softrad", pedited, wavelet.softrad, pedited->wavelet.softrad); + assignFromKeyfile(keyFile, "Wavelet", "Softradend", pedited, wavelet.softradend, pedited->wavelet.softradend); assignFromKeyfile(keyFile, "Wavelet", "Lipst", pedited, wavelet.lipst, pedited->wavelet.lipst); assignFromKeyfile(keyFile, "Wavelet", "AvoidColorShift", pedited, wavelet.avoid, pedited->wavelet.avoid); assignFromKeyfile(keyFile, "Wavelet", "TMr", pedited, wavelet.tmr, pedited->wavelet.tmr); @@ -4478,6 +4500,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "DaubMethod", pedited, wavelet.daubcoeffmethod, pedited->wavelet.daubcoeffmethod); assignFromKeyfile(keyFile, "Wavelet", "CHromaMethod", pedited, wavelet.CHmethod, pedited->wavelet.CHmethod); assignFromKeyfile(keyFile, "Wavelet", "Medgreinf", pedited, wavelet.Medgreinf, pedited->wavelet.Medgreinf); + assignFromKeyfile(keyFile, "Wavelet", "Ushamethod", pedited, wavelet.ushamethod, pedited->wavelet.ushamethod); assignFromKeyfile(keyFile, "Wavelet", "CHSLromaMethod", pedited, wavelet.CHSLmethod, pedited->wavelet.CHSLmethod); assignFromKeyfile(keyFile, "Wavelet", "EDMethod", pedited, wavelet.EDmethod, pedited->wavelet.EDmethod); assignFromKeyfile(keyFile, "Wavelet", "NPMethod", pedited, wavelet.NPmethod, pedited->wavelet.NPmethod); @@ -4684,6 +4707,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Expfinal", pedited, wavelet.expfinal, pedited->wavelet.expfinal); assignFromKeyfile(keyFile, "Wavelet", "Exptoning", pedited, wavelet.exptoning, pedited->wavelet.exptoning); assignFromKeyfile(keyFile, "Wavelet", "Expnoise", pedited, wavelet.expnoise, pedited->wavelet.expnoise); + assignFromKeyfile(keyFile, "Wavelet", "Expclari", pedited, wavelet.expclari, pedited->wavelet.expclari); } if (keyFile.has_group("Directional Pyramid Equalizer")) { diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 0982fda48..f2328217a 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1180,6 +1180,10 @@ struct WaveletParams { int bluemed; int greenhigh; int bluehigh; + double mergeL; + double mergeC; + double softrad; + double softradend; bool lipst; bool avoid; @@ -1196,6 +1200,7 @@ struct WaveletParams { bool expfinal; bool exptoning; bool expnoise; + bool expclari; int Lmethod; Glib::ustring CLmethod; @@ -1204,6 +1209,7 @@ struct WaveletParams { Glib::ustring daubcoeffmethod; Glib::ustring CHmethod; Glib::ustring Medgreinf; + Glib::ustring ushamethod; Glib::ustring CHSLmethod; Glib::ustring EDmethod; Glib::ustring NPmethod; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index ff2b234a3..52ab5a590 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -30,6 +30,8 @@ #include "rawimagesource.h" #include "../rtgui/multilangmgr.h" #include "mytime.h" +#include "guidedfilter.h" + #undef THREAD_PRIORITY_NORMAL namespace rtengine @@ -40,7 +42,7 @@ namespace { template -void adjust_radius (const T &default_param, double scale_factor, T ¶m) +void adjust_radius(const T &default_param, double scale_factor, T ¶m) { const double delta = (param - default_param) * scale_factor; param = default_param + delta; @@ -56,10 +58,10 @@ public: ProgressListener* pl, bool flush ) : - job (static_cast (pjob)), - errorCode (errorCode), - pl (pl), - flush (flush), + job(static_cast(pjob)), + errorCode(errorCode), + pl(pl), + flush(flush), // internal state ii(nullptr), imgsrc(nullptr), @@ -139,14 +141,14 @@ private: errorCode = 0; if (pl) { - pl->setProgressStr ("PROGRESSBAR_PROCESSING"); - pl->setProgress (0.0); + pl->setProgressStr("PROGRESSBAR_PROCESSING"); + pl->setProgress(0.0); } ii = job->initialImage; if (!ii) { - ii = InitialImage::load (job->fname, job->isRaw, &errorCode); + ii = InitialImage::load(job->fname, job->isRaw, &errorCode); if (errorCode) { delete job; @@ -157,11 +159,12 @@ private: procparams::ProcParams& params = job->pparams; // acquire image from imagesource - imgsrc = ii->getImageSource (); + imgsrc = ii->getImageSource(); - tr = getCoarseBitMask (params.coarse); - if(imgsrc->getSensorType() == ST_BAYER) { - if(params.raw.bayersensor.method!= RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { + tr = getCoarseBitMask(params.coarse); + + if (imgsrc->getSensorType() == ST_BAYER) { + if (params.raw.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { imgsrc->setBorder(params.raw.bayersensor.border); } else { imgsrc->setBorder(std::max(params.raw.bayersensor.border, 2)); @@ -169,7 +172,8 @@ private: } else if (imgsrc->getSensorType() == ST_FUJI_XTRANS) { imgsrc->setBorder(params.raw.xtranssensor.border); } - imgsrc->getFullSize (fw, fh, tr); + + imgsrc->getFullSize(fw, fh, tr); // check the crop params if (params.crop.x > fw || params.crop.y > fh) { @@ -203,29 +207,31 @@ private: // MyTime t1,t2; // t1.set(); - ipf_p.reset (new ImProcFunctions (¶ms, true)); + ipf_p.reset(new ImProcFunctions(¶ms, true)); ImProcFunctions &ipf = * (ipf_p.get()); - imgsrc->setCurrentFrame (params.raw.bayersensor.imageNum); - imgsrc->preprocess ( params.raw, params.lensProf, params.coarse, params.dirpyrDenoise.enabled); + imgsrc->setCurrentFrame(params.raw.bayersensor.imageNum); + imgsrc->preprocess(params.raw, params.lensProf, params.coarse, params.dirpyrDenoise.enabled); if (pl) { - pl->setProgress (0.20); + pl->setProgress(0.20); } + bool autoContrast = imgsrc->getSensorType() == ST_BAYER ? params.raw.bayersensor.dualDemosaicAutoContrast : params.raw.xtranssensor.dualDemosaicAutoContrast; double contrastThreshold = imgsrc->getSensorType() == ST_BAYER ? params.raw.bayersensor.dualDemosaicContrast : params.raw.xtranssensor.dualDemosaicContrast; - imgsrc->demosaic (params.raw, autoContrast, contrastThreshold); + imgsrc->demosaic(params.raw, autoContrast, contrastThreshold); if (pl) { - pl->setProgress (0.30); + pl->setProgress(0.30); } - pp = PreviewProps (0, 0, fw, fh, 1); + + pp = PreviewProps(0, 0, fw, fh, 1); if (params.retinex.enabled) { //enabled Retinex - LUTf cdcurve (65536, 0); - LUTf mapcurve (65536, 0); + LUTf cdcurve(65536, 0); + LUTf mapcurve(65536, 0); LUTu dummy; RetinextransmissionCurve dehatransmissionCurve; RetinexgaintransmissionCurve dehagaintransmissionCurve; @@ -233,39 +239,39 @@ private: bool mapcontlutili = false; bool useHsl = false; // multi_array2D conversionBuffer(1, 1); - multi_array2D conversionBuffer (1, 1); - imgsrc->retinexPrepareBuffers (params.icm, params.retinex, conversionBuffer, dummy); - imgsrc->retinexPrepareCurves (params.retinex, cdcurve, mapcurve, dehatransmissionCurve, dehagaintransmissionCurve, dehacontlutili, mapcontlutili, useHsl, dummy, dummy ); + multi_array2D conversionBuffer(1, 1); + imgsrc->retinexPrepareBuffers(params.icm, params.retinex, conversionBuffer, dummy); + imgsrc->retinexPrepareCurves(params.retinex, cdcurve, mapcurve, dehatransmissionCurve, dehagaintransmissionCurve, dehacontlutili, mapcontlutili, useHsl, dummy, dummy); float minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax; - imgsrc->retinex ( params.icm, params.retinex, params.toneCurve, cdcurve, mapcurve, dehatransmissionCurve, dehagaintransmissionCurve, conversionBuffer, dehacontlutili, mapcontlutili, useHsl, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax, dummy); + imgsrc->retinex(params.icm, params.retinex, params.toneCurve, cdcurve, mapcurve, dehatransmissionCurve, dehagaintransmissionCurve, conversionBuffer, dehacontlutili, mapcontlutili, useHsl, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax, dummy); } if (pl) { - pl->setProgress (0.40); + pl->setProgress(0.40); } - imgsrc->HLRecovery_Global ( params.toneCurve ); + imgsrc->HLRecovery_Global(params.toneCurve); if (pl) { - pl->setProgress (0.45); + pl->setProgress(0.45); } // set the color temperature - currWB = ColorTemp (params.wb.temperature, params.wb.green, params.wb.equal, params.wb.method); + currWB = ColorTemp(params.wb.temperature, params.wb.green, params.wb.equal, params.wb.method); if (!params.wb.enabled) { currWB = ColorTemp(); } else if (params.wb.method == "Camera") { - currWB = imgsrc->getWB (); + currWB = imgsrc->getWB(); } else if (params.wb.method == "Auto") { double rm, gm, bm; - imgsrc->getAutoWBMultipliers (rm, gm, bm); - currWB.update (rm, gm, bm, params.wb.equal, params.wb.tempBias); + imgsrc->getAutoWBMultipliers(rm, gm, bm); + currWB.update(rm, gm, bm, params.wb.equal, params.wb.tempBias); } calclum = nullptr ; - params.dirpyrDenoise.getCurves (noiseLCurve, noiseCCurve); + params.dirpyrDenoise.getCurves(noiseLCurve, noiseCCurve); autoNR = (float) settings->nrauto;// autoNRmax = (float) settings->nrautomax;// @@ -282,7 +288,7 @@ private: // const int tilesize = 768; // const int overlap = 96; int numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip; - ipf.Tile_calc (tilesize, overlap, 2, fw, fh, numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip); + ipf.Tile_calc(tilesize, overlap, 2, fw, fh, numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip); int nbtl = numtiles_W * numtiles_H; if ((settings->leveldnautsimpl == 1 && params.dirpyrDenoise.Cmethod == "AUT") || (settings->leveldnautsimpl == 0 && params.dirpyrDenoise.C2method == "AUTO")) { @@ -335,16 +341,16 @@ private: // Imagefloat *origCropPart;//init auto noise // origCropPart = new Imagefloat (crW, crH);//allocate memory if (params.dirpyrDenoise.enabled) {//evaluate Noise - LUTf gamcurve (65536, 0); + LUTf gamcurve(65536, 0); float gam, gamthresh, gamslope; - ipf.RGB_denoise_infoGamCurve (params.dirpyrDenoise, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope); + ipf.RGB_denoise_infoGamCurve(params.dirpyrDenoise, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope); #ifdef _OPENMP #pragma omp parallel #endif { Imagefloat *origCropPart;//init auto noise - origCropPart = new Imagefloat (crW, crH);//allocate memory - Imagefloat *provicalc = new Imagefloat ((crW + 1) / 2, (crH + 1) / 2); //for denoise curves + origCropPart = new Imagefloat(crW, crH); //allocate memory + Imagefloat *provicalc = new Imagefloat((crW + 1) / 2, (crH + 1) / 2); //for denoise curves int skipP = 1; #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) nowait @@ -354,20 +360,20 @@ private: for (int hcr = 0; hcr < numtiles_H; hcr++) { int beg_tileW = wcr * tileWskip + tileWskip / 2.f - crW / 2.f; int beg_tileH = hcr * tileHskip + tileHskip / 2.f - crH / 2.f; - PreviewProps ppP (beg_tileW, beg_tileH, crW, crH, skipP); - imgsrc->getImage (currWB, tr, origCropPart, ppP, params.toneCurve, params.raw ); + PreviewProps ppP(beg_tileW, beg_tileH, crW, crH, skipP); + imgsrc->getImage(currWB, tr, origCropPart, ppP, params.toneCurve, params.raw); //baseImg->getStdImage(currWB, tr, origCropPart, ppP, true, params.toneCurve); // we only need image reduced to 1/4 here for (int ii = 0; ii < crH; ii += 2) { for (int jj = 0; jj < crW; jj += 2) { - provicalc->r (ii >> 1, jj >> 1) = origCropPart->r (ii, jj); - provicalc->g (ii >> 1, jj >> 1) = origCropPart->g (ii, jj); - provicalc->b (ii >> 1, jj >> 1) = origCropPart->b (ii, jj); + provicalc->r(ii >> 1, jj >> 1) = origCropPart->r(ii, jj); + provicalc->g(ii >> 1, jj >> 1) = origCropPart->g(ii, jj); + provicalc->b(ii >> 1, jj >> 1) = origCropPart->b(ii, jj); } } - imgsrc->convertColorSpace (provicalc, params.icm, currWB); //for denoise luminance curve + imgsrc->convertColorSpace(provicalc, params.icm, currWB); //for denoise luminance curve float maxr = 0.f; float maxb = 0.f; float pondcorrec = 1.0f; @@ -380,11 +386,11 @@ private: maxblueaut = 0.f; chromina = 0.f; sigma = 0.f; - ipf.RGB_denoise_info (origCropPart, provicalc, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope, params.dirpyrDenoise, imgsrc->getDirPyrDenoiseExpComp(), chaut, Nb, redaut, blueaut, maxredaut, maxblueaut, minredaut, minblueaut, chromina, sigma, lumema, sigma_L, redyel, skinc, nsknc); + ipf.RGB_denoise_info(origCropPart, provicalc, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope, params.dirpyrDenoise, imgsrc->getDirPyrDenoiseExpComp(), chaut, Nb, redaut, blueaut, maxredaut, maxblueaut, minredaut, minblueaut, chromina, sigma, lumema, sigma_L, redyel, skinc, nsknc); float multip = 1.f; float adjustr = 1.f; - if (params.icm.workingProfile == "ProPhoto") { + if (params.icm.workingProfile == "ProPhoto") { adjustr = 1.f; // } else if (params.icm.workingProfile == "Adobe RGB") { adjustr = 1.f / 1.3f; @@ -406,11 +412,11 @@ private: multip = 2.f; //take into account gamma for TIF / JPG approximate value...not good for gamma=1 } - float maxmax = max (maxredaut, maxblueaut); + float maxmax = max(maxredaut, maxblueaut); float delta; int mode = 2; int lissage = settings->leveldnliss; - ipf.calcautodn_info (chaut, delta, Nb, levaut, maxmax, lumema, chromina, mode, lissage, redyel, skinc, nsknc); + ipf.calcautodn_info(chaut, delta, Nb, levaut, maxmax, lumema, chromina, mode, lissage, redyel, skinc, nsknc); // printf("PROCESS cha=%f red=%f bl=%f redM=%f bluM=%f chrom=%f sigm=%f lum=%f sigL=%f\n",chaut,redaut,blueaut, maxredaut, maxblueaut, chromina, sigma, lumema, sigma_L); if (maxredaut > maxblueaut) { @@ -509,7 +515,7 @@ private: if (settings->verbose) { t2pone.set(); - printf ("Info denoise ponderated performed in %d usec:\n", t2pone.etime (t1pone)); + printf("Info denoise ponderated performed in %d usec:\n", t2pone.etime(t1pone)); } } @@ -550,9 +556,9 @@ private: } if (params.dirpyrDenoise.enabled) {//evaluate Noise - LUTf gamcurve (65536, 0); + LUTf gamcurve(65536, 0); float gam, gamthresh, gamslope; - ipf.RGB_denoise_infoGamCurve (params.dirpyrDenoise, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope); + ipf.RGB_denoise_infoGamCurve(params.dirpyrDenoise, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope); int Nb[9]; int coordW[3];//coordinate of part of image to measure noise int coordH[3]; @@ -569,8 +575,8 @@ private: #endif { Imagefloat *origCropPart;//init auto noise - origCropPart = new Imagefloat (crW, crH);//allocate memory - Imagefloat *provicalc = new Imagefloat ((crW + 1) / 2, (crH + 1) / 2); //for denoise curves + origCropPart = new Imagefloat(crW, crH); //allocate memory + Imagefloat *provicalc = new Imagefloat((crW + 1) / 2, (crH + 1) / 2); //for denoise curves #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) nowait @@ -578,24 +584,24 @@ private: for (int wcr = 0; wcr <= 2; wcr++) { for (int hcr = 0; hcr <= 2; hcr++) { - PreviewProps ppP (coordW[wcr], coordH[hcr], crW, crH, 1); - imgsrc->getImage (currWB, tr, origCropPart, ppP, params.toneCurve, params.raw); + PreviewProps ppP(coordW[wcr], coordH[hcr], crW, crH, 1); + imgsrc->getImage(currWB, tr, origCropPart, ppP, params.toneCurve, params.raw); //baseImg->getStdImage(currWB, tr, origCropPart, ppP, true, params.toneCurve); // we only need image reduced to 1/4 here for (int ii = 0; ii < crH; ii += 2) { for (int jj = 0; jj < crW; jj += 2) { - provicalc->r (ii >> 1, jj >> 1) = origCropPart->r (ii, jj); - provicalc->g (ii >> 1, jj >> 1) = origCropPart->g (ii, jj); - provicalc->b (ii >> 1, jj >> 1) = origCropPart->b (ii, jj); + provicalc->r(ii >> 1, jj >> 1) = origCropPart->r(ii, jj); + provicalc->g(ii >> 1, jj >> 1) = origCropPart->g(ii, jj); + provicalc->b(ii >> 1, jj >> 1) = origCropPart->b(ii, jj); } } - imgsrc->convertColorSpace (provicalc, params.icm, currWB); //for denoise luminance curve + imgsrc->convertColorSpace(provicalc, params.icm, currWB); //for denoise luminance curve int nb = 0; float chaut = 0.f, redaut = 0.f, blueaut = 0.f, maxredaut = 0.f, maxblueaut = 0.f, minredaut = 0.f, minblueaut = 0.f, chromina = 0.f, sigma = 0.f, lumema = 0.f, sigma_L = 0.f, redyel = 0.f, skinc = 0.f, nsknc = 0.f; - ipf.RGB_denoise_info (origCropPart, provicalc, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope, params.dirpyrDenoise, imgsrc->getDirPyrDenoiseExpComp(), chaut, nb, redaut, blueaut, maxredaut, maxblueaut, minredaut, minblueaut, chromina, sigma, lumema, sigma_L, redyel, skinc, nsknc); + ipf.RGB_denoise_info(origCropPart, provicalc, imgsrc->isRAW(), gamcurve, gam, gamthresh, gamslope, params.dirpyrDenoise, imgsrc->getDirPyrDenoiseExpComp(), chaut, nb, redaut, blueaut, maxredaut, maxblueaut, minredaut, minblueaut, chromina, sigma, lumema, sigma_L, redyel, skinc, nsknc); Nb[hcr * 3 + wcr] = nb; ch_M[hcr * 3 + wcr] = chaut; max_r[hcr * 3 + wcr] = maxredaut; @@ -631,7 +637,7 @@ private: float MinRMoy = 0.f; float MinBMoy = 0.f; - if (params.icm.workingProfile == "ProPhoto") { + if (params.icm.workingProfile == "ProPhoto") { adjustr = 1.f; } else if (params.icm.workingProfile == "Adobe RGB") { adjustr = 1.f / 1.3f; @@ -658,8 +664,8 @@ private: int lissage = settings->leveldnliss; for (int k = 0; k < 9; k++) { - float maxmax = max (max_r[k], max_b[k]); - ipf.calcautodn_info (ch_M[k], delta[k], Nb[k], levaut, maxmax, lumL[k], chromC[k], mode, lissage, ry[k], sk[k], pcsk[k] ); + float maxmax = max(max_r[k], max_b[k]); + ipf.calcautodn_info(ch_M[k], delta[k], Nb[k], levaut, maxmax, lumL[k], chromC[k], mode, lissage, ry[k], sk[k], pcsk[k]); // printf("ch_M=%f delta=%f\n",ch_M[k], delta[k]); } @@ -732,17 +738,17 @@ private: if (settings->verbose) { t2aue.set(); - printf ("Info denoise auto performed in %d usec:\n", t2aue.etime (t1aue)); + printf("Info denoise auto performed in %d usec:\n", t2aue.etime(t1aue)); } //end evaluate noise } - baseImg = new Imagefloat (fw, fh); - imgsrc->getImage (currWB, tr, baseImg, pp, params.toneCurve, params.raw); + baseImg = new Imagefloat(fw, fh); + imgsrc->getImage(currWB, tr, baseImg, pp, params.toneCurve, params.raw); if (pl) { - pl->setProgress (0.50); + pl->setProgress(0.50); } // LUTf Noisecurve (65536,0); @@ -758,9 +764,10 @@ private: if (params.toneCurve.autoexp) { LUTu aehist; int aehistcompr; - imgsrc->getAutoExpHistogram (aehist, aehistcompr); - ipf.getAutoExp (aehist, aehistcompr, params.toneCurve.clip, expcomp, bright, contr, black, hlcompr, hlcomprthresh); + imgsrc->getAutoExpHistogram(aehist, aehistcompr); + ipf.getAutoExp(aehist, aehistcompr, params.toneCurve.clip, expcomp, bright, contr, black, hlcompr, hlcomprthresh); } + if (params.toneCurve.histmatching) { if (!params.toneCurve.fromHistMatching) { imgsrc->getAutoMatchedToneCurve(params.icm, params.toneCurve.curve); @@ -776,7 +783,7 @@ private: params.toneCurve.brightness = 0; params.toneCurve.contrast = 0; params.toneCurve.black = 0; - } + } // at this stage, we can flush the raw data to free up quite an important amount of memory // commented out because it makes the application crash when batch processing... @@ -815,22 +822,22 @@ private: noiseLCurve.Reset(); } - if (denoiseParams.enabled && (noiseLCurve || noiseCCurve )) { + if (denoiseParams.enabled && (noiseLCurve || noiseCCurve)) { // we only need image reduced to 1/4 here - calclum = new Imagefloat ((fw + 1) / 2, (fh + 1) / 2); //for luminance denoise curve + calclum = new Imagefloat((fw + 1) / 2, (fh + 1) / 2); //for luminance denoise curve #ifdef _OPENMP #pragma omp parallel for #endif for (int ii = 0; ii < fh; ii += 2) { for (int jj = 0; jj < fw; jj += 2) { - calclum->r (ii >> 1, jj >> 1) = baseImg->r (ii, jj); - calclum->g (ii >> 1, jj >> 1) = baseImg->g (ii, jj); - calclum->b (ii >> 1, jj >> 1) = baseImg->b (ii, jj); + calclum->r(ii >> 1, jj >> 1) = baseImg->r(ii, jj); + calclum->g(ii >> 1, jj >> 1) = baseImg->g(ii, jj); + calclum->b(ii >> 1, jj >> 1) = baseImg->b(ii, jj); } } - imgsrc->convertColorSpace (calclum, params.icm, currWB); + imgsrc->convertColorSpace(calclum, params.icm, currWB); } if (denoiseParams.enabled) { @@ -839,7 +846,7 @@ private: // ipf.RGB_denoise(baseImg, baseImg, calclum, imgsrc->isRAW(), denoiseParams, params.defringe, imgsrc->getDirPyrDenoiseExpComp(), noiseLCurve, lldenoiseutili); float nresi, highresi; int kall = 2; - ipf.RGB_denoise (kall, baseImg, baseImg, calclum, ch_M, max_r, max_b, imgsrc->isRAW(), denoiseParams, imgsrc->getDirPyrDenoiseExpComp(), noiseLCurve, noiseCCurve, nresi, highresi); + ipf.RGB_denoise(kall, baseImg, baseImg, calclum, ch_M, max_r, max_b, imgsrc->isRAW(), denoiseParams, imgsrc->getDirPyrDenoiseExpComp(), noiseLCurve, noiseCCurve, nresi, highresi); } @@ -862,12 +869,12 @@ private: //ImProcFunctions ipf (¶ms, true); ImProcFunctions &ipf = * (ipf_p.get()); - imgsrc->convertColorSpace (baseImg, params.icm, currWB); + imgsrc->convertColorSpace(baseImg, params.icm, currWB); // perform first analysis - hist16 (65536); + hist16(65536); - ipf.firstAnalysis (baseImg, params, hist16); + ipf.firstAnalysis(baseImg, params, hist16); ipf.dehaze(baseImg); ipf.ToneMapFattal02(baseImg); @@ -875,14 +882,17 @@ private: // perform transform (excepted resizing) if (ipf.needsTransform()) { Imagefloat* trImg = nullptr; + if (ipf.needsLuminanceOnly()) { trImg = baseImg; } else { - trImg = new Imagefloat (fw, fh); + trImg = new Imagefloat(fw, fh); } - ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, fw, fh, - imgsrc->getMetaData(), imgsrc->getRotateDegree(), true); - if(trImg != baseImg) { + + ipf.transform(baseImg, trImg, 0, 0, 0, 0, fw, fh, fw, fh, + imgsrc->getMetaData(), imgsrc->getRotateDegree(), true); + + if (trImg != baseImg) { delete baseImg; baseImg = trImg; } @@ -898,10 +908,10 @@ private: if (params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled) { const int W = baseImg->getWidth(); const int H = baseImg->getHeight(); - LabImage labcbdl (W, H); - ipf.rgb2lab (*baseImg, labcbdl, params.icm.workingProfile); - ipf.dirpyrequalizer (&labcbdl, 1); - ipf.lab2rgb (labcbdl, *baseImg, params.icm.workingProfile); + LabImage labcbdl(W, H); + ipf.rgb2lab(*baseImg, labcbdl, params.icm.workingProfile); + ipf.dirpyrequalizer(&labcbdl, 1); + ipf.lab2rgb(labcbdl, *baseImg, params.icm.workingProfile); } //gamma TRC working @@ -921,45 +931,45 @@ private: // RGB processing - curve1 (65536); - curve2 (65536); - curve (65536, 0); - satcurve (65536, 0); - lhskcurve (65536, 0); - lumacurve (32770, 0); // lumacurve[32768] and lumacurve[32769] will be set to 32768 and 32769 later to allow linear interpolation - clcurve (65536, 0); - wavclCurve (65536, 0); + curve1(65536); + curve2(65536); + curve(65536, 0); + satcurve(65536, 0); + lhskcurve(65536, 0); + lumacurve(32770, 0); // lumacurve[32768] and lumacurve[32769] will be set to 32768 and 32769 later to allow linear interpolation + clcurve(65536, 0); + wavclCurve(65536, 0); //if(params.blackwhite.enabled) params.toneCurve.hrenabled=false; - CurveFactory::complexCurve (expcomp, black / 65535.0, hlcompr, hlcomprthresh, params.toneCurve.shcompr, bright, contr, - params.toneCurve.curve, params.toneCurve.curve2, - hist16, curve1, curve2, curve, dummy, customToneCurve1, customToneCurve2 ); + CurveFactory::complexCurve(expcomp, black / 65535.0, hlcompr, hlcomprthresh, params.toneCurve.shcompr, bright, contr, + params.toneCurve.curve, params.toneCurve.curve2, + hist16, curve1, curve2, curve, dummy, customToneCurve1, customToneCurve2); - CurveFactory::RGBCurve (params.rgbCurves.rcurve, rCurve, 1); - CurveFactory::RGBCurve (params.rgbCurves.gcurve, gCurve, 1); - CurveFactory::RGBCurve (params.rgbCurves.bcurve, bCurve, 1); + CurveFactory::RGBCurve(params.rgbCurves.rcurve, rCurve, 1); + CurveFactory::RGBCurve(params.rgbCurves.gcurve, gCurve, 1); + CurveFactory::RGBCurve(params.rgbCurves.bcurve, bCurve, 1); bool opautili = false; if (params.colorToning.enabled) { - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix (params.icm.workingProfile); + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(params.icm.workingProfile); double wp[3][3] = { {wprof[0][0], wprof[0][1], wprof[0][2]}, {wprof[1][0], wprof[1][1], wprof[1][2]}, {wprof[2][0], wprof[2][1], wprof[2][2]} }; - params.colorToning.getCurves (ctColorCurve, ctOpacityCurve, wp, opautili); - clToningcurve (65536, 0); - CurveFactory::curveToning (params.colorToning.clcurve, clToningcurve, 1); - cl2Toningcurve (65536, 0); - CurveFactory::curveToning (params.colorToning.cl2curve, cl2Toningcurve, 1); + params.colorToning.getCurves(ctColorCurve, ctOpacityCurve, wp, opautili); + clToningcurve(65536, 0); + CurveFactory::curveToning(params.colorToning.clcurve, clToningcurve, 1); + cl2Toningcurve(65536, 0); + CurveFactory::curveToning(params.colorToning.cl2curve, cl2Toningcurve, 1); } - labView = new LabImage (fw, fh); + labView = new LabImage(fw, fh); if (params.blackwhite.enabled) { - CurveFactory::curveBW (params.blackwhite.beforeCurve, params.blackwhite.afterCurve, hist16, dummy, customToneCurvebw1, customToneCurvebw2, 1); + CurveFactory::curveBW(params.blackwhite.beforeCurve, params.blackwhite.afterCurve, hist16, dummy, customToneCurvebw1, customToneCurvebw2, 1); } double rrm, ggm, bbm; @@ -970,7 +980,7 @@ private: if (params.colorToning.enabled && params.colorToning.autosat && params.colorToning.method != "LabGrid") { //for colortoning evaluation of saturation settings float moyS = 0.f; float eqty = 0.f; - ipf.moyeqt (baseImg, moyS, eqty);//return image : mean saturation and standard dev of saturation + ipf.moyeqt(baseImg, moyS, eqty); //return image : mean saturation and standard dev of saturation float satp = ((moyS + 1.5f * eqty) - 0.3f) / 0.7f; //1.5 sigma ==> 93% pixels with high saturation -0.3 / 0.7 convert to Hombre scale if (satp >= 0.92f) { @@ -988,18 +998,18 @@ private: autor = -9000.f; // This will ask to compute the "auto" values for the B&W tool (have to be inferior to -5000) DCPProfile::ApplyState as; - DCPProfile *dcpProf = imgsrc->getDCP (params.icm, as); + DCPProfile *dcpProf = imgsrc->getDCP(params.icm, as); LUTu histToneCurve; - ipf.rgbProc (baseImg, labView, nullptr, curve1, curve2, curve, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit, satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve, options.chunkSizeRGB, options.measure); + ipf.rgbProc(baseImg, labView, nullptr, curve1, curve2, curve, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit, satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve, options.chunkSizeRGB, options.measure); if (settings->verbose) { - printf ("Output image / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", autor, autog, autob); + printf("Output image / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", autor, autog, autob); } // if clut was used and size of clut cache == 1 we free the memory used by the clutstore (default clut cache size = 1 for 32 bit OS) - if ( params.filmSimulation.enabled && !params.filmSimulation.clutFilename.empty() && options.clutCacheSize == 1) { + if (params.filmSimulation.enabled && !params.filmSimulation.clutFilename.empty() && options.clutCacheSize == 1) { CLUTStore::getInstance().clearCache(); } @@ -1018,7 +1028,7 @@ private: baseImg = nullptr; if (pl) { - pl->setProgress (0.55); + pl->setProgress(0.55); } //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1033,7 +1043,7 @@ private: #pragma omp parallel #endif { - LUTu hist16thr (hist16.getSize()); // one temporary lookup table per thread + LUTu hist16thr(hist16.getSize()); // one temporary lookup table per thread hist16thr.clear(); #ifdef _OPENMP #pragma omp for schedule(static) nowait @@ -1041,7 +1051,7 @@ private: for (int i = 0; i < fh; i++) for (int j = 0; j < fw; j++) { - hist16thr[ (int) ((labView->L[i][j]))]++; + hist16thr[(int)((labView->L[i][j]))]++; } #ifdef _OPENMP @@ -1054,77 +1064,174 @@ private: } bool utili; - CurveFactory::complexLCurve (params.labCurve.brightness, params.labCurve.contrast, params.labCurve.lcurve, hist16, lumacurve, dummy, 1, utili); + CurveFactory::complexLCurve(params.labCurve.brightness, params.labCurve.contrast, params.labCurve.lcurve, hist16, lumacurve, dummy, 1, utili); bool clcutili; - CurveFactory::curveCL (clcutili, params.labCurve.clcurve, clcurve, 1); + CurveFactory::curveCL(clcutili, params.labCurve.clcurve, clcurve, 1); bool ccutili, cclutili; - CurveFactory::complexsgnCurve (autili, butili, ccutili, cclutili, params.labCurve.acurve, params.labCurve.bcurve, params.labCurve.cccurve, - params.labCurve.lccurve, curve1, curve2, satcurve, lhskcurve, 1); + CurveFactory::complexsgnCurve(autili, butili, ccutili, cclutili, params.labCurve.acurve, params.labCurve.bcurve, params.labCurve.cccurve, + params.labCurve.lccurve, curve1, curve2, satcurve, lhskcurve, 1); - ipf.chromiLuminanceCurve (nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); + ipf.chromiLuminanceCurve(nullptr, 1, labView, labView, curve1, curve2, satcurve, lhskcurve, clcurve, lumacurve, utili, autili, butili, ccutili, cclutili, clcutili, dummy, dummy); if ((params.colorappearance.enabled && !params.colorappearance.tonecie) || (!params.colorappearance.enabled)) { - ipf.EPDToneMap (labView, 5, 1); + ipf.EPDToneMap(labView, 5, 1); } - ipf.vibrance (labView); + ipf.vibrance(labView); ipf.labColorCorrectionRegions(labView); if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { - ipf.impulsedenoise (labView); + ipf.impulsedenoise(labView); } // for all treatments Defringe, Sharpening, Contrast detail ,Microcontrast they are activated if "CIECAM" function are disabled if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { - ipf.defringe (labView); + ipf.defringe(labView); } if (params.sharpenEdge.enabled) { - ipf.MLsharpen (labView); + ipf.MLsharpen(labView); } if (params.sharpenMicro.enabled) { - if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { - ipf.MLmicrocontrast (labView); //!params.colorappearance.sharpcie + if ((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) { + ipf.MLmicrocontrast(labView); //!params.colorappearance.sharpcie } } if (((params.colorappearance.enabled && !settings->autocielab) || (!params.colorappearance.enabled)) && params.sharpening.enabled) { - ipf.sharpening (labView, params.sharpening); + ipf.sharpening(labView, params.sharpening); } - WaveletParams WaveParams = params.wavelet; - WavCurve wavCLVCurve; - WavOpacityCurveRG waOpacityCurveRG; - WavOpacityCurveBY waOpacityCurveBY; - WavOpacityCurveW waOpacityCurveW; - WavOpacityCurveWL waOpacityCurveWL; - - params.wavelet.getCurves (wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL ); // directional pyramid wavelet if (params.dirpyrequalizer.cbdlMethod == "aft") { if ((params.colorappearance.enabled && !settings->autocielab) || !params.colorappearance.enabled) { - ipf.dirpyrequalizer (labView, 1); //TODO: this is the luminance tonecurve, not the RGB one + ipf.dirpyrequalizer(labView, 1); //TODO: this is the luminance tonecurve, not the RGB one } } - bool wavcontlutili = false; + if ((params.wavelet.enabled)) { + LabImage *unshar = nullptr; + Glib::ustring provis; - CurveFactory::curveWavContL (wavcontlutili, params.wavelet.wavclCurve, wavclCurve,/* hist16C, dummy,*/ 1); + bool wavcontlutili = false; + WaveletParams WaveParams = params.wavelet; + WavCurve wavCLVCurve; + WavOpacityCurveRG waOpacityCurveRG; + WavOpacityCurveBY waOpacityCurveBY; + WavOpacityCurveW waOpacityCurveW; + WavOpacityCurveWL waOpacityCurveWL; + LabImage *provradius = nullptr; - if (params.wavelet.enabled) { - ipf.ip_wavelet (labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + if (WaveParams.softrad > 0.f) { + provradius = new LabImage(fw, fh); + provradius->CopyFrom(labView); + } + + params.wavelet.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + + CurveFactory::curveWavContL(wavcontlutili, params.wavelet.wavclCurve, wavclCurve,/* hist16C, dummy,*/ 1); + + if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + unshar = new LabImage(fw, fh); + provis = params.wavelet.CLmethod; + params.wavelet.CLmethod = "all"; + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + unshar->CopyFrom(labView); + params.wavelet.CLmethod = provis; + } + + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + + if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + float mL = (float)(WaveParams.mergeL / 100.f); + float mC = (float)(WaveParams.mergeC / 100.f); + float mL0; + float mC0; + + if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { + mL0 = mC0 = 0.f; + mL = -mL; + mC = -mC; + } else if (WaveParams.CLmethod == "sup" && WaveParams.Backmethod == "resid") { + mL0 = mL; + mC0 = mC; + } else { + mL0 = mL = mC0 = mC = 0.f; + } + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int x = 0; x < fh; x++) + for (int y = 0; y < fw; y++) { + labView->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * labView->L[x][y]; + labView->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * labView->a[x][y]; + labView->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * labView->b[x][y]; + } + + delete unshar; + unshar = NULL; + + if (WaveParams.softrad > 0.f) { + array2D ble(fw, fh); + array2D guid(fw, fh); + /* + #ifdef _OPENMP + const int numThreads = omp_get_max_threads(); + #endif + + bool multiTh = false; + + if (numThreads > 1) { + multiTh = true; + } + */ +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < fh; ir++) + for (int jr = 0; jr < fw; jr++) { + ble[ir][jr] = (labView->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + + float blur = 10.f / 1 * (0.1f + 0.8f * WaveParams.softrad); + // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + rtengine::guidedFilter(guid, ble, ble, blur, 0.001, false); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < fh; ir++) + for (int jr = 0; jr < fw; jr++) { + labView->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; + } + } + + if (WaveParams.softrad > 0.f) { + delete provradius; + provradius = NULL; + } + + } + + wavCLVCurve.Reset(); } - wavCLVCurve.Reset(); - ipf.softLight(labView); //Colorappearance and tone-mapping associated @@ -1136,9 +1243,9 @@ private: f_h = fh; } - CieImage *cieView = new CieImage (f_w, (f_h)); + CieImage *cieView = new CieImage(f_w, (f_h)); - CurveFactory::curveLightBrightColor ( + CurveFactory::curveLightBrightColor( params.colorappearance.curve, params.colorappearance.curve2, params.colorappearance.curve3, @@ -1152,24 +1259,26 @@ private: if (params.colorappearance.enabled) { double adap; int imgNum = 0; + if (imgsrc->getSensorType() == ST_BAYER) { imgNum = params.raw.bayersensor.imageNum; } else if (imgsrc->getSensorType() == ST_FUJI_XTRANS) { //imgNum = params.raw.xtranssensor.imageNum; } - float fnum = imgsrc->getMetaData()->getFNumber (imgNum); // F number - float fiso = imgsrc->getMetaData()->getISOSpeed (imgNum) ; // ISO - float fspeed = imgsrc->getMetaData()->getShutterSpeed (imgNum) ; //speed - float fcomp = imgsrc->getMetaData()->getExpComp (imgNum); //compensation + - + + float fnum = imgsrc->getMetaData()->getFNumber(imgNum); // F number + float fiso = imgsrc->getMetaData()->getISOSpeed(imgNum) ; // ISO + float fspeed = imgsrc->getMetaData()->getShutterSpeed(imgNum) ; //speed + float fcomp = imgsrc->getMetaData()->getExpComp(imgNum); //compensation + - if (fnum < 0.3f || fiso < 5.f || fspeed < 0.00001f) { adap = 2000.; }//if no exif data or wrong else { - float E_V = fcomp + log2 ((fnum * fnum) / fspeed / (fiso / 100.f)); + float E_V = fcomp + log2((fnum * fnum) / fspeed / (fiso / 100.f)); E_V += params.toneCurve.expcomp;// exposure compensation in tonecurve ==> direct EV - E_V += log2 (params.raw.expos); // exposure raw white point ; log2 ==> linear to EV - adap = powf (2.f, E_V - 3.f); //cd / m2 + E_V += log2(params.raw.expos); // exposure raw white point ; log2 ==> linear to EV + adap = powf(2.f, E_V - 3.f); //cd / m2 } LUTf CAMBrightCurveJ; @@ -1177,7 +1286,7 @@ private: float CAMMean = NAN; float d, dj, yb; - ipf.ciecam_02float (cieView, float (adap), 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); + ipf.ciecam_02float(cieView, float (adap), 1, 2, labView, ¶ms, customColCurve1, customColCurve2, customColCurve3, dummy, dummy, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 5, 1, true, d, dj, yb, 1); } delete cieView; @@ -1191,11 +1300,11 @@ private: //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% if (pl) { - pl->setProgress (0.60); + pl->setProgress(0.60); } int imw, imh; - double tmpScale = ipf.resizeScale (¶ms, fw, fh, imw, imh); + double tmpScale = ipf.resizeScale(¶ms, fw, fh, imw, imh); bool labResize = params.resize.enabled && params.resize.method != "Nearest" && (tmpScale != 1.0 || params.prsharpening.enabled); LabImage *tmplab; @@ -1209,7 +1318,7 @@ private: ch = params.crop.h; if (labResize) { // crop lab data - tmplab = new LabImage (cw, ch); + tmplab = new LabImage(cw, ch); for (int row = 0; row < ch; row++) { for (int col = 0; col < cw; col++) { @@ -1228,13 +1337,14 @@ private: if (labResize) { // resize lab data if ((labView->W != imw || labView->H != imh) && - (params.resize.allowUpscaling || (labView->W >= imw && labView->H >= imh))) { + (params.resize.allowUpscaling || (labView->W >= imw && labView->H >= imh))) { // resize image - tmplab = new LabImage (imw, imh); - ipf.Lanczos (labView, tmplab, tmpScale); + tmplab = new LabImage(imw, imh); + ipf.Lanczos(labView, tmplab, tmpScale); delete labView; labView = tmplab; } + cw = labView->W; ch = labView->H; @@ -1244,7 +1354,8 @@ private: labView->L[i][j] = labView->L[i][j] < 0.f ? 0.f : labView->L[i][j]; } } - ipf.sharpening (labView, params.prsharpening); + + ipf.sharpening(labView, params.prsharpening); } } @@ -1259,10 +1370,10 @@ private: // if Default gamma mode: we use the profile selected in the "Output profile" combobox; // gamma come from the selected profile, otherwise it comes from "Free gamma" tool - Imagefloat* readyImg = ipf.lab2rgbOut (labView, cx, cy, cw, ch, params.icm); + Imagefloat* readyImg = ipf.lab2rgbOut(labView, cx, cy, cw, ch, params.icm); if (settings->verbose) { - printf ("Output profile_: \"%s\"\n", params.icm.outputProfile.c_str()); + printf("Output profile_: \"%s\"\n", params.icm.outputProfile.c_str()); } delete labView; @@ -1272,42 +1383,44 @@ private: if (bwonly) { //force BW r=g=b if (settings->verbose) { - printf ("Force BW\n"); + printf("Force BW\n"); } for (int ccw = 0; ccw < cw; ccw++) { for (int cch = 0; cch < ch; cch++) { - readyImg->r (cch, ccw) = readyImg->g (cch, ccw); - readyImg->b (cch, ccw) = readyImg->g (cch, ccw); + readyImg->r(cch, ccw) = readyImg->g(cch, ccw); + readyImg->b(cch, ccw) = readyImg->g(cch, ccw); } } } if (pl) { - pl->setProgress (0.70); + pl->setProgress(0.70); } if (tmpScale != 1.0 && params.resize.method == "Nearest" && - (params.resize.allowUpscaling || (readyImg->getWidth() >= imw && readyImg->getHeight() >= imh))) { // resize rgb data (gamma applied) - Imagefloat* tempImage = new Imagefloat (imw, imh); - ipf.resize (readyImg, tempImage, tmpScale); + (params.resize.allowUpscaling || (readyImg->getWidth() >= imw && readyImg->getHeight() >= imh))) { // resize rgb data (gamma applied) + Imagefloat* tempImage = new Imagefloat(imw, imh); + ipf.resize(readyImg, tempImage, tmpScale); delete readyImg; readyImg = tempImage; } switch (params.metadata.mode) { - case MetaDataParams::TUNNEL: - // Sending back the whole first root, which won't necessarily be the selected frame number - // and may contain subframe depending on initial raw's hierarchy - readyImg->setMetadata (ii->getMetaData()->getRootExifData ()); - break; - case MetaDataParams::EDIT: - // ask for the correct frame number, but may contain subframe depending on initial raw's hierarchy - readyImg->setMetadata (ii->getMetaData()->getBestExifData(imgsrc, ¶ms.raw), params.exif, params.iptc); - break; - default: // case MetaDataParams::STRIP - // nothing to do - break; + case MetaDataParams::TUNNEL: + // Sending back the whole first root, which won't necessarily be the selected frame number + // and may contain subframe depending on initial raw's hierarchy + readyImg->setMetadata(ii->getMetaData()->getRootExifData()); + break; + + case MetaDataParams::EDIT: + // ask for the correct frame number, but may contain subframe depending on initial raw's hierarchy + readyImg->setMetadata(ii->getMetaData()->getBestExifData(imgsrc, ¶ms.raw), params.exif, params.iptc); + break; + + default: // case MetaDataParams::STRIP + // nothing to do + break; } @@ -1315,8 +1428,8 @@ private: if (customGamma) { if (!useLCMS) { // use corrected sRGB profile in order to apply a good TRC if present, otherwise use LCMS2 profile generated by lab2rgb16 w/ gamma - ProfileContent pc (jprof); - readyImg->setOutputProfile (pc.getData().c_str(), pc.getData().size()); + ProfileContent pc(jprof); + readyImg->setOutputProfile(pc.getData().c_str(), pc.getData().size()); } } else { // use the selected output profile if present, otherwise use LCMS2 profile generate by lab2rgb16 w/ gamma @@ -1324,23 +1437,23 @@ private: if (params.icm.outputProfile != "" && params.icm.outputProfile != ColorManagementParams::NoICMString) { // if ICCStore::getInstance()->getProfile send back an object, then ICCStore::getInstance()->getContent will do too - cmsHPROFILE jprof = ICCStore::getInstance()->getProfile (params.icm.outputProfile); //get outProfile + cmsHPROFILE jprof = ICCStore::getInstance()->getProfile(params.icm.outputProfile); //get outProfile if (jprof == nullptr) { if (settings->verbose) { - printf ("\"%s\" ICC output profile not found!\n - use LCMS2 substitution\n", params.icm.outputProfile.c_str()); + printf("\"%s\" ICC output profile not found!\n - use LCMS2 substitution\n", params.icm.outputProfile.c_str()); } } else { if (settings->verbose) { - printf ("Using \"%s\" output profile\n", params.icm.outputProfile.c_str()); + printf("Using \"%s\" output profile\n", params.icm.outputProfile.c_str()); } - ProfileContent pc = ICCStore::getInstance()->getContent (params.icm.outputProfile); - readyImg->setOutputProfile (pc.getData().c_str(), pc.getData().size()); + ProfileContent pc = ICCStore::getInstance()->getContent(params.icm.outputProfile); + readyImg->setOutputProfile(pc.getData().c_str(), pc.getData().size()); } } else { // No ICM - readyImg->setOutputProfile (nullptr, 0); + readyImg->setOutputProfile(nullptr, 0); } } @@ -1349,13 +1462,13 @@ private: // printf("Total:- %d usec\n", t2.etime(t1)); if (!job->initialImage) { - ii->decreaseRef (); + ii->decreaseRef(); } delete job; if (pl) { - pl->setProgress (0.75); + pl->setProgress(0.75); } /* curve1.reset();curve2.reset(); @@ -1379,10 +1492,10 @@ private: ImProcFunctions &ipf = * (ipf_p.get()); int imw, imh; - double scale_factor = ipf.resizeScale (¶ms, fw, fh, imw, imh); + double scale_factor = ipf.resizeScale(¶ms, fw, fh, imw, imh); - std::unique_ptr tmplab (new LabImage (fw, fh)); - ipf.rgb2lab (*baseImg, *tmplab, params.icm.workingProfile); + std::unique_ptr tmplab(new LabImage(fw, fh)); + ipf.rgb2lab(*baseImg, *tmplab, params.icm.workingProfile); if (params.crop.enabled) { int cx = params.crop.x; @@ -1390,7 +1503,7 @@ private: int cw = params.crop.w; int ch = params.crop.h; - std::unique_ptr cropped (new LabImage (cw, ch)); + std::unique_ptr cropped(new LabImage(cw, ch)); for (int row = 0; row < ch; row++) { for (int col = 0; col < cw; col++) { @@ -1400,29 +1513,29 @@ private: } } - tmplab = std::move (cropped); + tmplab = std::move(cropped); } - assert (params.resize.enabled); + assert(params.resize.enabled); // resize image if (params.resize.allowUpscaling || (imw <= fw && imh <= fh)) { - std::unique_ptr resized (new LabImage (imw, imh)); - ipf.Lanczos (tmplab.get(), resized.get(), scale_factor); - tmplab = std::move (resized); + std::unique_ptr resized(new LabImage(imw, imh)); + ipf.Lanczos(tmplab.get(), resized.get(), scale_factor); + tmplab = std::move(resized); } - adjust_procparams (scale_factor); + adjust_procparams(scale_factor); fw = imw; fh = imh; delete baseImg; - baseImg = new Imagefloat (fw, fh); - ipf.lab2rgb (*tmplab, *baseImg, params.icm.workingProfile); + baseImg = new Imagefloat(fw, fh); + ipf.lab2rgb(*tmplab, *baseImg, params.icm.workingProfile); } - void adjust_procparams (double scale_factor) + void adjust_procparams(double scale_factor) { procparams::ProcParams ¶ms = job->pparams; procparams::ProcParams defaultparams; @@ -1453,13 +1566,13 @@ private: lcurve[i] *= min(noise_factor /* * scale_factor*/, 1.0); } - noiseLCurve.Set (lcurve); + noiseLCurve.Set(lcurve); const char *medmethods[] = { "soft", "33", "55soft", "55", "77", "99" }; if (params.dirpyrDenoise.median) { auto &key = params.dirpyrDenoise.methodmed == "RGB" ? params.dirpyrDenoise.rgbmethod : params.dirpyrDenoise.medmethod; - for (int i = 1; i < int (sizeof (medmethods) / sizeof (const char *)); ++i) { + for (int i = 1; i < int (sizeof(medmethods) / sizeof(const char *)); ++i) { if (key == medmethods[i]) { int j = i - int (1.0 / scale_factor); @@ -1477,17 +1590,17 @@ private: params.epd.scale *= scale_factor; //params.epd.edgeStopping *= scale_factor; - const double dirpyreq_scale = min (scale_factor * 1.5, 1.0); + const double dirpyreq_scale = min(scale_factor * 1.5, 1.0); for (int i = 0; i < 6; ++i) { - adjust_radius (defaultparams.dirpyrequalizer.mult[i], dirpyreq_scale, - params.dirpyrequalizer.mult[i]); + adjust_radius(defaultparams.dirpyrequalizer.mult[i], dirpyreq_scale, + params.dirpyrequalizer.mult[i]); } params.dirpyrequalizer.threshold *= scale_factor; - adjust_radius (defaultparams.defringe.radius, scale_factor, - params.defringe.radius); + adjust_radius(defaultparams.defringe.radius, scale_factor, + params.defringe.radius); params.sh.radius *= scale_factor; params.localContrast.radius *= scale_factor; @@ -1582,40 +1695,40 @@ private: } // namespace -IImagefloat* processImage (ProcessingJob* pjob, int& errorCode, ProgressListener* pl, bool flush) +IImagefloat* processImage(ProcessingJob* pjob, int& errorCode, ProgressListener* pl, bool flush) { - ImageProcessor proc (pjob, errorCode, pl, flush); + ImageProcessor proc(pjob, errorCode, pl, flush); return proc(); } -void batchProcessingThread (ProcessingJob* job, BatchProcessingListener* bpl) +void batchProcessingThread(ProcessingJob* job, BatchProcessingListener* bpl) { ProcessingJob* currentJob = job; while (currentJob) { int errorCode; - IImagefloat* img = processImage (currentJob, errorCode, bpl, true); + IImagefloat* img = processImage(currentJob, errorCode, bpl, true); if (errorCode) { - bpl->error (M ("MAIN_MSG_CANNOTLOAD")); + bpl->error(M("MAIN_MSG_CANNOTLOAD")); currentJob = nullptr; } else { try { - currentJob = bpl->imageReady (img); + currentJob = bpl->imageReady(img); } catch (Glib::Exception& ex) { - bpl->error (ex.what()); + bpl->error(ex.what()); currentJob = nullptr; } } } } -void startBatchProcessing (ProcessingJob* job, BatchProcessingListener* bpl) +void startBatchProcessing(ProcessingJob* job, BatchProcessingListener* bpl) { if (bpl) { - Glib::Thread::create (sigc::bind (sigc::ptr_fun (batchProcessingThread), job, bpl), 0, true, true, Glib::THREAD_PRIORITY_LOW); + Glib::Thread::create(sigc::bind(sigc::ptr_fun(batchProcessingThread), job, bpl), 0, true, true, Glib::THREAD_PRIORITY_LOW); } } diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 2c29b4f5b..cec0a5c92 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -473,7 +473,12 @@ void ParamsEdited::set(bool v) wavelet.bluemed = v; wavelet.bluelow = v; wavelet.lipst = v; + wavelet.mergeL = v; + wavelet.mergeC = v; + wavelet.softrad = v; + wavelet.softradend = v; wavelet.Medgreinf = v; + wavelet.ushamethod = v; wavelet.avoid = v; wavelet.tmr = v; wavelet.Lmethod = v; @@ -538,6 +543,7 @@ void ParamsEdited::set(bool v) // wavelet.enaedge = v; // wavelet.enares = v; wavelet.expfinal = v; + wavelet.expclari = v; wavelet.expcontrast = v; wavelet.expchroma = v; wavelet.expedge = v; @@ -1040,7 +1046,12 @@ void ParamsEdited::initFrom(const std::vector& wavelet.greenlow = wavelet.greenlow && p.wavelet.greenlow == other.wavelet.greenlow; wavelet.bluelow = wavelet.bluelow && p.wavelet.bluelow == other.wavelet.bluelow; wavelet.lipst = wavelet.lipst && p.wavelet.lipst == other.wavelet.lipst; - wavelet.Medgreinf = wavelet.Medgreinf && p.wavelet.Medgreinf == other.wavelet.Medgreinf; + wavelet.bluehigh = wavelet.bluehigh && p.wavelet.bluehigh == other.wavelet.bluehigh; + wavelet.mergeL = wavelet.mergeL && p.wavelet.mergeL == other.wavelet.mergeL; + wavelet.mergeC = wavelet.mergeC && p.wavelet.mergeC == other.wavelet.mergeC; + wavelet.softrad = wavelet.softrad && p.wavelet.softrad == other.wavelet.softrad; + wavelet.softradend = wavelet.softradend && p.wavelet.softradend == other.wavelet.softradend; + wavelet.ushamethod = wavelet.ushamethod && p.wavelet.ushamethod == other.wavelet.ushamethod; wavelet.avoid = wavelet.avoid && p.wavelet.avoid == other.wavelet.avoid; wavelet.tmr = wavelet.tmr && p.wavelet.tmr == other.wavelet.tmr; wavelet.Lmethod = wavelet.Lmethod && p.wavelet.Lmethod == other.wavelet.Lmethod; @@ -1107,6 +1118,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.expfinal = wavelet.expfinal && p.wavelet.expfinal == other.wavelet.expfinal; wavelet.exptoning = wavelet.exptoning && p.wavelet.exptoning == other.wavelet.exptoning; wavelet.expnoise = wavelet.expnoise && p.wavelet.expnoise == other.wavelet.expnoise; + wavelet.expclari = wavelet.expclari && p.wavelet.expclari == other.wavelet.expclari; for (int i = 0; i < 9; i++) { wavelet.c[i] = wavelet.c[i] && p.wavelet.c[i] == other.wavelet.c[i]; @@ -2802,6 +2814,22 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.bluelow = mods.wavelet.bluelow; } + if (wavelet.mergeL) { + toEdit.wavelet.mergeL = mods.wavelet.mergeL; + } + + if (wavelet.mergeC) { + toEdit.wavelet.mergeC = mods.wavelet.mergeC; + } + + if (wavelet.softrad) { + toEdit.wavelet.softrad = mods.wavelet.softrad; + } + + if (wavelet.softradend) { + toEdit.wavelet.softradend = mods.wavelet.softradend; + } + if (wavelet.lipst) { toEdit.wavelet.lipst = mods.wavelet.lipst; } @@ -2810,6 +2838,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.Medgreinf = mods.wavelet.Medgreinf; } + if (wavelet.ushamethod) { + toEdit.wavelet.ushamethod = mods.wavelet.ushamethod; + } + if (wavelet.avoid) { toEdit.wavelet.avoid = mods.wavelet.avoid; } @@ -2979,6 +3011,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.expfinal = mods.wavelet.expfinal; } + if (wavelet.expclari) { + toEdit.wavelet.expclari = mods.wavelet.expclari; + } + if (wavelet.exptoning) { toEdit.wavelet.exptoning = mods.wavelet.exptoning; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 95701e01a..13d575d90 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -475,6 +475,7 @@ struct WaveletParamsEdited { bool cbenab; bool lipst; bool Medgreinf; + bool ushamethod; bool avoid; bool tmr; bool c[9]; @@ -541,6 +542,10 @@ struct WaveletParamsEdited { bool bluemed; bool greenhigh; bool bluehigh; + bool mergeL; + bool mergeC; + bool softrad; + bool softradend; bool expcontrast; bool expchroma; bool expedge; @@ -548,6 +553,7 @@ struct WaveletParamsEdited { bool expfinal; bool exptoning; bool expnoise; + bool expclari; }; struct DirPyrEqualizerParamsEdited { diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 60915fa02..6aa86abfa 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -22,6 +22,7 @@ #include "edit.h" #include "guiutils.h" #include "rtimage.h" +#include "eventmapper.h" using namespace rtengine; using namespace rtengine::procparams; @@ -30,27 +31,27 @@ extern Options options; namespace { - GradientMilestone makeHsvGm(double position, float h, float s, float v) - { - float r; - float g; - float b; - Color::hsv2rgb01(h, s, v, r, g, b); - return GradientMilestone(position, r, g, b); +GradientMilestone makeHsvGm(double position, float h, float s, float v) +{ + float r; + float g; + float b; + Color::hsv2rgb01(h, s, v, r, g, b); + return GradientMilestone(position, r, g, b); +} + +std::vector makeWholeHueRange() +{ + std::vector res; + res.reserve(7); + + for (int i = 0; i < 7; ++i) { + const float x = static_cast(i) / 6.0f; + res.push_back(makeHsvGm(x, x, 0.5f, 0.5f)); } - std::vector makeWholeHueRange() - { - std::vector res; - res.reserve(7); - - for (int i = 0; i < 7; ++i) { - const float x = static_cast(i) / 6.0f; - res.push_back(makeHsvGm(x, x, 0.5f, 0.5f)); - } - - return res; - } + return res; +} } @@ -87,10 +88,10 @@ Wavelet::Wavelet() : contrast(Gtk::manage(new Adjuster(M("TP_WAVELET_CONTRA"), -100, 100, 1, 0))), thr(Gtk::manage(new Adjuster(M("TP_WAVELET_THR"), 0, 100, 1, 35))), thrH(Gtk::manage(new Adjuster(M("TP_WAVELET_THRH"), 0, 100, 1, 65))), - skinprotect(Gtk::manage( new Adjuster(M("TP_WAVELET_SKIN"), -100, 100, 1, 0.) )), - edgrad(Gtk::manage( new Adjuster(M("TP_WAVELET_EDRAD"), 0, 100, 1, 15) )), - edgval(Gtk::manage( new Adjuster(M("TP_WAVELET_EDVAL"), 0, 100, 1, 0) )), - edgthresh(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGTHRESH"), -50, 100, 1, 10 ))), + skinprotect(Gtk::manage(new Adjuster(M("TP_WAVELET_SKIN"), -100, 100, 1, 0.))), + edgrad(Gtk::manage(new Adjuster(M("TP_WAVELET_EDRAD"), 0, 100, 1, 15))), + edgval(Gtk::manage(new Adjuster(M("TP_WAVELET_EDVAL"), 0, 100, 1, 0))), + edgthresh(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGTHRESH"), -50, 100, 1, 10))), strength(Gtk::manage(new Adjuster(M("TP_WAVELET_STRENGTH"), 0, 100, 1, 100))), balance(Gtk::manage(new Adjuster(M("TP_WAVELET_BALANCE"), -30, 100, 1, 0))), iter(Gtk::manage(new Adjuster(M("TP_WAVELET_ITER"), -3, 3, 1, 0))), @@ -112,6 +113,10 @@ Wavelet::Wavelet() : edgedetectthr2(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR2"), -10, 100, 1, 0))), edgesensi(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGESENSI"), 0, 100, 1, 60))), edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), + mergeL(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEL"), -50, 100, 1, 40))), + mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), + softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), + softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), @@ -126,12 +131,14 @@ Wavelet::Wavelet() : daubcoeffmethod(Gtk::manage(new MyComboBoxText())), Dirmethod(Gtk::manage(new MyComboBoxText())), Medgreinf(Gtk::manage(new MyComboBoxText())), + ushamethod(Gtk::manage(new MyComboBoxText())), chanMixerHLFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_HIGHLIGHT")))), chanMixerMidFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_MIDTONES")))), chanMixerShadowsFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_SHADOWS")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), + usharpLabel(Gtk::manage(new Gtk::Label(M("TP_WAVELET_USHARP") + ":"))), expchroma(Gtk::manage(new MyExpander(true, M("TP_WAVELET_LEVCH")))), expcontrast(Gtk::manage(new MyExpander(true, M("TP_WAVELET_LEVF")))), expedge(Gtk::manage(new MyExpander(true, M("TP_WAVELET_EDGE")))), @@ -141,80 +148,92 @@ Wavelet::Wavelet() : expresid(Gtk::manage(new MyExpander(true, M("TP_WAVELET_RESID")))), expsettings(Gtk::manage(new MyExpander(false, M("TP_WAVELET_SETTINGS")))), exptoning(Gtk::manage(new MyExpander(true, M("TP_WAVELET_TON")))), - neutrHBox(Gtk::manage(new Gtk::HBox())) + expclari(Gtk::manage(new MyExpander(true, M("TP_WAVELET_CLARI")))), + neutrHBox(Gtk::manage(new Gtk::HBox())), + usharpHBox(Gtk::manage(new Gtk::HBox())) { CurveListener::setMulti(true); + auto m = ProcEventMapper::getInstance(); + EvWavenaclari = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCLARI"); + EvWavushamet = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVUSHAMET"); + EvWavmergeL = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVMERGEL"); + EvWavmergeC = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVMERGEC"); + EvWavsoftrad = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRAD"); + EvWavsoftradend = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRADEND"); - expsettings->signal_button_release_event().connect_notify( sigc::bind( sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings) ); + expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); - expcontrast->signal_button_release_event().connect_notify( sigc::bind( sigc::mem_fun(this, &Wavelet::foldAllButMe), expcontrast) ); - enableContrastConn = expcontrast->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expcontrast) ); + expcontrast->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expcontrast)); + enableContrastConn = expcontrast->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expcontrast)); - expchroma->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expchroma) ); - enableChromaConn = expchroma->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expchroma) ); + expchroma->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expchroma)); + enableChromaConn = expchroma->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expchroma)); - exptoning->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), exptoning) ); - enableToningConn = exptoning->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), exptoning) ); + exptoning->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), exptoning)); + enableToningConn = exptoning->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), exptoning)); - expnoise->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expnoise) ); - enableNoiseConn = expnoise->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expnoise) ); + expnoise->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expnoise)); + enableNoiseConn = expnoise->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expnoise)); - expedge->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expedge) ); - enableEdgeConn = expedge->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expedge) ); + expedge->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expedge)); + enableEdgeConn = expedge->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expedge)); - expgamut->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expgamut) ); + expgamut->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expgamut)); - expresid->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expresid) ); - enableResidConn = expresid->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expresid) ); + expresid->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expresid)); + enableResidConn = expresid->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expresid)); - expfinal->signal_button_release_event().connect_notify( sigc::bind ( sigc::mem_fun(this, &Wavelet::foldAllButMe), expfinal) ); - enableFinalConn = expfinal->signal_enabled_toggled().connect ( sigc::bind( sigc::mem_fun(this, &Wavelet::enableToggled), expfinal) ); + expfinal->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expfinal)); + enableFinalConn = expfinal->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expfinal)); + + expclari->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expclari)); + enableclariConn = expclari->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expclari)); // Wavelet Settings - ToolParamBlock* const settingsBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const settingsBox = Gtk::manage(new ToolParamBlock()); - strength->setAdjusterListener (this); + strength->setAdjusterListener(this); - thres->set_tooltip_text (M("TP_WAVELET_LEVELS_TOOLTIP")); - thres->setAdjusterListener (this); + thres->set_tooltip_text(M("TP_WAVELET_LEVELS_TOOLTIP")); + thres->setAdjusterListener(this); - Tilesmethod->append (M("TP_WAVELET_TILESFULL")); - Tilesmethod->append (M("TP_WAVELET_TILESBIG")); - Tilesmethod->append (M("TP_WAVELET_TILESLIT")); - Tilesmethodconn = Tilesmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::TilesmethodChanged) ); - Tilesmethod->set_tooltip_text (M("TP_WAVELET_TILES_TOOLTIP")); + Tilesmethod->append(M("TP_WAVELET_TILESFULL")); + Tilesmethod->append(M("TP_WAVELET_TILESBIG")); + Tilesmethod->append(M("TP_WAVELET_TILESLIT")); + Tilesmethodconn = Tilesmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::TilesmethodChanged)); + Tilesmethod->set_tooltip_text(M("TP_WAVELET_TILES_TOOLTIP")); Gtk::HBox* const tilesizeHBox = Gtk::manage(new Gtk::HBox()); Gtk::Label* const tilesizeLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_TILESIZE") + ":")); tilesizeHBox->pack_start(*tilesizeLabel, Gtk::PACK_SHRINK, 4); tilesizeHBox->pack_start(*Tilesmethod); daubcoeffmethod->set_sensitive(true); - daubcoeffmethod->append (M("TP_WAVELET_DAUB2")); - daubcoeffmethod->append (M("TP_WAVELET_DAUB4")); - daubcoeffmethod->append (M("TP_WAVELET_DAUB6")); - daubcoeffmethod->append (M("TP_WAVELET_DAUB10")); - daubcoeffmethod->append (M("TP_WAVELET_DAUB14")); - daubcoeffmethodconn = daubcoeffmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::daubcoeffmethodChanged) ); - daubcoeffmethod->set_tooltip_text (M("TP_WAVELET_DAUB_TOOLTIP")); + daubcoeffmethod->append(M("TP_WAVELET_DAUB2")); + daubcoeffmethod->append(M("TP_WAVELET_DAUB4")); + daubcoeffmethod->append(M("TP_WAVELET_DAUB6")); + daubcoeffmethod->append(M("TP_WAVELET_DAUB10")); + daubcoeffmethod->append(M("TP_WAVELET_DAUB14")); + daubcoeffmethodconn = daubcoeffmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::daubcoeffmethodChanged)); + daubcoeffmethod->set_tooltip_text(M("TP_WAVELET_DAUB_TOOLTIP")); Gtk::Label* const daubcoeffLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_DAUB") + ":")); Gtk::HBox* const daubcoeffHBox = Gtk::manage(new Gtk::HBox()); daubcoeffHBox->pack_start(*daubcoeffLabel, Gtk::PACK_SHRINK, 4); daubcoeffHBox->pack_start(*daubcoeffmethod); - Backmethod->append (M("TP_WAVELET_B0")); - Backmethod->append (M("TP_WAVELET_B1")); - Backmethod->append (M("TP_WAVELET_B2")); - Backmethodconn = Backmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::BackmethodChanged) ); + Backmethod->append(M("TP_WAVELET_B0")); + Backmethod->append(M("TP_WAVELET_B1")); + Backmethod->append(M("TP_WAVELET_B2")); + Backmethodconn = Backmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::BackmethodChanged)); Gtk::HBox* const backgroundHBox = Gtk::manage(new Gtk::HBox()); Gtk::Label* const backgroundLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_BACKGROUND") + ":")); backgroundHBox->pack_start(*backgroundLabel, Gtk::PACK_SHRINK, 4); backgroundHBox->pack_start(*Backmethod); - CLmethod->append (M("TP_WAVELET_LEVDIR_ONE")); - CLmethod->append (M("TP_WAVELET_LEVDIR_INF")); - CLmethod->append (M("TP_WAVELET_LEVDIR_SUP")); - CLmethod->append (M("TP_WAVELET_LEVDIR_ALL")); - CLmethodconn = CLmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CLmethodChanged) ); + CLmethod->append(M("TP_WAVELET_LEVDIR_ONE")); + CLmethod->append(M("TP_WAVELET_LEVDIR_INF")); + CLmethod->append(M("TP_WAVELET_LEVDIR_SUP")); + CLmethod->append(M("TP_WAVELET_LEVDIR_ALL")); + CLmethodconn = CLmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::CLmethodChanged)); Gtk::HBox* const levdirMainHBox = Gtk::manage(new Gtk::HBox()); Gtk::Label* const levdirMainLabel = Gtk::manage(new Gtk::Label(M("TP_WAVELET_PROC") + ":")); levdirMainHBox->pack_start(*levdirMainLabel, Gtk::PACK_SHRINK, 4); @@ -222,25 +241,25 @@ Wavelet::Wavelet() : Lmethod->set_sensitive(false); Lmethod->set_sensitive(false); - Lmethod->append (M("TP_WAVELET_1")); - Lmethod->append (M("TP_WAVELET_2")); - Lmethod->append (M("TP_WAVELET_3")); - Lmethod->append (M("TP_WAVELET_4")); - Lmethod->append (M("TP_WAVELET_5")); - Lmethod->append (M("TP_WAVELET_6")); - Lmethod->append (M("TP_WAVELET_7")); - Lmethod->append (M("TP_WAVELET_8")); - Lmethod->append (M("TP_WAVELET_9")); - Lmethod->append (M("TP_WAVELET_SUPE")); - Lmethod->append (M("TP_WAVELET_RESID")); + Lmethod->append(M("TP_WAVELET_1")); + Lmethod->append(M("TP_WAVELET_2")); + Lmethod->append(M("TP_WAVELET_3")); + Lmethod->append(M("TP_WAVELET_4")); + Lmethod->append(M("TP_WAVELET_5")); + Lmethod->append(M("TP_WAVELET_6")); + Lmethod->append(M("TP_WAVELET_7")); + Lmethod->append(M("TP_WAVELET_8")); + Lmethod->append(M("TP_WAVELET_9")); + Lmethod->append(M("TP_WAVELET_SUPE")); + Lmethod->append(M("TP_WAVELET_RESID")); Lmethod->set_active(0); Dirmethod->set_sensitive(false); - Dirmethod->append (M("TP_WAVELET_DONE")); - Dirmethod->append (M("TP_WAVELET_DTWO")); - Dirmethod->append (M("TP_WAVELET_DTHR")); - Dirmethod->append (M("TP_WAVELET_DALL")); - Lmethodconn = Lmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::LmethodChanged) ); - Dirmethodconn = Dirmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::DirmethodChanged) ); + Dirmethod->append(M("TP_WAVELET_DONE")); + Dirmethod->append(M("TP_WAVELET_DTWO")); + Dirmethod->append(M("TP_WAVELET_DTHR")); + Dirmethod->append(M("TP_WAVELET_DALL")); + Lmethodconn = Lmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::LmethodChanged)); + Dirmethodconn = Dirmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::DirmethodChanged)); Gtk::HBox* const levdirSubHBox = Gtk::manage(new Gtk::HBox()); levdirSubHBox->pack_start(*Lmethod); levdirSubHBox->pack_start(*Dirmethod, Gtk::PACK_EXPAND_WIDGET, 2); // same, but 2 not 4? @@ -254,74 +273,74 @@ Wavelet::Wavelet() : settingsBox->pack_start(*levdirSubHBox); // Contrast - ToolParamBlock* const levBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const levBox = Gtk::manage(new ToolParamBlock()); - Gtk::HBox* const buttonBox = Gtk::manage (new Gtk::HBox(true, 10)); + Gtk::HBox* const buttonBox = Gtk::manage(new Gtk::HBox(true, 10)); levBox->pack_start(*buttonBox, Gtk::PACK_SHRINK, 2); - Gtk::Button* const contrastMinusButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_CONTRAST_MINUS"))); + Gtk::Button* const contrastMinusButton = Gtk::manage(new Gtk::Button(M("TP_WAVELET_CONTRAST_MINUS"))); buttonBox->pack_start(*contrastMinusButton); - contrastMinusPressedConn = contrastMinusButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::contrastMinusPressed)); + contrastMinusPressedConn = contrastMinusButton->signal_pressed().connect(sigc::mem_fun(*this, &Wavelet::contrastMinusPressed)); - Gtk::Button* const neutralButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_NEUTRAL"))); + Gtk::Button* const neutralButton = Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL"))); buttonBox->pack_start(*neutralButton); - neutralPressedConn = neutralButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::neutralPressed)); + neutralPressedConn = neutralButton->signal_pressed().connect(sigc::mem_fun(*this, &Wavelet::neutralPressed)); - Gtk::Button* const contrastPlusButton = Gtk::manage (new Gtk::Button(M("TP_WAVELET_CONTRAST_PLUS"))); + Gtk::Button* const contrastPlusButton = Gtk::manage(new Gtk::Button(M("TP_WAVELET_CONTRAST_PLUS"))); buttonBox->pack_start(*contrastPlusButton); - contrastPlusPressedConn = contrastPlusButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::contrastPlusPressed)); + contrastPlusPressedConn = contrastPlusButton->signal_pressed().connect(sigc::mem_fun(*this, &Wavelet::contrastPlusPressed)); buttonBox->show_all_children(); - for(int i = 0; i < 9; i++) { + for (int i = 0; i < 9; i++) { Glib::ustring ss; - switch( i ) { - case 0: - ss = Glib::ustring::compose( "%1 (%2)", (i + 1), M("TP_WAVELET_FINEST")); - break; + switch (i) { + case 0: + ss = Glib::ustring::compose("%1 (%2)", (i + 1), M("TP_WAVELET_FINEST")); + break; - case 8: - ss = Glib::ustring::compose( "%1 (%2)", (i + 1), M("TP_WAVELET_LARGEST")); - break; + case 8: + ss = Glib::ustring::compose("%1 (%2)", (i + 1), M("TP_WAVELET_LARGEST")); + break; - default: - ss = Glib::ustring::compose( "%1", (i + 1)); + default: + ss = Glib::ustring::compose("%1", (i + 1)); } - correction[i] = Gtk::manage ( new Adjuster (ss, -100, 350, 1, 0) ); + correction[i] = Gtk::manage(new Adjuster(ss, -100, 350, 1, 0)); correction[i]->setAdjusterListener(this); levBox->pack_start(*correction[i]); } levBox->pack_start(*sup); - sup->setAdjusterListener (this); + sup->setAdjusterListener(this); wavLabels->show(); - levBox->pack_start (*wavLabels); + levBox->pack_start(*wavLabels); Gtk::VBox* const contrastSHVBox = Gtk::manage(new Gtk::VBox); contrastSHVBox->set_spacing(2); - HSmethod->append (M("TP_WAVELET_HS1")); - HSmethod->append (M("TP_WAVELET_HS2")); - HSmethodconn = HSmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::HSmethodChanged) ); + HSmethod->append(M("TP_WAVELET_HS1")); + HSmethod->append(M("TP_WAVELET_HS2")); + HSmethodconn = HSmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::HSmethodChanged)); const std::vector milestones2 = { GradientMilestone(0.0, 0.0, 0.0, 0.0), GradientMilestone(1.0, 1.0, 1.0, 1.0) }; - hllev->setAdjusterListener (this); + hllev->setAdjusterListener(this); hllev->setBgGradient(milestones2); - threshold->setAdjusterListener (this); - threshold->set_tooltip_text (M("TP_WAVELET_THRESHOLD_TOOLTIP")); + threshold->setAdjusterListener(this); + threshold->set_tooltip_text(M("TP_WAVELET_THRESHOLD_TOOLTIP")); - bllev->setAdjusterListener (this); + bllev->setAdjusterListener(this); bllev->setBgGradient(milestones2); - threshold2->setAdjusterListener (this); - threshold2->set_tooltip_text (M("TP_WAVELET_THRESHOLD2_TOOLTIP")); + threshold2->setAdjusterListener(this); + threshold2->set_tooltip_text(M("TP_WAVELET_THRESHOLD2_TOOLTIP")); contrastSHVBox->pack_start(*HSmethod); contrastSHVBox->pack_start(*hllev); @@ -333,79 +352,79 @@ Wavelet::Wavelet() : levBox->pack_start(*contrastSHFrame); // Chromaticity - ToolParamBlock* const chBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const chBox = Gtk::manage(new ToolParamBlock()); Gtk::Label* const labmch = Gtk::manage(new Gtk::Label(M("TP_WAVELET_CHTYPE") + ":")); Gtk::HBox* const ctboxch = Gtk::manage(new Gtk::HBox()); - ctboxch->pack_start (*labmch, Gtk::PACK_SHRINK, 1); + ctboxch->pack_start(*labmch, Gtk::PACK_SHRINK, 1); - CHmethod->append (M("TP_WAVELET_CH1")); - CHmethod->append (M("TP_WAVELET_CH2")); - CHmethod->append (M("TP_WAVELET_CH3")); - CHmethodconn = CHmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CHmethodChanged) ); + CHmethod->append(M("TP_WAVELET_CH1")); + CHmethod->append(M("TP_WAVELET_CH2")); + CHmethod->append(M("TP_WAVELET_CH3")); + CHmethodconn = CHmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::CHmethodChanged)); ctboxch->pack_start(*CHmethod); chBox->pack_start(*ctboxch); Gtk::HBox* const ctboxCH = Gtk::manage(new Gtk::HBox()); - ctboxCH->pack_start (*labmC, Gtk::PACK_SHRINK, 1); + ctboxCH->pack_start(*labmC, Gtk::PACK_SHRINK, 1); - CHSLmethod->append (M("TP_WAVELET_CHSL")); - CHSLmethod->append (M("TP_WAVELET_CHCU")); - CHSLmethodconn = CHSLmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::CHSLmethodChanged) ); + CHSLmethod->append(M("TP_WAVELET_CHSL")); + CHSLmethod->append(M("TP_WAVELET_CHCU")); + CHSLmethodconn = CHSLmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::CHSLmethodChanged)); ctboxCH->pack_start(*CHSLmethod); - Gtk::HSeparator* const separatorChromaMethod = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatorChromaMethod = Gtk::manage(new Gtk::HSeparator()); chBox->pack_start(*separatorChromaMethod, Gtk::PACK_SHRINK, 2); - chroma->set_tooltip_text (M("TP_WAVELET_CHRO_TOOLTIP")); + chroma->set_tooltip_text(M("TP_WAVELET_CHRO_TOOLTIP")); chBox->pack_start(*chroma); - chroma->setAdjusterListener (this); + chroma->setAdjusterListener(this); - satlev->setAdjusterListener (this); + satlev->setAdjusterListener(this); satlev->setBgGradient(milestones2); - pastlev->setAdjusterListener (this); + pastlev->setAdjusterListener(this); pastlev->setBgGradient(milestones2); chBox->pack_start(*pastlev); chBox->pack_start(*satlev); - chro->set_tooltip_text (M("TP_WAVELET_CHR_TOOLTIP")); + chro->set_tooltip_text(M("TP_WAVELET_CHR_TOOLTIP")); chBox->pack_start(*chro); - chro->setAdjusterListener (this); + chro->setAdjusterListener(this); - Gtk::HBox* const buttonchBox = Gtk::manage (new Gtk::HBox(true, 10)); - neutralchPressedConn = neutralchButton->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::neutralchPressed)); + Gtk::HBox* const buttonchBox = Gtk::manage(new Gtk::HBox(true, 10)); + neutralchPressedConn = neutralchButton->signal_pressed().connect(sigc::mem_fun(*this, &Wavelet::neutralchPressed)); chBox->pack_start(*separatorNeutral, Gtk::PACK_SHRINK, 2); buttonchBox->pack_start(*neutralchButton); buttonchBox->show_all_children(); chBox->pack_start(*buttonchBox, Gtk::PACK_SHRINK, 2); - for(int i = 0; i < 9; i++) { + for (int i = 0; i < 9; i++) { Glib::ustring ss; - switch( i ) { - case 0: - ss = Glib::ustring::compose( "%1 (%2)", (i + 1), M("TP_WAVELET_FINEST")); - break; + switch (i) { + case 0: + ss = Glib::ustring::compose("%1 (%2)", (i + 1), M("TP_WAVELET_FINEST")); + break; - case 8: - ss = Glib::ustring::compose( "%1 (%2)", (i + 1), M("TP_WAVELET_LARGEST")); - break; + case 8: + ss = Glib::ustring::compose("%1 (%2)", (i + 1), M("TP_WAVELET_LARGEST")); + break; - default: - ss = Glib::ustring::compose( "%1", (i + 1)); + default: + ss = Glib::ustring::compose("%1", (i + 1)); } - correctionch[i] = Gtk::manage ( new Adjuster (ss, -100, 100, 1, 0) ); + correctionch[i] = Gtk::manage(new Adjuster(ss, -100, 100, 1, 0)); correctionch[i]->setAdjusterListener(this); chBox->pack_start(*correctionch[i]); } // Toning - ToolParamBlock* const tonBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const tonBox = Gtk::manage(new ToolParamBlock()); - opaCurveEditorG->setCurveListener (this); + opaCurveEditorG->setCurveListener(this); const WaveletParams default_params; @@ -416,9 +435,9 @@ Wavelet::Wavelet() : opaCurveEditorG->curveListComplete(); opaCurveEditorG->show(); - tonBox->pack_start( *opaCurveEditorG, Gtk::PACK_SHRINK, 2); + tonBox->pack_start(*opaCurveEditorG, Gtk::PACK_SHRINK, 2); - opacityCurveEditorG->setCurveListener (this); + opacityCurveEditorG->setCurveListener(this); opacityShapeBY = static_cast(opacityCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false)); opacityShapeBY->setIdentityValue(0.); @@ -427,77 +446,96 @@ Wavelet::Wavelet() : opacityCurveEditorG->curveListComplete(); opacityCurveEditorG->show(); - tonBox->pack_start( *opacityCurveEditorG, Gtk::PACK_SHRINK, 2); + tonBox->pack_start(*opacityCurveEditorG, Gtk::PACK_SHRINK, 2); // Denoise and Refine - ToolParamBlock* const noiseBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const noiseBox = Gtk::manage(new ToolParamBlock()); - linkedg->set_active (true); - linkedgConn = linkedg->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::linkedgToggled) ); + linkedg->set_active(true); + linkedgConn = linkedg->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::linkedgToggled)); noiseBox->pack_start(*linkedg); - level0noise->setAdjusterListener (this); + level0noise->setAdjusterListener(this); level0noise->setUpdatePolicy(RTUP_DYNAMIC); - level1noise->setAdjusterListener (this); + level1noise->setAdjusterListener(this); level1noise->setUpdatePolicy(RTUP_DYNAMIC); - level2noise->setAdjusterListener (this); + level2noise->setAdjusterListener(this); level2noise->setUpdatePolicy(RTUP_DYNAMIC); - level3noise->setAdjusterListener (this); + level3noise->setAdjusterListener(this); level3noise->setUpdatePolicy(RTUP_DYNAMIC); - noiseBox->pack_start( *level0noise, Gtk::PACK_SHRINK, 0); - noiseBox->pack_start( *level1noise, Gtk::PACK_SHRINK, 0); - noiseBox->pack_start( *level2noise, Gtk::PACK_SHRINK, 0); - noiseBox->pack_start( *level3noise, Gtk::PACK_SHRINK, 0); + noiseBox->pack_start(*level0noise, Gtk::PACK_SHRINK, 0); + noiseBox->pack_start(*level1noise, Gtk::PACK_SHRINK, 0); + noiseBox->pack_start(*level2noise, Gtk::PACK_SHRINK, 0); + noiseBox->pack_start(*level3noise, Gtk::PACK_SHRINK, 0); + +//Clarity + mergeL->setAdjusterListener(this); + mergeC->setAdjusterListener(this); + softrad->setAdjusterListener(this); + + ToolParamBlock* const clariBox = Gtk::manage(new ToolParamBlock()); + ushamethod->append(M("TP_WAVELET_USH")); + ushamethod->append(M("TP_WAVELET_SHA")); + ushamethod->append(M("TP_WAVELET_CLA")); + ushamethodconn = ushamethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::ushamethodChanged)); + ushamethod->set_tooltip_text(M("TP_WAVELET_USH_TOOLTIP")); + usharpHBox->pack_start(*usharpLabel, Gtk::PACK_SHRINK, 0); + usharpHBox->pack_start(*ushamethod); + + clariBox->pack_start(*usharpHBox); + clariBox->pack_start(*mergeL); + clariBox->pack_start(*mergeC); + clariBox->pack_start(*softrad); // Edge Sharpness - ToolParamBlock* const edgBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const edgBox = Gtk::manage(new ToolParamBlock()); edgval->setAdjusterListener(this); edgBox->pack_start(*edgval); edgrad->setAdjusterListener(this); edgBox->pack_start(*edgrad); - edgrad->set_tooltip_markup (M("TP_WAVELET_EDRAD_TOOLTIP")); + edgrad->set_tooltip_markup(M("TP_WAVELET_EDRAD_TOOLTIP")); - edgthresh->setAdjusterListener (this); - edgthresh->set_tooltip_markup (M("TP_WAVELET_EDGTHRESH_TOOLTIP")); - edgBox->pack_start (*edgthresh); + edgthresh->setAdjusterListener(this); + edgthresh->set_tooltip_markup(M("TP_WAVELET_EDGTHRESH_TOOLTIP")); + edgBox->pack_start(*edgthresh); Gtk::Label* const labmedgr = Gtk::manage(new Gtk::Label(M("TP_WAVELET_MEDGREINF") + ":")); Gtk::HBox* const edbox = Gtk::manage(new Gtk::HBox()); - edbox->pack_start (*labmedgr, Gtk::PACK_SHRINK, 1); + edbox->pack_start(*labmedgr, Gtk::PACK_SHRINK, 1); - Medgreinf->append (M("TP_WAVELET_RE1")); - Medgreinf->append (M("TP_WAVELET_RE2")); - Medgreinf->append (M("TP_WAVELET_RE3")); - MedgreinfConn = Medgreinf->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::MedgreinfChanged) ); - Medgreinf->set_tooltip_markup (M("TP_WAVELET_EDGREINF_TOOLTIP")); + Medgreinf->append(M("TP_WAVELET_RE1")); + Medgreinf->append(M("TP_WAVELET_RE2")); + Medgreinf->append(M("TP_WAVELET_RE3")); + MedgreinfConn = Medgreinf->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::MedgreinfChanged)); + Medgreinf->set_tooltip_markup(M("TP_WAVELET_EDGREINF_TOOLTIP")); edbox->pack_start(*Medgreinf); edgBox->pack_start(*edbox); - Gtk::HSeparator* const separatorlc = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatorlc = Gtk::manage(new Gtk::HSeparator()); edgBox->pack_start(*separatorlc, Gtk::PACK_SHRINK, 2); Gtk::Label* const labmED = Gtk::manage(new Gtk::Label(M("TP_WAVELET_EDTYPE") + ":")); Gtk::HBox* const ctboxED = Gtk::manage(new Gtk::HBox()); - ctboxED->pack_start (*labmED, Gtk::PACK_SHRINK, 1); + ctboxED->pack_start(*labmED, Gtk::PACK_SHRINK, 1); - EDmethod->append (M("TP_WAVELET_EDSL")); - EDmethod->append (M("TP_WAVELET_EDCU")); - EDmethodconn = EDmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::EDmethodChanged) ); + EDmethod->append(M("TP_WAVELET_EDSL")); + EDmethod->append(M("TP_WAVELET_EDCU")); + EDmethodconn = EDmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::EDmethodChanged)); ctboxED->pack_start(*EDmethod); - edgBox->pack_start (*ctboxED); + edgBox->pack_start(*ctboxED); - edgcont->setAdjusterListener (this); + edgcont->setAdjusterListener(this); edgcont->setBgGradient(milestones2); - edgcont->set_tooltip_markup (M("TP_WAVELET_EDGCONT_TOOLTIP")); + edgcont->set_tooltip_markup(M("TP_WAVELET_EDGCONT_TOOLTIP")); // <-- Edge Sharpness Local Contrast curve - CCWcurveEditorG->setCurveListener (this); + CCWcurveEditorG->setCurveListener(this); ccshape = static_cast(CCWcurveEditorG->addCurve(CT_Flat, "", nullptr, false, false)); @@ -509,56 +547,56 @@ Wavelet::Wavelet() : CCWcurveEditorG->show(); // --> - edgBox->pack_start (*edgcont); + edgBox->pack_start(*edgcont); edgBox->pack_start(*CCWcurveEditorG, Gtk::PACK_SHRINK, 4); - medianlev->set_active (true); - medianlevConn = medianlev->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::medianlevToggled) ); - medianlev->set_tooltip_text (M("TP_WAVELET_MEDILEV_TOOLTIP")); + medianlev->set_active(true); + medianlevConn = medianlev->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::medianlevToggled)); + medianlev->set_tooltip_text(M("TP_WAVELET_MEDILEV_TOOLTIP")); - Gtk::HSeparator* const separatored1 = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatored1 = Gtk::manage(new Gtk::HSeparator()); edgBox->pack_start(*separatored1, Gtk::PACK_SHRINK, 2); Gtk::HBox* const eddebox = Gtk::manage(new Gtk::HBox()); - edgBox->pack_start (*eddebox); + edgBox->pack_start(*eddebox); edgBox->pack_start(*medianlev); - edgedetect->setAdjusterListener (this); - edgedetect->set_tooltip_text (M("TP_WAVELET_EDGEDETECT_TOOLTIP")); + edgedetect->setAdjusterListener(this); + edgedetect->set_tooltip_text(M("TP_WAVELET_EDGEDETECT_TOOLTIP")); edgBox->pack_start(*edgedetect); - edgedetectthr->setAdjusterListener (this); - edgedetectthr->set_tooltip_text (M("TP_WAVELET_EDGEDETECTTHR_TOOLTIP")); + edgedetectthr->setAdjusterListener(this); + edgedetectthr->set_tooltip_text(M("TP_WAVELET_EDGEDETECTTHR_TOOLTIP")); edgBox->pack_start(*edgedetectthr); - edgedetectthr2->setAdjusterListener (this); + edgedetectthr2->setAdjusterListener(this); edgBox->pack_start(*edgedetectthr2); edgBox->pack_start(*separatoredge, Gtk::PACK_SHRINK, 2); - lipst->set_active (true); - lipstConn = lipst->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::lipstToggled) ); + lipst->set_active(true); + lipstConn = lipst->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::lipstToggled)); // lipst->set_tooltip_text (M("TP_WAVELET_LIPST_TOOLTIP")); edgBox->pack_start(*lipst); - edgesensi->setAdjusterListener (this); + edgesensi->setAdjusterListener(this); edgBox->pack_start(*edgesensi); - edgeampli->setAdjusterListener (this); + edgeampli->setAdjusterListener(this); edgBox->pack_start(*edgeampli); - Gtk::VBox* const ctboxES = Gtk::manage (new Gtk::VBox()); + Gtk::VBox* const ctboxES = Gtk::manage(new Gtk::VBox()); ctboxES->set_spacing(2); Gtk::HBox* const ctboxNP = Gtk::manage(new Gtk::HBox()); - ctboxNP->pack_start (*labmNP, Gtk::PACK_SHRINK, 1); + ctboxNP->pack_start(*labmNP, Gtk::PACK_SHRINK, 1); - NPmethod->append (M("TP_WAVELET_NPNONE")); - NPmethod->append (M("TP_WAVELET_NPLOW")); - NPmethod->append (M("TP_WAVELET_NPHIGH")); - NPmethodconn = NPmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::NPmethodChanged) ); - NPmethod->set_tooltip_text (M("TP_WAVELET_NPTYPE_TOOLTIP")); + NPmethod->append(M("TP_WAVELET_NPNONE")); + NPmethod->append(M("TP_WAVELET_NPLOW")); + NPmethod->append(M("TP_WAVELET_NPHIGH")); + NPmethodconn = NPmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::NPmethodChanged)); + NPmethod->set_tooltip_text(M("TP_WAVELET_NPTYPE_TOOLTIP")); ctboxNP->pack_start(*NPmethod); ctboxES->pack_start(*ctboxNP); @@ -566,13 +604,13 @@ Wavelet::Wavelet() : edgBox->pack_start(*ctboxES); // Gamut - ToolParamBlock* const conBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const conBox = Gtk::manage(new ToolParamBlock()); - median->set_active (true); - medianConn = median->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::medianToggled) ); + median->set_active(true); + medianConn = median->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::medianToggled)); conBox->pack_start(*median); - hueskin->set_tooltip_markup (M("TP_WAVELET_HUESKIN_TOOLTIP")); + hueskin->set_tooltip_markup(M("TP_WAVELET_HUESKIN_TOOLTIP")); //from -PI to +PI (radians) convert to hsv and draw bottombar const std::vector milestones = { @@ -595,13 +633,13 @@ Wavelet::Wavelet() : hueskin->setBgGradient(milestones); conBox->pack_start(*hueskin); - hueskin->setAdjusterListener (this); + hueskin->setAdjusterListener(this); skinprotect->setAdjusterListener(this); conBox->pack_start(*skinprotect); - skinprotect->set_tooltip_markup (M("TP_WAVELET_SKIN_TOOLTIP")); + skinprotect->set_tooltip_markup(M("TP_WAVELET_SKIN_TOOLTIP")); - curveEditorGAM->setCurveListener (this); + curveEditorGAM->setCurveListener(this); Chshape = static_cast(curveEditorGAM->addCurve(CT_Flat, M("TP_WAVELET_CURVEEDITOR_CH"))); Chshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_CH_TOOLTIP")); @@ -609,74 +647,74 @@ Wavelet::Wavelet() : curveEditorGAM->curveListComplete(); Chshape->setBottomBarBgGradient(milestones); - conBox->pack_start (*curveEditorGAM, Gtk::PACK_SHRINK, 4); + conBox->pack_start(*curveEditorGAM, Gtk::PACK_SHRINK, 4); - avoid->set_active (true); - avoidConn = avoid->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::avoidToggled) ); + avoid->set_active(true); + avoidConn = avoid->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::avoidToggled)); conBox->pack_start(*avoid); // Residual Image - ToolParamBlock* const resBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const resBox = Gtk::manage(new ToolParamBlock()); - rescon->setAdjusterListener (this); + rescon->setAdjusterListener(this); resBox->pack_start(*rescon, Gtk::PACK_SHRINK); resBox->pack_start(*thr); - thr->setAdjusterListener (this); + thr->setAdjusterListener(this); - resconH->setAdjusterListener (this); + resconH->setAdjusterListener(this); resBox->pack_start(*resconH, Gtk::PACK_SHRINK); - thrH->setAdjusterListener (this); + thrH->setAdjusterListener(this); resBox->pack_start(*thrH, Gtk::PACK_SHRINK); - contrast->set_tooltip_text (M("TP_WAVELET_CONTRA_TOOLTIP")); - contrast->setAdjusterListener (this); + contrast->set_tooltip_text(M("TP_WAVELET_CONTRA_TOOLTIP")); + contrast->setAdjusterListener(this); resBox->pack_start(*contrast); //keep the possibility to reinstall - reschro->setAdjusterListener (this); + reschro->setAdjusterListener(this); resBox->pack_start(*reschro); Gtk::Label* const labmTM = Gtk::manage(new Gtk::Label(M("TP_WAVELET_TMTYPE") + ":")); Gtk::HBox* const ctboxTM = Gtk::manage(new Gtk::HBox()); - ctboxTM->pack_start (*labmTM, Gtk::PACK_SHRINK, 1); + ctboxTM->pack_start(*labmTM, Gtk::PACK_SHRINK, 1); - Gtk::HSeparator* const separatorR0 = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatorR0 = Gtk::manage(new Gtk::HSeparator()); resBox->pack_start(*separatorR0, Gtk::PACK_SHRINK, 2); - TMmethod->append (M("TP_WAVELET_COMPCONT")); - TMmethod->append (M("TP_WAVELET_COMPTM")); - TMmethodconn = TMmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::TMmethodChanged) ); + TMmethod->append(M("TP_WAVELET_COMPCONT")); + TMmethod->append(M("TP_WAVELET_COMPTM")); + TMmethodconn = TMmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::TMmethodChanged)); ctboxTM->pack_start(*TMmethod); - resBox->pack_start (*ctboxTM); + resBox->pack_start(*ctboxTM); - tmrs->set_tooltip_text (M("TP_WAVELET_TMSTRENGTH_TOOLTIP")); + tmrs->set_tooltip_text(M("TP_WAVELET_TMSTRENGTH_TOOLTIP")); resBox->pack_start(*tmrs); - tmrs->setAdjusterListener (this); + tmrs->setAdjusterListener(this); - gamma->set_tooltip_text (M("TP_WAVELET_COMPGAMMA_TOOLTIP")); + gamma->set_tooltip_text(M("TP_WAVELET_COMPGAMMA_TOOLTIP")); resBox->pack_start(*gamma); - gamma->setAdjusterListener (this); + gamma->setAdjusterListener(this); - Gtk::HSeparator* const separatorR1 = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatorR1 = Gtk::manage(new Gtk::HSeparator()); resBox->pack_start(*separatorR1, Gtk::PACK_SHRINK, 2); - hueskin2->set_tooltip_markup (M("TP_WAVELET_HUESKY_TOOLTIP")); + hueskin2->set_tooltip_markup(M("TP_WAVELET_HUESKY_TOOLTIP")); hueskin2->setBgGradient(milestones); resBox->pack_start(*hueskin2); - hueskin2->setAdjusterListener (this); + hueskin2->setAdjusterListener(this); - sky->set_tooltip_text (M("TP_WAVELET_SKY_TOOLTIP")); - sky->setAdjusterListener (this); + sky->set_tooltip_text(M("TP_WAVELET_SKY_TOOLTIP")); + sky->setAdjusterListener(this); resBox->pack_start(*sky); // whole hue range const std::vector milestones3 = makeWholeHueRange(); - curveEditorRES->setCurveListener (this); + curveEditorRES->setCurveListener(this); hhshape = static_cast(curveEditorRES->addCurve(CT_Flat, M("TP_WAVELET_CURVEEDITOR_HH"))); hhshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_HH_TOOLTIP")); @@ -684,54 +722,54 @@ Wavelet::Wavelet() : curveEditorRES->curveListComplete(); hhshape->setBottomBarBgGradient(milestones3); - resBox->pack_start (*curveEditorRES, Gtk::PACK_SHRINK, 4); + resBox->pack_start(*curveEditorRES, Gtk::PACK_SHRINK, 4); // Toning and Color Balance - Gtk::HSeparator* const separatorCB = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatorCB = Gtk::manage(new Gtk::HSeparator()); - Gtk::VBox* const chanMixerHLBox = Gtk::manage (new Gtk::VBox()); - Gtk::VBox* const chanMixerMidBox = Gtk::manage (new Gtk::VBox()); - Gtk::VBox* const chanMixerShadowsBox = Gtk::manage (new Gtk::VBox()); + Gtk::VBox* const chanMixerHLBox = Gtk::manage(new Gtk::VBox()); + Gtk::VBox* const chanMixerMidBox = Gtk::manage(new Gtk::VBox()); + Gtk::VBox* const chanMixerShadowsBox = Gtk::manage(new Gtk::VBox()); - cbenab->set_active (true); - cbenabConn = cbenab->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::cbenabToggled) ); - cbenab->set_tooltip_text (M("TP_WAVELET_CB_TOOLTIP")); + cbenab->set_active(true); + cbenabConn = cbenab->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::cbenabToggled)); + cbenab->set_tooltip_text(M("TP_WAVELET_CB_TOOLTIP")); - Gtk::Image* const iblueR = Gtk::manage (new RTImage ("circle-blue-small.png")); - Gtk::Image* const iyelL = Gtk::manage (new RTImage ("circle-yellow-small.png")); - Gtk::Image* const imagL = Gtk::manage (new RTImage ("circle-magenta-small.png")); - Gtk::Image* const igreenR = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* const iblueR = Gtk::manage(new RTImage("circle-blue-small.png")); + Gtk::Image* const iyelL = Gtk::manage(new RTImage("circle-yellow-small.png")); + Gtk::Image* const imagL = Gtk::manage(new RTImage("circle-magenta-small.png")); + Gtk::Image* const igreenR = Gtk::manage(new RTImage("circle-green-small.png")); - Gtk::Image* const iblueRm = Gtk::manage (new RTImage ("circle-blue-small.png")); - Gtk::Image* const iyelLm = Gtk::manage (new RTImage ("circle-yellow-small.png")); - Gtk::Image* const imagLm = Gtk::manage (new RTImage ("circle-magenta-small.png")); - Gtk::Image* const igreenRm = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* const iblueRm = Gtk::manage(new RTImage("circle-blue-small.png")); + Gtk::Image* const iyelLm = Gtk::manage(new RTImage("circle-yellow-small.png")); + Gtk::Image* const imagLm = Gtk::manage(new RTImage("circle-magenta-small.png")); + Gtk::Image* const igreenRm = Gtk::manage(new RTImage("circle-green-small.png")); - Gtk::Image* const iblueRh = Gtk::manage (new RTImage ("circle-blue-small.png")); - Gtk::Image* const iyelLh = Gtk::manage (new RTImage ("circle-yellow-small.png")); - Gtk::Image* const imagLh = Gtk::manage (new RTImage ("circle-magenta-small.png")); - Gtk::Image* const igreenRh = Gtk::manage (new RTImage ("circle-green-small.png")); + Gtk::Image* const iblueRh = Gtk::manage(new RTImage("circle-blue-small.png")); + Gtk::Image* const iyelLh = Gtk::manage(new RTImage("circle-yellow-small.png")); + Gtk::Image* const imagLh = Gtk::manage(new RTImage("circle-magenta-small.png")); + Gtk::Image* const igreenRh = Gtk::manage(new RTImage("circle-green-small.png")); - greenhigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenRh, imagLh)); - bluehigh = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueRh, iyelLh)); - greenmed = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenRm, imagLm)); - bluemed = Gtk::manage (new Adjuster ("", -100., 100., 1., 0. , iblueRm , iyelLm)); - greenlow = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., igreenR, imagL)); - bluelow = Gtk::manage (new Adjuster ("", -100., 100., 1., 0., iblueR , iyelL)); + greenhigh = Gtk::manage(new Adjuster("", -100., 100., 1., 0., igreenRh, imagLh)); + bluehigh = Gtk::manage(new Adjuster("", -100., 100., 1., 0., iblueRh, iyelLh)); + greenmed = Gtk::manage(new Adjuster("", -100., 100., 1., 0., igreenRm, imagLm)); + bluemed = Gtk::manage(new Adjuster("", -100., 100., 1., 0., iblueRm, iyelLm)); + greenlow = Gtk::manage(new Adjuster("", -100., 100., 1., 0., igreenR, imagL)); + bluelow = Gtk::manage(new Adjuster("", -100., 100., 1., 0., iblueR, iyelL)); - chanMixerHLBox->pack_start (*greenhigh); - chanMixerHLBox->pack_start (*bluehigh); - chanMixerMidBox->pack_start (*greenmed); - chanMixerMidBox->pack_start (*bluemed); - chanMixerShadowsBox->pack_start (*greenlow); - chanMixerShadowsBox->pack_start (*bluelow); + chanMixerHLBox->pack_start(*greenhigh); + chanMixerHLBox->pack_start(*bluehigh); + chanMixerMidBox->pack_start(*greenmed); + chanMixerMidBox->pack_start(*bluemed); + chanMixerShadowsBox->pack_start(*greenlow); + chanMixerShadowsBox->pack_start(*bluelow); - greenlow->setAdjusterListener (this); - bluelow->setAdjusterListener (this); - greenmed->setAdjusterListener (this); - bluemed->setAdjusterListener (this); - greenhigh->setAdjusterListener (this); - bluehigh->setAdjusterListener (this); + greenlow->setAdjusterListener(this); + bluelow->setAdjusterListener(this); + greenmed->setAdjusterListener(this); + bluemed->setAdjusterListener(this); + greenhigh->setAdjusterListener(this); + bluehigh->setAdjusterListener(this); resBox->pack_start(*separatorCB, Gtk::PACK_SHRINK); @@ -747,15 +785,15 @@ Wavelet::Wavelet() : //RTImage *resetImg = Gtk::manage (new RTImage ("undo-small.png", "redo-small.png")); //neutral->set_image(*resetImg); Gtk::Button* const neutral = Gtk::manage(new Gtk::Button(M("TP_COLORTONING_NEUTRAL"))); - neutral->set_tooltip_text (M("TP_COLORTONING_NEUTRAL_TIP")); - neutralconn = neutral->signal_pressed().connect( sigc::mem_fun(*this, &Wavelet::neutral_pressed) ); + neutral->set_tooltip_text(M("TP_COLORTONING_NEUTRAL_TIP")); + neutralconn = neutral->signal_pressed().connect(sigc::mem_fun(*this, &Wavelet::neutral_pressed)); neutral->show(); - neutrHBox->pack_start (*neutral, Gtk::PACK_EXPAND_WIDGET); + neutrHBox->pack_start(*neutral, Gtk::PACK_EXPAND_WIDGET); - resBox->pack_start (*neutrHBox); + resBox->pack_start(*neutrHBox); // Final Touchup - Gtk::VBox* const ctboxBA = Gtk::manage (new Gtk::VBox()); + Gtk::VBox* const ctboxBA = Gtk::manage(new Gtk::VBox()); ctboxBA->set_spacing(2); @@ -763,19 +801,20 @@ Wavelet::Wavelet() : //ctboxBA->pack_start(*separatorfin, Gtk::PACK_SHRINK, 2); Gtk::Label* const labmBA = Gtk::manage(new Gtk::Label(M("TP_WAVELET_BATYPE") + ":")); Gtk::HBox* const ctboxFI = Gtk::manage(new Gtk::HBox()); - ctboxFI->pack_start (*labmBA, Gtk::PACK_SHRINK, 1); + ctboxFI->pack_start(*labmBA, Gtk::PACK_SHRINK, 1); - BAmethod->append (M("TP_WAVELET_BANONE")); - BAmethod->append (M("TP_WAVELET_BASLI")); - BAmethod->append (M("TP_WAVELET_BACUR")); - BAmethodconn = BAmethod->signal_changed().connect ( sigc::mem_fun(*this, &Wavelet::BAmethodChanged) ); + BAmethod->append(M("TP_WAVELET_BANONE")); + BAmethod->append(M("TP_WAVELET_BASLI")); + BAmethod->append(M("TP_WAVELET_BACUR")); + BAmethodconn = BAmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::BAmethodChanged)); ctboxFI->pack_start(*BAmethod); ctboxBA->pack_start(*ctboxFI); - balance->setAdjusterListener (this); - balance->set_tooltip_text (M("TP_WAVELET_BALANCE_TOOLTIP")); + balance->setAdjusterListener(this); + balance->set_tooltip_text(M("TP_WAVELET_BALANCE_TOOLTIP")); + softradend->setAdjusterListener(this); - opacityCurveEditorW->setCurveListener (this); + opacityCurveEditorW->setCurveListener(this); opacityShape = static_cast(opacityCurveEditorW->addCurve(CT_Flat, "", nullptr, false, false)); opacityShape->setIdentityValue(0.); @@ -786,12 +825,12 @@ Wavelet::Wavelet() : opacityCurveEditorW->curveListComplete(); opacityCurveEditorW->show(); - iter->setAdjusterListener (this); - iter->set_tooltip_text (M("TP_WAVELET_ITER_TOOLTIP")); + iter->setAdjusterListener(this); + iter->set_tooltip_text(M("TP_WAVELET_ITER_TOOLTIP")); - Gtk::HSeparator* const separatorbalend = Gtk::manage (new Gtk::HSeparator()); + Gtk::HSeparator* const separatorbalend = Gtk::manage(new Gtk::HSeparator()); - opacityCurveEditorWL->setCurveListener (this); + opacityCurveEditorWL->setCurveListener(this); opacityShapeWL = static_cast(opacityCurveEditorWL->addCurve(CT_Flat, "", nullptr, false, false)); opacityShapeWL->setIdentityValue(0.); @@ -802,7 +841,7 @@ Wavelet::Wavelet() : opacityCurveEditorWL->curveListComplete(); opacityCurveEditorWL->show(); - curveEditorG->setCurveListener (this); + curveEditorG->setCurveListener(this); clshape = static_cast(curveEditorG->addCurve(CT_Diagonal, M("TP_WAVELET_CURVEEDITOR_CL"))); clshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_CL_TOOLTIP")); @@ -811,54 +850,61 @@ Wavelet::Wavelet() : curveEditorG->curveListComplete(); - tmr->set_active (true); - tmr->set_tooltip_text (M("TP_WAVELET_BALCHRO_TOOLTIP")); - tmrConn = tmr->signal_toggled().connect( sigc::mem_fun(*this, &Wavelet::tmrToggled) ); + tmr->set_active(true); + tmr->set_tooltip_text(M("TP_WAVELET_BALCHRO_TOOLTIP")); + tmrConn = tmr->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::tmrToggled)); - ToolParamBlock* const finalBox = Gtk::manage (new ToolParamBlock()); + ToolParamBlock* const finalBox = Gtk::manage(new ToolParamBlock()); - finalBox->pack_start (*ctboxBA); + finalBox->pack_start(*ctboxBA); finalBox->pack_start(*balance); - finalBox->pack_start( *opacityCurveEditorW, Gtk::PACK_SHRINK, 2); + finalBox->pack_start(*opacityCurveEditorW, Gtk::PACK_SHRINK, 2); finalBox->pack_start(*iter); finalBox->pack_start(*tmr); finalBox->pack_start(*separatorbalend, Gtk::PACK_SHRINK, 2); - finalBox->pack_start( *opacityCurveEditorWL, Gtk::PACK_SHRINK, 2); + finalBox->pack_start(*opacityCurveEditorWL, Gtk::PACK_SHRINK, 2); - finalBox->pack_start (*curveEditorG, Gtk::PACK_SHRINK, 4); + finalBox->pack_start(*curveEditorG, Gtk::PACK_SHRINK, 4); + finalBox->pack_start(*softradend); //----------------------------- + + expsettings->add(*settingsBox, false); expsettings->setLevel(2); - pack_start (*expsettings); + pack_start(*expsettings); expcontrast->add(*levBox, false); expcontrast->setLevel(2); - pack_start (*expcontrast); + pack_start(*expcontrast); expchroma->add(*chBox, false); expchroma->setLevel(2); - pack_start (*expchroma); + pack_start(*expchroma); exptoning->add(*tonBox, false); exptoning->setLevel(2); - pack_start (*exptoning); + pack_start(*exptoning); expnoise->add(*noiseBox, false); expnoise->setLevel(2); - pack_start (*expnoise); + pack_start(*expnoise); expedge->add(*edgBox, false); expedge->setLevel(2); - pack_start (*expedge); + pack_start(*expedge); + + expclari->add(*clariBox, false); + expclari->setLevel(2); + pack_start(*expclari); expgamut->add(*conBox, false); expgamut->setLevel(2); - pack_start (*expgamut); + pack_start(*expgamut); expresid->add(*resBox, false); expresid->setLevel(2); @@ -869,7 +915,7 @@ Wavelet::Wavelet() : pack_start(*expfinal); } -Wavelet::~Wavelet () +Wavelet::~Wavelet() { idle_register.destroy(); @@ -884,27 +930,26 @@ Wavelet::~Wavelet () } -void Wavelet::wavChanged (double nlevel) +void Wavelet::wavChanged(double nlevel) { if (!batchMode) { idle_register.add( - [this, nlevel]() -> bool - { - wavLabels->set_text( - Glib::ustring::compose( - M("TP_WAVELET_LEVLABEL"), - Glib::ustring::format(std::fixed, std::setprecision(0), nlevel) - ) - ); - return false; - } + [this, nlevel]() -> bool { + wavLabels->set_text( + Glib::ustring::compose( + M("TP_WAVELET_LEVLABEL"), + Glib::ustring::format(std::fixed, std::setprecision(0), nlevel) + ) + ); + return false; + } ); } } // Will only reset the channel mixer // WARNING! In mutiImage mode, and for sliders in ADD mode, this will reset the slider to 0, but not to the default value as in SET mode. -void Wavelet::neutral_pressed () +void Wavelet::neutral_pressed() { disableListener(); greenlow->resetValue(false); @@ -917,11 +962,11 @@ void Wavelet::neutral_pressed () enableListener(); if (listener && getEnabled()) { - listener->panelChanged (EvWavNeutral, M("GENERAL_RESET")); + listener->panelChanged(EvWavNeutral, M("GENERAL_RESET")); } } -void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) +void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) { /***************************************************************************************************** @@ -930,7 +975,7 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) * *****************************************************************************************************/ - disableListener (); + disableListener(); Lmethodconn.block(true); CLmethodconn.block(true); Backmethodconn.block(true); @@ -945,6 +990,7 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) TMmethodconn.block(true); HSmethodconn.block(true); MedgreinfConn.block(true); + ushamethodconn.block(true); cbenabConn.block(true); enableChromaConn.block(true); enableContrastConn.block(true); @@ -962,65 +1008,74 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) //HSmethod->set_active (1); // Note: default values are controlled in rtengine::ProcParams::SetDefaults if (pp->wavelet.HSmethod == "without") { - HSmethod->set_active (0); + HSmethod->set_active(0); } else if (pp->wavelet.HSmethod == "with") { - HSmethod->set_active (1); + HSmethod->set_active(1); } //CHmethod->set_active (1); if (pp->wavelet.CHmethod == "without") { - CHmethod->set_active (0); + CHmethod->set_active(0); } else if (pp->wavelet.CHmethod == "with") { - CHmethod->set_active (1); + CHmethod->set_active(1); } else if (pp->wavelet.CHmethod == "link") { - CHmethod->set_active (2); + CHmethod->set_active(2); } //Medgreinf->set_active (1); if (pp->wavelet.Medgreinf == "more") { - Medgreinf->set_active (0); + Medgreinf->set_active(0); } else if (pp->wavelet.Medgreinf == "none") { - Medgreinf->set_active (1); + Medgreinf->set_active(1); } else if (pp->wavelet.Medgreinf == "less") { - Medgreinf->set_active (2); + Medgreinf->set_active(2); + } + + //ushamethod + if (pp->wavelet.ushamethod == "none") { + ushamethod->set_active(0); + } else if (pp->wavelet.ushamethod == "sharp") { + ushamethod->set_active(1); + } else if (pp->wavelet.ushamethod == "clari") { + ushamethod->set_active(2); } //CHSLmethod->set_active (1); if (pp->wavelet.CHSLmethod == "SL") { - CHSLmethod->set_active (0); + CHSLmethod->set_active(0); } else if (pp->wavelet.CHSLmethod == "CU") { - CHSLmethod->set_active (1); + CHSLmethod->set_active(1); } //EDmethod->set_active (1); if (pp->wavelet.EDmethod == "SL") { - EDmethod->set_active (0); + EDmethod->set_active(0); } else if (pp->wavelet.EDmethod == "CU") { - EDmethod->set_active (1); + EDmethod->set_active(1); } if (pp->wavelet.NPmethod == "none") { - NPmethod->set_active (0); + NPmethod->set_active(0); } else if (pp->wavelet.NPmethod == "low") { - NPmethod->set_active (1); + NPmethod->set_active(1); } else if (pp->wavelet.NPmethod == "high") { - NPmethod->set_active (2); + NPmethod->set_active(2); } //BAmethod->set_active (0); if (pp->wavelet.BAmethod == "none") { - BAmethod->set_active (0); + BAmethod->set_active(0); } else if (pp->wavelet.BAmethod == "sli") { - BAmethod->set_active (1); + BAmethod->set_active(1); } else if (pp->wavelet.BAmethod == "cur") { - BAmethod->set_active (2); + BAmethod->set_active(2); } //TMmethod->set_active (1); if (pp->wavelet.TMmethod == "cont") { - TMmethod->set_active (0); + TMmethod->set_active(0); } else if (pp->wavelet.TMmethod == "tm") { - TMmethod->set_active (1); + TMmethod->set_active(1); } // else if (pp->wavelet.TMmethod=="both") @@ -1028,99 +1083,100 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) //Backmethod->set_active (3); if (pp->wavelet.Backmethod == "black") { - Backmethod->set_active (0); + Backmethod->set_active(0); } else if (pp->wavelet.Backmethod == "grey") { - Backmethod->set_active (1); + Backmethod->set_active(1); } else if (pp->wavelet.Backmethod == "resid") { - Backmethod->set_active (2); + Backmethod->set_active(2); } //CLmethod->set_active (3); if (pp->wavelet.CLmethod == "one") { - CLmethod->set_active (0); + CLmethod->set_active(0); } else if (pp->wavelet.CLmethod == "inf") { - CLmethod->set_active (1); + CLmethod->set_active(1); } else if (pp->wavelet.CLmethod == "sup") { - CLmethod->set_active (2); + CLmethod->set_active(2); } else if (pp->wavelet.CLmethod == "all") { - CLmethod->set_active (3); + CLmethod->set_active(3); } //Tilesmethod->set_active (2); if (pp->wavelet.Tilesmethod == "full") { - Tilesmethod->set_active (0); + Tilesmethod->set_active(0); } else if (pp->wavelet.Tilesmethod == "big") { - Tilesmethod->set_active (1); + Tilesmethod->set_active(1); } else if (pp->wavelet.Tilesmethod == "lit") { - Tilesmethod->set_active (2); + Tilesmethod->set_active(2); } //daubcoeffmethod->set_active (4); if (pp->wavelet.daubcoeffmethod == "2_") { - daubcoeffmethod->set_active (0); + daubcoeffmethod->set_active(0); } else if (pp->wavelet.daubcoeffmethod == "4_") { - daubcoeffmethod->set_active (1); + daubcoeffmethod->set_active(1); } else if (pp->wavelet.daubcoeffmethod == "6_") { - daubcoeffmethod->set_active (2); + daubcoeffmethod->set_active(2); } else if (pp->wavelet.daubcoeffmethod == "10_") { - daubcoeffmethod->set_active (3); + daubcoeffmethod->set_active(3); } else if (pp->wavelet.daubcoeffmethod == "14_") { - daubcoeffmethod->set_active (4); + daubcoeffmethod->set_active(4); } //Dirmethod->set_active (3); if (pp->wavelet.Dirmethod == "one") { - Dirmethod->set_active (0); + Dirmethod->set_active(0); } else if (pp->wavelet.Dirmethod == "two") { - Dirmethod->set_active (1); + Dirmethod->set_active(1); } else if (pp->wavelet.Dirmethod == "thr") { - Dirmethod->set_active (2); + Dirmethod->set_active(2); } else if (pp->wavelet.Dirmethod == "all") { - Dirmethod->set_active (3); + Dirmethod->set_active(3); } int selectedLevel = pp->wavelet.Lmethod - 1; - Lmethod->set_active (selectedLevel == -1 ? 4 : selectedLevel); + Lmethod->set_active(selectedLevel == -1 ? 4 : selectedLevel); - ccshape->setCurve (pp->wavelet.ccwcurve); - opacityShapeRG->setCurve (pp->wavelet.opacityCurveRG); - opacityShapeBY->setCurve (pp->wavelet.opacityCurveBY); - opacityShape->setCurve (pp->wavelet.opacityCurveW); - opacityShapeWL->setCurve (pp->wavelet.opacityCurveWL); - hhshape->setCurve (pp->wavelet.hhcurve); - Chshape->setCurve (pp->wavelet.Chcurve); - clshape->setCurve (pp->wavelet.wavclCurve); - expcontrast->setEnabled (pp->wavelet.expcontrast); - expchroma->setEnabled (pp->wavelet.expchroma); - expedge->setEnabled (pp->wavelet.expedge); - expresid->setEnabled (pp->wavelet.expresid); - expfinal->setEnabled (pp->wavelet.expfinal); - exptoning->setEnabled (pp->wavelet.exptoning); - expnoise->setEnabled (pp->wavelet.expnoise); + ccshape->setCurve(pp->wavelet.ccwcurve); + opacityShapeRG->setCurve(pp->wavelet.opacityCurveRG); + opacityShapeBY->setCurve(pp->wavelet.opacityCurveBY); + opacityShape->setCurve(pp->wavelet.opacityCurveW); + opacityShapeWL->setCurve(pp->wavelet.opacityCurveWL); + hhshape->setCurve(pp->wavelet.hhcurve); + Chshape->setCurve(pp->wavelet.Chcurve); + clshape->setCurve(pp->wavelet.wavclCurve); + expcontrast->setEnabled(pp->wavelet.expcontrast); + expchroma->setEnabled(pp->wavelet.expchroma); + expedge->setEnabled(pp->wavelet.expedge); + expresid->setEnabled(pp->wavelet.expresid); + expfinal->setEnabled(pp->wavelet.expfinal); + exptoning->setEnabled(pp->wavelet.exptoning); + expnoise->setEnabled(pp->wavelet.expnoise); + expclari->setEnabled(pp->wavelet.expclari); setEnabled(pp->wavelet.enabled); - avoidConn.block (true); - avoid->set_active (pp->wavelet.avoid); - avoidConn.block (false); - tmrConn.block (true); - tmr->set_active (pp->wavelet.tmr); - tmrConn.block (false); - medianConn.block (true); - median->set_active (pp->wavelet.median); - medianConn.block (false); - medianlevConn.block (true); - medianlev->set_active (pp->wavelet.medianlev); - medianlevConn.block (false); - linkedgConn.block (true); - linkedg->set_active (pp->wavelet.linkedg); - linkedgConn.block (false); - cbenabConn.block (true); - cbenab->set_active (pp->wavelet.cbenab); - cbenabConn.block (false); + avoidConn.block(true); + avoid->set_active(pp->wavelet.avoid); + avoidConn.block(false); + tmrConn.block(true); + tmr->set_active(pp->wavelet.tmr); + tmrConn.block(false); + medianConn.block(true); + median->set_active(pp->wavelet.median); + medianConn.block(false); + medianlevConn.block(true); + medianlev->set_active(pp->wavelet.medianlev); + medianlevConn.block(false); + linkedgConn.block(true); + linkedg->set_active(pp->wavelet.linkedg); + linkedgConn.block(false); + cbenabConn.block(true); + cbenab->set_active(pp->wavelet.cbenab); + cbenabConn.block(false); - lipstConn.block (true); - lipst->set_active (pp->wavelet.lipst); - lipstConn.block (false); + lipstConn.block(true); + lipst->set_active(pp->wavelet.lipst); + lipstConn.block(false); //edgreinfConn.block (true); //edgreinf->set_active (pp->wavelet.edgreinf); //edgreinfConn.block (false); @@ -1132,22 +1188,22 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) lastlipst = pp->wavelet.lipst; lastavoid = pp->wavelet.avoid; lasttmr = pp->wavelet.tmr; - rescon->setValue (pp->wavelet.rescon); - resconH->setValue (pp->wavelet.resconH); - reschro->setValue (pp->wavelet.reschro); - tmrs->setValue (pp->wavelet.tmrs); - gamma->setValue (pp->wavelet.gamma); - sup->setValue (pp->wavelet.sup); - sky->setValue (pp->wavelet.sky); - thres->setValue (pp->wavelet.thres); - chroma->setValue (pp->wavelet.chroma); - chro->setValue (pp->wavelet.chro); - contrast->setValue (pp->wavelet.contrast); - edgrad->setValue (pp->wavelet.edgrad); - edgval->setValue (pp->wavelet.edgval); - edgthresh->setValue (pp->wavelet.edgthresh); - thr->setValue (pp->wavelet.thr); - thrH->setValue (pp->wavelet.thrH); + rescon->setValue(pp->wavelet.rescon); + resconH->setValue(pp->wavelet.resconH); + reschro->setValue(pp->wavelet.reschro); + tmrs->setValue(pp->wavelet.tmrs); + gamma->setValue(pp->wavelet.gamma); + sup->setValue(pp->wavelet.sup); + sky->setValue(pp->wavelet.sky); + thres->setValue(pp->wavelet.thres); + chroma->setValue(pp->wavelet.chroma); + chro->setValue(pp->wavelet.chro); + contrast->setValue(pp->wavelet.contrast); + edgrad->setValue(pp->wavelet.edgrad); + edgval->setValue(pp->wavelet.edgval); + edgthresh->setValue(pp->wavelet.edgthresh); + thr->setValue(pp->wavelet.thr); + thrH->setValue(pp->wavelet.thrH); skinprotect->setValue(pp->wavelet.skinprotect); hueskin->setValue(pp->wavelet.hueskin); hueskin2->setValue(pp->wavelet.hueskin2); @@ -1164,12 +1220,16 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) satlev->setValue(pp->wavelet.satlev); edgcont->setValue(pp->wavelet.edgcont); - greenlow->setValue (pp->wavelet.greenlow); - bluelow->setValue (pp->wavelet.bluelow); - greenmed->setValue (pp->wavelet.greenmed); - bluemed->setValue (pp->wavelet.bluemed); - greenhigh->setValue (pp->wavelet.greenhigh); - bluehigh->setValue (pp->wavelet.bluehigh); + greenlow->setValue(pp->wavelet.greenlow); + bluelow->setValue(pp->wavelet.bluelow); + greenmed->setValue(pp->wavelet.greenmed); + bluemed->setValue(pp->wavelet.bluemed); + greenhigh->setValue(pp->wavelet.greenhigh); + bluehigh->setValue(pp->wavelet.bluehigh); + mergeL->setValue(pp->wavelet.mergeL); + mergeC->setValue(pp->wavelet.mergeC); + softrad->setValue(pp->wavelet.softrad); + softradend->setValue(pp->wavelet.softradend); level0noise->setValue(pp->wavelet.level0noise); level1noise->setValue(pp->wavelet.level1noise); @@ -1250,83 +1310,92 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) Medgreinf->set_active_text(M("GENERAL_UNCHANGED")); } - set_inconsistent (multiImage && !pedited->wavelet.enabled); - ccshape->setUnChanged (!pedited->wavelet.ccwcurve); - expcontrast->set_inconsistent (!pedited->wavelet.expcontrast); - expchroma->set_inconsistent (!pedited->wavelet.expchroma); - expedge->set_inconsistent (!pedited->wavelet.expedge); - expresid->set_inconsistent (!pedited->wavelet.expresid); - expfinal->set_inconsistent (!pedited->wavelet.expfinal); - exptoning->set_inconsistent (!pedited->wavelet.exptoning); - expnoise->set_inconsistent (!pedited->wavelet.expnoise); - opacityShapeRG->setCurve (pp->wavelet.opacityCurveRG); - opacityShapeBY->setCurve (pp->wavelet.opacityCurveBY); - opacityShape->setCurve (pp->wavelet.opacityCurveW); - opacityShapeWL->setCurve (pp->wavelet.opacityCurveWL); - hhshape->setUnChanged (!pedited->wavelet.hhcurve); - Chshape->setUnChanged (!pedited->wavelet.Chcurve); - clshape->setUnChanged (!pedited->wavelet.wavclCurve); - avoid->set_inconsistent (!pedited->wavelet.avoid); - tmr->set_inconsistent (!pedited->wavelet.tmr); - edgthresh->setEditedState (pedited->wavelet.edgthresh ? Edited : UnEdited); - rescon->setEditedState (pedited->wavelet.rescon ? Edited : UnEdited); - resconH->setEditedState (pedited->wavelet.resconH ? Edited : UnEdited); - reschro->setEditedState (pedited->wavelet.reschro ? Edited : UnEdited); - tmrs->setEditedState (pedited->wavelet.tmrs ? Edited : UnEdited); - gamma->setEditedState (pedited->wavelet.gamma ? Edited : UnEdited); - sup->setEditedState (pedited->wavelet.sup ? Edited : UnEdited); - sky->setEditedState (pedited->wavelet.sky ? Edited : UnEdited); - thres->setEditedState (pedited->wavelet.thres ? Edited : UnEdited); - balance->setEditedState (pedited->wavelet.balance ? Edited : UnEdited); - iter->setEditedState (pedited->wavelet.iter ? Edited : UnEdited); - threshold->setEditedState (pedited->wavelet.threshold ? Edited : UnEdited); - threshold2->setEditedState (pedited->wavelet.threshold2 ? Edited : UnEdited); - edgedetect->setEditedState (pedited->wavelet.edgedetect ? Edited : UnEdited); - edgedetectthr->setEditedState (pedited->wavelet.edgedetectthr ? Edited : UnEdited); - edgedetectthr2->setEditedState (pedited->wavelet.edgedetectthr2 ? Edited : UnEdited); - edgesensi->setEditedState (pedited->wavelet.edgesensi ? Edited : UnEdited); - edgeampli->setEditedState (pedited->wavelet.edgeampli ? Edited : UnEdited); - chroma->setEditedState (pedited->wavelet.chroma ? Edited : UnEdited); - chro->setEditedState (pedited->wavelet.chro ? Edited : UnEdited); - - greenlow->setEditedState (pedited->wavelet.greenlow ? Edited : UnEdited); - bluelow->setEditedState (pedited->wavelet.bluelow ? Edited : UnEdited); - greenmed->setEditedState (pedited->wavelet.greenmed ? Edited : UnEdited); - bluemed->setEditedState (pedited->wavelet.bluemed ? Edited : UnEdited); - greenhigh->setEditedState (pedited->wavelet.greenhigh ? Edited : UnEdited); - bluehigh->setEditedState (pedited->wavelet.bluehigh ? Edited : UnEdited); - - median->set_inconsistent (!pedited->wavelet.median); - medianlev->set_inconsistent (!pedited->wavelet.medianlev); - linkedg->set_inconsistent (!pedited->wavelet.linkedg); -// edgreinf->set_inconsistent (!pedited->wavelet.edgreinf); - cbenab->set_inconsistent (!pedited->wavelet.cbenab); - lipst->set_inconsistent (!pedited->wavelet.lipst); - contrast->setEditedState (pedited->wavelet.contrast ? Edited : UnEdited); - edgrad->setEditedState (pedited->wavelet.edgrad ? Edited : UnEdited); - edgval->setEditedState (pedited->wavelet.edgval ? Edited : UnEdited); - thr->setEditedState (pedited->wavelet.thr ? Edited : UnEdited); - thrH->setEditedState (pedited->wavelet.thrH ? Edited : UnEdited); - skinprotect->setEditedState (pedited->wavelet.skinprotect ? Edited : UnEdited); - hueskin->setEditedState (pedited->wavelet.hueskin ? Edited : UnEdited); - hueskin2->setEditedState (pedited->wavelet.hueskin2 ? Edited : UnEdited); - hllev->setEditedState (pedited->wavelet.hllev ? Edited : UnEdited); - bllev->setEditedState (pedited->wavelet.bllev ? Edited : UnEdited); - pastlev->setEditedState (pedited->wavelet.pastlev ? Edited : UnEdited); - satlev->setEditedState (pedited->wavelet.satlev ? Edited : UnEdited); - strength->setEditedState(pedited->wavelet.strength ? Edited : UnEdited); - edgcont->setEditedState (pedited->wavelet.edgcont ? Edited : UnEdited); - level0noise->setEditedState (pedited->wavelet.level0noise ? Edited : UnEdited); - level1noise->setEditedState (pedited->wavelet.level1noise ? Edited : UnEdited); - level2noise->setEditedState (pedited->wavelet.level2noise ? Edited : UnEdited); - level3noise->setEditedState (pedited->wavelet.level3noise ? Edited : UnEdited); - - for(int i = 0; i < 9; i++) { - correction[i]->setEditedState (pedited->wavelet.c[i] ? Edited : UnEdited); + if (!pedited->wavelet.ushamethod) { + ushamethod->set_active_text(M("GENERAL_UNCHANGED")); } - for(int i = 0; i < 9; i++) { - correctionch[i]->setEditedState (pedited->wavelet.ch[i] ? Edited : UnEdited); + set_inconsistent(multiImage && !pedited->wavelet.enabled); + ccshape->setUnChanged(!pedited->wavelet.ccwcurve); + expcontrast->set_inconsistent(!pedited->wavelet.expcontrast); + expchroma->set_inconsistent(!pedited->wavelet.expchroma); + expedge->set_inconsistent(!pedited->wavelet.expedge); + expresid->set_inconsistent(!pedited->wavelet.expresid); + expfinal->set_inconsistent(!pedited->wavelet.expfinal); + expclari->set_inconsistent(!pedited->wavelet.expclari); + exptoning->set_inconsistent(!pedited->wavelet.exptoning); + expnoise->set_inconsistent(!pedited->wavelet.expnoise); + opacityShapeRG->setCurve(pp->wavelet.opacityCurveRG); + opacityShapeBY->setCurve(pp->wavelet.opacityCurveBY); + opacityShape->setCurve(pp->wavelet.opacityCurveW); + opacityShapeWL->setCurve(pp->wavelet.opacityCurveWL); + hhshape->setUnChanged(!pedited->wavelet.hhcurve); + Chshape->setUnChanged(!pedited->wavelet.Chcurve); + clshape->setUnChanged(!pedited->wavelet.wavclCurve); + avoid->set_inconsistent(!pedited->wavelet.avoid); + tmr->set_inconsistent(!pedited->wavelet.tmr); + edgthresh->setEditedState(pedited->wavelet.edgthresh ? Edited : UnEdited); + rescon->setEditedState(pedited->wavelet.rescon ? Edited : UnEdited); + resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited); + reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited); + tmrs->setEditedState(pedited->wavelet.tmrs ? Edited : UnEdited); + gamma->setEditedState(pedited->wavelet.gamma ? Edited : UnEdited); + sup->setEditedState(pedited->wavelet.sup ? Edited : UnEdited); + sky->setEditedState(pedited->wavelet.sky ? Edited : UnEdited); + thres->setEditedState(pedited->wavelet.thres ? Edited : UnEdited); + balance->setEditedState(pedited->wavelet.balance ? Edited : UnEdited); + iter->setEditedState(pedited->wavelet.iter ? Edited : UnEdited); + threshold->setEditedState(pedited->wavelet.threshold ? Edited : UnEdited); + threshold2->setEditedState(pedited->wavelet.threshold2 ? Edited : UnEdited); + edgedetect->setEditedState(pedited->wavelet.edgedetect ? Edited : UnEdited); + edgedetectthr->setEditedState(pedited->wavelet.edgedetectthr ? Edited : UnEdited); + edgedetectthr2->setEditedState(pedited->wavelet.edgedetectthr2 ? Edited : UnEdited); + edgesensi->setEditedState(pedited->wavelet.edgesensi ? Edited : UnEdited); + edgeampli->setEditedState(pedited->wavelet.edgeampli ? Edited : UnEdited); + chroma->setEditedState(pedited->wavelet.chroma ? Edited : UnEdited); + chro->setEditedState(pedited->wavelet.chro ? Edited : UnEdited); + + greenlow->setEditedState(pedited->wavelet.greenlow ? Edited : UnEdited); + bluelow->setEditedState(pedited->wavelet.bluelow ? Edited : UnEdited); + greenmed->setEditedState(pedited->wavelet.greenmed ? Edited : UnEdited); + bluemed->setEditedState(pedited->wavelet.bluemed ? Edited : UnEdited); + greenhigh->setEditedState(pedited->wavelet.greenhigh ? Edited : UnEdited); + bluehigh->setEditedState(pedited->wavelet.bluehigh ? Edited : UnEdited); + mergeL->setEditedState(pedited->wavelet.mergeL ? Edited : UnEdited); + mergeC->setEditedState(pedited->wavelet.mergeC ? Edited : UnEdited); + softrad->setEditedState(pedited->wavelet.softrad ? Edited : UnEdited); + softradend->setEditedState(pedited->wavelet.softradend ? Edited : UnEdited); + + median->set_inconsistent(!pedited->wavelet.median); + medianlev->set_inconsistent(!pedited->wavelet.medianlev); + linkedg->set_inconsistent(!pedited->wavelet.linkedg); +// edgreinf->set_inconsistent (!pedited->wavelet.edgreinf); + cbenab->set_inconsistent(!pedited->wavelet.cbenab); + lipst->set_inconsistent(!pedited->wavelet.lipst); + contrast->setEditedState(pedited->wavelet.contrast ? Edited : UnEdited); + edgrad->setEditedState(pedited->wavelet.edgrad ? Edited : UnEdited); + edgval->setEditedState(pedited->wavelet.edgval ? Edited : UnEdited); + thr->setEditedState(pedited->wavelet.thr ? Edited : UnEdited); + thrH->setEditedState(pedited->wavelet.thrH ? Edited : UnEdited); + skinprotect->setEditedState(pedited->wavelet.skinprotect ? Edited : UnEdited); + hueskin->setEditedState(pedited->wavelet.hueskin ? Edited : UnEdited); + hueskin2->setEditedState(pedited->wavelet.hueskin2 ? Edited : UnEdited); + hllev->setEditedState(pedited->wavelet.hllev ? Edited : UnEdited); + bllev->setEditedState(pedited->wavelet.bllev ? Edited : UnEdited); + pastlev->setEditedState(pedited->wavelet.pastlev ? Edited : UnEdited); + satlev->setEditedState(pedited->wavelet.satlev ? Edited : UnEdited); + strength->setEditedState(pedited->wavelet.strength ? Edited : UnEdited); + edgcont->setEditedState(pedited->wavelet.edgcont ? Edited : UnEdited); + level0noise->setEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); + level1noise->setEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); + level2noise->setEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); + level3noise->setEditedState(pedited->wavelet.level3noise ? Edited : UnEdited); + + for (int i = 0; i < 9; i++) { + correction[i]->setEditedState(pedited->wavelet.c[i] ? Edited : UnEdited); + } + + for (int i = 0; i < 9; i++) { + correctionch[i]->setEditedState(pedited->wavelet.ch[i] ? Edited : UnEdited); } } @@ -1341,20 +1410,20 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) y = thres->getValue(); int z; - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correction[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correction[z]->show(); } if (pp->wavelet.CHSLmethod == "SL") { - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correctionch[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correctionch[z]->show(); } } @@ -1370,16 +1439,16 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) TMmethodUpdateUI(); //BackmethodUpdateUI(); CLmethodUpdateUI(); - lipstUpdateUI (); + lipstUpdateUI(); //TilesmethodUpdateUI(); //daubcoeffmethodUpdateUI(); //DirmethodUpdateUI(); //LmethodUpdateUI(); - enabledUpdateUI (); - medianlevUpdateUI (); - cbenabUpdateUI (); + enabledUpdateUI(); + medianlevUpdateUI(); + cbenabUpdateUI(); - if(z == 9) { + if (z == 9) { sup->show(); } else { sup->hide(); @@ -1406,6 +1475,7 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) HSmethodconn.block(false); Dirmethodconn.block(false); MedgreinfConn.block(false); + ushamethodconn.block(false); enableChromaConn.block(false); enableContrastConn.block(false); enableEdgeConn.block(false); @@ -1414,10 +1484,10 @@ void Wavelet::read (const ProcParams* pp, const ParamsEdited* pedited) enableResidConn.block(false); enableToningConn.block(false); - enableListener (); + enableListener(); } -void Wavelet::setEditProvider (EditDataProvider *provider) +void Wavelet::setEditProvider(EditDataProvider *provider) { ccshape->setEditProvider(provider); opacityShapeRG->setEditProvider(provider); @@ -1429,19 +1499,19 @@ void Wavelet::setEditProvider (EditDataProvider *provider) clshape->setEditProvider(provider); } -void Wavelet::autoOpenCurve () +void Wavelet::autoOpenCurve() { ccshape->openIfNonlinear(); //opacityShapeRG->openIfNonlinear(); //opacityShapeBY->openIfNonlinear(); } -void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) +void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) { pp->wavelet.enabled = getEnabled(); - pp->wavelet.avoid = avoid->get_active (); - pp->wavelet.tmr = tmr->get_active (); + pp->wavelet.avoid = avoid->get_active(); + pp->wavelet.tmr = tmr->get_active(); pp->wavelet.rescon = rescon->getValue(); pp->wavelet.resconH = resconH->getValue(); pp->wavelet.reschro = reschro->getValue(); @@ -1452,12 +1522,12 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pp->wavelet.thres = thres->getValue(); pp->wavelet.chroma = chroma->getValue(); pp->wavelet.chro = chro->getValue(); - pp->wavelet.median = median->get_active (); - pp->wavelet.medianlev = medianlev->get_active (); - pp->wavelet.linkedg = linkedg->get_active (); + pp->wavelet.median = median->get_active(); + pp->wavelet.medianlev = medianlev->get_active(); + pp->wavelet.linkedg = linkedg->get_active(); // pp->wavelet.edgreinf = edgreinf->get_active (); - pp->wavelet.cbenab = cbenab->get_active (); - pp->wavelet.lipst = lipst->get_active (); + pp->wavelet.cbenab = cbenab->get_active(); + pp->wavelet.lipst = lipst->get_active(); pp->wavelet.contrast = contrast->getValue(); pp->wavelet.edgrad = edgrad->getValue(); pp->wavelet.edgval = edgval->getValue(); @@ -1481,24 +1551,28 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pp->wavelet.level1noise = level1noise->getValue (); pp->wavelet.level2noise = level2noise->getValue (); pp->wavelet.level3noise = level3noise->getValue (); - pp->wavelet.ccwcurve = ccshape->getCurve (); - pp->wavelet.opacityCurveRG = opacityShapeRG->getCurve (); - pp->wavelet.opacityCurveBY = opacityShapeBY->getCurve (); - pp->wavelet.opacityCurveW = opacityShape->getCurve (); - pp->wavelet.opacityCurveWL = opacityShapeWL->getCurve (); - pp->wavelet.hhcurve = hhshape->getCurve (); - pp->wavelet.Chcurve = Chshape->getCurve (); + pp->wavelet.ccwcurve = ccshape->getCurve(); + pp->wavelet.opacityCurveRG = opacityShapeRG->getCurve(); + pp->wavelet.opacityCurveBY = opacityShapeBY->getCurve(); + pp->wavelet.opacityCurveW = opacityShape->getCurve(); + pp->wavelet.opacityCurveWL = opacityShapeWL->getCurve(); + pp->wavelet.hhcurve = hhshape->getCurve(); + pp->wavelet.Chcurve = Chshape->getCurve(); pp->wavelet.pastlev = pastlev->getValue (); pp->wavelet.satlev = satlev->getValue (); pp->wavelet.strength = (int) strength->getValue(); pp->wavelet.balance = (int) balance->getValue(); - pp->wavelet.greenlow = greenlow->getValue (); - pp->wavelet.bluelow = bluelow->getValue (); - pp->wavelet.greenmed = greenmed->getValue (); - pp->wavelet.bluemed = bluemed->getValue (); - pp->wavelet.greenhigh = greenhigh->getValue (); - pp->wavelet.bluehigh = bluehigh->getValue (); + pp->wavelet.greenlow = greenlow->getValue(); + pp->wavelet.bluelow = bluelow->getValue(); + pp->wavelet.greenmed = greenmed->getValue(); + pp->wavelet.bluemed = bluemed->getValue(); + pp->wavelet.greenhigh = greenhigh->getValue(); + pp->wavelet.bluehigh = bluehigh->getValue(); + pp->wavelet.mergeL = mergeL->getValue(); + pp->wavelet.mergeC = mergeC->getValue(); + pp->wavelet.softrad = softrad->getValue(); + pp->wavelet.softradend = softradend->getValue(); pp->wavelet.expcontrast = expcontrast->getEnabled(); pp->wavelet.expchroma = expchroma->getEnabled(); pp->wavelet.expedge = expedge->getEnabled(); @@ -1506,9 +1580,10 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pp->wavelet.expfinal = expfinal->getEnabled(); pp->wavelet.exptoning = exptoning->getEnabled(); pp->wavelet.expnoise = expnoise->getEnabled(); + pp->wavelet.expclari = expclari->getEnabled(); pp->wavelet.iter = (int) iter->getValue(); - pp->wavelet.wavclCurve = clshape->getCurve (); + pp->wavelet.wavclCurve = clshape->getCurve(); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); @@ -1528,6 +1603,7 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.cbenab = !cbenab->get_inconsistent(); pedited->wavelet.lipst = !lipst->get_inconsistent(); pedited->wavelet.Medgreinf = Medgreinf->get_active_text() != M("GENERAL_UNCHANGED"); + pedited->wavelet.ushamethod = ushamethod->get_active_text() != M("GENERAL_UNCHANGED"); pedited->wavelet.Lmethod = Lmethod->get_active_text() != M("GENERAL_UNCHANGED"); pedited->wavelet.CLmethod = CLmethod->get_active_text() != M("GENERAL_UNCHANGED"); pedited->wavelet.Backmethod = Backmethod->get_active_text() != M("GENERAL_UNCHANGED"); @@ -1564,35 +1640,39 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.edgval = edgval->getEditedState(); pedited->wavelet.thr = thr->getEditedState(); pedited->wavelet.thrH = thrH->getEditedState(); - pedited->wavelet.hueskin = hueskin->getEditedState (); - pedited->wavelet.hueskin2 = hueskin2->getEditedState (); + pedited->wavelet.hueskin = hueskin->getEditedState(); + pedited->wavelet.hueskin2 = hueskin2->getEditedState(); pedited->wavelet.skinprotect = skinprotect->getEditedState(); - pedited->wavelet.hllev = hllev->getEditedState (); - pedited->wavelet.ccwcurve = !ccshape->isUnChanged (); - pedited->wavelet.edgcont = edgcont->getEditedState (); - pedited->wavelet.level0noise = level0noise->getEditedState (); - pedited->wavelet.level1noise = level1noise->getEditedState (); - pedited->wavelet.level2noise = level2noise->getEditedState (); - pedited->wavelet.level3noise = level3noise->getEditedState (); - pedited->wavelet.opacityCurveRG = !opacityShapeRG->isUnChanged (); - pedited->wavelet.opacityCurveBY = !opacityShapeBY->isUnChanged (); - pedited->wavelet.opacityCurveW = !opacityShape->isUnChanged (); - pedited->wavelet.opacityCurveWL = !opacityShapeWL->isUnChanged (); - pedited->wavelet.hhcurve = !hhshape->isUnChanged (); - pedited->wavelet.Chcurve = !Chshape->isUnChanged (); - pedited->wavelet.bllev = bllev->getEditedState (); - pedited->wavelet.pastlev = pastlev->getEditedState (); - pedited->wavelet.satlev = satlev->getEditedState (); - pedited->wavelet.strength = strength->getEditedState (); - pedited->wavelet.greenlow = greenlow->getEditedState (); - pedited->wavelet.bluelow = bluelow->getEditedState (); - pedited->wavelet.greenmed = greenmed->getEditedState (); - pedited->wavelet.bluemed = bluemed->getEditedState (); - pedited->wavelet.greenhigh = greenhigh->getEditedState (); - pedited->wavelet.bluehigh = bluehigh->getEditedState (); - pedited->wavelet.balance = balance->getEditedState (); - pedited->wavelet.iter = iter->getEditedState (); - pedited->wavelet.wavclCurve = !clshape->isUnChanged (); + pedited->wavelet.hllev = hllev->getEditedState(); + pedited->wavelet.ccwcurve = !ccshape->isUnChanged(); + pedited->wavelet.edgcont = edgcont->getEditedState(); + pedited->wavelet.level0noise = level0noise->getEditedState(); + pedited->wavelet.level1noise = level1noise->getEditedState(); + pedited->wavelet.level2noise = level2noise->getEditedState(); + pedited->wavelet.level3noise = level3noise->getEditedState(); + pedited->wavelet.opacityCurveRG = !opacityShapeRG->isUnChanged(); + pedited->wavelet.opacityCurveBY = !opacityShapeBY->isUnChanged(); + pedited->wavelet.opacityCurveW = !opacityShape->isUnChanged(); + pedited->wavelet.opacityCurveWL = !opacityShapeWL->isUnChanged(); + pedited->wavelet.hhcurve = !hhshape->isUnChanged(); + pedited->wavelet.Chcurve = !Chshape->isUnChanged(); + pedited->wavelet.bllev = bllev->getEditedState(); + pedited->wavelet.pastlev = pastlev->getEditedState(); + pedited->wavelet.satlev = satlev->getEditedState(); + pedited->wavelet.strength = strength->getEditedState(); + pedited->wavelet.greenlow = greenlow->getEditedState(); + pedited->wavelet.bluelow = bluelow->getEditedState(); + pedited->wavelet.greenmed = greenmed->getEditedState(); + pedited->wavelet.bluemed = bluemed->getEditedState(); + pedited->wavelet.greenhigh = greenhigh->getEditedState(); + pedited->wavelet.bluehigh = bluehigh->getEditedState(); + pedited->wavelet.mergeL = mergeL->getEditedState(); + pedited->wavelet.mergeC = mergeC->getEditedState(); + pedited->wavelet.softrad = softrad->getEditedState(); + pedited->wavelet.softradend = softradend->getEditedState(); + pedited->wavelet.balance = balance->getEditedState(); + pedited->wavelet.iter = iter->getEditedState(); + pedited->wavelet.wavclCurve = !clshape->isUnChanged(); pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); pedited->wavelet.expedge = !expedge->get_inconsistent(); @@ -1600,12 +1680,13 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.expfinal = !expfinal->get_inconsistent(); pedited->wavelet.exptoning = !exptoning->get_inconsistent(); pedited->wavelet.expnoise = !expnoise->get_inconsistent(); + pedited->wavelet.expclari = !expclari->get_inconsistent(); - for(int i = 0; i < 9; i++) { + for (int i = 0; i < 9; i++) { pedited->wavelet.c[i] = correction[i]->getEditedState(); } - for(int i = 0; i < 9; i++) { + for (int i = 0; i < 9; i++) { pedited->wavelet.ch[i] = correctionch[i]->getEditedState(); } @@ -1627,6 +1708,14 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pp->wavelet.Medgreinf = "less"; } + if (ushamethod->get_active_row_number() == 0) { + pp->wavelet.ushamethod = "none"; + } else if (ushamethod->get_active_row_number() == 1) { + pp->wavelet.ushamethod = "sharp"; + } else if (ushamethod->get_active_row_number() == 2) { + pp->wavelet.ushamethod = "clari"; + } + if (CHSLmethod->get_active_row_number() == 0) { pp->wavelet.CHSLmethod = "SL"; } else if (CHSLmethod->get_active_row_number() == 1) { @@ -1721,31 +1810,31 @@ void Wavelet::write (ProcParams* pp, ParamsEdited* pedited) pp->wavelet.Lmethod = Lmethod->get_active_row_number() + 1; } -void Wavelet::curveChanged (CurveEditor* ce) +void Wavelet::curveChanged(CurveEditor* ce) { if (listener && getEnabled()) { if (ce == ccshape) { - listener->panelChanged (EvWavCCCurve, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavCCCurve, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeRG) { - listener->panelChanged (EvWavColor, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavColor, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeBY) { - listener->panelChanged (EvWavOpac, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavOpac, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShape) { - listener->panelChanged (EvWavopacity, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavopacity, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeWL) { - listener->panelChanged (EvWavopacityWL, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavopacityWL, M("HISTORY_CUSTOMCURVE")); } else if (ce == hhshape) { - listener->panelChanged (EvWavHHCurve, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavHHCurve, M("HISTORY_CUSTOMCURVE")); } else if (ce == Chshape) { - listener->panelChanged (EvWavCHCurve, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavCHCurve, M("HISTORY_CUSTOMCURVE")); } else if (ce == clshape) { - listener->panelChanged (EvWavCLCurve, M("HISTORY_CUSTOMCURVE")); + listener->panelChanged(EvWavCLCurve, M("HISTORY_CUSTOMCURVE")); } } } -void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedited) +void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedited) { for (int i = 0; i < 9; i++) { @@ -1756,32 +1845,32 @@ void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi correctionch[i]->setDefault(defParams->wavelet.ch[i]); } - strength->setDefault(defParams->wavelet.strength ); - balance->setDefault(defParams->wavelet.balance ); - iter->setDefault(defParams->wavelet.iter ); - rescon->setDefault (defParams->wavelet.rescon); - resconH->setDefault (defParams->wavelet.resconH); - reschro->setDefault (defParams->wavelet.reschro); - tmrs->setDefault (defParams->wavelet.tmrs); - gamma->setDefault (defParams->wavelet.gamma); - sup->setDefault (defParams->wavelet.sup); - sky->setDefault (defParams->wavelet.sky); - thres->setDefault (defParams->wavelet.thres); - threshold->setDefault (defParams->wavelet.threshold); - threshold2->setDefault (defParams->wavelet.threshold2); - edgedetect->setDefault (defParams->wavelet.edgedetect); - edgedetectthr->setDefault (defParams->wavelet.edgedetectthr); - edgedetectthr2->setDefault (defParams->wavelet.edgedetectthr2); - edgesensi->setDefault (defParams->wavelet.edgesensi); - edgeampli->setDefault (defParams->wavelet.edgeampli); - chroma->setDefault (defParams->wavelet.chroma); - chro->setDefault (defParams->wavelet.chro); - contrast->setDefault (defParams->wavelet.contrast); - edgrad->setDefault (defParams->wavelet.edgrad); - edgval->setDefault (defParams->wavelet.edgval); - edgthresh->setDefault (defParams->wavelet.edgthresh); - thr->setDefault (defParams->wavelet.thr); - thrH->setDefault (defParams->wavelet.thrH); + strength->setDefault(defParams->wavelet.strength); + balance->setDefault(defParams->wavelet.balance); + iter->setDefault(defParams->wavelet.iter); + rescon->setDefault(defParams->wavelet.rescon); + resconH->setDefault(defParams->wavelet.resconH); + reschro->setDefault(defParams->wavelet.reschro); + tmrs->setDefault(defParams->wavelet.tmrs); + gamma->setDefault(defParams->wavelet.gamma); + sup->setDefault(defParams->wavelet.sup); + sky->setDefault(defParams->wavelet.sky); + thres->setDefault(defParams->wavelet.thres); + threshold->setDefault(defParams->wavelet.threshold); + threshold2->setDefault(defParams->wavelet.threshold2); + edgedetect->setDefault(defParams->wavelet.edgedetect); + edgedetectthr->setDefault(defParams->wavelet.edgedetectthr); + edgedetectthr2->setDefault(defParams->wavelet.edgedetectthr2); + edgesensi->setDefault(defParams->wavelet.edgesensi); + edgeampli->setDefault(defParams->wavelet.edgeampli); + chroma->setDefault(defParams->wavelet.chroma); + chro->setDefault(defParams->wavelet.chro); + contrast->setDefault(defParams->wavelet.contrast); + edgrad->setDefault(defParams->wavelet.edgrad); + edgval->setDefault(defParams->wavelet.edgval); + edgthresh->setDefault(defParams->wavelet.edgthresh); + thr->setDefault(defParams->wavelet.thr); + thrH->setDefault(defParams->wavelet.thrH); hueskin->setDefault (defParams->wavelet.hueskin); hueskin2->setDefault (defParams->wavelet.hueskin2); hllev->setDefault (defParams->wavelet.hllev); @@ -1794,27 +1883,35 @@ void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi level2noise->setDefault (defParams->wavelet.level2noise); level3noise->setDefault (defParams->wavelet.level3noise); - greenlow->setDefault (defParams->wavelet.greenlow); - bluelow->setDefault (defParams->wavelet.bluelow); - greenmed->setDefault (defParams->wavelet.greenmed); - bluemed->setDefault (defParams->wavelet.bluemed); - greenhigh->setDefault (defParams->wavelet.greenhigh); - bluehigh->setDefault (defParams->wavelet.bluehigh); + greenlow->setDefault(defParams->wavelet.greenlow); + bluelow->setDefault(defParams->wavelet.bluelow); + greenmed->setDefault(defParams->wavelet.greenmed); + bluemed->setDefault(defParams->wavelet.bluemed); + greenhigh->setDefault(defParams->wavelet.greenhigh); + bluehigh->setDefault(defParams->wavelet.bluehigh); + mergeL->setDefault(defParams->wavelet.mergeL); + mergeC->setDefault(defParams->wavelet.mergeC); + softrad->setDefault(defParams->wavelet.softrad); + softradend->setDefault(defParams->wavelet.softradend); if (pedited) { - greenlow->setDefaultEditedState (pedited->wavelet.greenlow ? Edited : UnEdited); - bluelow->setDefaultEditedState (pedited->wavelet.bluelow ? Edited : UnEdited); - greenmed->setDefaultEditedState (pedited->wavelet.greenmed ? Edited : UnEdited); - bluemed->setDefaultEditedState (pedited->wavelet.bluemed ? Edited : UnEdited); - greenhigh->setDefaultEditedState (pedited->wavelet.greenhigh ? Edited : UnEdited); - bluehigh->setDefaultEditedState (pedited->wavelet.bluehigh ? Edited : UnEdited); + greenlow->setDefaultEditedState(pedited->wavelet.greenlow ? Edited : UnEdited); + bluelow->setDefaultEditedState(pedited->wavelet.bluelow ? Edited : UnEdited); + greenmed->setDefaultEditedState(pedited->wavelet.greenmed ? Edited : UnEdited); + bluemed->setDefaultEditedState(pedited->wavelet.bluemed ? Edited : UnEdited); + greenhigh->setDefaultEditedState(pedited->wavelet.greenhigh ? Edited : UnEdited); + bluehigh->setDefaultEditedState(pedited->wavelet.bluehigh ? Edited : UnEdited); + mergeL->setDefaultEditedState(pedited->wavelet.mergeL ? Edited : UnEdited); + mergeC->setDefaultEditedState(pedited->wavelet.mergeC ? Edited : UnEdited); + softrad->setDefaultEditedState(pedited->wavelet.softrad ? Edited : UnEdited); + softradend->setDefaultEditedState(pedited->wavelet.softradend ? Edited : UnEdited); - rescon->setDefault (defParams->wavelet.rescon); - resconH->setDefault (defParams->wavelet.resconH); - reschro->setDefault (defParams->wavelet.reschro); - tmrs->setDefault (defParams->wavelet.tmrs); - gamma->setDefault (defParams->wavelet.gamma); - sup->setDefault (defParams->wavelet.sup); + rescon->setDefault(defParams->wavelet.rescon); + resconH->setDefault(defParams->wavelet.resconH); + reschro->setDefault(defParams->wavelet.reschro); + tmrs->setDefault(defParams->wavelet.tmrs); + gamma->setDefault(defParams->wavelet.gamma); + sup->setDefault(defParams->wavelet.sup); sky->setDefaultEditedState(pedited->wavelet.sky ? Edited : UnEdited); thres->setDefaultEditedState(pedited->wavelet.thres ? Edited : UnEdited); threshold->setDefaultEditedState(pedited->wavelet.threshold ? Edited : UnEdited); @@ -1829,7 +1926,7 @@ void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi contrast->setDefaultEditedState(pedited->wavelet.contrast ? Edited : UnEdited); edgrad->setDefaultEditedState(pedited->wavelet.edgrad ? Edited : UnEdited); edgval->setDefaultEditedState(pedited->wavelet.edgval ? Edited : UnEdited); - edgthresh->setDefault (defParams->wavelet.edgthresh); + edgthresh->setDefault(defParams->wavelet.edgthresh); thr->setDefaultEditedState(pedited->wavelet.thr ? Edited : UnEdited); thrH->setDefaultEditedState(pedited->wavelet.thrH ? Edited : UnEdited); skinprotect->setDefaultEditedState(pedited->wavelet.skinprotect ? Edited : UnEdited); @@ -1880,20 +1977,20 @@ void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi thr->setDefaultEditedState(Irrelevant); thrH->setDefaultEditedState(Irrelevant); skinprotect->setDefaultEditedState(Irrelevant); - hueskin->setDefaultEditedState (Irrelevant); - hueskin2->setDefaultEditedState (Irrelevant); - hllev->setDefaultEditedState (Irrelevant); - bllev->setDefaultEditedState (Irrelevant); - edgcont->setDefaultEditedState (Irrelevant); - level0noise->setDefaultEditedState (Irrelevant); - level1noise->setDefaultEditedState (Irrelevant); - level2noise->setDefaultEditedState (Irrelevant); - level3noise->setDefaultEditedState (Irrelevant); - pastlev->setDefaultEditedState (Irrelevant); - satlev->setDefaultEditedState (Irrelevant); - strength->setDefaultEditedState (Irrelevant); - balance->setDefaultEditedState (Irrelevant); - iter->setDefaultEditedState (Irrelevant); + hueskin->setDefaultEditedState(Irrelevant); + hueskin2->setDefaultEditedState(Irrelevant); + hllev->setDefaultEditedState(Irrelevant); + bllev->setDefaultEditedState(Irrelevant); + edgcont->setDefaultEditedState(Irrelevant); + level0noise->setDefaultEditedState(Irrelevant); + level1noise->setDefaultEditedState(Irrelevant); + level2noise->setDefaultEditedState(Irrelevant); + level3noise->setDefaultEditedState(Irrelevant); + pastlev->setDefaultEditedState(Irrelevant); + satlev->setDefaultEditedState(Irrelevant); + strength->setDefaultEditedState(Irrelevant); + balance->setDefaultEditedState(Irrelevant); + iter->setDefaultEditedState(Irrelevant); for (int i = 0; i < 9; i++) { correction[i]->setDefaultEditedState(Irrelevant); @@ -1907,19 +2004,19 @@ void Wavelet::setDefaults (const ProcParams* defParams, const ParamsEdited* pedi void Wavelet::adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) { - if (listener && (multiImage || getEnabled()) ) { - if(a == level0noise) { - listener->panelChanged (EvWavlev0nois, - Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); - } else if(a == level1noise) { - listener->panelChanged (EvWavlev1nois, - Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); - } else if(a == level2noise) { - listener->panelChanged (EvWavlev2nois, - Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); - } else if(a == level3noise) { - listener->panelChanged (EvWavlev3nois, - Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); + if (listener && (multiImage || getEnabled())) { + if (a == level0noise) { + listener->panelChanged(EvWavlev0nois, + Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); + } else if (a == level1noise) { + listener->panelChanged(EvWavlev1nois, + Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); + } else if (a == level2noise) { + listener->panelChanged(EvWavlev2nois, + Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); + } else if (a == level3noise) { + listener->panelChanged(EvWavlev3nois, + Glib::ustring::compose(Glib::ustring(M("TP_WAVELET_NOIS") + ": %1" + "\n" + M("TP_WAVELET_STREN") + ": %2"), int(newTop), int(newBottom))); } } @@ -1939,21 +2036,21 @@ void Wavelet::adjusterChanged(ThresholdAdjuster* a, int newBottomLeft, int newTo void Wavelet::adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) { - if (listener && (multiImage || getEnabled()) ) { - if(a == hueskin) { - listener->panelChanged (EvWavHueskin, hueskin->getHistoryString()); - } else if(a == hueskin2) { - listener->panelChanged (EvWavHueskin2, hueskin2->getHistoryString()); - } else if(a == hllev) { - listener->panelChanged (EvWavlhl, hllev->getHistoryString()); - } else if(a == bllev) { - listener->panelChanged (EvWavlbl, bllev->getHistoryString()); - } else if(a == pastlev) { - listener->panelChanged (EvWavpast, pastlev->getHistoryString()); - } else if(a == satlev) { - listener->panelChanged (EvWavsat, satlev->getHistoryString()); - } else if(a == edgcont) { - listener->panelChanged (EvWavedgcont, edgcont->getHistoryString()); + if (listener && (multiImage || getEnabled())) { + if (a == hueskin) { + listener->panelChanged(EvWavHueskin, hueskin->getHistoryString()); + } else if (a == hueskin2) { + listener->panelChanged(EvWavHueskin2, hueskin2->getHistoryString()); + } else if (a == hllev) { + listener->panelChanged(EvWavlhl, hllev->getHistoryString()); + } else if (a == bllev) { + listener->panelChanged(EvWavlbl, bllev->getHistoryString()); + } else if (a == pastlev) { + listener->panelChanged(EvWavpast, pastlev->getHistoryString()); + } else if (a == satlev) { + listener->panelChanged(EvWavsat, satlev->getHistoryString()); + } else if (a == edgcont) { + listener->panelChanged(EvWavedgcont, edgcont->getHistoryString()); } } } @@ -1961,7 +2058,7 @@ void Wavelet::adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL void Wavelet::HSmethodUpdateUI() { if (!batchMode) { - if(HSmethod->get_active_row_number() == 0) { //without + if (HSmethod->get_active_row_number() == 0) { //without hllev->hide(); bllev->hide(); threshold->hide(); @@ -1979,15 +2076,15 @@ void Wavelet::HSmethodChanged() { HSmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavHSmet, HSmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavHSmet, HSmethod->get_active_text()); } } void Wavelet::CHmethodUpdateUI() { if (!batchMode) { - if(CHmethod->get_active_row_number() == 0) { + if (CHmethod->get_active_row_number() == 0) { CHSLmethod->show(); pastlev->hide(); satlev->hide(); @@ -1999,14 +2096,14 @@ void Wavelet::CHmethodUpdateUI() int y = thres->getValue(); int z; - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correctionch[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correctionch[z]->show(); } - } else if(CHmethod->get_active_row_number() == 1) { + } else if (CHmethod->get_active_row_number() == 1) { CHSLmethod->show(); pastlev->show(); satlev->show(); @@ -2018,11 +2115,11 @@ void Wavelet::CHmethodUpdateUI() int y = thres->getValue(); int z; - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correctionch[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correctionch[z]->show(); } } else { @@ -2046,8 +2143,8 @@ void Wavelet::CHmethodChanged() { CHmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavCHmet, CHmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavCHmet, CHmethod->get_active_text()); } } @@ -2086,10 +2183,10 @@ void Wavelet::CHSLmethodChanged() void Wavelet::EDmethodUpdateUI() { if (!batchMode) { - if(EDmethod->get_active_row_number() == 0 ) { //SL + if (EDmethod->get_active_row_number() == 0) { //SL CCWcurveEditorG->hide(); edgcont->show(); - } else if(EDmethod->get_active_row_number() == 1) { //CU + } else if (EDmethod->get_active_row_number() == 1) { //CU CCWcurveEditorG->show(); edgcont->hide(); } @@ -2099,8 +2196,8 @@ void Wavelet::EDmethodChanged() { EDmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavEDmet, EDmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavEDmet, EDmethod->get_active_text()); } } @@ -2114,8 +2211,8 @@ void Wavelet::NPmethodChanged() { NPmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavNPmet, NPmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavNPmet, NPmethod->get_active_text()); } } @@ -2124,16 +2221,16 @@ void Wavelet::NPmethodChanged() void Wavelet::BAmethodUpdateUI() { if (!batchMode) { - if(BAmethod->get_active_row_number() == 0 ) { //none + if (BAmethod->get_active_row_number() == 0) { //none balance->hide(); opacityCurveEditorW->hide(); iter->hide(); - } else if(BAmethod->get_active_row_number() == 1) { //sli + } else if (BAmethod->get_active_row_number() == 1) { //sli opacityCurveEditorW->hide(); balance->show(); iter->show(); - } else if(BAmethod->get_active_row_number() == 2) { //CU + } else if (BAmethod->get_active_row_number() == 2) { //CU opacityCurveEditorW->show(); balance->hide(); iter->show(); @@ -2144,8 +2241,8 @@ void Wavelet::BAmethodChanged() { BAmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavBAmet, BAmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavBAmet, BAmethod->get_active_text()); } } @@ -2168,8 +2265,8 @@ void Wavelet::TMmethodChanged() { TMmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavTMmet, TMmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavTMmet, TMmethod->get_active_text()); } } @@ -2183,8 +2280,8 @@ void Wavelet::BackmethodUpdateUI() { void Wavelet::BackmethodChanged() { //BackmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavBackmet, Backmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavBackmet, Backmethod->get_active_text()); } } @@ -2192,19 +2289,19 @@ void Wavelet::CLmethodUpdateUI() { if (!batchMode) { if (CLmethod->get_active_row_number() == 0) { - CLmethod->set_active (0); + CLmethod->set_active(0); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); } else if (CLmethod->get_active_row_number() == 1) { - CLmethod->set_active (1); + CLmethod->set_active(1); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); } else if (CLmethod->get_active_row_number() == 2) { - CLmethod->set_active (2); + CLmethod->set_active(2); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); } else if (CLmethod->get_active_row_number() == 3) { - CLmethod->set_active (3); + CLmethod->set_active(3); Lmethod->set_sensitive(false); Dirmethod->set_sensitive(false); } @@ -2215,8 +2312,8 @@ void Wavelet::CLmethodChanged() { CLmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavCLmet, CLmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavCLmet, CLmethod->get_active_text()); } } @@ -2227,11 +2324,50 @@ void Wavelet::TilesmethodUpdateUI() { } */ + +void Wavelet::ushamethodChanged() +{ + if (ushamethod->get_active_row_number() == 2 && expclari->getEnabled() == true) { + Backmethod->set_active(2); + CLmethod->set_active(2); + Lmethod->set_active(6); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + Dirmethod->set_active(3); + } else if (ushamethod->get_active_row_number() == 1 && expclari->getEnabled() == true) { + Backmethod->set_active(0); + CLmethod->set_active(1); + Lmethod->set_active(2); + Dirmethod->set_active(3); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { + Backmethod->set_active(1); + CLmethod->set_active(3); + Lmethod->set_active(3); + Dirmethod->set_active(3); + Lmethod->set_sensitive(false); + Dirmethod->set_sensitive(false); + } else if (expclari->getEnabled() == false) { + Backmethod->set_active(1); + CLmethod->set_active(3); + Lmethod->set_active(3); + Dirmethod->set_active(3); + Lmethod->set_sensitive(false); + Dirmethod->set_sensitive(false); + } + + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavushamet, ushamethod->get_active_text()); + } +} + + void Wavelet::TilesmethodChanged() { //TilesmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavTilesmet, Tilesmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavTilesmet, Tilesmethod->get_active_text()); } } @@ -2243,8 +2379,8 @@ void Wavelet::daubcoeffmethodUpdateUI() { void Wavelet::daubcoeffmethodChanged() { //daubcoeffmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavdaubcoeffmet, daubcoeffmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavdaubcoeffmet, daubcoeffmethod->get_active_text()); } } @@ -2257,8 +2393,8 @@ void Wavelet::MedgreinfUpdateUI() { void Wavelet::MedgreinfChanged() { //MedgreinfUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavedgreinf, Medgreinf->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavedgreinf, Medgreinf->get_active_text()); } } @@ -2271,8 +2407,8 @@ void Wavelet::DirmethodUpdateUI() { void Wavelet::DirmethodChanged() { //DirmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavDirmeto, Dirmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavDirmeto, Dirmethod->get_active_text()); } } @@ -2285,74 +2421,75 @@ void Wavelet::LmethodUpdateUI() { void Wavelet::LmethodChanged() { //LmethodUpdateUI(); - if (listener && (multiImage || getEnabled()) ) { - listener->panelChanged (EvWavLmet, Lmethod->get_active_text ()); + if (listener && (multiImage || getEnabled())) { + listener->panelChanged(EvWavLmet, Lmethod->get_active_text()); } } -void Wavelet::setBatchMode (bool batchMode) +void Wavelet::setBatchMode(bool batchMode) { - Lmethod->append (M("GENERAL_UNCHANGED")); - CLmethod->append (M("GENERAL_UNCHANGED")); - Backmethod->append (M("GENERAL_UNCHANGED")); - Tilesmethod->append (M("GENERAL_UNCHANGED")); - daubcoeffmethod->append (M("GENERAL_UNCHANGED")); - CHmethod->append (M("GENERAL_UNCHANGED")); - Medgreinf->append (M("GENERAL_UNCHANGED")); - CHSLmethod->append (M("GENERAL_UNCHANGED")); - EDmethod->append (M("GENERAL_UNCHANGED")); - NPmethod->append (M("GENERAL_UNCHANGED")); - BAmethod->append (M("GENERAL_UNCHANGED")); - TMmethod->append (M("GENERAL_UNCHANGED")); - HSmethod->append (M("GENERAL_UNCHANGED")); - Dirmethod->append (M("GENERAL_UNCHANGED")); - CCWcurveEditorG->setBatchMode (batchMode); - opaCurveEditorG->setBatchMode (batchMode); - opacityCurveEditorG->setBatchMode (batchMode); - opacityCurveEditorW->setBatchMode (batchMode); - opacityCurveEditorWL->setBatchMode (batchMode); - curveEditorRES->setBatchMode (batchMode); - curveEditorGAM->setBatchMode (batchMode); - rescon->showEditedCB (); - resconH->showEditedCB (); - reschro->showEditedCB (); - tmrs->showEditedCB (); - gamma->showEditedCB (); - sup->showEditedCB (); - sky->showEditedCB (); - thres->showEditedCB (); - threshold->showEditedCB (); - threshold2->showEditedCB (); - edgedetect->showEditedCB (); - edgedetectthr->showEditedCB (); - edgedetectthr2->showEditedCB (); - edgesensi->showEditedCB (); - edgeampli->showEditedCB (); - chroma->showEditedCB (); - chro->showEditedCB (); - contrast->showEditedCB (); - edgrad->showEditedCB (); - edgval->showEditedCB (); - edgthresh->showEditedCB (); - thr->showEditedCB (); - thrH->showEditedCB (); + Lmethod->append(M("GENERAL_UNCHANGED")); + CLmethod->append(M("GENERAL_UNCHANGED")); + Backmethod->append(M("GENERAL_UNCHANGED")); + Tilesmethod->append(M("GENERAL_UNCHANGED")); + daubcoeffmethod->append(M("GENERAL_UNCHANGED")); + CHmethod->append(M("GENERAL_UNCHANGED")); + Medgreinf->append(M("GENERAL_UNCHANGED")); + ushamethod->append(M("GENERAL_UNCHANGED")); + CHSLmethod->append(M("GENERAL_UNCHANGED")); + EDmethod->append(M("GENERAL_UNCHANGED")); + NPmethod->append(M("GENERAL_UNCHANGED")); + BAmethod->append(M("GENERAL_UNCHANGED")); + TMmethod->append(M("GENERAL_UNCHANGED")); + HSmethod->append(M("GENERAL_UNCHANGED")); + Dirmethod->append(M("GENERAL_UNCHANGED")); + CCWcurveEditorG->setBatchMode(batchMode); + opaCurveEditorG->setBatchMode(batchMode); + opacityCurveEditorG->setBatchMode(batchMode); + opacityCurveEditorW->setBatchMode(batchMode); + opacityCurveEditorWL->setBatchMode(batchMode); + curveEditorRES->setBatchMode(batchMode); + curveEditorGAM->setBatchMode(batchMode); + rescon->showEditedCB(); + resconH->showEditedCB(); + reschro->showEditedCB(); + tmrs->showEditedCB(); + gamma->showEditedCB(); + sup->showEditedCB(); + sky->showEditedCB(); + thres->showEditedCB(); + threshold->showEditedCB(); + threshold2->showEditedCB(); + edgedetect->showEditedCB(); + edgedetectthr->showEditedCB(); + edgedetectthr2->showEditedCB(); + edgesensi->showEditedCB(); + edgeampli->showEditedCB(); + chroma->showEditedCB(); + chro->showEditedCB(); + contrast->showEditedCB(); + edgrad->showEditedCB(); + edgval->showEditedCB(); + edgthresh->showEditedCB(); + thr->showEditedCB(); + thrH->showEditedCB(); skinprotect->showEditedCB(); - hueskin->showEditedCB (); - hueskin2->showEditedCB (); - hllev->showEditedCB (); - bllev->showEditedCB (); - pastlev->showEditedCB (); - satlev->showEditedCB (); - edgcont->showEditedCB (); - strength->showEditedCB (); - balance->showEditedCB (); - iter->showEditedCB (); - level0noise->showEditedCB (); - level1noise->showEditedCB (); - level2noise->showEditedCB (); - level3noise->showEditedCB (); + hueskin->showEditedCB(); + hueskin2->showEditedCB(); + hllev->showEditedCB(); + bllev->showEditedCB(); + pastlev->showEditedCB(); + satlev->showEditedCB(); + edgcont->showEditedCB(); + strength->showEditedCB(); + balance->showEditedCB(); + iter->showEditedCB(); + level0noise->showEditedCB(); + level1noise->showEditedCB(); + level2noise->showEditedCB(); + level3noise->showEditedCB(); - ToolPanel::setBatchMode (batchMode); + ToolPanel::setBatchMode(batchMode); for (int i = 0; i < 9; i++) { correction[i]->showEditedCB(); @@ -2363,7 +2500,7 @@ void Wavelet::setBatchMode (bool batchMode) } } -void Wavelet::adjusterUpdateUI (Adjuster* a) +void Wavelet::adjusterUpdateUI(Adjuster* a) { /* if (!batchMode) { @@ -2386,128 +2523,136 @@ void Wavelet::adjusterUpdateUI (Adjuster* a) void Wavelet::adjusterChanged(Adjuster* a, double newval) { - if (listener && (multiImage || getEnabled()) ) { + if (listener && (multiImage || getEnabled())) { if (a == edgthresh) { - listener->panelChanged (EvWavtiles, edgthresh->getTextValue()); - } else if (a == rescon ) { - listener->panelChanged (EvWavrescon, rescon->getTextValue()); - } else if (a == resconH ) { - listener->panelChanged (EvWavresconH, resconH->getTextValue()); - } else if (a == reschro ) { - listener->panelChanged (EvWavreschro, reschro->getTextValue()); - } else if (a == tmrs ) { + listener->panelChanged(EvWavtiles, edgthresh->getTextValue()); + } else if (a == rescon) { + listener->panelChanged(EvWavrescon, rescon->getTextValue()); + } else if (a == resconH) { + listener->panelChanged(EvWavresconH, resconH->getTextValue()); + } else if (a == reschro) { + listener->panelChanged(EvWavreschro, reschro->getTextValue()); + } else if (a == tmrs) { adjusterUpdateUI(a); - listener->panelChanged (EvWavtmrs, tmrs->getTextValue()); - } else if (a == gamma ) { + listener->panelChanged(EvWavtmrs, tmrs->getTextValue()); + } else if (a == gamma) { adjusterUpdateUI(a); - listener->panelChanged (EvWavgamma, gamma->getTextValue()); - } else if (a == sky ) { - listener->panelChanged (EvWavsky, sky->getTextValue()); - } else if (a == sup ) { - listener->panelChanged (EvWavsup, sup->getTextValue()); - } else if (a == chroma ) { - listener->panelChanged (EvWavchroma, chroma->getTextValue()); - } else if (a == chro ) { - listener->panelChanged (EvWavchro, chro->getTextValue()); - } else if (a == contrast ) { - listener->panelChanged (EvWavunif, contrast->getTextValue()); - } else if (a == thr ) { - listener->panelChanged (EvWavthr, thr->getTextValue()); - } else if (a == thrH ) { - listener->panelChanged (EvWavthrH, thrH->getTextValue()); - } else if (a == threshold ) { - listener->panelChanged (EvWavThreshold, threshold->getTextValue()); - } else if (a == threshold2 ) { - listener->panelChanged (EvWavThreshold2, threshold2->getTextValue()); - } else if (a == edgedetect ) { - listener->panelChanged (EvWavedgedetect, edgedetect->getTextValue()); - } else if (a == edgedetectthr ) { - listener->panelChanged (EvWavedgedetectthr, edgedetectthr->getTextValue()); - } else if (a == edgedetectthr2 ) { - listener->panelChanged (EvWavedgedetectthr2, edgedetectthr2->getTextValue()); - } else if (a == edgesensi ) { - listener->panelChanged (EvWavedgesensi, edgesensi->getTextValue()); - } else if (a == edgeampli ) { - listener->panelChanged (EvWavedgeampli, edgeampli->getTextValue()); - } else if (a == edgrad ) { - listener->panelChanged (EvWavedgrad, edgrad->getTextValue()); - } else if (a == edgval ) { - listener->panelChanged (EvWavedgval, edgval->getTextValue()); - } else if (a == thres ) { + listener->panelChanged(EvWavgamma, gamma->getTextValue()); + } else if (a == sky) { + listener->panelChanged(EvWavsky, sky->getTextValue()); + } else if (a == sup) { + listener->panelChanged(EvWavsup, sup->getTextValue()); + } else if (a == chroma) { + listener->panelChanged(EvWavchroma, chroma->getTextValue()); + } else if (a == chro) { + listener->panelChanged(EvWavchro, chro->getTextValue()); + } else if (a == contrast) { + listener->panelChanged(EvWavunif, contrast->getTextValue()); + } else if (a == thr) { + listener->panelChanged(EvWavthr, thr->getTextValue()); + } else if (a == thrH) { + listener->panelChanged(EvWavthrH, thrH->getTextValue()); + } else if (a == threshold) { + listener->panelChanged(EvWavThreshold, threshold->getTextValue()); + } else if (a == threshold2) { + listener->panelChanged(EvWavThreshold2, threshold2->getTextValue()); + } else if (a == edgedetect) { + listener->panelChanged(EvWavedgedetect, edgedetect->getTextValue()); + } else if (a == edgedetectthr) { + listener->panelChanged(EvWavedgedetectthr, edgedetectthr->getTextValue()); + } else if (a == edgedetectthr2) { + listener->panelChanged(EvWavedgedetectthr2, edgedetectthr2->getTextValue()); + } else if (a == edgesensi) { + listener->panelChanged(EvWavedgesensi, edgesensi->getTextValue()); + } else if (a == edgeampli) { + listener->panelChanged(EvWavedgeampli, edgeampli->getTextValue()); + } else if (a == edgrad) { + listener->panelChanged(EvWavedgrad, edgrad->getTextValue()); + } else if (a == edgval) { + listener->panelChanged(EvWavedgval, edgval->getTextValue()); + } else if (a == thres) { int y = thres->getValue(); int z; - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correction[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correction[z]->show(); } - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correctionch[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correctionch[z]->show(); } - if(z == 9) { + if (z == 9) { sup->show(); } else { sup->hide(); } - listener->panelChanged (EvWavthres, thres->getTextValue()); + listener->panelChanged(EvWavthres, thres->getTextValue()); } else if (a == skinprotect) { - listener->panelChanged (EvWavSkin, skinprotect->getTextValue()); + listener->panelChanged(EvWavSkin, skinprotect->getTextValue()); } else if (a == strength) { - listener->panelChanged (EvWavStrength, strength->getTextValue()); + listener->panelChanged(EvWavStrength, strength->getTextValue()); } else if (a == balance) { - listener->panelChanged (EvWavbalance, balance->getTextValue()); + listener->panelChanged(EvWavbalance, balance->getTextValue()); } else if (a == iter) { - listener->panelChanged (EvWaviter, iter->getTextValue()); - } else if (a == greenhigh ) { - listener->panelChanged (EvWavgreenhigh, greenhigh->getTextValue()); - } else if (a == bluehigh ) { - listener->panelChanged (EvWavbluehigh, bluehigh->getTextValue()); - } else if (a == greenmed ) { - listener->panelChanged (EvWavgreenmed, greenmed->getTextValue()); - } else if (a == bluemed ) { - listener->panelChanged (EvWavbluemed, bluemed->getTextValue()); - } else if (a == greenlow ) { - listener->panelChanged (EvWavgreenlow, greenlow->getTextValue()); - } else if (a == bluelow ) { - listener->panelChanged (EvWavbluelow, bluelow->getTextValue()); + listener->panelChanged(EvWaviter, iter->getTextValue()); + } else if (a == greenhigh) { + listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); + } else if (a == bluehigh) { + listener->panelChanged(EvWavbluehigh, bluehigh->getTextValue()); + } else if (a == mergeL) { + listener->panelChanged(EvWavmergeL, mergeL->getTextValue()); + } else if (a == mergeC) { + listener->panelChanged(EvWavmergeC, mergeC->getTextValue()); + } else if (a == softrad) { + listener->panelChanged(EvWavsoftrad, softrad->getTextValue()); + } else if (a == softradend) { + listener->panelChanged(EvWavsoftradend, softradend->getTextValue()); + } else if (a == greenmed) { + listener->panelChanged(EvWavgreenmed, greenmed->getTextValue()); + } else if (a == bluemed) { + listener->panelChanged(EvWavbluemed, bluemed->getTextValue()); + } else if (a == greenlow) { + listener->panelChanged(EvWavgreenlow, greenlow->getTextValue()); + } else if (a == bluelow) { + listener->panelChanged(EvWavbluelow, bluelow->getTextValue()); } if ((a == correction[0] || a == correction[1] || a == correction[2] || a == correction[3] || a == correction[4] || a == correction[5] || a == correction[6] || a == correction[7] || a == correction[8])) { - listener->panelChanged (EvWavelet, - Glib::ustring::compose("%1, %2, %3, %4, %5, %6, %7, %8, %9", - Glib::ustring::format(std::fixed, std::setprecision(0), correction[0]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[1]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[2]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[3]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[4]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[5]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[6]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[7]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correction[8]->getValue())) - ); - } else if (a == correctionch[0] || a == correctionch[1] || a == correctionch[2] || a == correctionch[3] || a == correctionch[4] || a == correctionch[5] || a == correctionch[6] || a == correctionch[7] || a == correctionch[8] ) { - listener->panelChanged (EvWaveletch, - Glib::ustring::compose("%1, %2, %3, %4, %5, %6, %7, %8, %9", - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[0]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[1]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[2]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[3]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[4]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[5]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[6]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[7]->getValue()), - Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[8]->getValue())) - ); + listener->panelChanged(EvWavelet, + Glib::ustring::compose("%1, %2, %3, %4, %5, %6, %7, %8, %9", + Glib::ustring::format(std::fixed, std::setprecision(0), correction[0]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[1]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[2]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[3]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[4]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[5]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[6]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[7]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correction[8]->getValue())) + ); + } else if (a == correctionch[0] || a == correctionch[1] || a == correctionch[2] || a == correctionch[3] || a == correctionch[4] || a == correctionch[5] || a == correctionch[6] || a == correctionch[7] || a == correctionch[8]) { + listener->panelChanged(EvWaveletch, + Glib::ustring::compose("%1, %2, %3, %4, %5, %6, %7, %8, %9", + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[0]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[1]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[2]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[3]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[4]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[5]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[6]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[7]->getValue()), + Glib::ustring::format(std::fixed, std::setprecision(0), correctionch[8]->getValue())) + ); } } } @@ -2516,21 +2661,21 @@ void Wavelet::adjusterAutoToggled(Adjuster* a, bool newval) { } -void Wavelet::enabledUpdateUI () +void Wavelet::enabledUpdateUI() { if (!batchMode) { int y = thres->getValue(); int z; - for(z = y; z < 9; z++) { + for (z = y; z < 9; z++) { correction[z]->hide(); } - for(z = 0; z < y; z++) { + for (z = 0; z < y; z++) { correction[z]->show(); } - if(z == 9) { + if (z == 9) { sup->show(); } else { sup->hide(); @@ -2540,52 +2685,52 @@ void Wavelet::enabledUpdateUI () } } -void Wavelet::enabledChanged () +void Wavelet::enabledChanged() { enabledUpdateUI(); if (listener) { if (get_inconsistent()) { - listener->panelChanged (EvWavEnabled, M("GENERAL_UNCHANGED")); + listener->panelChanged(EvWavEnabled, M("GENERAL_UNCHANGED")); } else if (getEnabled()) { - listener->panelChanged (EvWavEnabled, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavEnabled, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavEnabled, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavEnabled, M("GENERAL_DISABLED")); } } } -void Wavelet::medianToggled () +void Wavelet::medianToggled() { if (multiImage) { if (median->get_inconsistent()) { - median->set_inconsistent (false); - medianConn.block (true); - median->set_active (false); - medianConn.block (false); + median->set_inconsistent(false); + medianConn.block(true); + median->set_active(false); + medianConn.block(false); } else if (lastmedian) { - median->set_inconsistent (true); + median->set_inconsistent(true); } - lastmedian = median->get_active (); + lastmedian = median->get_active(); } - if (listener && (multiImage || getEnabled ())) { + if (listener && (multiImage || getEnabled())) { if (median->get_inconsistent()) { - listener->panelChanged (EvWavmedian, M("GENERAL_UNCHANGED")); - } else if (median->get_active ()) { - listener->panelChanged (EvWavmedian, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavmedian, M("GENERAL_UNCHANGED")); + } else if (median->get_active()) { + listener->panelChanged(EvWavmedian, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavmedian, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavmedian, M("GENERAL_DISABLED")); } } } -void Wavelet::medianlevUpdateUI () +void Wavelet::medianlevUpdateUI() { if (!batchMode) { - if (medianlev->get_active ()) { + if (medianlev->get_active()) { edgedetect->show(); lipst->show(); separatoredge->show(); @@ -2597,7 +2742,7 @@ void Wavelet::medianlevUpdateUI () // edgeampli->show(); // NPmethod->show(); // labmNP->show(); - if (lipst->get_active ()) { + if (lipst->get_active()) { edgesensi->show(); edgeampli->show(); NPmethod->show(); @@ -2625,66 +2770,66 @@ void Wavelet::medianlevUpdateUI () } } -void Wavelet::medianlevToggled () +void Wavelet::medianlevToggled() { if (multiImage) { if (medianlev->get_inconsistent()) { - medianlev->set_inconsistent (false); - medianlevConn.block (true); - medianlev->set_active (false); - medianlevConn.block (false); + medianlev->set_inconsistent(false); + medianlevConn.block(true); + medianlev->set_active(false); + medianlevConn.block(false); } else if (lastmedianlev) { - medianlev->set_inconsistent (true); + medianlev->set_inconsistent(true); } - lastmedianlev = medianlev->get_active (); + lastmedianlev = medianlev->get_active(); } medianlevUpdateUI(); - if (listener && (multiImage || getEnabled ())) { + if (listener && (multiImage || getEnabled())) { if (medianlev->get_inconsistent()) { - listener->panelChanged (EvWavmedianlev, M("GENERAL_UNCHANGED")); - } else if (medianlev->get_active () ) { - listener->panelChanged (EvWavmedianlev, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavmedianlev, M("GENERAL_UNCHANGED")); + } else if (medianlev->get_active()) { + listener->panelChanged(EvWavmedianlev, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavmedianlev, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavmedianlev, M("GENERAL_DISABLED")); } } } -void Wavelet::linkedgToggled () +void Wavelet::linkedgToggled() { if (multiImage) { if (linkedg->get_inconsistent()) { - linkedg->set_inconsistent (false); - linkedgConn.block (true); - linkedg->set_active (false); - linkedgConn.block (false); + linkedg->set_inconsistent(false); + linkedgConn.block(true); + linkedg->set_active(false); + linkedgConn.block(false); } else if (lastlinkedg) { - linkedg->set_inconsistent (true); + linkedg->set_inconsistent(true); } - lastlinkedg = linkedg->get_active (); + lastlinkedg = linkedg->get_active(); } - if (listener && (multiImage || getEnabled ())) { + if (listener && (multiImage || getEnabled())) { if (linkedg->get_inconsistent()) { - listener->panelChanged (EvWavlinkedg, M("GENERAL_UNCHANGED")); - } else if (linkedg->get_active () ) { - listener->panelChanged (EvWavlinkedg, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavlinkedg, M("GENERAL_UNCHANGED")); + } else if (linkedg->get_active()) { + listener->panelChanged(EvWavlinkedg, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavlinkedg, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavlinkedg, M("GENERAL_DISABLED")); } } } -void Wavelet::cbenabUpdateUI () +void Wavelet::cbenabUpdateUI() { if (!batchMode) { - if(cbenab->get_active ()) { + if (cbenab->get_active()) { chanMixerHLFrame->show(); chanMixerMidFrame->show(); chanMixerShadowsFrame->show(); @@ -2698,40 +2843,40 @@ void Wavelet::cbenabUpdateUI () } } -void Wavelet::cbenabToggled () +void Wavelet::cbenabToggled() { if (multiImage) { if (cbenab->get_inconsistent()) { - cbenab->set_inconsistent (false); - cbenabConn.block (true); - cbenab->set_active (false); - cbenabConn.block (false); + cbenab->set_inconsistent(false); + cbenabConn.block(true); + cbenab->set_active(false); + cbenabConn.block(false); } else if (lastcbenab) { - cbenab->set_inconsistent (true); + cbenab->set_inconsistent(true); } - lastcbenab = cbenab->get_active (); + lastcbenab = cbenab->get_active(); } cbenabUpdateUI(); - if (listener && (multiImage || getEnabled ())) { - if (cbenab->get_inconsistent() ) { - listener->panelChanged (EvWavcbenab, M("GENERAL_UNCHANGED")); - } else if (cbenab->get_active () ) { - listener->panelChanged (EvWavcbenab, M("GENERAL_ENABLED")); + if (listener && (multiImage || getEnabled())) { + if (cbenab->get_inconsistent()) { + listener->panelChanged(EvWavcbenab, M("GENERAL_UNCHANGED")); + } else if (cbenab->get_active()) { + listener->panelChanged(EvWavcbenab, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavcbenab, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavcbenab, M("GENERAL_DISABLED")); } } } -void Wavelet::lipstUpdateUI () +void Wavelet::lipstUpdateUI() { if (!batchMode) { - if (lipst->get_active ()) { + if (lipst->get_active()) { NPmethod->show(); edgesensi->show(); edgeampli->show(); @@ -2747,31 +2892,31 @@ void Wavelet::lipstUpdateUI () } -void Wavelet::lipstToggled () +void Wavelet::lipstToggled() { if (multiImage) { if (lipst->get_inconsistent()) { - lipst->set_inconsistent (false); - lipstConn.block (true); - lipst->set_active (false); - lipstConn.block (false); + lipst->set_inconsistent(false); + lipstConn.block(true); + lipst->set_active(false); + lipstConn.block(false); } else if (lastlipst) { - lipst->set_inconsistent (true); + lipst->set_inconsistent(true); } - lastlipst = lipst->get_active (); + lastlipst = lipst->get_active(); } lipstUpdateUI(); - if (listener && (multiImage || getEnabled ())) { + if (listener && (multiImage || getEnabled())) { if (lipst->get_inconsistent()) { - listener->panelChanged (EvWavlipst, M("GENERAL_UNCHANGED")); - } else if (lipst->get_active ()) { - listener->panelChanged (EvWavlipst, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavlipst, M("GENERAL_UNCHANGED")); + } else if (lipst->get_active()) { + listener->panelChanged(EvWavlipst, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavlipst, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavlipst, M("GENERAL_DISABLED")); } } } @@ -2802,62 +2947,62 @@ void Wavelet::edgreinfToggled () { } } */ -void Wavelet::avoidToggled () +void Wavelet::avoidToggled() { if (multiImage) { if (avoid->get_inconsistent()) { - avoid->set_inconsistent (false); - avoidConn.block (true); - avoid->set_active (false); - avoidConn.block (false); + avoid->set_inconsistent(false); + avoidConn.block(true); + avoid->set_active(false); + avoidConn.block(false); } else if (lastavoid) { - avoid->set_inconsistent (true); + avoid->set_inconsistent(true); } - lastavoid = avoid->get_active (); + lastavoid = avoid->get_active(); } - if (listener && (multiImage || getEnabled ())) { + if (listener && (multiImage || getEnabled())) { if (avoid->get_inconsistent()) { - listener->panelChanged (EvWavavoid, M("GENERAL_UNCHANGED")); - } else if (avoid->get_active ()) { - listener->panelChanged (EvWavavoid, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavavoid, M("GENERAL_UNCHANGED")); + } else if (avoid->get_active()) { + listener->panelChanged(EvWavavoid, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavavoid, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavavoid, M("GENERAL_DISABLED")); } } } -void Wavelet::tmrToggled () +void Wavelet::tmrToggled() { if (multiImage) { if (tmr->get_inconsistent()) { - tmr->set_inconsistent (false); - tmrConn.block (true); - tmr->set_active (false); - tmrConn.block (false); + tmr->set_inconsistent(false); + tmrConn.block(true); + tmr->set_active(false); + tmrConn.block(false); } else if (lasttmr) { - tmr->set_inconsistent (true); + tmr->set_inconsistent(true); } - lasttmr = tmr->get_active (); + lasttmr = tmr->get_active(); } - if (listener && (multiImage || getEnabled ())) { + if (listener && (multiImage || getEnabled())) { if (tmr->get_inconsistent()) { - listener->panelChanged (EvWavtmr, M("GENERAL_UNCHANGED")); - } else if (tmr->get_active ()) { - listener->panelChanged (EvWavtmr, M("GENERAL_ENABLED")); + listener->panelChanged(EvWavtmr, M("GENERAL_UNCHANGED")); + } else if (tmr->get_active()) { + listener->panelChanged(EvWavtmr, M("GENERAL_ENABLED")); } else { - listener->panelChanged (EvWavtmr, M("GENERAL_DISABLED")); + listener->panelChanged(EvWavtmr, M("GENERAL_DISABLED")); } } } -void Wavelet::colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) +void Wavelet::colorForValue(double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller *caller) { float R = 0.f, G = 0.f, B = 0.f; @@ -2897,7 +3042,7 @@ void Wavelet::colorForValue (double valX, double valY, enum ColorCaller::ElemTyp caller->ccGreen = double(G); caller->ccBlue = double(B); } -void Wavelet::setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd , bool edgedetectthr2add) +void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add) { for (int i = 0; i < 9; i++) { @@ -2928,7 +3073,7 @@ void Wavelet::setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool t } -void Wavelet::neutralPressed () +void Wavelet::neutralPressed() { for (int i = 0; i < 9; i++) { correction[i]->setValue(0); @@ -2936,7 +3081,7 @@ void Wavelet::neutralPressed () } } -void Wavelet::neutralchPressed () +void Wavelet::neutralchPressed() { for (int i = 0; i < 9; i++) { @@ -2946,7 +3091,7 @@ void Wavelet::neutralchPressed () } -void Wavelet::contrastPlusPressed () +void Wavelet::contrastPlusPressed() { for (int i = 0; i < 9; i++) { @@ -2957,7 +3102,7 @@ void Wavelet::contrastPlusPressed () } -void Wavelet::contrastMinusPressed () +void Wavelet::contrastMinusPressed() { for (int i = 0; i < 9; i++) { @@ -2967,7 +3112,7 @@ void Wavelet::contrastMinusPressed () } } -void Wavelet::foldAllButMe (GdkEventButton* event, MyExpander *expander) +void Wavelet::foldAllButMe(GdkEventButton* event, MyExpander *expander) { if (event->button == 3) { expsettings->set_expanded(expsettings == expander); @@ -2979,6 +3124,7 @@ void Wavelet::foldAllButMe (GdkEventButton* event, MyExpander *expander) expgamut->set_expanded(expgamut == expander); expresid->set_expanded(expresid == expander); expfinal->set_expanded(expfinal == expander); + expclari->set_expanded(expclari == expander); } } @@ -3001,6 +3147,33 @@ void Wavelet::enableToggled(MyExpander *expander) event = EvWavenares; } else if (expander == expfinal) { event = EvWavenafin; + } else if (expander == expclari) { + if (expclari->getEnabled() == false) { + Backmethod->set_active(1); + CLmethod->set_active(3); + Lmethod->set_active(3); + Dirmethod->set_active(3); + Lmethod->set_sensitive(false); + Dirmethod->set_sensitive(false); + } else { + if (ushamethod->get_active_row_number() == 2) { + Backmethod->set_active(2); + CLmethod->set_active(2); + Lmethod->set_active(6); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + Dirmethod->set_active(3); + } else if (ushamethod->get_active_row_number() == 1) { + Backmethod->set_active(0); + CLmethod->set_active(1); + Lmethod->set_active(2); + Dirmethod->set_active(3); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + } + } + + event = EvWavenaclari; } else // unknown expander, returning ! { @@ -3008,31 +3181,32 @@ void Wavelet::enableToggled(MyExpander *expander) } if (expander->get_inconsistent()) { - listener->panelChanged (event, M("GENERAL_UNCHANGED")); + listener->panelChanged(event, M("GENERAL_UNCHANGED")); } else if (expander->getEnabled()) { - listener->panelChanged (event, M("GENERAL_ENABLED")); + listener->panelChanged(event, M("GENERAL_ENABLED")); } else { - listener->panelChanged (event, M("GENERAL_DISABLED")); + listener->panelChanged(event, M("GENERAL_DISABLED")); } } } void Wavelet::writeOptions(std::vector &tpOpen) { - tpOpen.push_back (expsettings->get_expanded ()); - tpOpen.push_back (expcontrast->get_expanded ()); - tpOpen.push_back (expchroma->get_expanded ()); - tpOpen.push_back (exptoning->get_expanded ()); - tpOpen.push_back (expnoise->get_expanded ()); - tpOpen.push_back (expedge->get_expanded ()); - tpOpen.push_back (expgamut->get_expanded ()); - tpOpen.push_back (expresid->get_expanded ()); - tpOpen.push_back (expfinal->get_expanded ()); + tpOpen.push_back(expsettings->get_expanded()); + tpOpen.push_back(expcontrast->get_expanded()); + tpOpen.push_back(expchroma->get_expanded()); + tpOpen.push_back(exptoning->get_expanded()); + tpOpen.push_back(expnoise->get_expanded()); + tpOpen.push_back(expedge->get_expanded()); + tpOpen.push_back(expgamut->get_expanded()); + tpOpen.push_back(expresid->get_expanded()); + tpOpen.push_back(expfinal->get_expanded()); + tpOpen.push_back(expclari->get_expanded()); } void Wavelet::updateToolState(std::vector &tpOpen) { - if(tpOpen.size() >= 9) { + if (tpOpen.size() >= 10) { expsettings->set_expanded(tpOpen.at(0)); expcontrast->set_expanded(tpOpen.at(1)); expchroma->set_expanded(tpOpen.at(2)); @@ -3042,6 +3216,7 @@ void Wavelet::updateToolState(std::vector &tpOpen) expgamut->set_expanded(tpOpen.at(6)); expresid->set_expanded(tpOpen.at(7)); expfinal->set_expanded(tpOpen.at(8)); + expclari->set_expanded(tpOpen.at(9)); } } diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 163395d52..59dde8039 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -63,6 +63,13 @@ public: void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; private: + rtengine::ProcEvent EvWavenaclari; + rtengine::ProcEvent EvWavushamet; + rtengine::ProcEvent EvWavmergeL; + rtengine::ProcEvent EvWavmergeC; + rtengine::ProcEvent EvWavsoftrad; + rtengine::ProcEvent EvWavsoftradend; + void foldAllButMe (GdkEventButton* event, MyExpander *expander); void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; @@ -95,6 +102,7 @@ private: void tmrToggled (); void updatewavLabel (); void wavChanged (double nlevel) override; + void ushamethodChanged(); void HSmethodUpdateUI(); void CHmethodUpdateUI(); @@ -196,6 +204,11 @@ private: Adjuster* const edgedetectthr2; Adjuster* const edgesensi; Adjuster* const edgeampli; + Adjuster* const mergeL; + Adjuster* const mergeC; + Adjuster* const softrad; + Adjuster* const softradend; + MyComboBoxText* const Lmethod; sigc::connection Lmethodconn; MyComboBoxText* const CHmethod; @@ -224,6 +237,9 @@ private: sigc::connection Dirmethodconn; MyComboBoxText* const Medgreinf; sigc::connection MedgreinfConn; + MyComboBoxText* const ushamethod; + sigc::connection ushamethodconn; + Gtk::Frame* const chanMixerHLFrame; Gtk::Frame* const chanMixerMidFrame; Gtk::Frame* const chanMixerShadowsFrame; @@ -231,6 +247,7 @@ private: Gtk::Label* const wavLabels; Gtk::Label* const labmC; Gtk::Label* const labmNP; + Gtk::Label* const usharpLabel; MyExpander* const expchroma; MyExpander* const expcontrast; MyExpander* const expedge; @@ -240,10 +257,12 @@ private: MyExpander* const expresid; MyExpander* const expsettings; MyExpander* const exptoning; + MyExpander* const expclari; Gtk::HBox* const neutrHBox; + Gtk::HBox* const usharpHBox; - sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn; + sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn, enableclariConn; sigc::connection enableNoiseConn, enableResidConn, enableToningConn; sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn; sigc::connection neutralPressedConn; From 7ec1b27a91d7f8a19f35c9dc65e1365ee6358602 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 23 Mar 2019 12:45:44 +0100 Subject: [PATCH 002/453] Add show mask to Clarity --- rtdata/languages/default | 4 +- rtengine/dcrop.cc | 6 ++ rtengine/improccoordinator.cc | 5 ++ rtengine/procparams.cc | 4 ++ rtengine/procparams.h | 1 + rtengine/simpleprocess.cc | 7 ++- rtgui/paramsedited.cc | 6 ++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 103 ++++++++++++++++++++++++++++++---- rtgui/wavelet.h | 7 ++- 10 files changed, 130 insertions(+), 14 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 6e2124b21..5ae722656 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -786,6 +786,7 @@ HISTORY_MSG_WAVMERGEL;Merge L HISTORY_MSG_WAVMERGEC;Merge C HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final +HISTORY_MSG_WAVSHOWMASK;Show mask HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2268,8 +2269,9 @@ TP_WAVELET_TMTYPE;Compression method TP_WAVELET_TON;Toning TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None -TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels +TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels. TP_WAVELET_SHA;Sharp mask +TP_WAVELET_SHOWMASK;Show mask TP_WAVELET_CLA;Clarity TP_WAVELET_USHARP;Sharp method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index f334a6d27..7d2d573ba 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -993,6 +993,12 @@ void Crop::update(int todo) Glib::ustring provis; LabImage *provradius = nullptr; + if(WaveParams.showmask) { + // WaveParams.showmask = false; + // WaveParams.expclari = true; + } + + if (WaveParams.softrad > 0.f) { provradius = new LabImage(labnCrop->W, labnCrop->H); provradius->CopyFrom(labnCrop); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index c6207964f..1c5b1d5df 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -857,6 +857,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) Glib::ustring provis; LabImage *provradius = nullptr; + if(WaveParams.showmask) { + // WaveParams.showmask = false; + // WaveParams.expclari = true; + } + if (WaveParams.softrad > 0.f) { provradius = new LabImage(pW, pH); provradius->CopyFrom(nprevl); diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 1bbab3f74..6aa680a62 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2156,6 +2156,7 @@ WaveletParams::WaveletParams() : softradend(0.), lipst(false), avoid(false), + showmask(false), tmr(false), strength(100), balance(0), @@ -2251,6 +2252,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && softradend == other.softradend && lipst == other.lipst && avoid == other.avoid + && showmask == other.showmask && tmr == other.tmr && strength == other.strength && balance == other.balance @@ -3421,6 +3423,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.edgval, "Wavelet", "Edgval", wavelet.edgval, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgthresh, "Wavelet", "ThrEdg", wavelet.edgthresh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.avoid, "Wavelet", "AvoidColorShift", wavelet.avoid, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.showmask, "Wavelet", "Showmask", wavelet.showmask, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmr, "Wavelet", "TMr", wavelet.tmr, keyFile); saveToKeyfile(!pedited || pedited->wavelet.rescon, "Wavelet", "ResidualcontShadow", wavelet.rescon, keyFile); saveToKeyfile(!pedited || pedited->wavelet.resconH, "Wavelet", "ResidualcontHighlight", wavelet.resconH, keyFile); @@ -4481,6 +4484,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Softradend", pedited, wavelet.softradend, pedited->wavelet.softradend); assignFromKeyfile(keyFile, "Wavelet", "Lipst", pedited, wavelet.lipst, pedited->wavelet.lipst); assignFromKeyfile(keyFile, "Wavelet", "AvoidColorShift", pedited, wavelet.avoid, pedited->wavelet.avoid); + assignFromKeyfile(keyFile, "Wavelet", "Showmask", pedited, wavelet.showmask, pedited->wavelet.showmask); assignFromKeyfile(keyFile, "Wavelet", "TMr", pedited, wavelet.tmr, pedited->wavelet.tmr); if (ppVersion < 331) { // wavelet.Lmethod was a string before version 331 diff --git a/rtengine/procparams.h b/rtengine/procparams.h index f2328217a..1258ee05b 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1187,6 +1187,7 @@ struct WaveletParams { bool lipst; bool avoid; + bool showmask; bool tmr; int strength; int balance; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 52ab5a590..d4cdfc81e 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1129,7 +1129,12 @@ private: WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; LabImage *provradius = nullptr; - +/* + if(WaveParams.showmask) { + WaveParams.showmask = false; + WaveParams.expclari = true; + } +*/ if (WaveParams.softrad > 0.f) { provradius = new LabImage(fw, fh); provradius->CopyFrom(labView); diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index cec0a5c92..6e9a6372c 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -480,6 +480,7 @@ void ParamsEdited::set(bool v) wavelet.Medgreinf = v; wavelet.ushamethod = v; wavelet.avoid = v; + wavelet.showmask = v; wavelet.tmr = v; wavelet.Lmethod = v; wavelet.CLmethod = v; @@ -1053,6 +1054,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.softradend = wavelet.softradend && p.wavelet.softradend == other.wavelet.softradend; wavelet.ushamethod = wavelet.ushamethod && p.wavelet.ushamethod == other.wavelet.ushamethod; wavelet.avoid = wavelet.avoid && p.wavelet.avoid == other.wavelet.avoid; + wavelet.showmask = wavelet.showmask && p.wavelet.showmask == other.wavelet.showmask; wavelet.tmr = wavelet.tmr && p.wavelet.tmr == other.wavelet.tmr; wavelet.Lmethod = wavelet.Lmethod && p.wavelet.Lmethod == other.wavelet.Lmethod; wavelet.CLmethod = wavelet.CLmethod && p.wavelet.CLmethod == other.wavelet.CLmethod; @@ -2846,6 +2848,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.avoid = mods.wavelet.avoid; } + if (wavelet.showmask) { + toEdit.wavelet.showmask = mods.wavelet.showmask; + } + if (wavelet.tmr) { toEdit.wavelet.tmr = mods.wavelet.tmr; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 13d575d90..366703fc7 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -477,6 +477,7 @@ struct WaveletParamsEdited { bool Medgreinf; bool ushamethod; bool avoid; + bool showmask; bool tmr; bool c[9]; bool ch[9]; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index a6660610f..cda404d2a 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -75,6 +75,7 @@ Wavelet::Wavelet() : lipst(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_LIPST")))), avoid(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_AVOID")))), tmr(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_BALCHRO")))), + showmask(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_SHOWMASK")))), neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), @@ -161,6 +162,7 @@ Wavelet::Wavelet() : EvWavmergeC = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVMERGEC"); EvWavsoftrad = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRAD"); EvWavsoftradend = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRADEND"); + EvWavshowmask = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSHOWMASK"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -477,6 +479,8 @@ Wavelet::Wavelet() : mergeL->setAdjusterListener(this); mergeC->setAdjusterListener(this); softrad->setAdjusterListener(this); + showmask->set_active(false); + showmaskConn = showmask->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::showmaskToggled)); ToolParamBlock* const clariBox = Gtk::manage(new ToolParamBlock()); ushamethod->append(M("TP_WAVELET_USH")); @@ -491,6 +495,7 @@ Wavelet::Wavelet() : clariBox->pack_start(*mergeL); clariBox->pack_start(*mergeC); clariBox->pack_start(*softrad); + clariBox->pack_start(*showmask); // Edge Sharpness ToolParamBlock* const edgBox = Gtk::manage(new ToolParamBlock()); @@ -1159,6 +1164,9 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) avoidConn.block(true); avoid->set_active(pp->wavelet.avoid); avoidConn.block(false); + showmaskConn.block(true); + showmask->set_active(pp->wavelet.showmask); + showmaskConn.block(false); tmrConn.block(true); tmr->set_active(pp->wavelet.tmr); tmrConn.block(false); @@ -1188,6 +1196,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) lastcbenab = pp->wavelet.cbenab; lastlipst = pp->wavelet.lipst; lastavoid = pp->wavelet.avoid; + lastshowmask = pp->wavelet.showmask; lasttmr = pp->wavelet.tmr; rescon->setValue(pp->wavelet.rescon); resconH->setValue(pp->wavelet.resconH); @@ -1333,6 +1342,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) Chshape->setUnChanged(!pedited->wavelet.Chcurve); clshape->setUnChanged(!pedited->wavelet.wavclCurve); avoid->set_inconsistent(!pedited->wavelet.avoid); + showmask->set_inconsistent(!pedited->wavelet.showmask); tmr->set_inconsistent(!pedited->wavelet.tmr); edgthresh->setEditedState(pedited->wavelet.edgthresh ? Edited : UnEdited); rescon->setEditedState(pedited->wavelet.rescon ? Edited : UnEdited); @@ -1512,6 +1522,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.enabled = getEnabled(); pp->wavelet.avoid = avoid->get_active(); + pp->wavelet.showmask = showmask->get_active(); pp->wavelet.tmr = tmr->get_active(); pp->wavelet.rescon = rescon->getValue(); pp->wavelet.resconH = resconH->getValue(); @@ -1597,6 +1608,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) if (pedited) { pedited->wavelet.enabled = !get_inconsistent(); pedited->wavelet.avoid = !avoid->get_inconsistent(); + pedited->wavelet.showmask = !showmask->get_inconsistent(); pedited->wavelet.tmr = !tmr->get_inconsistent(); pedited->wavelet.median = !median->get_inconsistent(); pedited->wavelet.medianlev = !medianlev->get_inconsistent(); @@ -2342,14 +2354,14 @@ void Wavelet::ushamethodChanged() Dirmethod->set_active(3); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); - } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { + } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { Backmethod->set_active(1); CLmethod->set_active(3); Lmethod->set_active(3); Dirmethod->set_active(3); Lmethod->set_sensitive(false); Dirmethod->set_sensitive(false); - } else if (expclari->getEnabled() == false) { + } else if (expclari->getEnabled() == false) { Backmethod->set_active(1); CLmethod->set_active(3); Lmethod->set_active(3); @@ -2975,6 +2987,72 @@ void Wavelet::avoidToggled() } } +void Wavelet::showmaskToggled() +{ + if (ushamethod->get_active_row_number() == 2 && showmask->get_active()) { + Backmethod->set_active(2); + CLmethod->set_active(2); + Lmethod->set_active(6); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + Dirmethod->set_active(3); + expclari->setEnabled(false); + + } else if (ushamethod->get_active_row_number() == 1 && showmask->get_active()) { + Backmethod->set_active(0); + CLmethod->set_active(1); + Lmethod->set_active(2); + Dirmethod->set_active(3); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + expclari->setEnabled(false); + + } + + if (ushamethod->get_active_row_number() == 2 && !showmask->get_active()) { + Backmethod->set_active(2); + CLmethod->set_active(2); + Lmethod->set_active(6); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + Dirmethod->set_active(3); + expclari->setEnabled(true); + + } else if (ushamethod->get_active_row_number() == 1 && !showmask->get_active()) { + Backmethod->set_active(0); + CLmethod->set_active(1); + Lmethod->set_active(2); + Dirmethod->set_active(3); + Lmethod->set_sensitive(true); + Dirmethod->set_sensitive(true); + expclari->setEnabled(true); + + } + + if (multiImage) { + if (showmask->get_inconsistent()) { + showmask->set_inconsistent(false); + showmaskConn.block(true); + showmask->set_active(false); + showmaskConn.block(false); + } else if (lastshowmask) { + showmask->set_inconsistent(true); + } + + lastshowmask = showmask->get_active(); + } + + if (listener && (multiImage || getEnabled())) { + if (showmask->get_inconsistent()) { + listener->panelChanged(EvWavshowmask, M("GENERAL_UNCHANGED")); + } else if (showmask->get_active()) { + listener->panelChanged(EvWavshowmask, M("GENERAL_ENABLED")); + } else { + listener->panelChanged(EvWavshowmask, M("GENERAL_DISABLED")); + } + } +} + void Wavelet::tmrToggled() { @@ -3150,13 +3228,19 @@ void Wavelet::enableToggled(MyExpander *expander) event = EvWavenafin; } else if (expander == expclari) { if (expclari->getEnabled() == false) { - Backmethod->set_active(1); - CLmethod->set_active(3); - Lmethod->set_active(3); - Dirmethod->set_active(3); - Lmethod->set_sensitive(false); - Dirmethod->set_sensitive(false); - } else { + if (! showmask->get_active()) { + Backmethod->set_active(1); + CLmethod->set_active(3); + Lmethod->set_active(3); + Dirmethod->set_active(3); + Lmethod->set_sensitive(false); + Dirmethod->set_sensitive(false); + } + } else { + if (showmask->get_active()) { + showmask->set_active(false); + } + if (ushamethod->get_active_row_number() == 2) { Backmethod->set_active(2); CLmethod->set_active(2); @@ -3173,7 +3257,6 @@ void Wavelet::enableToggled(MyExpander *expander) Dirmethod->set_sensitive(true); } } - event = EvWavenaclari; } else // unknown expander, returning ! diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 1e7a07fc6..7dee7e955 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -71,6 +71,7 @@ private: rtengine::ProcEvent EvWavmergeC; rtengine::ProcEvent EvWavsoftrad; rtengine::ProcEvent EvWavsoftradend; + rtengine::ProcEvent EvWavshowmask; void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -89,6 +90,7 @@ private: void TMmethodChanged (); void TilesmethodChanged (); void avoidToggled (); + void showmaskToggled (); void cbenabToggled (); void contrastMinusPressed (); void contrastPlusPressed (); @@ -156,6 +158,7 @@ private: Gtk::CheckButton* const lipst; Gtk::CheckButton* const avoid; Gtk::CheckButton* const tmr; + Gtk::CheckButton* const showmask; Gtk::Button* const neutralchButton; Adjuster* correction[9]; @@ -266,13 +269,13 @@ private: sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn, enableclariConn; sigc::connection enableNoiseConn, enableResidConn, enableToningConn; - sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn; + sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn, showmaskConn; sigc::connection neutralPressedConn; sigc::connection contrastPlusPressedConn; sigc::connection contrastMinusPressedConn; sigc::connection neutralchPressedConn; - bool lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab; + bool lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab, lastshowmask; int nextnlevel; IdleRegister idle_register; From 71cfb520a03900b760dee68f6458a286a5256544 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 23 Mar 2019 18:07:53 +0100 Subject: [PATCH 003/453] increase sensitivity of Soft radius clarity and shap mask --- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 4 ++-- rtengine/simpleprocess.cc | 4 ++-- rtgui/wavelet.cc | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 7d2d573ba..7ddf9ed8f 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1067,8 +1067,8 @@ void Crop::update(int todo) guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - float blur = 10.f / skip * (0.1f + 0.8f * WaveParams.softrad); - rtengine::guidedFilter(guid, ble, ble, blur, 0.001, false); + float blur = 10.f / skip * (0.01f + 0.8f * WaveParams.softrad); + rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 1c5b1d5df..1f18a3527 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -940,9 +940,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - float blur = 10.f / scale * (0.1f + 0.8f * WaveParams.softrad); + float blur = 10.f / scale * (0.01f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, 0.001, false); + rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index d4cdfc81e..50badfdd6 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1211,9 +1211,9 @@ private: guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - float blur = 10.f / 1 * (0.1f + 0.8f * WaveParams.softrad); + float blur = 10.f / 1 * (0.01f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, 0.001, false); + rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index cda404d2a..4397e1662 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -117,8 +117,8 @@ Wavelet::Wavelet() : edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), mergeL(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEL"), -50, 100, 1, 40))), mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), - softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), - softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), + softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.01, 0.))), + softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.01, 0.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), From 3d62375623f39f51d85a614e07bad3d03bbfff28 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 24 Mar 2019 13:59:38 +0100 Subject: [PATCH 004/453] Improvment to Soft radius --- rtdata/languages/default | 4 ++-- rtengine/dcrop.cc | 11 ++++++++--- rtengine/improccoordinator.cc | 9 +++++++-- rtengine/ipwavelet.cc | 11 +++++++++-- rtengine/simpleprocess.cc | 9 +++++++-- 5 files changed, 33 insertions(+), 11 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5ae722656..f21a40d24 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -786,7 +786,7 @@ HISTORY_MSG_WAVMERGEL;Merge L HISTORY_MSG_WAVMERGEC;Merge C HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final -HISTORY_MSG_WAVSHOWMASK;Show mask +HISTORY_MSG_WAVSHOWMASK;Show wavelet mask HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2271,7 +2271,7 @@ TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels. TP_WAVELET_SHA;Sharp mask -TP_WAVELET_SHOWMASK;Show mask +TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_CLA;Clarity TP_WAVELET_USHARP;Sharp method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 7ddf9ed8f..21fca6153 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1066,9 +1066,14 @@ void Crop::update(int todo) ble[ir][jr] = (labnCrop->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - - float blur = 10.f / skip * (0.01f + 0.8f * WaveParams.softrad); - rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; + + float blur = 10.f / skip * (0.001f + 0.8f * WaveParams.softrad); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 1f18a3527..61736cdfb 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -939,10 +939,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ble[ir][jr] = (nprevl->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; - float blur = 10.f / scale * (0.01f + 0.8f * WaveParams.softrad); + float blur = 10.f / scale * (0.001f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 8b5f33b74..b25e75b7a 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1286,9 +1286,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - float blur = 10.f / skip * (0.1f + 0.1f * waparams.softradend); + // float blur = 10.f / skip * (0.1f + 0.1f * waparams.softradend); + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * waparams.softradend + bepsil; - rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + float blur = 10.f / scale * (0.001f + 0.8f * waparams.softradend); + + rtengine::guidedFilter(guid, ble, ble, blur, epsil, multiTh); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 50badfdd6..fde5c8310 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1210,10 +1210,15 @@ private: ble[ir][jr] = (labView->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } + double epsilmax = 0.001; + double epsilmin = 0.0001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; - float blur = 10.f / 1 * (0.01f + 0.8f * WaveParams.softrad); + float blur = 10.f / 1 * (0.001f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, 0.0005, false); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); From 5837f722a8e9a320061de6134dfabe704cf63c8c Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 3 Apr 2019 09:23:03 +0200 Subject: [PATCH 005/453] disabled showmask - improve GUI --- rtdata/languages/default | 2 +- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 4 ++-- rtengine/procparams.cc | 2 +- rtengine/simpleprocess.cc | 4 ++-- rtgui/wavelet.cc | 43 +++++++++++++++++++---------------- 6 files changed, 31 insertions(+), 28 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 8ab20b81c..126d1d693 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2277,7 +2277,7 @@ TP_WAVELET_TMTYPE;Compression method TP_WAVELET_TON;Toning TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None -TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels. +TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels. TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_CLA;Clarity diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index b7fb38c8a..c13831468 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1006,7 +1006,7 @@ void Crop::update(int todo) - if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { unshar = new LabImage(labnCrop->W, labnCrop->H); provis = params.wavelet.CLmethod; @@ -1020,7 +1020,7 @@ void Crop::update(int todo) parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); - if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 61736cdfb..2790f93a2 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -870,7 +870,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) - if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { unshar = new LabImage(pW, pH); provis = params->wavelet.CLmethod; params->wavelet.CLmethod = "all"; @@ -884,7 +884,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); - if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f); float mL0; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 6aa680a62..c60b8e8a0 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2178,7 +2178,7 @@ WaveletParams::WaveletParams() : daubcoeffmethod("4_"), CHmethod("without"), Medgreinf("less"), - ushamethod("none"), + ushamethod("clari"), CHSLmethod("SL"), EDmethod("CU"), NPmethod("none"), diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index fde5c8310..dcf66ca5e 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1144,7 +1144,7 @@ private: CurveFactory::curveWavContL(wavcontlutili, params.wavelet.wavclCurve, wavclCurve,/* hist16C, dummy,*/ 1); - if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { unshar = new LabImage(fw, fh); provis = params.wavelet.CLmethod; params.wavelet.CLmethod = "all"; @@ -1155,7 +1155,7 @@ private: ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); - if (WaveParams.ushamethod != "none" && WaveParams.expclari && WaveParams.CLmethod != "all") { + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f); float mL0; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 4397e1662..1fc4143d0 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -117,8 +117,8 @@ Wavelet::Wavelet() : edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), mergeL(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEL"), -50, 100, 1, 40))), mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), - softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.01, 0.))), - softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.01, 0.))), + softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), + softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), @@ -483,7 +483,7 @@ Wavelet::Wavelet() : showmaskConn = showmask->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::showmaskToggled)); ToolParamBlock* const clariBox = Gtk::manage(new ToolParamBlock()); - ushamethod->append(M("TP_WAVELET_USH")); + // ushamethod->append(M("TP_WAVELET_USH")); ushamethod->append(M("TP_WAVELET_SHA")); ushamethod->append(M("TP_WAVELET_CLA")); ushamethodconn = ushamethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::ushamethodChanged)); @@ -495,7 +495,7 @@ Wavelet::Wavelet() : clariBox->pack_start(*mergeL); clariBox->pack_start(*mergeC); clariBox->pack_start(*softrad); - clariBox->pack_start(*showmask); +// clariBox->pack_start(*showmask); // Edge Sharpness ToolParamBlock* const edgBox = Gtk::manage(new ToolParamBlock()); @@ -1038,12 +1038,13 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) } //ushamethod - if (pp->wavelet.ushamethod == "none") { +// if (pp->wavelet.ushamethod == "none") { +// ushamethod->set_active(0); + // } else + if (pp->wavelet.ushamethod == "sharp") { ushamethod->set_active(0); - } else if (pp->wavelet.ushamethod == "sharp") { - ushamethod->set_active(1); } else if (pp->wavelet.ushamethod == "clari") { - ushamethod->set_active(2); + ushamethod->set_active(1); } //CHSLmethod->set_active (1); @@ -1721,11 +1722,12 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.Medgreinf = "less"; } + // if (ushamethod->get_active_row_number() == 0) { + // pp->wavelet.ushamethod = "none"; + // } else if (ushamethod->get_active_row_number() == 0) { - pp->wavelet.ushamethod = "none"; - } else if (ushamethod->get_active_row_number() == 1) { pp->wavelet.ushamethod = "sharp"; - } else if (ushamethod->get_active_row_number() == 2) { + } else if (ushamethod->get_active_row_number() == 1) { pp->wavelet.ushamethod = "clari"; } @@ -2340,27 +2342,28 @@ void Wavelet::TilesmethodUpdateUI() { void Wavelet::ushamethodChanged() { - if (ushamethod->get_active_row_number() == 2 && expclari->getEnabled() == true) { + if (ushamethod->get_active_row_number() == 1 && expclari->getEnabled() == true) { Backmethod->set_active(2); CLmethod->set_active(2); Lmethod->set_active(6); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); Dirmethod->set_active(3); - } else if (ushamethod->get_active_row_number() == 1 && expclari->getEnabled() == true) { + } else if (ushamethod->get_active_row_number() == 0 && expclari->getEnabled() == true) { Backmethod->set_active(0); CLmethod->set_active(1); Lmethod->set_active(2); Dirmethod->set_active(3); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); - } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { + /* } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { Backmethod->set_active(1); CLmethod->set_active(3); Lmethod->set_active(3); Dirmethod->set_active(3); Lmethod->set_sensitive(false); Dirmethod->set_sensitive(false); + */ } else if (expclari->getEnabled() == false) { Backmethod->set_active(1); CLmethod->set_active(3); @@ -2989,7 +2992,7 @@ void Wavelet::avoidToggled() void Wavelet::showmaskToggled() { - if (ushamethod->get_active_row_number() == 2 && showmask->get_active()) { + if (ushamethod->get_active_row_number() == 1 && showmask->get_active()) { Backmethod->set_active(2); CLmethod->set_active(2); Lmethod->set_active(6); @@ -2998,7 +3001,7 @@ void Wavelet::showmaskToggled() Dirmethod->set_active(3); expclari->setEnabled(false); - } else if (ushamethod->get_active_row_number() == 1 && showmask->get_active()) { + } else if (ushamethod->get_active_row_number() == 0 && showmask->get_active()) { Backmethod->set_active(0); CLmethod->set_active(1); Lmethod->set_active(2); @@ -3009,7 +3012,7 @@ void Wavelet::showmaskToggled() } - if (ushamethod->get_active_row_number() == 2 && !showmask->get_active()) { + if (ushamethod->get_active_row_number() == 1 && !showmask->get_active()) { Backmethod->set_active(2); CLmethod->set_active(2); Lmethod->set_active(6); @@ -3018,7 +3021,7 @@ void Wavelet::showmaskToggled() Dirmethod->set_active(3); expclari->setEnabled(true); - } else if (ushamethod->get_active_row_number() == 1 && !showmask->get_active()) { + } else if (ushamethod->get_active_row_number() == 0 && !showmask->get_active()) { Backmethod->set_active(0); CLmethod->set_active(1); Lmethod->set_active(2); @@ -3241,14 +3244,14 @@ void Wavelet::enableToggled(MyExpander *expander) showmask->set_active(false); } - if (ushamethod->get_active_row_number() == 2) { + if (ushamethod->get_active_row_number() == 1) { Backmethod->set_active(2); CLmethod->set_active(2); Lmethod->set_active(6); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); Dirmethod->set_active(3); - } else if (ushamethod->get_active_row_number() == 1) { + } else if (ushamethod->get_active_row_number() == 0) { Backmethod->set_active(0); CLmethod->set_active(1); Lmethod->set_active(2); From 516e05fa6138cb722a976e047ba66f6fe0ba839b Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 29 Apr 2019 07:45:26 +0200 Subject: [PATCH 006/453] Suppress grey image when chnanging Clarity --- rtengine/cplx_wavelet_filter_coeffs.h | 6 +++++- rtengine/dcrop.cc | 5 +++++ rtengine/improccoordinator.cc | 5 +++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/rtengine/cplx_wavelet_filter_coeffs.h b/rtengine/cplx_wavelet_filter_coeffs.h index bd333d4b9..629bbe659 100644 --- a/rtengine/cplx_wavelet_filter_coeffs.h +++ b/rtengine/cplx_wavelet_filter_coeffs.h @@ -49,6 +49,10 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14 { -0.0002501134f, -0.0012739524f, -0.0003037575f, 0.008874895f, 0.01171997f , -0.026891225f, -0.057001725f, 0.05042335f, 0.158417505f, -0.10175691f, -0.33218624f, 0.515574245f, -0.28039564f, 0.055049715f, 0.f, 0.f} }; -// if necessary ?? we can add D20 !! +const float Daub4_anal22[2][22] ALIGNED16 = {//Daub 20 + {0.f, 0.f, 0.01885858f, 0.13306109f, 0.37278754f, 0.48681406f, 0.19881887f, -0.1766681f, -0.13855494f, 0.09006372f, 0.0658015f, -0.05048328f, -0.02082962f, 0.0234849f, 0.002550222f, -0.0075895, 0.0009866627f, 0.001408843f, -0.0004849739f, -0.0000823545f, 0.00006617734f, -0.0000093792f}, + {0.0000093792f, -0.00006617734f, 0.0000823545f, 0.0004849739f, -0.001408843f, -0.0009866627f, 0.0075895, -0.002550222f, -0.0234849f, 0.02082962f, 0.05048328f, -0.0658015f, -0.09006372f, 0.13855494f, 0.1766681f, -0.19881887f, -0.48681406f, -0.37278754f, -0.13306109f, -0.01885858f, 0.f, 0.f} +}; + } diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index c13831468..4550eac52 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1018,6 +1018,11 @@ void Crop::update(int todo) } + if (!WaveParams.expclari && WaveParams.CLmethod != "all") { + params.wavelet.CLmethod = "all"; + params.wavelet.Backmethod = "grey"; + } + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 2790f93a2..c64fe9746 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -882,6 +882,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } + if (!WaveParams.expclari && WaveParams.CLmethod != "all") { + params->wavelet.CLmethod = "all"; + params->wavelet.Backmethod = "grey"; + } + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { From f8b9e2618c93a011f658ce7313f06e84801db743 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 29 Apr 2019 08:10:51 +0200 Subject: [PATCH 007/453] Comment variable in cplx_wavelet_filter --- rtengine/cplx_wavelet_filter_coeffs.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/cplx_wavelet_filter_coeffs.h b/rtengine/cplx_wavelet_filter_coeffs.h index 629bbe659..44a60d57a 100644 --- a/rtengine/cplx_wavelet_filter_coeffs.h +++ b/rtengine/cplx_wavelet_filter_coeffs.h @@ -48,11 +48,11 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14 {0.f, 0.f, 0.055049715f, 0.28039564f, 0.515574245f, 0.33218624f, -0.10175691f, -0.158417505f, 0.05042335f, 0.057001725f, -0.026891225f, -0.01171997f, 0.008874895f, 0.0003037575f, -0.0012739524f, 0.0002501134f}, { -0.0002501134f, -0.0012739524f, -0.0003037575f, 0.008874895f, 0.01171997f , -0.026891225f, -0.057001725f, 0.05042335f, 0.158417505f, -0.10175691f, -0.33218624f, 0.515574245f, -0.28039564f, 0.055049715f, 0.f, 0.f} }; - +/* const float Daub4_anal22[2][22] ALIGNED16 = {//Daub 20 {0.f, 0.f, 0.01885858f, 0.13306109f, 0.37278754f, 0.48681406f, 0.19881887f, -0.1766681f, -0.13855494f, 0.09006372f, 0.0658015f, -0.05048328f, -0.02082962f, 0.0234849f, 0.002550222f, -0.0075895, 0.0009866627f, 0.001408843f, -0.0004849739f, -0.0000823545f, 0.00006617734f, -0.0000093792f}, {0.0000093792f, -0.00006617734f, 0.0000823545f, 0.0004849739f, -0.001408843f, -0.0009866627f, 0.0075895, -0.002550222f, -0.0234849f, 0.02082962f, 0.05048328f, -0.0658015f, -0.09006372f, 0.13855494f, 0.1766681f, -0.19881887f, -0.48681406f, -0.37278754f, -0.13306109f, -0.01885858f, 0.f, 0.f} }; - +*/ } From f5eedc404d3aadd704fd1cea20e8d6b6b9fe7f88 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 10 May 2019 07:43:53 +0200 Subject: [PATCH 008/453] disable GUI background and process if clarity is selected --- rtengine/cplx_wavelet_filter_coeffs.h | 6 +++--- rtgui/wavelet.cc | 12 ++++++++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/rtengine/cplx_wavelet_filter_coeffs.h b/rtengine/cplx_wavelet_filter_coeffs.h index 44a60d57a..371f834a1 100644 --- a/rtengine/cplx_wavelet_filter_coeffs.h +++ b/rtengine/cplx_wavelet_filter_coeffs.h @@ -49,9 +49,9 @@ const float Daub4_anal16[2][16] ALIGNED16 = {//Daub 14 { -0.0002501134f, -0.0012739524f, -0.0003037575f, 0.008874895f, 0.01171997f , -0.026891225f, -0.057001725f, 0.05042335f, 0.158417505f, -0.10175691f, -0.33218624f, 0.515574245f, -0.28039564f, 0.055049715f, 0.f, 0.f} }; /* -const float Daub4_anal22[2][22] ALIGNED16 = {//Daub 20 - {0.f, 0.f, 0.01885858f, 0.13306109f, 0.37278754f, 0.48681406f, 0.19881887f, -0.1766681f, -0.13855494f, 0.09006372f, 0.0658015f, -0.05048328f, -0.02082962f, 0.0234849f, 0.002550222f, -0.0075895, 0.0009866627f, 0.001408843f, -0.0004849739f, -0.0000823545f, 0.00006617734f, -0.0000093792f}, - {0.0000093792f, -0.00006617734f, 0.0000823545f, 0.0004849739f, -0.001408843f, -0.0009866627f, 0.0075895, -0.002550222f, -0.0234849f, 0.02082962f, 0.05048328f, -0.0658015f, -0.09006372f, 0.13855494f, 0.1766681f, -0.19881887f, -0.48681406f, -0.37278754f, -0.13306109f, -0.01885858f, 0.f, 0.f} +const double Daub4_anal22[2][22] ALIGNED16 = {//Daub 20 + {0., 0., 0.01885858, 0.13306109, 0.37278754, 0.48681406, 0.19881887, -0.1766681, -0.13855494, 0.09006372, 0.0658015, -0.05048328, -0.02082962, 0.0234849, 0.0025502185, -0.0075895, 0.0009866625, 0.0014088433, -0.00048497392, -0.0000823545, 0.00006617718, -0.000009379205}, + {0.000009379205, -0.00006617718, 0.0000823545, 0.00048497392, -0.0014088433, -0.0009866627, 0.0075895, -0.0025502185, -0.0234849, 0.02082962, 0.05048328, -0.0658015, -0.09006372, 0.13855494, 0.1766681, -0.19881887, -0.48681406, -0.37278754, -0.13306109, -0.01885858, 0., 0.} }; */ } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 1fc4143d0..7e4d41501 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -2349,6 +2349,8 @@ void Wavelet::ushamethodChanged() Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); Dirmethod->set_active(3); + CLmethod->set_sensitive(false); + Backmethod->set_sensitive(false); } else if (ushamethod->get_active_row_number() == 0 && expclari->getEnabled() == true) { Backmethod->set_active(0); CLmethod->set_active(1); @@ -2356,6 +2358,8 @@ void Wavelet::ushamethodChanged() Dirmethod->set_active(3); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); + CLmethod->set_sensitive(false); + Backmethod->set_sensitive(false); /* } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { Backmethod->set_active(1); CLmethod->set_active(3); @@ -2371,6 +2375,8 @@ void Wavelet::ushamethodChanged() Dirmethod->set_active(3); Lmethod->set_sensitive(false); Dirmethod->set_sensitive(false); + CLmethod->set_sensitive(true); + Backmethod->set_sensitive(true); } if (listener && (multiImage || getEnabled())) { @@ -3238,6 +3244,8 @@ void Wavelet::enableToggled(MyExpander *expander) Dirmethod->set_active(3); Lmethod->set_sensitive(false); Dirmethod->set_sensitive(false); + CLmethod->set_sensitive(true); + Backmethod->set_sensitive(true); } } else { if (showmask->get_active()) { @@ -3251,6 +3259,8 @@ void Wavelet::enableToggled(MyExpander *expander) Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); Dirmethod->set_active(3); + CLmethod->set_sensitive(false); + Backmethod->set_sensitive(false); } else if (ushamethod->get_active_row_number() == 0) { Backmethod->set_active(0); CLmethod->set_active(1); @@ -3258,6 +3268,8 @@ void Wavelet::enableToggled(MyExpander *expander) Dirmethod->set_active(3); Lmethod->set_sensitive(true); Dirmethod->set_sensitive(true); + CLmethod->set_sensitive(false); + Backmethod->set_sensitive(false); } } event = EvWavenaclari; From 744ca10eccef478ef26f44f4a5bb7091824a2740 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 13 May 2019 16:18:37 +0200 Subject: [PATCH 009/453] Improve clarity --- rtengine/dcrop.cc | 25 +++++++++++++++++++++++ rtengine/improccoordinator.cc | 37 ++++++++++++++++++++++++----------- rtengine/simpleprocess.cc | 25 +++++++++++++++++++++++ 3 files changed, 76 insertions(+), 11 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 4550eac52..8aafac91c 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -992,6 +992,12 @@ void Crop::update(int todo) LabImage *unshar = nullptr; Glib::ustring provis; LabImage *provradius = nullptr; + bool procont = WaveParams.expcontrast; + bool prochro = WaveParams.expchroma; + bool proedge = WaveParams.expedge; + bool profin = WaveParams.expfinal; + bool proton = WaveParams.exptoning; + bool pronois = WaveParams.expnoise; if(WaveParams.showmask) { // WaveParams.showmask = false; @@ -1023,8 +1029,27 @@ void Crop::update(int todo) params.wavelet.Backmethod = "grey"; } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = false; + WaveParams.expchroma = false; + WaveParams.expedge = false; + WaveParams.expfinal = false; + WaveParams.exptoning = false; + WaveParams.expnoise = false; + } + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = procont; + WaveParams.expchroma = prochro; + WaveParams.expedge = proedge; + WaveParams.expfinal = profin; + WaveParams.exptoning = proton; + WaveParams.expnoise = pronois; + } + + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index c64fe9746..a4e95aacf 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -856,6 +856,12 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) LabImage *unshar = nullptr; Glib::ustring provis; LabImage *provradius = nullptr; + bool procont = WaveParams.expcontrast; + bool prochro = WaveParams.expchroma; + bool proedge = WaveParams.expedge; + bool profin = WaveParams.expfinal; + bool proton = WaveParams.exptoning; + bool pronois = WaveParams.expnoise; if(WaveParams.showmask) { // WaveParams.showmask = false; @@ -887,8 +893,27 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->wavelet.Backmethod = "grey"; } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = false; + WaveParams.expchroma = false; + WaveParams.expedge = false; + WaveParams.expfinal = false; + WaveParams.exptoning = false; + WaveParams.expnoise = false; + } + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = procont; + WaveParams.expchroma = prochro; + WaveParams.expedge = proedge; + WaveParams.expfinal = profin; + WaveParams.exptoning = proton; + WaveParams.expnoise = pronois; + } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f); @@ -924,17 +949,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (WaveParams.softrad > 0.f) { array2D ble(pW, pH); array2D guid(pW, pH); - /* - #ifdef _OPENMP - const int numThreads = omp_get_max_threads(); - #endif - - bool multiTh = false; - - if (numThreads > 1) { - multiTh = true; - } - */ #ifdef _OPENMP #pragma omp parallel for #endif @@ -973,6 +987,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } + } ipf.softLight(nprevl); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index dcf66ca5e..dbc2f9168 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1129,6 +1129,13 @@ private: WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; LabImage *provradius = nullptr; + bool procont = WaveParams.expcontrast; + bool prochro = WaveParams.expchroma; + bool proedge = WaveParams.expedge; + bool profin = WaveParams.expfinal; + bool proton = WaveParams.exptoning; + bool pronois = WaveParams.expnoise; + /* if(WaveParams.showmask) { WaveParams.showmask = false; @@ -1153,8 +1160,26 @@ private: params.wavelet.CLmethod = provis; } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = false; + WaveParams.expchroma = false; + WaveParams.expedge = false; + WaveParams.expfinal = false; + WaveParams.exptoning = false; + WaveParams.expnoise = false; + } + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { + WaveParams.expcontrast = procont; + WaveParams.expchroma = prochro; + WaveParams.expedge = proedge; + WaveParams.expfinal = profin; + WaveParams.exptoning = proton; + WaveParams.expnoise = pronois; + } + if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { float mL = (float)(WaveParams.mergeL / 100.f); float mC = (float)(WaveParams.mergeC / 100.f); From 14dc398c4d69b0cb47bacfb88465a75fe36f8f82 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 May 2019 10:55:48 +0200 Subject: [PATCH 010/453] Improvment to softradius clarity --- rtengine/dcrop.cc | 71 +++++++++++++------------- rtengine/improccoordinator.cc | 45 +++++++++++++++-- rtengine/simpleprocess.cc | 93 ++++++++++++++++++----------------- 3 files changed, 123 insertions(+), 86 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 8aafac91c..2d584eb8c 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1046,7 +1046,41 @@ void Crop::update(int todo) WaveParams.expedge = proedge; WaveParams.expfinal = profin; WaveParams.exptoning = proton; - WaveParams.expnoise = pronois; + WaveParams.expnoise = pronois; + if (WaveParams.softrad > 0.f) { + array2D ble(labnCrop->W, labnCrop->H); + array2D guid(labnCrop->W, labnCrop->H); + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < labnCrop->H ; ir++) + for (int jr = 0; jr < labnCrop->W; jr++) { + ble[ir][jr] = (labnCrop->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + double epsilmax = 0.0001; + double epsilmin = 0.00001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; + + float blur = 10.f / skip * (0.0001f + 0.8f * WaveParams.softrad); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < labnCrop->H; ir++) + for (int jr = 0; jr < labnCrop->W; jr++) { + labnCrop->L[ir][jr] = 32768.f * ble[ir][jr]; + } + } + } @@ -1082,41 +1116,6 @@ void Crop::update(int todo) delete unshar; unshar = NULL; - - if (WaveParams.softrad > 0.f) { - array2D ble(labnCrop->W, labnCrop->H); - array2D guid(labnCrop->W, labnCrop->H); - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < labnCrop->H ; ir++) - for (int jr = 0; jr < labnCrop->W; jr++) { - ble[ir][jr] = (labnCrop->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; - guid[ir][jr] = provradius->L[ir][jr] / 32768.f; - } - double epsilmax = 0.001; - double epsilmin = 0.0001; - double aepsil = (epsilmax - epsilmin) / 90.f; - double bepsil = epsilmax - 100.f * aepsil; - double epsil = aepsil * WaveParams.softrad + bepsil; - - float blur = 10.f / skip * (0.001f + 0.8f * WaveParams.softrad); - rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); - - - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < labnCrop->H; ir++) - for (int jr = 0; jr < labnCrop->W; jr++) { - labnCrop->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; - } - } - if (WaveParams.softrad > 0.f) { delete provradius; provradius = NULL; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index a4e95aacf..12929ae25 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -911,7 +911,42 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) WaveParams.expedge = proedge; WaveParams.expfinal = profin; WaveParams.exptoning = proton; - WaveParams.expnoise = pronois; + WaveParams.expnoise = pronois; + + if (WaveParams.softrad > 0.f) { + array2D ble(pW, pH); + array2D guid(pW, pH); +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < pH; ir++) + for (int jr = 0; jr < pW; jr++) { + ble[ir][jr] = (nprevl->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + double epsilmax = 0.0001; + double epsilmin = 0.00001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; + + float blur = 10.f / scale * (0.0001f + 0.8f * WaveParams.softrad); + // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < pH; ir++) + for (int jr = 0; jr < pW; jr++) { + nprevl->L[ir][jr] = 32768.f * ble[ir][jr]; + } + } + } if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { @@ -920,6 +955,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) float mL0; float mC0; + + if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { mL0 = mC0 = 0.f; mL = -mL; @@ -945,7 +982,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) delete unshar; unshar = NULL; - +/* if (WaveParams.softrad > 0.f) { array2D ble(pW, pH); array2D guid(pW, pH); @@ -979,7 +1016,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) nprevl->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; } } - +*/ if (WaveParams.softrad > 0.f) { delete provradius; provradius = NULL; @@ -987,7 +1024,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } - + } ipf.softLight(nprevl); diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index dbc2f9168..7b7361c91 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1177,7 +1177,53 @@ private: WaveParams.expedge = proedge; WaveParams.expfinal = profin; WaveParams.exptoning = proton; - WaveParams.expnoise = pronois; + WaveParams.expnoise = pronois; + + if (WaveParams.softrad > 0.f) { + array2D ble(fw, fh); + array2D guid(fw, fh); + /* + #ifdef _OPENMP + const int numThreads = omp_get_max_threads(); + #endif + + bool multiTh = false; + + if (numThreads > 1) { + multiTh = true; + } + */ +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < fh; ir++) + for (int jr = 0; jr < fw; jr++) { + ble[ir][jr] = (labView->L[ir][jr]) / 32768.f; + guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + } + double epsilmax = 0.0001; + double epsilmin = 0.00001; + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * WaveParams.softrad + bepsil; + + float blur = 10.f / 1 * (0.0001f + 0.8f * WaveParams.softrad); + // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < fh; ir++) + for (int jr = 0; jr < fw; jr++) { + labView->L[ir][jr] = 32768.f * ble[ir][jr]; + } + } + } if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { @@ -1212,51 +1258,6 @@ private: delete unshar; unshar = NULL; - if (WaveParams.softrad > 0.f) { - array2D ble(fw, fh); - array2D guid(fw, fh); - /* - #ifdef _OPENMP - const int numThreads = omp_get_max_threads(); - #endif - - bool multiTh = false; - - if (numThreads > 1) { - multiTh = true; - } - */ -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < fh; ir++) - for (int jr = 0; jr < fw; jr++) { - ble[ir][jr] = (labView->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; - guid[ir][jr] = provradius->L[ir][jr] / 32768.f; - } - double epsilmax = 0.001; - double epsilmin = 0.0001; - double aepsil = (epsilmax - epsilmin) / 90.f; - double bepsil = epsilmax - 100.f * aepsil; - double epsil = aepsil * WaveParams.softrad + bepsil; - - float blur = 10.f / 1 * (0.001f + 0.8f * WaveParams.softrad); - // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); - rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); - - - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < fh; ir++) - for (int jr = 0; jr < fw; jr++) { - labView->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; - } - } - if (WaveParams.softrad > 0.f) { delete provradius; provradius = NULL; From 1ee64dcdb6a103141d54239638571c53e4308a4d Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 15 May 2019 13:37:38 +0200 Subject: [PATCH 011/453] Improve general soft --- rtengine/ipwavelet.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index b25e75b7a..31b215f02 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1282,11 +1282,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int ir = 0; ir < lab->H; ir++) for (int jr = 0; jr < lab->W; jr++) { - ble[ir][jr] = (dst->L[ir][jr] - provradius->L[ir][jr]) / 32768.f; + ble[ir][jr] = dst->L[ir][jr] / 32768.f; guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } - // float blur = 10.f / skip * (0.1f + 0.1f * waparams.softradend); double epsilmax = 0.001; double epsilmin = 0.0001; double aepsil = (epsilmax - epsilmin) / 90.f; @@ -1305,7 +1304,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int ir = 0; ir < lab->H; ir++) for (int jr = 0; jr < lab->W; jr++) { - dst->L[ir][jr] = provradius->L[ir][jr] + 32768.f * ble[ir][jr]; + dst->L[ir][jr] = 32768.f * ble[ir][jr]; } } From fc9867eb2db7f2cda9965409bcb605772ac2d251 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 21 May 2019 07:48:18 +0200 Subject: [PATCH 012/453] Improvment to residual image --- rtdata/languages/default | 6 +++- rtengine/improcfun.cc | 8 ++--- rtengine/ipwavelet.cc | 8 +++-- rtengine/procparams.cc | 8 +++++ rtengine/procparams.h | 2 ++ rtgui/addsetids.h | 2 ++ rtgui/batchtoolpanelcoord.cc | 6 ++-- rtgui/epd.cc | 12 +++---- rtgui/paramsedited.cc | 12 +++++++ rtgui/paramsedited.h | 2 ++ rtgui/preferences.cc | 2 ++ rtgui/wavelet.cc | 63 +++++++++++++++++++++++++++++++++--- rtgui/wavelet.h | 6 +++- 13 files changed, 115 insertions(+), 22 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 8cad97db8..2c478a23a 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -781,6 +781,8 @@ HISTORY_MSG_WAVMERGEC;Merge C HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVSHOWMASK;Show wavelet mask +HISTORY_MSG_WAVEDGS;Edge stopping +HISTORY_MSG_WAVSCALE;Scale HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2228,8 +2230,10 @@ TP_WAVELET_TILESIZE;Tiling method TP_WAVELET_TILESLIT;Little tiles TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. TP_WAVELET_TMSTRENGTH;Compression strength -TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. +TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. TP_WAVELET_TMTYPE;Compression method +TP_WAVELET_TMEDGS;Edge stopping +TP_WAVELET_TMSCALE;Scale TP_WAVELET_TON;Toning TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index f63313126..bb7c0ac6b 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -5126,11 +5126,11 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, int Wi if (!params->epd.enabled) { return; } - +/* if (params->wavelet.enabled && params->wavelet.tmrs != 0) { return; } - +*/ float stren = params->epd.strength; float edgest = params->epd.edgeStopping; float sca = params->epd.scale; @@ -5240,11 +5240,11 @@ void ImProcFunctions::EPDToneMap (LabImage *lab, unsigned int Iterates, int skip if (!params->epd.enabled) { return; } - +/* if (params->wavelet.enabled && params->wavelet.tmrs != 0) { return; } - +*/ float stren = params->epd.strength; float edgest = params->epd.edgeStopping; float sca = params->epd.scale; diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 3c51d8f18..af8adca90 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1590,8 +1590,8 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat float stren = cp.tmstrength; - float edgest = params->epd.edgeStopping; - float sca = params->epd.scale; + float edgest = params->wavelet.edgs; + float sca = params->wavelet.scale; float gamm = params->wavelet.gamma; float rew = params->epd.reweightingIterates; EdgePreservingDecomposition epd2(W_L, H_L); @@ -1769,6 +1769,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * { if (contrast != 0.f && cp.resena && max0 > 0.0) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step { + // #ifdef _OPENMP #pragma omp for #endif @@ -1794,7 +1795,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } } - + +// if (cp.tonemap && cp.contmet == 1 && cp.resena) { float maxp = max0 * 256.f; float minp = min0 * 256.f; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index c60b8e8a0..1fa4d62a4 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2190,6 +2190,8 @@ WaveletParams::WaveletParams() : resconH(0), reschro(0), tmrs(0), + edgs(1.4), + scale(1.), gamma(1), sup(0), sky(0.0), @@ -2293,6 +2295,8 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && resconH == other.resconH && reschro == other.reschro && tmrs == other.tmrs + && edgs == other.edgs + && scale == other.scale && gamma == other.gamma && sup == other.sup && sky == other.sky @@ -3431,6 +3435,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.thrH, "Wavelet", "ThresholdResidHighLight", wavelet.thrH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.reschro, "Wavelet", "Residualchroma", wavelet.reschro, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmrs, "Wavelet", "ResidualTM", wavelet.tmrs, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.edgs, "Wavelet", "ResidualEDGS", wavelet.edgs, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.scale, "Wavelet", "ResidualSCALE", wavelet.scale, keyFile); saveToKeyfile(!pedited || pedited->wavelet.gamma, "Wavelet", "Residualgamma", wavelet.gamma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sky, "Wavelet", "HueRangeResidual", wavelet.sky, keyFile); saveToKeyfile(!pedited || pedited->wavelet.hueskin2, "Wavelet", "HueRange", wavelet.hueskin2.toVector(), keyFile); @@ -4516,6 +4522,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "ResidualcontHighlight", pedited, wavelet.resconH, pedited->wavelet.resconH); assignFromKeyfile(keyFile, "Wavelet", "Residualchroma", pedited, wavelet.reschro, pedited->wavelet.reschro); assignFromKeyfile(keyFile, "Wavelet", "ResidualTM", pedited, wavelet.tmrs, pedited->wavelet.tmrs); + assignFromKeyfile(keyFile, "Wavelet", "ResidualEDGS", pedited, wavelet.edgs, pedited->wavelet.edgs); + assignFromKeyfile(keyFile, "Wavelet", "ResidualSCALE", pedited, wavelet.scale, pedited->wavelet.scale); assignFromKeyfile(keyFile, "Wavelet", "Residualgamma", pedited, wavelet.gamma, pedited->wavelet.gamma); assignFromKeyfile(keyFile, "Wavelet", "ContExtra", pedited, wavelet.sup, pedited->wavelet.sup); assignFromKeyfile(keyFile, "Wavelet", "HueRangeResidual", pedited, wavelet.sky, pedited->wavelet.sky); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 1258ee05b..a17a34aaa 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1222,6 +1222,8 @@ struct WaveletParams { int resconH; int reschro; double tmrs; + double edgs; + double scale; double gamma; int sup; double sky; diff --git a/rtgui/addsetids.h b/rtgui/addsetids.h index 163bc27ef..7e9f6f6cd 100644 --- a/rtgui/addsetids.h +++ b/rtgui/addsetids.h @@ -103,6 +103,8 @@ enum { ADDSET_WA_EDGEDETECTTHR, ADDSET_WA_EDGEDETECTTHR2, ADDSET_WA_TMRS, + ADDSET_WA_EDGS, + ADDSET_WA_SCALE, ADDSET_WA_GAMMA, ADDSET_RETI_STR, ADDSET_RETI_NEIGH, diff --git a/rtgui/batchtoolpanelcoord.cc b/rtgui/batchtoolpanelcoord.cc index 1a0eaeb28..63934f21c 100644 --- a/rtgui/batchtoolpanelcoord.cc +++ b/rtgui/batchtoolpanelcoord.cc @@ -165,7 +165,7 @@ void BatchToolPanelCoordinator::initSession () shadowshighlights->setAdjusterBehavior (false, false); dirpyrequalizer->setAdjusterBehavior (false, false, false); - wavelet->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false); + wavelet->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false); dirpyrdenoise->setAdjusterBehavior (false, false, false, false, false, false, false); bayerprocess->setAdjusterBehavior(false, false, false, false, false, false); xtransprocess->setAdjusterBehavior(false, false); @@ -213,7 +213,7 @@ void BatchToolPanelCoordinator::initSession () blackwhite->setAdjusterBehavior (options.baBehav[ADDSET_BLACKWHITE_HUES], options.baBehav[ADDSET_BLACKWHITE_GAMMA]); shadowshighlights->setAdjusterBehavior (options.baBehav[ADDSET_SH_HIGHLIGHTS], options.baBehav[ADDSET_SH_SHADOWS]); dirpyrequalizer->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYREQ], options.baBehav[ADDSET_DIRPYREQ_THRESHOLD], options.baBehav[ADDSET_DIRPYREQ_SKINPROTECT]); - wavelet->setAdjusterBehavior (options.baBehav[ADDSET_WA], options.baBehav[ADDSET_WA_THRESHOLD], options.baBehav[ADDSET_WA_THRESHOLD2], options.baBehav[ADDSET_WA_THRES], options.baBehav[ADDSET_WA_CHRO], options.baBehav[ADDSET_WA_CHROMA], options.baBehav[ADDSET_WA_CONTRAST], options.baBehav[ADDSET_WA_SKINPROTECT], options.baBehav[ADDSET_WA_RESCHRO], options.baBehav[ADDSET_WA_TMRS], options.baBehav[ADDSET_WA_RESCON], options.baBehav[ADDSET_WA_RESCONH], options.baBehav[ADDSET_WA_THRR], options.baBehav[ADDSET_WA_THRRH], options.baBehav[ADDSET_WA_SKYPROTECT], options.baBehav[ADDSET_WA_EDGRAD], options.baBehav[ADDSET_WA_EDGVAL], options.baBehav[ADDSET_WA_STRENGTH], options.baBehav[ADDSET_WA_GAMMA], options.baBehav[ADDSET_WA_EDGEDETECT], options.baBehav[ADDSET_WA_EDGEDETECTTHR], options.baBehav[ADDSET_WA_EDGEDETECTTHR2]); + wavelet->setAdjusterBehavior (options.baBehav[ADDSET_WA], options.baBehav[ADDSET_WA_THRESHOLD], options.baBehav[ADDSET_WA_THRESHOLD2], options.baBehav[ADDSET_WA_THRES], options.baBehav[ADDSET_WA_CHRO], options.baBehav[ADDSET_WA_CHROMA], options.baBehav[ADDSET_WA_CONTRAST], options.baBehav[ADDSET_WA_SKINPROTECT], options.baBehav[ADDSET_WA_RESCHRO], options.baBehav[ADDSET_WA_TMRS], options.baBehav[ADDSET_WA_EDGS], options.baBehav[ADDSET_WA_SCALE], options.baBehav[ADDSET_WA_RESCON], options.baBehav[ADDSET_WA_RESCONH], options.baBehav[ADDSET_WA_THRR], options.baBehav[ADDSET_WA_THRRH], options.baBehav[ADDSET_WA_SKYPROTECT], options.baBehav[ADDSET_WA_EDGRAD], options.baBehav[ADDSET_WA_EDGVAL], options.baBehav[ADDSET_WA_STRENGTH], options.baBehav[ADDSET_WA_GAMMA], options.baBehav[ADDSET_WA_EDGEDETECT], options.baBehav[ADDSET_WA_EDGEDETECTTHR], options.baBehav[ADDSET_WA_EDGEDETECTTHR2]); dirpyrdenoise->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYRDN_LUMA], options.baBehav[ADDSET_DIRPYRDN_LUMDET], options.baBehav[ADDSET_DIRPYRDN_CHROMA], options.baBehav[ADDSET_DIRPYRDN_CHROMARED], options.baBehav[ADDSET_DIRPYRDN_CHROMABLUE], options.baBehav[ADDSET_DIRPYRDN_GAMMA], options.baBehav[ADDSET_DIRPYRDN_PASSES]); bayerprocess->setAdjusterBehavior(options.baBehav[ADDSET_BAYER_FALSE_COLOR_SUPPRESSION], options.baBehav[ADDSET_BAYER_ITER], options.baBehav[ADDSET_BAYER_DUALDEMOZCONTRAST], options.baBehav[ADDSET_BAYER_PS_SIGMA], options.baBehav[ADDSET_BAYER_PS_SMOOTH], options.baBehav[ADDSET_BAYER_PS_EPERISO]); xtransprocess->setAdjusterBehavior(options.baBehav[ADDSET_BAYER_FALSE_COLOR_SUPPRESSION], options.baBehav[ADDSET_BAYER_DUALDEMOZCONTRAST]); @@ -329,6 +329,8 @@ void BatchToolPanelCoordinator::initSession () if (options.baBehav[ADDSET_WA_RESCONH]) { pparams.wavelet.resconH = 0; } if (options.baBehav[ADDSET_WA_RESCHRO]) { pparams.wavelet.reschro = 0; } if (options.baBehav[ADDSET_WA_TMRS]) { pparams.wavelet.tmrs = 0; } + if (options.baBehav[ADDSET_WA_EDGS]) { pparams.wavelet.edgs = 0; } + if (options.baBehav[ADDSET_WA_SCALE]) { pparams.wavelet.scale = 0; } if (options.baBehav[ADDSET_WA_THRR]) { pparams.wavelet.thr = 0; } if (options.baBehav[ADDSET_WA_THRRH]) { pparams.wavelet.thrH = 0; } if (options.baBehav[ADDSET_WA_SKYPROTECT]) { pparams.wavelet.sky = 0; } diff --git a/rtgui/epd.cc b/rtgui/epd.cc index 4b7cca10a..0b62569eb 100644 --- a/rtgui/epd.cc +++ b/rtgui/epd.cc @@ -31,8 +31,8 @@ EdgePreservingDecompositionUI::EdgePreservingDecompositionUI () : FoldableToolPa strength = Gtk::manage(new Adjuster (M("TP_EPD_STRENGTH"), -1.0, 2.0, 0.01, 0.5)); gamma = Gtk::manage(new Adjuster (M("TP_EPD_GAMMA"), 0.8, 1.5, 0.01, 1.)); - edgeStopping = Gtk::manage(new Adjuster (M("TP_EPD_EDGESTOPPING"), 0.1, 4.0, 0.01, 0.5)); - scale = Gtk::manage(new Adjuster (M("TP_EPD_SCALE"), 0.1, 10.0, 0.01, 0.1)); + edgeStopping = Gtk::manage(new Adjuster (M("TP_EPD_EDGESTOPPING"), 0.1, 4.0, 0.01, 1.4)); + scale = Gtk::manage(new Adjuster (M("TP_EPD_SCALE"), 0.1, 10.0, 0.01, 1.0)); reweightingIterates = Gtk::manage(new Adjuster (M("TP_EPD_REWEIGHTINGITERATES"), 0, 9, 1, 0)); strength->setAdjusterListener(this); @@ -69,7 +69,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite setEnabled(pp->epd.enabled); strength->set_sensitive (true); - +/* if(pp->wavelet.enabled) { if(pp->wavelet.tmrs == 0) { strength->set_sensitive (true); @@ -79,7 +79,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite gamma->set_sensitive (false); } } - +*/ strength->setValue(pp->epd.strength); gamma->setValue(pp->epd.gamma); edgeStopping->setValue(pp->epd.edgeStopping); @@ -98,7 +98,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) pp->epd.reweightingIterates = reweightingIterates->getValue(); pp->epd.enabled = getEnabled(); strength->set_sensitive (true); - +/* if(pp->wavelet.enabled) { if(pp->wavelet.tmrs == 0) { strength->set_sensitive (true); @@ -108,7 +108,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) gamma->set_sensitive (false); } } - +*/ if(pedited) { pedited->epd.strength = strength->getEditedState(); pedited->epd.gamma = gamma->getEditedState(); diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 6e9a6372c..f0abd04f7 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -499,6 +499,8 @@ void ParamsEdited::set(bool v) wavelet.resconH = v; wavelet.reschro = v; wavelet.tmrs = v; + wavelet.edgs = v; + wavelet.scale = v; wavelet.gamma = v; wavelet.sup = v; wavelet.sky = v; @@ -1073,6 +1075,8 @@ void ParamsEdited::initFrom(const std::vector& wavelet.resconH = wavelet.resconH && p.wavelet.resconH == other.wavelet.resconH; wavelet.reschro = wavelet.reschro && p.wavelet.reschro == other.wavelet.reschro; wavelet.tmrs = wavelet.tmrs && p.wavelet.tmrs == other.wavelet.tmrs; + wavelet.edgs = wavelet.edgs && p.wavelet.edgs == other.wavelet.edgs; + wavelet.scale = wavelet.scale && p.wavelet.scale == other.wavelet.scale; wavelet.gamma = wavelet.gamma && p.wavelet.gamma == other.wavelet.gamma; wavelet.sup = wavelet.sup && p.wavelet.sup == other.wavelet.sup; wavelet.sky = wavelet.sky && p.wavelet.sky == other.wavelet.sky; @@ -3073,6 +3077,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.tmrs = dontforceSet && options.baBehav[ADDSET_WA_TMRS] ? toEdit.wavelet.tmrs + mods.wavelet.tmrs : mods.wavelet.tmrs; } + if (wavelet.edgs) { + toEdit.wavelet.edgs = dontforceSet && options.baBehav[ADDSET_WA_EDGS] ? toEdit.wavelet.edgs + mods.wavelet.edgs : mods.wavelet.edgs; + } + + if (wavelet.scale) { + toEdit.wavelet.scale = dontforceSet && options.baBehav[ADDSET_WA_SCALE] ? toEdit.wavelet.scale + mods.wavelet.scale : mods.wavelet.scale; + } + if (wavelet.gamma) { toEdit.wavelet.gamma = dontforceSet && options.baBehav[ADDSET_WA_GAMMA] ? toEdit.wavelet.gamma + mods.wavelet.gamma : mods.wavelet.gamma; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 366703fc7..5e123e638 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -498,6 +498,8 @@ struct WaveletParamsEdited { bool resconH; bool reschro; bool tmrs; + bool edgs; + bool scale; bool gamma; bool sup; bool sky; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index b7d10c8de..63a9315a6 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -389,6 +389,8 @@ Gtk::Widget* Preferences::getBatchProcPanel () appendBehavList (mi, M ("TP_WAVELET_THRH"), ADDSET_WA_THRRH, true); appendBehavList (mi, M ("TP_WAVELET_RESCHRO"), ADDSET_WA_RESCHRO, true); appendBehavList (mi, M ("TP_WAVELET_TMSTRENGTH"), ADDSET_WA_TMRS, true); + appendBehavList (mi, M ("TP_WAVELET_TMEDGS"), ADDSET_WA_EDGS, true); + appendBehavList (mi, M ("TP_WAVELET_TMSCALE"), ADDSET_WA_SCALE, true); appendBehavList (mi, M ("TP_WAVELET_SKY"), ADDSET_WA_SKYPROTECT, true); appendBehavList (mi, M ("TP_WAVELET_CONTRA"), ADDSET_WA_CONTRAST, true); appendBehavList (mi, M ("TP_WAVELET_STRENGTH"), ADDSET_WA_STRENGTH, true); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 2c83319d7..165db8e94 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -81,6 +81,8 @@ Wavelet::Wavelet() : resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), + edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), + scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))), gamma(Gtk::manage(new Adjuster(M("TP_WAVELET_COMPGAMMA"), 0.4, 2.0, 0.01, 1.0))), sup(Gtk::manage(new Adjuster(M("TP_WAVELET_SUPE"), -100, 350, 1, 0))), sky(Gtk::manage(new Adjuster(M("TP_WAVELET_SKY"), -100., 100.0, 1., 0.))), @@ -163,6 +165,8 @@ Wavelet::Wavelet() : EvWavsoftrad = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRAD"); EvWavsoftradend = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRADEND"); EvWavshowmask = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSHOWMASK"); + EvWavedgs = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVEDGS"); + EvWavscale = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSCALE"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -704,6 +708,16 @@ Wavelet::Wavelet() : resBox->pack_start(*gamma); gamma->setAdjusterListener(this); + //edgs->set_tooltip_text(M("TP_WAVELET_TMEDGS_TOOLTIP")); + + resBox->pack_start(*edgs); + edgs->setAdjusterListener(this); + + //scale->set_tooltip_text(M("TP_WAVELET_TMSCALE_TOOLTIP")); + + resBox->pack_start(*scale); + scale->setAdjusterListener(this); + Gtk::HSeparator* const separatorR1 = Gtk::manage(new Gtk::HSeparator()); resBox->pack_start(*separatorR1, Gtk::PACK_SHRINK, 2); @@ -1203,6 +1217,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) resconH->setValue(pp->wavelet.resconH); reschro->setValue(pp->wavelet.reschro); tmrs->setValue(pp->wavelet.tmrs); + edgs->setValue(pp->wavelet.edgs); + scale->setValue(pp->wavelet.scale); gamma->setValue(pp->wavelet.gamma); sup->setValue(pp->wavelet.sup); sky->setValue(pp->wavelet.sky); @@ -1350,6 +1366,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited); reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited); tmrs->setEditedState(pedited->wavelet.tmrs ? Edited : UnEdited); + edgs->setEditedState(pedited->wavelet.edgs ? Edited : UnEdited); + scale->setEditedState(pedited->wavelet.scale ? Edited : UnEdited); gamma->setEditedState(pedited->wavelet.gamma ? Edited : UnEdited); sup->setEditedState(pedited->wavelet.sup ? Edited : UnEdited); sky->setEditedState(pedited->wavelet.sky ? Edited : UnEdited); @@ -1529,6 +1547,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.resconH = resconH->getValue(); pp->wavelet.reschro = reschro->getValue(); pp->wavelet.tmrs = tmrs->getValue(); + pp->wavelet.edgs = edgs->getValue(); + pp->wavelet.scale = scale->getValue(); pp->wavelet.gamma = gamma->getValue(); pp->wavelet.sup = sup->getValue(); pp->wavelet.sky = sky->getValue(); @@ -1636,6 +1656,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.resconH = resconH->getEditedState(); pedited->wavelet.reschro = reschro->getEditedState(); pedited->wavelet.tmrs = tmrs->getEditedState(); + pedited->wavelet.edgs = edgs->getEditedState(); + pedited->wavelet.scale = scale->getEditedState(); pedited->wavelet.gamma = gamma->getEditedState(); pedited->wavelet.sup = sup->getEditedState(); pedited->wavelet.sky = sky->getEditedState(); @@ -1867,6 +1889,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); tmrs->setDefault(defParams->wavelet.tmrs); + edgs->setDefault(defParams->wavelet.edgs); + scale->setDefault(defParams->wavelet.scale); gamma->setDefault(defParams->wavelet.gamma); sup->setDefault(defParams->wavelet.sup); sky->setDefault(defParams->wavelet.sky); @@ -1925,6 +1949,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); tmrs->setDefault(defParams->wavelet.tmrs); + edgs->setDefault(defParams->wavelet.edgs); + scale->setDefault(defParams->wavelet.scale); gamma->setDefault(defParams->wavelet.gamma); sup->setDefault(defParams->wavelet.sup); sky->setDefaultEditedState(pedited->wavelet.sky ? Edited : UnEdited); @@ -1972,6 +1998,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit resconH->setDefaultEditedState(Irrelevant); reschro->setDefaultEditedState(Irrelevant); tmrs->setDefaultEditedState(Irrelevant); + edgs->setDefaultEditedState(Irrelevant); + scale->setDefaultEditedState(Irrelevant); gamma->setDefaultEditedState(Irrelevant); sup->setDefaultEditedState(Irrelevant); sky->setDefaultEditedState(Irrelevant); @@ -2274,6 +2302,14 @@ void Wavelet::TMmethodUpdateUI() } } */ + if(TMmethod->get_active_row_number() == 1) { + edgs->show(); + scale->show(); + } else if (TMmethod->get_active_row_number() == 0) { + edgs->hide(); + scale->hide(); + } + } void Wavelet::TMmethodChanged() @@ -2476,6 +2512,8 @@ void Wavelet::setBatchMode(bool batchMode) resconH->showEditedCB(); reschro->showEditedCB(); tmrs->showEditedCB(); + edgs->showEditedCB(); + scale->showEditedCB(); gamma->showEditedCB(); sup->showEditedCB(); sky->showEditedCB(); @@ -2524,7 +2562,7 @@ void Wavelet::setBatchMode(bool batchMode) void Wavelet::adjusterUpdateUI(Adjuster* a) { - /* + /* if (!batchMode) { if (a == tmrs ) { float tm; @@ -2537,10 +2575,10 @@ void Wavelet::adjusterUpdateUI(Adjuster* a) tm=tmrs->getValue(); if(tm==0.f) tmr->hide(); else tmr->show(); - ); + } } - */ + */ } void Wavelet::adjusterChanged(Adjuster* a, double newval) @@ -2554,12 +2592,25 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavresconH, resconH->getTextValue()); } else if (a == reschro) { listener->panelChanged(EvWavreschro, reschro->getTextValue()); - } else if (a == tmrs) { + } else if (a == tmrs) { adjusterUpdateUI(a); listener->panelChanged(EvWavtmrs, tmrs->getTextValue()); + if(tmrs->getValue() != 0 && TMmethod->get_active_row_number() == 1) { + edgs->show(); + scale->show(); + } else if (TMmethod->get_active_row_number() == 0) { + edgs->hide(); + scale->hide(); + } } else if (a == gamma) { adjusterUpdateUI(a); listener->panelChanged(EvWavgamma, gamma->getTextValue()); + } else if (a == edgs) { + adjusterUpdateUI(a); + listener->panelChanged(EvWavedgs, edgs->getTextValue()); + } else if (a == scale) { + adjusterUpdateUI(a); + listener->panelChanged(EvWavscale, scale->getTextValue()); } else if (a == sky) { listener->panelChanged(EvWavsky, sky->getTextValue()); } else if (a == sup) { @@ -3130,7 +3181,7 @@ void Wavelet::colorForValue(double valX, double valY, enum ColorCaller::ElemType caller->ccGreen = double(G); caller->ccBlue = double(B); } -void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add) +void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add) { for (int i = 0; i < 9; i++) { @@ -3148,6 +3199,8 @@ void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool th resconH->setAddMode(resconHadd); reschro->setAddMode(reschroadd); tmrs->setAddMode(tmrsadd); + edgs->setAddMode(edgsadd); + scale->setAddMode(scaleadd); thr->setAddMode(thradd); thrH->setAddMode(thrHadd); sky->setAddMode(skyadd); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 7dee7e955..5878a1ae4 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -50,7 +50,7 @@ public: void autoOpenCurve () override; void curveChanged (CurveEditor* ce) override; void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; - void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); + void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); void setBatchMode (bool batchMode) override; void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void setEditProvider (EditDataProvider *provider) override; @@ -72,6 +72,8 @@ private: rtengine::ProcEvent EvWavsoftrad; rtengine::ProcEvent EvWavsoftradend; rtengine::ProcEvent EvWavshowmask; + rtengine::ProcEvent EvWavedgs; + rtengine::ProcEvent EvWavscale; void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -167,6 +169,8 @@ private: Adjuster* const resconH; Adjuster* const reschro; Adjuster* const tmrs; + Adjuster* const edgs; + Adjuster* const scale; Adjuster* const gamma; Adjuster* const sup; Adjuster* const sky; From 04d6b28d2ed7cee893c0cdca9834e3b9d8fe3615 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 26 May 2019 17:28:58 +0200 Subject: [PATCH 013/453] Improve contrast residual --- rtengine/ipwavelet.cc | 52 ++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 33 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index af8adca90..51dbe149e 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1663,11 +1663,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * int H_L = WaveletCoeffs_L.level_H(0); float * WavCoeffs_L0 = WaveletCoeffs_L.coeff0; - float maxh = 2.5f; //amplification contrast above mean - float maxl = 2.5f; //reduction contrast under mean float contrast = cp.contrast; - float multL = (float)contrast * (maxl - 1.f) / 100.f + 1.f; - float multH = (float) contrast * (maxh - 1.f) / 100.f + 1.f; double avedbl = 0.0; // use double precision for large summations float max0 = 0.f; float min0 = FLT_MAX; @@ -1735,14 +1731,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * max0 /= 327.68f; min0 /= 327.68f; float ave = avedbl / (double)(W_L * H_L); - float av = ave / 327.68f; - float ah = (multH - 1.f) / (av - max0); // - float bh = 1.f - max0 * ah; - float al = (multL - 1.f) / (av - min0); - float bl = 1.f - min0 * al; - float factorx = 1.f; -// float *koeLi[9]; -// float maxkoeLi[9]; + float avg = ave / 32768.f; float *koeLi[12]; float maxkoeLi[12]; @@ -1763,35 +1752,32 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * koeLi[j][i] = 0.f; } + avg = LIM01(avg); + double contreal = 0.6 * contrast; + DiagonalCurve resid_contrast({ + DCT_NURBS, + 0, 0, + avg - avg * (0.6 - contreal / 250.0), avg - avg * (0.6 + contreal / 250.0), + avg + (1. - avg) * (0.6 - contreal / 250.0), avg + (1. - avg) * (0.6 + contreal / 250.0), + 1, 1 + }); + + #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif { if (contrast != 0.f && cp.resena && max0 > 0.0) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step { - // + #ifdef _OPENMP - #pragma omp for + #pragma omp for #endif - - for (int i = 0; i < W_L * H_L; i++) { //contrast - if (WavCoeffs_L0[i] < 32768.f) { - float prov; - - if (WavCoeffs_L0[i] > ave) { - float kh = ah * (WavCoeffs_L0[i] / 327.68f) + bh; - prov = WavCoeffs_L0[i]; - WavCoeffs_L0[i] = ave + kh * (WavCoeffs_L0[i] - ave); - } else { - float kl = al * (WavCoeffs_L0[i] / 327.68f) + bl; - prov = WavCoeffs_L0[i]; - WavCoeffs_L0[i] = ave - kl * (ave - WavCoeffs_L0[i]); - } - - float diflc = WavCoeffs_L0[i] - prov; - diflc *= factorx; - WavCoeffs_L0[i] = prov + diflc; - } + for (int i = 0; i < W_L * H_L; i++) { + float buf = LIM01( WavCoeffs_L0[i] / 32768.f); + buf = resid_contrast.getVal(buf); + buf *= 32768.f; + WavCoeffs_L0[i] = buf; } } } From 83f487753c6da9868730126c4e9f3a09c7341f1c Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 27 May 2019 09:23:56 +0200 Subject: [PATCH 014/453] Improve shadows-Highlight Residual --- rtdata/languages/default | 2 + rtengine/improcfun.cc | 3 +- rtengine/improcfun.h | 3 +- rtengine/ipshadowshighlights.cc | 18 ++++----- rtengine/ipwavelet.cc | 68 ++++++++++++++------------------- rtengine/procparams.cc | 8 +++- rtengine/procparams.h | 1 + rtgui/addsetids.h | 1 + rtgui/batchtoolpanelcoord.cc | 5 ++- rtgui/paramsedited.h | 1 + rtgui/preferences.cc | 1 + rtgui/wavelet.cc | 26 ++++++++++--- rtgui/wavelet.h | 4 +- 13 files changed, 80 insertions(+), 61 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index f9c89888a..3bb511d2b 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -784,6 +784,7 @@ HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVSHOWMASK;Show wavelet mask HISTORY_MSG_WAVEDGS;Edge stopping HISTORY_MSG_WAVSCALE;Scale +HISTORY_MSG_WAVRADIUS;Radius Shadows-Highlight HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2202,6 +2203,7 @@ TP_WAVELET_OPACITYWL;Final local contrast TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. TP_WAVELET_PASTEL;Pastel chroma TP_WAVELET_PROC;Process +TP_WAVELET_RADIUS;Radius Shadows - Highlight TP_WAVELET_RE1;Reinforced TP_WAVELET_RE2;Unchanged TP_WAVELET_RE3;Reduced diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index bb7c0ac6b..d1529184e 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -3649,7 +3649,8 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer delete vCurve; } - shadowsHighlights(lab); + // shadowsHighlights(lab); + shadowsHighlights(lab, params->sh.enabled, params->sh.lab,params->sh.highlights ,params->sh.shadows, params->sh.radius, scale, params->sh.htonalwidth, params->sh.stonalwidth); if (params->localContrast.enabled) { // Alberto's local contrast diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index cd1650f6e..68aff736b 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -351,7 +351,8 @@ public: void ToneMapFattal02(Imagefloat *rgb); void localContrast(LabImage *lab); void colorToningLabGrid(LabImage *lab, int xstart, int xend, int ystart, int yend, bool MultiThread); - void shadowsHighlights(LabImage *lab); + //void shadowsHighlights(LabImage *lab); + void shadowsHighlights(LabImage *lab, bool ena, int labmode, int hightli, int shado, int rad, int scal, int hltonal, int shtonal); void softLight(LabImage *lab); void labColorCorrectionRegions(LabImage *lab); diff --git a/rtengine/ipshadowshighlights.cc b/rtengine/ipshadowshighlights.cc index 6ce66d9b3..96b8e84ef 100644 --- a/rtengine/ipshadowshighlights.cc +++ b/rtengine/ipshadowshighlights.cc @@ -27,20 +27,20 @@ #include "sleef.c" namespace rtengine { - -void ImProcFunctions::shadowsHighlights(LabImage *lab) +//modifications to pass parameters needs by locallab, to avoid 2 functions - no change in process - J.Desmis march 2019 +void ImProcFunctions::shadowsHighlights(LabImage *lab, bool ena, int labmode, int hightli, int shado, int rad, int scal, int hltonal, int shtonal) { - if (!params->sh.enabled || (!params->sh.highlights && !params->sh.shadows)){ + if (!ena || (!hightli && !shado)){ return; } const int width = lab->W; const int height = lab->H; - const bool lab_mode = params->sh.lab; + const bool lab_mode = labmode; array2D mask(width, height); array2D L(width, height); - const float radius = float(params->sh.radius) * 10 / scale; + const float radius = float(rad) * 10 / scal; LUTf f(lab_mode ? 32768 : 65536); TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); @@ -187,12 +187,12 @@ void ImProcFunctions::shadowsHighlights(LabImage *lab) } }; - if (params->sh.highlights > 0) { - apply(params->sh.highlights * 0.7, params->sh.htonalwidth, true); + if (hightli > 0) { + apply(hightli * 0.7, hltonal, true); } - if (params->sh.shadows > 0) { - apply(params->sh.shadows * 0.6, params->sh.stonalwidth, false); + if (shado > 0) { + apply(shado * 0.6, shtonal, false); } } diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 51dbe149e..bf9a6f37e 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -71,6 +71,7 @@ struct cont_params { float thH; float conres; float conresH; + float radius; float chrores; float hueres; float sky; @@ -435,6 +436,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.conres = waparams.rescon; cp.conresH = waparams.resconH; + cp.radius = waparams.radius; cp.chrores = waparams.reschro; //cp.hueres=waparams.reshue; cp.hueres = 2.f; @@ -1782,7 +1784,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } -// + if (cp.tonemap && cp.contmet == 1 && cp.resena) { float maxp = max0 * 256.f; float minp = min0 * 256.f; @@ -1791,54 +1793,40 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #endif ContrastResid(WavCoeffs_L0, cp, W_L, H_L, maxp, minp); } - -#ifdef _OPENMP - #pragma omp barrier -#endif + } if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step + LabImage *temp = nullptr; + temp = new LabImage(W_L, H_L); #ifdef _OPENMP - #pragma omp for nowait + #pragma omp for #endif - - for (int i = 0; i < W_L * H_L; i++) { - float LL = WavCoeffs_L0[i]; - float LL100 = LL / 327.68f; - float tran = 5.f;//transition - //shadow - float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? - - if (cp.th > (100.f - tran)) { - tran = 100.f - cp.th; + for (int i = 0; i < H_L; i++) { + for (int j = 0; j < W_L; j++) { + temp->L[i][j] = WavCoeffs_L0[i * W_L + j]; + } + } + { + ImProcFunctions::shadowsHighlights(temp, true, 1, cp.conresH, cp.conres, cp.radius, skip, cp.thH, cp.th); + } +#ifdef _OPENMP + #pragma omp for +#endif + for (int i = 0; i < H_L; i++) { + for (int j = 0; j < W_L; j++) { + WavCoeffs_L0[i * W_L + j] = temp->L[i][j]; + } } - if (LL100 < cp.th) { - float aalp = (1.f - alp) / cp.th; //no changes for LL100 = cp.th - float kk = aalp * LL100 + alp; - WavCoeffs_L0[i] *= (1.f + kk * cp.conres / 200.f); - } else if (LL100 < cp.th + tran) { - float ath = -cp.conres / tran; - float bth = cp.conres - ath * cp.th; - WavCoeffs_L0[i] *= (1.f + (LL100 * ath + bth) / 200.f); - } + delete temp; - //highlight - tran = 5.f; - - if (cp.thH < (tran)) { - tran = cp.thH; - } - - if (LL100 > cp.thH) { - WavCoeffs_L0[i] *= (1.f + cp.conresH / 200.f); - } else if (LL100 > (cp.thH - tran)) { - float athH = cp.conresH / tran; - float bthH = cp.conresH - athH * cp.thH; - WavCoeffs_L0[i] *= (1.f + (LL100 * athH + bthH) / 200.f); - } - } } + +#ifdef _OPENMP + #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) +#endif + { //enabled Lipschitz..replace simple by complex edge detection // I found this concept on the web (doctoral thesis on medical Imaging) // I was inspired by the principle of Canny and Lipschitz (continuity and derivability) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 1fa4d62a4..4a23e02dd 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2209,8 +2209,9 @@ WaveletParams::WaveletParams() : edgrad(15), edgval(0), edgthresh(10), - thr(35), - thrH(65), + thr(30), + thrH(70), + radius(40), skinprotect(0.0), hueskin(-5, 25, 170, 120, false), hueskin2(-260, -250, -130, -140, false), @@ -2316,6 +2317,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && edgthresh == other.edgthresh && thr == other.thr && thrH == other.thrH + && radius == other.radius && skinprotect == other.skinprotect && hueskin == other.hueskin && hueskin2 == other.hueskin2 @@ -3433,6 +3435,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.resconH, "Wavelet", "ResidualcontHighlight", wavelet.resconH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thr, "Wavelet", "ThresholdResidShadow", wavelet.thr, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thrH, "Wavelet", "ThresholdResidHighLight", wavelet.thrH, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.radius, "Wavelet", "Residualradius", wavelet.radius, keyFile); saveToKeyfile(!pedited || pedited->wavelet.reschro, "Wavelet", "Residualchroma", wavelet.reschro, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmrs, "Wavelet", "ResidualTM", wavelet.tmrs, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgs, "Wavelet", "ResidualEDGS", wavelet.edgs, keyFile); @@ -4543,6 +4546,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "ThrEdg", pedited, wavelet.edgthresh, pedited->wavelet.edgthresh); assignFromKeyfile(keyFile, "Wavelet", "ThresholdResidShadow", pedited, wavelet.thr, pedited->wavelet.thr); assignFromKeyfile(keyFile, "Wavelet", "ThresholdResidHighLight", pedited, wavelet.thrH, pedited->wavelet.thrH); + assignFromKeyfile(keyFile, "Wavelet", "Residualradius", pedited, wavelet.radius, pedited->wavelet.radius); assignFromKeyfile(keyFile, "Wavelet", "ContrastCurve", pedited, wavelet.ccwcurve, pedited->wavelet.ccwcurve); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveRG", pedited, wavelet.opacityCurveRG, pedited->wavelet.opacityCurveRG); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveBY", pedited, wavelet.opacityCurveBY, pedited->wavelet.opacityCurveBY); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index a17a34aaa..d5d055ca1 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1243,6 +1243,7 @@ struct WaveletParams { int edgthresh; int thr; int thrH; + int radius; double skinprotect; Threshold hueskin; Threshold hueskin2; diff --git a/rtgui/addsetids.h b/rtgui/addsetids.h index 7e9f6f6cd..a03228c33 100644 --- a/rtgui/addsetids.h +++ b/rtgui/addsetids.h @@ -86,6 +86,7 @@ enum { ADDSET_WA_SKINPROTECT, ADDSET_WA_THRR, ADDSET_WA_THRRH, + ADDSET_WA_RADIUS, ADDSET_WA_THRES, ADDSET_WA_THRESHOLD, ADDSET_WA_THRESHOLD2, diff --git a/rtgui/batchtoolpanelcoord.cc b/rtgui/batchtoolpanelcoord.cc index 63934f21c..1c7e61b04 100644 --- a/rtgui/batchtoolpanelcoord.cc +++ b/rtgui/batchtoolpanelcoord.cc @@ -165,7 +165,7 @@ void BatchToolPanelCoordinator::initSession () shadowshighlights->setAdjusterBehavior (false, false); dirpyrequalizer->setAdjusterBehavior (false, false, false); - wavelet->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false); + wavelet->setAdjusterBehavior (false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false); dirpyrdenoise->setAdjusterBehavior (false, false, false, false, false, false, false); bayerprocess->setAdjusterBehavior(false, false, false, false, false, false); xtransprocess->setAdjusterBehavior(false, false); @@ -213,7 +213,7 @@ void BatchToolPanelCoordinator::initSession () blackwhite->setAdjusterBehavior (options.baBehav[ADDSET_BLACKWHITE_HUES], options.baBehav[ADDSET_BLACKWHITE_GAMMA]); shadowshighlights->setAdjusterBehavior (options.baBehav[ADDSET_SH_HIGHLIGHTS], options.baBehav[ADDSET_SH_SHADOWS]); dirpyrequalizer->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYREQ], options.baBehav[ADDSET_DIRPYREQ_THRESHOLD], options.baBehav[ADDSET_DIRPYREQ_SKINPROTECT]); - wavelet->setAdjusterBehavior (options.baBehav[ADDSET_WA], options.baBehav[ADDSET_WA_THRESHOLD], options.baBehav[ADDSET_WA_THRESHOLD2], options.baBehav[ADDSET_WA_THRES], options.baBehav[ADDSET_WA_CHRO], options.baBehav[ADDSET_WA_CHROMA], options.baBehav[ADDSET_WA_CONTRAST], options.baBehav[ADDSET_WA_SKINPROTECT], options.baBehav[ADDSET_WA_RESCHRO], options.baBehav[ADDSET_WA_TMRS], options.baBehav[ADDSET_WA_EDGS], options.baBehav[ADDSET_WA_SCALE], options.baBehav[ADDSET_WA_RESCON], options.baBehav[ADDSET_WA_RESCONH], options.baBehav[ADDSET_WA_THRR], options.baBehav[ADDSET_WA_THRRH], options.baBehav[ADDSET_WA_SKYPROTECT], options.baBehav[ADDSET_WA_EDGRAD], options.baBehav[ADDSET_WA_EDGVAL], options.baBehav[ADDSET_WA_STRENGTH], options.baBehav[ADDSET_WA_GAMMA], options.baBehav[ADDSET_WA_EDGEDETECT], options.baBehav[ADDSET_WA_EDGEDETECTTHR], options.baBehav[ADDSET_WA_EDGEDETECTTHR2]); + wavelet->setAdjusterBehavior (options.baBehav[ADDSET_WA], options.baBehav[ADDSET_WA_THRESHOLD], options.baBehav[ADDSET_WA_THRESHOLD2], options.baBehav[ADDSET_WA_THRES], options.baBehav[ADDSET_WA_CHRO], options.baBehav[ADDSET_WA_CHROMA], options.baBehav[ADDSET_WA_CONTRAST], options.baBehav[ADDSET_WA_SKINPROTECT], options.baBehav[ADDSET_WA_RESCHRO], options.baBehav[ADDSET_WA_TMRS], options.baBehav[ADDSET_WA_EDGS], options.baBehav[ADDSET_WA_SCALE], options.baBehav[ADDSET_WA_RESCON], options.baBehav[ADDSET_WA_RESCONH], options.baBehav[ADDSET_WA_THRR], options.baBehav[ADDSET_WA_THRRH], options.baBehav[ADDSET_WA_RADIUS], options.baBehav[ADDSET_WA_SKYPROTECT], options.baBehav[ADDSET_WA_EDGRAD], options.baBehav[ADDSET_WA_EDGVAL], options.baBehav[ADDSET_WA_STRENGTH], options.baBehav[ADDSET_WA_GAMMA], options.baBehav[ADDSET_WA_EDGEDETECT], options.baBehav[ADDSET_WA_EDGEDETECTTHR], options.baBehav[ADDSET_WA_EDGEDETECTTHR2]); dirpyrdenoise->setAdjusterBehavior (options.baBehav[ADDSET_DIRPYRDN_LUMA], options.baBehav[ADDSET_DIRPYRDN_LUMDET], options.baBehav[ADDSET_DIRPYRDN_CHROMA], options.baBehav[ADDSET_DIRPYRDN_CHROMARED], options.baBehav[ADDSET_DIRPYRDN_CHROMABLUE], options.baBehav[ADDSET_DIRPYRDN_GAMMA], options.baBehav[ADDSET_DIRPYRDN_PASSES]); bayerprocess->setAdjusterBehavior(options.baBehav[ADDSET_BAYER_FALSE_COLOR_SUPPRESSION], options.baBehav[ADDSET_BAYER_ITER], options.baBehav[ADDSET_BAYER_DUALDEMOZCONTRAST], options.baBehav[ADDSET_BAYER_PS_SIGMA], options.baBehav[ADDSET_BAYER_PS_SMOOTH], options.baBehav[ADDSET_BAYER_PS_EPERISO]); xtransprocess->setAdjusterBehavior(options.baBehav[ADDSET_BAYER_FALSE_COLOR_SUPPRESSION], options.baBehav[ADDSET_BAYER_DUALDEMOZCONTRAST]); @@ -333,6 +333,7 @@ void BatchToolPanelCoordinator::initSession () if (options.baBehav[ADDSET_WA_SCALE]) { pparams.wavelet.scale = 0; } if (options.baBehav[ADDSET_WA_THRR]) { pparams.wavelet.thr = 0; } if (options.baBehav[ADDSET_WA_THRRH]) { pparams.wavelet.thrH = 0; } + if (options.baBehav[ADDSET_WA_RADIUS]) { pparams.wavelet.radius = 0; } if (options.baBehav[ADDSET_WA_SKYPROTECT]) { pparams.wavelet.sky = 0; } if (options.baBehav[ADDSET_WA_EDGRAD]) { pparams.wavelet.edgrad = 0; } if (options.baBehav[ADDSET_WA_EDGVAL]) { pparams.wavelet.edgval = 0; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 5e123e638..160f68feb 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -519,6 +519,7 @@ struct WaveletParamsEdited { bool edgthresh; bool thr; bool thrH; + bool radius; bool skinprotect; bool hueskin; bool hueskin2; diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 63a9315a6..2269c6749 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -387,6 +387,7 @@ Gtk::Widget* Preferences::getBatchProcPanel () appendBehavList (mi, M ("TP_WAVELET_THR"), ADDSET_WA_THRR, true); appendBehavList (mi, M ("TP_WAVELET_RESCONH"), ADDSET_WA_RESCONH, true); appendBehavList (mi, M ("TP_WAVELET_THRH"), ADDSET_WA_THRRH, true); + appendBehavList (mi, M ("TP_WAVELET_RADIUS"), ADDSET_WA_RADIUS, true); appendBehavList (mi, M ("TP_WAVELET_RESCHRO"), ADDSET_WA_RESCHRO, true); appendBehavList (mi, M ("TP_WAVELET_TMSTRENGTH"), ADDSET_WA_TMRS, true); appendBehavList (mi, M ("TP_WAVELET_TMEDGS"), ADDSET_WA_EDGS, true); diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 165db8e94..5275fa948 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -77,8 +77,8 @@ Wavelet::Wavelet() : tmr(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_BALCHRO")))), showmask(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_SHOWMASK")))), neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), - rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), - resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), + rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), 0, 100, 1, 0))), + resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), 0, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), @@ -90,8 +90,9 @@ Wavelet::Wavelet() : chroma(Gtk::manage(new Adjuster(M("TP_WAVELET_CHRO"), 1, 9, 1, 5))), chro(Gtk::manage(new Adjuster(M("TP_WAVELET_CHR"), 0., 100., 1., 0.))), contrast(Gtk::manage(new Adjuster(M("TP_WAVELET_CONTRA"), -100, 100, 1, 0))), - thr(Gtk::manage(new Adjuster(M("TP_WAVELET_THR"), 0, 100, 1, 35))), - thrH(Gtk::manage(new Adjuster(M("TP_WAVELET_THRH"), 0, 100, 1, 65))), + thr(Gtk::manage(new Adjuster(M("TP_WAVELET_THR"), 0, 100, 1, 30))), + thrH(Gtk::manage(new Adjuster(M("TP_WAVELET_THRH"), 0, 100, 1, 70))), + radius(Gtk::manage(new Adjuster(M("TP_WAVELET_RADIUS"), 0, 100, 1, 40))), skinprotect(Gtk::manage(new Adjuster(M("TP_WAVELET_SKIN"), -100, 100, 1, 0.))), edgrad(Gtk::manage(new Adjuster(M("TP_WAVELET_EDRAD"), 0, 100, 1, 15))), edgval(Gtk::manage(new Adjuster(M("TP_WAVELET_EDVAL"), 0, 100, 1, 0))), @@ -167,6 +168,7 @@ Wavelet::Wavelet() : EvWavshowmask = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSHOWMASK"); EvWavedgs = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVEDGS"); EvWavscale = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSCALE"); + EvWavradius = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVRADIUS"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -678,6 +680,9 @@ Wavelet::Wavelet() : thrH->setAdjusterListener(this); resBox->pack_start(*thrH, Gtk::PACK_SHRINK); + radius->setAdjusterListener(this); + resBox->pack_start(*radius, Gtk::PACK_SHRINK); + contrast->set_tooltip_text(M("TP_WAVELET_CONTRA_TOOLTIP")); contrast->setAdjusterListener(this); resBox->pack_start(*contrast); //keep the possibility to reinstall @@ -1231,6 +1236,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) edgthresh->setValue(pp->wavelet.edgthresh); thr->setValue(pp->wavelet.thr); thrH->setValue(pp->wavelet.thrH); + radius->setValue(pp->wavelet.radius); skinprotect->setValue(pp->wavelet.skinprotect); hueskin->setValue(pp->wavelet.hueskin); hueskin2->setValue(pp->wavelet.hueskin2); @@ -1406,6 +1412,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) edgval->setEditedState(pedited->wavelet.edgval ? Edited : UnEdited); thr->setEditedState(pedited->wavelet.thr ? Edited : UnEdited); thrH->setEditedState(pedited->wavelet.thrH ? Edited : UnEdited); + radius->setEditedState(pedited->wavelet.radius ? Edited : UnEdited); skinprotect->setEditedState(pedited->wavelet.skinprotect ? Edited : UnEdited); hueskin->setEditedState(pedited->wavelet.hueskin ? Edited : UnEdited); hueskin2->setEditedState(pedited->wavelet.hueskin2 ? Edited : UnEdited); @@ -1567,6 +1574,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.edgthresh = edgthresh->getValue(); pp->wavelet.thr = thr->getValue(); pp->wavelet.thrH = thrH->getValue(); + pp->wavelet.radius = radius->getValue(); pp->wavelet.hueskin = hueskin->getValue (); pp->wavelet.hueskin2 = hueskin2->getValue (); pp->wavelet.skinprotect = skinprotect->getValue(); @@ -1676,6 +1684,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.edgval = edgval->getEditedState(); pedited->wavelet.thr = thr->getEditedState(); pedited->wavelet.thrH = thrH->getEditedState(); + pedited->wavelet.radius = radius->getEditedState(); pedited->wavelet.hueskin = hueskin->getEditedState(); pedited->wavelet.hueskin2 = hueskin2->getEditedState(); pedited->wavelet.skinprotect = skinprotect->getEditedState(); @@ -1910,6 +1919,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit edgthresh->setDefault(defParams->wavelet.edgthresh); thr->setDefault(defParams->wavelet.thr); thrH->setDefault(defParams->wavelet.thrH); + radius->setDefault(defParams->wavelet.radius); hueskin->setDefault (defParams->wavelet.hueskin); hueskin2->setDefault (defParams->wavelet.hueskin2); hllev->setDefault (defParams->wavelet.hllev); @@ -1970,6 +1980,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit edgthresh->setDefault(defParams->wavelet.edgthresh); thr->setDefaultEditedState(pedited->wavelet.thr ? Edited : UnEdited); thrH->setDefaultEditedState(pedited->wavelet.thrH ? Edited : UnEdited); + radius->setDefaultEditedState(pedited->wavelet.radius ? Edited : UnEdited); skinprotect->setDefaultEditedState(pedited->wavelet.skinprotect ? Edited : UnEdited); hueskin->setDefaultEditedState(pedited->wavelet.hueskin ? Edited : UnEdited); hueskin2->setDefaultEditedState(pedited->wavelet.hueskin2 ? Edited : UnEdited); @@ -2019,6 +2030,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit edgthresh->setDefaultEditedState(Irrelevant); thr->setDefaultEditedState(Irrelevant); thrH->setDefaultEditedState(Irrelevant); + radius->setDefaultEditedState(Irrelevant); skinprotect->setDefaultEditedState(Irrelevant); hueskin->setDefaultEditedState(Irrelevant); hueskin2->setDefaultEditedState(Irrelevant); @@ -2533,6 +2545,7 @@ void Wavelet::setBatchMode(bool batchMode) edgthresh->showEditedCB(); thr->showEditedCB(); thrH->showEditedCB(); + radius->showEditedCB(); skinprotect->showEditedCB(); hueskin->showEditedCB(); hueskin2->showEditedCB(); @@ -2625,6 +2638,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavthr, thr->getTextValue()); } else if (a == thrH) { listener->panelChanged(EvWavthrH, thrH->getTextValue()); + } else if (a == radius) { + listener->panelChanged(EvWavradius, radius->getTextValue()); } else if (a == threshold) { listener->panelChanged(EvWavThreshold, threshold->getTextValue()); } else if (a == threshold2) { @@ -3181,7 +3196,7 @@ void Wavelet::colorForValue(double valX, double valY, enum ColorCaller::ElemType caller->ccGreen = double(G); caller->ccBlue = double(B); } -void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add) +void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool radiusadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add) { for (int i = 0; i < 9; i++) { @@ -3203,6 +3218,7 @@ void Wavelet::setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool th scale->setAddMode(scaleadd); thr->setAddMode(thradd); thrH->setAddMode(thrHadd); + radius->setAddMode(radiusadd); sky->setAddMode(skyadd); edgrad->setAddMode(edgradadd); edgval->setAddMode(edgvaladd); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 5878a1ae4..4ef36d076 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -50,7 +50,7 @@ public: void autoOpenCurve () override; void curveChanged (CurveEditor* ce) override; void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; - void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); + void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool edgsadd, bool scaleadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool radiusadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); void setBatchMode (bool batchMode) override; void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; void setEditProvider (EditDataProvider *provider) override; @@ -74,6 +74,7 @@ private: rtengine::ProcEvent EvWavshowmask; rtengine::ProcEvent EvWavedgs; rtengine::ProcEvent EvWavscale; + rtengine::ProcEvent EvWavradius; void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -180,6 +181,7 @@ private: Adjuster* const contrast; Adjuster* const thr; Adjuster* const thrH; + Adjuster* const radius; Adjuster* const skinprotect; Adjuster* const edgrad; Adjuster* const edgval; From 25e66f1fc23ebf9051d98fa1f6e209b64ee5d9c5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 27 May 2019 11:20:14 +0200 Subject: [PATCH 015/453] Small improvments residual --- rtengine/ipwavelet.cc | 2 +- rtgui/paramsedited.cc | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index bf9a6f37e..de5d193a1 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1595,7 +1595,7 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat float edgest = params->wavelet.edgs; float sca = params->wavelet.scale; float gamm = params->wavelet.gamma; - float rew = params->epd.reweightingIterates; + int rew = 0; //params->epd.reweightingIterates; EdgePreservingDecomposition epd2(W_L, H_L); cp.TMmeth = 2; //default after testing diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index f0abd04f7..3616aade1 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -520,6 +520,7 @@ void ParamsEdited::set(bool v) wavelet.edgthresh = v; wavelet.thr = v; wavelet.thrH = v; + wavelet.radius = v; wavelet.skinprotect = v; wavelet.hueskin = v; wavelet.hueskin2 = v; @@ -1096,6 +1097,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.edgthresh = wavelet.edgthresh && p.wavelet.edgthresh == other.wavelet.edgthresh; wavelet.thr = wavelet.thr && p.wavelet.thr == other.wavelet.thr; wavelet.thrH = wavelet.thrH && p.wavelet.thrH == other.wavelet.thrH; + wavelet.radius = wavelet.radius && p.wavelet.radius == other.wavelet.radius; wavelet.hueskin = wavelet.hueskin && p.wavelet.hueskin == other.wavelet.hueskin; wavelet.hueskin2 = wavelet.hueskin2 && p.wavelet.hueskin2 == other.wavelet.hueskin2; wavelet.hllev = wavelet.hllev && p.wavelet.hllev == other.wavelet.hllev; @@ -2928,6 +2930,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.thrH = dontforceSet && options.baBehav[ADDSET_WA_THRRH] ? toEdit.wavelet.thrH + mods.wavelet.thrH : mods.wavelet.thrH; } + if (wavelet.radius) { + toEdit.wavelet.radius = dontforceSet && options.baBehav[ADDSET_WA_RADIUS] ? toEdit.wavelet.radius + mods.wavelet.radius : mods.wavelet.radius; + } + if (wavelet.sup) { toEdit.wavelet.sup = mods.wavelet.sup; } From f2666dc464dae9da843baa8bd50de4a53173303f Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 14 Jun 2019 07:28:37 +0200 Subject: [PATCH 016/453] Re-enabled showmask clarity and sharp-mask --- rtengine/dcrop.cc | 14 ++++++-- rtengine/improccoordinator.cc | 14 +++++--- rtgui/wavelet.cc | 63 +++++------------------------------ 3 files changed, 30 insertions(+), 61 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 7a72cc1cc..e08a53a10 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1102,6 +1102,14 @@ void Crop::update(int todo) mL0 = mL = mC0 = mC = 0.f; } + float indic = 1.f; + if(WaveParams.showmask){ + mL0 = mC0 = -1.f; + indic = -1.f; + mL = fabs(mL); + mC = fabs(mC); + } + #ifdef _OPENMP #pragma omp parallel for @@ -1109,9 +1117,9 @@ void Crop::update(int todo) for (int x = 0; x < labnCrop->H; x++) for (int y = 0; y < labnCrop->W; y++) { - labnCrop->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * labnCrop->L[x][y]; - labnCrop->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * labnCrop->a[x][y]; - labnCrop->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * labnCrop->b[x][y]; + labnCrop->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * indic * labnCrop->L[x][y]; + labnCrop->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * indic * labnCrop->a[x][y]; + labnCrop->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * indic * labnCrop->b[x][y]; } delete unshar; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index b9d1664cd..5b946fb8c 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -967,17 +967,23 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } else { mL0 = mL = mC0 = mC = 0.f; } + float indic = 1.f; - + if(WaveParams.showmask){ + mL0 = mC0 = -1.f; + indic = -1.f; + mL = fabs(mL); + mC = fabs(mC); + } #ifdef _OPENMP #pragma omp parallel for #endif for (int x = 0; x < pH; x++) for (int y = 0; y < pW; y++) { - nprevl->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * nprevl->L[x][y]; - nprevl->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * nprevl->a[x][y]; - nprevl->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * nprevl->b[x][y]; + nprevl->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * indic * nprevl->L[x][y]; + nprevl->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * indic * nprevl->a[x][y]; + nprevl->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * indic * nprevl->b[x][y]; } delete unshar; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 5275fa948..7f9164779 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -501,7 +501,7 @@ Wavelet::Wavelet() : clariBox->pack_start(*mergeL); clariBox->pack_start(*mergeC); clariBox->pack_start(*softrad); -// clariBox->pack_start(*showmask); + clariBox->pack_start(*showmask); // Edge Sharpness ToolParamBlock* const edgBox = Gtk::manage(new ToolParamBlock()); @@ -3064,46 +3064,6 @@ void Wavelet::avoidToggled() void Wavelet::showmaskToggled() { - if (ushamethod->get_active_row_number() == 1 && showmask->get_active()) { - Backmethod->set_active(2); - CLmethod->set_active(2); - Lmethod->set_active(6); - Lmethod->set_sensitive(true); - Dirmethod->set_sensitive(true); - Dirmethod->set_active(3); - expclari->setEnabled(false); - - } else if (ushamethod->get_active_row_number() == 0 && showmask->get_active()) { - Backmethod->set_active(0); - CLmethod->set_active(1); - Lmethod->set_active(2); - Dirmethod->set_active(3); - Lmethod->set_sensitive(true); - Dirmethod->set_sensitive(true); - expclari->setEnabled(false); - - } - - if (ushamethod->get_active_row_number() == 1 && !showmask->get_active()) { - Backmethod->set_active(2); - CLmethod->set_active(2); - Lmethod->set_active(6); - Lmethod->set_sensitive(true); - Dirmethod->set_sensitive(true); - Dirmethod->set_active(3); - expclari->setEnabled(true); - - } else if (ushamethod->get_active_row_number() == 0 && !showmask->get_active()) { - Backmethod->set_active(0); - CLmethod->set_active(1); - Lmethod->set_active(2); - Dirmethod->set_active(3); - Lmethod->set_sensitive(true); - Dirmethod->set_sensitive(true); - expclari->setEnabled(true); - - } - if (multiImage) { if (showmask->get_inconsistent()) { showmask->set_inconsistent(false); @@ -3306,20 +3266,15 @@ void Wavelet::enableToggled(MyExpander *expander) event = EvWavenafin; } else if (expander == expclari) { if (expclari->getEnabled() == false) { - if (! showmask->get_active()) { - Backmethod->set_active(1); - CLmethod->set_active(3); - Lmethod->set_active(3); - Dirmethod->set_active(3); - Lmethod->set_sensitive(false); - Dirmethod->set_sensitive(false); - CLmethod->set_sensitive(true); - Backmethod->set_sensitive(true); - } + Backmethod->set_active(1); + CLmethod->set_active(3); + Lmethod->set_active(3); + Dirmethod->set_active(3); + Lmethod->set_sensitive(false); + Dirmethod->set_sensitive(false); + CLmethod->set_sensitive(true); + Backmethod->set_sensitive(true); } else { - if (showmask->get_active()) { - showmask->set_active(false); - } if (ushamethod->get_active_row_number() == 1) { Backmethod->set_active(2); From 5dbc61579d9b83e26160107ab201fec84ba016f5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Jun 2019 13:56:52 +0200 Subject: [PATCH 017/453] Save provisory work for autowb ITCWB --- rtengine/color.cc | 11 + rtengine/color.h | 1 + rtengine/colortemp.cc | 2228 ++++++++++++++++++- rtengine/colortemp.h | 172 ++ rtengine/iimage.h | 5 + rtengine/imagesource.h | 2 + rtengine/improccoordinator.cc | 18 + rtengine/procparams.cc | 10 +- rtengine/rawimagesource.cc | 3777 +++++++++++++++++++++++++++++++++ rtengine/rawimagesource.h | 7 + rtengine/settings.h | 8 + rtengine/stdimagesource.cc | 26 + rtengine/stdimagesource.h | 3 + rtgui/options.cc | 44 + rtgui/whitebalance.cc | 9 + 15 files changed, 6317 insertions(+), 4 deletions(-) diff --git a/rtengine/color.cc b/rtengine/color.cc index 3f2a75788..0ee5a479c 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -939,6 +939,17 @@ void Color::rgbxyz (float r, float g, float b, float &x, float &y, float &z, con z = ((xyz_rgb[2][0] * r + xyz_rgb[2][1] * g + xyz_rgb[2][2] * b)) ; } +void Color::rgbxyY(float r, float g, float b, float &x, float &y, float &Y, float &xx, float &yy, float &zz, const double xyz_rgb[3][3]) +{ + xx = ((xyz_rgb[0][0] * r + xyz_rgb[0][1] * g + xyz_rgb[0][2] * b)) ; + yy = ((xyz_rgb[1][0] * r + xyz_rgb[1][1] * g + xyz_rgb[1][2] * b)) ; + zz = ((xyz_rgb[2][0] * r + xyz_rgb[2][1] * g + xyz_rgb[2][2] * b)) ; + float som = xx + yy + zz; + x = xx / som; + y = yy / som; + Y = yy / 65535.f; +} + void Color::rgbxyz (float r, float g, float b, float &x, float &y, float &z, const float xyz_rgb[3][3]) { x = ((xyz_rgb[0][0] * r + xyz_rgb[0][1] * g + xyz_rgb[0][2] * b)) ; diff --git a/rtengine/color.h b/rtengine/color.h index a94302e30..0963c0ff4 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -585,6 +585,7 @@ public: * @param xyz_rgb[3][3] transformation matrix to use for the conversion */ static void rgbxyz (float r, float g, float b, float &x, float &y, float &z, const double xyz_rgb[3][3]); + static void rgbxyY(float r, float g, float b, float &x, float &y, float &Y, float &xx, float &yy, float &zz, const double xyz_rgb[3][3]); static void rgbxyz (float r, float g, float b, float &x, float &y, float &z, const float xyz_rgb[3][3]); #ifdef __SSE2__ static void rgbxyz (vfloat r, vfloat g, vfloat b, vfloat &x, vfloat &y, vfloat &z, const vfloat xyz_rgb[3][3]); diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index a7a769d93..527755a03 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -23,6 +23,12 @@ #include #include "sleef.c" #include "settings.h" +#include "iccstore.h" + +#undef CLIPD +#define CLIPD(a) ((a)>0.0?((a)<1.0?(a):1.0):0.0) +#define CLIPQQ(a) ((a)>0?((a)<250?(a):250):0) +#define MAXR(a,b) ((a) > (b) ? (a) : (b)) namespace rtengine { @@ -393,6 +399,618 @@ const double ColorTemp::ColorchechGreE2_spect[97] = { 0.4297, 0.4837, 0.5142, 0.5446, 0.5541, 0.5636, 0.5608, 0.5579, 0.5480, 0.5381, 0.5258, 0.5135, 0.4959, 0.4783, 0.4570, 0.4356, 0.4124, 0.3891, 0.3710, 0.3529, 0.3425, 0.3320, 0.3266, 0.3211, 0.3180, 0.3149, 0.3129, 0.3108, 0.3123, 0.3137, 0.3193, 0.3248, 0.3335, 0.3422, 0.3518, 0.3613, 0.3693, 0.3772, 0.3810, 0.3847, 0.3838, 0.3829, 0.3838, 0.3847, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +const double ColorTemp::ColorGreenM25_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0758, 0.0614, 0.0662, 0.0591, 0.0648, 0.0633, 0.0671, 0.0613, 0.0621, 0.0610, 0.0680, 0.0690, 0.0784, 0.0830, 0.0920, 0.1070, 0.1231, 0.1423, 0.1607, 0.1731, 0.1816, 0.1911, 0.1951, 0.1986, 0.1915, 0.1889, + 0.1758, 0.1673, 0.1606, 0.1505, 0.1384, 0.1317, 0.1230, 0.1149, 0.1081, 0.0992, 0.0882, 0.0785, 0.0709, 0.0629, 0.0550, 0.0502, 0.0486, 0.0474, 0.0445, 0.0434, 0.0429, 0.0423, 0.0411, 0.0405, 0.0397, 0.0387, 0.0399, 0.0398, 0.0398, 0.0407, 0.0408, 0.0426, 0.0445, 0.0443, 0.0468, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//0 658 45 0 0 131 98 84 123 104 131 112 121 121 139 128 148 199 296 389 476 689 945 1132 1326 1490 1674 1741 1775 1868 1914 1928 1961 1972 1992 2045 2064 2053 2048 2072 2086 2081 2069 2056 2073 2096 2114 2067 2089 2100 2061 2019 1983 1971 1961 2016 1956 1946 1922 1983 1991 +const double ColorTemp::ColorYellowkeltano_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0658, 0.0045, 0.0, 0.0, 0.0131, 0.0098, 0.0084, 0.0123, 0.0104, 0.0131, 0.0112, 0.0121, 0.0121, 0.0139, + 0.0128, 0.0148, 0.0199, 0.0296, 0.0389, 0.0476, 0.0689, 0.0945, 0.1132, 0.1326, 0.1490, 0.1674, 0.1741, 0.1775, 0.1868, + 0.1914, 0.1928, 0.1961, 0.1972, 0.1992, 0.2045, 0.2064, 0.2053, 0.2048, 0.2072, 0.2086, 0.2081, 0.2069, 0.2056, 0.2073, + 0.2096, 0.2114, 0.2067, 0.2089, 0.2100, 0.2061, 0.2019, 0.1983, 0.1971, 0.1961, 0.2016, 0.1956, 0.1946, 0.1922, 0.1983, 0.1991, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::ColorGreenalsi_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1732, 0.0292, 0.0315, 0.0533, 0.0469, 0.0359, 0.0404, 0.0356, 0.0345, 0.0374, 0.0348, 0.0336, 0.0332, 0.0333, 0.0342, + 0.0330, 0.0350, 0.0343, 0.0354, 0.0371, 0.0399, 0.0426, 0.0497, 0.0541, 0.0616, 0.0701, 0.0750, 0.0764, 0.0783, 0.0794, + 0.0784, 0.0732, 0.0708, 0.0652, 0.0612, 0.0595, 0.0570, 0.0531, 0.0507, 0.0501, 0.0488, 0.0458, 0.0437, 0.0420, 0.0436, + 0.0424, 0.0417, 0.0389, 0.0380, 0.0378, 0.0371, 0.0350, 0.0333, 0.0350, 0.0394, 0.0379, 0.0446, 0.0491, 0.0575, 0.0734, 0.0953, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//1890 1097 855 899 987 881 807 804 787 691 643 549 465 404 385 302 244 195 165 159 123 129 108 111 114 126 126 134 162 170 213 248 279 351 412 566 752 909 1069 1270 1526 +//1707 1858 1999 2112 2293 2422 2471 2611 2718 2710 2778 2807 2825 2856 2909 2901 2974 3042 3044 3075 +const double ColorTemp::ColorRedpetunia_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1890, 0.1097, 0.0855, 0.0899, 0.0987, 0.0881, 0.0807, 0.0804, 0.0787, 0.0691, 0.0643, 0.0549, 0.0465, 0.0404, 0.0385, + 0.0302, 0.0244, 0.0195, 0.0165, 0.0159, 0.0123, 0.0129, 0.0108, 0.0111, 0.0114, 0.0126, 0.0126, 0.0134, 0.0162, 0.0170, + 0.0213, 0.0248, 0.0279, 0.0351, 0.0412, 0.0566, 0.0752, 0.0909, 0.1069, 0.1270, 0.1526, 0.1707, 0.1858, 0.1999, 0.2112, + 0.2293, 0.2422, 0.2471, 0.2611, 0.2718, 0.2710, 0.2778, 0.2807, 0.2825, 0.2856, 0.2909, 0.2901, 0.2974, 0.3042, 0.3044, 0.3075, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//0.1588 0.1980 0.2789 0.4585 0.6059 0.6609 0.6674 0.6599 0.6551 0.6472 0.6423 0.6485 0.6515 0.6379 0.6193 0.6121 0.6026 0.5678 0.5310 0.5245 0.5305 0.5324 0.5262 0.5219 0.5247 0.5312 0.5436 0.5634 0.5832 0.5943 0.5953 0.5902 0.5805 0.5754 0.5901 0.6262 + +const double ColorTemp::JDC468_B14_75Redspect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1588, 0.1780, 0.1980, 0.2310, 0.2789, 0.3213, 0.4585, 0.5324, 0.6059, 0.6334, 0.6609, 0.6630, 0.6674, 0.6640, 0.6599, 0.6600, 0.6551, 0.6532, 0.6472, 0.6450, + 0.6423, 0.6467, 0.6485, 0.6500, 0.6515, 0.6456, 0.6379, 0.6285, 0.6193, 0.6150, 0.6121, 0.6056, 0.6026, 0.5812, 0.5678, 0.5490, 0.5310, 0.5307, 0.5245, 0.5300, + 0.5305, 0.5310, 0.5324, 0.5298, 0.5262, 0.5230, 0.5219, 0.5231, 0.5247, 0.5280, 0.5312, 0.5364, 0.5436, 0.5550, 0.5634, 0.5731, 0.5832, 0.5901, 0.5943, 0.5950, + 0.5953, 0.5926, 0.5902, 0.5850, 0.5805, 0.5770, 0.5754, 0.6012, 0.6262, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +const double ColorTemp::ColorRedkurttu_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0979, 0.1536, 0.0745, 0.1145, 0.0937, 0.0996, 0.0972, 0.0924, 0.0875, 0.0878, 0.0826, 0.0766, 0.0658, 0.0599, 0.0545, + 0.0509, 0.0443, 0.0381, 0.0356, 0.0327, 0.0318, 0.0304, 0.0295, 0.0288, 0.0285, 0.0271, 0.0281, 0.0282, 0.0278, 0.0280, + 0.0296, 0.0309, 0.0324, 0.0342, 0.0343, 0.0376, 0.0419, 0.0464, 0.0520, 0.0634, 0.0747, 0.0905, 0.1093, 0.1167, 0.1264, + 0.1439, 0.1650, 0.1928, 0.2183, 0.2380, 0.2537, 0.2754, 0.2893, 0.3009, 0.3115, 0.3213, 0.3173, 0.3222, 0.3237, 0.3192, 0.3210, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#light red flower (lupiini) +//1792 1553 1684 1882 1909 1847 2053 2084 2045 2052 2039 2084 2041 2044 2007 1984 1906 1876 1886 1855 1859 1875 1816 1800 1811 1780 1802 1816 1838 1915 1973 2018 2083 2114 2133 2226 2304 2385 2458 2494 2571 2689 2738 2774 2734 2759 2781 2831 2844 2857 2878 2876 2884 2920 2932 2860 2894 2934 2925 2928 2921 +const double ColorTemp::ColorRedlupiini_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1792, 0.1553, 0.1684, 0.1882, 0.1909, 0.1847, 0.2053, 0.2084, 0.2045, 0.2052, 0.2039, 0.2084, 0.2041, 0.2044, 0.2007, 0.1984, 0.1906, 0.1876, + 0.1886, 0.1855, 0.1859, 0.1875, 0.1816, 0.1800, 0.1811, 0.1780, 0.1802, 0.1816, 0.1838, 0.1915, 0.1973, 0.2018, 0.2083, 0.2114, 0.2133, 0.2226, + 0.2304, 0.2385, 0.2458, 0.2494, 0.2571, 0.2689, 0.2738, 0.2774, 0.2734, 0.2759, 0.2781, 0.2831, 0.2844, 0.2857, 0.2878, 0.2876, 0.2884, 0.2920, + 0.2932, 0.2860, 0.2894, 0.2934, 0.2925, 0.2928, 0.2921, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//#red flower (hevosminttu) +//1280 706 612 462 391 339 253 285 261 264 239 208 201 186 185 161 156 149 146 148 161 144 143 151 147 146 139 148 173 185 185 197 222 238 283 322 384 439 519 633 792 922 1061 1186 1235 1342 1538 1691 1839 1974 2024 2098 2128 2187 2204 2217 2267 2299 2339 2331 2322 +const double ColorTemp::ColorRedhevosminttu_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1280, 0.0706, 0.0612, 0.0462, 0.0391, 0.0339, 0.0253, 0.0285, 0.0261, 0.0264, 0.0239, 0.0208, 0.0201, 0.0186, 0.0185, 0.0161, 0.0156, 0.0149, + 0.0146, 0.0148, 0.0161, 0.0144, 0.0143, 0.0151, 0.0147, 0.0146, 0.0139, 0.0148, 0.0173, 0.0185, 0.0185, 0.0197, 0.0222, 0.0238, 0.0283, 0.0322, + 0.0384, 0.0439, 0.0519, 0.0633, 0.0792, 0.0922, 0.1061, 0.1186, 0.1235, 0.1342, 0.1538, 0.1691, 0.1839, 0.1974, 0.2024, 0.2098, 0.2128, 0.2187, 0.2204, + 0.2217, 0.2267, 0.2299, 0.2339, 0.2331, 0.2322, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//#red flower (neilikka) +//0 0 394 0 245 95 174 149 194 171 181 175 172 167 147 137 107 108 100 87 93 87 83 77 80 67 72 64 83 84 88 90 91 94 114 133 178 241 309 419 612 823 992 1153 1222 1366 1503 1658 1767 1841 1884 1992 2035 2007 2009 2045 2065 2229 2290 2395 2449 +const double ColorTemp::ColorRedneilikka_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0394, 0.0, 0.0245, 0.0095, 0.0174, 0.0149, 0.0194, 0.0171, 0.0181, 0.0175, 0.0172, 0.0167, 0.0147, 0.0137, 0.0107, 0.0108, 0.0100, + 0.0087, 0.0093, 0.0087, 0.0083, 0.0077, 0.0080, 0.0067, 0.0072, 0.0064, 0.0083, 0.0084, 0.0088, 0.0090, 0.0091, 0.0094, 0.0114, 0.0133, + 0.0178, 0.0241, 0.0309, 0.0419, 0.0612, 0.0823, 0.0992, 0.1153, 0.1222, 0.1366, 0.1503, 0.1658, 0.1767, 0.1841, 0.1884, 0.1992, 0.2035, 0.2007, 0.2009, + 0.2045, 0.2065, 0.2229, 0.2290, 0.2395, 0.2449, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#red petal (pelargonia) +//2529 2048 2087 2698 2452 2372 2531 2475 2296 2294 2159 2111 1986 1898 1854 1729 1586 1501 1392 1332 1343 1255 1217 1182 1183 1203 1230 1277 1381 1474 1615 1762 1876 2028 2214 2464 2657 2919 3051 3172 3293 3421 3395 3494 3438 3495 3506 3490 3454 3487 3431 3452 3484 3438 3422 3368 3325 3441 3356 3432 3320 +const double ColorTemp::ColorRedpelagornia_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2529, 0.2048, 0.2087, 0.2698, 0.2452, 0.2372, 0.2531, 0.2475, 0.2296, 0.2294, 0.2159, 0.2111, 0.1986, 0.1898, 0.1854, 0.1729, 0.1586, 0.1501, 0.1392, 0.1332, 0.1343, + 0.1255, 0.1217, 0.1182, 0.1183, 0.1203, 0.1230, 0.1277, 0.1381, 0.1474, 0.1615, 0.1762, 0.1876, 0.2028, 0.2214, 0.2464, 0.2657, 0.2919, 0.3051, 0.3172, 0.3293, 0.3421, + 0.3395, 0.3494, 0.3438, 0.3495, 0.3506, 0.3490, 0.3454, 0.3487, 0.3431, 0.3452, 0.3484, 0.3438, 0.3422, 0.3368, 0.3325, 0.3441, 0.3356, 0.3432, 0.3320, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#red flower (talvio) +//3131 2199 2559 2540 2844 2530 2694 2765 2594 2673 2617 2629 2491 2384 2308 2256 2081 1973 1857 1752 1719 1652 1527 1477 1459 1386 1341 1283 1318 1334 1354 1424 1495 1543 1634 1773 1950 2129 2272 2431 2642 2827 2941 3045 3082 3158 3216 3307 3364 3388 3387 3517 3573 3501 3499 3523 3495 3606 3493 3518 3522 +const double ColorTemp::ColorRedtalvio_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3131, 0.2199, 0.2559, 0.2540, 0.2844, 0.2530, 0.2694, 0.2765, 0.2594, 0.2673, 0.2617, 0.2629, 0.2491, 0.2384, 0.2308, 0.2256, 0.2081, 0.1973, 0.1857, 0.1752, 0.1719, + 0.1652, 0.1527, 0.1477, 0.1459, 0.1386, 0.1341, 0.1283, 0.1318, 0.1334, 0.1354, 0.1424, 0.1495, 0.1543, 0.1634, 0.1773, 0.1950, 0.2129, 0.2272, 0.2431, 0.2642, 0.2827, + 0.2941, 0.3045, 0.3082, 0.3158, 0.3216, 0.3307, 0.3364, 0.3388, 0.3387, 0.3517, 0.3573, 0.3501, 0.3499, 0.3523, 0.3495, 0.3606, 0.3493, 0.3518, 0.3522, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; + +//#brown dry leaf (poimulehti) +//964 520 223 244 261 247 196 199 200 207 202 198 209 204 207 222 205 218 213 212 224 218 230 235 251 250 245 250 263 273 271 275 281 264 274 288 287 307 303 307 323 304 335 335 346 345 347 348 370 364 380 393 384 407 419 421 419 433 431 461 465 +//RIs 67 +const double ColorTemp::ColorBrownpoimulehti_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0964, 0.0520, 0.0223, 0.0244, 0.0261, 0.0247, 0.0196, 0.0199, 0.0200, 0.0207, 0.0202, 0.0198, 0.0209, 0.0204, 0.0207, 0.0222, 0.0205, 0.0218, 0.0213, + 0.0212, 0.0224, 0.0218, 0.0230, 0.0235, 0.0251, 0.0250, 0.0245, 0.0250, 0.0263, 0.0273, 0.0271, 0.0275, 0.0281, 0.0264, 0.0274, 0.0288, 0.0287, 0.0307, + 0.0303, 0.0307, 0.0323, 0.0304, 0.0335, 0.0335, 0.0346, 0.0345, 0.0347, 0.0348, 0.0370, 0.0364, 0.0380, 0.0393, 0.0384, 0.0407, + 0.0419, 0.0421, 0.0419, 0.0433, 0.0431, 0.0461, 0.0465, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#orange leaf (koristepensas, tuntematon) +//241 195 223 489 574 565 634 605 574 613 645 636 644 628 621 603 614 654 676 719 776 795 862 879 918 918 955 980 1013 1055 1132 1225 1258 1362 1427 1579 1796 1936 2079 2258 2440 2597 2728 2790 2777 2857 2923 2991 3031 3040 3037 3094 3066 3023 3093 3044 3082 3085 3147 3226 3192 +const double ColorTemp::ColorOrangetuntematon_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0241, 0.0195, 0.0223, 0.0489, 0.0574, 0.0565, 0.0634, 0.0605, 0.0574, 0.0613, 0.0645, 0.0636, 0.0644, 0.0628, 0.0621, 0.0603, 0.0614, 0.0654, 0.0676, + 0.0719, 0.0776, 0.0795, 0.0862, 0.0879, 0.0918, 0.0918, 0.0955, 0.0980, 0.1013, 0.1055, 0.1132, 0.1225, 0.1258, 0.1362, 0.1427, 0.1579, 0.1796, 0.1936, 0.2079, + 0.2258, 0.2440, 0.2597, 0.2728, 0.2790, 0.2777, 0.2857, 0.2923, 0.2991, 0.3031, 0.3040, 0.3037, 0.3094, 0.3066, 0.3023, 0.3093, 0.3044, 0.3082, 0.3085, 0.3147, 0.3226, 0.3192, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//,#orange leaf (lehmus) +//1062 866 443 544 496 485 492 458 450 425 458 477 497 461 451 481 454 500 515 538 529 593 638 670 686 711 718 729 741 760 796 833 895 958 1016 1128 1246 1344 1450 1505 1596 1636 1621 1631 1627 1628 1658 1583 1486 1415 1322 1265 1159 1062 975 974 1063 1326 1736 2141 2568 +const double ColorTemp::ColorOrangetlehmus_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1062, 0.0866, 0.0443, 0.0544, 0.0496, 0.0485, 0.0492, 0.0458, 0.0450, 0.0425, 0.0458, 0.0477, 0.0497, 0.0461, 0.0451, 0.0481, 0.0454, 0.0500, 0.0515, + 0.0538, 0.0529, 0.0593, 0.0638, 0.0670, 0.0686, 0.0711, 0.0718, 0.0729, 0.0741, 0.0760, 0.0796, 0.0833, 0.0895, 0.0958, 0.1016, 0.1128, 0.1246, 0.1344, 0.1450, + 0.1505, 0.1596, 0.1636, 0.1621, 0.1631, 0.1627, 0.1628, 0.1658, 0.1583, 0.1486, 0.1415, 0.1322, 0.1265, 0.1159, 0.1062, 0.0975, 0.0974, 0.1063, 0.1326, 0.1736, 0.2141, 0.2568, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#orange leaf (vaahtera) +//1517 551 664 659 521 585 460 385 424 389 375 374 359 380 371 373 379 387 378 394 405 416 463 496 536 542 577 579 619 642 678 710 777 829 894 1035 1174 1334 1484 1611 1798 1941 2012 2065 2135 2229 2286 2317 2332 2357 2323 2330 2292 2236 2137 2093 2180 2240 2368 2487 2528 +const double ColorTemp::ColorOrangvaahtera_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1517, 0.0551, 0.0664, 0.0659, 0.0521, 0.0585, 0.0460, 0.0385, 0.0424, 0.0389, 0.0375, 0.0374, 0.0359, 0.0380, 0.0371, 0.0373, 0.0379, 0.0387, 0.0378, + 0.0394, 0.0405, 0.0416, 0.0463, 0.0496, 0.0536, 0.0542, 0.0577, 0.0579, 0.0619, 0.0642, 0.0678, 0.0710, 0.0777, 0.0829, 0.0894, 0.1035, 0.1174, 0.1334, 0.1484, + 0.1611, 0.1798, 0.1941, 0.2012, 0.2065, 0.2135, 0.2229, 0.2286, 0.2317, 0.2332, 0.2357, 0.2323, 0.2330, 0.2292, 0.2236, 0.2137, 0.2093, 0.2180, 0.2240, 0.2368, 0.2487, 0.2528, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#brown dry leaf (lehmus) +//758 236 148 430 347 435 438 495 439 454 472 471 461 459 458 479 492 482 499 513 520 545 567 594 623 647 698 717 744 792 803 834 864 876 916 932 963 1013 1025 1060 1099 1118 1153 1175 1207 1242 1268 1266 1284 1305 1305 1304 1353 1360 1330 1332 1413 1502 1610 1682 1737 +const double ColorTemp::ColorBrownlehmus_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0758, 0.0236, 0.0148, 0.0430, 0.0347, 0.0435, 0.0438, 0.0495, 0.0439, 0.0454, 0.0472, 0.0471, 0.0461, 0.0459, 0.0458, 0.0479, 0.0492, 0.0482, 0.0499, 0.0513, + 0.0520, 0.0545, 0.0567, 0.0594, 0.0623, 0.0647, 0.0698, 0.0717, 0.0744, 0.0792, 0.0803, 0.0834, 0.0864, 0.0876, 0.0916, 0.0932, 0.0963, 0.1013, 0.1025, 0.1060, + 0.1099, 0.1118, 0.1153, 0.1175, 0.1207, 0.1242, 0.1268, 0.1266, 0.1284, 0.1305, 0.1305, 0.1304, 0.1353, 0.1360, 0.1330, 0.1332, 0.1413, 0.1502, 0.1610, 0.1682, 0.1737, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#brown moss (nuotiosammal) +//482 260 178 92 104 88 92 40 43 52 58 64 70 63 67 67 62 76 82 82 91 96 104 116 135 141 142 155 168 179 198 199 193 201 212 218 226 240 242 238 255 265 277 266 265 283 289 275 289 277 291 288 277 252 262 260 264 299 375 411 446 +const double ColorTemp::ColorBrownuotiosammal_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0482, 0.0260, 0.0178, 0.0092, 0.0104, 0.0088, 0.0092, 0.0040, 0.0043, 0.0052, 0.0058, 0.0064, 0.0070, 0.0063, 0.0067, 0.0067, 0.0062, 0.0076, 0.0082, 0.0082, 0.0091, 0.0096, + 0.0104, 0.0116, 0.0135, 0.0141, 0.0142, 0.0155, 0.0168, 0.0179, 0.0198, 0.0199, 0.0193, 0.0201, 0.0212, 0.0218, 0.0226, 0.0240, 0.0242, 0.0238, 0.0255, 0.0265, + 0.0277, 0.0266, 0.0265, 0.0283, 0.0289, 0.0275, 0.0289, 0.0277, 0.0291, 0.0288, 0.0277, 0.0252, 0.0262, 0.0260, 0.0264, 0.0299, 0.0375, 0.0411, 0.0446, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#black soil +//0 0 89 122 52 53 104 127 130 134 137 137 134 136 138 139 134 140 142 148 154 153 152 150 151 156 153 166 154 171 163 163 166 166 169 169 166 174 174 170 170 168 176 177 176 174 179 180 180 183 177 193 178 187 194 193 182 196 184 195 195 +const double ColorTemp::ColorBlacksoil_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0089, 0.0122, 0.0052, 0.0053, 0.0104, 0.0127, 0.0130, 0.0134, 0.0137, 0.0137, 0.0134, 0.0136, 0.0138, 0.0139, 0.0134, 0.0140, 0.0142, 0.0148, 0.0154, 0.0153, + 0.0152, 0.0150, 0.0151, 0.0156, 0.0153, 0.0166, 0.0154, 0.0171, 0.0163, 0.0163, 0.0166, 0.0166, 0.0169, 0.0169, 0.0166, 0.0174, 0.0174, 0.0170, 0.0170, 0.0168, 0.0176, 0.0177, + 0.0176, 0.0174, 0.0179, 0.0180, 0.0180, 0.0183, 0.0177, 0.0193, 0.0178, 0.0187, 0.0194, 0.0193, 0.0182, 0.0196, 0.0184, 0.0195, 0.0195, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#black, dry leaf (pihlaja) +//0 79 111 172 174 201 214 211 207 207 191 200 196 206 196 194 203 207 204 208 210 212 211 208 209 219 222 224 231 241 232 244 249 250 267 264 262 269 282 277 289 284 279 302 289 308 313 315 310 325 313 319 356 340 331 347 356 352 364 373 352 +const double ColorTemp::ColorBlackpihlaja[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0079, 0.0111, 0.0172, 0.0174, 0.0201, 0.0214, 0.0211, 0.0207, 0.0207, 0.0191, 0.0200, 0.0196, 0.0206, 0.0196, 0.0194, 0.0203, 0.0207, 0.0204, 0.0208, 0.0210, 0.0212, + 0.0211, 0.0208, 0.0209, 0.0219, 0.0222, 0.0224, 0.0231, 0.0241, 0.0232, 0.0244, 0.0249, 0.0250, 0.0267, 0.0264, 0.0262, 0.0269, 0.0282, 0.0277, 0.0289, 0.0284, 0.0279, 0.0302, + 0.0289, 0.0308, 0.0313, 0.0315, 0.0310, 0.0325, 0.0313, 0.0319, 0.0356, 0.0340, 0.0331, 0.0347, 0.0356, 0.0352, 0.0364, 0.0373, 0.0352, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//#gray lichen (nahkajaekaelae) +//1204 585 1113 733 600 653 715 685 726 682 713 691 719 691 683 693 711 715 701 700 720 697 706 696 723 714 726 738 729 735 737 739 742 746 746 761 743 735 722 717 728 749 721 712 705 737 733 758 780 785 775 771 755 744 743 742 755 779 849 940 1042 +//RIS 74 +const double ColorTemp::ColorGraynahjajaekaelae_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1204, 0.0585, 0.1113, 0.0733, 0.0600, 0.0653, 0.0715, 0.0685, 0.0726, 0.0682, 0.0713, 0.0691, 0.0719, 0.0691, 0.0683, 0.0693, 0.0711, 0.0715, 0.0701, 0.0700, + 0.0720, 0.0697, 0.0706, 0.0696, 0.0723, 0.0714, 0.0726, 0.0738, 0.0729, 0.0735, 0.0737, 0.0739, 0.0742, 0.0746, 0.0746, 0.0761, 0.0743, 0.0735, 0.0722, 0.0717, + 0.0728, 0.0749, 0.0721, 0.0712, 0.0705, 0.0737, 0.0733, 0.0758, 0.0780, 0.0785, 0.0775, 0.0771, 0.0755, 0.0744, 0.0743, 0.0742, 0.0755, 0.0779, 0.0849, 0.0940, 0.1042, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#green moss (nuotiosammal) +//120 65 134 31 209 124 104 96 97 95 76 79 83 93 83 95 95 104 117 127 140 161 214 252 290 310 328 343 347 373 365 351 347 343 311 301 285 283 263 256 255 251 257 235 227 224 233 208 194 186 165 160 151 149 157 161 185 243 309 425 543 +const double ColorTemp::ColorGreennuotisammal_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0120, 0.0065, 0.0134, 0.0031, 0.0209, 0.0124, 0.0104, 0.0096, 0.0097, 0.0095, 0.0076, 0.0079, 0.0083, 0.0093, 0.0083, 0.0095, 0.0095, 0.0104, 0.0117, 0.0127, 0.0140, 0.0161, + 0.0214, 0.0252, 0.0290, 0.0310, 0.0328, 0.0343, 0.0347, 0.0373, 0.0365, 0.0351, 0.0347, 0.0343, 0.0311, 0.0301, 0.0285, 0.0283, 0.0263, 0.0256, 0.0255, 0.0251, + 0.0257, 0.0235, 0.0227, 0.0224, 0.0233, 0.0208, 0.0194, 0.0186, 0.0165, 0.0160, 0.0151, 0.0149, 0.0157, 0.0161, 0.0185, 0.0243, 0.0309, 0.0425, 0.0543, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#green leaf (leskenlehti) +//525 273 0 378 318 164 224 276 316 266 303 290 305 286 290 303 323 323 352 383 405 482 614 743 920 1015 1139 1192 1175 1216 1195 1145 1116 1009 947 867 802 754 741 709 675 625 574 579 561 565 557 511 471 419 399 372 365 395 375 382 458 555 716 1002 1407 +const double ColorTemp::ColorGreenleskenlehti_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0525, 0.0273, 0.0, 0.0378, 0.0318, 0.0164, 0.0224, 0.0276, 0.0316, 0.0266, 0.0303, 0.0290, 0.0305, 0.0286, 0.0290, 0.0303, 0.0323, 0.0323, 0.0352, 0.0383, 0.0405, 0.0482, + 0.0614, 0.0743, 0.0920, 0.1015, 0.1139, 0.1192, 0.1175, 0.1216, 0.1195, 0.1145, 0.1116, 0.1009, 0.0947, 0.0867, 0.0802, 0.0754, 0.0741, 0.0709, 0.0675, 0.0625, + 0.0574, 0.0579, 0.0561, 0.0565, 0.0557, 0.0511, 0.0471, 0.0419, 0.0399, 0.0372, 0.0365, 0.0395, 0.0375, 0.0382, 0.0458, 0.0555, 0.0716, 0.1002, 0.1407, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#green leaf (linnunkaali) +//602 0 267 306 339 335 300 247 292 289 295 298 292 318 312 289 299 307 310 320 350 375 446 499 574 634 698 725 736 754 736 702 668 633 590 551 514 499 467 460 445 424 415 409 399 412 393 380 370 362 366 343 342 350 333 350 364 418 494 670 914 +//RIS 77 +const double ColorTemp::ColorGreenlinnunkaali_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0602, 0.0, 0.0267, 0.0306, 0.0339, 0.0335, 0.0300, 0.0247, 0.0292, 0.0289, 0.0295, 0.0298, 0.0292, 0.0318, 0.0312, 0.0289, 0.0299, 0.0307, 0.0310, 0.0320, + 0.0350, 0.0375, 0.0446, 0.0499, 0.0574, 0.0634, 0.0698, 0.0725, 0.0736, 0.0754, 0.0736, 0.0702, 0.0668, 0.0633, 0.0590, 0.0551, 0.0514, 0.0499, 0.0467, 0.0460, + 0.0445, 0.0424, 0.0415, 0.0409, 0.0399, 0.0412, 0.0393, 0.0380, 0.0370, 0.0362, 0.0366, 0.0343, 0.0342, 0.0350, 0.0333, 0.0350, 0.0364, 0.0418, 0.0494, 0.0670, 0.0914, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//#green leaf (pelto-ohake) +//0 366 360 233 173 179 157 175 206 205 180 179 173 178 187 189 184 171 195 204 193 219 253 297 365 431 467 489 493 516 500 466 426 406 380 343 316 295 276 282 265 253 239 228 226 229 238 237 216 221 219 217 212 219 229 258 284 309 375 487 732 +const double ColorTemp::ColorGreenpelto_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0366, 0.0360, 0.0233, 0.0173, 0.0179, 0.0157, 0.0175, 0.0206, 0.0205, 0.0180, 0.0179, 0.0173, 0.0178, 0.0187, 0.0189, 0.0184, 0.0171, 0.0195, 0.0204, 0.0193, 0.0219, + 0.0253, 0.0297, 0.0365, 0.0431, 0.0467, 0.0489, 0.0493, 0.0516, 0.0500, 0.0466, 0.0426, 0.0406, 0.0380, 0.0343, 0.0316, 0.0295, 0.0276, 0.0282, 0.0265, 0.0253, 0.0239, + 0.0228, 0.0226, 0.0229, 0.0238, 0.0237, 0.0216, 0.0221, 0.0219, 0.0217, 0.0212, 0.0219, 0.0229, 0.0258, 0.0284, 0.0309, 0.0375, 0.0487, 0.0732, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#green rod (voikukka), +//2205 1755 1710 1365 1159 1207 1024 1118 1127 1141 1134 1125 1149 1140 1120 1128 1139 1156 1212 1273 1262 1359 1461 1519 1568 1599 1660 1668 1680 1718 1697 1690 1672 1675 1663 1644 1642 1652 1626 1623 1653 1621 1614 1590 1625 1609 1615 1576 1509 1483 1418 1391 1324 1294 1267 1220 1315 1417 1650 1861 2006 +const double ColorTemp::ColorGreenrodvoikukka[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2205, 0.1755, 0.1710, 0.1365, 0.1159, 0.1207, 0.1024, 0.1118, 0.1127, 0.1141, 0.1134, 0.1125, 0.1149, 0.1140, 0.1120, 0.1128, 0.1139, 0.1156, 0.1212, 0.1273, 0.1262, 0.1359, + 0.1461, 0.1519, 0.1568, 0.1599, 0.1660, 0.1668, 0.1680, 0.1718, 0.1697, 0.1690, 0.1672, 0.1675, 0.1663, 0.1644, 0.1642, 0.1652, 0.1626, 0.1623, 0.1653, 0.1621, 0.1614, 0.1590, + 0.1625, 0.1609, 0.1615, 0.1576, 0.1509, 0.1483, 0.1418, 0.1391, 0.1324, 0.1294, 0.1267, 0.1220, 0.1315, 0.1417, 0.1650, 0.1861, 0.2006, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#green leaf (lehmus) +//2362 1024 945 666 617 604 591 580 648 631 656 607 616 653 643 626 643 656 710 753 801 929 1105 1277 1437 1601 1742 1774 1798 1848 1832 1820 1787 1730 1663 1593 1541 1461 1446 1419 1335 1298 1247 1192 1197 1199 1156 1072 1007 942 899 832 824 793 755 801 860 1031 1305 1809 2260 +const double ColorTemp::ColorGreenlehmus[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2362, 0.1024, 0.0945, 0.0666, 0.0617, 0.0604, 0.0591, 0.0580, 0.0648, 0.0631, 0.0656, 0.0607, 0.0616, 0.0653, 0.0643, 0.0626, 0.0643, 0.0656, 0.0710, 0.0753, + 0.0801, 0.0929, 0.1105, 0.1277, 0.1437, 0.1601, 0.1742, 0.1774, 0.1798, 0.1848, 0.1832, 0.1820, 0.1787, 0.1730, 0.1663, 0.1593, 0.1541, 0.1461, 0.1446, 0.1419, 0.1335, 0.1298, + 0.1247, 0.1192, 0.1197, 0.1199, 0.1156, 0.1072, 0.1007, 0.0942, 0.0899, 0.0832, 0.0824, 0.0793, 0.0755, 0.0801, 0.0860, 0.1031, 0.1305, 0.1809, 0.2260, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#green leaf (koristeherukka) +//945 292 315 433 321 294 295 321 278 261 282 272 270 278 285 274 277 268 269 283 275 309 325 389 450 493 551 557 587 585 567 554 515 487 460 424 409 387 353 349 353 333 309 309 312 315 321 298 304 304 281 273 293 311 314 333 355 392 439 595 811 +const double ColorTemp::ColorGreenkoriste[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0945, 0.0292, 0.0315, 0.0433, 0.0321, 0.0294, 0.0295, 0.0321, 0.0278, 0.0261, 0.0282, 0.0272, 0.0270, 0.0278, 0.0285, 0.0274, 0.0277, 0.0268, 0.0269, 0.0283, + 0.0275, 0.0309, 0.0325, 0.0389, 0.0450, 0.0493, 0.0551, 0.0557, 0.0587, 0.0585, 0.0567, 0.0554, 0.0515, 0.0487, 0.0460, 0.0424, 0.0409, 0.0387, 0.0353, 0.0349, + 0.0353, 0.0333, 0.0309, 0.0309, 0.0312, 0.0315, 0.0321, 0.0298, 0.0304, 0.0304, 0.0281, 0.0273, 0.0293, 0.0311, 0.0314, 0.0333, 0.0355, 0.0392, 0.0439, 0.0595, 0.0811, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#green leaf (poimulehti) +//1102 146 630 266 247 261 285 238 273 281 272 260 262 254 274 263 273 278 296 309 322 388 493 607 712 840 953 986 1006 1034 999 981 918 855 794 711 649 627 604 563 531 515 467 450 448 466 445 421 402 385 369 345 346 319 330 359 378 439 578 835 1177 +const double ColorTemp::ColorGreenpoimulehti[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1102, 0.0146, 0.0630, 0.0266, 0.0247, 0.0261, 0.0285, 0.0238, 0.0273, 0.0281, 0.0272, 0.0260, 0.0262, 0.0254, 0.0274, 0.0263, 0.0273, 0.0278, 0.0296, 0.0309, 0.0322, + 0.0388, 0.0493, 0.0607, 0.0712, 0.0840, 0.0953, 0.0986, 0.1006, 0.1034, 0.0999, 0.0981, 0.0918, 0.0855, 0.0794, 0.0711, 0.0649, 0.0627, 0.0604, 0.0563, 0.0531, 0.0515, + 0.0467, 0.0450, 0.0448, 0.0466, 0.0445, 0.0421, 0.0402, 0.0385, 0.0369, 0.0345, 0.0346, 0.0319, 0.0330, 0.0359, 0.0378, 0.0439, 0.0578, 0.0835, 0.1177, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#green leaf (hopeapaju) +//787 512 1260 1032 765 881 994 908 983 985 941 985 971 967 964 937 928 959 973 992 1004 1017 1053 1102 1180 1227 1281 1309 1317 1328 1318 1271 1238 1222 1179 1152 1131 1092 1086 1078 1083 1020 1015 1000 1027 1037 1028 970 962 977 952 963 955 935 980 979 963 1028 1059 1228 1401 +const double ColorTemp::ColorGreenhopeapaju[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0787, 0.0512, 0.1260, 0.1032, 0.0765, 0.0881, 0.0994, 0.0908, 0.0983, 0.0985, 0.0941, 0.0985, 0.0971, 0.0967, 0.0964, 0.0937, 0.0928, 0.0959, 0.0973, 0.0992, 0.1004, + 0.1017, 0.1053, 0.1102, 0.1180, 0.1227, 0.1281, 0.1309, 0.1317, 0.1328, 0.1318, 0.1271, 0.1238, 0.1222, 0.1179, 0.1152, 0.1131, 0.1092, 0.1086, 0.1078, 0.1083, 0.1020, + 0.1015, 0.1000, 0.1027, 0.1037, 0.1028, 0.0970, 0.0962, 0.0977, 0.0952, 0.0963, 0.0955, 0.0935, 0.0980, 0.0979, 0.0963, 0.1028, 0.1059, 0.1228, 0.1401, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#red flower (uuden guinean liisa) +//2288 1861 2364 2229 2783 2842 2842 2923 2902 2990 2828 2871 2772 2723 2639 2558 2424 2315 2169 2094 2064 1964 1865 1739 1680 1624 1548 1457 1424 1408 1434 1451 1492 1528 1597 1755 1951 2147 2367 2648 2986 3236 3393 3596 3665 3786 3879 3915 3926 3994 3987 4017 4026 4112 4067 4125 4139 4121 4050 4040 4095 +const double ColorTemp::ColorReduuden[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2288, 0.1861, 0.2364, 0.2229, 0.2783, 0.2842, 0.2842, 0.2923, 0.2902, 0.2990, 0.2828, 0.2871, 0.2772, 0.2723, 0.2639, 0.2558, 0.2424, 0.2315, 0.2169, 0.2094, 0.2064, + 0.1964, 0.1865, 0.1739, 0.1680, 0.1624, 0.1548, 0.1457, 0.1424, 0.1408, 0.1434, 0.1451, 0.1492, 0.1528, 0.1597, 0.1755, 0.1951, 0.2147, 0.2367, 0.2648, 0.2986, 0.3236, + 0.3393, 0.3596, 0.3665, 0.3786, 0.3879, 0.3915, 0.3926, 0.3994, 0.3987, 0.4017, 0.4026, 0.4112, 0.4067, 0.4125, 0.4139, 0.4121, 0.4050, 0.4040, 0.4095, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#red flower (pajuangervo) +//445 1024 605 833 937 959 1052 1028 1049 1029 1017 975 948 882 865 812 757 718 658 638 628 597 554 523 509 509 485 475 469 492 479 477 490 525 555 597 641 704 756 846 948 1055 1164 1221 1266 1339 1393 1491 1553 1604 1608 1650 1643 1652 1655 1658 1651 1739 1813 1818 1938 +const double ColorTemp::ColorRedpajuan[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0445, 0.1024, 0.0605, 0.0833, 0.0937, 0.0959, 0.1052, 0.1028, 0.1049, 0.1029, 0.1017, 0.0975, 0.0948, 0.0882, 0.0865, 0.0812, 0.0757, 0.0718, 0.0658, 0.0638, 0.0628, 0.0597, + 0.0554, 0.0523, 0.0509, 0.0509, 0.0485, 0.0475, 0.0469, 0.0492, 0.0479, 0.0477, 0.0490, 0.0525, 0.0555, 0.0597, 0.0641, 0.0704, 0.0756, 0.0846, 0.0948, 0.1055, 0.1164, 0.1221, + 0.1266, 0.1339, 0.1393, 0.1491, 0.1553, 0.1604, 0.1608, 0.1650, 0.1643, 0.1652, 0.1655, 0.1658, 0.1651, 0.1739, 0.1813, 0.1818, 0.1938, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#red flower (jaloangervo) +//120 152 512 635 662 538 749 713 743 792 777 785 733 726 728 749 709 674 661 657 645 635 598 570 553 544 545 538 546 514 540 567 585 577 602 651 690 765 836 907 980 1089 1147 1188 1212 1253 1318 1371 1412 1473 1459 1478 1548 1582 1564 1590 1595 1714 1728 1814 1837 +const double ColorTemp::ColorRedjaloan[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0120, 0.0152, 0.0512, 0.0635, 0.0662, 0.0538, 0.0749, 0.0713, 0.0743, 0.0792, 0.0777, 0.0785, 0.0733, 0.0726, 0.0728, 0.0749, 0.0709, 0.0674, 0.0661, 0.0657, 0.0645, 0.0635, + 0.0598, 0.0570, 0.0553, 0.0544, 0.0545, 0.0538, 0.0546, 0.0514, 0.0540, 0.0567, 0.0585, 0.0577, 0.0602, 0.0651, 0.0690, 0.0765, 0.0836, 0.0907, 0.0980, 0.1089, 0.1147, 0.1188, + 0.1212, 0.1253, 0.1318, 0.1371, 0.1412, 0.1473, 0.1459, 0.1478, 0.1548, 0.1582, 0.1564, 0.1590, 0.1595, 0.1714, 0.1728, 0.1814, 0.1837, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#blue flower (ukonhattu) +//801 682 1070 1319 1311 1420 1453 1394 1318 1292 1268 1179 1132 1054 1015 948 846 780 731 709 705 667 621 598 555 522 505 493 498 500 494 471 479 463 450 461 487 515 546 574 555 562 539 558 546 552 567 626 715 807 862 978 1086 1199 1313 1323 1350 1366 1358 1320 1365 +const double ColorTemp::ColorBlueukon[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0801, 0.0682, 0.1070, 0.1319, 0.1311, 0.1420, 0.1453, 0.1394, 0.1318, 0.1292, 0.1268, 0.1179, 0.1132, 0.1054, 0.1015, 0.0948, 0.0846, 0.0780, 0.0731, 0.0709, 0.0705, 0.0667, + 0.0621, 0.0598, 0.0555, 0.0522, 0.0505, 0.0493, 0.0498, 0.0500, 0.0494, 0.0471, 0.0479, 0.0463, 0.0450, 0.0461, 0.0487, 0.0515, 0.0546, 0.0574, 0.0555, 0.0562, 0.0539, 0.0558, + 0.0546, 0.0552, 0.0567, 0.0626, 0.0715, 0.0807, 0.0862, 0.0978, 0.1086, 0.1199, 0.1313, 0.1323, 0.1350, 0.1366, 0.1358, 0.1320, 0.1365, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#blue flower (orvokki) +//292 528 645 1000 932 1439 1752 1947 2077 2158 2169 2153 2164 2132 2091 1993 1916 1876 1803 1702 1659 1554 1503 1425 1330 1229 1186 1134 1065 1031 1014 993 989 980 939 936 945 995 1055 1104 1180 1247 1284 1343 1349 1403 1458 1538 1634 1790 1880 2006 2218 2396 2556 2612 2735 2811 2765 2840 2877 +const double ColorTemp::ColorBlueorvokki[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0292, 0.0528, 0.0645, 0.1000, 0.0932, 0.1439, 0.1752, 0.1947, 0.2077, 0.2158, 0.2169, 0.2153, 0.2164, 0.2132, 0.2091, 0.1993, 0.1916, 0.1876, 0.1803, 0.1702, 0.1659, 0.1554, + 0.1503, 0.1425, 0.1330, 0.1229, 0.1186, 0.1134, 0.1065, 0.1031, 0.1014, 0.0993, 0.0989, 0.0980, 0.0939, 0.0936, 0.0945, 0.0995, 0.1055, 0.1104, 0.1180, 0.1247, 0.1284, 0.1343, + 0.1349, 0.1403, 0.1458, 0.1538, 0.1634, 0.1790, 0.1880, 0.2006, 0.2218, 0.2396, 0.2556, 0.2612, 0.2735, 0.2811, 0.2765, 0.2840, 0.2877, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#blue flower (malvikki) +//1062 528 749 571 512 538 455 445 431 384 353 299 249 212 190 162 123 105 90 81 83 75 78 72 59 56 61 54 71 69 70 62 63 65 70 74 78 73 76 87 90 104 119 119 131 145 156 184 225 255 314 414 538 669 849 1068 1247 1467 1701 1885 2032 +const double ColorTemp::ColorBluemalvikki[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1062, 0.0528, 0.0749, 0.0571, 0.0512, 0.0538, 0.0455, 0.0445, 0.0431, 0.0384, 0.0353, 0.0299, 0.0249, 0.0212, 0.0190, 0.0162, 0.0123, 0.0105, 0.0090, 0.0081, 0.0083, 0.0075, + 0.0078, 0.0072, 0.0059, 0.0056, 0.0061, 0.0054, 0.0071, 0.0069, 0.0070, 0.0062, 0.0063, 0.0065, 0.0070, 0.0074, 0.0078, 0.0073, 0.0076, 0.0087, 0.0090, 0.0104, 0.0119, 0.0119, + 0.0131, 0.0145, 0.0156, 0.0184, 0.0225, 0.0255, 0.0314, 0.0414, 0.0538, 0.0669, 0.0849, 0.1068, 0.1247, 0.1467, 0.1701, 0.1885, 0.2032, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#black dry leaf (maitohorsma) +//256 0 172 356 213 270 203 203 195 208 202 201 210 210 203 204 209 203 209 201 205 201 194 210 206 197 203 198 207 201 204 202 198 200 198 197 186 203 202 198 200 208 206 231 235 223 244 254 278 289 297 309 338 335 338 368 412 524 686 926 1185 +const double ColorTemp::ColorBlackmaito[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0256, 0.0, 0.0172, 0.0356, 0.0213, 0.0270, 0.0203, 0.0203, 0.0195, 0.0208, 0.0202, 0.0201, 0.0210, 0.0210, 0.0203, 0.0204, 0.0209, 0.0203, 0.0209, 0.0201, 0.0205, 0.0201, + 0.0194, 0.0210, 0.0206, 0.0197, 0.0203, 0.0198, 0.0207, 0.0201, 0.0204, 0.0202, 0.0198, 0.0200, 0.0198, 0.0197, 0.0186, 0.0203, 0.0202, 0.0198, 0.0200, 0.0208, 0.0206, 0.0231, + 0.0235, 0.0223, 0.0244, 0.0254, 0.0278, 0.0289, 0.0297, 0.0309, 0.0338, 0.0335, 0.0338, 0.0368, 0.0412, 0.0524, 0.0686, 0.0926, 0.1185, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#orange berry (pihlaja) +//945 731 585 433 247 408 266 314 293 305 289 288 280 297 262 298 277 274 291 293 285 303 300 310 324 336 364 377 426 465 499 561 602 667 741 890 1028 1164 1275 1465 1602 1640 1695 1744 1812 1837 1859 1805 1791 1822 1796 1751 1715 1655 1575 1600 1560 1618 1666 1740 1838 +const double ColorTemp::ColorOrangpihlaja[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0945, 0.0731, 0.0585, 0.0433, 0.0247, 0.0408, 0.0266, 0.0314, 0.0293, 0.0305, 0.0289, 0.0288, 0.0280, 0.0297, 0.0262, 0.0298, 0.0277, 0.0274, 0.0291, 0.0293, 0.0285, 0.0303, + 0.0300, 0.0310, 0.0324, 0.0336, 0.0364, 0.0377, 0.0426, 0.0465, 0.0499, 0.0561, 0.0602, 0.0667, 0.0741, 0.0890, 0.1028, 0.1164, 0.1275, 0.1465, 0.1602, 0.1640, 0.1695, 0.1744, + 0.1812, 0.1837, 0.1859, 0.1805, 0.1791, 0.1822, 0.1796, 0.1751, 0.1715, 0.1655, 0.1575, 0.1600, 0.1560, 0.1618, 0.1666, 0.1740, 0.1838, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#green flower (lehmus=linden) +//2677 1682 1170 1032 1085 816 728 755 833 832 813 845 857 884 855 882 914 997 1084 1179 1231 1437 1661 1873 2048 2209 2378 2408 2442 2509 2503 2452 2457 2418 2383 2348 2277 2213 2221 2169 2146 2048 1977 1960 2000 1993 1961 1899 1784 1748 1625 1517 1389 1260 1165 1143 1244 1522 1870 2324 2586 +//RIS 81 +const double ColorTemp::ColorGreenlinden[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2677, 0.1682, 0.1170, 0.1032, 0.1085, 0.0816, 0.0728, 0.0755, 0.0833, 0.0832, 0.0813, 0.0845, 0.0857, 0.0884, 0.0855, 0.0882, 0.0914, 0.0997, 0.1084, 0.1179, 0.1231, 0.1437, + 0.1661, 0.1873, 0.2048, 0.2209, 0.2378, 0.2408, 0.2442, 0.2509, 0.2503, 0.2452, 0.2457, 0.2418, 0.2383, 0.2348, 0.2277, 0.2213, 0.2221, 0.2169, 0.2146, 0.2048, 0.1977, 0.1960, + 0.2000, 0.1993, 0.1961, 0.1899, 0.1784, 0.1748, 0.1625, 0.1517, 0.1389, 0.1260, 0.1165, 0.1143, 0.1244, 0.1522, 0.1870, 0.2324, 0.2586, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#yellow petal (lehmus) +//1890 1097 900 832 814 799 758 853 803 808 833 862 916 943 960 969 1039 1162 1283 1370 1427 1529 1689 1781 1894 1950 2105 2118 2140 2185 2191 2199 2234 2266 2263 2297 2328 2312 2298 2332 2344 2312 2288 2347 2384 2390 2358 2280 2306 2315 2310 2253 2274 2271 2242 2292 2254 2208 2319 2314 2264 +const double ColorTemp::ColorYellowlehmus[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1890, 0.1097, 0.0900, 0.0832, 0.0814, 0.0799, 0.0758, 0.0853, 0.0803, 0.0808, 0.0833, 0.0862, 0.0916, 0.0943, 0.0960, 0.0969, 0.1039, 0.1162, 0.1283, 0.1370, 0.1427, + 0.1529, 0.1689, 0.1781, 0.1894, 0.1950, 0.2105, 0.2118, 0.2140, 0.2185, 0.2191, 0.2199, 0.2234, 0.2266, 0.2263, 0.2297, 0.2328, 0.2312, 0.2298, 0.2332, 0.2344, 0.2312, 0.2288, + 0.2347, 0.2384, 0.2390, 0.2358, 0.2280, 0.2306, 0.2315, 0.2310, 0.2253, 0.2274, 0.2271, 0.2242, 0.2292, 0.2254, 0.2208, 0.2319, 0.2314, 0.2264, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#yellow flower (suikeroalpi) +//2048 1666 1140 1210 699 680 615 566 567 561 609 585 614 572 599 575 636 730 982 1194 1360 1766 2222 2558 2849 3048 3201 3395 3395 3484 3576 3623 3606 3672 3651 3634 3647 3669 3715 3660 3720 3692 3704 3784 3683 3731 3681 3697 3635 3694 3617 3610 3632 3663 3616 3595 3599 3584 3588 3613 3527 +const double ColorTemp::ColorYellowsuikeroalpi[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2048, 0.1666, 0.1140, 0.1210, 0.0699, 0.0680, 0.0615, 0.0566, 0.0567, 0.0561, 0.0609, 0.0585, 0.0614, 0.0572, 0.0599, 0.0575, 0.0636, 0.0730, 0.0982, 0.1194, 0.1360, 0.1766, + 0.2222, 0.2558, 0.2849, 0.3048, 0.3201, 0.3395, 0.3395, 0.3484, 0.3576, 0.3623, 0.3606, 0.3672, 0.3651, 0.3634, 0.3647, 0.3669, 0.3715, 0.3660, 0.3720, 0.3692, 0.3704, 0.3784, + 0.3683, 0.3731, 0.3681, 0.3697, 0.3635, 0.3694, 0.3617, 0.3610, 0.3632, 0.3663, 0.3616, 0.3595, 0.3599, 0.3584, 0.3588, 0.3613, 0.3527, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#yellow flower (pensashanhikki) +//356 1365 1024 902 535 387 355 247 365 307 321 330 319 332 317 336 408 487 709 963 1235 1631 2111 2436 2718 2950 3151 3262 3313 3420 3448 3475 3491 3534 3520 3565 3622 3631 3626 3657 3640 3607 3641 3627 3601 3591 3588 3667 3618 3601 3630 3613 3592 3609 3569 3590 3568 3563 3588 3480 3471 +const double ColorTemp::ColorYellowpensashanhikki1[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0356, 0.1365, 0.1024, 0.0902, 0.0535, 0.0387, 0.0355, 0.0247, 0.0365, 0.0307, 0.0321, 0.0330, 0.0319, 0.0332, 0.0317, 0.0336, 0.0408, 0.0487, 0.0709, 0.0963, 0.1235, + 0.1631, 0.2111, 0.2436, 0.2718, 0.2950, 0.3151, 0.3262, 0.3313, 0.3420, 0.3448, 0.3475, 0.3491, 0.3534, 0.3520, 0.3565, 0.3622, 0.3631, 0.3626, 0.3657, 0.3640, 0.3607, + 0.3641, 0.3627, 0.3601, 0.3591, 0.3588, 0.3667, 0.3618, 0.3601, 0.3630, 0.3613, 0.3592, 0.3609, 0.3569, 0.3590, 0.3568, 0.3563, 0.3588, 0.3480, 0.3471, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#yellow sepal (pensashanhikki) +//1068 427 326 416 428 590 503 470 539 526 546 540 539 526 497 546 555 603 753 903 1010 1268 1563 1868 2068 2226 2429 2495 2560 2625 2636 2610 2655 2667 2635 2630 2612 2560 2597 2588 2543 2478 2499 2472 2438 2431 2379 2406 2361 2319 2264 2174 2128 2010 1942 1912 1930 2148 2334 2585 2764 +const double ColorTemp::ColorYellowpensashanhikki2[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1068, 0.0427, 0.0326, 0.0416, 0.0428, 0.0590, 0.0503, 0.0470, 0.0539, 0.0526, 0.0546, 0.0540, 0.0539, 0.0526, 0.0497, 0.0546, 0.0555, 0.0603, 0.0753, 0.0903, 0.1010, 0.1268, + 0.1563, 0.1868, 0.2068, 0.2226, 0.2429, 0.2495, 0.2560, 0.2625, 0.2636, 0.2610, 0.2655, 0.2667, 0.2635, 0.2630, 0.2612, 0.2560, 0.2597, 0.2588, 0.2543, 0.2478, 0.2499, 0.2472, + 0.2438, 0.2431, 0.2379, 0.2406, 0.2361, 0.2319, 0.2264, 0.2174, 0.2128, 0.2010, 0.1942, 0.1912, 0.1930, 0.2148, 0.2334, 0.2585, 0.2764, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#blue flower (hiidenvirna) +//315 512 675 832 765 865 807 867 911 904 852 826 780 753 711 661 595 528 513 476 431 391 361 331 305 276 240 229 237 223 212 208 215 205 203 195 209 212 222 266 296 322 356 352 388 391 411 425 473 532 550 630 669 748 823 879 904 917 930 950 942 +const double ColorTemp::ColorBluehiidenvirna[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0315, 0.0512, 0.0675, 0.0832, 0.0765, 0.0865, 0.0807, 0.0867, 0.0911, 0.0904, 0.0852, 0.0826, 0.0780, 0.0753, 0.0711, 0.0661, 0.0595, 0.0528, 0.0513, 0.0476, 0.0431, 0.0391, + 0.0361, 0.0331, 0.0305, 0.0276, 0.0240, 0.0229, 0.0237, 0.0223, 0.0212, 0.0208, 0.0215, 0.0205, 0.0203, 0.0195, 0.0209, 0.0212, 0.0222, 0.0266, 0.0296, 0.0322, 0.0356, 0.0352, + 0.0388, 0.0391, 0.0411, 0.0425, 0.0473, 0.0532, 0.0550, 0.0630, 0.0669, 0.0748, 0.0823, 0.0879, 0.0904, 0.0917, 0.0930, 0.0950, 0.0942, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#blue flower (kurkkuyrtti) +//2687 1553 2181 2246 2209 2263 2442 2347 2261 2353 2292 2230 2095 2008 1896 1782 1569 1443 1333 1223 1177 1074 992 902 813 755 701 626 577 548 525 498 469 445 456 448 428 441 448 447 455 467 496 534 527 586 668 798 966 1126 1289 1469 1679 1870 2013 2040 2060 2077 2104 2155 2119 +//RIS 87 +const double ColorTemp::ColorBluekurkkuyrtti[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2687, 0.1553, 0.2181, 0.2246, 0.2209, 0.2263, 0.2442, 0.2347, 0.2261, 0.2353, 0.2292, 0.2230, 0.2095, 0.2008, 0.1896, 0.1782, 0.1569, 0.1443, 0.1333, 0.1223, 0.1177, 0.1074, + 0.0992, 0.0902, 0.0813, 0.0755, 0.0701, 0.0626, 0.0577, 0.0548, 0.0525, 0.0498, 0.0469, 0.0445, 0.0456, 0.0448, 0.0428, 0.0441, 0.0448, 0.0447, 0.0455, 0.0467, 0.0496, 0.0534, + 0.0527, 0.0586, 0.0668, 0.0798, 0.0966, 0.1126, 0.1289, 0.1469, 0.1679, 0.1870, 0.2013, 0.2040, 0.2060, 0.2077, 0.2104, 0.2155, 0.2119, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#pink (siankaersaemoe) +//585 859 758 1094 780 1012 987 1067 1059 1034 1098 1110 1097 1040 1058 1048 1028 1014 1068 1024 1023 1025 1032 1029 1011 1007 986 973 946 906 949 923 943 949 956 998 1051 1107 1166 1242 1284 1355 1394 1438 1451 1543 1589 1588 1612 1616 1562 1534 1562 1541 1494 1492 1518 1650 1749 1907 1991 +const double ColorTemp::ColorPinksiankaersaemoe[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0585, 0.0859, 0.0758, 0.1094, 0.0780, 0.1012, 0.0987, 0.1067, 0.1059, 0.1034, 0.1098, 0.1110, 0.1097, 0.1040, 0.1058, 0.1048, 0.1028, 0.1014, 0.1068, 0.1024, 0.1023, 0.1025, + 0.1032, 0.1029, 0.1011, 0.1007, 0.0986, 0.0973, 0.0946, 0.0906, 0.0949, 0.0923, 0.0943, 0.0949, 0.0956, 0.0998, 0.1051, 0.1107, 0.1166, 0.1242, 0.1284, 0.1355, 0.1394, 0.1438, + 0.1451, 0.1543, 0.1589, 0.1588, 0.1612, 0.1616, 0.1562, 0.1534, 0.1562, 0.1541, 0.1494, 0.1492, 0.1518, 0.1650, 0.1749, 0.1907, 0.1991, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#violet flower (harakankello) +//2520 1462 1890 1898 1751 1713 1555 1516 1471 1403 1282 1209 1144 1135 1069 976 895 823 782 762 713 685 661 635 603 559 551 550 541 567 562 574 580 589 586 620 670 690 718 801 786 769 773 739 800 806 837 845 971 1043 1102 1241 1359 1502 1611 1726 1793 1859 1909 1969 2014 +//RIS 89 +const double ColorTemp::ColorVioletharakankello[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2520, 0.1462, 0.1890, 0.1898, 0.1751, 0.1713, 0.1555, 0.1516, 0.1471, 0.1403, 0.1282, 0.1209, 0.1144, 0.1135, 0.1069, 0.0976, 0.0895, 0.0823, 0.0782, 0.0762, 0.0713, + 0.0685, 0.0661, 0.0635, 0.0603, 0.0559, 0.0551, 0.0550, 0.0541, 0.0567, 0.0562, 0.0574, 0.0580, 0.0589, 0.0586, 0.0620, 0.0670, 0.0690, 0.0718, 0.0801, 0.0786, 0.0769, + 0.0773, 0.0739, 0.0800, 0.0806, 0.0837, 0.0845, 0.0971, 0.1043, 0.1102, 0.1241, 0.1359, 0.1502, 0.1611, 0.1726, 0.1793, 0.1859, 0.1909, 0.1969, 0.2014, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#violet flower (alsikeapila) +//1260 585 765 1065 937 881 847 943 1075 1053 1020 994 1008 1026 1015 980 962 949 925 908 880 864 843 814 802 749 698 691 677 660 653 660 631 633 644 692 743 809 889 1005 1160 1325 1396 1450 1526 1583 1655 1674 1689 1707 1675 1674 1624 1576 1564 1591 1613 1717 1851 1962 2033 +const double ColorTemp::ColorVioletalsikeapila[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1260, 0.0585, 0.0765, 0.1065, 0.0937, 0.0881, 0.0847, 0.0943, 0.1075, 0.1053, 0.1020, 0.0994, 0.1008, 0.1026, 0.1015, 0.0980, 0.0962, 0.0949, 0.0925, 0.0908, 0.0880, 0.0864, + 0.0843, 0.0814, 0.0802, 0.0749, 0.0698, 0.0691, 0.0677, 0.0660, 0.0653, 0.0660, 0.0631, 0.0633, 0.0644, 0.0692, 0.0743, 0.0809, 0.0889, 0.1005, 0.1160, 0.1325, 0.1396, 0.1450, + 0.1526, 0.1583, 0.1655, 0.1674, 0.1689, 0.1707, 0.1675, 0.1674, 0.1624, 0.1576, 0.1564, 0.1591, 0.1613, 0.1717, 0.1851, 0.1962, 0.2033, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#violet flower (akilleija) +//843 1340 1393 1254 1290 1452 1508 1519 1454 1384 1301 1256 1178 1113 1056 985 884 827 743 720 691 664 605 578 540 507 499 475 485 494 492 479 487 493 471 495 559 595 645 689 720 732 716 723 734 750 804 849 948 1041 1169 1362 1525 1693 1761 1935 2071 2235 2376 2493 2604 +const double ColorTemp::ColorVioletakilleija[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0843, 0.1340, 0.1393, 0.1254, 0.1290, 0.1452, 0.1508, 0.1519, 0.1454, 0.1384, 0.1301, 0.1256, 0.1178, 0.1113, 0.1056, 0.0985, 0.0884, 0.0827, 0.0743, 0.0720, 0.0691, 0.0664, + 0.0605, 0.0578, 0.0540, 0.0507, 0.0499, 0.0475, 0.0485, 0.0494, 0.0492, 0.0479, 0.0487, 0.0493, 0.0471, 0.0495, 0.0559, 0.0595, 0.0645, 0.0689, 0.0720, 0.0732, 0.0716, 0.0723, + 0.0734, 0.0750, 0.0804, 0.0849, 0.0948, 0.1041, 0.1169, 0.1362, 0.1525, 0.1693, 0.1761, 0.1935, 0.2071, 0.2235, 0.2376, 0.2493, 0.2604, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#orange flower (kehaekukka) +//0 0 0 0 0 0 102 58 128 125 137 122 122 134 123 136 159 138 163 151 167 178 192 177 206 226 315 451 707 1045 1446 1707 1944 2131 2276 2524 2719 2841 2968 3052 3199 3264 3282 3429 3451 3454 3477 3556 3478 3565 3595 3569 3582 3582 3559 3610 3626 3668 3733 3692 3722 +const double ColorTemp::ColorOrangekehaekukka[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0102, 0.0058, 0.0128, 0.0125, 0.0137, 0.0122, 0.0122, 0.0134, 0.0123, 0.0136, 0.0159, 0.0138, 0.0163, 0.0151, 0.0167, 0.0178, 0.0192, + 0.0177, 0.0206, 0.0226, 0.0315, 0.0451, 0.0707, 0.1045, 0.1446, 0.1707, 0.1944, 0.2131, 0.2276, 0.2524, 0.2719, 0.2841, 0.2968, 0.3052, 0.3199, 0.3264, 0.3282, 0.3429, + 0.3451, 0.3454, 0.3477, 0.3556, 0.3478, 0.3565, 0.3595, 0.3569, 0.3582, 0.3582, 0.3559, 0.3610, 0.3626, 0.3668, 0.3733, 0.3692, 0.3722, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#red berry (pihlaja) +//0 0 0 0 25 84 128 87 165 130 167 147 155 146 148 165 158 159 164 160 158 158 157 157 173 173 179 195 210 234 264 302 349 386 461 572 735 886 1038 1216 1376 1521 1607 1691 1728 1769 1842 1843 1865 1910 1881 1920 1909 1909 1891 1879 1915 1879 1878 1843 1832 +const double ColorTemp::ColorRedpihlaja[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0, 0.0, 0.0, 0.0025, 0.0084, 0.0128, 0.0087, 0.0165, 0.0130, 0.0167, 0.0147, 0.0155, 0.0146, 0.0148, 0.0165, 0.0158, 0.0159, 0.0164, 0.0160, 0.0158, 0.0158, + 0.0157, 0.0157, 0.0173, 0.0173, 0.0179, 0.0195, 0.0210, 0.0234, 0.0264, 0.0302, 0.0349, 0.0386, 0.0461, 0.0572, 0.0735, 0.0886, 0.1038, 0.1216, 0.1376, 0.1521, 0.1607, 0.1691, + 0.1728, 0.1769, 0.1842, 0.1843, 0.1865, 0.1910, 0.1881, 0.1920, 0.1909, 0.1909, 0.1891, 0.1879, 0.1915, 0.1879, 0.1878, 0.1843, 0.1832, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//#violet flower (petunia) +//292 66 227 313 325 332 310 319 300 268 229 193 164 137 127 104 67 50 49 37 34 34 44 32 33 31 38 41 33 34 45 44 37 42 44 49 49 67 80 89 110 130 137 145 153 171 194 223 275 321 391 464 580 720 907 1055 1230 1436 1548 1777 1933 +//RIS 94 +const double ColorTemp::ColorVioletpetunia[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0292, 0.0066, 0.0227, 0.0313, 0.0325, 0.0332, 0.0310, 0.0319, 0.0300, 0.0268, 0.0229, 0.0193, 0.0164, 0.0137, 0.0127, 0.0104, 0.0067, 0.0050, 0.0049, 0.0037, 0.0034, 0.0034, + 0.0044, 0.0032, 0.0033, 0.0031, 0.0038, 0.0041, 0.0033, 0.0034, 0.0045, 0.0044, 0.0037, 0.0042, 0.0044, 0.0049, 0.0049, 0.0067, 0.0080, 0.0089, 0.0110, 0.0130, 0.0137, 0.0145, + 0.0153, 0.0171, 0.0194, 0.0223, 0.0275, 0.0321, 0.0391, 0.0464, 0.0580, 0.0720, 0.0907, 0.1055, 0.1230, 0.1436, 0.1548, 0.1777, 0.1933, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#violet flower (orvokki) +//195 0 152 31 22 32 77 69 45 20 27 26 13 12 14 11 15 23 16 18 16 12 16 10 16 15 13 15 15 16 14 20 14 17 15 17 15 17 17 17 23 24 29 38 36 38 37 43 58 65 70 86 113 155 222 285 405 506 645 817 1035 +const double ColorTemp::ColorVioletorvokki[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0195, 0.0, 0.0152, 0.0031, 0.0022, 0.0032, 0.0077, 0.0069, 0.0045, 0.0020, 0.0027, 0.0026, 0.0013, 0.0012, 0.0014, 0.0011, 0.0015, 0.0023, 0.0016, 0.0018, 0.0016, 0.0012, 0.0016, + 0.0010, 0.0016, 0.0015, 0.0013, 0.0015, 0.0015, 0.0016, 0.0014, 0.0020, 0.0014, 0.0017, 0.0015, 0.0017, 0.0015, 0.0017, 0.0017, 0.0017, 0.0023, 0.0024, 0.0029, 0.0038, 0.0036, + 0.0038, 0.0037, 0.0043, 0.0058, 0.0065, 0.0070, 0.0086, 0.0113, 0.0155, 0.0222, 0.0285, 0.0405, 0.0506, 0.0645, 0.0817, 0.1035, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#blue flower (sinisievikki) +//801 1109 1861 2325 2329 2380 2562 2565 2558 2611 2517 2567 2475 2397 2337 2294 2195 2001 1881 1892 1854 1746 1668 1580 1491 1362 1229 1178 1110 1094 1072 1019 994 960 928 879 836 859 863 951 1046 1102 1154 1193 1174 1166 1153 1199 1275 1316 1376 1550 1739 1918 2104 2228 2364 2377 2423 2394 2334 +const double ColorTemp::ColorBluesinisievikki[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0801, 0.1109, 0.1861, 0.2325, 0.2329, 0.2380, 0.2562, 0.2565, 0.2558, 0.2611, 0.2517, 0.2567, 0.2475, 0.2397, 0.2337, 0.2294, 0.2195, 0.2001, 0.1881, 0.1892, 0.1854, 0.1746, + 0.1668, 0.1580, 0.1491, 0.1362, 0.1229, 0.1178, 0.1110, 0.1094, 0.1072, 0.1019, 0.0994, 0.0960, 0.0928, 0.0879, 0.0836, 0.0859, 0.0863, 0.0951, 0.1046, 0.1102, 0.1154, 0.1193, + 0.1174, 0.1166, 0.1153, 0.1199, 0.1275, 0.1316, 0.1376, 0.1550, 0.1739, 0.1918, 0.2104, 0.2228, 0.2364, 0.2377, 0.2423, 0.2394, 0.2334, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#blue flower (iisoppi) +//623 85 605 833 776 756 755 781 774 775 697 724 697 654 617 575 536 494 460 469 442 436 400 393 380 358 369 352 342 368 357 360 342 342 341 335 355 353 365 376 382 392 412 412 407 414 420 449 487 504 517 571 651 734 806 885 968 1088 1210 1296 1411 +const double ColorTemp::ColorBlueiisoppi[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0623, 0.0085, 0.0605, 0.0833, 0.0776, 0.0756, 0.0755, 0.0781, 0.0774, 0.0775, 0.0697, 0.0724, 0.0697, 0.0654, 0.0617, 0.0575, 0.0536, 0.0494, 0.0460, 0.0469, 0.0442, 0.0436, + 0.0400, 0.0393, 0.0380, 0.0358, 0.0369, 0.0352, 0.0342, 0.0368, 0.0357, 0.0360, 0.0342, 0.0342, 0.0341, 0.0335, 0.0355, 0.0353, 0.0365, 0.0376, 0.0382, 0.0392, 0.0412, 0.0412, + 0.0407, 0.0414, 0.0420, 0.0449, 0.0487, 0.0504, 0.0517, 0.0571, 0.0651, 0.0734, 0.0806, 0.0885, 0.0968, 0.1088, 0.1210, 0.1296, 0.1411, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//#white petal (ojakaersaemoe) +//1732 951 1800 1365 1801 1697 1762 2103 2243 2218 2200 2206 2255 2254 2269 2261 2272 2251 2254 2260 2256 2266 2247 2269 2310 2273 2345 2312 2301 2323 2302 2314 2362 2355 2348 2362 2396 2374 2362 2381 2396 2440 2383 2347 2422 2419 2472 2423 2406 2425 2377 2381 2380 2398 2390 2404 2370 2375 2364 2411 2417 +const double ColorTemp::ColorWhiteojaka[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1732, 0.0951, 0.1800, 0.1365, 0.1801, 0.1697, 0.1762, 0.2103, 0.2243, 0.2218, 0.2200, 0.2206, 0.2255, 0.2254, 0.2269, 0.2261, 0.2272, 0.2251, 0.2254, 0.2260, 0.2256, 0.2266, + 0.2247, 0.2269, 0.2310, 0.2273, 0.2345, 0.2312, 0.2301, 0.2323, 0.2302, 0.2314, 0.2362, 0.2355, 0.2348, 0.2362, 0.2396, 0.2374, 0.2362, 0.2381, 0.2396, 0.2440, 0.2383, 0.2347, + 0.2422, 0.2419, 0.2472, 0.2423, 0.2406, 0.2425, 0.2377, 0.2381, 0.2380, 0.2398, 0.2390, 0.2404, 0.2370, 0.2375, 0.2364, 0.2411, 0.2417, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//#white flower (petunia) +//4095 4022 4410 4095 4095 4095 4193 4207 4388 4328 4223 4168 4221 4304 4245 4210 4212 4192 4181 4233 4207 4224 4197 4262 4243 4241 4274 4257 4204 4285 4265 4241 4267 4275 4245 4276 4260 4217 4217 4244 4240 4186 4160 4156 4227 4286 4237 4137 4202 4187 4100 4112 4103 4090 4125 4115 4098 4036 4047 4105 4050 +const double ColorTemp::ColorWhitepetunia[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.4095, 0.4022, 0.4410, 0.4095, 0.4095, 0.4095, 0.4193, 0.4207, 0.4388, 0.4328, 0.4223, 0.4168, 0.4221, 0.4304, 0.4245, 0.4210, 0.4212, 0.4192, 0.4181, 0.4233, 0.4207, 0.4224, + 0.4197, 0.4262, 0.4243, 0.4241, 0.4274, 0.4257, 0.4204, 0.4285, 0.4265, 0.4241, 0.4267, 0.4275, 0.4245, 0.4276, 0.4260, 0.4217, 0.4217, 0.4244, 0.4240, 0.4186, 0.4160, 0.4156, + 0.4227, 0.4286, 0.4237, 0.4137, 0.4202, 0.4187, 0.4100, 0.4112, 0.4103, 0.4090, 0.4125, 0.4115, 0.4098, 0.4036, 0.4047, 0.4105, 0.4050, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//#blue flower (lobelia dortmanna) +//0 660 1277 1544 1612 1961 1909 1950 1901 1907 1809 1785 1685 1622 1522 1377 1178 1054 931 898 850 732 610 508 434 370 343 329 303 265 232 199 183 169 172 177 200 233 214 214 199 186 199 228 249 321 435 684 1006 1345 1703 2082 2432 2661 2843 2936 3079 3015 3003 3045 3038 +//RIS 98 +const double ColorTemp::ColorBluelobelia[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0, 0.0660, 0.1277, 0.1544, 0.1612, 0.1961, 0.1909, 0.1950, 0.1901, 0.1907, 0.1809, 0.1785, 0.1685, 0.1622, 0.1522, 0.1377, 0.1178, 0.1054, 0.0931, 0.0898, 0.0850, 0.0732, + 0.0610, 0.0508, 0.0434, 0.0370, 0.0343, 0.0329, 0.0303, 0.0265, 0.0232, 0.0199, 0.0183, 0.0169, 0.0172, 0.0177, 0.0200, 0.0233, 0.0214, 0.0214, 0.0199, 0.0186, 0.0199, + 0.0228, 0.0249, 0.0321, 0.0435, 0.0684, 0.1006, 0.1345, 0.1703, 0.2082, 0.2432, 0.2661, 0.2843, 0.2936, 0.3079, 0.3015, 0.3003, 0.3045, 0.3038, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//#white petal (pelargonia) +//3493 2882 2284 2730 2869 2609 2781 2869 2861 2869 2795 2810 2740 2716 2650 2631 2539 2554 2450 2453 2447 2451 2343 2408 2404 2367 2343 2401 2474 2549 2668 2759 2843 2883 2989 3106 3209 3344 3383 3404 3453 3521 3495 3571 3521 3548 3582 3557 3581 3539 3563 3589 3597 3579 3502 3546 3507 3554 3490 3561 3518 +const double ColorTemp::ColorWhitepelargonia[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3493, 0.2882, 0.2284, 0.2730, 0.2869, 0.2609, 0.2781, 0.2869, 0.2861, 0.2869, 0.2795, 0.2810, 0.2740, 0.2716, 0.2650, 0.2631, 0.2539, 0.2554, 0.2450, 0.2453, 0.2447, + 0.2451, 0.2343, 0.2408, 0.2404, 0.2367, 0.2343, 0.2401, 0.2474, 0.2549, 0.2668, 0.2759, 0.2843, 0.2883, 0.2989, 0.3106, 0.3209, 0.3344, 0.3383, 0.3404, 0.3453, 0.3521, + 0.3495, 0.3571, 0.3521, 0.3548, 0.3582, 0.3557, 0.3581, 0.3539, 0.3563, 0.3589, 0.3597, 0.3579, 0.3502, 0.3546, 0.3507, 0.3554, 0.3490, 0.3561, 0.3518, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +/* +#white petal (paeivaenkakkara) +2168 1365 1969 2095 2231 2530 2944 3092 3107 3148 3188 3207 3195 3216 3225 3261 3211 3228 3260 3237 3258 3276 3265 3316 3327 3291 3315 3324 3355 3255 3264 3308 3324 3328 3282 3253 3220 3257 3289 3265 3245 3297 3284 3292 3228 3312 3290 3277 3278 3284 3182 3244 3273 3291 3212 3256 3154 3243 3306 3234 3155 +*/ +const double ColorTemp::ColorWhitepaeivaen[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2168, 0.1365, 0.1969, 0.2095, 0.2231, 0.2530, 0.2944, 0.3092, 0.3107, 0.3148, 0.3188, 0.3207, 0.3195, 0.3216, 0.3225, 0.3261, 0.3211, 0.3228, 0.3260, 0.3237, 0.3258, + 0.3276, 0.3265, 0.3316, 0.3327, 0.3291, 0.3315, 0.3324, 0.3355, 0.3255, 0.3264, 0.3308, 0.3324, 0.3328, 0.3282, 0.3253, 0.3220, 0.3257, 0.3289, 0.3265, 0.3245, 0.3297, + 0.3284, 0.3292, 0.3228, 0.3312, 0.3290, 0.3277, 0.3278, 0.3284, 0.3182, 0.3244, 0.3273, 0.3291, 0.3212, 0.3256, 0.3154, 0.3243, 0.3306, 0.3234, 0.3155, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + //spectral data Colorchecker24 : Green B3 const double ColorTemp::ColorchechGreB3_spect[97] = { @@ -444,6 +1062,21 @@ const double ColorTemp::ColorchechGraC4_67_spect[97] = { 0.369, 0.3689, 0.368, 0.3673, 0.3678, 0.3684, 0.37, 0.3711, 0.3712, 0.3714, 0.3714, 0.3714, 0.371, 0.3707, 0.37, 0.3694, 0.3697, 0.3703, 0.3697, 0.3692, 0.3688, 0.3685, 0.3675, 0.3669, 0.3657, 0.3647, 0.3635, 0.3625, 0.361, 0.3596, 0.3585, 0.3579, 0.357, 0.3560, 0.3555, 0.3548, 0.3535, 0.3526, 0.3513, 0.3500, 0.349, 0.3475, 0.3467, 0.3460, 0.3452, 0.3444, 0.3431, 0.3421, 0.3411, 0.3403, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +const double ColorTemp::Fictif_61greyspect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, + 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, + 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::JDC468_K15_87greyspect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1984, 0.2223, 0.2448, 0.2934, 0.3415, 0.4425, 0.5707, 0.6609, 0.7619, 0.7956, 0.8275, 0.8280, 0.8292, 0.8223, 0.8156, 0.8112, 0.8076, 0.8040, 0.7982, 0.7970, 0.7954, 0.8013, 0.8083, 0.8141, 0.8184, 0.8167, + 0.8137, 0.8080, 0.8026, 0.8013, 0.7988, 0.7963, 0.7942, 0.7855, 0.7765, 0.7680, 0.7603, 0.7640, 0.7681, 0.7750, 0.7827, 0.7876, 0.7923, 0.7935, 0.7945, 0.7955, 0.7964, 0.7975, 0.7982, 0.8000, 0.8017, 0.8051, + 0.8090, 0.8145, 0.8191, 0.8234, 0.8269, 0.8300, 0.8327, 0.8342, 0.8359, 0.8375, 0.8390, 0.8405, 0.8421, 0.8436, 0.8452, 0.8480, 0.8504, 0.8564, 0.8611, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; +//K15 275 275 0.1984 0.2448 0.3415 0.5707 0.7619 0.8275 0.8292 0.8156 0.8076 0.7982 0.7954 0.8083 0.8184 0.8137 0.8026 0.7988 0.7942 0.7765 0.7603 0.7681 0.7827 0.7923 0.7945 0.7964 0.7982 0.8017 0.8090 0.8191 0.8269 0.8327 0.8359 0.8390 0.8421 0.8452 0.8504 0.8611 //spectral data Colorchecker24 : Skin B1 //use also for palette WB @@ -476,7 +1109,7 @@ const double ColorTemp::ColorchechDCBluN881_m7_m14_spect[97] = { //spectral data ColorcheckerSG : Skin F7 //use also for palette WB const double ColorTemp::ColorchechSGSkiF763_14_26_spect[97] = { - 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0508, 0.64, 0.0776, 0.903, 0.1099, 0.1128, 0.1256, 0.128, 0.1307, 0.133, 0.1357, 0.139, 0.1425, 0.148, 0.1523, 0.159, 0.1669, 0.177, 0.1871, 0.20, 0.2118, 0.2235, 0.2355, 0.2445, 0.2537, 0.259, 0.2655, 0.268, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0508, 0.064, 0.0776, 0.903, 0.1099, 0.1128, 0.1256, 0.128, 0.1307, 0.133, 0.1357, 0.139, 0.1425, 0.148, 0.1523, 0.159, 0.1669, 0.177, 0.1871, 0.20, 0.2118, 0.2235, 0.2355, 0.2445, 0.2537, 0.259, 0.2655, 0.268, 0.2700, 0.2708, 0.2716, 0.2743, 0.2770, 0.2803, 0.2827, 0.283, 0.2832, 0.283, 0.2828, 0.295, 0.3079, 0.344, 0.3803, 0.4105, 0.4409, 0.455, 0.4694, 0.477, 0.4851, 0.4896, 0.4962, 0.501, 0.5066, 0.511, 0.5160, 0.521, 0.5256, 0.529, 0.5318, 0.535, 0.5383, 0.541, 0.5451, 0.549, 0.5524, 0.556, 0.5597, 0.562, 0.5650, 0.568, 0.5709, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; @@ -529,15 +1162,156 @@ const double ColorTemp::JDC468_GraK14_44_spect[97] = { 0.1408, 0.14330, 0.1475, 0.15170, 0.1583, 0.16500, 0.172, 0.17940, 0.1836, 0.18780, 0.188, 0.18820, 0.186, 0.18430, 0.1801, 0.17620, 0.1741, 0.17210, 0.179, 0.18420, 0.1991, 0.21430, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +const double ColorTemp::JDC468_BluM5_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1510, 0.1802, 0.2069, 0.2550, 0.3047, 0.4055, 0.5069, 0.590, 0.6747, 0.701, 0.7351, 0.7345, 0.7338, 0.7195, 0.7063, 0.693, 0.6732, 0.6490, 0.6261, 0.5993, 0.5723, 0.5560, + 0.5401, 0.526, 0.5106, 0.4805, 0.4504, 0.42, 0.3907, 0.385, 0.3799, 0.3750, 0.3695, 0.3340, 0.3005, 0.2692, 0.2382, 0.2387, 0.2389, 0.2501, 0.2610, 0.2635, 0.2662, 0.2601, 0.2541, + 0.2450, 0.2426, 0.2430, 0.2434, 0.2490, 0.2523, 0.2612, 0.2692, 0.2694, 0.2996, 0.3145, 0.3329, 0.3413, 0.3498, 0.3467, 0.3442, 0.3355, 0.3266, 0.3131, 0.2996, 0.2911, 0.2831, 0.2950, 0.3070, 0.3430, 0.3799, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//m5 317 //0.1510 0.2069 0.3047 0.5069 0.6747 0.7351 0.7338 0.7063 0.6732 0.6261 0.5723 0.5401 +// 0.5106 0.4504 0.3907 0.3799 0.3695 0.3005 0.2382 0.2389 0.2610 0.2662 0.2541 +// 0.2426 0.2434 0.2523 0.2692 0.2996 0.3329 0.3498 0.3442 0.3266 0.2996 0.2831 0.3070 0.3799 + +const double ColorTemp::JDC468_RedG21va_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1207, 0.141, 0.1585, 0.1810, 0.2073, 0.2529, 0.2959, 0.3210, 0.3476, 0.3350, 0.3232, 0.2845, 0.2564, 0.2140, 0.1823, 0.1523, 0.1266, 0.1001, 0.0792, 0.061, 0.0439, 0.0349, 0.0295, 0.0260, 0.0222, + 0.0180, 0.0135, 0.0111, 0.0087, 0.0090, 0.0094, 0.0101, 0.0109, 0.0093, 0.0086, 0.0090, 0.0091, 0.0061, 0.0321, 0.0086, 0.1368, 0.2312, 0.3256, 0.4112, 0.4958, 0.5444, 0.5884, 0.6002, 0.6264, 0.6323, 0.6473, + 0.6546, 0.6659, 0.6775, 0.6881, 0.6982, 0.7081, 0.7150, 0.7201, 0.7217, 0.7232, 0.7222, 0.7215, 0.7187, 0.7157, 0.7144, 0.7131, 0.7196, 0.7269, 0.7303, 0.7599, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//g21 177 0.1207 0.1585 0.2073 0.2959 0.3476 0.3232 0.2564 0.1823 0.1266 0.0792 0.0439 0.0295 0.0222 0.0135 0.0087 0.0094 0.0109 0.0086 0.0091 0.0321 +// 0.1368 0.3256 0.4958 0.5884 0.6264 0.6473 0.6659 0.6881 0.7081 0.7201 0.7232 0.7215 0.7157 0.7131 0.7269 0.7599 +const double ColorTemp::JDC468_RedI9_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0258, 0.023, 0.0220, 0.0205, 0.0189, 0.0183, 0.0174, 0.0168, 0.0162, 0.0152, 0.0148, 0.0145, 0.0139, 0.0136, 0.0133, 0.0130, 0.0127, 0.0130, 0.0133, 0.0151, 0.0168, 0.0218, 0.0268, 0.0317, 0.0367, 0.0330, + 0.0313, 0.0270, 0.0227, 0.0240, 0.0255, 0.0280, 0.0302, 0.0280, 0.0225, 0.0215, 0.0209, 0.0424, 0.0639, 0.1401, 0.2131, 0.3250, 0.4369, 0.5210, 0.6265, 0.6795, 0.7336, 0.7551, 0.7784, 0.7890, 0.7994, 0.8070, + 0.8146, 0.8210, 0.8277, 0.8321, 0.8362, 0.8398, 0.8439, 0.8470, 0.8504, 0.8530, 0.8572, 0.8612, 0.8653, 0.8689, 0.8715, 0.8730, 0.8747, 0.8766, 0.8788, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//I9 RED 217 0.0258 0.0220 0.0189 0.0174 0.0162 0.0148 0.0139 0.0133 0.0127 0.0133 0.0168 0.0268 0.0367 0.0313 0.0227 0.0255 0.0302 0.0225 0.0209 0.0639 0.2131 0.4369 0.6265 0.7336 0.7784 0.7994 0.8146 0.8277 0.8362 0.8439 0.8504 0.8572 0.8653 0.8715 0.8747 0.8788 + +const double ColorTemp::JDC468_YelN10_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0531, 0.0520, 0.0504, 0.0510, 0.0518, 0.0608, 0.0628, 0.0669, 0.0699, 0.0705, 0.0716, 0.0720, 0.0735, 0.0755, 0.0775, 0.0800, 0.0825, 0.0896, 0.0969, 0.1260, 0.1563, 0.2312, 0.3096, 0.4132, 0.5177, 0.5905, 0.6637, + 0.7251, 0.7350, 0.7458, 0.7480, 0.7507, 0.7460, 0.7414, 0.7356, 0.7301, 0.7320, 0.7347, 0.7390, 0.7438, 0.7472, 0.7500, 0.7508, 0.7515, 0.7528, 0.7538, 0.7550, 0.7563, 0.7581, 0.7607, 0.7642, 0.7686, 0.7710, + 0.7791, 0.7840, 0.7872, 0.7902, 0.7935, 0.7955, 0.7979, 0.7995, 0.8021, 0.8035, 0.8058, 0.8072, 0.8090, 0.8110, 0.8143, 0.8198, 0.8259, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//n10 348 0.0531 0.0504 0.0518 0.0628 0.0699 0.0716 0.0735 0.0775 0.0825 0.0969 0.1563 0.3096 0.5177 0.6637 0.7251 0.7458 0.7507 0.7414 0.7301 0.7347 0.7438 0.7500 0.7515 0.7538 0.7563 0.7607 0.7686 0.7791 0.7872 0.7935 0.7979 0.8021 0.8058 0.8090 0.8143 0.8259 +const double ColorTemp::JDC468_GreN7_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0112, 0.0102, 0.0094, 0.0096, 0.0099, 0.0100, 0.0100, 0.0100, 0.0100, 0.0099, 0.0099, 0.0099, 0.0099, 0.0099, 0.0099, 0.0100, 0.0100, 0.0103, 0.0107, 0.0129, 0.0151, 0.0312, 0.0462, 0.1015, 0.1571, 0.2270, 0.2977, + 0.3558, 0.3441, 0.3321, 0.3020, 0.2710, 0.2312, 0.1954, 0.1602, 0.1251, 0.1003, 0.0794, 0.0672, 0.0563, 0.0513, 0.0452, 0.0418, 0.0378, 0.0356, 0.0337, 0.0336, 0.0335, 0.0345, 0.0358, 0.0383, 0.0405, 0.0445, 0.0497, + 0.0612, 0.0647, 0.0670, 0.0660, 0.0644, 0.0620, 0.0574, 0.0525, 0.0483, 0.0460, 0.0436, 0.0484, 0.0532, 0.0690, 0.0870, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//n7 345 0.0112 0.0094 0.0099 0.0100 0.0100 0.0099 0.0099 0.0099 0.0100 0.0107 0.0151 0.0462 0.1571 0.2977 0.3558 0.3321 0.2710 0.1954 0.1251 0.0794 0.0563 0.0452 0.0378 0.0337 0.0335 0.0358 0.0405 0.0497 0.0612 0.0670 0.0644 0.0574 0.0483 0.0436 0.0532 0.0870 + +const double ColorTemp::JDC468_GreA10_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0958, 0.1010, 0.1090, 0.1172, 0.1352, 0.1954, 0.1957, 0.2178, 0.2402, 0.2477, 0.2553, 0.2594, 0.2622, 0.2667, 0.2707, 0.2760, 0.2805, 0.2913, 0.3023, 0.3376, 0.3715, 0.4345, 0.5030, 0.5702, 0.6376, 0.6724, 0.7072, + 0.7216, 0.7160, 0.7110, 0.6990, 0.6865, 0.6667, 0.6446, 0.6174, 0.5921, 0.5727, 0.5511, 0.5386, 0.5238, 0.5134, 0.5070, 0.4980, 0.4918, 0.4867, 0.4830, 0.4834, 0.4838, 0.4889, 0.4906, 0.4976, 0.5046, 0.5162, 0.5279, + 0.5519, 0.5589, 0.5649, 0.5645, 0.5639, 0.5576, 0.5552, 0.5480, 0.5407, 0.5377, 0.5326, 0.5387, 0.5498, 0.5732, 0.5966, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::JDC468_GreQ7_spect[97] = { //468 Q7 + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0149, 0.0139, 0.0133, 0.0128, 0.0123, 0.01185, 0.0114, 0.011, 0.0106, 0.01045, 0.0103, 0.0104, 0.0105, 0.01065, 0.0108, 0.0109, 0.0110, 0.0117, 0.0124, 0.0205, 0.0283, 0.071, 0.1122, 0.2051, + 0.3017, 0.385, 0.4690, 0.4880, 0.5069, 0.4811, 0.4561, 0.411, 0.3687, 0.3185, 0.2673, 0.2190, 0.1703, 0.1371, 0.1042, 0.086, 0.0695, 0.598, 0.0527, 0.0475, 0.04210, 0.039, 0.03600, 0.0357, 0.0355, 0.037, + 0.0381, 0.0405, 0.0438, 0.0499, 0.0555, 0.0635, 0.0708, 0.074, 0.0789, 0.077, 0.0751, 0.071, 0.0658, 0.059, 0.0530, 0.049, 0.0458, 0.052, 0.0570, 0.077, 0.0982, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//a10 Green 10 0.0958 0.1090 0.1352 0.1957 0.2402 0.2553 0.2622 0.2707 0.2805 0.3023 0.3715 0.5030 0.6376 0.7072 0.7216 0.7110 0.6865 0.6446 0.5921 0.5511 0.5238 0.5070 0.4918 0.4830 0.4838 0.4906 0.5046 0.5279 0.5519 0.5649 0.5639 0.5552 0.5407 0.5326 0.5498 0.5966 +const double ColorTemp::JDC468_GreK7_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0114, 0.0111, 0.0109, 0.0107, 0.0105, 0.0106, 0.0108, 0.0107, 0.0106, 0.0105, 0.0104, 0.0103, 0.0103, 0.0106, 0.0109, 0.0112, 0.0118, 0.0135, 0.0153, 0.0244, 0.0334, 0.0666, 0.0984, 0.1534, 0.2082, 0.2412, 0.2835, + 0.2959, 0.2843, 0.2735, 0.2516, 0.2305, 0.2012, 0.1728, 0.1435, 0.1156, 0.0964, 0.0772, 0.0671, 0.0570, 0.0518, 0.0468, 0.0436, 0.0397, 0.0380, 0.0354, 0.0354, 0.0355, 0.0367, 0.0380, 0.0402, 0.0426, 0.0481, 0.0523, + 0.0643, 0.0678, 0.0704, 0.0693, 0.0676, 0.0639, 0.0609, 0.0567, 0.0514, 0.0487, 0.0468, 0.0518, 0.0567, 0.0730, 0.0902, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//k7 Green 267 0.0114 0.0109 0.0105 0.0108 0.0106 0.0104 0.0103 0.0109 0.0118 0.0153 0.0334 0.0984 0.2082 0.2835 0.2959 0.2735 0.2305 0.1728 0.1156 0.0772 0.0570 0.0468 0.0397 0.0354 0.0355 0.0380 0.0426 0.0523 0.0643 0.0704 0.0676 0.0609 0.0514 0.0468 0.0567 0.0902 + +const double ColorTemp::JDC468_PurE24_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0677, 0.901, 0.1043, 0.1298, 0.1534, 0.1913, 0.2297, 0.2553, 0.2756, 0.2789, 0.2620, 0.2380, 0.2135, 0.1837, 0.1536, 0.1312, 0.1068, 0.0867, 0.0663, 0.0517, 0.0368, 0.0309, 0.0247, 0.0214, 0.0186, 0.0151, 0.0116, + 0.0077, 0.0079, 0.0079, 0.0083, 0.0086, 0.0077, 0.0071, 0.0071, 0.0072, 0.0107, 0.0147, 0.0298, 0.0440, 0.0661, 0.0880, 0.1010, 0.1152, 0.1193, 0.1236, 0.1260, 0.1287, 0.1326, 0.1366, 0.1428, 0.1489, 0.1596, 0.1697, + 0.1936, 0.1996, 0.2057, 0.2036, 0.2015, 0.1954, 0.1890, 0.1798, 0.1706, 0.1651, 0.1603, 0.1692, 0.1788, 0.2075, 0.2363, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//E24 Pur 128 0.0677 0.1043 0.1534 0.2297 0.2756 0.2620 0.2135 0.1536 0.1068 0.0663 0.0368 0.0247 0.0186 0.0116 0.0077 0.0079 0.0086 0.0071 0.0072 0.0147 0.0440 0.0880 0.1152 0.1236 0.1287 0.1366 0.1489 0.1697 0.1936 0.2057 0.2015 0.1890 0.1706 0.1603 0.1788 0.2363 + //spectral data 468 color : Blue H10 - Gamut > WidegamutRGB const double ColorTemp::JDC468_BluH10_spect[97] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, - 0.01590, 0.028, 0.03970, 0.0697, 0.09970, 0.1526, 0.20550, 0.253, 0.30110, 0.3412, 0.38180, 0.423, 0.46610, 0.4683, 0.51030, 0.4999, 0.49950, 0.4785, 0.45810, 0.429, 0.39950, 0.374, 0.35010, 0.3135, 0.29630, + 0.01590, 0.028, 0.03970, 0.0697, 0.09970, 0.1526, 0.20550, 0.253, 0.30110, 0.3412, 0.38180, 0.423, 0.46610, 0.4683, 0.51030, 0.5005, 0.49950, 0.4785, 0.45810, 0.429, 0.39950, 0.374, 0.35010, 0.3135, 0.29630, 0.2587, 0.22070, 0.182, 0.14450, 0.1125, 0.09060, 0.072, 0.04810, 0.033, 0.01740, 0.0113, 0.00520, 0.004, 0.00290, 0.0028, 0.00270, 0.0027, 0.00270, 0.0027, 0.00280, 0.0027, 0.00270, 0.0028, 0.00280, - 0.0029, 0.00300, 0.0029, 0.00290, 0.0029, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.0031, 0.00320, 0.0035, 0.00380, 0.047, 0.00560, + 0.0029, 0.00300, 0.0029, 0.00290, 0.0029, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.00290, 0.0029, 0.0031, 0.00320, 0.0035, 0.00380, 0.0047, 0.00560, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +//0.0159, 0.028, 0.0397, 0.0697, 0.0997, 0.1526, 0.2055, 0.253, 0.3011, 0.3412, 0.3818, 0.423, 0.4661, 0.5103 0.4995 0.4581 0.3995 0.3501 0.2963 +//0.2207 0.1445 0.0906 0.0481 0.0174 0.0052 0.0029 0.0027 0.0027 0.0028 0.0027 0.0028 0.0030 0.0029 0.0029 0.0029 0.0029 0.0029 0.0029 +//0.0029 0.0032 0.0038 0.0056 + +const double ColorTemp::JDC468_BluD6_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1127, 0.143, 0.1773, 0.223, 0.2813, 0.3987, 0.4782, 0.5665, 0.6470, 0.6870, 0.7270, 0.7403, 0.7593, 0.7592, 0.7591, 0.7480, 0.7402, 0.7234, 0.7054, 0.6876, 0.6617, 0.6512, 0.6302, 0.6124, 0.5962, 0.5660, + 0.5352, 0.5009, 0.4655, 0.4356, 0.4191, 0.3923, 0.3619, 0.3145, 0.2653, 0.2245, 0.1744, 0.1499, 0.1255, 0.1124, 0.1014, 0.0972, 0.0855, 0.0786, 0.0715, 0.0659, 0.0626, 0.0625, 0.0624, 0.0645, 0.0670, 0.0714, + 0.0769, 0.0865, 0.0964, 0.1086, 0.1200, 0.123, 0.1327, 0.1309, 0.1281, 0.1214, 0.1146, 0.1023, 0.0950, 0.0901, 0.0839, 0.0918, 0.1009, 0.1260, 0.1597, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + + +}; +//d6 blue 84 0.1127 0.1773 0.2813 0.4782 0.6470 0.7270 0.7593 0.7591 0.7402 0.7054 0.6617 0.6302 0.5962 0.5352 0.4655 0.4191 0.3619 0.2653 0.1744 0.1255 0.1014 0.0855 0.0715 0.0626 0.0624 0.0670 0.0769 0.0964 0.1200 0.1327 0.1281 0.1146 0.0950 0.0839 0.1009 0.1597 +const double ColorTemp::JDC468_BluF4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0180, 0.0270, 0.0324, 0.0453, 0.0611, 0.0845, 0.1066, 0.1234, 0.1446, 0.1567, 0.1718, 0.1867, 0.1954, 0.2024, 0.2083, 0.2090, 0.2096, 0.2060, 0.2036, 0.1990, 0.1947, 0.1920, 0.1901, 0.1856, 0.1794, 0.1667, 0.1516, 0.1321, + 0.1167, 0.1032, 0.0876, 0.0730, 0.0584, 0.0445, 0.0296, 0.0212, 0.0125, 0.0099, 0.0069, 0.0060, 0.0053, 0.0050, 0.0049, 0.0047, 0.0046, 0.0045, 0.0044, 0.0043, 0.0043, 0.0043, 0.0043, 0.0046, 0.0049, 0.0050, 0.0052, 0.0057, + 0.0063, 0.0066, 0.0069, 0.0067, 0.0066, 0.0063, 0.0059, 0.0056, 0.0053, 0.0054, 0.0055, 0.0062, 0.0069, 0.0099, 0.0122, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; + +// f4 blue 134 0.0180 0.0324 0.0611 0.1066 0.1446 0.1718 0.1954 0.2083 0.2096 0.2036 0.1947 0.1901 0.1794 0.1516 0.1167 0.0876 0.0584 0.0296 0.0125 0.0069 0.0053 0.0049 0.0046 0.0044 0.0043 0.0043 0.0049 0.0052 0.0063 0.0069 0.0066 0.0059 0.0053 0.0055 0.0069 0.0122 +const double ColorTemp::JDC468_GreI8_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0230, 0.0232, 0.0234, 0.0254, 0.0263, 0.0298, 0.0329, 0.0367, 0.0377, 0.0388, 0.0399, 0.0410, 0.0421, 0.0440, 0.0460, 0.0481, 0.0496, 0.0523, 0.0559, 0.0645, 0.0727, 0.0878, 0.1020, 0.1156, 0.1288, 0.1334, 0.1394, 0.1398, + 0.1402, 0.1407, 0.1413, 0.1409, 0.1396, 0.1334, 0.1276, 0.1200, 0.1129, 0.1095, 0.1064, 0.1053, 0.1043, 0.1031, 0.1021, 0.1001, 0.0980, 0.0970, 0.0952, 0.0963, 0.0967, 0.0990, 0.1009, 0.1042, 0.1078, 0.1130, 0.1188, 0.1251, + 0.1307, 0.1335, 0.1374, 0.1376, 0.1378, 0.1362, 0.1345, 0.1312, 0.1278, 0.1257, 0.1240, 0.1290, 0.1345, 0.1476, 0.1615, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; + +// i8 green215 215 0.0230 0.0234 0.0263 0.0329 0.0377 0.0399 0.0421 0.0460 0.0496 0.0559 0.0727 0.1020 0.1288 0.1394 0.1402 0.1413 0.1396 0.1276 0.1129 0.1064 0.1043 0.1021 0.0980 0.0952 0.0967 0.1009 0.1078 0.1188 0.1307 0.1374 0.1378 0.1345 0.1278 0.1240 0.1345 0.1615 + +const double ColorTemp::JDC468_OraO18_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0826, 0.0830, 0.0832, 0.0861, 0.0892, 0.0993, 0.1108, 0.1180, 0.1248, 0.1253, 0.1263, 0.1261, 0.1259, 0.1267, 0.1289, 0.1304, 0.1319, 0.1370, 0.1419, 0.1631, 0.1851, 0.2311, 0.2743, 0.3131, 0.3536, 0.3551, 0.3585, 0.3488, 0.3322, + 0.3470, 0.3575, 0.3680, 0.3498, 0.3316, 0.3224, 0.3129, 0.3578, 0.4013, 0.4734, 0.5454, 0.5978, 0.6502, 0.6745, 0.6982, 0.7080, 0.7182, 0.7273, 0.7269, 0.7308, 0.7342, 0.7393, 0.7436, 0.7498, 0.7550, 0.7597, 0.7640, 0.7680, 0.7713, + 0.7766, 0.7786, 0.7816, 0.7841, 0.7863, 0.7889, 0.7902, 0.7931, 0.7957, 0.7997, 0.8068, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; +// o18 ora 382 382 0.0826 0.0832 0.0892 0.1108 0.1248 0.1263 0.1259 0.1289 0.1319 0.1419 0.1851 0.2743 0.3536 0.3585 0.3322 0.3470 0.3680 0.3316 0.3129 0.4013 0.5454 0.6502 0.6982 0.7182 0.7269 0.7342 0.7436 0.7550 0.7640 0.7713 0.7766 0.7816 0.7863 0.7902 0.7957 0.8068 +const double ColorTemp::JDC468_OraD17_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0462, 0.0442, 0.0422, 0.0401, 0.0383, 0.0390, 0.0396, 0.0396, 0.0395, 0.0388, 0.0380, 0.0378, 0.0376, 0.0381, 0.0384, 0.0391, 0.0399, 0.0421, 0.0451, 0.0561, 0.0676, 0.0934, 0.1189, 0.1432, 0.1671, 0.1650, 0.1632, 0.1512, 0.1402, 0.1456, + 0.1521, 0.1613, 0.1696, 0.1552, 0.1409, 0.1342, 0.1283, 0.1689, 0.2084, 0.2845, 0.3575, 0.4183, 0.4797, 0.5090, 0.5389, 0.5498, 0.5617, 0.5667, 0.5728, 0.5788, 0.5822, 0.5889, 0.5938, 0.6011, 0.6081, 0.6145, 0.6212, 0.6267, 0.6304, 0.6331, + 0.6352, 0.6361, 0.6373, 0.6372, 0.6370, 0.6376, 0.6384, 0.6413, 0.6483, 0.6523, 0.6668, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; + +// d17 ora 95 95 0.0462 0.0422 0.0383 0.0396 0.0395 0.0380 0.0376 0.0384 0.0399 0.0451 0.0676 0.1189 0.1671 0.1632 0.1402 0.1521 0.1696 0.1409 0.1283 0.2084 0.3575 0.4797 0.5389 0.5617 0.5728 0.5822 0.5938 0.6081 0.6212 0.6304 0.6352 0.6373 0.6370 0.6384 0.6483 0.6668 //spectral data ColorLab : Skin 35 15 17 const double ColorTemp::ColabSkin35_15_17_spect[97] = { @@ -825,6 +1599,817 @@ const double ColorTemp::ColabSky42_0_m24_spect[97] = { 0.0979, 0.112, 0.1269, 0.134, 0.1430, 0.147, 0.1497, 0.151, 0.1529, 0.1545, 0.1561, 0.158, 0.1603, 0.1616, 0.1627, 0.1625, 0.1623, 0.1614, 0.1605, 0.159, 0.1575, 0.1567, 0.1557, 0.1563, 0.1569, 0.159, 0.1627, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +//spectral data ColorLab : blue 77 -44 -50 + +const double ColorTemp::Colorblue_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0316, 0.0480, 0.0658, 0.0925, 0.1199, 0.1812, 0.2424, 0.2770, 0.3145, 0.3430, 0.3702, 0.4022, 0.4346, 0.4560, 0.4778, 0.4843, 0.4902, 0.4940, 0.4960, 0.4920, 0.4889, 0.4820, + 0.4764, 0.4685, 0.4606, 0.4486, 0.4379, 0.4160, 0.3955, 0.3640, 0.3330, 0.2990, 0.2660, 0.2291, 0.1991, 0.1705, 0.1403, 0.1220, 0.1067, 0.0967, 0.0907, 0.0846, 0.0785, 0.0698, + 0.0601, 0.0525, 0.0455, 0.0423, 0.0386, 0.0370, 0.0358, 0.0354, 0.0351, 0.0368, 0.0382, 0.0413, 0.0449, 0.0474, 0.0492, 0.0484, 0.0477, 0.0460, 0.0437, 0.0402, 0.0371, 0.0349, + 0.0329, 0.0341, 0.0356, 0.0410, 0.0462, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 + +}; +//0.1571 0.2150 0.3040 0.3684 0.3952 0.3965 0.3782 0.3418 0.2995 0.2543 0.2043 0.1686 0.1420 0.1070 0.0785 0.0725 0.0755 0.0695 0.0680 0.0914 0.1379 0.1833 0.2038 0.2065 0.2079 0.2110 0.2176 0.2319 0.2518 0.2632 0.2616 0.2522 0.2380 0.2290 0.2432 0.2901 + +const double ColorTemp::ColorViolA1_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1571, 0.185, 0.2150, 0.255, 0.3040, 0.332, 0.3684, 0.381, 0.3952, 0.3956, 0.3965, 0.387, 0.3782, 0.362, 0.3418, 0.322, 0.2995, 0.275, 0.2543, 0.229, 0.2043, 0.185, 0.1686, + 0.155, 0.1420, 0.131, 0.1070, 0.093, 0.0785, 0.075, 0.0725, 0.074, 0.0755, 0.072, 0.0695, 0.069, 0.0680, 0.083, 0.0914, 0.115, 0.1379, 0.162, 0.1833, 0.193, 0.2038, 0.205, + 0.2065, 0.207, 0.2079, 0.209, 0.2110, 0.214, 0.2176, 0.226, 0.2319, 0.242, 0.2518, 0.258, 0.2632, 0.263, 0.2616, 0.256, 0.2522, 0.246, 0.2380, 0.233, 0.2290, 0.235, 0.2432, 0.265, 0.2901, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//0.2270 0.2413 0.3287 0.4079 0.4469 0.4594 0.4535 0.4268 0.3886 0.3427 0.2866 0.2433 0.2087 0.1604 0.1181 0.1069 0.1098 0.0985 0.0916 0.1130 0.1496 0.1746 0.1783 0.1742 0.1738 0.1763 0.1831 0.1975 0.2169 0.2274 0.2247 0.2140 0.1990 0.1897 0.2039 0.2508 + +const double ColorTemp::ColorViolA4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2270, 0231, 0.2413, 0.286, 0.3287, 0.367, 0.4079, 0.427, 0.4469, 0.452, 0.4594, 0.456, 0.4535, 0.432, 0.4268, 0.403, 0.3886, 0.368, 0.3427, 0.314, 0.2866, 0.265, 0.2433, 0.222, + 0.2087, 0.183, 0.1604, 0.130, 0.1181, 0.112, 0.1069, 0.108, 0.1098, 0.103, 0.0985, 0.094, 0.0916, 0.104, 0.1130, 0.131, 0.1496, 0.152, 0.1746, 0.176, 0.1783, 0.176, 0.1742, 0.174, + 0.1738, 0.175, 0.1763, 0.181, 0.1831, 0.192, 0.1975, 0.206, 0.2169, 0.222, 0.2274, 0.226, 0.2247, 0.219, 0.2140, 0.206, 0.1990, 0.195, 0.1897, 0.196, 0.2039, 0.221, 0.2508, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//0.1426 0.2660 0.3556 0.4259 0.4459 0.4317 0.3942 0.3425 0.2917 0.2413 0.1885 0.1524 0.1267 0.0948 0.0700 0.0661 0.0708 0.0671 0.0699 0.1092 0.2099 0.3582 0.4857 0.5583 0.5950 0.6146 0.6307 0.6495 0.6720 0.6825 0.6809 0.6718 0.6593 0.6517 0.6649 0.7066 +const double ColorTemp::ColorViolA6_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1426, 0.203, 0.2660, 0.315, 0.3556, 0.392, 0.4259, 0.435, 0.4459, 0.437, 0.4317, 0.417, 0.3942, 0.365, 0.3425, 0.317, 0.2917, 0.266, 0.2413, 0.218, 0.1885, 0.172, 0.1524, 0.141, + 0.1267, 0.112, 0.0948, 0.083, 0.0700, 0.068, 0.0661, 0.068, 0.0708, 0.069, 0.0671, 0.068, 0.0699, 0.900, 0.1092, 0.159, 0.2099, 0.284, 0.3582, 0.441, 0.4857, 0.525, 0.5583, 0.567, + 0.5950, 0.605, 0.6146, 0.623, 0.6307, 0.638, 0.6495, 0.661, 0.6720, 0.679, 0.6825, 0.681, 0.6809, 0.675, 0.6718, 0.667, 0.6593, 0.655, 0.6517, 0.658, 0.6649, 0.681, 0.7066, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//0.4939 0.3859 0.4198 0.4780 0.5328 0.5672 0.5880 0.5994 0.6029 0.5981 0.5808 0.5618 0.5369 0.4819 0.4190 0.3921 0.3815 0.3400 0.2991 0.2977 0.3090 0.3088 0.2930 0.2753 0.2660 0.2636 0.2678 0.2811 0.2995 0.3125 0.3153 0.3111 0.3006 0.2952 0.3116 0.3584 +const double ColorTemp::ColorBlueSkyK3_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.4939, 0.435, 0.3859, 0.403, 0.4198, 0.446, 0.4780, 0.505, 0.5328, 0.552, 0.5672, 0.578, 0.5880, 0.595, 0.5994, 0.602, 0.6029, 0.600, 0.5981, 0.588, 0.5808, 0.571, 0.5618, 0.551, + 0.5369, 0.503, 0.4819, 0.452, 0.4190, 0.404, 0.3921, 0.386, 0.3815, 0.364, 0.3400, 0.321, 0.2991, 0.298, 0.2977, 0.304, 0.3090, 0.309, 0.3088, 0.302, 0.2930, 0.284, 0.2753, 0.271, + 0.2660, 0.265, 0.2636, 0.266, 0.2678, 0.275, 0.2811, 0.290, 0.2995, 0.306, 0.3125, 0.314, 0.3153, 0.313, 0.3111, 0.307, 0.3006, 0.298, .2952, 0.306, 0.3116, 0.325, 0.3584, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//0.4058 0.4734 0.5372 0.6051 0.6698 0.6992 0.7118 0.7135 0.7071 0.6938 0.6702 0.6511 0.6282 0.5732 0.5103 0.4913 0.4926 0.4604 0.4341 0.4648 0.5111 0.5335 0.5283 0.5154 0.5098 0.5093 0.5151 0.5309 0.5520 0.5642 0.5657 0.5598 0.5489 0.5430 0.5601 0.6067 + +const double ColorTemp::ColorBlueSkyK9_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.4058, 0.441, 0.4734, 0.502, 0.5372, 0.585, 0.6051, 0.643, 0.6698, 0.685, 0.6992, 0.705, 0.7118, 0.712, 0.7135, 0.711, 0.7071, 0.702, 0.6938, 0.681, 0.6702, 0.663, 0.6511, 0.642, + 0.6282, 0.604, 0.5732, 0.542, 0.5103, 0.499, 0.4913, 0.492, 0.4926, 0.475, 0.4604, 0.452, 0.4341, 0.453, 0.4648, 0.496, 0.5111, 0.525, 0.5335, 0.531, 0.5283, 0.522, 0.5154, 0.512, + 0.5098, 0.509, 0.5093, 0.513, 0.5151, 0.523, 0.5309, 0.544, 0.5520, 0.562, 0.5642, 0.565, 0.5657, 0.562, 0.5598, 0.554, 0.5489, 0.546, 0.5430, 0.553, 0.5601, 0.576, 0.6067, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//42 C4 0.3280 0.2611 0.3781 0.4646 0.5292 0.5732 0.6112 0.6307 0.6310 0.6181 0.5847 0.5488 0.5066 0.4358 0.3585 0.3151 0.2855 0.2309 0.1786 0.1546 0.1443 0.1359 0.1245 0.1151 0.1120 0.1127 0.1169 0.1275 0.1421 0.1504 0.1488 0.1416 0.1303 0.1241 0.1355 0.1739 +const double ColorTemp::ColorBlueSkyC4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3280, 0.2950, 0.2611, 0.304, 0.3781, 0.423, 0.4646, 0.498, 0.5292, 0.555, 0.5732, 0.591, 0.6112, 0.6221, 0.6307, 0.631, 0.6310, 0.625, 0.6181, 0.607, 0.5847, 0.563, 0.5488, 0.524, + 0.5066, 0.465, 0.4358, 0.398, 0.3585, 0.336, 0.3151, 0.302, 0.2855, 0.254, 0.2309, 0.203, 0.1786, 0.166, 0.1546, 0.149, 0.1443, 0.143, 0.1359, 0.131, 0.1245, 0.123, 0.115, 0.114, + 0.1120, 0.112, 0.1127, 0.114, 0.1169, 0.122, 0.1275, 0.133, 0.1421, 0.147, 0.1504, 0.149, 0.1488, 0.145, 0.1416, 0.136, 0.1303, 0.127, 0.1241, 0.132, 0.1355, 0.155, 0.1739, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//52 C14 0.5697 0.4660 0.5000 0.5560 0.6072 0.6402 0.6632 0.6850 0.7069 0.7292 0.7488 0.7678 0.7786 0.7721 0.7544 0.7394 0.7232 0.6889 0.6446 0.6171 0.5966 0.5743 0.5425 0.5093 0.4884 0.4784 0.4774 0.4822 0.4944 0.5076 0.5186 0.5268 0.5303 0.5332 0.5454 0.5760 +const double ColorTemp::ColorBlueSkyC14_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.5697, 0.511, 0.4660, 0.481, 0.5000, 0.528, 0.5560, 0.583, 0.6072, 0.622, 0.6402, 0.653, 0.6632, 0.674, 0.6850, 0.699, 0.7069, 0.717, 0.7292, 0.735, 0.7488, 0.757, 0.7678, 0.773, + 0.7786, 0.776, 0.7721, 0.765, 0.7544, 0.746, 0.7394, 0.731, 0.7232, 0.704, 0.6889, 0.674, 0.6446, 0.631, 0.6171, 0.606, 0.5966, 0.585, 0.5743, 0.5570, 0.5425, 0.529, 0.5093, 0.498, + 0.4884, 0.482, 0.4784, 0.478, 0.4774, 0.481, 0.4822, 0.487, 0.4944, 0.503, 0.5076, 0.512, 0.5186, 0.522, 0.5268, 0.529, 0.5303, 0.532, 0.5332, 0.539, 0.5454, 0.565, 0.5760, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//80 E4 0.1483 0.1756 0.2536 0.3084 0.3665 0.4189 0.4746 0.5127 0.5239 0.5193 0.4917 0.4569 0.4123 0.3422 0.2672 0.2179 0.1820 0.1356 0.0972 0.0784 0.0698 0.0646 0.0592 0.0556 0.0546 0.0551 0.0571 0.0611 0.0670 0.0701 0.0692 0.0661 0.0620 0.0606 0.0663 0.0834 +const double ColorTemp::ColorBlueSkyE4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1483, 0.161, 0.1756, 0.213, 0.2536, 0.283, 0.3084, 0.331, 0.3665, 0.387, 0.4189, 0.445, 0.4746, 0.496, 0.5127, 0.519, 0.5239, 0.522, 0.5193, 0.508, 0.4917, 0.476, 0.4569, 0.431, + 0.4123, 0.375, 0.3422, 0.309, 0.2672, 0.242, 0.2179, 0.208, 0.1820, 0.162, 0.1356, 0.113, 0.0972, 0.091, 0.0784, 0.073, 0.0698, 0.066, 0.0646, 0.062, 0.0592, 0.057, 0.0556, 0.055, + 0.0546, 0.055, 0.0551, 0.056, 0.0571, 0.059, 0.0611, 0.064, 0.0670, 0.069, 0.0701, 0.070, 0.0692, 0.067, 0.0661, 0.065, 0.0620, 0.061, 0.0606, 0.063, 0.0663, 0.072, 0.0834, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//229 M1 0.3100 0.2922 0.3514 0.4042 0.4443 0.4769 0.5002 0.5133 0.5187 0.5179 0.5057 0.4928 0.4729 0.4235 0.3643 0.3371 0.3234 0.2827 0.2418 0.2338 0.2370 0.2329 0.2184 0.2028 0.1958 0.1937 0.1973 0.2084 0.2244 0.2351 0.2372 0.2331 0.2239 0.2178 0.2319 0.2731 +const double ColorTemp::ColorBlueSkyM1_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3100, 0.303, 0.2922, 0.322, 0.3514, 0.376, 0.4042, 0.424, 0.4443, 0.457, 0.4769, 0.497, 0.5002, 0.507, 0.5133, 0.516, 0.5187, 0.518, 0.5179, 0.511, 0.5057, 0.497, 0.4928, 0.483, + 0.4729, 0.454, 0.4235, 0.398, 0.3643, 0.346, 0.3371, 0.329, 0.3234, 0.301, 0.2827, 0.263, 0.2418, 0.235, 0.2338, 0.235, 0.2370, 0.236, 0.2329, 0.226, 0.2184, 0.213, 0.2028, 0.198, + 0.1958, 0.194, 0.1937, 0.196, 0.1973, 0.203, 0.2084, 0.212, 0.2244, 0.233, 0.2351, 0.236, 0.2372, 0.234, 0.2331, 0.229, 0.2239, 0.222, 0.2178, 0.224, 0.2319, 0.251, 0.2731, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//514 2B1 0.5277 0.4431 0.4972 0.5820 0.6387 0.6750 0.7001 0.7140 0.7202 0.7193 0.7053 0.6891 0.6657 0.6181 0.5614 0.5312 0.5101 0.4589 0.4045 0.3857 0.3826 0.3751 0.3574 0.3393 0.3314 0.3304 0.3368 0.3523 0.3742 0.3874 0.3883 0.3818 0.3693 0.3616 0.3800 0.4324 +const double ColorTemp::ColorBlueSky2B1_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.5277, 0.485, 0.4431, 0.476, 0.4972, 0.539, 0.5820, 0.607, 0.6387, 0.653, 0.6750, 0.691, 0.7001, 0.707, 0.7140, 0.718, 0.7202, 0.720, 0.7193, 0.713, 0.7053, 0.695, 0.6891, 0.674, + 0.6657, 0.632, 0.6181, 0.587, 0.5614, 0.543, 0.5312, 0.521, 0.5101, 0.483, 0.4589, 0.431, 0.4045, 0.398, 0.3857, 0.385, 0.3826, 0.376, 0.3751, 0.364, 0.3574, 0.346, 0.3393, 0.335, + 0.3314, 0.331, 0.3304, 0.333, 0.3368, 0.346, 0.3523, 0.363, 0.3742, 0.382, 0.3874, 0.385, 0.3883, 0.384, 0.3818, 0.375, 0.3693, 0.364, 0.3616, 0.374, 0.3800, 0.396, 0.4324, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//368 T7 0.1943 0.3199 0.4536 0.5443 0.6043 0.6499 0.6839 0.7125 0.7329 0.7482 0.7527 0.7514 0.7383 0.7028 0.6526 0.6034 0.5500 0.4708 0.3848 0.3268 0.2929 0.2712 0.2493 0.2316 0.2243 0.2234 0.2288 0.2436 0.2640 0.2762 0.2767 0.2693 0.2566 0.2489 0.2665 0.3165 +const double ColorTemp::ColorBlueSkyT7_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1943, 0.256, 0.3199, 0.376, 0.4536, 0.494, 0.5443, 0.572, 0.6043, 0.631, 0.6499, 0.664, 0.6839, 0.698, 0.7125, 0.726, 0.7329, 0.741, 0.7482, 0.751, 0.7527, 0.752, 0.7514, 0.745, + 0.7383, 0.721, 0.7028, 0.675, 0.6526, 0.631, 0.6034, 0.589, 0.5500, 0.512, 0.4708, 0.432, 0.3848, 0.342, 0.3268, 0.311, 0.2929, 0.282, 0.2712, 0.261, 0.2493, 0.236, 0.2316, 0.227, + 0.2243, 0.223, 0.2234, 0.229, 0.2288, 0.235, 0.2436, 0.255, 0.2640, 0.268, 0.2762, 0.277, 0.2767, 0.272, 0.2693, 0.263, 0.2566, 0.254, 0.2489, 0.255, 0.2665, 0.275, 0.3165, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//399 U19 0.5829 0.4865 0.4927 0.5690 0.6221 0.6532 0.6728 0.6832 0.6889 0.6884 0.6771 0.6648 0.6465 0.6038 0.5524 0.5297 0.5194 0.4797 0.4387 0.4356 0.4455 0.4444 0.4282 0.4094 0.4009 0.3992 0.4046 0.4185 0.4385 0.4515 0.4545 0.4505 0.4411 0.4368 0.4539 0.5013 +const double ColorTemp::ColorBlueSkyU19_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.5829, 0.534, 0.4865, 0.489, 0.4927, 0.532, 0.5690, 0.593, 0.6221, 0.641, 0.6532, 0.662, 0.6728, 0.674, 0.6832, 0.687, 0.6889, 0.688, 0.6884, 0.683, 0.6771, 0.671, 0.6648, 0.665, + 0.6465, 0.622, 0.6038, 0.583, 0.5524, 0.542, 0.5297, 0.523, 0.5194, 0.492, 0.4797, 0.451, 0.4387, 0.436, 0.4356, 0.442, 0.4455, 0.445, 0.4444, 0.432, 0.4282, 0.413, 0.4094, 0.404, + 0.4009, 0.400, 0.3992, 0.402, 0.4046, 0.411, 0.4185, 0.426, 0.4385, 0.446, 0.4515, 0.452, 0.4545, 0.452, 0.4505, 0.446, 0.4411, 0.438, 0.4368, 0.443, 0.4539, 0.467, 0.5013, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//382 U2 0.3594 0.3425 0.3214 0.3654 0.4097 0.4360 0.4590 0.4793 0.5002 0.5234 0.5476 0.5745 0.5940 0.5901 0.5703 0.5545 0.5384 0.5029 0.4592 0.4334 0.4149 0.3947 0.3657 0.3363 0.3177 0.3087 0.3077 0.3123 0.3231 0.3351 0.3454 0.3520 0.3545 0.3562 0.3674 0.3976 +const double ColorTemp::ColorBlueSkyU2_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3594, 0.345, 0.3425, 0.333, 0.3214, 0.346, 0.3654, 0.387, 0.4097, 0.424, 0.4360, 0.446, 0.4590, 0.467, 0.4793, 0.494, 0.5002, 0.517, 0.5234, 0.538, 0.5476, 0.564, 0.5745, 0.583, + 0.5940, 0.593, 0.5901, 0.580, 0.5703, 0.563, 0.5545, 0.546, 0.5384, 0.521, 0.5029, 0.478, 0.4592, 0.444, 0.4334, 0.421, 0.4149, 0.408, 0.3947, 0.378, 0.3657, 0.352, 0.3363, 0.324, + 0.3177, 0.313, 0.3087, 0.308, 0.3077, 0.310, 0.3123, 0.317, 0.3231, 0.329, 0.3351, 0.339, 0.3454, 0.348, 0.3520, 0.353, 0.3545, 0.355, 0.3562, 0.359, 0.3674, 0.375, 0.3976, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//378 T17 0.4213 0.3332 0.4205 0.5078 0.5650 0.6025 0.6223 0.6279 0.6195 0.5981 0.5578 0.5197 0.4785 0.4074 0.3325 0.3030 0.2918 0.2511 0.2125 0.2105 0.2198 0.2199 0.2083 0.1945 0.1895 0.1898 0.1954 0.2094 0.2288 0.2406 0.2399 0.2317 0.2189 0.2108 0.2261 0.2755 +const double ColorTemp::ColorBlueSkyT17_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.4213, 0.376, 0.3332, 0.387, 0.4205, 0.467, 0.5078, 0.532, 0.5650, 0.587, 0.6025, 0.611, 0.6223, 0.624, 0.6279, 0.623, 0.6195, 0.607, 0.5981, 0.576, 0.5578, 0.534, 0.5197, 0.499, + 0.4785, 0.435, 0.4074, 0.376, 0.3325, 0.317, 0.3030, 0.295, 0.2918, 0.272, 0.2511, 0.235, 0.2125, 0.212, 0.2105, 0.214, 0.2198, 0.219, 0.2199, 0.215, 0.2083, 0.202, 0.1945, 0.191, + 0.1895, 0.189, 0.1898, 0.193, 0.1954, 0.202, 0.2094, 0.215, 0.2288, 0.236, 0.2406, 0.240, 0.2399, 0.236, 0.2317, 0.225, 0.2189, 0.214, 0.2108, 0.218, 0.2261, 0.245, 0.2755, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//236 M8 -0.0593 0.0128 0.0031 0.0149 0.0197 0.0221 0.0223 0.0230 0.0232 0.0237 0.0243 0.0247 0.0249 0.0249 0.0248 0.0247 0.0244 0.0240 0.0240 0.0242 0.0244 0.0247 0.0252 0.0254 0.0262 0.0269 0.0271 0.0273 0.0278 0.0280 0.0276 0.0275 0.0282 0.0288 0.0295 0.0303 +const double ColorTemp::ColorBlackM8_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0593, 0.040, 0.0128, 0.023, 0.0031, 0.024, 0.0149, 0.017, 0.0197, 0.021, 0.0221, 0.022, 0.0223, 0.023, 0.0230, 0.023, 0.0232, 0.023, 0.0237, 0.024, 0.0243, 0.024, 0.0247, 0.024, + 0.0249, 0.025, 0.0249, 0.025, 0.0248, 0.025, 0.0247, 0.024, 0.0244, 0.024, 0.0240, 0.024, 0.0240, 0.024, 0.0242, 0.024, 0.0244, 0.024, 0.0247, 0.025, 0.0252, 0.025, 0.0254, 0.026, + 0.0262, 0.027, 0.0269, 0.027, 0.0271, 0.027, 0.0273, 0.027, 0.0278, 0.028, 0.0280, 0.028, 0.0276, 0.028, 0.0275, 0.028, 0.0282, 0.028, 0.0288, 0.029, 0.0295, 0.030, 0.0303, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//240 M12 -0.0377 0.0146 0.0167 0.0222 0.0257 0.0261 0.0270 0.0271 0.0274 0.0281 0.0287 0.0299 0.0306 0.0304 0.0297 0.0285 0.0277 0.0267 0.0257 0.0257 0.0258 0.0259 0.0263 0.0276 0.0279 0.0288 0.0297 0.0302 0.0304 0.0303 0.0302 0.0303 0.0310 0.0321 0.0337 0.0356 +const double ColorTemp::ColorBlackM12_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0377, 0.022, 0.0146, 0.015, 0.0167, 0.020, 0.0222, 0.023, 0.0257, 0.026, 0.0261, 0.027, 0.0270, 0.027, 0.0271, 0.027, 0.0274, 0.028, 0.0281, 0.028, 0.0287, 0.029, 0.0299, 0.030, + 0.0306, 0.030, 0.0304, 0.030, 0.0297, 0.029, 0.0285, 0.028, 0.0277, 0.027, 0.0267, 0.026, 0.0257, 0.026, 0.0257, 0.026, 0.0258, 0.026, 0.0259, 0.026, 0.0263, 0.027, 0.0276, 0.028, + 0.0279, 0.028, 0.0288, 0.029, 0.0297, 0.030, 0.0302, 0.030, 0.0304, 0.030, 0.0303, 0.030, 0.0302, 0.030, 0.0303, 0.031, 0.0310, 0.031, 0.0321, 0.033, 0.0337, 0.035, 0.0356, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//241 M13 0.2961 0.0487 0.0261 0.0330 0.0296 0.0305 0.0305 0.0314 0.0320 0.0322 0.0335 0.0348 0.0352 0.0347 0.0336 0.0325 0.0314 0.0299 0.0284 0.0284 0.0286 0.0288 0.0290 0.0299 0.0306 0.0314 0.0320 0.0328 0.0332 0.0331 0.0330 0.0328 0.0337 0.0350 0.0366 0.0385 +const double ColorTemp::ColorBlackM13_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2961, 0.100, 0.0487, 0.035, 0.0261, 0.030, 0.0330, 0.031, 0.0296, 0.030, 0.0305, 0.030, 0.0305, 0.031, 0.0314, 0.032, 0.0320, 0.032, 0.0322, 0.033, 0.0335, 0.034, 0.0348, 0.035, + 0.0352, 0.035, 0.0347, 0.034, 0.0336, 0.033, 0.0325, 0.032, 0.0314, 0.030, 0.0299, 0.029, 0.0284, 0.028, 0.0284, 0.029, 0.0286, 0.029, 0.0288, 0.029, 0.0290, 0.030, 0.0299, 0.030, + 0.0306, 0.031, 0.0314, 0.032, 0.0320, 0.032, 0.0328, 0.033, 0.0332, 0.033, 0.0331, 0.033, 0.0330, 0.033, 0.0328, 0.033, 0.0337, 0.034, 0.0350, 0.036, 0.0366, 0.037, 0.0385, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//525 2B12 0.3848 0.4127 0.4780 0.5375 0.5917 0.6194 0.6353 0.6485 0.6625 0.6784 0.7010 0.7367 0.7706 0.7847 0.7843 0.7826 0.7799 0.7689 0.7521 0.7463 0.7401 0.7314 0.7168 0.7008 0.6904 0.6860 0.6861 0.6896 0.6986 0.7064 0.7138 0.7185 0.7233 0.7281 0.7338 0.7498 +const double ColorTemp::ColorWhite2B12_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3848, 0.405, 0.4127, 0.435, 0.4780, 0.501, 0.5375, 0.572, 0.5917, 0.606, 0.6194, 0.627, 0.6353, 0.642, 0.6485, 0.653, 0.6625, 0.669, 0.6784, 0.692, 0.7010, 0.072, 0.7367, 0.0760, + 0.7706, 0.775, 0.7847, 0.784, 0.7843, 0.784, 0.7826, 0.781, 0.7799, 0.775, 0.7689, 0.762, 0.7521, 0.748, 0.7463, 0.743, 0.7401, 0.731, 0.7314, 0.723, 0.7168, 0.705, 0.7008, 0.701, + 0.6904, 0.689, 0.6860, 0.686, 0.6861, 0.687, 0.6896, 0.691, 0.6986, 0.701, 0.7064, 0.711, 0.7138, 0.715, 0.7185, 0.721, 0.7233, 0.725, 0.7281, 0.731, 0.7338, 0.741, 0.7498, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//527 2B14 0.6608 0.5900 0.6114 0.6747 0.7329 0.7599 0.7706 0.7776 0.7831 0.7890 0.7952 0.8074 0.8185 0.8214 0.8201 0.8218 0.8244 0.8229 0.8192 0.8281 0.8344 0.8388 0.8415 0.8445 0.8495 0.8521 0.8556 0.8604 0.8666 0.8687 0.8687 0.8672 0.8682 0.8703 0.8720 0.8803 +const double ColorTemp::ColorWhite2B14_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.6608, 0.631, 0.5900, 0.605, 0.6114, 0.634, 0.6747, 0.698, 0.7329, 0.745, 0.7599, 0.765, 0.7706, 0.775, 0.7776, 0.781, 0.7831, 0.786, 0.7890, 0.792, 0.7952, 0.797, 0.8074, 0.810, + 0.8185, 0.821, 0.8214, 0.821, 0.8201, 0.821, 0.8218, 0.822, 0.8244, 0.823, 0.8229, 0.822, 0.8192, 0.824, 0.8281, 0.831, 0.8344, 0.836, 0.8388, 0.840, 0.8415, 0.843, 0.8445, 0.847, + 0.8495, 0.851, 0.8521, 0.853, 0.8556, 0.858, 0.8604, 0.863, 0.8666, 0.867, 0.8687, 0.869, 0.8687, 0.867, 0.8672, 0.868, 0.8682, 0.870, 0.8703, 0.871, 0.8720, 0.874, 0.8803, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//97 97 0.0031 0.0047 0.0056 0.0064 0.0070 0.0070 0.0071 0.0066 0.0065 0.0065 0.0064 0.0063 0.0063 0.0058 0.0052 0.0052 0.0053 0.0047 0.0044 0.0052 0.0066 0.0077 0.0081 0.0082 0.0084 0.0089 0.0096 0.0106 0.0121 0.0127 0.0128 0.0124 0.0115 0.0117 0.0133 0.0169 +const double ColorTemp::JDC468_Blackred97_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0031, 0.0035, 0.0047, 0.0050, 0.0056, 0.0060, 0.0064, 0.0065, 0.0070, 0.007, 0.0070, 0.007, 0.0071, 0.007, 0.0066, 0.007, 0.0065, 0.006, 0.0065, 0.006, 0.0064, 0.006, 0.0063, + 0.006, 0.0063, 0.006, 0.0058, 0.005, 0.0052, 0.005, 0.0052, 0.005, 0.0053, 0.005, 0.0047, 0.005, 0.0044, 0.005, 0.0052, 0.006, 0.0066, 0.007, 0.0077, 0.008, 0.0081, 0.008, 0.008, + 0.008, 0.0084, 0.009, 0.0089, 0.009, 0.0096, 0.01, 0.0106, 0.011, 0.0121, 0.012, 0.0127, 0.012, 0.0128, 0.012, 0.0124, 0.012, 0.0115, 0.012, 0.0117, 0.013, 0.0133, 0.015, 0.0169, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//443 443 0.0067 0.0068 0.0067 0.0074 0.0083 0.0088 0.0092 0.0093 0.0098 0.0099 0.0101 0.0106 0.0109 0.0104 0.0094 0.0086 0.0075 0.0058 0.0044 0.0039 0.0037 0.0038 0.0036 0.0035 0.0036 0.0033 0.0033 0.0036 0.0038 0.0042 0.0041 0.0036 0.0033 0.0035 0.0042 0.0062 +const double ColorTemp::JDC468_Blackredbl443_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0067, 0.0067, 0.0068, 0.0068, 0.0067, 0.0070, 0.0074, 0.008, 0.0083, 0.0085, 0.0088, 0.009, 0.0092, 0.0092, 0.0093, 0.0096, 0.0098, 0.0098, 0.0099, 0.01, 0.0101, 0.0104, 0.0106, + 0.0106, 0.0109, 0.0105, 0.0104, 0.01, 0.0094, 0.09, 0.0086, 0.08, 0.0075, 0.06, 0.0058, 0.05, 0.0044, 0.04, 0.0039, 0.0038, 0.0037, 0.0037, 0.0038, 0.0037, 0.0036, 0.0036, + 0.0035, 0.0036, 0.0036, 0.0034, 0.0033, 0.0033, 0.0033, 0.0035, 0.0036, 0.0037, 0.0038, 0.004, 0.0042, 0.004, 0.0041, 0.004, 0.0036, 0.0034, 0.0033, 0.0034, 0.0035, 0.004, 0.0042, 0.005, 0.0062, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//27 27 0.0060 0.0064 0.0070 0.0076 0.0086 0.0086 0.0088 0.0089 0.0089 0.0083 0.0079 0.0078 0.0077 0.0067 0.0059 0.0057 0.0056 0.0046 0.0041 0.0045 0.0050 0.0056 0.0054 0.0053 0.0054 0.0055 0.0057 0.0065 0.0073 0.0079 0.0080 0.0075 0.0067 0.0068 0.0081 0.0114 +const double ColorTemp::JDC468_Blackbl27_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0060, 0.0062, 0.0064, 0.0066, 0.0070, 0.0073, 0.0076, 0.008, 0.0086, 0.0086, 0.0086, 0.0087, 0.0088, 0.0088, 0.0089, 0.0089, 0.0089, 0.0085, 0.0083, 0.008, 0.0079, 0.0078, 0.0078, + 0.0078, 0.0077, 0.007, 0.0067, 0.006, 0.0059, 0.0057, 0.0057, 0.0057, 0.0056, 0.005, 0.0046, 0.0045, 0.0041, 0.0043, 0.0045, 0.0047, 0.0050, 0.0053, 0.0056, 0.0055, 0.0054, 0.0055, + 0.0053, 0.0053, 0.0054, 0.0054, 0.0055, 0.0056, 0.0057, 0.006, 0.0065, 0.007, 0.0073, 0.0075, 0.0079, 0.008, 0.0080, 0.008, 0.0075, 0.007, 0.0067, 0.0067, 0.0068, 0.007, 0.0081, 0.01, 0.0114, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//28 28 0.0092 0.0118 0.0155 0.0218 0.0267 0.0296 0.0312 0.0306 0.0282 0.0244 0.0205 0.0186 0.0167 0.0126 0.0091 0.0080 0.0071 0.0050 0.0042 0.0042 0.0044 0.0045 0.0045 0.0042 0.0041 0.0039 0.0040 0.0043 0.0048 0.0050 0.0047 0.0042 0.0041 0.0042 0.0049 0.0074 +const double ColorTemp::JDC468_Blackbl28_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0092, 0.01, 0.0118, 0.012, 0.0155, 0.016, 0.0218, 0.025, 0.0267, 0.028, 0.0296, 0.03, 0.0312, 0.031, 0.0306, 0.03, 0.0282, 0.026, 0.0244, 0.022, 0.0205, 0.02, 0.0186, 0.017, 0.0167, + 0.015, 0.0126, 0.01, 0.0091, 0.0085, 0.0080, 0.0075, 0.0071, 0.006, 0.0050, 0.05, 0.0042, 0.0042, 0.0042, 0.0043, 0.0044, 0.0044, 0.0045, 0.0045, 0.0045, 0.0043, 0.0042, 0.0042, + 0.0041, 0.004, 0.0039, 0.004, 0.0040, 0.004, 0.0043, 0.0044, 0.0048, 0.005, 0.0050, 0.0048, 0.0047, 0.0045, 0.0042, 0.0041, 0.0041, 0.0041, 0.0042, 0.0045, 0.0049, 0.006, 0.0074, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//214 214 0.0072 0.0062 0.0061 0.0064 0.0069 0.0071 0.0075 0.0081 0.0082 0.0088 0.0103 0.0126 0.0145 0.0146 0.0140 0.0133 0.0118 0.0094 0.0070 0.0059 0.0051 0.0046 0.0045 0.0043 0.0045 0.0045 0.0048 0.0056 0.0065 0.0072 0.0067 0.0065 0.0057 0.0058 0.0068 0.0103 +const double ColorTemp::JDC468_Blackgr214_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0072, 0.007, 0.0062, 0.0062, 0.0061, 0.0063, 0.0064, 0.0067, 0.0069, 0.007, 0.0071, 0.0072, 0.0075, 0.008, 0.0081, 0.008, 0.0082, 0.0085, 0.0088, 0.009, 0.0103, 0.011, 0.0126, + 0.012, 0.0145, 0.0145, 0.0146, 0.014, 0.0140, 0.014, 0.0133, 0.012, 0.0118, 0.01, 0.0094, 0.008, 0.0070, 0.006, 0.0059, 0.0055, 0.0051, 0.005, 0.0046, 0.0045, 0.0045, 0.0044, + 0.0043, 0.0044, 0.0045, 0.0045, 0.0045, 0.0046, 0.0048, 0.005, 0.0056, 0.006, 0.0065, 0.007, 0.0072, 0.007, 0.0067, 0.0066, 0.0065, 0.006, 0.0057, 0.0056, 0.0058, 0.006, 0.0068, 0.008, 0.0103, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//436 436 0.0095 0.0123 0.0173 0.0242 0.0293 0.0317 0.0310 0.0283 0.0246 0.0197 0.0152 0.0129 0.0112 0.0083 0.0063 0.0059 0.0056 0.0045 0.0043 0.0050 0.0059 0.0064 0.0062 0.0060 0.0060 0.0062 0.0066 0.0075 0.0086 0.0093 0.0089 0.0082 0.0073 0.0072 0.0088 0.0139 +const double ColorTemp::JDC468_Blackbl436_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0095, 0.01, 0.0123, 0.013, 0.0173, 0.02, 0.0242, 0.026, 0.0293, 0.03, 0.0317, 0.031, 0.0310, 0.03, 0.0283, 0.025, 0.0246, 0.02, 0.0197, 0.018, 0.0152, 0.014, 0.0129, 0.012, + 0.0112, 0.01, 0.0083, 0.007, 0.0063, 0.006, 0.0059, 0.0058, 0.0056, 0.005, 0.0045, 0.0045, 0.0043, 0.005, 0.0050, 0.0055, 0.0059, 0.006, 0.0064, 0.0063, 0.0062, 0.006, 0.0060, + 0.006, 0.0060, 0.006, 0.0062, 0.0064, 0.0066, 0.007, 0.0075, 0.008, 0.0086, 0.009, 0.0093, 0.009, 0.0089, 0.0086, 0.0082, 0.008, 0.0073, 0.0072, 0.0072, 0.008, 0.0088, 0.01, 0.0139, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//455 455 0.1560 0.1943 0.2724 0.4469 0.5896 0.6393 0.6390 0.6239 0.6096 0.5895 0.5698 0.5662 0.5603 0.5304 0.4977 0.4975 0.4998 0.4601 0.4261 0.4520 0.4986 0.5237 0.5270 0.5260 0.5297 0.5375 0.5504 0.5711 0.5910 0.6023 0.6029 0.5977 0.5880 0.5830 0.5978 0.6345 +const double ColorTemp::JDC468_Whitebl455_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1560, 0.18, 0.1943, 0.25, 0.2724, 0.40, 0.4469, 0.50, 0.5896, 0.60, 0.6393, 0.639, 0.6390, 0.625, 0.6239, 0.61, 0.6096, 0.60, 0.5895, 0.57, 0.5698, 0.567, 0.5662, 0.56, + 0.5603, 0.55, 0.5304, 0.51, 0.4977, 0.498, 0.4975, 0.498, 0.4998, 0.47, 0.4601, 0.44, 0.4261, 0.43, 0.4520, 0.47, 0.4986, 0.51, 0.5237, 0.525, 0.5270, 0.526, 0.5260, 0.528, + 0.5297, 0.53, 0.5375, 0.54, 0.5504, 0.56, 0.5711, 0.58, 0.5910, 0.595, 0.6023, 0.602, 0.6029, 0.600, 0.5977, 0.59, 0.5880, 0.585, 0.5830, 0.59, 0.5978, 0.61, 0.6345, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//101 101 0.0076 0.0094 0.0116 0.0139 0.0158 0.0158 0.0152 0.0142 0.0130 0.0111 0.0094 0.0090 0.0085 0.0069 0.0058 0.0057 0.0058 0.0048 0.0044 0.0060 0.0094 0.0126 0.0141 0.0141 0.0148 0.0157 0.0172 0.0197 0.0227 0.0245 0.0242 0.0233 0.0215 0.0205 0.0240 0.0321 +const double ColorTemp::JDC468_Blackvio101_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0076, 0.008, 0.0094, 0.01, 0.0116, 0.012, 0.0139, 0.015, 0.0158, 0.0158, 0.0158, 0.0156, 0.0152, 0.015, 0.0142, 0.014, 0.0130, 0.012, 0.0111, 0.01, 0.0094, 0.009, 0.0090, 0.009, + 0.0085, 0.008, 0.0069, 0.006, 0.0058, 0.0057, 0.0057, 0.0058, 0.0058, 0.005, 0.0048, 0.0045, 0.0044, 0.005, 0.0060, 0.008, 0.0094, 0.011, 0.0126, 0.013, 0.0141, 0.014, 0.0141, 0.0145, 0.0148, 0.015, 0.0157, 0.016, 0.0172, 0.018, 0.0197, 0.021, 0.0227, 0.023, 0.0245, 0.0241, + 0.0242, 0.0235, 0.0233, 0.022, 0.0215, 0.021, 0.0205, 0.022, 0.0240, 0.026, 0.0321, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//92 92 0.1652 0.2036 0.2848 0.4708 0.6230 0.6758 0.6761 0.6619 0.6502 0.6343 0.6195 0.6194 0.6169 0.5939 0.5677 0.5678 0.5695 0.5373 0.5105 0.5356 0.5778 0.6020 0.6073 0.6090 0.6124 0.6187 0.6295 0.6456 0.6603 0.6693 0.6716 0.6704 0.6660 0.6640 0.6749 0.7003 +const double ColorTemp::JDC468_Whitebl92_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1652, 0.19, 0.2036, 0.24, 0.2848, 0.35, 0.4708, 0.55, 0.6230, 0.65, 0.6758, 0.6759, 0.6761, 0.665, 0.6619, 0.655, 0.6502, 0.64, 0.6343, 0.62, 0.6195, 0.6194, 0.6194, 0.618, + 0.6169, 0.605, 0.5939, 0.58, 0.5677, 0.5677, 0.5678, 0.568, 0.5695, 0.555, 0.5373, 0.52, 0.5105, 0.52, 0.5356, 0.55, 0.5778, 0.60, 0.6020, 0.605, 0.6073, 0.608, 0.6090, 0.61, + 0.6124, 0.615, 0.6187, 0.62, 0.6295, 0.64, 0.6456, 0.65, 0.6603, 0.665, 0.6693, 0.67, 0.6716, 0.671, 0.6704, 0.669, 0.6660, 0.665, 0.6640, 0.67, 0.6749, 0.69, 0.7003, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//94 94 0.0506 0.0569 0.0678 0.0906 0.1088 0.1160 0.1184 0.1195 0.1203 0.1215 0.1293 0.1474 0.1609 0.1538 0.1415 0.1466 0.1535 0.1364 0.1248 0.1494 0.1871 0.2098 0.2163 0.2179 0.2217 0.2282 0.2372 0.2500 0.2631 0.2713 0.2739 0.2725 0.2678 0.2660 0.2770 0.3025 +const double ColorTemp::JDC468_Greyredbl94_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0506, 0.053, 0.0569, 0.06, 0.0678, 0.08, 0.0906, 0.1, 0.1088, 0.11, 0.1160, 0.117, 0.1184, 0.119, 0.1195, 0.12, 0.1203, 0.1205, 0.1215, 0.125, 0.1293, 0.133, 0.1474, 0.15, + 0.1609, 0.155, 0.1538, 0.145, 0.1415, 0.143, 0.1466, 0.15, 0.1535, 0.14, 0.1364, 0.13, 0.1248, 0.14, 0.1494, 0.17, 0.1871, 0.200, 0.2098, 0.21, 0.2163, 0.217, 0.2179, 0.22, + 0.2217, 0.222, 0.2282, 0.23, 0.2372, 0.24, 0.2500, 0.256, 0.2631, 0.27, 0.2713, 0.272, 0.2739, 0.273, 0.2725, 0.27, 0.2678, 0.267, 0.2660, 0.272, 0.2770, 0.28, 0.3025, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + + +//32 32 0.0933 0.1333 0.1967 0.3132 0.4096 0.4556 0.4763 0.4845 0.4870 0.4852 0.4868 0.4959 0.4971 0.4755 0.4407 0.4085 0.3643 0.2922 0.2161 0.1658 0.1370 0.1190 0.1040 0.0947 0.0949 0.1001 0.1106 0.1306 0.1536 0.1652 0.1609 0.1480 0.1291 0.1188 0.1370 0.1933 +const double ColorTemp::JDC468_Blue32_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0933, 0.11, 0.1333, 0.17, 0.1967, 0.265, 0.3132, 0.35, 0.4096, 0.43, 0.4556, 0.465, 0.4763, 0.48, 0.4845, 0.486, .4870, 0.486, 0.4852, 0.486, 0.4868, 0.49, 0.4959, 0.496, + 0.4971, 0.48, 0.4755, 0.46, 0.4407, 0.42, 0.4085, 0.38, 0.3643, 0.32, 0.2922, 0.25, 0.2161, 0.19, 0.1658, 0.15, 0.1370, 0.12, 0.1190, 0.11, 0.1040, 0.10, 0.0947, 0.0948, + 0.0949, 0.097, 0.1001, 0.105, 0.1106, 0.12, 0.1306, 0.14, 0.1536, 0.16, 0.1652, 0.162, 0.1609, 0.154, 0.1480, 0.135, 0.1291, 0.12, 0.1188, 0.125, 0.1370, 0.16, 0.1933, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + + +//236 236 0.0165 0.0259 0.0432 0.0684 0.0858 0.0895 0.0828 0.0683 0.0527 0.0365 0.0235 0.0177 0.0143 0.0096 0.0067 0.0063 0.0060 0.0052 0.0053 0.0061 0.0074 0.0083 0.0085 0.0080 0.0078 0.0076 0.0081 0.0095 0.0112 0.0121 0.0114 0.0100 0.0086 0.0083 0.0102 0.0180 +const double ColorTemp::JDC468_Blue236_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0165, 0.021, 0.0259, 0.035, 0.0432, 0.05, 0.0684, 0.075, 0.0858, 0.087, 0.0895, 0.085, 0.0828, 0.075, 0.0683, 0.058, 0.0527, 0.045, 0.0365, 0.031, 0.0235, 0.021, 0.0177, 0.016, + 0.0143, 0.012, 0.0096, 0.0085, 0.0067, 0.0065, 0.0063, 0.0062, 0.0060, 0.006, 0.0052, 0.0052, 0.0053, 0.006, 0.0061, 0.007, 0.0074, 0.008, 0.0083, 0.0084, 0.0085, 0.0083, + 0.0080, 0.008, 0.0078, 0.0077, 0.0076, 0.008, 0.0081, 0.009, 0.0095, 0.01, 0.0112, 0.012, 0.0121, 0.012, 0.0114, 0.011, 0.0100, 0.009, 0.0086, 0.0085, 0.0083, 0.009, 0.0102, 0.0015, 0.0180, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//300 300 0.0079 0.0085 0.0087 0.0092 0.0094 0.0093 0.0093 0.0095 0.0097 0.0110 0.0158 0.0544 0.1907 0.3753 0.4883 0.5181 0.5044 0.4631 0.4070 0.3594 0.3262 0.3054 0.2873 0.2772 0.2790 0.2875 0.3029 0.3292 0.3571 0.3719 0.3693 0.3573 0.3371 0.3253 0.3471 0.4087 +const double ColorTemp::JDC468_Gre300_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0079, 0.008, 0.0085, 0.0086, 0.0087, 0.009, 0.0092, 0.0093, 0.0094, 0.0094, 0.0093, 0.0093, 0.0093, 0.0094, 0.0095, 0.0096, 0.0097, 0.01, 0.0110, 0.012, 0.0158, 0.045, + 0.0544, 0.134, 0.1907, 0.25, 0.3753, 0.435, 0.4883, 0.505, 0.5181, 0.512, 0.5044, 0.485, 0.4631, 0.433, 0.4070, 0.387, 0.3594, 0.334, 0.3262, 0.31, 0.3054, 0.295, 0.2873, 0.292, + 0.2772, 0.278, 0.2790, 0.281, 0.2875, 0.291, 0.3029, 0.3121, 0.3292, 0.333, 0.3571, 0.365, 0.3719, 0.365, 0.3693, 0.362, 0.3573, 0.342, 0.3371, 0.325, 0.3253, 0.336, 0.3471, 0.367, 0.4087, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//340 340 0.0175 0.0320 0.0587 0.0989 0.1267 0.1322 0.1210 0.0978 0.0732 0.0487 0.0297 0.0212 0.0167 0.0106 0.0069 0.0064 0.0062 0.0051 0.0052 0.0061 0.0073 0.0081 0.0080 0.0076 0.0075 0.0072 0.0077 0.0088 0.0105 0.0112 0.0104 0.0092 0.0079 0.0075 0.0092 0.0167 +const double ColorTemp::JDC468_Blue340_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0175, 0.02, 0.0320, 0.04, 0.0587, 0.08, 0.0989, 0.11, 0.1267, 0.13, 0.1322, 0.125, 0.1210, 0.111, 0.0978, 0.08, 0.0732, 0.06, 0.0487, 0.04, 0.0297, 0.025, 0.0212, 0.02, + 0.0167, 0.012, 0.0106, 0.008, 0.0069, 0.0065, 0.0064, 0.0063, 0.0062, 0.0055, 0.0051, 0.0051, 0.0052, 0.006, 0.0061, 0.007, 0.0073, 0.008, 0.0081, 0.008, 0.0080, 0.0078, + 0.0076, 0.0076, 0.0075, 0.0074, 0.0072, 0.0075, 0.0077, 0.008, 0.0088, 0.0092, 0.0105, 0.011, 0.0112, 0.0108, 0.0104, 0.01, 0.0092, 0.008, 0.0079, 0.0075, 0.0075, 0.008, + 0.0092, 0.01, 0.0167, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//110 110 0.0954 0.1234 0.1702 0.2631 0.3363 0.3664 0.3799 0.3905 0.4002 0.4160 0.4582 0.5262 0.5798 0.5915 0.5742 0.5465 0.5035 0.4364 0.3581 0.2977 0.2589 0.2349 0.2152 0.2030 0.2032 0.2106 0.2249 0.2511 0.2799 0.2951 0.2915 0.2776 0.2552 0.2419 0.2638 0.3287 +const double ColorTemp::JDC468_Gree110_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0954, 0.11, 0.1234, 0.15, 0.1702, 0.22, 0.2631, 0.312, 0.3363, 0.352, 0.3664, 0.372, 0.3799, 0.385, 0.3905, 0.395, 0.4002, 0.41, 0.4160, 0.43, 0.4582, 0.511, 0.5262, 0.544, + 0.5798, 0.585, 0.5915, 0.585, 0.5742, 0.563, 0.5465, 0.523, 0.5035, 0.465, 0.4364, 0.389, 0.3581, 0.3334, 0.2977, 0.275, 0.2589, 0.245, 0.2349, 0.223, 0.2152, 0.211, 0.2030, 0.204, + 0.2032, 0.206, 0.2106, 0.221, 0.2249, 0.243, 0.2511, 0.271, 0.2799, 0.286, 0.2951, 0.294, 0.2915, 0.2876, 0.2776, 0.2657, 0.2552, 0.2456, 0.2419, 0.253, 0.2638, 0.275, 0.3287, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//457 457 0.0127 0.0126 0.0112 0.0110 0.0109 0.0106 0.0105 0.0104 0.0110 0.0136 0.0318 0.1246 0.3262 0.5051 0.5566 0.5181 0.4406 0.3429 0.2411 0.1647 0.1202 0.0968 0.0804 0.0709 0.0703 0.0747 0.0840 0.1023 0.1243 0.1355 0.1311 0.1179 0.0993 0.0884 0.1043 0.1590 +const double ColorTemp::JDC468_Gree457_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0127, 0.0126, 0.0126, 0.012, 0.0112, 0.011, 0.0110, 0.011, 0.0109, 0.0107, 0.0106, 0.0105, 0.0105, 0.0105, 0.0104, 0.0107, 0.0110, 0.0124, 0.0136, 0.0234, 0.0318, 0.09, + 0.1246, 0.22, 0.3262, 0.43, 0.5051, 0.52, 0.5566, 0.54, 0.5181, 0.476, 0.4406, 0.398, 0.3429, 0.296, 0.2411, 0.203, 0.1647, 0.142, 0.1202, 0.1, 0.0968, 0.09, 0.0804, 0.08, + 0.0709, 0.0708, 0.0703, 0.0723, 0.0747, 0.08, 0.0840, 0.09, 0.1023, 0.11, 0.1243, 0.13, 0.1355, 0.132, 0.1311, 0.12, 0.1179, 0.10, 0.0993, 0.09, 0.0884, 0.09, 0.1043, 0.12, 0.1590, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//241 241 0.0134 0.0106 0.0110 0.0108 0.0111 0.0114 0.0114 0.0115 0.0114 0.0122 0.0192 0.0731 0.2455 0.4689 0.6183 0.6852 0.7107 0.7112 0.7059 0.7177 0.7335 0.7445 0.7487 0.7523 0.7555 0.7606 0.7683 0.7779 0.7855 0.7915 0.7964 0.8011 0.8056 0.8097 0.8144 0.8239 +const double ColorTemp::JDC468_Yel241_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0134, 0.012, 0.0106, 0.011, 0.0110, 0.011, 0.0108, 0.011, 0.0111, 0.0112, 0.0114, 0.0114, 0.0114, 0.0114, 0.0115, 0.0114, 0.0114, 0.012, 0.0122, 0.017, 0.0192, 0.05, 0.0731, 0.12, + 0.2455, 0.355, 0.4689, 0.556, 0.6183, 0.645, 0.6852, 0.698, 0.7107, 0.711, 0.7112, 0.708, 0.7059, 0.712, 0.7177, 0.724, 0.7335, 0.742, 0.7445, 0.746, 0.7487, 0.751, 0.7523, 0.753, + 0.7555, 0.758, 0.760, 0.7626, 0.7683, 0.771, 0.7779, 0.782, 0.7855, 0.791, 0.7915, 0.794, 0.7964, 0.799, 0.8011, 0.804, 0.8056, 0.807, 0.8097, 0.811, 0.8144, 0.820, 0.8239, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//321 321 0.0247 0.0203 0.0182 0.0183 0.0182 0.0179 0.0182 0.0188 0.0199 0.0249 0.0529 0.1519 0.3116 0.4138 0.4410 0.4679 0.4906 0.4655 0.4517 0.5203 0.6238 0.6952 0.7270 0.7406 0.7469 0.7527 0.7607 0.7708 0.7786 0.7849 0.7897 0.7940 0.7984 0.8025 0.8069 0.8160 +const double ColorTemp::JDC468_Ora321_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0247, 0.022, 0.0203, 0.019, 0.0182, 0.0182, 0.0183, 0.0182, 0.0182, 0.018, 0.0179, 0.018, 0.0182, 0.0185, 0.0188, 0.019, 0.0199, 0.022, 0.0249, 0.035, 0.0529, 0.112, + 0.1519, 0.231, 0.3116, 0.365, 0.4138, 0.421, 0.4410, 0.451, 0.4679, 0.485, 0.4906, 0.473, 0.4655, 0.455, 0.4517, 0.487, 0.5203, 0.578, 0.6238, 0.667, 0.6952, 0.711, 0.7270, 0.735, + 0.7406, 0.743, 0.7469, .751, 0.7527, 0.756, 0.7607, 0.765, 0.7708, 0.774, 0.7786, 0.782, 0.7849, 0.786, 0.7897, 0.79, 0.7940, 0.794, 0.7984, 0.799, 0.8025, 0.805, 0.8069, 0.811, 0.8160, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//353 353 0.0260 0.0294 0.0331 0.0420 0.0490 0.0517 0.0541 0.0572 0.0608 0.0664 0.0813 0.1070 0.1291 0.1344 0.1317 0.1356 0.1390 0.1289 0.1195 0.1278 0.1420 0.1493 0.1500 0.1500 0.1527 0.1576 0.1651 0.1759 0.1870 0.1942 0.1963 0.1952 0.1910 0.1898 0.1995 0.2209 +const double ColorTemp::JDC468_Yellow353_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0260, 0.027, 0.0294, 0.031, 0.0331, 0.037, 0.0420, 0.045, 0.0490, 0.051, 0.0517, 0.053, 0.0541, 0.056, 0.0572, 0.059, 0.0608, 0.063, 0.0664, 0.072, 0.0813, 0.096, 0.1070, 0.112, + 0.1291, 0.132, 0.1344, 0.133, 0.1317, 0.134, 0.1356, 0.137, 0.1390, 0.134, 0.1289, 0.123, 0.1195, 0.122, 0.1278, 0.134, 0.1420, 0.145, 0.1493, 0.15, 0.1500, 0.15, 0.1500, 0.153, + 0.1527, 0.154, 0.1576, 0.162, 0.1651, 0.172, 0.1759, 0.182, 0.1870, 0.191, 0.1942, 0.195, 0.1963, 0.196, 0.1952, 0.193, 0.1910, 0.19, 0.1898, 0.195, 0.1995, 0.21, 0.2209, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//465 465 0.0388 0.0654 0.1020 0.1557 0.1880 0.1783 0.1434 0.1013 0.0684 0.0410 0.0219 0.0149 0.0117 0.0080 0.0062 0.0062 0.0062 0.0056 0.0063 0.0098 0.0230 0.0440 0.0577 0.0617 0.0645 0.0690 0.0766 0.0903 0.1064 0.1144 0.1113 0.1022 0.0898 0.0833 0.0962 0.1377 +const double ColorTemp::JDC468_Mag465_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0388, 0.05, 0.0654, 0.09, 0.1020, 0.12, 0.1557, 0.17, 0.1880, 0.182, 0.1783, 0.162, 0.1434, 0.12, 0.1013, 0.09, 0.0684, 0.05, 0.0410, 0.03, 0.0219, 0.02, 0.0149, 0.012, + 0.0117, 0.009, 0.0080, 0.007, 0.0062, 0.0062, 0.0062, 0.0062, 0.0062, 0.006, 0.0056, 0.006, 0.0063, 0.008, 0.0098, 0.018, 0.0230, 0.03, 0.0440, 0.05, 0.0577, 0.06, 0.0617, 0.062, + 0.0645, 0.065, 0.0690, 0.07, 0.0766, 0.08, 0.0903, 0.1, 0.1064, 0.111, 0.1144, 0.112, 0.1113, 0.104, 0.1022, 0.09, 0.0898, 0.088, 0.0833, 0.09, 0.0962, 0.111, 0.1377, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//333 333 0.1030 0.1508 0.2133 0.3191 0.3910 0.3895 0.3424 0.2770 0.2184 0.1593 0.1074 0.0825 0.0669 0.0430 0.0265 0.0278 0.0315 0.0212 0.0163 0.0355 0.0861 0.1365 0.1565 0.1589 0.1629 0.1713 0.1852 0.2099 0.2378 0.2517 0.2469 0.2322 0.2102 0.1973 0.2191 0.2855 +const double ColorTemp::JDC468_Mag333_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1030, 0.12, 0.1508, 0.18, 0.2133, 0.26, 0.3191, 0.364, 0.3910, 0.39, 0.3895, 0.375, 0.3424, 0.312, 0.2770, 0.251, 0.2184, 0.183, 0.1593, 0.122, 0.1074, 0.1, 0.0825, 0.07, + 0.0669, 0.05, 0.0430, 0.03, 0.0265, 0.027, 0.0278, 0.03, 0.0315, 0.025, 0.0212, 0.02, 0.0163, 0.03, 0.0355, 0.05, 0.0861, 0.112, 0.1365, 0.143, 0.1565, 0.157, 0.1589, 0.16, + 0.1629, 0.165, 0.1713, 0.175, 0.1852, 0.19, 0.2099, 0.221, 0.2378, 0.245, 0.2517, 0.25, 0.2469, 0.238, 0.2322, 0.224, 0.2102, 0.206, 0.1973, 0.209, 0.2191, 0.231, 0.2855, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + + +//203 203 0.0833 0.1329 0.2005 0.3099 0.3855 0.3916 0.3530 0.2926 0.2346 0.1741 0.1201 0.0934 0.0759 0.0495 0.0306 0.0308 0.0330 0.0214 0.0150 0.0256 0.0510 0.0723 0.0769 0.0748 0.0761 0.0813 0.0911 0.1087 0.1295 0.1399 0.1353 0.1232 0.1064 0.0971 0.1137 0.1677 +const double ColorTemp::JDC468_Mag203_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0833, 0.11, 0.1329, 0.16, 0.2005, 0.25, 0.3099, 0.342, 0.3855, 0.39, 0.3916, 0.374, 0.3530, 0.321, 0.2926, 0.267, 0.2346, 0.21, 0.1741, 0.153, 0.1201, 0.1, 0.0934, 0.08, + 0.0759, 0.06, 0.0495, 0.04, 0.0306, 0.0307, 0.0308, 0.032, 0.0330, 0.025, 0.0214, 0.018, 0.0150, 0.02, 0.0256, 0.04, 0.0510, 0.06, 0.0723, 0.074, 0.0769, 0.075, 0.0748, 0.076, + 0.0761, 0.08, 0.0813, 0.09, 0.0911, 0.1, 0.1087, 0.115, 0.1295, 0.134, 0.1399, 0.136, 0.1353, 0.131, 0.1232, 0.114, 0.1064, 0.1, 0.0971, 0.105, 0.1137, 0.123, 0.1677, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//blue cyan +const double ColorTemp::J570_BlueB6_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1611, 0.18, 0.1947, 0.23, 0.2639, 0.31, 0.3488, 0.37, 0.4022, 0.43, 0.4517, 0.49, 0.501, 0.52, 0.5317, 0.534, 0.5367, 0.53, 0.5246, 0.51, 0.4905, 0.47, 0.4510, 0.43, 0.4059, + 0.37, 0.3351, 0.31, 0.2612, 0.24, 0.2177, 0.205, 0.1883, 0.16, 0.1444, 0.123, 0.1065, 0.1, 0.0889, 0.085, 0.0811, 0.08, 0.0757, 0.071, 0.0695, 0.067, 0.0648, 0.064, 0.0634, + 0.063, 0.0637, 0.065, 0.0662, 0.068, 0.0714, 0.075, 0.0787, 0.08, 0.0828, 0.082, 0.0822, 0.08, 0.0781, 0.075, 0.0726, 0.071, 0.0698, 0.075, 0.0770, 0.08, 0.0973, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueB15_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2207, 0.2, 0.1897, 0.21, 0.2274, 0.25, 0.2805, 0.30, 0.3216, 0.34, 0.3596, 0.38, 0.4003, 0.42, 0.4438, 0.47, 0.4909, 0.52, 0.5469, 0.57, 0.6009, 0.62, 0.6414, 0.65, 0.6557, + 0.64, 0.6275, 0.59, 0.5675, 0.53, 0.5022, 0.48, 0.4348, 0.39, 0.3473, 0.31, 0.2613, 0.24, 0.2039, 0.18, 0.1696, 0.15, 0.1465, 0.13, 0.1243, 0.11, 0.1055, 0.10, 0.0952, 0.094, + 0.0911, 0.091, 0.0906, 0.092, 0.0940, 0.1, 0.1006, 0.104, 0.1075, 0.11, 0.1125, 0.113, 0.1146, 0.113, 0.1129, 0.112, 0.1120, 0.115, 0.1198, 0.13, 0.1431, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueC2_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2534, 0.25, 0.2454, 0.28, 0.3101, 0.33, 0.3567, 0.37, 0.3981, 0.41, 0.4258, 0.43, 0.4472, 0.45, 0.4574, 0.455, 0.4571, 0.45, 0.4468, 0.43, 0.4205, 0.41, 0.3947, 0.38, + 0.3647, 0.33, 0.3074, 0.27, 0.2471, 0.23, 0.2221, 0.22, 0.2128, 0.20, 0.1810, 0.17, 0.1510, 0.15, 0.1486, 0.15, 0.1546, 0.154, 0.1532, 0.15, 0.1426, 0.135, 0.1310, 0.125, + 0.1257, 0.125, 0.1246, 0.126, 0.1276, 0.13, 0.1360, 0.14, 0.1483, 0.15, 0.1566, 0.157, 0.1575, 0.155, 0.1535, 0.15, 0.1453, 0.143, 0.1403, 0.146, 0.1510, 0.16, 0.1855, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueC14_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.5697, 0.51, 0.4660, 0.49, 0.5000, 0.53, 0.5560, 0.58, 0.6072, 0.62, 0.6402, 0.65, 0.6632, 0.67, 0.6850, 0.69, 0.7069, 0.71, 0.7292, 0.74, 0.7488, 0.75, 0.7678, 0.77, 0.7786, + 0.775, 0.7721, 0.76, 0.7544, 0.75, 0.7394, 0.73, 0.7232, 0.70, 0.6889, 0.66, 0.6446, 0.63, 0.6171, 0.61, 0.5966, 0.58, 0.5743, 0.56, 0.5425, 0.53, 0.5093, 0.50, 0.4884, 0.48, + 0.4784, 0.475, 0.4774, 0.48, 0.4822, 0.49, 0.4944, 0.50, 0.5076, 0.51, 0.5186, 0.52, 0.5268, 0.53, 0.5303, 0.532, 0.5332, 0.54, 0.5454, 0.56, 0.5760, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueC16_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1909, 0.10, 0.0635, 0.06, 0.0554, 0.056, 0.0571, 0.057, 0.0580, 0.06, 0.0608, 0.063, 0.0662, 0.07, 0.0712, 0.072, 0.0742, 0.08, 0.0811, 0.09, 0.0985, 0.11, 0.1363, 0.15, + 0.1743, 0.173, 0.1720, 0.15, 0.1372, 0.12, 0.1005, 0.09, 0.0731, 0.06, 0.0509, 0.04, 0.0374, 0.036, 0.0322, 0.032, 0.0308, 0.031, 0.0309, 0.031, 0.0319, 0.033, + 0.0333, 0.034, 0.0349, 0.035, 0.0364, 0.037, 0.0377, 0.038, 0.0386, 0.0386, 0.0386, 0.0384, 0.0383, 0.038, 0.0377, 0.0377, 0.0378, 0.038, 0.0386, 0.04, 0.0417, 0.043, + 0.0461, 0.049, 0.0514, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueF1_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0060, 0.04, 0.0975, 0.11, 0.1297, 0.13, 0.1426, 0.15, 0.1538, 0.16, 0.1624, 0.165, 0.1684, 0.17, 0.1727, 0.175, 0.1761, 0.178, 0.1798, 0.18, 0.1863, 0.19, 0.1993, 0.20, + 0.2091, 0.205, 0.2041, 0.20, 0.1902, 0.19, 0.1836, 0.182, 0.1809, 0.17, 0.1675, 0.16, 0.1527, 0.151, 0.1511, 0.153, 0.1541, 0.154, 0.1545, 0.153, 0.1516, 0.15, + 0.1484, 0.149, 0.1489, 0.15, 0.1516, 0.153, 0.1563, 0.16, 0.1654, 0.17, 0.1766, 0.18, 0.1827, 0.182, 0.1817, 0.18, 0.1766, 0.17, 0.1693, 0.166, 0.1643, 0.17, 0.1726, 0.18, 0.1978, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueF2_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1613, 0.20, 0.2384, 0.30, 0.3288, 0.35, 0.4026, 0.43, 0.4630, 0.48, 0.4992, 0.51, 0.5294, 0.53, 0.5377, 0.53, 0.5261, 0.51, 0.4995, 0.48, 0.4513, 0.43, 0.4064, 0.38, + 0.3620, 0.31, 0.2935, 0.25, 0.2263, 0.21, 0.1977, 0.19, 0.1851, 0.17, 0.1519, 0.14, 0.1213, 0.12, 0.1149, 0.113, 0.1162, 0.114, 0.1133, 0.11, 0.1053, 0.10, 0.0976, 0.095, + 0.0947, 0.095, 0.0953, 0.097, 0.0985, 0.1, 0.1070, 0.11, 0.1188, 0.12, 0.1256, 0.124, 0.1246, 0.12, 0.1187, 0.11, 0.1099, 0.105, 0.1048, 0.11, 0.1145, 0.12, 0.145, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueF10_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3003, 0.20, 0.1512, 0.20, 0.2149, 0.25, 0.2709, 0.30, 0.3127, 0.32, 0.3534, 0.37, 0.4001, 0.42, 0.4456, 0.46, 0.4882, 0.51, 0.5343, 0.55, 0.5728, 0.58, 0.5968, 0.595, + 0.5932, 0.56, 0.5490, 0.51, 0.4756, 0.43, 0.3989, 0.37, 0.3256, 0.28, 0.2424, 0.21, 0.1691, 0.15, 0.1239, 0.10, 0.0998, 0.09, 0.0866, 0.08, 0.0752, 0.07, 0.0664, 0.065, + 0.0623, 0.062, 0.0616, 0.062, 0.0626, 0.064, 0.0662, 0.07, 0.0720, 0.075, 0.0767, 0.077, 0.0784, 0.078, 0.0770, 0.075, 0.0734, 0.073, 0.0716, 0.075, 0.0779, 0.08, 0.0968, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueF13_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3075, 0.22, 0.1514, 0.13, 0.1216, 0.125, 0.1264, 0.13, 0.1312, 0.14, 0.1448, 0.15, 0.1665, 0.17, 0.1850, 0.19, 0.1922, 0.195, 0.1970, 0.20, 0.2036, 0.21, + 0.2136, 0.213, 0.2122, 0.19, 0.1832, 0.16, 0.1412, 0.12, 0.1066, 0.09, 0.0810, 0.07, 0.0579, 0.05, 0.0422, 0.04, 0.0358, 0.035, 0.0336, 0.033, 0.0335, 0.0335, + 0.0339, 0.034, 0.0348, 0.035, 0.0358, 0.036, 0.0371, 0.038, 0.0384, 0.039, 0.0394, 0.04, 0.0405, 0.0404, 0.0405, 0.04, 0.0399, 0.039, 0.0387, 0.039, + 0.0396, 0.04, 0.0422, 0.045, 0.0467, 0.05, 0.0527, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueG9_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0937, 0.09, 0.0891, 0.07, 0.0621, 0.07, 0.0735, 0.08, 0.0842, 0.09, 0.0918, 0.1, 0.1009, 0.105, 0.1091, 0.11, 0.1158, 0.12, 0.1254, 0.13, 0.1452, 0.16, + 0.1805, 0.20, 0.2126, 0.213, 0.2128, 0.20, 0.1863, 0.17, 0.1550, 0.14, 0.1270, 0.1, 0.0973, 0.08, 0.0725, 0.06, 0.0585, 0.055, 0.0521, 0.05, 0.0486, 0.047, + 0.0458, 0.045, 0.0441, 0.044, 0.0439, 0.044, 0.0443, 0.045, 0.0455, 0.046, 0.0478, 0.049, 0.0500, 0.051, 0.0512, 0.051, 0.0511, 0.05, 0.0498, 0.049, + 0.0487, 0.049, 0.0495, 0.05, 0.0531, 0.055, 0.0620, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueG19_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1198, 0.12, 0.1376, 0.15, 0.1735, 0.18, 0.1903, 0.20, 0.2116, 0.22, 0.2322, 0.24, 0.2555, 0.27, 0.2802, 0.29, 0.3077, 0.32, 0.3420, 0.36, 0.3822, 0.41, + 0.4261, 0.43, 0.4565, 0.45, 0.4481, 0.43, 0.4109, 0.39, 0.3736, 0.35, 0.3368, 0.30, 0.2811, 0.25, 0.2228, 0.19, 0.1839, 0.17, 0.1592, 0.15, 0.1394, 0.12, + 0.1183, 0.1, 0.0998, 0.09, 0.0897, 0.085, 0.0851, 0.085, 0.0844, 0.085, 0.0863, 0.09, 0.0912, 0.095, 0.0977, 0.1, 0.1027, 0.105, 0.1064, 0.106, 0.1064, 0.106, + 0.1067, 0.11, 0.1135, 0.12, 0.1319, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueI5_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1096, 012, 0.1546, 0.16, 0.1855, 0.2, 0.2350, 0.25, 0.2720, 0.29, 0.3065, 0.32, 0.3404, 0.36, 0.3782, 0.4, 0.4229, 0.45, 0.4801, 0.51, 0.5416, 0.57, + 0.5962, 0.61, 0.6281, 0.62, 0.6144, 0.58, 0.5680, 0.55, 0.5211, 0.5, 0.4726, 0.43, 0.3991, 0.37, 0.3209, 0.29, 0.2674, 0.25, 0.2311, 0.22, 0.2000, 0.18, + 0.1656, 0.15, 0.1349, 0.12, 0.1161, 0.11, 0.1078, 0.105, 0.1046, 0.105, 0.1049, 0.107, 0.1097, 0.11, 0.1179, 0.12, 0.1264, 0.13, 0.1337, 0.135, 0.1378, 0.14, 0.1402, 0.145, 0.1474, 0.15, 0.1662, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueH15_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1047, 0.105, 0.1078, 0.12, 0.1550, 0.20, 0.2110, 0.23, 0.2487, 0.27, 0.2893, 0.31, 0.3386, 0.35, 0.3723, 0.375, 0.3773, 0.37, 0.3665, 0.35, 0.3373, 0.32, + 0.3037, 0.28, 0.2663, 0.24, 0.2106, 0.17, 0.1540, 0.13, 0.1200, 0.11, 0.0980, 0.08, 0.0721, 0.06, 0.0527, 0.05, 0.0448, 0.043, 0.0418, 0.041, 0.0403, 0.04, + 0.0390, 0.039, 0.0386, 0.039, 0.0392, 0.04, 0.0401, 0.041, 0.0413, 0.042, 0.0435, 0.044, 0.0456, 0.046, 0.0465, 0.046, 0.0457, 0.045, 0.0447, 0.044, 0.0435, 0.044, + 0.0442, 0.046, 0.0485, 0.05, 0.0576, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueI3_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1759, 0.21, 0.2647, 0.31, 0.3209, 0.36, 0.4249, 0.45, 0.4957, 0.52, 0.5536, 0.57, 0.6073, 0.62, 0.6431, 0.65, 0.6538, 0.653, 0.6506, 0.64, 0.6282, 0.61, + 0.5973, 0.57, 0.5559, 0.52, 0.4856, 0.43, 0.4033, 0.37, 0.3417, 0.32, 0.2901, 0.26, 0.2211, 0.19, 0.1585, 0.14, 0.1236, 0.11, 0.1062, 0.1, 0.0959, 0.09, + 0.0865, 0.085, 0.0801, 0.08, 0.0780, 0.079, 0.0788, 0.08, 0.0819, 0.09, 0.0903, 0.1, 0.1009, 0.105, 0.1073, 0.106, 0.1055, 0.1, 0.0998, 0.095, 0.0914, 0.09, 0.0863, 0.09, 0.0961, 0.11, 0.1250, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueI19_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3031, 0.28, 0.2588, 0.25, 0.2472, 0.26, 0.2738, 0.29, 0.3035, 0.31, 0.3271, 0.33, 0.3496, 0.36, 0.3724, 0.38, 0.3968, 0.41, 0.4252, 0.44, 0.4562, 0.47, + 0.4899, 0.5, 0.5147, 0.512, 0.5100, 0.49, 0.4841, 0.47, 0.4608, 0.45, 0.4373, 0.42, 0.3934, 0.37, 0.3420, 0.32, 0.3086, 0.30, 0.2850, 0.27, 0.2622, 0.25, + 0.2334, 0.22, 0.2054, 0.19, 0.1887, 0.185, 0.1806, 0.18, 0.1791, 0.18, 0.1825, 0.185, 0.1909, 0.2, 0.2018, 0.21, 0.2108, 0.213, 0.2164, 0.217, 0.2180, 0.219, + 0.2198, 0.22, 0.2295, 0.24, 0.2562, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueJ4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0290, 0.02, 0.0598, 0.1, 0.1278, 0.15, 0.1764, 0.19, 0.2052, 0.21, 0.2331, 0.25, 0.2642, 0.28, 0.2906, 0.3, 0.3093, 0.31, 0.3263, 0.33, 0.3413, 0.35, + 0.3550, 0.354, 0.3532, 0.33, 0.3206, 0.3, 0.2685, 0.24, 0.2212, 0.2, 0.1802, 0.16, 0.1346, 0.1, 0.0965, 0.08, 0.0751, 0.07, 0.0646, 0.06, 0.0586, 0.055, + 0.0535, 0.052, 0.0504, 0.05, 0.0491, 0.0495, 0.0493, 0.05, 0.0504, 0.051, 0.0529, 0.053, 0.0565, 0.057, 0.0591, 0.059, 0.0593, 0.058, 0.0576, 0.056, 0.0556, 0.055, + 0.0553, 0.06, 0.0602, 0.065, 0.0727, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueJ6_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3039, 0.3, 0.2571, 0.27, 0.2960, 0.31, 0.3446, 0.37, 0.3937, 0.41, 0.4405, 0.47, 0.4884, 0.51, 0.5337, 0.56, 0.5771, 0.59, 0.6221, 0.64, 0.6589, 0.67, + 0.6808, 0.68, 0.6770, 0.65, 0.6375, 0.59, 0.5693, 0.53, 0.4933, 0.45, 0.4160, 0.39, 0.3223, 0.26, 0.2338, 0.21, 0.1761, 0.16, 0.1447, 0.13, 0.1258, 0.12, + 0.1090, 0.1, 0.0961, 0.09, 0.0899, 0.089, 0.0877, 0.088, 0.0892, 0.09, 0.0949, 0.1, 0.1045, 0.11, 0.1115, 0.112, 0.1131, 0.112, 0.1115, 0.11, 0.1065, 0.105, + 0.1033, 0.11, 0.1122, 0.12, 0.1400, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_BlueJ11_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1274, 0.1, 0.091, 0.08, 0.0656, 0.064, 0.0604, 0.06, 0.0570, 0.06, 0.0604, 0.061, 0.0644, 0.065, 0.0668, 0.07, 0.0700, 0.072, 0.0754, 0.08, 0.0874, 0.1, + 0.1111, 0.12, 0.1327, 0.132, 0.1313, 0.12, 0.1127, 0.1, 0.0931, 0.08, 0.0758, 0.06, 0.0580, 0.05, 0.0449, 0.04, 0.0385, 0.036, 0.0360, 0.035, 0.0351, 0.035, + 0.0351, 0.035, 0.0355, 0.036, 0.0371, 0.0375, 0.0379, 0.038, 0.0388, 0.04, 0.0406, 0.041, 0.0414, 0.0415, 0.0416, 0.041, 0.0409, 0.04, + 0.0398, 0.04, 0.0397, 0.04, 0.0424, 0.043, 0.0458, 0.05, 0.0522, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_BlueJ13_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2802, 0.28, 0.2820, 0.3, 0.3461, 0.4, 0.4357, 0.45, 0.5027, 0.53, 0.5528, 0.58, 0.6001, 0.62, 0.6402, 0.66, 0.6730, 0.69, 0.7019, 0.71, 0.7216, 0.725, + 0.7288, 0.72, 0.7172, 0.7, 0.6779, 0.65, 0.6160, 0.58, 0.5478, 0.52, 0.4751, 0.43, 0.3816, 0.35, 0.2882, 0.25, 0.2260, 0.2, 0.1905, 0.18, 0.1699, 0.16, + 0.1514, 0.14, 0.1361, 0.13, 0.1295, 0.129, 0.1281, 0.13, 0.1309, 0.135, 0.1408, 0.145, 0.1546, 0.16, 0.1644, 0.165, 0.1656, 0.162, + 0.1606, 0.155, 0.1516, 0.15, 0.1461, 0.15, 0.1585, 0.16, 0.1975, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_BlueK5_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1727, 0.18, 0.1814, 0.19, 0.1931, 0.21, 0.2379, 0.25, 0.2728, 0.29, 0.3054, 0.31, 0.3396, 0.36, 0.3780, 0.4, 0.4243, 0.45, 0.4829, 0.51, 0.5464, 0.57, + 0.6024, 0.62, 0.6348, 0.63, 0.6209, 0.59, 0.5741, 0.55, 0.5258, 0.49, 0.4755, 0.43, 0.4003, 0.37, 0.3204, 0.3, 0.2656, 0.25, 0.2282, 0.21, 0.1966, 0.17, + 0.1624, 0.15, 0.1322, 0.12, 0.1137, 0.11, 0.1052, 0.105, 0.1025, 0.102, 0.1028, 0.105, 0.1075, 0.11, 0.1155, 0.12, 0.1237, 0.13, 0.1310, 0.133, + 0.1352, 0.136, 0.1370, 0.14, 0.1444, 0.15, 0.1632, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_BlueN1_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1936, 0.194, 0.1942, 0.22, 0.2692, 0.29, 0.3102, 0.33, 0.3535, 0.37, 0.3885, 0.4, 0.4230, 0.44, 0.4594, 0.48, 0.5011, 0.52, 0.5510, 0.58, 0.6022, 0.62, 0.6479, 0.66, + 0.6748, 0.67, 0.6640, 0.65, 0.6268, 0.61, 0.5919, 0.58, 0.5549, 0.53, 0.4921, 0.46, 0.4209, 0.39, 0.3723, 0.35, 0.3364, 0.32, 0.3005, 0.28, 0.2569, 0.23, 0.2154, 0.19, + 0.1897, 0.18, 0.1768, 0.175, 0.1723, 0.173, 0.1722, 0.175, 0.1785, 0.18, 0.1892, 0.19, 0.2017, 0.21, 0.2134, 0.22, 0.2202, 0.222, 0.2247, 0.23, 0.2333, 0.24, 0.2566, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_BlueN4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.3138, 0.25, 0.2038, 0.19, 0.1787, 0.18, 0.1840, 0.2, 0.2109, 0.23, 0.2400, 0.26, 0.2715, 0.29, 0.3075, 0.33, 0.3534, 0.39, 0.4149, 0.45, 0.4863, 0.52, + 0.5520, 0.57, 0.5904, 0.58, 0.5750, 0.55, 0.5198, 0.48, 0.4602, 0.43, 0.3997, 0.36, 0.3199, 0.27, 0.2411, 0.2, 0.1883, 0.17, 0.1553, 0.14, 0.1307, 0.12, + 0.1062, 0.1, 0.0859, 0.08, 0.0746, 0.07, 0.0697, 0.069, 0.0678, 0.068, 0.0683, 0.07, 0.0715, 0.075, 0.0765, 0.08, 0.0818, 0.085, 0.0862, 0.087, 0.0885, 0.089, + 0.0899, 0.09, 0.0951, 0.1, 0.1090, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_BlueO19_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1231, 0.13, 0.1348, 0.12, 0.1152, 0.12, 0.1368, 0.15, 0.1627, 0.17, 0.1860, 0.2, 0.2130, 0.23, 0.2462, 0.26, 0.2859, 0.31, 0.3425, 0.38, 0.4152, 0.45, 0.4902, 0.51, + 0.5386, 0.53, 0.5259, 0.49, 0.4652, 0.43, 0.3950, 0.35, 0.3266, 0.28, 0.2469, 0.21, 0.1750, 0.15, 0.1293, 0.12, 0.1033, 0.09, 0.0859, 0.08, 0.0703, 0.06, 0.0578, 0.055, + 0.0521, 0.05, 0.0494, 0.049, 0.0492, 0.049, 0.0498, 0.05, 0.0522, 0.053, 0.0558, 0.058, 0.0590, 0.06, 0.0615, 0.062, 0.0625, 0.063, 0.0634, 0.065, 0.0670, 0.07, 0.0776, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_BlueU8_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0776, 0.1, 0.1703, 0.23, 0.2942, 0.35, 0.4022, 0.45, 0.4795, 0.51, 0.5389, 0.56, 0.5968, 0.6, 0.6362, 0.64, 0.6512, 0.652, 0.6523, 0.64, 0.6340, 0.62, 0.6052, 0.58, + 0.5645, 0.53, 0.4952, 0.45, 0.4124, 0.38, 0.3457, 0.32, 0.2883, 0.25, 0.2164, 0.19, 0.1529, 0.14, 0.1168, 0.1, 0.0983, 0.09, 0.0883, 0.08, 0.0798, 0.075, 0.0735, 0.073, + 0.0720, 0.072, 0.0726, 0.074, 0.0757, 0.08, 0.0830, 0.09, 0.0930, 0.095, 0.0989, 0.097, 0.0971, 0.095, 0.0911, 0.085, 0.0832, 0.08, 0.0795, 0.082, 0.0877, 0.09, 0.1140, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//N8 +const double ColorTemp::J570_NeuN8_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0632, -0.04, -0.0244, 0.01, 0.0125, 0.02, 0.0294, 0.03, 0.0326, 0.033, 0.0352, 0.036, 0.0361, 0.037, 0.0374, 0.0374, 0.0373, 0.038, 0.0378, 0.039, 0.0397, 0.04, + 0.0421, 0.043, 0.0431, 0.042, 0.0417, 0.04, 0.0391, 0.038, 0.0378, 0.037, 0.0368, 0.035, 0.0347, 0.034, 0.0335, 0.034, 0.0341, 0.035, 0.0350, 0.035, 0.0355, 0.036, + 0.0357, 0.0357, 0.0358, 0.036, 0.0369, 0.037, 0.0372, 0.0376, 0.0378, 0.038, 0.0388, 0.039, 0.0397, 0.04, 0.0400, 0.0395, 0.0394, 0.039, 0.0386, 0.0385, 0.0384, 0.039, + 0.0395, 0.04, 0.0415, 0.043, 0.0448, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuN9_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0573, 0.054, 0.0516, 0.053, 0.0548, 0.05, 0.0401, 0.041, 0.0424, 0.043, 0.0449, 0.046, 0.0467, 0.047, 0.0473, 0.0473, 0.0474, 0.048, 0.0483, 0.05, 0.0508, 0.053, + 0.0558, 0.057, 0.0584, 0.058, 0.0550, 0.05, 0.0495, 0.048, 0.0468, 0.0465, 0.0460, 0.044, 0.0430, 0.042, 0.0411, 0.042, 0.0425, 0.044, 0.0457, 0.046, 0.0473, 0.0474, + 0.0475, 0.0475, 0.0474, 0.0475, 0.0476, 0.048, 0.0487, 0.049, 0.0499, 0.05, 0.0515, 0.052, 0.0533, 0.054, 0.0544, 0.054, 0.0539, 0.053, 0.0526, 0.052, 0.0512, 0.0515, + 0.0515, 0.053, 0.0538, 0.056, 0.0597, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuO8_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0014, 0.02, 0.0806, 0.07, 0.0673, 0.07, 0.0854, 0.09, 0.0901, 0.095, 0.0960, 0.098, 0.0992, 0.1, 0.1017, 0.102, 0.1030, 0.104, 0.1052, 0.107, 0.1098, 0.11, + 0.1176, 0.12, 0.1230, 0.12, 0.1176, 0.11, 0.1071, 0.105, 0.1032, 0.103, 0.1032, 0.1, 0.0963, 0.09, 0.0899, 0.09, 0.0939, 0.095, 0.1007, 0.102, 0.1037, 0.104, + 0.1029, 0.102, 0.1014, 0.102, 0.1020, 0.103, 0.1039, 0.105, 0.1072, 0.11, 0.1134, 0.12, 0.1207, 0.122, 0.1245, 0.123, 0.1236, 0.121, 0.1205, 0.12, 0.1158, 0.115, + 0.1132, 0.115, 0.1185, 0.12, 0.1345, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuO11_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2926, 0.2, 0.1863, 0.16, 0.1428, 0.14, 0.1322, 0.134, 0.1396, 0.14, 0.1450, 0.146, 0.1498, 0.15, 0.1527, 0.155, 0.1554, 0.157, 0.1583, 0.16, 0.1631, 0.17, + 0.1754, 0.18, 0.1841, 0.18, 0.1761, 0.17, 0.1600, 0.155, 0.1549, 0.155, 0.1555, 0.15, 0.1449, 0.14, 0.1352, 0.14, 0.1414, 0.15, 0.1519, 0.153, 0.1568, 0.156, + 0.1556, 0.154, 0.1534, 0.154, 0.1547, 0.156, 0.1573, 0.16, 0.1622, 0.17, 0.1713, 0.18, 0.1823, 0.185, 0.1886, 0.188, 0.1873, 0.183, 0.1829, 0.18, 0.1753, 0.174, + 0.1716, 0.175, 0.1800, 0.2, 0.2039, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuD5_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0840, 0.1, 0.1627, 0.18, 0.1934, 0.2, 0.2234, 0.23, 0.2430, 0.25, 0.2547, 0.26, 0.2618, 0.264, 0.2651, 0.265, 0.2655, 0.2655, 0.2659, 0.266, 0.2674, 0.27, + 0.2776, 0.28, 0.2841, 0.27, 0.2654, 0.25, 0.2351, 0.23, 0.2246, 0.225, 0.2247, 0.22, 0.2074, 0.20, 0.1913, 0.20, 0.2029, 0.21, 0.2231, 0.23, 0.2337, 0.233, + 0.2327, 0.23, 0.2291, 0.23, 0.2305, 0.232, 0.2344, 0.24, 0.2417, 0.25, 0.2553, 0.26, 0.2724, 0.28, 0.2816, 0.28, 0.2797, 0.276, 0.2720, 0.27, + 0.2603, 0.26, 0.2536, 0.26, 0.2660, 0.28, 0.3027, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_NeuE11_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1699, 0.18, 0.1971, 0.21, 0.2276, 0.23, 0.2483, 0.25, 0.2690, 0.28, 0.2820, 0.29, 0.2916, 0.295, 0.2992, 0.3, 0.3064, 0.31, 0.3151, 0.32, 0.3301, 0.34, 0.3593, 0.37, + 0.3873, 0.39, 0.3913, 0.38, 0.3793, 0.375, 0.3723, 0.37, 0.3678, 0.35, 0.3482, 0.33, 0.3249, 0.32, 0.3188, 0.319, 0.3188, 0.318, 0.3179, 0.315, 0.3128, 0.31, + 0.3086, 0.31, 0.3105, 0.312, 0.3148, 0.313, 0.3222, 0.33, 0.3364, 0.34, 0.3535, 0.36, 0.3629, 0.362, 0.3621, 0.36, 0.3549, 0.35, 0.3444, 0.34, 0.3394, 0.35, 0.3511, 0.36, 0.3862, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_NeuK16_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.5837, 0.45, 0.4117, 0.43, 0.4427, 0.47, 0.5098, 0.52, 0.5451, 0.55, 0.5698, 0.57, 0.5828, 0.59, 0.5939, 0.6, 0.6045, 0.607, 0.6140, 0.62, 0.6219, 0.63, 0.6330, 0.64, + 0.6419, 0.643, 0.6440, 0.642, 0.6417, 0.64, 0.6379, 0.631, 0.6309, 0.62, 0.6154, 0.6, 0.5911, 0.58, 0.5736, 0.57, 0.5612, 0.56, 0.5539, 0.55, 0.5462, 0.543, + 0.5406, 0.542, 0.5418, 0.543, 0.5452, 0.55, 0.5529, 0.56, 0.5654, 0.57, 0.5806, 0.584, 0.5888, 0.589, 0.5898, 0.586, 0.5858, 0.58, 0.5796, 0.577, 0.5770, 0.58, 0.5883, 0.59, 0.6190, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuM3_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2659, 0.255, 0.2526, 0.26, 0.2616, 0.27, 0.2854, 0.29, 0.3088, 0.31, 0.3231, 0.33, 0.3336, 0.34, 0.3421, 0.345, 0.347, 0.35, 0.3542, 0.36, 0.3647, 0.37, + 0.3854, 0.4, 0.4041, 0.402, 0.4012, 0.39, 0.3856, 0.38, 0.3769, 0.375, 0.3725, 0.36, 0.3525, 0.34, 0.3286, 0.325, 0.3247, 0.326, 0.3279, 0.328, 0.3285, 0.325, + 0.3240, 0.322, 0.3202, 0.321, 0.3220, 0.323, 0.3267, 0.33, 0.3342, 0.34, 0.3487, 0.35, 0.3667, 0.37, 0.3761, 0.375, 0.3746, 0.37, 0.3670, 0.36, 0.3559, 0.35, 0.3498, 0.35, 0.3630, 0.37, 0.3998, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuN18_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1284, 0.11, 0.1090, 0.13, 0.1573, 0.17, 0.1837, 0.19, 0.1971, 0.2, 0.2059, 0.21, 0.2143, 0.22, 0.2213, 0.225, 0.2271, 0.23, 0.2341, 0.24, 0.2487, 0.26, 0.2764, 0.29, + 0.3025, 0.303, 0.3052, 0.3, 0.2919, 0.29, 0.2843, 0.283, 0.2800, 0.27, 0.2612, 0.24, 0.2394, 0.235, 0.2339, 0.234, 0.2340, 0.233, 0.2326, 0.23, 0.2277, 0.225, + 0.2235, 0.224, 0.2246, 0.226, 0.2282, 0.23, 0.2349, 0.24, 0.2477, 0.25, 0.2632, 0.27, 0.2714, 0.271, 0.2702, 0.27, 0.2637, 0.26, 0.2538, 0.25, 0.2479, 0.25, 0.2589, 0.26, 0.2918, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuQ1_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0610, 0.06, 0.0592, 0.04, 0.0339, 0.04, 0.0338, 0.034, 0.0350, 0.036, 0.0363, 0.037, 0.0380, 0.038, 0.0383, 0.0383, 0.0385, 0.04, 0.0408, 0.042, 0.0451, 0.05, + 0.0524, 0.055, 0.0589, 0.058, 0.0585, 0.055, 0.0529, 0.05, 0.0456, 0.04, 0.0390, 0.035, 0.0330, 0.03, 0.0286, 0.028, 0.0275, 0.0276, 0.0275, 0.0278, 0.0279, 0.028, + 0.0289, 0.03, 0.0304, 0.031, 0.0320, 0.032, 0.0328, 0.033, 0.0341, 0.0345, 0.0346, 0.0346, 0.0347, 0.034, 0.0341, 0.034, 0.0336, 0.034, 0.0340, 0.035, + 0.0351, 0.036, 0.0373, 0.038, 0.0411, 0.042, 0.0446, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuS7_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1447, 0.06, 0.0448, 0.042, 0.0411, 0.03, 0.0282, 0.028, 0.0270, 0.029, 0.0298, 0.03, 0.0319, 0.032, 0.0331, 0.0333, 0.0335, 0.036, 0.0361, 0.038, 0.0403, 0.045, + 0.0493, 0.05, 0.0599, 0.06, 0.0636, 0.062, 0.0606, 0.06, 0.0547, 0.05, 0.0488, 0.045, 0.0421, 0.04, 0.0366, 0.035, 0.0335, 0.033, 0.0323, 0.032, 0.0320, 0.032, + 0.0321, 0.0322, 0.0324, 0.033, 0.0333, 0.034, 0.0345, 0.035, 0.0356, 0.036, 0.0364, 0.037, 0.0372, 0.037, 0.0367, 0.0365, 0.0363, 0.0364, + 0.0361, 0.0362, 0.0363, 0.037, 0.0376, 0.04, 0.0412, 0.042, 0.0450, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuV10_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1439, 0.07, 0.0583, 0.04, 0.0372, 0.037, 0.0362, 0.035, 0.0344, 0.034, 0.0340, 0.035, 0.0351, 0.036, 0.0361, 0.0361, 0.0361, 0.037, 0.0377, 0.039, 0.0404, 0.042, + 0.0450, 0.047, 0.0483, 0.048, 0.0475, 0.045, 0.0436, 0.04, 0.0387, 0.036, 0.0343, 0.03, 0.0299, 0.028, 0.0271, 0.027, 0.0262, 0.0262, 0.0262, 0.0267, 0.0269, 0.027, + 0.0283, 0.029, 0.0299, 0.03, 0.0308, 0.031, 0.0319, 0.032, 0.0331, 0.0333, 0.0337, 0.0337, 0.0337, 0.0333, 0.0332, 0.0332, 0.0331, 0.0331, 0.0331, 0.034, + 0.0341, 0.035, 0.0371, 0.038, 0.0399, 0.041, 0.0432, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuW18_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.4685, 0.45, 0.4262, 0.5, 0.5061, 0.55, 0.5898, 0.6, 0.6487, 0.66, 0.6781, 0.68, 0.6947, 0.7, 0.7070, 0.71, 0.7185, 0.72, 0.7294, 0.73, 0.7383, 0.74, 0.7499, 0.75, + 0.7582, 0.758, 0.7582, 0.755, 0.7531, 0.75, 0.7484, 0.745, 0.7422, 0.73, 0.7263, 0.72, 0.7033, 0.7, 0.6913, 0.69, 0.6820, 0.68, 0.6738, 0.67, 0.6628, 0.66, + 0.6512, 0.65, 0.6462, 0.645, 0.6448, 0.645, 0.6485, 0.65, 0.6569, 0.66, 0.6698, 0.67, 0.6781, 0.68, 0.6822, 0.682, 0.6820, 0.682, 0.6815, 0.682, 0.6820, 0.69, 0.6907, 0.7, 0.7152, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuZ14_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.2765, 0.2, 0.1352, 0.13, 0.1222, 0.121, 0.1206, 0.13, 0.1300, 0.134, 0.1357, 0.14, 0.1407, 0.142, 0.1455, 0.147, 0.1485, 0.15, 0.1539, 0.16, 0.1648, 0.17, + 0.1844, 0.2, 0.2015, 0.202, 0.2024, 0.2, 0.1922, 0.19, 0.1868, 0.185, 0.1841, 0.18, 0.1715, 0.16, 0.1566, 0.155, 0.1536, 0.154, 0.1545, 0.154, 0.1536, 0.151, + 0.1500, 0.148, 0.1471, 0.1472, 0.1478, 0.15, 0.1505, 0.153, 0.1552, 0.16, 0.1641, 0.17, 0.1751, 0.18, 0.1813, 0.181, 0.1801, 0.18, + 0.1757, 0.17, 0.1683, 0.165, 0.1642, 0.17, 0.1728, 0.18, 0.1970, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::J570_NeuC18_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0555, 0.055, 0.0545, 0.055, 0.0585, 0.058, 0.0577, 0.056, 0.0554, 0.056, 0.0564, 0.058, 0.0590, 0.06, 0.0611, 0.062, 0.0638, 0.065, 0.0685, 0.07, 0.0797, 0.09, + 0.1009, 0.11, 0.1222, 0.124, 0.1298, 0.127, 0.1257, 0.123, 0.1208, 0.12, 0.1164, 0.11, 0.1067, 0.1, 0.0954, 0.09, 0.0895, 0.088, 0.0862, 0.085, 0.0834, 0.082, + 0.0806, 0.08, 0.0782, 0.078, 0.0780, 0.078, 0.0789, 0.08, 0.0813, 0.084, 0.0858, 0.09, 0.0911, 0.092, 0.0944, 0.093, 0.0938, 0.092, 0.0914, 0.09, 0.0878, 0.086, + 0.0858, 0.09, 0.0903, 0.1, 0.1037, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuD17_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1980, 0.1, 0.0793, 0.06, 0.0578, 0.05, 0.0476, 0.046, 0.0454, 0.046, 0.0471, 0.048, 0.0499, 0.05, 0.0518, 0.052, 0.0533, 0.055, 0.0574, 0.06, 0.0676, 0.07, + 0.0897, 0.1, 0.1129, 0.113, 0.1140, 0.1, 0.0958, 0.08, 0.0743, 0.06, 0.0566, 0.05, 0.0422, 0.04, 0.0332, 0.03, 0.0297, 0.0295, 0.0292, 0.0293, 0.0294, 0.03, + 0.0306, 0.031, 0.0319, 0.032, 0.0339, 0.034, 0.0353, 0.036, 0.0363, 0.037, 0.0370, 0.037, 0.0372, 0.037, 0.0368, 0.0365, 0.0363, 0.036, + 0.0360, 0.037, 0.0376, 0.039, 0.0406, 0.042, 0.0448, 0.046, 0.0499, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuJ11_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1274, 0.1, 0.0916, 0.08, 0.0656, 0.061, 0.0604, 0.06, 0.0570, 0.06, 0.0604, 0.062, 0.0644, 0.065, 0.0668, 0.069, 0.0700, 0.072, 0.0754, 0.08, 0.0874, 0.1, + 0.1111, 0.12, 0.1327, 0.132, 0.1313, 0.12, 0.1127, 0.1, 0.0931, 0.08, 0.0758, 0.06, 0.0580, 0.05, 0.0449, 0.04, 0.0385, 0.037, 0.0360, 0.036, 0.0351, 0.035, + 0.0351, 0.0354, 0.0355, 0.036, 0.0371, 0.0375, 0.0379, 0.038, 0.0388, 0.04, 0.0406, 0.041, 0.0414, 0.0415, 0.0416, 0.041, 0.0409, 0.04, 0.0398, 0.0397, 0.0397, 0.04, + 0.0424, 0.043, 0.0458, 0.048, 0.0522, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::J570_NeuL4_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0348, 0.05, 0.0700, 0.09, 0.1043, 0.11, 0.1320, 0.14, 0.1505, 0.16, 0.1622, 0.17, 0.1721, 0.18, 0.1805, 0.185, 0.1877, 0.19, 0.1955, 0.2, 0.2068, 0.21, + 0.2226, 0.23, 0.2350, 0.235, 0.2352, 0.23, 0.2251, 0.22, 0.2128, 0.2, 0.1990, 0.18, 0.1761, 0.16, 0.1494, 0.13, 0.1296, 0.12, 0.1171, 0.11, 0.1089, 0.105, + 0.1010, 0.1, 0.0949, 0.093, 0.0926, 0.093, 0.0937, 0.095, 0.0961, 0.1, 0.1020, 0.11, 0.1104, 0.112, 0.1150, 0.115, 0.1155, 0.113, 0.1123, 0.11, + 0.1070, 0.105, 0.1040, 0.11, 0.1110, 0.12, 0.1323, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +const double ColorTemp::Colorlab_n72_n2_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0116, 0.01, 0.0171, 0.05, 0.0625, 0.08, 0.1486, 0.16, 0.1963, 0.2, 0.2409, 0.26, 0.2974, 0.31, 0.3468, 0.36, 0.3790, 0.39, 0.4075, 0.41, 0.4216, 0.43, + 0.4399, 0.47, 0.4878, 0.50, 0.5589, 0.57, 0.5882, 0.57, 0.5566, 0.52, 0.5030, 0.46, 0.4451, 0.42, 0.3928, 0.37, 0.3625, 0.35, 0.3396, 0.29, 0.2670, 0.15, + 0.1028, 0.05, -0.0397, -0.08, -0.1151, -0.12, -0.1464, -0.15, -0.1582, -0.16, -0.1609, -0.16, -0.1581, -0.155, -0.1556, -0.156, + -0.1582, -0.16, -0.1621, -0.165, -0.1683, -0.17, -0.1719, -0.17, -0.1696, -0.165, -0.1623, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::Colorlab_10_n70_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0964, 0.1, 0.1534, 0.2, 0.2437, 0.33, 0.4663, 0.5, 0.6005, 0.65, 0.6958, 0.75, 0.8010, 0.83, 0.8598, 0.858, 0.8579, 0.85, 0.8432, 0.83, 0.8102, 0.79, + 0.7607, 0.7, 0.6760, 0.6, 0.5530, 0.5, 0.4212, 0.3, 0.2974, 0.2, 0.1839, 0.1, 0.0743, 0.03, -0.0208, -0.05, -0.0747, -0.08, -0.0913, -0.05, -0.0458, 0.03, + 0.0806, 0.1, 0.1936, 0.2, 0.2556, 0.27, 0.2816, 0.29, 0.2925, 0.3, 0.3033, 0.31, 0.3175, 0.32, 0.3257, 0.325, 0.3246, 0.32, + 0.3187, 0.31, 0.3082, 0.305, 0.3014, 0.304, 0.3059, 0.31, 0.3253, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::Colorlab_n33_n70_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0615, 0.1, 0.1219, 0.2, 0.2179, 0.3, 0.4397, 0.5, 0.5722, 0.6, 0.6714, 0.7, 0.7834, 0.8, 0.8535, 0.86, 0.8647, 0.864, 0.8642, 0.864, 0.8429, 0.82, + 0.8035, 0.75, 0.7316, 0.7, 0.6238, 0.55, 0.4996, 0.45, 0.3717, 0.3, 0.2487, 0.2, 0.1299, 0.06, 0.0272, 0.01, -0.0315, -0.04, -0.0557, -0.051, + -0.0519, -0.03, -0.0234, 0.001, 0.0041, 0.01, 0.0201, 0.021, 0.0269, 0.028, 0.0298, 0.03, 0.0371, 0.04, 0.0497, 0.05, 0.0578, 0.056, + 0.0557, 0.05, 0.0490, 0.04, 0.0374, 0.03, 0.0299, 0.03, 0.0348, 0.04, 0.0537, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::Colorlab_n8_n74_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0603, 0.08, 0.1069, 0.15, 0.1810, 0.25, 0.3573, 0.4, 0.4634, 0.5, 0.5406, 0.6, 0.6266, 0.65, 0.6772, 0.679, 0.6800, 0.68, 0.6732, 0.66, 0.6511, 0.63, + 0.6136, 0.6, 0.5444, 0.5, 0.4415, 0.4, 0.3317, 0.3, 0.2286, 0.2, 0.1336, 0.1, 0.0425, 0.01, -0.0360, -0.05, -0.0807, -0.09, -0.0967, -0.08, + -0.0761, -0.05, -0.0119, 0.02, 0.0462, 0.05, 0.0784, 0.08, 0.0919, 0.095, 0.0974, 0.1, 0.1046, 0.11, 0.1152, 0.12, 0.1217, 0.121, + 0.1205, 0.12, 0.1155, 0.11, 0.1067, 0.104, 0.1010, 0.103, 0.1047, 0.11, 0.1199, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::Colorlab_19_n69_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1281, 0.16, 0.1941, 0.24, 0.2982, 0.4, 0.5607, 0.65, 0.7192, 0.8, 0.8299, 0.9, 0.9517, 1.0, 1.0174, 1.014, 1.0115, 1.0, 0.9899, 0.96, 0.9475, 0.91, + 0.8877, 0.82, 0.7902, 0.7, 0.6508, 0.57, 0.5008, 0.45, 0.3595, 0.3, 0.2302, 0.15, 0.1049, 0.02, -0.0045, -0.03, -0.0662, -0.07, -0.0832, -0.05, -0.0161, 0.05, + 0.1648, 0.2, 0.3257, 0.37, 0.4137, 0.43, 0.4506, 0.46, 0.4661, 0.47, 0.4801, 0.49, 0.4974, 0.5, 0.5072, 0.505, 0.5062, 0.5, 0.4995, 0.49, 0.4876, 0.48, + 0.4799, 0.48, 0.4849, 0.49, 0.5081, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::Colorlab_n80_10_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0247, -0.01, -0.0057, 0.01, 0.0242, 0.05, 0.0736, 0.08, 0.0996, 0.1, 0.1281, 0.14, 0.1660, 0.19, 0.2037, 0.21, 0.2337, 0.25, 0.2618, 0.27, 0.2793, 0.29, + 0.3024, 0.32, 0.3564, 0.4, 0.4360, 0.44, 0.4788, 0.47, 0.4655, 0.45, 0.4308, 0.42, 0.3920, 0.37, 0.3564, 0.34, 0.3357, 0.32, 0.3167, 0.28, 0.2434, 0.1, + 0.0745, 0.01, -0.0725, -0.09, -0.1506, -0.18, -0.1831, -0.19, -0.1955, -0.195, -0.1995, -0.199, -0.1989, -0.198, + -0.1976, -0.198, -0.1999, -0.2, -0.2027, -0.208, -0.2070, -0.208, -0.2094, -0.208, -0.2080, -0.207, -0.2038, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +const double ColorTemp::Colorlab_n80_26_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + -0.0325, -0.03, -0.0203, -0.01, -0.0012, 0.01, 0.0228, 0.03, 0.0332, 0.04, 0.0506, 0.06, 0.0762, 0.09, 0.1069, 0.12, 0.1370, 0.15, 0.1666, 0.17, 0.1877, 0.2, + 0.2174, 0.25, 0.2849, 0.33, 0.3849, 0.4, 0.4477, 0.45, 0.4509, 0.44, 0.4305, 0.42, 0.4049, 0.39, 0.3806, 0.37, 0.3664, 0.35, 0.3495, 0.29, 0.2724, 0.1, + 0.0921, 0.01, -0.0651, -0.09, -0.1489, -0.15, -0.1837, -0.19, -0.1970, -0.2, -0.2020, -0.202, -0.2029, -0.203, -0.2026, -0.204, + -0.2047, -0.205, -0.2069, -0.208, -0.2099, -0.21, -0.2115, -0.21, -0.2106, -0.209, -0.2086, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; /* * Name: XYZtoCorColorTemp.c @@ -1022,6 +2607,197 @@ void ColorTemp::cieCAT02(double Xw, double Yw, double Zw, double &CAM02BB00, dou } +void ColorTemp::cieCAT02float(float Xw, float Yw, float Zw, float &CAM02BB00, float &CAM02BB01, float &CAM02BB02, float &CAM02BB10, float &CAM02BB11, float &CAM02BB12, float &CAM02BB20, float &CAM02BB21, float &CAM02BB22, float adap) +{ + +// CIECAT02 - J.Desmis January 2012 review September 2012 + const float whiteD50p[3] = {0.9646019585, 1.0, 0.8244507152}; //calculate with these tools + + float cam_dest[3] = {0., 0., 0.}; + float cam_orig[3] = {0., 0., 0.}; + const float CAT02[3][3] = {{0.7328, 0.4296, -0.1624},//CAT02 2002 + { -0.7036, 1.6975, 0.0061}, + {0.0030, 0.0136, 0.9834} + }; + const float INVCAT02[3][3] = {{1.09612382083551, -0.278869000218287, 0.182745179382773}, //Inverse CAT02 + {0.454369041975359, 0.4735331543070412, 0.0720978037172291}, + { -0.009627608738442936, -0.00569803121611342, 1.01532563995454} + }; + + float inv_white_orig[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + float intermed[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + + float intermed_2[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + float CAM02[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + float D = adap; + + //white destination Wd : RT use always D50 + cam_dest[0] = CAT02[0][0] * whiteD50p[0] + CAT02[0][1] * whiteD50p[1] + CAT02[0][2] * whiteD50p[2]; //Cone response RoD + cam_dest[1] = CAT02[1][0] * whiteD50p[0] + CAT02[1][1] * whiteD50p[1] + CAT02[1][2] * whiteD50p[2]; //GaD + cam_dest[2] = CAT02[2][0] * whiteD50p[0] + CAT02[2][1] * whiteD50p[1] + CAT02[2][2] * whiteD50p[2]; //BeD + + //origin white Ws : A, D65, custom, etc. + cam_orig[0] = CAT02[0][0] * Xw + CAT02[0][1] * Yw + CAT02[0][2] * Zw; //Cone response RoS + cam_orig[1] = CAT02[1][0] * Xw + CAT02[1][1] * Yw + CAT02[1][2] * Zw; + cam_orig[2] = CAT02[2][0] * Xw + CAT02[2][1] * Yw + CAT02[2][2] * Zw; + + //inverse white + inv_white_orig[0][0] = 1. / cam_orig[0]; // 1/RoS + inv_white_orig[1][1] = 1. / cam_orig[1]; // 1/GaS + inv_white_orig[2][2] = 1. / cam_orig[2]; // 1/BeS + + //intermediates computation + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3 ; j++) { + intermed[i][j] = inv_white_orig[i][i] * CAT02[i][j]; + } + + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3 ; j++) { + intermed_2[i][j] = cam_dest[i] * intermed[i][j]; + } + + //and CAM02 + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3; j++) + for (int k = 0; k < 3; k++) { + CAM02[i][j] += INVCAT02[i][k] * intermed_2[k][j]; + } + + //adaptation jdc : slightly different from CIECAM02 : Rc=(Yw(D/Rw)+(1-D))*R , but it's work ! true at 0 and 1 + CAM02[1][1] = (CAM02[1][1] - 1.0) * D + 1.0; + CAM02[0][0] = (CAM02[0][0] - 1.0) * D + 1.0; + CAM02[2][2] = (CAM02[2][2] - 1.0) * D + 1.0; +// CAM02[1][1] *= D; +// CAM02[0][0] *= D; +// CAM02[2][2] *= D; + CAM02[0][1] *= D; + CAM02[0][2] *= D; + CAM02[1][0] *= D; + CAM02[1][2] *= D; + CAM02[2][0] *= D; + CAM02[2][1] *= D; + //CAT02 matrix with D adaptation + CAM02BB00 = CAM02[0][0]; + CAM02BB01 = CAM02[0][1]; + CAM02BB02 = CAM02[0][2]; + CAM02BB10 = CAM02[1][0]; + CAM02BB11 = CAM02[1][1]; + CAM02BB12 = CAM02[1][2]; + CAM02BB20 = CAM02[2][0]; + CAM02BB21 = CAM02[2][1]; + CAM02BB22 = CAM02[2][2]; + +} + +void ColorTemp::icieCAT02float(float Xw, float Yw, float Zw, float &iCAM02BB00, float &iCAM02BB01, float &iCAM02BB02, float &iCAM02BB10, float &iCAM02BB11, float &iCAM02BB12, float &iCAM02BB20, float &iCAM02BB21, float &iCAM02BB22, float adap) +{ + +// CIECAT02 - J.Desmis January 2012 review September 2017 + const float whiteD50p[3] = {0.9646019585, 1.0, 0.8244507152}; //calculate with these tools + + float cam_dest[3] = {0., 0., 0.}; + float cam_orig[3] = {0., 0., 0.}; + const float CAT02[3][3] = {{0.7328, 0.4296, -0.1624},//CAT02 2002 + { -0.7036, 1.6975, 0.0061}, + {0.0030, 0.0136, 0.9834} + }; + const float INVCAT02[3][3] = {{1.09612382083551, -0.278869000218287, 0.182745179382773}, //Inverse CAT02 + {0.454369041975359, 0.4735331543070412, 0.0720978037172291}, + { -0.009627608738442936, -0.00569803121611342, 1.01532563995454} + }; + + float inv_white_orig[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + float intermed[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + + float intermed_2[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + float INVCAM02[3][3] = {{0., 0., 0.}, + {0., 0., 0.}, + {0., 0., 0.} + }; + float D = adap / 2.; + + //white destination Wd : RT use always D50 + cam_dest[0] = INVCAT02[0][0] * whiteD50p[0] + INVCAT02[0][1] * whiteD50p[1] + INVCAT02[0][2] * whiteD50p[2]; //Cone reponse RoD + cam_dest[1] = INVCAT02[1][0] * whiteD50p[0] + INVCAT02[1][1] * whiteD50p[1] + INVCAT02[1][2] * whiteD50p[2]; //GaD + cam_dest[2] = INVCAT02[2][0] * whiteD50p[0] + INVCAT02[2][1] * whiteD50p[1] + INVCAT02[2][2] * whiteD50p[2]; //BeD + + //origin white Ws : A, D65, custom, etc. + cam_orig[0] = INVCAT02[0][0] * Xw + INVCAT02[0][1] * Yw + INVCAT02[0][2] * Zw; //Cone reponse RoS + cam_orig[1] = INVCAT02[1][0] * Xw + INVCAT02[1][1] * Yw + INVCAT02[1][2] * Zw; + cam_orig[2] = INVCAT02[2][0] * Xw + INVCAT02[2][1] * Yw + INVCAT02[2][2] * Zw; +// cam_orig[0] = CAT02[0][0] * Xw + CAT02[0][1] * Yw + CAT02[0][2] * Zw; //Cone reponse RoS +// cam_orig[1] = CAT02[1][0] * Xw + CAT02[1][1] * Yw + CAT02[1][2] * Zw; + // cam_orig[2] = CAT02[2][0] * Xw + CAT02[2][1] * Yw + CAT02[2][2] * Zw; + + //inverse white + inv_white_orig[0][0] = 1. / cam_orig[0]; // 1/RoS + inv_white_orig[1][1] = 1. / cam_orig[1]; // 1/GaS + inv_white_orig[2][2] = 1. / cam_orig[2]; // 1/BeS + + //intermediates computation + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3 ; j++) { + // intermed[i][j] = inv_white_orig[i][i] * INVCAT02[i][j]; + intermed[i][j] = inv_white_orig[i][i] * CAT02[i][j]; + } + + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3 ; j++) { + intermed_2[i][j] = cam_dest[i] * intermed[i][j]; + } + + //and CAM02 + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3; j++) + for (int k = 0; k < 3; k++) { + INVCAM02[i][j] += INVCAT02[i][k] * intermed_2[k][j]; + } + + //adaptation jdc : slightly different from CIECAM02 : Rc=(Yw(D/Rw)+(1-D))*R , but it's work ! true at 0 and 1 + INVCAM02[0][0] = (INVCAM02[0][0] - 1.0) * D + 1.0; + INVCAM02[2][2] = (INVCAM02[2][2] - 1.0) * D + 1.0; + INVCAM02[0][1] *= D; + INVCAM02[0][2] *= D; + INVCAM02[1][0] *= D; + INVCAM02[1][2] *= D; + INVCAM02[2][0] *= D; + INVCAM02[2][1] *= D; + //CAT02 matrix with D adaptation + iCAM02BB00 = INVCAM02[0][0]; + iCAM02BB01 = INVCAM02[0][1]; + iCAM02BB02 = INVCAM02[0][2]; + iCAM02BB10 = INVCAM02[1][0]; + iCAM02BB11 = INVCAM02[1][1]; + iCAM02BB12 = INVCAM02[1][2]; + iCAM02BB20 = INVCAM02[2][0]; + iCAM02BB21 = INVCAM02[2][1]; + iCAM02BB22 = INVCAM02[2][2]; + +} + + void ColorTemp::temp2mulxyz (double temp, const std::string &method, double &Xxyz, double &Zxyz) { double x, y, z; @@ -1645,6 +3421,452 @@ double ColorTemp::daylight_spect(double wavelength, double m1, double m2) return (s0[wlm] + m1 * s1[wlm] + m2 * s2[wlm]); } +//tempxy : return x and y of xyY for 200 or more refreence color, and for T temperature from 2000K to 12000K +// we can change step for temperature and increase number for T > 7500K if necessary +//these values Temp, x, y are references for all calculations and very precise. +//copyright J.Desmis august 2017 and june 2018 +void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, float **Tz, float **Ta, float **Tb, float **TL, double *TX, double *TY, double *TZ, const procparams::WBParams & wbpar) +{ + const double* spec_colorforxcyc[] = {//color references + JDC468_BluH10_spect, JDC468_BluD6_spect, ColorchechCyaF3_spect, JDC468_BluM5_spect, // 0 3 + ColorGreenM25_spect, JDC468_GreK7_spect, ColabSky42_0_m24_spect, ColabSky60_0_m31_spect, ColorchechBluC150_m5_m22_spect,//8 + JDC468_GreQ7_spect, ColorchechDCBluN881_m7_m14_spect, ColorchechGreB3_spect, ColorchechPurD2_spect, //12 + ColorchechSGBlaN3_6_spect, ColorchechGraC4_67_spect, JDC468_K15_87greyspect,//15 + JDC468_GraK14_44_spect, ColorGreenalsi_spect, Fictif_61greyspect, ColorchechGreD1_spect,//19 + ColorchechWhiA496_spect, JDC468_GreA10_spect, JDC468_GreI8_spect,//22 + ColabSkin91_4_14_spect, JDC468_PurE24_spect, //24 + ColorchechSGSkiK285_11_17_spect, ColorchechGreE2_spect, ColorchechMagE3_spect, //27 + ColorchechSkiB166_18_18_spect, ColabSkin70_7_32_spect, ColorchechSGSkiF763_14_26_spect,//30 + ColorchechSkiA138_13_14_spect, ColabSkin57_22_18_spect, JDC468_YelN10_spect,//33 + ColabSkin35_15_17_spect, ColabSkin40_17_17_spect, ColorRedkurttu_spect, ColorYellowkeltano_spect, ColorchechYelD3_spect, JDC468_OraO18_spect,//39 + JDC468_GreN7_spect, JDC468_RedG21va_spect, JDC468_OraD17_spect,//42 + ColorchechredC3_spect, JDC468_RedI9_spect, ColorRedpetunia_spect, ColorchechOraA2_spect,//46 + ColabSkin87_8_8_spect, ColabSkin89_8_21_spect, ColabSkin75_8_4_spect, ColabSkin75_10_33_spect,//50 + ColabSkin65_33_11_spect, ColabSkin65_7_24_spect, ColabSkin57_19_6_spect, ColabSkin57_4_19_spect, ColabSkin57_10_28_spect, ColabSkin40_17_6_spect,//56 + ColabSkin26_18_18_spect, ColabSkin90_m1_20_spect, ColorRedlupiini_spect, ColorRedhevosminttu_spect, //60 + ColorRedneilikka_spect, ColorRedpelagornia_spect, ColorRedtalvio_spect, ColorBrownpoimulehti_spect, ColorOrangetuntematon_spect,//65 + ColorOrangetlehmus_spect, ColorOrangvaahtera_spect, ColorBrownlehmus_spect, ColorBrownuotiosammal_spect,//69 + ColorBlacksoil_spect, ColorGraynahjajaekaelae_spect, //71 + ColorGreennuotisammal_spect, ColorGreenleskenlehti_spect, ColorGreenlinnunkaali_spect, //74 + ColorGreenpelto_spect, ColorGreenrodvoikukka, ColorGreenlehmus, ColorGreenlinden, ColorYellowlehmus, ColorYellowsuikeroalpi, //80 + ColorYellowpensashanhikki1, ColorYellowpensashanhikki2, ColorBluehiidenvirna, ColorBluekurkkuyrtti, //84 + ColorPinksiankaersaemoe, ColorVioletharakankello, ColorVioletalsikeapila, ColorVioletakilleija, ColorOrangekehaekukka,//89 + ColorRedpihlaja, ColorVioletpetunia, ColorVioletorvokki, ColorBluesinisievikki, ColorBlueiisoppi, ColorBluelobelia, //95 + ColorWhiteojaka, ColorWhitepetunia, ColorWhitepelargonia, ColorWhitepaeivaen, JDC468_B14_75Redspect,//100 + ColorGreenkoriste, ColorGreenpoimulehti, ColorGreenhopeapaju, //103 + ColorReduuden, ColorRedpajuan, ColorRedjaloan, ColorBlueukon, ColorBlueorvokki, ColorBluemalvikki, //109 + ColorBlackmaito, ColorOrangpihlaja, ColorBlackpihlaja, //112 + ColorViolA1_spect, ColorViolA4_spect, ColorViolA6_spect, ColorBlueSkyK3_spect, ColorBlueSkyK9_spect, //117 + ColorBlueSkyC4_spect, ColorBlueSkyC14_spect, ColorBlueSkyE4_spect, //120 + ColorBlueSkyM1_spect, ColorBlueSky2B1_spect, ColorBlueSkyT7_spect, //123 + ColorBlueSkyU19_spect, ColorBlueSkyU2_spect, ColorBlueSkyT17_spect, //126 + ColorBlackM8_spect, ColorBlackM12_spect, ColorBlackM13_spect, ColorWhite2B12_spect, ColorWhite2B14_spect, //131 + JDC468_Blackred97_spect, JDC468_Blackredbl443_spect, JDC468_Blackbl27_spect, JDC468_Blackbl28_spect, //135 + JDC468_Blackgr214_spect, JDC468_Blackbl436_spect, JDC468_Whitebl455_spect, JDC468_Blackvio101_spect, JDC468_Whitebl92_spect, JDC468_Greyredbl94_spect, //141 + JDC468_Blue32_spect, JDC468_Blue236_spect, JDC468_Gre300_spect, //144 + JDC468_Blue340_spect, JDC468_Gree110_spect, JDC468_Gree457_spect, JDC468_Yel241_spect, JDC468_Ora321_spect, JDC468_Yellow353_spect, JDC468_Mag465_spect, //151 + JDC468_Mag333_spect, JDC468_Mag203_spect, J570_BlueB6_spect, J570_BlueB15_spect, J570_BlueC2_spect, J570_BlueC14_spect, J570_BlueC16_spect,//158 + J570_BlueF1_spect, J570_BlueF2_spect, J570_BlueF10_spect, J570_BlueF13_spect, J570_BlueG9_spect, J570_BlueG19_spect, J570_BlueI5_spect,//165 + J570_BlueI3_spect, J570_BlueI19_spect, J570_BlueJ4_spect, J570_BlueJ6_spect, J570_BlueJ11_spect, J570_BlueK5_spect, //171 + J570_BlueN1_spect, J570_BlueN4_spect, J570_BlueO19_spect, J570_BlueU8_spect, J570_NeuN8_spect,//176 + J570_NeuN9_spect, J570_NeuO8_spect, J570_NeuO11_spect, J570_NeuD5_spect,//180 + J570_NeuE11_spect, J570_NeuK16_spect, J570_NeuM3_spect, J570_NeuN18_spect, + J570_NeuQ1_spect, J570_NeuS7_spect, + J570_NeuV10_spect, J570_NeuW18_spect, J570_NeuZ14_spect, //189 + J570_NeuC18_spect, J570_NeuD17_spect, J570_NeuJ11_spect, J570_NeuL4_spect, Colorlab_n72_n2_spect, + Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect + }; + + + typedef struct WbTxyz { + double Tem; + double XX; + double ZZ; + } WbTxyz; + //probbaly can be "passed" with rawimagesource.cc but I don't know how to do. + WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after + {2001., 1.273842, 0.145295}, + {2101., 1.244008, 0.167533}, + {2201., 1.217338, 0.190697}, + {2301., 1.193444, 0.214632}, + {2401., 1.171996, 0.239195}, + {2501., 1.152883, 0.264539}, + {2605., 1.134667, 0.290722}, + {2655., 1.126659, 0.303556}, + {2705., 1.119049, 0.316446}, + {2755., 1.111814, 0.329381}, + {2803., 1.105381, 0.342193}, + {2856., 1.098258, 0.355599}, + {2910., 1.091550, 0.369645}, + {2960., 1.085649, 0.382655}, + {3003., 1.080982, 0.394258}, + {3050., 1.075727, 0.406057}, + {3103., 1.070277, 0.419815}, + {3153., 1.065384, 0.432769}, + {3203., 1.060906, 0.446161}, + {3250., 1.056535, 0.457806}, + {3303., 1.052034, 0.471422}, + {3353., 1.047990, 0.484218}, + {3400., 1.044547, 0.496719}, + {3450., 1.040667, 0.508891}, + {3500., 1.037145, 0.521523}, + {3550., 1.033783, 0.534090}, + {3600., 1.030574, 0.546590}, + {3650., 1.027510, 0.559020}, + {3699., 1.024834, 0.571722}, + {3801., 1.019072, 0.596102}, + {3851., 1.016527, 0.608221}, + {3902., 1.014244, 0.621136}, + {3952., 1.011729, 0.632447}, + {4002., 0.996153, 0.609518}, + {4052., 0.993720, 0.620805}, + {4102., 0.993908, 0.631520}, + {4152., 0.989179, 0.643262}, + {4202., 0.989283, 0.653999}, + {4252., 0.985039, 0.665536}, + {4302., 0.985067, 0.676288}, + {4352., 0.981271, 0.687599}, + {4402., 0.981228, 0.698349}, + {4452., 0.977843, 0.709425}, + {4502., 0.977736, 0.720159}, + {4552., 0.974728, 0.730993}, + {4602., 0.974562, 0.741698}, + {4652., 0.971899, 0.752284}, + {4702., 0.971681, 0.762949}, + {4752., 0.969335, 0.773285}, + {4802., 0.969069, 0.783899}, + {4827., 0.967570, 0.788836}, + {4852., 0.967011, 0.793982}, + {4877., 0.966465, 0.799108}, + {4902., 0.965933, 0.804214}, + {4927., 0.965414, 0.809229}, + {4952., 0.964908, 0.814366}, + {4977., 0.964415, 0.819412}, + {5002., 0.963934, 0.824438}, + {5027., 0.963465, 0.829444}, + {5052., 0.963008, 0.834429}, + {5077., 0.962563, 0.839395}, + {5102., 0.962129, 0.844339}, + {5127., 0.961706, 0.849263}, + {5152., 0.961294, 0.854166}, + {5177., 0.960893, 0.859049}, + {5202., 0.960501, 0.863911}, + {5252., 0.959749, 0.873572}, + {5302., 0.959313, 0.883815}, + {5352., 0.958361, 0.892644}, + {5402., 0.957903, 0.902793}, + {5452., 0.957116, 0.911379}, + {5502., 0.956639, 0.921431}, + {5552., 0.956002, 0.929779}, + {5602., 0.955509, 0.939728}, + {5652., 0.955008, 0.947842}, + {5702., 0.954502, 0.957685}, + {5752., 0.954124, 0.965569}, + {5802., 0.953608, 0.975303}, + {5852., 0.953342, 0.982963}, + {5902., 0.952818, 0.992584}, + {5952., 0.952652, 1.000025}, + {6002., 0.952122, 1.009532}, + {6052., 0.952047, 1.016759}, + {6102., 0.951514, 1.026149}, + {6152., 0.951520, 1.033168}, + {6202., 0.950985, 1.042439}, + {6252., 0.951064, 1.049256}, + {6302., 0.950530, 1.058406}, + {6352., 0.950674, 1.065027}, + {6402., 0.950143, 1.074055}, + {6452., 0.950345, 1.080484}, + {6502., 0.950201, 1.088097}, + {6552., 0.950070, 1.095633}, + {6602., 0.949952, 1.103094}, + {6652., 0.949846, 1.110479}, + {6702., 0.949752, 1.119138}, + {6752., 0.949668, 1.125027}, + {6802., 0.949596, 1.132190}, + {6902., 0.949033, 1.147691}, + {7002., 0.949402, 1.160129}, + {7152., 0.949348, 1.180429}, + {7301., 0.948896, 1.201432}, + {7451., 0.949434, 1.219076}, + {7601., 0.949099, 1.239061}, + {7751., 0.949729, 1.255559}, + {7901., 0.949498, 1.274460}, + {8151., 0.950361, 1.300912}, + {8301., 0.950253, 1.318464}, + {8451., 0.950966, 1.332651}, + {8601., 0.950941, 1.349261}, + {8801., 0.951772, 1.367421}, + {9001., 0.951969, 1.387639}, + {9201., 0.952784, 1.404422}, + {9401., 0.953081, 1.423213}, + {9901., 0.954537, 1.464134}, + {10501., 0.956321, 1.508623}, + {11001., 0.957747, 1.541281}, + {12001., 0.960440, 1.601019} + }; + + int N_c = sizeof(spec_colorforxcyc) / sizeof(spec_colorforxcyc[0]); //number of color + int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point + typedef struct XYZref { + double Xref; + double Yref; + double Zref; + } XYZref; + XYZref Refxyz[N_c + 1]; + typedef struct XYZrefcat02 { + double Xrefcat; + double Yrefcat; + double Zrefcat; + } XYZrefcat02; + XYZrefcat02 Refxyzcat02[N_c + 1]; + + for (int i = 0; i < N_c; i++) { + Refxyz[i].Xref = 0.f; + Refxyz[i].Yref = 0.f; + Refxyz[i].Zref = 0.f; + Refxyzcat02[i].Xrefcat = 0.f; + Refxyzcat02[i].Yrefcat = 0.f; + Refxyzcat02[i].Zrefcat = 0.f; + } + + + struct chrom { + float chroab; + float chroa; + float chrob; + int nn; + float L; + bool operator()(const chrom& lchro, const chrom& rchro) + { + return lchro.chroab < rchro.chroab; + } + + } ; + + // chrom wbchro[N_c + 1]; + + double tempw = 5000.; + + if (separated) { + tempw = Txyz[repref].Tem; + // tempw = 5004.; + + if (tempw <= INITIALBLACKBODY) { + // float aa = 0.f; + // float bb = 0.f; + + for (int i = 0; i < N_c; i++) { + spectrum_to_color_xyz_blackbody(spec_colorforxcyc[i], tempw, TX[i], TY[i], TZ[i]); + /* float XX = TX[i] * 65535.f; + float YY = TY[i] * 65535.f; + float ZZ = TZ[i] * 65535.f; + float L, a, b; + Color::XYZ2Lab(XX, YY, ZZ, L, a, b);//only to see Lab values in console + printf("N=%i L=%f a=%f b=%f\n", i, L / 327.68f, a / 327.68f, b / 327.68f); + aa += (a / 327.68f); + bb += (b / 327.68f); + */ + } + + /* + aa /= N_c; + bb /= N_c; + printf("aa=%f bb=%f\n", aa, bb); + */ + // } + + } else { + double m11, m22, x_DD, y_DD, interm2; + + if (tempw <= 7000) { + x_DD = -4.6070e9 / (tempw * tempw * tempw) + 2.9678e6 / (tempw * tempw) + 0.09911e3 / tempw + 0.244063; + } else { + x_DD = -2.0064e9 / (tempw * tempw * tempw) + 1.9018e6 / (tempw * tempw) + 0.24748e3 / tempw + 0.237040; + } + + y_DD = -3.0 * x_DD * x_DD + 2.87 * x_DD - 0.275; + //calculate D -daylight in function of s0, s1, s2 and temp ==> x_D y_D + //S(lamda)=So(lambda)+m1*s1(lambda)+m2*s2(lambda) + interm2 = (0.0241 + 0.2562 * x_DD - 0.734 * y_DD); + m11 = (-1.3515 - 1.7703 * x_DD + 5.9114 * y_DD) / interm2; + m22 = (0.03 - 31.4424 * x_DD + 30.0717 * y_DD) / interm2; + // float aa = 0.f; + // float bb = 0.f; + + for (int i = 0; i < N_c; i++) { + spectrum_to_color_xyz_daylight(spec_colorforxcyc[i], m11, m22, TX[i], TY[i], TZ[i]); + +/* float XX = TX[i] * 65535.f; + float YY = TY[i] * 65535.f; + float ZZ = TZ[i] * 65535.f; + float L, a, b; + Color::XYZ2Lab(XX, YY, ZZ, L, a, b);//only to see Lab values in console + // printf("N=%i L=%f a=%f b=%f\n", i, L / 327.68f, a / 327.6 8f, b / 327.68f); + aa += (a / 327.68f); + bb += (b / 327.68f); + wbchro[i].chroab = (sqrt(SQR(a) + SQR(b))) / 327.68f; + wbchro[i].chroa = a / 327.68f; + wbchro[i].chrob = b / 327.68f; + wbchro[i].nn = i; +*/ + + + } +/* + std::sort(wbchro, wbchro + N_c + 1, wbchro[0]); + float ab5 = 0.f; + int n5 = 0; + float ab15 = 0.f; + int n15 = 0; + float ab30 = 0.f; + int n30 = 0; + float ab50 = 0.f; + int n50 = 0; + float ab70 = 0.f; + int n70 = 0; + float ab120 = 0.f; + int n120 = 0; + + for (int i = 0; i < N_c; i++) { + if (wbchro[i].chroab < 5.f) { + ab5 += (wbchro[i].chroa + wbchro[i].chrob); + n5++; + } else if (wbchro[i].chroab < 15.f) { + ab15 += (wbchro[i].chroa + wbchro[i].chrob); + n15++; + } else if (wbchro[i].chroab < 30.f) { + ab30 += (wbchro[i].chroa + wbchro[i].chrob); + n30++; + } else if (wbchro[i].chroab < 50.f) { + ab50 += (wbchro[i].chroa + wbchro[i].chrob); + n50++; + } else if (wbchro[i].chroab < 70.f) { + ab70 += (wbchro[i].chroa + wbchro[i].chrob); + n70++; + } else if (wbchro[i].chroab < 120.f) { + ab120 += (wbchro[i].chroa + wbchro[i].chrob); + n120++; + } + + printf("N=%i nn=%i chr=%f cha=%f chb=%f\n", i, wbchro[i].nn, wbchro[i].chroab, wbchro[i].chroa, wbchro[i].chrob); + } + + printf("ab5=%f n5=%i\n", ab5 / n5, n5); + printf("ab15=%f n15=%i\n", ab15 / n15, n15); + printf("ab30=%f n30=%i\n", ab30 / n30, n30); + printf("ab50=%f n50=%i\n", ab50 / n50, n50); + printf("ab70=%f n70=%i\n", ab70 / n70, n70); + printf("ab120=%f n120=%i\n", ab120 / n120, n120); + aa /= N_c; + bb /= N_c; + printf("aa=%f bb=%f\n", aa, bb); + //very low 15 --, 16 -+, 17 + -, 18 +-, 20 ++, 22 -+, 73 ++, 98 ++, 99 -+, 101 -+, 129 ++, 130 -+, 131 --, + //low 8 +-, 9 --, 10 --, 12 --, 19 -+, 21 -+, 24 -+, 25 ++, 27 ++, 30 ++, 33++, 34 ++, 36 ++, 37++,38 +-, + */ + } + } + + if (!separated) { + // std::string wbcat02Method = wbpar.wbcat02Method; + std::string wbcat02Method = "none"; + + for (int tt = 0; tt < N_t; tt++) { + tempw = Txyz[tt].Tem; + + if (tempw <= INITIALBLACKBODY) { + + for (int i = 0; i < N_c; i++) { + spectrum_to_color_xyz_blackbody(spec_colorforxcyc[i], tempw, Refxyz[i].Xref, Refxyz[i].Yref, Refxyz[i].Zref); + } + + } else { + double m11, m22, x_DD, y_DD, interm2; + + if (tempw <= 7000) { + x_DD = -4.6070e9 / (tempw * tempw * tempw) + 2.9678e6 / (tempw * tempw) + 0.09911e3 / tempw + 0.244063; + } else { + x_DD = -2.0064e9 / (tempw * tempw * tempw) + 1.9018e6 / (tempw * tempw) + 0.24748e3 / tempw + 0.237040; + } + + y_DD = -3.0 * x_DD * x_DD + 2.87 * x_DD - 0.275; + //calculate D -daylight in function of s0, s1, s2 and temp ==> x_D y_D + //S(lamda)=So(lambda)+m1*s1(lambda)+m2*s2(lambda) + interm2 = (0.0241 + 0.2562 * x_DD - 0.734 * y_DD); + m11 = (-1.3515 - 1.7703 * x_DD + 5.9114 * y_DD) / interm2; + m22 = (0.03 - 31.4424 * x_DD + 30.0717 * y_DD) / interm2; + + for (int i = 0; i < N_c; i++) { + spectrum_to_color_xyz_daylight(spec_colorforxcyc[i], m11, m22, Refxyz[i].Xref, Refxyz[i].Yref, Refxyz[i].Zref); + } + } + +//CAT02 + + float CAM02BB00 = 1.0, CAM02BB01 = 1.0, CAM02BB02 = 1.0, CAM02BB10 = 1.0, CAM02BB11 = 1.0, CAM02BB12 = 1.0, CAM02BB20 = 1.0, CAM02BB21 = 1.0, CAM02BB22 = 1.0; //for CIECAT02 + float Xwb = Txyz[tt].XX; + float Ywb = 1.; + float Zwb = Txyz[tt].ZZ; + + if (wbcat02Method == "icam") {//not used + icieCAT02float(Xwb, Ywb, Zwb, CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22, 1.0); + } + + if (wbcat02Method == "cam") { + + cieCAT02float(Xwb, Ywb, Zwb, CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22, 1.0); + } + + if (wbcat02Method == "none") { + + for (int i = 0; i < N_c; i++) { + Refxyzcat02[i].Xrefcat = CAM02BB00 * Refxyz[i].Xref + CAM02BB01 * Refxyz[i].Yref + CAM02BB02 * Refxyz[i].Zref ; + Refxyzcat02[i].Yrefcat = CAM02BB10 * Refxyz[i].Xref + CAM02BB11 * Refxyz[i].Yref + CAM02BB12 * Refxyz[i].Zref ; + Refxyzcat02[i].Zrefcat = CAM02BB20 * Refxyz[i].Xref + CAM02BB21 * Refxyz[i].Yref + CAM02BB22 * Refxyz[i].Zref; + } + } + +//end CAT02 + + for (int i = 0; i < N_c; i++) { + /* float X = 65535.f * Refxyzcat02[i].Xrefcat; + float Y = 65535.f * Refxyzcat02[i].Yrefcat; + float Z = 65535.f * Refxyzcat02[i].Zrefcat; + float L, a, b; + Color::XYZ2Lab(X, Y, Z, L, a, b); + + double som = (Refxyzcat02[i].Xrefcat + Refxyzcat02[i].Yrefcat + Refxyzcat02[i].Zrefcat); + L /= 327.68f; + a /= 327.68f; + b /= 327.68f; + Ta[i][tt] = a; + Tb[i][tt] = b; + TL[i][tt] = L; + TX[i][tt] = X; + TY[i][tt] = Y; + TZ[i][tt] = Z; + */ + //som = 1.; +// Tx[i][tt] = (float) Refxyz[i].Xref; +// Ty[i][tt] = (float) Refxyz[i].Yref; +// Tz[i][tt] = (float) Refxyz[i].Zref; + +// if (wbpar.wbcat02Method == "none") { + if (wbcat02Method == "none") { + + Tx[i][tt] = (float) Refxyz[i].Xref; + Ty[i][tt] = (float) Refxyz[i].Yref; + Tz[i][tt] = (float) Refxyz[i].Zref; + } else { + Tx[i][tt] = (float) Refxyzcat02[i].Xrefcat; + Ty[i][tt] = (float) Refxyzcat02[i].Yrefcat; + Tz[i][tt] = (float) Refxyzcat02[i].Zrefcat; + } + + } + } + } +} + } diff --git a/rtengine/colortemp.h b/rtengine/colortemp.h index d529d844e..1c50f282a 100644 --- a/rtengine/colortemp.h +++ b/rtengine/colortemp.h @@ -22,6 +22,7 @@ #include #include #include +#include "procparams.h" namespace rtengine { @@ -54,6 +55,7 @@ public: explicit ColorTemp (double e) : temp(-1.), green(-1.), equal (e), method("Custom") {} ColorTemp (double t, double g, double e, const std::string &m); ColorTemp (double mulr, double mulg, double mulb, double e); + static void tempxy(bool separated, int &repref, float **Tx, float **Ty, float **Tz, float **Ta, float **Tb, float **TL, double *TX, double *TY, double *TZ, const procparams::WBParams & wbpar); void update (const double rmul, const double gmul, const double bmul, const double equal, const double tempBias=0.0) { @@ -96,6 +98,8 @@ public: static void temp2mulxyz (double tem, const std::string &method, double &Xxyz, double &Zxyz); static void cieCAT02(double Xw, double Yw, double Zw, double &CAM02BB00, double &CAM02BB01, double &CAM02BB02, double &CAM02BB10, double &CAM02BB11, double &CAM02BB12, double &CAM02BB20, double &CAM02BB21, double &CAM02BB22, double adap ); + static void cieCAT02float(float Xw, float Yw, float Zw, float &CAM02BB00, float &CAM02BB01, float &CAM02BB02, float &CAM02BB10, float &CAM02BB11, float &CAM02BB12, float &CAM02BB20, float &CAM02BB21, float &CAM02BB22, float adap); + static void icieCAT02float(float Xw, float Yw, float Zw, float &iCAM02BB00, float &iCAM02BB01, float &iCAM02BB02, float &iCAM02BB10, float &iCAM02BB11, float &iCAM02BB12, float &iCAM02BB20, float &iCAM02BB21, float &iCAM02BB22, float adap); bool operator== (const ColorTemp& other) const { @@ -163,6 +167,125 @@ public: static const double ColorchechGreD1_spect[97]; static const double ColorchechSGBlaN3_6_spect[97];//ColorChecker SG N3 static const double JDC468_GraK14_44_spect[97];//468 K14 + static const double JDC468_BluM5_spect[97]; //468 M5 + static const double JDC468_BluD6_spect[97]; //468 D6 + static const double JDC468_BluF4_spect[97]; //468 F4 + static const double JDC468_RedG21va_spect[97]; //468 G21 modifié + static const double JDC468_RedI9_spect[97]; //468 I9 + static const double JDC468_GreI8_spect[97]; //468 I8 + static const double JDC468_GreQ7_spect[97]; //468 Q7 + static const double ColorGreenM25_spect[97]; + static const double ColorYellowkeltano_spect[97]; + static const double ColorGreenalsi_spect[97]; + static const double ColorRedpetunia_spect[97]; + static const double ColorRedkurttu_spect[97]; + static const double ColorRedlupiini_spect[97]; + static const double ColorRedhevosminttu_spect[97]; + static const double ColorRedneilikka_spect[97]; + static const double ColorRedpelagornia_spect[97]; + static const double ColorRedtalvio_spect[97]; + static const double ColorBrownpoimulehti_spect[97]; + static const double ColorOrangetuntematon_spect[97]; + static const double ColorOrangetlehmus_spect[97]; + static const double ColorOrangvaahtera_spect[97]; + static const double ColorBrownlehmus_spect[97]; + static const double ColorBrownuotiosammal_spect[97]; + static const double ColorBlacksoil_spect[97]; + static const double ColorGraynahjajaekaelae_spect[97]; + static const double ColorGreennuotisammal_spect[97]; + static const double ColorGreenleskenlehti_spect[97]; + static const double ColorGreenlinnunkaali_spect[97]; + static const double ColorGreenpelto_spect[97]; + static const double ColorGreenrodvoikukka[97]; + static const double ColorGreenlehmus[97]; + static const double ColorGreenlinden[97]; + static const double ColorYellowlehmus[97]; + static const double ColorYellowsuikeroalpi[97]; + static const double ColorYellowpensashanhikki1[97]; + static const double ColorYellowpensashanhikki2[97]; + static const double ColorBluehiidenvirna[97]; + static const double ColorBluekurkkuyrtti[97]; + static const double ColorPinksiankaersaemoe[97]; + static const double ColorVioletharakankello[97]; + static const double ColorVioletalsikeapila[97]; + static const double ColorVioletakilleija[97]; + static const double ColorOrangekehaekukka[97]; + static const double ColorRedpihlaja[97]; + static const double ColorVioletpetunia[97]; + static const double ColorVioletorvokki[97]; + static const double ColorBluesinisievikki[97]; + static const double ColorBlueiisoppi[97]; + static const double ColorBluelobelia[97]; + static const double ColorWhiteojaka[97]; + static const double ColorWhitepetunia[97]; + static const double ColorWhitepelargonia[97]; + static const double ColorWhitepaeivaen[97]; + static const double JDC468_B14_75Redspect[97]; + static const double Colorblue_spect[97]; + static const double ColorGreenkoriste[97]; + static const double ColorGreenpoimulehti[97]; + static const double ColorGreenhopeapaju[97]; + static const double ColorReduuden[97]; + static const double ColorRedpajuan[97]; + static const double ColorRedjaloan[97]; + static const double ColorBlueukon[97]; + static const double ColorBlueorvokki[97]; + static const double ColorBluemalvikki[97]; + static const double ColorBlackmaito[97]; + static const double ColorOrangpihlaja[97]; + static const double ColorBlackpihlaja[97]; + static const double ColorViolA1_spect[97]; + static const double ColorViolA4_spect[97]; + static const double ColorViolA6_spect[97]; + static const double ColorBlueSkyK3_spect[97]; + static const double ColorBlueSkyK9_spect[97]; + static const double ColorBlueSkyC4_spect[97]; + static const double ColorBlueSkyC14_spect[97]; + static const double ColorBlueSkyE4_spect[97]; + static const double ColorBlueSkyM1_spect[97]; + static const double ColorBlueSky2B1_spect[97]; + static const double ColorBlueSkyT7_spect[97]; + static const double ColorBlueSkyU19_spect[97]; + static const double ColorBlueSkyU2_spect[97]; + static const double ColorBlueSkyT17_spect[97]; + static const double ColorBlackM8_spect[97]; + static const double ColorBlackM12_spect[97]; + static const double ColorBlackM13_spect[97]; + static const double ColorWhite2B12_spect[97]; + static const double ColorWhite2B14_spect[97]; + static const double JDC468_Blackred97_spect[97]; + static const double JDC468_Blackredbl443_spect[97]; + static const double JDC468_Blackbl27_spect[97]; + static const double JDC468_Blackbl28_spect[97]; + static const double JDC468_Blackgr214_spect[97]; + static const double JDC468_Blackbl436_spect[97]; + static const double JDC468_Whitebl455_spect[97]; + static const double JDC468_Blackvio101_spect[97]; + static const double JDC468_Whitebl92_spect[97]; + static const double JDC468_Greyredbl94_spect[97]; + static const double JDC468_Blue32_spect[97]; + static const double JDC468_Blue236_spect[97]; + static const double JDC468_Gre300_spect[97]; + static const double JDC468_Blue340_spect[97]; + static const double JDC468_Gree110_spect[97]; + static const double JDC468_Gree457_spect[97]; + static const double JDC468_Yel241_spect[97]; + static const double JDC468_Ora321_spect[97]; + static const double JDC468_Yellow353_spect[97]; + static const double JDC468_Mag465_spect[97]; + static const double JDC468_Mag333_spect[97]; + static const double JDC468_Mag203_spect[97]; + + + static const double JDC468_OraO18_spect[97]; //468 O18 + static const double JDC468_OraD17_spect[97]; //468 D17 + static const double Fictif_61greyspect[97];//468 K15 + static const double JDC468_K15_87greyspect[97]; + static const double JDC468_YelN10_spect[97]; //468 N10 + static const double JDC468_GreN7_spect[97]; //468 N7 + static const double JDC468_GreA10_spect[97]; //468 A10 + static const double JDC468_GreK7_spect[97]; //468 K7 + static const double JDC468_PurE24_spect[97]; //468 E24 static const double JDC468_BluH10_spect[97];//468 H10 static const double ColabSkin35_15_17_spect[97];//Skin L 35 static const double ColabSkin57_22_18_spect[97];//Skin L 57 @@ -196,6 +319,55 @@ public: static const double ColabSkin70_7_32_spect[97];//Skin L 77 static const double ColabSky60_0_m31_spect[97];//Sky L=60 static const double ColabSky42_0_m24_spect[97];//Sky L=42 + static const double J570_BlueB6_spect[97];//blue Cyan + static const double J570_BlueB15_spect[97];//blue Cyan + static const double J570_BlueC2_spect[97];//blue Cyan + static const double J570_BlueC14_spect[97];//blue Cyan + static const double J570_BlueC16_spect[97];//blue Cyan + static const double J570_BlueF1_spect[97];//blue Cyan + static const double J570_BlueF2_spect[97];//blue Cyan + static const double J570_BlueF10_spect[97];//blue Cyan + static const double J570_BlueF13_spect[97];//blue Cyan + static const double J570_BlueG9_spect[97];//blue Cyan + static const double J570_BlueG19_spect[97];//blue Cyan + static const double J570_BlueI5_spect[97];//blue Cyan + static const double J570_BlueH15_spect[97];//blue Cyan + static const double J570_BlueI3_spect[97];//blue Cyan + static const double J570_BlueI19_spect[97];//blue Cyan + static const double J570_BlueJ4_spect[97];//blue Cyan + static const double J570_BlueJ6_spect[97];//blue Cyan + static const double J570_BlueJ11_spect[97];//blue Cyan + static const double J570_BlueJ13_spect[97];//blue Cyan + static const double J570_BlueK5_spect[97];//blue Cyan + static const double J570_BlueN1_spect[97];//blue Cyan + static const double J570_BlueN4_spect[97];//blue Cyan + static const double J570_BlueO19_spect[97];//blue Cyan + static const double J570_BlueU8_spect[97];//blue Cyan + static const double J570_NeuN8_spect[97];//neutral + static const double J570_NeuN9_spect[97];//neutral + static const double J570_NeuO8_spect[97];//neutral + static const double J570_NeuO11_spect[97];//neutral + static const double J570_NeuD5_spect[97];//neutral + static const double J570_NeuE11_spect[97];//neutral + static const double J570_NeuK16_spect[97];//neutral + static const double J570_NeuM3_spect[97];//neutral + static const double J570_NeuN18_spect[97];//neutral + static const double J570_NeuQ1_spect[97];//neutral + static const double J570_NeuS7_spect[97];//neutral + static const double J570_NeuV10_spect[97];//neutral + static const double J570_NeuW18_spect[97];//neutral + static const double J570_NeuZ14_spect[97];//neutral + static const double J570_NeuC18_spect[97];//neutral + static const double J570_NeuD17_spect[97];//neutral + static const double J570_NeuJ11_spect[97];//neutral + static const double J570_NeuL4_spect[97];//neutral + static const double Colorlab_n72_n2_spect[97]; + static const double Colorlab_10_n70_spect[97]; + static const double Colorlab_n33_n70_spect[97]; + static const double Colorlab_n8_n74_spect[97]; + static const double Colorlab_19_n69_spect[97]; + static const double Colorlab_n80_10_spect[97]; + static const double Colorlab_n80_26_spect[97]; static void spectrum_to_xyz_daylight (double _m1, double _m2, double &x, double &y, double &z); static void spectrum_to_xyz_blackbody (double _temp, double &x, double &y, double &z); diff --git a/rtengine/iimage.h b/rtengine/iimage.h index ff016df1a..bda390895 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -26,6 +26,7 @@ #include "imagedimensions.h" #include "LUT.h" #include "coord2d.h" +#include "procparams.h" #include "color.h" #include "../rtgui/threadutils.h" @@ -102,6 +103,10 @@ public: { rm = gm = bm = 1.0; } + virtual void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) + { + rm = gm = bm = 1.0; + } }; diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index a18cca9d7..089cb3bae 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -105,6 +105,8 @@ public: virtual void getAutoWBMultipliers (double &rm, double &gm, double &bm) = 0; virtual ColorTemp getWB () const = 0; virtual ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) = 0; + virtual void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw) = 0; + virtual void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) = 0; virtual double getDefGain () const { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 01f9892bf..e718087ec 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -330,6 +330,21 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) // if a demosaic happened we should also call getimage later, so we need to set the M_INIT flag todo |= M_INIT; + bool autowb0 = false; + // bool autoitc = false; + autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); + // autoitc = (params.wb.method == "autitcgreen"); + // bool gamma = false; + // bool cat = false; +// if (params.wb.wbcat02Method == "cam" && autoitc) { +// cat = true; +// } + + if (autowb0) { + imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); + } + + if (highDetailNeeded) { highDetailRawComputed = true; } else { @@ -360,6 +375,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } + bool autowb = false; + autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); + if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 1c05fbbad..cfa35ee01 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1230,7 +1230,15 @@ const std::vector& WBParams::getWbEntries() { static const std::vector wb_entries = { {"Camera", WBEntry::Type::CAMERA, M("TP_WBALANCE_CAMERA"), 0, 1.f, 1.f, 0.f}, - {"Auto", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTO"), 0, 1.f, 1.f, 0.f}, + // {"Auto", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTO"), 0, 1.f, 1.f, 0.f}, + {"autitcgreen", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOITCGREEN"), 0, 1.f, 1.f, 0.f}, + {"autold", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOOLD"), 0, 1.f, 1.f, 0.f}, + {"aut", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTODEM"), 0, 1.f, 1.f, 0.f}, + {"autedg", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGE"), 0, 1.f, 1.f, 0.f}, + {"autorobust", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOROB"), 0, 1.f, 1.f, 0.f}, + {"autosdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOSDW"), 0, 1.f, 1.f, 0.f}, + {"autedgsdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGESW"), 0, 1.f, 1.f, 0.f}, + {"autedgrob", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGEROB"), 0, 1.f, 1.f, 0.f}, {"Daylight", WBEntry::Type::DAYLIGHT, M("TP_WBALANCE_DAYLIGHT"), 5300, 1.f, 1.f, 0.f}, {"Cloudy", WBEntry::Type::CLOUDY, M("TP_WBALANCE_CLOUDY"), 6200, 1.f, 1.f, 0.f}, {"Shade", WBEntry::Type::SHADE, M("TP_WBALANCE_SHADE"), 7600, 1.f, 1.f, 0.f}, diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 3b2738405..7d4f613f9 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -37,6 +37,9 @@ #include "pdaflinesfilter.h" #include "camconst.h" #include "procparams.h" +#define BENCHMARK +#include "StopWatch.h" + #ifdef _OPENMP #include #endif @@ -450,8 +453,11 @@ RawImageSource::RawImageSource () , ri(nullptr) , rawData(0, 0) , green(0, 0) + , greenloc(0, 0) , red(0, 0) + , redloc(0, 0) , blue(0, 0) + , blueloc(0, 0) , rawDirty(true) , histMatchingParams(new procparams::ColorManagementParams) { @@ -2285,6 +2291,19 @@ void RawImageSource::flushRGB() if (blue) { blue(0, 0); } + + if (greenloc) { + greenloc(0, 0); + } + + if (redloc) { + redloc(0, 0); + } + + if (blueloc) { + blueloc(0, 0); + } + } void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) @@ -4350,6 +4369,3764 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) } } + +static void histoxyY(int bfhitc, int bfwitc, array2D & xc, array2D & yc, array2D & Yc, float *xxx, float * yyy, float * YYY, int * histxy, float * area, int * inter) + +{ + int nh = 0; +// int nc = 0; + // int nc2 = 0; + + for (int y = 0; y < bfhitc ; y++) { + for (int x = 0; x < bfwitc ; x++) { + + if (xc[y][x] < 0.12f && xc[y][x] > 0.03f) { // near Prophoto + + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 0; + histxy[nh]++; + area[nh] = 50.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + + YYY[nh] += Yc[y][x]; + + // nc = 0; + //blue hard + } else if (yc[y][x] < 0.3f) { + nh = 1; + histxy[nh]++; + area[nh] = 60.f; + inter[nh] = 1; + YYY[nh] += Yc[y][x]; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + + // nc = 1; + + //blue + } else if (yc[y][x] < 0.4f) { + nh = 2; + histxy[nh]++; + area[nh] = 80.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + // nc = 1; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + //blue green + nh = 3; + histxy[nh]++; + area[nh] = 100.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 1; + + } else if (yc[y][x] < 0.6f) { + nh = 4; + histxy[nh]++; + area[nh] = 120.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 1; + + } else if (yc[y][x] < 0.82f) { + //green + nh = 5; + histxy[nh]++; + area[nh] = 240.f; + inter[nh] = 1; + // nc = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } + } else if (xc[y][x] < 0.24f) { + if (yc[y][x] < 0.2f && yc[y][x] > 0.05f) { + nh = 6; + histxy[nh]++; + area[nh] = 230.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 2; + + } else if (yc[y][x] < 0.3f) { + nh = 7; + histxy[nh]++; + area[nh] = 240.f; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 2; + + } else if (yc[y][x] < 0.4f) { + nh = 8; + histxy[nh]++; + area[nh] = 240.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 2; + + } else if (yc[y][x] < 0.5f) { + nh = 9; + histxy[nh]++; + area[nh] = 240.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 2; + // nc2 = 3; + + } else if (yc[y][x] < 0.6f) { + nh = 10; + histxy[nh]++; + area[nh] = 240.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + // nc = 3; + + } else if (yc[y][x] < 0.75f) { + nh = 11; + histxy[nh]++; + area[nh] = 400.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + // nc = 3; + + } + + } else if (xc[y][x] < 0.28f) {//blue sky and other + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 12; + histxy[nh]++; + area[nh] = 80.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.25f) { + nh = 13; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 14; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.33f) { + nh = 15; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 16; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 17; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 18; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.5f) { + nh = 19; + histxy[nh]++; + area[nh] = 25.f; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.6f) { + nh = 20; + histxy[nh]++; + area[nh] = 50.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.75f) { + nh = 21; + histxy[nh]++; + area[nh] = 60.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + } else if (xc[y][x] < 0.31f) {//near neutral others + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 22; + histxy[nh]++; + area[nh] = 50.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 23; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 24; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.32f) { + nh = 25; + histxy[nh]++; + area[nh] = 9.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.36f) { + nh = 26; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 27; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.5f) { + nh = 28; + histxy[nh]++; + area[nh] = 30.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.7f) { + nh = 29; + histxy[nh]++; + area[nh] = 45.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + } else if (xc[y][x] < 0.325f) {//neutral 34 + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 30; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 31; + histxy[nh]++; + area[nh] = 6.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 32; + histxy[nh]++; + area[nh] = 7.5f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 33; + histxy[nh]++; + area[nh] = 4.5f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.34f) { + nh = 34; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 35; + histxy[nh]++; + area[nh] = 4.5f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 36; + histxy[nh]++; + area[nh] = 4.5f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 37; + histxy[nh]++; + area[nh] = 7.5f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 38; + histxy[nh]++; + area[nh] = 7.5f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 39; + histxy[nh]++; + area[nh] = 7.5f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.7f) { + nh = 40; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.335f) {//neutral + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 41; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 42; + histxy[nh]++; + area[nh] = 4.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 43; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 44; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.33f) { + nh = 45; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.34f) { + nh = 46; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.35f) { + nh = 47; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.36f) { + nh = 48; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 47; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.38f) { + nh = 48; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 49; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 50; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 51; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 52; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.7f) { + nh = 53; + histxy[nh]++; + area[nh] = 10.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.345f) {//neutral 37 + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 54; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 55; + histxy[nh]++; + area[nh] = 4.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 56; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 57; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.33f) {//34 + nh = 58; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.34f) { + nh = 59; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.35f) {//34 + nh = 60; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.36f) {//34 + nh = 61; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 62; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.38f) { + nh = 63; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.39f) { + nh = 64; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 65; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.42f) { + nh = 66; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 67; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.48f) { + nh = 68; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 69; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 70; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.65f) { + nh = 71; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.355f) {//neutral 37 + if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { + nh = 72; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 73; + histxy[nh]++; + area[nh] = 4.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 74; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 75; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.33f) {//34 + nh = 76; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.34f) { + nh = 77; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.35f) {//34 + nh = 78; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.36f) {//34 + nh = 79; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 80; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.38f) { + nh = 81; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.39f) { + nh = 82; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 83; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.42f) { + nh = 84; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 85; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.48f) { + nh = 68; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 86; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 87; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.65f) { + nh = 88; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.365f) { //0.4 + if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { + nh = 89; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.24f) { + nh = 90; + histxy[nh]++; + area[nh] = 4.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 91; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 92; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.33f) { + nh = 93; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.34f) { + nh = 94; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.36f) { + nh = 95; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 5; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 96; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.38f) { + nh = 97; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.39f) { + nh = 98; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 99; + histxy[nh]++; + area[nh] = 1.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + } else if (yc[y][x] < 0.42f) { + nh = 100; + histxy[nh]++; + area[nh] = 2.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 101; + histxy[nh]++; + area[nh] = 3.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 102; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 103; + histxy[nh]++; + area[nh] = 5.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.63f) { + nh = 104; + histxy[nh]++; + area[nh] = 10.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.405f) {//45 + if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { + nh = 105; + histxy[nh]++; + area[nh] = 40.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 106; + histxy[nh]++; + area[nh] = 16.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 107; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 108; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.34f) { + nh = 109; + histxy[nh]++; + area[nh] = 8.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 110; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 111; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 112; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 113; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 114; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.6f) { + nh = 115; + histxy[nh]++; + area[nh] = 16.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.445f) {//45 + if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { + nh = 116; + histxy[nh]++; + area[nh] = 40.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 117; + histxy[nh]++; + area[nh] = 16.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 118; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 119; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.34f) { + nh = 120; + histxy[nh]++; + area[nh] = 8.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 121; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 122; + histxy[nh]++; + area[nh] = 12.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 123; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 124; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 125; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.58f) { + nh = 126; + histxy[nh]++; + area[nh] = 16.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.495f) { + if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { + nh = 127; + histxy[nh]++; + area[nh] = 40.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 128; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 129; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 130; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.34f) { + nh = 131; + histxy[nh]++; + area[nh] = 10.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 132; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 133; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 3; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 134; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 135; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.55f) { + nh = 136; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + } else if (xc[y][x] < 0.545f) { + if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { + nh = 137; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.24f) { + nh = 138; + histxy[nh]++; + area[nh] = 20.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.29f) { + nh = 139; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.32f) { + nh = 140; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.34f) { + nh = 141; + histxy[nh]++; + area[nh] = 10.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.37f) { + nh = 142; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 143; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.45f) { + nh = 144; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.5f) { + nh = 145; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + + } + + } else if (xc[y][x] < 0.595f) { + if (yc[y][x] < 0.22f && yc[y][x] > 0.15f) { + nh = 146; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.25f) { + nh = 147; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.3f) { + nh = 148; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.35f) { + nh = 149; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.4f) { + nh = 160; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.45f) { + nh = 161; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.65f) { + if (yc[y][x] < 0.25f && yc[y][x] > 0.12f) { + nh = 162; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.3f) { + nh = 163; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } else if (yc[y][x] < 0.35f) { + nh = 164; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 2; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } else if (yc[y][x] < 0.45f) { + nh = 165; + histxy[nh]++; + area[nh] = 15.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + } + + } else if (xc[y][x] < 0.75f && yc[y][x] > 0.1f) { + nh = 166; + histxy[nh]++; + area[nh] = 25.f; + inter[nh] = 1; + xxx[nh] += xc[y][x]; + yyy[nh] += yc[y][x]; + YYY[nh] += Yc[y][x]; + + + } + + } + } +} + + + + +void static studentXY(array2D & YYcurr, array2D & reffYY, int sizcurr, int Nc, int tt, float & student) +{ + //calculate Student coeff YY + float somcurrY = 0.f; + float somreffY = 0.f; + float somcurr2Y = 0.f; + float somreff2Y = 0.f; + float somsqueccurrY = 0.f; + float somsquecreffY = 0.f; + int sizestucurrY = sizcurr; + int sizestureffY = Nc; + + for (int i = 0; i < sizestucurrY; i++) { + somcurrY += 100.f * YYcurr[i][tt]; + //sum observations first group + } + + for (int i = 0; i < sizestureffY; i++) { + somreffY += 100.f * reffYY[i][tt]; + //sum observations second group + + } + + + for (int i = 0; i < sizestucurrY; i++) { + somcurr2Y += SQR(100.f * YYcurr[i][tt]); + //sum sqr observations first group + + } + + for (int i = 0; i < sizestureffY; i++) { + somreff2Y += SQR(100.f * reffYY[i][tt]); + //sum sqr observations second group + + } + + somsqueccurrY = somcurr2Y - (SQR(somcurrY)) / sizestucurrY; + //sum sqr differences first + somsquecreffY = somreff2Y - (SQR(somreffY)) / sizestureffY; + //sum sqr differences second + + float diviY = sqrt(((somsqueccurrY + somsquecreffY) * (1.f / (float)sizestucurrY + 1.f / (float)sizestureffY)) / (sizestucurrY + sizestureffY - 2)); + //divisor student + float numerY = ((float)somcurrY / (float)sizestucurrY) - ((float)somreffY / (float)sizestureffY); + //numerator student +// printf("num=%f divY=%f \n", numerY, diviY); + + student = numerY / diviY ; + //student coeeficient +} + +/* +static void SdwWB(const array2D &redloc, const array2D &greenloc, const array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm) +{ + //Standard deviation weighted Gary World - from Lan rt al. + constexpr float clipHigh = 64000.f; + constexpr float clipLow = 1500.f; + + float MeanG[12] = { }; + float SigmaG[12] = { }; + + float MeanR[12] = { }; + float SigmaR[12] = { }; + + float MeanB[12] = { }; + float SigmaB[12] = { }; + + //divide in 12 areas + int partw, parth; + int yh, xw; + + if (bfw > bfh) { + partw = bfw / 4; + parth = bfh / 3; + xw = 4; + yh = 3; + } else { + partw = bfw / 3; + parth = bfh / 4; + xw = 3; + yh = 4; + } + + float SigmaGG = 0.f, SigmaRR = 0.f, SigmaBB = 0.f; + +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic) collapse(2) +#endif + + for (int w = 0; w < xw ; ++w) { + for (int h = 0; h < yh ; ++h) { + float meanr = 0.f; + float meang = 0.f; + float meanb = 0.f; + int nr = 0; + int ng = 0; + int nb = 0; + + for (int y = h * parth; y < (h + 1) * parth; ++y) { + for (int x = w * partw; x < (w + 1) * partw; ++x) { + if (greenloc[y][x] > clipLow && greenloc[y][x] < clipHigh) { + meang += greenloc[y][x]; + ng++; + } + + if (redloc[y][x] > clipLow && redloc[y][x] < clipHigh) { + meanr += redloc[y][x]; + nr++; + } + + if (blueloc[y][x] > clipLow && blueloc[y][x] < clipHigh) { + meanb += blueloc[y][x]; + nb++; + } + } + } + + int i = w + h * xw; + + if (ng > 0) { + meang /= ng; + } + + if (nr > 0) { + meanr /= nr; + } + + if (nb > 0) { + meanb /= nb; + } + + MeanG[i] = meang; + MeanR[i] = meanr; + MeanB[i] = meanb; + + float sigmar = 0.f; + float sigmag = 0.f; + float sigmab = 0.f; + + for (int y = h * parth; y < (h + 1) * parth; ++y) { + for (int x = w * partw; x < (w + 1) * partw; ++x) { + if (greenloc[y][x] > clipLow && greenloc[y][x] < clipHigh) { + sigmag += SQR(meang - greenloc[y][x]) ; + } + + if (redloc[y][x] > clipLow && redloc[y][x] < clipHigh) { + sigmar += SQR(meanr - redloc[y][x]); + } + + if (blueloc[y][x] > clipLow && blueloc[y][x] < clipHigh) { + sigmab += SQR(meanb - blueloc[y][x]); + } + } + } + + SigmaG[i] = sigmag; + SigmaR[i] = sigmar; + SigmaB[i] = sigmab; + + if (ng > 0) { + SigmaG[i] = sqrt(SigmaG[i] / ng); + } + + if (nr > 0) { + SigmaR[i] = sqrt(SigmaR[i] / nr); + } + + if (nb > 0) { + SigmaB[i] = sqrt(SigmaB[i] / nb); + } + +#ifdef _OPENMP + #pragma omp critical +#endif + { + SigmaGG += SigmaG[i]; + SigmaRR += SigmaR[i]; + SigmaBB += SigmaB[i]; + } + } + } + + float StdavgG = 0.f, StdavgR = 0.f, StdavgB = 0.f; + constexpr float epsilo = 0.01f; + + for (int k = 0; k < 12 ; k++) { + StdavgG += (SigmaG[k] * MeanG[k]) / (SigmaGG + epsilo); + StdavgR += (SigmaR[k] * MeanR[k]) / (SigmaRR + epsilo); + StdavgB += (SigmaB[k] * MeanB[k]) / (SigmaBB + epsilo); + + } + + avg_gm = (StdavgG + StdavgB + StdavgR) / (3 * StdavgG); + avg_rm = (StdavgG + StdavgB + StdavgR) / (3 * StdavgR); + avg_bm = (StdavgG + StdavgB + StdavgR) / (3 * StdavgB); + + avg_gm *= 10000.f; + avg_rm *= 10000.f; + avg_bm *= 10000.f; + +} +*/ + +/* +static void RobustWB(array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm) +{ + BENCHFUN + // inspired by "Robust automatic WB algorithm using grey colour points in Images" + // Jy Huo, Yl Chang, J.Wang Xx Wei + // robust = true; +// printf("Robust WB\n"); + const int bfwr = bfw / 4 + 1 ;//5 middle value to keep good result and reduce time + const int bfhr = bfh / 4 + 1; + + array2D rl(bfwr, bfhr); + array2D gl(bfwr, bfhr); + array2D bl(bfwr, bfhr); + + // copy data to smaller arrays to reduce memory pressure in do-while loop +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int y = 0; y < bfh ; y += 4) { + int yy = y / 4; + + for (int x = 0; x < bfw ; x += 4) { + int xx = x / 4; + rl[yy][xx] = redloc[y][x]; + gl[yy][xx] = greenloc[y][x]; + bl[yy][xx] = blueloc[y][x]; + } + } + + float *Uba = new float [204]; + float *Vba = new float [204]; + + constexpr float Th = 0.1321f; //Threshold 0.1321f 0.097f 0.2753f if necessary + //wr, wb, wg multipliers for each channel RGB + float wr = 1.f; + float wg = 1.f; + float wb = 1.f; + constexpr float mu = 0.002f;//std variation + constexpr float mu2 = 0.0012f;//first reduce variation + constexpr float mu3 = 0.0007f;//second variation + int itera = 0; + int minim = 1; + int realitera = 1; + + int Kx = 0; + + do {//iterative WB + float Ubarohm = 0.f, Vbarohm = 0.f; + itera++; + int Nf = 0; +#ifdef _OPENMP + #pragma omp parallel for reduction(+:Ubarohm, Vbarohm, Nf) schedule(dynamic,16) +#endif + + for (int y = 0; y < bfhr ; ++y) { + for (int x = 0; x < bfwr ; ++x) { + + //calculate YUV from RGB and wr, wg, wb + float Y0 = 0.299f * wr * rl[y][x] + 0.587f * wg * gl[y][x] + 0.114f * wb * bl[y][x]; + float U0 = -0.14713f * wr * rl[y][x] - 0.28886f * wg * gl[y][x] + 0.436f * wb * bl[y][x]; + float V0 = 0.615f * wr * rl[y][x] - 0.51498f * wg * gl[y][x] - 0.10001f * wb * bl[y][x]; + + //FYUX function to detect grey points + if (fabs(U0) + fabs(V0) < Th * Y0) {//grey values + Nf++; + Ubarohm += U0; + Vbarohm += V0; + } + + + } + } + + Ubarohm /= Nf; + Uba[itera] = Ubarohm;//stock value Ubarohm + Vba[itera] = Vbarohm;//stock value Vbarohm + + if (itera > 5 && minim < 2) { + if ((fabs(Uba[itera] - Uba[itera - 2]) < 0.001f) && (fabs(Vba[itera] - Vba[itera - 2]) < 0.001f)) { + //printf("DUba=%f Dvba=%f\n", Uba[itera] - Uba[itera - 2], Vba[itera] - Vba[itera - 2]); + realitera = itera; + minim = 2; //accelerate convergence - not in original algorithm + } + } + + if (itera > 10 && minim == 2 && itera > realitera + 3) { + if ((fabs(Uba[itera] - Uba[itera - 2]) < 0.001f) && (fabs(Vba[itera] - Vba[itera - 2]) < 0.001f)) { + minim = 3; //accelerate second time if necessary convergence, - not in original algorithm + } + + } + + Vbarohm /= Nf; // QUESTION INGO: why is this not done before the value is saved to Vba[itera]? Bug or intentional? + // printf ("Nf=%i max=%i U=%f V=%f\n", Nf, bfh*bfw, Ubarohm, Vbarohm); + Kx = 0; + constexpr float aa = 0.8f;//superior limit if epsil > aa increase variation + constexpr float bb = 0.15f;//inferior limit if epsil < bb exit + int ind = 1; + + float phi = 0.f; + + if ((fabs(Ubarohm) > fabs(Vbarohm)) || (Ubarohm != 0.f && fabs(Ubarohm) == fabs(Vbarohm))) { + phi = Ubarohm; + ind = 1; + } else if (fabs(Ubarohm) < fabs(Vbarohm)) { + phi = Vbarohm; + ind = 2; + } else if (Ubarohm == 0.f && Vbarohm == 0.f) { + phi = 0.f; + ind = 3; + } + + int sign = SGN(-phi); + + if (fabs(phi) >= aa) { + Kx = 2 * sign; + } + + if (fabs(phi) < aa && fabs(phi) >= bb) { + Kx = sign; + } + + if (fabs(phi) < bb) { + Kx = 0; + } + + // + float mur = mu; + + if (minim == 2) { + mur = mu2; + } else if (minim == 3) { + mur = mu3; + } + + if (ind == 1) { + wb += mur * Kx; + } else if (ind == 2) { + wr += mur * Kx; + } + + //printf ("epsil=%f iter=%i wb=%f wr=%f U=%f V=%f mu=%f\n", fabs (epsil), itera, wb, wr, Ubarohm, Vbarohm, mur); + } while (Kx != 0 && itera <= 200); //stop iterations in normal case Kx =0, or if WB iteration do not converge + + delete Uba; + delete Vba; +// printf("epsil=%f iter=%i wb=%f wr=%f mu=%f\n", fabs(epsil), itera, wb, wr, mur); + + avg_rm = 10000.* wr; + avg_gm = 10000.* wg; + avg_bm = 10000.* wb; + // printf("Robust ar%f ag=%f ab=%f\n", avg_rm, avg_gm, avg_bm); + +} +*/ +/* +static void SobelWB(array2D &redsobel, array2D &greensobel, array2D &bluesobel, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh) +{ + BENCHFUN + int GX[3][3]; + int GY[3][3]; + + //Sobel Horizontal + GX[0][0] = 1; + GX[0][1] = 0; + GX[0][2] = -1; + GX[1][0] = 2; + GX[1][1] = 0; + GX[1][2] = -2; + GX[2][0] = 1; + GX[2][1] = 0; + GX[2][2] = -1; + + //Sobel Vertical + GY[0][0] = 1; + GY[0][1] = 2; + GY[0][2] = 1; + GY[1][0] = 0; + GY[1][1] = 0; + GY[1][2] = 0; + GY[2][0] = -1; + GY[2][1] = -2; + GY[2][2] = -1; + // inspired from Chen Guanghua Zhang Xiaolong + // edge detection to improve auto WB + + { +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int y = 0; y < bfh ; y++) { + for (int x = 0; x < bfw ; x++) { + if (y == 0 || y == bfh - 1 || x == 0 || x == bfw - 1) { + redsobel[y][x] = 0.f; + greensobel[y][x] = 0.f; + bluesobel[y][x] = 0.f; + } else { + float sumXr = 0.f; + float sumYr = 0.f; + float sumXg = 0.f; + float sumYg = 0.f; + float sumXb = 0.f; + float sumYb = 0.f; + + for (int i = -1; i < 2; i++) { + for (int j = -1; j < 2; j++) { + sumXr += GX[j + 1][i + 1] * redloc[y + i][x + j]; + sumXg += GX[j + 1][i + 1] * greenloc[y + i][x + j]; + sumXb += GX[j + 1][i + 1] * blueloc[y + i][x + j]; + sumYr += GY[j + 1][i + 1] * redloc[y + i][x + j]; + sumYg += GY[j + 1][i + 1] * greenloc[y + i][x + j]; + sumYb += GY[j + 1][i + 1] * blueloc[y + i][x + j]; + } + } + + //Edge strength + //we can add if need teta = atan2 (sumYr, sumXr) + redsobel[y][x] = CLIP(sqrt(SQR(sumXr) + SQR(sumYr))); + greensobel[y][x] = CLIP(sqrt(SQR(sumXg) + SQR(sumYg))); + bluesobel[y][x] = CLIP(sqrt(SQR(sumXb) + SQR(sumYb))); + } + } + } + } +} +*/ + +void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, const ColorManagementParams &cmp, const RAWParams &raw, const WBParams & wbpar) +{ + /* + copyright Jacques Desmis 6 - 2018 jdesmis@gmail.com + + This algorithm try to find temperature correlation between 20 to 200 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. + + I have test many many algo to find the first one that work :) + Probably (sure) there are improvment to do... + + I have create a table temperature with temp and white point with 100 values between 2000K and 12000K we can obviously change these values, more...with different steps + I have create or recuparate and transformed 200 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is largey enough. + I think this value of 200 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized + Of course we can increase this number :) + + 1) for the cuurent raw file we create a table for each temp of RGB multipliers + 2) then, I choose the "camera temp" to initialize calculation (why not) + 3) for this temp, I calculated XYZ values for the 200 spectrals datas + 4) then I create for the image an "histogram", but for xyY (Cie 1931 color space) + 5) for each pixel (in fact to accelerate only 1/10 for and 1/10 for y), I determine for each couple xy, the number of occurences + 6) I sort this result in ascending order + 7) in option we can sort in another maner to take into account chroma : chromax = x - white point x, chromay = y - white point y + 8) then I compare this result, with spectral datas found above in 3) with deltaE (limited to chroma) + 9) at this point we have xyY values that match Camera temp, and spectral datas associated + 10) then I recalculate RGB values from xyY histogram + 11) after, I vary temp, between 2000K to 12000K + 12) RGB values are recalcualted from 10) with RGB multipliers, and then xyY are calcualted for each temp + 13) spectral datas choose are recalculated with temp betwen 2000K to 12000K with matrix spectral calculation, that leeds to xyY values + 14) I calculated for each couple xy, Student correlation (without Snedecor test) + 15) the good result, is the best correlation + 16) we have found the best temperature where color image and color refences are correlate + 17) after we pass this value to improccoordinator + + 18) in a second part if camera green is out, I used an "extra" algorithm + 19) we make vary green between 2 limits (settings in option) + 20) betwen these green limits, we make slightly vary temp (settings in options) and recalculated RGB multipliers + 21) with this multipliers for the RGB color find in histogram we recalculate xyY + 22) we re-adjust references color for these xyY from 20) + 23) we add if chroma image is very low, k colors to degrad correlation + 24) then find all Student correlation for each couple green / temp + 25) sort these Student values, and choose the minimum + 26) then for the 3 better couple "temp / green" choose the one wher grren is neraest from 1. + + Some variables or function are not used, keep in case of + I have test with cat02 but result are not stable enough ! why ??, therefore cat02 neutralized + This operation is done (actually) 100 times and compare Student coefficient, and keep the absolute minimum, We can probably optimize.... + But actually the goal is to find the good algorithm ! + + I think, this algo is very good in most cases :) ...to verify of course. + You can used it in images :flowers, landscape, portrait, skin, where illuminants are "normal" (daylight, blackbody) + You must avoid when illuminant is non standard (fluorescent, LED...) and also, when the subject is lost in the image (some target to generate profiles). + + You can change 4 parameters in option.cc + Itcwb_thres : 34 by default ==> number of color used in final algorithm - between 10 and max 55 + Itcwb_sort : false by default, can improve algo if true, ==> sort value in something near chroma order, instead of histogram number + Itcwb_greenrange : 0 amplitude of green variation - between 0 to 2 + Itcwb_greendeltatemp : 1 - delta temp in green iterate loop for "extra" - between 0 to 4 + Itcwb_forceextra : false - if true force algorithm "extra" ("extra" is used when cmaera wbsettings are wrong) to all images + Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color comapre to size of histogram real color + itcwb_delta : 1 by defaut can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good + */ + // BENCHFUN + BENCHFUN + + + TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix("sRGB"); + double wp[3][3] = { + {wprof[0][0], wprof[0][1], wprof[0][2]}, + {wprof[1][0], wprof[1][1], wprof[1][2]}, + {wprof[2][0], wprof[2][1], wprof[2][2]} + }; + + TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix("sRGB"); + //inverse matrix user select + double wip[3][3] = { + {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, + {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, + {wiprof[2][0], wiprof[2][1], wiprof[2][2]} + }; + + array2D xc; + array2D yc; + array2D Yc; + + + + array2D histcurr; + array2D histcurrref; + + array2D xxyycurr; + array2D xxyycurr_reduc; + array2D xx_curref; + array2D yy_curref; + array2D YY_curref; + array2D xx_curref_reduc; + array2D yy_curref_reduc; + array2D R_curref_reduc; + array2D G_curref_reduc; + array2D B_curref_reduc; + + array2D reff_spect_xxyy; + array2D reff_spect_xxyy_prov; + array2D YYcurr; + array2D YY_curref_reduc; + array2D YYcurr_reduc; + // array2D reffYY; + // array2D reffYY_prov; + + array2D reff_spect_yy_camera; + array2D reff_spect_xx_camera; + + + int bfwitc = bfw / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 + int bfhitc = bfh / 10 + 1; + + xc(bfwitc, bfhitc); + yc(bfwitc, bfhitc); + Yc(bfwitc, bfhitc); + + typedef struct WbGreen { + double green; + float snedecor;//1. actually but put in case of confiance interval + } WbGreen; + + WbGreen gree[118] = {//symetric coefficient between 0.717 and 1.40 + {0.400, 1.f}, + {0.500, 1.f}, + {0.550, 1.f}, + {0.600, 1.f}, + {0.625, 1.f}, + {0.650, 1.f}, + {0.675, 1.f}, + {0.700, 1.f}, + {0.714, 1.f}, + {0.727, 1.f}, + {0.741, 1.f}, + {0.755, 1.f}, + {0.769, 1.f}, + {0.784, 1.f}, + {0.800, 1.f}, + {0.806, 1.f}, + {0.813, 1.f}, + {0.820, 1.f}, + {0.826, 1.f}, + {0.833, 1.f}, + {0.840, 1.f}, + {0.847, 1.f}, + {0.855, 1.f}, + {0.862, 1.f}, + {0.870, 1.f}, + {0.877, 1.f}, + {0.885, 1.f}, + {0.893, 1.f}, + {0.901, 1.f}, + {0.909, 1.f}, + {0.917, 1.f}, + {0.926, 1.f}, + {0.935, 1.f}, + {0.943, 1.f}, + {0.952, 1.f}, + {0.962, 1.f}, + {0.971, 1.f}, + {0.980, 1.f}, + {0.990, 1.f}, + {1.000, 1.f},//39 + {1.010, 1.f}, + {1.020, 1.f}, + {1.030, 1.f}, + {1.040, 1.f}, + {1.050, 1.f}, + {1.060, 1.f}, + {1.070, 1.f}, + {1.080, 1.f}, + {1.090, 1.f}, + {1.100, 1.f}, + {1.110, 1.f}, + {1.120, 1.f}, + {1.130, 1.f}, + {1.140, 1.f}, + {1.150, 1.f}, + {1.160, 1.f}, + {1.170, 1.f}, + {1.180, 1.f}, + {1.190, 1.f}, + {1.200, 1.f}, + {1.210, 1.f}, + {1.220, 1.f}, + {1.230, 1.f}, + {1.240, 1.f}, + {1.250, 1.f}, + {1.275, 1.f}, + {1.300, 1.f}, + {1.325, 1.f}, + {1.350, 1.f}, + {1.375, 1.f}, + {1.400, 1.f}, + {1.425, 1.f}, + {1.450, 1.f}, + {1.475, 1.f}, + {1.500, 1.f}, + {1.525, 1.f}, + {1.550, 1.f}, + {1.575, 1.f}, + {1.600, 1.f}, + {1.633, 1.f}, + {1.666, 1.f}, + {1.700, 1.f}, + {1.733, 1.f}, + {1.766, 1.f}, + {1.800, 1.f}, + {1.833, 1.f}, + {1.866, 1.f}, + {1.900, 1.f}, + {1.933, 1.f}, + {1.966, 1.f}, + {2.000, 1.f}, + {2.033, 1.f}, + {2.066, 1.f}, + {2.100, 1.f}, + {2.133, 1.f}, + {2.166, 1.f}, + {2.200, 1.f}, + {2.250, 1.f}, + {2.300, 1.f}, + {2.350, 1.f}, + {2.400, 1.f}, + {2.450, 1.f}, + {2.500, 1.f}, + {2.550, 1.f}, + {2.600, 1.f}, + {2.650, 1.f}, + {2.700, 1.f}, + {2.750, 1.f}, + {2.800, 1.f}, + {2.850, 1.f}, + {2.900, 1.f}, + {2.950, 1.f}, + {3.000, 1.f}, + {3.200, 1.f}, + {3.400, 1.f}, + {3.600, 1.f}, + {3.800, 1.f}, + {4.000, 1.f} + }; + int N_g = sizeof(gree) / sizeof(gree[0]); //number of green + + typedef struct RangeGreen { + int begin; + int end; + int ng; + } RangeGreen; + + RangeGreen Rangestandard; + Rangestandard.begin = 8; + Rangestandard.end = 70; + Rangestandard.ng = 62; + + RangeGreen Rangeextand; + Rangeextand.begin = 4; + Rangeextand.end = 77; + Rangeextand.ng = 73; + + RangeGreen Rangemax; + Rangemax.begin = 0; + Rangemax.end = N_g; + Rangemax.ng = N_g; + + RangeGreen Rangegreenused; + + if (settings->itcwb_greenrange == 0) { + Rangegreenused = Rangestandard; + } + + else if (settings->itcwb_greenrange == 1) { + Rangegreenused = Rangeextand; + } else { + Rangegreenused = Rangemax; + } + + // printf("rangemin=%i rangmax=%i\n", Rangegreenused.begin, Rangegreenused.end); + + + + typedef struct WbTxyz { + double Tem; + double XX; + double ZZ; + } WbTxyz; + //we can change step to increase precision if need - also in Colortemp.cc with same changes + //I don't know how to pass this structure to Colortemp ! + WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after + {2001., 1.273842, 0.145295}, + {2101., 1.244008, 0.167533}, + {2201., 1.217338, 0.190697}, + {2301., 1.193444, 0.214632}, + {2401., 1.171996, 0.239195}, + {2501., 1.152883, 0.264539}, + {2605., 1.134667, 0.290722}, + {2655., 1.126659, 0.303556}, + {2705., 1.119049, 0.316446}, + {2755., 1.111814, 0.329381}, + {2803., 1.105381, 0.342193}, + {2856., 1.098258, 0.355599}, + {2910., 1.091550, 0.369645}, + {2960., 1.085649, 0.382655}, + {3003., 1.080982, 0.394258}, + {3050., 1.075727, 0.406057}, + {3103., 1.070277, 0.419815}, + {3153., 1.065384, 0.432769}, + {3203., 1.060906, 0.446161}, + {3250., 1.056535, 0.457806}, + {3303., 1.052034, 0.471422}, + {3353., 1.047990, 0.484218}, + {3400., 1.044547, 0.496719}, + {3450., 1.040667, 0.508891}, + {3500., 1.037145, 0.521523}, + {3550., 1.033783, 0.534090}, + {3600., 1.030574, 0.546590}, + {3650., 1.027510, 0.559020}, + {3699., 1.024834, 0.571722}, + {3801., 1.019072, 0.596102}, + {3851., 1.016527, 0.608221}, + {3902., 1.014244, 0.621136}, + {3952., 1.011729, 0.632447}, + {4002., 0.996153, 0.609518}, + {4052., 0.993720, 0.620805}, + {4102., 0.993908, 0.631520}, + {4152., 0.989179, 0.643262}, + {4202., 0.989283, 0.653999}, + {4252., 0.985039, 0.665536}, + {4302., 0.985067, 0.676288}, + {4352., 0.981271, 0.687599}, + {4402., 0.981228, 0.698349}, + {4452., 0.977843, 0.709425}, + {4502., 0.977736, 0.720159}, + {4552., 0.974728, 0.730993}, + {4602., 0.974562, 0.741698}, + {4652., 0.971899, 0.752284}, + {4702., 0.971681, 0.762949}, + {4752., 0.969335, 0.773285}, + {4802., 0.969069, 0.783899}, + {4827., 0.967570, 0.788836}, + {4852., 0.967011, 0.793982}, + {4877., 0.966465, 0.799108}, + {4902., 0.965933, 0.804214}, + {4927., 0.965414, 0.809229}, + {4952., 0.964908, 0.814366}, + {4977., 0.964415, 0.819412}, + {5002., 0.963934, 0.824438}, + {5027., 0.963465, 0.829444}, + {5052., 0.963008, 0.834429}, + {5077., 0.962563, 0.839395}, + {5102., 0.962129, 0.844339}, + {5127., 0.961706, 0.849263}, + {5152., 0.961294, 0.854166}, + {5177., 0.960893, 0.859049}, + {5202., 0.960501, 0.863911}, + {5252., 0.959749, 0.873572}, + {5302., 0.959313, 0.883815}, + {5352., 0.958361, 0.892644}, + {5402., 0.957903, 0.902793}, + {5452., 0.957116, 0.911379}, + {5502., 0.956639, 0.921431}, + {5552., 0.956002, 0.929779}, + {5602., 0.955509, 0.939728}, + {5652., 0.955008, 0.947842}, + {5702., 0.954502, 0.957685}, + {5752., 0.954124, 0.965569}, + {5802., 0.953608, 0.975303}, + {5852., 0.953342, 0.982963}, + {5902., 0.952818, 0.992584}, + {5952., 0.952652, 1.000025}, + {6002., 0.952122, 1.009532}, + {6052., 0.952047, 1.016759}, + {6102., 0.951514, 1.026149}, + {6152., 0.951520, 1.033168}, + {6202., 0.950985, 1.042439}, + {6252., 0.951064, 1.049256}, + {6302., 0.950530, 1.058406}, + {6352., 0.950674, 1.065027}, + {6402., 0.950143, 1.074055}, + {6452., 0.950345, 1.080484}, + {6502., 0.950201, 1.088097}, + {6552., 0.950070, 1.095633}, + {6602., 0.949952, 1.103094}, + {6652., 0.949846, 1.110479}, + {6702., 0.949752, 1.119138}, + {6752., 0.949668, 1.125027}, + {6802., 0.949596, 1.132190}, + {6902., 0.949033, 1.147691}, + {7002., 0.949402, 1.160129}, + {7152., 0.949348, 1.180429}, + {7301., 0.948896, 1.201432}, + {7451., 0.949434, 1.219076}, + {7601., 0.949099, 1.239061}, + {7751., 0.949729, 1.255559}, + {7901., 0.949498, 1.274460}, + {8151., 0.950361, 1.300912}, + {8301., 0.950253, 1.318464}, + {8451., 0.950966, 1.332651}, + {8601., 0.950941, 1.349261}, + {8801., 0.951772, 1.367421}, + {9001., 0.951969, 1.387639}, + {9201., 0.952784, 1.404422}, + {9401., 0.953081, 1.423213}, + {9901., 0.954537, 1.464134}, + {10501., 0.956321, 1.508623}, + {11001., 0.957747, 1.541281}, + {12001., 0.960440, 1.601019} + }; + int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point + + int nbt = N_t; + float **Tx = nullptr; + float **Ty = nullptr; + float **Tz = nullptr; + float **Ta = nullptr; + float **Tb = nullptr; + float **TL = nullptr; + double *TX = nullptr; + double *TY = nullptr; + double *TZ = nullptr; + int *good_spectral = nullptr; + // float studgood = 1000.f; + + int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values + Tx = new float*[Nc]; + + for (int i = 0; i < Nc; i++) { + Tx[i] = new float[nbt]; + } + + Ty = new float*[Nc]; + + for (int i = 0; i < Nc; i++) { + Ty[i] = new float[nbt]; + } + + Tz = new float*[Nc]; + + for (int i = 0; i < Nc; i++) { + Tz[i] = new float[nbt]; + } + + Ta = new float*[Nc]; + + for (int i = 0; i < Nc; i++) { + Ta[i] = new float[nbt]; + } + + Tb = new float*[Nc]; + + for (int i = 0; i < Nc; i++) { + Tb[i] = new float[nbt]; + } + + TL = new float*[Nc]; + + for (int i = 0; i < Nc; i++) { + TL[i] = new float[nbt]; + } + + TX = new double [Nc]; + + + TY = new double [Nc]; + + + TZ = new double [Nc]; + + good_spectral = new int [Nc]; + + for (int i = 0; i < Nc; i++) { + good_spectral[i] = 0; + } + + float *rmm = nullptr; + rmm = new float [N_t]; + + float *gmm = nullptr; + gmm = new float [N_t]; + + float *bmm = nullptr; + bmm = new float [N_t]; + + int siza = 167;//size of histogram + int maxval = 25; + + //tempref and greenref are camera wb values. + // I used them by default to select good spectral values !! + if (tempref > 12000.f) { + tempref = 12000.f; + } + + int repref = 0; + + for (int tt = 0; tt < N_t; tt++) { + if (Txyz[tt].Tem > tempref) { + repref = tt;//show the select temp + break; + } + } + + + //calculate R G B multiplier in function illuminant and temperature + for (int tt = 0; tt < N_t; tt++) { + double r, g, b; + float rm, gm, bm; + ColorTemp WBiter = ColorTemp(Txyz[tt].Tem, greenitc, 1.f, "Custom"); + WBiter.getMultipliers(r, g, b); + rm = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; + gm = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; + bm = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; + + const float new_pre_mul[4] = { ri->get_pre_mul(0) / rm, ri->get_pre_mul(1) / gm, ri->get_pre_mul(2) / bm, ri->get_pre_mul(3) / gm }; + float new_scale_mul[4]; + bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) + || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); + float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); + + rm = new_scale_mul[0] / scale_mul[0] * gain; + gm = new_scale_mul[1] / scale_mul[1] * gain; + bm = new_scale_mul[2] / scale_mul[2] * gain; + rmm[tt] = rm / gm; + gmm[tt] = gm / gm; + bmm[tt] = bm / gm; + } + + struct hiss { + int histnum; + int index; + int interest; + bool operator()(const hiss& lhis, const hiss& rhis) + { + return lhis.histnum < rhis.histnum; + } + + } ; + + //intermediate structure + struct chrom { + float chroxy_number; + float chroxy; + float chrox; + float chroy; + float Y; + int index; + int interest; + bool operator()(const chrom& lchro, const chrom& rchro) + { + return lchro.chroxy_number < rchro.chroxy_number; + } + + } ; + + int histxy[siza] = {};//number of values for each pair xy + + float area[siza] = {};//multiplier for compensation differences area ==> big areas are rare near limit prophotos or more + + int inter[siza] = {}; //interest for photographie 1 = small (limit gamut) 2 = normal 3 = major (skin, sky, neutral) + + float xxx[siza] = {};//for color references calculated ==> max in images "like histogram" + + float yyy[siza] = {}; + + float YYY[siza] = {};//not used directly, but necessary to keep good range + + for (int p = 0; p < siza; p++) { + histxy[p] = 0; + area[p] = 20.f; + inter[p] = 1; + } + + float estimchrom = 0.f; + + bool separated = true; + int w = -1; + //printf("greenrefraw=%f\n", greenref); + reff_spect_xxyy(N_t, 2 * Nc + 2); + reff_spect_xxyy_prov(N_t, 2 * Nc + 2); + reff_spect_yy_camera(N_t, 2 * Nc + 2); + reff_spect_xx_camera(N_t, 2 * Nc + 2); + + // reffYY(N_t, 2 * Nc);//in case of + //reffYY_prov(N_t, 2 * Nc); + + //here we select the good spectral color inside the 113 values + //call tempxy to calculate for 114 color references Temp and XYZ with cat02 + + if (separated) { + ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants + + //find the good spectral values + //calculate xy reference spectral for tempref + for (int j = 0; j < Nc ; j++) { + reff_spect_xx_camera[j][repref] = TX[j] / (TX[j] + TY[j] + TZ[j]); // x from xyY + reff_spect_yy_camera[j][repref] = TY[j] / (TX[j] + TY[j] + TZ[j]); // y from xyY + } + + int deltarepref = settings->itcwb_delta; + + for (int nn = 0; nn <= 2; nn++) { + //three loop to refine color if temp camera is probably not very good + int drep = 0; + + if (nn == 0) { + drep = -deltarepref; + } + + if (nn == 2) { + drep = +deltarepref; + } + + int rep = repref + drep; + + if (rep > N_t) { + rep = N_t; + } + + if (rep < 0) { + rep = 0; + } + + //initialize calculation of xy current for tempref + for (int y = 0; y < bfh ; y += 10) { + for (int x = 0; x < bfw ; x += 10) { + int yy = y / 10; + int xx = x / 10 ; + float x_c = 0.f, y_c = 0.f, Y_c = 0.f; + float x_x = 0.f, y_y = 0.f, z_z = 0.f; + float RR = rmm[rep] * redloc[y][x]; + float GG = gmm[rep] * greenloc[y][x]; + float BB = bmm[rep] * blueloc[y][x]; + Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); + xc[yy][xx] = x_c; + yc[yy][xx] = y_c; + Yc[yy][xx] = Y_c; + } + + } + + //histogram xy depend of temp...but in most cases D45 ..D65.. + //calculate for this image the mean values for each family of color, near histogram x y (number) + //xy vary from x 0..0.77 y 0..0.82 + //neutral values are near x=0.34 0.33 0.315 0.37 y =0.35 0.36 0.34 + //skin are about x 0.45 0.49 y 0.4 0.47 + //blue sky x=0.25 y=0.28 and x=0.29 y=0.32 + // step about 0.02 x 0.32 0.34 y= 0.34 0.36 skin -- sky x 0.24 0.30 y 0.28 0.32 + //big step about 0.2 + + histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy, area, inter); + } + + //calculate x y Y + int sizcurrref = siza;//choice of number of correlate colors in image + histcurrref(N_t, sizcurrref); + xx_curref(N_t, sizcurrref); + yy_curref(N_t, sizcurrref); + YY_curref(N_t, sizcurrref); + xx_curref_reduc(N_t, sizcurrref); + yy_curref_reduc(N_t, sizcurrref); + YY_curref_reduc(N_t, sizcurrref); + R_curref_reduc(N_t, sizcurrref); + G_curref_reduc(N_t, sizcurrref); + B_curref_reduc(N_t, sizcurrref); + + + hiss Wbhis [siza]; + int n1 = 0; + int n4 = 0; + int n15 = 0; + int n30 = 0; + int ntr = 0; + + for (int nh = 0; nh < siza; nh++) { + Wbhis[nh].histnum = histxy[nh]; + Wbhis[nh].index = nh; + Wbhis[nh].interest = inter[nh]; + } + + //sort in ascending order + std::sort(Wbhis, Wbhis + siza, Wbhis[0]); + + for (int nh = 0; nh < siza; nh++) { +// printf("nh=%i", Wbhis[nh].index); + } + + //part to improve + for (int nh = 0; nh < siza; nh++) { + if (Wbhis[nh].histnum < 1) { + n1++; //keep only existing color but avoid to small + } + + if (Wbhis[nh].histnum < 4) { + n4++; //keep only existing color but avoid to small + } + + if (Wbhis[nh].histnum < 15) { + n15++; //keep only existing color but avoid to small + } + + if (Wbhis[nh].histnum < 30) { + n30++; //keep only existing color but avoid to small + } + + + } + + + ntr = n30; + + if (ntr > (siza - 25)) { + ntr = n15; //if to less elements 25 elements mini + } + + if (ntr > (siza - 23)) { + ntr = n4; //if to less elements 25 elements mini + } + + if (ntr > (siza - 20)) { + ntr = n1; //if to less elements 20 elements mini - normally never be used ! + } + + int sizcurr2ref = sizcurrref - ntr; + int sizcu30 = sizcurrref - n30; + int sizcu4 = sizcurrref - n4; + +// printf("sizcurr2ref=%i sizcur_30=%i siecur_4=%i \n", sizcurr2ref, sizcu30, sizcu4); + sizcu4 = sizcu30;//arbitrary mini size if 30 result, ==> in full image 3000 pixels + + if (sizcu4 > 55) { + sizcu4 = 55; + } + + chrom wbchro[sizcu4]; + double swpr = (Txyz[repref].XX + Txyz[repref].ZZ + 1.); + double xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes + double ywpr = 1. / swpr; + + + for (int i = 0; i < sizcu4; i++) { //take the max values + int j = i; + histcurrref[j][repref] = (float) Wbhis[siza - (j + 1)].histnum; + xx_curref[j][repref] = xxx[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; + yy_curref[j][repref] = yyy[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; + YY_curref[j][repref] = YYY[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; +// printf("xx=%f yy=%f\n", xx_curref[j][repref], yy_curref[j][repref]); + } + + estimchrom = 0.f; + + for (int nh = 0; nh < sizcu4; nh++) { + float chxy = sqrt(SQR(xx_curref[nh][repref] - xwpr) + SQR(yy_curref[nh][repref] - ywpr)); + wbchro[nh].chroxy_number = chxy * sqrt(histcurrref[nh][repref]); + wbchro[nh].chroxy = sqrt(chxy); + wbchro[nh].chrox = xx_curref[nh][repref]; + wbchro[nh].chroy = yy_curref[nh][repref]; + wbchro[nh].Y = YY_curref[nh][repref]; + wbchro[nh].index = nh; + estimchrom += chxy; + } + + estimchrom /= sizcu4; + //printf("estimchrom=%f \n", estimchrom); + + if (settings->itcwb_sort) { //sort in ascending with chroma values + + std::sort(wbchro, wbchro + sizcu4, wbchro[0]); + } + + /* + for (int nh = 0; nh < sizcu4; nh++) { + printf("nh=%i chroma_xy=%f chrox=%f chroy=%f\n", nh, wbchro[nh].chroxy, wbchro[nh].chrox, wbchro[nh].chroy); + } + */ + maxval = settings->itcwb_thres;//max values of color to find correllation + + if (maxval < 10) { + maxval = 10; + } + + if (maxval > 55) { + maxval = 55; + } + + if (sizcurr2ref > maxval) { + sizcurr2ref = maxval; //keep about the biggest values, + } + + + for (int i = 0; i < sizcurr2ref; i++) { + //is condition chroxy necessary ? + if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral + w++; + xx_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chrox; + yy_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chroy; + YY_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].Y; + // printf("xx_cu=%f yy_cu=%f Y=%f chro=%f\n", xx_curref_reduc[w][repref], yy_curref_reduc[w][repref], YY_curref_reduc[w][repref],sqrt(wbchro[sizcu4 - (i + 1)].chroxy)); + } + } + + //calculate deltaE xx to find best values of spectrals datas + int maxnb = settings->itcwb_sizereference; + + if (maxnb > 5) { + maxnb = 5; + } + + if (maxnb < 1) { + maxnb = 1; + } + + + if (settings->itcwb_thres > 39) { + maxnb = 200 / settings->itcwb_thres; + } + + for (int nb = 1; nb <= maxnb; nb ++) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 + for (int i = 0; i < w; i++) { + float mindeltaE = 100000.f; + int kN = 0; + + for (int j = 0; j < Nc ; j++) { + if (good_spectral[j] == 0) { + float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); + + if (deltaE < mindeltaE) { + mindeltaE = deltaE; + kN = j; + } + } + } + + good_spectral[kN] = 1;//good spectral are spectral color that match color histogram xy + //printf("k=%i ", kN); + } + } + +//reconvert to RGB for "reduction" + for (int i = 0; i < w; i++) { + float X = 65535.f * xx_curref_reduc[i][repref] * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; + float Y = 65535.f * YY_curref_reduc[i][repref]; + float Z = 65535.f * (1.f - xx_curref_reduc[i][repref] - yy_curref_reduc[i][repref]) * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; + float r, g, b; + Color::xyz2rgb(X, Y, Z, r, g, b, wip); + r /= rmm[repref]; + g /= gmm[repref]; + b /= bmm[repref]; + R_curref_reduc[i][repref] = r; + G_curref_reduc[i][repref] = g; + B_curref_reduc[i][repref] = b; + + } + + } + +//end first part + + + + //Now begin real calculations + separated = false; + ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants + + int kk = -1; + + //calculate x y Y + int sizcurr = siza;//choice of number of correlate colors in image + histcurr(N_t, sizcurr); + xxyycurr(N_t, 2 * sizcurr); + xxyycurr_reduc(N_t, 2 * sizcurr); + float minstud = 100000.f; + int goodref = 1; + + YYcurr(N_t, sizcurr); + YYcurr_reduc(N_t, sizcurr); + +//calculate x y z for each pixel with multiplier rmm gmm bmm + kk = -1; + + for (int tt = 0; tt < N_t; tt++) {//N_t + // double swp = (Txyz[tt].XX + Txyz[tt].ZZ + 1.); + // double xwp = Txyz[tt].XX / swp; + // double ywp = 1. / swp; + + + for (int i = 0; i < w; i++) { + float x_c = 0.f, y_c = 0.f, Y_c = 0.f; + float x_x = 0.f, y_y = 0.f, z_z = 0.f; + + float RR = rmm[tt] * R_curref_reduc[i][repref]; + float GG = gmm[tt] * G_curref_reduc[i][repref]; + float BB = bmm[tt] * B_curref_reduc[i][repref]; + Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); + // xxyycurr_reduc[2 * i][tt] = fabs(x_c - xwp); + // xxyycurr_reduc[2 * i + 1][tt] = fabs(y_c - ywp); + xxyycurr_reduc[2 * i][tt] = x_c; + xxyycurr_reduc[2 * i + 1][tt] = y_c; + // printf("w=%i tt=%i xx=%f yy=%f\n",i, tt, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i +1][tt]); + + } + + for (int j = 0; j < Nc ; j++) { + reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY + reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY + //reffYY_prov[j][tt] = Ty[j][tt];//Y + // printf("w=%i tt=%i xx=%f yy=%f\n",j, tt,reffxxyy_prov[2 * kk][tt] ,reffxxyy_prov[2 * kk + 1][tt]); + + } + + kk = -1; + + for (int i = 0; i < Nc ; i++) { + if (good_spectral[i] == 1) { + kk++; + //we calculate now absolute chroma for each spectral color + // reffxxyy[2 * kk][tt] = fabs(reffxxyy_prov[2 * i][tt] - xwp); + // reffxxyy[2 * kk + 1][tt] = fabs(reffxxyy_prov[2 * i + 1][tt] - ywp); + reff_spect_xxyy[2 * kk][tt] = reff_spect_xxyy_prov[2 * i][tt]; + reff_spect_xxyy[2 * kk + 1][tt] = reff_spect_xxyy_prov[2 * i + 1][tt]; + //printf("w=%i tt=%i xx=%f yy=%f\n",i, tt,reffxxyy[2 * kk][tt] ,reffxxyy[2 * kk + 1][tt]); + // reffYY[kk][tt] = reffYY_prov[i][tt]; + } + } + + + /* + //cat02 not need and does not work well + float nnx, nny, nnz; + + if(wbpar.wbcat02Method == "cam") {//code no update... + for(int k=0;k < sizcurr3; k++) { + float nnx = xxyycurr[2 * k][tt]*YYcurr[k][tt] / xxyycurr[2 * k + 1][tt]; + float nny = YYcurr[k][tt]; + float nnz = (1.f -xxyycurr[2 * k][tt] - xxyycurr[2 * k + 1][tt] )*YYcurr[k][tt]/xxyycurr[2 * k + 1][tt]; + float CAM02BB00 = 1.0f, CAM02BB01=1.0f, CAM02BB02=1.0f, CAM02BB10=1.0f, CAM02BB11=1.0f, CAM02BB12=1.0f, CAM02BB20=1.0f, CAM02BB21=1.0f, CAM02BB22=1.0f; //for CIECAT02 + float Xwb = Txyz[20].XX; + float Ywb = 1.; + float Zwb = Txyz[20].ZZ; + float xn, yn, zn; + ColorTemp::icieCAT02float(Xwb, Ywb, Zwb, CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22, 1.0f); + + xn = CAM02BB00 * nnx + CAM02BB01 * nny + CAM02BB02 * nnz ; + yn = CAM02BB10 * nnx + CAM02BB11 * nny + CAM02BB12 * nnz ; + zn = CAM02BB20 * nnx + CAM02BB21 * nny + CAM02BB22 * nnz; + float som = xn + yn + zn; + xxyycurr[2 * k][tt] = xn / som; + xxyycurr[2 * k + 1][tt] = yn / som; + YYcurr[k][tt] = yn; + } + } + */ + + float student = 0.f; + + + studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kk, tt, student); //for xy + //printf("tt=%i st=%f\n", tt, student); + float abstud = fabs(student); + + if (abstud < minstud) { // find the minimum Student + minstud = abstud; + goodref = tt; + } + + } + + if (extra) { + struct Tempgreen { + float student; + int tempref; + int greenref; + bool operator()(const Tempgreen& ltg, const Tempgreen& rtg) + { + return ltg.student < rtg.student; + } + }; + Tempgreen Tgstud[N_g]; + + for (int i = 0; i < N_g; i++) {//init variables with + Tgstud[i].student = 1000.f;//max value to initialize + Tgstud[i].tempref = 57; + Tgstud[i].greenref = 39; + + } + + int dgoodref = settings->itcwb_greendeltatemp; + + if (dgoodref > 4) { + dgoodref = 4; + } + + int scantempbeg = goodref - (dgoodref + 1); + + if (scantempbeg < 1) { + scantempbeg = 1; + } + + int scantempend = goodref + dgoodref; + + if (scantempend > N_t - 1) { + scantempend = N_t - 1; + } + + int kkg = -1; + + for (int gr = Rangegreenused.begin; gr < Rangegreenused.end; gr++) { + float minstudgr = 100000.f; + int goodrefgr = 1; + + for (int tt = scantempbeg; tt < scantempend; tt++) { + double r, g, b; + float rm, gm, bm; + ColorTemp WBiter = ColorTemp(Txyz[tt].Tem, gree[gr].green, 1.f, "Custom"); + WBiter.getMultipliers(r, g, b); + rm = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; + gm = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; + bm = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; + + const float new_pre_mul[4] = { ri->get_pre_mul(0) / rm, ri->get_pre_mul(1) / gm, ri->get_pre_mul(2) / bm, ri->get_pre_mul(3) / gm }; + float new_scale_mul[4]; + bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) + || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); + float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); + + rm = new_scale_mul[0] / scale_mul[0] * gain; + gm = new_scale_mul[1] / scale_mul[1] * gain; + bm = new_scale_mul[2] / scale_mul[2] * gain; + rmm[tt] = rm / gm; + gmm[tt] = gm / gm; + bmm[tt] = bm / gm; + } + + + for (int tt = scantempbeg; tt < scantempend; tt++) {//N_t + // double swp = (Txyz[tt].XX + Txyz[tt].ZZ + 1.); + // double xwp = Txyz[tt].XX / swp; + // double ywp = 1. / swp; + + + for (int i = 0; i < w; i++) { + float x_c = 0.f, y_c = 0.f, Y_c = 0.f; + float x_x = 0.f, y_y = 0.f, z_z = 0.f; + + float RR = rmm[tt] * R_curref_reduc[i][repref]; + float GG = gmm[tt] * G_curref_reduc[i][repref]; + float BB = bmm[tt] * B_curref_reduc[i][repref]; + Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); + xxyycurr_reduc[2 * i][tt] = x_c; + xxyycurr_reduc[2 * i + 1][tt] = y_c; + // printf("w=%i tt=%i xx=%f yy=%f\n",i, tt, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i +1][tt]); + + } + + for (int j = 0; j < Nc ; j++) { + reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY + reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY + // reffYY_prov[j][tt] = Ty[j][tt];//Y + // printf("w=%i tt=%i xx=%f yy=%f\n",j, tt,reffxxyy_prov[2 * kk][tt] ,reffxxyy_prov[2 * kk + 1][tt]); + + } + + kkg = -1; + + //degrade correllation with color high chroma, but not too much...seems not good, but keep in case of?? + if (estimchrom < 0.025f) {//very smal value of chroma for image + + good_spectral[0] = 1;//blue + //good_spectral[1] = 1;//blue + // good_spectral[97] = 1;//blue + // good_spectral[93] = 1;//purple + // good_spectral[7] = 1;//green + good_spectral[11] = 1;//green + //good_spectral[42] = 1;//green + // good_spectral[75] = 1;//green + // good_spectral[46] = 1;//red + good_spectral[62] = 1;//red + // good_spectral[63] = 1;//red + // good_spectral[91] = 1;//ora + + } + + for (int i = 0; i < Nc ; i++) { + if (good_spectral[i] == 1) { + kkg++; + reff_spect_xxyy[2 * kkg][tt] = reff_spect_xxyy_prov[2 * i][tt]; + reff_spect_xxyy[2 * kkg + 1][tt] = reff_spect_xxyy_prov[2 * i + 1][tt]; + // reffYY[kkg][tt] = reffYY_prov[i][tt]; + } + } + + float studentgr = 0.f; + + studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kkg, tt, studentgr); //for xy + float abstudgr = fabs(studentgr); + + if (abstudgr < minstudgr) { // find the minimum Student + minstudgr = abstudgr; + goodrefgr = tt; + } + + Tgstud[gr].tempref = goodrefgr; + Tgstud[gr].greenref = gr; + Tgstud[gr].student = minstudgr; + + } + + } + + std::sort(Tgstud, Tgstud + N_g, Tgstud[0]); + + for (int j = 0; j < 20; j++) { + // printf("reftemp=%i refgreen=%i stud=%f \n", Tgstud[j].tempref, Tgstud[j].greenref, Tgstud[j].student); + } + + //now search the value of green the nearest of 1 with a good student value + // I take the 3 first values + //I admit a symetrie in green coefiicient for rgb multiplier...probably not excatly true + //perhaps we can used a Snedecor test ? but why...at least we have confidence interval > 90% + int greengood; + int greengoodprov; + int goodrefprov; + float studprov; + int goodref0 = Tgstud[0].tempref; + int greengood0 = Tgstud[0].greenref - 39;//39 green = 1 + float stud0 = Tgstud[0].student; + int goodref1 = Tgstud[1].tempref; + float stud1 = Tgstud[1].student; + int greengood1 = Tgstud[1].greenref - 39; + int goodref2 = Tgstud[2].tempref; + int greengood2 = Tgstud[2].greenref - 39; + float stud2 = Tgstud[2].student; + + if (fabs(greengood2) < fabs(greengood1)) { + greengoodprov = greengood2; + goodrefprov = goodref2; + studprov = stud2; + } else { + greengoodprov = greengood1; + goodrefprov = goodref1; + studprov = stud1; + + } + + if (fabs(greengoodprov) < fabs(greengood0)) { + goodref = goodrefprov; + greengood = greengoodprov + 39; + studgood = studprov; + + } else { + goodref = goodref0; + greengood = greengood0 + 39; + studgood = stud0; + } + + tempitc = Txyz[goodref].Tem; + greenitc = gree[greengood].green; + + } + + histcurr(0, 0); + histcurrref(0, 0); + xxyycurr(0, 0); + xxyycurr_reduc(0, 0); + xx_curref(0, 0); + yy_curref(0, 0); + YY_curref(0, 0); + + reff_spect_xxyy(0, 0); + YYcurr(0, 0); + YYcurr_reduc(0, 0); + reff_spect_yy_camera(0, 0); + reff_spect_xx_camera(0, 0); + xx_curref_reduc(0, 0); + yy_curref_reduc(0, 0); + YY_curref_reduc(0, 0); + + R_curref_reduc(0, 0); + G_curref_reduc(0, 0); + B_curref_reduc(0, 0); + + reff_spect_xxyy_prov(0, 0); + +// reffYY(0, 0); +// reffYY_prov(0, 0); + + avg_rm = 10000.f * rmm[goodref]; + avg_gm = 10000.* gmm[goodref]; + avg_bm = 10000.f * bmm[goodref]; + + if (!extra) { + tempitc = Txyz[goodref].Tem; + } + + + printf("ITCWB tempitc=%f gritc=%f stud=%f \n", tempitc, greenitc, studgood); + + + xc(0, 0); + yc(0, 0); + Yc(0, 0); + + + + for (int i = 0; i < Nc; i++) { + delete [] Tx[i]; + delete [] Ty[i]; + delete [] Tz[i]; + delete [] Ta[i]; + delete [] Tb[i]; + delete [] TL[i]; + + } + + delete [] Tx; + delete [] Ty; + delete [] Tz; + delete [] Ta; + delete [] Tb; + delete [] TL; + delete [] TX; + delete [] TY; + delete [] TZ; + delete [] good_spectral; + + + delete [] rmm; + delete [] gmm; + delete [] bmm; + + + + +} + +void RawImageSource::WBauto(double & tempref, double & greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double & avg_rm, double & avg_gm, double & avg_bm, double & tempitc, double & greenitc, float & studgood, bool & twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams & cmp, const RAWParams & raw) +{ + BENCHFUN + //auto white balance +// printf ("AUtoWB OK\n"); +/* + array2D redsobel; + array2D greensobel; + array2D bluesobel; + + redsobel(bfw, bfh); + greensobel(bfw, bfh); + bluesobel(bfw, bfh); +*/ + double avg_r = 0.; + double avg_g = 0.; + double avg_b = 0.; + int rn = 0, gn = 0, bn = 0; +// constexpr double clipHigh = 65500.0; +// constexpr double clipLow = 0; //1500.0; + bool edg = false; + bool greyn = false; + bool robust = false; + bool itc = false; + + if (wbpar.method == "autorobust") { + // printf("autorob\n"); + // RobustWB(redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm); + + } + + if (wbpar.method == "autedg") { + // printf("autoedge\n"); + // edg = true; + } + + if (wbpar.method == "aut") { +// greyn = true; + } + + + + if (wbpar.method == "autitcgreen") { + bool extra = false; + + if (greenref > 0.77 && greenref < 1.3) { + greenitc = greenref; + extra = false; + + if (settings->itcwb_forceextra) { + extra = true; + } + } else { + greenitc = 1.; + extra = true; + } + + // greenref = wbpar.green; +// printf("gree=%f\n", greenref); + tempitc = 5000.; +// greenitc = greenref; + itc = true; + + if (itc) { + ItcWB(extra, tempref, greenref, tempitc, greenitc, studgood, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, cmp, raw, wbpar); + } + } + + if (wbpar.method == "autedgsdw") { + // SobelWB(redsobel, greensobel, bluesobel, redloc, greenloc, blueloc, bfw, bfh); + // SdwWB(redsobel, greensobel, bluesobel, bfw, bfh, avg_rm, avg_gm, avg_bm); + + } + + if (wbpar.method == "autedgrob") { + // SobelWB(redsobel, greensobel, bluesobel, redloc, greenloc, blueloc, bfw, bfh); + // RobustWB(redsobel, greensobel, bluesobel, bfw, bfh, avg_rm, avg_gm, avg_bm); + + } + + if (wbpar.method == "autosdw") { + // SdwWB(redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm); + + + // printf("bfw=%i bfh=%i begx=%i begy=%i xEn=%i yEn=%i cx=%i\n", bfw, bfh, begx, begy, xEn, yEn, cx); + } + +/* + if (edg) { + SobelWB(redsobel, greensobel, bluesobel, redloc, greenloc, blueloc, bfw, bfh); + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:avg_r, avg_g, avg_b, rn, gn, bn) +#endif + + for (int y = 0; y < bfh ; y++) { + for (int x = 0; x < bfw ; x++) { + if (redsobel[y][x] < clipHigh && redsobel[y][x] > clipLow) { + avg_r += redsobel[y][x]; + rn++; + } + + if (greensobel[y][x] < clipHigh && greensobel[y][x] > clipLow) { + avg_g += greensobel[y][x]; + gn++; + } + + if (bluesobel[y][x] < clipHigh && bluesobel[y][x] > clipLow) { + avg_b += bluesobel[y][x]; + bn++; + } + } + } + } +*/ +/* + if (greyn) { +#ifdef _OPENMP + #pragma omp parallel for reduction(+:avg_r, avg_g, avg_b, rn, gn, bn) +#endif + + for (int y = 0; y < bfh ; y++) { + for (int x = 0; x < bfw ; x++) { + if (redloc[y][x] < clipHigh && redloc[y][x] > clipLow) { + avg_r += redloc[y][x]; + rn++; + } + + if (greenloc[y][x] < clipHigh && greenloc[y][x] > clipLow) { + avg_g += greenloc[y][x]; + gn++; + } + + if (blueloc[y][x] < clipHigh && blueloc[y][x] > clipLow) { + avg_b += blueloc[y][x]; + bn++; + } + } + } + } +*/ +// float varir = localr.equal; +// float varib = 1.f - (varir - 1.f); + + + +//CAT02 inverse + +// + if (greyn || edg) { + avg_rm = avg_r / rn; + avg_gm = avg_g / gn; + avg_bm = avg_b / bn; + } + + /* + //inverse cat02 + if (localr.wbcamMethod == "cat" || localr.wbcamMethod == "gamcat") { + //printf("Inverse CAT02\n"); + float x, y, z; + // cat02_to_xyzfloatraw ( x, y, z, avg_rm, avg_gm, avg_bm); + Color::xyz2rgbraw (x, y, z, avg_rm, avg_gm, avg_bm, wip); + } + */ + if (edg) { + // printf("Local sobel avgr = % f avgg = % f avgb = % f \n", avg_rm, avg_gm, avg_bm); + } + + if (greyn || robust) { + // printf("Local rgb avgr = % f avgg = % f avgb = % f \n", avg_rm, avg_gm, avg_bm); + } + +/* + redsobel(0, 0); + greensobel(0, 0); + bluesobel(0, 0); +*/ +} + + +void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) +{ + //used by auto WB local to calculate red, green, blue in local region + // int bfh = bf_h + 3, bfw = bf_w + 3; + int bfh = H, bfw = W; + + if (local) { + bfh = bf_h + 3; + bfw = bf_w + 3; + } + + // printf ("bfh=%i bfw=%i H=%i W=%i \n", bf_h, bf_w, H, W); + ColorManagementParams cmp; + + //TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(cmp.working); + // TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (cmp.working); + /* + float toxyz[3][3] = { + { + static_cast ( wprof[0][0] / Color::D50x), + static_cast ( wprof[0][1] / Color::D50x), + static_cast ( wprof[0][2] / Color::D50x) + }, { + static_cast ( wprof[1][0]), + static_cast ( wprof[1][1]), + static_cast ( wprof[1][2]) + }, { + static_cast ( wprof[2][0] / Color::D50z), + static_cast ( wprof[2][1] / Color::D50z), + static_cast ( wprof[2][2] / Color::D50z) + } + }; + */ + /* + double wp[3][3] = { + {wprof[0][0], wprof[0][1], wprof[0][2]}, + {wprof[1][0], wprof[1][1], wprof[1][2]}, + {wprof[2][0], wprof[2][1], wprof[2][2]} + }; + */ +// printf("wp00=%f wp02=%f\n", wp[0][0], wp[0][2]); + if (! greenloc) { + greenloc(bfw, bfh); + } + + if (! redloc) { + redloc(bfw, bfh); + } + + if (! blueloc) { + blueloc(bfw, bfh); + } + + float avgL = 0.f; + float redmm = 0.f, greenmm = 0.f, bluemm = 0.f; + + //center data on normal values + int nn = 0; + + for (int i = 0; i < H; i ++) + for (int j = 0; j < W; j++) { + int lox = cx + j; + int loy = cy + i; + + if (!local) { + redmm = redloc[i][j] = red[i][j]; + greenmm = greenloc[i][j] = green[i][j]; + bluemm = blueloc[i][j] = blue[i][j]; + float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); + avgL += LL; + nn++; + } else { + + if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) { + redmm = redloc[loy - begy][lox - begx] = red[i][j]; + greenmm = greenloc[loy - begy][lox - begx] = green[i][j]; + bluemm = blueloc[loy - begy][lox - begx] = blue[i][j]; + float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); + avgL += LL; + nn++; + } + } + } + + avgL /= nn; + + float sig = 0.f; + float vari = 0.f; + int mm = 0; + + for (int i = 0; i < bfh; i++) + for (int j = 0; j < bfw; j++) { + float LL = (0.299f * redloc[i][j] + 0.587f * greenloc[i][j] + 0.114f * blueloc[i][j]); + vari += SQR(LL - avgL); + mm++; + } + + sig = sqrt(vari / mm); + float multip = 60000.f / (avgL + 2.f * sig); + + // printf("multip=%f \n", multip); + for (int i = 0; i < bfh; i++) + for (int j = 0; j < bfw; j++) { + redloc[i][j] *= multip; + greenloc[i][j] *= multip; + blueloc[i][j] *= multip; + } + + if (gamma) { + // printf("gamma loc\n"); + + for (int i = 0; i < bfh; i++) + for (int j = 0; j < bfw; j++) { + redloc[i][j] = Color::gammatab_srgb[redloc[i][j]]; + greenloc[i][j] = Color::gammatab_srgb[greenloc[i][j]]; + blueloc[i][j] = Color::gammatab_srgb[blueloc[i][j]]; + } + } + + if (cat02) {//CAT02 + /* + //not good threatment, I must wait merge branch cat02wb + for (int i = 0; i < bfh; i++) + for (int j = 0; j < bfw; j++) { + float X = 0.f, Y = 0.f, Z = 0.f; + Color::rgbxyz(redloc[i][j], greenloc[i][j], blueloc[i][j], X, Y, Z, wp); + double temp; + double Xr = X / 65535.; + double Yr = Y / 65535.; + double Zr = Z / 65535.; + + Ciecam02::xyz_to_cat02float ( redloc[i][j], greenloc[i][j], blueloc[i][j], Xr, Yr, Zr, 1); + redloc[i][j] *= 65535.f; + greenloc[i][j] *= 65535.f; + blueloc[i][j] *= 65535.f; + //to do ciecam adaptation + } + */ + } + +} + +//void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) +void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref, double & tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double & rm, double & gm, double & bm, const WBParams & wbpar, const ColorManagementParams & cmp, const RAWParams & raw) +{ + BENCHFUN + constexpr double clipHigh = 64000.0; + + if (ri->get_colors() == 1) { + rm = gm = bm = 1; + return; + } +/* + if (redAWBMul != -1.) { + rm = redAWBMul; + gm = greenAWBMul; + bm = blueAWBMul; + return; + } + + if (!isWBProviderReady()) { + rm = -1.0; + gm = -1.0; + bm = -1.0; + return; + } +*/ + double avg_r = 0; + double avg_g = 0; + double avg_b = 0; + int rn = 0, gn = 0, bn = 0; + double avg_rm, avg_gm, avg_bm; + // int bfh = bf_h + 3, bfw = bf_w + 3; + int bfh = H, bfw = W; + if (wbpar.method == "autold") { + + if (fuji) { + for (int i = 32; i < H - 32; i++) { + int fw = ri->get_FujiWidth(); + int start = ABS(fw - i) + 32; + int end = min(H + W - fw - i, fw + i) - 32; + + for (int j = start; j < end; j++) { + if (ri->getSensorType() != ST_BAYER) { + double dr = CLIP(initialGain * (rawData[i][3 * j] )); + double dg = CLIP(initialGain * (rawData[i][3 * j + 1])); + double db = CLIP(initialGain * (rawData[i][3 * j + 2])); + + if (dr > clipHigh || dg > clipHigh || db > clipHigh) { + continue; + } + + avg_r += dr; + avg_g += dg; + avg_b += db; + rn = gn = ++bn; + } else { + int c = FC( i, j); + double d = CLIP(initialGain * (rawData[i][j])); + + if (d > clipHigh) { + continue; + } + + // Let's test green first, because they are more numerous + if (c == 1) { + avg_g += d; + gn++; + } else if (c == 0) { + avg_r += d; + rn++; + } else { /*if (c==2)*/ + avg_b += d; + bn++; + } + } + } + } + } else { + if (ri->getSensorType() != ST_BAYER) { + if(ri->getSensorType() == ST_FUJI_XTRANS) { + const double compval = clipHigh / initialGain; +#ifdef _OPENMP + #pragma omp parallel +#endif + { + double avg_c[3] = {0.0}; + int cn[3] = {0}; +#ifdef _OPENMP + #pragma omp for schedule(dynamic,16) nowait +#endif + + for (int i = 32; i < H - 32; i++) { + for (int j = 32; j < W - 32; j++) { + // each loop read 1 rgb triplet value + double d = rawData[i][j]; + + if (d > compval) { + continue; + } + + int c = ri->XTRANSFC(i, j); + avg_c[c] += d; + cn[c]++; + } + } + +#ifdef _OPENMP + #pragma omp critical +#endif + { + avg_r += avg_c[0]; + avg_g += avg_c[1]; + avg_b += avg_c[2]; + rn += cn[0]; + gn += cn[1]; + bn += cn[2]; + } + } + avg_r *= initialGain; + avg_g *= initialGain; + avg_b *= initialGain; + } else { + for (int i = 32; i < H - 32; i++) + for (int j = 32; j < W - 32; j++) { + // each loop read 1 rgb triplet value + + double dr = CLIP(initialGain * (rawData[i][3 * j] )); + double dg = CLIP(initialGain * (rawData[i][3 * j + 1])); + double db = CLIP(initialGain * (rawData[i][3 * j + 2])); + + if (dr > clipHigh || dg > clipHigh || db > clipHigh) { + continue; + } + + avg_r += dr; + rn++; + avg_g += dg; + avg_b += db; + } + + gn = rn; + bn = rn; + } + } else { + //determine GRBG coset; (ey,ex) is the offset of the R subarray + int ey, ex; + + if (ri->ISGREEN(0, 0)) { //first pixel is G + if (ri->ISRED(0, 1)) { + ey = 0; + ex = 1; + } else { + ey = 1; + ex = 0; + } + } else {//first pixel is R or B + if (ri->ISRED(0, 0)) { + ey = 0; + ex = 0; + } else { + ey = 1; + ex = 1; + } + } + + const double compval = clipHigh / initialGain; +#ifdef _OPENMP + #pragma omp parallel for reduction(+:avg_r,avg_g,avg_b,rn,gn,bn) schedule(dynamic,8) +#endif + + for (int i = 32; i < H - 32; i += 2) + for (int j = 32; j < W - 32; j += 2) { + //average each Bayer quartet component individually if non-clipped + double d[2][2]; + d[0][0] = rawData[i][j]; + d[0][1] = rawData[i][j + 1]; + d[1][0] = rawData[i + 1][j]; + d[1][1] = rawData[i + 1][j + 1]; + + if (d[ey][ex] <= compval) { + avg_r += d[ey][ex]; + rn++; + } + + if (d[1 - ey][ex] <= compval) { + avg_g += d[1 - ey][ex]; + gn++; + } + + if (d[ey][1 - ex] <= compval) { + avg_g += d[ey][1 - ex]; + gn++; + } + + if (d[1 - ey][1 - ex] <= compval) { + avg_b += d[1 - ey][1 - ex]; + bn++; + } + } + + avg_r *= initialGain; + avg_g *= initialGain; + avg_b *= initialGain; + + } + } + } + + if (wbpar.method == "aut" || wbpar.method == "autosdw" || wbpar.method == "autedgsdw" || wbpar.method == "autitcgreen" || wbpar.method == "autedgrob" || wbpar.method == "autedg" || wbpar.method == "autorobust") { + bool twotimes = false; + WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); + + } + + redloc(0, 0); + greenloc(0, 0); + blueloc(0, 0); + + if( settings->verbose ) { + printf ("AVG: %g %g %g\n", avg_r / std::max(1, rn), avg_g / std::max(1, gn), avg_b / std::max(1, bn)); + } + + // return ColorTemp (pow(avg_r/rn, 1.0/6.0)*img_r, pow(avg_g/gn, 1.0/6.0)*img_g, pow(avg_b/bn, 1.0/6.0)*img_b); + double reds = 0., greens = 0., blues = 0.; + + if (wbpar.method == "aut" || wbpar.method == "autosdw" || wbpar.method == "autedgsdw" || wbpar.method == "autedgrob" || wbpar.method == "autedg" || wbpar.method == "autorobust") { + //twotimes = true; + reds = avg_rm * refwb_red; + greens = avg_gm * refwb_green; + blues = avg_bm * refwb_blue; + } + + if (wbpar.method == "autold") { + reds = avg_r / std::max(1, rn) * refwb_red; + greens = avg_g / std::max(1, gn) * refwb_green; + blues = avg_b / std::max(1, bn) * refwb_blue; + } + + if (wbpar.method == "autitcgreen") { + //not used + redAWBMul = rm = avg_rm * refwb_red; + greenAWBMul = gm = avg_gm * refwb_green; + blueAWBMul = bm = avg_bm * refwb_blue; + } else { + redAWBMul = rm = imatrices.rgb_cam[0][0] * reds + imatrices.rgb_cam[0][1] * greens + imatrices.rgb_cam[0][2] * blues; + greenAWBMul = gm = imatrices.rgb_cam[1][0] * reds + imatrices.rgb_cam[1][1] * greens + imatrices.rgb_cam[1][2] * blues; + blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; + } + +} + + + + + + //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) { diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 4c7b0ba21..477519c1f 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -85,10 +85,13 @@ protected: // the interpolated green plane: array2D green; + array2D greenloc; // the interpolated red plane: array2D red; + array2D redloc; // the interpolated blue plane: array2D blue; + array2D blueloc; bool rawDirty; float psRedBrightness[4]; float psGreenBrightness[4]; @@ -101,6 +104,7 @@ protected: void hlRecovery (const std::string &method, float* red, float* green, float* blue, int width, float* hlmax); void transformRect (const PreviewProps &pp, int tran, int &sx1, int &sy1, int &width, int &height, int &fw); void transformPosition (int x, int y, int tran, int& tx, int& ty); + void ItcWB(bool extra, double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, const ColorManagementParams &cmp, const RAWParams &raw, const WBParams & wbpar); unsigned FC(int row, int col) const { @@ -136,6 +140,9 @@ public: void copyOriginalPixels(const RAWParams &raw, RawImage *ri, RawImage *riDark, RawImage *riFlatFile, array2D &rawData ); void cfaboxblur (RawImage *riFlatFile, float* cfablur, int boxH, int boxW); void scaleColors (int winx, int winy, int winw, int winh, const RAWParams &raw, array2D &rawData); // raw for cblack + void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw); + void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw); + void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w); void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; eSensorType getSensorType () const override diff --git a/rtengine/settings.h b/rtengine/settings.h index 1fc3b222c..1986ee69f 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -80,6 +80,14 @@ public: // bool bw_complementary; double level0_cbdl; double level123_cbdl; + int itcwb_thres; + bool itcwb_sort; + int itcwb_greenrange; + int itcwb_greendeltatemp; + bool itcwb_forceextra; + int itcwb_sizereference; + int itcwb_delta; + Glib::ustring lensfunDbDirectory; ///< The directory containing the lensfun database. If empty, the system defaults will be used (as described in http://lensfun.sourceforge.net/manual/dbsearch.html) enum class ThumbnailInspectorMode { diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 6ca3091a3..ce101bd7a 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -29,6 +29,8 @@ namespace rtengine { +using namespace procparams; +ProcParams* params; extern const Settings* settings; @@ -309,6 +311,30 @@ void StdImageSource::getAutoExpHistogram (LUTu & histogram, int& histcompr) } } +void StdImageSource::WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw) +{ +} + +void StdImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) +{} + +void StdImageSource::getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) +{ + if (redAWBMul != -1.) { + rm = redAWBMul; + gm = greenAWBMul; + bm = blueAWBMul; + return; + } + + img->getAutoWBMultipliersloc(tempref, greenref, tempitc, greenitc,studgood, begx, begy, yEn, xEn, cx, cy, bf_h, bf_w, rm, gm, bm, params->wb, params->icm, params->raw); + + redAWBMul = rm; + greenAWBMul = gm; + blueAWBMul = bm; +} + + void StdImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) { if (redAWBMul != -1.) { diff --git a/rtengine/stdimagesource.h b/rtengine/stdimagesource.h index 8f16880dc..ba75efbb9 100644 --- a/rtengine/stdimagesource.h +++ b/rtengine/stdimagesource.h @@ -44,12 +44,15 @@ public: int load (const Glib::ustring &fname) override; void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw) override; + void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w); ColorTemp getWB () const override { return wb; } void getAutoWBMultipliers (double &rm, double &gm, double &bm) override; ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) override; + void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw); + void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw); eSensorType getSensorType() const override {return ST_NONE;} bool isMono() const override {return false;} diff --git a/rtgui/options.cc b/rtgui/options.cc index 2437f5313..89a490a68 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -583,6 +583,13 @@ void Options::setDefaults() rtSettings.amchroma = 40;//between 20 and 140 low values increase effect..and also artifacts, high values reduces rtSettings.level0_cbdl = 0; rtSettings.level123_cbdl = 30; + rtSettings.itcwb_thres = 34;//between 10 to 55 + rtSettings.itcwb_sort = false; + rtSettings.itcwb_greenrange = 0;//between 0 to 2 + rtSettings.itcwb_greendeltatemp = 2;//between 0 and 4 + rtSettings.itcwb_forceextra = true; + rtSettings.itcwb_sizereference = 3;//between 1 and 5 + rtSettings.itcwb_delta = 1;//between 0 and 5 rtSettings.protectred = 60; rtSettings.protectredh = 0.3; @@ -1485,6 +1492,35 @@ void Options::readFromFile(Glib::ustring fname) rtSettings.level123_cbdl = keyFile.get_double("Color Management", "CBDLlevel123"); } + if (keyFile.has_key("Color Management", "Itcwb_thres")) { + rtSettings.itcwb_thres = keyFile.get_integer("Color Management", "Itcwb_thres"); + } + + if (keyFile.has_key("Color Management", "Itcwb_sort")) { + rtSettings.itcwb_sort = keyFile.get_boolean("Color Management", "Itcwb_sort"); + } + + if (keyFile.has_key("Color Management", "Itcwb_forceextra")) { + rtSettings.itcwb_forceextra = keyFile.get_boolean("Color Management", "Itcwb_forceextra"); + } + + if (keyFile.has_key("Color Management", "Itcwb_greenrange")) { + rtSettings.itcwb_greenrange = keyFile.get_integer("Color Management", "Itcwb_greenrange"); + } + + if (keyFile.has_key("Color Management", "Itcwb_greendeltatemp")) { + rtSettings.itcwb_greendeltatemp = keyFile.get_integer("Color Management", "Itcwb_greendeltatemp"); + } + + if (keyFile.has_key("Color Management", "Itcwb_sizereference")) { + rtSettings.itcwb_sizereference = keyFile.get_integer("Color Management", "Itcwb_sizereference"); + } + + if (keyFile.has_key("Color Management", "Itcwb_delta")) { + rtSettings.itcwb_delta = keyFile.get_integer("Color Management", "Itcwb_delta"); + } + + //if (keyFile.has_key ("Color Management", "Colortoningab")) rtSettings.colortoningab = keyFile.get_double("Color Management", "Colortoningab"); //if (keyFile.has_key ("Color Management", "Decaction")) rtSettings.decaction = keyFile.get_double("Color Management", "Decaction"); @@ -2148,6 +2184,14 @@ void Options::saveToFile(Glib::ustring fname) //keyFile.set_boolean ("Color Management", "Ciebadpixgauss", rtSettings.ciebadpixgauss); keyFile.set_double("Color Management", "CBDLlevel0", rtSettings.level0_cbdl); keyFile.set_double("Color Management", "CBDLlevel123", rtSettings.level123_cbdl); + keyFile.set_integer("Color Management", "Itcwb_thres", rtSettings.itcwb_thres); + keyFile.set_boolean("Color Management", "Itcwb_sort", rtSettings.itcwb_sort); + keyFile.set_integer("Color Management", "Itcwb_greenrange", rtSettings.itcwb_greenrange); + keyFile.set_integer("Color Management", "Itcwb_greendeltatemp", rtSettings.itcwb_greendeltatemp); + keyFile.set_boolean("Color Management", "Itcwb_forceextra", rtSettings.itcwb_forceextra); + keyFile.set_integer("Color Management", "Itcwb_sizereference", rtSettings.itcwb_sizereference); + keyFile.set_integer("Color Management", "Itcwb_delta", rtSettings.itcwb_delta); + //keyFile.set_double ("Color Management", "Colortoningab", rtSettings.colortoningab); //keyFile.set_double ("Color Management", "Decaction", rtSettings.decaction); keyFile.set_string("Color Management", "ClutsDirectory", clutsDir); diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 3c3382bc3..226edab0b 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -175,6 +175,14 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB row[methodColumns.colId] = i + 100; } + if (currType == WBEntry::Type::AUTO) { + // Creating the auto category + row = *(refTreeModel->append()); + row[methodColumns.colIcon] = wbPixbufs[toUnderlying(currType)]; + row[methodColumns.colLabel] = M("TP_WBALANCE_AUTO_HEADER"); + row[methodColumns.colId] = i + 100; + } + if (currType == WBEntry::Type::WATER) { // Creating the under water subcategory header row = *(refTreeModel->append()); @@ -213,6 +221,7 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB || currType == WBEntry::Type::WATER || currType == WBEntry::Type::FLASH || currType == WBEntry::Type::LED + || currType == WBEntry::Type::AUTO ) { childrow = *(refTreeModel->append(row.children())); childrow[methodColumns.colIcon] = wbPixbufs[toUnderlying(currType)]; From 07d74501f2b52f627b351750c317d00a0fe45ba4 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Jun 2019 17:40:16 +0200 Subject: [PATCH 018/453] Second part ITCWB --- rtdata/languages/default | 5 ++ rtengine/imagesource.h | 1 + rtengine/improccoordinator.cc | 87 ++++++++++++++++++++++++++++------- rtengine/improccoordinator.h | 4 ++ rtengine/procparams.cc | 12 ++--- rtengine/rawimagesource.cc | 8 +++- rtengine/rtengine.h | 2 +- rtgui/whitebalance.cc | 25 +++++++++- rtgui/whitebalance.h | 5 +- 9 files changed, 120 insertions(+), 29 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5ea726218..8a650d4ba 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2222,6 +2222,8 @@ TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast c TP_WAVELET_TMTYPE;Compression method TP_WAVELET_TON;Toning TP_WBALANCE_AUTO;Auto +TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic. +TP_WBALANCE_STUDLABEL;Student Itcwb: %1 TP_WBALANCE_CAMERA;Camera TP_WBALANCE_CLOUDY;Cloudy TP_WBALANCE_CUSTOM;Custom @@ -2231,6 +2233,9 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "whi TP_WBALANCE_FLASH55;Leica TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta +TP_WBALANCE_AUTO_HEADER;Autos +TP_WBALANCE_AUTOOLD;Auto grey old +TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_FLASH_HEADER;Flash TP_WBALANCE_FLUO1;F1 - Daylight TP_WBALANCE_FLUO2;F2 - Cool White diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index 089cb3bae..11fdb1a66 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -103,6 +103,7 @@ public: virtual void convertColorSpace (Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) = 0; // DIRTY HACK: this method is derived in rawimagesource and strimagesource, but (...,RAWParams raw) will be used ONLY for raw images virtual void getAutoWBMultipliers (double &rm, double &gm, double &bm) = 0; + virtual void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) = 0; virtual ColorTemp getWB () const = 0; virtual ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) = 0; virtual void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw) = 0; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index e718087ec..2ee24f750 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -332,17 +332,17 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bool autowb0 = false; // bool autoitc = false; - autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - // autoitc = (params.wb.method == "autitcgreen"); - // bool gamma = false; - // bool cat = false; -// if (params.wb.wbcat02Method == "cam" && autoitc) { -// cat = true; -// } + // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); + autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); + if(autowb0) printf("autoOKOKOK\n"); + if(!autowb0) printf("NOOOOOOONNNNNN\n"); - if (autowb0) { + + // if (autowb0) { + // printf("OK rgbloc avant\n"); imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); - } + // printf("OK rgbloc apres\n"); + // } if (highDetailNeeded) { @@ -377,7 +377,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bool autowb = false; autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - + if(autowb) printf("AUTOAUTO\n"); + if(!autowb) printf("PAS--NON\n"); + if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window @@ -389,16 +391,27 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } currWB = ColorTemp(params->wb.temperature, params->wb.green, params->wb.equal, params->wb.method); + float studgood = 1000.f; if (!params->wb.enabled) { currWB = ColorTemp(); } else if (params->wb.method == "Camera") { currWB = imgsrc->getWB(); - } else if (params->wb.method == "Auto") { + // } else if (params->wb.method == "Auto") { + } else if (autowb) { if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias) { double rm, gm, bm; - imgsrc->getAutoWBMultipliers(rm, gm, bm); + double tempitc = 5000.f; + double greenitc = 1.; + // imgsrc->getAutoWBMultipliers(rm, gm, bm); + currWBitc = imgsrc->getWB(); + double tempref = currWBitc.getTemp() * (1. + params->wb.tempBias); + double greenref = currWBitc.getGreen(); + printf("tempref=%f greref=%f\n", tempref, greenref); + imgsrc->getAutoWBMultipliersloc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); + +/* if (rm != -1.) { autoWB.update(rm, gm, bm, params->wb.equal, params->wb.tempBias); lastAwbEqual = params->wb.equal; @@ -408,9 +421,39 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) lastAwbTempBias = 0.0; autoWB.useDefaults(params->wb.equal); } - +*/ //double rr,gg,bb; //autoWB.getMultipliers(rr,gg,bb); + if (params->wb.method == "autitcgreen") { + params->wb.temperature = tempitc; + params->wb.green = greenitc; + currWB = ColorTemp(params->wb.temperature, params->wb.green, 1., params->wb.method); + currWB.getMultipliers(rm, gm, bm); + } + + if (rm != -1.) { + double bias = params->wb.tempBias; + + if (params->wb.method == "autitcgreen") { + bias = 0.; + } + + autoWB.update(rm, gm, bm, params->wb.equal, bias); + //double temper = autoWB.getTemp(); + //double gre = autoWB.getGreen(); + //printf("temper=%f gre=%f \n", temper, gre); + + lastAwbEqual = params->wb.equal; + lastAwbTempBias = params->wb.tempBias; + lastAwbauto = params->wb.method; + } else { + lastAwbEqual = -1.; + lastAwbTempBias = 0.0; + lastAwbauto = ""; + autoWB.useDefaults(params->wb.equal); + } + + } currWB = autoWB; @@ -421,8 +464,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->wb.green = currWB.getGreen(); } - if (params->wb.method == "Auto" && awbListener && params->wb.enabled) { - awbListener->WBChanged(params->wb.temperature, params->wb.green); + // if (params->wb.method == "Auto" && awbListener && params->wb.enabled) { + if (autowb && awbListener) { + awbListener->WBChanged(params->wb.temperature, params->wb.green, studgood); } /* @@ -1198,18 +1242,27 @@ bool ImProcCoordinator::getAutoWB(double& temp, double& green, double equal, dou { if (imgsrc) { - if (lastAwbEqual != equal || lastAwbTempBias != tempBias) { + if (lastAwbEqual != equal || lastAwbTempBias != tempBias || lastAwbauto != params->wb.method) { // Issue 2500 MyMutex::MyLock lock(minit); // Also used in crop window double rm, gm, bm; - imgsrc->getAutoWBMultipliers(rm, gm, bm); + params->wb.method = "autold";//same result as before muliple Auto WB + + // imgsrc->getAutoWBMultipliers(rm, gm, bm); + double tempitc = 5000.; + double greenitc = 1.; + float studgood = 1000.f; + double tempref, greenref; + imgsrc->getAutoWBMultipliersloc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); if (rm != -1) { autoWB.update(rm, gm, bm, equal, tempBias); lastAwbEqual = equal; lastAwbTempBias = tempBias; + lastAwbauto = params->wb.method; } else { lastAwbEqual = -1.; autoWB.useDefaults(equal); + lastAwbauto = ""; lastAwbTempBias = 0.0; } } diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index c293f0c16..dd91187db 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -68,9 +68,13 @@ protected: ColorTemp currWB; ColorTemp autoWB; + ColorTemp currWBloc; + ColorTemp autoWBloc; + ColorTemp currWBitc; double lastAwbEqual; double lastAwbTempBias; + Glib::ustring lastAwbauto; Glib::ustring monitorProfile; RenderingIntent monitorIntent; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index cfa35ee01..21124f7bf 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1233,12 +1233,12 @@ const std::vector& WBParams::getWbEntries() // {"Auto", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTO"), 0, 1.f, 1.f, 0.f}, {"autitcgreen", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOITCGREEN"), 0, 1.f, 1.f, 0.f}, {"autold", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOOLD"), 0, 1.f, 1.f, 0.f}, - {"aut", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTODEM"), 0, 1.f, 1.f, 0.f}, - {"autedg", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGE"), 0, 1.f, 1.f, 0.f}, - {"autorobust", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOROB"), 0, 1.f, 1.f, 0.f}, - {"autosdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOSDW"), 0, 1.f, 1.f, 0.f}, - {"autedgsdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGESW"), 0, 1.f, 1.f, 0.f}, - {"autedgrob", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGEROB"), 0, 1.f, 1.f, 0.f}, + // {"aut", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTODEM"), 0, 1.f, 1.f, 0.f}, + // {"autedg", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGE"), 0, 1.f, 1.f, 0.f}, + // {"autorobust", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOROB"), 0, 1.f, 1.f, 0.f}, + // {"autosdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOSDW"), 0, 1.f, 1.f, 0.f}, + // {"autedgsdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGESW"), 0, 1.f, 1.f, 0.f}, + // {"autedgrob", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGEROB"), 0, 1.f, 1.f, 0.f}, {"Daylight", WBEntry::Type::DAYLIGHT, M("TP_WBALANCE_DAYLIGHT"), 5300, 1.f, 1.f, 0.f}, {"Cloudy", WBEntry::Type::CLOUDY, M("TP_WBALANCE_CLOUDY"), 6200, 1.f, 1.f, 0.f}, {"Shade", WBEntry::Type::SHADE, M("TP_WBALANCE_SHADE"), 7600, 1.f, 1.f, 0.f}, diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 7d4f613f9..e6f50336b 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -6726,7 +6726,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {12001., 0.960440, 1.601019} }; int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point - int nbt = N_t; float **Tx = nullptr; float **Ty = nullptr; @@ -7591,7 +7590,7 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D } - +printf("ok avant itc\n"); if (wbpar.method == "autitcgreen") { bool extra = false; @@ -7612,9 +7611,11 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D tempitc = 5000.; // greenitc = greenref; itc = true; +printf("ok avant itc 2\n"); if (itc) { ItcWB(extra, tempref, greenref, tempitc, greenitc, studgood, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, cmp, raw, wbpar); +printf("ok apres itc \n"); } } @@ -7733,6 +7734,7 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) { //used by auto WB local to calculate red, green, blue in local region + printf("OK RGBLOC\n"); // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; @@ -8081,7 +8083,9 @@ void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref if (wbpar.method == "aut" || wbpar.method == "autosdw" || wbpar.method == "autedgsdw" || wbpar.method == "autitcgreen" || wbpar.method == "autedgrob" || wbpar.method == "autedg" || wbpar.method == "autorobust") { bool twotimes = false; + printf("OK avant auto\n"); WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); + printf("OK apres auto\n"); } diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 6264d43ae..e08a2a613 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -376,7 +376,7 @@ class AutoWBListener { public: virtual ~AutoWBListener() = default; - virtual void WBChanged(double temp, double green) = 0; + virtual void WBChanged(double temp, double green, float studgood) = 0; }; class FrameCountListener diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 226edab0b..b04b1f136 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -324,6 +324,9 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB Gtk::Image* itempbiasL = Gtk::manage (new RTImage ("circle-blue-small.png")); Gtk::Image* itempbiasR = Gtk::manage (new RTImage ("circle-yellow-small.png")); + StudLabel = Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER)); + StudLabel->set_tooltip_text(M("TP_WBALANCE_STUDLABEL_TOOLTIP")); + temp = Gtk::manage (new Adjuster (M("TP_WBALANCE_TEMPERATURE"), MINTEMP, MAXTEMP, 5, CENTERTEMP, itempL, itempR, &wbSlider2Temp, &wbTemp2Slider)); green = Gtk::manage (new Adjuster (M("TP_WBALANCE_GREEN"), MINGREEN, MAXGREEN, 0.001, 1.0, igreenL, igreenR)); equal = Gtk::manage (new Adjuster (M("TP_WBALANCE_EQBLUERED"), MINEQUAL, MAXEQUAL, 0.001, 1.0, iblueredL, iblueredR)); @@ -344,6 +347,7 @@ WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WB boxgreen->pack_start(*igreenL); boxgreen->pack_start(*green); boxgreen->pack_start(*igreenR);*/ + pack_start(*StudLabel); pack_start (*temp); //pack_start (*boxgreen); @@ -477,6 +481,12 @@ void WhiteBalance::optChanged () const WBEntry& currMethod = WBParams::getWbEntries()[methodId]; tempBias->set_sensitive(currMethod.type == WBEntry::Type::AUTO); + bool autit = (currMethod.ppLabel == "autitcgreen"); + if (autit) { + StudLabel->show(); + } else { + StudLabel->hide(); + } switch (currMethod.type) { case WBEntry::Type::CAMERA: @@ -697,6 +707,13 @@ void WhiteBalance::read (const ProcParams* pp, const ParamsEdited* pedited) } tempBias->set_sensitive(wbValues.type == WBEntry::Type::AUTO); + bool autit = (wbValues.ppLabel == "autitcgreen"); + if (autit) { + StudLabel->show(); + } else { + StudLabel->hide(); + } + } setEnabled(pp->wb.enabled); @@ -915,15 +932,19 @@ inline Gtk::TreeRow WhiteBalance::getActiveMethod () return *(method->get_active()); } -void WhiteBalance::WBChanged(double temperature, double greenVal) +void WhiteBalance::WBChanged(double temperature, double greenVal, float studgood) { idle_register.add( - [this, temperature, greenVal]() -> bool + [this, temperature, greenVal, studgood]() -> bool { disableListener(); setEnabled(true); temp->setValue(temperature); green->setValue(greenVal); + StudLabel->set_text( + Glib::ustring::compose(M("TP_WBALANCE_STUDLABEL"), + Glib::ustring::format(std::fixed, std::setprecision(4), studgood)) + ); temp->setDefault(temperature); green->setDefault(greenVal); enableListener(); diff --git a/rtgui/whitebalance.h b/rtgui/whitebalance.h index 2db46b7af..71dce989d 100644 --- a/rtgui/whitebalance.h +++ b/rtgui/whitebalance.h @@ -41,6 +41,9 @@ class WhiteBalance : public ToolParamBlock, public AdjusterListener, public Fold WBLT_PP }; +private: + Gtk::Label* StudLabel; + protected: class MethodColumns : public Gtk::TreeModel::ColumnRecord { @@ -118,7 +121,7 @@ public: wblistener = l; } void setWB (int temp, double green); - void WBChanged (double temp, double green) override; + void WBChanged (double temp, double green, float studgood) override; void setAdjusterBehavior (bool tempadd, bool greenadd, bool equaladd, bool tempbiasadd); void trimValues (rtengine::procparams::ProcParams* pp) override; From ee63f51e5c38969f43078cf93b162382fd2d13d9 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Jun 2019 20:31:59 +0200 Subject: [PATCH 019/453] Some improvment and bug fixed --- rtengine/improccoordinator.cc | 34 ++++++++++++++++++---------------- rtengine/rawimagesource.cc | 2 +- rtgui/whitebalance.cc | 2 +- 3 files changed, 20 insertions(+), 18 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 2ee24f750..fff5af8b8 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -49,6 +49,7 @@ ImProcCoordinator::ImProcCoordinator() : imgsrc (nullptr), lastAwbEqual (0.), lastAwbTempBias (0.0), + lastAwbauto(""), monitorIntent (RI_RELATIVE), softProof(false), gamutCheck(false), @@ -221,6 +222,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) int readyphase = 0; bool highDetailNeeded = options.prevdemo == PD_Sidecar ? true : (todo & M_HIGHQUAL); + printf("metwb=%s \n", params->wb.method.c_str()); // Check if any detail crops need high detail. If not, take a fast path short cut if (!highDetailNeeded) { @@ -242,6 +244,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) RAWParams rp = params->raw; ColorManagementParams cmp = params->icm; LCurveParams lcur = params->labCurve; + printf("metwb2=%s \n", params->wb.method.c_str()); if (!highDetailNeeded) { // if below 100% magnification, take a fast path @@ -330,21 +333,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) // if a demosaic happened we should also call getimage later, so we need to set the M_INIT flag todo |= M_INIT; - bool autowb0 = false; - // bool autoitc = false; - // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); - if(autowb0) printf("autoOKOKOK\n"); - if(!autowb0) printf("NOOOOOOONNNNNN\n"); - - - // if (autowb0) { - // printf("OK rgbloc avant\n"); - imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); - // printf("OK rgbloc apres\n"); - // } - - if (highDetailNeeded) { highDetailRawComputed = true; } else { @@ -359,6 +347,19 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } + bool autowb0 = false; + // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); + autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); + printf("autowb0=%s \n", params->wb.method.c_str()); + + + + // if (autowb0) { + // printf("OK rgbloc avant\n"); + imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); + // printf("OK rgbloc apres\n"); + // } + if ((todo & (M_RETINEX | M_INIT)) && params->retinex.enabled) { bool dehacontlutili = false; bool mapcontlutili = false; @@ -379,6 +380,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); if(autowb) printf("AUTOAUTO\n"); if(!autowb) printf("PAS--NON\n"); + printf("auto=%s \n", params->wb.method.c_str()); if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window @@ -399,7 +401,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) currWB = imgsrc->getWB(); // } else if (params->wb.method == "Auto") { } else if (autowb) { - if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias) { + if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias || lastAwbauto != params->wb.method) { double rm, gm, bm; double tempitc = 5000.f; double greenitc = 1.; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index e6f50336b..72131e793 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -7907,7 +7907,7 @@ void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; if (wbpar.method == "autold") { - + printf("OK auto OLD\n"); if (fuji) { for (int i = 32; i < H - 32; i++) { int fw = ri->get_FujiWidth(); diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index b04b1f136..86cbe2e7a 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -142,7 +142,7 @@ static double wbTemp2Slider(double temp) return sval; } -WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WBALANCE_LABEL"), false, true), wbp(nullptr), wblistener(nullptr) +WhiteBalance::WhiteBalance () : FoldableToolPanel(this, "whitebalance", M("TP_WBALANCE_LABEL"), true, true), wbp(nullptr), wblistener(nullptr) { Gtk::Grid* methodgrid = Gtk::manage(new Gtk::Grid()); From 7ac9629a7e91a6bc6b45c4f725f0bf82cbd1469e Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 26 Jun 2019 06:47:19 +0200 Subject: [PATCH 020/453] Some improvments --- rtengine/iimage.h | 2 +- rtengine/imagesource.h | 2 +- rtengine/improccoordinator.cc | 38 ++++++++--------------------------- rtengine/rawimagesource.cc | 13 +++++------- rtengine/rawimagesource.h | 2 +- rtengine/stdimagesource.cc | 4 ++-- rtengine/stdimagesource.h | 2 +- 7 files changed, 19 insertions(+), 44 deletions(-) diff --git a/rtengine/iimage.h b/rtengine/iimage.h index bda390895..03c8a9023 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -103,7 +103,7 @@ public: { rm = gm = bm = 1.0; } - virtual void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) + virtual void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) { rm = gm = bm = 1.0; } diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index 11fdb1a66..d7f0d1b25 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -103,7 +103,7 @@ public: virtual void convertColorSpace (Imagefloat* image, const ColorManagementParams &cmp, const ColorTemp &wb) = 0; // DIRTY HACK: this method is derived in rawimagesource and strimagesource, but (...,RAWParams raw) will be used ONLY for raw images virtual void getAutoWBMultipliers (double &rm, double &gm, double &bm) = 0; - virtual void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) = 0; + virtual void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) = 0; virtual ColorTemp getWB () const = 0; virtual ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) = 0; virtual void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw) = 0; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index fff5af8b8..471638c16 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -222,7 +222,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) int readyphase = 0; bool highDetailNeeded = options.prevdemo == PD_Sidecar ? true : (todo & M_HIGHQUAL); - printf("metwb=%s \n", params->wb.method.c_str()); + // printf("metwb=%s \n", params->wb.method.c_str()); // Check if any detail crops need high detail. If not, take a fast path short cut if (!highDetailNeeded) { @@ -244,7 +244,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) RAWParams rp = params->raw; ColorManagementParams cmp = params->icm; LCurveParams lcur = params->labCurve; - printf("metwb2=%s \n", params->wb.method.c_str()); + printf("metwb2=%s \n", params->wb.method.c_str()); if (!highDetailNeeded) { // if below 100% magnification, take a fast path @@ -349,15 +349,13 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bool autowb0 = false; // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); + autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen");//in some cases autowb0 does not work ....params->wb.method still at "camera" instead of auto !!! printf("autowb0=%s \n", params->wb.method.c_str()); // if (autowb0) { - // printf("OK rgbloc avant\n"); imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); - // printf("OK rgbloc apres\n"); // } if ((todo & (M_RETINEX | M_INIT)) && params->retinex.enabled) { @@ -378,9 +376,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bool autowb = false; autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - if(autowb) printf("AUTOAUTO\n"); - if(!autowb) printf("PAS--NON\n"); - printf("auto=%s \n", params->wb.method.c_str()); + printf("automethod=%s \n", params->wb.method.c_str()); if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window @@ -399,33 +395,19 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) currWB = ColorTemp(); } else if (params->wb.method == "Camera") { currWB = imgsrc->getWB(); - // } else if (params->wb.method == "Auto") { + lastAwbauto = ""; //reinitialize auto } else if (autowb) { if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias || lastAwbauto != params->wb.method) { double rm, gm, bm; double tempitc = 5000.f; double greenitc = 1.; - // imgsrc->getAutoWBMultipliers(rm, gm, bm); currWBitc = imgsrc->getWB(); double tempref = currWBitc.getTemp() * (1. + params->wb.tempBias); double greenref = currWBitc.getGreen(); - printf("tempref=%f greref=%f\n", tempref, greenref); + printf("tempref=%f greref=%f\n", tempref, greenref); - imgsrc->getAutoWBMultipliersloc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); + imgsrc->getAutoWBMultipliersitc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); -/* - if (rm != -1.) { - autoWB.update(rm, gm, bm, params->wb.equal, params->wb.tempBias); - lastAwbEqual = params->wb.equal; - lastAwbTempBias = params->wb.tempBias; - } else { - lastAwbEqual = -1.; - lastAwbTempBias = 0.0; - autoWB.useDefaults(params->wb.equal); - } -*/ - //double rr,gg,bb; - //autoWB.getMultipliers(rr,gg,bb); if (params->wb.method == "autitcgreen") { params->wb.temperature = tempitc; params->wb.green = greenitc; @@ -441,10 +423,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } autoWB.update(rm, gm, bm, params->wb.equal, bias); - //double temper = autoWB.getTemp(); - //double gre = autoWB.getGreen(); - //printf("temper=%f gre=%f \n", temper, gre); - lastAwbEqual = params->wb.equal; lastAwbTempBias = params->wb.tempBias; lastAwbauto = params->wb.method; @@ -1254,7 +1232,7 @@ bool ImProcCoordinator::getAutoWB(double& temp, double& green, double equal, dou double greenitc = 1.; float studgood = 1000.f; double tempref, greenref; - imgsrc->getAutoWBMultipliersloc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); + imgsrc->getAutoWBMultipliersitc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); if (rm != -1) { autoWB.update(rm, gm, bm, equal, tempBias); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 72131e793..153578756 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -7590,7 +7590,6 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D } -printf("ok avant itc\n"); if (wbpar.method == "autitcgreen") { bool extra = false; @@ -7611,11 +7610,9 @@ printf("ok avant itc\n"); tempitc = 5000.; // greenitc = greenref; itc = true; -printf("ok avant itc 2\n"); if (itc) { ItcWB(extra, tempref, greenref, tempitc, greenitc, studgood, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, cmp, raw, wbpar); -printf("ok apres itc \n"); } } @@ -7734,7 +7731,7 @@ printf("ok apres itc \n"); void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) { //used by auto WB local to calculate red, green, blue in local region - printf("OK RGBLOC\n"); + // printf("OK RGBLOC\n"); // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; @@ -7875,7 +7872,7 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in } //void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) -void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref, double & tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double & rm, double & gm, double & bm, const WBParams & wbpar, const ColorManagementParams & cmp, const RAWParams & raw) +void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref, double & tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double & rm, double & gm, double & bm, const WBParams & wbpar, const ColorManagementParams & cmp, const RAWParams & raw) { BENCHFUN constexpr double clipHigh = 64000.0; @@ -7907,7 +7904,7 @@ void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; if (wbpar.method == "autold") { - printf("OK auto OLD\n"); + // printf("OK auto OLD\n"); if (fuji) { for (int i = 32; i < H - 32; i++) { int fw = ri->get_FujiWidth(); @@ -8083,9 +8080,9 @@ void RawImageSource::getAutoWBMultipliersloc(double & tempref, double & greenref if (wbpar.method == "aut" || wbpar.method == "autosdw" || wbpar.method == "autedgsdw" || wbpar.method == "autitcgreen" || wbpar.method == "autedgrob" || wbpar.method == "autedg" || wbpar.method == "autorobust") { bool twotimes = false; - printf("OK avant auto\n"); + // printf("OK avant auto\n"); WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); - printf("OK apres auto\n"); + // printf("OK apres auto\n"); } diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 477519c1f..d1619fb7c 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -141,7 +141,7 @@ public: void cfaboxblur (RawImage *riFlatFile, float* cfablur, int boxH, int boxW); void scaleColors (int winx, int winy, int winw, int winh, const RAWParams &raw, array2D &rawData); // raw for cblack void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw); - void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw); + void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw); void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w); void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index ce101bd7a..ce61441c5 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -318,7 +318,7 @@ void StdImageSource::WBauto(double &tempref, double &greenref, array2D &r void StdImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) {} -void StdImageSource::getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) +void StdImageSource::getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) { if (redAWBMul != -1.) { rm = redAWBMul; @@ -327,7 +327,7 @@ void StdImageSource::getAutoWBMultipliersloc(double &tempref, double &greenref, return; } - img->getAutoWBMultipliersloc(tempref, greenref, tempitc, greenitc,studgood, begx, begy, yEn, xEn, cx, cy, bf_h, bf_w, rm, gm, bm, params->wb, params->icm, params->raw); + img->getAutoWBMultipliersitc(tempref, greenref, tempitc, greenitc,studgood, begx, begy, yEn, xEn, cx, cy, bf_h, bf_w, rm, gm, bm, params->wb, params->icm, params->raw); redAWBMul = rm; greenAWBMul = gm; diff --git a/rtengine/stdimagesource.h b/rtengine/stdimagesource.h index ba75efbb9..d62b52dc7 100644 --- a/rtengine/stdimagesource.h +++ b/rtengine/stdimagesource.h @@ -52,7 +52,7 @@ public: void getAutoWBMultipliers (double &rm, double &gm, double &bm) override; ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) override; void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams &cmp, const RAWParams &raw); - void getAutoWBMultipliersloc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw); + void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw); eSensorType getSensorType() const override {return ST_NONE;} bool isMono() const override {return false;} From 9338bef4c69e3825147aed007e0691efc22da4a4 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 24 Jul 2019 07:23:51 +0200 Subject: [PATCH 021/453] Change limit Lmethod for clarity and sharp-mask --- rtgui/wavelet.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 7f9164779..b66d61e93 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -248,7 +248,6 @@ Wavelet::Wavelet() : levdirMainHBox->pack_start(*levdirMainLabel, Gtk::PACK_SHRINK, 4); levdirMainHBox->pack_start(*CLmethod); //same - Lmethod->set_sensitive(false); Lmethod->set_sensitive(false); Lmethod->append(M("TP_WAVELET_1")); Lmethod->append(M("TP_WAVELET_2")); @@ -2491,6 +2490,14 @@ void Wavelet::LmethodUpdateUI() { void Wavelet::LmethodChanged() { //LmethodUpdateUI(); + if(ushamethod->get_active_row_number() == 0 && expclari->getEnabled() == true) { + if(Lmethod->get_active_row_number() > 3) Lmethod->set_active(3); + } + + if(ushamethod->get_active_row_number() == 1 && expclari->getEnabled() == true) { + if(Lmethod->get_active_row_number() < 4) Lmethod->set_active(4); + } + if (listener && (multiImage || getEnabled())) { listener->panelChanged(EvWavLmet, Lmethod->get_active_text()); } From 7d9edc4681ea806d36ebe93b87d90599aa08c4ea Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 24 Jul 2019 08:54:17 +0200 Subject: [PATCH 022/453] Change clarity tooltip --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 3014ce83d..146a5c2c1 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2249,7 +2249,7 @@ TP_WAVELET_TMSCALE;Scale TP_WAVELET_TON;Toning TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None -TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level and wavelet levels. +TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_CLA;Clarity From ee27f6778b782d5c2126a012d03b1bf27256d892 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 17 Aug 2019 17:51:42 +0200 Subject: [PATCH 023/453] Change label auto grey --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index c68054a87..0e1da6e25 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2243,7 +2243,7 @@ TP_WBALANCE_FLASH55;Leica TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta TP_WBALANCE_AUTO_HEADER;Autos -TP_WBALANCE_AUTOOLD;Auto grey old +TP_WBALANCE_AUTOOLD;Auto RGB grey TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_FLASH_HEADER;Flash TP_WBALANCE_FLUO1;F1 - Daylight From 6636c484a6e29111b9cdba1d3ec05fb34a841e2f Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 17 Aug 2019 18:03:11 +0200 Subject: [PATCH 024/453] Suppress warning --- rtengine/improccoordinator.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 88878c5b4..a7f2a4cb3 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -359,10 +359,10 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } - bool autowb0 = false; + // bool autowb0 = false; // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen");//in some cases autowb0 does not work ....params->wb.method still at "camera" instead of auto !!! - printf("autowb0=%s \n", params->wb.method.c_str()); + // autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen");//in some cases autowb0 does not work ....params->wb.method still at "camera" instead of auto !!! + // printf("autowb0=%s \n", params->wb.method.c_str()); From 9cd4ca51d317e2bd246d3dc34cb87ae41c461568 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 27 Aug 2019 08:56:15 +0200 Subject: [PATCH 025/453] Change Guidedfilter Guid reference from L to Y --- rtengine/improccoordinator.cc | 9 ++++++++- rtengine/ipwavelet.cc | 10 +++++++++- rtgui/wavelet.cc | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index bbc37cd2a..6a93d1d82 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -934,8 +934,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) for (int ir = 0; ir < pH; ir++) for (int jr = 0; jr < pW; jr++) { + float X, Y, Z; + float L = provradius->L[ir][jr]; + float a = provradius->a[ir][jr]; + float b = provradius->b[ir][jr]; + Color::Lab2XYZ(L, a, b, X, Y, Z); + + guid[ir][jr] = Y / 32768.f; + ble[ir][jr] = (nprevl->L[ir][jr]) / 32768.f; - guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } double epsilmax = 0.0001; double epsilmin = 0.00001; diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 4b46c9742..8a2e3eeda 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1285,7 +1285,15 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int ir = 0; ir < lab->H; ir++) for (int jr = 0; jr < lab->W; jr++) { ble[ir][jr] = dst->L[ir][jr] / 32768.f; - guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + float X, Y, Z; + float L = provradius->L[ir][jr]; + float a = provradius->a[ir][jr]; + float b = provradius->b[ir][jr]; + Color::Lab2XYZ(L, a, b, X, Y, Z); + + guid[ir][jr] = Y / 32768.f; + +// guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } double epsilmax = 0.001; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 4aa18f5bd..375e0a8cf 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -120,8 +120,8 @@ Wavelet::Wavelet() : edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), mergeL(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEL"), -50, 100, 1, 40))), mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), - softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), - softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.1, 0.))), + softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), + softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), From 8fc55ea70c3cdce41d91509fb8cd543b31c67574 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 29 Aug 2019 13:29:14 +0200 Subject: [PATCH 026/453] Change GUI for residual chroma --- rtdata/languages/default | 3 ++- rtgui/wavelet.cc | 14 +++++++++++--- rtgui/wavelet.h | 1 + 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 146a5c2c1..977f40149 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2109,6 +2109,7 @@ TP_WAVELET_CH3;Link contrast levels TP_WAVELET_CHCU;Curve TP_WAVELET_CHR;Chroma-contrast link strength TP_WAVELET_CHRO;Saturated/pastel threshold +TP_WAVELET_CHROMAFRAME;Chroma TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" TP_WAVELET_CHSL;Sliders @@ -2216,7 +2217,7 @@ TP_WAVELET_RADIUS;Radius Shadows - Highlight TP_WAVELET_RE1;Reinforced TP_WAVELET_RE2;Unchanged TP_WAVELET_RE3;Reduced -TP_WAVELET_RESCHRO;Chroma +TP_WAVELET_RESCHRO;Intensity TP_WAVELET_RESCON;Shadows TP_WAVELET_RESCONH;Highlights TP_WAVELET_RESID;Residual Image diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 375e0a8cf..775205bdb 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -140,6 +140,7 @@ Wavelet::Wavelet() : chanMixerHLFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_HIGHLIGHT")))), chanMixerMidFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_MIDTONES")))), chanMixerShadowsFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_SHADOWS")))), + chromaFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROMAFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), @@ -687,8 +688,14 @@ Wavelet::Wavelet() : resBox->pack_start(*contrast); //keep the possibility to reinstall reschro->setAdjusterListener(this); - resBox->pack_start(*reschro); +// resBox->pack_start(*reschro); + chromaFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const chromaBox = Gtk::manage(new ToolParamBlock()); + chromaBox->pack_start(*reschro); + chromaBox->pack_start(*hueskin2); + chromaBox->pack_start(*sky); + chromaFrame->add(*chromaBox); Gtk::Label* const labmTM = Gtk::manage(new Gtk::Label(M("TP_WAVELET_TMTYPE") + ":")); Gtk::HBox* const ctboxTM = Gtk::manage(new Gtk::HBox()); @@ -727,18 +734,19 @@ Wavelet::Wavelet() : hueskin2->set_tooltip_markup(M("TP_WAVELET_HUESKY_TOOLTIP")); hueskin2->setBgGradient(milestones); - resBox->pack_start(*hueskin2); +// resBox->pack_start(*hueskin2); hueskin2->setAdjusterListener(this); sky->set_tooltip_text(M("TP_WAVELET_SKY_TOOLTIP")); sky->setAdjusterListener(this); - resBox->pack_start(*sky); +// resBox->pack_start(*sky); // whole hue range const std::vector milestones3 = makeWholeHueRange(); curveEditorRES->setCurveListener(this); + resBox->pack_start(*chromaFrame); hhshape = static_cast(curveEditorRES->addCurve(CT_Flat, M("TP_WAVELET_CURVEEDITOR_HH"))); hhshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_HH_TOOLTIP")); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 918e9fa7c..0cf63a225 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -253,6 +253,7 @@ private: Gtk::Frame* const chanMixerHLFrame; Gtk::Frame* const chanMixerMidFrame; Gtk::Frame* const chanMixerShadowsFrame; + Gtk::Frame* const chromaFrame; Gtk::Label* const wavLabels; Gtk::Label* const labmC; From 0cfe14f433b4763c7082d094339f21001510965c Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 29 Aug 2019 18:59:45 +0200 Subject: [PATCH 027/453] Move gamut in GUI after contrast and chroma --- rtgui/wavelet.cc | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 775205bdb..dde60b93e 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -918,6 +918,10 @@ Wavelet::Wavelet() : expchroma->setLevel(2); pack_start(*expchroma); + expgamut->add(*conBox, false); + expgamut->setLevel(2); + pack_start(*expgamut); + exptoning->add(*tonBox, false); exptoning->setLevel(2); pack_start(*exptoning); @@ -934,9 +938,6 @@ Wavelet::Wavelet() : expclari->setLevel(2); pack_start(*expclari); - expgamut->add(*conBox, false); - expgamut->setLevel(2); - pack_start(*expgamut); expresid->add(*resBox, false); expresid->setLevel(2); From 1c6fa0d3d0bc4b3d9d0051d6ea1194e2cc646be0 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 30 Aug 2019 07:06:36 +0200 Subject: [PATCH 028/453] Clean code and adjustements to guidefilter --- rtengine/improccoordinator.cc | 21 ++++++++++++++++++--- rtengine/ipwavelet.cc | 23 +++++++++++++++++++---- rtgui/wavelet.cc | 5 +---- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 6a93d1d82..b3f5b186e 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -928,6 +928,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (WaveParams.softrad > 0.f) { array2D ble(pW, pH); array2D guid(pW, pH); + Imagefloat *tmpImage = nullptr; + tmpImage = new Imagefloat(pW, pH); #ifdef _OPENMP #pragma omp parallel for #endif @@ -941,8 +943,14 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) Color::Lab2XYZ(L, a, b, X, Y, Z); guid[ir][jr] = Y / 32768.f; - - ble[ir][jr] = (nprevl->L[ir][jr]) / 32768.f; + float La = nprevl->L[ir][jr]; + float aa = nprevl->a[ir][jr]; + float ba = nprevl->b[ir][jr]; + Color::Lab2XYZ(La, aa, ba, X, Y, Z); + tmpImage->r(ir, jr) = X; + tmpImage->g(ir, jr) = Y; + tmpImage->b(ir, jr) = Z; + ble[ir][jr] = Y / 32768.f; } double epsilmax = 0.0001; double epsilmin = 0.00001; @@ -962,8 +970,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) for (int ir = 0; ir < pH; ir++) for (int jr = 0; jr < pW; jr++) { - nprevl->L[ir][jr] = 32768.f * ble[ir][jr]; + float X = tmpImage->r(ir, jr); + float Y = 32768.f * ble[ir][jr]; + float Z = tmpImage->b(ir, jr); + float L, a, b; + Color::XYZ2Lab(X, Y, Z, L, a, b); + nprevl->L[ir][jr] = L; } + delete tmpImage; + } } diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 8a2e3eeda..7db25dbd1 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -17,7 +17,7 @@ // // You should have received a copy of the GNU General Public License // along with this program. If not, see . -// * 2014 Jacques Desmis +// * 2014 - 2019 Jacques Desmis // * 2014 Ingo Weyrich // @@ -1269,6 +1269,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (waparams.softradend > 0.f && cp.finena) { array2D ble(lab->W, lab->H); array2D guid(lab->W, lab->H); + Imagefloat *tmpImage = nullptr; + tmpImage = new Imagefloat(lab->W, lab->H); bool multiTh = false; @@ -1284,7 +1286,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int ir = 0; ir < lab->H; ir++) for (int jr = 0; jr < lab->W; jr++) { - ble[ir][jr] = dst->L[ir][jr] / 32768.f; float X, Y, Z; float L = provradius->L[ir][jr]; float a = provradius->a[ir][jr]; @@ -1292,8 +1293,15 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Color::Lab2XYZ(L, a, b, X, Y, Z); guid[ir][jr] = Y / 32768.f; + float La = dst->L[ir][jr]; + float aa = dst->a[ir][jr]; + float ba = dst->b[ir][jr]; + Color::Lab2XYZ(La, aa, ba, X, Y, Z); + tmpImage->r(ir, jr) = X; + tmpImage->g(ir, jr) = Y; + tmpImage->b(ir, jr) = Z; + ble[ir][jr] = Y / 32768.f; -// guid[ir][jr] = provradius->L[ir][jr] / 32768.f; } double epsilmax = 0.001; @@ -1314,8 +1322,15 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const for (int ir = 0; ir < lab->H; ir++) for (int jr = 0; jr < lab->W; jr++) { - dst->L[ir][jr] = 32768.f * ble[ir][jr]; + float X = tmpImage->r(ir, jr); + float Y = 32768.f * ble[ir][jr]; + float Z = tmpImage->b(ir, jr); + float L, a, b; + Color::XYZ2Lab(X, Y, Z, L, a, b); + + dst->L[ir][jr] = L; } + delete tmpImage; } if (waparams.softradend > 0.f && cp.finena) { diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index dde60b93e..e3460e685 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -14,7 +14,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . * - * 2014 Jacques Desmis + * 2014 - 2019Jacques Desmis */ #include "wavelet.h" @@ -688,7 +688,6 @@ Wavelet::Wavelet() : resBox->pack_start(*contrast); //keep the possibility to reinstall reschro->setAdjusterListener(this); -// resBox->pack_start(*reschro); chromaFrame->set_label_align(0.025, 0.5); ToolParamBlock* const chromaBox = Gtk::manage(new ToolParamBlock()); @@ -734,13 +733,11 @@ Wavelet::Wavelet() : hueskin2->set_tooltip_markup(M("TP_WAVELET_HUESKY_TOOLTIP")); hueskin2->setBgGradient(milestones); -// resBox->pack_start(*hueskin2); hueskin2->setAdjusterListener(this); sky->set_tooltip_text(M("TP_WAVELET_SKY_TOOLTIP")); sky->setAdjusterListener(this); -// resBox->pack_start(*sky); // whole hue range const std::vector milestones3 = makeWholeHueRange(); From 6a0e1cf1b6658e6ca992bc65f80dce94f0b20f3b Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 30 Aug 2019 07:42:47 +0200 Subject: [PATCH 029/453] change guidedfilter wavalet in simpleprocess --- rtengine/simpleprocess.cc | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 8270ec45b..1348879c3 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1187,25 +1187,29 @@ private: if (WaveParams.softrad > 0.f) { array2D ble(fw, fh); array2D guid(fw, fh); - /* - #ifdef _OPENMP - const int numThreads = omp_get_max_threads(); - #endif - - bool multiTh = false; - - if (numThreads > 1) { - multiTh = true; - } - */ + Imagefloat *tmpImage = nullptr; + tmpImage = new Imagefloat(fw, fh); #ifdef _OPENMP #pragma omp parallel for #endif for (int ir = 0; ir < fh; ir++) for (int jr = 0; jr < fw; jr++) { - ble[ir][jr] = (labView->L[ir][jr]) / 32768.f; - guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + float X, Y, Z; + float L = provradius->L[ir][jr]; + float a = provradius->a[ir][jr]; + float b = provradius->b[ir][jr]; + Color::Lab2XYZ(L, a, b, X, Y, Z); + + guid[ir][jr] = Y / 32768.f; + float La = labView->L[ir][jr]; + float aa = labView->a[ir][jr]; + float ba = labView->b[ir][jr]; + Color::Lab2XYZ(La, aa, ba, X, Y, Z); + tmpImage->r(ir, jr) = X; + tmpImage->g(ir, jr) = Y; + tmpImage->b(ir, jr) = Z; + ble[ir][jr] = Y / 32768.f; } double epsilmax = 0.0001; double epsilmin = 0.00001; @@ -1225,8 +1229,14 @@ private: for (int ir = 0; ir < fh; ir++) for (int jr = 0; jr < fw; jr++) { - labView->L[ir][jr] = 32768.f * ble[ir][jr]; + float X = tmpImage->r(ir, jr); + float Y = 32768.f * ble[ir][jr]; + float Z = tmpImage->b(ir, jr); + float L, a, b; + Color::XYZ2Lab(X, Y, Z, L, a, b); + labView->L[ir][jr] = L; } + delete tmpImage; } } From 2068871b6ed2e700d7900c4fd2210f6f639bca11 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 30 Aug 2019 08:04:32 +0200 Subject: [PATCH 030/453] Format ipwavelet.cc and wavelet.cc --- rtengine/ipwavelet.cc | 74 ++++++++++++++++-------------- rtgui/wavelet.cc | 102 ++++++++++++++++++++++-------------------- 2 files changed, 95 insertions(+), 81 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 7db25dbd1..784d3d405 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -3,7 +3,7 @@ // // // -// code dated: December , 2014 +// code dated: 9 , 2019 // // Ipwaveletcc is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -1275,9 +1275,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const bool multiTh = false; #ifdef _OPENMP + if (numthreads > 1) { multiTh = true; } + #endif #ifdef _OPENMP @@ -1301,7 +1303,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const tmpImage->g(ir, jr) = Y; tmpImage->b(ir, jr) = Z; ble[ir][jr] = Y / 32768.f; - + } double epsilmax = 0.001; @@ -1327,9 +1329,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float Z = tmpImage->b(ir, jr); float L, a, b; Color::XYZ2Lab(X, Y, Z, L, a, b); - + dst->L[ir][jr] = L; } + delete tmpImage; } @@ -1781,11 +1784,11 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * double contreal = 0.6 * contrast; DiagonalCurve resid_contrast({ DCT_NURBS, - 0, 0, - avg - avg * (0.6 - contreal / 250.0), avg - avg * (0.6 + contreal / 250.0), - avg + (1. - avg) * (0.6 - contreal / 250.0), avg + (1. - avg) * (0.6 + contreal / 250.0), - 1, 1 - }); + 0, 0, + avg - avg * (0.6 - contreal / 250.0), avg - avg * (0.6 + contreal / 250.0), + avg + (1. - avg) * (0.6 - contreal / 250.0), avg + (1. - avg) * (0.6 + contreal / 250.0), + 1, 1 + }); #ifdef _OPENMP @@ -1796,17 +1799,18 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * { #ifdef _OPENMP - #pragma omp for + #pragma omp for #endif + for (int i = 0; i < W_L * H_L; i++) { - float buf = LIM01( WavCoeffs_L0[i] / 32768.f); + float buf = LIM01(WavCoeffs_L0[i] / 32768.f); buf = resid_contrast.getVal(buf); buf *= 32768.f; WavCoeffs_L0[i] = buf; } } } - + if (cp.tonemap && cp.contmet == 1 && cp.resena) { float maxp = max0 * 256.f; @@ -1818,33 +1822,37 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } - if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step - LabImage *temp = nullptr; - temp = new LabImage(W_L, H_L); + if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step + LabImage *temp = nullptr; + temp = new LabImage(W_L, H_L); #ifdef _OPENMP - #pragma omp for + #pragma omp for #endif - for (int i = 0; i < H_L; i++) { - for (int j = 0; j < W_L; j++) { - temp->L[i][j] = WavCoeffs_L0[i * W_L + j]; - } - } - { - ImProcFunctions::shadowsHighlights(temp, true, 1, cp.conresH, cp.conres, cp.radius, skip, cp.thH, cp.th); - } -#ifdef _OPENMP - #pragma omp for -#endif - for (int i = 0; i < H_L; i++) { - for (int j = 0; j < W_L; j++) { - WavCoeffs_L0[i * W_L + j] = temp->L[i][j]; - } - } - - delete temp; + for (int i = 0; i < H_L; i++) { + for (int j = 0; j < W_L; j++) { + temp->L[i][j] = WavCoeffs_L0[i * W_L + j]; + } } + { + ImProcFunctions::shadowsHighlights(temp, true, 1, cp.conresH, cp.conres, cp.radius, skip, cp.thH, cp.th); + } + +#ifdef _OPENMP + #pragma omp for +#endif + + for (int i = 0; i < H_L; i++) { + for (int j = 0; j < W_L; j++) { + WavCoeffs_L0[i * W_L + j] = temp->L[i][j]; + } + } + + delete temp; + + } + #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index e3460e685..11126666d 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -489,7 +489,7 @@ Wavelet::Wavelet() : showmaskConn = showmask->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::showmaskToggled)); ToolParamBlock* const clariBox = Gtk::manage(new ToolParamBlock()); - // ushamethod->append(M("TP_WAVELET_USH")); + // ushamethod->append(M("TP_WAVELET_USH")); ushamethod->append(M("TP_WAVELET_SHA")); ushamethod->append(M("TP_WAVELET_CLA")); ushamethodconn = ushamethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::ushamethodChanged)); @@ -1064,7 +1064,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) //ushamethod // if (pp->wavelet.ushamethod == "none") { // ushamethod->set_active(0); - // } else +// } else if (pp->wavelet.ushamethod == "sharp") { ushamethod->set_active(0); } else if (pp->wavelet.ushamethod == "clari") { @@ -1758,9 +1758,9 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.Medgreinf = "less"; } - // if (ushamethod->get_active_row_number() == 0) { - // pp->wavelet.ushamethod = "none"; - // } else +// if (ushamethod->get_active_row_number() == 0) { +// pp->wavelet.ushamethod = "none"; +// } else if (ushamethod->get_active_row_number() == 0) { pp->wavelet.ushamethod = "sharp"; } else if (ushamethod->get_active_row_number() == 1) { @@ -2319,14 +2319,14 @@ void Wavelet::TMmethodUpdateUI() } } */ - if(TMmethod->get_active_row_number() == 1) { - edgs->show(); - scale->show(); - } else if (TMmethod->get_active_row_number() == 0) { - edgs->hide(); - scale->hide(); - } - + if (TMmethod->get_active_row_number() == 1) { + edgs->show(); + scale->show(); + } else if (TMmethod->get_active_row_number() == 0) { + edgs->hide(); + scale->hide(); + } + } void Wavelet::TMmethodChanged() @@ -2413,14 +2413,14 @@ void Wavelet::ushamethodChanged() Dirmethod->set_sensitive(true); CLmethod->set_sensitive(false); Backmethod->set_sensitive(false); - /* } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { - Backmethod->set_active(1); - CLmethod->set_active(3); - Lmethod->set_active(3); - Dirmethod->set_active(3); - Lmethod->set_sensitive(false); - Dirmethod->set_sensitive(false); - */ + /* } else if (ushamethod->get_active_row_number() == 0 || expclari->getEnabled() == false) { + Backmethod->set_active(1); + CLmethod->set_active(3); + Lmethod->set_active(3); + Dirmethod->set_active(3); + Lmethod->set_sensitive(false); + Dirmethod->set_sensitive(false); + */ } else if (expclari->getEnabled() == false) { Backmethod->set_active(1); CLmethod->set_active(3); @@ -2496,12 +2496,16 @@ void Wavelet::LmethodUpdateUI() { void Wavelet::LmethodChanged() { //LmethodUpdateUI(); - if(ushamethod->get_active_row_number() == 0 && expclari->getEnabled() == true) { - if(Lmethod->get_active_row_number() > 3) Lmethod->set_active(3); + if (ushamethod->get_active_row_number() == 0 && expclari->getEnabled() == true) { + if (Lmethod->get_active_row_number() > 3) { + Lmethod->set_active(3); + } } - if(ushamethod->get_active_row_number() == 1 && expclari->getEnabled() == true) { - if(Lmethod->get_active_row_number() < 4) Lmethod->set_active(4); + if (ushamethod->get_active_row_number() == 1 && expclari->getEnabled() == true) { + if (Lmethod->get_active_row_number() < 4) { + Lmethod->set_active(4); + } } if (listener && (multiImage || getEnabled())) { @@ -2588,23 +2592,23 @@ void Wavelet::setBatchMode(bool batchMode) void Wavelet::adjusterUpdateUI(Adjuster* a) { - /* - if (!batchMode) { - if (a == tmrs ) { - float tm; - tm=tmrs->getValue(); - if(tm==0.f) tmr->hide(); - else tmr->show(); - } - else if (a == gamma ) { - float tm; - tm=tmrs->getValue(); - if(tm==0.f) tmr->hide(); - else tmr->show(); - - } - } - */ + /* + if (!batchMode) { + if (a == tmrs ) { + float tm; + tm=tmrs->getValue(); + if(tm==0.f) tmr->hide(); + else tmr->show(); + } + else if (a == gamma ) { + float tm; + tm=tmrs->getValue(); + if(tm==0.f) tmr->hide(); + else tmr->show(); + + } + } + */ } void Wavelet::adjusterChanged(Adjuster* a, double newval) @@ -2618,15 +2622,16 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavresconH, resconH->getTextValue()); } else if (a == reschro) { listener->panelChanged(EvWavreschro, reschro->getTextValue()); - } else if (a == tmrs) { + } else if (a == tmrs) { adjusterUpdateUI(a); listener->panelChanged(EvWavtmrs, tmrs->getTextValue()); - if(tmrs->getValue() != 0 && TMmethod->get_active_row_number() == 1) { - edgs->show(); - scale->show(); + + if (tmrs->getValue() != 0 && TMmethod->get_active_row_number() == 1) { + edgs->show(); + scale->show(); } else if (TMmethod->get_active_row_number() == 0) { - edgs->hide(); - scale->hide(); + edgs->hide(); + scale->hide(); } } else if (a == gamma) { adjusterUpdateUI(a); @@ -3305,6 +3310,7 @@ void Wavelet::enableToggled(MyExpander *expander) Backmethod->set_sensitive(false); } } + event = EvWavenaclari; } else // unknown expander, returning ! From 0f8b9c4574517fcf856e929f99eea08fc0343136 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 31 Aug 2019 08:00:41 +0200 Subject: [PATCH 031/453] Improve showmask and Guidedfilter dcrop --- rtengine/dcrop.cc | 40 ++++++++++++++++++++++++++++++----- rtengine/improccoordinator.cc | 13 ++++++++++-- rtengine/simpleprocess.cc | 2 +- 3 files changed, 47 insertions(+), 8 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index fc6e838d4..2ab9caa59 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1043,6 +1043,8 @@ void Crop::update(int todo) if (WaveParams.softrad > 0.f) { array2D ble(labnCrop->W, labnCrop->H); array2D guid(labnCrop->W, labnCrop->H); + Imagefloat *tmpImage = nullptr; + tmpImage = new Imagefloat(labnCrop->W, labnCrop->W); #ifdef _OPENMP #pragma omp parallel for @@ -1050,8 +1052,21 @@ void Crop::update(int todo) for (int ir = 0; ir < labnCrop->H ; ir++) for (int jr = 0; jr < labnCrop->W; jr++) { - ble[ir][jr] = (labnCrop->L[ir][jr]) / 32768.f; - guid[ir][jr] = provradius->L[ir][jr] / 32768.f; + float X, Y, Z; + float L = provradius->L[ir][jr]; + float a = provradius->a[ir][jr]; + float b = provradius->b[ir][jr]; + Color::Lab2XYZ(L, a, b, X, Y, Z); + + guid[ir][jr] = Y / 32768.f; + float La = labnCrop->L[ir][jr]; + float aa = labnCrop->a[ir][jr]; + float ba = labnCrop->b[ir][jr]; + Color::Lab2XYZ(La, aa, ba, X, Y, Z); + tmpImage->r(ir, jr) = X; + tmpImage->g(ir, jr) = Y; + tmpImage->b(ir, jr) = Z; + ble[ir][jr] = Y / 32768.f; } double epsilmax = 0.0001; double epsilmin = 0.00001; @@ -1070,8 +1085,14 @@ void Crop::update(int todo) for (int ir = 0; ir < labnCrop->H; ir++) for (int jr = 0; jr < labnCrop->W; jr++) { - labnCrop->L[ir][jr] = 32768.f * ble[ir][jr]; + float X = tmpImage->r(ir, jr); + float Y = 32768.f * ble[ir][jr]; + float Z = tmpImage->b(ir, jr); + float L, a, b; + Color::XYZ2Lab(X, Y, Z, L, a, b); + labnCrop->L[ir][jr] = L; } + delete tmpImage; } } @@ -1083,16 +1104,24 @@ void Crop::update(int todo) float mC = (float)(WaveParams.mergeC / 100.f); float mL0; float mC0; + float background = 0.f; + int show = 0; if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { mL0 = mC0 = 0.f; - mL = -mL; + mL = -1.5f * mL; mC = -mC; + background = 12000.f; + show = 0; } else if (WaveParams.CLmethod == "sup" && WaveParams.Backmethod == "resid") { mL0 = mL; mC0 = mC; + background = 0.f; + show = 0; } else { mL0 = mL = mC0 = mC = 0.f; + background = 0.f; + show = 0; } float indic = 1.f; @@ -1101,6 +1130,7 @@ void Crop::update(int todo) indic = -1.f; mL = fabs(mL); mC = fabs(mC); + show = 1; } @@ -1110,7 +1140,7 @@ void Crop::update(int todo) for (int x = 0; x < labnCrop->H; x++) for (int y = 0; y < labnCrop->W; y++) { - labnCrop->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * indic * labnCrop->L[x][y]; + labnCrop->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) + show * background - mL * indic * labnCrop->L[x][y]; labnCrop->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * indic * labnCrop->a[x][y]; labnCrop->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * indic * labnCrop->b[x][y]; } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 812e6a23b..d04a29518 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -988,18 +988,26 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) float mC = (float)(WaveParams.mergeC / 100.f); float mL0; float mC0; + float background = 0.f; + int show = 0; if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { mL0 = mC0 = 0.f; - mL = -mL; + mL = - 1.5f * mL; mC = -mC; + background = 12000.f; + show = 0; } else if (WaveParams.CLmethod == "sup" && WaveParams.Backmethod == "resid") { mL0 = mL; mC0 = mC; + background = 0.f; + show = 0; } else { mL0 = mL = mC0 = mC = 0.f; + background = 0.f; + show = 0; } float indic = 1.f; @@ -1008,6 +1016,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) indic = -1.f; mL = fabs(mL); mC = fabs(mC); + show = 1; } #ifdef _OPENMP #pragma omp parallel for @@ -1015,7 +1024,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) for (int x = 0; x < pH; x++) for (int y = 0; y < pW; y++) { - nprevl->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * indic * nprevl->L[x][y]; + nprevl->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) + show * background - mL * indic * nprevl->L[x][y]; nprevl->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * indic * nprevl->a[x][y]; nprevl->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * indic * nprevl->b[x][y]; } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index eb51577a7..9311d2736 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1249,7 +1249,7 @@ private: if ((WaveParams.CLmethod == "one" || WaveParams.CLmethod == "inf") && WaveParams.Backmethod == "black") { mL0 = mC0 = 0.f; - mL = -mL; + mL = -1.5f * mL; mC = -mC; } else if (WaveParams.CLmethod == "sup" && WaveParams.Backmethod == "resid") { mL0 = mL; From 0b13aee4bc0bdafb7f7d3f2acf0658cfc98d4f6a Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 1 Sep 2019 08:51:34 +0200 Subject: [PATCH 032/453] Clip result clarity --- rtengine/dcrop.cc | 3 +-- rtengine/improccoordinator.cc | 2 +- rtengine/simpleprocess.cc | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 2ab9caa59..f7ce7bbb5 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1133,14 +1133,13 @@ void Crop::update(int todo) show = 1; } - #ifdef _OPENMP #pragma omp parallel for #endif for (int x = 0; x < labnCrop->H; x++) for (int y = 0; y < labnCrop->W; y++) { - labnCrop->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) + show * background - mL * indic * labnCrop->L[x][y]; + labnCrop->L[x][y] = LIM((1.f + mL0) * (unshar->L[x][y]) + show * background - mL * indic * labnCrop->L[x][y], 0.f, 32768.f); labnCrop->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * indic * labnCrop->a[x][y]; labnCrop->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * indic * labnCrop->b[x][y]; } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index d04a29518..d746ff9c6 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1024,7 +1024,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) for (int x = 0; x < pH; x++) for (int y = 0; y < pW; y++) { - nprevl->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) + show * background - mL * indic * nprevl->L[x][y]; + nprevl->L[x][y] = LIM((1.f + mL0) * (unshar->L[x][y]) + show * background - mL * indic * nprevl->L[x][y], 0.f, 32768.f); nprevl->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * indic * nprevl->a[x][y]; nprevl->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * indic * nprevl->b[x][y]; } diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 9311d2736..b7d807808 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1265,7 +1265,7 @@ private: for (int x = 0; x < fh; x++) for (int y = 0; y < fw; y++) { - labView->L[x][y] = (1.f + mL0) * (unshar->L[x][y]) - mL * labView->L[x][y]; + labView->L[x][y] = LIM((1.f + mL0) * (unshar->L[x][y]) - mL * labView->L[x][y], 0.f, 32768.f); labView->a[x][y] = (1.f + mC0) * (unshar->a[x][y]) - mC * labView->a[x][y]; labView->b[x][y] = (1.f + mC0) * (unshar->b[x][y]) - mC * labView->b[x][y]; } From 9205b506b50c941ee13c78243f51a2e15d9fe16f Mon Sep 17 00:00:00 2001 From: Mattia Verga Date: Sun, 24 Nov 2019 13:48:12 +0100 Subject: [PATCH 033/453] Fix linking against system klt --- rtengine/CMakeLists.txt | 6 ++++++ rtengine/calc_distort.cc | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index f58afde5e..711818a6d 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -12,6 +12,11 @@ include_directories(${EXTRA_INCDIR} ${LENSFUN_INCLUDE_DIRS} ${RSVG_INCLUDE_DIRS} ) +if(NOT WITH_SYSTEM_KLT) + include_directories("${CMAKE_SOURCE_DIR}/rtengine/klt") +else() + include_directories(${KLT_INCLUDE_DIRS}) +endif() link_directories("${PROJECT_SOURCE_DIR}/rtexif" ${EXPAT_LIBRARY_DIRS} @@ -184,6 +189,7 @@ target_link_libraries(rtengine rtexif ${ZLIB_LIBRARIES} ${LENSFUN_LIBRARIES} ${RSVG_LIBRARIES} + ${KLT_LIBRARIES} ) install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) diff --git a/rtengine/calc_distort.cc b/rtengine/calc_distort.cc index 7af47adb2..3a7a4a1c4 100644 --- a/rtengine/calc_distort.cc +++ b/rtengine/calc_distort.cc @@ -5,8 +5,8 @@ locations (before and after tracking) to text files and to PPM files, and prints the features to the screen. **********************************************************************/ -#include "klt/pnmio.h" -#include "klt/klt.h" +#include +#include #include #include From 1d08c9355d91e654a5ef1723d00371b75a682979 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 9 Dec 2019 15:34:04 +0100 Subject: [PATCH 034/453] Capture sharpening: speedup processing of flat areas --- rtengine/capturesharpening.cc | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index e8770f95a..910de6fd3 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -541,6 +541,7 @@ BENCHFUN double progress = startVal; const double progressStep = (endVal - startVal) * rtengine::SQR(tileSize) / (W * H); + constexpr float minBlend = 0.01f; #ifdef _OPENMP #pragma omp parallel @@ -563,11 +564,17 @@ BENCHFUN if (endOfRow || endOfCol) { // special handling for small tiles at end of row or column if (checkIterStop) { + float maxVal = 0.f; for (int k = 0, ii = endOfCol ? H - fullTileSize + border : i; k < tileSize; ++k, ++ii) { for (int l = 0, jj = endOfRow ? W - fullTileSize + border : j; l < tileSize; ++l, ++jj) { iterCheck[k][l] = oldLuminance[ii][jj] * clipmask[ii][jj] * 0.5f; + maxVal = std::max(maxVal, clipmask[ii][jj]); } } + if (maxVal < minBlend) { + // no pixel of the tile has a blend factor >= minBlend => skip the tile + continue; + } } for (int k = 0, ii = endOfCol ? H - fullTileSize : i - border; k < fullTileSize; ++k, ++ii) { for (int l = 0, jj = endOfRow ? W - fullTileSize : j - border; l < fullTileSize; ++l, ++jj) { @@ -577,11 +584,17 @@ BENCHFUN } } else { if (checkIterStop) { + float maxVal = 0.f; for (int ii = 0; ii < tileSize; ++ii) { for (int jj = 0; jj < tileSize; ++jj) { iterCheck[ii][jj] = oldLuminance[i + ii][j + jj] * clipmask[i + ii][j + jj] * 0.5f; + maxVal = std::max(maxVal, clipmask[i + ii][j + jj]); } } + if (maxVal < minBlend) { + // no pixel of the tile has a blend factor >= minBlend => skip the tile + continue; + } } for (int ii = i; ii < i + fullTileSize; ++ii) { for (int jj = j; jj < j + fullTileSize; ++jj) { From a2dd9061156fd267ced0364e40e0cffa43f1e093 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 11 Dec 2019 13:00:09 +0100 Subject: [PATCH 035/453] flush denormals to zeros for mask blur, #5560 --- rtengine/rt_algo.cc | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index b02e75461..79a7c3679 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -473,8 +473,18 @@ void buildBlendMask(const float* const * luminance, float **blend, int W, int H, } } +#ifdef __SSE2__ + // flush denormals to zero for gaussian blur to avoid performance penalty if there are a lot of zero values in the mask + const auto oldMode = _MM_GET_FLUSH_ZERO_MODE(); + _MM_SET_FLUSH_ZERO_MODE(_MM_FLUSH_ZERO_ON); +#endif + // blur blend mask to smooth transitions gaussianBlur(blend, blend, W, H, 2.0); + +#ifdef __SSE2__ + _MM_SET_FLUSH_ZERO_MODE(oldMode); +#endif } } } From 0edbdc88622e27b6aff253f8fd83dfc3cefcd2a5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 12 Dec 2019 12:53:39 +0100 Subject: [PATCH 036/453] Added image/x-canon-cr3 mime type #5319 --- rtdata/mime-types | 1 + rtdata/rawtherapee.desktop.in | 2 +- tools/gimp-plugin/file-formats.h | 4 ++-- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/rtdata/mime-types b/rtdata/mime-types index 505b00140..bfd1ccbd9 100644 --- a/rtdata/mime-types +++ b/rtdata/mime-types @@ -6,6 +6,7 @@ image/png; image/tiff; image/x-adobe-dng; image/x-canon-cr2; +image/x-canon-cr3; image/x-canon-crf; image/x-canon-crw; image/x-fuji-raf; diff --git a/rtdata/rawtherapee.desktop.in b/rtdata/rawtherapee.desktop.in index f6bc3afeb..350afc45e 100644 --- a/rtdata/rawtherapee.desktop.in +++ b/rtdata/rawtherapee.desktop.in @@ -14,7 +14,7 @@ Icon=rawtherapee TryExec=rawtherapee Exec=rawtherapee %f Terminal=false -MimeType=image/jpeg;image/png;image/tiff;image/x-adobe-dng;image/x-canon-cr2;image/x-canon-crf;image/x-canon-crw;image/x-fuji-raf;image/x-hasselblad-3fr;image/x-hasselblad-fff;image/x-jpg;image/x-kodak-dcr;image/x-kodak-k25;image/x-kodak-kdc;image/x-leaf-mos;image/x-leica-rwl;image/x-mamiya-mef;image/x-minolta-mrw;image/x-nikon-nef;image/x-nikon-nrw;image/x-olympus-orf;image/x-panasonic-raw;image/x-panasonic-rw2;image/x-pentax-pef;image/x-pentax-raw;image/x-phaseone-iiq;image/x-raw;image/x-rwz;image/x-samsung-srw;image/x-sigma-x3f;image/x-sony-arq;image/x-sony-arw;image/x-sony-sr2;image/x-sony-srf;image/x-tif; +MimeType=image/jpeg;image/png;image/tiff;image/x-adobe-dng;image/x-canon-cr2;image/x-canon-cr3;image/x-canon-crf;image/x-canon-crw;image/x-fuji-raf;image/x-hasselblad-3fr;image/x-hasselblad-fff;image/x-jpg;image/x-kodak-dcr;image/x-kodak-k25;image/x-kodak-kdc;image/x-leaf-mos;image/x-leica-rwl;image/x-mamiya-mef;image/x-minolta-mrw;image/x-nikon-nef;image/x-nikon-nrw;image/x-olympus-orf;image/x-panasonic-raw;image/x-panasonic-rw2;image/x-pentax-pef;image/x-pentax-raw;image/x-phaseone-iiq;image/x-raw;image/x-rwz;image/x-samsung-srw;image/x-sigma-x3f;image/x-sony-arq;image/x-sony-arw;image/x-sony-sr2;image/x-sony-srf;image/x-tif;inode/directory; Categories=Graphics;Photography;2DGraphics;RasterGraphics;GTK; Keywords=raw;photo;photography;develop;pp3;graphics; StartupNotify=true diff --git a/tools/gimp-plugin/file-formats.h b/tools/gimp-plugin/file-formats.h index ac8c2fa54..1956988d8 100644 --- a/tools/gimp-plugin/file-formats.h +++ b/tools/gimp-plugin/file-formats.h @@ -39,8 +39,8 @@ static const FileFormat file_formats[] = { { N_("Raw Canon"), - "image/x-canon-cr2,image/x-canon-crw", - "cr2,crw", + "image/x-canon-cr2,image/x-canon-cr3,image/x-canon-crw", + "cr2,cr3,crw", NULL, "file-rawtherapee-canon-load", From b2218d05dd9b850f1e9c509a20009b639c8f8030 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 12 Dec 2019 18:45:18 +0100 Subject: [PATCH 037/453] clip negative output of demosaicers to zero, #5561 --- rtengine/amaze_demosaic_RT.cc | 80 +++++++++++++++++------------------ rtengine/demosaic_algos.cc | 48 ++++++++++----------- rtengine/eahd_demosaic.cc | 12 +++--- rtengine/fast_demo.cc | 18 ++++---- rtengine/hphd_demosaic_RT.cc | 6 +-- rtengine/lmmse_demosaic.cc | 22 ++++------ rtengine/rawimagesource_i.h | 12 +++--- rtengine/rcd_demosaic.cc | 6 +-- rtengine/vng4_demosaic_RT.cc | 8 ++-- rtengine/xtrans_demosaic.cc | 6 +-- 10 files changed, 105 insertions(+), 113 deletions(-) diff --git a/rtengine/amaze_demosaic_RT.cc b/rtengine/amaze_demosaic_RT.cc index 24c463458..2041f3130 100644 --- a/rtengine/amaze_demosaic_RT.cc +++ b/rtengine/amaze_demosaic_RT.cc @@ -1470,48 +1470,48 @@ void RawImageSource::amaze_demosaic_RT(int winx, int winy, int winw, int winh, c vfloat bluev1 = greenv - (temp00v * vdup(LVFU(Dgrb[1][(indx - v1) >> 1])) + (onev - vdup(LVFU(hvwt[(indx + 1 + offset) >> 1]))) * vdup(LVFU(Dgrb[1][(indx + 1 + offset) >> 1])) + (onev - vdup(LVFU(hvwt[(indx - 1 + offset) >> 1]))) * vdup(LVFU(Dgrb[1][(indx - 1 + offset) >> 1])) + temp01v * vdup(LVFU(Dgrb[1][(indx + v1) >> 1]))) * tempv; vfloat redv2 = greenv - vdup(LVFU(Dgrb[0][indx >> 1])); vfloat bluev2 = greenv - vdup(LVFU(Dgrb[1][indx >> 1])); - STVFU(red[row][col], c65535v * vself(selmask, redv1, redv2)); - STVFU(blue[row][col], c65535v * vself(selmask, bluev1, bluev2)); + STVFU(red[row][col], vmaxf(c65535v * vself(selmask, redv1, redv2), ZEROV)); + STVFU(blue[row][col], vmaxf(c65535v * vself(selmask, bluev1, bluev2), ZEROV)); } if(offset == 0) { for (; indx < rr * ts + cc1 - 16 - (cc1 & 1); indx++, col++) { float temp = 1.f / (hvwt[(indx - v1) >> 1] + 2.f - hvwt[(indx + 1) >> 1] - hvwt[(indx - 1) >> 1] + hvwt[(indx + v1) >> 1]); - red[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * - temp); - blue[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * - temp); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * + temp)); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * + temp)); indx++; col++; - red[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1]); - blue[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1]); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1])); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1])); } if(cc1 & 1) { // width of tile is odd float temp = 1.f / (hvwt[(indx - v1) >> 1] + 2.f - hvwt[(indx + 1) >> 1] - hvwt[(indx - 1) >> 1] + hvwt[(indx + v1) >> 1]); - red[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * - temp); - blue[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * - temp); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * + temp)); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * + temp)); } } else { for (; indx < rr * ts + cc1 - 16 - (cc1 & 1); indx++, col++) { - red[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1]); - blue[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1]); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1])); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1])); indx++; col++; float temp = 1.f / (hvwt[(indx - v1) >> 1] + 2.f - hvwt[(indx + 1) >> 1] - hvwt[(indx - 1) >> 1] + hvwt[(indx + v1) >> 1]); - red[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * - temp); - blue[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * - temp); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * + temp)); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * + temp)); } if(cc1 & 1) { // width of tile is odd - red[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1]); - blue[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1]); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1])); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1])); } } @@ -1520,41 +1520,41 @@ void RawImageSource::amaze_demosaic_RT(int winx, int winy, int winw, int winh, c if((fc(cfarray, rr, 2) & 1) == 1) { for (; indx < rr * ts + cc1 - 16 - (cc1 & 1); indx++, col++) { float temp = 1.f / (hvwt[(indx - v1) >> 1] + 2.f - hvwt[(indx + 1) >> 1] - hvwt[(indx - 1) >> 1] + hvwt[(indx + v1) >> 1]); - red[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * - temp); - blue[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * - temp); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * + temp)); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * + temp)); indx++; col++; - red[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1]); - blue[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1]); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1])); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1])); } if(cc1 & 1) { // width of tile is odd float temp = 1.f / (hvwt[(indx - v1) >> 1] + 2.f - hvwt[(indx + 1) >> 1] - hvwt[(indx - 1) >> 1] + hvwt[(indx + v1) >> 1]); - red[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * - temp); - blue[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * - temp); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * + temp)); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * + temp)); } } else { for (; indx < rr * ts + cc1 - 16 - (cc1 & 1); indx++, col++) { - red[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1]); - blue[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1]); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1])); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1])); indx++; col++; float temp = 1.f / (hvwt[(indx - v1) >> 1] + 2.f - hvwt[(indx + 1) >> 1] - hvwt[(indx - 1) >> 1] + hvwt[(indx + v1) >> 1]); - red[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * - temp); - blue[row][col] = 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * - temp); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[0][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[0][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[0][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[0][(indx + v1) >> 1]) * + temp)); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - ((hvwt[(indx - v1) >> 1]) * Dgrb[1][(indx - v1) >> 1] + (1.f - hvwt[(indx + 1) >> 1]) * Dgrb[1][(indx + 1) >> 1] + (1.f - hvwt[(indx - 1) >> 1]) * Dgrb[1][(indx - 1) >> 1] + (hvwt[(indx + v1) >> 1]) * Dgrb[1][(indx + v1) >> 1]) * + temp)); } if(cc1 & 1) { // width of tile is odd - red[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1]); - blue[row][col] = 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1]); + red[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[0][indx >> 1])); + blue[row][col] = std::max(0.f, 65535.f * (rgbgreen[indx] - Dgrb[1][indx >> 1])); } } @@ -1568,13 +1568,13 @@ void RawImageSource::amaze_demosaic_RT(int winx, int winy, int winw, int winh, c #ifdef __SSE2__ for (; cc < cc1 - 19; cc += 4) { - STVFU(green[row][cc + left], LVF(rgbgreen[rr * ts + cc]) * c65535v); + STVFU(green[row][cc + left], vmaxf(LVF(rgbgreen[rr * ts + cc]) * c65535v, ZEROV)); } #endif for (; cc < cc1 - 16; cc++) { - green[row][cc + left] = 65535.f * rgbgreen[rr * ts + cc]; + green[row][cc + left] = std::max(0.f, 65535.f * rgbgreen[rr * ts + cc]); } } diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index c48a002fb..538858a9a 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -215,7 +215,6 @@ void RawImageSource::border_interpolate( int winw, int winh, int lborders, const // Adapted to RawTherapee by Jacques Desmis 3/2013 // SSE version by Ingo Weyrich 5/2013 #ifdef __SSE2__ -#define CLIPV(a) vclampf(a,zerov,c65535v) void RawImageSource::igv_interpolate(int winw, int winh) { static const float eps = 1e-5f, epssq = 1e-5f; //mod epssq -10f =>-5f Jacques 3/2013 to prevent artifact (divide by zero) @@ -284,9 +283,9 @@ void RawImageSource::igv_interpolate(int winw, int winh) for (col = 0, indx = row * width + col; col < width - 7; col += 8, indx += 8) { temp1v = LVFU( rawData[row][col] ); - temp1v = CLIPV( temp1v ); + temp1v = vmaxf(temp1v, ZEROV); temp2v = LVFU( rawData[row][col + 4] ); - temp2v = CLIPV( temp2v ); + temp2v = vmaxf(temp2v, ZEROV); tempv = _mm_shuffle_ps( temp1v, temp2v, _MM_SHUFFLE( 2, 0, 2, 0 ) ); _mm_storeu_ps( &dest1[indx >> 1], tempv ); tempv = _mm_shuffle_ps( temp1v, temp2v, _MM_SHUFFLE( 3, 1, 3, 1 ) ); @@ -294,10 +293,10 @@ void RawImageSource::igv_interpolate(int winw, int winh) } for (; col < width; col++, indx += 2) { - dest1[indx >> 1] = CLIP(rawData[row][col]); //rawData = RT data + dest1[indx >> 1] = std::max(0.f, rawData[row][col]); //rawData = RT data col++; if(col < width) - dest2[indx >> 1] = CLIP(rawData[row][col]); //rawData = RT data + dest2[indx >> 1] = std::max(0.f, rawData[row][col]); //rawData = RT data } } @@ -556,42 +555,42 @@ void RawImageSource::igv_interpolate(int winw, int winh) temp2v = LVFU( src2[(indx + 1) >> 1] ); tempv = _mm_shuffle_ps( temp1v, temp2v, _MM_SHUFFLE( 1, 0, 1, 0 ) ); tempv = _mm_shuffle_ps( tempv, tempv, _MM_SHUFFLE( 3, 1, 2, 0 ) ); - _mm_storeu_ps( &green[row][col], CLIPV( tempv )); + _mm_storeu_ps( &green[row][col], vmaxf(tempv, ZEROV)); temp5v = LVFU(redsrc0[indx >> 1]); temp6v = LVFU(redsrc1[(indx + 1) >> 1]); temp3v = _mm_shuffle_ps( temp5v, temp6v, _MM_SHUFFLE( 1, 0, 1, 0 ) ); temp3v = _mm_shuffle_ps( temp3v, temp3v, _MM_SHUFFLE( 3, 1, 2, 0 ) ); - temp3v = CLIPV( tempv - c65535v * temp3v ); + temp3v = vmaxf(tempv - c65535v * temp3v, ZEROV); _mm_storeu_ps( &red[row][col], temp3v); temp7v = LVFU(bluesrc0[indx >> 1]); temp8v = LVFU(bluesrc1[(indx + 1) >> 1]); temp4v = _mm_shuffle_ps( temp7v, temp8v, _MM_SHUFFLE( 1, 0, 1, 0 ) ); temp4v = _mm_shuffle_ps( temp4v, temp4v, _MM_SHUFFLE( 3, 1, 2, 0 ) ); - temp4v = CLIPV( tempv - c65535v * temp4v ); + temp4v = vmaxf(tempv - c65535v * temp4v, ZEROV); _mm_storeu_ps( &blue[row][col], temp4v); tempv = _mm_shuffle_ps( temp1v, temp2v, _MM_SHUFFLE( 3, 2, 3, 2 ) ); tempv = _mm_shuffle_ps( tempv, tempv, _MM_SHUFFLE( 3, 1, 2, 0 ) ); - _mm_storeu_ps( &green[row][col + 4], CLIPV( tempv )); + _mm_storeu_ps( &green[row][col + 4], vmaxf(tempv, ZEROV)); temp3v = _mm_shuffle_ps( temp5v, temp6v, _MM_SHUFFLE( 3, 2, 3, 2 ) ); temp3v = _mm_shuffle_ps( temp3v, temp3v, _MM_SHUFFLE( 3, 1, 2, 0 ) ); - temp3v = CLIPV( tempv - c65535v * temp3v ); + temp3v = vmaxf(tempv - c65535v * temp3v, ZEROV); _mm_storeu_ps( &red[row][col + 4], temp3v); temp4v = _mm_shuffle_ps( temp7v, temp8v, _MM_SHUFFLE( 3, 2, 3, 2 ) ); temp4v = _mm_shuffle_ps( temp4v, temp4v, _MM_SHUFFLE( 3, 1, 2, 0 ) ); - temp4v = CLIPV( tempv - c65535v * temp4v ); + temp4v = vmaxf(tempv - c65535v * temp4v, ZEROV); _mm_storeu_ps( &blue[row][col + 4], temp4v); } for(; col < width - 7; col++, indx += 2) { - red [row][col] = CLIP(src1[indx >> 1] - 65535.f * redsrc0[indx >> 1]); - green[row][col] = CLIP(src1[indx >> 1]); - blue [row][col] = CLIP(src1[indx >> 1] - 65535.f * bluesrc0[indx >> 1]); + red [row][col] = std::max(0.f, src1[indx >> 1] - 65535.f * redsrc0[indx >> 1]); + green[row][col] = std::max(0.f, src1[indx >> 1]); + blue [row][col] = std::max(0.f, src1[indx >> 1] - 65535.f * bluesrc0[indx >> 1]); col++; - red [row][col] = CLIP(src2[(indx + 1) >> 1] - 65535.f * redsrc1[(indx + 1) >> 1]); - green[row][col] = CLIP(src2[(indx + 1) >> 1]); - blue [row][col] = CLIP(src2[(indx + 1) >> 1] - 65535.f * bluesrc1[(indx + 1) >> 1]); + red [row][col] = std::max(0.f, src2[(indx + 1) >> 1] - 65535.f * redsrc1[(indx + 1) >> 1]); + green[row][col] = std::max(0.f, src2[(indx + 1) >> 1]); + blue [row][col] = std::max(0.f, src2[(indx + 1) >> 1] - 65535.f * bluesrc1[(indx + 1) >> 1]); } } }// End of parallelization @@ -606,7 +605,6 @@ void RawImageSource::igv_interpolate(int winw, int winh) free(vdif); free(hdif); } -#undef CLIPV #else void RawImageSource::igv_interpolate(int winw, int winh) { @@ -649,7 +647,7 @@ void RawImageSource::igv_interpolate(int winw, int winh) for (int row = 0; row < height - 0; row++) for (int col = 0, indx = row * width + col; col < width - 0; col++, indx++) { int c = FC(row, col); - rgb[c][indx] = CLIP(rawData[row][col]); //rawData = RT data + rgb[c][indx] = std::max(0.f, rawData[row][col]); //rawData = RT data } #ifdef _OPENMP @@ -848,9 +846,9 @@ void RawImageSource::igv_interpolate(int winw, int winh) for(int row = 7; row < height - 7; row++) for(int col = 7, indx = row * width + col; col < width - 7; col++, indx++) { - red [row][col] = CLIP(rgb[1][indx] - 65535.f * chr[0][indx]); - green[row][col] = CLIP(rgb[1][indx]); - blue [row][col] = CLIP(rgb[1][indx] - 65535.f * chr[1][indx]); + red [row][col] = std::max(0.f, rgb[1][indx] - 65535.f * chr[0][indx]); + green[row][col] = std::max(0.f, rgb[1][indx]); + blue [row][col] = std::max(0.f, rgb[1][indx] - 65535.f * chr[1][indx]); } }// End of parallelization border_interpolate(winw, winh, 8, rawData, red, green, blue); @@ -1520,9 +1518,9 @@ BENCHFUN */ for(int y = 0; y < TILESIZE && y0 + y < H; y++) { for (int j = 0; j < TILESIZE && x0 + j < W; j++) { - red[y0 + y][x0 + j] = tile[(y + TILEBORDER) * CACHESIZE + TILEBORDER + j][0]; - green[y0 + y][x0 + j] = tile[(y + TILEBORDER) * CACHESIZE + TILEBORDER + j][1]; - blue[y0 + y][x0 + j] = tile[(y + TILEBORDER) * CACHESIZE + TILEBORDER + j][2]; + red[y0 + y][x0 + j] = std::max(0.f, tile[(y + TILEBORDER) * CACHESIZE + TILEBORDER + j][0]); + green[y0 + y][x0 + j] = std::max(0.f, tile[(y + TILEBORDER) * CACHESIZE + TILEBORDER + j][1]); + blue[y0 + y][x0 + j] = std::max(0.f, tile[(y + TILEBORDER) * CACHESIZE + TILEBORDER + j][2]); } } diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index c470eb297..ad4bda3cd 100644 --- a/rtengine/eahd_demosaic.cc +++ b/rtengine/eahd_demosaic.cc @@ -400,11 +400,11 @@ void RawImageSource::eahd_demosaic () int vc = homv[imx][j]; if (hc > vc) { - green[i - 1][j] = gh[(i - 1) % 4][j]; + green[i - 1][j] = std::max(0.f, gh[(i - 1) % 4][j]); } else if (hc < vc) { - green[i - 1][j] = gv[(i - 1) % 4][j]; + green[i - 1][j] = std::max(0.f, gv[(i - 1) % 4][j]); } else { - green[i - 1][j] = (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2; + green[i - 1][j] = std::max(0.f, (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2); } } } @@ -421,11 +421,11 @@ void RawImageSource::eahd_demosaic () int vc = homv[(i - 1) % 3][j]; if (hc > vc) { - green[i - 1][j] = gh[(i - 1) % 4][j]; + green[i - 1][j] = std::max(0.f, gh[(i - 1) % 4][j]); } else if (hc < vc) { - green[i - 1][j] = gv[(i - 1) % 4][j]; + green[i - 1][j] = std::max(0.f, gv[(i - 1) % 4][j]); } else { - green[i - 1][j] = (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2; + green[i - 1][j] = std::max(0.f, (gh[(i - 1) % 4][j] + gv[(i - 1) % 4][j]) / 2); } } diff --git a/rtengine/fast_demo.cc b/rtengine/fast_demo.cc index aaa5ceb02..772096b87 100644 --- a/rtengine/fast_demo.cc +++ b/rtengine/fast_demo.cc @@ -452,23 +452,23 @@ void RawImageSource::fast_demosaic() #ifdef __SSE2__ for (j = left + 2, cc = 2; j < right - 5; j += 4, cc += 4) { - _mm_storeu_ps(&red[i][j], LVFU(redtile[rr * TS + cc])); - _mm_storeu_ps(&green[i][j], LVFU(greentile[rr * TS + cc])); - _mm_storeu_ps(&blue[i][j], LVFU(bluetile[rr * TS + cc])); + _mm_storeu_ps(&red[i][j], vmaxf(LVFU(redtile[rr * TS + cc]), ZEROV)); + _mm_storeu_ps(&green[i][j], vmaxf(LVFU(greentile[rr * TS + cc]), ZEROV)); + _mm_storeu_ps(&blue[i][j], vmaxf(LVFU(bluetile[rr * TS + cc]), ZEROV)); } for (; j < right - 2; j++, cc++) { - red[i][j] = redtile[rr * TS + cc]; - green[i][j] = greentile[rr * TS + cc]; - blue[i][j] = bluetile[rr * TS + cc]; + red[i][j] = std::max(0.f, redtile[rr * TS + cc]); + green[i][j] = std::max(0.f, greentile[rr * TS + cc]); + blue[i][j] = std::max(0.f, bluetile[rr * TS + cc]); } #else for (int j = left + 2, cc = 2; j < right - 2; j++, cc++) { - red[i][j] = redtile[rr * TS + cc]; - green[i][j] = greentile[rr * TS + cc]; - blue[i][j] = bluetile[rr * TS + cc]; + red[i][j] = std::max(0.f, redtile[rr * TS + cc]); + green[i][j] = std::max(0.f, greentile[rr * TS + cc]); + blue[i][j] = std::max(0.f, bluetile[rr * TS + cc]); } #endif diff --git a/rtengine/hphd_demosaic_RT.cc b/rtengine/hphd_demosaic_RT.cc index 5e05b128e..936c8fa4f 100644 --- a/rtengine/hphd_demosaic_RT.cc +++ b/rtengine/hphd_demosaic_RT.cc @@ -217,7 +217,7 @@ void hphd_green(const RawImage *ri, const array2D &rawData, float** hpmap const float e4 = 1.f / (dx + (std::fabs(d1) + std::fabs(d2)) + (std::fabs(d3) + std::fabs(d4)) * 0.5f); - green[i][j] = rawData[i][j] * 0.5f + (e2 * g2 + e4 * g4) / (e2 + e4); + green[i][j] = std::max(0.f, rawData[i][j] * 0.5f + (e2 * g2 + e4 * g4) / (e2 + e4)); } else if (hpmap[i][j] == 2) { const float g1 = rawData[i - 1][j] - rawData[i - 2][j] * 0.5f; const float g3 = rawData[i + 1][j] - rawData[i + 2][j] * 0.5f; @@ -237,7 +237,7 @@ void hphd_green(const RawImage *ri, const array2D &rawData, float** hpmap const float e3 = 1.f / (dy + (std::fabs(d1) + std::fabs(d2)) + (std::fabs(d3) + std::fabs(d4)) * 0.5f); - green[i][j] = rawData[i][j] * 0.5f + (e1 * g1 + e3 * g3) / (e1 + e3); + green[i][j] = std::max(0.f, rawData[i][j] * 0.5f + (e1 * g1 + e3 * g3) / (e1 + e3)); } else { const float g1 = rawData[i - 1][j] - rawData[i - 2][j] * 0.5f; const float g2 = rawData[i][j + 1] - rawData[i][j + 2] * 0.5f; @@ -275,7 +275,7 @@ void hphd_green(const RawImage *ri, const array2D &rawData, float** hpmap const float e4 = 1.f / (dx + (std::fabs(d1) + std::fabs(d2)) + (std::fabs(d3) + std::fabs(d4)) * 0.5f); - green[i][j] = rawData[i][j] * 0.5f + ((e1 * g1 + e2 * g2) + (e3 * g3 + e4 * g4)) / (e1 + e2 + e3 + e4); + green[i][j] = std::max(0.f, rawData[i][j] * 0.5f + ((e1 * g1 + e2 * g2) + (e3 * g3 + e4 * g4)) / (e1 + e2 + e3 + e4)); } } } diff --git a/rtengine/lmmse_demosaic.cc b/rtengine/lmmse_demosaic.cc index 6191ca36c..f4af1b801 100644 --- a/rtengine/lmmse_demosaic.cc +++ b/rtengine/lmmse_demosaic.cc @@ -131,7 +131,7 @@ void RawImageSource::lmmse_interpolate_omp(int winw, int winh, const array2DmakeIdentity(65535.f); } @@ -623,7 +623,7 @@ void RawImageSource::lmmse_interpolate_omp(int winw, int winh, const array2D &raw } b = g_mul * cg[j] + b / std::max(1, n); - ab[jx] = b; + ab[jx] = std::max(0.f, b); } else { // linear R-G interp. horizontally float r; @@ -103,7 +103,7 @@ inline void RawImageSource::interpolate_row_rb_mul_pp (const array2D &raw r = g_mul * cg[j] + (r_mul * rawData[i][j - 1] - g_mul * cg[j - 1] + r_mul * rawData[i][j + 1] - g_mul * cg[j + 1]) / 2; } - ar[jx] = r; + ar[jx] = std::max(0.f, r); // linear B-G interp. vertically float b; @@ -115,7 +115,7 @@ inline void RawImageSource::interpolate_row_rb_mul_pp (const array2D &raw b = g_mul * cg[j] + (b_mul * rawData[i - 1][j] - g_mul * pg[j] + b_mul * rawData[i + 1][j] - g_mul * ng[j]) / 2; } - ab[jx] = b; + ab[jx] = std::max(0.f, b); } } } else if(pg && ng) { @@ -150,7 +150,7 @@ inline void RawImageSource::interpolate_row_rb_mul_pp (const array2D &raw r = g_mul * cg[j] + r / std::max(n, 1); - ar[jx] = r; + ar[jx] = std::max(0.f, r); } else { // linear B-G interp. horizontally float b; @@ -163,7 +163,7 @@ inline void RawImageSource::interpolate_row_rb_mul_pp (const array2D &raw b = g_mul * cg[j] + (b_mul * rawData[i][j - 1] - g_mul * cg[j - 1] + b_mul * rawData[i][j + 1] - g_mul * cg[j + 1]) / 2; } - ab[jx] = b; + ab[jx] = std::max(0.f, b); // linear R-G interp. vertically float r; @@ -175,7 +175,7 @@ inline void RawImageSource::interpolate_row_rb_mul_pp (const array2D &raw r = g_mul * cg[j] + (r_mul * rawData[i - 1][j] - g_mul * pg[j] + r_mul * rawData[i + 1][j] - g_mul * ng[j]) / 2; } - ar[jx] = r; + ar[jx] = std::max(0.f, r); } } } diff --git a/rtengine/rcd_demosaic.cc b/rtengine/rcd_demosaic.cc index 4ceb92b26..5a86aec40 100644 --- a/rtengine/rcd_demosaic.cc +++ b/rtengine/rcd_demosaic.cc @@ -275,9 +275,9 @@ void RawImageSource::rcd_demosaic(size_t chunkSize, bool measure) for (int row = rowStart + rcdBorder; row < rowEnd - rcdBorder; ++row) { for (int col = colStart + rcdBorder; col < colEnd - rcdBorder; ++col) { int idx = (row - rowStart) * tileSize + col - colStart ; - red[row][col] = CLIP(rgb[0][idx] * 65535.f); - green[row][col] = CLIP(rgb[1][idx] * 65535.f); - blue[row][col] = CLIP(rgb[2][idx] * 65535.f); + red[row][col] = std::max(0.f, rgb[0][idx] * 65535.f); + green[row][col] = std::max(0.f, rgb[1][idx] * 65535.f); + blue[row][col] = std::max(0.f, rgb[2][idx] * 65535.f); } } diff --git a/rtengine/vng4_demosaic_RT.cc b/rtengine/vng4_demosaic_RT.cc index 47982b6da..ef456af3a 100644 --- a/rtengine/vng4_demosaic_RT.cc +++ b/rtengine/vng4_demosaic_RT.cc @@ -45,12 +45,12 @@ inline void vng4interpolate_row_redblue (const RawImage *ri, const array2D &rawData, array2D firstRow) { vng4interpolate_row_redblue(ri, rawData, red[row - 1], blue[row - 1], green[row - 2], green[row - 1], green[row], row - 1, W); diff --git a/rtengine/xtrans_demosaic.cc b/rtengine/xtrans_demosaic.cc index c1a526535..cb1315ed0 100644 --- a/rtengine/xtrans_demosaic.cc +++ b/rtengine/xtrans_demosaic.cc @@ -939,9 +939,9 @@ void RawImageSource::xtrans_interpolate (const int passes, const bool useCieLab, avg[3]++; } - red[row + top][col + left] = avg[0] / avg[3]; - green[row + top][col + left] = avg[1] / avg[3]; - blue[row + top][col + left] = avg[2] / avg[3]; + red[row + top][col + left] = std::max(0.f, avg[0] / avg[3]); + green[row + top][col + left] = std::max(0.f, avg[1] / avg[3]); + blue[row + top][col + left] = std::max(0.f, avg[2] / avg[3]); } if(plistenerActive && ((++progressCounter) % 32 == 0)) { From 637e8454efbda9132ce9c30021e6e0df300c4db5 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 12 Dec 2019 19:59:27 +0100 Subject: [PATCH 038/453] Do not generate negative values in output of raw ca-correction, #5562 --- rtengine/CA_correct_RT.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/CA_correct_RT.cc b/rtengine/CA_correct_RT.cc index 4dc2019c1..f4d082199 100644 --- a/rtengine/CA_correct_RT.cc +++ b/rtengine/CA_correct_RT.cc @@ -1258,12 +1258,12 @@ float* RawImageSource::CA_correct_RT( int indx = (row * width + col) >> 1; #ifdef __SSE2__ for (; col < width - 7 - cb; col += 8, indx += 4) { - vfloat val = LVFU(RawDataTmp[indx]); + const vfloat val = vmaxf(LVFU(RawDataTmp[indx]), ZEROV); STC2VFU(rawData[row][col], val); } #endif for (; col < width - cb; col += 2, indx++) { - rawData[row][col] = RawDataTmp[indx]; + rawData[row][col] = std::max(0.f, RawDataTmp[indx]); } } From 4d72fc0b5bab964fd3ee5ffb7b5df1c8d2ac9963 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 12 Dec 2019 20:05:43 +0100 Subject: [PATCH 039/453] Do not generate negative values if raw values are less than black level, #5562 --- rtengine/rawimagesource.cc | 31 +++++++++++-------------------- 1 file changed, 11 insertions(+), 20 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index ea3152918..d00812d88 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -2543,12 +2543,10 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R for (int row = winy; row < winy + winh; row ++) { for (int col = winx; col < winx + winw; col++) { - float val = rawData[row][col]; - int c = FC(row, col); // three colors, 0=R, 1=G, 2=B - int c4 = ( c == 1 && !(row & 1) ) ? 3 : c; // four colors, 0=R, 1=G1, 2=B, 3=G2 - val -= cblacksom[c4]; - val *= scale_mul[c4]; - rawData[row][col] = (val); + const int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + const int c4 = ( c == 1 && !(row & 1) ) ? 3 : c; // four colors, 0=R, 1=G1, 2=B, 3=G2 + const float val = max(0.f, rawData[row][col] - cblacksom[c4]) * scale_mul[c4]; + rawData[row][col] = val; tmpchmax[c] = max(tmpchmax[c], val); } } @@ -2575,10 +2573,8 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R for (int row = winy; row < winy + winh; row ++) { for (int col = winx; col < winx + winw; col++) { - float val = rawData[row][col]; - val -= cblacksom[0]; - val *= scale_mul[0]; - rawData[row][col] = (val); + const float val = max(0.f, rawData[row][col] - cblacksom[0]) * scale_mul[0]; + rawData[row][col] = val; tmpchmax = max(tmpchmax, val); } } @@ -2604,12 +2600,9 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R for (int row = winy; row < winy + winh; row ++) { for (int col = winx; col < winx + winw; col++) { - float val = rawData[row][col]; - int c = ri->XTRANSFC(row, col); - val -= cblacksom[c]; - val *= scale_mul[c]; - - rawData[row][col] = (val); + const int c = ri->XTRANSFC(row, col); + const float val = max(0.f, rawData[row][col] - cblacksom[c]) * scale_mul[c]; + rawData[row][col] = val; tmpchmax[c] = max(tmpchmax[c], val); } } @@ -2638,10 +2631,8 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R { for (int col = winx; col < winx + winw; col++) { for (int c = 0; c < 3; c++) { // three colors, 0=R, 1=G, 2=B - float val = rawData[row][3 * col + c]; - val -= cblacksom[c]; - val *= scale_mul[c]; - rawData[row][3 * col + c] = (val); + const float val = max(0.f, rawData[row][3 * col + c] - cblacksom[c]) * scale_mul[c]; + rawData[row][3 * col + c] = val; tmpchmax[c] = max(tmpchmax[c], val); } } From 91d6211b00326dbee89a165c6c5a145410bb7528 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 12:29:19 +0100 Subject: [PATCH 040/453] first github actions experiment --- .github/workflows/main.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 000000000..6c083056a --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,17 @@ +name: CI + +on: [push] + +jobs: + build: + + runs-on: macos-latest + + steps: + - uses: actions/checkout@v1 + - name: Run a one-line script + run: echo Hello, world! + - name: Run a multi-line script + run: | + echo Add other actions to build, + echo test, and deploy your project. From ffb9ddc286e71242e7dfa5a210d3446a686e10c9 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 12:45:39 +0100 Subject: [PATCH 041/453] ci macos: install dependencies --- .github/workflows/main.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6c083056a..17ecc4bd9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,7 @@ name: CI -on: [push] +on: + - push jobs: build: @@ -9,9 +10,5 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Run a one-line script - run: echo Hello, world! - - name: Run a multi-line script - run: | - echo Add other actions to build, - echo test, and deploy your project. + - name: Install dependencies + run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun wget llvm cmake expat pkgconfig libomp From f7e826359e44346ee7135a752628794286b806bb Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:14:50 +0100 Subject: [PATCH 042/453] ci macos: first build attempt --- .github/workflows/main.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 17ecc4bd9..4b53fc69b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,5 +10,18 @@ jobs: steps: - uses: actions/checkout@v1 + - name: test getting the git branch of the triggering ref + run: echo ${GITHUB_REF##*/} - name: Install dependencies run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun wget llvm cmake expat pkgconfig libomp + - name: cmake + env: + CMAKE_CXX_STANDARD: 11 + run: | + cmake \ + -DCMAKE_BUILD_TYPE="release" \ + -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ + -DPROC_TARGET_NUMBER="2" \ + -DBUILD_BUNDLE="ON" \ + -DWITH_LTO="OFF" \ + -DLENSFUNDBDIR="./share/lensfun" From 0a492de25fc1a3c7122fb285e4941258cac963d6 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:17:57 +0100 Subject: [PATCH 043/453] ci macos: do not install already installed libs --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4b53fc69b..39d1835fa 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: - name: test getting the git branch of the triggering ref run: echo ${GITHUB_REF##*/} - name: Install dependencies - run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun wget llvm cmake expat pkgconfig libomp + run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp - name: cmake env: CMAKE_CXX_STANDARD: 11 From caeeeaec3954152c80c9538c7625386fb8986d91 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:31:54 +0100 Subject: [PATCH 044/453] ci macos: remove default option --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 39d1835fa..b5c00ebdc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,6 +22,5 @@ jobs: -DCMAKE_BUILD_TYPE="release" \ -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ - -DBUILD_BUNDLE="ON" \ -DWITH_LTO="OFF" \ -DLENSFUNDBDIR="./share/lensfun" From 370044fbfed2cac13fee031524372ce0d1280b73 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:32:41 +0100 Subject: [PATCH 045/453] ci macos: point cmake to source directory --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b5c00ebdc..5de9ff6fc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -23,4 +23,5 @@ jobs: -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ -DWITH_LTO="OFF" \ - -DLENSFUNDBDIR="./share/lensfun" + -DLENSFUNDBDIR="./share/lensfun" \ + . From 3eff4ae873714486dacd8874c738f13f3571008e Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:37:04 +0100 Subject: [PATCH 046/453] ci macos: remove test lines --- .github/workflows/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5de9ff6fc..f880f9dad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,8 +10,6 @@ jobs: steps: - uses: actions/checkout@v1 - - name: test getting the git branch of the triggering ref - run: echo ${GITHUB_REF##*/} - name: Install dependencies run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp - name: cmake From d404072c32368b94ec0fb5aaee6b1ac1e471a33f Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:58:15 +0100 Subject: [PATCH 047/453] ci macos: whitespace fix --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f880f9dad..fc86e3f31 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -17,7 +17,7 @@ jobs: CMAKE_CXX_STANDARD: 11 run: | cmake \ - -DCMAKE_BUILD_TYPE="release" \ + -DCMAKE_BUILD_TYPE="release" \ -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ -DWITH_LTO="OFF" \ From 0b725ab252016c09df2311aa0503b4024b05f469 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 13:58:46 +0100 Subject: [PATCH 048/453] ci macos: link keg-only libs --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fc86e3f31..a1047150e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,4 +22,6 @@ jobs: -DPROC_TARGET_NUMBER="2" \ -DWITH_LTO="OFF" \ -DLENSFUNDBDIR="./share/lensfun" \ + -DLDFLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ + -DCXXFLAGS="-I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include" \ . From 62a71be567427a87f3bc0e650aad4d92a2d70d26 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:09:50 +0100 Subject: [PATCH 049/453] ci macos: set pkg config path --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a1047150e..6ae59b34a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,6 +15,7 @@ jobs: - name: cmake env: CMAKE_CXX_STANDARD: 11 + PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig run: | cmake \ -DCMAKE_BUILD_TYPE="release" \ From d17e1f303afc334d3bc041e086e094446e311507 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:34:19 +0100 Subject: [PATCH 050/453] ci macos: move to out-of-source build --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6ae59b34a..892da1ed8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,6 +12,8 @@ jobs: - uses: actions/checkout@v1 - name: Install dependencies run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp + - name: create and move to build directory + run: mkdir build && cd build - name: cmake env: CMAKE_CXX_STANDARD: 11 @@ -25,4 +27,4 @@ jobs: -DLENSFUNDBDIR="./share/lensfun" \ -DLDFLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ -DCXXFLAGS="-I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include" \ - . + .. From b1c6e20ce4c217903b245e530b578910391c8b83 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:38:09 +0100 Subject: [PATCH 051/453] ci macos: verbose make file --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 892da1ed8..66ccf7b32 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -21,6 +21,7 @@ jobs: run: | cmake \ -DCMAKE_BUILD_TYPE="release" \ + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ -DWITH_LTO="OFF" \ From aafaf33d0766cc9a33404f1b9a19fa545617cced Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:52:03 +0100 Subject: [PATCH 052/453] ci macos: add proc_label --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 66ccf7b32..11eedf096 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,6 +24,7 @@ jobs: -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ + -DPROC_LABEL="generic processor" \ -DWITH_LTO="OFF" \ -DLENSFUNDBDIR="./share/lensfun" \ -DLDFLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ From 429f6bd5b3b95f2a2147757d7f1b8e83d9863eb7 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:52:36 +0100 Subject: [PATCH 053/453] ci macos: add openmp --- .github/workflows/main.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 11eedf096..83914af61 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,6 +27,12 @@ jobs: -DPROC_LABEL="generic processor" \ -DWITH_LTO="OFF" \ -DLENSFUNDBDIR="./share/lensfun" \ - -DLDFLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ - -DCXXFLAGS="-I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include" \ + -DOpenMP_C_FLAGS=-fopenmp=libomp \ + -DOpenMP_CXX_FLAGS=-fopenmp=libomp \ + -DOpenMP_C_LIB_NAMES="libomp" \ + -DOpenMP_CXX_LIB_NAMES="libomp" \ + -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \ + -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \ + -DOpenMP_CXX_LIB_NAMES="libomp" \ + -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \ .. From 4a6c6041d921bc621424904a9f7f0112d3f99730 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:55:23 +0100 Subject: [PATCH 054/453] ci macos: add make commands --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 83914af61..d2831984b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -36,3 +36,6 @@ jobs: -DOpenMP_CXX_LIB_NAMES="libomp" \ -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \ .. + make --jobs 8 + make install + make macosx_bundle From 3ab43669e90f0f2063c45b1c5d19676bae662e4a Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 14:57:33 +0100 Subject: [PATCH 055/453] ci macos: add minor version number --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d2831984b..7cf7f6871 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,11 +18,13 @@ jobs: env: CMAKE_CXX_STANDARD: 11 PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig + RAW_THERAPEE_MAJOR: '5' + RAW_THERAPEE_MINOR: '7' run: | cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCACHE_NAME_SUFFIX="5-${GITHUB_REF##*/}" \ + -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ -DWITH_LTO="OFF" \ From c4869d08d4a124057c513a13cd6eaf4b1f6d65e9 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 16:16:32 +0100 Subject: [PATCH 056/453] ci macos: fix out-of-source build --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7cf7f6871..fa9bb8be5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,8 +12,6 @@ jobs: - uses: actions/checkout@v1 - name: Install dependencies run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp - - name: create and move to build directory - run: mkdir build && cd build - name: cmake env: CMAKE_CXX_STANDARD: 11 @@ -21,6 +19,7 @@ jobs: RAW_THERAPEE_MAJOR: '5' RAW_THERAPEE_MINOR: '7' run: | + mkdir build && cd build cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ From 4aad850267c9fd057dad14218a2c143ba6c1de7a Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 16:16:49 +0100 Subject: [PATCH 057/453] ci macos: attempt to fix linking issues --- .github/workflows/main.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fa9bb8be5..06cb73145 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -18,11 +18,13 @@ jobs: PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' RAW_THERAPEE_MINOR: '7' + C_FLAGS: -Xpreprocessor -fopenmp /usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | mkdir build && cd build cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ + -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${GITHUB_REF##*/}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ @@ -32,10 +34,9 @@ jobs: -DOpenMP_CXX_FLAGS=-fopenmp=libomp \ -DOpenMP_C_LIB_NAMES="libomp" \ -DOpenMP_CXX_LIB_NAMES="libomp" \ - -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \ - -DOpenMP_CXX_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \ - -DOpenMP_CXX_LIB_NAMES="libomp" \ - -DOpenMP_C_FLAGS="-Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include" \ + -DOpenMP_libomp_LIBRARY="/usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib" \ + -DOpenMP_C_FLAGS="${C_FLAGS}" \ + -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ .. make --jobs 8 make install From edfadf4ff20980efe6d03490b743cd5c30005bb8 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 16:38:07 +0100 Subject: [PATCH 058/453] ci macos: fix permission denieds --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 06cb73145..e7f97f410 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -40,4 +40,5 @@ jobs: .. make --jobs 8 make install - make macosx_bundle + sudo make macosx_bundle + From dbf2c3fe2d0a000e687dd8017f18f8b88c721b91 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 16:44:28 +0100 Subject: [PATCH 059/453] ci macos: fix branch ref --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e7f97f410..31fc77522 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,12 +20,13 @@ jobs: RAW_THERAPEE_MINOR: '7' C_FLAGS: -Xpreprocessor -fopenmp /usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | + REF=${GITHUB_REF##*/} mkdir build && cd build cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ - -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${GITHUB_REF##*/}" \ + -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ -DWITH_LTO="OFF" \ From 2179b74c37a25726dcd81a745c0cbeb3552a9f58 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 17:09:32 +0100 Subject: [PATCH 060/453] ci macos: distinctively name macos build --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 31fc77522..0fdc726a8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: CI +name: Mac OS build on: - push From b41cf71aace0ccbfd013e149992feb7bf6c609bf Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 17:34:37 +0100 Subject: [PATCH 061/453] ci macos: upload dmg artifact --- .github/workflows/main.yml | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0fdc726a8..e288fda9b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,7 +1,7 @@ name: Mac OS build on: - - push + push jobs: build: @@ -42,4 +42,11 @@ jobs: make --jobs 8 make install sudo make macosx_bundle - + + ARTIFACT=$(ls | grep .dmg) + echo "Writing -${ARTIFACT} to the ARTIFACT environment variable for use in upload-artifact step" + echo "::set-env name=ARTIFACT::${ARTIFACT}" + - uses: actions/upload-artifact@v1 + with: + name: ${{env.ARTIFACT}} + path: build/${{env.ARTIFACT}} From 92c29bcd65ae36c418b5bd29393602ad905c8fbf Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 13 Dec 2019 13:50:00 +0100 Subject: [PATCH 062/453] Skip capture sharpening for predemosaiced raw files, fixes #5563 --- rtengine/capturesharpening.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 910de6fd3..281a2ad71 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -700,6 +700,10 @@ namespace rtengine void RawImageSource::captureSharpening(const procparams::CaptureSharpeningParams &sharpeningParams, bool showMask, double &conrastThreshold, double &radius) { + if (!(ri->getSensorType() == ST_BAYER || ri->getSensorType() == ST_FUJI_XTRANS || ri->get_colors() == 1)) { + return; + } + if (plistener) { plistener->setProgressStr(M("TP_PDSHARPENING_LABEL")); plistener->setProgress(0.0); From 03d2393af39bb136155a75c0a924648dc4892065 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 18:09:56 +0100 Subject: [PATCH 063/453] ci macos: remove empty line in run statement --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e288fda9b..995b1c210 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,9 +42,8 @@ jobs: make --jobs 8 make install sudo make macosx_bundle - ARTIFACT=$(ls | grep .dmg) - echo "Writing -${ARTIFACT} to the ARTIFACT environment variable for use in upload-artifact step" + echo "===== Writing ${ARTIFACT} to the ARTIFACT environment variable for use in upload-artifact step =====" echo "::set-env name=ARTIFACT::${ARTIFACT}" - uses: actions/upload-artifact@v1 with: From 59106b89a17d8d7be4913503487fdb3811273c17 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sat, 7 Dec 2019 19:44:58 +0100 Subject: [PATCH 064/453] ci macos: fix artifact upload --- .github/workflows/main.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 995b1c210..f386bdda7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -42,10 +42,11 @@ jobs: make --jobs 8 make install sudo make macosx_bundle - ARTIFACT=$(ls | grep .dmg) - echo "===== Writing ${ARTIFACT} to the ARTIFACT environment variable for use in upload-artifact step =====" - echo "::set-env name=ARTIFACT::${ARTIFACT}" + ARTIFACT=$(ls | grep RawTherapee*.zip) + echo "=== artifact: ${ARTIFACT}" + echo "::set-env name=ARTIFACT_PATH::${GITHUB_WORKSPACE}/build/${ARTIFACT}" + echo "::set-env name=ARTIFACT_FILE::${ARTIFACT}" - uses: actions/upload-artifact@v1 with: - name: ${{env.ARTIFACT}} - path: build/${{env.ARTIFACT}} + name: ${{env.ARTIFACT_FILE}} + path: ${{env.ARTIFACT_PATH}} From 64ce4d6bb9fcf721f613fed2d1586747ed31a6e9 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sun, 8 Dec 2019 21:56:32 +0100 Subject: [PATCH 065/453] macos: patch libiconv 1.16 --- tools/osx/libiconv_1.16_rt.patch | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 tools/osx/libiconv_1.16_rt.patch diff --git a/tools/osx/libiconv_1.16_rt.patch b/tools/osx/libiconv_1.16_rt.patch new file mode 100644 index 000000000..470f7780c --- /dev/null +++ b/tools/osx/libiconv_1.16_rt.patch @@ -0,0 +1,31 @@ +diff --git a/lib/iconv.c b/lib/iconv.c +index b7a04f8..41c5896 100644 +--- a/lib/iconv.c ++++ b/lib/iconv.c +@@ -610,5 +610,26 @@ strong_alias (libiconv_open, iconv_open) + strong_alias (libiconv, iconv) + strong_alias (libiconv_close, iconv_close) + #endif ++ ++#undef iconv_open ++#undef iconv ++#undef iconv_close ++ ++LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode) ++{ ++ return libiconv_open(tocode, fromcode); ++} ++ ++LIBICONV_DLL_EXPORTED size_t iconv (iconv_t icd, ++ ICONV_CONST char * * inbuf, size_t *inbytesleft, ++ char * * outbuf, size_t *outbytesleft) ++{ ++ return libiconv(icd, inbuf, inbytesleft, outbuf, outbytesleft); ++} ++ ++LIBICONV_DLL_EXPORTED int iconv_close (iconv_t icd) ++{ ++ return libiconv_close(icd); ++} + + #endif From 6d6fbef216693259b7188a82e697192046361605 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sun, 8 Dec 2019 22:22:41 +0100 Subject: [PATCH 066/453] ci macos: patch libiconv --- .github/workflows/main.yml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f386bdda7..4cb80a2fe 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,6 +12,20 @@ jobs: - uses: actions/checkout@v1 - name: Install dependencies run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp + - name: patch libiconv + run: | + mkdir libiconv && cd libiconv + wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz + tar xf libiconv-1.16.tar.gz + cd libiconv-1.16 + patch -p1 < "${GITHUB_WORKSPACE}/tools/osx/libiconv_1.16_rt.patch" + mkdir build && cd build + destDir="$(pwd)" + ../configure --prefix=/opt/local --disable-static 'CFLAGS=-arch x86_64 -mmacosx-version-min=10.9' 'LDFLAGS=-arch x86_64 -mmacosx-version-min=10.9' CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.9" + make --jobs 2 + make DESTDIR="${destDir}" install + sudo cp opt/local/lib/libiconv.2.dylib /usr/lib/libiconv.2.dylib + cd - - name: cmake env: CMAKE_CXX_STANDARD: 11 @@ -39,7 +53,7 @@ jobs: -DOpenMP_C_FLAGS="${C_FLAGS}" \ -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ .. - make --jobs 8 + make --jobs 2 make install sudo make macosx_bundle ARTIFACT=$(ls | grep RawTherapee*.zip) From 7d403407e5d79cd6afd9c90cdc116eaf4dacdcd4 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Sun, 8 Dec 2019 23:18:35 +0100 Subject: [PATCH 067/453] ci macos: install and use entire patched libiconv --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4cb80a2fe..950e7587d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -24,7 +24,7 @@ jobs: ../configure --prefix=/opt/local --disable-static 'CFLAGS=-arch x86_64 -mmacosx-version-min=10.9' 'LDFLAGS=-arch x86_64 -mmacosx-version-min=10.9' CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.9" make --jobs 2 make DESTDIR="${destDir}" install - sudo cp opt/local/lib/libiconv.2.dylib /usr/lib/libiconv.2.dylib + sudo mv opt/local /usr/local/opt/libiconv cd - - name: cmake env: @@ -32,14 +32,14 @@ jobs: PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' RAW_THERAPEE_MINOR: '7' - C_FLAGS: -Xpreprocessor -fopenmp /usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include + C_FLAGS: -Xpreprocessor -fopenmp /usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | REF=${GITHUB_REF##*/} mkdir build && cd build cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libffi/lib -L/usr/local/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ + -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ From 72f261a1b0270aebadf06bdb4d292cdca59b7d18 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Mon, 9 Dec 2019 15:26:26 +0100 Subject: [PATCH 068/453] Print /usr/local/lib contents & link it before other libs --- .github/workflows/main.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 950e7587d..cdd0033f2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -26,6 +26,8 @@ jobs: make DESTDIR="${destDir}" install sudo mv opt/local /usr/local/opt/libiconv cd - + - name: print /usr/local/lib contents + run: ls -al /usr/local/lib - name: cmake env: CMAKE_CXX_STANDARD: 11 @@ -39,7 +41,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ + -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ From aa0a1a870f219e18c760cadd301db38eb46f478f Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Mon, 9 Dec 2019 23:25:12 +0100 Subject: [PATCH 069/453] ci macos: remove unneccesary cd statement --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cdd0033f2..bdedf5432 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,7 +25,6 @@ jobs: make --jobs 2 make DESTDIR="${destDir}" install sudo mv opt/local /usr/local/opt/libiconv - cd - - name: print /usr/local/lib contents run: ls -al /usr/local/lib - name: cmake From 62da9d434a3abc49f0c19090cdc7607aa381439a Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Mon, 9 Dec 2019 23:25:50 +0100 Subject: [PATCH 070/453] ci macos: change order of linker statements --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bdedf5432..4bc769e3f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -40,7 +40,7 @@ jobs: cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib" \ + -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ From 0e662ccb4a68ca4e46397bca299892bdd9257406 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Mon, 9 Dec 2019 23:26:28 +0100 Subject: [PATCH 071/453] ci macos: configure AR and RANLIB libraries for cmake --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4bc769e3f..b90fedef1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -53,6 +53,8 @@ jobs: -DOpenMP_libomp_LIBRARY="/usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib" \ -DOpenMP_C_FLAGS="${C_FLAGS}" \ -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ + -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ + -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ .. make --jobs 2 make install From d5b8c9658ddcd183f1fada371929a05f07d4ad0b Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Mon, 9 Dec 2019 23:34:23 +0100 Subject: [PATCH 072/453] ci macos: use symlink reference for libomp --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b90fedef1..dad60b0db 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,7 +33,7 @@ jobs: PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' RAW_THERAPEE_MINOR: '7' - C_FLAGS: -Xpreprocessor -fopenmp /usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include + C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | REF=${GITHUB_REF##*/} mkdir build && cd build @@ -50,7 +50,7 @@ jobs: -DOpenMP_CXX_FLAGS=-fopenmp=libomp \ -DOpenMP_C_LIB_NAMES="libomp" \ -DOpenMP_CXX_LIB_NAMES="libomp" \ - -DOpenMP_libomp_LIBRARY="/usr/local/Cellar/libomp/9.0.0/lib/libomp.dylib" \ + -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \ -DOpenMP_C_FLAGS="${C_FLAGS}" \ -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ From 0c10b1466ef0220d1aec9d924c2edbd34f80c86f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 13 Dec 2019 14:39:05 +0100 Subject: [PATCH 073/453] raw crop for Leica SL2 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 8639ea2e1..a3bab58a8 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1398,6 +1398,11 @@ Camera constants: "raw_crop": [ 4, 4, -4, -4 ] // full raw 6016x4016, Official 6000x4000 }, + { // Quality C, only raw crop + "make_model": "Leica SL2", + "raw_crop": [ 0, 0, 0, -18 ] // 18 rows at bottom are garbage + }, + { // Quality C "make_model": "LG mobile LG-H815", "dcraw_matrix": [ 5859,547,-1250,-6484,15547,547,-2422,5625,3906 ], // DNG D65 From 0a4f140aadfa9e1e2e90df68180cf812dc4d015e Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 00:05:08 +0100 Subject: [PATCH 074/453] ci macos: fix path for gdk-pixbuf-2.0 --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 2501e936b..d3da8c7b7 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -117,7 +117,7 @@ msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" msg "Copying library modules from ${GTK_PREFIX}:" -ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gdk-pixbuf-2.0 +ditto --arch "${arch}" {"/usr/local/Cellar/gdk-pixbuf/2*/lib","${LIB}"}/gdk-pixbuf-2.0 ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gtk-3.0 msg "Removing static libraries and cache files:" From 7eb2366e98d17a853a301e32de7691a20b292970 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 00:36:32 +0100 Subject: [PATCH 075/453] ci macos: link gdk-pixbuf from usr/local/opt --- .github/workflows/main.yml | 4 ++-- tools/osx/macosx_bundle.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index dad60b0db..7ff4c4352 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,14 +33,14 @@ jobs: PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' RAW_THERAPEE_MINOR: '7' - C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include + C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | REF=${GITHUB_REF##*/} mkdir build && cd build cmake \ -DCMAKE_BUILD_TYPE="release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ + -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -L/usr/local/opt/gdk-pixbuf/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ -DPROC_TARGET_NUMBER="2" \ -DPROC_LABEL="generic processor" \ diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index d3da8c7b7..e697ec766 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -117,7 +117,7 @@ msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" msg "Copying library modules from ${GTK_PREFIX}:" -ditto --arch "${arch}" {"/usr/local/Cellar/gdk-pixbuf/2*/lib","${LIB}"}/gdk-pixbuf-2.0 +ditto --arch "${arch}" {"/usr/local/opt/gdk-pixbuf/lib","${LIB}"}/gdk-pixbuf-2.0 ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gtk-3.0 msg "Removing static libraries and cache files:" From 351fe7e2f11ca1da45edac219dd9e92e223e51e4 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 19:39:28 +0100 Subject: [PATCH 076/453] ci macos: fix for gdk-pixbuf not being within gtk+3 (on brew) --- tools/osx/macosx_bundle.sh | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index e697ec766..44cacef88 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -99,6 +99,7 @@ MACOS="${CONTENTS}/MacOS" LIB="${CONTENTS}/Frameworks" ETC="${RESOURCES}/etc" EXECUTABLE="${MACOS}/rawtherapee" +GDK_PREFIX="/usr/local/opt/gdk-pixbuf" msg "Removing old files:" rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" @@ -117,7 +118,7 @@ msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" msg "Copying library modules from ${GTK_PREFIX}:" -ditto --arch "${arch}" {"/usr/local/opt/gdk-pixbuf/lib","${LIB}"}/gdk-pixbuf-2.0 +ditto --arch "${arch}" {"${GDK_PREFIX}/lib","${LIB}"}/gdk-pixbuf-2.0 ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gtk-3.0 msg "Removing static libraries and cache files:" @@ -132,8 +133,8 @@ mv "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 -"${GTK_PREFIX}/bin/gdk-pixbuf-query-loaders" "${LIB}"/libpix*.so > "${ETC}/gtk-3.0/gdk-pixbuf.loaders" -"${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" +"${GDK_PREFIX}/bin/gdk-pixbuf-query-loaders" "${LIB}"/libpix*.so > "${ETC}/gtk-3.0/gdk-pixbuf.loaders" +"${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/glib-2.0/schemas From fa2e8e63545e22e2ee829841058a76e910a8ba1c Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 19:40:27 +0100 Subject: [PATCH 077/453] ci macos: many fixes for library locations (homebrew) --- tools/osx/macosx_bundle.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 44cacef88..fd3a84c14 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -137,43 +137,43 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 "${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" -ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/glib-2.0/schemas -"${GTK_PREFIX}/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" +ditto {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas +"/usr/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" -ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/mime +ditto {"/usr/local","${RESOURCES}"}/share/mime # GTK3 themes -ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css -ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css +ditto {"/usr/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css +ditto {"/usr/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css # Adwaita icons iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do - ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/"$f" + ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/"$f" done -ditto {"${GTK_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme -"${GTK_PREFIX}/bin/gtk-update-icon-cache-3.0" "${RESOURCES}/share/icons/Adwaita" +ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/index.theme +"/usr/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" # Copy libjpeg-turbo into the app bundle -cp /opt/local/lib/libjpeg.62.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/libjpeg.*.dylib "${RESOURCES}/../Frameworks" -# Copy libexpat into the app bundle -cp /opt/local/lib/libexpat.1.dylib "${RESOURCES}/../Frameworks" +# Copy libexpat into the app bundle (which is keg-only) +cp /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${RESOURCES}/../Frameworks" # Copy libz into the app bundle -cp /opt/local/lib/libz.1.dylib "${RESOURCES}/../Frameworks" +cp /usr/lib/libz.1.dylib "${RESOURCES}/../Frameworks" # Copy libtiff into the app bundle -cp /opt/local/lib/libtiff.5.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/libtiff.5.dylib "${RESOURCES}/../Frameworks" # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" -cp /opt/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" +cp /usr/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -cp /opt/local/lib/liblensfun.2.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/liblensfun.2.dylib "${RESOURCES}/../Frameworks" # Copy libomp to Frameworks -cp /opt/local/lib/libomp.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/libomp.dylib "${RESOURCES}/../Frameworks" # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do From 56169fb95d9129d98bdd693d2fda7a4d4e5cd805 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 20:10:27 +0100 Subject: [PATCH 078/453] ci macos: cp resources from where they actually are --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index fd3a84c14..9236f8fac 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -112,7 +112,7 @@ install -d "${RESOURCES}" \ msg "Copying release files:" ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" -ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" +ditto "Resources" "${RESOURCES}" msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" From f463cf8085fb37cfe8f4091d7e963668710f2adb Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 21:18:48 +0100 Subject: [PATCH 079/453] ci macos: fix, libprint .so files are now also in target LIB --- tools/osx/macosx_bundle.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 9236f8fac..267d20f0c 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -130,6 +130,7 @@ install -d "${ETC}/gtk-3.0" # Make Frameworks folder flat mv "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" mv "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" +mv "${LIB}"/gtk-3.0/3*/printbackends/*.so "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 From aa6140198b6f619cc2dc259f897b2079b6f2d06b Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 21:21:24 +0100 Subject: [PATCH 080/453] ci macos: simplify frameworks path --- tools/osx/macosx_bundle.sh | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 267d20f0c..70bbf6f7d 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -155,26 +155,26 @@ ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "/usr/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" # Copy libjpeg-turbo into the app bundle -cp /usr/local/lib/libjpeg.*.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" # Copy libexpat into the app bundle (which is keg-only) -cp /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" # Copy libz into the app bundle -cp /usr/lib/libz.1.dylib "${RESOURCES}/../Frameworks" +cp /usr/lib/libz.1.dylib "${CONTENTS}/Frameworks" # Copy libtiff into the app bundle -cp /usr/local/lib/libtiff.5.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/libtiff.5.dylib "${CONTENTS}/Frameworks" # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" cp /usr/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -cp /usr/local/lib/liblensfun.2.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" # Copy libomp to Frameworks -cp /usr/local/lib/libomp.dylib "${RESOURCES}/../Frameworks" +cp /usr/local/lib/libomp.dylib "${CONTENTS}/Frameworks" # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do From 5298f95cbdf4ef3c375963986157f4a76a9c85f1 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 21:30:05 +0100 Subject: [PATCH 081/453] ci macos: follow symlinked files while copying --- tools/osx/macosx_bundle.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 70bbf6f7d..2b008fbf5 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -138,7 +138,8 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 "${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" -ditto {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas +mkdir -p ${RESOURCES}/share/glib-2.0 +cp -pRL {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas "/usr/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" From bff973eef83adca82fbe4fcac6c6a4b9aaa1e9bc Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 21:56:36 +0100 Subject: [PATCH 082/453] ci macos: debug printing for mime copy action --- tools/osx/macosx_bundle.sh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 2b008fbf5..d2fefc7ac 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -143,7 +143,10 @@ cp -pRL {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas "/usr/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" +set -x +find /usr/local -name mime ditto {"/usr/local","${RESOURCES}"}/share/mime +set +x # GTK3 themes ditto {"/usr/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css ditto {"/usr/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css From f6f9da10cc550b1ded3fc66ecca9d53ec59c109c Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 23:40:22 +0100 Subject: [PATCH 083/453] ci macos: do not include libprint to avoid error --- tools/osx/macosx_bundle.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index d2fefc7ac..31233ef38 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -130,12 +130,14 @@ install -d "${ETC}/gtk-3.0" # Make Frameworks folder flat mv "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" mv "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" -mv "${LIB}"/gtk-3.0/3*/printbackends/*.so "${LIB}" +# the print*.so lead to errors when running gtk-query-immodules-3.0, just seeing what the app does without, since they are not in immodules +# and including them leads to errors and a completely empty gtk.immodules file +# mv "${LIB}"/gtk-3.0/3*/printbackends/*.so "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 "${GDK_PREFIX}/bin/gdk-pixbuf-query-loaders" "${LIB}"/libpix*.so > "${ETC}/gtk-3.0/gdk-pixbuf.loaders" -"${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so,libprint*.so} > "${ETC}/gtk-3.0/gtk.immodules" +"${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so} > "${ETC}/gtk-3.0/gtk.immodules" sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" mkdir -p ${RESOURCES}/share/glib-2.0 From ed05d156126a4c36416812732a253a0741c58ffd Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Tue, 10 Dec 2019 23:40:58 +0100 Subject: [PATCH 084/453] ci macos: follow symlink files in copy --- tools/osx/macosx_bundle.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 31233ef38..4a0dc30be 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -146,8 +146,8 @@ cp -pRL {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas msg "Copying shared files from ${GTK_PREFIX}:" set -x -find /usr/local -name mime -ditto {"/usr/local","${RESOURCES}"}/share/mime +sudo find / -name mime +cp -pRL {"/usr/local","${RESOURCES}"}/share/mime set +x # GTK3 themes ditto {"/usr/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css @@ -155,7 +155,7 @@ ditto {"/usr/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css # Adwaita icons iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do - ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/"$f" + cp -pRL {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/"$f" done ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "/usr/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" From 055072c15a3e3c91d95973c740eeb4ff18c712f2 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Wed, 11 Dec 2019 00:06:29 +0100 Subject: [PATCH 085/453] ci macos: install shared-mime-info --- .github/workflows/main.yml | 2 +- tools/osx/macosx_bundle.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7ff4c4352..1468a069e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -11,7 +11,7 @@ jobs: steps: - uses: actions/checkout@v1 - name: Install dependencies - run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp + run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp shared-mime-info - name: patch libiconv run: | mkdir libiconv && cd libiconv diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 4a0dc30be..e3012d453 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -146,7 +146,7 @@ cp -pRL {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas msg "Copying shared files from ${GTK_PREFIX}:" set -x -sudo find / -name mime +find /usr -name mime cp -pRL {"/usr/local","${RESOURCES}"}/share/mime set +x # GTK3 themes From 0e7a7efa1a5299febe93c4b28ab80392e67c5bd6 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Wed, 11 Dec 2019 00:32:54 +0100 Subject: [PATCH 086/453] ci macos: create directories for icons --- tools/osx/macosx_bundle.sh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index e3012d453..bf2357c62 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -145,16 +145,15 @@ cp -pRL {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas "/usr/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" -set -x -find /usr -name mime cp -pRL {"/usr/local","${RESOURCES}"}/share/mime -set +x + # GTK3 themes ditto {"/usr/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css ditto {"/usr/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css # Adwaita icons iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do + mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} cp -pRL {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/"$f" done ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/index.theme From 10d5fc4d8e837a8d9db687060e26e92465fdc30f Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Wed, 11 Dec 2019 17:41:47 +0100 Subject: [PATCH 087/453] ci macos: fix globbing --- tools/osx/macosx_bundle.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index bf2357c62..cadb1d5e8 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -136,8 +136,8 @@ mv "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 -"${GDK_PREFIX}/bin/gdk-pixbuf-query-loaders" "${LIB}"/libpix*.so > "${ETC}/gtk-3.0/gdk-pixbuf.loaders" -"${GTK_PREFIX}/bin/gtk-query-immodules-3.0" "${LIB}"/{im*.so} > "${ETC}/gtk-3.0/gtk.immodules" +"${GDK_PREFIX}"/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders +"${GTK_PREFIX}"/bin/gtk-query-immodules-3.0 "${LIB}"/im*.so > "${ETC}"/gtk-3.0/gtk.immodules sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" mkdir -p ${RESOURCES}/share/glib-2.0 From 67e35fdb5d37386064d56aeb2c1f7799297b24fb Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Wed, 11 Dec 2019 18:31:04 +0100 Subject: [PATCH 088/453] ci macos: fix icons path --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index cadb1d5e8..3958326e8 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -154,7 +154,7 @@ ditto {"/usr/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} - cp -pRL {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/"$f" + cp /usr/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} done ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "/usr/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" From 2498423a6f010ab4fc11598858b36ace5458494e Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Thu, 12 Dec 2019 15:32:59 +0100 Subject: [PATCH 089/453] ci macos: avoid ls parsing bugs --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1468a069e..ba6e44172 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -59,7 +59,7 @@ jobs: make --jobs 2 make install sudo make macosx_bundle - ARTIFACT=$(ls | grep RawTherapee*.zip) + ARTIFACT=(RawTherapee*.zip) echo "=== artifact: ${ARTIFACT}" echo "::set-env name=ARTIFACT_PATH::${GITHUB_WORKSPACE}/build/${ARTIFACT}" echo "::set-env name=ARTIFACT_FILE::${ARTIFACT}" From ec00334acba24a9f48b07b5b2ac951f0d5fb3ea2 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Thu, 12 Dec 2019 15:37:01 +0100 Subject: [PATCH 090/453] ci macos: use Apple's way of spelling macOS --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ba6e44172..ff9eb98a2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,4 +1,4 @@ -name: Mac OS build +name: macOS build on: push From ed6eeca929041a448f293f7e623cb5546bebe29c Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Thu, 12 Dec 2019 15:42:53 +0100 Subject: [PATCH 091/453] ci macos: explain GITHUB_REF parsing --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ff9eb98a2..e17414f44 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -35,6 +35,7 @@ jobs: RAW_THERAPEE_MINOR: '7' C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | + # GITHUB_REF is the ref that triggered the build, like refs/heads/new-feature - the next line parses that to REF: the branch name only (new-feature) REF=${GITHUB_REF##*/} mkdir build && cd build cmake \ From 8071e4229250d30087611e2bb44106a2000caf2a Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Thu, 12 Dec 2019 16:12:36 +0100 Subject: [PATCH 092/453] ci macos: automatic jobs config test 2 --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e17414f44..0bb14c479 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,7 +22,7 @@ jobs: mkdir build && cd build destDir="$(pwd)" ../configure --prefix=/opt/local --disable-static 'CFLAGS=-arch x86_64 -mmacosx-version-min=10.9' 'LDFLAGS=-arch x86_64 -mmacosx-version-min=10.9' CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.9" - make --jobs 2 + make --jobs make DESTDIR="${destDir}" install sudo mv opt/local /usr/local/opt/libiconv - name: print /usr/local/lib contents @@ -57,7 +57,7 @@ jobs: -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ .. - make --jobs 2 + make --jobs make install sudo make macosx_bundle ARTIFACT=(RawTherapee*.zip) From 8425e974e6033a84c2eced672be13169a6daf8dd Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Fri, 13 Dec 2019 14:04:46 +0100 Subject: [PATCH 093/453] ci macos: document echo ::set-env --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0bb14c479..5f5b93686 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -62,6 +62,7 @@ jobs: sudo make macosx_bundle ARTIFACT=(RawTherapee*.zip) echo "=== artifact: ${ARTIFACT}" + # defining environment variables for next step as per https://github.com/actions/starter-workflows/issues/68 echo "::set-env name=ARTIFACT_PATH::${GITHUB_WORKSPACE}/build/${ARTIFACT}" echo "::set-env name=ARTIFACT_FILE::${ARTIFACT}" - uses: actions/upload-artifact@v1 From 66cf9f0c7a7f93b062b05cb8d4ed5be3d8c5dd41 Mon Sep 17 00:00:00 2001 From: Quinten Krijger Date: Fri, 13 Dec 2019 14:13:50 +0100 Subject: [PATCH 094/453] ci macos: cleanup debug print statement --- .github/workflows/main.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5f5b93686..bab7397a6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,8 +25,6 @@ jobs: make --jobs make DESTDIR="${destDir}" install sudo mv opt/local /usr/local/opt/libiconv - - name: print /usr/local/lib contents - run: ls -al /usr/local/lib - name: cmake env: CMAKE_CXX_STANDARD: 11 From 025f444d7eef0de4d2d8a7884ff3ac7ed04c9f0b Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 15 Dec 2019 08:21:41 +0100 Subject: [PATCH 095/453] Improve contrast levels with sigma --- rtdata/languages/default | 2 ++ rtengine/ipwavelet.cc | 32 ++++++++++++++++++++++++-------- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 ++++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 15 +++++++++++++++ rtgui/wavelet.h | 2 ++ 8 files changed, 55 insertions(+), 8 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 9cc354323..5fa474dd6 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -790,6 +790,7 @@ HISTORY_MSG_WAVCLARI;Clarity HISTORY_MSG_WAVUSHAMET;Clarity method HISTORY_MSG_WAVMERGEL;Merge L HISTORY_MSG_WAVMERGEC;Merge C +HISTORY_MSG_WAVSIGMA;Sigma HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVSHOWMASK;Show wavelet mask @@ -2236,6 +2237,7 @@ TP_WAVELET_RESCONH;Highlights TP_WAVELET_RESID;Residual Image TP_WAVELET_SAT;Saturated chroma TP_WAVELET_SETTINGS;Wavelet Settings +TP_WAVELET_SIGMA;Sigma TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. TP_WAVELET_SKY;Sky targetting/protection diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index f45b21f28..f2c8c8182 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -63,6 +63,7 @@ namespace rtengine struct cont_params { float mul[10]; + float sigm; int chrom; int chro; int contrast; @@ -224,6 +225,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.BAmethod == "cur") { cp.BAmet = 2; } + cp.sigm = params->wavelet.sigma; cp.tmstrength = params->wavelet.tmrs; //cp.tonemap = params->wavelet.tmr; @@ -2997,15 +2999,29 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz //for each pixel and each level float beta; float mea[9]; - mea[0] = mean[level] / 6.f; - mea[1] = mean[level] / 2.f; + float rap = mean[level] - 2.f * cp.sigm * sigma[level]; + + if (rap > 0.f) { + mea[0] = rap; + } else { + mea[0] = mean[level] / 6.f; + } + + rap = mean[level] - cp.sigm * sigma[level]; + + if (rap > 0.f) { + mea[1] = rap; + } else { + mea[1] = mean[level] / 2.f; + } + mea[2] = mean[level]; // 50% data - mea[3] = mean[level] + sigma[level] / 2.f; - mea[4] = mean[level] + sigma[level]; //66% - mea[5] = mean[level] + 1.2f * sigma[level]; - mea[6] = mean[level] + 1.5f * sigma[level]; // - mea[7] = mean[level] + 2.f * sigma[level]; //95% - mea[8] = mean[level] + 2.5f * sigma[level]; //99% + mea[3] = mean[level] + cp.sigm * sigma[level] / 2.f; + mea[4] = mean[level] + cp.sigm * sigma[level]; //66% + mea[5] = mean[level] + cp.sigm * 1.2f * sigma[level]; + mea[6] = mean[level] + cp.sigm * 1.5f * sigma[level]; // + mea[7] = mean[level] + cp.sigm * 2.f * sigma[level]; //95% + mea[8] = mean[level] + cp.sigm * 2.5f * sigma[level]; //99% bool useChromAndHue = (skinprot != 0.f || cp.HSmet); float modchro; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index f92b40191..1822a81c7 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2263,6 +2263,7 @@ WaveletParams::WaveletParams() : TMmethod("cont"), Dirmethod("all"), HSmethod("with"), + sigma(1.0), rescon(0), resconH(0), reschro(0), @@ -2369,6 +2370,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && TMmethod == other.TMmethod && Dirmethod == other.Dirmethod && HSmethod == other.HSmethod + && sigma == other.sigma && rescon == other.rescon && resconH == other.resconH && reschro == other.reschro @@ -3548,6 +3550,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.avoid, "Wavelet", "AvoidColorShift", wavelet.avoid, keyFile); saveToKeyfile(!pedited || pedited->wavelet.showmask, "Wavelet", "Showmask", wavelet.showmask, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmr, "Wavelet", "TMr", wavelet.tmr, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.sigma, "Wavelet", "Sigma", wavelet.sigma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.rescon, "Wavelet", "ResidualcontShadow", wavelet.rescon, keyFile); saveToKeyfile(!pedited || pedited->wavelet.resconH, "Wavelet", "ResidualcontHighlight", wavelet.resconH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thr, "Wavelet", "ThresholdResidShadow", wavelet.thr, keyFile); @@ -4655,6 +4658,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "TMMethod", pedited, wavelet.TMmethod, pedited->wavelet.TMmethod); assignFromKeyfile(keyFile, "Wavelet", "HSMethod", pedited, wavelet.HSmethod, pedited->wavelet.HSmethod); assignFromKeyfile(keyFile, "Wavelet", "DirMethod", pedited, wavelet.Dirmethod, pedited->wavelet.Dirmethod); + assignFromKeyfile(keyFile, "Wavelet", "Sigma", pedited, wavelet.sigma, pedited->wavelet.sigma); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontShadow", pedited, wavelet.rescon, pedited->wavelet.rescon); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontHighlight", pedited, wavelet.resconH, pedited->wavelet.resconH); assignFromKeyfile(keyFile, "Wavelet", "Residualchroma", pedited, wavelet.reschro, pedited->wavelet.reschro); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 839872e77..7ad99b594 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1237,6 +1237,7 @@ struct WaveletParams { Glib::ustring TMmethod; Glib::ustring Dirmethod; Glib::ustring HSmethod; + double sigma; int rescon; int resconH; int reschro; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index d4e2bd759..c915685bc 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -504,6 +504,7 @@ void ParamsEdited::set(bool v) wavelet.TMmethod = v; wavelet.HSmethod = v; wavelet.Dirmethod = v; + wavelet.sigma = v; wavelet.rescon = v; wavelet.resconH = v; wavelet.reschro = v; @@ -1095,6 +1096,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.TMmethod = wavelet.TMmethod && p.wavelet.TMmethod == other.wavelet.TMmethod; wavelet.HSmethod = wavelet.HSmethod && p.wavelet.HSmethod == other.wavelet.HSmethod; wavelet.Dirmethod = wavelet.Dirmethod && p.wavelet.Dirmethod == other.wavelet.Dirmethod; + wavelet.sigma = wavelet.sigma && p.wavelet.sigma == other.wavelet.sigma; wavelet.rescon = wavelet.rescon && p.wavelet.rescon == other.wavelet.rescon; wavelet.resconH = wavelet.resconH && p.wavelet.resconH == other.wavelet.resconH; wavelet.reschro = wavelet.reschro && p.wavelet.reschro == other.wavelet.reschro; @@ -3132,6 +3134,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.edgeampli = mods.wavelet.edgeampli; } + if (wavelet.sigma) { + toEdit.wavelet.sigma = mods.wavelet.sigma; + } + if (wavelet.resconH) { toEdit.wavelet.resconH = dontforceSet && options.baBehav[ADDSET_WA_RESCONH] ? toEdit.wavelet.resconH + mods.wavelet.resconH : mods.wavelet.resconH; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d166e7ccc..4f7fabd1a 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -520,6 +520,7 @@ struct WaveletParamsEdited { bool Tilesmethod; bool daubcoeffmethod; bool Dirmethod; + bool sigma; bool rescon; bool resconH; bool reschro; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index c95736a80..252ed0abe 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -80,6 +80,7 @@ Wavelet::Wavelet() : tmr(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_BALCHRO")))), showmask(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_SHOWMASK")))), neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), + sigma(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMA"), 0.2, 2.5, 0.01, 1.))), rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), 0, 100, 1, 0))), resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), 0, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), @@ -173,6 +174,7 @@ Wavelet::Wavelet() : EvWavedgs = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVEDGS"); EvWavscale = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSCALE"); EvWavradius = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVRADIUS"); + EvWavsigma = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSIGMA"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -325,6 +327,9 @@ Wavelet::Wavelet() : levBox->pack_start(*correction[i]); } + sigma->setAdjusterListener(this); + levBox->pack_start(*sigma, Gtk::PACK_SHRINK); + levBox->pack_start(*sup); sup->setAdjusterListener(this); wavLabels->show(); @@ -1226,6 +1231,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) lastavoid = pp->wavelet.avoid; lastshowmask = pp->wavelet.showmask; lasttmr = pp->wavelet.tmr; + sigma->setValue(pp->wavelet.sigma); rescon->setValue(pp->wavelet.rescon); resconH->setValue(pp->wavelet.resconH); reschro->setValue(pp->wavelet.reschro); @@ -1377,6 +1383,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) tmr->set_inconsistent(!pedited->wavelet.tmr); edgthresh->setEditedState(pedited->wavelet.edgthresh ? Edited : UnEdited); rescon->setEditedState(pedited->wavelet.rescon ? Edited : UnEdited); + sigma->setEditedState(pedited->wavelet.sigma ? Edited : UnEdited); resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited); reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited); tmrs->setEditedState(pedited->wavelet.tmrs ? Edited : UnEdited); @@ -1558,6 +1565,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.avoid = avoid->get_active(); pp->wavelet.showmask = showmask->get_active(); pp->wavelet.tmr = tmr->get_active(); + pp->wavelet.sigma = sigma->getValue(); pp->wavelet.rescon = rescon->getValue(); pp->wavelet.resconH = resconH->getValue(); pp->wavelet.reschro = reschro->getValue(); @@ -1668,6 +1676,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.HSmethod = HSmethod->get_active_text() != M("GENERAL_UNCHANGED"); pedited->wavelet.Dirmethod = Dirmethod->get_active_text() != M("GENERAL_UNCHANGED"); pedited->wavelet.edgthresh = edgthresh->getEditedState(); + pedited->wavelet.sigma = sigma->getEditedState(); pedited->wavelet.rescon = rescon->getEditedState(); pedited->wavelet.resconH = resconH->getEditedState(); pedited->wavelet.reschro = reschro->getEditedState(); @@ -1902,6 +1911,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit strength->setDefault(defParams->wavelet.strength); balance->setDefault(defParams->wavelet.balance); iter->setDefault(defParams->wavelet.iter); + sigma->setDefault(defParams->wavelet.sigma); rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); @@ -1963,6 +1973,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit softrad->setDefaultEditedState(pedited->wavelet.softrad ? Edited : UnEdited); softradend->setDefaultEditedState(pedited->wavelet.softradend ? Edited : UnEdited); + sigma->setDefault(defParams->wavelet.sigma); rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); @@ -2013,6 +2024,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit correctionch[i]->setDefaultEditedState(pedited->wavelet.ch[i] ? Edited : UnEdited); } } else { + sigma->setDefaultEditedState(Irrelevant); rescon->setDefaultEditedState(Irrelevant); resconH->setDefaultEditedState(Irrelevant); reschro->setDefaultEditedState(Irrelevant); @@ -2540,6 +2552,7 @@ void Wavelet::setBatchMode(bool batchMode) opacityCurveEditorWL->setBatchMode(batchMode); curveEditorRES->setBatchMode(batchMode); curveEditorGAM->setBatchMode(batchMode); + sigma->showEditedCB(); rescon->showEditedCB(); resconH->showEditedCB(); reschro->showEditedCB(); @@ -2621,6 +2634,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavtiles, edgthresh->getTextValue()); } else if (a == rescon) { listener->panelChanged(EvWavrescon, rescon->getTextValue()); + } else if (a == sigma) { + listener->panelChanged(EvWavsigma, sigma->getTextValue()); } else if (a == resconH) { listener->panelChanged(EvWavresconH, resconH->getTextValue()); } else if (a == reschro) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index b18ac668b..9d9502670 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -76,6 +76,7 @@ private: rtengine::ProcEvent EvWavedgs; rtengine::ProcEvent EvWavscale; rtengine::ProcEvent EvWavradius; + rtengine::ProcEvent EvWavsigma; void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -167,6 +168,7 @@ private: Gtk::Button* const neutralchButton; Adjuster* correction[9]; Adjuster* correctionch[9]; + Adjuster* const sigma; Adjuster* const rescon; Adjuster* const resconH; Adjuster* const reschro; From 6b221015001e3f5fbbfe63855cc3746e94562238 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 15 Dec 2019 17:00:50 +0100 Subject: [PATCH 096/453] better white level for FUJIFILM X-A7 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index a3bab58a8..ab42f3d19 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1323,6 +1323,11 @@ Camera constants: "ranges": { "white": 16100 } }, + { // Quality C, bisected from the overexposed region of one pre-release sample file + "make_model": "FUJIFILM X-A7", + "ranges": { "white": 16382 } + }, + { // Quality B "make_model": "FUJIFILM X-A10", "dcraw_matrix": [ 11540,-4999,-991,-2949,10963,2278,-382,1049,5605 ], // DNGv9.12 D65 From 4a25633bd72604535ed9198a21117e7e556ae9c3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 16 Dec 2019 14:35:40 +0100 Subject: [PATCH 097/453] Do not gray out adjusters when automatic is enabled, fixes #5565 --- rtgui/adjuster.cc | 44 +++++++++++++------------------------------- 1 file changed, 13 insertions(+), 31 deletions(-) diff --git a/rtgui/adjuster.cc b/rtgui/adjuster.cc index 2267a9fc1..142374213 100644 --- a/rtgui/adjuster.cc +++ b/rtgui/adjuster.cc @@ -230,22 +230,7 @@ void Adjuster::setDefaultEditedState (EditedState eState) void Adjuster::autoToggled () { - if (!editedCheckBox) { - // If not used in the BatchEditor panel - if (automatic->get_active()) { - // Disable the slider and spin button - spin->set_sensitive(false); - slider->set_sensitive(false); - reset->set_sensitive(false); - } else { - // Enable the slider and spin button - spin->set_sensitive(true); - slider->set_sensitive(true); - reset->set_sensitive(true); - } - } - - if (adjusterListener != nullptr && !blocked) { + if (adjusterListener && !blocked) { adjusterListener->adjusterAutoToggled(this); } } @@ -380,6 +365,9 @@ void Adjuster::spinChanged () if (adjusterListener && !blocked) { if (!buttonReleaseSlider.connected() || afterReset) { eventPending = false; + if (automatic) { + setAutoValue(false); + } adjusterListener->adjusterChanged(this, spin->get_value()); } else { eventPending = true; @@ -419,6 +407,9 @@ void Adjuster::sliderChanged () if (adjusterListener && !blocked) { if (!buttonReleaseSlider.connected() || afterReset) { eventPending = false; + if (automatic) { + setAutoValue(false); + } adjusterListener->adjusterChanged(this, spin->get_value()); } else { eventPending = true; @@ -459,21 +450,6 @@ void Adjuster::setAutoValue (bool a) const bool oldVal = autoChange.block(true); automatic->set_active(a); autoChange.block(oldVal); - - if (!editedCheckBox) { - // If not used in the BatchEditor panel - if (a) { - // Disable the slider and spin button - spin->set_sensitive(false); - slider->set_sensitive(false); - reset->set_sensitive(false); - } else { - // Enable the slider and spin button - spin->set_sensitive(true); - slider->set_sensitive(true); - reset->set_sensitive(true); - } - } } } @@ -481,6 +457,9 @@ bool Adjuster::notifyListener () { if (eventPending && adjusterListener != nullptr && !blocked) { + if (automatic) { + setAutoValue(false); + } adjusterListener->adjusterChanged(this, spin->get_value()); } @@ -571,6 +550,9 @@ void Adjuster::showEditedCB () void Adjuster::editedToggled () { if (adjusterListener && !blocked) { + if (automatic) { + setAutoValue(false); + } adjusterListener->adjusterChanged(this, spin->get_value()); } From d6f65dc8e22262e331c2e0553aaf3acb3f4c2e6a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 16 Dec 2019 23:42:48 +0100 Subject: [PATCH 098/453] Added help button to main menu #5566 Opens RawPedia in the default URI handler --- rtdata/languages/default | 1 + rtgui/rtwindow.cc | 20 +++++++++++++++++--- rtgui/rtwindow.h | 1 + 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index da4d5c804..5004bf25c 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -225,6 +225,7 @@ GENERAL_DISABLED;Disabled GENERAL_ENABLE;Enable GENERAL_ENABLED;Enabled GENERAL_FILE;File +GENERAL_HELP;Help GENERAL_LANDSCAPE;Landscape GENERAL_NA;n/a GENERAL_NO;No diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 5ab3ab85d..7f3c409a6 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -383,8 +383,13 @@ RTWindow::RTWindow () iccProfileCreator->set_tooltip_markup (M ("MAIN_BUTTON_ICCPROFCREATOR")); iccProfileCreator->signal_clicked().connect ( sigc::mem_fun (*this, &RTWindow::showICCProfileCreator) ); - //Gtk::LinkButton* rtWeb = Gtk::manage (new Gtk::LinkButton ("http://rawtherapee.com")); // unused... but fail to be linked anyway !? - //Gtk::Button* preferences = Gtk::manage (new Gtk::Button (M("MAIN_BUTTON_PREFERENCES")+"...")); + Gtk::Button* helpBtn = Gtk::manage (new Gtk::Button ()); + setExpandAlignProperties (helpBtn, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); + helpBtn->set_relief(Gtk::RELIEF_NONE); + helpBtn->set_image (*Gtk::manage (new RTImage ("info.png"))); + helpBtn->set_tooltip_markup (M ("GENERAL_HELP")); + helpBtn->signal_clicked().connect (sigc::mem_fun (*this, &RTWindow::showRawPedia)); + Gtk::Button* preferences = Gtk::manage (new Gtk::Button ()); setExpandAlignProperties (preferences, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); preferences->set_relief(Gtk::RELIEF_NONE); @@ -392,7 +397,6 @@ RTWindow::RTWindow () preferences->set_tooltip_markup (M ("MAIN_BUTTON_PREFERENCES")); preferences->signal_clicked().connect ( sigc::mem_fun (*this, &RTWindow::showPreferences) ); - //btn_fullscreen = Gtk::manage( new Gtk::Button(M("MAIN_BUTTON_FULLSCREEN"))); btn_fullscreen = Gtk::manage ( new Gtk::Button()); setExpandAlignProperties (btn_fullscreen, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); btn_fullscreen->set_relief(Gtk::RELIEF_NONE); @@ -414,6 +418,7 @@ RTWindow::RTWindow () actionGrid->set_orientation (Gtk::ORIENTATION_VERTICAL); actionGrid->attach_next_to (prProgBar, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*iccProfileCreator, Gtk::POS_BOTTOM, 1, 1); + actionGrid->attach_next_to (*helpBtn, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*preferences, Gtk::POS_BOTTOM, 1, 1); actionGrid->attach_next_to (*btn_fullscreen, Gtk::POS_BOTTOM, 1, 1); mainNB->set_action_widget (actionGrid, Gtk::PACK_END); @@ -422,6 +427,7 @@ RTWindow::RTWindow () actionGrid->set_orientation (Gtk::ORIENTATION_HORIZONTAL); actionGrid->attach_next_to (prProgBar, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*iccProfileCreator, Gtk::POS_RIGHT, 1, 1); + actionGrid->attach_next_to (*helpBtn, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*preferences, Gtk::POS_RIGHT, 1, 1); actionGrid->attach_next_to (*btn_fullscreen, Gtk::POS_RIGHT, 1, 1); mainNB->set_action_widget (actionGrid, Gtk::PACK_END); @@ -913,6 +919,14 @@ void RTWindow::writeToolExpandedStatus (std::vector &tpOpen) } +void RTWindow::showRawPedia() +{ + const Glib::ustring& uri = "https://rawpedia.rawtherapee.com/"; + guint32 err = 0; + RTWindow *rtWin = this; + rtWin->show_uri(uri, err); +} + void RTWindow::showICCProfileCreator () { ICCProfileCreator *iccpc = new ICCProfileCreator (this); diff --git a/rtgui/rtwindow.h b/rtgui/rtwindow.h index 100ddf636..4791ac6c1 100644 --- a/rtgui/rtwindow.h +++ b/rtgui/rtwindow.h @@ -90,6 +90,7 @@ public: bool on_window_state_event (GdkEventWindowState* event) override; void on_mainNB_switch_page (Gtk::Widget* widget, guint page_num); + void showRawPedia(); void showICCProfileCreator (); void showPreferences (); void on_realize () override; From 9a0cae035753922db32398b42a1b0600b31aba04 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 16 Dec 2019 23:47:54 +0100 Subject: [PATCH 099/453] Clear progress bar when opening in external editor The last step remained visible in the progress bar when invoking the external editor. Fixes #5475 --- rtgui/editorpanel.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 1b5ed3fa7..806af8b2e 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -2067,6 +2067,7 @@ bool EditorPanel::idle_sentToGimp (ProgressConnector *pc, rtengine::IImagef { img->free (); int errore = pc->returnValue(); + setProgressState(false); delete pc; if (!errore) { From abac9856e7c17ce5ff5e4c2477eaa58c1b64a207 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 17 Dec 2019 00:44:01 +0100 Subject: [PATCH 100/453] Apply internal default profile (neutral) instead of user defined default profiles for missing parts of existing profile when loading a raw file which already has a .pp3, fixes #5564 --- rtgui/thumbnail.cc | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index bcf578143..5295b9d61 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -341,34 +341,31 @@ void Thumbnail::notifylisterners_procParamsChanged(int whoChangedIt) * the Preferences). * * The result is a complete ProcParams with default values merged with the values - * from the default Raw or Image ProcParams, then with the values from the loaded - * ProcParams (sidecar or cache file). - */ + * from the loaded ProcParams (sidecar or cache file). +*/ void Thumbnail::loadProcParams () { MyMutex::MyLock lock(mutex); pparamsValid = false; pparams->setDefaults(); - const PartialProfile *defaultPP = ProfileStore::getInstance()->getDefaultPartialProfile(getType() == FT_Raw); - defaultPP->applyTo(pparams.get()); if (options.paramsLoadLocation == PLL_Input) { // try to load it from params file next to the image file - int ppres = pparams->load (fname + paramFileExtension); + const int ppres = pparams->load(fname + paramFileExtension); pparamsValid = !ppres && pparams->ppVersion >= 220; // if no success, try to load the cached version of the procparams if (!pparamsValid) { - pparamsValid = !pparams->load (getCacheFileName ("profiles", paramFileExtension)); + pparamsValid = !pparams->load(getCacheFileName("profiles", paramFileExtension)); } } else { // try to load it from cache - pparamsValid = !pparams->load (getCacheFileName ("profiles", paramFileExtension)); + pparamsValid = !pparams->load(getCacheFileName("profiles", paramFileExtension)); // if no success, try to load it from params file next to the image file if (!pparamsValid) { - int ppres = pparams->load (fname + paramFileExtension); + const int ppres = pparams->load(fname + paramFileExtension); pparamsValid = !ppres && pparams->ppVersion >= 220; } } From 56de2e7a0736642a7a6b695b1efc894fc28e868a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 17 Dec 2019 10:38:04 +0100 Subject: [PATCH 101/453] Help button - new icon, simplified code #5567 --- rtdata/images/svg/questionmark.svg | 122 +++++++++++++++++++++++++++++ rtgui/rtwindow.cc | 7 +- 2 files changed, 124 insertions(+), 5 deletions(-) create mode 100644 rtdata/images/svg/questionmark.svg diff --git a/rtdata/images/svg/questionmark.svg b/rtdata/images/svg/questionmark.svg new file mode 100644 index 000000000..4c4b59590 --- /dev/null +++ b/rtdata/images/svg/questionmark.svg @@ -0,0 +1,122 @@ + + + + + + + + + + + + image/svg+xml + + + + + Maciej Dworak + + + + + + + + RawTherapee icon. + + + + + + + + + + + + + + ? + + + + diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 7f3c409a6..4c6dc753f 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -386,7 +386,7 @@ RTWindow::RTWindow () Gtk::Button* helpBtn = Gtk::manage (new Gtk::Button ()); setExpandAlignProperties (helpBtn, false, false, Gtk::ALIGN_CENTER, Gtk::ALIGN_CENTER); helpBtn->set_relief(Gtk::RELIEF_NONE); - helpBtn->set_image (*Gtk::manage (new RTImage ("info.png"))); + helpBtn->set_image (*Gtk::manage (new RTImage ("questionmark.png"))); helpBtn->set_tooltip_markup (M ("GENERAL_HELP")); helpBtn->signal_clicked().connect (sigc::mem_fun (*this, &RTWindow::showRawPedia)); @@ -921,10 +921,7 @@ void RTWindow::writeToolExpandedStatus (std::vector &tpOpen) void RTWindow::showRawPedia() { - const Glib::ustring& uri = "https://rawpedia.rawtherapee.com/"; - guint32 err = 0; - RTWindow *rtWin = this; - rtWin->show_uri(uri, err); + show_uri("https://rawpedia.rawtherapee.com/", GDK_CURRENT_TIME); } void RTWindow::showICCProfileCreator () From 5e0ad767ad27bd73fbf67fa85f939c2529400be8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 18 Dec 2019 13:16:37 +0100 Subject: [PATCH 102/453] Capture sharpening: fix wrong calculation for radius > 0.84 --- rtengine/capturesharpening.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 281a2ad71..f991400e5 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -181,7 +181,7 @@ inline void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** REST const float val = c31 * (src[i - 3][j - 1] + src[i - 3][j + 1] + src[i - 1][j - 3] + src[i - 1][j + 3] + src[i + 1][j - 3] + src[i + 1][j + 3] + src[i + 3][j - 1] + src[i + 3][j + 1]) + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + - c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] * c21 + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + + c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -250,7 +250,7 @@ inline void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int t const float val = c31 * (src[i - 3][j - 1] + src[i - 3][j + 1] + src[i - 1][j - 3] + src[i - 1][j + 3] + src[i + 1][j - 3] + src[i + 1][j + 3] + src[i + 3][j - 1] + src[i + 3][j + 1]) + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + - c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] * c21 + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + + c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + From 3a207dace71f4380185b2b86e758084df299f49a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 18 Dec 2019 17:33:41 +0100 Subject: [PATCH 103/453] Some optimizations for capture sharpening --- rtengine/capturesharpening.cc | 40 +++++++++++++++++++++++------------ 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index f991400e5..d2bb6b351 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -152,7 +152,7 @@ inline void gauss5x5div (float** RESTRICT src, float** RESTRICT dst, float** RES for (int i = 2; i < tileSize - 2; ++i) { // I tried hand written SSE code but gcc vectorizes better for (int j = 2; j < tileSize - 2; ++j) { - const float val = c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + + const float val = c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -178,10 +178,10 @@ inline void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** REST for (int i = 3; i < tileSize - 3; ++i) { // I tried hand written SSE code but gcc vectorizes better for (int j = 3; j < tileSize - 3; ++j) { - const float val = c31 * (src[i - 3][j - 1] + src[i - 3][j + 1] + src[i - 1][j - 3] + src[i - 1][j + 3] + src[i + 1][j - 3] + src[i + 1][j + 3] + src[i + 3][j - 1] + src[i + 3][j + 1]) + + const float val = c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + - c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + + c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -221,7 +221,7 @@ inline void gauss5x5mult (float** RESTRICT src, float** RESTRICT dst, const int for (int i = 2; i < tileSize - 2; ++i) { // I tried hand written SSE code but gcc vectorizes better for (int j = 2; j < tileSize - 2; ++j) { - const float val = c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + + const float val = c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -247,10 +247,10 @@ inline void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int t for (int i = 3; i < tileSize - 3; ++i) { // I tried hand written SSE code but gcc vectorizes better for (int j = 3; j < tileSize - 3; ++j) { - const float val = c31 * (src[i - 3][j - 1] + src[i - 3][j + 1] + src[i - 1][j - 3] + src[i - 1][j + 3] + src[i + 1][j - 3] + src[i + 1][j + 3] + src[i + 3][j - 1] + src[i + 3][j + 1]) + + const float val = c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + - c21 * (src[i - 2][j - 1] + src[i - 2][j + 1] + src[i - 1][j - 2] + src[i - 1][j + 2] + src[i + 1][j - 2] + src[i + 1][j + 2] + src[i + 2][j - 1] + src[i + 2][j + 1]) + + c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -563,19 +563,25 @@ BENCHFUN // fill tiles if (endOfRow || endOfCol) { // special handling for small tiles at end of row or column + float maxVal = 0.f; if (checkIterStop) { - float maxVal = 0.f; for (int k = 0, ii = endOfCol ? H - fullTileSize + border : i; k < tileSize; ++k, ++ii) { for (int l = 0, jj = endOfRow ? W - fullTileSize + border : j; l < tileSize; ++l, ++jj) { iterCheck[k][l] = oldLuminance[ii][jj] * clipmask[ii][jj] * 0.5f; maxVal = std::max(maxVal, clipmask[ii][jj]); } } - if (maxVal < minBlend) { - // no pixel of the tile has a blend factor >= minBlend => skip the tile - continue; + } else { + for (int k = 0, ii = endOfCol ? H - fullTileSize + border : i; k < tileSize; ++k, ++ii) { + for (int l = 0, jj = endOfRow ? W - fullTileSize + border : j; l < tileSize; ++l, ++jj) { + maxVal = std::max(maxVal, clipmask[ii][jj]); + } } } + if (maxVal < minBlend) { + // no pixel of the tile has a blend factor >= minBlend => skip the tile + continue; + } for (int k = 0, ii = endOfCol ? H - fullTileSize : i - border; k < fullTileSize; ++k, ++ii) { for (int l = 0, jj = endOfRow ? W - fullTileSize : j - border; l < fullTileSize; ++l, ++jj) { tmpIThr[k][l] = oldLuminance[ii][jj]; @@ -583,19 +589,25 @@ BENCHFUN } } } else { + float maxVal = 0.f; if (checkIterStop) { - float maxVal = 0.f; for (int ii = 0; ii < tileSize; ++ii) { for (int jj = 0; jj < tileSize; ++jj) { iterCheck[ii][jj] = oldLuminance[i + ii][j + jj] * clipmask[i + ii][j + jj] * 0.5f; maxVal = std::max(maxVal, clipmask[i + ii][j + jj]); } } - if (maxVal < minBlend) { - // no pixel of the tile has a blend factor >= minBlend => skip the tile - continue; + } else { + for (int ii = 0; ii < tileSize; ++ii) { + for (int jj = 0; jj < tileSize; ++jj) { + maxVal = std::max(maxVal, clipmask[i + ii][j + jj]); + } } } + if (maxVal < minBlend) { + // no pixel of the tile has a blend factor >= minBlend => skip the tile + continue; + } for (int ii = i; ii < i + fullTileSize; ++ii) { for (int jj = j; jj < j + fullTileSize; ++jj) { tmpIThr[ii - i][jj - j] = oldLuminance[ii - border][jj - border]; From 765499bf5568d000af567a1aa850a544d3b9bb1e Mon Sep 17 00:00:00 2001 From: "luz.paz" Date: Thu, 19 Dec 2019 20:46:35 -0500 Subject: [PATCH 104/453] Fix doxygen typo and other various typos --- rtengine/cJSON.h | 2 +- rtengine/camconst.cc | 2 +- rtengine/color.h | 2 +- rtengine/improcfun.cc | 2 +- rtgui/cropwindow.cc | 6 +++--- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtengine/cJSON.h b/rtengine/cJSON.h index 786dd2e0e..49fd67b72 100644 --- a/rtengine/cJSON.h +++ b/rtengine/cJSON.h @@ -195,7 +195,7 @@ CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void); /* Create a string where valuestring references a string so * it will not be freed by cJSON_Delete */ CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string); -/* Create an object/arrray that only references it's elements so +/* Create an object/array that only references it's elements so * they will not be freed by cJSON_Delete */ CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child); CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child); diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index e8f7b1cbf..d136d6a21 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -253,7 +253,7 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) } if (i % 4 != 0) { - fprintf(stderr, "\"masked_areas\" array length must be divisable by 4\n"); + fprintf(stderr, "\"masked_areas\" array length must be divisible by 4\n"); goto parse_error; } } diff --git a/rtengine/color.h b/rtengine/color.h index d9c344c27..ec2f17e6f 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -1372,7 +1372,7 @@ public: * @param HH hue before [-PI ; +PI] * @param Chprov1 chroma after [0 ; 180 (can be superior)] * @param CC chroma before [0 ; 180] - * @param corectionHuechroma hue correction depending on chromaticity (saturation), in radians [0 ; 0.45] (return value) + * @param correctionHuechroma hue correction depending on chromaticity (saturation), in radians [0 ; 0.45] (return value) * @param correctlum hue correction depending on luminance (brightness, contrast,...), in radians [0 ; 0.45] (return value) * @param munsDbgInfo (Debug target only) object to collect information */ diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index cb0834570..59fb0f016 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -5590,7 +5590,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double whiteclipg = CurveFactory::igamma2 ((float) (whiteclipg / 65535.0)) * 65535.0; //need to inverse gamma transform to get correct exposure compensation parameter - //corection with gamma + //correction with gamma black = (int) ((65535 * black) / whiteclipg); //expcomp = log(65535.0 / (whiteclipg)) / log(2.0); diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index b00032191..0a9b81112 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -1492,9 +1492,9 @@ void CropWindow::expose (Cairo::RefPtr cr) const float kernel_size2 = SQR(2.f * blur_radius2 + 1.f); // count of pixels in the small blur kernel const float rkernel_size2 = 1.0f / kernel_size2; // reciprocal of kernel_size to avoid divisions - // aloocate buffer for precalculated Luminance + // allocate buffer for precalculated Luminance float* tmpL = (float*)malloc(bHeight * bWidth * sizeof(float) ); - // aloocate buffers for sums and sums of squares of small kernel + // allocate buffers for sums and sums of squares of small kernel float* tmpLsum = (float*)malloc((bHeight) * (bWidth) * sizeof(float) ); float* tmpLsumSq = (float*)malloc((bHeight) * (bWidth) * sizeof(float) ); float* tmpstdDev2 = (float*)malloc((bHeight) * (bWidth) * sizeof(float) ); @@ -1631,7 +1631,7 @@ void CropWindow::expose (Cairo::RefPtr cr) && stdDev_L2 > stdDev_L //this is the key to select fine detail within lower contrast on larger scale && stdDev_L > focus_threshby10 //options.highlightThreshold ) { - // transpareny depends on sdtDev_L2 and maxstdDev_L2 + // transparency depends on sdtDev_L2 and maxstdDev_L2 float transparency = 1.f - std::min(stdDev_L2 / maxstdDev_L2, 1.0f) ; // first row of circle guint8* currtmp = &curr[0] + (-3 * pixRowStride); From c5d2e00ba32353a4361ac0af1221cce6d4c9dc9b Mon Sep 17 00:00:00 2001 From: "luz.paz" Date: Fri, 20 Dec 2019 06:06:52 -0500 Subject: [PATCH 105/453] Fixed previous commit per review feedback --- rtengine/color.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/color.h b/rtengine/color.h index ec2f17e6f..211615de1 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -1372,7 +1372,7 @@ public: * @param HH hue before [-PI ; +PI] * @param Chprov1 chroma after [0 ; 180 (can be superior)] * @param CC chroma before [0 ; 180] - * @param correctionHuechroma hue correction depending on chromaticity (saturation), in radians [0 ; 0.45] (return value) + * @param correctionHueChroma hue correction depending on chromaticity (saturation), in radians [0 ; 0.45] (return value) * @param correctlum hue correction depending on luminance (brightness, contrast,...), in radians [0 ; 0.45] (return value) * @param munsDbgInfo (Debug target only) object to collect information */ From 7f425e7fe64e0aa5917cc49594b37cde9fab1c9e Mon Sep 17 00:00:00 2001 From: "luz.paz" Date: Fri, 20 Dec 2019 06:07:52 -0500 Subject: [PATCH 106/453] Found a few more typos --- rtgui/editwidgets.h | 2 +- rtgui/options.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/editwidgets.h b/rtgui/editwidgets.h index 55b4ca3cc..0fa7a91bf 100644 --- a/rtgui/editwidgets.h +++ b/rtgui/editwidgets.h @@ -55,7 +55,7 @@ class RTSurface; * - drag1 * - button1Released * - * Actually, only curves does use this class, and everything is handled for curve implementor (as much as possible). + * Actually, only curves does use this class, and everything is handled for curve implementer (as much as possible). * See the curve's class documentation to see how to implement the curve's pipette feature. * * ### Event handling diff --git a/rtgui/options.cc b/rtgui/options.cc index f5b6b5b60..dcb16e1ea 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -225,7 +225,7 @@ Glib::ustring Options::getPreferredProfilePath() * *@param profName path + filename of the procparam to look for. A filename without path can be provided for backward compatibility. * In this case, this parameter will be updated with the new format. - *@return Send back the absolute path of the given filename or "Neutral" if "Neutral" has been set to profName. Implementor will have + *@return Send back the absolute path of the given filename or "Neutral" if "Neutral" has been set to profName. Implementer will have * to test for this particular value. If the absolute path is invalid (e.g. the file doesn't exist), it will return an empty string. */ Glib::ustring Options::findProfilePath(Glib::ustring &profName) From bd6088837c99b95f9a9c53fdd5ff4990f1c550c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Fri, 20 Dec 2019 13:34:37 +0100 Subject: [PATCH 107/453] Fix crash on `DCraw::data_error` (fixes #5571) --- rtengine/dcraw.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index d5348286c..812f122b3 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -4433,6 +4433,10 @@ void CLASS foveon_interpolate() void CLASS crop_masked_pixels() { + if (data_error) { + return; + } + int row, col; unsigned r, c, m, mblack[8], zero, val; From 5face2e4499c93422ca907f1966dc7d7d5cd75ec Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 20 Dec 2019 17:44:51 +0100 Subject: [PATCH 108/453] buildBlendMask: remove multiplication by amount as amount always was 1 --- rtengine/capturesharpening.cc | 4 ++-- rtengine/dual_demosaic_RT.cc | 2 +- rtengine/ipsharpen.cc | 2 +- rtengine/rt_algo.cc | 11 +++++------ rtengine/rt_algo.h | 2 +- 5 files changed, 10 insertions(+), 11 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index d2bb6b351..e5bfde555 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -800,7 +800,7 @@ BENCHFUN } array2D& blend = red; // red will be overridden anyway => we can use its buffer to store the blend mask - buildBlendMask(L, blend, W, H, contrast, 1.f, sharpeningParams.autoContrast, clipMask); + buildBlendMask(L, blend, W, H, contrast, sharpeningParams.autoContrast, clipMask); if (plistener) { plistener->setProgress(0.2); } @@ -849,7 +849,7 @@ BENCHFUN } // calculate contrast based blend factors to reduce sharpening in regions with low contrast array2D& blend = clipMask; // we can share blend and clipMask buffer here - buildBlendMask(L, blend, W, H, contrast, 1.f, sharpeningParams.autoContrast, clipMask); + buildBlendMask(L, blend, W, H, contrast, sharpeningParams.autoContrast, clipMask); if (plistener) { plistener->setProgress(0.2); } diff --git a/rtengine/dual_demosaic_RT.cc b/rtengine/dual_demosaic_RT.cc index 69d1a189a..93508808c 100644 --- a/rtengine/dual_demosaic_RT.cc +++ b/rtengine/dual_demosaic_RT.cc @@ -105,7 +105,7 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const procparams::RAWParams JaggedArray blend(winw, winh); float contrastf = contrast / 100.f; - buildBlendMask(L, blend, winw, winh, contrastf, 1.f, autoContrast); + buildBlendMask(L, blend, winw, winh, contrastf, autoContrast); contrast = contrastf * 100.f; array2D& redTmp = L; // L is not needed anymore => reuse it diff --git a/rtengine/ipsharpen.cc b/rtengine/ipsharpen.cc index a35476d3a..7198b76c5 100644 --- a/rtengine/ipsharpen.cc +++ b/rtengine/ipsharpen.cc @@ -256,7 +256,7 @@ void ImProcFunctions::sharpening (LabImage* lab, const procparams::SharpeningPar // calculate contrast based blend factors to reduce sharpening in regions with low contrast JaggedArray blend(W, H); float contrast = sharpenParam.contrast / 100.f; - buildBlendMask(lab->L, blend, W, H, contrast, 1.f); + buildBlendMask(lab->L, blend, W, H, contrast); if(showMask) { #ifdef _OPENMP diff --git a/rtengine/rt_algo.cc b/rtengine/rt_algo.cc index 79a7c3679..a5b48af95 100644 --- a/rtengine/rt_algo.cc +++ b/rtengine/rt_algo.cc @@ -299,7 +299,7 @@ void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& maxOut = rtengine::LIM(maxOut, minVal, maxVal); } -void buildBlendMask(const float* const * luminance, float **blend, int W, int H, float &contrastThreshold, float amount, bool autoContrast, float ** clipMask) { +void buildBlendMask(const float* const * luminance, float **blend, int W, int H, float &contrastThreshold, bool autoContrast, float ** clipMask) { if (autoContrast) { constexpr float minLuminance = 2000.f; @@ -403,7 +403,7 @@ void buildBlendMask(const float* const * luminance, float **blend, int W, int H, if(contrastThreshold == 0.f) { for(int j = 0; j < H; ++j) { for(int i = 0; i < W; ++i) { - blend[j][i] = amount; + blend[j][i] = 1.f; } } } else { @@ -415,7 +415,6 @@ void buildBlendMask(const float* const * luminance, float **blend, int W, int H, #ifdef __SSE2__ const vfloat contrastThresholdv = F2V(contrastThreshold); const vfloat scalev = F2V(scale); - const vfloat amountv = F2V(amount); #endif #ifdef _OPENMP #pragma omp for schedule(dynamic,16) @@ -429,14 +428,14 @@ void buildBlendMask(const float* const * luminance, float **blend, int W, int H, vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) + SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev; - STVFU(blend[j][i], LVFU(clipMask[j][i]) * amountv * calcBlendFactor(contrastv, contrastThresholdv)); + STVFU(blend[j][i], LVFU(clipMask[j][i]) * calcBlendFactor(contrastv, contrastThresholdv)); } } else { for(; i < W - 5; i += 4) { vfloat contrastv = vsqrtf(SQRV(LVFU(luminance[j][i+1]) - LVFU(luminance[j][i-1])) + SQRV(LVFU(luminance[j+1][i]) - LVFU(luminance[j-1][i])) + SQRV(LVFU(luminance[j][i+2]) - LVFU(luminance[j][i-2])) + SQRV(LVFU(luminance[j+2][i]) - LVFU(luminance[j-2][i]))) * scalev; - STVFU(blend[j][i], amountv * calcBlendFactor(contrastv, contrastThresholdv)); + STVFU(blend[j][i], calcBlendFactor(contrastv, contrastThresholdv)); } } #endif @@ -445,7 +444,7 @@ void buildBlendMask(const float* const * luminance, float **blend, int W, int H, float contrast = sqrtf(rtengine::SQR(luminance[j][i+1] - luminance[j][i-1]) + rtengine::SQR(luminance[j+1][i] - luminance[j-1][i]) + rtengine::SQR(luminance[j][i+2] - luminance[j][i-2]) + rtengine::SQR(luminance[j+2][i] - luminance[j-2][i])) * scale; - blend[j][i] = (clipMask ? clipMask[j][i] : 1.f) * amount * calcBlendFactor(contrast, contrastThreshold); + blend[j][i] = (clipMask ? clipMask[j][i] : 1.f) * calcBlendFactor(contrast, contrastThreshold); } } diff --git a/rtengine/rt_algo.h b/rtengine/rt_algo.h index 5485346c7..81147fd75 100644 --- a/rtengine/rt_algo.h +++ b/rtengine/rt_algo.h @@ -24,5 +24,5 @@ namespace rtengine { void findMinMaxPercentile(const float* data, size_t size, float minPrct, float& minOut, float maxPrct, float& maxOut, bool multiThread = true); -void buildBlendMask(const float* const * luminance, float **blend, int W, int H, float &contrastThreshold, float amount = 1.f, bool autoContrast = false, float ** clipmask = nullptr); +void buildBlendMask(const float* const * luminance, float **blend, int W, int H, float &contrastThreshold, bool autoContrast = false, float ** clipmask = nullptr); } From c75cc322686341c4c7159895e80caa13aa2f3378 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 23 Dec 2019 12:41:36 +0100 Subject: [PATCH 109/453] Japanese translation updated by Yz2house Closes #5576 --- rtdata/languages/Japanese | 86 +++++++++++++++------------------------ 1 file changed, 32 insertions(+), 54 deletions(-) diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 91ef2e931..588a817f2 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -8,30 +8,6 @@ #08 2012-12-22 a3novy #09 2013-04-01 a3novy #10 2013-04-19 a3novy -#11 2013-09-10 firefly -#12 2013-10-28 firefly -#13 2014-01-07 firefly -#14 2014-01-15 firefly -#15 2014-02-25 firefly -#16 2014-04-07 firefly -#17 2014-04-08 firefly -#18 2014-05-16 firefly -#19 2014-07-13 firefly -#20 2014-07-24 firefly -#21 2014-09-11 firefly -#22 2014-10-21 firefly -#23 2014-11-07 firefly -#24 2014-11-18 firefly -#25 2015-01-05 firefly -#26 2015-02-17 firefly -#27 2015-02-21 firefly -#28 2015-03-03 firefly -#29 2015-04-20 firefly -#30 2015-05-01 firefly -#31 2015-05-31 firefly -#32 2015-06-13 firefly -#33 2015-07-20 firefly -#34 2015-08-12 firefly ABOUT_TAB_BUILD;バージョン ABOUT_TAB_CREDITS;クレジット @@ -49,7 +25,7 @@ CURVEEDITOR_CURVE;カーブ CURVEEDITOR_CURVES;カーブ CURVEEDITOR_CUSTOM;カスタム CURVEEDITOR_DARKS;ダーク -CURVEEDITOR_EDITPOINT_HINT;ボタンを押すと数値で入出力を編集出来ます\n\n編集したいカーブ上のポイントを右クリックします\n編集を無効にする場合はポイント以外の部分んで右クリックします +CURVEEDITOR_EDITPOINT_HINT;ボタンを押すと数値で入出力を編集出来ます\n\n編集したいカーブ上のポイントを右クリックします\n編集を無効にする場合はポイント以外の部分で右クリックします CURVEEDITOR_HIGHLIGHTS;ハイライト CURVEEDITOR_LIGHTS;ライト CURVEEDITOR_LINEAR;リニア @@ -489,8 +465,8 @@ HISTORY_MSG_205;CAM02 ホット/バッドピクセル HISTORY_MSG_206;CAT02 - 自動で順応 HISTORY_MSG_207;フリンジ低減 - 色相カーブ HISTORY_MSG_208;ブルー/レッド イコライザ -HISTORY_MSG_210;グラデーションフィルター - 角度 -HISTORY_MSG_211;グラデーションフィルター +HISTORY_MSG_210;減光フィルター - 角度 +HISTORY_MSG_211;減光フィルター HISTORY_MSG_212;ビネットフィルター - 強さ HISTORY_MSG_213;ビネットフィルター HISTORY_MSG_214;白黒 @@ -517,10 +493,10 @@ HISTORY_MSG_234;白黒 ‘後の‘カーブのタイプ HISTORY_MSG_235;白黒 チャンネルミキサー 自動 HISTORY_MSG_236;--未使用-- HISTORY_MSG_237;白黒 チャンネルミキサー -HISTORY_MSG_238;グラデーションフィルター フェザー処理 -HISTORY_MSG_239;グラデーションフィルター 強さ -HISTORY_MSG_240;グラデーションフィルター 中央 -HISTORY_MSG_241;ビネットフィルター フェザー処理 +HISTORY_MSG_238;減光フィルター フェザー +HISTORY_MSG_239;減光フィルター 強さ +HISTORY_MSG_240;減光フィルター 中央 +HISTORY_MSG_241;ビネットフィルター フェザー HISTORY_MSG_242;ビネットフィルター 形状 HISTORY_MSG_243;半径 HISTORY_MSG_244;ビネットフィルター 強さ @@ -757,6 +733,7 @@ HISTORY_MSG_490;DRC - 量 HISTORY_MSG_491;ホワイトバランス HISTORY_MSG_492;RGBカーブ HISTORY_MSG_493;L*a*b*調整 +HISTORY_MSG_494;キャプチャーシャープニング HISTORY_MSG_CLAMPOOG;色域外の色を切り取る HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - カラー補正 HISTORY_MSG_COLORTONING_LABREGION_AB;CT - 色の補正 @@ -774,6 +751,7 @@ HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - マスクの表示 HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - スロープ HISTORY_MSG_DEHAZE_DEPTH;霞除去 - 深度 HISTORY_MSG_DEHAZE_ENABLED;霞除去 +HISTORY_MSG_DEHAZE_LUMINANCE;霞除去 - 輝度のみ HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;霞除去 - 深度マップの表示 HISTORY_MSG_DEHAZE_STRENGTH;霞除去 - 強さ HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;デュアルデモザイク - 自動しきい値 @@ -794,6 +772,13 @@ HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;ローカルコントラスト - 明るい HISTORY_MSG_LOCALCONTRAST_RADIUS;ローカルコントラスト - 半径 HISTORY_MSG_METADATA_MODE;メタデータ コピーモード HISTORY_MSG_MICROCONTRAST_CONTRAST;マイクロコントラスト - コントラストのしきい値 +HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CS - しきい値の自動設定 +HISTORY_MSG_PDSHARPEN_AUTO_RADIUS;CS - シグマの自動設定 +HISTORY_MSG_PDSHARPEN_CHECKITER;CS - 繰り返しの自動制限 +HISTORY_MSG_PDSHARPEN_CONTRAST;CS - コントラストのしきい値 +HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - 繰り返し +HISTORY_MSG_PDSHARPEN_RADIUS;CS - シグマ +HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - 周辺のシグマを増やす HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - 振れに対するデモザイクの方式 HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;ラインノイズフィルタの方向 HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAFラインフィルタ @@ -960,8 +945,8 @@ MAIN_TOOLTIP_BACKCOLOR2;プレビューの背景色を指定します: 中間のグレー\nショートカット: 9 MAIN_TOOLTIP_BEFOREAFTERLOCK;固定 / 固定解除 - 補正前 の表示設定\n\n固定: 補正前をそのまま表示し変更されません\n複数のツールの累積効果を評価するのに役立ちます\nさらに、比較は履歴上のどこからでも行うことができます\n\n固定解除: 現在使用のツールの効果が 補正後 に表示され、その1段階前が 補正前 に表示されます MAIN_TOOLTIP_HIDEHP;左パネル 表示/非表示 (履歴含む)\nショートカット: l -MAIN_TOOLTIP_INDCLIPPEDH;ハイライト・クリッピング領域の表示\nショートカット: > -MAIN_TOOLTIP_INDCLIPPEDS;シャドウ・クリッピング領域の表示\nショートカット: < +MAIN_TOOLTIP_INDCLIPPEDH;ハイライト・クリッピング領域の表示\nショートカット: < +MAIN_TOOLTIP_INDCLIPPEDS;シャドウ・クリッピング領域の表示\nショートカット: > MAIN_TOOLTIP_PREVIEWB;ブルー チャンネル表示\nショートカット: b MAIN_TOOLTIP_PREVIEWFOCUSMASK;フォーカス・マスク表示\nショートカット: Shift-f\n\n浅い被写界深度、低ノイズ、高ズームの画像の場合は、より正確に\n\nノイズの多い画像に対しては、検出精度を向上させるため10から30%縮小して評価します\n\nフォーカス・マスクをオンにすると表示に時間が掛かります MAIN_TOOLTIP_PREVIEWG;グリーン チャンネル表示\nショートカット: g @@ -1023,7 +1008,7 @@ PARTIALPASTE_FLATFIELDBLURRADIUS;フラットフィールド ぼかし半径 PARTIALPASTE_FLATFIELDBLURTYPE;フラットフィールド ぼかしタイプ PARTIALPASTE_FLATFIELDCLIPCONTROL;フラットフィールド クリップコントロール PARTIALPASTE_FLATFIELDFILE;フラットフィールド ファイル -PARTIALPASTE_GRADIENT;グラデーションフィルター +PARTIALPASTE_GRADIENT;減光フィルター PARTIALPASTE_HSVEQUALIZER;HSV イコライザ PARTIALPASTE_ICMSETTINGS;ICM 設定 PARTIALPASTE_IMPULSEDENOISE;インパルス・ノイズ低減 @@ -1562,6 +1547,7 @@ TP_DEFRINGE_RADIUS;半径 TP_DEFRINGE_THRESHOLD;しきい値 TP_DEHAZE_DEPTH;深度 TP_DEHAZE_LABEL;霞除去 +TP_DEHAZE_LUMINANCE;輝度のみ TP_DEHAZE_SHOW_DEPTH_MAP;深度マップの表示 TP_DEHAZE_STRENGTH;強さ TP_DIRPYRDENOISE_CHROMINANCE_AMZ;自動(多分割方式) @@ -1672,9 +1658,9 @@ TP_EXPOS_BLACKPOINT_LABEL;raw ブラック・ポイント TP_EXPOS_WHITEPOINT_LABEL;raw ホワイト・ポイント TP_FILMNEGATIVE_BLUE;ブルーの比率 TP_FILMNEGATIVE_GREEN;参考指数(コントラスト) -TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards. +TP_FILMNEGATIVE_GUESS_TOOLTIP;原画像の中で色相がニュートラルな部分2か所をピックすることでレッドとブルーの比率を自動で設定します。明るさが異なる2か所をピックします。その後、ホワイトバランスを設定します。 TP_FILMNEGATIVE_LABEL;ネガフィルム -TP_FILMNEGATIVE_PICK;Pick neutral spots +TP_FILMNEGATIVE_PICK;ニュートラルなポイントをピック TP_FILMNEGATIVE_RED;レッドの比率 TP_FILMSIMULATION_LABEL;フィルムシミュレーション TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapeeはフィルムシミュレーション機能に使う画像をHald CLUTフォルダーの中から探すよう設計されています(プログラムに組み込むにはフォルダーが大き過ぎるため)。\n変更するには、環境設定 > 画像処理 > フィルムシミュレーションと進み\nどのフォルダーが使われているか確認します。機能を利用する場合は、Hald CLUTだけが入っているフォルダーを指定するか、 この機能を使わない場合はそのフォルダーを空にしておきます。\n\n詳しくはRawPediaを参照して下さい。\n\nフィルム画像のスキャンを止めますか? @@ -1698,9 +1684,9 @@ TP_GRADIENT_CENTER_Y;中央 Y軸 TP_GRADIENT_CENTER_Y_TOOLTIP;アンカーポイントの位置 y軸: -100=上端, 0=中央, +100=下端 TP_GRADIENT_DEGREE;角度 TP_GRADIENT_DEGREE_TOOLTIP;回転角度の度数 -TP_GRADIENT_FEATHER;フェザー処理 -TP_GRADIENT_FEATHER_TOOLTIP;対角線に対するグラデーションの幅の割合 -TP_GRADIENT_LABEL;グラデーションフィルター +TP_GRADIENT_FEATHER;フェザー +TP_GRADIENT_FEATHER_TOOLTIP;対角線に対する減光の幅の割合 +TP_GRADIENT_LABEL;減光フィルター TP_GRADIENT_STRENGTH;強さ TP_GRADIENT_STRENGTH_TOOLTIP;終点位置でのフィルターの強さ TP_HLREC_BLEND;ブレンド @@ -1817,13 +1803,14 @@ TP_METADATA_STRIP;メタデータを全て取り除く TP_METADATA_TUNNEL;変更なしでコピー TP_NEUTRAL;リセット TP_NEUTRAL_TIP;露光量補正のスライダー値をニュートラルにリセットします。\n自動露光補正の調整値ついても同様にリセットされます -TP_PCVIGNETTE_FEATHER;フェザー処理 -TP_PCVIGNETTE_FEATHER_TOOLTIP;フェザー処理: 0=四隅だけ、50=中央までの半分、100=中央まで +TP_PCVIGNETTE_FEATHER;フェザー +TP_PCVIGNETTE_FEATHER_TOOLTIP;フェザー: 0=四隅だけ、50=中央までの半分、100=中央まで TP_PCVIGNETTE_LABEL;ビネットフィルター TP_PCVIGNETTE_ROUNDNESS;フィルター形状 TP_PCVIGNETTE_ROUNDNESS_TOOLTIP;形状: 0=長方形、50=楕円形、100=円形 TP_PCVIGNETTE_STRENGTH;強さ TP_PCVIGNETTE_STRENGTH_TOOLTIP;終点位置でのフィルターの強さ(四隅) +TP_PDSHARPENING_LABEL;キャプチャーシャープニング TP_PERSPECTIVE_HORIZONTAL;水平 TP_PERSPECTIVE_LABEL;パースペクティブ TP_PERSPECTIVE_VERTICAL;垂直 @@ -2054,10 +2041,12 @@ TP_SHARPENING_EDRADIUS;半径 TP_SHARPENING_EDTOLERANCE;エッジ許容 TP_SHARPENING_HALOCONTROL;ハロ抑制 TP_SHARPENING_HCAMOUNT;適用量 +TP_SHARPENING_ITERCHECK;繰り返しの自動制限 TP_SHARPENING_LABEL;シャープニング TP_SHARPENING_METHOD;方式 TP_SHARPENING_ONLYEDGES;エッジのみシャープニング TP_SHARPENING_RADIUS;半径 +TP_SHARPENING_RADIUS_BOOST;周辺のシグマを増やす TP_SHARPENING_RLD;RL デコンボリューション TP_SHARPENING_RLD_AMOUNT;適用量 TP_SHARPENING_RLD_DAMPING;減衰 @@ -2311,6 +2300,7 @@ TP_WBALANCE_TUNGSTEN;タングステン TP_WBALANCE_WATER1;水中 1 TP_WBALANCE_WATER2;水中 2 TP_WBALANCE_WATER_HEADER;水中 +The last update by firefly 2019-12-21 ZOOMPANEL_100;(100%) ZOOMPANEL_NEWCROPWINDOW;新規ディテール ウィンドウを開く ZOOMPANEL_ZOOM100;100%にズーム\nショートカット: z @@ -2323,16 +2313,4 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!HISTORY_MSG_494;Capture Sharpening -!HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only -!HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CS - Auto threshold -!HISTORY_MSG_PDSHARPEN_AUTO_RADIUS;CS - Auto radius -!HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations -!HISTORY_MSG_PDSHARPEN_CONTRAST;CS - Contrast threshold -!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations -!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius -!HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost -!TP_DEHAZE_LUMINANCE;Luminance only -!TP_PDSHARPENING_LABEL;Capture Sharpening -!TP_SHARPENING_ITERCHECK;Auto limit iterations -!TP_SHARPENING_RADIUS_BOOST;Corner radius boost +!GENERAL_HELP;Help From 898527732b99107ac7246038cc5ceb0484a33170 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 23 Dec 2019 12:42:19 +0100 Subject: [PATCH 110/453] ./tools/generateTranslationDiffs --- rtdata/languages/Catala | 1 + rtdata/languages/Chinese (Simplified) | 1 + rtdata/languages/Czech | 1 + rtdata/languages/Deutsch | 1 + rtdata/languages/English (UK) | 1 + rtdata/languages/English (US) | 1 + rtdata/languages/Espanol | 1 + rtdata/languages/Francais | 1 + rtdata/languages/Italiano | 1 + rtdata/languages/Magyar | 1 + rtdata/languages/Nederlands | 1 + rtdata/languages/Polish | 1 + rtdata/languages/Portugues | 1 + rtdata/languages/Portugues (Brasil) | 1 + rtdata/languages/Russian | 1 + rtdata/languages/Serbian (Cyrilic Characters) | 1 + rtdata/languages/Slovenian | 1 + rtdata/languages/Swedish | 1 + 18 files changed, 18 insertions(+) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 36666a533..31614c7b3 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -977,6 +977,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 89a4dd9b4..5be2958e8 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -973,6 +973,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !FILEBROWSER_SHOWUNCOLORHINT;Show images without a color label.\nShortcut: Alt-0 !FILEBROWSER_UNRANK_TOOLTIP;Unrank.\nShortcut: Shift-0 !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 0ce34e3ee..25bcf2820 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2323,6 +2323,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!GENERAL_HELP;Help !HISTORY_MSG_494;Capture Sharpening !HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 9122d5984..592801054 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2390,5 +2390,6 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!GENERAL_HELP;Help !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations !TP_SHARPENING_ITERCHECK;Auto limit iterations diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index 1fc07391e..e30425b68 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -340,6 +340,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !GENERAL_ENABLE;Enable !GENERAL_ENABLED;Enabled !GENERAL_FILE;File +!GENERAL_HELP;Help !GENERAL_LANDSCAPE;Landscape !GENERAL_NA;n/a !GENERAL_NO;No diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index 63dff83da..a1e0050a8 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -226,6 +226,7 @@ !GENERAL_ENABLE;Enable !GENERAL_ENABLED;Enabled !GENERAL_FILE;File +!GENERAL_HELP;Help !GENERAL_LANDSCAPE;Landscape !GENERAL_NA;n/a !GENERAL_NO;No diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index 96bce0cdf..ee8b0d17d 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -2321,6 +2321,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!GENERAL_HELP;Help !HISTORY_MSG_494;Capture Sharpening !HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 9d1c6a3f7..9ecf43733 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -2266,6 +2266,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!GENERAL_HELP;Help !HISTORY_MSG_494;Capture Sharpening !HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index db09b5d3a..0fd256d7c 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1285,6 +1285,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 43a4ae1e1..4b6f2811b 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -908,6 +908,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !GENERAL_AUTO;Automatic !GENERAL_CLOSE;Close !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index 07e40256f..c230323f5 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -1982,6 +1982,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index c923c3bad..4e5d950fc 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1407,6 +1407,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index efe3214f8..789d26cd6 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -2264,6 +2264,7 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. +!GENERAL_HELP;Help !HISTORY_MSG_494;Capture Sharpening !HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index e6adf3bc4..d619356a9 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2269,6 +2269,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !!!!!!!!!!!!!!!!!!!!!!!!! !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. +!GENERAL_HELP;Help !HISTORY_MSG_494;Capture Sharpening !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index a4e501a77..4246ecbb6 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1475,6 +1475,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !FILECHOOSER_FILTER_PP;Processing profiles !FILECHOOSER_FILTER_SAME;Same format as current photo +!GENERAL_HELP;Help !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_235;B&W - CM - Auto diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 9ec7c998b..7fd0ca378 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1257,6 +1257,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !GENERAL_APPLY;Apply !GENERAL_ASIMAGE;As Image !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_OPEN;Open !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... diff --git a/rtdata/languages/Slovenian b/rtdata/languages/Slovenian index b015cb6f1..0afaa83e9 100644 --- a/rtdata/languages/Slovenian +++ b/rtdata/languages/Slovenian @@ -2306,5 +2306,6 @@ ZOOMPANEL_ZOOMOUT;Zoom Out\nBližnjica: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! +!GENERAL_HELP;Help !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations !TP_SHARPENING_ITERCHECK;Auto limit iterations diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 7861f2276..6dbea54d8 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1772,6 +1772,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !FILEBROWSER_RESETDEFAULTPROFILE;Reset to default !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !GENERAL_CURRENT;Current +!GENERAL_HELP;Help !GENERAL_RESET;Reset !GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider From c4cf68c6b562253f00e403e4819318d0782a59c3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 24 Dec 2019 19:01:36 +0100 Subject: [PATCH 111/453] Speedup for darkframe subtraction --- rtengine/rawflatfield.cc | 47 +++++++++++++++++++------------------- rtengine/rawimagesource.cc | 27 ++++++++++++++-------- rtengine/rawimagesource.h | 2 +- 3 files changed, 41 insertions(+), 35 deletions(-) diff --git a/rtengine/rawflatfield.cc b/rtengine/rawflatfield.cc index 05b3be408..cbc5e6bd6 100644 --- a/rtengine/rawflatfield.cc +++ b/rtengine/rawflatfield.cc @@ -263,10 +263,9 @@ void cfaboxblur(const float* const * riFlatFile, float* cfablur, int boxH, int b namespace rtengine { -void RawImageSource::processFlatField(const procparams::RAWParams &raw, const RawImage *riFlatFile, const unsigned short black[4]) +void RawImageSource::processFlatField(const procparams::RAWParams &raw, const RawImage *riFlatFile, const float black[4]) { // BENCHFUN - const float fblack[4] = {static_cast(black[0]), static_cast(black[1]), static_cast(black[2]), static_cast(black[3])}; std::unique_ptr cfablur(new float[H * W]); const int BS = raw.ff_BlurRadius + (raw.ff_BlurRadius & 1); @@ -292,7 +291,7 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra const int col = 2 * (W >> 2) + n; const int c = ri->get_colors() != 1 ? FC(row, col) : 0; const int c4 = ri->get_colors() != 1 ? ((c == 1 && !(row & 1)) ? 3 : c) : 0; - refcolor[m][n] = std::max(0.0f, cfablur[row * W + col] - fblack[c4]); + refcolor[m][n] = std::max(0.0f, cfablur[row * W + col] - black[c4]); } float limitFactor = 1.f; @@ -315,16 +314,16 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra clippedBefore = true; break; } - const float tempval = (rawVal - fblack[c4]) * (refcolor[m][n] / std::max(1e-5f, cfablur[(row + m) * W + col + n] - fblack[c4])); + const float tempval = (rawVal - black[c4]) * (refcolor[m][n] / std::max(1e-5f, cfablur[(row + m) * W + col + n] - black[c4])); maxval = std::max(maxval, tempval); } } // now we have the max value for the channel // if it clips, calculate factor to avoid clipping - if (maxval + fblack[c4] >= ri->get_white(c4)) { + if (maxval + black[c4] >= ri->get_white(c4)) { if (!clippedBefore) { - limitFactor = std::min(limitFactor, ri->get_white(c4) / (maxval + fblack[c4])); + limitFactor = std::min(limitFactor, ri->get_white(c4) / (maxval + black[c4])); } else { limitFactor = 1.f; } @@ -361,8 +360,8 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra const vfloat refcolorv[2] = {_mm_set_ps(refcolor[0][1], refcolor[0][0], refcolor[0][1], refcolor[0][0]), _mm_set_ps(refcolor[1][1], refcolor[1][0], refcolor[1][1], refcolor[1][0]) }; - const vfloat blackv[2] = {_mm_set_ps(fblack[c4[0][1]], fblack[c4[0][0]], fblack[c4[0][1]], fblack[c4[0][0]]), - _mm_set_ps(fblack[c4[1][1]], fblack[c4[1][0]], fblack[c4[1][1]], fblack[c4[1][0]]) + const vfloat blackv[2] = {_mm_set_ps(black[c4[0][1]], black[c4[0][0]], black[c4[0][1]], black[c4[0][0]]), + _mm_set_ps(black[c4[1][1]], black[c4[1][0]], black[c4[1][1]], black[c4[1][0]]) }; const vfloat onev = F2V(1.f); @@ -389,9 +388,9 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra #endif for (; col < W; ++col) { - const float blur = cfablur[row * W + col] - fblack[c4[row & 1][col & 1]]; + const float blur = cfablur[row * W + col] - black[c4[row & 1][col & 1]]; const float vignettecorr = blur <= minValue ? 1.f : refcolor[row & 1][col & 1] / blur; - rawData[row][col] = (rawData[row][col] - fblack[c4[row & 1][col & 1]]) * vignettecorr + fblack[c4[row & 1][col & 1]]; + rawData[row][col] = (rawData[row][col] - black[c4[row & 1][col & 1]]) * vignettecorr + black[c4[row & 1][col & 1]]; } } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { @@ -404,7 +403,7 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra const int row = 2 * (H >> 2) + m; const int col = 2 * (W >> 2) + n; const int c = riFlatFile->XTRANSFC(row, col); - refcolor[c] += std::max(0.0f, cfablur[row * W + col] - fblack[c]); + refcolor[c] += std::max(0.0f, cfablur[row * W + col] - black[c]); cCount[c] ++; } @@ -430,14 +429,14 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra clippedBefore = true; break; } - const float tempval = (rawVal - fblack[0]) * (refcolor[ri->XTRANSFC(row, col)] / std::max(1e-5f, cfablur[(row) * W + col] - fblack[0])); + const float tempval = (rawVal - black[0]) * (refcolor[ri->XTRANSFC(row, col)] / std::max(1e-5f, cfablur[(row) * W + col] - black[0])); maxval = std::max(maxval, tempval); } } // there's only one white level for xtrans - if (!clippedBefore && maxval + fblack[0] > ri->get_white(0)) { - limitFactor = ri->get_white(0) / (maxval + fblack[0]); + if (!clippedBefore && maxval + black[0] > ri->get_white(0)) { + limitFactor = ri->get_white(0) / (maxval + black[0]); flatFieldAutoClipValue = (1.f - limitFactor) * 100.f; // this value can be used to set the clip control slider in gui } } else { @@ -458,9 +457,9 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra for (int row = 0; row < H; ++row) { for (int col = 0; col < W; ++col) { const int c = ri->XTRANSFC(row, col); - const float blur = cfablur[(row) * W + col] - fblack[c]; + const float blur = cfablur[(row) * W + col] - black[c]; const float vignettecorr = blur <= minValue ? 1.f : refcolor[c] / blur; - rawData[row][col] = (rawData[row][col] - fblack[c]) * vignettecorr + fblack[c]; + rawData[row][col] = (rawData[row][col] - black[c]) * vignettecorr + black[c]; } } } @@ -488,8 +487,8 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra } #ifdef __SSE2__ - const vfloat blackv[2] = {_mm_set_ps(fblack[c4[0][1]], fblack[c4[0][0]], fblack[c4[0][1]], fblack[c4[0][0]]), - _mm_set_ps(fblack[c4[1][1]], fblack[c4[1][0]], fblack[c4[1][1]], fblack[c4[1][0]]) + const vfloat blackv[2] = {_mm_set_ps(black[c4[0][1]], black[c4[0][0]], black[c4[0][1]], black[c4[0][0]]), + _mm_set_ps(black[c4[1][1]], black[c4[1][0]], black[c4[1][1]], black[c4[1][0]]) }; const vfloat epsv = F2V(1e-5f); @@ -513,9 +512,9 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra #endif for (; col < W; ++col) { - const float linecorr = SQR(std::max(1e-5f, cfablur[row * W + col] - fblack[c4[row & 1][col & 1]])) / - (std::max(1e-5f, cfablur1[row * W + col] - fblack[c4[row & 1][col & 1]]) * std::max(1e-5f, cfablur2[row * W + col] - fblack[c4[row & 1][col & 1]])); - rawData[row][col] = (rawData[row][col] - fblack[c4[row & 1][col & 1]]) * linecorr + fblack[c4[row & 1][col & 1]]; + const float linecorr = SQR(std::max(1e-5f, cfablur[row * W + col] - black[c4[row & 1][col & 1]])) / + (std::max(1e-5f, cfablur1[row * W + col] - black[c4[row & 1][col & 1]]) * std::max(1e-5f, cfablur2[row * W + col] - black[c4[row & 1][col & 1]])); + rawData[row][col] = (rawData[row][col] - black[c4[row & 1][col & 1]]) * linecorr + black[c4[row & 1][col & 1]]; } } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { @@ -526,9 +525,9 @@ void RawImageSource::processFlatField(const procparams::RAWParams &raw, const Ra for (int row = 0; row < H; ++row) { for (int col = 0; col < W; ++col) { const int c = ri->XTRANSFC(row, col); - const float hlinecorr = std::max(1e-5f, cfablur[(row) * W + col] - fblack[c]) / std::max(1e-5f, cfablur1[(row) * W + col] - fblack[c]); - const float vlinecorr = std::max(1e-5f, cfablur[(row) * W + col] - fblack[c]) / std::max(1e-5f, cfablur2[(row) * W + col] - fblack[c]); - rawData[row][col] = (rawData[row][col] - fblack[c]) * hlinecorr * vlinecorr + fblack[c]; + const float hlinecorr = std::max(1e-5f, cfablur[(row) * W + col] - black[c]) / std::max(1e-5f, cfablur1[(row) * W + col] - black[c]); + const float vlinecorr = std::max(1e-5f, cfablur[(row) * W + col] - black[c]) / std::max(1e-5f, cfablur2[(row) * W + col] - black[c]); + rawData[row][col] = (rawData[row][col] - black[c]) * hlinecorr * vlinecorr + black[c]; } } } diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index d00812d88..e7b431141 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -42,7 +42,7 @@ #include "../rtgui/options.h" //#define BENCHMARK -//#include "StopWatch.h" +#include "StopWatch.h" #ifdef _OPENMP #include @@ -2397,11 +2397,10 @@ void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) */ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, RawImage *riDark, RawImage *riFlatFile, array2D &rawData ) { - // TODO: Change type of black[] to float to avoid conversions - unsigned short black[4] = { - (unsigned short)ri->get_cblack(0), (unsigned short)ri->get_cblack(1), - (unsigned short)ri->get_cblack(2), (unsigned short)ri->get_cblack(3) - }; + const float black[4] = { + static_cast(ri->get_cblack(0)), static_cast(ri->get_cblack(1)), + static_cast(ri->get_cblack(2)), static_cast(ri->get_cblack(3)) + }; if (ri->getSensorType() == ST_BAYER || ri->getSensorType() == ST_FUJI_XTRANS) { if (!rawData) { @@ -2409,11 +2408,19 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, Raw } if (riDark && W == riDark->get_width() && H == riDark->get_height()) { // This works also for xtrans-sensors, because black[0] to black[4] are equal for these + StopWatch Stop1("darkframe subtraction"); for (int row = 0; row < H; row++) { - for (int col = 0; col < W; col++) { - int c = FC(row, col); - int c4 = ( c == 1 && !(row & 1) ) ? 3 : c; - rawData[row][col] = max(src->data[row][col] + black[c4] - riDark->data[row][col], 0.0f); + const int c0 = FC(row, 0); + const float black0 = black[(c0 == 1 && !(row & 1) ) ? 3 : c0]; + const int c1 = FC(row, 1); + const float black1 = black[(c1 == 1 && !(row & 1) ) ? 3 : c1]; + int col; + for (col = 0; col < W - 1; col += 2) { + rawData[row][col] = max(src->data[row][col] + black0 - riDark->data[row][col], 0.0f); + rawData[row][col + 1] = max(src->data[row][col + 1] + black1 - riDark->data[row][col + 1], 0.0f); + } + if (col < W) { + rawData[row][col] = max(src->data[row][col] + black0 - riDark->data[row][col], 0.0f); } } } else { diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 28cf30010..bd460c61b 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -136,7 +136,7 @@ public: return rgbSourceModified; // tracks whether cached rgb output of demosaic has been modified } - void processFlatField(const procparams::RAWParams &raw, const RawImage *riFlatFile, const unsigned short black[4]); + void processFlatField(const procparams::RAWParams &raw, const RawImage *riFlatFile, const float black[4]); void copyOriginalPixels(const procparams::RAWParams &raw, RawImage *ri, RawImage *riDark, RawImage *riFlatFile, array2D &rawData ); void scaleColors (int winx, int winy, int winw, int winh, const procparams::RAWParams &raw, array2D &rawData); // raw for cblack From b2cfb457ccff2d3c5887e55fc1bbc57715d374ba Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 24 Dec 2019 19:07:32 +0100 Subject: [PATCH 112/453] multithread darkframe subtraction, #5582 --- rtengine/rawimagesource.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index e7b431141..18fc18f58 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -2409,6 +2409,9 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, Raw if (riDark && W == riDark->get_width() && H == riDark->get_height()) { // This works also for xtrans-sensors, because black[0] to black[4] are equal for these StopWatch Stop1("darkframe subtraction"); +#ifdef _OPENMP + #pragma omp parallel for +#endif for (int row = 0; row < H; row++) { const int c0 = FC(row, 0); const float black0 = black[(c0 == 1 && !(row & 1) ) ? 3 : c0]; From a62b0f8040a1e9cb7fdb49c9ead8ff70176261bb Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 28 Dec 2019 13:05:18 +0100 Subject: [PATCH 113/453] Use gtk_show_uri, fixes #5578, thanks to @Floessie for the patch --- rtgui/rtwindow.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 4c6dc753f..514685a16 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -921,7 +921,8 @@ void RTWindow::writeToolExpandedStatus (std::vector &tpOpen) void RTWindow::showRawPedia() { - show_uri("https://rawpedia.rawtherapee.com/", GDK_CURRENT_TIME); + GError* gerror = nullptr; + gtk_show_uri(nullptr, "https://rawpedia.rawtherapee.com/", GDK_CURRENT_TIME, &gerror); } void RTWindow::showICCProfileCreator () From f501ec63989f7ea316cf30f8e4b0f16961b6554a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 28 Dec 2019 13:19:45 +0100 Subject: [PATCH 114/453] Simplify copyAndClampLine, make in place transformations when gamutwarning is disabled --- rtengine/iplab2rgb.cc | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/rtengine/iplab2rgb.cc b/rtengine/iplab2rgb.cc index 1d3f2f494..e366184b0 100644 --- a/rtengine/iplab2rgb.cc +++ b/rtengine/iplab2rgb.cc @@ -38,14 +38,8 @@ namespace { inline void copyAndClampLine(const float *src, unsigned char *dst, const int W) { - for (int j = 0, iy = 0; j < W; ++j) { - float r = src[iy] * MAXVALF; - float g = src[iy+1] * MAXVALF; - float b = src[iy+2] * MAXVALF; - dst[iy] = uint16ToUint8Rounded(CLIP(r)); - dst[iy+1] = uint16ToUint8Rounded(CLIP(g)); - dst[iy+2] = uint16ToUint8Rounded(CLIP(b)); - iy += 3; + for (int j = 0; j < W * 3; ++j) { + dst[j] = uint16ToUint8Rounded(CLIP(src[j] * MAXVALF)); } } @@ -90,8 +84,8 @@ void ImProcFunctions::lab2monitorRgb(LabImage* lab, Image8* image) { if (monitorTransform) { - int W = lab->W; - int H = lab->H; + const int W = lab->W; + const int H = lab->H; unsigned char * data = image->data; // cmsDoTransform is relatively expensive @@ -100,18 +94,19 @@ void ImProcFunctions::lab2monitorRgb(LabImage* lab, Image8* image) #endif { AlignedBuffer pBuf(3 * lab->W); - AlignedBuffer mBuf(3 * lab->W); + AlignedBuffer mBuf; AlignedBuffer gwBuf1; AlignedBuffer gwBuf2; if (gamutWarning) { gwBuf1.resize(3 * lab->W); gwBuf2.resize(3 * lab->W); + mBuf.resize(3 * lab->W); } float *buffer = pBuf.data; - float *outbuffer = mBuf.data; + float *outbuffer = gamutWarning ? mBuf.data : pBuf.data; // make in place transformations when gamutWarning is not needed #ifdef _OPENMP #pragma omp for schedule(dynamic,16) @@ -132,7 +127,7 @@ void ImProcFunctions::lab2monitorRgb(LabImage* lab, Image8* image) buffer[iy++] = rb[j] / 327.68f; } - cmsDoTransform (monitorTransform, buffer, outbuffer, W); + cmsDoTransform(monitorTransform, buffer, outbuffer, W); copyAndClampLine(outbuffer, data + ix, W); if (gamutWarning) { From 37deb083c57937682cbc8d51ce5921cc8367318f Mon Sep 17 00:00:00 2001 From: rfranke Date: Sun, 29 Dec 2019 16:57:41 +0100 Subject: [PATCH 115/453] Expand subfolders in directory browser, see #3198 --- rtgui/dirbrowser.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index 669528ac1..ca281f80e 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -383,8 +383,10 @@ void DirBrowser::row_activated (const Gtk::TreeModel::Path& path, Gtk::TreeViewC Glib::ustring dname = dirTreeModel->get_iter (path)->get_value (dtColumns.dirname); - if (Glib::file_test (dname, Glib::FILE_TEST_IS_DIR)) + if (Glib::file_test (dname, Glib::FILE_TEST_IS_DIR)) { dirSelectionSignal (dname, Glib::ustring()); + dirtree->expand_row(path, false); + } } Gtk::TreePath DirBrowser::expandToDir (const Glib::ustring& absDirPath) From 3020f7dba4c75eb8477e3d754957e4315c5c7fea Mon Sep 17 00:00:00 2001 From: rfranke Date: Mon, 30 Dec 2019 06:00:31 +0100 Subject: [PATCH 116/453] Expand directories without subdirectories as well This lets the triangle disappear to indicate an expanded state with no subdirectories. --- rtgui/dirbrowser.cc | 46 +++++++++++++++++++++------------------------ 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/rtgui/dirbrowser.cc b/rtgui/dirbrowser.cc index ca281f80e..10ef61566 100644 --- a/rtgui/dirbrowser.cc +++ b/rtgui/dirbrowser.cc @@ -293,36 +293,32 @@ void DirBrowser::row_expanded (const Gtk::TreeModel::iterator& iter, const Gtk:: auto dir = Gio::File::create_for_path (iter->get_value (dtColumns.dirname)); auto subDirs = listSubDirs (dir, options.fbShowHidden); - if (subDirs.empty()) { - dirtree->collapse_row(path); - } else { - Gtk::TreeNodeChildren children = iter->children(); - std::list forErase(children.begin(), children.end()); + Gtk::TreeNodeChildren children = iter->children(); + std::list forErase(children.begin(), children.end()); - std::sort (subDirs.begin (), subDirs.end (), [] (const Glib::ustring& firstDir, const Glib::ustring& secondDir) - { - switch (options.dirBrowserSortType) { - default: - case Gtk::SORT_ASCENDING: - return firstDir < secondDir; - case Gtk::SORT_DESCENDING: - return firstDir > secondDir; - } - }); - - for (auto it = subDirs.begin(), end = subDirs.end(); it != end; ++it) { - addDir(iter, *it); + std::sort (subDirs.begin (), subDirs.end (), [] (const Glib::ustring& firstDir, const Glib::ustring& secondDir) + { + switch (options.dirBrowserSortType) { + default: + case Gtk::SORT_ASCENDING: + return firstDir < secondDir; + case Gtk::SORT_DESCENDING: + return firstDir > secondDir; } + }); - for (auto it = forErase.begin(), end = forErase.end(); it != end; ++it) { - dirTreeModel->erase(*it); - } - - dirTreeModel->set_sort_column(prevSortColumn, prevSortType); - - expandSuccess = true; + for (auto it = subDirs.begin(), end = subDirs.end(); it != end; ++it) { + addDir(iter, *it); } + for (auto it = forErase.begin(), end = forErase.end(); it != end; ++it) { + dirTreeModel->erase(*it); + } + + dirTreeModel->set_sort_column(prevSortColumn, prevSortType); + + expandSuccess = true; + Glib::RefPtr monitor = dir->monitor_directory (); iter->set_value (dtColumns.monitor, monitor); monitor->signal_changed().connect (sigc::bind(sigc::mem_fun(*this, &DirBrowser::file_changed), iter, dir->get_parse_name())); From d17f71eb72216ab0e7c196408064006ad45bf519 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 30 Dec 2019 15:27:17 +0100 Subject: [PATCH 117/453] Applying geometric transformations leads to dark artifacts in combination with capture sharpening, fixes #5588 --- rtengine/iptransform.cc | 140 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 132 insertions(+), 8 deletions(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index af513536e..736fa0620 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -111,6 +111,31 @@ inline void interpolateTransformCubic(rtengine::Imagefloat* src, int xs, int ys, g = vhadd(weight * gv); b = vhadd(weight * bv); } + +inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int ys, float Dx, float Dy, float &r, float &g, float &b, float mul) +{ + constexpr float A = -0.85f; + + // Vertical + const float t1Vert = A * (Dy - Dy * Dy); + const float t2Vert = (3.f - 2.f * Dy) * Dy * Dy; + const vfloat w3Vert = F2V(t1Vert * Dy); + const vfloat w2Vert = F2V(t1Vert * Dy - t1Vert + t2Vert); + const vfloat w1Vert = F2V(1.f - (t1Vert * Dy) - t2Vert); + const vfloat w0Vert = F2V(t1Vert - (t1Vert * Dy)); + + const vfloat rv = (w0Vert * xlogf(LVFU(src->r(ys, xs))) + w1Vert * xlogf(LVFU(src->r(ys + 1, xs)))) + (w2Vert * xlogf(LVFU(src->r(ys + 2, xs))) + w3Vert * xlogf(LVFU(src->r(ys + 3, xs)))); + const vfloat gv = (w0Vert * xlogf(LVFU(src->g(ys, xs))) + w1Vert * xlogf(LVFU(src->g(ys + 1, xs)))) + (w2Vert * xlogf(LVFU(src->g(ys + 2, xs))) + w3Vert * xlogf(LVFU(src->g(ys + 3, xs)))); + const vfloat bv = (w0Vert * xlogf(LVFU(src->b(ys, xs))) + w1Vert * xlogf(LVFU(src->b(ys + 1, xs)))) + (w2Vert * xlogf(LVFU(src->b(ys + 2, xs))) + w3Vert * xlogf(LVFU(src->b(ys + 3, xs)))); + + // Horizontal + const float t1Hor = A * (Dx - Dx * Dx); + const float t2Hor = (3.f - 2.f * Dx) * Dx * Dx; + const vfloat weight = _mm_set_ps(t1Hor * Dx, t1Hor * Dx - t1Hor + t2Hor, 1.f - (t1Hor * Dx) - t2Hor, t1Hor - (t1Hor * Dx)); + r = mul * xexpf(vhadd(weight * rv)); + g = mul * xexpf(vhadd(weight * gv)); + b = mul * xexpf(vhadd(weight * bv)); +} #else inline void interpolateTransformCubic(rtengine::Imagefloat* src, int xs, int ys, float Dx, float Dy, float &r, float &g, float &b, float mul) { @@ -143,6 +168,38 @@ inline void interpolateTransformCubic(rtengine::Imagefloat* src, int xs, int ys, g = mul * (gv[0] * w0Hor + gv[1] * w1Hor + gv[2] * w2Hor + gv[3] * w3Hor); b = mul * (bv[0] * w0Hor + bv[1] * w1Hor + bv[2] * w2Hor + bv[3] * w3Hor); } + +inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int ys, float Dx, float Dy, float &r, float &g, float &b, float mul) +{ + constexpr float A = -0.85f; + + // Vertical + const float t1Vert = A * (Dy - Dy * Dy); + const float t2Vert = (3.f - 2.f * Dy) * Dy * Dy; + const float w3Vert = t1Vert * Dy; + const float w2Vert = t1Vert * Dy - t1Vert + t2Vert; + const float w1Vert = 1.f - (t1Vert * Dy) - t2Vert; + const float w0Vert = t1Vert - (t1Vert * Dy); + + float rv[4], gv[4], bv[4]; + for (int i = 0; i < 4; ++i) { + rv[i] = w0Vert * xlogf(src->r(ys, xs + i)) + w1Vert * xlogf(src->r(ys + 1, xs + i)) + w2Vert * xlogf(src->r(ys + 2, xs + i)) + w3Vert * xlogf(src->r(ys + 3, xs + i)); + gv[i] = w0Vert * xlogf(src->g(ys, xs + i)) + w1Vert * xlogf(src->g(ys + 1, xs + i)) + w2Vert * xlogf(src->g(ys + 2, xs + i)) + w3Vert * xlogf(src->g(ys + 3, xs + i)); + bv[i] = w0Vert * xlogf(src->b(ys, xs + i)) + w1Vert * xlogf(src->b(ys + 1, xs + i)) + w2Vert * xlogf(src->b(ys + 2, xs + i)) + w3Vert * xlogf(src->b(ys + 3, xs + i)); + } + + // Horizontal + const float t1Hor = A * (Dx - Dx * Dx); + const float t2Hor = (3.f - 2.f * Dx) * Dx * Dx; + const float w3Hor = t1Hor * Dx; + const float w2Hor = t1Hor * Dx - t1Hor + t2Hor; + const float w1Hor = 1.f - (t1Hor * Dx) - t2Hor; + const float w0Hor = t1Hor - (t1Hor * Dx); + + r = mul * xexpf(rv[0] * w0Hor + rv[1] * w1Hor + rv[2] * w2Hor + rv[3] * w3Hor); + g = mul * xexpf(gv[0] * w0Hor + gv[1] * w1Hor + gv[2] * w2Hor + gv[3] * w3Hor); + b = mul * xexpf(bv[0] * w0Hor + bv[1] * w1Hor + bv[2] * w2Hor + bv[3] * w3Hor); +} #endif #ifdef __SSE2__ inline void interpolateTransformChannelsCubic(const float* const* src, int xs, int ys, float Dx, float Dy, float& dest, float mul) @@ -165,6 +222,27 @@ inline void interpolateTransformChannelsCubic(const float* const* src, int xs, i const vfloat weight = _mm_set_ps(t1Hor * Dx, t1Hor * Dx - t1Hor + t2Hor, 1.f - (t1Hor * Dx) - t2Hor, t1Hor - (t1Hor * Dx)); dest = mul * vhadd(weight * cv); } + +inline void interpolateTransformChannelsCubicLog(const float* const* src, int xs, int ys, float Dx, float Dy, float& dest, float mul) +{ + constexpr float A = -0.85f; + + // Vertical + const float t1Vert = A * (Dy - Dy * Dy); + const float t2Vert = (3.f - 2.f * Dy) * Dy * Dy; + const vfloat w3Vert = F2V(t1Vert * Dy); + const vfloat w2Vert = F2V(t1Vert * Dy - t1Vert + t2Vert); + const vfloat w1Vert = F2V(1.f - (t1Vert * Dy) - t2Vert); + const vfloat w0Vert = F2V(t1Vert - (t1Vert * Dy)); + + const vfloat cv = (w0Vert * xlogf(LVFU(src[ys][xs])) + w1Vert * xlogf(LVFU(src[ys + 1][xs]))) + (w2Vert * xlogf(LVFU(src[ys + 2][xs])) + w3Vert * xlogf(LVFU(src[ys + 3][xs]))); + + // Horizontal + const float t1Hor = A * (Dx - Dx * Dx); + const float t2Hor = (3.f - 2.f * Dx) * Dx * Dx; + const vfloat weight = _mm_set_ps(t1Hor * Dx, t1Hor * Dx - t1Hor + t2Hor, 1.f - (t1Hor * Dx) - t2Hor, t1Hor - (t1Hor * Dx)); + dest = mul * xexpf(vhadd(weight * cv)); +} #else inline void interpolateTransformChannelsCubic(const float* const* src, int xs, int ys, float Dx, float Dy, float& dest, float mul) { @@ -193,6 +271,34 @@ inline void interpolateTransformChannelsCubic(const float* const* src, int xs, i dest = mul * (cv[0] * w0Hor + cv[1] * w1Hor + cv[2] * w2Hor + cv[3] * w3Hor); } + +inline void interpolateTransformChannelsCubicLog(const float* const* src, int xs, int ys, float Dx, float Dy, float& dest, float mul) +{ + constexpr float A = -0.85f; + + // Vertical + const float t1Vert = A * (Dy - Dy * Dy); + const float t2Vert = (3.f - 2.f * Dy) * Dy * Dy; + const float w3Vert = t1Vert * Dy; + const float w2Vert = t1Vert * Dy - t1Vert + t2Vert; + const float w1Vert = 1.f - (t1Vert * Dy) - t2Vert; + const float w0Vert = t1Vert - (t1Vert * Dy); + + float cv[4]; + for (int i = 0; i < 4; ++i) { + cv[i] = w0Vert * xlogf(src[ys][xs + i]) + w1Vert * xlogf(src[ys + 1][xs + i]) + w2Vert * xlogf(src[ys + 2][xs + i]) + w3Vert * xlogf(src[ys + 3][xs + i]); + } + + // Horizontal + const float t1Hor = A * (Dx - Dx * Dx); + const float t2Hor = (3.f - 2.f * Dx) * Dx * Dx; + const float w3Hor = t1Hor * Dx; + const float w2Hor = t1Hor * Dx - t1Hor + t2Hor; + const float w1Hor = 1.f - (t1Hor * Dx) - t2Hor; + const float w0Hor = t1Hor - (t1Hor * Dx); + + dest = mul * xexpf(cv[0] * w0Hor + cv[1] * w1Hor + cv[2] * w2Hor + cv[3] * w3Hor); +} #endif } @@ -922,6 +1028,7 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I const double ascale = params->commonTrans.autofill ? getTransformAutoFill(oW, oH, pLCPMap) : 1.0; const bool darkening = (params->vignetting.amount <= 0.0); + const bool useLog = params->pdsharpening.enabled; const double centerFactorx = cx - w2; const double centerFactory = cy - h2; @@ -1011,14 +1118,26 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I if (yc > 0 && yc < original->getHeight() - 2 && xc > 0 && xc < original->getWidth() - 2) { // all interpolation pixels inside image - if (enableCA) { - interpolateTransformChannelsCubic(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], vignmul); - } else if (!highQuality) { - transformed->r(y, x) = vignmul * (original->r(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->r(yc, xc + 1) * Dx * (1.0 - Dy) + original->r(yc + 1, xc) * (1.0 - Dx) * Dy + original->r(yc + 1, xc + 1) * Dx * Dy); - transformed->g(y, x) = vignmul * (original->g(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->g(yc, xc + 1) * Dx * (1.0 - Dy) + original->g(yc + 1, xc) * (1.0 - Dx) * Dy + original->g(yc + 1, xc + 1) * Dx * Dy); - transformed->b(y, x) = vignmul * (original->b(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->b(yc, xc + 1) * Dx * (1.0 - Dy) + original->b(yc + 1, xc) * (1.0 - Dx) * Dy + original->b(yc + 1, xc + 1) * Dx * Dy); + if (!useLog) { + if (enableCA) { + interpolateTransformChannelsCubic(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], vignmul); + } else if (!highQuality) { + transformed->r(y, x) = vignmul * (original->r(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->r(yc, xc + 1) * Dx * (1.0 - Dy) + original->r(yc + 1, xc) * (1.0 - Dx) * Dy + original->r(yc + 1, xc + 1) * Dx * Dy); + transformed->g(y, x) = vignmul * (original->g(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->g(yc, xc + 1) * Dx * (1.0 - Dy) + original->g(yc + 1, xc) * (1.0 - Dx) * Dy + original->g(yc + 1, xc + 1) * Dx * Dy); + transformed->b(y, x) = vignmul * (original->b(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->b(yc, xc + 1) * Dx * (1.0 - Dy) + original->b(yc + 1, xc) * (1.0 - Dx) * Dy + original->b(yc + 1, xc + 1) * Dx * Dy); + } else { + interpolateTransformCubic(original, xc - 1, yc - 1, Dx, Dy, transformed->r(y, x), transformed->g(y, x), transformed->b(y, x), vignmul); + } } else { - interpolateTransformCubic(original, xc - 1, yc - 1, Dx, Dy, transformed->r(y, x), transformed->g(y, x), transformed->b(y, x), vignmul); + if (enableCA) { + interpolateTransformChannelsCubicLog(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], vignmul); + } else if (!highQuality) { + transformed->r(y, x) = vignmul * (original->r(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->r(yc, xc + 1) * Dx * (1.0 - Dy) + original->r(yc + 1, xc) * (1.0 - Dx) * Dy + original->r(yc + 1, xc + 1) * Dx * Dy); + transformed->g(y, x) = vignmul * (original->g(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->g(yc, xc + 1) * Dx * (1.0 - Dy) + original->g(yc + 1, xc) * (1.0 - Dx) * Dy + original->g(yc + 1, xc + 1) * Dx * Dy); + transformed->b(y, x) = vignmul * (original->b(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->b(yc, xc + 1) * Dx * (1.0 - Dy) + original->b(yc + 1, xc) * (1.0 - Dx) * Dy + original->b(yc + 1, xc + 1) * Dx * Dy); + } else { + interpolateTransformCubicLog(original, xc - 1, yc - 1, Dx, Dy, transformed->r(y, x), transformed->g(y, x), transformed->b(y, x), vignmul); + } } } else { // edge pixels @@ -1054,6 +1173,7 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *transformed, int cx, int cy, const LensCorrection *pLCPMap) { assert(pLCPMap && params->lensProf.useCA && pLCPMap->isCACorrectionAvailable()); + const bool useLog = params->pdsharpening.enabled; float** chOrig[3]; chOrig[0] = original->r.ptrs; @@ -1089,7 +1209,11 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans // multiplier for vignetting correction if (yc > 0 && yc < original->getHeight() - 2 && xc > 0 && xc < original->getWidth() - 2) { // all interpolation pixels inside image - interpolateTransformChannelsCubic (chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], 1.0); + if (!useLog) { + interpolateTransformChannelsCubic(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], 1.0); + } else { + interpolateTransformChannelsCubicLog(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], 1.0); + } } else { // edge pixels int y1 = LIM (yc, 0, original->getHeight() - 1); From bcb7df44dfe5c8507ea4b7ac7cde319ec51ac501 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 31 Dec 2019 15:23:24 +0100 Subject: [PATCH 118/453] Log transform: fix segfault --- rtengine/iptransform.cc | 30 +++++++++++++----------------- rtengine/sleef.h | 24 ++++++++++++++++++++++++ rtengine/sleefsseavx.c | 24 ++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 17 deletions(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 736fa0620..77fa57985 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -124,9 +124,9 @@ inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int const vfloat w1Vert = F2V(1.f - (t1Vert * Dy) - t2Vert); const vfloat w0Vert = F2V(t1Vert - (t1Vert * Dy)); - const vfloat rv = (w0Vert * xlogf(LVFU(src->r(ys, xs))) + w1Vert * xlogf(LVFU(src->r(ys + 1, xs)))) + (w2Vert * xlogf(LVFU(src->r(ys + 2, xs))) + w3Vert * xlogf(LVFU(src->r(ys + 3, xs)))); - const vfloat gv = (w0Vert * xlogf(LVFU(src->g(ys, xs))) + w1Vert * xlogf(LVFU(src->g(ys + 1, xs)))) + (w2Vert * xlogf(LVFU(src->g(ys + 2, xs))) + w3Vert * xlogf(LVFU(src->g(ys + 3, xs)))); - const vfloat bv = (w0Vert * xlogf(LVFU(src->b(ys, xs))) + w1Vert * xlogf(LVFU(src->b(ys + 1, xs)))) + (w2Vert * xlogf(LVFU(src->b(ys + 2, xs))) + w3Vert * xlogf(LVFU(src->b(ys + 3, xs)))); + const vfloat rv = (w0Vert * xlogf1(LVFU(src->r(ys, xs))) + w1Vert * xlogf1(LVFU(src->r(ys + 1, xs)))) + (w2Vert * xlogf1(LVFU(src->r(ys + 2, xs))) + w3Vert * xlogf1(LVFU(src->r(ys + 3, xs)))); + const vfloat gv = (w0Vert * xlogf1(LVFU(src->g(ys, xs))) + w1Vert * xlogf1(LVFU(src->g(ys + 1, xs)))) + (w2Vert * xlogf1(LVFU(src->g(ys + 2, xs))) + w3Vert * xlogf1(LVFU(src->g(ys + 3, xs)))); + const vfloat bv = (w0Vert * xlogf1(LVFU(src->b(ys, xs))) + w1Vert * xlogf1(LVFU(src->b(ys + 1, xs)))) + (w2Vert * xlogf1(LVFU(src->b(ys + 2, xs))) + w3Vert * xlogf1(LVFU(src->b(ys + 3, xs)))); // Horizontal const float t1Hor = A * (Dx - Dx * Dx); @@ -183,9 +183,9 @@ inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int float rv[4], gv[4], bv[4]; for (int i = 0; i < 4; ++i) { - rv[i] = w0Vert * xlogf(src->r(ys, xs + i)) + w1Vert * xlogf(src->r(ys + 1, xs + i)) + w2Vert * xlogf(src->r(ys + 2, xs + i)) + w3Vert * xlogf(src->r(ys + 3, xs + i)); - gv[i] = w0Vert * xlogf(src->g(ys, xs + i)) + w1Vert * xlogf(src->g(ys + 1, xs + i)) + w2Vert * xlogf(src->g(ys + 2, xs + i)) + w3Vert * xlogf(src->g(ys + 3, xs + i)); - bv[i] = w0Vert * xlogf(src->b(ys, xs + i)) + w1Vert * xlogf(src->b(ys + 1, xs + i)) + w2Vert * xlogf(src->b(ys + 2, xs + i)) + w3Vert * xlogf(src->b(ys + 3, xs + i)); + rv[i] = w0Vert * xlogf1(src->r(ys, xs + i)) + w1Vert * xlogf1(src->r(ys + 1, xs + i)) + w2Vert * xlogf1(src->r(ys + 2, xs + i)) + w3Vert * xlogf1(src->r(ys + 3, xs + i)); + gv[i] = w0Vert * xlogf1(src->g(ys, xs + i)) + w1Vert * xlogf1(src->g(ys + 1, xs + i)) + w2Vert * xlogf1(src->g(ys + 2, xs + i)) + w3Vert * xlogf1(src->g(ys + 3, xs + i)); + bv[i] = w0Vert * xlogf1(src->b(ys, xs + i)) + w1Vert * xlogf1(src->b(ys + 1, xs + i)) + w2Vert * xlogf1(src->b(ys + 2, xs + i)) + w3Vert * xlogf1(src->b(ys + 3, xs + i)); } // Horizontal @@ -235,7 +235,7 @@ inline void interpolateTransformChannelsCubicLog(const float* const* src, int xs const vfloat w1Vert = F2V(1.f - (t1Vert * Dy) - t2Vert); const vfloat w0Vert = F2V(t1Vert - (t1Vert * Dy)); - const vfloat cv = (w0Vert * xlogf(LVFU(src[ys][xs])) + w1Vert * xlogf(LVFU(src[ys + 1][xs]))) + (w2Vert * xlogf(LVFU(src[ys + 2][xs])) + w3Vert * xlogf(LVFU(src[ys + 3][xs]))); + const vfloat cv = (w0Vert * xlogf1(LVFU(src[ys][xs])) + w1Vert * xlogf1(LVFU(src[ys + 1][xs]))) + (w2Vert * xlogf1(LVFU(src[ys + 2][xs])) + w3Vert * xlogf1(LVFU(src[ys + 3][xs]))); // Horizontal const float t1Hor = A * (Dx - Dx * Dx); @@ -286,7 +286,7 @@ inline void interpolateTransformChannelsCubicLog(const float* const* src, int xs float cv[4]; for (int i = 0; i < 4; ++i) { - cv[i] = w0Vert * xlogf(src[ys][xs + i]) + w1Vert * xlogf(src[ys + 1][xs + i]) + w2Vert * xlogf(src[ys + 2][xs + i]) + w3Vert * xlogf(src[ys + 3][xs + i]); + cv[i] = w0Vert * xlogf1(src[ys][xs + i]) + w1Vert * xlogf1(src[ys + 1][xs + i]) + w2Vert * xlogf1(src[ys + 2][xs + i]) + w3Vert * xlogf1(src[ys + 3][xs + i]); } // Horizontal @@ -1118,23 +1118,19 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I if (yc > 0 && yc < original->getHeight() - 2 && xc > 0 && xc < original->getWidth() - 2) { // all interpolation pixels inside image - if (!useLog) { + if (!highQuality) { + transformed->r(y, x) = vignmul * (original->r(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->r(yc, xc + 1) * Dx * (1.0 - Dy) + original->r(yc + 1, xc) * (1.0 - Dx) * Dy + original->r(yc + 1, xc + 1) * Dx * Dy); + transformed->g(y, x) = vignmul * (original->g(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->g(yc, xc + 1) * Dx * (1.0 - Dy) + original->g(yc + 1, xc) * (1.0 - Dx) * Dy + original->g(yc + 1, xc + 1) * Dx * Dy); + transformed->b(y, x) = vignmul * (original->b(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->b(yc, xc + 1) * Dx * (1.0 - Dy) + original->b(yc + 1, xc) * (1.0 - Dx) * Dy + original->b(yc + 1, xc + 1) * Dx * Dy); + } else if (!useLog) { if (enableCA) { interpolateTransformChannelsCubic(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], vignmul); - } else if (!highQuality) { - transformed->r(y, x) = vignmul * (original->r(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->r(yc, xc + 1) * Dx * (1.0 - Dy) + original->r(yc + 1, xc) * (1.0 - Dx) * Dy + original->r(yc + 1, xc + 1) * Dx * Dy); - transformed->g(y, x) = vignmul * (original->g(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->g(yc, xc + 1) * Dx * (1.0 - Dy) + original->g(yc + 1, xc) * (1.0 - Dx) * Dy + original->g(yc + 1, xc + 1) * Dx * Dy); - transformed->b(y, x) = vignmul * (original->b(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->b(yc, xc + 1) * Dx * (1.0 - Dy) + original->b(yc + 1, xc) * (1.0 - Dx) * Dy + original->b(yc + 1, xc + 1) * Dx * Dy); } else { interpolateTransformCubic(original, xc - 1, yc - 1, Dx, Dy, transformed->r(y, x), transformed->g(y, x), transformed->b(y, x), vignmul); } } else { if (enableCA) { interpolateTransformChannelsCubicLog(chOrig[c], xc - 1, yc - 1, Dx, Dy, chTrans[c][y][x], vignmul); - } else if (!highQuality) { - transformed->r(y, x) = vignmul * (original->r(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->r(yc, xc + 1) * Dx * (1.0 - Dy) + original->r(yc + 1, xc) * (1.0 - Dx) * Dy + original->r(yc + 1, xc + 1) * Dx * Dy); - transformed->g(y, x) = vignmul * (original->g(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->g(yc, xc + 1) * Dx * (1.0 - Dy) + original->g(yc + 1, xc) * (1.0 - Dx) * Dy + original->g(yc + 1, xc + 1) * Dx * Dy); - transformed->b(y, x) = vignmul * (original->b(yc, xc) * (1.0 - Dx) * (1.0 - Dy) + original->b(yc, xc + 1) * Dx * (1.0 - Dy) + original->b(yc + 1, xc) * (1.0 - Dx) * Dy + original->b(yc + 1, xc + 1) * Dx * Dy); } else { interpolateTransformCubicLog(original, xc - 1, yc - 1, Dx, Dy, transformed->r(y, x), transformed->g(y, x), transformed->b(y, x), vignmul); } diff --git a/rtengine/sleef.h b/rtengine/sleef.h index 30c059010..7b7d5995f 100644 --- a/rtengine/sleef.h +++ b/rtengine/sleef.h @@ -1206,6 +1206,30 @@ __inline float xlogf(float d) { return x; } +__inline float xlogf1(float d) { // does xlogf(vmaxf(d, 1.f)) but faster + float x, x2, t, m; + int e; + + e = ilogbp1f(d * 0.7071f); + m = ldexpkf(d, -e); + + x = (m-1.0f) / (m+1.0f); + x2 = x * x; + + t = 0.2371599674224853515625f; + t = mlaf(t, x2, 0.285279005765914916992188f); + t = mlaf(t, x2, 0.400005519390106201171875f); + t = mlaf(t, x2, 0.666666567325592041015625f); + t = mlaf(t, x2, 2.0f); + + x = x * t + 0.693147180559945286226764f * e; + + if (xisinff(d)) x = rtengine::RT_INFINITY_F; + if (d <= 1.f) x = 0; + + return x; +} + __inline float xexpf(float d) { if(d<=-104.0f) return 0.0f; diff --git a/rtengine/sleefsseavx.c b/rtengine/sleefsseavx.c index 1982c7c4c..0af516f9b 100644 --- a/rtengine/sleefsseavx.c +++ b/rtengine/sleefsseavx.c @@ -1253,6 +1253,30 @@ static INLINE vfloat xlogf(vfloat d) { return x; } +static INLINE vfloat xlogf1(vfloat d) { // does xlogf(vmaxf(d, 1.f)) but faster + vfloat x, x2, t, m; + vint2 e; + + e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); + m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); + + x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); + x2 = vmulf(x, x); + + t = vcast_vf_f(0.2371599674224853515625f); + t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); + t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); + t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); + t = vmlaf(t, x2, vcast_vf_f(2.0f)); + + x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); + + x = vself(vmaskf_ispinf(d), vcast_vf_f(INFINITYf), x); + x = vselfnotzero(vmaskf_le(d, vcast_vf_f(1.f)), x); + + return x; +} + static INLINE vfloat xlogf0(vfloat d) { vfloat x, x2, t, m; vint2 e; From 58d8e66b7245e63b39c0d92db7775d0ede14cc04 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 31 Dec 2019 19:09:06 +0100 Subject: [PATCH 119/453] Log transform: speedup, #5588 --- rtengine/iptransform.cc | 76 ++++++++++++++++++++++++++++++++--------- 1 file changed, 60 insertions(+), 16 deletions(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 77fa57985..67647b7ef 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -86,6 +86,29 @@ float normn (float a, float b, int n) } } +void logEncode(rtengine::Imagefloat *original, bool multiThread) { + +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic, 16) if(multiThread) +#endif + + for (int y = 0; y < original->getHeight(); ++y) { + int x = 0; +#ifdef __SSE2__ + for (; x < original->getWidth() - 3; x += 4) { + STVFU(original->r(y, x), xlogf1(LVFU(original->r(y, x)))); + STVFU(original->g(y, x), xlogf1(LVFU(original->g(y, x)))); + STVFU(original->b(y, x), xlogf1(LVFU(original->b(y, x)))); + } +#endif + for (; x < original->getWidth(); ++x) { + original->r(y, x) = xlogf1(original->r(y, x)); + original->g(y, x) = xlogf1(original->g(y, x)); + original->b(y, x) = xlogf1(original->b(y, x)); + } + } +} + #ifdef __SSE2__ inline void interpolateTransformCubic(rtengine::Imagefloat* src, int xs, int ys, float Dx, float Dy, float &r, float &g, float &b, float mul) { @@ -124,9 +147,9 @@ inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int const vfloat w1Vert = F2V(1.f - (t1Vert * Dy) - t2Vert); const vfloat w0Vert = F2V(t1Vert - (t1Vert * Dy)); - const vfloat rv = (w0Vert * xlogf1(LVFU(src->r(ys, xs))) + w1Vert * xlogf1(LVFU(src->r(ys + 1, xs)))) + (w2Vert * xlogf1(LVFU(src->r(ys + 2, xs))) + w3Vert * xlogf1(LVFU(src->r(ys + 3, xs)))); - const vfloat gv = (w0Vert * xlogf1(LVFU(src->g(ys, xs))) + w1Vert * xlogf1(LVFU(src->g(ys + 1, xs)))) + (w2Vert * xlogf1(LVFU(src->g(ys + 2, xs))) + w3Vert * xlogf1(LVFU(src->g(ys + 3, xs)))); - const vfloat bv = (w0Vert * xlogf1(LVFU(src->b(ys, xs))) + w1Vert * xlogf1(LVFU(src->b(ys + 1, xs)))) + (w2Vert * xlogf1(LVFU(src->b(ys + 2, xs))) + w3Vert * xlogf1(LVFU(src->b(ys + 3, xs)))); + const vfloat rv = (w0Vert * LVFU(src->r(ys, xs)) + w1Vert * LVFU(src->r(ys + 1, xs))) + (w2Vert * LVFU(src->r(ys + 2, xs)) + w3Vert * LVFU(src->r(ys + 3, xs))); + const vfloat gv = (w0Vert * LVFU(src->g(ys, xs)) + w1Vert * LVFU(src->g(ys + 1, xs))) + (w2Vert * LVFU(src->g(ys + 2, xs)) + w3Vert * LVFU(src->g(ys + 3, xs))); + const vfloat bv = (w0Vert * LVFU(src->b(ys, xs)) + w1Vert * LVFU(src->b(ys + 1, xs))) + (w2Vert * LVFU(src->b(ys + 2, xs)) + w3Vert * LVFU(src->b(ys + 3, xs))); // Horizontal const float t1Hor = A * (Dx - Dx * Dx); @@ -183,9 +206,9 @@ inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int float rv[4], gv[4], bv[4]; for (int i = 0; i < 4; ++i) { - rv[i] = w0Vert * xlogf1(src->r(ys, xs + i)) + w1Vert * xlogf1(src->r(ys + 1, xs + i)) + w2Vert * xlogf1(src->r(ys + 2, xs + i)) + w3Vert * xlogf1(src->r(ys + 3, xs + i)); - gv[i] = w0Vert * xlogf1(src->g(ys, xs + i)) + w1Vert * xlogf1(src->g(ys + 1, xs + i)) + w2Vert * xlogf1(src->g(ys + 2, xs + i)) + w3Vert * xlogf1(src->g(ys + 3, xs + i)); - bv[i] = w0Vert * xlogf1(src->b(ys, xs + i)) + w1Vert * xlogf1(src->b(ys + 1, xs + i)) + w2Vert * xlogf1(src->b(ys + 2, xs + i)) + w3Vert * xlogf1(src->b(ys + 3, xs + i)); + rv[i] = w0Vert * src->r(ys, xs + i) + w1Vert * src->r(ys + 1, xs + i) + w2Vert * src->r(ys + 2, xs + i) + w3Vert * src->r(ys + 3, xs + i); + gv[i] = w0Vert * src->g(ys, xs + i) + w1Vert * src->g(ys + 1, xs + i) + w2Vert * src->g(ys + 2, xs + i) + w3Vert * src->g(ys + 3, xs + i); + bv[i] = w0Vert * src->b(ys, xs + i) + w1Vert * src->b(ys + 1, xs + i) + w2Vert * src->b(ys + 2, xs + i) + w3Vert * src->b(ys + 3, xs + i); } // Horizontal @@ -235,7 +258,7 @@ inline void interpolateTransformChannelsCubicLog(const float* const* src, int xs const vfloat w1Vert = F2V(1.f - (t1Vert * Dy) - t2Vert); const vfloat w0Vert = F2V(t1Vert - (t1Vert * Dy)); - const vfloat cv = (w0Vert * xlogf1(LVFU(src[ys][xs])) + w1Vert * xlogf1(LVFU(src[ys + 1][xs]))) + (w2Vert * xlogf1(LVFU(src[ys + 2][xs])) + w3Vert * xlogf1(LVFU(src[ys + 3][xs]))); + const vfloat cv = (w0Vert * LVFU(src[ys][xs]) + w1Vert * LVFU(src[ys + 1][xs])) + (w2Vert * LVFU(src[ys + 2][xs]) + w3Vert * LVFU(src[ys + 3][xs])); // Horizontal const float t1Hor = A * (Dx - Dx * Dx); @@ -286,7 +309,7 @@ inline void interpolateTransformChannelsCubicLog(const float* const* src, int xs float cv[4]; for (int i = 0; i < 4; ++i) { - cv[i] = w0Vert * xlogf1(src[ys][xs + i]) + w1Vert * xlogf1(src[ys + 1][xs + i]) + w2Vert * xlogf1(src[ys + 2][xs + i]) + w3Vert * xlogf1(src[ys + 3][xs + i]); + cv[i] = w0Vert * src[ys][xs + i] + w1Vert * src[ys + 1][xs + i] + w2Vert * src[ys + 2][xs + i] + w3Vert * src[ys + 3][xs + i]; } // Horizontal @@ -953,6 +976,7 @@ void ImProcFunctions::transformLuminanceOnly (Imagefloat* original, Imagefloat* void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap) { + BENCHFUN // set up stuff, depending on the mode we are const bool enableLCPDist = pLCPMap && params->lensProf.useDist; const bool enableCA = highQuality && needsCA(); @@ -1028,10 +1052,13 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I const double ascale = params->commonTrans.autofill ? getTransformAutoFill(oW, oH, pLCPMap) : 1.0; const bool darkening = (params->vignetting.amount <= 0.0); - const bool useLog = params->pdsharpening.enabled; + const bool useLog = params->pdsharpening.enabled && highQuality; const double centerFactorx = cx - w2; const double centerFactory = cy - h2; + if (useLog) { + logEncode(original, multiThread); + } // main cycle #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) if(multiThread) @@ -1142,12 +1169,22 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I const int x1 = LIM(xc, 0, original->getWidth() - 1); const int x2 = LIM(xc + 1, 0, original->getWidth() - 1); - if (enableCA) { - chTrans[c][y][x] = vignmul * (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + if (useLog) { + if (enableCA) { + chTrans[c][y][x] = vignmul * xexpf(chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + } else { + transformed->r(y, x) = vignmul * xexpf(original->r(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->r(y1, x2) * Dx * (1.0 - Dy) + original->r(y2, x1) * (1.0 - Dx) * Dy + original->r(y2, x2) * Dx * Dy); + transformed->g(y, x) = vignmul * xexpf(original->g(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->g(y1, x2) * Dx * (1.0 - Dy) + original->g(y2, x1) * (1.0 - Dx) * Dy + original->g(y2, x2) * Dx * Dy); + transformed->b(y, x) = vignmul * xexpf(original->b(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->b(y1, x2) * Dx * (1.0 - Dy) + original->b(y2, x1) * (1.0 - Dx) * Dy + original->b(y2, x2) * Dx * Dy); + } } else { - transformed->r(y, x) = vignmul * (original->r(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->r(y1, x2) * Dx * (1.0 - Dy) + original->r(y2, x1) * (1.0 - Dx) * Dy + original->r(y2, x2) * Dx * Dy); - transformed->g(y, x) = vignmul * (original->g(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->g(y1, x2) * Dx * (1.0 - Dy) + original->g(y2, x1) * (1.0 - Dx) * Dy + original->g(y2, x2) * Dx * Dy); - transformed->b(y, x) = vignmul * (original->b(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->b(y1, x2) * Dx * (1.0 - Dy) + original->b(y2, x1) * (1.0 - Dx) * Dy + original->b(y2, x2) * Dx * Dy); + if (enableCA) { + chTrans[c][y][x] = vignmul * (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + } else { + transformed->r(y, x) = vignmul * (original->r(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->r(y1, x2) * Dx * (1.0 - Dy) + original->r(y2, x1) * (1.0 - Dx) * Dy + original->r(y2, x2) * Dx * Dy); + transformed->g(y, x) = vignmul * (original->g(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->g(y1, x2) * Dx * (1.0 - Dy) + original->g(y2, x1) * (1.0 - Dx) * Dy + original->g(y2, x2) * Dx * Dy); + transformed->b(y, x) = vignmul * (original->b(y1, x1) * (1.0 - Dx) * (1.0 - Dy) + original->b(y1, x2) * Dx * (1.0 - Dy) + original->b(y2, x1) * (1.0 - Dx) * Dy + original->b(y2, x2) * Dx * Dy); + } } } } else { @@ -1181,6 +1218,10 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans chTrans[1] = transformed->g.ptrs; chTrans[2] = transformed->b.ptrs; + if (useLog) { + logEncode(original, multiThread); + } + #ifdef _OPENMP #pragma omp parallel for if (multiThread) #endif @@ -1216,8 +1257,11 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans int y2 = LIM (yc + 1, 0, original->getHeight() - 1); int x1 = LIM (xc, 0, original->getWidth() - 1); int x2 = LIM (xc + 1, 0, original->getWidth() - 1); - - chTrans[c][y][x] = (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + if (!useLog) { + chTrans[c][y][x] = (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + } else { + chTrans[c][y][x] = (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + } } } else { // not valid (source pixel x,y not inside source image, etc.) From 399a0055c61b9c03479e36f07a08b2c1d7d70a09 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 31 Dec 2019 20:07:39 +0100 Subject: [PATCH 120/453] Log transform: Fix broken build --- rtengine/iptransform.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 67647b7ef..8d89b96cc 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -976,7 +976,7 @@ void ImProcFunctions::transformLuminanceOnly (Imagefloat* original, Imagefloat* void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap) { - BENCHFUN + // set up stuff, depending on the mode we are const bool enableLCPDist = pLCPMap && params->lensProf.useDist; const bool enableCA = highQuality && needsCA(); From 6302084804b24de7b4bcb44b2e7774464282c15b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 1 Jan 2020 14:52:15 +0100 Subject: [PATCH 121/453] sleef: use our own replacement of rint. Based on code from Alberto Griggio, but further optimized for SSE --- rtengine/sleef.h | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/rtengine/sleef.h b/rtengine/sleef.h index 7b7d5995f..1a953953c 100644 --- a/rtengine/sleef.h +++ b/rtengine/sleef.h @@ -894,6 +894,15 @@ __inline double xlog1p(double a) { #define R_LN2f 1.442695040888963407359924681001892137426645954152985934135449406931f +#ifdef __SSE2__ +__inline int xrintf(float x) { + return _mm_cvt_ss2si(_mm_set_ss(x)); +} +#else +__inline int xrintf(float x) { + return x + (x < 0 ? -0.5f : 0.5f); +} +#endif __inline int32_t floatToRawIntBits(float d) { union { float f; @@ -980,7 +989,7 @@ __inline float xsinf(float d) { int q; float u, s; - q = rint(d * rtengine::RT_1_PI_F); + q = xrintf(d * rtengine::RT_1_PI_F); d = mlaf(q, -PI4_Af*4, d); d = mlaf(q, -PI4_Bf*4, d); @@ -1009,7 +1018,7 @@ __inline float xcosf(float d) { int q; float u, s; - q = 1 + 2*rint(d * rtengine::RT_1_PI_F - 0.5f); + q = 1 + 2*xrintf(d * rtengine::RT_1_PI_F - 0.5f); d = mlaf(q, -PI4_Af*2, d); d = mlaf(q, -PI4_Bf*2, d); @@ -1041,7 +1050,7 @@ __inline float2 xsincosf(float d) { float u, s, t; float2 r; - q = rint(d * rtengine::RT_2_PI_F); + q = xrintf(d * rtengine::RT_2_PI_F); s = d; @@ -1083,7 +1092,7 @@ __inline float xtanf(float d) { int q; float u, s, x; - q = rint(d * (float)(2 * rtengine::RT_1_PI)); + q = xrintf(d * (float)(2 * rtengine::RT_1_PI)); x = d; @@ -1233,7 +1242,7 @@ __inline float xlogf1(float d) { // does xlogf(vmaxf(d, 1.f)) but faster __inline float xexpf(float d) { if(d<=-104.0f) return 0.0f; - int q = rint(d * R_LN2f); + int q = xrintf(d * R_LN2f); float s, u; s = mlaf(q, -L2Uf, d); From 52f7c2c5311b5a43cc6fd499f36b4c325ee59aa7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 1 Jan 2020 15:18:47 +0100 Subject: [PATCH 122/453] Log transform: further speedup --- rtengine/iptransform.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 8d89b96cc..caa5b7e4e 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -155,9 +155,11 @@ inline void interpolateTransformCubicLog(rtengine::Imagefloat* src, int xs, int const float t1Hor = A * (Dx - Dx * Dx); const float t2Hor = (3.f - 2.f * Dx) * Dx * Dx; const vfloat weight = _mm_set_ps(t1Hor * Dx, t1Hor * Dx - t1Hor + t2Hor, 1.f - (t1Hor * Dx) - t2Hor, t1Hor - (t1Hor * Dx)); - r = mul * xexpf(vhadd(weight * rv)); - g = mul * xexpf(vhadd(weight * gv)); - b = mul * xexpf(vhadd(weight * bv)); + const vfloat tempv = _mm_setr_ps(vhadd(weight * rv), vhadd(weight * gv), vhadd(weight * bv), 0.f); + const vfloat resultv = xexpf(tempv); + r = mul * resultv[0]; + g = mul * resultv[1]; + b = mul * resultv[2]; } #else inline void interpolateTransformCubic(rtengine::Imagefloat* src, int xs, int ys, float Dx, float Dy, float &r, float &g, float &b, float mul) From 085c68fc2985b2d556398f78ed411cf985ee67d6 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 1 Jan 2020 19:06:02 +0100 Subject: [PATCH 123/453] Log tranform: fix bug in preview mode --- rtengine/improcfun.h | 6 ++--- rtengine/iptransform.cc | 48 +++++++++++++++++++++++++-------------- rtengine/simpleprocess.cc | 2 +- 3 files changed, 35 insertions(+), 21 deletions(-) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 661f399ef..c1a4a5979 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -84,8 +84,8 @@ class ImProcFunctions void calcVignettingParams(int oW, int oH, const procparams::VignettingParams& vignetting, double &w2, double &h2, double& maxRadius, double &v, double &b, double &mul); void transformLuminanceOnly(Imagefloat* original, Imagefloat* transformed, int cx, int cy, int oW, int oH, int fW, int fH); - void transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap); - void transformLCPCAOnly(Imagefloat *original, Imagefloat *transformed, int cx, int cy, const LensCorrection *pLCPMap); + void transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap, bool useOriginalBuffer); + void transformLCPCAOnly(Imagefloat *original, Imagefloat *transformed, int cx, int cy, const LensCorrection *pLCPMap, bool useOriginalBuffer); bool needsCA() const; bool needsDistortion() const; @@ -156,7 +156,7 @@ public: // void colorCurve (LabImage* lold, LabImage* lnew); void sharpening(LabImage* lab, const procparams::SharpeningParams &sharpenParam, bool showMask = false); void sharpeningcam(CieImage* ncie, float** buffer, bool showMask = false); - void transform(Imagefloat* original, Imagefloat* transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const FramesMetaData *metadata, int rawRotationDeg, bool fullImage); + void transform(Imagefloat* original, Imagefloat* transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const FramesMetaData *metadata, int rawRotationDeg, bool fullImage, bool useOriginalBuffer = false); float resizeScale(const procparams::ProcParams* params, int fw, int fh, int &imw, int &imh); void lab2monitorRgb(LabImage* lab, Image8* image); void resize(Imagefloat* src, Imagefloat* dst, float dScale); diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index caa5b7e4e..fc79dcae4 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -86,25 +86,25 @@ float normn (float a, float b, int n) } } -void logEncode(rtengine::Imagefloat *original, bool multiThread) { +void logEncode(rtengine::Imagefloat *src, rtengine::Imagefloat *dest, bool multiThread) { #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) if(multiThread) #endif - for (int y = 0; y < original->getHeight(); ++y) { + for (int y = 0; y < src->getHeight(); ++y) { int x = 0; #ifdef __SSE2__ - for (; x < original->getWidth() - 3; x += 4) { - STVFU(original->r(y, x), xlogf1(LVFU(original->r(y, x)))); - STVFU(original->g(y, x), xlogf1(LVFU(original->g(y, x)))); - STVFU(original->b(y, x), xlogf1(LVFU(original->b(y, x)))); + for (; x < src->getWidth() - 3; x += 4) { + STVFU(dest->r(y, x), xlogf1(LVFU(src->r(y, x)))); + STVFU(dest->g(y, x), xlogf1(LVFU(src->g(y, x)))); + STVFU(dest->b(y, x), xlogf1(LVFU(src->b(y, x)))); } #endif - for (; x < original->getWidth(); ++x) { - original->r(y, x) = xlogf1(original->r(y, x)); - original->g(y, x) = xlogf1(original->g(y, x)); - original->b(y, x) = xlogf1(original->b(y, x)); + for (; x < src->getWidth(); ++x) { + dest->r(y, x) = xlogf1(src->r(y, x)); + dest->g(y, x) = xlogf1(src->g(y, x)); + dest->b(y, x) = xlogf1(src->b(y, x)); } } } @@ -536,7 +536,7 @@ bool ImProcFunctions::transCoord (int W, int H, int x, int y, int w, int h, int& void ImProcFunctions::transform (Imagefloat* original, Imagefloat* transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const FramesMetaData *metadata, - int rawRotationDeg, bool fullImage) + int rawRotationDeg, bool fullImage, bool useOriginalBuffer) { double focalLen = metadata->getFocalLen(); double focalLen35mm = metadata->getFocalLen35mm(); @@ -584,10 +584,10 @@ void ImProcFunctions::transform (Imagefloat* original, Imagefloat* transformed, dest = tmpimg.get(); } } - transformGeneral(highQuality, original, dest, cx, cy, sx, sy, oW, oH, fW, fH, pLCPMap.get()); + transformGeneral(highQuality, original, dest, cx, cy, sx, sy, oW, oH, fW, fH, pLCPMap.get(), useOriginalBuffer); if (highQuality && dest != transformed) { - transformLCPCAOnly(dest, transformed, cx, cy, pLCPMap.get()); + transformLCPCAOnly(dest, transformed, cx, cy, pLCPMap.get(), useOriginalBuffer); } } } @@ -976,7 +976,7 @@ void ImProcFunctions::transformLuminanceOnly (Imagefloat* original, Imagefloat* } -void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap) +void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, Imagefloat *transformed, int cx, int cy, int sx, int sy, int oW, int oH, int fW, int fH, const LensCorrection *pLCPMap, bool useOriginalBuffer) { // set up stuff, depending on the mode we are @@ -1058,8 +1058,15 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I const double centerFactorx = cx - w2; const double centerFactory = cy - h2; + std::unique_ptr tempLog; if (useLog) { - logEncode(original, multiThread); + if (!useOriginalBuffer) { + tempLog.reset(new Imagefloat(original->getWidth(), original->getHeight())); + logEncode(original, tempLog.get(), multiThread); + original = tempLog.get(); + } else { + logEncode(original, original, multiThread); + } } // main cycle #ifdef _OPENMP @@ -1205,7 +1212,7 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I } -void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *transformed, int cx, int cy, const LensCorrection *pLCPMap) +void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *transformed, int cx, int cy, const LensCorrection *pLCPMap, bool useOriginalBuffer) { assert(pLCPMap && params->lensProf.useCA && pLCPMap->isCACorrectionAvailable()); const bool useLog = params->pdsharpening.enabled; @@ -1220,8 +1227,15 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans chTrans[1] = transformed->g.ptrs; chTrans[2] = transformed->b.ptrs; + std::unique_ptr tempLog; if (useLog) { - logEncode(original, multiThread); + if (!useOriginalBuffer) { + tempLog.reset(new Imagefloat(original->getWidth(), original->getHeight())); + logEncode(original, tempLog.get(), multiThread); + original = tempLog.get(); + } else { + logEncode(original, original, multiThread); + } } #ifdef _OPENMP diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index c35fc7431..3811c0c80 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -880,7 +880,7 @@ private: trImg = new Imagefloat (fw, fh); } ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, fw, fh, - imgsrc->getMetaData(), imgsrc->getRotateDegree(), true); + imgsrc->getMetaData(), imgsrc->getRotateDegree(), true, true); if(trImg != baseImg) { delete baseImg; baseImg = trImg; From 2ce6e6d1d389bed4dfd82833ddf082920bc9fcd0 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 2 Jan 2020 14:35:27 +0100 Subject: [PATCH 124/453] skip unnecessary transform --- rtengine/dcrop.cc | 75 +++++++++++++++++------------------ rtengine/improccoordinator.cc | 4 +- rtengine/improcfun.h | 2 +- rtengine/iptransform.cc | 9 ++++- rtengine/rtthumbnail.cc | 10 ++--- rtengine/simpleprocess.cc | 2 +- 6 files changed, 52 insertions(+), 50 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index a6889b954..890003ee0 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -173,8 +173,6 @@ void Crop::update(int todo) int widIm = parent->fw;//full image int heiIm = parent->fh; - bool needstransform = parent->ipf.needsTransform(); - if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock lock(parent->minit); // Also used in improccoord @@ -766,8 +764,9 @@ void Crop::update(int todo) } } + const bool needstransform = parent->ipf.needsTransform(skips(parent->fw, skip), skips(parent->fh, skip), parent->imgsrc->getRotateDegree(), parent->imgsrc->getMetaData()); // transform - if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled)) { + if (needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params.dirpyrequalizer.cbdlMethod == "bef" && params.dirpyrequalizer.enabled && !params.colorappearance.enabled)) { if (!transCrop) { transCrop = new Imagefloat(cropw, croph); } @@ -784,10 +783,7 @@ void Crop::update(int todo) baseCrop = transCrop; } } else { - if (transCrop) { - delete transCrop; - } - + delete transCrop; transCrop = nullptr; } @@ -1167,41 +1163,42 @@ bool Crop::setCropSizes(int rcx, int rcy, int rcw, int rch, int skip, bool inter parent->ipf.transCoord(parent->fw, parent->fh, bx1, by1, bw, bh, orx, ory, orw, orh); - if (check_need_larger_crop_for_lcp_distortion(parent->fw, parent->fh, orx, ory, orw, orh, *parent->params)) { - // TODO - this is an estimate of the max distortion relative to the image size. ATM it is hardcoded to be 15%, which seems enough. If not, need to revise - int dW = int (double (parent->fw) * 0.15 / (2 * skip)); - int dH = int (double (parent->fh) * 0.15 / (2 * skip)); - int x1 = orx - dW; - int x2 = orx + orw + dW; - int y1 = ory - dH; - int y2 = ory + orh + dH; + if (parent->ipf.needsTransform(skips(parent->fw, skip), skips(parent->fh, skip), parent->imgsrc->getRotateDegree(), parent->imgsrc->getMetaData())) { + if (check_need_larger_crop_for_lcp_distortion(parent->fw, parent->fh, orx, ory, orw, orh, *parent->params)) { + // TODO - this is an estimate of the max distortion relative to the image size. ATM it is hardcoded to be 15%, which seems enough. If not, need to revise + int dW = int (double (parent->fw) * 0.15 / (2 * skip)); + int dH = int (double (parent->fh) * 0.15 / (2 * skip)); + int x1 = orx - dW; + int x2 = orx + orw + dW; + int y1 = ory - dH; + int y2 = ory + orh + dH; - if (x1 < 0) { - x2 += -x1; - x1 = 0; + if (x1 < 0) { + x2 += -x1; + x1 = 0; + } + + if (x2 > parent->fw) { + x1 -= x2 - parent->fw; + x2 = parent->fw; + } + + if (y1 < 0) { + y2 += -y1; + y1 = 0; + } + + if (y2 > parent->fh) { + y1 -= y2 - parent->fh; + y2 = parent->fh; + } + + orx = max(x1, 0); + ory = max(y1, 0); + orw = min(x2 - x1, parent->fw - orx); + orh = min(y2 - y1, parent->fh - ory); } - - if (x2 > parent->fw) { - x1 -= x2 - parent->fw; - x2 = parent->fw; - } - - if (y1 < 0) { - y2 += -y1; - y1 = 0; - } - - if (y2 > parent->fh) { - y1 -= y2 - parent->fh; - y2 = parent->fh; - } - - orx = max(x1, 0); - ory = max(y1, 0); - orw = min(x2 - x1, parent->fw - orx); - orh = min(y2 - y1, parent->fh - ory); } - leftBorder = skips(rqx1 - bx1, skip); upperBorder = skips(rqy1 - by1, skip); diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index a4ca0ea0b..e915a11b0 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -545,7 +545,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) oprevi = orig_prev; // Remove transformation if unneeded - bool needstransform = ipf.needsTransform(); + bool needstransform = ipf.needsTransform(fw, fh, imgsrc->getRotateDegree(), imgsrc->getMetaData()); if ((needstransform || ((todo & (M_TRANSFORM | M_RGBCURVE)) && params->dirpyrequalizer.cbdlMethod == "bef" && params->dirpyrequalizer.enabled && !params->colorappearance.enabled))) { assert(oprevi); @@ -1349,7 +1349,7 @@ void ImProcCoordinator::saveInputICCReference(const Glib::ustring& fname, bool a imgsrc->getImage(currWB, tr, im, pp, ppar.toneCurve, ppar.raw); ImProcFunctions ipf(&ppar, true); - if (ipf.needsTransform()) { + if (ipf.needsTransform(fW, fH, imgsrc->getRotateDegree(), imgsrc->getMetaData())) { Imagefloat* trImg = new Imagefloat(fW, fH); ipf.transform(im, trImg, 0, 0, 0, 0, fW, fH, fW, fH, imgsrc->getMetaData(), imgsrc->getRotateDegree(), true); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index c1a4a5979..8f4ae7771 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -119,7 +119,7 @@ public: } void setScale(double iscale); - bool needsTransform() const; + bool needsTransform(int oW, int oH, int rawRotationDeg, const FramesMetaData *metadata) const; bool needsPCVignetting() const; void firstAnalysis(const Imagefloat* const working, const procparams::ProcParams ¶ms, LUTu & vhist16); diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index fc79dcae4..c9f88caf0 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -1358,9 +1358,14 @@ bool ImProcFunctions::needsLensfun() const return params->lensProf.useLensfun(); } -bool ImProcFunctions::needsTransform () const +bool ImProcFunctions::needsTransform (int oW, int oH, int rawRotationDeg, const FramesMetaData *metadata) const { - return needsCA () || needsDistortion () || needsRotation () || needsPerspective () || needsGradient () || needsPCVignetting () || needsVignetting () || needsLCP() || needsLensfun(); + bool needsLf = needsLensfun(); + if (needsLf) { + std::unique_ptr pLCPMap = LFDatabase::getInstance()->findModifier(params->lensProf, metadata, oW, oH, params->coarse, rawRotationDeg); + needsLf = pLCPMap.get(); + } + return needsCA () || needsDistortion () || needsRotation () || needsPerspective () || needsGradient () || needsPCVignetting () || needsVignetting () || needsLCP() || needsLf; } diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 0cdcbf6ed..9da601e2a 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1247,12 +1247,12 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT ipf.ToneMapFattal02(baseImg); // perform transform - if (ipf.needsTransform()) { + int origFW; + int origFH; + double tscale = 0.0; + getDimensions (origFW, origFH, tscale); + if (ipf.needsTransform(origFW * tscale + 0.5, origFH * tscale + 0.5, 0, metadata)) { Imagefloat* trImg = new Imagefloat (fw, fh); - int origFW; - int origFH; - double tscale = 0.0; - getDimensions (origFW, origFH, tscale); ipf.transform (baseImg, trImg, 0, 0, 0, 0, fw, fh, origFW * tscale + 0.5, origFH * tscale + 0.5, metadata, 0, true); // Raw rotate degree not detectable here delete baseImg; baseImg = trImg; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 3811c0c80..1c1e46a65 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -872,7 +872,7 @@ private: ipf.ToneMapFattal02(baseImg); // perform transform (excepted resizing) - if (ipf.needsTransform()) { + if (ipf.needsTransform(fw, fh, imgsrc->getRotateDegree(), imgsrc->getMetaData())) { Imagefloat* trImg = nullptr; if (ipf.needsLuminanceOnly()) { trImg = baseImg; From 49d594f67a6f9ad2f2b0d6f0c591136d53fe2dff Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 2 Jan 2020 19:28:57 +0100 Subject: [PATCH 125/453] Log transform: add method combobox --- rtdata/languages/default | 3 +++ rtengine/iptransform.cc | 4 ++-- rtengine/procparams.cc | 9 ++++++++- rtengine/procparams.h | 1 + rtgui/lensgeom.cc | 40 +++++++++++++++++++++++++++++++++++++--- rtgui/lensgeom.h | 3 +++ rtgui/paramsedited.cc | 6 ++++++ rtgui/paramsedited.h | 1 + 8 files changed, 61 insertions(+), 6 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5004bf25c..922c50c51 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -787,6 +787,7 @@ HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +HISTORY_MSG_TRANS_Method;Geometry - Method HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -1775,6 +1776,8 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. TP_LENSGEOM_AUTOCROP;Auto-Crop TP_LENSGEOM_FILL;Auto-fill TP_LENSGEOM_LABEL;Lens / Geometry +TP_LENSGEOM_LIN;Linear +TP_LENSGEOM_LOG;Logarithmic TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index c9f88caf0..39f270d51 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -1054,7 +1054,7 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I const double ascale = params->commonTrans.autofill ? getTransformAutoFill(oW, oH, pLCPMap) : 1.0; const bool darkening = (params->vignetting.amount <= 0.0); - const bool useLog = params->pdsharpening.enabled && highQuality; + const bool useLog = params->commonTrans.method == "log" && highQuality; const double centerFactorx = cx - w2; const double centerFactory = cy - h2; @@ -1215,7 +1215,7 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *transformed, int cx, int cy, const LensCorrection *pLCPMap, bool useOriginalBuffer) { assert(pLCPMap && params->lensProf.useCA && pLCPMap->isCACorrectionAvailable()); - const bool useLog = params->pdsharpening.enabled; + const bool useLog = params->commonTrans.method == "log"; float** chOrig[3]; chOrig[0] = original->r.ptrs; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index ba6fc237b..99f4f4404 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1732,13 +1732,14 @@ bool CoarseTransformParams::operator !=(const CoarseTransformParams& other) cons } CommonTransformParams::CommonTransformParams() : + method("log"), autofill(true) { } bool CommonTransformParams::operator ==(const CommonTransformParams& other) const { - return autofill == other.autofill; + return method == other.method && autofill == other.autofill; } bool CommonTransformParams::operator !=(const CommonTransformParams& other) const @@ -3322,6 +3323,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->coarse.vflip, "Coarse Transformation", "VerticalFlip", coarse.vflip, keyFile); // Common properties for transformations + saveToKeyfile(!pedited || pedited->commonTrans.method, "Common Properties for Transformations", "Method", commonTrans.method, keyFile); saveToKeyfile(!pedited || pedited->commonTrans.autofill, "Common Properties for Transformations", "AutoFill", commonTrans.autofill, keyFile); // Rotation @@ -4360,6 +4362,11 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } if (keyFile.has_group("Common Properties for Transformations")) { + if (keyFile.has_key("Common Properties for Transformations", "Method")) { + assignFromKeyfile(keyFile, "Common Properties for Transformations", "Method", pedited, commonTrans.method, pedited->commonTrans.method); + } else { + commonTrans.method = "lin"; + } assignFromKeyfile(keyFile, "Common Properties for Transformations", "AutoFill", pedited, commonTrans.autofill, pedited->commonTrans.autofill); } diff --git a/rtengine/procparams.h b/rtengine/procparams.h index c41e55872..0b6b2dc46 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -837,6 +837,7 @@ struct CoarseTransformParams { * Common transformation parameters */ struct CommonTransformParams { + Glib::ustring method; bool autofill; CommonTransformParams(); diff --git a/rtgui/lensgeom.cc b/rtgui/lensgeom.cc index 76e0635eb..762726107 100644 --- a/rtgui/lensgeom.cc +++ b/rtgui/lensgeom.cc @@ -17,6 +17,8 @@ * along with RawTherapee. If not, see . */ #include "lensgeom.h" + +#include "eventmapper.h" #include "guiutils.h" #include "rtimage.h" @@ -28,6 +30,18 @@ using namespace rtengine::procparams; LensGeometry::LensGeometry () : FoldableToolPanel(this, "lensgeom", M("TP_LENSGEOM_LABEL")), rlistener(nullptr), lastFill(false) { + auto m = ProcEventMapper::getInstance(); + EvTransMethod = m->newEvent(TRANSFORM, "HISTORY_MSG_TRANS_METHOD"); + + Gtk::HBox* hb1 = Gtk::manage (new Gtk::HBox ()); + hb1->pack_start (*Gtk::manage (new Gtk::Label ( M("TP_RAW_DMETHOD") + ": ")), Gtk::PACK_SHRINK, 4); + method = Gtk::manage (new MyComboBoxText ()); + method->append(M("TP_LENSGEOM_LOG")); + method->append(M("TP_LENSGEOM_LIN")); + method->set_active(0); + hb1->pack_end (*method, Gtk::PACK_EXPAND_WIDGET, 4); + pack_start( *hb1, Gtk::PACK_SHRINK, 4); + fill = Gtk::manage (new Gtk::CheckButton (M("TP_LENSGEOM_FILL"))); pack_start (*fill); @@ -39,8 +53,9 @@ LensGeometry::LensGeometry () : FoldableToolPanel(this, "lensgeom", M("TP_LENSGE packBox = Gtk::manage (new ToolParamBlock ()); pack_start (*packBox); - autoCrop->signal_pressed().connect( sigc::mem_fun(*this, &LensGeometry::autoCropPressed) ); - fillConn = fill->signal_toggled().connect( sigc::mem_fun(*this, &LensGeometry::fillPressed) ); + method->connect(method->signal_changed().connect(sigc::mem_fun(*this, &LensGeometry::methodChanged))); + autoCrop->signal_pressed().connect(sigc::mem_fun(*this, &LensGeometry::autoCropPressed)); + fillConn = fill->signal_toggled().connect(sigc::mem_fun(*this, &LensGeometry::fillPressed)); fill->set_active (true); show_all (); @@ -55,8 +70,14 @@ void LensGeometry::read (const ProcParams* pp, const ParamsEdited* pedited) { disableListener (); + method->block (true); + method->set_active(pp->commonTrans.method == "log" ? 0 : 1); if (pedited) { + if(!pedited->commonTrans.method) { + method->set_active_text(M("GENERAL_UNCHANGED")); + } + fill->set_inconsistent (!pedited->commonTrans.autofill); } @@ -67,15 +88,20 @@ void LensGeometry::read (const ProcParams* pp, const ParamsEdited* pedited) lastFill = pp->commonTrans.autofill; + method->block (false); enableListener (); } void LensGeometry::write (ProcParams* pp, ParamsEdited* pedited) { - + int currentRow = method->get_active_row_number(); + if( currentRow >= 0 && method->get_active_text() != M("GENERAL_UNCHANGED")) { + pp->commonTrans.method = currentRow == 0 ? "log" : "lin"; + } pp->commonTrans.autofill = fill->get_active (); if (pedited) { + pedited->commonTrans.method = method->get_active_text() != M("GENERAL_UNCHANGED"); pedited->commonTrans.autofill = !fill->get_inconsistent(); } } @@ -115,6 +141,14 @@ void LensGeometry::fillPressed () } } +void LensGeometry::methodChanged () +{ + + if (listener && method->get_active_row_number() >= 0) { + listener->panelChanged(EvTransMethod, method->get_active_text()); + } +} + void LensGeometry::setBatchMode (bool batchMode) { diff --git a/rtgui/lensgeom.h b/rtgui/lensgeom.h index 18b31a619..73c28b006 100644 --- a/rtgui/lensgeom.h +++ b/rtgui/lensgeom.h @@ -29,6 +29,7 @@ class LensGeometry final : { protected: + MyComboBoxText* method; Gtk::Button* autoCrop; LensGeomListener* rlistener; Gtk::CheckButton* fill; @@ -36,6 +37,7 @@ protected: sigc::connection fillConn; ToolParamBlock* packBox; + rtengine::ProcEvent EvTransMethod; public: LensGeometry (); @@ -50,6 +52,7 @@ public: void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void setBatchMode (bool batchMode) override; + void methodChanged(); void fillPressed (); void autoCropPressed (); void setLensGeomListener (LensGeomListener* l) diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 82132008a..d41bd472c 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -321,6 +321,7 @@ void ParamsEdited::set(bool v) coarse.rotate = v; coarse.hflip = v; coarse.vflip = v; + commonTrans.method = v; commonTrans.autofill = v; rotate.degree = v; distortion.amount = v; @@ -904,6 +905,7 @@ void ParamsEdited::initFrom(const std::vector& coarse.rotate = coarse.rotate && p.coarse.rotate == other.coarse.rotate; coarse.hflip = coarse.hflip && p.coarse.hflip == other.coarse.hflip; coarse.vflip = coarse.vflip && p.coarse.vflip == other.coarse.vflip; + commonTrans.method = commonTrans.method && p.commonTrans.method == other.commonTrans.method; commonTrans.autofill = commonTrans.autofill && p.commonTrans.autofill == other.commonTrans.autofill; rotate.degree = rotate.degree && p.rotate.degree == other.rotate.degree; distortion.amount = distortion.amount && p.distortion.amount == other.distortion.amount; @@ -2265,6 +2267,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.coarse.vflip = mods.coarse.vflip; } + if (commonTrans.method) { + toEdit.commonTrans.method = mods.commonTrans.method; + } + if (commonTrans.autofill) { toEdit.commonTrans.autofill = mods.commonTrans.autofill; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 01a3e4efe..153dd7bb6 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -365,6 +365,7 @@ struct CoarseTransformParamsEdited { }; struct CommonTransformParamsEdited { + bool method; bool autofill; }; From 7c2aa2405b497027fbcd8865f6449ab919aa6813 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 2 Jan 2020 23:01:37 +0100 Subject: [PATCH 126/453] Startup crashes in LensProfilePanel::LFDbHelper, fixes #5577, thanks to @dlichtenberger for the fix --- rtgui/lensprofile.cc | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rtgui/lensprofile.cc b/rtgui/lensprofile.cc index be21512d5..1a8391f66 100644 --- a/rtgui/lensprofile.cc +++ b/rtgui/lensprofile.cc @@ -586,6 +586,9 @@ void LensProfilePanel::onCorrModeChanged(const Gtk::RadioButton* rbChanged) LensProfilePanel::LFDbHelper::LFDbHelper() { + lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); + lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); + #ifdef _OPENMP #pragma omp parallel sections if (!settings->verbose) #endif @@ -594,14 +597,12 @@ LensProfilePanel::LFDbHelper::LFDbHelper() #pragma omp section #endif { - lensfunCameraModel = Gtk::TreeStore::create(lensfunModelCam); fillLensfunCameras(); } #ifdef _OPENMP #pragma omp section #endif { - lensfunLensModel = Gtk::TreeStore::create(lensfunModelLens); fillLensfunLenses(); } } From e07ff4032b23198d6cd33717888ab8484d895744 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 3 Jan 2020 11:35:20 +0100 Subject: [PATCH 127/453] log transform: Fix segfault --- rtengine/iptransform.cc | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 39f270d51..29e10035e 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -1217,15 +1217,7 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans assert(pLCPMap && params->lensProf.useCA && pLCPMap->isCACorrectionAvailable()); const bool useLog = params->commonTrans.method == "log"; - float** chOrig[3]; - chOrig[0] = original->r.ptrs; - chOrig[1] = original->g.ptrs; - chOrig[2] = original->b.ptrs; - - float** chTrans[3]; - chTrans[0] = transformed->r.ptrs; - chTrans[1] = transformed->g.ptrs; - chTrans[2] = transformed->b.ptrs; + float** chTrans[3] = {transformed->r.ptrs, transformed->g.ptrs, transformed->b.ptrs}; std::unique_ptr tempLog; if (useLog) { @@ -1237,6 +1229,7 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans logEncode(original, original, multiThread); } } + float** chOrig[3] = {original->r.ptrs, original->g.ptrs, original->b.ptrs}; #ifdef _OPENMP #pragma omp parallel for if (multiThread) @@ -1276,7 +1269,7 @@ void ImProcFunctions::transformLCPCAOnly(Imagefloat *original, Imagefloat *trans if (!useLog) { chTrans[c][y][x] = (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); } else { - chTrans[c][y][x] = (chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); + chTrans[c][y][x] = xexpf(chOrig[c][y1][x1] * (1.0 - Dx) * (1.0 - Dy) + chOrig[c][y1][x2] * Dx * (1.0 - Dy) + chOrig[c][y2][x1] * (1.0 - Dx) * Dy + chOrig[c][y2][x2] * Dx * Dy); } } } else { From cabbf8c229464eb52c90a0ebf19606026793bba9 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 3 Jan 2020 20:23:34 +0100 Subject: [PATCH 128/453] guidedfilter: direct copy when no rescaling is needed, copied from ART --- rtengine/guidedfilter.cc | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/rtengine/guidedfilter.cc b/rtengine/guidedfilter.cc index 6b2adb773..ad3beec51 100644 --- a/rtengine/guidedfilter.cc +++ b/rtengine/guidedfilter.cc @@ -106,7 +106,18 @@ void guidedFilter(const array2D &guide, const array2D &src, array2 const auto f_subsample = [multithread](array2D &d, const array2D &s) -> void { - rescaleBilinear(s, d, multithread); + if (d.width() == s.width() && d.height() == s.height()) { +#ifdef _OPENMP + #pragma omp parallel for if (multithread) +#endif + for (int y = 0; y < s.height(); ++y) { + for (int x = 0; x < s.width(); ++x) { + d[y][x] = s[y][x]; + } + } + } else { + rescaleBilinear(s, d, multithread); + } }; const auto f_mean = From 525283650306d1ced6f6df5ab2625630ea12c7df Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 4 Jan 2020 11:28:05 +0100 Subject: [PATCH 129/453] filterpanel: make full use of the screen vertical space, copied from ART --- rtgui/filterpanel.cc | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rtgui/filterpanel.cc b/rtgui/filterpanel.cc index 301a7b188..2c4fc52d2 100644 --- a/rtgui/filterpanel.cc +++ b/rtgui/filterpanel.cc @@ -14,7 +14,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with RawTherapee. If not, see . + * along with RawTherapee. If not, see . */ #include "filterpanel.h" #include "multilangmgr.h" @@ -107,8 +107,8 @@ FilterPanel::FilterPanel () : listener (nullptr) scamera->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); scamera->set_size_request(-1, 80); scamera->add(*camera); - cvb->pack_start (*scamera, Gtk::PACK_SHRINK, 0); - pack_start (*cvb, Gtk::PACK_SHRINK, 4); + cvb->pack_start (*scamera, Gtk::PACK_EXPAND_WIDGET, 0); + pack_start (*cvb, Gtk::PACK_EXPAND_WIDGET, 4); enaLens = Gtk::manage(new Gtk::CheckButton(M("EXIFFILTER_LENS") + ":")); Gtk::VBox* lvb = Gtk::manage(new Gtk::VBox ()); @@ -119,8 +119,8 @@ FilterPanel::FilterPanel () : listener (nullptr) slens->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); slens->set_size_request(-1, 80); slens->add(*lens); - lvb->pack_start (*slens, Gtk::PACK_SHRINK, 0); - pack_start (*lvb, Gtk::PACK_SHRINK, 4); + lvb->pack_start (*slens, Gtk::PACK_EXPAND_WIDGET, 0); + pack_start (*lvb, Gtk::PACK_EXPAND_WIDGET, 4); enaFiletype = Gtk::manage(new Gtk::CheckButton(M("EXIFFILTER_FILETYPE") + ":")); Gtk::VBox* ftvb = Gtk::manage(new Gtk::VBox ()); @@ -131,8 +131,8 @@ FilterPanel::FilterPanel () : listener (nullptr) sfiletype->set_policy(Gtk::POLICY_AUTOMATIC, Gtk::POLICY_ALWAYS); sfiletype->set_size_request(-1, 80); sfiletype->add(*filetype); - ftvb->pack_start (*sfiletype, Gtk::PACK_SHRINK, 0); - pack_start (*ftvb, Gtk::PACK_SHRINK, 4); + ftvb->pack_start (*sfiletype, Gtk::PACK_EXPAND_WIDGET, 0); + pack_start (*ftvb, Gtk::PACK_EXPAND_WIDGET, 4); // add panel ending Gtk::VBox* vboxpe = Gtk::manage (new Gtk::VBox ()); From f23cf0808ba86d98c850101b72d28ba616fc4d15 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 4 Jan 2020 08:53:43 -0800 Subject: [PATCH 130/453] macOS: accept -DLOCAL_PREFIX and default to /usr --- CMakeLists.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index d7368f115..58ae27d23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -263,7 +263,11 @@ if(APPLE) if("${NOTARY}") set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity") endif() - + if("${LOCAL_PREFIX}") + set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory, ie. /usr or /opt") + else() + set(LOCAL_PREFIX "/usr") + endif() endif() # Enforce absolute paths for non-bundle builds: From f3d4d8027be0c0787cc501965a2af97d651ccafc Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 4 Jan 2020 08:57:06 -0800 Subject: [PATCH 131/453] macOS: use $LOCAL_PREFIX for gtk locations --- tools/osx/macosx_bundle.sh | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 3958326e8..76dbe182b 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -92,6 +92,8 @@ GTK_PREFIX: ${GTK_PREFIX} PWD: ${PWD} __EOS__ +LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" + APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" RESOURCES="${CONTENTS}/Resources" @@ -99,7 +101,7 @@ MACOS="${CONTENTS}/MacOS" LIB="${CONTENTS}/Frameworks" ETC="${RESOURCES}/etc" EXECUTABLE="${MACOS}/rawtherapee" -GDK_PREFIX="/usr/local/opt/gdk-pixbuf" +GDK_PREFIX="${LOCAL_PREFIX}/opt/gdk-pixbuf" msg "Removing old files:" rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" @@ -141,45 +143,45 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" mkdir -p ${RESOURCES}/share/glib-2.0 -cp -pRL {"/usr/local","${RESOURCES}"}/share/glib-2.0/schemas -"/usr/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" +cp -pRL {"${LOCAL_PREFIX}","${RESOURCES}"}/share/glib-2.0/schemas +"${LOCAL_PREFIX}/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" -cp -pRL {"/usr/local","${RESOURCES}"}/share/mime +cp -pRL {"${LOCAL_PREFIX}","${RESOURCES}"}/share/mime # GTK3 themes -ditto {"/usr/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css -ditto {"/usr/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css +ditto {"${LOCAL_PREFIX}","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css +ditto {"${LOCAL_PREFIX}","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css # Adwaita icons iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} - cp /usr/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} + cp ${LOCAL_PREFIX}/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} done -ditto {"/usr/local","${RESOURCES}"}/share/icons/Adwaita/index.theme -"/usr/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" +ditto {"${LOCAL_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme +"${LOCAL_PREFIX}/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" # Copy libjpeg-turbo into the app bundle -cp /usr/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" # Copy libexpat into the app bundle (which is keg-only) -cp /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" +#cp ${LOCAL_PREFIX}/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" # Copy libz into the app bundle cp /usr/lib/libz.1.dylib "${CONTENTS}/Frameworks" # Copy libtiff into the app bundle -cp /usr/local/lib/libtiff.5.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/lib/libtiff.5.dylib "${CONTENTS}/Frameworks" # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" -cp /usr/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" +cp ${LOCAL_PREFIX}/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -cp /usr/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" # Copy libomp to Frameworks -cp /usr/local/lib/libomp.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/lib/libomp.dylib "${CONTENTS}/Frameworks" # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do From d420acddedb865707c91883b470e0b7772fb49b1 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 4 Jan 2020 12:16:55 -0800 Subject: [PATCH 132/453] macOS: /local after $LOCAL_PREFIX --- tools/osx/macosx_bundle.sh | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 76dbe182b..776238bac 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -101,7 +101,7 @@ MACOS="${CONTENTS}/MacOS" LIB="${CONTENTS}/Frameworks" ETC="${RESOURCES}/etc" EXECUTABLE="${MACOS}/rawtherapee" -GDK_PREFIX="${LOCAL_PREFIX}/opt/gdk-pixbuf" +GDK_PREFIX="${LOCAL_PREFIX}/local/opt/gdk-pixbuf" msg "Removing old files:" rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" @@ -143,45 +143,45 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" mkdir -p ${RESOURCES}/share/glib-2.0 -cp -pRL {"${LOCAL_PREFIX}","${RESOURCES}"}/share/glib-2.0/schemas -"${LOCAL_PREFIX}/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" +cp -pRL {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas +"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" -cp -pRL {"${LOCAL_PREFIX}","${RESOURCES}"}/share/mime +cp -pRL {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime # GTK3 themes -ditto {"${LOCAL_PREFIX}","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css -ditto {"${LOCAL_PREFIX}","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css # Adwaita icons iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} - cp ${LOCAL_PREFIX}/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} + cp ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} done -ditto {"${LOCAL_PREFIX}","${RESOURCES}"}/share/icons/Adwaita/index.theme -"${LOCAL_PREFIX}/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme +"${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" # Copy libjpeg-turbo into the app bundle -cp ${LOCAL_PREFIX}/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/local/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" # Copy libexpat into the app bundle (which is keg-only) -#cp ${LOCAL_PREFIX}/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" +#cp ${LOCAL_PREFIX}/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" # Copy libz into the app bundle cp /usr/lib/libz.1.dylib "${CONTENTS}/Frameworks" # Copy libtiff into the app bundle -cp ${LOCAL_PREFIX}/lib/libtiff.5.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/local/lib/libtiff.5.dylib "${CONTENTS}/Frameworks" # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" -cp ${LOCAL_PREFIX}/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" +cp ${LOCAL_PREFIX}/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -cp ${LOCAL_PREFIX}/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" # Copy libomp to Frameworks -cp ${LOCAL_PREFIX}/lib/libomp.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do From 5ca8c85334a1293d483508a09f04f872166b9145 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 4 Jan 2020 12:36:28 -0800 Subject: [PATCH 133/453] macOS: one fewer /local for libjpeg --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 776238bac..200e5689e 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -162,7 +162,7 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" # Copy libjpeg-turbo into the app bundle -cp ${LOCAL_PREFIX}/local/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" +cp ${LOCAL_PREFIX}/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" # Copy libexpat into the app bundle (which is keg-only) #cp ${LOCAL_PREFIX}/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" From aaab85fbed1100aaff4f425a3ac0a7ae286921e9 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 4 Jan 2020 16:06:13 -0800 Subject: [PATCH 134/453] macOS: LOCAL_PREFIX default/better negative logic --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 58ae27d23..bbc129eae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -264,8 +264,8 @@ if(APPLE) set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity") endif() if("${LOCAL_PREFIX}") - set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory, ie. /usr or /opt") - else() + set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory ie /usr or /opt") + elseif(NOT DEFINED LOCAL_PREFIX) set(LOCAL_PREFIX "/usr") endif() endif() From 0edac2dac752ad75656817140b8492812ab2dd4d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 6 Jan 2020 19:01:30 +0100 Subject: [PATCH 135/453] Speedup for scalar xlog functions --- rtengine/sleef.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rtengine/sleef.h b/rtengine/sleef.h index 1a953953c..b7655258b 100644 --- a/rtengine/sleef.h +++ b/rtengine/sleef.h @@ -532,7 +532,7 @@ __inline double xlog(double d) { x = x * t + 0.693147180559945286226764 * e; - if (xisinf(d)) x = rtengine::RT_INFINITY; + if (xispinf(d)) x = rtengine::RT_INFINITY; if (d < 0) x = rtengine::RT_NAN; if (d == 0) x = -rtengine::RT_INFINITY; @@ -864,7 +864,7 @@ __inline double xlog10(double a) { double2 d = mul_dd(logk(a), dd(0.43429448190325176116, 6.6494347733425473126e-17)); double x = d.x + d.y; - if (xisinf(a)) x = rtengine::RT_INFINITY; + if (xispinf(a)) x = rtengine::RT_INFINITY; if (a < 0) x = rtengine::RT_NAN; if (a == 0) x = -rtengine::RT_INFINITY; @@ -875,7 +875,7 @@ __inline double xlog1p(double a) { double2 d = logk2(add2_ss(a, 1)); double x = d.x + d.y; - if (xisinf(a)) x = rtengine::RT_INFINITY; + if (xispinf(a)) x = rtengine::RT_INFINITY; if (a < -1) x = rtengine::RT_NAN; if (a == -1) x = -rtengine::RT_INFINITY; @@ -1208,7 +1208,7 @@ __inline float xlogf(float d) { x = x * t + 0.693147180559945286226764f * e; - if (xisinff(d)) x = rtengine::RT_INFINITY_F; + if (xispinff(d)) x = rtengine::RT_INFINITY_F; if (d < 0) x = rtengine::RT_NAN_F; if (d == 0) x = -rtengine::RT_INFINITY_F; @@ -1233,7 +1233,7 @@ __inline float xlogf1(float d) { // does xlogf(vmaxf(d, 1.f)) but faster x = x * t + 0.693147180559945286226764f * e; - if (xisinff(d)) x = rtengine::RT_INFINITY_F; + if (xispinff(d)) x = rtengine::RT_INFINITY_F; if (d <= 1.f) x = 0; return x; From 355fd5a44a2b740292406db61f038224cc8df88d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 10 Jan 2020 14:25:51 +0100 Subject: [PATCH 136/453] Capture sharpening: add vectorization hints for clang --- rtengine/capturesharpening.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index e5bfde555..4beb4091a 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -131,6 +131,9 @@ inline void gauss3x3div (float** RESTRICT src, float** RESTRICT dst, float** RES const float c00 = kernel[1][1]; for (int i = 1; i < tileSize - 1; i++) { +#ifdef __clang__ + #pragma clang loop vectorize(assume_safety) +#endif for (int j = 1; j < tileSize - 1; j++) { const float val = c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -151,6 +154,9 @@ inline void gauss5x5div (float** RESTRICT src, float** RESTRICT dst, float** RES for (int i = 2; i < tileSize - 2; ++i) { // I tried hand written SSE code but gcc vectorizes better +#ifdef __clang__ + #pragma clang loop vectorize(assume_safety) +#endif for (int j = 2; j < tileSize - 2; ++j) { const float val = c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + @@ -177,6 +183,9 @@ inline void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** REST for (int i = 3; i < tileSize - 3; ++i) { // I tried hand written SSE code but gcc vectorizes better +#ifdef __clang__ + #pragma clang loop vectorize(assume_safety) +#endif for (int j = 3; j < tileSize - 3; ++j) { const float val = c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + @@ -199,6 +208,9 @@ inline void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int t const float c00 = kernel[1][1]; for (int i = 1; i < tileSize - 1; i++) { +#ifdef __clang__ + #pragma clang loop vectorize(assume_safety) +#endif for (int j = 1; j < tileSize - 1; j++) { const float val = c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + @@ -220,6 +232,9 @@ inline void gauss5x5mult (float** RESTRICT src, float** RESTRICT dst, const int for (int i = 2; i < tileSize - 2; ++i) { // I tried hand written SSE code but gcc vectorizes better +#ifdef __clang__ + #pragma clang loop vectorize(assume_safety) +#endif for (int j = 2; j < tileSize - 2; ++j) { const float val = c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + @@ -246,6 +261,9 @@ inline void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int t for (int i = 3; i < tileSize - 3; ++i) { // I tried hand written SSE code but gcc vectorizes better +#ifdef __clang__ + #pragma clang loop vectorize(assume_safety) +#endif for (int j = 3; j < tileSize - 3; ++j) { const float val = c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + From 09b1a5fada6b9d12f271e0ab03bfa4df4bea31d9 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 10 Jan 2020 19:45:59 +0100 Subject: [PATCH 137/453] Capture sharpening: add vectorization hints for gcc --- rtengine/capturesharpening.cc | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 4beb4091a..f8067ac0b 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -131,8 +131,10 @@ inline void gauss3x3div (float** RESTRICT src, float** RESTRICT dst, float** RES const float c00 = kernel[1][1]; for (int i = 1; i < tileSize - 1; i++) { -#ifdef __clang__ +#if defined(__clang__) #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep #endif for (int j = 1; j < tileSize - 1; j++) { const float val = c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + @@ -154,8 +156,10 @@ inline void gauss5x5div (float** RESTRICT src, float** RESTRICT dst, float** RES for (int i = 2; i < tileSize - 2; ++i) { // I tried hand written SSE code but gcc vectorizes better -#ifdef __clang__ +#if defined(__clang__) #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep #endif for (int j = 2; j < tileSize - 2; ++j) { const float val = c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + @@ -183,8 +187,10 @@ inline void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** REST for (int i = 3; i < tileSize - 3; ++i) { // I tried hand written SSE code but gcc vectorizes better -#ifdef __clang__ +#if defined(__clang__) #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep #endif for (int j = 3; j < tileSize - 3; ++j) { const float val = c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + @@ -208,8 +214,10 @@ inline void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int t const float c00 = kernel[1][1]; for (int i = 1; i < tileSize - 1; i++) { -#ifdef __clang__ +#if defined(__clang__) #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep #endif for (int j = 1; j < tileSize - 1; j++) { const float val = c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + @@ -232,8 +240,10 @@ inline void gauss5x5mult (float** RESTRICT src, float** RESTRICT dst, const int for (int i = 2; i < tileSize - 2; ++i) { // I tried hand written SSE code but gcc vectorizes better -#ifdef __clang__ +#if defined(__clang__) #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep #endif for (int j = 2; j < tileSize - 2; ++j) { const float val = c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + @@ -261,8 +271,10 @@ inline void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int t for (int i = 3; i < tileSize - 3; ++i) { // I tried hand written SSE code but gcc vectorizes better -#ifdef __clang__ +#if defined(__clang__) #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep #endif for (int j = 3; j < tileSize - 3; ++j) { const float val = c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + From 2ff619e5e2832df25658186905bc89353351abd0 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 11 Jan 2020 08:23:15 +0100 Subject: [PATCH 138/453] Fixed bad behavior gamma slider tone-mapping --- rtgui/epd.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtgui/epd.cc b/rtgui/epd.cc index 307790ff7..6544b7131 100644 --- a/rtgui/epd.cc +++ b/rtgui/epd.cc @@ -69,6 +69,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite setEnabled(pp->epd.enabled); strength->set_sensitive (true); + gamma->set_sensitive (true); if(pp->wavelet.enabled) { if(pp->wavelet.tmrs == 0) { @@ -98,6 +99,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) pp->epd.reweightingIterates = reweightingIterates->getValue(); pp->epd.enabled = getEnabled(); strength->set_sensitive (true); + gamma->set_sensitive (true); if(pp->wavelet.enabled) { if(pp->wavelet.tmrs == 0) { From 1a02f16c35ff7e366010c1170637b7b7a9dff5a0 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 11 Jan 2020 11:20:41 +0100 Subject: [PATCH 139/453] crash in Tab: transform, fixes #5604 --- rtengine/iptransform.cc | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 29e10035e..9e7c61dcf 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -1006,11 +1006,6 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I calcPCVignetteParams(fW, fH, oW, oH, params->pcvignette, params->crop, pcv); } - const std::array chOrig = { - original->r.ptrs, - original->g.ptrs, - original->b.ptrs - }; const std::array chTrans = { transformed->r.ptrs, transformed->g.ptrs, @@ -1068,6 +1063,13 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I logEncode(original, original, multiThread); } } + + const std::array chOrig = { + original->r.ptrs, + original->g.ptrs, + original->b.ptrs + }; + // main cycle #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) if(multiThread) From d8564cb65241c34d1f083a2ddde339b19de74291 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 11 Jan 2020 16:25:50 +0100 Subject: [PATCH 140/453] another fix for wavelet <=> tone mapping --- rtgui/epd.cc | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/rtgui/epd.cc b/rtgui/epd.cc index 6544b7131..a620f4468 100644 --- a/rtgui/epd.cc +++ b/rtgui/epd.cc @@ -71,11 +71,11 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite strength->set_sensitive (true); gamma->set_sensitive (true); - if(pp->wavelet.enabled) { - if(pp->wavelet.tmrs == 0) { + if(pp->wavelet.enabled) { + if(pp->wavelet.tmrs == 0 || pp->wavelet.TMmethod == "cont") { strength->set_sensitive (true); gamma->set_sensitive (true); - } else { + } else if(pp->wavelet.tmrs != 0 && pp->wavelet.TMmethod == "tm") { strength->set_sensitive (false); gamma->set_sensitive (false); } @@ -101,11 +101,11 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) strength->set_sensitive (true); gamma->set_sensitive (true); - if(pp->wavelet.enabled) { - if(pp->wavelet.tmrs == 0) { + if(pp->wavelet.enabled) { + if(pp->wavelet.tmrs == 0 || pp->wavelet.TMmethod == "cont") { strength->set_sensitive (true); gamma->set_sensitive (true); - } else { + } else if(pp->wavelet.tmrs != 0 && pp->wavelet.TMmethod == "tm") { strength->set_sensitive (false); gamma->set_sensitive (false); } From 01fbc2eddff2dfff5f84da88eec27cc160be70e2 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 12 Jan 2020 08:03:52 +0100 Subject: [PATCH 141/453] Suppress interaction between wavelet and tone-mapping --- rtengine/improcfun.cc | 8 ++++---- rtgui/epd.cc | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 59fb0f016..d5c69773e 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -5131,11 +5131,11 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, int Wi if (!params->epd.enabled) { return; } - +/* if (params->wavelet.enabled && params->wavelet.tmrs != 0) { return; } - +*/ float stren = params->epd.strength; float edgest = params->epd.edgeStopping; float sca = params->epd.scale; @@ -5245,11 +5245,11 @@ void ImProcFunctions::EPDToneMap (LabImage *lab, unsigned int Iterates, int skip if (!params->epd.enabled) { return; } - +/* if (params->wavelet.enabled && params->wavelet.tmrs != 0) { return; } - +*/ float stren = params->epd.strength; float edgest = params->epd.edgeStopping; float sca = params->epd.scale; diff --git a/rtgui/epd.cc b/rtgui/epd.cc index a620f4468..b13effba3 100644 --- a/rtgui/epd.cc +++ b/rtgui/epd.cc @@ -70,7 +70,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite setEnabled(pp->epd.enabled); strength->set_sensitive (true); gamma->set_sensitive (true); - +/* if(pp->wavelet.enabled) { if(pp->wavelet.tmrs == 0 || pp->wavelet.TMmethod == "cont") { strength->set_sensitive (true); @@ -80,7 +80,7 @@ void EdgePreservingDecompositionUI::read(const ProcParams *pp, const ParamsEdite gamma->set_sensitive (false); } } - +*/ strength->setValue(pp->epd.strength); gamma->setValue(pp->epd.gamma); edgeStopping->setValue(pp->epd.edgeStopping); @@ -100,7 +100,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) pp->epd.enabled = getEnabled(); strength->set_sensitive (true); gamma->set_sensitive (true); - +/* if(pp->wavelet.enabled) { if(pp->wavelet.tmrs == 0 || pp->wavelet.TMmethod == "cont") { strength->set_sensitive (true); @@ -110,7 +110,7 @@ void EdgePreservingDecompositionUI::write(ProcParams *pp, ParamsEdited *pedited) gamma->set_sensitive (false); } } - +*/ if(pedited) { pedited->epd.strength = strength->getEditedState(); pedited->epd.gamma = gamma->getEditedState(); From 590ee199ccaf16ab12bbbb23c302cbd0e2ccd254 Mon Sep 17 00:00:00 2001 From: rfranke Date: Sun, 12 Jan 2020 16:09:11 +0100 Subject: [PATCH 142/453] Fix scrolling in thumb browser under macOS, see #5599 The Quartz backend emits adjusted GdkEventScroll delta values. This is why the RT thumb browser scrolls several hundred times too fast if the deltas are additionally multiplied by thumb size under macOS. See use of scroll_unit and GDK_WINDOWING_QUARTZ for Gtk scrollbars: https://gitlab.gnome.org/GNOME/gtk/blob/gtk-3-24/gtk/gtkrange.c#L3080 --- rtgui/thumbbrowserbase.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/rtgui/thumbbrowserbase.cc b/rtgui/thumbbrowserbase.cc index 5f75ab413..c611b252d 100644 --- a/rtgui/thumbbrowserbase.cc +++ b/rtgui/thumbbrowserbase.cc @@ -87,7 +87,16 @@ void ThumbBrowserBase::scroll (int direction, double deltaX, double deltaY) } //GDK_SCROLL_SMOOTH can come in as many events with small deltas, don't quantize these to +/-1.0 so trackpads work well double coef; + double scroll_unit; + if (arrangement == TB_Vertical) { + scroll_unit = vscroll.get_adjustment()->get_step_increment(); + } else { + scroll_unit = hscroll.get_adjustment()->get_step_increment(); + } if(direction == GDK_SCROLL_SMOOTH) { +#ifdef GDK_WINDOWING_QUARTZ + scroll_unit = 1.0; +#endif coef = delta; } else if (direction == GDK_SCROLL_DOWN) { coef = +1.0; @@ -99,7 +108,7 @@ void ThumbBrowserBase::scroll (int direction, double deltaX, double deltaY) if (direction == GDK_SCROLL_UP || direction == GDK_SCROLL_DOWN || direction == GDK_SCROLL_SMOOTH) { if (arrangement == TB_Vertical) { double currValue = vscroll.get_value(); - double newValue = rtengine::LIM(currValue + coef * vscroll.get_adjustment()->get_step_increment(), + double newValue = rtengine::LIM(currValue + coef * scroll_unit, vscroll.get_adjustment()->get_lower (), vscroll.get_adjustment()->get_upper()); if (newValue != currValue) { @@ -107,7 +116,7 @@ void ThumbBrowserBase::scroll (int direction, double deltaX, double deltaY) } } else { double currValue = hscroll.get_value(); - double newValue = rtengine::LIM(currValue + coef * hscroll.get_adjustment()->get_step_increment(), + double newValue = rtengine::LIM(currValue + coef * scroll_unit, hscroll.get_adjustment()->get_lower(), hscroll.get_adjustment()->get_upper()); if (newValue != currValue) { From 54bce4af64a597732d2964d8ea40169322a0214c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 12 Jan 2020 19:36:37 +0100 Subject: [PATCH 143/453] Capture sharpening: minor speedups --- rtengine/capturesharpening.cc | 91 +++++++++++++++++------------------ 1 file changed, 44 insertions(+), 47 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index f8067ac0b..21217918e 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -26,7 +26,7 @@ #include "procparams.h" #include "color.h" #include "rt_algo.h" -//#define BENCHMARK +#define BENCHMARK #include "StopWatch.h" #include "opthelper.h" #include "../rtgui/multilangmgr.h" @@ -525,28 +525,25 @@ float calcRadiusXtrans(const float * const *rawData, int W, int H, float lowerLi bool checkForStop(float** tmpIThr, float** iterCheck, int fullTileSize, int border) { - bool stopped = false; - for (int ii = border; !stopped && ii < fullTileSize - border; ++ii) { + for (int ii = border; ii < fullTileSize - border; ++ii) { #ifdef __SSE2__ for (int jj = border; jj < fullTileSize - border; jj += 4) { - if (_mm_movemask_ps((vfloat)vmaskf_lt(LVFU(tmpIThr[ii][jj]), LVFU(iterCheck[ii - border][jj - border])))) { - stopped = true; - break; + if (UNLIKELY(_mm_movemask_ps((vfloat)vmaskf_lt(LVFU(tmpIThr[ii][jj]), LVFU(iterCheck[ii - border][jj - border]))))) { + return true; } } #else for (int jj = border; jj < fullTileSize - border; ++jj) { if (tmpIThr[ii][jj] < iterCheck[ii - border][jj - border]) { - stopped = true; - break; + return true; } } #endif } - return stopped; + return false; } -void CaptureDeconvSharpening (float ** clipmask, float** luminance, float** oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal) +void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal) { BENCHFUN const bool is5x5 = (sigma <= 0.84 && sigmaCornerOffset == 0.0); @@ -571,6 +568,7 @@ BENCHFUN double progress = startVal; const double progressStep = (endVal - startVal) * rtengine::SQR(tileSize) / (W * H); + constexpr float minBlend = 0.01f; #ifdef _OPENMP @@ -597,14 +595,14 @@ BENCHFUN if (checkIterStop) { for (int k = 0, ii = endOfCol ? H - fullTileSize + border : i; k < tileSize; ++k, ++ii) { for (int l = 0, jj = endOfRow ? W - fullTileSize + border : j; l < tileSize; ++l, ++jj) { - iterCheck[k][l] = oldLuminance[ii][jj] * clipmask[ii][jj] * 0.5f; - maxVal = std::max(maxVal, clipmask[ii][jj]); + iterCheck[k][l] = oldLuminance[ii][jj] * blend[ii][jj] * 0.5f; + maxVal = std::max(maxVal, blend[ii][jj]); } } } else { for (int k = 0, ii = endOfCol ? H - fullTileSize + border : i; k < tileSize; ++k, ++ii) { for (int l = 0, jj = endOfRow ? W - fullTileSize + border : j; l < tileSize; ++l, ++jj) { - maxVal = std::max(maxVal, clipmask[ii][jj]); + maxVal = std::max(maxVal, blend[ii][jj]); } } } @@ -623,14 +621,14 @@ BENCHFUN if (checkIterStop) { for (int ii = 0; ii < tileSize; ++ii) { for (int jj = 0; jj < tileSize; ++jj) { - iterCheck[ii][jj] = oldLuminance[i + ii][j + jj] * clipmask[i + ii][j + jj] * 0.5f; - maxVal = std::max(maxVal, clipmask[i + ii][j + jj]); + iterCheck[ii][jj] = oldLuminance[i + ii][j + jj] * blend[i + ii][j + jj] * 0.5f; + maxVal = std::max(maxVal, blend[i + ii][j + jj]); } } } else { for (int ii = 0; ii < tileSize; ++ii) { for (int jj = 0; jj < tileSize; ++jj) { - maxVal = std::max(maxVal, clipmask[i + ii][j + jj]); + maxVal = std::max(maxVal, blend[i + ii][j + jj]); } } } @@ -645,23 +643,22 @@ BENCHFUN } } } - bool stopped = false; if (is3x3) { - for (int k = 0; k < iterations && !stopped; ++k) { + for (int k = 0; k < iterations; ++k) { // apply 3x3 gaussian blur and divide luminance by result of gaussian blur gauss3x3div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel3); gauss3x3mult(tmpThr, tmpIThr, fullTileSize, kernel3); - if (checkIterStop) { - stopped = checkForStop(tmpIThr, iterCheck, fullTileSize, border); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; } } } else if (is5x5) { - for (int k = 0; k < iterations && !stopped; ++k) { + for (int k = 0; k < iterations; ++k) { // apply 5x5 gaussian blur and divide luminance by result of gaussian blur gauss5x5div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel5); gauss5x5mult(tmpThr, tmpIThr, fullTileSize, kernel5); - if (checkIterStop) { - stopped = checkForStop(tmpIThr, iterCheck, fullTileSize, border); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; } } } else { @@ -672,34 +669,34 @@ BENCHFUN if (sigmaTile > 0.84) { // have to use 7x7 kernel float lkernel7[7][7]; compute7x7kernel(static_cast(sigma) + distanceFactor * distance, lkernel7); - for (int k = 0; k < iterations && !stopped; ++k) { + for (int k = 0; k < iterations; ++k) { // apply 7x7 gaussian blur and divide luminance by result of gaussian blur gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel7); gauss7x7mult(tmpThr, tmpIThr, fullTileSize, lkernel7); - if (checkIterStop) { - stopped = checkForStop(tmpIThr, iterCheck, fullTileSize, border); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; } } } else { // can use 5x5 kernel - float lkernel7[5][5]; - compute5x5kernel(static_cast(sigma) + distanceFactor * distance, lkernel7); - for (int k = 0; k < iterations && !stopped; ++k) { + float lkernel5[5][5]; + compute5x5kernel(static_cast(sigma) + distanceFactor * distance, lkernel5); + for (int k = 0; k < iterations; ++k) { // apply 7x7 gaussian blur and divide luminance by result of gaussian blur - gauss5x5div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel7); - gauss5x5mult(tmpThr, tmpIThr, fullTileSize, lkernel7); - if (checkIterStop) { - stopped = checkForStop(tmpIThr, iterCheck, fullTileSize, border); + gauss5x5div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel5); + gauss5x5mult(tmpThr, tmpIThr, fullTileSize, lkernel5); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; } } } } } else { - for (int k = 0; k < iterations && !stopped; ++k) { + for (int k = 0; k < iterations; ++k) { // apply 7x7 gaussian blur and divide luminance by result of gaussian blur gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7); gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7); - if (checkIterStop) { - stopped = checkForStop(tmpIThr, iterCheck, fullTileSize, border); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; } } } @@ -719,12 +716,12 @@ BENCHFUN } } if (plistener) { - if (++progresscounter % 16 == 0) { + if (++progresscounter % 32 == 0) { #ifdef _OPENMP #pragma omp critical(csprogress) #endif { - progress += 16.0 * progressStep; + progress += 32.0 * progressStep; progress = rtengine::min(progress, endVal); plistener->setProgress(progress); } @@ -751,6 +748,7 @@ void RawImageSource::captureSharpening(const procparams::CaptureSharpeningParams plistener->setProgress(0.0); } BENCHFUN + constexpr float xyz_rgb[3][3] = { // XYZ from RGB { 0.412453, 0.357580, 0.180423 }, { 0.212671, 0.715160, 0.072169 }, @@ -829,8 +827,7 @@ BENCHFUN plistener->setProgress(0.1); } - array2D& blend = red; // red will be overridden anyway => we can use its buffer to store the blend mask - buildBlendMask(L, blend, W, H, contrast, sharpeningParams.autoContrast, clipMask); + buildBlendMask(L, clipMask, W, H, contrast, sharpeningParams.autoContrast, clipMask); if (plistener) { plistener->setProgress(0.2); } @@ -840,7 +837,7 @@ BENCHFUN #endif for (int i = 0; i < H; ++i) { for (int j = 0; j < W; ++j) { - red[i][j] = green[i][j] = blue[i][j] = blend[i][j] * 16384.f; + red[i][j] = green[i][j] = blue[i][j] = clipMask[i][j] * 16384.f; } } if (plistener) { @@ -877,18 +874,18 @@ BENCHFUN if (plistener) { plistener->setProgress(0.1); } + // calculate contrast based blend factors to reduce sharpening in regions with low contrast - array2D& blend = clipMask; // we can share blend and clipMask buffer here - buildBlendMask(L, blend, W, H, contrast, sharpeningParams.autoContrast, clipMask); + buildBlendMask(L, clipMask, W, H, contrast, sharpeningParams.autoContrast, clipMask); if (plistener) { plistener->setProgress(0.2); } conrastThreshold = contrast * 100.f; - - CaptureDeconvSharpening(clipMask, YNew, YOld, blend, W, H, radius, sharpeningParams.deconvradiusOffset, sharpeningParams.deconviter, sharpeningParams.deconvitercheck, plistener, 0.2, 0.9); + CaptureDeconvSharpening(YNew, YOld, clipMask, W, H, radius, sharpeningParams.deconvradiusOffset, sharpeningParams.deconviter, sharpeningParams.deconvitercheck, plistener, 0.2, 0.9); if (plistener) { plistener->setProgress(0.9); } + #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) #endif @@ -896,7 +893,7 @@ BENCHFUN int j = 0; #ifdef __SSE2__ for (; j < W - 3; j += 4) { - const vfloat factor = vmaxf(LVFU(YNew[i][j]), ZEROV) / vmaxf(LVFU(YOld[i][j]), F2V(0.00001f)); + const vfloat factor = LVFU(YNew[i][j]) / vmaxf(LVFU(YOld[i][j]), F2V(0.00001f)); STVFU(red[i][j], LVFU(redVals[i][j]) * factor); STVFU(green[i][j], LVFU(greenVals[i][j]) * factor); STVFU(blue[i][j], LVFU(blueVals[i][j]) * factor); @@ -904,7 +901,7 @@ BENCHFUN #endif for (; j < W; ++j) { - const float factor = std::max(YNew[i][j], 0.f) / std::max(YOld[i][j], 0.00001f); + const float factor = YNew[i][j] / std::max(YOld[i][j], 0.00001f); red[i][j] = redVals[i][j] * factor; green[i][j] = greenVals[i][j] * factor; blue[i][j] = blueVals[i][j] * factor; From 4ee4888d5ba30536dcbbd3c67b68f36817c3b742 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 12 Jan 2020 19:38:37 +0100 Subject: [PATCH 144/453] Capture sharpening: Disable benchmark --- rtengine/capturesharpening.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 21217918e..d357eb59c 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -26,7 +26,7 @@ #include "procparams.h" #include "color.h" #include "rt_algo.h" -#define BENCHMARK +//#define BENCHMARK #include "StopWatch.h" #include "opthelper.h" #include "../rtgui/multilangmgr.h" From 906347ab2d1e913436568716ad5f463db0f18c5a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 15 Jan 2020 22:15:31 +0100 Subject: [PATCH 145/453] Capture sharpening: some cleanups --- rtengine/array2D.h | 10 +++++++++ rtengine/capturesharpening.cc | 42 ++++++++--------------------------- 2 files changed, 19 insertions(+), 33 deletions(-) diff --git a/rtengine/array2D.h b/rtengine/array2D.h index 208dab1aa..de6381aeb 100644 --- a/rtengine/array2D.h +++ b/rtengine/array2D.h @@ -188,6 +188,16 @@ public: } } + void fill(const T val, bool multiThread = false) + { +#ifdef _OPENMP + #pragma omp parallel for if(multiThread) +#endif + for (int i = 0; i < x * y; ++i) { + data[i] = val; + } + } + void free() { if ((owner) && (data)) { diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index d357eb59c..072935dc2 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -99,31 +99,7 @@ void compute3x3kernel(float sigma, float kernel[3][3]) { } } -inline void initTile(float** dst, const int tileSize) -{ - - // first rows - for (int i = 0; i < 3; ++i) { - for (int j = 0; j < tileSize; ++j) { - dst[i][j] = 1.f; - } - } - - // left and right border - for (int i = 3; i < tileSize - 3; ++i) { - dst[i][0] = dst[i][1] = dst[i][2] = 1.f; - dst[i][tileSize - 3] = dst[i][tileSize - 2] = dst[i][tileSize - 1] = 1.f; - } - - // last rows - for (int i = tileSize - 3 ; i < tileSize; ++i) { - for (int j = 0; j < tileSize; ++j) { - dst[i][j] = 1.f; - } - } -} - -inline void gauss3x3div (float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[3][3]) +void gauss3x3div (float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[3][3]) { const float c11 = kernel[0][0]; @@ -145,7 +121,7 @@ inline void gauss3x3div (float** RESTRICT src, float** RESTRICT dst, float** RES } } -inline void gauss5x5div (float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[5][5]) +void gauss5x5div (float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[5][5]) { const float c21 = kernel[0][1]; @@ -173,7 +149,7 @@ inline void gauss5x5div (float** RESTRICT src, float** RESTRICT dst, float** RES } } -inline void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[7][7]) +void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[7][7]) { const float c31 = kernel[0][2]; @@ -207,7 +183,7 @@ inline void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** REST } } -inline void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[3][3]) +void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[3][3]) { const float c11 = kernel[0][0]; const float c10 = kernel[0][1]; @@ -229,7 +205,7 @@ inline void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int t } -inline void gauss5x5mult (float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[5][5]) +void gauss5x5mult (float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[5][5]) { const float c21 = kernel[0][1]; @@ -257,7 +233,7 @@ inline void gauss5x5mult (float** RESTRICT src, float** RESTRICT dst, const int } } -inline void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[7][7]) +void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[7][7]) { const float c31 = kernel[0][2]; @@ -578,9 +554,9 @@ BENCHFUN int progresscounter = 0; array2D tmpIThr(fullTileSize, fullTileSize); array2D tmpThr(fullTileSize, fullTileSize); + tmpThr.fill(1.f); array2D lumThr(fullTileSize, fullTileSize); array2D iterCheck(tileSize, tileSize); - initTile(tmpThr, fullTileSize); #ifdef _OPENMP #pragma omp for schedule(dynamic,16) collapse(2) #endif @@ -705,13 +681,13 @@ BENCHFUN // special handling for small tiles at end of row or column for (int k = border, ii = endOfCol ? H - fullTileSize : i - border; k < fullTileSize - border; ++k) { for (int l = border, jj = endOfRow ? W - fullTileSize : j - border; l < fullTileSize - border; ++l) { - luminance[ii + k][jj + l] = rtengine::intp(blend[ii + k][jj + l], std::max(tmpIThr[k][l], 0.0f), luminance[ii + k][jj + l]); + luminance[ii + k][jj + l] = rtengine::intp(blend[ii + k][jj + l], tmpIThr[k][l], luminance[ii + k][jj + l]); } } } else { for (int ii = border; ii < fullTileSize - border; ++ii) { for (int jj = border; jj < fullTileSize - border; ++jj) { - luminance[i + ii - border][j + jj - border] = rtengine::intp(blend[i + ii - border][j + jj - border], std::max(tmpIThr[ii][jj], 0.0f), luminance[i + ii - border][j + jj - border]); + luminance[i + ii - border][j + jj - border] = rtengine::intp(blend[i + ii - border][j + jj - border], tmpIThr[ii][jj], luminance[i + ii - border][j + jj - border]); } } } From d5c60475e577c725cbd31b777334fc3d35e3a91e Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 17 Jan 2020 14:16:54 +0100 Subject: [PATCH 146/453] review mlsharpen --- rtengine/CMakeLists.txt | 1 + rtengine/ipsharpen.cc | 237 +------------------------------------ rtengine/ipsharpenedges.cc | 223 ++++++++++++++++++++++++++++++++++ 3 files changed, 225 insertions(+), 236 deletions(-) create mode 100644 rtengine/ipsharpenedges.cc diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 6bce68d1a..baca55c0a 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -94,6 +94,7 @@ set(RTENGINESOURCEFILES ipretinex.cc ipshadowshighlights.cc ipsharpen.cc + ipsharpenedges.cc ipsoftlight.cc iptransform.cc ipvibrance.cc diff --git a/rtengine/ipsharpen.cc b/rtengine/ipsharpen.cc index 7198b76c5..78892a024 100644 --- a/rtengine/ipsharpen.cc +++ b/rtengine/ipsharpen.cc @@ -30,7 +30,7 @@ #include "settings.h" #include "sleef.h" -//#define BENCHMARK +#define BENCHMARK #include "StopWatch.h" using namespace std; @@ -385,241 +385,6 @@ BENCHFUN } -// To the extent possible under law, Manuel Llorens -// has waived all copyright and related or neighboring rights to this work. -// This work is published from: Spain. - -// Thanks to Manuel for this excellent job (Jacques Desmis JDC or frej83) -void ImProcFunctions::MLsharpen (LabImage* lab) -{ - // JD: this algorithm maximize clarity of images; it does not play on accutance. It can remove (partially) the effects of the AA filter) - // I think we can use this algorithm alone in most cases, or first to clarify image and if you want a very little USM (unsharp mask sharpening) after... - if (!params->sharpenEdge.enabled) { - return; - } - - MyTime t1e, t2e; - t1e.set(); - - int offset, c, i, j, p, width2; - int width = lab->W, height = lab->H; - float *L, lumH, lumV, lumD1, lumD2, v, contrast, s; - float difL, difR, difT, difB, difLT, difRB, difLB, difRT, wH, wV, wD1, wD2, chmax[3]; - float f1, f2, f3, f4; - float templab; - int iii, kkk; - width2 = 2 * width; - const float epsil = 0.01f; //prevent divide by zero - const float eps2 = 0.001f; //prevent divide by zero - float amount; - amount = params->sharpenEdge.amount / 100.0f; - - if (amount < 0.00001f) { - return; - } - - if (settings->verbose) { - printf ("SharpenEdge amount %f\n", amount); - } - - L = new float[width * height]; - - chmax[0] = 8.0f; - chmax[1] = 3.0f; - chmax[2] = 3.0f; - - int channels; - - if (params->sharpenEdge.threechannels) { - channels = 0; - } else { - channels = 2; - } - - if (settings->verbose) { - printf ("SharpenEdge channels %d\n", channels); - } - - int passes = params->sharpenEdge.passes; - - if (settings->verbose) { - printf ("SharpenEdge passes %d\n", passes); - } - - for (p = 0; p < passes; p++) - for (c = 0; c <= channels; c++) { // c=0 Luminance only - -#ifdef _OPENMP - #pragma omp parallel for private(offset) shared(L) -#endif - - for (offset = 0; offset < width * height; offset++) { - int ii = offset / width; - int kk = offset - ii * width; - - if (c == 0) { - L[offset] = lab->L[ii][kk] / 327.68f; // adjust to RT and to 0..100 - } else if (c == 1) { - L[offset] = lab->a[ii][kk] / 327.68f; - } else { /*if (c==2) */ - L[offset] = lab->b[ii][kk] / 327.68f; - } - } - -#ifdef _OPENMP - #pragma omp parallel for private(j,i,iii,kkk, templab,offset,wH,wV,wD1,wD2,s,lumH,lumV,lumD1,lumD2,v,contrast,f1,f2,f3,f4,difT,difB,difL,difR,difLT,difLB,difRT,difRB) shared(lab,L,amount) -#endif - - for(j = 2; j < height - 2; j++) - for(i = 2, offset = j * width + i; i < width - 2; i++, offset++) { - // weight functions - wH = eps2 + fabs(L[offset + 1] - L[offset - 1]); - wV = eps2 + fabs(L[offset + width] - L[offset - width]); - - s = 1.0f + fabs(wH - wV) / 2.0f; - wD1 = eps2 + fabs(L[offset + width + 1] - L[offset - width - 1]) / s; - wD2 = eps2 + fabs(L[offset + width - 1] - L[offset - width + 1]) / s; - s = wD1; - wD1 /= wD2; - wD2 /= s; - - // initial values - int ii = offset / width; - int kk = offset - ii * width; - - if (c == 0) { - lumH = lumV = lumD1 = lumD2 = v = lab->L[ii][kk] / 327.68f; - } else if (c == 1) { - lumH = lumV = lumD1 = lumD2 = v = lab->a[ii][kk] / 327.68f; - } else { /* if (c==2) */ - lumH = lumV = lumD1 = lumD2 = v = lab->b[ii][kk] / 327.68f; - } - - - // contrast detection - contrast = sqrt(fabs(L[offset + 1] - L[offset - 1]) * fabs(L[offset + 1] - L[offset - 1]) + fabs(L[offset + width] - L[offset - width]) * fabs(L[offset + width] - L[offset - width])) / chmax[c]; - - if (contrast > 1.0f) { - contrast = 1.0f; - } - - // new possible values - if (((L[offset] < L[offset - 1]) && (L[offset] > L[offset + 1])) || ((L[offset] > L[offset - 1]) && (L[offset] < L[offset + 1]))) { - f1 = fabs(L[offset - 2] - L[offset - 1]); - f2 = fabs(L[offset - 1] - L[offset]); - f3 = fabs(L[offset - 1] - L[offset - width]) * fabs(L[offset - 1] - L[offset + width]); - f4 = sqrt(fabs(L[offset - 1] - L[offset - width2]) * fabs(L[offset - 1] - L[offset + width2])); - difL = f1 * f2 * f2 * f3 * f3 * f4; - f1 = fabs(L[offset + 2] - L[offset + 1]); - f2 = fabs(L[offset + 1] - L[offset]); - f3 = fabs(L[offset + 1] - L[offset - width]) * fabs(L[offset + 1] - L[offset + width]); - f4 = sqrt(fabs(L[offset + 1] - L[offset - width2]) * fabs(L[offset + 1] - L[offset + width2])); - difR = f1 * f2 * f2 * f3 * f3 * f4; - - if ((difR > epsil) && (difL > epsil)) { - lumH = (L[offset - 1] * difR + L[offset + 1] * difL) / (difL + difR); - lumH = v * (1.f - contrast) + lumH * contrast; - } - } - - if (((L[offset] < L[offset - width]) && (L[offset] > L[offset + width])) || ((L[offset] > L[offset - width]) && (L[offset] < L[offset + width]))) { - f1 = fabs(L[offset - width2] - L[offset - width]); - f2 = fabs(L[offset - width] - L[offset]); - f3 = fabs(L[offset - width] - L[offset - 1]) * fabs(L[offset - width] - L[offset + 1]); - f4 = sqrt(fabs(L[offset - width] - L[offset - 2]) * fabs(L[offset - width] - L[offset + 2])); - difT = f1 * f2 * f2 * f3 * f3 * f4; - f1 = fabs(L[offset + width2] - L[offset + width]); - f2 = fabs(L[offset + width] - L[offset]); - f3 = fabs(L[offset + width] - L[offset - 1]) * fabs(L[offset + width] - L[offset + 1]); - f4 = sqrt(fabs(L[offset + width] - L[offset - 2]) * fabs(L[offset + width] - L[offset + 2])); - difB = f1 * f2 * f2 * f3 * f3 * f4; - - if ((difB > epsil) && (difT > epsil)) { - lumV = (L[offset - width] * difB + L[offset + width] * difT) / (difT + difB); - lumV = v * (1.f - contrast) + lumV * contrast; - } - } - - if (((L[offset] < L[offset - 1 - width]) && (L[offset] > L[offset + 1 + width])) || ((L[offset] > L[offset - 1 - width]) && (L[offset] < L[offset + 1 + width]))) { - f1 = fabs(L[offset - 2 - width2] - L[offset - 1 - width]); - f2 = fabs(L[offset - 1 - width] - L[offset]); - f3 = fabs(L[offset - 1 - width] - L[offset - width + 1]) * fabs(L[offset - 1 - width] - L[offset + width - 1]); - f4 = sqrt(fabs(L[offset - 1 - width] - L[offset - width2 + 2]) * fabs(L[offset - 1 - width] - L[offset + width2 - 2])); - difLT = f1 * f2 * f2 * f3 * f3 * f4; - f1 = fabs(L[offset + 2 + width2] - L[offset + 1 + width]); - f2 = fabs(L[offset + 1 + width] - L[offset]); - f3 = fabs(L[offset + 1 + width] - L[offset - width + 1]) * fabs(L[offset + 1 + width] - L[offset + width - 1]); - f4 = sqrt(fabs(L[offset + 1 + width] - L[offset - width2 + 2]) * fabs(L[offset + 1 + width] - L[offset + width2 - 2])); - difRB = f1 * f2 * f2 * f3 * f3 * f4; - - if ((difLT > epsil) && (difRB > epsil)) { - lumD1 = (L[offset - 1 - width] * difRB + L[offset + 1 + width] * difLT) / (difLT + difRB); - lumD1 = v * (1.f - contrast) + lumD1 * contrast; - } - } - - if (((L[offset] < L[offset + 1 - width]) && (L[offset] > L[offset - 1 + width])) || ((L[offset] > L[offset + 1 - width]) && (L[offset] < L[offset - 1 + width]))) { - f1 = fabs(L[offset - 2 + width2] - L[offset - 1 + width]); - f2 = fabs(L[offset - 1 + width] - L[offset]); - f3 = fabs(L[offset - 1 + width] - L[offset - width - 1]) * fabs(L[offset - 1 + width] - L[offset + width + 1]); - f4 = sqrt(fabs(L[offset - 1 + width] - L[offset - width2 - 2]) * fabs(L[offset - 1 + width] - L[offset + width2 + 2])); - difLB = f1 * f2 * f2 * f3 * f3 * f4; - f1 = fabs(L[offset + 2 - width2] - L[offset + 1 - width]); - f2 = fabs(L[offset + 1 - width] - L[offset]) * fabs(L[offset + 1 - width] - L[offset]); - f3 = fabs(L[offset + 1 - width] - L[offset + width + 1]) * fabs(L[offset + 1 - width] - L[offset - width - 1]); - f4 = sqrt(fabs(L[offset + 1 - width] - L[offset + width2 + 2]) * fabs(L[offset + 1 - width] - L[offset - width2 - 2])); - difRT = f1 * f2 * f2 * f3 * f3 * f4; - - if ((difLB > epsil) && (difRT > epsil)) { - lumD2 = (L[offset + 1 - width] * difLB + L[offset - 1 + width] * difRT) / (difLB + difRT); - lumD2 = v * (1.f - contrast) + lumD2 * contrast; - } - } - - s = amount; - - // avoid sharpening diagonals too much - if (((fabs(wH / wV) < 0.45f) && (fabs(wH / wV) > 0.05f)) || ((fabs(wV / wH) < 0.45f) && (fabs(wV / wH) > 0.05f))) { - s = amount / 3.0f; - } - - // final mix - if ((wH != 0.0f) && (wV != 0.0f) && (wD1 != 0.0f) && (wD2 != 0.0f)) { - iii = offset / width; - kkk = offset - iii * width; - float provL = lab->L[iii][kkk] / 327.68f; - - if(c == 0) { - if(provL < 92.f) { - templab = v * (1.f - s) + (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2) * s; - } else { - templab = provL; - } - } else { - templab = v * (1.f - s) + (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2) * s; - } - - if (c == 0) { - lab->L[iii][kkk] = fabs(327.68f * templab); // fabs because lab->L always >0 - } else if (c == 1) { - lab->a[iii][kkk] = 327.68f * templab ; - } else if (c == 2) { - lab->b[iii][kkk] = 327.68f * templab ; - } - } - - } - } - - delete [] L; - - t2e.set(); - - if (settings->verbose) { - printf("SharpenEdge gradient %d usec\n", t2e.etime(t1e)); - } -} - // To the extent possible under law, Manuel Llorens // has waived all copyright and related or neighboring rights to this work. // This code is licensed under CC0 v1.0, see license information at diff --git a/rtengine/ipsharpenedges.cc b/rtengine/ipsharpenedges.cc new file mode 100644 index 000000000..4d310abb2 --- /dev/null +++ b/rtengine/ipsharpenedges.cc @@ -0,0 +1,223 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2004-2020 Gabor Horvath + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . +*/ + +#include +#include "improcfun.h" +#include "labimage.h" +#include "procparams.h" +#include "rt_math.h" + +#define BENCHMARK +#include "StopWatch.h" + +using namespace std; +namespace { +#ifdef __SSE2__ +bool inintervall(float a, float b, float c) +{ + return a < std::max(b, c) && a > std::min(b, c); +} + +float selectweight(float a, float b, float low, float high) +{ + const float minVal = std::min(a,b); + const float maxVal = std::max(a,b); + const float res = (minVal < 0.45f * maxVal) ? low : high; + return (minVal > 0.05f * maxVal) ? res : high; +} + +#else +bool inintervall(float a, float b, float c) +{ + return (a < b && a > c) || (a < c && a > b); +} + +float selectweight(float a, float b, float low, float high) +{ + if ((a < 0.45f * b && a > 0.05f * b) || (b < 0.45f * a && b > 0.05f * a)) { + return low; + } else { + return high; + } +} + +#endif +} +namespace rtengine +{ + +// To the extent possible under law, Manuel Llorens +// has waived all copyright and related or neighboring rights to this work. +// This work is published from: Spain. + +// Thanks to Manuel for this excellent job (Jacques Desmis JDC or frej83) +void ImProcFunctions::MLsharpen (LabImage* lab) +{ + // JD: this algorithm maximize clarity of images; it does not play on accutance. It can remove (partially) the effects of the AA filter) + // I think we can use this algorithm alone in most cases, or first to clarify image and if you want a very little USM (unsharp mask sharpening) after... + if (!params->sharpenEdge.enabled || params->sharpenEdge.amount == 0) { + return; + } + +BENCHFUN + + const int width = lab->W, height = lab->H; + constexpr float chmax[3] = {1.f / 8.f, 1.f / 3.f, 1.f / 3.f}; + const int width2 = 2 * width; + constexpr float eps2 = 0.001f; //prevent divide by zero + const float amount = params->sharpenEdge.amount / 100.0f; + const float amountby3 = params->sharpenEdge.amount / 300.0f; + + std::unique_ptr L(new float[width * height]); + + const int channels = params->sharpenEdge.threechannels ? 1 : 3; + const int passes = params->sharpenEdge.passes; + + for (int c = 0; c < channels; ++c) { // c=0 Luminance only + float** channel = c == 0 ? lab->L : c == 1 ? lab->a : lab->b; + for (int p = 0; p < passes; ++p) { +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int i = 0; i < height; ++i) { + for (int j = 0; j < width; ++j) { + L[i * width + j] = channel[i][j] / 327.68f; + } + } + +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic,16) +#endif + + for (int j = 2; j < height - 2; j++) { + for (int i = 2, offset = j * width + i; i < width - 2; i++, offset++) { + // weight functions + const float wH = eps2 + fabs(L[offset + 1] - L[offset - 1]); + const float wV = eps2 + fabs(L[offset + width] - L[offset - width]); + + float s = 2.f / (2.f + fabs(wH - wV)); + float wD1 = eps2 + fabs(L[offset + width + 1] - L[offset - width - 1]) * s; + float wD2 = eps2 + fabs(L[offset + width - 1] - L[offset - width + 1]) * s; + s = wD1; + wD1 /= wD2; + wD2 /= s; + + const float v = L[offset]; + float lumH, lumV, lumD1, lumD2; + lumH = lumV = lumD1 = lumD2 = v; + + // contrast detection + const float contrast = std::min(std::sqrt(SQR(L[offset + 1] - L[offset - 1]) + SQR(L[offset + width] - L[offset - width])) * chmax[c], 1.f); + + // new possible values + if (inintervall(L[offset], L[offset - 1], L[offset + 1])) { + float f1 = fabs(L[offset - 2] - L[offset - 1]); + float f2 = L[offset - 1] - L[offset]; + float f3 = (L[offset - 1] - L[offset - width]) * (L[offset - 1] - L[offset + width]); + float f4 = std::sqrt(fabs(L[offset - 1] - L[offset - width2]) * fabs(L[offset - 1] - L[offset + width2])); + const float difL = f1 * SQR(f2) * SQR(f3) * f4; + if (difL > 0.f) { + f1 = fabs(L[offset + 2] - L[offset + 1]); + f2 = L[offset + 1] - L[offset]; + f3 = (L[offset + 1] - L[offset - width]) * (L[offset + 1] - L[offset + width]); + f4 = std::sqrt(fabs(L[offset + 1] - L[offset - width2]) * fabs(L[offset + 1] - L[offset + width2])); + const float difR = f1 * SQR(f2) * SQR(f3) * f4; + if (difR > 0.f) { + lumH = (L[offset - 1] * difR + L[offset + 1] * difL) / (difL + difR); + lumH = intp(contrast, lumH, v); + } + } + } + + if (inintervall(L[offset], L[offset - width], L[offset + width])) { + float f1 = fabs(L[offset - width2] - L[offset - width]); + float f2 = L[offset - width] - L[offset]; + float f3 = (L[offset - width] - L[offset - 1]) * (L[offset - width] - L[offset + 1]); + float f4 = std::sqrt(fabs(L[offset - width] - L[offset - 2]) * fabs(L[offset - width] - L[offset + 2])); + const float difT = f1 * SQR(f2) * SQR(f3) * f4; + if (difT > 0.f) { + f1 = fabs(L[offset + width2] - L[offset + width]); + f2 = L[offset + width] - L[offset]; + f3 = (L[offset + width] - L[offset - 1]) * (L[offset + width] - L[offset + 1]); + f4 = std::sqrt(fabs(L[offset + width] - L[offset - 2]) * fabs(L[offset + width] - L[offset + 2])); + const float difB = f1 * SQR(f2) * SQR(f3) * f4; + if (difB > 0.f) { + lumV = (L[offset - width] * difB + L[offset + width] * difT) / (difT + difB); + lumV = intp(contrast, lumV, v); + } + } + } + + if (inintervall(L[offset], L[offset - 1 - width], L[offset + 1 + width])) { + float f1 = fabs(L[offset - 2 - width2] - L[offset - 1 - width]); + float f2 = L[offset - 1 - width] - L[offset]; + float f3 = (L[offset - 1 - width] - L[offset - width + 1]) * (L[offset - 1 - width] - L[offset + width - 1]); + float f4 = std::sqrt(fabs(L[offset - 1 - width] - L[offset - width2 + 2]) * fabs(L[offset - 1 - width] - L[offset + width2 - 2])); + const float difLT = f1 * SQR(f2) * SQR(f3) * f4; + if (difLT > 0.f) { + f1 = fabs(L[offset + 2 + width2] - L[offset + 1 + width]); + f2 = L[offset + 1 + width] - L[offset]; + f3 = (L[offset + 1 + width] - L[offset - width + 1]) * (L[offset + 1 + width] - L[offset + width - 1]); + f4 = std::sqrt(fabs(L[offset + 1 + width] - L[offset - width2 + 2]) * fabs(L[offset + 1 + width] - L[offset + width2 - 2])); + const float difRB = f1 * SQR(f2) * SQR(f3) * f4; + if (difRB > 0.f) { + lumD1 = (L[offset - 1 - width] * difRB + L[offset + 1 + width] * difLT) / (difLT + difRB); + lumD1 = intp(contrast, lumD1, v); + } + } + } + + if (inintervall(L[offset], L[offset + 1 - width], L[offset] > L[offset - 1 + width])) { + float f1 = fabs(L[offset - 2 + width2] - L[offset - 1 + width]); + float f2 = L[offset - 1 + width] - L[offset]; + float f3 = (L[offset - 1 + width] - L[offset - width - 1]) * (L[offset - 1 + width] - L[offset + width + 1]); + float f4 = std::sqrt(fabs(L[offset - 1 + width] - L[offset - width2 - 2]) * fabs(L[offset - 1 + width] - L[offset + width2 + 2])); + const float difLB = f1 * SQR(f2) * SQR(f3) * f4; + if (difLB > 0.f) { + f1 = fabs(L[offset + 2 - width2] - L[offset + 1 - width]); + f2 = L[offset + 1 - width] - L[offset]; + f3 = (L[offset + 1 - width] - L[offset + width + 1]) * (L[offset + 1 - width] - L[offset - width - 1]); + f4 = std::sqrt(fabs(L[offset + 1 - width] - L[offset + width2 + 2]) * fabs(L[offset + 1 - width] - L[offset - width2 - 2])); + const float difRT = f1 * SQR(f2) * SQR(f3) * f4; + if (difRT > 0.f) { + lumD2 = (L[offset + 1 - width] * difLB + L[offset - 1 + width] * difRT) / (difLB + difRT); + lumD2 = intp(contrast, lumD2, v); + } + } + } + + // final mix + // avoid sharpening diagonals too much + const float weight = selectweight(wH, wV, amountby3, amount); + + if (c == 0) { + if (v < 92.f) { + channel[j][i] = fabs(327.68f * intp(weight, (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2), v)); // fabs because lab->L always > 0 + } + } else { + channel[j][i] = 327.68f * intp(weight, (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2), v); + } + } + } + } + } +} + +} \ No newline at end of file From c304d3270214cccc1c445b8a1aaeef1e58c7377d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 17 Jan 2020 14:23:06 +0100 Subject: [PATCH 147/453] mlsharpen review: minor changes --- rtengine/ipsharpen.cc | 2 +- rtengine/ipsharpenedges.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/ipsharpen.cc b/rtengine/ipsharpen.cc index 78892a024..959030dc6 100644 --- a/rtengine/ipsharpen.cc +++ b/rtengine/ipsharpen.cc @@ -30,7 +30,7 @@ #include "settings.h" #include "sleef.h" -#define BENCHMARK +//#define BENCHMARK #include "StopWatch.h" using namespace std; diff --git a/rtengine/ipsharpenedges.cc b/rtengine/ipsharpenedges.cc index 4d310abb2..c42472598 100644 --- a/rtengine/ipsharpenedges.cc +++ b/rtengine/ipsharpenedges.cc @@ -220,4 +220,4 @@ BENCHFUN } } -} \ No newline at end of file +} From 507af11adf521a05cac111625282b906a1bc1e0f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 17 Jan 2020 16:25:20 +0100 Subject: [PATCH 148/453] mlsharpen: bugfix and speedup --- rtengine/ipsharpenedges.cc | 56 +++++++++++++++++++------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/rtengine/ipsharpenedges.cc b/rtengine/ipsharpenedges.cc index c42472598..73295e4fa 100644 --- a/rtengine/ipsharpenedges.cc +++ b/rtengine/ipsharpenedges.cc @@ -127,18 +127,18 @@ BENCHFUN const float contrast = std::min(std::sqrt(SQR(L[offset + 1] - L[offset - 1]) + SQR(L[offset + width] - L[offset - width])) * chmax[c], 1.f); // new possible values - if (inintervall(L[offset], L[offset - 1], L[offset + 1])) { + if (inintervall(v, L[offset - 1], L[offset + 1])) { float f1 = fabs(L[offset - 2] - L[offset - 1]); - float f2 = L[offset - 1] - L[offset]; + float f2 = L[offset - 1] - v; float f3 = (L[offset - 1] - L[offset - width]) * (L[offset - 1] - L[offset + width]); - float f4 = std::sqrt(fabs(L[offset - 1] - L[offset - width2]) * fabs(L[offset - 1] - L[offset + width2])); - const float difL = f1 * SQR(f2) * SQR(f3) * f4; + float f4 = std::sqrt(fabs((L[offset - 1] - L[offset - width2]) * (L[offset - 1] - L[offset + width2]))); + const float difL = f1 * SQR(f2 * f3) * f4; if (difL > 0.f) { f1 = fabs(L[offset + 2] - L[offset + 1]); - f2 = L[offset + 1] - L[offset]; + f2 = L[offset + 1] - v; f3 = (L[offset + 1] - L[offset - width]) * (L[offset + 1] - L[offset + width]); - f4 = std::sqrt(fabs(L[offset + 1] - L[offset - width2]) * fabs(L[offset + 1] - L[offset + width2])); - const float difR = f1 * SQR(f2) * SQR(f3) * f4; + f4 = std::sqrt(fabs((L[offset + 1] - L[offset - width2]) * (L[offset + 1] - L[offset + width2]))); + const float difR = f1 * SQR(f2 * f3) * f4; if (difR > 0.f) { lumH = (L[offset - 1] * difR + L[offset + 1] * difL) / (difL + difR); lumH = intp(contrast, lumH, v); @@ -146,18 +146,18 @@ BENCHFUN } } - if (inintervall(L[offset], L[offset - width], L[offset + width])) { + if (inintervall(v, L[offset - width], L[offset + width])) { float f1 = fabs(L[offset - width2] - L[offset - width]); - float f2 = L[offset - width] - L[offset]; + float f2 = L[offset - width] - v; float f3 = (L[offset - width] - L[offset - 1]) * (L[offset - width] - L[offset + 1]); - float f4 = std::sqrt(fabs(L[offset - width] - L[offset - 2]) * fabs(L[offset - width] - L[offset + 2])); - const float difT = f1 * SQR(f2) * SQR(f3) * f4; + float f4 = std::sqrt(fabs((L[offset - width] - L[offset - 2]) * (L[offset - width] - L[offset + 2]))); + const float difT = f1 * SQR(f2 * f3) * f4; if (difT > 0.f) { f1 = fabs(L[offset + width2] - L[offset + width]); - f2 = L[offset + width] - L[offset]; + f2 = L[offset + width] - v; f3 = (L[offset + width] - L[offset - 1]) * (L[offset + width] - L[offset + 1]); - f4 = std::sqrt(fabs(L[offset + width] - L[offset - 2]) * fabs(L[offset + width] - L[offset + 2])); - const float difB = f1 * SQR(f2) * SQR(f3) * f4; + f4 = std::sqrt(fabs((L[offset + width] - L[offset - 2]) * (L[offset + width] - L[offset + 2]))); + const float difB = f1 * SQR(f2 * f3) * f4; if (difB > 0.f) { lumV = (L[offset - width] * difB + L[offset + width] * difT) / (difT + difB); lumV = intp(contrast, lumV, v); @@ -165,18 +165,18 @@ BENCHFUN } } - if (inintervall(L[offset], L[offset - 1 - width], L[offset + 1 + width])) { + if (inintervall(v, L[offset - 1 - width], L[offset + 1 + width])) { float f1 = fabs(L[offset - 2 - width2] - L[offset - 1 - width]); - float f2 = L[offset - 1 - width] - L[offset]; + float f2 = L[offset - 1 - width] - v; float f3 = (L[offset - 1 - width] - L[offset - width + 1]) * (L[offset - 1 - width] - L[offset + width - 1]); - float f4 = std::sqrt(fabs(L[offset - 1 - width] - L[offset - width2 + 2]) * fabs(L[offset - 1 - width] - L[offset + width2 - 2])); - const float difLT = f1 * SQR(f2) * SQR(f3) * f4; + float f4 = std::sqrt(fabs((L[offset - 1 - width] - L[offset - width2 + 2]) * (L[offset - 1 - width] - L[offset + width2 - 2]))); + const float difLT = f1 * SQR(f2 * f3) * f4; if (difLT > 0.f) { f1 = fabs(L[offset + 2 + width2] - L[offset + 1 + width]); - f2 = L[offset + 1 + width] - L[offset]; + f2 = L[offset + 1 + width] - v; f3 = (L[offset + 1 + width] - L[offset - width + 1]) * (L[offset + 1 + width] - L[offset + width - 1]); - f4 = std::sqrt(fabs(L[offset + 1 + width] - L[offset - width2 + 2]) * fabs(L[offset + 1 + width] - L[offset + width2 - 2])); - const float difRB = f1 * SQR(f2) * SQR(f3) * f4; + f4 = std::sqrt(fabs((L[offset + 1 + width] - L[offset - width2 + 2]) * (L[offset + 1 + width] - L[offset + width2 - 2]))); + const float difRB = f1 * SQR(f2 * f3) * f4; if (difRB > 0.f) { lumD1 = (L[offset - 1 - width] * difRB + L[offset + 1 + width] * difLT) / (difLT + difRB); lumD1 = intp(contrast, lumD1, v); @@ -184,18 +184,18 @@ BENCHFUN } } - if (inintervall(L[offset], L[offset + 1 - width], L[offset] > L[offset - 1 + width])) { + if (inintervall(v, L[offset + 1 - width], L[offset - 1 + width])) { float f1 = fabs(L[offset - 2 + width2] - L[offset - 1 + width]); - float f2 = L[offset - 1 + width] - L[offset]; + float f2 = L[offset - 1 + width] - v; float f3 = (L[offset - 1 + width] - L[offset - width - 1]) * (L[offset - 1 + width] - L[offset + width + 1]); - float f4 = std::sqrt(fabs(L[offset - 1 + width] - L[offset - width2 - 2]) * fabs(L[offset - 1 + width] - L[offset + width2 + 2])); - const float difLB = f1 * SQR(f2) * SQR(f3) * f4; + float f4 = std::sqrt(fabs((L[offset - 1 + width] - L[offset - width2 - 2]) * (L[offset - 1 + width] - L[offset + width2 + 2]))); + const float difLB = f1 * SQR(f2 * f3) * f4; if (difLB > 0.f) { f1 = fabs(L[offset + 2 - width2] - L[offset + 1 - width]); - f2 = L[offset + 1 - width] - L[offset]; + f2 = L[offset + 1 - width] - v; f3 = (L[offset + 1 - width] - L[offset + width + 1]) * (L[offset + 1 - width] - L[offset - width - 1]); - f4 = std::sqrt(fabs(L[offset + 1 - width] - L[offset + width2 + 2]) * fabs(L[offset + 1 - width] - L[offset - width2 - 2])); - const float difRT = f1 * SQR(f2) * SQR(f3) * f4; + f4 = std::sqrt(fabs((L[offset + 1 - width] - L[offset + width2 + 2]) * (L[offset + 1 - width] - L[offset - width2 - 2]))); + const float difRT = f1 * SQR(f2 * f3) * f4; if (difRT > 0.f) { lumD2 = (L[offset + 1 - width] * difLB + L[offset - 1 + width] * difRT) / (difLB + difRT); lumD2 = intp(contrast, lumD2, v); From 136c67f0832acf4ccfa8a481e492032081bf2558 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Fri, 17 Jan 2020 10:15:16 -0800 Subject: [PATCH 149/453] macOS: libexpat handling --- tools/osx/macosx_bundle.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 200e5689e..cb8839455 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -93,7 +93,8 @@ PWD: ${PWD} __EOS__ LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" - +EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" + APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" RESOURCES="${CONTENTS}/Resources" @@ -165,7 +166,8 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme cp ${LOCAL_PREFIX}/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" # Copy libexpat into the app bundle (which is keg-only) -#cp ${LOCAL_PREFIX}/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks" + +if [[ -d /usr/local/Cellar/expat ]]; then cp /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else cp "${EXPATLIB}" "${CONTENTS}/Frameworks"; fi # Copy libz into the app bundle cp /usr/lib/libz.1.dylib "${CONTENTS}/Frameworks" From d82ea3af02021f5292c5a49acfb92942b82a25e3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 17 Jan 2020 23:18:48 +0100 Subject: [PATCH 150/453] reduce some include dependencies --- rtengine/camconst.cc | 4 ++-- rtengine/camconst.h | 12 +++++++++--- rtengine/color.h | 8 +++++++- rtengine/curves.cc | 5 ++--- rtengine/curves.h | 12 ++++++++---- rtengine/diagonalcurves.cc | 2 -- rtengine/iimage.h | 8 +++++++- rtengine/imagedata.h | 8 +++++++- rtengine/improcfun.h | 9 ++++++++- rtengine/previewimage.h | 8 +++++++- rtengine/rtthumbnail.h | 9 +++++++-- rtgui/previewloader.h | 9 +++++++-- 12 files changed, 71 insertions(+), 23 deletions(-) diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index d136d6a21..c5cfc26fa 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -638,7 +638,7 @@ CameraConst::update_globalGreenEquilibration(bool other) } bool -CameraConstantsStore::parse_camera_constants_file(Glib::ustring filename_) +CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_) { // read the file into a single long string const char *filename = filename_.c_str(); @@ -809,7 +809,7 @@ CameraConstantsStore::~CameraConstantsStore() } } -void CameraConstantsStore::init(Glib::ustring baseDir, Glib::ustring userSettingsDir) +void CameraConstantsStore::init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir) { parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json")); diff --git a/rtengine/camconst.h b/rtengine/camconst.h index 1096e1767..fbc16cb13 100644 --- a/rtengine/camconst.h +++ b/rtengine/camconst.h @@ -3,10 +3,16 @@ */ #pragma once -#include #include #include +namespace Glib +{ + +class ustring; + +} + namespace rtengine { @@ -62,11 +68,11 @@ private: std::map mCameraConstants; CameraConstantsStore(); - bool parse_camera_constants_file(Glib::ustring filename); + bool parse_camera_constants_file(const Glib::ustring& filename); public: ~CameraConstantsStore(); - void init(Glib::ustring baseDir, Glib::ustring userSettingsDir); + void init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir); static CameraConstantsStore *getInstance(void); CameraConst *get(const char make[], const char model[]); }; diff --git a/rtengine/color.h b/rtengine/color.h index 211615de1..8e0015c42 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -20,7 +20,6 @@ #pragma once #include -#include #include "rt_math.h" #include "LUT.h" @@ -30,6 +29,13 @@ #define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c) +namespace Glib +{ + +class ustring; + +} + namespace rtengine { diff --git a/rtengine/curves.cc b/rtengine/curves.cc index b2105a091..35a38d3b8 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -21,8 +21,7 @@ #include #include #include -#include -#include +#include #include "rt_math.h" @@ -2186,7 +2185,7 @@ void PerceptualToneCurve::init() } } -void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const +void PerceptualToneCurve::initApplyState(PerceptualToneCurveState & state, const Glib::ustring &workingSpace) const { // Get the curve's contrast value, and convert to a chroma scaling diff --git a/rtengine/curves.h b/rtengine/curves.h index bc8193b76..27f5a8adc 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -22,12 +22,9 @@ #include #include -#include - #include "rt_math.h" #include "flatcurvetypes.h" #include "diagonalcurvetypes.h" -#include "pipettebuffer.h" #include "noncopyable.h" #include "LUT.h" #include "sleef.h" @@ -37,6 +34,13 @@ #define CLIPI(a) ((a)>0?((a)<65534?(a):65534):0) +namespace Glib +{ + +class ustring; + +} + using namespace std; namespace rtengine @@ -940,7 +944,7 @@ private: float calculateToneCurveContrastValue() const; public: static void init(); - void initApplyState(PerceptualToneCurveState & state, Glib::ustring workingSpace) const; + void initApplyState(PerceptualToneCurveState & state, const Glib::ustring& workingSpace) const; void BatchApply(const size_t start, const size_t end, float *r, float *g, float *b, const PerceptualToneCurveState &state) const; }; diff --git a/rtengine/diagonalcurves.cc b/rtengine/diagonalcurves.cc index bb20b7cc1..e81f2fe92 100644 --- a/rtengine/diagonalcurves.cc +++ b/rtengine/diagonalcurves.cc @@ -16,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#include -#include #include "curves.h" #include #include diff --git a/rtengine/iimage.h b/rtengine/iimage.h index 7309dd91f..c2e9dfd3b 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -20,7 +20,6 @@ #include -#include #include #include "alignedbuffer.h" @@ -41,6 +40,13 @@ #define CHECK_BOUNDS 0 +namespace Glib +{ + +class ustring; + +} + namespace rtengine { diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index ff8ed4b86..5765d9aec 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -23,12 +23,18 @@ #include #include -#include #include #include "imageio.h" +namespace Glib +{ + +class ustring; + +} + namespace rtexif { diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 8f4ae7771..6538bd6b1 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -19,11 +19,17 @@ #pragma once #include +#include #include "coord2d.h" #include "gamutwarning.h" -#include "pipettebuffer.h" +namespace Glib +{ + +class ustring; + +} template class LUT; @@ -44,6 +50,7 @@ class FramesMetaData; class LensCorrection; class NoiseCurve; class OpacityCurve; +class PipetteBuffer; class ToneCurve; class WavCurve; class WavOpacityCurveBY; diff --git a/rtengine/previewimage.h b/rtengine/previewimage.h index e6c3ea070..2143509a3 100644 --- a/rtengine/previewimage.h +++ b/rtengine/previewimage.h @@ -18,10 +18,16 @@ */ #pragma once -#include #include +namespace Glib +{ + +class ustring; + +} + namespace rtengine { diff --git a/rtengine/rtthumbnail.h b/rtengine/rtthumbnail.h index dcc9596f6..c8d657a62 100644 --- a/rtengine/rtthumbnail.h +++ b/rtengine/rtthumbnail.h @@ -18,8 +18,6 @@ */ #pragma once -#include - #include #include "image16.h" @@ -30,6 +28,13 @@ #include "../rtgui/threadutils.h" +namespace Glib +{ + +class ustring; + +} + namespace rtengine { diff --git a/rtgui/previewloader.h b/rtgui/previewloader.h index 9a74ee2eb..a8032fcaf 100644 --- a/rtgui/previewloader.h +++ b/rtgui/previewloader.h @@ -20,10 +20,15 @@ #include -#include - #include "../rtengine/noncopyable.h" +namespace Glib +{ + +class ustring; + +} + class FileBrowserEntry; class PreviewLoaderListener From 54d8efc5f62724a1d07b543090f98401c04b5499 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 17 Jan 2020 23:56:17 +0100 Subject: [PATCH 151/453] reduce include dependecies --- rtengine/guidedfilter.cc | 1 + rtengine/imagesource.h | 1 - rtengine/ipdehaze.cc | 1 + rtengine/rescale.h | 5 ++++- 4 files changed, 6 insertions(+), 2 deletions(-) diff --git a/rtengine/guidedfilter.cc b/rtengine/guidedfilter.cc index ad3beec51..f83560cfc 100644 --- a/rtengine/guidedfilter.cc +++ b/rtengine/guidedfilter.cc @@ -29,6 +29,7 @@ * available at https://arxiv.org/abs/1505.00996 */ +#include "array2D.h" #include "boxblur.h" #include "guidedfilter.h" #include "imagefloat.h" diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index e0c26aa9f..2ef2554bc 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -25,7 +25,6 @@ #include "coord2d.h" #include "imagedata.h" -#include "LUT.h" #include "rtengine.h" template diff --git a/rtengine/ipdehaze.cc b/rtengine/ipdehaze.cc index 28a0f2d57..38e35c612 100644 --- a/rtengine/ipdehaze.cc +++ b/rtengine/ipdehaze.cc @@ -32,6 +32,7 @@ #include #include +#include "array2D.h" #include "color.h" #include "guidedfilter.h" #include "iccstore.h" diff --git a/rtengine/rescale.h b/rtengine/rescale.h index 70974aa48..2138cd8e8 100644 --- a/rtengine/rescale.h +++ b/rtengine/rescale.h @@ -20,9 +20,12 @@ #pragma once -#include "array2D.h" #include "rt_math.h" +template +class array2D; + + namespace rtengine { From c3a86befaaa8eab8aebbeddb46f3b92492f6f3d6 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 18 Jan 2020 11:57:31 +0100 Subject: [PATCH 152/453] Fix broken build --- rtengine/camconst.h | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/camconst.h b/rtengine/camconst.h index fbc16cb13..0c0618671 100644 --- a/rtengine/camconst.h +++ b/rtengine/camconst.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include namespace Glib From bf301b7e4099337d1bbd37c8a02dc72876ecaa1f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 18 Jan 2020 23:46:48 +0100 Subject: [PATCH 153/453] reduce include depenencies --- rtengine/curves.h | 2 - rtengine/dcrop.cc | 1 + rtengine/dcrop.h | 5 +- rtengine/improccoordinator.h | 1 - rtengine/improcfun.cc | 3 +- rtengine/opthelper.h | 39 +- rtengine/rtengine.h | 1 - rtengine/sleefsseavx.c | 1483 -------------------------------- rtengine/sleefsseavx.h | 1558 +++++++++++++++++++++++++++++++--- rtengine/utils.cc | 1 - rtgui/cropwindow.cc | 1 + rtgui/curveeditor.h | 3 +- rtgui/guiutils.cc | 1 - 13 files changed, 1473 insertions(+), 1626 deletions(-) delete mode 100644 rtengine/sleefsseavx.c diff --git a/rtengine/curves.h b/rtengine/curves.h index 27f5a8adc..d7c35b619 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -30,8 +30,6 @@ #include "sleef.h" #define CURVES_MIN_POLY_POINTS 1000 -#include "rt_math.h" - #define CLIPI(a) ((a)>0?((a)<65534?(a):65534):0) namespace Glib diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 890003ee0..77392a552 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -24,6 +24,7 @@ #include "dcrop.h" #include "image8.h" #include "imagefloat.h" +#include "improccoordinator.h" #include "labimage.h" #include "mytime.h" #include "procparams.h" diff --git a/rtengine/dcrop.h b/rtengine/dcrop.h index c65c1e72f..6667800f9 100644 --- a/rtengine/dcrop.h +++ b/rtengine/dcrop.h @@ -18,11 +18,7 @@ */ #pragma once -#include "improccoordinator.h" #include "rtengine.h" -#include "improcfun.h" -#include "imagesource.h" -#include "procevents.h" #include "pipettebuffer.h" #include "../rtgui/threadutils.h" @@ -30,6 +26,7 @@ namespace rtengine { class Image8; +class CieImage; using namespace procparams; diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 96d1f80ce..8b5b37625 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -27,7 +27,6 @@ #include "imagesource.h" #include "improcfun.h" #include "LUT.h" -#include "procevents.h" #include "rtengine.h" #include "../rtgui/threadutils.h" diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index d5c69773e..6749ff305 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -31,15 +31,16 @@ #include "cieimage.h" #include "clutstore.h" #include "color.h" +#include "colortemp.h" #include "curves.h" #include "dcp.h" #include "EdgePreservingDecomposition.h" #include "iccmatrices.h" #include "iccstore.h" #include "imagesource.h" -#include "improccoordinator.h" #include "improcfun.h" #include "labimage.h" +#include "pipettebuffer.h" #include "procparams.h" #include "rt_math.h" #include "rtengine.h" diff --git a/rtengine/opthelper.h b/rtengine/opthelper.h index b65ede227..f431c0ec9 100644 --- a/rtengine/opthelper.h +++ b/rtengine/opthelper.h @@ -18,27 +18,24 @@ // along with this program. If not, see . // //////////////////////////////////////////////////////////////// +#pragma once -#ifndef OPTHELPER_H - #define OPTHELPER_H +#define pow_F(a,b) (xexpf(b*xlogf(a))) - #define pow_F(a,b) (xexpf(b*xlogf(a))) - - #ifdef __SSE2__ - #include "sleefsseavx.c" - #endif - - #ifdef __GNUC__ - #define RESTRICT __restrict__ - #define LIKELY(x) __builtin_expect (!!(x), 1) - #define UNLIKELY(x) __builtin_expect (!!(x), 0) - #define ALIGNED64 __attribute__ ((aligned (64))) - #define ALIGNED16 __attribute__ ((aligned (16))) - #else - #define RESTRICT - #define LIKELY(x) (x) - #define UNLIKELY(x) (x) - #define ALIGNED64 - #define ALIGNED16 - #endif +#ifdef __SSE2__ + #include "sleefsseavx.h" +#endif + +#ifdef __GNUC__ + #define RESTRICT __restrict__ + #define LIKELY(x) __builtin_expect (!!(x), 1) + #define UNLIKELY(x) __builtin_expect (!!(x), 0) + #define ALIGNED64 __attribute__ ((aligned (64))) + #define ALIGNED16 __attribute__ ((aligned (16))) +#else + #define RESTRICT + #define LIKELY(x) (x) + #define UNLIKELY(x) (x) + #define ALIGNED64 + #define ALIGNED16 #endif diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 0473622c4..ca663c5bc 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -31,7 +31,6 @@ #include "imageformat.h" #include "procevents.h" #include "rawmetadatalocation.h" -#include "rt_math.h" #include "settings.h" #include "../rtgui/threadutils.h" diff --git a/rtengine/sleefsseavx.c b/rtengine/sleefsseavx.c deleted file mode 100644 index 0af516f9b..000000000 --- a/rtengine/sleefsseavx.c +++ /dev/null @@ -1,1483 +0,0 @@ -//////////////////////////////////////////////////////////////// -// -// this code was taken from http://shibatch.sourceforge.net/ -// Many thanks to the author of original version: Naoki Shibata -// -// This version contains modifications made by Ingo Weyrich -// -//////////////////////////////////////////////////////////////// - - -#ifndef SLEEFSSEAVX -#define SLEEFSSEAVX - -#include -#include "rt_math.h" -#ifdef __SSE2__ -#include "helpersse2.h" - -#ifdef ENABLE_AVX -#include "helperavx.h" -#endif - -#ifdef __GNUC__ -#define INLINE __inline -#else -#define INLINE inline -#endif - -#define PI4_A .7853981554508209228515625 -#define PI4_B .794662735614792836713604629039764404296875e-8 -#define PI4_C .306161699786838294306516483068750264552437361480769e-16 -#define M_4_PI 1.273239544735162542821171882678754627704620361328125 - -#define L2U .69314718055966295651160180568695068359375 -#define L2L .28235290563031577122588448175013436025525412068e-12 -#define R_LN2 1.442695040888963407359924681001892137426645954152985934135449406931 - -#define PI4_Af 0.78515625f -#define PI4_Bf 0.00024127960205078125f -#define PI4_Cf 6.3329935073852539062e-07f -#define PI4_Df 4.9604681473525147339e-10f - -#define L2Uf 0.693145751953125f -#define L2Lf 1.428606765330187045e-06f -#define R_LN2f 1.442695040888963407359924681001892137426645954152985934135449406931f - -#define INFINITYf ((float)rtengine::RT_INFINITY) -#define NANf ((float)rtengine::RT_NAN) - -static INLINE vdouble vadd3(vdouble v0, vdouble v1, vdouble v2) { - return vadd(vadd(v0, v1), v2); -} - -static INLINE vdouble vadd4(vdouble v0, vdouble v1, vdouble v2, vdouble v3) { - return vadd3(vadd(v0, v1), v2, v3); -} - -static INLINE vdouble vadd5(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4) { - return vadd4(vadd(v0, v1), v2, v3, v4); -} - -static INLINE vdouble vadd6(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4, vdouble v5) { - return vadd5(vadd(v0, v1), v2, v3, v4, v5); -} - -static INLINE vdouble vadd7(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4, vdouble v5, vdouble v6) { - return vadd6(vadd(v0, v1), v2, v3, v4, v5, v6); -} - -static INLINE vdouble vsub3(vdouble v0, vdouble v1, vdouble v2) { - return vsub(vsub(v0, v1), v2); -} - -static INLINE vdouble vsub4(vdouble v0, vdouble v1, vdouble v2, vdouble v3) { - return vsub3(vsub(v0, v1), v2, v3); -} - -static INLINE vdouble vsub5(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4) { - return vsub4(vsub(v0, v1), v2, v3, v4); -} - -// - -static INLINE vdouble2 normalize_d(vdouble2 t) { - vdouble2 s; - - s.x = vadd(t.x, t.y); - s.y = vadd(vsub(t.x, s.x), t.y); - - return s; -} - -static INLINE vdouble2 scale_d(vdouble2 d, vdouble s) { - vdouble2 r = {vmul(d.x, s), vmul(d.y, s)}; - return r; -} - -static INLINE vdouble2 add_ss(vdouble x, vdouble y) { - vdouble2 r; - - r.x = vadd(x, y); - r.y = vadd(vsub(x, r.x), y); - - return r; -} - -static INLINE vdouble2 add2_ss(vdouble x, vdouble y) { - vdouble2 r; - - r.x = vadd(x, y); - vdouble v = vsub(r.x, x); - r.y = vadd(vsub(x, vsub(r.x, v)), vsub(y, v)); - - return r; -} - -static INLINE vdouble2 add_ds(vdouble2 x, vdouble y) { - vdouble2 r; - - r.x = vadd(x.x, y); - r.y = vadd3(vsub(x.x, r.x), y, x.y); - - return r; -} - -static INLINE vdouble2 add2_ds(vdouble2 x, vdouble y) { - vdouble2 r; - - r.x = vadd(x.x, y); - vdouble v = vsub(r.x, x.x); - r.y = vadd(vsub(x.x, vsub(r.x, v)), vsub(y, v)); - r.y = vadd(r.y, x.y); - - return r; -} - -static INLINE vdouble2 add_sd(vdouble x, vdouble2 y) { - vdouble2 r; - - r.x = vadd(x, y.x); - r.y = vadd3(vsub(x, r.x), y.x, y.y); - - return r; -} - -static INLINE vdouble2 add_dd(vdouble2 x, vdouble2 y) { - // |x| >= |y| - - vdouble2 r; - - r.x = vadd(x.x, y.x); - r.y = vadd4(vsub(x.x, r.x), y.x, x.y, y.y); - - return r; -} - -static INLINE vdouble2 add2_dd(vdouble2 x, vdouble2 y) { - vdouble2 r; - - r.x = vadd(x.x, y.x); - vdouble v = vsub(r.x, x.x); - r.y = vadd(vsub(x.x, vsub(r.x, v)), vsub(y.x, v)); - r.y = vadd(r.y, vadd(x.y, y.y)); - - return r; -} - -static INLINE vdouble2 div_dd(vdouble2 n, vdouble2 d) { - vdouble t = vrec(d.x); - vdouble dh = vupper(d.x), dl = vsub(d.x, dh); - vdouble th = vupper(t ), tl = vsub(t , th); - vdouble nhh = vupper(n.x), nhl = vsub(n.x, nhh); - - vdouble2 q; - - q.x = vmul(n.x, t); - - vdouble u = vadd5(vsub(vmul(nhh, th), q.x), vmul(nhh, tl), vmul(nhl, th), vmul(nhl, tl), - vmul(q.x, vsub5(vcast_vd_d(1), vmul(dh, th), vmul(dh, tl), vmul(dl, th), vmul(dl, tl)))); - - q.y = vadd(vmul(t, vsub(n.y, vmul(q.x, d.y))), u); - - return q; -} - -static INLINE vdouble2 mul_ss(vdouble x, vdouble y) { - vdouble xh = vupper(x), xl = vsub(x, xh); - vdouble yh = vupper(y), yl = vsub(y, yh); - vdouble2 r; - - r.x = vmul(x, y); - r.y = vadd5(vmul(xh, yh), vneg(r.x), vmul(xl, yh), vmul(xh, yl), vmul(xl, yl)); - - return r; -} - -static INLINE vdouble2 mul_ds(vdouble2 x, vdouble y) { - vdouble xh = vupper(x.x), xl = vsub(x.x, xh); - vdouble yh = vupper(y ), yl = vsub(y , yh); - vdouble2 r; - - r.x = vmul(x.x, y); - r.y = vadd6(vmul(xh, yh), vneg(r.x), vmul(xl, yh), vmul(xh, yl), vmul(xl, yl), vmul(x.y, y)); - - return r; -} - -static INLINE vdouble2 mul_dd(vdouble2 x, vdouble2 y) { - vdouble xh = vupper(x.x), xl = vsub(x.x, xh); - vdouble yh = vupper(y.x), yl = vsub(y.x, yh); - vdouble2 r; - - r.x = vmul(x.x, y.x); - r.y = vadd7(vmul(xh, yh), vneg(r.x), vmul(xl, yh), vmul(xh, yl), vmul(xl, yl), vmul(x.x, y.y), vmul(x.y, y.x)); - - return r; -} - -static INLINE vdouble2 squ_d(vdouble2 x) { - vdouble xh = vupper(x.x), xl = vsub(x.x, xh); - vdouble2 r; - - r.x = vmul(x.x, x.x); - r.y = vadd5(vmul(xh, xh), vneg(r.x), vmul(vadd(xh, xh), xl), vmul(xl, xl), vmul(x.x, vadd(x.y, x.y))); - - return r; -} - -static INLINE vdouble2 rec_s(vdouble d) { - vdouble t = vrec(d); - vdouble dh = vupper(d), dl = vsub(d, dh); - vdouble th = vupper(t), tl = vsub(t, th); - vdouble2 q; - - q.x = t; - q.y = vmul(t, vsub5(vcast_vd_d(1), vmul(dh, th), vmul(dh, tl), vmul(dl, th), vmul(dl, tl))); - - return q; -} - -static INLINE vdouble2 sqrt_d(vdouble2 d) { - vdouble t = vsqrt(vadd(d.x, d.y)); - return scale_d(mul_dd(add2_dd(d, mul_ss(t, t)), rec_s(t)), vcast_vd_d(0.5)); -} - -// - -static INLINE vdouble xldexp(vdouble x, vint q) { return vldexp(x, q); } - -static INLINE vint xilogb(vdouble d) { - vdouble e = vcast_vd_vi(vsubi(vilogbp1(vabs(d)), vcast_vi_i(1))); - e = vsel(vmask_eq(d, vcast_vd_d(0)), vcast_vd_d(-2147483648.0), e); - e = vsel(vmask_eq(vabs(d), vcast_vd_d(rtengine::RT_INFINITY)), vcast_vd_d(2147483647), e); - return vrint_vi_vd(e); -} - -static INLINE vdouble xsin(vdouble d) { - vint q; - vdouble u, s; - - q = vrint_vi_vd(vmul(d, vcast_vd_d(rtengine::RT_1_PI))); - - u = vcast_vd_vi(q); - d = vadd(d, vmul(u, vcast_vd_d(-PI4_A*4))); - d = vadd(d, vmul(u, vcast_vd_d(-PI4_B*4))); - d = vadd(d, vmul(u, vcast_vd_d(-PI4_C*4))); - - s = vmul(d, d); - - d = vsel(vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(1)), vneg(d), d); - - u = vcast_vd_d(-7.97255955009037868891952e-18); - u = vmla(u, s, vcast_vd_d(2.81009972710863200091251e-15)); - u = vmla(u, s, vcast_vd_d(-7.64712219118158833288484e-13)); - u = vmla(u, s, vcast_vd_d(1.60590430605664501629054e-10)); - u = vmla(u, s, vcast_vd_d(-2.50521083763502045810755e-08)); - u = vmla(u, s, vcast_vd_d(2.75573192239198747630416e-06)); - u = vmla(u, s, vcast_vd_d(-0.000198412698412696162806809)); - u = vmla(u, s, vcast_vd_d(0.00833333333333332974823815)); - u = vmla(u, s, vcast_vd_d(-0.166666666666666657414808)); - - u = vmla(s, vmul(u, d), d); - - return u; -} - -static INLINE vdouble xcos(vdouble d) { - vint q; - vdouble u, s; - - q = vrint_vi_vd(vsub(vmul(d, vcast_vd_d(rtengine::RT_1_PI)), vcast_vd_d(0.5))); - q = vaddi(vaddi(q, q), vcast_vi_i(1)); - - u = vcast_vd_vi(q); - d = vadd(d, vmul(u, vcast_vd_d(-PI4_A*2))); - d = vadd(d, vmul(u, vcast_vd_d(-PI4_B*2))); - d = vadd(d, vmul(u, vcast_vd_d(-PI4_C*2))); - - s = vmul(d, d); - - d = vsel(vmaski_eq(vandi(q, vcast_vi_i(2)), vcast_vi_i(0)), vneg(d), d); - - u = vcast_vd_d(-7.97255955009037868891952e-18); - u = vmla(u, s, vcast_vd_d(2.81009972710863200091251e-15)); - u = vmla(u, s, vcast_vd_d(-7.64712219118158833288484e-13)); - u = vmla(u, s, vcast_vd_d(1.60590430605664501629054e-10)); - u = vmla(u, s, vcast_vd_d(-2.50521083763502045810755e-08)); - u = vmla(u, s, vcast_vd_d(2.75573192239198747630416e-06)); - u = vmla(u, s, vcast_vd_d(-0.000198412698412696162806809)); - u = vmla(u, s, vcast_vd_d(0.00833333333333332974823815)); - u = vmla(u, s, vcast_vd_d(-0.166666666666666657414808)); - - u = vmla(s, vmul(u, d), d); - - return u; -} - -static INLINE vdouble2 xsincos(vdouble d) { - vint q; - vmask m; - vdouble u, s, t, rx, ry; - vdouble2 r; - - q = vrint_vi_vd(vmul(d, vcast_vd_d(rtengine::RT_2_PI))); - - s = d; - - u = vcast_vd_vi(q); - s = vmla(u, vcast_vd_d(-PI4_A*2), s); - s = vmla(u, vcast_vd_d(-PI4_B*2), s); - s = vmla(u, vcast_vd_d(-PI4_C*2), s); - - t = s; - - s = vmul(s, s); - - u = vcast_vd_d(1.58938307283228937328511e-10); - u = vmla(u, s, vcast_vd_d(-2.50506943502539773349318e-08)); - u = vmla(u, s, vcast_vd_d(2.75573131776846360512547e-06)); - u = vmla(u, s, vcast_vd_d(-0.000198412698278911770864914)); - u = vmla(u, s, vcast_vd_d(0.0083333333333191845961746)); - u = vmla(u, s, vcast_vd_d(-0.166666666666666130709393)); - u = vmul(vmul(u, s), t); - - rx = vadd(t, u); - - u = vcast_vd_d(-1.13615350239097429531523e-11); - u = vmla(u, s, vcast_vd_d(2.08757471207040055479366e-09)); - u = vmla(u, s, vcast_vd_d(-2.75573144028847567498567e-07)); - u = vmla(u, s, vcast_vd_d(2.48015872890001867311915e-05)); - u = vmla(u, s, vcast_vd_d(-0.00138888888888714019282329)); - u = vmla(u, s, vcast_vd_d(0.0416666666666665519592062)); - u = vmla(u, s, vcast_vd_d(-0.5)); - - ry = vadd(vcast_vd_d(1), vmul(s, u)); - - m = vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(0)); - r.x = vsel(m, rx, ry); - r.y = vsel(m, ry, rx); - - m = vmaski_eq(vandi(q, vcast_vi_i(2)), vcast_vi_i(2)); - r.x = vreinterpret_vd_vm(vxorm(vandm(m, vreinterpret_vm_vd(vcast_vd_d(-0.0))), vreinterpret_vm_vd(r.x))); - - m = vmaski_eq(vandi(vaddi(q, vcast_vi_i(1)), vcast_vi_i(2)), vcast_vi_i(2)); - r.y = vreinterpret_vd_vm(vxorm(vandm(m, vreinterpret_vm_vd(vcast_vd_d(-0.0))), vreinterpret_vm_vd(r.y))); - - m = vmask_isinf(d); - r.x = vsel(m, vcast_vd_d(rtengine::RT_NAN), r.x); - r.y = vsel(m, vcast_vd_d(rtengine::RT_NAN), r.y); - - return r; -} - -static INLINE vdouble xtan(vdouble d) { - vint q; - vdouble u, s, x; - vmask m; - - q = vrint_vi_vd(vmul(d, vcast_vd_d(rtengine::RT_2_PI))); - - u = vcast_vd_vi(q); - x = vadd(d, vmul(u, vcast_vd_d(-PI4_A*2))); - x = vadd(x, vmul(u, vcast_vd_d(-PI4_B*2))); - x = vadd(x, vmul(u, vcast_vd_d(-PI4_C*2))); - - s = vmul(x, x); - - m = vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(1)); - x = vsel(m, vneg(x), x); - - u = vcast_vd_d(1.01419718511083373224408e-05); - u = vmla(u, s, vcast_vd_d(-2.59519791585924697698614e-05)); - u = vmla(u, s, vcast_vd_d(5.23388081915899855325186e-05)); - u = vmla(u, s, vcast_vd_d(-3.05033014433946488225616e-05)); - u = vmla(u, s, vcast_vd_d(7.14707504084242744267497e-05)); - u = vmla(u, s, vcast_vd_d(8.09674518280159187045078e-05)); - u = vmla(u, s, vcast_vd_d(0.000244884931879331847054404)); - u = vmla(u, s, vcast_vd_d(0.000588505168743587154904506)); - u = vmla(u, s, vcast_vd_d(0.00145612788922812427978848)); - u = vmla(u, s, vcast_vd_d(0.00359208743836906619142924)); - u = vmla(u, s, vcast_vd_d(0.00886323944362401618113356)); - u = vmla(u, s, vcast_vd_d(0.0218694882853846389592078)); - u = vmla(u, s, vcast_vd_d(0.0539682539781298417636002)); - u = vmla(u, s, vcast_vd_d(0.133333333333125941821962)); - u = vmla(u, s, vcast_vd_d(0.333333333333334980164153)); - - u = vmla(s, vmul(u, x), x); - - u = vsel(m, vrec(u), u); - - u = vsel(vmask_isinf(d), vcast_vd_d(rtengine::RT_NAN), u); - - return u; -} - -static INLINE vdouble atan2k(vdouble y, vdouble x) { - vdouble s, t, u; - vint q; - vmask p; - - q = vseli_lt(x, vcast_vd_d(0), vcast_vi_i(-2), vcast_vi_i(0)); - x = vabs(x); - - q = vseli_lt(x, y, vaddi(q, vcast_vi_i(1)), q); - p = vmask_lt(x, y); - s = vsel (p, vneg(x), y); - t = vmax (x, y); - - s = vdiv(s, t); - t = vmul(s, s); - - u = vcast_vd_d(-1.88796008463073496563746e-05); - u = vmla(u, t, vcast_vd_d(0.000209850076645816976906797)); - u = vmla(u, t, vcast_vd_d(-0.00110611831486672482563471)); - u = vmla(u, t, vcast_vd_d(0.00370026744188713119232403)); - u = vmla(u, t, vcast_vd_d(-0.00889896195887655491740809)); - u = vmla(u, t, vcast_vd_d(0.016599329773529201970117)); - u = vmla(u, t, vcast_vd_d(-0.0254517624932312641616861)); - u = vmla(u, t, vcast_vd_d(0.0337852580001353069993897)); - u = vmla(u, t, vcast_vd_d(-0.0407629191276836500001934)); - u = vmla(u, t, vcast_vd_d(0.0466667150077840625632675)); - u = vmla(u, t, vcast_vd_d(-0.0523674852303482457616113)); - u = vmla(u, t, vcast_vd_d(0.0587666392926673580854313)); - u = vmla(u, t, vcast_vd_d(-0.0666573579361080525984562)); - u = vmla(u, t, vcast_vd_d(0.0769219538311769618355029)); - u = vmla(u, t, vcast_vd_d(-0.090908995008245008229153)); - u = vmla(u, t, vcast_vd_d(0.111111105648261418443745)); - u = vmla(u, t, vcast_vd_d(-0.14285714266771329383765)); - u = vmla(u, t, vcast_vd_d(0.199999999996591265594148)); - u = vmla(u, t, vcast_vd_d(-0.333333333333311110369124)); - - t = vadd(s, vmul(s, vmul(t, u))); - t = vadd(t, vmul(vcast_vd_vi(q), vcast_vd_d(rtengine::RT_PI/2))); - - return t; -} - -static INLINE vdouble xatan2(vdouble y, vdouble x) { - vdouble r = atan2k(vabs(y), x); - - r = vmulsign(r, x); - r = vsel(vorm(vmask_isinf(x), vmask_eq(x, vcast_vd_d(0))), vsub(vcast_vd_d(rtengine::RT_PI/2), visinf2(x, vmulsign(vcast_vd_d(rtengine::RT_PI/2), x))), r); - r = vsel(vmask_isinf(y), vsub(vcast_vd_d(rtengine::RT_PI/2), visinf2(x, vmulsign(vcast_vd_d(rtengine::RT_PI/4), x))), r); - r = vsel(vmask_eq(y, vcast_vd_d(0)), vsel(vmask_eq(vsign(x), vcast_vd_d(-1.0)), vcast_vd_d(rtengine::RT_PI), vcast_vd_d(0)), r); - - return vsel(vorm(vmask_isnan(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_NAN), vmulsign(r, y)); -} - -static INLINE vdouble xasin(vdouble d) { - vdouble x, y; - x = vadd(vcast_vd_d(1), d); - y = vsub(vcast_vd_d(1), d); - x = vmul(x, y); - x = vsqrt(x); - x = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), atan2k(vabs(d), x)); - return vmulsign(x, d); -} - -static INLINE vdouble xacos(vdouble d) { - vdouble x, y; - x = vadd(vcast_vd_d(1), d); - y = vsub(vcast_vd_d(1), d); - x = vmul(x, y); - x = vsqrt(x); - x = vmulsign(atan2k(x, vabs(d)), d); - y = (vdouble)vandm(vmask_lt(d, vcast_vd_d(0)), (vmask)vcast_vd_d(rtengine::RT_PI)); - x = vadd(x, y); - return x; -} - -static INLINE vdouble xatan(vdouble s) { - vdouble t, u; - vint q; - - q = vseli_lt(s, vcast_vd_d(0), vcast_vi_i(2), vcast_vi_i(0)); - s = vabs(s); - - q = vseli_lt(vcast_vd_d(1), s, vaddi(q, vcast_vi_i(1)), q); - s = vsel(vmask_lt(vcast_vd_d(1), s), vdiv(vcast_vd_d(1), s), s); - - t = vmul(s, s); - - u = vcast_vd_d(-1.88796008463073496563746e-05); - u = vmla(u, t, vcast_vd_d(0.000209850076645816976906797)); - u = vmla(u, t, vcast_vd_d(-0.00110611831486672482563471)); - u = vmla(u, t, vcast_vd_d(0.00370026744188713119232403)); - u = vmla(u, t, vcast_vd_d(-0.00889896195887655491740809)); - u = vmla(u, t, vcast_vd_d(0.016599329773529201970117)); - u = vmla(u, t, vcast_vd_d(-0.0254517624932312641616861)); - u = vmla(u, t, vcast_vd_d(0.0337852580001353069993897)); - u = vmla(u, t, vcast_vd_d(-0.0407629191276836500001934)); - u = vmla(u, t, vcast_vd_d(0.0466667150077840625632675)); - u = vmla(u, t, vcast_vd_d(-0.0523674852303482457616113)); - u = vmla(u, t, vcast_vd_d(0.0587666392926673580854313)); - u = vmla(u, t, vcast_vd_d(-0.0666573579361080525984562)); - u = vmla(u, t, vcast_vd_d(0.0769219538311769618355029)); - u = vmla(u, t, vcast_vd_d(-0.090908995008245008229153)); - u = vmla(u, t, vcast_vd_d(0.111111105648261418443745)); - u = vmla(u, t, vcast_vd_d(-0.14285714266771329383765)); - u = vmla(u, t, vcast_vd_d(0.199999999996591265594148)); - u = vmla(u, t, vcast_vd_d(-0.333333333333311110369124)); - - t = vadd(s, vmul(s, vmul(t, u))); - - t = vsel(vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(1)), vsub(vcast_vd_d(rtengine::RT_PI/2), t), t); - t = vsel(vmaski_eq(vandi(q, vcast_vi_i(2)), vcast_vi_i(2)), vneg(t), t); - - return t; -} - -static INLINE vdouble xlog(vdouble d) { - vdouble x, x2; - vdouble t, m; - vint e; - - e = vilogbp1(vmul(d, vcast_vd_d(0.7071))); - m = vldexp(d, vsubi(vcast_vi_i(0), e)); - - x = vdiv(vadd(vcast_vd_d(-1), m), vadd(vcast_vd_d(1), m)); - x2 = vmul(x, x); - - t = vcast_vd_d(0.148197055177935105296783); - t = vmla(t, x2, vcast_vd_d(0.153108178020442575739679)); - t = vmla(t, x2, vcast_vd_d(0.181837339521549679055568)); - t = vmla(t, x2, vcast_vd_d(0.22222194152736701733275)); - t = vmla(t, x2, vcast_vd_d(0.285714288030134544449368)); - t = vmla(t, x2, vcast_vd_d(0.399999999989941956712869)); - t = vmla(t, x2, vcast_vd_d(0.666666666666685503450651)); - t = vmla(t, x2, vcast_vd_d(2)); - - x = vadd(vmul(x, t), vmul(vcast_vd_d(0.693147180559945286226764), vcast_vd_vi(e))); - - x = vsel(vmask_ispinf(d), vcast_vd_d(rtengine::RT_INFINITY), x); - x = vsel(vmask_gt(vcast_vd_d(0), d), vcast_vd_d(rtengine::RT_NAN), x); - x = vsel(vmask_eq(d, vcast_vd_d(0)), vcast_vd_d(-rtengine::RT_INFINITY), x); - - return x; -} - -static INLINE vdouble xexp(vdouble d) { - vint q = vrint_vi_vd(vmul(d, vcast_vd_d(R_LN2))); - vdouble s, u; - - s = vadd(d, vmul(vcast_vd_vi(q), vcast_vd_d(-L2U))); - s = vadd(s, vmul(vcast_vd_vi(q), vcast_vd_d(-L2L))); - - u = vcast_vd_d(2.08860621107283687536341e-09); - u = vmla(u, s, vcast_vd_d(2.51112930892876518610661e-08)); - u = vmla(u, s, vcast_vd_d(2.75573911234900471893338e-07)); - u = vmla(u, s, vcast_vd_d(2.75572362911928827629423e-06)); - u = vmla(u, s, vcast_vd_d(2.4801587159235472998791e-05)); - u = vmla(u, s, vcast_vd_d(0.000198412698960509205564975)); - u = vmla(u, s, vcast_vd_d(0.00138888888889774492207962)); - u = vmla(u, s, vcast_vd_d(0.00833333333331652721664984)); - u = vmla(u, s, vcast_vd_d(0.0416666666666665047591422)); - u = vmla(u, s, vcast_vd_d(0.166666666666666851703837)); - u = vmla(u, s, vcast_vd_d(0.5)); - - u = vadd(vcast_vd_d(1), vadd(s, vmul(vmul(s, s), u))); - - u = vldexp(u, q); - - u = vsel(vmask_isminf(d), vcast_vd_d(0), u); - - return u; -} - -static INLINE vdouble2 logk(vdouble d) { - vdouble2 x, x2; - vdouble t, m; - vint e; - - e = vilogbp1(vmul(d, vcast_vd_d(0.7071))); - m = vldexp(d, vsubi(vcast_vi_i(0), e)); - - x = div_dd(add2_ss(vcast_vd_d(-1), m), add2_ss(vcast_vd_d(1), m)); - x2 = squ_d(x); - x2 = normalize_d(x2); - - t = vcast_vd_d(0.134601987501262130076155); - t = vmla(t, x2.x, vcast_vd_d(0.132248509032032670243288)); - t = vmla(t, x2.x, vcast_vd_d(0.153883458318096079652524)); - t = vmla(t, x2.x, vcast_vd_d(0.181817427573705403298686)); - t = vmla(t, x2.x, vcast_vd_d(0.222222231326187414840781)); - t = vmla(t, x2.x, vcast_vd_d(0.285714285651261412873718)); - t = vmla(t, x2.x, vcast_vd_d(0.400000000000222439910458)); - t = vmla(t, x2.x, vcast_vd_d(0.666666666666666371239645)); - - return add2_dd(mul_ds(dd(vcast_vd_d(0.693147180559945286226764), vcast_vd_d(2.319046813846299558417771e-17)), - vcast_vd_vi(e)), - add2_dd(scale_d(x, vcast_vd_d(2)), mul_ds(mul_dd(x2, x), t))); -} - -static INLINE vdouble expk(vdouble2 d) { - vdouble u = vmul(vadd(d.x, d.y), vcast_vd_d(R_LN2)); - vint q = vrint_vi_vd(u); - vdouble2 s, t; - - s = add2_ds(d, vmul(vcast_vd_vi(q), vcast_vd_d(-L2U))); - s = add2_ds(s, vmul(vcast_vd_vi(q), vcast_vd_d(-L2L))); - - q = vrint_vi_vd(vmin(vmax(vcast_vd_d(-2047.49), u), vcast_vd_d(2047.49))); - - s = normalize_d(s); - - u = vcast_vd_d(2.51069683420950419527139e-08); - u = vmla(u, s.x, vcast_vd_d(2.76286166770270649116855e-07)); - u = vmla(u, s.x, vcast_vd_d(2.75572496725023574143864e-06)); - u = vmla(u, s.x, vcast_vd_d(2.48014973989819794114153e-05)); - u = vmla(u, s.x, vcast_vd_d(0.000198412698809069797676111)); - u = vmla(u, s.x, vcast_vd_d(0.0013888888939977128960529)); - u = vmla(u, s.x, vcast_vd_d(0.00833333333332371417601081)); - u = vmla(u, s.x, vcast_vd_d(0.0416666666665409524128449)); - u = vmla(u, s.x, vcast_vd_d(0.166666666666666740681535)); - u = vmla(u, s.x, vcast_vd_d(0.500000000000000999200722)); - - t = add_dd(s, mul_ds(squ_d(s), u)); - - t = add_sd(vcast_vd_d(1), t); - u = vadd(t.x, t.y); - u = vldexp(u, q); - - return u; -} - -static INLINE vdouble xpow(vdouble x, vdouble y) { -#if 1 - vmask yisint = vmask_eq(vcast_vd_vi(vrint_vi_vd(y)), y); - vmask yisodd = vandm(vmaski_eq(vandi(vrint_vi_vd(y), vcast_vi_i(1)), vcast_vi_i(1)), yisint); - - vdouble result = expk(mul_ds(logk(vabs(x)), y)); - - //result = vsel(vmask_isnan(result), vcast_vd_d(rtengine::RT_INFINITY), result); - - result = vmul(result, - vsel(vmask_gt(x, vcast_vd_d(0)), - vcast_vd_d(1), - vsel(yisint, - vsel(yisodd, - vcast_vd_d(-1), - vcast_vd_d(1)), - vcast_vd_d(rtengine::RT_NAN)))); - - vdouble efx = vreinterpret_vd_vm(vxorm(vreinterpret_vm_vd(vsub(vabs(x), vcast_vd_d(1))), vsignbit(y))); - - result = vsel(vmask_isinf(y), - vsel(vmask_lt(efx, vcast_vd_d(0)), - vcast_vd_d(0), - vsel(vmask_eq(efx, vcast_vd_d(0)), - vcast_vd_d(1.0), - vcast_vd_d(rtengine::RT_INFINITY))), - result); - - result = vsel(vorm(vmask_isinf(x), vmask_eq(x, vcast_vd_d(0))), - vmul(vsel(yisodd, vsign(x), vcast_vd_d(1)), - vsel(vmask_lt(vsel(vmask_eq(x, vcast_vd_d(0)), vneg(y), y), vcast_vd_d(0)), - vcast_vd_d(0), - vcast_vd_d(rtengine::RT_INFINITY))), - result); - - result = vsel(vorm(vmask_isnan(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_NAN), result); - - result = vsel(vorm(vmask_eq(y, vcast_vd_d(0)), vmask_eq(x, vcast_vd_d(1))), vcast_vd_d(1), result); - - return result; -#else - return expk(mul_ds(logk(x), y)); -#endif -} - -static INLINE vdouble2 expk2(vdouble2 d) { - vdouble u = vmul(vadd(d.x, d.y), vcast_vd_d(R_LN2)); - vint q = vrint_vi_vd(u); - vdouble2 s, t; - - s = add2_ds(d, vmul(vcast_vd_vi(q), vcast_vd_d(-L2U))); - s = add2_ds(s, vmul(vcast_vd_vi(q), vcast_vd_d(-L2L))); - - q = vrint_vi_vd(vmin(vmax(vcast_vd_d(-2047.49), u), vcast_vd_d(2047.49))); - - s = normalize_d(s); - - u = vcast_vd_d(2.51069683420950419527139e-08); - u = vmla(u, s.x, vcast_vd_d(2.76286166770270649116855e-07)); - u = vmla(u, s.x, vcast_vd_d(2.75572496725023574143864e-06)); - u = vmla(u, s.x, vcast_vd_d(2.48014973989819794114153e-05)); - u = vmla(u, s.x, vcast_vd_d(0.000198412698809069797676111)); - u = vmla(u, s.x, vcast_vd_d(0.0013888888939977128960529)); - u = vmla(u, s.x, vcast_vd_d(0.00833333333332371417601081)); - u = vmla(u, s.x, vcast_vd_d(0.0416666666665409524128449)); - u = vmla(u, s.x, vcast_vd_d(0.166666666666666740681535)); - u = vmla(u, s.x, vcast_vd_d(0.500000000000000999200722)); - - t = add_dd(s, mul_ds(squ_d(s), u)); - - t = add_sd(vcast_vd_d(1), t); - - return dd(vldexp(t.x, q), vldexp(t.y, q)); -} - -static INLINE vdouble xsinh(vdouble x) { - vdouble y = vabs(x); - vdouble2 d = expk2(dd(y, vcast_vd_d(0))); - d = add2_dd(d, div_dd(dd(vcast_vd_d(-1), vcast_vd_d(0)), d)); - y = vmul(vadd(d.x, d.y), vcast_vd_d(0.5)); - - y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); - y = vmulsign(y, x); - y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); - - return y; -} - -static INLINE vdouble xcosh(vdouble x) { - vdouble2 d = expk2(dd(x, vcast_vd_d(0))); - d = add2_dd(d, div_dd(dd(vcast_vd_d(1), vcast_vd_d(0)), d)); - vdouble y = vmul(vadd(d.x, d.y), vcast_vd_d(0.5)); - - y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); - y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); - - return y; -} - -static INLINE vdouble xtanh(vdouble x) { - vdouble y = vabs(x); - vdouble2 d = expk2(dd(y, vcast_vd_d(0))); - vdouble2 e = div_dd(dd(vcast_vd_d(1), vcast_vd_d(0)), d); - d = div_dd(add2_dd(d, scale_d(e, vcast_vd_d(-1))), add2_dd(d, e)); - y = d.x + d.y; - - y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(1.0), y); - y = vmulsign(y, x); - y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); - - return y; -} - -static INLINE vdouble2 logk2(vdouble2 d) { - vdouble2 x, x2, m; - vdouble t; - vint e; - - d = normalize_d(d); - e = vilogbp1(vmul(d.x, vcast_vd_d(0.7071))); - m = scale_d(d, vldexp(vcast_vd_d(1), vsubi(vcast_vi_i(0), e))); - - x = div_dd(add2_ds(m, vcast_vd_d(-1)), add2_ds(m, vcast_vd_d(1))); - x2 = squ_d(x); - x2 = normalize_d(x2); - - t = vcast_vd_d(0.134601987501262130076155); - t = vmla(t, x2.x, vcast_vd_d(0.132248509032032670243288)); - t = vmla(t, x2.x, vcast_vd_d(0.153883458318096079652524)); - t = vmla(t, x2.x, vcast_vd_d(0.181817427573705403298686)); - t = vmla(t, x2.x, vcast_vd_d(0.222222231326187414840781)); - t = vmla(t, x2.x, vcast_vd_d(0.285714285651261412873718)); - t = vmla(t, x2.x, vcast_vd_d(0.400000000000222439910458)); - t = vmla(t, x2.x, vcast_vd_d(0.666666666666666371239645)); - - return add2_dd(mul_ds(dd(vcast_vd_d(0.693147180559945286226764), vcast_vd_d(2.319046813846299558417771e-17)), - vcast_vd_vi(e)), - add2_dd(scale_d(x, vcast_vd_d(2)), mul_ds(mul_dd(x2, x), t))); -} - -static INLINE vdouble xasinh(vdouble x) { - vdouble y = vabs(x); - vdouble2 d = logk2(add2_ds(sqrt_d(add2_ds(mul_ss(y, y), vcast_vd_d(1))), y)); - y = vadd(d.x, d.y); - - y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); - y = vmulsign(y, x); - y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); - - return y; -} - -static INLINE vdouble xacosh(vdouble x) { - vdouble2 d = logk2(add2_ds(sqrt_d(add2_ds(mul_ss(x, x), vcast_vd_d(-1))), x)); - vdouble y = vadd(d.x, d.y); - - y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); - y = vsel(vmask_eq(x, vcast_vd_d(1.0)), vcast_vd_d(0.0), y); - y = vsel(vmask_lt(x, vcast_vd_d(1.0)), vcast_vd_d(rtengine::RT_NAN), y); - y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); - - return y; -} - -static INLINE vdouble xatanh(vdouble x) { - vdouble y = vabs(x); - vdouble2 d = logk2(div_dd(add2_ss(vcast_vd_d(1), y), add2_ss(vcast_vd_d(1), -y))); - y = vsel(vmask_gt(y, vcast_vd_d(1.0)), vcast_vd_d(rtengine::RT_NAN), vsel(vmask_eq(y, vcast_vd_d(1.0)), vcast_vd_d(rtengine::RT_INFINITY), vmul(vadd(d.x, d.y), vcast_vd_d(0.5)))); - - y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_NAN), y); - y = vmulsign(y, x); - y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); - - return y; -} - -static INLINE vdouble xcbrt(vdouble d) { - vdouble x, y, q = vcast_vd_d(1.0); - vint e, qu, re; - vdouble t; - - e = vilogbp1(vabs(d)); - d = vldexp(d, vsubi(vcast_vi_i(0), e)); - - t = vadd(vcast_vd_vi(e), vcast_vd_d(6144)); - qu = vtruncate_vi_vd(vdiv(t, vcast_vd_d(3))); - re = vtruncate_vi_vd(vsub(t, vmul(vcast_vd_vi(qu), vcast_vd_d(3)))); - - q = vsel(vmaski_eq(re, vcast_vi_i(1)), vcast_vd_d(1.2599210498948731647672106), q); - q = vsel(vmaski_eq(re, vcast_vi_i(2)), vcast_vd_d(1.5874010519681994747517056), q); - q = vldexp(q, vsubi(qu, vcast_vi_i(2048))); - - q = vmulsign(q, d); - - d = vabs(d); - - x = vcast_vd_d(-0.640245898480692909870982); - x = vmla(x, d, vcast_vd_d(2.96155103020039511818595)); - x = vmla(x, d, vcast_vd_d(-5.73353060922947843636166)); - x = vmla(x, d, vcast_vd_d(6.03990368989458747961407)); - x = vmla(x, d, vcast_vd_d(-3.85841935510444988821632)); - x = vmla(x, d, vcast_vd_d(2.2307275302496609725722)); - - y = vmul(x, x); y = vmul(y, y); x = vsub(x, vmul(vmla(d, y, vneg(x)), vcast_vd_d(1.0 / 3.0))); - y = vmul(vmul(d, x), x); - y = vmul(vsub(y, vmul(vmul(vcast_vd_d(2.0 / 3.0), y), vmla(y, x, vcast_vd_d(-1.0)))), q); - - return y; -} - -static INLINE vdouble xexp2(vdouble a) { - vdouble u = expk(mul_ds(dd(vcast_vd_d(0.69314718055994528623), vcast_vd_d(2.3190468138462995584e-17)), a)); - u = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), u); - u = vsel(vmask_isminf(a), vcast_vd_d(0), u); - return u; -} - -static INLINE vdouble xexp10(vdouble a) { - vdouble u = expk(mul_ds(dd(vcast_vd_d(2.3025850929940459011), vcast_vd_d(-2.1707562233822493508e-16)), a)); - u = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), u); - u = vsel(vmask_isminf(a), vcast_vd_d(0), u); - return u; -} - -static INLINE vdouble xexpm1(vdouble a) { - vdouble2 d = add2_ds(expk2(dd(a, vcast_vd_d(0))), vcast_vd_d(-1.0)); - vdouble x = d.x + d.y; - x = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), x); - x = vsel(vmask_isminf(a), vcast_vd_d(-1), x); - return x; -} - -static INLINE vdouble xlog10(vdouble a) { - vdouble2 d = mul_dd(logk(a), dd(vcast_vd_d(0.43429448190325176116), vcast_vd_d(6.6494347733425473126e-17))); - vdouble x = d.x + d.y; - - x = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), x); - x = vsel(vmask_gt(vcast_vd_d(0), a), vcast_vd_d(rtengine::RT_NAN), x); - x = vsel(vmask_eq(a, vcast_vd_d(0)), vcast_vd_d(-rtengine::RT_INFINITY), x); - - return x; -} - -static INLINE vdouble xlog1p(vdouble a) { - vdouble2 d = logk2(add2_ss(a, vcast_vd_d(1))); - vdouble x = d.x + d.y; - - x = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), x); - x = vsel(vmask_gt(vcast_vd_d(-1), a), vcast_vd_d(rtengine::RT_NAN), x); - x = vsel(vmask_eq(a, vcast_vd_d(-1)), vcast_vd_d(-rtengine::RT_INFINITY), x); - - return x; -} - -// - -typedef struct { - vfloat x, y; -} vfloat2; - -static INLINE vfloat vabsf(vfloat f) { return (vfloat)vandnotm((vmask)vcast_vf_f(-0.0f), (vmask)f); } -static INLINE vfloat vnegf(vfloat f) { return (vfloat)vxorm((vmask)f, (vmask)vcast_vf_f(-0.0f)); } - -#ifdef __SSE4_1__ -// only one instruction when using SSE4.1 -static INLINE vfloat vself(vmask mask, vfloat x, vfloat y) { - return _mm_blendv_ps(y,x,(vfloat)mask); -} - -static INLINE vint vselc(vmask mask, vint x, vint y) { - return _mm_blendv_epi8(y,x,mask); -} - -#else -// three instructions when using SSE2 -static INLINE vfloat vself(vmask mask, vfloat x, vfloat y) { - return (vfloat)vorm(vandm(mask, (vmask)x), vandnotm(mask, (vmask)y)); -} - -static INLINE vint vselc(vmask mask, vint x, vint y) { - return vorm(vandm(mask, (vmask)x), vandnotm(mask, (vmask)y)); -} -#endif - -static INLINE vfloat vselfzero(vmask mask, vfloat x) { - // returns value of x if corresponding mask bits are 1, else returns 0 - // faster than vself(mask, x, ZEROV) - return _mm_and_ps((vfloat)mask, x); -} -static INLINE vfloat vselfnotzero(vmask mask, vfloat x) { - // returns value of x if corresponding mask bits are 0, else returns 0 - // faster than vself(mask, ZEROV, x) - return _mm_andnot_ps((vfloat)mask, x); -} - -static INLINE vint vselizero(vmask mask, vint x) { - // returns value of x if corresponding mask bits are 1, else returns 0 - // faster than vselc(mask, x, ZEROV) - return _mm_and_si128(mask, x); -} -static INLINE vint vselinotzero(vmask mask, vint x) { - // returns value of x if corresponding mask bits are 0, else returns 0 - // faster than vselc(mask, ZEROV, x) - return _mm_andnot_si128(mask, x); -} - -static INLINE vint2 vseli2_lt(vfloat f0, vfloat f1, vint2 x, vint2 y) { - vint2 m2 = vcast_vi2_vm(vmaskf_lt(f0, f1)); - return vori2(vandi2(m2, x), vandnoti2(m2, y)); -} - -static INLINE vmask vsignbitf(vfloat f) { - return vandm((vmask)f, (vmask)vcast_vf_f(-0.0f)); -} - -static INLINE vfloat vmulsignf(vfloat x, vfloat y) { - return (vfloat)vxorm((vmask)x, vsignbitf(y)); -} - -static INLINE vfloat vsignf(vfloat f) { - return (vfloat)vorm((vmask)vcast_vf_f(1.0f), vandm((vmask)vcast_vf_f(-0.0f), (vmask)f)); -} - -static INLINE vmask vmaskf_isinf(vfloat d) { return vmaskf_eq(vabsf(d), vcast_vf_f(INFINITYf)); } -static INLINE vmask vmaskf_ispinf(vfloat d) { return vmaskf_eq(d, vcast_vf_f(INFINITYf)); } -static INLINE vmask vmaskf_isminf(vfloat d) { return vmaskf_eq(d, vcast_vf_f(-INFINITYf)); } -static INLINE vmask vmaskf_isnan(vfloat d) { return vmaskf_neq(d, d); } -// the following is equivalent to vorm(vmaskf_isnan(a), vmaskf_isnan(b)), but faster -static INLINE vmask vmaskf_isnan(vfloat a, vfloat b) { return (vmask)_mm_cmpunord_ps(a, b); } -static INLINE vfloat visinf2f(vfloat d, vfloat m) { return (vfloat)vandm(vmaskf_isinf(d), vorm(vsignbitf(d), (vmask)m)); } -static INLINE vfloat visinff(vfloat d) { return visinf2f(d, vcast_vf_f(1.0f)); } - -static INLINE vint2 vilogbp1f(vfloat d) { - vmask m = vmaskf_lt(d, vcast_vf_f(5.421010862427522E-20f)); - d = vself(m, vmulf(vcast_vf_f(1.8446744073709552E19f), d), d); - vint2 q = vandi2(vsrli2(vcast_vi2_vm(vreinterpret_vm_vf(d)), 23), vcast_vi2_i(0xff)); - q = vsubi2(q, vseli2(m, vcast_vi2_i(64 + 0x7e), vcast_vi2_i(0x7e))); - return q; -} - -static INLINE vfloat vldexpf(vfloat x, vint2 q) { - vfloat u; - vint2 m = vsrai2(q, 31); - m = vslli2(vsubi2(vsrai2(vaddi2(m, q), 6), m), 4); - q = vsubi2(q, vslli2(m, 2)); - u = vreinterpret_vf_vm(vcast_vm_vi2(vslli2(vaddi2(m, vcast_vi2_i(0x7f)), 23))); - x = vmulf(vmulf(vmulf(vmulf(x, u), u), u), u); - u = vreinterpret_vf_vm(vcast_vm_vi2(vslli2(vaddi2(q, vcast_vi2_i(0x7f)), 23))); - return vmulf(x, u); -} - -static INLINE vfloat xsinf(vfloat d) { - vint2 q; - vfloat u, s; - - q = vrint_vi2_vf(vmulf(d, vcast_vf_f((float)rtengine::RT_1_PI))); - - u = vcast_vf_vi2(q); - d = vmlaf(u, vcast_vf_f(-PI4_Af*4), d); - d = vmlaf(u, vcast_vf_f(-PI4_Bf*4), d); - d = vmlaf(u, vcast_vf_f(-PI4_Cf*4), d); - d = vmlaf(u, vcast_vf_f(-PI4_Df*4), d); - - s = vmulf(d, d); - - d = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(1)), vnegf(d), d); - - u = vcast_vf_f(2.6083159809786593541503e-06f); - u = vmlaf(u, s, vcast_vf_f(-0.0001981069071916863322258f)); - u = vmlaf(u, s, vcast_vf_f(0.00833307858556509017944336f)); - u = vmlaf(u, s, vcast_vf_f(-0.166666597127914428710938f)); - - u = vmlaf(s, vmulf(u, d), d); - - return u; -} - -static INLINE vfloat xcosf(vfloat d) { - vint2 q; - vfloat u, s; - - q = vrint_vi2_vf(vsubf(vmulf(d, vcast_vf_f((float)rtengine::RT_1_PI)), vcast_vf_f(0.5f))); - q = vaddi2(vaddi2(q, q), vcast_vi2_i(1)); - - u = vcast_vf_vi2(q); - d = vmlaf(u, vcast_vf_f(-PI4_Af*2), d); - d = vmlaf(u, vcast_vf_f(-PI4_Bf*2), d); - d = vmlaf(u, vcast_vf_f(-PI4_Cf*2), d); - d = vmlaf(u, vcast_vf_f(-PI4_Df*2), d); - - s = vmulf(d, d); - - d = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(2)), vcast_vi2_i(2)), d, vnegf(d)); - - u = vcast_vf_f(2.6083159809786593541503e-06f); - u = vmlaf(u, s, vcast_vf_f(-0.0001981069071916863322258f)); - u = vmlaf(u, s, vcast_vf_f(0.00833307858556509017944336f)); - u = vmlaf(u, s, vcast_vf_f(-0.166666597127914428710938f)); - - u = vmlaf(s, vmulf(u, d), d); - - return u; -} - -static INLINE vfloat2 xsincosf(vfloat d) { - vint2 q; - vmask m; - vfloat u, s, t, rx, ry; - vfloat2 r; - - q = vrint_vi2_vf(vmulf(d, vcast_vf_f((float)rtengine::RT_2_PI))); - - s = d; - - u = vcast_vf_vi2(q); - s = vmlaf(u, vcast_vf_f(-PI4_Af*2), s); - s = vmlaf(u, vcast_vf_f(-PI4_Bf*2), s); - s = vmlaf(u, vcast_vf_f(-PI4_Cf*2), s); - s = vmlaf(u, vcast_vf_f(-PI4_Df*2), s); - - t = s; - - s = vmulf(s, s); - - u = vcast_vf_f(-0.000195169282960705459117889f); - u = vmlaf(u, s, vcast_vf_f(0.00833215750753879547119141f)); - u = vmlaf(u, s, vcast_vf_f(-0.166666537523269653320312f)); - u = vmulf(vmulf(u, s), t); - - rx = vaddf(t, u); - - u = vcast_vf_f(-2.71811842367242206819355e-07f); - u = vmlaf(u, s, vcast_vf_f(2.47990446951007470488548e-05f)); - u = vmlaf(u, s, vcast_vf_f(-0.00138888787478208541870117f)); - u = vmlaf(u, s, vcast_vf_f(0.0416666641831398010253906f)); - u = vmlaf(u, s, vcast_vf_f(-0.5)); - - ry = vaddf(vcast_vf_f(1), vmulf(s, u)); - - m = vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(0)); - r.x = vself(m, rx, ry); - r.y = vself(m, ry, rx); - - m = vmaski2_eq(vandi2(q, vcast_vi2_i(2)), vcast_vi2_i(2)); - r.x = vreinterpret_vf_vm(vxorm(vandm(m, vreinterpret_vm_vf(vcast_vf_f(-0.0))), vreinterpret_vm_vf(r.x))); - - m = vmaski2_eq(vandi2(vaddi2(q, vcast_vi2_i(1)), vcast_vi2_i(2)), vcast_vi2_i(2)); - r.y = vreinterpret_vf_vm(vxorm(vandm(m, vreinterpret_vm_vf(vcast_vf_f(-0.0))), vreinterpret_vm_vf(r.y))); - - m = vmaskf_isinf(d); - r.x = vself(m, vcast_vf_f(rtengine::RT_NAN), r.x); - r.y = vself(m, vcast_vf_f(rtengine::RT_NAN), r.y); - - return r; -} - -static INLINE vfloat xtanf(vfloat d) { - vint2 q; - vmask m; - vfloat u, s, x; - - q = vrint_vi2_vf(vmulf(d, vcast_vf_f((float)(2 * rtengine::RT_1_PI)))); - - x = d; - - u = vcast_vf_vi2(q); - x = vmlaf(u, vcast_vf_f(-PI4_Af*2), x); - x = vmlaf(u, vcast_vf_f(-PI4_Bf*2), x); - x = vmlaf(u, vcast_vf_f(-PI4_Cf*2), x); - x = vmlaf(u, vcast_vf_f(-PI4_Df*2), x); - - s = vmulf(x, x); - - m = vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(1)); - x = vself(m, vnegf(x), x); - - u = vcast_vf_f(0.00927245803177356719970703f); - u = vmlaf(u, s, vcast_vf_f(0.00331984995864331722259521f)); - u = vmlaf(u, s, vcast_vf_f(0.0242998078465461730957031f)); - u = vmlaf(u, s, vcast_vf_f(0.0534495301544666290283203f)); - u = vmlaf(u, s, vcast_vf_f(0.133383005857467651367188f)); - u = vmlaf(u, s, vcast_vf_f(0.333331853151321411132812f)); - - u = vmlaf(s, vmulf(u, x), x); - - u = vself(m, vrecf(u), u); - - u = vself(vmaskf_isinf(d), vcast_vf_f(NANf), u); - - return u; -} - -static INLINE vfloat xatanf(vfloat s) { - vfloat t, u; - vint2 q; - - q = vseli2_lt(s, vcast_vf_f(0.0f), vcast_vi2_i(2), vcast_vi2_i(0)); - s = vabsf(s); - - q = vseli2_lt(vcast_vf_f(1.0f), s, vaddi2(q, vcast_vi2_i(1)), q); - s = vself(vmaskf_lt(vcast_vf_f(1.0f), s), vdivf(vcast_vf_f(1.0f), s), s); - - t = vmulf(s, s); - - u = vcast_vf_f(0.00282363896258175373077393f); - u = vmlaf(u, t, vcast_vf_f(-0.0159569028764963150024414f)); - u = vmlaf(u, t, vcast_vf_f(0.0425049886107444763183594f)); - u = vmlaf(u, t, vcast_vf_f(-0.0748900920152664184570312f)); - u = vmlaf(u, t, vcast_vf_f(0.106347933411598205566406f)); - u = vmlaf(u, t, vcast_vf_f(-0.142027363181114196777344f)); - u = vmlaf(u, t, vcast_vf_f(0.199926957488059997558594f)); - u = vmlaf(u, t, vcast_vf_f(-0.333331018686294555664062f)); - - t = vaddf(s, vmulf(s, vmulf(t, u))); - - t = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(1)), vsubf(vcast_vf_f((float)(rtengine::RT_PI/2)), t), t); - t = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(2)), vcast_vi2_i(2)), vnegf(t), t); - - return t; -} - -static INLINE vfloat atan2kf(vfloat y, vfloat x) { - vfloat s, t, u; - vint2 q; - vmask p; - - q = vseli2_lt(x, vcast_vf_f(0.0f), vcast_vi2_i(-2), vcast_vi2_i(0)); - x = vabsf(x); - - q = vseli2_lt(x, y, vaddi2(q, vcast_vi2_i(1)), q); - p = vmaskf_lt(x, y); - s = vself(p, vnegf(x), y); - t = vmaxf(x, y); - - s = vdivf(s, t); - t = vmulf(s, s); - - u = vcast_vf_f(0.00282363896258175373077393f); - u = vmlaf(u, t, vcast_vf_f(-0.0159569028764963150024414f)); - u = vmlaf(u, t, vcast_vf_f(0.0425049886107444763183594f)); - u = vmlaf(u, t, vcast_vf_f(-0.0748900920152664184570312f)); - u = vmlaf(u, t, vcast_vf_f(0.106347933411598205566406f)); - u = vmlaf(u, t, vcast_vf_f(-0.142027363181114196777344f)); - u = vmlaf(u, t, vcast_vf_f(0.199926957488059997558594f)); - u = vmlaf(u, t, vcast_vf_f(-0.333331018686294555664062f)); - - t = vaddf(s, vmulf(s, vmulf(t, u))); - t = vaddf(t, vmulf(vcast_vf_vi2(q), vcast_vf_f((float)(rtengine::RT_PI/2)))); - - return t; -} - -static INLINE vfloat xatan2f(vfloat y, vfloat x) { - vfloat r = atan2kf(vabsf(y), x); - - r = vmulsignf(r, x); - r = vself(vorm(vmaskf_isinf(x), vmaskf_eq(x, vcast_vf_f(0.0f))), vsubf(vcast_vf_f((float)(rtengine::RT_PI/2)), visinf2f(x, vmulsignf(vcast_vf_f((float)(rtengine::RT_PI/2)), x))), r); - r = vself(vmaskf_isinf(y), vsubf(vcast_vf_f((float)(rtengine::RT_PI/2)), visinf2f(x, vmulsignf(vcast_vf_f((float)(rtengine::RT_PI/4)), x))), r); - r = vself(vmaskf_eq(y, vcast_vf_f(0.0f)), vselfzero(vmaskf_eq(vsignf(x), vcast_vf_f(-1.0f)), vcast_vf_f((float)rtengine::RT_PI)), r); - - return vself(vmaskf_isnan(x, y), vcast_vf_f(NANf), vmulsignf(r, y)); -} - -static INLINE vfloat xasinf(vfloat d) { - vfloat x, y; - x = vaddf(vcast_vf_f(1.0f), d); - y = vsubf(vcast_vf_f(1.0f), d); - x = vmulf(x, y); - x = vsqrtf(x); - x = vself(vmaskf_isnan(x), vcast_vf_f(NANf), atan2kf(vabsf(d), x)); - return vmulsignf(x, d); -} - -static INLINE vfloat xacosf(vfloat d) { - vfloat x, y; - x = vaddf(vcast_vf_f(1.0f), d); - y = vsubf(vcast_vf_f(1.0f), d); - x = vmulf(x, y); - x = vsqrtf(x); - x = vmulsignf(atan2kf(x, vabsf(d)), d); - y = (vfloat)vandm(vmaskf_lt(d, vcast_vf_f(0.0f)), (vmask)vcast_vf_f((float)rtengine::RT_PI)); - x = vaddf(x, y); - return x; -} - -static INLINE vfloat xlogf(vfloat d) { - vfloat x, x2, t, m; - vint2 e; - - e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); - m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); - - x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); - x2 = vmulf(x, x); - - t = vcast_vf_f(0.2371599674224853515625f); - t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); - t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); - t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); - t = vmlaf(t, x2, vcast_vf_f(2.0f)); - - x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); - - x = vself(vmaskf_ispinf(d), vcast_vf_f(INFINITYf), x); - x = vself(vmaskf_gt(vcast_vf_f(0), d), vcast_vf_f(NANf), x); - x = vself(vmaskf_eq(d, vcast_vf_f(0)), vcast_vf_f(-INFINITYf), x); - - return x; -} - -static INLINE vfloat xlogf1(vfloat d) { // does xlogf(vmaxf(d, 1.f)) but faster - vfloat x, x2, t, m; - vint2 e; - - e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); - m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); - - x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); - x2 = vmulf(x, x); - - t = vcast_vf_f(0.2371599674224853515625f); - t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); - t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); - t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); - t = vmlaf(t, x2, vcast_vf_f(2.0f)); - - x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); - - x = vself(vmaskf_ispinf(d), vcast_vf_f(INFINITYf), x); - x = vselfnotzero(vmaskf_le(d, vcast_vf_f(1.f)), x); - - return x; -} - -static INLINE vfloat xlogf0(vfloat d) { - vfloat x, x2, t, m; - vint2 e; - - e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); - m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); - - x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); - x2 = vmulf(x, x); - - t = vcast_vf_f(0.2371599674224853515625f); - t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); - t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); - t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); - t = vmlaf(t, x2, vcast_vf_f(2.0f)); - - x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); - - x = vself(vmaskf_ispinf(d), vcast_vf_f(0), x); - x = vself(vmaskf_gt(vcast_vf_f(0), d), vcast_vf_f(0), x); - x = vself(vmaskf_eq(d, vcast_vf_f(0)), vcast_vf_f(0), x); - - return x; -} - -static INLINE vfloat xlogfNoCheck(vfloat d) { // this version does not check input values. Use it only when you know the input values are > 0 e.g. when filling a lookup table - vfloat x, x2, t, m; - vint2 e; - - e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); - m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); - - x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); - x2 = vmulf(x, x); - - t = vcast_vf_f(0.2371599674224853515625f); - t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); - t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); - t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); - t = vmlaf(t, x2, vcast_vf_f(2.0f)); - - return vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); - -} - -static INLINE vfloat xexpf(vfloat d) { - vint2 q = vrint_vi2_vf(vmulf(d, vcast_vf_f(R_LN2f))); - vfloat s, u; - - s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Uf),d); - s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Lf),s); - - u = vcast_vf_f(0.00136324646882712841033936f); - u = vmlaf(u, s, vcast_vf_f(0.00836596917361021041870117f)); - u = vmlaf(u, s, vcast_vf_f(0.0416710823774337768554688f)); - u = vmlaf(u, s, vcast_vf_f(0.166665524244308471679688f)); - u = vmlaf(u, s, vcast_vf_f(0.499999850988388061523438f)); - - u = vaddf(vcast_vf_f(1.0f), vmlaf(vmulf(s, s), u, s)); - - u = vldexpf(u, q); - - // -104.0 - return vselfnotzero(vmaskf_gt(vcast_vf_f(-104.f), d), u); -} - -static INLINE vfloat xexpfNoCheck(vfloat d) { // this version does not check input values. Use it only when you know the input values are > -104.f e.g. when filling a lookup table - vint2 q = vrint_vi2_vf(vmulf(d, vcast_vf_f(R_LN2f))); - vfloat s, u; - - s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Uf),d); - s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Lf),s); - - u = vcast_vf_f(0.00136324646882712841033936f); - u = vmlaf(u, s, vcast_vf_f(0.00836596917361021041870117f)); - u = vmlaf(u, s, vcast_vf_f(0.0416710823774337768554688f)); - u = vmlaf(u, s, vcast_vf_f(0.166665524244308471679688f)); - u = vmlaf(u, s, vcast_vf_f(0.499999850988388061523438f)); - - u = vaddf(vcast_vf_f(1.0f), vmlaf(vmulf(s, s), u, s)); - - return vldexpf(u, q); -} - -static INLINE vfloat xcbrtf(vfloat d) { - vfloat x, y, q = vcast_vf_f(1.0), t; - vint2 e, qu, re; - - e = vilogbp1f(vabsf(d)); - d = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); - - t = vaddf(vcast_vf_vi2(e), vcast_vf_f(6144)); - qu = vtruncate_vi2_vf(vdivf(t, vcast_vf_f(3))); - re = vtruncate_vi2_vf(vsubf(t, vmulf(vcast_vf_vi2(qu), vcast_vf_f(3)))); - - q = vself(vmaski2_eq(re, vcast_vi2_i(1)), vcast_vf_f(1.2599210498948731647672106f), q); - q = vself(vmaski2_eq(re, vcast_vi2_i(2)), vcast_vf_f(1.5874010519681994747517056f), q); - q = vldexpf(q, vsubi2(qu, vcast_vi2_i(2048))); - - q = vmulsignf(q, d); - d = vabsf(d); - - x = vcast_vf_f(-0.601564466953277587890625f); - x = vmlaf(x, d, vcast_vf_f(2.8208892345428466796875f)); - x = vmlaf(x, d, vcast_vf_f(-5.532182216644287109375f)); - x = vmlaf(x, d, vcast_vf_f(5.898262500762939453125f)); - x = vmlaf(x, d, vcast_vf_f(-3.8095417022705078125f)); - x = vmlaf(x, d, vcast_vf_f(2.2241256237030029296875f)); - - y = vmulf(vmulf(d, x), x); - y = vmulf(vsubf(y, vmulf(vmulf(vcast_vf_f(2.0f / 3.0f), y), vmlaf(y, x, vcast_vf_f(-1.0f)))), q); - - return y; -} - -static INLINE vfloat vclampf(vfloat value, vfloat low, vfloat high) { - // clamps value in [low;high], returns low if value is NaN - return vmaxf(vminf(high, value), low); -} - -static INLINE vfloat SQRV(vfloat a){ - return a * a; -} - -static inline void vswap( vmask condition, vfloat &a, vfloat &b) { - // conditional swap the elements of two vfloats - vfloat temp = vself(condition, a, b); // the values which fit to condition - a = vself(condition, b, a); // the values which fit to inverted condition - b = temp; -} - -static inline float vhadd( vfloat a ) { - // returns a[0] + a[1] + a[2] + a[3] - a += _mm_movehl_ps(a, a); - return _mm_cvtss_f32(_mm_add_ss(a, _mm_shuffle_ps(a, a, 1))); -} - -static inline float vhmin(vfloat a) { - // returns min(a[0], a[1], a[2], a[3]) - a = vminf(a, _mm_movehl_ps(a, a)); - return _mm_cvtss_f32(vminf(a, _mm_shuffle_ps(a, a, 1))); -} - -static inline float vhmax(vfloat a) { - // returns max(a[0], a[1], a[2], a[3]) - a = vmaxf(a, _mm_movehl_ps(a, a)); - return _mm_cvtss_f32(vmaxf(a, _mm_shuffle_ps(a, a, 1))); -} - -static INLINE vfloat vmul2f(vfloat a){ - // fastest way to multiply by 2 - return a + a; -} - -static INLINE vfloat vintpf(vfloat a, vfloat b, vfloat c) { - // calculate a * b + (1 - a) * c (interpolate two values) - // following is valid: - // vintpf(a, b+x, c+x) = vintpf(a, b, c) + x - // vintpf(a, b*x, c*x) = vintpf(a, b, c) * x - return a * (b-c) + c; -} - -static INLINE vfloat vdup(vfloat a){ - // returns { a[0],a[0],a[1],a[1] } - return _mm_unpacklo_ps( a, a ); -} - -static INLINE vfloat vaddc2vfu(float &a) -{ - // loads a[0]..a[7] and returns { a[0]+a[1], a[2]+a[3], a[4]+a[5], a[6]+a[7] } - vfloat a1 = _mm_loadu_ps( &a ); - vfloat a2 = _mm_loadu_ps( (&a) + 4 ); - return _mm_shuffle_ps(a1,a2,_MM_SHUFFLE( 2,0,2,0 )) + _mm_shuffle_ps(a1,a2,_MM_SHUFFLE( 3,1,3,1 )); -} - -static INLINE vfloat vadivapb (vfloat a, vfloat b) { - return a / (a+b); -} - -static INLINE void vconvertrgbrgbrgbrgb2rrrrggggbbbb (const float * src, vfloat &rv, vfloat &gv, vfloat &bv) { // cool function name, isn't it ? :P - // converts a sequence of 4 float RGB triplets to 3 red, green and blue quadruples - rv = _mm_setr_ps(src[0],src[3],src[6],src[9]); - gv = _mm_setr_ps(src[1],src[4],src[7],src[10]); - bv = _mm_setr_ps(src[2],src[5],src[8],src[11]); -} - -#if defined( __SSE4_1__ ) && defined( __x86_64__ ) -static INLINE vfloat vceilf(vfloat x) { - return _mm_round_ps(x, _MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC); -} - -#else - -static INLINE vfloat vceilf(vfloat x) { - __m128i zerov = _mm_setzero_si128(); - zerov = _mm_cmpeq_epi32(zerov, zerov); - const vfloat onev = (vfloat)_mm_slli_epi32(_mm_srli_epi32(zerov, 25), 23); //create vector 1.0f - const vfloat xi = _mm_cvtepi32_ps(_mm_cvttps_epi32(x)); - return xi + _mm_and_ps(_mm_cmplt_ps(xi, x), onev); -} -#endif - -#endif // __SSE2__ -#endif // SLEEFSSEAVX diff --git a/rtengine/sleefsseavx.h b/rtengine/sleefsseavx.h index 8fe20c54b..c10f4a0c2 100644 --- a/rtengine/sleefsseavx.h +++ b/rtengine/sleefsseavx.h @@ -1,124 +1,897 @@ -#include -#include +//////////////////////////////////////////////////////////////// +// +// this code was taken from http://shibatch.sourceforge.net/ +// Many thanks to the author of original version: Naoki Shibata +// +// This version contains modifications made by Ingo Weyrich +// +//////////////////////////////////////////////////////////////// +#pragma once +#include "rt_math.h" #ifdef __SSE2__ -#define VECTLENDP 2 -#define VECTLENSP 4 - -typedef __m128d vdouble; -typedef __m128i vint; - -typedef __m128 vfloat; -typedef __m128i vint2; -typedef __m128i vmask; - -static vdouble vloadu(double *p) -{ - return _mm_loadu_pd(p); -} -static void vstoreu(double *p, vdouble v) -{ - _mm_storeu_pd(p, v); -} - -static vfloat vloaduf(float *p) -{ - return _mm_loadu_ps(p); -} -static void vstoreuf(float *p, vfloat v) -{ - _mm_storeu_ps(p, v); -} - -static vint2 vloadui2(int32_t *p) -{ - return (vint2)_mm_loadu_si128((__m128i *)p); -} -static void vstoreui2(int32_t *p, vint2 v) -{ - _mm_storeu_si128((__m128i *)p, (__m128i)v); -} -#endif +#include "helpersse2.h" #ifdef ENABLE_AVX -#define VECTLENDP 4 -#define VECTLENSP 8 +#include "helperavx.h" +#endif -typedef __m256d vdouble; -typedef __m128i vint; +#ifdef __GNUC__ +#define INLINE __inline +#else +#define INLINE inline +#endif +#define PI4_A .7853981554508209228515625 +#define PI4_B .794662735614792836713604629039764404296875e-8 +#define PI4_C .306161699786838294306516483068750264552437361480769e-16 +#define M_4_PI 1.273239544735162542821171882678754627704620361328125 -typedef __m256 vfloat; -typedef struct { - vint x, y; -} vint2; +#define L2U .69314718055966295651160180568695068359375 +#define L2L .28235290563031577122588448175013436025525412068e-12 +#define R_LN2 1.442695040888963407359924681001892137426645954152985934135449406931 -static vdouble vloadu(double *p) -{ - return _mm256_loadu_pd(p); -} -static void vstoreu(double *p, vdouble v) -{ - return _mm256_storeu_pd(p, v); +#define PI4_Af 0.78515625f +#define PI4_Bf 0.00024127960205078125f +#define PI4_Cf 6.3329935073852539062e-07f +#define PI4_Df 4.9604681473525147339e-10f + +#define L2Uf 0.693145751953125f +#define L2Lf 1.428606765330187045e-06f +#define R_LN2f 1.442695040888963407359924681001892137426645954152985934135449406931f + +#define INFINITYf ((float)rtengine::RT_INFINITY) +#define NANf ((float)rtengine::RT_NAN) + +static INLINE vdouble vadd3(vdouble v0, vdouble v1, vdouble v2) { + return vadd(vadd(v0, v1), v2); } -static vfloat vloaduf(float *p) -{ - return _mm256_loadu_ps(p); -} -static void vstoreuf(float *p, vfloat v) -{ - return _mm256_storeu_ps(p, v); +static INLINE vdouble vadd4(vdouble v0, vdouble v1, vdouble v2, vdouble v3) { + return vadd3(vadd(v0, v1), v2, v3); } -static vint2 vloadui2(int32_t *p) -{ - vint2 r; - r.x = _mm_loadu_si128((__m128i *) p ); - r.y = _mm_loadu_si128((__m128i *)(p + 4)); +static INLINE vdouble vadd5(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4) { + return vadd4(vadd(v0, v1), v2, v3, v4); +} + +static INLINE vdouble vadd6(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4, vdouble v5) { + return vadd5(vadd(v0, v1), v2, v3, v4, v5); +} + +static INLINE vdouble vadd7(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4, vdouble v5, vdouble v6) { + return vadd6(vadd(v0, v1), v2, v3, v4, v5, v6); +} + +static INLINE vdouble vsub3(vdouble v0, vdouble v1, vdouble v2) { + return vsub(vsub(v0, v1), v2); +} + +static INLINE vdouble vsub4(vdouble v0, vdouble v1, vdouble v2, vdouble v3) { + return vsub3(vsub(v0, v1), v2, v3); +} + +static INLINE vdouble vsub5(vdouble v0, vdouble v1, vdouble v2, vdouble v3, vdouble v4) { + return vsub4(vsub(v0, v1), v2, v3, v4); +} + +// + +static INLINE vdouble2 normalize_d(vdouble2 t) { + vdouble2 s; + + s.x = vadd(t.x, t.y); + s.y = vadd(vsub(t.x, s.x), t.y); + + return s; +} + +static INLINE vdouble2 scale_d(vdouble2 d, vdouble s) { + vdouble2 r = {vmul(d.x, s), vmul(d.y, s)}; return r; } -static void vstoreui2(int32_t *p, vint2 v) -{ - _mm_storeu_si128((__m128i *) p , v.x); - _mm_storeu_si128((__m128i *)(p + 4), v.y); +static INLINE vdouble2 add_ss(vdouble x, vdouble y) { + vdouble2 r; + + r.x = vadd(x, y); + r.y = vadd(vsub(x, r.x), y); + + return r; } -#endif -typedef struct { +static INLINE vdouble2 add2_ss(vdouble x, vdouble y) { + vdouble2 r; + + r.x = vadd(x, y); + vdouble v = vsub(r.x, x); + r.y = vadd(vsub(x, vsub(r.x, v)), vsub(y, v)); + + return r; +} + +static INLINE vdouble2 add_ds(vdouble2 x, vdouble y) { + vdouble2 r; + + r.x = vadd(x.x, y); + r.y = vadd3(vsub(x.x, r.x), y, x.y); + + return r; +} + +static INLINE vdouble2 add2_ds(vdouble2 x, vdouble y) { + vdouble2 r; + + r.x = vadd(x.x, y); + vdouble v = vsub(r.x, x.x); + r.y = vadd(vsub(x.x, vsub(r.x, v)), vsub(y, v)); + r.y = vadd(r.y, x.y); + + return r; +} + +static INLINE vdouble2 add_sd(vdouble x, vdouble2 y) { + vdouble2 r; + + r.x = vadd(x, y.x); + r.y = vadd3(vsub(x, r.x), y.x, y.y); + + return r; +} + +static INLINE vdouble2 add_dd(vdouble2 x, vdouble2 y) { + // |x| >= |y| + + vdouble2 r; + + r.x = vadd(x.x, y.x); + r.y = vadd4(vsub(x.x, r.x), y.x, x.y, y.y); + + return r; +} + +static INLINE vdouble2 add2_dd(vdouble2 x, vdouble2 y) { + vdouble2 r; + + r.x = vadd(x.x, y.x); + vdouble v = vsub(r.x, x.x); + r.y = vadd(vsub(x.x, vsub(r.x, v)), vsub(y.x, v)); + r.y = vadd(r.y, vadd(x.y, y.y)); + + return r; +} + +static INLINE vdouble2 div_dd(vdouble2 n, vdouble2 d) { + vdouble t = vrec(d.x); + vdouble dh = vupper(d.x), dl = vsub(d.x, dh); + vdouble th = vupper(t ), tl = vsub(t , th); + vdouble nhh = vupper(n.x), nhl = vsub(n.x, nhh); + + vdouble2 q; + + q.x = vmul(n.x, t); + + vdouble u = vadd5(vsub(vmul(nhh, th), q.x), vmul(nhh, tl), vmul(nhl, th), vmul(nhl, tl), + vmul(q.x, vsub5(vcast_vd_d(1), vmul(dh, th), vmul(dh, tl), vmul(dl, th), vmul(dl, tl)))); + + q.y = vadd(vmul(t, vsub(n.y, vmul(q.x, d.y))), u); + + return q; +} + +static INLINE vdouble2 mul_ss(vdouble x, vdouble y) { + vdouble xh = vupper(x), xl = vsub(x, xh); + vdouble yh = vupper(y), yl = vsub(y, yh); + vdouble2 r; + + r.x = vmul(x, y); + r.y = vadd5(vmul(xh, yh), vneg(r.x), vmul(xl, yh), vmul(xh, yl), vmul(xl, yl)); + + return r; +} + +static INLINE vdouble2 mul_ds(vdouble2 x, vdouble y) { + vdouble xh = vupper(x.x), xl = vsub(x.x, xh); + vdouble yh = vupper(y ), yl = vsub(y , yh); + vdouble2 r; + + r.x = vmul(x.x, y); + r.y = vadd6(vmul(xh, yh), vneg(r.x), vmul(xl, yh), vmul(xh, yl), vmul(xl, yl), vmul(x.y, y)); + + return r; +} + +static INLINE vdouble2 mul_dd(vdouble2 x, vdouble2 y) { + vdouble xh = vupper(x.x), xl = vsub(x.x, xh); + vdouble yh = vupper(y.x), yl = vsub(y.x, yh); + vdouble2 r; + + r.x = vmul(x.x, y.x); + r.y = vadd7(vmul(xh, yh), vneg(r.x), vmul(xl, yh), vmul(xh, yl), vmul(xl, yl), vmul(x.x, y.y), vmul(x.y, y.x)); + + return r; +} + +static INLINE vdouble2 squ_d(vdouble2 x) { + vdouble xh = vupper(x.x), xl = vsub(x.x, xh); + vdouble2 r; + + r.x = vmul(x.x, x.x); + r.y = vadd5(vmul(xh, xh), vneg(r.x), vmul(vadd(xh, xh), xl), vmul(xl, xl), vmul(x.x, vadd(x.y, x.y))); + + return r; +} + +static INLINE vdouble2 rec_s(vdouble d) { + vdouble t = vrec(d); + vdouble dh = vupper(d), dl = vsub(d, dh); + vdouble th = vupper(t), tl = vsub(t, th); + vdouble2 q; + + q.x = t; + q.y = vmul(t, vsub5(vcast_vd_d(1), vmul(dh, th), vmul(dh, tl), vmul(dl, th), vmul(dl, tl))); + + return q; +} + +static INLINE vdouble2 sqrt_d(vdouble2 d) { + vdouble t = vsqrt(vadd(d.x, d.y)); + return scale_d(mul_dd(add2_dd(d, mul_ss(t, t)), rec_s(t)), vcast_vd_d(0.5)); +} + +// + +static INLINE vdouble xldexp(vdouble x, vint q) { return vldexp(x, q); } + +static INLINE vint xilogb(vdouble d) { + vdouble e = vcast_vd_vi(vsubi(vilogbp1(vabs(d)), vcast_vi_i(1))); + e = vsel(vmask_eq(d, vcast_vd_d(0)), vcast_vd_d(-2147483648.0), e); + e = vsel(vmask_eq(vabs(d), vcast_vd_d(rtengine::RT_INFINITY)), vcast_vd_d(2147483647), e); + return vrint_vi_vd(e); +} + +static INLINE vdouble xsin(vdouble d) { + vint q; + vdouble u, s; + + q = vrint_vi_vd(vmul(d, vcast_vd_d(rtengine::RT_1_PI))); + + u = vcast_vd_vi(q); + d = vadd(d, vmul(u, vcast_vd_d(-PI4_A*4))); + d = vadd(d, vmul(u, vcast_vd_d(-PI4_B*4))); + d = vadd(d, vmul(u, vcast_vd_d(-PI4_C*4))); + + s = vmul(d, d); + + d = vsel(vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(1)), vneg(d), d); + + u = vcast_vd_d(-7.97255955009037868891952e-18); + u = vmla(u, s, vcast_vd_d(2.81009972710863200091251e-15)); + u = vmla(u, s, vcast_vd_d(-7.64712219118158833288484e-13)); + u = vmla(u, s, vcast_vd_d(1.60590430605664501629054e-10)); + u = vmla(u, s, vcast_vd_d(-2.50521083763502045810755e-08)); + u = vmla(u, s, vcast_vd_d(2.75573192239198747630416e-06)); + u = vmla(u, s, vcast_vd_d(-0.000198412698412696162806809)); + u = vmla(u, s, vcast_vd_d(0.00833333333333332974823815)); + u = vmla(u, s, vcast_vd_d(-0.166666666666666657414808)); + + u = vmla(s, vmul(u, d), d); + + return u; +} + +static INLINE vdouble xcos(vdouble d) { + vint q; + vdouble u, s; + + q = vrint_vi_vd(vsub(vmul(d, vcast_vd_d(rtengine::RT_1_PI)), vcast_vd_d(0.5))); + q = vaddi(vaddi(q, q), vcast_vi_i(1)); + + u = vcast_vd_vi(q); + d = vadd(d, vmul(u, vcast_vd_d(-PI4_A*2))); + d = vadd(d, vmul(u, vcast_vd_d(-PI4_B*2))); + d = vadd(d, vmul(u, vcast_vd_d(-PI4_C*2))); + + s = vmul(d, d); + + d = vsel(vmaski_eq(vandi(q, vcast_vi_i(2)), vcast_vi_i(0)), vneg(d), d); + + u = vcast_vd_d(-7.97255955009037868891952e-18); + u = vmla(u, s, vcast_vd_d(2.81009972710863200091251e-15)); + u = vmla(u, s, vcast_vd_d(-7.64712219118158833288484e-13)); + u = vmla(u, s, vcast_vd_d(1.60590430605664501629054e-10)); + u = vmla(u, s, vcast_vd_d(-2.50521083763502045810755e-08)); + u = vmla(u, s, vcast_vd_d(2.75573192239198747630416e-06)); + u = vmla(u, s, vcast_vd_d(-0.000198412698412696162806809)); + u = vmla(u, s, vcast_vd_d(0.00833333333333332974823815)); + u = vmla(u, s, vcast_vd_d(-0.166666666666666657414808)); + + u = vmla(s, vmul(u, d), d); + + return u; +} + +static INLINE vdouble2 xsincos(vdouble d) { + vint q; + vmask m; + vdouble u, s, t, rx, ry; + vdouble2 r; + + q = vrint_vi_vd(vmul(d, vcast_vd_d(rtengine::RT_2_PI))); + + s = d; + + u = vcast_vd_vi(q); + s = vmla(u, vcast_vd_d(-PI4_A*2), s); + s = vmla(u, vcast_vd_d(-PI4_B*2), s); + s = vmla(u, vcast_vd_d(-PI4_C*2), s); + + t = s; + + s = vmul(s, s); + + u = vcast_vd_d(1.58938307283228937328511e-10); + u = vmla(u, s, vcast_vd_d(-2.50506943502539773349318e-08)); + u = vmla(u, s, vcast_vd_d(2.75573131776846360512547e-06)); + u = vmla(u, s, vcast_vd_d(-0.000198412698278911770864914)); + u = vmla(u, s, vcast_vd_d(0.0083333333333191845961746)); + u = vmla(u, s, vcast_vd_d(-0.166666666666666130709393)); + u = vmul(vmul(u, s), t); + + rx = vadd(t, u); + + u = vcast_vd_d(-1.13615350239097429531523e-11); + u = vmla(u, s, vcast_vd_d(2.08757471207040055479366e-09)); + u = vmla(u, s, vcast_vd_d(-2.75573144028847567498567e-07)); + u = vmla(u, s, vcast_vd_d(2.48015872890001867311915e-05)); + u = vmla(u, s, vcast_vd_d(-0.00138888888888714019282329)); + u = vmla(u, s, vcast_vd_d(0.0416666666666665519592062)); + u = vmla(u, s, vcast_vd_d(-0.5)); + + ry = vadd(vcast_vd_d(1), vmul(s, u)); + + m = vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(0)); + r.x = vsel(m, rx, ry); + r.y = vsel(m, ry, rx); + + m = vmaski_eq(vandi(q, vcast_vi_i(2)), vcast_vi_i(2)); + r.x = vreinterpret_vd_vm(vxorm(vandm(m, vreinterpret_vm_vd(vcast_vd_d(-0.0))), vreinterpret_vm_vd(r.x))); + + m = vmaski_eq(vandi(vaddi(q, vcast_vi_i(1)), vcast_vi_i(2)), vcast_vi_i(2)); + r.y = vreinterpret_vd_vm(vxorm(vandm(m, vreinterpret_vm_vd(vcast_vd_d(-0.0))), vreinterpret_vm_vd(r.y))); + + m = vmask_isinf(d); + r.x = vsel(m, vcast_vd_d(rtengine::RT_NAN), r.x); + r.y = vsel(m, vcast_vd_d(rtengine::RT_NAN), r.y); + + return r; +} + +static INLINE vdouble xtan(vdouble d) { + vint q; + vdouble u, s, x; + vmask m; + + q = vrint_vi_vd(vmul(d, vcast_vd_d(rtengine::RT_2_PI))); + + u = vcast_vd_vi(q); + x = vadd(d, vmul(u, vcast_vd_d(-PI4_A*2))); + x = vadd(x, vmul(u, vcast_vd_d(-PI4_B*2))); + x = vadd(x, vmul(u, vcast_vd_d(-PI4_C*2))); + + s = vmul(x, x); + + m = vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(1)); + x = vsel(m, vneg(x), x); + + u = vcast_vd_d(1.01419718511083373224408e-05); + u = vmla(u, s, vcast_vd_d(-2.59519791585924697698614e-05)); + u = vmla(u, s, vcast_vd_d(5.23388081915899855325186e-05)); + u = vmla(u, s, vcast_vd_d(-3.05033014433946488225616e-05)); + u = vmla(u, s, vcast_vd_d(7.14707504084242744267497e-05)); + u = vmla(u, s, vcast_vd_d(8.09674518280159187045078e-05)); + u = vmla(u, s, vcast_vd_d(0.000244884931879331847054404)); + u = vmla(u, s, vcast_vd_d(0.000588505168743587154904506)); + u = vmla(u, s, vcast_vd_d(0.00145612788922812427978848)); + u = vmla(u, s, vcast_vd_d(0.00359208743836906619142924)); + u = vmla(u, s, vcast_vd_d(0.00886323944362401618113356)); + u = vmla(u, s, vcast_vd_d(0.0218694882853846389592078)); + u = vmla(u, s, vcast_vd_d(0.0539682539781298417636002)); + u = vmla(u, s, vcast_vd_d(0.133333333333125941821962)); + u = vmla(u, s, vcast_vd_d(0.333333333333334980164153)); + + u = vmla(s, vmul(u, x), x); + + u = vsel(m, vrec(u), u); + + u = vsel(vmask_isinf(d), vcast_vd_d(rtengine::RT_NAN), u); + + return u; +} + +static INLINE vdouble atan2k(vdouble y, vdouble x) { + vdouble s, t, u; + vint q; + vmask p; + + q = vseli_lt(x, vcast_vd_d(0), vcast_vi_i(-2), vcast_vi_i(0)); + x = vabs(x); + + q = vseli_lt(x, y, vaddi(q, vcast_vi_i(1)), q); + p = vmask_lt(x, y); + s = vsel (p, vneg(x), y); + t = vmax (x, y); + + s = vdiv(s, t); + t = vmul(s, s); + + u = vcast_vd_d(-1.88796008463073496563746e-05); + u = vmla(u, t, vcast_vd_d(0.000209850076645816976906797)); + u = vmla(u, t, vcast_vd_d(-0.00110611831486672482563471)); + u = vmla(u, t, vcast_vd_d(0.00370026744188713119232403)); + u = vmla(u, t, vcast_vd_d(-0.00889896195887655491740809)); + u = vmla(u, t, vcast_vd_d(0.016599329773529201970117)); + u = vmla(u, t, vcast_vd_d(-0.0254517624932312641616861)); + u = vmla(u, t, vcast_vd_d(0.0337852580001353069993897)); + u = vmla(u, t, vcast_vd_d(-0.0407629191276836500001934)); + u = vmla(u, t, vcast_vd_d(0.0466667150077840625632675)); + u = vmla(u, t, vcast_vd_d(-0.0523674852303482457616113)); + u = vmla(u, t, vcast_vd_d(0.0587666392926673580854313)); + u = vmla(u, t, vcast_vd_d(-0.0666573579361080525984562)); + u = vmla(u, t, vcast_vd_d(0.0769219538311769618355029)); + u = vmla(u, t, vcast_vd_d(-0.090908995008245008229153)); + u = vmla(u, t, vcast_vd_d(0.111111105648261418443745)); + u = vmla(u, t, vcast_vd_d(-0.14285714266771329383765)); + u = vmla(u, t, vcast_vd_d(0.199999999996591265594148)); + u = vmla(u, t, vcast_vd_d(-0.333333333333311110369124)); + + t = vadd(s, vmul(s, vmul(t, u))); + t = vadd(t, vmul(vcast_vd_vi(q), vcast_vd_d(rtengine::RT_PI/2))); + + return t; +} + +static INLINE vdouble xatan2(vdouble y, vdouble x) { + vdouble r = atan2k(vabs(y), x); + + r = vmulsign(r, x); + r = vsel(vorm(vmask_isinf(x), vmask_eq(x, vcast_vd_d(0))), vsub(vcast_vd_d(rtengine::RT_PI/2), visinf2(x, vmulsign(vcast_vd_d(rtengine::RT_PI/2), x))), r); + r = vsel(vmask_isinf(y), vsub(vcast_vd_d(rtengine::RT_PI/2), visinf2(x, vmulsign(vcast_vd_d(rtengine::RT_PI/4), x))), r); + r = vsel(vmask_eq(y, vcast_vd_d(0)), vsel(vmask_eq(vsign(x), vcast_vd_d(-1.0)), vcast_vd_d(rtengine::RT_PI), vcast_vd_d(0)), r); + + return vsel(vorm(vmask_isnan(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_NAN), vmulsign(r, y)); +} + +static INLINE vdouble xasin(vdouble d) { vdouble x, y; -} vdouble2; + x = vadd(vcast_vd_d(1), d); + y = vsub(vcast_vd_d(1), d); + x = vmul(x, y); + x = vsqrt(x); + x = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), atan2k(vabs(d), x)); + return vmulsign(x, d); +} -vdouble xldexp(vdouble x, vint q); -vint xilogb(vdouble d); +static INLINE vdouble xacos(vdouble d) { + vdouble x, y; + x = vadd(vcast_vd_d(1), d); + y = vsub(vcast_vd_d(1), d); + x = vmul(x, y); + x = vsqrt(x); + x = vmulsign(atan2k(x, vabs(d)), d); + y = (vdouble)vandm(vmask_lt(d, vcast_vd_d(0)), (vmask)vcast_vd_d(rtengine::RT_PI)); + x = vadd(x, y); + return x; +} -vdouble xsin(vdouble d); -vdouble xcos(vdouble d); -vdouble2 xsincos(vdouble d); -vdouble xtan(vdouble d); -vdouble xasin(vdouble s); -vdouble xacos(vdouble s); -vdouble xatan(vdouble s); -vdouble xatan2(vdouble y, vdouble x); -vdouble xlog(vdouble d); -vdouble xexp(vdouble d); -vdouble xpow(vdouble x, vdouble y); +static INLINE vdouble xatan(vdouble s) { + vdouble t, u; + vint q; -vdouble xsinh(vdouble d); -vdouble xcosh(vdouble d); -vdouble xtanh(vdouble d); -vdouble xasinh(vdouble s); -vdouble xacosh(vdouble s); -vdouble xatanh(vdouble s); + q = vseli_lt(s, vcast_vd_d(0), vcast_vi_i(2), vcast_vi_i(0)); + s = vabs(s); -vdouble xcbrt(vdouble d); + q = vseli_lt(vcast_vd_d(1), s, vaddi(q, vcast_vi_i(1)), q); + s = vsel(vmask_lt(vcast_vd_d(1), s), vdiv(vcast_vd_d(1), s), s); -vdouble xexp2(vdouble a); -vdouble xexp10(vdouble a); -vdouble xexpm1(vdouble a); -vdouble xlog10(vdouble a); -vdouble xlog1p(vdouble a); + t = vmul(s, s); + + u = vcast_vd_d(-1.88796008463073496563746e-05); + u = vmla(u, t, vcast_vd_d(0.000209850076645816976906797)); + u = vmla(u, t, vcast_vd_d(-0.00110611831486672482563471)); + u = vmla(u, t, vcast_vd_d(0.00370026744188713119232403)); + u = vmla(u, t, vcast_vd_d(-0.00889896195887655491740809)); + u = vmla(u, t, vcast_vd_d(0.016599329773529201970117)); + u = vmla(u, t, vcast_vd_d(-0.0254517624932312641616861)); + u = vmla(u, t, vcast_vd_d(0.0337852580001353069993897)); + u = vmla(u, t, vcast_vd_d(-0.0407629191276836500001934)); + u = vmla(u, t, vcast_vd_d(0.0466667150077840625632675)); + u = vmla(u, t, vcast_vd_d(-0.0523674852303482457616113)); + u = vmla(u, t, vcast_vd_d(0.0587666392926673580854313)); + u = vmla(u, t, vcast_vd_d(-0.0666573579361080525984562)); + u = vmla(u, t, vcast_vd_d(0.0769219538311769618355029)); + u = vmla(u, t, vcast_vd_d(-0.090908995008245008229153)); + u = vmla(u, t, vcast_vd_d(0.111111105648261418443745)); + u = vmla(u, t, vcast_vd_d(-0.14285714266771329383765)); + u = vmla(u, t, vcast_vd_d(0.199999999996591265594148)); + u = vmla(u, t, vcast_vd_d(-0.333333333333311110369124)); + + t = vadd(s, vmul(s, vmul(t, u))); + + t = vsel(vmaski_eq(vandi(q, vcast_vi_i(1)), vcast_vi_i(1)), vsub(vcast_vd_d(rtengine::RT_PI/2), t), t); + t = vsel(vmaski_eq(vandi(q, vcast_vi_i(2)), vcast_vi_i(2)), vneg(t), t); + + return t; +} + +static INLINE vdouble xlog(vdouble d) { + vdouble x, x2; + vdouble t, m; + vint e; + + e = vilogbp1(vmul(d, vcast_vd_d(0.7071))); + m = vldexp(d, vsubi(vcast_vi_i(0), e)); + + x = vdiv(vadd(vcast_vd_d(-1), m), vadd(vcast_vd_d(1), m)); + x2 = vmul(x, x); + + t = vcast_vd_d(0.148197055177935105296783); + t = vmla(t, x2, vcast_vd_d(0.153108178020442575739679)); + t = vmla(t, x2, vcast_vd_d(0.181837339521549679055568)); + t = vmla(t, x2, vcast_vd_d(0.22222194152736701733275)); + t = vmla(t, x2, vcast_vd_d(0.285714288030134544449368)); + t = vmla(t, x2, vcast_vd_d(0.399999999989941956712869)); + t = vmla(t, x2, vcast_vd_d(0.666666666666685503450651)); + t = vmla(t, x2, vcast_vd_d(2)); + + x = vadd(vmul(x, t), vmul(vcast_vd_d(0.693147180559945286226764), vcast_vd_vi(e))); + + x = vsel(vmask_ispinf(d), vcast_vd_d(rtengine::RT_INFINITY), x); + x = vsel(vmask_gt(vcast_vd_d(0), d), vcast_vd_d(rtengine::RT_NAN), x); + x = vsel(vmask_eq(d, vcast_vd_d(0)), vcast_vd_d(-rtengine::RT_INFINITY), x); + + return x; +} + +static INLINE vdouble xexp(vdouble d) { + vint q = vrint_vi_vd(vmul(d, vcast_vd_d(R_LN2))); + vdouble s, u; + + s = vadd(d, vmul(vcast_vd_vi(q), vcast_vd_d(-L2U))); + s = vadd(s, vmul(vcast_vd_vi(q), vcast_vd_d(-L2L))); + + u = vcast_vd_d(2.08860621107283687536341e-09); + u = vmla(u, s, vcast_vd_d(2.51112930892876518610661e-08)); + u = vmla(u, s, vcast_vd_d(2.75573911234900471893338e-07)); + u = vmla(u, s, vcast_vd_d(2.75572362911928827629423e-06)); + u = vmla(u, s, vcast_vd_d(2.4801587159235472998791e-05)); + u = vmla(u, s, vcast_vd_d(0.000198412698960509205564975)); + u = vmla(u, s, vcast_vd_d(0.00138888888889774492207962)); + u = vmla(u, s, vcast_vd_d(0.00833333333331652721664984)); + u = vmla(u, s, vcast_vd_d(0.0416666666666665047591422)); + u = vmla(u, s, vcast_vd_d(0.166666666666666851703837)); + u = vmla(u, s, vcast_vd_d(0.5)); + + u = vadd(vcast_vd_d(1), vadd(s, vmul(vmul(s, s), u))); + + u = vldexp(u, q); + + u = vsel(vmask_isminf(d), vcast_vd_d(0), u); + + return u; +} + +static INLINE vdouble2 logk(vdouble d) { + vdouble2 x, x2; + vdouble t, m; + vint e; + + e = vilogbp1(vmul(d, vcast_vd_d(0.7071))); + m = vldexp(d, vsubi(vcast_vi_i(0), e)); + + x = div_dd(add2_ss(vcast_vd_d(-1), m), add2_ss(vcast_vd_d(1), m)); + x2 = squ_d(x); + x2 = normalize_d(x2); + + t = vcast_vd_d(0.134601987501262130076155); + t = vmla(t, x2.x, vcast_vd_d(0.132248509032032670243288)); + t = vmla(t, x2.x, vcast_vd_d(0.153883458318096079652524)); + t = vmla(t, x2.x, vcast_vd_d(0.181817427573705403298686)); + t = vmla(t, x2.x, vcast_vd_d(0.222222231326187414840781)); + t = vmla(t, x2.x, vcast_vd_d(0.285714285651261412873718)); + t = vmla(t, x2.x, vcast_vd_d(0.400000000000222439910458)); + t = vmla(t, x2.x, vcast_vd_d(0.666666666666666371239645)); + + return add2_dd(mul_ds(dd(vcast_vd_d(0.693147180559945286226764), vcast_vd_d(2.319046813846299558417771e-17)), + vcast_vd_vi(e)), + add2_dd(scale_d(x, vcast_vd_d(2)), mul_ds(mul_dd(x2, x), t))); +} + +static INLINE vdouble expk(vdouble2 d) { + vdouble u = vmul(vadd(d.x, d.y), vcast_vd_d(R_LN2)); + vint q = vrint_vi_vd(u); + vdouble2 s, t; + + s = add2_ds(d, vmul(vcast_vd_vi(q), vcast_vd_d(-L2U))); + s = add2_ds(s, vmul(vcast_vd_vi(q), vcast_vd_d(-L2L))); + + q = vrint_vi_vd(vmin(vmax(vcast_vd_d(-2047.49), u), vcast_vd_d(2047.49))); + + s = normalize_d(s); + + u = vcast_vd_d(2.51069683420950419527139e-08); + u = vmla(u, s.x, vcast_vd_d(2.76286166770270649116855e-07)); + u = vmla(u, s.x, vcast_vd_d(2.75572496725023574143864e-06)); + u = vmla(u, s.x, vcast_vd_d(2.48014973989819794114153e-05)); + u = vmla(u, s.x, vcast_vd_d(0.000198412698809069797676111)); + u = vmla(u, s.x, vcast_vd_d(0.0013888888939977128960529)); + u = vmla(u, s.x, vcast_vd_d(0.00833333333332371417601081)); + u = vmla(u, s.x, vcast_vd_d(0.0416666666665409524128449)); + u = vmla(u, s.x, vcast_vd_d(0.166666666666666740681535)); + u = vmla(u, s.x, vcast_vd_d(0.500000000000000999200722)); + + t = add_dd(s, mul_ds(squ_d(s), u)); + + t = add_sd(vcast_vd_d(1), t); + u = vadd(t.x, t.y); + u = vldexp(u, q); + + return u; +} + +static INLINE vdouble xpow(vdouble x, vdouble y) { +#if 1 + vmask yisint = vmask_eq(vcast_vd_vi(vrint_vi_vd(y)), y); + vmask yisodd = vandm(vmaski_eq(vandi(vrint_vi_vd(y), vcast_vi_i(1)), vcast_vi_i(1)), yisint); + + vdouble result = expk(mul_ds(logk(vabs(x)), y)); + + //result = vsel(vmask_isnan(result), vcast_vd_d(rtengine::RT_INFINITY), result); + + result = vmul(result, + vsel(vmask_gt(x, vcast_vd_d(0)), + vcast_vd_d(1), + vsel(yisint, + vsel(yisodd, + vcast_vd_d(-1), + vcast_vd_d(1)), + vcast_vd_d(rtengine::RT_NAN)))); + + vdouble efx = vreinterpret_vd_vm(vxorm(vreinterpret_vm_vd(vsub(vabs(x), vcast_vd_d(1))), vsignbit(y))); + + result = vsel(vmask_isinf(y), + vsel(vmask_lt(efx, vcast_vd_d(0)), + vcast_vd_d(0), + vsel(vmask_eq(efx, vcast_vd_d(0)), + vcast_vd_d(1.0), + vcast_vd_d(rtengine::RT_INFINITY))), + result); + + result = vsel(vorm(vmask_isinf(x), vmask_eq(x, vcast_vd_d(0))), + vmul(vsel(yisodd, vsign(x), vcast_vd_d(1)), + vsel(vmask_lt(vsel(vmask_eq(x, vcast_vd_d(0)), vneg(y), y), vcast_vd_d(0)), + vcast_vd_d(0), + vcast_vd_d(rtengine::RT_INFINITY))), + result); + + result = vsel(vorm(vmask_isnan(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_NAN), result); + + result = vsel(vorm(vmask_eq(y, vcast_vd_d(0)), vmask_eq(x, vcast_vd_d(1))), vcast_vd_d(1), result); + + return result; +#else + return expk(mul_ds(logk(x), y)); +#endif +} + +static INLINE vdouble2 expk2(vdouble2 d) { + vdouble u = vmul(vadd(d.x, d.y), vcast_vd_d(R_LN2)); + vint q = vrint_vi_vd(u); + vdouble2 s, t; + + s = add2_ds(d, vmul(vcast_vd_vi(q), vcast_vd_d(-L2U))); + s = add2_ds(s, vmul(vcast_vd_vi(q), vcast_vd_d(-L2L))); + + q = vrint_vi_vd(vmin(vmax(vcast_vd_d(-2047.49), u), vcast_vd_d(2047.49))); + + s = normalize_d(s); + + u = vcast_vd_d(2.51069683420950419527139e-08); + u = vmla(u, s.x, vcast_vd_d(2.76286166770270649116855e-07)); + u = vmla(u, s.x, vcast_vd_d(2.75572496725023574143864e-06)); + u = vmla(u, s.x, vcast_vd_d(2.48014973989819794114153e-05)); + u = vmla(u, s.x, vcast_vd_d(0.000198412698809069797676111)); + u = vmla(u, s.x, vcast_vd_d(0.0013888888939977128960529)); + u = vmla(u, s.x, vcast_vd_d(0.00833333333332371417601081)); + u = vmla(u, s.x, vcast_vd_d(0.0416666666665409524128449)); + u = vmla(u, s.x, vcast_vd_d(0.166666666666666740681535)); + u = vmla(u, s.x, vcast_vd_d(0.500000000000000999200722)); + + t = add_dd(s, mul_ds(squ_d(s), u)); + + t = add_sd(vcast_vd_d(1), t); + + return dd(vldexp(t.x, q), vldexp(t.y, q)); +} + +static INLINE vdouble xsinh(vdouble x) { + vdouble y = vabs(x); + vdouble2 d = expk2(dd(y, vcast_vd_d(0))); + d = add2_dd(d, div_dd(dd(vcast_vd_d(-1), vcast_vd_d(0)), d)); + y = vmul(vadd(d.x, d.y), vcast_vd_d(0.5)); + + y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); + y = vmulsign(y, x); + y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); + + return y; +} + +static INLINE vdouble xcosh(vdouble x) { + vdouble2 d = expk2(dd(x, vcast_vd_d(0))); + d = add2_dd(d, div_dd(dd(vcast_vd_d(1), vcast_vd_d(0)), d)); + vdouble y = vmul(vadd(d.x, d.y), vcast_vd_d(0.5)); + + y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); + y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); + + return y; +} + +static INLINE vdouble xtanh(vdouble x) { + vdouble y = vabs(x); + vdouble2 d = expk2(dd(y, vcast_vd_d(0))); + vdouble2 e = div_dd(dd(vcast_vd_d(1), vcast_vd_d(0)), d); + d = div_dd(add2_dd(d, scale_d(e, vcast_vd_d(-1))), add2_dd(d, e)); + y = d.x + d.y; + + y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(1.0), y); + y = vmulsign(y, x); + y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); + + return y; +} + +static INLINE vdouble2 logk2(vdouble2 d) { + vdouble2 x, x2, m; + vdouble t; + vint e; + + d = normalize_d(d); + e = vilogbp1(vmul(d.x, vcast_vd_d(0.7071))); + m = scale_d(d, vldexp(vcast_vd_d(1), vsubi(vcast_vi_i(0), e))); + + x = div_dd(add2_ds(m, vcast_vd_d(-1)), add2_ds(m, vcast_vd_d(1))); + x2 = squ_d(x); + x2 = normalize_d(x2); + + t = vcast_vd_d(0.134601987501262130076155); + t = vmla(t, x2.x, vcast_vd_d(0.132248509032032670243288)); + t = vmla(t, x2.x, vcast_vd_d(0.153883458318096079652524)); + t = vmla(t, x2.x, vcast_vd_d(0.181817427573705403298686)); + t = vmla(t, x2.x, vcast_vd_d(0.222222231326187414840781)); + t = vmla(t, x2.x, vcast_vd_d(0.285714285651261412873718)); + t = vmla(t, x2.x, vcast_vd_d(0.400000000000222439910458)); + t = vmla(t, x2.x, vcast_vd_d(0.666666666666666371239645)); + + return add2_dd(mul_ds(dd(vcast_vd_d(0.693147180559945286226764), vcast_vd_d(2.319046813846299558417771e-17)), + vcast_vd_vi(e)), + add2_dd(scale_d(x, vcast_vd_d(2)), mul_ds(mul_dd(x2, x), t))); +} + +static INLINE vdouble xasinh(vdouble x) { + vdouble y = vabs(x); + vdouble2 d = logk2(add2_ds(sqrt_d(add2_ds(mul_ss(y, y), vcast_vd_d(1))), y)); + y = vadd(d.x, d.y); + + y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); + y = vmulsign(y, x); + y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); + + return y; +} + +static INLINE vdouble xacosh(vdouble x) { + vdouble2 d = logk2(add2_ds(sqrt_d(add2_ds(mul_ss(x, x), vcast_vd_d(-1))), x)); + vdouble y = vadd(d.x, d.y); + + y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_INFINITY), y); + y = vsel(vmask_eq(x, vcast_vd_d(1.0)), vcast_vd_d(0.0), y); + y = vsel(vmask_lt(x, vcast_vd_d(1.0)), vcast_vd_d(rtengine::RT_NAN), y); + y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); + + return y; +} + +static INLINE vdouble xatanh(vdouble x) { + vdouble y = vabs(x); + vdouble2 d = logk2(div_dd(add2_ss(vcast_vd_d(1), y), add2_ss(vcast_vd_d(1), -y))); + y = vsel(vmask_gt(y, vcast_vd_d(1.0)), vcast_vd_d(rtengine::RT_NAN), vsel(vmask_eq(y, vcast_vd_d(1.0)), vcast_vd_d(rtengine::RT_INFINITY), vmul(vadd(d.x, d.y), vcast_vd_d(0.5)))); + + y = vsel(vorm(vmask_isinf(x), vmask_isnan(y)), vcast_vd_d(rtengine::RT_NAN), y); + y = vmulsign(y, x); + y = vsel(vmask_isnan(x), vcast_vd_d(rtengine::RT_NAN), y); + + return y; +} + +static INLINE vdouble xcbrt(vdouble d) { + vdouble x, y, q = vcast_vd_d(1.0); + vint e, qu, re; + vdouble t; + + e = vilogbp1(vabs(d)); + d = vldexp(d, vsubi(vcast_vi_i(0), e)); + + t = vadd(vcast_vd_vi(e), vcast_vd_d(6144)); + qu = vtruncate_vi_vd(vdiv(t, vcast_vd_d(3))); + re = vtruncate_vi_vd(vsub(t, vmul(vcast_vd_vi(qu), vcast_vd_d(3)))); + + q = vsel(vmaski_eq(re, vcast_vi_i(1)), vcast_vd_d(1.2599210498948731647672106), q); + q = vsel(vmaski_eq(re, vcast_vi_i(2)), vcast_vd_d(1.5874010519681994747517056), q); + q = vldexp(q, vsubi(qu, vcast_vi_i(2048))); + + q = vmulsign(q, d); + + d = vabs(d); + + x = vcast_vd_d(-0.640245898480692909870982); + x = vmla(x, d, vcast_vd_d(2.96155103020039511818595)); + x = vmla(x, d, vcast_vd_d(-5.73353060922947843636166)); + x = vmla(x, d, vcast_vd_d(6.03990368989458747961407)); + x = vmla(x, d, vcast_vd_d(-3.85841935510444988821632)); + x = vmla(x, d, vcast_vd_d(2.2307275302496609725722)); + + y = vmul(x, x); y = vmul(y, y); x = vsub(x, vmul(vmla(d, y, vneg(x)), vcast_vd_d(1.0 / 3.0))); + y = vmul(vmul(d, x), x); + y = vmul(vsub(y, vmul(vmul(vcast_vd_d(2.0 / 3.0), y), vmla(y, x, vcast_vd_d(-1.0)))), q); + + return y; +} + +static INLINE vdouble xexp2(vdouble a) { + vdouble u = expk(mul_ds(dd(vcast_vd_d(0.69314718055994528623), vcast_vd_d(2.3190468138462995584e-17)), a)); + u = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), u); + u = vsel(vmask_isminf(a), vcast_vd_d(0), u); + return u; +} + +static INLINE vdouble xexp10(vdouble a) { + vdouble u = expk(mul_ds(dd(vcast_vd_d(2.3025850929940459011), vcast_vd_d(-2.1707562233822493508e-16)), a)); + u = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), u); + u = vsel(vmask_isminf(a), vcast_vd_d(0), u); + return u; +} + +static INLINE vdouble xexpm1(vdouble a) { + vdouble2 d = add2_ds(expk2(dd(a, vcast_vd_d(0))), vcast_vd_d(-1.0)); + vdouble x = d.x + d.y; + x = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), x); + x = vsel(vmask_isminf(a), vcast_vd_d(-1), x); + return x; +} + +static INLINE vdouble xlog10(vdouble a) { + vdouble2 d = mul_dd(logk(a), dd(vcast_vd_d(0.43429448190325176116), vcast_vd_d(6.6494347733425473126e-17))); + vdouble x = d.x + d.y; + + x = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), x); + x = vsel(vmask_gt(vcast_vd_d(0), a), vcast_vd_d(rtengine::RT_NAN), x); + x = vsel(vmask_eq(a, vcast_vd_d(0)), vcast_vd_d(-rtengine::RT_INFINITY), x); + + return x; +} + +static INLINE vdouble xlog1p(vdouble a) { + vdouble2 d = logk2(add2_ss(a, vcast_vd_d(1))); + vdouble x = d.x + d.y; + + x = vsel(vmask_ispinf(a), vcast_vd_d(rtengine::RT_INFINITY), x); + x = vsel(vmask_gt(vcast_vd_d(-1), a), vcast_vd_d(rtengine::RT_NAN), x); + x = vsel(vmask_eq(a, vcast_vd_d(-1)), vcast_vd_d(-rtengine::RT_INFINITY), x); + + return x; +} // @@ -126,15 +899,580 @@ typedef struct { vfloat x, y; } vfloat2; -vfloat xsinf(vfloat d); -vfloat xcosf(vfloat d); -vfloat2 xsincosf(vfloat d); -vfloat xtanf(vfloat d); -vfloat xasinf(vfloat s); -vfloat xacosf(vfloat s); -vfloat xatanf(vfloat s); -vfloat xatan2f(vfloat y, vfloat x); -vfloat xlogf(vfloat d); -vfloat xlogf0(vfloat d); -vfloat xexpf(vfloat d); -vfloat xcbrtf(vfloat s); +static INLINE vfloat vabsf(vfloat f) { return (vfloat)vandnotm((vmask)vcast_vf_f(-0.0f), (vmask)f); } +static INLINE vfloat vnegf(vfloat f) { return (vfloat)vxorm((vmask)f, (vmask)vcast_vf_f(-0.0f)); } + +#ifdef __SSE4_1__ +// only one instruction when using SSE4.1 +static INLINE vfloat vself(vmask mask, vfloat x, vfloat y) { + return _mm_blendv_ps(y,x,(vfloat)mask); +} + +static INLINE vint vselc(vmask mask, vint x, vint y) { + return _mm_blendv_epi8(y,x,mask); +} + +#else +// three instructions when using SSE2 +static INLINE vfloat vself(vmask mask, vfloat x, vfloat y) { + return (vfloat)vorm(vandm(mask, (vmask)x), vandnotm(mask, (vmask)y)); +} + +static INLINE vint vselc(vmask mask, vint x, vint y) { + return vorm(vandm(mask, (vmask)x), vandnotm(mask, (vmask)y)); +} +#endif + +static INLINE vfloat vselfzero(vmask mask, vfloat x) { + // returns value of x if corresponding mask bits are 1, else returns 0 + // faster than vself(mask, x, ZEROV) + return _mm_and_ps((vfloat)mask, x); +} +static INLINE vfloat vselfnotzero(vmask mask, vfloat x) { + // returns value of x if corresponding mask bits are 0, else returns 0 + // faster than vself(mask, ZEROV, x) + return _mm_andnot_ps((vfloat)mask, x); +} + +static INLINE vint vselizero(vmask mask, vint x) { + // returns value of x if corresponding mask bits are 1, else returns 0 + // faster than vselc(mask, x, ZEROV) + return _mm_and_si128(mask, x); +} +static INLINE vint vselinotzero(vmask mask, vint x) { + // returns value of x if corresponding mask bits are 0, else returns 0 + // faster than vselc(mask, ZEROV, x) + return _mm_andnot_si128(mask, x); +} + +static INLINE vint2 vseli2_lt(vfloat f0, vfloat f1, vint2 x, vint2 y) { + vint2 m2 = vcast_vi2_vm(vmaskf_lt(f0, f1)); + return vori2(vandi2(m2, x), vandnoti2(m2, y)); +} + +static INLINE vmask vsignbitf(vfloat f) { + return vandm((vmask)f, (vmask)vcast_vf_f(-0.0f)); +} + +static INLINE vfloat vmulsignf(vfloat x, vfloat y) { + return (vfloat)vxorm((vmask)x, vsignbitf(y)); +} + +static INLINE vfloat vsignf(vfloat f) { + return (vfloat)vorm((vmask)vcast_vf_f(1.0f), vandm((vmask)vcast_vf_f(-0.0f), (vmask)f)); +} + +static INLINE vmask vmaskf_isinf(vfloat d) { return vmaskf_eq(vabsf(d), vcast_vf_f(INFINITYf)); } +static INLINE vmask vmaskf_ispinf(vfloat d) { return vmaskf_eq(d, vcast_vf_f(INFINITYf)); } +static INLINE vmask vmaskf_isminf(vfloat d) { return vmaskf_eq(d, vcast_vf_f(-INFINITYf)); } +static INLINE vmask vmaskf_isnan(vfloat d) { return vmaskf_neq(d, d); } +// the following is equivalent to vorm(vmaskf_isnan(a), vmaskf_isnan(b)), but faster +static INLINE vmask vmaskf_isnan(vfloat a, vfloat b) { return (vmask)_mm_cmpunord_ps(a, b); } +static INLINE vfloat visinf2f(vfloat d, vfloat m) { return (vfloat)vandm(vmaskf_isinf(d), vorm(vsignbitf(d), (vmask)m)); } +static INLINE vfloat visinff(vfloat d) { return visinf2f(d, vcast_vf_f(1.0f)); } + +static INLINE vint2 vilogbp1f(vfloat d) { + vmask m = vmaskf_lt(d, vcast_vf_f(5.421010862427522E-20f)); + d = vself(m, vmulf(vcast_vf_f(1.8446744073709552E19f), d), d); + vint2 q = vandi2(vsrli2(vcast_vi2_vm(vreinterpret_vm_vf(d)), 23), vcast_vi2_i(0xff)); + q = vsubi2(q, vseli2(m, vcast_vi2_i(64 + 0x7e), vcast_vi2_i(0x7e))); + return q; +} + +static INLINE vfloat vldexpf(vfloat x, vint2 q) { + vfloat u; + vint2 m = vsrai2(q, 31); + m = vslli2(vsubi2(vsrai2(vaddi2(m, q), 6), m), 4); + q = vsubi2(q, vslli2(m, 2)); + u = vreinterpret_vf_vm(vcast_vm_vi2(vslli2(vaddi2(m, vcast_vi2_i(0x7f)), 23))); + x = vmulf(vmulf(vmulf(vmulf(x, u), u), u), u); + u = vreinterpret_vf_vm(vcast_vm_vi2(vslli2(vaddi2(q, vcast_vi2_i(0x7f)), 23))); + return vmulf(x, u); +} + +static INLINE vfloat xsinf(vfloat d) { + vint2 q; + vfloat u, s; + + q = vrint_vi2_vf(vmulf(d, vcast_vf_f((float)rtengine::RT_1_PI))); + + u = vcast_vf_vi2(q); + d = vmlaf(u, vcast_vf_f(-PI4_Af*4), d); + d = vmlaf(u, vcast_vf_f(-PI4_Bf*4), d); + d = vmlaf(u, vcast_vf_f(-PI4_Cf*4), d); + d = vmlaf(u, vcast_vf_f(-PI4_Df*4), d); + + s = vmulf(d, d); + + d = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(1)), vnegf(d), d); + + u = vcast_vf_f(2.6083159809786593541503e-06f); + u = vmlaf(u, s, vcast_vf_f(-0.0001981069071916863322258f)); + u = vmlaf(u, s, vcast_vf_f(0.00833307858556509017944336f)); + u = vmlaf(u, s, vcast_vf_f(-0.166666597127914428710938f)); + + u = vmlaf(s, vmulf(u, d), d); + + return u; +} + +static INLINE vfloat xcosf(vfloat d) { + vint2 q; + vfloat u, s; + + q = vrint_vi2_vf(vsubf(vmulf(d, vcast_vf_f((float)rtengine::RT_1_PI)), vcast_vf_f(0.5f))); + q = vaddi2(vaddi2(q, q), vcast_vi2_i(1)); + + u = vcast_vf_vi2(q); + d = vmlaf(u, vcast_vf_f(-PI4_Af*2), d); + d = vmlaf(u, vcast_vf_f(-PI4_Bf*2), d); + d = vmlaf(u, vcast_vf_f(-PI4_Cf*2), d); + d = vmlaf(u, vcast_vf_f(-PI4_Df*2), d); + + s = vmulf(d, d); + + d = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(2)), vcast_vi2_i(2)), d, vnegf(d)); + + u = vcast_vf_f(2.6083159809786593541503e-06f); + u = vmlaf(u, s, vcast_vf_f(-0.0001981069071916863322258f)); + u = vmlaf(u, s, vcast_vf_f(0.00833307858556509017944336f)); + u = vmlaf(u, s, vcast_vf_f(-0.166666597127914428710938f)); + + u = vmlaf(s, vmulf(u, d), d); + + return u; +} + +static INLINE vfloat2 xsincosf(vfloat d) { + vint2 q; + vmask m; + vfloat u, s, t, rx, ry; + vfloat2 r; + + q = vrint_vi2_vf(vmulf(d, vcast_vf_f((float)rtengine::RT_2_PI))); + + s = d; + + u = vcast_vf_vi2(q); + s = vmlaf(u, vcast_vf_f(-PI4_Af*2), s); + s = vmlaf(u, vcast_vf_f(-PI4_Bf*2), s); + s = vmlaf(u, vcast_vf_f(-PI4_Cf*2), s); + s = vmlaf(u, vcast_vf_f(-PI4_Df*2), s); + + t = s; + + s = vmulf(s, s); + + u = vcast_vf_f(-0.000195169282960705459117889f); + u = vmlaf(u, s, vcast_vf_f(0.00833215750753879547119141f)); + u = vmlaf(u, s, vcast_vf_f(-0.166666537523269653320312f)); + u = vmulf(vmulf(u, s), t); + + rx = vaddf(t, u); + + u = vcast_vf_f(-2.71811842367242206819355e-07f); + u = vmlaf(u, s, vcast_vf_f(2.47990446951007470488548e-05f)); + u = vmlaf(u, s, vcast_vf_f(-0.00138888787478208541870117f)); + u = vmlaf(u, s, vcast_vf_f(0.0416666641831398010253906f)); + u = vmlaf(u, s, vcast_vf_f(-0.5)); + + ry = vaddf(vcast_vf_f(1), vmulf(s, u)); + + m = vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(0)); + r.x = vself(m, rx, ry); + r.y = vself(m, ry, rx); + + m = vmaski2_eq(vandi2(q, vcast_vi2_i(2)), vcast_vi2_i(2)); + r.x = vreinterpret_vf_vm(vxorm(vandm(m, vreinterpret_vm_vf(vcast_vf_f(-0.0))), vreinterpret_vm_vf(r.x))); + + m = vmaski2_eq(vandi2(vaddi2(q, vcast_vi2_i(1)), vcast_vi2_i(2)), vcast_vi2_i(2)); + r.y = vreinterpret_vf_vm(vxorm(vandm(m, vreinterpret_vm_vf(vcast_vf_f(-0.0))), vreinterpret_vm_vf(r.y))); + + m = vmaskf_isinf(d); + r.x = vself(m, vcast_vf_f(rtengine::RT_NAN), r.x); + r.y = vself(m, vcast_vf_f(rtengine::RT_NAN), r.y); + + return r; +} + +static INLINE vfloat xtanf(vfloat d) { + vint2 q; + vmask m; + vfloat u, s, x; + + q = vrint_vi2_vf(vmulf(d, vcast_vf_f((float)(2 * rtengine::RT_1_PI)))); + + x = d; + + u = vcast_vf_vi2(q); + x = vmlaf(u, vcast_vf_f(-PI4_Af*2), x); + x = vmlaf(u, vcast_vf_f(-PI4_Bf*2), x); + x = vmlaf(u, vcast_vf_f(-PI4_Cf*2), x); + x = vmlaf(u, vcast_vf_f(-PI4_Df*2), x); + + s = vmulf(x, x); + + m = vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(1)); + x = vself(m, vnegf(x), x); + + u = vcast_vf_f(0.00927245803177356719970703f); + u = vmlaf(u, s, vcast_vf_f(0.00331984995864331722259521f)); + u = vmlaf(u, s, vcast_vf_f(0.0242998078465461730957031f)); + u = vmlaf(u, s, vcast_vf_f(0.0534495301544666290283203f)); + u = vmlaf(u, s, vcast_vf_f(0.133383005857467651367188f)); + u = vmlaf(u, s, vcast_vf_f(0.333331853151321411132812f)); + + u = vmlaf(s, vmulf(u, x), x); + + u = vself(m, vrecf(u), u); + + u = vself(vmaskf_isinf(d), vcast_vf_f(NANf), u); + + return u; +} + +static INLINE vfloat xatanf(vfloat s) { + vfloat t, u; + vint2 q; + + q = vseli2_lt(s, vcast_vf_f(0.0f), vcast_vi2_i(2), vcast_vi2_i(0)); + s = vabsf(s); + + q = vseli2_lt(vcast_vf_f(1.0f), s, vaddi2(q, vcast_vi2_i(1)), q); + s = vself(vmaskf_lt(vcast_vf_f(1.0f), s), vdivf(vcast_vf_f(1.0f), s), s); + + t = vmulf(s, s); + + u = vcast_vf_f(0.00282363896258175373077393f); + u = vmlaf(u, t, vcast_vf_f(-0.0159569028764963150024414f)); + u = vmlaf(u, t, vcast_vf_f(0.0425049886107444763183594f)); + u = vmlaf(u, t, vcast_vf_f(-0.0748900920152664184570312f)); + u = vmlaf(u, t, vcast_vf_f(0.106347933411598205566406f)); + u = vmlaf(u, t, vcast_vf_f(-0.142027363181114196777344f)); + u = vmlaf(u, t, vcast_vf_f(0.199926957488059997558594f)); + u = vmlaf(u, t, vcast_vf_f(-0.333331018686294555664062f)); + + t = vaddf(s, vmulf(s, vmulf(t, u))); + + t = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(1)), vcast_vi2_i(1)), vsubf(vcast_vf_f((float)(rtengine::RT_PI/2)), t), t); + t = vself(vmaski2_eq(vandi2(q, vcast_vi2_i(2)), vcast_vi2_i(2)), vnegf(t), t); + + return t; +} + +static INLINE vfloat atan2kf(vfloat y, vfloat x) { + vfloat s, t, u; + vint2 q; + vmask p; + + q = vseli2_lt(x, vcast_vf_f(0.0f), vcast_vi2_i(-2), vcast_vi2_i(0)); + x = vabsf(x); + + q = vseli2_lt(x, y, vaddi2(q, vcast_vi2_i(1)), q); + p = vmaskf_lt(x, y); + s = vself(p, vnegf(x), y); + t = vmaxf(x, y); + + s = vdivf(s, t); + t = vmulf(s, s); + + u = vcast_vf_f(0.00282363896258175373077393f); + u = vmlaf(u, t, vcast_vf_f(-0.0159569028764963150024414f)); + u = vmlaf(u, t, vcast_vf_f(0.0425049886107444763183594f)); + u = vmlaf(u, t, vcast_vf_f(-0.0748900920152664184570312f)); + u = vmlaf(u, t, vcast_vf_f(0.106347933411598205566406f)); + u = vmlaf(u, t, vcast_vf_f(-0.142027363181114196777344f)); + u = vmlaf(u, t, vcast_vf_f(0.199926957488059997558594f)); + u = vmlaf(u, t, vcast_vf_f(-0.333331018686294555664062f)); + + t = vaddf(s, vmulf(s, vmulf(t, u))); + t = vaddf(t, vmulf(vcast_vf_vi2(q), vcast_vf_f((float)(rtengine::RT_PI/2)))); + + return t; +} + +static INLINE vfloat xatan2f(vfloat y, vfloat x) { + vfloat r = atan2kf(vabsf(y), x); + + r = vmulsignf(r, x); + r = vself(vorm(vmaskf_isinf(x), vmaskf_eq(x, vcast_vf_f(0.0f))), vsubf(vcast_vf_f((float)(rtengine::RT_PI/2)), visinf2f(x, vmulsignf(vcast_vf_f((float)(rtengine::RT_PI/2)), x))), r); + r = vself(vmaskf_isinf(y), vsubf(vcast_vf_f((float)(rtengine::RT_PI/2)), visinf2f(x, vmulsignf(vcast_vf_f((float)(rtengine::RT_PI/4)), x))), r); + r = vself(vmaskf_eq(y, vcast_vf_f(0.0f)), vselfzero(vmaskf_eq(vsignf(x), vcast_vf_f(-1.0f)), vcast_vf_f((float)rtengine::RT_PI)), r); + + return vself(vmaskf_isnan(x, y), vcast_vf_f(NANf), vmulsignf(r, y)); +} + +static INLINE vfloat xasinf(vfloat d) { + vfloat x, y; + x = vaddf(vcast_vf_f(1.0f), d); + y = vsubf(vcast_vf_f(1.0f), d); + x = vmulf(x, y); + x = vsqrtf(x); + x = vself(vmaskf_isnan(x), vcast_vf_f(NANf), atan2kf(vabsf(d), x)); + return vmulsignf(x, d); +} + +static INLINE vfloat xacosf(vfloat d) { + vfloat x, y; + x = vaddf(vcast_vf_f(1.0f), d); + y = vsubf(vcast_vf_f(1.0f), d); + x = vmulf(x, y); + x = vsqrtf(x); + x = vmulsignf(atan2kf(x, vabsf(d)), d); + y = (vfloat)vandm(vmaskf_lt(d, vcast_vf_f(0.0f)), (vmask)vcast_vf_f((float)rtengine::RT_PI)); + x = vaddf(x, y); + return x; +} + +static INLINE vfloat xlogf(vfloat d) { + vfloat x, x2, t, m; + vint2 e; + + e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); + m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); + + x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); + x2 = vmulf(x, x); + + t = vcast_vf_f(0.2371599674224853515625f); + t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); + t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); + t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); + t = vmlaf(t, x2, vcast_vf_f(2.0f)); + + x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); + + x = vself(vmaskf_ispinf(d), vcast_vf_f(INFINITYf), x); + x = vself(vmaskf_gt(vcast_vf_f(0), d), vcast_vf_f(NANf), x); + x = vself(vmaskf_eq(d, vcast_vf_f(0)), vcast_vf_f(-INFINITYf), x); + + return x; +} + +static INLINE vfloat xlogf1(vfloat d) { // does xlogf(vmaxf(d, 1.f)) but faster + vfloat x, x2, t, m; + vint2 e; + + e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); + m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); + + x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); + x2 = vmulf(x, x); + + t = vcast_vf_f(0.2371599674224853515625f); + t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); + t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); + t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); + t = vmlaf(t, x2, vcast_vf_f(2.0f)); + + x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); + + x = vself(vmaskf_ispinf(d), vcast_vf_f(INFINITYf), x); + x = vselfnotzero(vmaskf_le(d, vcast_vf_f(1.f)), x); + + return x; +} + +static INLINE vfloat xlogf0(vfloat d) { + vfloat x, x2, t, m; + vint2 e; + + e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); + m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); + + x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); + x2 = vmulf(x, x); + + t = vcast_vf_f(0.2371599674224853515625f); + t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); + t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); + t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); + t = vmlaf(t, x2, vcast_vf_f(2.0f)); + + x = vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); + + x = vself(vmaskf_ispinf(d), vcast_vf_f(0), x); + x = vself(vmaskf_gt(vcast_vf_f(0), d), vcast_vf_f(0), x); + x = vself(vmaskf_eq(d, vcast_vf_f(0)), vcast_vf_f(0), x); + + return x; +} + +static INLINE vfloat xlogfNoCheck(vfloat d) { // this version does not check input values. Use it only when you know the input values are > 0 e.g. when filling a lookup table + vfloat x, x2, t, m; + vint2 e; + + e = vilogbp1f(vmulf(d, vcast_vf_f(0.7071f))); + m = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); + + x = vdivf(vaddf(vcast_vf_f(-1.0f), m), vaddf(vcast_vf_f(1.0f), m)); + x2 = vmulf(x, x); + + t = vcast_vf_f(0.2371599674224853515625f); + t = vmlaf(t, x2, vcast_vf_f(0.285279005765914916992188f)); + t = vmlaf(t, x2, vcast_vf_f(0.400005519390106201171875f)); + t = vmlaf(t, x2, vcast_vf_f(0.666666567325592041015625f)); + t = vmlaf(t, x2, vcast_vf_f(2.0f)); + + return vaddf(vmulf(x, t), vmulf(vcast_vf_f(0.693147180559945286226764f), vcast_vf_vi2(e))); + +} + +static INLINE vfloat xexpf(vfloat d) { + vint2 q = vrint_vi2_vf(vmulf(d, vcast_vf_f(R_LN2f))); + vfloat s, u; + + s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Uf),d); + s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Lf),s); + + u = vcast_vf_f(0.00136324646882712841033936f); + u = vmlaf(u, s, vcast_vf_f(0.00836596917361021041870117f)); + u = vmlaf(u, s, vcast_vf_f(0.0416710823774337768554688f)); + u = vmlaf(u, s, vcast_vf_f(0.166665524244308471679688f)); + u = vmlaf(u, s, vcast_vf_f(0.499999850988388061523438f)); + + u = vaddf(vcast_vf_f(1.0f), vmlaf(vmulf(s, s), u, s)); + + u = vldexpf(u, q); + + // -104.0 + return vselfnotzero(vmaskf_gt(vcast_vf_f(-104.f), d), u); +} + +static INLINE vfloat xexpfNoCheck(vfloat d) { // this version does not check input values. Use it only when you know the input values are > -104.f e.g. when filling a lookup table + vint2 q = vrint_vi2_vf(vmulf(d, vcast_vf_f(R_LN2f))); + vfloat s, u; + + s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Uf),d); + s = vmlaf(vcast_vf_vi2(q), vcast_vf_f(-L2Lf),s); + + u = vcast_vf_f(0.00136324646882712841033936f); + u = vmlaf(u, s, vcast_vf_f(0.00836596917361021041870117f)); + u = vmlaf(u, s, vcast_vf_f(0.0416710823774337768554688f)); + u = vmlaf(u, s, vcast_vf_f(0.166665524244308471679688f)); + u = vmlaf(u, s, vcast_vf_f(0.499999850988388061523438f)); + + u = vaddf(vcast_vf_f(1.0f), vmlaf(vmulf(s, s), u, s)); + + return vldexpf(u, q); +} + +static INLINE vfloat xcbrtf(vfloat d) { + vfloat x, y, q = vcast_vf_f(1.0), t; + vint2 e, qu, re; + + e = vilogbp1f(vabsf(d)); + d = vldexpf(d, vsubi2(vcast_vi2_i(0), e)); + + t = vaddf(vcast_vf_vi2(e), vcast_vf_f(6144)); + qu = vtruncate_vi2_vf(vdivf(t, vcast_vf_f(3))); + re = vtruncate_vi2_vf(vsubf(t, vmulf(vcast_vf_vi2(qu), vcast_vf_f(3)))); + + q = vself(vmaski2_eq(re, vcast_vi2_i(1)), vcast_vf_f(1.2599210498948731647672106f), q); + q = vself(vmaski2_eq(re, vcast_vi2_i(2)), vcast_vf_f(1.5874010519681994747517056f), q); + q = vldexpf(q, vsubi2(qu, vcast_vi2_i(2048))); + + q = vmulsignf(q, d); + d = vabsf(d); + + x = vcast_vf_f(-0.601564466953277587890625f); + x = vmlaf(x, d, vcast_vf_f(2.8208892345428466796875f)); + x = vmlaf(x, d, vcast_vf_f(-5.532182216644287109375f)); + x = vmlaf(x, d, vcast_vf_f(5.898262500762939453125f)); + x = vmlaf(x, d, vcast_vf_f(-3.8095417022705078125f)); + x = vmlaf(x, d, vcast_vf_f(2.2241256237030029296875f)); + + y = vmulf(vmulf(d, x), x); + y = vmulf(vsubf(y, vmulf(vmulf(vcast_vf_f(2.0f / 3.0f), y), vmlaf(y, x, vcast_vf_f(-1.0f)))), q); + + return y; +} + +static INLINE vfloat vclampf(vfloat value, vfloat low, vfloat high) { + // clamps value in [low;high], returns low if value is NaN + return vmaxf(vminf(high, value), low); +} + +static INLINE vfloat SQRV(vfloat a){ + return a * a; +} + +static inline void vswap( vmask condition, vfloat &a, vfloat &b) { + // conditional swap the elements of two vfloats + vfloat temp = vself(condition, a, b); // the values which fit to condition + a = vself(condition, b, a); // the values which fit to inverted condition + b = temp; +} + +static inline float vhadd( vfloat a ) { + // returns a[0] + a[1] + a[2] + a[3] + a += _mm_movehl_ps(a, a); + return _mm_cvtss_f32(_mm_add_ss(a, _mm_shuffle_ps(a, a, 1))); +} + +static inline float vhmin(vfloat a) { + // returns min(a[0], a[1], a[2], a[3]) + a = vminf(a, _mm_movehl_ps(a, a)); + return _mm_cvtss_f32(vminf(a, _mm_shuffle_ps(a, a, 1))); +} + +static inline float vhmax(vfloat a) { + // returns max(a[0], a[1], a[2], a[3]) + a = vmaxf(a, _mm_movehl_ps(a, a)); + return _mm_cvtss_f32(vmaxf(a, _mm_shuffle_ps(a, a, 1))); +} + +static INLINE vfloat vmul2f(vfloat a){ + // fastest way to multiply by 2 + return a + a; +} + +static INLINE vfloat vintpf(vfloat a, vfloat b, vfloat c) { + // calculate a * b + (1 - a) * c (interpolate two values) + // following is valid: + // vintpf(a, b+x, c+x) = vintpf(a, b, c) + x + // vintpf(a, b*x, c*x) = vintpf(a, b, c) * x + return a * (b-c) + c; +} + +static INLINE vfloat vdup(vfloat a){ + // returns { a[0],a[0],a[1],a[1] } + return _mm_unpacklo_ps( a, a ); +} + +static INLINE vfloat vaddc2vfu(float &a) +{ + // loads a[0]..a[7] and returns { a[0]+a[1], a[2]+a[3], a[4]+a[5], a[6]+a[7] } + vfloat a1 = _mm_loadu_ps( &a ); + vfloat a2 = _mm_loadu_ps( (&a) + 4 ); + return _mm_shuffle_ps(a1,a2,_MM_SHUFFLE( 2,0,2,0 )) + _mm_shuffle_ps(a1,a2,_MM_SHUFFLE( 3,1,3,1 )); +} + +static INLINE vfloat vadivapb (vfloat a, vfloat b) { + return a / (a+b); +} + +static INLINE void vconvertrgbrgbrgbrgb2rrrrggggbbbb (const float * src, vfloat &rv, vfloat &gv, vfloat &bv) { // cool function name, isn't it ? :P + // converts a sequence of 4 float RGB triplets to 3 red, green and blue quadruples + rv = _mm_setr_ps(src[0],src[3],src[6],src[9]); + gv = _mm_setr_ps(src[1],src[4],src[7],src[10]); + bv = _mm_setr_ps(src[2],src[5],src[8],src[11]); +} + +#if defined( __SSE4_1__ ) && defined( __x86_64__ ) +static INLINE vfloat vceilf(vfloat x) { + return _mm_round_ps(x, _MM_FROUND_TO_POS_INF |_MM_FROUND_NO_EXC); +} + +#else + +static INLINE vfloat vceilf(vfloat x) { + __m128i zerov = _mm_setzero_si128(); + zerov = _mm_cmpeq_epi32(zerov, zerov); + const vfloat onev = (vfloat)_mm_slli_epi32(_mm_srli_epi32(zerov, 25), 23); //create vector 1.0f + const vfloat xi = _mm_cvtepi32_ps(_mm_cvttps_epi32(x)); + return xi + _mm_and_ps(_mm_cmplt_ps(xi, x), onev); +} +#endif + +#endif // __SSE2__ diff --git a/rtengine/utils.cc b/rtengine/utils.cc index a07a1235f..0674c9806 100644 --- a/rtengine/utils.cc +++ b/rtengine/utils.cc @@ -22,7 +22,6 @@ #include "rt_math.h" #include "utils.h" -#include "rt_math.h" using namespace std; diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 0a9b81112..edc378700 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -37,6 +37,7 @@ #include "rtsurface.h" #include "../rtengine/dcrop.h" +#include "../rtengine/imagesource.h" #include "../rtengine/procparams.h" #include "../rtengine/rt_math.h" diff --git a/rtgui/curveeditor.h b/rtgui/curveeditor.h index baae8f492..abc0cc10a 100644 --- a/rtgui/curveeditor.h +++ b/rtgui/curveeditor.h @@ -18,8 +18,8 @@ */ #pragma once -#include "coloredbar.h" #include "editcallbacks.h" +#include "guiutils.h" #include "../rtengine/diagonalcurvetypes.h" #include "../rtengine/flatcurvetypes.h" @@ -28,6 +28,7 @@ class CurveEditorGroup; class CurveEditorSubGroup; +class ColorProvider; class PopUpToggleButton; /* diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 02a28607f..9a4e71ab4 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -20,7 +20,6 @@ #include "guiutils.h" #include "options.h" -#include "../rtengine/rt_math.h" #include "../rtengine/utils.h" #include "../rtengine/procparams.h" #include "rtimage.h" From 6d76670e7d970f24212c0e8606e12306f54a2606 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 19 Jan 2020 12:02:19 +0100 Subject: [PATCH 154/453] sleef.h: Do not convert to double in signf(float) --- rtengine/sleef.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/sleef.h b/rtengine/sleef.h index b7655258b..fc23cbad9 100644 --- a/rtengine/sleef.h +++ b/rtengine/sleef.h @@ -929,7 +929,7 @@ __inline float mulsignf(float x, float y) { return intBitsToFloat(floatToRawIntBits(x) ^ (floatToRawIntBits(y) & (1 << 31))); } -__inline float signf(float d) { return copysign(1, d); } +__inline float signf(float d) { return std::copysign(1.f, d); } __inline float mlaf(float x, float y, float z) { return x * y + z; } __inline int xisnanf(float x) { return x != x; } From 544a2e5068e38fa4f57c56159c53ddd0e1d6b38c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 20 Jan 2020 16:02:30 +0100 Subject: [PATCH 155/453] Fix double promotion in target rtexif --- rtexif/canonattribs.cc | 2 +- rtexif/kodakattribs.cc | 6 +++--- rtexif/nikonattribs.cc | 2 +- rtexif/pentaxattribs.cc | 8 ++++---- rtexif/rtexif.cc | 2 +- rtexif/sonyminoltaattribs.cc | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/rtexif/canonattribs.cc b/rtexif/canonattribs.cc index 0e6f7eb2f..5d907e242 100644 --- a/rtexif/canonattribs.cc +++ b/rtexif/canonattribs.cc @@ -1174,7 +1174,7 @@ public: int a = Interpreter::toInt (t, ofs, astype); if (a > 1) { - int i = int (double (powf (2.f, float (a) / 32.f - 4.f)) * 50.f + 0.5f); + int i = static_cast(powf (2.f, static_cast(a) / 32.f - 4.f)) * 50.0 + 0.5; return i; } else { return 0; diff --git a/rtexif/kodakattribs.cc b/rtexif/kodakattribs.cc index a9c168a70..9c7d7d1ee 100644 --- a/rtexif/kodakattribs.cc +++ b/rtexif/kodakattribs.cc @@ -58,7 +58,7 @@ void parseKodakIfdTextualInfo (Tag *textualInfo, Tag* exif_) // Proback645 may have "Lens" but not "Focal Length" float flen = atof (val.c_str()); - if (flen != 0.0) { + if (flen != 0.f) { t = new Tag (exif, lookupAttrib (exifAttribs, "FocalLength")); t->initRational (flen * 32, 32); exif->replaceTag (t); @@ -66,7 +66,7 @@ void parseKodakIfdTextualInfo (Tag *textualInfo, Tag* exif_) } else if (key == "Focal Length") { float flen = atof (val.c_str()); - if (flen != 0.0) { + if (flen != 0.f) { t = new Tag (exif, lookupAttrib (exifAttribs, "FocalLength")); t->initRational (flen * 32, 32); exif->replaceTag (t); @@ -74,7 +74,7 @@ void parseKodakIfdTextualInfo (Tag *textualInfo, Tag* exif_) } else if (key == "Aperture") { float aperture = atof (&val.c_str()[1]); - if (aperture != 0.0) { + if (aperture != 0.f) { t = new Tag (exif, lookupAttrib (exifAttribs, "FNumber")); t->initRational ((int) (aperture * 10), 10); exif->replaceTag (t); diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index 77720dde0..b050b3b87 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -70,7 +70,7 @@ public: int a = t->getValue()[ofs]; if (a > 1) { - int i = int (double (powf (2.f, float (a) / 12.f - 5.f)) * 100.f + 0.5f); + int i = static_cast(powf(2.f, float (a) / 12.f - 5.f)) * 100.0 + 0.5; return i; } else { return 0; diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index 898150696..89e5172e8 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -1391,9 +1391,9 @@ public: std::string toString (const Tag* t) const override { int a = t->toInt (0, BYTE); - float b = float (10 * int (a >> 2)) * pow (4.f, float (int (a & 0x03) - 2)); + double b = static_cast(10 * (a >> 2)) * std::pow(4.f, static_cast((a & 0x03) - 2)); - if (b > 1.f) { + if (b > 1.0) { char buffer[32]; sprintf (buffer, "%.2f", b ); return buffer; @@ -1404,9 +1404,9 @@ public: double toDouble (const Tag* t, int ofs) override { int a = t->toInt (ofs, BYTE); - float b = float (10 * int (a >> 2)) * pow (4.f, float (int (a & 0x03) - 2)); + double b = static_cast(10 * (a >> 2)) * std::pow(4.f, static_cast((a & 0x03) - 2)); - if (b > 1.f) { + if (b > 1.0) { return b; } else { return 0.; diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index 89ff6cd33..06604ade5 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -2344,7 +2344,7 @@ void ExifManager::parseCIFF (int length, TagDirectory* root) ev = ((short)get2 (f, INTEL)) / 32.0f; fseek (f, 34, SEEK_CUR); - if (shutter > 1e6) { + if (shutter > 1e6f) { shutter = get2 (f, INTEL) / 10.0f; } diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc index 4410a4051..11130a577 100644 --- a/rtexif/sonyminoltaattribs.cc +++ b/rtexif/sonyminoltaattribs.cc @@ -2252,7 +2252,7 @@ public: // Decode the value if (a && a != 254) { // 254 = 'Auto' for CameraSettings3, but we might say the same for CameraSettings & CameraSettings2 (?) - return int (expf ((double (a) / 8.f - 6.f) * logf (2.f)) * 100.f + 0.5f); + return std::exp((a / 8.f - 6.f) * std::log(2.f)) * 100.f + 0.5f; } else { return 0; } From 9dbf0ff6293d3c86254ec3cb04a7cf5ec9acdcc7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 20 Jan 2020 18:50:24 +0100 Subject: [PATCH 156/453] Fix LGTM issues --- rtexif/pentaxattribs.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index 89e5172e8..ea47e6058 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -1391,7 +1391,7 @@ public: std::string toString (const Tag* t) const override { int a = t->toInt (0, BYTE); - double b = static_cast(10 * (a >> 2)) * std::pow(4.f, static_cast((a & 0x03) - 2)); + double b = static_cast(10 * (a >> 2)) * std::pow(4.0, static_cast((a & 0x03) - 2)); if (b > 1.0) { char buffer[32]; @@ -1404,7 +1404,7 @@ public: double toDouble (const Tag* t, int ofs) override { int a = t->toInt (ofs, BYTE); - double b = static_cast(10 * (a >> 2)) * std::pow(4.f, static_cast((a & 0x03) - 2)); + double b = static_cast(10 * (a >> 2)) * std::pow(4.0, static_cast((a & 0x03) - 2)); if (b > 1.0) { return b; From b2443b0e7e8db1d202da2d008a13dbe18ce3fd3d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 21 Jan 2020 00:16:27 +0100 Subject: [PATCH 157/453] more double promote fixes, still not complete --- rtengine/CA_correct_RT.cc | 16 +++++------ rtengine/EdgePreservingDecomposition.cc | 22 +++++++------- rtengine/PF_correct_RT.cc | 38 +++++++++++++------------ rtengine/ahd_demosaic_RT.cc | 12 ++++---- rtengine/badpixels.cc | 2 +- rtengine/camconst.cc | 4 +-- rtengine/capturesharpening.cc | 8 +++--- rtengine/ciecam02.cc | 10 +++---- rtengine/color.h | 16 +++++------ rtengine/colortemp.cc | 12 ++++---- rtengine/curves.h | 10 +++---- rtengine/dcp.cc | 34 +++++++++++++++------- rtengine/demosaic_algos.cc | 2 +- rtengine/dfmanager.cc | 2 +- rtengine/diagonalcurves.cc | 12 ++++---- rtengine/dirpyr_equalizer.cc | 10 +++---- rtengine/dual_demosaic_RT.cc | 4 +-- rtengine/ffmanager.cc | 2 +- rtengine/green_equil_RT.cc | 10 +++---- rtengine/histmatching.cc | 6 ++-- rtengine/image16.cc | 8 +++--- rtengine/image8.cc | 8 +++--- rtengine/imagefloat.cc | 10 +++---- rtengine/ipdehaze.cc | 6 ++-- rtengine/iplabregions.cc | 8 +++--- rtengine/ipretinex.cc | 12 ++++---- rtengine/ipshadowshighlights.cc | 2 +- rtengine/ipvibrance.cc | 4 +-- rtengine/lmmse_demosaic.cc | 8 +++--- rtengine/procparams.cc | 2 +- rtengine/tmo_fattal02.cc | 12 ++++---- rtengine/xtrans_demosaic.cc | 2 +- rtgui/blackwhite.cc | 10 +++---- rtgui/colorappearance.cc | 2 +- rtgui/colortoning.cc | 20 ++++++------- rtgui/coordinateadjuster.cc | 8 +++--- rtgui/crop.cc | 16 +++++------ rtgui/editwidgets.cc | 20 ++++++------- 38 files changed, 203 insertions(+), 187 deletions(-) diff --git a/rtengine/CA_correct_RT.cc b/rtengine/CA_correct_RT.cc index f4d082199..fa9788af0 100644 --- a/rtengine/CA_correct_RT.cc +++ b/rtengine/CA_correct_RT.cc @@ -790,12 +790,12 @@ float* RawImageSource::CA_correct_RT( for (int m = 0; m < polyord; m++) { double powHblock = powHblockInit; for (int n = 0; n < polyord; n++) { - polymat[c][dir][numpar * (polyord * i + j) + (polyord * m + n)] += powVblock * powHblock * blockwt[vblock * hblsz + hblock]; + polymat[c][dir][numpar * (polyord * i + j) + (polyord * m + n)] += powVblock * powHblock * static_cast(blockwt[vblock * hblsz + hblock]); powHblock *= hblock; } powVblock *= vblock; } - shiftmat[c][dir][(polyord * i + j)] += powVblockInit * powHblockInit * bstemp[dir] * blockwt[vblock * hblsz + hblock]; + shiftmat[c][dir][(polyord * i + j)] += powVblockInit * powHblockInit * static_cast(bstemp[dir]) * static_cast(blockwt[vblock * hblsz + hblock]); powHblockInit *= hblock; } powVblockInit *= vblock; @@ -848,7 +848,7 @@ float* RawImageSource::CA_correct_RT( for (int top = -border; top < height; top += ts - border2) { for (int left = -border; left < width - (W & 1); left += ts - border2) { memset(bufferThr, 0, buffersizePassTwo); - float lblockshifts[2][2]; + double lblockshifts[2][2]; const int vblock = ((top + border) / (ts - border2)) + 1; const int hblock = ((left + border) / (ts - border2)) + 1; const int bottom = min(top + ts, height + border); @@ -1036,8 +1036,8 @@ float* RawImageSource::CA_correct_RT( } if (!autoCA) { - float hfrac = -((float)(hblock - 0.5) / (hblsz - 2) - 0.5); - float vfrac = -((float)(vblock - 0.5) / (vblsz - 2) - 0.5) * height / width; + double hfrac = -((hblock - 0.5) / (hblsz - 2) - 0.5); + double vfrac = -((vblock - 0.5) / (vblsz - 2) - 0.5) * height / width; lblockshifts[0][0] = 2 * vfrac * cared; lblockshifts[0][1] = 2 * hfrac * cared; lblockshifts[1][0] = 2 * vfrac * cablue; @@ -1058,7 +1058,7 @@ float* RawImageSource::CA_correct_RT( } powVblock *= vblock; } - constexpr float bslim = 3.99; //max allowed CA shift + constexpr double bslim = 3.99f; //max allowed CA shift lblockshifts[0][0] = LIM(lblockshifts[0][0], -bslim, bslim); lblockshifts[0][1] = LIM(lblockshifts[0][1], -bslim, bslim); lblockshifts[1][0] = LIM(lblockshifts[1][0], -bslim, bslim); @@ -1070,14 +1070,14 @@ float* RawImageSource::CA_correct_RT( //some parameters for the bilinear interpolation shiftvfloor[c] = floor((float)lblockshifts[c>>1][0]); shiftvceil[c] = ceil((float)lblockshifts[c>>1][0]); - if (lblockshifts[c>>1][0] < 0.f) { + if (lblockshifts[c>>1][0] < 0.0) { std::swap(shiftvfloor[c], shiftvceil[c]); } shiftvfrac[c] = fabs(lblockshifts[c>>1][0] - shiftvfloor[c]); shifthfloor[c] = floor((float)lblockshifts[c>>1][1]); shifthceil[c] = ceil((float)lblockshifts[c>>1][1]); - if (lblockshifts[c>>1][1] < 0.f) { + if (lblockshifts[c>>1][1] < 0.0) { std::swap(shifthfloor[c], shifthceil[c]); } shifthfrac[c] = fabs(lblockshifts[c>>1][1] - shifthfloor[c]); diff --git a/rtengine/EdgePreservingDecomposition.cc b/rtengine/EdgePreservingDecomposition.cc index 700181e1d..04459e88a 100644 --- a/rtengine/EdgePreservingDecomposition.cc +++ b/rtengine/EdgePreservingDecomposition.cc @@ -55,7 +55,7 @@ float *SparseConjugateGradient(void Ax(float *Product, float *x, void *Pass), fl #endif for(int ii = 0; ii < n; ii++) { - rs += r[ii] * s[ii]; + rs += static_cast(r[ii]) * static_cast(s[ii]); } //Search direction d. @@ -84,15 +84,15 @@ float *SparseConjugateGradient(void Ax(float *Product, float *x, void *Pass), fl #endif for(int ii = 0; ii < n; ii++) { - ab += d[ii] * ax[ii]; + ab += static_cast(d[ii]) * static_cast(ax[ii]); } - if(ab == 0.0f) { + if(ab == 0.0) { break; //So unlikely. It means perfectly converged or singular, stop either way. } ab = rs / ab; - + float abf = ab; //Update x and r with this step size. double rms = 0.0; // use double precision for large summations #ifdef _OPENMP @@ -100,15 +100,15 @@ float *SparseConjugateGradient(void Ax(float *Product, float *x, void *Pass), fl #endif for(int ii = 0; ii < n; ii++) { - x[ii] += ab * d[ii]; - r[ii] -= ab * ax[ii]; //"Fast recursive formula", use explicit r = b - Ax occasionally? - rms += r[ii] * r[ii]; + x[ii] += abf * d[ii]; + r[ii] -= abf * ax[ii]; //"Fast recursive formula", use explicit r = b - Ax occasionally? + rms += rtengine::SQR(r[ii]); } rms = sqrtf(rms / n); //Quit? This probably isn't the best stopping condition, but ok. - if(rms < RMSResidual) { + if(rms < static_cast(RMSResidual)) { break; } @@ -129,20 +129,20 @@ float *SparseConjugateGradient(void Ax(float *Product, float *x, void *Pass), fl #endif for(int ii = 0; ii < n; ii++) { - rs += r[ii] * s[ii]; + rs += static_cast(r[ii]) * static_cast(s[ii]); } } ab = rs / ab; - + abf = ab; //Update search direction p. #ifdef _OPENMP #pragma omp parallel for #endif for(int ii = 0; ii < n; ii++) { - d[ii] = s[ii] + ab * d[ii]; + d[ii] = s[ii] + abf * d[ii]; } diff --git a/rtengine/PF_correct_RT.cc b/rtengine/PF_correct_RT.cc index 9a95b8e2f..15b7b21ee 100644 --- a/rtengine/PF_correct_RT.cc +++ b/rtengine/PF_correct_RT.cc @@ -103,7 +103,7 @@ void ImProcFunctions::PF_correct_RT(LabImage * lab, double radius, int thresh) // no precalculated values without SSE => calculate const float HH = xatan2f(lab->b[i][j], lab->a[i][j]); #endif - float chparam = chCurve->getVal((Color::huelab_to_huehsv2(HH))) - 0.5f; // get C=f(H) + float chparam = chCurve->getVal((Color::huelab_to_huehsv2(HH))) - 0.5; // get C=f(H) if (chparam < 0.f) { chparam *= 2.f; // increased action if chparam < 0 @@ -113,25 +113,25 @@ void ImProcFunctions::PF_correct_RT(LabImage * lab, double radius, int thresh) } const float chroma = chromaChfactor * (SQR(lab->a[i][j] - tmpa[i][j]) + SQR(lab->b[i][j] - tmpb[i][j])); // modulate chroma function hue - chromave += chroma; + chromave += static_cast(chroma); fringe[i * width + j] = chroma; } } } chromave /= height * width; - if (chromave > 0.0) { // now as chromave is calculated, we postprocess fringe to reduce the number of divisions in future + const float chromavef = chromave; #ifdef _OPENMP #pragma omp parallel for simd #endif for (int j = 0; j < width * height; j++) { - fringe[j] = 1.f / (fringe[j] + chromave); + fringe[j] = 1.f / (fringe[j] + chromavef); } - const float threshfactor = 1.f / (SQR(thresh / 33.f) * chromave * 5.0f + chromave); + const float threshfactor = 1.f / (SQR(thresh / 33.f) * chromavef * 5.0f + chromavef); const int halfwin = std::ceil(2 * radius) + 1; // Issue 1674: @@ -297,7 +297,7 @@ void ImProcFunctions::PF_correct_RTcam(CieImage * ncie, double radius, int thres // no precalculated values without SSE => calculate const float HH = xatan2f(srbb[i][j], sraa[i][j]); #endif - float chparam = chCurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5f; //get C=f(H) + float chparam = chCurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5; //get C=f(H) if (chparam < 0.f) { chparam *= 2.f; // increase action if chparam < 0 @@ -307,7 +307,7 @@ void ImProcFunctions::PF_correct_RTcam(CieImage * ncie, double radius, int thres } const float chroma = chromaChfactor * (SQR(sraa[i][j] - tmaa[i][j]) + SQR(srbb[i][j] - tmbb[i][j])); //modulate chroma function hue - chromave += chroma; + chromave += static_cast(chroma); fringe[i * width + j] = chroma; } } @@ -317,15 +317,16 @@ void ImProcFunctions::PF_correct_RTcam(CieImage * ncie, double radius, int thres if (chromave > 0.0) { // now as chromave is calculated, we postprocess fringe to reduce the number of divisions in future + const float chromavef = chromave; #ifdef _OPENMP #pragma omp parallel for simd #endif for (int j = 0; j < width * height; j++) { - fringe[j] = 1.f / (fringe[j] + chromave); + fringe[j] = 1.f / (fringe[j] + chromavef); } - const float threshfactor = 1.f / (SQR(thresh / 33.f) * chromave * 5.0f + chromave); + const float threshfactor = 1.f / (SQR(thresh / 33.f) * chromavef * 5.0f + chromavef); const int halfwin = std::ceil(2 * radius) + 1; // Issue 1674: @@ -695,7 +696,7 @@ void ImProcFunctions::Badpixelscam(CieImage * ncie, double radius, int thresh, i for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { const float chroma = SQR(sraa[i][j] - tmaa[i][j]) + SQR(srbb[i][j] - tmbb[i][j]); - chrommed += chroma; + chrommed += static_cast(chroma); badpix[i * width + j] = chroma; } } @@ -703,15 +704,16 @@ void ImProcFunctions::Badpixelscam(CieImage * ncie, double radius, int thresh, i chrommed /= height * width; if (chrommed > 0.0) { + const float chrommedf = chrommed; // now as chrommed is calculated, we postprocess badpix to reduce the number of divisions in future - const float threshfactor = 1.f / ((thresh * chrommed) / 33.f + chrommed); + const float threshfactor = 1.f / ((thresh * chrommedf) / 33.f + chrommedf); const int halfwin = std::ceil(2 * radius) + 1; #ifdef _OPENMP #pragma omp parallel #endif { #ifdef __SSE2__ - const vfloat chrommedv = F2V(chrommed); + const vfloat chrommedv = F2V(chrommedf); const vfloat onev = F2V(1.f); #endif #ifdef _OPENMP @@ -726,7 +728,7 @@ void ImProcFunctions::Badpixelscam(CieImage * ncie, double radius, int thresh, i } #endif for (; j < width; j++) { - badpix[i * width + j] = 1.f / (badpix[i * width + j] + chrommed); + badpix[i * width + j] = 1.f / (badpix[i * width + j] + chrommedf); } } @@ -1040,7 +1042,7 @@ void ImProcFunctions::BadpixelsLab(LabImage * lab, double radius, int thresh, fl for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { const float chroma = SQR(lab->a[i][j] - tmaa[i][j]) + SQR(lab->b[i][j] - tmbb[i][j]); - chrommed += chroma; + chrommed += static_cast(chroma); badpix[i * width + j] = chroma; } } @@ -1049,13 +1051,13 @@ void ImProcFunctions::BadpixelsLab(LabImage * lab, double radius, int thresh, fl if (chrommed > 0.0) { // now as chrommed is calculated, we postprocess badpix to reduce the number of divisions in future - + const float chrommedf = chrommed; #ifdef _OPENMP #pragma omp parallel #endif { #ifdef __SSE2__ - const vfloat chrommedv = F2V(chrommed); + const vfloat chrommedv = F2V(chrommedf); const vfloat onev = F2V(1.f); #endif #ifdef _OPENMP @@ -1070,12 +1072,12 @@ void ImProcFunctions::BadpixelsLab(LabImage * lab, double radius, int thresh, fl } #endif for (; j < width; j++) { - badpix[i * width + j] = 1.f / (badpix[i * width + j] + chrommed); + badpix[i * width + j] = 1.f / (badpix[i * width + j] + chrommedf); } } } - const float threshfactor = 1.f / ((thresh * chrommed) / 33.f + chrommed); + const float threshfactor = 1.f / ((thresh * chrommedf) / 33.f + chrommedf); chrom *= 327.68f; chrom *= chrom; diff --git a/rtengine/ahd_demosaic_RT.cc b/rtengine/ahd_demosaic_RT.cc index 064dfd6e1..536726925 100644 --- a/rtengine/ahd_demosaic_RT.cc +++ b/rtengine/ahd_demosaic_RT.cc @@ -52,13 +52,13 @@ void RawImageSource::ahd_demosaic() int width = W, height = H; - constexpr double xyz_rgb[3][3] = { /* XYZ from RGB */ - { 0.412453, 0.357580, 0.180423 }, - { 0.212671, 0.715160, 0.072169 }, - { 0.019334, 0.119193, 0.950227 } + constexpr float xyz_rgb[3][3] = { /* XYZ from RGB */ + { 0.412453f, 0.357580f, 0.180423f }, + { 0.212671f, 0.715160f, 0.072169f }, + { 0.019334f, 0.119193f, 0.950227f } }; - constexpr float d65_white[3] = { 0.950456, 1, 1.088754 }; + constexpr float d65_white[3] = { 0.950456f, 1.f, 1.088754f }; double progress = 0.0; @@ -76,7 +76,7 @@ void RawImageSource::ahd_demosaic() for (unsigned int j = 0; j < 3; j++) { xyz_cam[i][j] = 0; for (int k = 0; k < 3; k++) { - xyz_cam[i][j] += xyz_rgb[i][k] * imatrices.rgb_cam[k][j] / d65_white[i]; + xyz_cam[i][j] += xyz_rgb[i][k] * static_cast(imatrices.rgb_cam[k][j]) / d65_white[i]; } } } diff --git a/rtengine/badpixels.cc b/rtengine/badpixels.cc index 0ae63a618..97294bdf7 100644 --- a/rtengine/badpixels.cc +++ b/rtengine/badpixels.cc @@ -477,7 +477,7 @@ int RawImageSource::interpolateBadPixelsXtrans(const PixelsMap &bitmapBads) int RawImageSource::findHotDeadPixels(PixelsMap &bpMap, const float thresh, const bool findHotPixels, const bool findDeadPixels) const { BENCHFUN - const float varthresh = (20.0 * (thresh / 100.0) + 1.0) / 24.f; + const float varthresh = (20.f * (thresh / 100.f) + 1.f) / 24.f; // counter for dead or hot pixels int counter = 0; diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index d136d6a21..b809cc30e 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -553,7 +553,7 @@ CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float float av = (avh - 1) + (float)k / 3; float aperture = sqrtf(powf(2, av)); - if (fnumber > aperture * 0.97 && fnumber < aperture / 0.97) { + if (fnumber > aperture * 0.97f && fnumber < aperture / 0.97f) { fnumber = fn_tab[avh][k]; it = mApertureScaling.find(fnumber); avh = 7; @@ -579,7 +579,7 @@ CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float scaling = it->second; } - if (scaling > 1.0) { + if (scaling > 1.f) { for (int i = 0; i < 4; i++) { lvl.levels[i] *= scaling; diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 072935dc2..c6b9405b5 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -538,8 +538,8 @@ BENCHFUN constexpr int tileSize = 32; const int border = iterations <= 30 ? 5 : 7; const int fullTileSize = tileSize + 2 * border; - const float cornerRadius = std::min(1.15f, sigma + sigmaCornerOffset); - const float cornerDistance = sqrt(rtengine::SQR(W * 0.5f) + rtengine::SQR(H * 0.5f)); + const double cornerRadius = std::min(1.15f, sigma + sigmaCornerOffset); + const double cornerDistance = sqrt(rtengine::SQR(W * 0.5f) + rtengine::SQR(H * 0.5f)); const float distanceFactor = (cornerRadius - sigma) / cornerDistance; double progress = startVal; @@ -642,7 +642,7 @@ BENCHFUN const float distance = sqrt(rtengine::SQR(i + tileSize / 2 - H / 2) + rtengine::SQR(j + tileSize / 2 - W / 2)); const float sigmaTile = static_cast(sigma) + distanceFactor * distance; if (sigmaTile >= 0.4f) { - if (sigmaTile > 0.84) { // have to use 7x7 kernel + if (sigmaTile > 0.84f) { // have to use 7x7 kernel float lkernel7[7][7]; compute7x7kernel(static_cast(sigma) + distanceFactor * distance, lkernel7); for (int k = 0; k < iterations; ++k) { @@ -731,7 +731,7 @@ BENCHFUN { 0.019334, 0.119193, 0.950227 } }; - float contrast = conrastThreshold / 100.f; + float contrast = conrastThreshold / 100.0; const float clipVal = (ri->get_white(1) - ri->get_cblack(1)) * scale_mul[1]; diff --git a/rtengine/ciecam02.cc b/rtengine/ciecam02.cc index c7e49b2ed..208ed4366 100644 --- a/rtengine/ciecam02.cc +++ b/rtengine/ciecam02.cc @@ -28,7 +28,7 @@ #endif #undef CLIPD -#define CLIPD(a) ((a)>0.0?((a)<1.0?(a):1.0):0.0) +#define CLIPD(a) ((a)>0.f?((a)<1.f?(a):1.f):0.f) #define MAXR(a,b) ((a) > (b) ? (a) : (b)) namespace rtengine @@ -408,7 +408,7 @@ void Ciecam02::initcam1float (float yb, float pilotd, float f, float la, float x { n = yb / yw; - if (pilotd == 2.0) { + if (pilotd == 2.f) { d = d_factorfloat ( f, la ); } else { d = pilotd; @@ -434,7 +434,7 @@ void Ciecam02::initcam2float (float yb, float pilotd, float f, float la, float x { n = yb / yw; - if (pilotd == 2.0) { + if (pilotd == 2.f) { d = d_factorfloat ( f, la ); } else { d = pilotd; @@ -492,7 +492,7 @@ void Ciecam02::xyz2jchqms_ciecam02float ( float &J, float &C, float &h, float &Q myh = xatan2f ( cb, ca ); if ( myh < 0.0f ) { - myh += (2.f * rtengine::RT_PI); + myh += (2.f * rtengine::RT_PI_F); } a = ((2.0f * rpa) + gpa + (0.05f * bpa) - 0.305f) * nbb; @@ -620,7 +620,7 @@ void Ciecam02::xyz2jch_ciecam02float ( float &J, float &C, float &h, float aw, f myh = xatan2f ( cb, ca ); if ( myh < 0.0f ) { - myh += (2.f * rtengine::RT_PI); + myh += (2.f * rtengine::RT_PI_F); } a = ((2.0f * rpa) + gpa + (0.05f * bpa) - 0.305f) * nbb; diff --git a/rtengine/color.h b/rtengine/color.h index 211615de1..845770bbe 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -132,7 +132,7 @@ public: constexpr static double sRGBGammaCurve = 2.4; constexpr static double eps = 216.0 / 24389.0; //0.008856 - constexpr static double eps_max = MAXVALF * eps; //580.40756; + constexpr static double eps_max = MAXVALD * eps; //580.40756; constexpr static double kappa = 24389.0 / 27.0; //903.29630; constexpr static double kappaInv = 27.0 / 24389.0; constexpr static double epsilonExpInv3 = 6.0 / 29.0; @@ -144,8 +144,8 @@ public: constexpr static float D50x = 0.9642f; //0.96422; constexpr static float D50z = 0.8249f; //0.82521; - constexpr static double u0 = 4.0 * D50x / (D50x + 15 + 3 * D50z); - constexpr static double v0 = 9.0 / (D50x + 15 + 3 * D50z); + constexpr static double u0 = 4.0 * static_cast(D50x) / (static_cast(D50x) + 15 + 3 * static_cast(D50z)); + constexpr static double v0 = 9.0 / (static_cast(D50x) + 15 + 3 * static_cast(D50z)); constexpr static double epskap = 8.0; constexpr static float c1By116 = 1.0 / 116.0; @@ -206,7 +206,7 @@ public: static float rgbLuminance(float r, float g, float b, const double workingspace[3][3]) { - return r * workingspace[1][0] + g * workingspace[1][1] + b * workingspace[1][2]; + return static_cast(r) * workingspace[1][0] + static_cast(g) * workingspace[1][1] + static_cast(b) * workingspace[1][2]; } #ifdef __SSE2__ @@ -972,10 +972,10 @@ public: template static inline T interpolatePolarHue_PI (T h1, T h2, U balance) { - float d = h2 - h1; - float f; + T d = h2 - h1; + T f; f = T(balance); - double h; + T h; if (h1 > h2) { std::swap(h1, h2); @@ -986,7 +986,7 @@ public: if (d < T(0) || d < T(0.5) || d > T(1.)) { //there was an inversion here !! d > T(rtengine::RT_PI) h1 += T(1.); h = h1 + f * (h2 - h1); - h = std::fmod(h, 1.); + h = std::fmod(h, T(1.)); } else { h = h1 + f * d; } diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 02d3e0e6d..525ed339e 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -1071,10 +1071,10 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, double Xwb, Zwb; temp2mulxyz(temp, method, Xwb, Zwb); - float adj = 1.f; + double adj = 1.0; if(equal < 0.9999 || equal > 1.0001 ) { - adj = (100.f + ( 1000.f - (1000.f * (float)equal) ) / 20.f) / 100.f; + adj = (100.0 + ( 1000.0 - (1000.0 * equal) ) / 20.0) / 100.0; } @@ -1389,7 +1389,7 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, } for(int i = 0; i < 8; i++) { - CRIs[i] = 100 - 3.0 * DeltaEs[i]; //3.0 coef to adapt ==> same results than CRI "official" + CRIs[i] = 100 - 3.f * DeltaEs[i]; //3.0 coef to adapt ==> same results than CRI "official" } for(int i = 0; i < 8; i++) { @@ -1409,7 +1409,7 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, } for(int i = 0; i < N_c; i++) { - CRI[i] = 100 - 3.0 * DeltaE[i]; //3.0 coef to adapt ==> same results than CRI "official" + CRI[i] = 100 - 3.f * DeltaE[i]; //3.0 coef to adapt ==> same results than CRI "official" } for(int i = 0; i < N_c; i++) { @@ -1425,8 +1425,8 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, quadCRI /= N_c; if(settings->CRI_color != 0) { - printf("CRI_standard=%i CRI:1->8=%i %i %i %i %i %i %i %i Sigma=%2.1f\n", (int) CRI_RTs, (int) CRIs[0], (int) CRIs[1], (int) CRIs[2], (int) CRIs[3], (int) CRIs[4], (int) CRIs[5], (int) CRIs[6], (int) CRIs[7], sqrt(quadCRIs)); - printf("CRI_RT_exten=%i CRI:9->20=%i %i %i %i %i %i %i %i %i %i %i %i Sigma=%2.1f\n", (int) CRI_RT, (int) CRI[8], (int) CRI[9], (int) CRI[10], (int) CRI[11], (int) CRI[12], (int) CRI[13], (int) CRI[14], (int) CRI[15], (int) CRI[16], (int) CRI[17], (int) CRI[18], (int) CRI[19], sqrt(quadCRI)); + printf("CRI_standard=%i CRI:1->8=%i %i %i %i %i %i %i %i Sigma=%2.1f\n", (int) CRI_RTs, (int) CRIs[0], (int) CRIs[1], (int) CRIs[2], (int) CRIs[3], (int) CRIs[4], (int) CRIs[5], (int) CRIs[6], (int) CRIs[7], sqrt(static_cast(quadCRIs))); + printf("CRI_RT_exten=%i CRI:9->20=%i %i %i %i %i %i %i %i %i %i %i %i Sigma=%2.1f\n", (int) CRI_RT, (int) CRI[8], (int) CRI[9], (int) CRI[10], (int) CRI[11], (int) CRI[12], (int) CRI[13], (int) CRI[14], (int) CRI[15], (int) CRI[16], (int) CRI[17], (int) CRI[18], (int) CRI[19], static_cast(sqrt(quadCRI))); } } } diff --git a/rtengine/curves.h b/rtengine/curves.h index bc8193b76..93c7566d7 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -292,11 +292,11 @@ public: } static inline float gamma2 (float x) { - return x <= 0.00304 ? x * 12.92310 : 1.055 * expf(logf(x) / sRGBGammaCurve) - 0.055; + return x <= 0.00304f ? x * 12.92310f : 1.055f * expf(logf(x) / static_cast(sRGBGammaCurve)) - 0.055f; } static inline float igamma2 (float x) { - return x <= 0.03928 ? x / 12.92310 : expf(logf((x + 0.055) / 1.055) * sRGBGammaCurve); + return x <= 0.03928f ? x / 12.92310f : expf(logf((x + 0.055f) / 1.055f) * static_cast(sRGBGammaCurve)); } // gamma function with adjustable parameters static inline double gamma (double x, double gamma, double start, double slope, double mul, double add) @@ -327,8 +327,8 @@ public: #endif static inline float hlcurve (const float exp_scale, const float comp, const float hlrange, float level) { - if (comp > 0.0) { - float val = level + (hlrange - 65536.0); + if (comp > 0.f) { + float val = level + (hlrange - 65536.f); if(val == 0.0f) { // to avoid division by zero val = 0.000001f; @@ -337,7 +337,7 @@ public: float Y = val * exp_scale / hlrange; Y *= comp; - if(Y <= -1.0) { // to avoid log(<=0) + if(Y <= -1.f) { // to avoid log(<=0) Y = -.999999f; } diff --git a/rtengine/dcp.cc b/rtengine/dcp.cc index 11fe306b8..89256bba4 100644 --- a/rtengine/dcp.cc +++ b/rtengine/dcp.cc @@ -1064,9 +1064,11 @@ void DCPProfile::apply( for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { + double temp = 0.0; for (int k = 0; k < 3; ++k) { - mat[i][j] += work_matrix[i][k] * xyz_cam[k][j]; + temp += work_matrix[i][k] * xyz_cam[k][j]; } + mat[i][j] = temp; } } @@ -1092,9 +1094,11 @@ void DCPProfile::apply( for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { + double temp = 0.0; for (int k = 0; k < 3; ++k) { - pro_photo[i][j] += prophoto_xyz[i][k] * xyz_cam[k][j]; + temp += prophoto_xyz[i][k] * xyz_cam[k][j]; } + pro_photo[i][j] = temp; } } @@ -1102,9 +1106,11 @@ void DCPProfile::apply( for (int i = 0; i < 3; ++i) { for (int j = 0; j < 3; ++j) { + double temp = 0.0; for (int k = 0; k < 3; ++k) { - work[i][j] += work_matrix[i][k] * xyz_prophoto[k][j]; + temp += work_matrix[i][k] * xyz_prophoto[k][j]; } + work[i][j] = temp; } } @@ -1173,27 +1179,35 @@ void DCPProfile::setStep2ApplyState(const Glib::ustring& working_space, bool use mWork = ICCStore::getInstance()->workingSpaceMatrix (working_space); memset(as_out.data->pro_photo, 0, sizeof(as_out.data->pro_photo)); - for (int i = 0; i < 3; i++) - for (int j = 0; j < 3; j++) + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + double temp = 0.0; for (int k = 0; k < 3; k++) { - as_out.data->pro_photo[i][j] += prophoto_xyz[i][k] * mWork[k][j]; + temp += prophoto_xyz[i][k] * mWork[k][j]; } + as_out.data->pro_photo[i][j] = temp; + } + } mWork = ICCStore::getInstance()->workingSpaceInverseMatrix (working_space); memset(as_out.data->work, 0, sizeof(as_out.data->work)); - for (int i = 0; i < 3; i++) - for (int j = 0; j < 3; j++) + for (int i = 0; i < 3; i++) { + for (int j = 0; j < 3; j++) { + double temp = 0.0; for (int k = 0; k < 3; k++) { - as_out.data->work[i][j] += mWork[i][k] * xyz_prophoto[k][j]; + temp += mWork[i][k] * xyz_prophoto[k][j]; } + as_out.data->work[i][j] = temp; + } + } } } void DCPProfile::step2ApplyTile(float* rc, float* gc, float* bc, int width, int height, int tile_width, const DCPProfileApplyState& as_in) const { -#define FCLIP(a) ((a)>0.0?((a)<65535.5?(a):65535.5):0.0) +#define FCLIP(a) ((a)>0.f?((a)<65535.5f?(a):65535.5f):0.f) #define CLIP01(a) ((a)>0?((a)<1?(a):1):0) float exp_scale = as_in.data->bl_scale; diff --git a/rtengine/demosaic_algos.cc b/rtengine/demosaic_algos.cc index 538858a9a..a31415968 100644 --- a/rtengine/demosaic_algos.cc +++ b/rtengine/demosaic_algos.cc @@ -1069,7 +1069,7 @@ void RawImageSource::dcb_hid(float (*image)[3], int x0, int y0) for (int col = colMin + (FC(y0 - TILEBORDER + row, x0 - TILEBORDER + colMin) & 1), indx = row * CACHESIZE + col; col < colMax; col += 2, indx += 2) { assert(indx - u - 1 >= 0 && indx + u + 1 < u * u); - image[indx][1] = 0.25*(image[indx-1][1]+image[indx+1][1]+image[indx-u][1]+image[indx+u][1]); + image[indx][1] = 0.25f * (image[indx-1][1]+image[indx+1][1]+image[indx-u][1]+image[indx+u][1]); } } diff --git a/rtengine/dfmanager.cc b/rtengine/dfmanager.cc index 1fb1d2e1b..6961a4b54 100644 --- a/rtengine/dfmanager.cc +++ b/rtengine/dfmanager.cc @@ -476,7 +476,7 @@ dfInfo* DFManager::find( const std::string &mak, const std::string &mod, int iso } } - return bestD != INFINITY ? &(bestMatch->second) : nullptr ; + return bestD != RT_INFINITY ? &(bestMatch->second) : nullptr ; } } diff --git a/rtengine/diagonalcurves.cc b/rtengine/diagonalcurves.cc index bb20b7cc1..f8b22ed46 100644 --- a/rtengine/diagonalcurves.cc +++ b/rtengine/diagonalcurves.cc @@ -65,23 +65,23 @@ DiagonalCurve::DiagonalCurve (const std::vector& p, int poly_pn) } } - if (x[0] != 0.0f || x[N - 1] != 1.0f) + if (x[0] != 0.0 || x[N - 1] != 1.0) // Special (and very rare) case where all points are on the identity line but // not reaching the limits { identity = false; } - if(x[0] == 0.f && x[1] == 0.f) + if(x[0] == 0.0 && x[1] == 0.0) // Avoid crash when first two points are at x = 0 (git Issue 2888) { - x[1] = 0.01f; + x[1] = 0.01; } - if(x[0] == 1.f && x[1] == 1.f) + if(x[0] == 1.0 && x[1] == 1.0) // Avoid crash when first two points are at x = 1 (100 in gui) (git Issue 2923) { - x[0] = 0.99f; + x[0] = 0.99; } if (!identity) { @@ -97,7 +97,7 @@ DiagonalCurve::DiagonalCurve (const std::vector& p, int poly_pn) } } } else if (kind == DCT_Parametric) { - if ((p.size() == 8 || p.size() == 9) && (p.at(4) != 0.0f || p.at(5) != 0.0f || p.at(6) != 0.0f || p.at(7) != 0.0f)) { + if ((p.size() == 8 || p.size() == 9) && (p.at(4) != 0.0 || p.at(5) != 0.0 || p.at(6) != 0.0 || p.at(7) != 0.0)) { identity = false; x = new double[9]; diff --git a/rtengine/dirpyr_equalizer.cc b/rtengine/dirpyr_equalizer.cc index 1f62badcb..0624f4443 100644 --- a/rtengine/dirpyr_equalizer.cc +++ b/rtengine/dirpyr_equalizer.cc @@ -228,11 +228,11 @@ void fillLut(LUTf &irangefn, int level, double dirpyrThreshold, float mult, floa } const float offs = skinprot == 0.f ? 0.f : -1.f; - constexpr float noise = 2000.f; - const float noisehi = 1.33f * noise * dirpyrThreshold / expf(level * log(3.0)), noiselo = 0.66f * noise * dirpyrThreshold / expf(level * log(3.0)); + constexpr double noise = 2000.0; + const float noisehi = 1.33 * noise * dirpyrThreshold / exp(level * log(3.0)), noiselo = 0.66 * noise * dirpyrThreshold / exp(level * log(3.0)); for (int i = 0; i < 0x20000; i++) { - if (abs(i - 0x10000) > noisehi || multbis < 1.0) { + if (abs(i - 0x10000) > noisehi || multbis < 1.f) { irangefn[i] = multbis + offs; } else { if (abs(i - 0x10000) < noiselo) { @@ -262,7 +262,7 @@ void idirpyr_eq_channel(const float * const * data_coarse, const float * const * buffer[i][j] += irangefn[hipass + 0x10000] * hipass; } } - } else if (skinprot > 0.f) { + } else if (skinprot > 0.0) { #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif @@ -314,7 +314,7 @@ void idirpyr_eq_channelcam(const float * const * data_coarse, const float * cons buffer[i][j] += irangefn[hipass + 0x10000] * hipass; } } - } else if (skinprot > 0.f) { + } else if (skinprot > 0.0) { #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif diff --git a/rtengine/dual_demosaic_RT.cc b/rtengine/dual_demosaic_RT.cc index 93508808c..253468a76 100644 --- a/rtengine/dual_demosaic_RT.cc +++ b/rtengine/dual_demosaic_RT.cc @@ -45,7 +45,7 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const procparams::RAWParams { BENCHFUN - if (contrast == 0.f && !autoContrast) { + if (contrast == 0.0 && !autoContrast) { // contrast == 0.0 means only first demosaicer will be used if(isBayer) { if (raw.bayersensor.method == procparams::RAWParams::BayerSensor::getMethodString(procparams::RAWParams::BayerSensor::Method::AMAZEVNG4) ) { @@ -103,7 +103,7 @@ void RawImageSource::dual_demosaic_RT(bool isBayer, const procparams::RAWParams } // calculate contrast based blend factors to use vng4 in regions with low contrast JaggedArray blend(winw, winh); - float contrastf = contrast / 100.f; + float contrastf = contrast / 100.0; buildBlendMask(L, blend, winw, winh, contrastf, autoContrast); contrast = contrastf * 100.f; diff --git a/rtengine/ffmanager.cc b/rtengine/ffmanager.cc index ce60277e1..c55bc5108 100644 --- a/rtengine/ffmanager.cc +++ b/rtengine/ffmanager.cc @@ -428,7 +428,7 @@ ffInfo* FFManager::find( const std::string &mak, const std::string &mod, const s } } - return bestD != INFINITY ? &(bestMatch->second) : nullptr ; + return bestD != RT_INFINITY ? &(bestMatch->second) : nullptr ; } } diff --git a/rtengine/green_equil_RT.cc b/rtengine/green_equil_RT.cc index fc4f18548..a66bca160 100644 --- a/rtengine/green_equil_RT.cc +++ b/rtengine/green_equil_RT.cc @@ -47,7 +47,7 @@ void RawImageSource::green_equilibrate_global(array2D &rawData) for (int i = border; i < H - border; i++) { double avgg = 0.; for (int j = border + ((FC(i, border) & 1) ^ 1); j < W - border; j += 2) { - avgg += rawData[i][j]; + avgg += static_cast(rawData[i][j]); } int ng = (W - 2 * border + (FC(i, border) & 1)) / 2; @@ -71,15 +71,15 @@ void RawImageSource::green_equilibrate_global(array2D &rawData) avgg2 = 1.0; } - double corrg1 = (avgg1 / ng1 + avgg2 / ng2) / 2.0 / (avgg1 / ng1); - double corrg2 = (avgg1 / ng1 + avgg2 / ng2) / 2.0 / (avgg2 / ng2); + const float corrg1 = (avgg1 / ng1 + avgg2 / ng2) / 2.0 / (avgg1 / ng1); + const float corrg2 = (avgg1 / ng1 + avgg2 / ng2) / 2.0 / (avgg2 / ng2); #ifdef _OPENMP #pragma omp parallel for schedule(dynamic,16) #endif for (int i = border; i < H - border; i++) { - double corrg = (i & 1) ? corrg2 : corrg1; + const float corrg = (i & 1) ? corrg2 : corrg1; for (int j = border + ((FC(i, border) & 1) ^ 1); j < W - border; j += 2) { rawData[i][j] *= corrg; @@ -220,7 +220,7 @@ void RawImageSource::green_equilibrate(const GreenEqulibrateThreshold &thresh, a float tf = thresh(rr, cc); - if (c1 + c2 < 6 * tf * fabs(d1 - d2)) { + if (c1 + c2 < 6 * tf * std::fabs(d1 - d2)) { //pixel interpolation float gin = cfa[rr][cc >> 1]; diff --git a/rtengine/histmatching.cc b/rtengine/histmatching.cc index f5d16866e..0053cb0d4 100644 --- a/rtengine/histmatching.cc +++ b/rtengine/histmatching.cc @@ -179,7 +179,7 @@ void mappingToCurve(const std::vector &mapping, std::vector &curve) }; idx = -1; for (ssize_t i = curve.size()-1; i > 0; i -= 2) { - if (curve[i] <= 0.f) { + if (curve[i] <= 0.0) { idx = i+1; break; } @@ -328,7 +328,7 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st int tw = target->getWidth(), th = target->getHeight(); float thumb_ratio = float(std::max(sw, sh)) / float(std::min(sw, sh)); float target_ratio = float(std::max(tw, th)) / float(std::min(tw, th)); - if (std::abs(thumb_ratio - target_ratio) > 0.01) { + if (std::abs(thumb_ratio - target_ratio) > 0.01f) { int cx = 0, cy = 0; if (thumb_ratio > target_ratio) { // crop the height @@ -342,7 +342,7 @@ void RawImageSource::getAutoMatchedToneCurve(const ColorManagementParams &cp, st tw -= cw; } if (settings->verbose) { - std::cout << "histogram matching: cropping target to get an aspect ratio of " << round(thumb_ratio * 100)/100.0 << ":1, new size is " << tw << "x" << th << std::endl; + std::cout << "histogram matching: cropping target to get an aspect ratio of " << round(thumb_ratio * 100)/100.f << ":1, new size is " << tw << "x" << th << std::endl; } if (cx || cy) { diff --git a/rtengine/image16.cc b/rtengine/image16.cc index a98d64d51..7013af4b7 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -147,10 +147,10 @@ void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, P gm = dgm; bm = dbm; - rm = 1.0 / rm; - gm = 1.0 / gm; - bm = 1.0 / bm; - float mul_lum = 0.299 * rm + 0.587 * gm + 0.114 * bm; + rm = 1.f / rm; + gm = 1.f / gm; + bm = 1.f / bm; + float mul_lum = 0.299f * rm + 0.587f * gm + 0.114f * bm; rm /= mul_lum; gm /= mul_lum; bm /= mul_lum; diff --git a/rtengine/image8.cc b/rtengine/image8.cc index 66ad8b60f..f2098962c 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -111,10 +111,10 @@ void Image8::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, P gm = dgm; bm = dbm; - rm = 1.0 / rm; - gm = 1.0 / gm; - bm = 1.0 / bm; - float mul_lum = 0.299 * rm + 0.587 * gm + 0.114 * bm; + rm = 1.f / rm; + gm = 1.f / gm; + bm = 1.f / bm; + float mul_lum = 0.299f * rm + 0.587f * gm + 0.114f * bm; rm /= mul_lum; gm /= mul_lum; bm /= mul_lum; diff --git a/rtengine/imagefloat.cc b/rtengine/imagefloat.cc index 1da91a4b4..f905134a0 100644 --- a/rtengine/imagefloat.cc +++ b/rtengine/imagefloat.cc @@ -178,10 +178,10 @@ void Imagefloat::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* imag gm = dgm; bm = dbm; - rm = 1.0 / rm; - gm = 1.0 / gm; - bm = 1.0 / bm; - float mul_lum = 0.299 * rm + 0.587 * gm + 0.114 * bm; + rm = 1.f / rm; + gm = 1.f / gm; + bm = 1.f / bm; + float mul_lum = 0.299f * rm + 0.587f * gm + 0.114f * bm; rm /= mul_lum; gm /= mul_lum; bm /= mul_lum; @@ -368,7 +368,7 @@ Imagefloat::to16() const void Imagefloat::normalizeFloat(float srcMinVal, float srcMaxVal) { - float scale = MAXVALD / (srcMaxVal - srcMinVal); + float scale = MAXVALF / (srcMaxVal - srcMinVal); int w = width; int h = height; diff --git a/rtengine/ipdehaze.cc b/rtengine/ipdehaze.cc index 28a0f2d57..2dc0287a1 100644 --- a/rtengine/ipdehaze.cc +++ b/rtengine/ipdehaze.cc @@ -240,9 +240,9 @@ float estimate_ambient_light(const array2D &R, const array2D &G, c float g = G[y][x]; float b = B[y][x]; if (r + g + b >= bright_lim) { - rr += r; - gg += g; - bb += b; + rr += static_cast(r); + gg += static_cast(g); + bb += static_cast(b); ++n; } } diff --git a/rtengine/iplabregions.cc b/rtengine/iplabregions.cc index 6526419f5..786d42e56 100644 --- a/rtengine/iplabregions.cc +++ b/rtengine/iplabregions.cc @@ -139,7 +139,7 @@ BENCHFUN auto &hm = hmask[i]; auto &cm = cmask[i]; auto &lm = lmask[i]; - float blend = LIM01((hm ? hm->getVal(h) : 1.f) * (cm ? cm->getVal(c) : 1.f) * (lm ? lm->getVal(l) : 1.f)); + float blend = LIM01((hm ? hm->getVal(h) : 1.0) * (cm ? cm->getVal(c) : 1.0) * (lm ? lm->getVal(l) : 1.0)); Lmask[i][y][x] = abmask[i][y][x] = blend; } } @@ -147,8 +147,8 @@ BENCHFUN } for (int i = begin_idx; i < end_idx; ++i) { - float blur = params->colorToning.labregions[i].maskBlur; - blur = blur < 0.f ? -1.f/blur : 1.f + blur; + double blur = params->colorToning.labregions[i].maskBlur; + blur = blur < 0.0 ? -1.0 / blur : 1.0 + blur; int r1 = max(int(4 / scale * blur + 0.5), 1); int r2 = max(int(25 / scale * blur + 0.5), 1); rtengine::guidedFilter(guide, abmask[i], abmask[i], r1, 0.001, multiThread); @@ -188,7 +188,7 @@ BENCHFUN auto &r = params->colorToning.labregions[i]; abca[i] = abcoord(r.a); abcb[i] = abcoord(r.b); - rs[i] = 1.f + r.saturation / (SGN(r.saturation) > 0 ? 50.f : 100.f); + rs[i] = 1.0 + r.saturation / (SGN(r.saturation) > 0 ? 50.0 : 100.0); slope[i] = r.slope; offset[i] = r.offset; power[i] = r.power; diff --git a/rtengine/ipretinex.cc b/rtengine/ipretinex.cc index 84f33482f..6768eca93 100644 --- a/rtengine/ipretinex.cc +++ b/rtengine/ipretinex.cc @@ -110,8 +110,8 @@ void mean_stddv2( float **dst, float &mean, float &stddv, int W_L, int H_L, floa for (int i = 0; i < H_L; i++ ) for (int j = 0; j < W_L; j++) { - sum += dst[i][j]; - vsquared += (dst[i][j] * dst[i][j]); + sum += static_cast(dst[i][j]); + vsquared += rtengine::SQR(dst[i][j]); lmax = dst[i][j] > lmax ? dst[i][j] : lmax; lmin = dst[i][j] < lmin ? dst[i][j] : lmin; @@ -128,8 +128,8 @@ void mean_stddv2( float **dst, float &mean, float &stddv, int W_L, int H_L, floa } mean = sum / (double) (W_L * H_L); vsquared /= (double) W_L * H_L; - stddv = ( vsquared - (mean * mean) ); - stddv = (float)sqrt(stddv); + stddv = vsquared - rtengine::SQR(mean); + stddv = std::sqrt(stddv); } } @@ -678,9 +678,9 @@ BENCHFUN float valparam; if(useHsl || useHslLin) { - valparam = shcurve->getVal(HH) - 0.5f; + valparam = shcurve->getVal(HH) - 0.5; } else { - valparam = shcurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5f; + valparam = shcurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5; } str *= (1.f + 2.f * valparam); diff --git a/rtengine/ipshadowshighlights.cc b/rtengine/ipshadowshighlights.cc index 5c5b6b324..5d5be57e9 100644 --- a/rtengine/ipshadowshighlights.cc +++ b/rtengine/ipshadowshighlights.cc @@ -46,7 +46,7 @@ void ImProcFunctions::shadowsHighlights(LabImage *lab) array2D mask(width, height); array2D L(width, height); - const float radius = float(params->sh.radius) * 10 / scale; + const float radius = params->sh.radius * 10 / scale; LUTf f(lab_mode ? 32768 : 65536); TMatrix ws = ICCStore::getInstance()->workingSpaceMatrix(params->icm.workingProfile); diff --git a/rtengine/ipvibrance.cc b/rtengine/ipvibrance.cc index 14e5f3c44..8636ecb95 100644 --- a/rtengine/ipvibrance.cc +++ b/rtengine/ipvibrance.cc @@ -48,7 +48,7 @@ void fillCurveArrayVib (DiagonalCurve* diagCurve, LUTf &outCurve) // change to [0,1] range // apply custom/parametric/NURBS curve, if any // and store result in a temporary array - outCurve[i] = 65535.f * diagCurve->getVal ( double (i) / 65535.0 ); + outCurve[i] = 65535.0 * diagCurve->getVal(i / 65535.0); } } else { outCurve.makeIdentity(); @@ -606,7 +606,7 @@ void ImProcFunctions::vibrance (LabImage* lab) bool inGamut; const float fyy = Color::c1By116 * Lprov + Color::c16By116; - const float yy_ = (Lprov > Color::epskap) ? fyy * fyy*fyy : Lprov / Color::kappaf; + const float yy_ = (Lprov > static_cast(Color::epskap)) ? fyy * fyy*fyy : Lprov / Color::kappaf; float ChprovOld = std::numeric_limits::min(); do { inGamut = true; diff --git a/rtengine/lmmse_demosaic.cc b/rtengine/lmmse_demosaic.cc index f4af1b801..5c4ddffed 100644 --- a/rtengine/lmmse_demosaic.cc +++ b/rtengine/lmmse_demosaic.cc @@ -334,7 +334,7 @@ void RawImageSource::lmmse_interpolate_omp(int winw, int winh, const array2DlocalContrast.amount = true; diff --git a/rtengine/tmo_fattal02.cc b/rtengine/tmo_fattal02.cc index feba5c95f..cee57c851 100644 --- a/rtengine/tmo_fattal02.cc +++ b/rtengine/tmo_fattal02.cc @@ -308,7 +308,7 @@ float calculateGradients (Array2Df* H, Array2Df* G, int k, bool multithread) // however, the impact is not visible so we ignore this here (*G) (x, y) = sqrt (gx * gx + gy * gy) / divider; - avgGrad += (*G) (x, y); + avgGrad += static_cast((*G) (x, y)); } } @@ -381,7 +381,7 @@ void calculateFiMatrix (Array2Df* FI, Array2Df* gradients[], #endif for ( int y = 0; y < height; y++ ) { for ( int x = 0; x < width; x++ ) { - float grad = ((*gradients[k]) (x, y) < 1e-4f) ? 1e-4 : (*gradients[k]) (x, y); + float grad = ((*gradients[k]) (x, y) < 1e-4f) ? 1e-4f : (*gradients[k]) (x, y); float a = alfa * avgGrad[k]; float value = pow ((grad + noise) / a, beta - 1.0f); @@ -603,8 +603,8 @@ void tmo_fattal02 (size_t width, // sets index+1 based on the boundary assumption H(N+1)=H(N-1) unsigned int xp1 = (x + 1 >= width ? width - 2 : x + 1); // forward differences in H, so need to use between-points approx of FI - (*Gx) (x, y) = ((*H) (xp1, y) - (*H) (x, y)) * 0.5 * ((*FI) (xp1, y) + (*FI) (x, y)); - (*Gy) (x, y) = ((*H) (x, yp1) - (*H) (x, y)) * 0.5 * ((*FI) (x, yp1) + (*FI) (x, y)); + (*Gx) (x, y) = ((*H) (xp1, y) - (*H) (x, y)) * 0.5f * ((*FI) (xp1, y) + (*FI) (x, y)); + (*Gy) (x, y) = ((*H) (x, yp1) - (*H) (x, y)) * 0.5f * ((*FI) (x, yp1) + (*FI) (x, y)); } } @@ -747,7 +747,7 @@ void transform_ev2normal (Array2Df *A, Array2Df *T, bool multithread) } for (int y = 1 ; y < height - 1 ; y++ ) { - (*A) (0, y) *= 0.5; + (*A) (0, y) *= 0.5f; (*A) (width - 1, y) *= 0.5f; } @@ -912,7 +912,7 @@ void solve_pde_fft (Array2Df *F, Array2Df *U, Array2Df *buf, bool multithread)/* for (int y = 0 ; y < height ; y++ ) { for (int x = 0 ; x < width ; x++ ) { - (*F_tr) (x, y) = (*F_tr) (x, y) / (l1[y] + l2[x]); + (*F_tr) (x, y) = static_cast((*F_tr) (x, y)) / (l1[y] + l2[x]); } } diff --git a/rtengine/xtrans_demosaic.cc b/rtengine/xtrans_demosaic.cc index cb1315ed0..b01b0ac1c 100644 --- a/rtengine/xtrans_demosaic.cc +++ b/rtengine/xtrans_demosaic.cc @@ -31,7 +31,7 @@ namespace rtengine { -const double xyz_rgb[3][3] = { // XYZ from RGB +const float xyz_rgb[3][3] = { // XYZ from RGB { 0.412453, 0.357580, 0.180423 }, { 0.212671, 0.715160, 0.072169 }, { 0.019334, 0.119193, 0.950227 } diff --git a/rtgui/blackwhite.cc b/rtgui/blackwhite.cc index 596d99607..ea493d6e1 100644 --- a/rtgui/blackwhite.cc +++ b/rtgui/blackwhite.cc @@ -70,7 +70,7 @@ BlackWhite::BlackWhite (): FoldableToolPanel(this, "blackwhite", M("TP_BWMIX_LAB // -0.1 rad < Hue < 1.6 rad for (int i = 0; i < 7; i++) { - float x = float(i) * (1.0f / 6.0); + float x = float(i) * (1.0f / 6.f); Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); bottomMilestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) ); } @@ -1185,10 +1185,10 @@ void BlackWhite::updateRGBLabel () RGBLabels->set_text( Glib::ustring::compose(M("TP_BWMIX_RGBLABEL"), - Glib::ustring::format(std::fixed, std::setprecision(1), r * 100.), - Glib::ustring::format(std::fixed, std::setprecision(1), g * 100.), - Glib::ustring::format(std::fixed, std::setprecision(1), b * 100.), - Glib::ustring::format(std::fixed, std::setprecision(0), ceil(kcorrec * 100./*(r+g+b)*100.)*/))) + Glib::ustring::format(std::fixed, std::setprecision(1), r * 100.f), + Glib::ustring::format(std::fixed, std::setprecision(1), g * 100.f), + Glib::ustring::format(std::fixed, std::setprecision(1), b * 100.f), + Glib::ustring::format(std::fixed, std::setprecision(0), ceil(kcorrec * 100.f/*(r+g+b)*100.)*/))) ); // We have to update the RGB sliders too if preset values has been chosen diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 62f6eee2c..9468770fc 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -523,7 +523,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" float R, G, B; for (int i = 0; i < 7; i++) { - float x = float (i) * (1.0f / 6.0); + float x = float (i) * (1.0f / 6.f); Color::hsv2rgb01 (x, 0.5f, 0.5f, R, G, B); shape3Milestones.push_back ( GradientMilestone (double (x), double (R), double (G), double (B)) ); } diff --git a/rtgui/colortoning.cc b/rtgui/colortoning.cc index 59768a6ce..ddf917149 100644 --- a/rtgui/colortoning.cc +++ b/rtgui/colortoning.cc @@ -74,7 +74,7 @@ ColorToning::ColorToning () : FoldableToolPanel(this, "colortoning", M("TP_COLOR // whole hue range for (int i = 0; i < 7; i++) { float R, G, B; - float x = float(i) * (1.0f / 6.0); + float x = float(i) * (1.0f / 6.f); Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); milestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) ); } @@ -1203,11 +1203,11 @@ void ColorToning::colorForValue (double valX, double valY, enum ColorCaller::Ele // the strength applied to the current hue double strength, hue; hlColSat->getValue(strength, hue); - Color::hsv2rgb01(hue / 360.f, 1.f, 1.f, R, G, B); + Color::hsv2rgb01(hue / 360.0, 1.f, 1.f, R, G, B); const double gray = 0.46; - R = (gray * (1.0 - valX)) + R * valX; - G = (gray * (1.0 - valX)) + G * valX; - B = (gray * (1.0 - valX)) + B * valX; + R = (gray * (1.0 - valX)) + static_cast(R) * valX; + G = (gray * (1.0 - valX)) + static_cast(G) * valX; + B = (gray * (1.0 - valX)) + static_cast(B) * valX; } } else if (callerId == 3) { // Slider 2 background if (valY <= 0.5) @@ -1218,17 +1218,17 @@ void ColorToning::colorForValue (double valX, double valY, enum ColorCaller::Ele // the strength applied to the current hue double strength, hue; shadowsColSat->getValue(strength, hue); - Color::hsv2rgb01(hue / 360.f, 1.f, 1.f, R, G, B); + Color::hsv2rgb01(hue / 360.0, 1.f, 1.f, R, G, B); const double gray = 0.46; - R = (gray * (1.0 - valX)) + R * valX; - G = (gray * (1.0 - valX)) + G * valX; - B = (gray * (1.0 - valX)) + B * valX; + R = (gray * (1.0 - valX)) + static_cast(R) * valX; + G = (gray * (1.0 - valX)) + static_cast(G) * valX; + B = (gray * (1.0 - valX)) + static_cast(B) * valX; } } else if (callerId == 4) { // color curve vertical and horizontal crosshair Color::hsv2rgb01(float(valY), 1.0f, 0.5f, R, G, B); } else if (callerId == ID_LABREGION_HUE) { // TODO - float x = valX - 1.f/6.f; + float x = valX - 1.0/6.0; if (x < 0.f) { x += 1.f; } diff --git a/rtgui/coordinateadjuster.cc b/rtgui/coordinateadjuster.cc index ebf36b7e7..57190cf63 100644 --- a/rtgui/coordinateadjuster.cc +++ b/rtgui/coordinateadjuster.cc @@ -69,14 +69,14 @@ void CoordinateAdjuster::AxisAdjuster::setValue(double newValue) { float range = rangeUpperBound - rangeLowerBound; spinButtonConn.block(true); - spinButton->set_value(newValue * range + rangeLowerBound); + spinButton->set_value(static_cast(newValue) * range + rangeLowerBound); spinButtonConn.block(false); } void CoordinateAdjuster::AxisAdjuster::valueChanged() { float range = rangeUpperBound - rangeLowerBound; - parent->updatePos(idx, (spinButton->get_value() - rangeLowerBound) / range); + parent->updatePos(idx, (static_cast(spinButton->get_value()) - rangeLowerBound) / range); } CoordinateAdjuster::CoordinateAdjuster(CoordinateProvider *provider, CurveEditorSubGroup *parent, const std::vector &axis) @@ -171,7 +171,7 @@ void CoordinateAdjuster::startNumericalAdjustment(const std::vector Gtk::SpinButton *currSpinButton = axisAdjusters.at(i)->spinButton; currSpinButton->set_sensitive(true); float range = axisAdjusters.at(i)->rangeUpperBound - axisAdjusters.at(i)->rangeLowerBound; - currSpinButton->set_range(newBoundaries.at(i).minVal * range + axisAdjusters.at(i)->rangeLowerBound, newBoundaries.at(i).maxVal * range + axisAdjusters.at(i)->rangeLowerBound); + currSpinButton->set_range(newBoundaries.at(i).minVal * static_cast(range) + static_cast(axisAdjusters.at(i)->rangeLowerBound), newBoundaries.at(i).maxVal * static_cast(range) + static_cast(axisAdjusters.at(i)->rangeLowerBound)); } axisAdjusters.at(0)->spinButton->grab_focus(); @@ -200,7 +200,7 @@ void CoordinateAdjuster::switchAdjustedPoint(std::vector &pos, const std // ...narrow the range to the new interval float range = axisAdjusters.at(i)->rangeUpperBound - axisAdjusters.at(i)->rangeLowerBound; - currAxis->spinButton->set_range(newBoundaries.at(i).minVal * range + axisAdjusters.at(i)->rangeLowerBound, newBoundaries.at(i).maxVal * range + axisAdjusters.at(i)->rangeLowerBound); + currAxis->spinButton->set_range(newBoundaries.at(i).minVal * static_cast(range) + static_cast(axisAdjusters.at(i)->rangeLowerBound), newBoundaries.at(i).maxVal * static_cast(range) + static_cast(axisAdjusters.at(i)->rangeLowerBound)); // enable events currAxis->spinButtonConn.block(false); diff --git a/rtgui/crop.cc b/rtgui/crop.cc index 3bdcf14cf..d9d496523 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -1006,7 +1006,7 @@ void Crop::cropWidth1Resized (int &X, int &Y, int &W, int &H, float custom_ratio } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0.f ? custom_ratio : static_cast(getRatio()); H = (int)round(W / r); int Hmax = min(ny + nh, maxh - ny); @@ -1053,7 +1053,7 @@ void Crop::cropWidth2Resized (int &X, int &Y, int &W, int &H, float custom_ratio } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); H = (int)round(W / r); int Hmax = min(ny + nh, maxh - ny); @@ -1101,7 +1101,7 @@ void Crop::cropHeight1Resized (int &X, int &Y, int &W, int &H, float custom_rati } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); W = (int)round(H * r); int Wmax = min(nx + nw, maxw - nx); @@ -1148,7 +1148,7 @@ void Crop::cropHeight2Resized (int &X, int &Y, int &W, int &H, float custom_rati } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); W = (int)round(H * r); int Wmax = min(nx + nw, maxw - nx); @@ -1205,7 +1205,7 @@ void Crop::cropTopLeftResized (int &X, int &Y, int &W, int &H, float custom_rati } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); W = (int)round(H * r); if (W > oldXR) { @@ -1252,7 +1252,7 @@ void Crop::cropTopRightResized (int &X, int &Y, int &W, int &H, float custom_rat } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); W = (int)round(H * r); if (W > maxw - nx) { @@ -1298,7 +1298,7 @@ void Crop::cropBottomLeftResized (int &X, int &Y, int &W, int &H, float custom_r } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); W = (int)round(H * r); if (W > oldXR) { @@ -1342,7 +1342,7 @@ void Crop::cropBottomRightResized (int &X, int &Y, int &W, int &H, float custom_ } if (fixr->get_active() || custom_ratio > 0) { - double r = custom_ratio > 0 ? custom_ratio : getRatio(); + double r = custom_ratio > 0 ? custom_ratio : static_cast(getRatio()); W = (int)round(H * r); if (W > maxw - nx) { diff --git a/rtgui/editwidgets.cc b/rtgui/editwidgets.cc index f7c748744..e67b664db 100644 --- a/rtgui/editwidgets.cc +++ b/rtgui/editwidgets.cc @@ -126,13 +126,13 @@ void Circle::drawInnerGeometry(Cairo::RefPtr &cr, ObjectMOBuffer if (filled && state != INSENSITIVE) { cr->arc(center_.x + 0.5, center_.y + 0.5, radius_, 0., 2.*rtengine::RT_PI); - if (innerLineWidth > 0.) { + if (innerLineWidth > 0.f) { cr->fill_preserve(); cr->stroke(); } else { cr->fill(); } - } else if (innerLineWidth > 0.) { + } else if (innerLineWidth > 0.f) { cr->arc(center_.x + 0.5, center_.y + 0.5, radius_, 0., 2.*rtengine::RT_PI); if (state == INSENSITIVE) { @@ -176,7 +176,7 @@ void Circle::drawToMOChannel (Cairo::RefPtr &cr, unsigned short cr->arc(center_.x + 0.5, center_.y + 0.5, radius_, 0, 2.*rtengine::RT_PI); if (filled) { - if (innerLineWidth > 0.) { + if (innerLineWidth > 0.f) { cr->fill_preserve(); cr->stroke(); } else { @@ -224,7 +224,7 @@ void Line::drawOuterGeometry(Cairo::RefPtr &cr, ObjectMOBuffer * void Line::drawInnerGeometry(Cairo::RefPtr &cr, ObjectMOBuffer *objectBuffer, EditCoordSystem &coordSystem) { - if ((flags & F_VISIBLE) && innerLineWidth > 0.) { + if ((flags & F_VISIBLE) && innerLineWidth > 0.f) { if (state != INSENSITIVE) { RGBColor color; @@ -383,13 +383,13 @@ void Polyline::drawInnerGeometry(Cairo::RefPtr &cr, ObjectMOBuff } } - if (innerLineWidth > 0.) { + if (innerLineWidth > 0.f) { cr->fill_preserve(); cr->stroke(); } else { cr->fill(); } - } else if (innerLineWidth > 0.) { + } else if (innerLineWidth > 0.f) { rtengine::Coord currPos; for (unsigned int i = 0; i < points.size(); ++i) { @@ -459,7 +459,7 @@ void Polyline::drawToMOChannel (Cairo::RefPtr &cr, unsigned shor } if (filled) { - if (innerLineWidth > 0.) { + if (innerLineWidth > 0.f) { cr->fill_preserve(); cr->stroke(); } else { @@ -576,13 +576,13 @@ void Rectangle::drawInnerGeometry(Cairo::RefPtr &cr, ObjectMOBuf if (filled && state != INSENSITIVE) { cr->rectangle(tl.x + 0.5, tl.y + 0.5, br.x - tl.x, br.y - tl.y); - if (innerLineWidth > 0.) { + if (innerLineWidth > 0.f) { cr->fill_preserve(); cr->stroke(); } else { cr->fill(); } - } else if (innerLineWidth > 0.) { + } else if (innerLineWidth > 0.f) { cr->rectangle(tl.x + 0.5, tl.y + 0.5, br.x - tl.x, br.y - tl.y); if (state == INSENSITIVE) { @@ -634,7 +634,7 @@ void Rectangle::drawToMOChannel(Cairo::RefPtr &cr, unsigned shor cr->rectangle(tl.x + 0.5, tl.y + 0.5, br.x - tl.x, br.y - tl.y); if (filled) { - if (innerLineWidth > 0.) { + if (innerLineWidth > 0.f) { cr->fill_preserve(); cr->stroke(); } else { From 806c086fbcc92c6a11bb714d1bce37b13d41c34b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 21 Jan 2020 14:01:27 +0100 Subject: [PATCH 158/453] more double promote fixes, still not complete --- rtengine/FTblockDN.cc | 64 ++++++------- rtengine/color.h | 1 + rtengine/hilite_recon.cc | 4 +- rtengine/improcfun.cc | 199 +++++++++++++++++++-------------------- 4 files changed, 134 insertions(+), 134 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 121c8189d..4e5dae42b 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -548,7 +548,7 @@ BENCHFUN const bool denoiseMethodRgb = (dnparams.dmethod == "RGB"); // init luma noisevarL const float noiseluma = static_cast(dnparams.luma); - const float noisevarL = (useNoiseLCurve && (denoiseMethodRgb || !isRAW)) ? static_cast(SQR(((noiseluma + 1.0) / 125.0) * (10. + (noiseluma + 1.0) / 25.0))) : static_cast(SQR((noiseluma / 125.0) * (1.0 + noiseluma / 25.0))); + const float noisevarL = (useNoiseLCurve && (denoiseMethodRgb || !isRAW)) ? SQR(((noiseluma + 1.f) / 125.f) * (10.f + (noiseluma + 1.f) / 25.f)) : SQR((noiseluma / 125.f) * (1.f + noiseluma / 25.f)); const bool denoiseLuminance = (noisevarL > 0.00001f); //printf("NL=%f \n",noisevarL); @@ -635,20 +635,20 @@ BENCHFUN if (dnparams.luma != 0 || dnparams.chroma != 0 || dnparams.methodmed == "Lab" || dnparams.methodmed == "Lonly") { // gamma transform for input data - float gam = dnparams.gamma; - float gamthresh = 0.001f; + double gam = dnparams.gamma; + constexpr double gamthresh = 0.001; if (!isRAW) {//reduce gamma under 1 for Lab mode ==> TIF and JPG - if (gam < 1.9f) { - gam = 1.f - (1.9f - gam) / 3.f; //minimum gamma 0.7 - } else if (gam >= 1.9f && gam <= 3.f) { - gam = (1.4f / 1.1f) * gam - 1.41818f; + if (gam < 1.9) { + gam = 1.0 - (1.9 - gam) / 3.0; //minimum gamma 0.7 + } else if (gam >= 1.9 && gam <= 3.0) { + gam = (1.4 / 1.1) * gam - 1.41818; } } LUTf gamcurve(65536, LUT_CLIP_BELOW); - float gamslope = exp(log(static_cast(gamthresh)) / gam) / gamthresh; + const double gamslope = exp(log(gamthresh) / gam) / gamthresh; if (denoiseMethodRgb) { Color::gammaf2lut(gamcurve, gam, gamthresh, gamslope, 65535.f, 32768.f); @@ -657,9 +657,9 @@ BENCHFUN } // inverse gamma transform for output data - float igam = 1.f / gam; - float igamthresh = gamthresh * gamslope; - float igamslope = 1.f / gamslope; + const float igam = 1.0 / gam; + const float igamthresh = gamthresh * gamslope; + const float igamslope = 1.0 / gamslope; LUTf igamcurve(65536, LUT_CLIP_BELOW); @@ -669,9 +669,9 @@ BENCHFUN Color::gammanf2lut(igamcurve, igam, 32768.f, 65535.f); } - const float gain = pow(2.0f, float(expcomp)); - float params_Ldetail = min(float(dnparams.Ldetail), 99.9f); // max out to avoid div by zero when using noisevar_Ldetail as divisor - float noisevar_Ldetail = SQR(static_cast(SQR(100. - params_Ldetail) + 50.*(100. - params_Ldetail)) * TS * 0.5f); + const float gain = std::pow(2.0, expcomp); + const double params_Ldetail = std::min(dnparams.Ldetail, 99.9); // max out to avoid div by zero when using noisevar_Ldetail as divisor + const float noisevar_Ldetail = SQR(SQR(100. - params_Ldetail) + 50.0 * (100.0 - params_Ldetail) * TS * 0.5); array2D tilemask_in(TS, TS); array2D tilemask_out(TS, TS); @@ -681,13 +681,13 @@ BENCHFUN for (int i = 0; i < TS; ++i) { float i1 = abs((i > TS / 2 ? i - TS + 1 : i)); - float vmask = (i1 < border ? SQR(sin((rtengine::RT_PI * i1) / (2 * border))) : 1.0f); - float vmask2 = (i1 < 2 * border ? SQR(sin((rtengine::RT_PI * i1) / (2 * border))) : 1.0f); + float vmask = (i1 < border ? SQR(sin((rtengine::RT_PI_F * i1) / (2 * border))) : 1.f); + float vmask2 = (i1 < 2 * border ? SQR(sin((rtengine::RT_PI_F * i1) / (2 * border))) : 1.f); for (int j = 0; j < TS; ++j) { float j1 = abs((j > TS / 2 ? j - TS + 1 : j)); - tilemask_in[i][j] = (vmask * (j1 < border ? SQR(sin((rtengine::RT_PI * j1) / (2 * border))) : 1.0f)) + epsilon; - tilemask_out[i][j] = (vmask2 * (j1 < 2 * border ? SQR(sin((rtengine::RT_PI * j1) / (2 * border))) : 1.0f)) + epsilon; + tilemask_in[i][j] = (vmask * (j1 < border ? SQR(sin((rtengine::RT_PI_F * j1) / (2 * border))) : 1.0f)) + epsilon; + tilemask_out[i][j] = (vmask2 * (j1 < 2 * border ? SQR(sin((rtengine::RT_PI_F * j1) / (2 * border))) : 1.0f)) + epsilon; } } @@ -883,19 +883,19 @@ BENCHFUN int height = tilebottom - tiletop; int width2 = (width + 1) / 2; float realred, realblue; - float interm_med = static_cast(dnparams.chroma) / 10.0; + float interm_med = dnparams.chroma / 10.0; float intermred, intermblue; if (dnparams.redchro > 0.) { - intermred = (dnparams.redchro / 10.); + intermred = dnparams.redchro / 10.0; } else { - intermred = static_cast(dnparams.redchro) / 7.0; //increase slower than linear for more sensit + intermred = dnparams.redchro / 7.0; //increase slower than linear for more sensit } if (dnparams.bluechro > 0.) { - intermblue = (dnparams.bluechro / 10.); + intermblue = dnparams.bluechro / 10.0; } else { - intermblue = static_cast(dnparams.bluechro) / 7.0; //increase slower than linear for more sensit + intermblue = dnparams.bluechro / 7.0; //increase slower than linear for more sensit } if (ponder && kall == 2) { @@ -1096,7 +1096,7 @@ BENCHFUN //binary 1 or 0 for each level, eg subsampling = 0 means no subsampling, 1 means subsample //the first level only, 7 means subsample the first three levels, etc. //actual implementation only works with subsampling set to 1 - float interm_medT = static_cast(dnparams.chroma) / 10.0; + float interm_medT = dnparams.chroma / 10.0; bool execwavelet = true; if (!denoiseLuminance && interm_medT < 0.05f && dnparams.median && (dnparams.methodmed == "Lab" || dnparams.methodmed == "Lonly")) { @@ -2121,7 +2121,7 @@ float ImProcFunctions::Mad(const float * DataList, const int datalen) int count_ = count - histo[median - 1]; // interpolate - return (((median - 1) + (datalen / 2 - count_) / (static_cast(count - count_))) / 0.6745); + return (((median - 1) + (datalen / 2 - count_) / (static_cast(count - count_))) / 0.6745f); } float ImProcFunctions::MadRgb(const float * DataList, const int datalen) @@ -2155,7 +2155,7 @@ float ImProcFunctions::MadRgb(const float * DataList, const int datalen) // interpolate delete[] histo; - return (((median - 1) + (datalen / 2 - count_) / (static_cast(count - count_))) / 0.6745); + return (((median - 1) + (datalen / 2 - count_) / (static_cast(count - count_))) / 0.6745f); } @@ -2908,7 +2908,7 @@ void ImProcFunctions::RGB_denoise_infoGamCurve(const procparams::DirPyrDenoisePa bool denoiseMethodRgb = (dnparams.dmethod == "RGB"); if (denoiseMethodRgb) { - gamslope = exp(log(static_cast(gamthresh)) / gam) / gamthresh; + gamslope = exp(log(static_cast(gamthresh)) / static_cast(gam)) / static_cast(gamthresh); Color::gammaf2lut(gamcurve, gam, gamthresh, gamslope, 65535.f, 32768.f); } else { Color::gammanf2lut(gamcurve, gam, 65535.f, 32768.f); @@ -3189,19 +3189,19 @@ void ImProcFunctions::RGB_denoise_info(Imagefloat * src, Imagefloat * provicalc, } float realred, realblue; - float interm_med = static_cast(dnparams.chroma) / 10.0; + float interm_med = dnparams.chroma / 10.0; float intermred, intermblue; if (dnparams.redchro > 0.) { - intermred = (dnparams.redchro / 10.); + intermred = dnparams.redchro / 10.0; } else { - intermred = static_cast(dnparams.redchro) / 7.0; //increase slower than linear for more sensit + intermred = dnparams.redchro / 7.0; //increase slower than linear for more sensit } if (dnparams.bluechro > 0.) { - intermblue = (dnparams.bluechro / 10.); + intermblue = dnparams.bluechro / 10.0; } else { - intermblue = static_cast(dnparams.bluechro) / 7.0; //increase slower than linear for more sensit + intermblue = dnparams.bluechro / 7.0; //increase slower than linear for more sensit } realred = interm_med + intermred; diff --git a/rtengine/color.h b/rtengine/color.h index 845770bbe..998e47ee7 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -147,6 +147,7 @@ public: constexpr static double u0 = 4.0 * static_cast(D50x) / (static_cast(D50x) + 15 + 3 * static_cast(D50z)); constexpr static double v0 = 9.0 / (static_cast(D50x) + 15 + 3 * static_cast(D50z)); constexpr static double epskap = 8.0; + constexpr static float epskapf = epskap; constexpr static float c1By116 = 1.0 / 116.0; constexpr static float c16By116 = 16.0 / 116.0; diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index 697a5e3d3..a56ff1918 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -496,7 +496,7 @@ void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue && blue[i + miny][j + minx] < max_f[2] ) { // if one or more channels is highlight but none are blown, add to highlight accumulator - hipass_sum += channelblur[0][i][j]; + hipass_sum += static_cast(channelblur[0][i][j]); ++hipass_norm; hilite_full[0][i][j] = red[i + miny][j + minx]; @@ -507,7 +507,7 @@ void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue } } - const float hipass_ave = 2.f * hipass_sum / (hipass_norm + epsilon); + const float hipass_ave = 2.0 * hipass_sum / (hipass_norm + static_cast(epsilon)); if (plistener) { progress += 0.05; diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index d5c69773e..91c1e2c00 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -137,7 +137,7 @@ void highlightToneCurve(const LUTf &hltonecurve, float *rtemp, float *gtemp, flo float b = btemp[ti * tileSize + tj + k]; float tonefactor = ((r < MAXVALF ? hltonecurve[r] : CurveFactory::hlcurve(exp_scale, comp, hlrange, r)) + (g < MAXVALF ? hltonecurve[g] : CurveFactory::hlcurve(exp_scale, comp, hlrange, g)) + - (b < MAXVALF ? hltonecurve[b] : CurveFactory::hlcurve(exp_scale, comp, hlrange, b))) / 3.0; + (b < MAXVALF ? hltonecurve[b] : CurveFactory::hlcurve(exp_scale, comp, hlrange, b))) / 3.f; // note: tonefactor includes exposure scaling, that is here exposure slider and highlight compression takes place rtemp[ti * tileSize + tj + k] = r * tonefactor; @@ -165,7 +165,7 @@ void highlightToneCurve(const LUTf &hltonecurve, float *rtemp, float *gtemp, flo //float tonefactor = hltonecurve[(0.299f*r+0.587f*g+0.114f*b)]; float tonefactor = ((r < MAXVALF ? hltonecurve[r] : CurveFactory::hlcurve(exp_scale, comp, hlrange, r)) + (g < MAXVALF ? hltonecurve[g] : CurveFactory::hlcurve(exp_scale, comp, hlrange, g)) + - (b < MAXVALF ? hltonecurve[b] : CurveFactory::hlcurve(exp_scale, comp, hlrange, b))) / 3.0; + (b < MAXVALF ? hltonecurve[b] : CurveFactory::hlcurve(exp_scale, comp, hlrange, b))) / 3.f; // note: tonefactor includes exposure scaling, that is here exposure slider and highlight compression takes place rtemp[ti * tileSize + tj] = r * tonefactor; @@ -518,8 +518,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw int width = lab->W, height = lab->H; float minQ = 10000.f; float maxQ = -1000.f; - float Yw; - Yw = 1.0; + double Yw = 1.0; double Xw, Zw; float f = 0.f, nc = 0.f, la, c = 0.f, xw, yw, zw, f2 = 1.f, c2 = 1.f, nc2 = 1.f, yb2; float fl, n, nbb, ncb, aw; //d @@ -596,13 +595,13 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw algepd = true; } - xwd = 100.f * Xwout; - zwd = 100.f * Zwout; - ywd = 100.f / params->colorappearance.greenout;//approximation to simplify + xwd = 100.0 * Xwout; + zwd = 100.0 * Zwout; + ywd = 100.0 / params->colorappearance.greenout;//approximation to simplify - xws = 100.f * Xwsc; - zws = 100.f * Zwsc; - yws = 100.f / params->colorappearance.greensc;//approximation to simplify + xws = 100.0 * Xwsc; + zws = 100.0 * Zwsc; + yws = 100.0 / params->colorappearance.greensc;//approximation to simplify /* @@ -699,20 +698,20 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw if (alg == 3 || alg == 1) { schr = params->colorappearance.schroma; - if (schr > 0.0) { - schr = schr / 2.0f; //divide sensibility for saturation + if (schr > 0.f) { + schr = schr / 2.f; //divide sensibility for saturation } if (alg == 3) { - if (schr == -100.0f) { + if (schr == -100.f) { schr = -99.f; } - if (schr == 100.0f) { + if (schr == 100.f) { schr = 98.f; } } else { - if (schr == -100.0f) { + if (schr == -100.f) { schr = -99.8f; } } @@ -751,7 +750,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw LUTu hist16J; LUTu hist16Q; - if ((needJ && CAMBrightCurveJ.dirty) || (needQ && CAMBrightCurveQ.dirty) || (std::isnan (mean) && settings->viewinggreySc != 0)) { + if ((needJ && CAMBrightCurveJ.dirty) || (needQ && CAMBrightCurveQ.dirty) || (std::isnan(mean) && settings->viewinggreySc != 0)) { if (needJ) { hist16J (32768); @@ -788,7 +787,7 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw #endif - for (int i = 0; i < height; i++) + for (int i = 0; i < height; i++) { for (int j = 0; j < width; j++) { //rough correspondence between L and J float currL = lab->L[i][j] / 327.68f; float koef; //rough correspondence between L and J @@ -849,10 +848,11 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw //hist16Qthr[ (int) (sqrtf ((koef * (lab->L[i][j])) * 32768.f))]++; //for brightness Q : approximation for Q=wh*sqrt(J/100) J not equal L } - sum += koef * lab->L[i][j]; //evaluate mean J to calculate Yb + sum += static_cast(koef) * static_cast(lab->L[i][j]); //evaluate mean J to calculate Yb //sumQ += whestim * sqrt ((koef * (lab->L[i][j])) / 32768.f); //can be used in case of... } + } #ifdef _OPENMP #pragma omp critical @@ -868,8 +868,8 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw } - if (std::isnan (mean)) { - mean = (sum / ((height) * width)) / 327.68f; //for Yb for all image...if one day "pipette" we can adapt Yb for each zone + if (std::isnan(mean)) { + mean = (sum / ((height) * width)) / 327.68; //for Yb for all image...if one day "pipette" we can adapt Yb for each zone } } #ifdef _OPENMP @@ -916,9 +916,9 @@ void ImProcFunctions::ciecam_02float (CieImage* ncie, float adap, int pW, int pw const bool highlight = params->toneCurve.hrenabled; //Get the value if "highlight reconstruction" is activated const int gamu = (params->colorappearance.gamut) ? 1 : 0; - xw = 100.0f * Xw; - yw = 100.0f * Yw; - zw = 100.0f * Zw; + xw = 100.0 * Xw; + yw = 100.0 * Yw; + zw = 100.0 * Zw; float xw1 = 0.f, yw1 = 0.f, zw1 = 0.f, xw2 = 0.f, yw2 = 0.f, zw2 = 0.f; // settings of WB: scene and viewing @@ -2002,9 +2002,9 @@ void ImProcFunctions::moyeqt (Imagefloat* working, float &moyS, float &eqty) for (int i = 0; i < tHh; i++) { for (int j = 0; j < tWw; j++) { - float s = Color::rgb2s (CLIP (working->r (i, j)), CLIP (working->g (i, j)), CLIP (working->b (i, j))); + double s = Color::rgb2s (CLIP (working->r (i, j)), CLIP (working->g (i, j)), CLIP (working->b (i, j))); moy += s; - sqrs += SQR (s); + sqrs += SQR(s); } } @@ -2108,17 +2108,17 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer float toxyz[3][3] = { { - static_cast ( wprof[0][0] / Color::D50x), - static_cast ( wprof[0][1] / Color::D50x), - static_cast ( wprof[0][2] / Color::D50x) + static_cast(wprof[0][0] / static_cast(Color::D50x)), + static_cast(wprof[0][1] / static_cast(Color::D50x)), + static_cast(wprof[0][2] / static_cast(Color::D50x)) }, { - static_cast ( wprof[1][0]), - static_cast ( wprof[1][1]), - static_cast ( wprof[1][2]) + static_cast(wprof[1][0]), + static_cast(wprof[1][1]), + static_cast(wprof[1][2]) }, { - static_cast ( wprof[2][0] / Color::D50z), - static_cast ( wprof[2][1] / Color::D50z), - static_cast ( wprof[2][2] / Color::D50z) + static_cast(wprof[2][0] / static_cast(Color::D50z)), + static_cast(wprof[2][1] / static_cast(Color::D50z)), + static_cast(wprof[2][2] / static_cast(Color::D50z)) } }; float maxFactorToxyz = max (toxyz[1][0], toxyz[1][1], toxyz[1][2]); @@ -2238,10 +2238,10 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer const float film_simulation_strength = static_cast (params->filmSimulation.strength) / 100.0f; - const float exp_scale = pow (2.0, expcomp); - const float comp = (max (0.0, expcomp) + 1.0) * hlcompr / 100.0; - const float shoulder = ((65536.0 / max (1.0f, exp_scale)) * (hlcomprthresh / 200.0)) + 0.1; - const float hlrange = 65536.0 - shoulder; + const float exp_scale = pow(2.0, expcomp); + const float comp = (max(0.0, expcomp) + 1.0) * hlcompr / 100.0; + const float shoulder = ((65536.f / max(1.0f, exp_scale)) * (hlcomprthresh / 200.f)) + 0.1f; + const float hlrange = 65536.f - shoulder; const bool isProPhoto = (params->icm.workingProfile == "ProPhoto"); // extracting data from 'params' to avoid cache flush (to be confirmed) ToneCurveMode curveMode = params->toneCurve.curveMode; @@ -2303,43 +2303,43 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer } */ - float RedLow = params->colorToning.redlow / 100.f; - float GreenLow = params->colorToning.greenlow / 100.f; - float BlueLow = params->colorToning.bluelow / 100.f; - float RedMed = params->colorToning.redmed / 100.f; - float GreenMed = params->colorToning.greenmed / 100.f; - float BlueMed = params->colorToning.bluemed / 100.f; - float RedHigh = params->colorToning.redhigh / 100.f; - float GreenHigh = params->colorToning.greenhigh / 100.f; - float BlueHigh = params->colorToning.bluehigh / 100.f; - float SatLow = float (params->colorToning.shadowsColSat.getBottom()) / 100.f; - float SatHigh = float (params->colorToning.hlColSat.getBottom()) / 100.f; + float RedLow = params->colorToning.redlow / 100.0; + float GreenLow = params->colorToning.greenlow / 100.0; + float BlueLow = params->colorToning.bluelow / 100.0; + float RedMed = params->colorToning.redmed / 100.0; + float GreenMed = params->colorToning.greenmed / 100.0; + float BlueMed = params->colorToning.bluemed / 100.0; + float RedHigh = params->colorToning.redhigh / 100.0; + float GreenHigh = params->colorToning.greenhigh / 100.0; + float BlueHigh = params->colorToning.bluehigh / 100.0; + float SatLow = params->colorToning.shadowsColSat.getBottom() / 100.f; + float SatHigh = params->colorToning.hlColSat.getBottom() / 100.f; - float Balan = float (params->colorToning.balance); + float Balan = params->colorToning.balance; - float chMixRR = float (params->chmixer.red[0])/10.f; - float chMixRG = float (params->chmixer.red[1])/10.f; - float chMixRB = float (params->chmixer.red[2])/10.f; - float chMixGR = float (params->chmixer.green[0])/10.f; - float chMixGG = float (params->chmixer.green[1])/10.f; - float chMixGB = float (params->chmixer.green[2])/10.f; - float chMixBR = float (params->chmixer.blue[0])/10.f; - float chMixBG = float (params->chmixer.blue[1])/10.f; - float chMixBB = float (params->chmixer.blue[2])/10.f; + float chMixRR = params->chmixer.red[0] / 10.f; + float chMixRG = params->chmixer.red[1] / 10.f; + float chMixRB = params->chmixer.red[2] / 10.f; + float chMixGR = params->chmixer.green[0] / 10.f; + float chMixGG = params->chmixer.green[1] / 10.f; + float chMixGB = params->chmixer.green[2] / 10.f; + float chMixBR = params->chmixer.blue[0] / 10.f; + float chMixBG = params->chmixer.blue[1] / 10.f; + float chMixBB = params->chmixer.blue[2] / 10.f; bool blackwhite = params->blackwhite.enabled; bool complem = params->blackwhite.enabledcc; - float bwr = float (params->blackwhite.mixerRed); - float bwg = float (params->blackwhite.mixerGreen); - float bwb = float (params->blackwhite.mixerBlue); - float bwrgam = float (params->blackwhite.gammaRed); - float bwggam = float (params->blackwhite.gammaGreen); - float bwbgam = float (params->blackwhite.gammaBlue); - float mixerOrange = float (params->blackwhite.mixerOrange); - float mixerYellow = float (params->blackwhite.mixerYellow); - float mixerCyan = float (params->blackwhite.mixerCyan); - float mixerMagenta = float (params->blackwhite.mixerMagenta); - float mixerPurple = float (params->blackwhite.mixerPurple); + float bwr = params->blackwhite.mixerRed; + float bwg = params->blackwhite.mixerGreen; + float bwb = params->blackwhite.mixerBlue; + float bwrgam = params->blackwhite.gammaRed; + float bwggam = params->blackwhite.gammaGreen; + float bwbgam = params->blackwhite.gammaBlue; + float mixerOrange = params->blackwhite.mixerOrange; + float mixerYellow = params->blackwhite.mixerYellow; + float mixerCyan = params->blackwhite.mixerCyan; + float mixerMagenta = params->blackwhite.mixerMagenta; + float mixerPurple = params->blackwhite.mixerPurple; int algm = 0; if (params->blackwhite.method == "Desaturation") { @@ -2720,7 +2720,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer //HSV equalizer if (hCurveEnabled) { - h = (hCurve->getVal (double (h)) - 0.5) * 2.f + h; + h = (hCurve->getVal(h) - 0.5) * 2.0 + static_cast(h); if (h > 1.0f) { h -= 1.0f; @@ -2751,7 +2751,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer } //shift value - float valparam = vCurve->getVal ((double)h) - 0.5f; + float valparam = vCurve->getVal(h) - 0.5; valparam *= (1.f - SQR (SQR (1.f - min (s, 1.0f)))); if (valparam > 0.00001f) { @@ -3063,7 +3063,7 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer if (bwlCurveEnabled) { L /= 32768.f; double hr = Color::huelab_to_huehsv2 (HH); - float valparam = float ((bwlCurve->getVal (hr) - 0.5f) * 2.0f); //get l_r=f(H) + float valparam = (bwlCurve->getVal(hr) - 0.5) * 2.0; //get l_r=f(H) float kcc = (CC / 70.f); //take Chroma into account...70 "middle" of chromaticity (arbitrary and simple), one can imagine other algorithme //reduct action for low chroma and increase action for high chroma valparam *= kcc; @@ -3317,9 +3317,9 @@ void ImProcFunctions::rgbProc (Imagefloat* working, LabImage* lab, PipetteBuffer for (int i = 0; i < tH; i++) { for (int j = 0; j < tW; j++) { - nr += tmpImage->r (i, j); - ng += tmpImage->g (i, j); - nb += tmpImage->b (i, j); + nr += static_cast(tmpImage->r(i, j)); + ng += static_cast(tmpImage->g(i, j)); + nb += static_cast(tmpImage->b(i, j)); } } @@ -4385,8 +4385,7 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW float factnoise = 1.f; if (params->dirpyrDenoise.enabled) { - factnoise = (1.f + params->dirpyrDenoise.chroma / 500.f); //levels=5 -// if(yyyy) factnoise=(1.f+params->dirpyrDenoise.chroma/100.f);//levels=7 + factnoise = 1.0 + params->dirpyrDenoise.chroma / 500.0; //levels=5 } const float scaleConst = 100.0f / 100.1f; @@ -4564,7 +4563,7 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW float l_r;//Luminance Lab in 0..1 l_r = Lprov1 / 100.f; { - float valparam = float ((lhCurve->getVal (Color::huelab_to_huehsv2 (HH)) - 0.5f)); //get l_r=f(H) + float valparam = lhCurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5; //get l_r=f(H) float valparamneg; valparamneg = valparam; float kcc = (CC / amountchroma); //take Chroma into account...40 "middle low" of chromaticity (arbitrary and simple), one can imagine other algorithme @@ -4597,9 +4596,9 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW float fx = (0.002f * aprov1) + fy; float fz = fy - (0.005f * bprov1); - float x_ = 65535.0f * Color::f2xyz (fx) * Color::D50x; - float z_ = 65535.0f * Color::f2xyz (fz) * Color::D50z; - float y_ = (Lprov1 > Color::epskap) ? 65535.0 * fy * fy * fy : 65535.0 * Lprov1 / Color::kappa; + float x_ = 65535.f * Color::f2xyz (fx) * Color::D50x; + float z_ = 65535.f * Color::f2xyz (fz) * Color::D50z; + float y_ = Lprov1 > Color::epskapf ? 65535.f * fy * fy * fy : 65535.f * Lprov1 / Color::kappaf; float R, G, B; Color::xyz2rgb (x_, y_, z_, R, G, B, wip); @@ -4627,7 +4626,7 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW // calculate C=f(H) if (chutili) { double hr = Color::huelab_to_huehsv2 (HH); - float chparam = float ((chCurve->getVal (hr) - 0.5f) * 2.0f); //get C=f(H) + float chparam = (chCurve->getVal(hr) - 0.5) * 2.0; //get C=f(H) float chromaChfactor = 1.0f + chparam; atmp *= chromaChfactor;//apply C=f(H) btmp *= chromaChfactor; @@ -4635,9 +4634,9 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW if (hhutili) { // H=f(H) //hue Lab in -PI +PI - float valparam = float ((hhCurve->getVal (Color::huelab_to_huehsv2 (HH)) - 0.5f) * 1.7f) + HH; //get H=f(H) 1.7 optimisation ! + float valparam = (hhCurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5) * 1.7 + static_cast(HH); //get H=f(H) 1.7 optimisation ! HH = valparam; - sincosval = xsincosf (HH); + sincosval = xsincosf(HH); } if (!bwToning) { @@ -4713,11 +4712,11 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW deltaHH = protect_redhcur; //transition hue - if (chromaCfactor > 0.0) { + if (chromaCfactor > 0.f) { Color::scalered ( rstprotection, chromaCfactor, 0.0, HH, deltaHH, scale, scaleext); //1.0 } - if (chromaCfactor > 1.0) { + if (chromaCfactor > 1.f) { float interm = (chromaCfactor - 1.0f) * 100.0f; factorskin = 1.0f + (interm * scale) / 100.0f; factorskinext = 1.0f + (interm * scaleext) / 100.0f; @@ -4774,11 +4773,11 @@ void ImProcFunctions::chromiLuminanceCurve (PipetteBuffer *pipetteBuffer, int pW deltaHH = protect_redhcur; //transition hue - if (chromaCfactor > 0.0) { + if (chromaCfactor > 0.f) { Color::scalered ( rstprotection, chromaCfactor, 0.0, HH, deltaHH, scale, scaleext); //1.0 } - if (chromaCfactor > 1.0) { + if (chromaCfactor > 1.f) { float interm = (chromaCfactor - 1.0f) * 100.0f; factorskin = 1.0f + (interm * scale) / 100.0f; factorskinext = 1.0f + (interm * scaleext) / 100.0f; @@ -5061,7 +5060,7 @@ void ImProcFunctions::impulsedenoise (LabImage* lab) if (params->impulseDenoise.enabled && lab->W >= 8 && lab->H >= 8) { - impulse_nr (lab, (float)params->impulseDenoise.thresh / 20.0 ); + impulse_nr(lab, params->impulseDenoise.thresh / 20.0); } } @@ -5071,7 +5070,7 @@ void ImProcFunctions::impulsedenoisecam (CieImage* ncie, float **buffers[3]) if (params->impulseDenoise.enabled && ncie->W >= 8 && ncie->H >= 8) { - impulse_nrcam (ncie, (float)params->impulseDenoise.thresh / 20.0, buffers ); + impulse_nrcam(ncie, params->impulseDenoise.thresh / 20.0, buffers); } } @@ -5141,7 +5140,7 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, int Wi float sca = params->epd.scale; float gamm = params->epd.gamma; float rew = params->epd.reweightingIterates; - float Qpro = ( 4.0 / c_) * ( a_w + 4.0 ) ; //estimate Q max if J=100.0 + float Qpro = (4.f / c_) * (a_w + 4.f) ; //estimate Q max if J=100.0 float *Qpr = ncie->Q_p[0]; if (settings->verbose) { @@ -5172,7 +5171,7 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, int Wi //Auto select number of iterates. Note that p->EdgeStopping = 0 makes a Gaussian blur. if (Iterates == 0) { - Iterates = (unsigned int) (edgest * 15.0); + Iterates = edgest * 15.f; } //Jacques Desmis : always Iterates=5 for compatibility images between preview and output @@ -5399,7 +5398,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double octile[count] += histogram[j]; if (octile[count] > sum / 8.f || (count == 7 && octile[count] > sum / 16.f)) { - octile[count] = xlog (1. + j) / log (2.f); + octile[count] = xlog(1. + j) / log(2.0); count++;// = min(count+1,7); } } @@ -5412,7 +5411,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double octile[count] += histogram[j]; if (octile[count] > sum / 8.f || (count == 7 && octile[count] > sum / 16.f)) { - octile[count] = xlog (1. + j) / log (2.f); + octile[count] = xlog(1. + j) / log(2.0); count++;// = min(count+1,7); } } @@ -5487,7 +5486,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double } //compute clipped white point - unsigned int clippable = (int) (sum * clip / 100.f ); + unsigned int clippable = (int) (static_cast(sum) * clip / 100.0 ); clipped = 0; int whiteclip = (imax) - 1; @@ -5546,8 +5545,8 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double hlcomprthresh = 0; //this is a series approximation of the actual formula for comp, //which is a transcendental equation - float comp = (gain * ((float)whiteclip) / scale - 1.f) * 2.3f; // 2.3 instead of 2 to increase slightly comp - hlcompr = (int) (100.*comp / (max (0.0, expcomp) + 1.0)); + double comp = (gain * whiteclip / scale - 1.f) * 2.3f; // 2.3 instead of 2 to increase slightly comp + hlcompr = 100.0 * comp / (max(0.0, expcomp) + 1.0); hlcompr = max (0, min (100, hlcompr)); //now find brightness if gain didn't bring ave to midgray using @@ -5555,9 +5554,9 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double float midtmp = gain * sqrt (median * ave) / scale; if (midtmp < 0.1f) { - bright = (midgray - midtmp) * 15.0 / (midtmp); + bright = (midgray - midtmp) * 15.f / (midtmp); } else { - bright = (midgray - midtmp) * 15.0 / (0.10833 - 0.0833 * midtmp); + bright = (midgray - midtmp) * 15.f / (0.10833f - 0.0833f * midtmp); } bright = 0.25 */*(median/ave)*(hidev/lodev)*/max (0, bright); From 914daffa39b223b01859e5c7956e2ef8cff1de0a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 22 Jan 2020 00:11:39 +0100 Subject: [PATCH 159/453] more double promote fixes, still not complete --- rtengine/CMakeLists.txt | 1 + rtengine/color.cc | 1379 +----------------------------------- rtengine/color.h | 8 +- rtengine/curves.cc | 1 + rtengine/munselllch.cc | 1232 ++++++++++++++++++++++++++++++++ rtengine/rawimagesource.cc | 1 + rtengine/rtthumbnail.cc | 1 + 7 files changed, 1241 insertions(+), 1382 deletions(-) create mode 100644 rtengine/munselllch.cc diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 6bce68d1a..e41202832 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -105,6 +105,7 @@ set(RTENGINESOURCEFILES lj92.c lmmse_demosaic.cc loadinitial.cc + munselllch.cc myfile.cc panasonic_decoders.cc pdaflinesfilter.cc diff --git a/rtengine/color.cc b/rtengine/color.cc index 8d20fb9ba..e998b665c 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -16,6 +16,7 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ +#include #include "rtengine.h" #include "color.h" @@ -2997,1384 +2998,6 @@ void Color::LabGamutMunsell(float *labL, float *laba, float *labb, const int N, } -/* - * MunsellLch correction - * Copyright (c) 2012 Jacques Desmis - * - * Find the right LUT and calculate the correction - */ -void Color::MunsellLch (float lum, float hue, float chrom, float memChprov, float &correction, int zone, float &lbe, bool &correctL) -{ - - int x = int(memChprov); - int y = int(chrom); - - //begin PB correction + sky - if(zone == 1) { - if(lum > 5.0) { - if(lum < 15.0) { - if( (hue >= (_15PB10[x] - 0.035)) && (hue < (_15PB10[x] + 0.052) && x <= 45)) { - if(y > 49) { - y = 49; - } - - correction = _15PB10[y] - _15PB10[x] ; - lbe = _15PB10[y]; - correctL = true; - } else if (( hue >= ( _3PB10[x] - 0.052)) && (hue < (_45PB10[x] + _3PB10[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _3PB10[y] - _3PB10[x]; - lbe = _3PB10[y]; - correctL = true; - } else if (( hue >= (_45PB10[x] + _3PB10[x]) / 2.0) && (hue < (_45PB10[x] + 0.052)) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _45PB10[y] - _45PB10[x] ; - lbe = _45PB10[y]; - correctL = true; - } else if (( hue >= (_6PB10[x] - 0.052) && (hue < (_6PB10[x] + _75PB10[x]) / 2.0))) { - correction = _6PB10[y] - _6PB10[x] ; - lbe = _6PB10[y]; - correctL = true; - } else if (( hue >= (_6PB10[x] + _75PB10[x]) / 2.0) && (hue < (_9PB10[x] + _75PB10[x]) / 2.0)) { - correction = _75PB10[y] - _75PB10[x] ; - lbe = _75PB10[y]; - correctL = true; - } else if (( hue >= (_9PB10[x] + _75PB10[x]) / 2.0) && (hue < (_9PB10[x] + _10PB10[x]) / 2.0)) { - correction = _9PB10[y] - _9PB10[x] ; - lbe = _9PB10[y]; - correctL = true; - } else if (( hue >= (_10PB10[x] + _9PB10[x]) / 2.0) && (hue < (_1P10[x] + _10PB10[x]) / 2.0)) { - correction = _10PB10[y] - _10PB10[x] ; - lbe = _10PB10[y]; - correctL = true; - } else if (( hue >= (_10PB10[x] + _1P10[x]) / 2.0) && (hue < (_1P10[x] + _4P10[x]) / 2.0)) { - correction = _1P10[y] - _1P10[x]; - lbe = _1P10[y]; - correctL = true; - } else if (( hue >= (_1P10[x] + _4P10[x]) / 2.0) && (hue < (0.035 + _4P10[x]) / 2.0)) { - correction = _4P10[y] - _4P10[x] ; - lbe = _4P10[y]; - correctL = true; - } - } else if (lum < 25.0) { - if( (hue >= (_15PB20[x] - 0.035)) && (hue < (_15PB20[x] + _3PB20[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _15PB20[y] - _15PB20[x] ; - lbe = _15PB20[y]; - correctL = true; - } else if (( hue >= (_15PB20[x] + _3PB20[x]) / 2.0) && (hue < (_45PB20[x] + _3PB20[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _3PB20[y] - _3PB20[x] ; - lbe = _3PB20[y]; - correctL = true; - } else if (( hue >= (_45PB20[x] + _3PB20[x]) / 2.0) && (hue < ( _45PB20[x] + 0.052)) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _45PB20[y] - _45PB20[x] ; - lbe = _45PB20[y]; - correctL = true; - } else if (( hue >= (_45PB20[x] + 0.052)) && (hue < (_6PB20[x] + _75PB20[x]) / 2.0)) { - correction = _6PB20[y] - _6PB20[x]; - lbe = _6PB20[y]; - correctL = true; - } else if (( hue >= (_6PB20[x] + _75PB20[x]) / 2.0) && (hue < (_9PB20[x] + _75PB20[x]) / 2.0)) { - correction = _75PB20[y] - _75PB20[x] ; - lbe = _75PB20[y]; - correctL = true; - } else if (( hue >= (_9PB20[x] + _75PB20[x]) / 2.0) && (hue < (_9PB20[x] + _10PB20[x]) / 2.0)) { - correction = _9PB20[y] - _9PB20[x] ; - lbe = _9PB20[y]; - correctL = true; - } else if (( hue >= (_10PB20[x] + _9PB20[x]) / 2.0) && (hue < (_1P20[x] + _10PB20[x]) / 2.0)) { - correction = _10PB20[y] - _10PB20[x] ; - lbe = _10PB20[y]; - correctL = true; - } else if (( hue >= (_10PB20[x] + _1P20[x]) / 2.0) && (hue < (_1P20[x] + _4P20[x]) / 2.0)) { - correction = _1P20[y] - _1P20[x] ; - lbe = _1P20[y]; - correctL = true; - } else if (( hue >= (_1P20[x] + _4P20[x]) / 2.0) && (hue < (0.035 + _4P20[x]) / 2.0)) { - correction = _4P20[y] - _4P20[x] ; - lbe = _4P20[y]; - correctL = true; - } - } else if (lum < 35.0) { - if( (hue >= (_15PB30[x] - 0.035)) && (hue < (_15PB30[x] + _3PB30[x]) / 2.0) && x <= 85 ) { - if(y > 89) { - y = 89; - } - - correction = _15PB30[y] - _15PB30[x] ; - lbe = _15PB30[y]; - correctL = true; - } else if (( hue >= (_15PB30[x] + _3PB30[x]) / 2.0) && (hue < (_45PB30[x] + _3PB30[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _3PB30[y] - _3PB30[x] ; - lbe = _3PB30[y]; - correctL = true; - } else if (( hue >= (_45PB30[x] + _3PB30[x]) / 2.0) && (hue < (_45PB30[x] + 0.052)) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _45PB30[y] - _45PB30[x] ; - lbe = _45PB30[y]; - correctL = true; - } else if (( hue >= ( _45PB30[x] + 0.052)) && (hue < (_6PB30[x] + _75PB30[x]) / 2.0)) { - correction = _6PB30[y] - _6PB30[x] ; - lbe = _6PB30[y]; - correctL = true; - } else if (( hue >= (_6PB30[x] + _75PB30[x]) / 2.0) && (hue < (_9PB30[x] + _75PB30[x]) / 2.0)) { - correction = _75PB30[y] - _75PB30[x] ; - lbe = _75PB30[y] ; - correctL = true; - } else if (( hue >= (_9PB30[x] + _75PB30[x]) / 2.0) && (hue < (_9PB30[x] + _10PB30[x]) / 2.0)) { - correction = _9PB30[y] - _9PB30[x] ; - lbe = _9PB30[y]; - correctL = true; - } else if (( hue >= (_10PB30[x] + _9PB30[x]) / 2.0) && (hue < (_1P30[x] + _10PB30[x]) / 2.0)) { - correction = _10PB30[y] - _10PB30[x] ; - lbe = _10PB30[y]; - correctL = true; - } else if (( hue >= (_10PB30[x] + _1P30[x]) / 2.0) && (hue < (_1P30[x] + _4P30[x]) / 2.0)) { - correction = _1P30[y] - _1P30[x] ; - lbe = _1P30[y]; - correctL = true; - } else if (( hue >= (_1P30[x] + _4P30[x]) / 2.0) && (hue < (0.035 + _4P30[x]) / 2.0)) { - correction = _4P30[y] - _4P30[x] ; - lbe = _4P30[y]; - correctL = true; - } - } else if (lum < 45.0) { - if( (hue <= (_05PB40[x] + _15PB40[x]) / 2.0) && (hue > (_05PB40[x] + _10B40[x]) / 2.0) && x < 75 ) { - if(y > 75) { - y = 75; - } - - correction = _05PB40[y] - _05PB40[x] ; - lbe = _05PB40[y]; - correctL = true; - } else if( (hue <= (_05PB40[x] + _10B40[x]) / 2.0) && (hue > (_10B40[x] + _9B40[x]) / 2.0) && x < 70 ) { - if(y > 70) { - y = 70; - } - - correction = _10B40[y] - _10B40[x] ; - lbe = _10B40[y]; - correctL = true; - } else if( (hue <= (_10B40[x] + _9B40[x]) / 2.0) && (hue > (_9B40[x] + _7B40[x]) / 2.0) && x < 70 ) { - if(y > 70) { - y = 70; - } - - correction = _9B40[y] - _9B40[x] ; - lbe = _9B40[y]; - correctL = true; - } else if( (hue <= (_9B40[x] + _7B40[x]) / 2.0) && (hue > (_5B40[x] + _7B40[x]) / 2.0) && x < 70 ) { - if(y > 70) { - y = 70; - } - - correction = _7B40[y] - _7B40[x] ; - lbe = _7B40[y]; - correctL = true; - } else if (( hue <= (_5B40[x] + _7B40[x]) / 2.0) && (hue > (_5B40[x] - 0.035)) && x < 70) { - if(y > 70) { - y = 70; // - } - - correction = _5B40[y] - _5B40[x] ; - lbe = _5B40[y]; - correctL = true; - } - - else if( (hue >= (_15PB40[x] - 0.035)) && (hue < (_15PB40[x] + _3PB40[x]) / 2.0) && x <= 85 ) { - if(y > 89) { - y = 89; - } - - correction = _15PB40[y] - _15PB40[x] ; - lbe = _15PB40[y]; - correctL = true; - } else if (( hue >= (_15PB40[x] + _3PB40[x]) / 2.0) && (hue < (_45PB40[x] + _3PB40[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _3PB40[y] - _3PB40[x] ; - lbe = _3PB40[y]; - correctL = true; - } else if (( hue >= (_45PB40[x] + _3PB40[x]) / 2.0) && (hue < (_45PB40[x] + 0.052)) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _45PB40[y] - _45PB40[x] ; - lbe = _45PB40[y] ; - correctL = true; - } else if (( hue >= (_45PB40[x] + 0.052)) && (hue < (_6PB40[x] + _75PB40[x]) / 2.0)) { - correction = _6PB40[y] - _6PB40[x] ; - lbe = _6PB40[y]; - correctL = true; - } else if (( hue >= (_6PB40[x] + _75PB40[x]) / 2.0) && (hue < (_9PB40[x] + _75PB40[x]) / 2.0)) { - correction = _75PB40[y] - _75PB40[x] ; - lbe = _75PB40[y]; - correctL = true; - } else if (( hue >= (_9PB40[x] + _75PB40[x]) / 2.0) && (hue < (_9PB40[x] + _10PB40[x]) / 2.0)) { - correction = _9PB40[y] - _9PB40[x] ; - lbe = _9PB40[y]; - correctL = true; - } else if (( hue >= (_10PB40[x] + _9PB40[x]) / 2.0) && (hue < (_1P40[x] + _10PB40[x]) / 2.0)) { - correction = _10PB40[y] - _10PB40[x] ; - lbe = _10PB40[y]; - correctL = true; - } else if (( hue >= (_10PB40[x] + _1P40[x]) / 2.0) && (hue < (_1P40[x] + _4P40[x]) / 2.0)) { - correction = _1P40[y] - _1P40[x] ; - lbe = _1P40[y]; - correctL = true; - } else if (( hue >= (_1P40[x] + _4P40[x]) / 2.0) && (hue < (0.035 + _4P40[x]) / 2.0)) { - correction = _4P40[y] - _4P40[x] ; - lbe = _4P40[y]; - correctL = true; - } - } else if (lum < 55.0) { - if( (hue <= (_05PB50[x] + _15PB50[x]) / 2.0) && (hue > (_05PB50[x] + _10B50[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _05PB50[y] - _05PB50[x] ; - lbe = _05PB50[y]; - correctL = true; - } else if( (hue <= (_05PB50[x] + _10B50[x]) / 2.0) && (hue > (_10B50[x] + _9B50[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _10B50[y] - _10B50[x] ; - lbe = _10B50[y]; - correctL = true; - } else if( (hue <= (_10B50[x] + _9B50[x]) / 2.0) && (hue > (_9B50[x] + _7B50[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _9B50[y] - _9B50[x] ; - lbe = _9B50[y]; - correctL = true; - } else if( (hue <= (_9B50[x] + _7B50[x]) / 2.0) && (hue > (_5B50[x] + _7B50[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _7B50[y] - _7B50[x] ; - lbe = _7B50[y]; - correctL = true; - } else if (( hue <= (_5B50[x] + _7B50[x]) / 2.0) && (hue > (_5B50[x] - 0.035)) && x < 79) { - if(y > 79) { - y = 79; // - } - - correction = _5B50[y] - _5B50[x] ; - lbe = _5B50[y]; - correctL = true; - } - - else if( (hue >= (_15PB50[x] - 0.035)) && (hue < (_15PB50[x] + _3PB50[x]) / 2.0) && x <= 85 ) { - if(y > 89) { - y = 89; - } - - correction = _15PB50[y] - _15PB50[x] ; - lbe = _15PB50[y]; - correctL = true; - } else if (( hue >= (_15PB50[x] + _3PB50[x]) / 2.0) && (hue < (_45PB50[x] + _3PB50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _3PB50[y] - _3PB50[x] ; - lbe = _3PB50[y]; - correctL = true; - } else if (( hue >= (_45PB50[x] + _3PB50[x]) / 2.0) && (hue < (_6PB50[x] + _45PB50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _45PB50[y] - _45PB50[x] ; - lbe = _45PB50[y]; - correctL = true; - } else if (( hue >= (_6PB50[x] + _45PB50[x]) / 2.0) && (hue < (_6PB50[x] + _75PB50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _6PB50[y] - _6PB50[x] ; - lbe = _6PB50[y]; - correctL = true; - } else if (( hue >= (_6PB50[x] + _75PB50[x]) / 2.0) && (hue < (_9PB50[x] + _75PB50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _75PB50[y] - _75PB50[x] ; - lbe = _75PB50[y]; - correctL = true; - } else if (( hue >= (_9PB50[x] + _75PB50[x]) / 2.0) && (hue < (_9PB50[x] + _10PB50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _9PB50[y] - _9PB50[x] ; - lbe = _9PB50[y]; - correctL = true; - } else if (( hue >= (_10PB50[x] + _9PB50[x]) / 2.0) && (hue < (_1P50[x] + _10PB50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _10PB50[y] - _10PB50[x] ; - lbe = _10PB50[y]; - correctL = true; - } else if (( hue >= (_10PB50[x] + _1P50[x]) / 2.0) && (hue < (_1P50[x] + _4P50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _1P50[y] - _1P50[x] ; - lbe = _1P50[y]; - correctL = true; - } else if (( hue >= (_1P50[x] + _4P50[x]) / 2.0) && (hue < (0.035 + _4P50[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _4P50[y] - _4P50[x] ; - lbe = _4P50[y]; - correctL = true; - } - } else if (lum < 65.0) { - if( (hue <= (_05PB60[x] + _15PB60[x]) / 2.0) && (hue > (_05PB60[x] + _10B60[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _05PB60[y] - _05PB60[x] ; - lbe = _05PB60[y]; - correctL = true; - } else if( (hue <= (_05PB60[x] + _10B60[x]) / 2.0) && (hue > (_10B60[x] + _9B60[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _10B60[y] - _10B60[x] ; - lbe = _10B60[y]; - correctL = true; - } else if( (hue <= (_10B60[x] + _9B60[x]) / 2.0) && (hue > (_9B60[x] + _7B60[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _9B60[y] - _9B60[x] ; - lbe = _9B60[y]; - correctL = true; - } else if( (hue <= (_9B60[x] + _7B60[x]) / 2.0) && (hue > (_5B60[x] + _7B60[x]) / 2.0) && x < 79 ) { - if(y > 79) { - y = 79; - } - - correction = _7B60[y] - _7B60[x] ; - lbe = _7B60[y]; - correctL = true; - } else if (( hue <= (_5B60[x] + _7B60[x]) / 2.0) && (hue > (_5B60[x] - 0.035)) && x < 79) { - if(y > 79) { - y = 79; // - } - - correction = _5B60[y] - _5B60[x] ; - lbe = _5B60[y]; - correctL = true; - } - - else if( (hue >= (_15PB60[x] - 0.035)) && (hue < (_15PB60[x] + _3PB60[x]) / 2.0) && x <= 85 ) { - if(y > 89) { - y = 89; - } - - correction = _15PB60[y] - _15PB60[x] ; - lbe = _15PB60[y]; - correctL = true; - } else if (( hue >= (_15PB60[x] + _3PB60[x]) / 2.0) && (hue < (_45PB60[x] + _3PB60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _3PB60[y] - _3PB60[x] ; - lbe = _3PB60[y]; - correctL = true; - } else if (( hue >= (_45PB60[x] + _3PB60[x]) / 2.0) && (hue < (_6PB60[x] + _45PB60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _45PB60[y] - _45PB60[x] ; - lbe = _45PB60[y]; - correctL = true; - } else if (( hue >= (_6PB60[x] + _45PB60[x]) / 2.0) && (hue < (_6PB60[x] + _75PB60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _6PB60[y] - _6PB60[x] ; - lbe = _6PB60[y]; - correctL = true; - } else if (( hue >= (_6PB60[x] + _75PB60[x]) / 2.0) && (hue < (_9PB60[x] + _75PB60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _75PB60[y] - _75PB60[x] ; - lbe = _75PB60[y]; - correctL = true; - } else if (( hue >= (_9PB60[x] + _75PB60[x]) / 2.0) && (hue < (_9PB60[x] + _10PB60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _9PB60[y] - _9PB60[x] ; - lbe = _9PB60[y]; - correctL = true; - } else if (( hue >= (_10PB60[x] + _9PB60[x]) / 2.0) && (hue < (_1P60[x] + _10PB60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _10PB60[y] - _10PB60[x] ; - lbe = _10PB60[y]; - correctL = true; - } else if (( hue >= (_10PB60[x] + _1P60[x]) / 2.0) && (hue < (_1P60[x] + _4P60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _1P60[y] - _1P60[x] ; - lbe = _1P60[y]; - correctL = true; - } else if (( hue >= (_1P60[x] + _4P60[x]) / 2.0) && (hue < (0.035 + _4P60[x]) / 2.0) && x <= 85) { - if(y > 89) { - y = 89; - } - - correction = _4P60[y] - _4P60[x] ; - lbe = _4P60[y]; - correctL = true; - } - } else if (lum < 75.0) { - if( (hue <= (_05PB70[x] + _15PB70[x]) / 2.0) && (hue > (_05PB70[x] + _10B70[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _05PB70[y] - _05PB70[x] ; - lbe = _05PB70[y]; - correctL = true; - } else if( (hue <= (_05PB70[x] + _10B70[x]) / 2.0) && (hue > (_10B70[x] + _9B70[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _10B70[y] - _10B70[x] ; - lbe = _10B70[y]; - correctL = true; - } else if( (hue <= (_10B70[x] + _9B70[x]) / 2.0) && (hue > (_9B70[x] + _7B70[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _9B70[y] - _9B70[x] ; - lbe = _9B70[y]; - correctL = true; - } else if( (hue <= (_9B70[x] + _7B70[x]) / 2.0) && (hue > (_5B70[x] + _7B70[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _7B70[y] - _7B70[x] ; - lbe = _7B70[y]; - correctL = true; - } else if (( hue <= (_5B70[x] + _7B70[x]) / 2.0) && (hue > (_5B70[x] - 0.035)) && x < 50) { - if(y > 49) { - y = 49; // - } - - correction = _5B70[y] - _5B70[x] ; - lbe = _5B70[y]; - correctL = true; - } - - else if( (hue >= (_15PB70[x] - 0.035)) && (hue < (_15PB70[x] + _3PB70[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _15PB70[y] - _15PB70[x] ; - lbe = _15PB70[y]; - correctL = true; - } else if (( hue >= (_45PB70[x] + _3PB70[x]) / 2.0) && (hue < (_6PB70[x] + _45PB70[x]) / 2.0) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _45PB70[y] - _45PB70[x] ; - lbe = _45PB70[y]; - correctL = true; - } else if (( hue >= (_6PB70[x] + _45PB70[x]) / 2.0) && (hue < (_6PB70[x] + _75PB70[x]) / 2.0) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _6PB70[y] - _6PB70[x] ; - lbe = _6PB70[y]; - correctL = true; - } else if (( hue >= (_6PB70[x] + _75PB70[x]) / 2.0) && (hue < (_9PB70[x] + _75PB70[x]) / 2.0) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _75PB70[y] - _75PB70[x] ; - lbe = _75PB70[y]; - correctL = true; - } else if (( hue >= (_9PB70[x] + _75PB70[x]) / 2.0) && (hue < (_9PB70[x] + 0.035)) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _9PB70[y] - _9PB70[x] ; - lbe = _9PB70[y]; - correctL = true; - } - } else if (lum < 85.0) { - if( (hue <= (_05PB80[x] + _15PB80[x]) / 2.0) && (hue > (_05PB80[x] + _10B80[x]) / 2.0) && x < 40 ) { - if(y > 39) { - y = 39; - } - - correction = _05PB80[y] - _05PB80[x] ; - lbe = _05PB80[y] ; - correctL = true; - } else if( (hue <= (_05PB80[x] + _10B80[x]) / 2.0) && (hue > (_10B80[x] + _9B80[x]) / 2.0) && x < 40 ) { - if(y > 39) { - y = 39; - } - - correction = _10B80[y] - _10B80[x] ; - lbe = _10B80[y]; - correctL = true; - } else if( (hue <= (_10B80[x] + _9B80[x]) / 2.0) && (hue > (_9B80[x] + _7B80[x]) / 2.0) && x < 40 ) { - if(y > 39) { - y = 39; - } - - correction = _9B80[y] - _9B80[x] ; - lbe = _9B80[y]; - correctL = true; - } else if( (hue <= (_9B80[x] + _7B80[x]) / 2.0) && (hue > (_5B80[x] + _7B80[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _7B80[y] - _7B80[x] ; - lbe = _7B80[y]; - correctL = true; - } else if (( hue <= (_5B80[x] + _7B80[x]) / 2.0) && (hue > (_5B80[x] - 0.035)) && x < 50) { - if(y > 49) { - y = 49; // - } - - correction = _5B80[y] - _5B80[x] ; - lbe = _5B80[y]; - correctL = true; - } - - else if( (hue >= (_15PB80[x] - 0.035)) && (hue < (_15PB80[x] + _3PB80[x]) / 2.0) && x < 50 ) { - if(y > 49) { - y = 49; - } - - correction = _15PB80[y] - _15PB80[x] ; - lbe = _15PB80[y]; - correctL = true; - } else if (( hue >= (_45PB80[x] + _3PB80[x]) / 2.0) && (hue < (_6PB80[x] + _45PB80[x]) / 2.0) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _45PB80[y] - _45PB80[x] ; - lbe = _45PB80[y]; - correctL = true; - } else if (( hue >= (_6PB80[x] + _45PB80[x]) / 2.0) && (hue < (_6PB80[x] + _75PB80[x]) / 2.0) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _6PB80[y] - _6PB80[x] ; - lbe = _6PB80[y]; - correctL = true; - } else if (( hue >= (_6PB80[x] + _75PB80[x]) / 2.0) && (hue < (_9PB80[x] + _75PB80[x]) / 2.0) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _75PB80[y] - _75PB80[x] ; - lbe = _75PB80[y]; - correctL = true; - } else if (( hue >= (_9PB80[x] + _75PB80[x]) / 2.0) && (hue < (_9PB80[x] + 0.035)) && x < 50) { - if(y > 49) { - y = 49; - } - - correction = _9PB80[y] - _9PB80[x] ; - lbe = _9PB80[y]; - correctL = true; - } - } - } - } - // end PB correction - - //red yellow correction - else if(zone == 2) { - if(lum > 15.0) { - if(lum < 25.0) { - if( (hue <= (_10YR20[x] + 0.035)) && (hue > (_10YR20[x] + _85YR20[x]) / 2.0) && x <= 45) { - if(y > 49) { - y = 49; - } - - correction = _10YR20[y] - _10YR20[x] ; - lbe = _10YR20[y]; - correctL = true; - } else if (( hue <= (_85YR20[x] + _10YR20[x]) / 2.0) && (hue > (_85YR20[x] + 0.035) && x <= 45)) { - if(y > 49) { - y = 49; - } - - correction = _85YR20[y] - _85YR20[x] ; - lbe = _85YR20[y]; - correctL = true; - } - } else if (lum < 35.0) { - if( (hue <= (_10YR30[x] + 0.035)) && (hue > (_10YR30[x] + _85YR30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10YR30[y] - _10YR30[x] ; - lbe = _10YR30[y]; - correctL = true; - } else if( (hue <= (_10YR30[x] + _85YR30[x]) / 2.0) && (hue > (_85YR30[x] + _7YR30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _85YR30[y] - _85YR30[x] ; - lbe = _85YR30[y]; - correctL = true; - } else if (( hue <= (_85YR30[x] + _7YR30[x]) / 2.0) && (hue > (_7YR30[x] + _55YR30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7YR30[y] - _7YR30[x] ; - lbe = _7YR30[y]; - correctL = true; - } else if (( hue <= (_7YR30[x] + _55YR30[x]) / 2.0) && (hue > (_55YR30[x] + _4YR30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _55YR30[y] - _55YR30[x] ; - lbe = _55YR30[y]; - correctL = true; - } else if (( hue <= (_55YR30[x] + _4YR30[x]) / 2.0) && (hue > (_4YR30[x] + _25YR30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _4YR30[y] - _4YR30[x] ; - lbe = _4YR30[y]; - correctL = true; - } else if (( hue <= (_4YR30[x] + _25YR30[x]) / 2.0) && (hue > (_25YR30[x] + _10R30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _25YR30[y] - _25YR30[x] ; - lbe = _25YR30[y]; - correctL = true; - } else if (( hue <= (_25YR30[x] + _10R30[x]) / 2.0) && (hue > (_10R30[x] + _9R30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10R30[y] - _10R30[x] ; - lbe = _10R30[y]; - correctL = true; - } else if (( hue <= (_10R30[x] + _9R30[x]) / 2.0) && (hue > (_9R30[x] + _7R30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _9R30[y] - _9R30[x] ; - lbe = _9R30[y]; - correctL = true; - } else if (( hue <= (_9R30[x] + _7R30[x]) / 2.0) && (hue > (_7R30[x] - 0.035)) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7R30[y] - _7R30[x] ; - lbe = _7R30[y] ; - correctL = true; - } - } else if (lum < 45.0) { - if( (hue <= (_10YR40[x] + 0.035)) && (hue > (_10YR40[x] + _85YR40[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10YR40[y] - _10YR40[x] ; - lbe = _10YR40[y]; - correctL = true; - } else if( (hue <= (_10YR40[x] + _85YR40[x]) / 2.0) && (hue > (_85YR40[x] + _7YR40[x]) / 2.0) && x < 85 ) { - if(y > 89) { - y = 89; - } - - correction = _85YR40[y] - _85YR40[x] ; - lbe = _85YR40[y]; - correctL = true; - } else if (( hue <= (_85YR40[x] + _7YR40[x]) / 2.0) && (hue > (_7YR40[x] + _55YR40[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7YR40[y] - _7YR40[x] ; - lbe = _7YR40[y]; - correctL = true; - } else if (( hue <= (_7YR40[x] + _55YR40[x]) / 2.0) && (hue > (_55YR40[x] + _4YR40[x]) / 2.0) && x < 85 ) { - if(y > 89) { - y = 89; - } - - correction = _55YR40[y] - _55YR40[x] ; - lbe = _55YR40[y]; - correctL = true; - } else if (( hue <= (_55YR40[x] + _4YR40[x]) / 2.0) && (hue > (_4YR40[x] + _25YR40[x]) / 2.0) && x < 85 ) { - if(y > 89) { - y = 89; - } - - correction = _4YR40[y] - _4YR40[x] ; - lbe = _4YR40[y]; - correctL = true; - } else if (( hue <= (_4YR40[x] + _25YR40[x]) / 2.0) && (hue > (_25YR40[x] + _10R40[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _25YR40[y] - _25YR40[x] ; - lbe = _25YR40[y] ; - correctL = true; - } else if (( hue <= (_25YR40[x] + _10R40[x]) / 2.0) && (hue > (_10R40[x] + _9R40[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10R40[y] - _10R40[x] ; - lbe = _10R40[y]; - correctL = true; - } else if (( hue <= (_10R40[x] + _9R40[x]) / 2.0) && (hue > (_9R40[x] + _7R40[x]) / 2.0) && x < 85 ) { - if(y > 89) { - y = 89; - } - - correction = _9R40[y] - _9R40[x] ; - lbe = _9R40[y]; - correctL = true; - } else if (( hue <= (_9R40[x] + _7R40[x]) / 2.0) && (hue > (_7R40[x] - 0.035)) && x < 85 ) { - if(y > 89) { - y = 89; - } - - correction = _7R40[y] - _7R40[x] ; - lbe = _7R40[y]; - correctL = true; - } - } else if (lum < 55.0) { - if( (hue <= (_10YR50[x] + 0.035)) && (hue > (_10YR50[x] + _85YR50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10YR50[y] - _10YR50[x] ; - lbe = _10YR50[y]; - correctL = true; - } else if( (hue <= (_10YR50[x] + _85YR50[x]) / 2.0) && (hue > (_85YR50[x] + _7YR50[x]) / 2.0) && x < 85 ) { - if(y > 89) { - y = 89; - } - - correction = _85YR50[y] - _85YR50[x] ; - lbe = _85YR50[y]; - correctL = true; - } else if (( hue <= (_85YR50[x] + _7YR50[x]) / 2.0) && (hue > (_7YR50[x] + _55YR50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7YR50[y] - _7YR50[x] ; - lbe = _7YR50[y]; - correctL = true; - } else if (( hue <= (_7YR50[x] + _55YR50[x]) / 2.0) && (hue > (_55YR50[x] + _4YR50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _55YR50[y] - _55YR50[x] ; - lbe = _55YR50[y]; - correctL = true; - } else if (( hue <= (_55YR50[x] + _4YR50[x]) / 2.0) && (hue > (_4YR50[x] + _25YR50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _4YR50[y] - _4YR50[x] ; - lbe = _4YR50[y]; - correctL = true; - } else if (( hue <= (_4YR50[x] + _25YR50[x]) / 2.0) && (hue > (_25YR50[x] + _10R50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _25YR50[y] - _25YR50[x] ; - lbe = _25YR50[y]; - correctL = true; - } else if (( hue <= (_25YR50[x] + _10R50[x]) / 2.0) && (hue > (_10R50[x] + _9R50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10R50[y] - _10R50[x] ; - lbe = _10R50[y]; - correctL = true; - } else if (( hue <= (_10R50[x] + _9R50[x]) / 2.0) && (hue > (_9R50[x] + _7R50[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _9R50[y] - _9R50[x] ; - lbe = _9R50[y]; - correctL = true; - } else if (( hue <= (_9R50[x] + _7R50[x]) / 2.0) && (hue > (_7R50[x] - 0.035)) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7R50[y] - _7R50[x] ; - lbe = _7R50[y]; - correctL = true; - } - } else if (lum < 65.0) { - if( (hue <= (_10YR60[x] + 0.035)) && (hue > (_10YR60[x] + _85YR60[x]) / 2.0)) { - ; - correction = _10YR60[y] - _10YR60[x] ; - lbe = _10YR60[y]; - correctL = true; - } else if( (hue <= (_10YR60[x] + _85YR60[x]) / 2.0) && (hue > (_85YR60[x] + _7YR60[x]) / 2.0) ) { - ; - correction = _85YR60[y] - _85YR60[x] ; - lbe = _85YR60[y]; - correctL = true; - } else if (( hue <= (_85YR60[x] + _7YR60[x]) / 2.0) && (hue > (_7YR60[x] + _55YR60[x]) / 2.0)) { - correction = _7YR60[y] - _7YR60[x] ; - lbe = _7YR60[y]; - correctL = true; - } else if (( hue <= (_7YR60[x] + _55YR60[x]) / 2.0) && (hue > (_55YR60[x] + _4YR60[x]) / 2.0)) { - correction = _55YR60[y] - _55YR60[x] ; - lbe = _55YR60[y]; - correctL = true; - } else if (( hue <= (_55YR60[x] + _4YR60[x]) / 2.0) && (hue > (_4YR60[x] + _25YR60[x]) / 2.0)) { - correction = _4YR60[y] - _4YR60[x] ; - lbe = _4YR60[y]; - correctL = true; - } else if (( hue <= (_4YR60[x] + _25YR60[x]) / 2.0) && (hue > (_25YR60[x] + _10R60[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _25YR60[y] - _25YR60[x] ; - lbe = _25YR60[y]; - correctL = true; - } else if (( hue <= (_25YR60[x] + _10R60[x]) / 2.0) && (hue > (_10R60[x] + _9R60[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10R60[y] - _10R60[x] ; - lbe = _10R60[y]; - correctL = true; - } else if (( hue <= (_10R60[x] + _9R60[x]) / 2.0) && (hue > (_9R60[x] + _7R60[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _9R60[y] - _9R60[x] ; - lbe = _9R60[y]; - correctL = true; - } else if (( hue <= (_9R60[x] + _7R60[x]) / 2.0) && (hue > (_7R60[x] - 0.035)) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7R60[y] - _7R60[x] ; - lbe = _7R60[y]; - correctL = true; - } - } else if (lum < 75.0) { - if( (hue <= (_10YR70[x] + 0.035)) && (hue > (_10YR70[x] + _85YR70[x]) / 2.0)) { - correction = _10YR70[y] - _10YR70[x] ; - lbe = _10YR70[y]; - correctL = true; - } else if( (hue <= (_10YR70[x] + _85YR70[x]) / 2.0) && (hue > (_85YR70[x] + _7YR70[x]) / 2.0)) { - correction = _85YR70[y] - _85YR70[x] ; - lbe = _85YR70[y]; - correctL = true; - } - - if (( hue <= (_85YR70[x] + _7YR70[x]) / 2.0) && (hue > (_7YR70[x] + _55YR70[x]) / 2.0)) { - correction = _7YR70[y] - _7YR70[x] ; - lbe = _7YR70[y]; - correctL = true; - } else if (( hue <= (_7YR70[x] + _55YR70[x]) / 2.0) && (hue > (_55YR70[x] + _4YR70[x]) / 2.0)) { - correction = _55YR70[y] - _55YR70[x] ; - lbe = _55YR70[y]; - correctL = true; - } else if (( hue <= (_55YR70[x] + _4YR70[x]) / 2.0) && (hue > (_4YR70[x] + _25YR70[x]) / 2.0)) { - correction = _4YR70[y] - _4YR70[x] ; - lbe = _4YR70[y]; - correctL = true; - } else if (( hue <= (_4YR70[x] + _25YR70[x]) / 2.0) && (hue > (_25YR70[x] + _10R70[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _25YR70[y] - _25YR70[x] ; - lbe = _25YR70[y]; - correctL = true; - } else if (( hue <= (_25YR70[x] + _10R70[x]) / 2.0) && (hue > (_10R70[x] + _9R70[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10R70[y] - _10R70[x] ; - lbe = _10R70[y]; - correctL = true; - } else if (( hue <= (_10R70[x] + _9R70[x]) / 2.0) && (hue > (_9R70[x] + _7R70[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _9R70[y] - _9R70[x] ; - lbe = _9R70[y] ; - correctL = true; - } else if (( hue <= (_9R70[x] + _7R70[x]) / 2.0) && (hue > (_7R70[x] - 0.035)) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7R70[y] - _7R70[x] ; - lbe = _7R70[y]; - correctL = true; - } - } else if (lum < 85.0) { - if( (hue <= (_10YR80[x] + 0.035)) && (hue > (_10YR80[x] + _85YR80[x]) / 2.0)) { - correction = _10YR80[y] - _10YR80[x] ; - lbe = _10YR80[y]; - correctL = true; - } else if( (hue <= (_10YR80[x] + _85YR80[x]) / 2.0) && (hue > (_85YR80[x] + _7YR80[x]) / 2.0)) { - correction = _85YR80[y] - _85YR80[x] ; - lbe = _85YR80[y]; - } else if (( hue <= (_85YR80[x] + _7YR80[x]) / 2.0) && (hue > (_7YR80[x] + _55YR80[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _7YR80[y] - _7YR80[x] ; - lbe = _7YR80[y]; - correctL = true; - } else if (( hue <= (_7YR80[x] + _55YR80[x]) / 2.0) && (hue > (_55YR80[x] + _4YR80[x]) / 2.0) && x < 45) { - correction = _55YR80[y] - _55YR80[x] ; - lbe = _55YR80[y]; - correctL = true; - } else if (( hue <= (_55YR80[x] + _4YR80[x]) / 2.0) && (hue > (_4YR80[x] - 0.035) && x < 45)) { - if(y > 49) { - y = 49; - } - - correction = _4YR80[y] - _4YR80[x] ; - lbe = _4YR80[y] ; - correctL = true; - } - } else if (lum < 95.0) { - if( (hue <= (_10YR90[x] + 0.035)) && (hue > (_10YR90[x] - 0.035) && x < 85)) { - if(y > 89) { - y = 89; - } - - correction = _10YR90[y] - _10YR90[x] ; - lbe = _10YR90[y]; - correctL = true; - } else if ( hue <= (_85YR90[x] + 0.035) && hue > (_85YR90[x] - 0.035) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _85YR90[y] - _85YR90[x] ; - lbe = _85YR90[y]; - correctL = true; - } else if (( hue <= (_55YR90[x] + 0.035) && (hue > (_55YR90[x] - 0.035) && x < 45))) { - if(y > 49) { - y = 49; - } - - correction = _55YR90[y] - _55YR90[x] ; - lbe = _55YR90[y]; - correctL = true; - } - } - } - } - //end red yellow - - //Green yellow correction - else if(zone == 3) { - if (lum >= 25.0) { - if (lum < 35.0) { - if( (hue <= (_7G30[x] + 0.035)) && (hue > (_7G30[x] + _5G30[x]) / 2.0) ) { - correction = _7G30[y] - _7G30[x] ; - lbe = _7G30[y]; - correctL = true; - } else if( (hue <= (_7G30[x] + _5G30[x]) / 2.0) && (hue > (_5G30[x] + _25G30[x]) / 2.0)) { - correction = _5G30[y] - _5G30[x] ; - lbe = _5G30[y]; - correctL = true; - } else if (( hue <= (_25G30[x] + _5G30[x]) / 2.0) && (hue > (_25G30[x] + _1G30[x]) / 2.0)) { - correction = _25G30[y] - _25G30[x] ; - lbe = _25G30[y]; - correctL = true; - } else if (( hue <= (_1G30[x] + _25G30[x]) / 2.0) && (hue > (_1G30[x] + _10GY30[x]) / 2.0)) { - correction = _1G30[y] - _1G30[x] ; - lbe = _1G30[y]; - correctL = true; - } else if (( hue <= (_1G30[x] + _10GY30[x]) / 2.0) && (hue > (_10GY30[x] + _75GY30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10GY30[y] - _10GY30[x] ; - lbe = _10GY30[y]; - correctL = true; - } else if (( hue <= (_10GY30[x] + _75GY30[x]) / 2.0) && (hue > (_75GY30[x] + _5GY30[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _75GY30[y] - _75GY30[x] ; - lbe = _75GY30[y]; - correctL = true; - } else if (( hue <= (_5GY30[x] + _75GY30[x]) / 2.0) && (hue > (_5GY30[x] - 0.035)) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _5GY30[y] - _5GY30[x] ; - lbe = _5GY30[y] ; - correctL = true; - } - } else if (lum < 45.0) { - if( (hue <= (_7G40[x] + 0.035)) && (hue > (_7G40[x] + _5G40[x]) / 2.0) ) { - correction = _7G40[y] - _7G40[x] ; - lbe = _7G40[y]; - correctL = true; - } else if( (hue <= (_7G40[x] + _5G40[x]) / 2.0) && (hue > (_5G40[x] + _25G40[x]) / 2.0)) { - correction = _5G40[y] - _5G40[x] ; - lbe = _5G40[y]; - correctL = true; - } else if (( hue <= (_25G40[x] + _5G40[x]) / 2.0) && (hue > (_25G40[x] + _1G40[x]) / 2.0)) { - correction = _25G40[y] - _25G40[x] ; - lbe = _25G40[y]; - correctL = true; - } else if (( hue <= (_1G40[x] + _25G40[x]) / 2.0) && (hue > (_1G40[x] + _10GY40[x]) / 2.0)) { - correction = _1G40[y] - _1G40[x] ; - lbe = _1G40[y]; - correctL = true; - } else if (( hue <= (_1G40[x] + _10GY40[x]) / 2.0) && (hue > (_10GY40[x] + _75GY40[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _10GY40[y] - _10GY40[x] ; - lbe = _10GY40[y]; - correctL = true; - } else if (( hue <= (_10GY40[x] + _75GY40[x]) / 2.0) && (hue > (_75GY40[x] + _5GY40[x]) / 2.0) && x < 85) { - if(y > 89) { - y = 89; - } - - correction = _75GY40[y] - _75GY40[x] ; - lbe = _75GY40[y]; - correctL = true; - } else if (( hue <= (_5GY40[x] + _75GY40[x]) / 2.0) && (hue > (_5GY40[x] - 0.035)) && x < 85) { - if(y > 89) { - y = 89; // - } - - correction = _5GY40[y] - _5GY40[x] ; - lbe = _5GY40[y]; - correctL = true; - } - } else if (lum < 55.0) { - if( (hue <= (_7G50[x] + 0.035)) && (hue > (_7G50[x] + _5G50[x]) / 2.0) ) { - correction = _7G50[y] - _7G50[x] ; - lbe = _7G50[y]; - correctL = true; - } else if( (hue <= (_7G50[x] + _5G50[x]) / 2.0) && (hue > (_5G50[x] + _25G50[x]) / 2.0)) { - correction = _5G50[y] - _5G50[x] ; - lbe = _5G50[y]; - correctL = true; - } else if (( hue <= (_25G50[x] + _5G50[x]) / 2.0) && (hue > (_25G50[x] + _1G50[x]) / 2.0)) { - correction = _25G50[y] - _25G50[x] ; - lbe = _25G50[y]; - correctL = true; - } else if (( hue <= (_1G50[x] + _25G50[x]) / 2.0) && (hue > (_1G50[x] + _10GY50[x]) / 2.0)) { - correction = _1G50[y] - _1G50[x] ; - lbe = _1G50[y]; - correctL = true; - } else if (( hue <= (_1G50[x] + _10GY50[x]) / 2.0) && (hue > (_10GY50[x] + _75GY50[x]) / 2.0)) { - correction = _10GY50[y] - _10GY50[x] ; - lbe = _10GY50[y]; - correctL = true; - } else if (( hue <= (_10GY50[x] + _75GY50[x]) / 2.0) && (hue > (_75GY50[x] + _5GY50[x]) / 2.0)) { - correction = _75GY50[y] - _75GY50[x] ; - lbe = _75GY50[y]; - correctL = true; - } else if (( hue <= (_5GY50[x] + _75GY50[x]) / 2.0) && (hue > (_5GY50[x] - 0.035))) { - correction = _5GY50[y] - _5GY50[x] ; - lbe = _5GY50[y]; - correctL = true; - } - } else if (lum < 65.0) { - if( (hue <= (_7G60[x] + 0.035)) && (hue > (_7G60[x] + _5G60[x]) / 2.0) ) { - correction = _7G60[y] - _7G60[x] ; - lbe = _7G60[y]; - correctL = true; - } else if( (hue <= (_7G60[x] + _5G60[x]) / 2.0) && (hue > (_5G60[x] + _25G60[x]) / 2.0)) { - correction = _5G60[y] - _5G60[x] ; - lbe = _5G60[y]; - correctL = true; - } else if (( hue <= (_25G60[x] + _5G60[x]) / 2.0) && (hue > (_25G60[x] + _1G60[x]) / 2.0)) { - correction = _25G60[y] - _25G60[x] ; - lbe = _25G60[y]; - correctL = true; - } else if (( hue <= (_1G60[x] + _25G60[x]) / 2.0) && (hue > (_1G60[x] + _10GY60[x]) / 2.0)) { - correction = _1G60[y] - _1G60[x] ; - lbe = _1G60[y]; - correctL = true; - } else if (( hue <= (_1G60[x] + _10GY60[x]) / 2.0) && (hue > (_10GY60[x] + _75GY60[x]) / 2.0)) { - correction = _10GY60[y] - _10GY60[x] ; - lbe = _10GY60[y]; - correctL = true; - } else if (( hue <= (_10GY60[x] + _75GY60[x]) / 2.0) && (hue > (_75GY60[x] + _5GY60[x]) / 2.0)) { - correction = _75GY60[y] - _75GY60[x] ; - lbe = _75GY60[y] ; - correctL = true; - } else if (( hue <= (_5GY60[x] + _75GY60[x]) / 2.0) && (hue > (_5GY60[x] - 0.035))) { - correction = _5GY60[y] - _5GY60[x] ; - lbe = _5GY60[y]; - correctL = true; - } - } else if (lum < 75.0) { - if( (hue <= (_7G70[x] + 0.035)) && (hue > (_7G70[x] + _5G70[x]) / 2.0) ) { - correction = _7G70[y] - _7G70[x] ; - lbe = _7G70[y]; - correctL = true; - } else if( (hue <= (_7G70[x] + _5G70[x]) / 2.0) && (hue > (_5G70[x] + _25G70[x]) / 2.0)) { - correction = _5G70[y] - _5G70[x] ; - lbe = _5G70[y]; - correctL = true; - } else if (( hue <= (_25G70[x] + _5G70[x]) / 2.0) && (hue > (_25G70[x] + _1G70[x]) / 2.0)) { - correction = _25G70[y] - _25G70[x] ; - lbe = _25G70[y]; - correctL = true; - } else if (( hue <= (_1G70[x] + _25G70[x]) / 2.0) && (hue > (_1G70[x] + _10GY70[x]) / 2.0)) { - correction = _1G70[y] - _1G70[x] ; - lbe = _1G70[y] ; - correctL = true; - } else if (( hue <= (_1G70[x] + _10GY70[x]) / 2.0) && (hue > (_10GY70[x] + _75GY70[x]) / 2.0)) { - correction = _10GY70[y] - _10GY70[x] ; - lbe = _10GY70[y]; - correctL = true; - } else if (( hue <= (_10GY70[x] + _75GY70[x]) / 2.0) && (hue > (_75GY70[x] + _5GY70[x]) / 2.0)) { - correction = _75GY70[y] - _75GY70[x] ; - lbe = _75GY70[y]; - correctL = true; - } else if (( hue <= (_5GY70[x] + _75GY70[x]) / 2.0) && (hue > (_5GY70[x] - 0.035))) { - correction = _5GY70[y] - _5GY70[x] ; - lbe = _5GY70[y]; - correctL = true; - } - } else if (lum < 85.0) { - if( (hue <= (_7G80[x] + 0.035)) && (hue > (_7G80[x] + _5G80[x]) / 2.0) ) { - correction = _7G80[y] - _7G80[x] ; - lbe = _7G80[y]; - correctL = true; - } else if( (hue <= (_7G80[x] + _5G80[x]) / 2.0) && (hue > (_5G80[x] + _25G80[x]) / 2.0)) { - correction = _5G80[y] - _5G80[x] ; - lbe = _5G80[y]; - correctL = true; - } else if (( hue <= (_25G80[x] + _5G80[x]) / 2.0) && (hue > (_25G80[x] + _1G80[x]) / 2.0)) { - correction = _25G80[y] - _25G80[x] ; - lbe = _25G80[y]; - correctL = true; - } else if (( hue <= (_1G80[x] + _25G80[x]) / 2.0) && (hue > (_1G80[x] + _10GY80[x]) / 2.0)) { - correction = _1G80[y] - _1G80[x] ; - lbe = _1G80[y]; - correctL = true; - } else if (( hue <= (_1G80[x] + _10GY80[x]) / 2.0) && (hue > (_10GY80[x] + _75GY80[x]) / 2.0)) { - correction = _10GY80[y] - _10GY80[x] ; - lbe = _10GY80[y]; - correctL = true; - } else if (( hue <= (_10GY80[x] + _75GY80[x]) / 2.0) && (hue > (_75GY80[x] + _5GY80[x]) / 2.0)) { - correction = _75GY80[y] - _75GY80[x] ; - lbe = _75GY80[y]; - correctL = true; - } else if (( hue <= (_5GY80[x] + _75GY80[x]) / 2.0) && (hue > (_5GY80[x] - 0.035))) { - correction = _5GY80[y] - _5GY80[x] ; - lbe = _5GY80[y]; - correctL = true; - } - } - } - } - //end green yellow - - //Red purple correction : only for L < 30 - else if(zone == 4) { - if (lum > 5.0) { - if (lum < 15.0) { - if( (hue <= (_5R10[x] + 0.035)) && (hue > (_5R10[x] - 0.043)) && x < 45) { - if(y > 44) { - y = 44; - } - - correction = _5R10[y] - _5R10[x] ; - lbe = _5R10[y]; - correctL = true; - } else if( (hue <= (_25R10[x] + 0.043)) && (hue > (_25R10[x] + _10RP10[x]) / 2.0) && x < 45 ) { - if(y > 44) { - y = 44; - } - - correction = _25R10[y] - _25R10[x] ; - lbe = _25R10[y]; - correctL = true; - } else if ( (hue <= (_25R10[x] + _10RP10[x]) / 2.0) && (hue > (_10RP10[x] - 0.035) ) && x < 45) { - if(y > 44) { - y = 44; - } - - correction = _10RP10[y] - _10RP10[x] ; - lbe = _10RP10[y]; - correctL = true; - } - } else if (lum < 25.0) { - if( (hue <= (_5R20[x] + 0.035)) && (hue > (_5R20[x] + _25R20[x]) / 2.0) && x < 70 ) { - if(y > 70) { - y = 70; - } - - correction = _5R20[y] - _5R20[x] ; - lbe = _5R20[y]; - correctL = true; - } else if( (hue <= (_5R20[x] + _25R20[x]) / 2.0) && (hue > (_10RP20[x] + _25R20[x]) / 2.0) && x < 70) { - if(y > 70) { - y = 70; - } - - correction = _25R20[y] - _25R20[x] ; - lbe = _25R20[y]; - correctL = true; - } else if (( hue <= (_10RP20[x] + _25R20[x]) / 2.0) && (hue > (_10RP20[x] - 0.035)) && x < 70) { - if(y > 70) { - y = 70; - } - - correction = _10RP20[y] - _10RP20[x] ; - lbe = _10RP20[y]; - correctL = true; - } - } else if (lum < 35.0) { - if( (hue <= (_5R30[x] + 0.035)) && (hue > (_5R30[x] + _25R30[x]) / 2.0) && x < 85 ) { - if(y > 85) { - y = 85; - } - - correction = _5R30[y] - _5R30[x] ; - lbe = _5R30[y]; - correctL = true; - } else if( (hue <= (_5R30[x] + _25R30[x]) / 2.0) && (hue > (_10RP30[x] + _25R30[x]) / 2.0) && x < 85) { - if(y > 85) { - y = 85; - } - - correction = _25R30[y] - _25R30[x] ; - lbe = _25R30[y]; - correctL = true; - } else if (( hue <= (_10RP30[x] + _25R30[x]) / 2.0) && (hue > (_10RP30[x] - 0.035)) && x < 85) { - if(y > 85) { - y = 85; - } - - correction = _10RP30[y] - _10RP30[x] ; - lbe = _10RP30[y]; - correctL = true; - } - } - } - } - - //end red purple -} - - /* * SkinSat * Copyright (c)2011 Jacques Desmis diff --git a/rtengine/color.h b/rtengine/color.h index 998e47ee7..b48b1e907 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -20,16 +20,16 @@ #pragma once #include -#include #include "rt_math.h" #include "LUT.h" -#include "iccmatrices.h" #include "lcms2.h" #include "sleef.h" -#define SAT(a,b,c) ((float)max(a,b,c)-(float)min(a,b,c))/(float)max(a,b,c) - +namespace Glib +{ +class ustring; +} namespace rtengine { diff --git a/rtengine/curves.cc b/rtengine/curves.cc index b2105a091..ac1f9fccc 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -33,6 +33,7 @@ #include "opthelper.h" #include "ciecam02.h" #include "color.h" +#include "iccmatrices.h" #include "iccstore.h" using namespace std; diff --git a/rtengine/munselllch.cc b/rtengine/munselllch.cc new file mode 100644 index 000000000..b1ec305f6 --- /dev/null +++ b/rtengine/munselllch.cc @@ -0,0 +1,1232 @@ +/* +* This file is part of RawTherapee. +* +* Copyright (c) 2004-2010 Gabor Horvath +* +* RawTherapee is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* RawTherapee is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with RawTherapee. If not, see . +*/ + +#include "color.h" + +using namespace std; + +namespace rtengine +{ + +/* + * MunsellLch correction + * Copyright (c) 2012 Jacques Desmis + * Copyright (c) 2020 Ingo Weyrich + * + * Find the right LUT and calculate the correction + */ +void Color::MunsellLch (float lum, float hue, float chrom, float memChprov, float &correction, int zone, float &lbe, bool &correctL) +{ + + const int x = memChprov; + int y = chrom; + + //begin PB correction + sky + if (zone == 1) { + if (lum > 5.f) { + if (lum < 15.f) { + if (x <= 45 && (hue >= (_15PB10[x] - 0.035f)) && (hue < (_15PB10[x] + 0.052f))) { + if (y > 49) { + y = 49; + } + correction = _15PB10[y] - _15PB10[x] ; + lbe = _15PB10[y]; + correctL = true; + } else if (x <= 85 && (hue >= ( _3PB10[x] - 0.052f)) && (hue < (_45PB10[x] + _3PB10[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _3PB10[y] - _3PB10[x]; + lbe = _3PB10[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_45PB10[x] + _3PB10[x]) * 0.5f) && (hue < (_45PB10[x] + 0.052f))) { + if (y > 89) { + y = 89; + } + correction = _45PB10[y] - _45PB10[x] ; + lbe = _45PB10[y]; + correctL = true; + } else if ((hue >= (_6PB10[x] - 0.052f) && (hue < (_6PB10[x] + _75PB10[x]) * 0.5f))) { + correction = _6PB10[y] - _6PB10[x] ; + lbe = _6PB10[y]; + correctL = true; + } else if ((hue >= (_6PB10[x] + _75PB10[x]) * 0.5f) && (hue < (_9PB10[x] + _75PB10[x]) * 0.5f)) { + correction = _75PB10[y] - _75PB10[x] ; + lbe = _75PB10[y]; + correctL = true; + } else if ((hue >= (_9PB10[x] + _75PB10[x]) * 0.5f) && (hue < (_9PB10[x] + _10PB10[x]) * 0.5f)) { + correction = _9PB10[y] - _9PB10[x] ; + lbe = _9PB10[y]; + correctL = true; + } else if ((hue >= (_10PB10[x] + _9PB10[x]) * 0.5f) && (hue < (_1P10[x] + _10PB10[x]) * 0.5f)) { + correction = _10PB10[y] - _10PB10[x] ; + lbe = _10PB10[y]; + correctL = true; + } else if ((hue >= (_10PB10[x] + _1P10[x]) * 0.5f) && (hue < (_1P10[x] + _4P10[x]) * 0.5f)) { + correction = _1P10[y] - _1P10[x]; + lbe = _1P10[y]; + correctL = true; + } else if ((hue >= (_1P10[x] + _4P10[x]) * 0.5f) && (hue < (0.035f + _4P10[x]) * 0.5f)) { + correction = _4P10[y] - _4P10[x] ; + lbe = _4P10[y]; + correctL = true; + } + } else if (lum < 25.f) { + if (x <= 85 && (hue >= (_15PB20[x] - 0.035f)) && (hue < (_15PB20[x] + _3PB20[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _15PB20[y] - _15PB20[x] ; + lbe = _15PB20[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB20[x] + _3PB20[x]) * 0.5f) && (hue < (_45PB20[x] + _3PB20[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _3PB20[y] - _3PB20[x] ; + lbe = _3PB20[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_45PB20[x] + _3PB20[x]) * 0.5f) && (hue < ( _45PB20[x] + 0.052f))) { + if (y > 89) { + y = 89; + } + correction = _45PB20[y] - _45PB20[x] ; + lbe = _45PB20[y]; + correctL = true; + } else if ((hue >= (_45PB20[x] + 0.052f)) && (hue < (_6PB20[x] + _75PB20[x]) * 0.5f)) { + correction = _6PB20[y] - _6PB20[x]; + lbe = _6PB20[y]; + correctL = true; + } else if ((hue >= (_6PB20[x] + _75PB20[x]) * 0.5f) && (hue < (_9PB20[x] + _75PB20[x]) * 0.5f)) { + correction = _75PB20[y] - _75PB20[x] ; + lbe = _75PB20[y]; + correctL = true; + } else if ((hue >= (_9PB20[x] + _75PB20[x]) * 0.5f) && (hue < (_9PB20[x] + _10PB20[x]) * 0.5f)) { + correction = _9PB20[y] - _9PB20[x] ; + lbe = _9PB20[y]; + correctL = true; + } else if ((hue >= (_10PB20[x] + _9PB20[x]) * 0.5f) && (hue < (_1P20[x] + _10PB20[x]) * 0.5f)) { + correction = _10PB20[y] - _10PB20[x] ; + lbe = _10PB20[y]; + correctL = true; + } else if ((hue >= (_10PB20[x] + _1P20[x]) * 0.5f) && (hue < (_1P20[x] + _4P20[x]) * 0.5f)) { + correction = _1P20[y] - _1P20[x] ; + lbe = _1P20[y]; + correctL = true; + } else if ((hue >= (_1P20[x] + _4P20[x]) * 0.5f) && (hue < (0.035f + _4P20[x]) * 0.5f)) { + correction = _4P20[y] - _4P20[x] ; + lbe = _4P20[y]; + correctL = true; + } + } else if (lum < 35.f) { + if (x <= 85 && (hue >= (_15PB30[x] - 0.035f)) && (hue < (_15PB30[x] + _3PB30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _15PB30[y] - _15PB30[x] ; + lbe = _15PB30[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB30[x] + _3PB30[x]) * 0.5f) && (hue < (_45PB30[x] + _3PB30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _3PB30[y] - _3PB30[x] ; + lbe = _3PB30[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_45PB30[x] + _3PB30[x]) * 0.5f) && (hue < (_45PB30[x] + 0.052f))) { + if (y > 89) { + y = 89; + } + correction = _45PB30[y] - _45PB30[x] ; + lbe = _45PB30[y]; + correctL = true; + } else if ((hue >= ( _45PB30[x] + 0.052f)) && (hue < (_6PB30[x] + _75PB30[x]) * 0.5f)) { + correction = _6PB30[y] - _6PB30[x] ; + lbe = _6PB30[y]; + correctL = true; + } else if ((hue >= (_6PB30[x] + _75PB30[x]) * 0.5f) && (hue < (_9PB30[x] + _75PB30[x]) * 0.5f)) { + correction = _75PB30[y] - _75PB30[x] ; + lbe = _75PB30[y] ; + correctL = true; + } else if ((hue >= (_9PB30[x] + _75PB30[x]) * 0.5f) && (hue < (_9PB30[x] + _10PB30[x]) * 0.5f)) { + correction = _9PB30[y] - _9PB30[x] ; + lbe = _9PB30[y]; + correctL = true; + } else if ((hue >= (_10PB30[x] + _9PB30[x]) * 0.5f) && (hue < (_1P30[x] + _10PB30[x]) * 0.5f)) { + correction = _10PB30[y] - _10PB30[x] ; + lbe = _10PB30[y]; + correctL = true; + } else if ((hue >= (_10PB30[x] + _1P30[x]) * 0.5f) && (hue < (_1P30[x] + _4P30[x]) * 0.5f)) { + correction = _1P30[y] - _1P30[x] ; + lbe = _1P30[y]; + correctL = true; + } else if ((hue >= (_1P30[x] + _4P30[x]) * 0.5f) && (hue < (0.035f + _4P30[x]) * 0.5f)) { + correction = _4P30[y] - _4P30[x] ; + lbe = _4P30[y]; + correctL = true; + } + } else if (lum < 45.f) { + if (x < 75 && (hue <= (_05PB40[x] + _15PB40[x]) * 0.5f) && (hue > (_05PB40[x] + _10B40[x]) * 0.5f)) { + if (y > 75) { + y = 75; + } + correction = _05PB40[y] - _05PB40[x] ; + lbe = _05PB40[y]; + correctL = true; + } else if (x < 70 && (hue <= (_05PB40[x] + _10B40[x]) * 0.5f) && (hue > (_10B40[x] + _9B40[x]) * 0.5f)) { + if (y > 70) { + y = 70; + } + correction = _10B40[y] - _10B40[x] ; + lbe = _10B40[y]; + correctL = true; + } else if (x < 70 && (hue <= (_10B40[x] + _9B40[x]) * 0.5f) && (hue > (_9B40[x] + _7B40[x]) * 0.5f)) { + if (y > 70) { + y = 70; + } + correction = _9B40[y] - _9B40[x] ; + lbe = _9B40[y]; + correctL = true; + } else if (x < 70 && (hue <= (_9B40[x] + _7B40[x]) * 0.5f) && (hue > (_5B40[x] + _7B40[x]) * 0.5f)) { + if (y > 70) { + y = 70; + } + correction = _7B40[y] - _7B40[x] ; + lbe = _7B40[y]; + correctL = true; + } else if (x < 70 && (hue <= (_5B40[x] + _7B40[x]) * 0.5f) && (hue > (_5B40[x] - 0.035f))) { + if (y > 70) { + y = 70; // + } + correction = _5B40[y] - _5B40[x] ; + lbe = _5B40[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB40[x] - 0.035f)) && (hue < (_15PB40[x] + _3PB40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _15PB40[y] - _15PB40[x] ; + lbe = _15PB40[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB40[x] + _3PB40[x]) * 0.5f) && (hue < (_45PB40[x] + _3PB40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _3PB40[y] - _3PB40[x] ; + lbe = _3PB40[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_45PB40[x] + _3PB40[x]) * 0.5f) && (hue < (_45PB40[x] + 0.052f))) { + if (y > 89) { + y = 89; + } + correction = _45PB40[y] - _45PB40[x] ; + lbe = _45PB40[y] ; + correctL = true; + } else if ((hue >= (_45PB40[x] + 0.052f)) && (hue < (_6PB40[x] + _75PB40[x]) * 0.5f)) { + correction = _6PB40[y] - _6PB40[x] ; + lbe = _6PB40[y]; + correctL = true; + } else if ((hue >= (_6PB40[x] + _75PB40[x]) * 0.5f) && (hue < (_9PB40[x] + _75PB40[x]) * 0.5f)) { + correction = _75PB40[y] - _75PB40[x] ; + lbe = _75PB40[y]; + correctL = true; + } else if ((hue >= (_9PB40[x] + _75PB40[x]) * 0.5f) && (hue < (_9PB40[x] + _10PB40[x]) * 0.5f)) { + correction = _9PB40[y] - _9PB40[x] ; + lbe = _9PB40[y]; + correctL = true; + } else if ((hue >= (_10PB40[x] + _9PB40[x]) * 0.5f) && (hue < (_1P40[x] + _10PB40[x]) * 0.5f)) { + correction = _10PB40[y] - _10PB40[x] ; + lbe = _10PB40[y]; + correctL = true; + } else if ((hue >= (_10PB40[x] + _1P40[x]) * 0.5f) && (hue < (_1P40[x] + _4P40[x]) * 0.5f)) { + correction = _1P40[y] - _1P40[x] ; + lbe = _1P40[y]; + correctL = true; + } else if ((hue >= (_1P40[x] + _4P40[x]) * 0.5f) && (hue < (0.035f + _4P40[x]) * 0.5f)) { + correction = _4P40[y] - _4P40[x] ; + lbe = _4P40[y]; + correctL = true; + } + } else if (lum < 55.f) { + if (x < 79 && (hue <= (_05PB50[x] + _15PB50[x]) * 0.5f) && (hue > (_05PB50[x] + _10B50[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _05PB50[y] - _05PB50[x] ; + lbe = _05PB50[y]; + correctL = true; + } else if (x < 79 && (hue <= (_05PB50[x] + _10B50[x]) * 0.5f) && (hue > (_10B50[x] + _9B50[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _10B50[y] - _10B50[x] ; + lbe = _10B50[y]; + correctL = true; + } else if (x < 79 && (hue <= (_10B50[x] + _9B50[x]) * 0.5f) && (hue > (_9B50[x] + _7B50[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _9B50[y] - _9B50[x] ; + lbe = _9B50[y]; + correctL = true; + } else if (x < 79 && (hue <= (_9B50[x] + _7B50[x]) * 0.5f) && (hue > (_5B50[x] + _7B50[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _7B50[y] - _7B50[x] ; + lbe = _7B50[y]; + correctL = true; + } else if (x < 79 && (hue <= (_5B50[x] + _7B50[x]) * 0.5f) && (hue > (_5B50[x] - 0.035f))) { + if (y > 79) { + y = 79; // + } + correction = _5B50[y] - _5B50[x] ; + lbe = _5B50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB50[x] - 0.035f)) && (hue < (_15PB50[x] + _3PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _15PB50[y] - _15PB50[x] ; + lbe = _15PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB50[x] + _3PB50[x]) * 0.5f) && (hue < (_45PB50[x] + _3PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _3PB50[y] - _3PB50[x] ; + lbe = _3PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_45PB50[x] + _3PB50[x]) * 0.5f) && (hue < (_6PB50[x] + _45PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _45PB50[y] - _45PB50[x] ; + lbe = _45PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_6PB50[x] + _45PB50[x]) * 0.5f) && (hue < (_6PB50[x] + _75PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _6PB50[y] - _6PB50[x] ; + lbe = _6PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_6PB50[x] + _75PB50[x]) * 0.5f) && (hue < (_9PB50[x] + _75PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _75PB50[y] - _75PB50[x] ; + lbe = _75PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_9PB50[x] + _75PB50[x]) * 0.5f) && (hue < (_9PB50[x] + _10PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9PB50[y] - _9PB50[x] ; + lbe = _9PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_10PB50[x] + _9PB50[x]) * 0.5f) && (hue < (_1P50[x] + _10PB50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10PB50[y] - _10PB50[x] ; + lbe = _10PB50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_10PB50[x] + _1P50[x]) * 0.5f) && (hue < (_1P50[x] + _4P50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _1P50[y] - _1P50[x] ; + lbe = _1P50[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_1P50[x] + _4P50[x]) * 0.5f) && (hue < (0.035f + _4P50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _4P50[y] - _4P50[x] ; + lbe = _4P50[y]; + correctL = true; + } + } else if (lum < 65.f) { + if (x < 79 && (hue <= (_05PB60[x] + _15PB60[x]) * 0.5f) && (hue > (_05PB60[x] + _10B60[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _05PB60[y] - _05PB60[x] ; + lbe = _05PB60[y]; + correctL = true; + } else if (x < 79 && (hue <= (_05PB60[x] + _10B60[x]) * 0.5f) && (hue > (_10B60[x] + _9B60[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _10B60[y] - _10B60[x] ; + lbe = _10B60[y]; + correctL = true; + } else if (x < 79 && (hue <= (_10B60[x] + _9B60[x]) * 0.5f) && (hue > (_9B60[x] + _7B60[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _9B60[y] - _9B60[x] ; + lbe = _9B60[y]; + correctL = true; + } else if (x < 79 && (hue <= (_9B60[x] + _7B60[x]) * 0.5f) && (hue > (_5B60[x] + _7B60[x]) * 0.5f)) { + if (y > 79) { + y = 79; + } + correction = _7B60[y] - _7B60[x] ; + lbe = _7B60[y]; + correctL = true; + } else if (x < 79 && (hue <= (_5B60[x] + _7B60[x]) * 0.5f) && (hue > (_5B60[x] - 0.035f))) { + if (y > 79) { + y = 79; // + } + correction = _5B60[y] - _5B60[x] ; + lbe = _5B60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB60[x] - 0.035f)) && (hue < (_15PB60[x] + _3PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _15PB60[y] - _15PB60[x] ; + lbe = _15PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_15PB60[x] + _3PB60[x]) * 0.5f) && (hue < (_45PB60[x] + _3PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _3PB60[y] - _3PB60[x] ; + lbe = _3PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_45PB60[x] + _3PB60[x]) * 0.5f) && (hue < (_6PB60[x] + _45PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _45PB60[y] - _45PB60[x] ; + lbe = _45PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_6PB60[x] + _45PB60[x]) * 0.5f) && (hue < (_6PB60[x] + _75PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _6PB60[y] - _6PB60[x] ; + lbe = _6PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_6PB60[x] + _75PB60[x]) * 0.5f) && (hue < (_9PB60[x] + _75PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _75PB60[y] - _75PB60[x] ; + lbe = _75PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_9PB60[x] + _75PB60[x]) * 0.5f) && (hue < (_9PB60[x] + _10PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9PB60[y] - _9PB60[x] ; + lbe = _9PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_10PB60[x] + _9PB60[x]) * 0.5f) && (hue < (_1P60[x] + _10PB60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10PB60[y] - _10PB60[x] ; + lbe = _10PB60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_10PB60[x] + _1P60[x]) * 0.5f) && (hue < (_1P60[x] + _4P60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _1P60[y] - _1P60[x] ; + lbe = _1P60[y]; + correctL = true; + } else if (x <= 85 && (hue >= (_1P60[x] + _4P60[x]) * 0.5f) && (hue < (0.035f + _4P60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _4P60[y] - _4P60[x] ; + lbe = _4P60[y]; + correctL = true; + } + } else if (lum < 75.f) { + if (x < 50 && (hue <= (_05PB70[x] + _15PB70[x]) * 0.5f) && (hue > (_05PB70[x] + _10B70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _05PB70[y] - _05PB70[x] ; + lbe = _05PB70[y]; + correctL = true; + } else if (x < 50 && (hue <= (_05PB70[x] + _10B70[x]) * 0.5f) && (hue > (_10B70[x] + _9B70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _10B70[y] - _10B70[x] ; + lbe = _10B70[y]; + correctL = true; + } else if (x < 50 && (hue <= (_10B70[x] + _9B70[x]) * 0.5f) && (hue > (_9B70[x] + _7B70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _9B70[y] - _9B70[x] ; + lbe = _9B70[y]; + correctL = true; + } else if (x < 50 && (hue <= (_9B70[x] + _7B70[x]) * 0.5f) && (hue > (_5B70[x] + _7B70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _7B70[y] - _7B70[x] ; + lbe = _7B70[y]; + correctL = true; + } else if (x < 50 && (hue <= (_5B70[x] + _7B70[x]) * 0.5f) && (hue > (_5B70[x] - 0.035f))) { + if (y > 49) { + y = 49; // + } + correction = _5B70[y] - _5B70[x] ; + lbe = _5B70[y]; + correctL = true; + } else if (x < 50 && (hue >= (_15PB70[x] - 0.035f)) && (hue < (_15PB70[x] + _3PB70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _15PB70[y] - _15PB70[x] ; + lbe = _15PB70[y]; + correctL = true; + } else if (x < 50 && (hue >= (_45PB70[x] + _3PB70[x]) * 0.5f) && (hue < (_6PB70[x] + _45PB70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _45PB70[y] - _45PB70[x] ; + lbe = _45PB70[y]; + correctL = true; + } else if (x < 50 && (hue >= (_6PB70[x] + _45PB70[x]) * 0.5f) && (hue < (_6PB70[x] + _75PB70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _6PB70[y] - _6PB70[x] ; + lbe = _6PB70[y]; + correctL = true; + } else if (x < 50 && (hue >= (_6PB70[x] + _75PB70[x]) * 0.5f) && (hue < (_9PB70[x] + _75PB70[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _75PB70[y] - _75PB70[x] ; + lbe = _75PB70[y]; + correctL = true; + } else if (x < 50 && (hue >= (_9PB70[x] + _75PB70[x]) * 0.5f) && (hue < (_9PB70[x] + 0.035f))) { + if (y > 49) { + y = 49; + } + correction = _9PB70[y] - _9PB70[x] ; + lbe = _9PB70[y]; + correctL = true; + } + } else if (lum < 85.f) { + if (x < 40 && (hue <= (_05PB80[x] + _15PB80[x]) * 0.5f) && (hue > (_05PB80[x] + _10B80[x]) * 0.5f)) { + if (y > 39) { + y = 39; + } + correction = _05PB80[y] - _05PB80[x] ; + lbe = _05PB80[y] ; + correctL = true; + } else if (x < 40 && (hue <= (_05PB80[x] + _10B80[x]) * 0.5f) && (hue > (_10B80[x] + _9B80[x]) * 0.5f)) { + if (y > 39) { + y = 39; + } + correction = _10B80[y] - _10B80[x] ; + lbe = _10B80[y]; + correctL = true; + } else if (x < 40 && (hue <= (_10B80[x] + _9B80[x]) * 0.5f) && (hue > (_9B80[x] + _7B80[x]) * 0.5f)) { + if (y > 39) { + y = 39; + } + correction = _9B80[y] - _9B80[x] ; + lbe = _9B80[y]; + correctL = true; + } else if (x < 50 &&(hue <= (_9B80[x] + _7B80[x]) * 0.5f) && (hue > (_5B80[x] + _7B80[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _7B80[y] - _7B80[x] ; + lbe = _7B80[y]; + correctL = true; + } else if (x < 50 && (hue <= (_5B80[x] + _7B80[x]) * 0.5f) && (hue > (_5B80[x] - 0.035f))) { + if (y > 49) { + y = 49; // + } + correction = _5B80[y] - _5B80[x] ; + lbe = _5B80[y]; + correctL = true; + } else if (x < 50 && (hue >= (_15PB80[x] - 0.035f)) && (hue < (_15PB80[x] + _3PB80[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _15PB80[y] - _15PB80[x] ; + lbe = _15PB80[y]; + correctL = true; + } else if (x < 50 && (hue >= (_45PB80[x] + _3PB80[x]) * 0.5f) && (hue < (_6PB80[x] + _45PB80[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _45PB80[y] - _45PB80[x] ; + lbe = _45PB80[y]; + correctL = true; + } else if (x < 50 && (hue >= (_6PB80[x] + _45PB80[x]) * 0.5f) && (hue < (_6PB80[x] + _75PB80[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _6PB80[y] - _6PB80[x] ; + lbe = _6PB80[y]; + correctL = true; + } else if (x < 50 && (hue >= (_6PB80[x] + _75PB80[x]) * 0.5f) && (hue < (_9PB80[x] + _75PB80[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _75PB80[y] - _75PB80[x] ; + lbe = _75PB80[y]; + correctL = true; + } else if (x < 50 && (hue >= (_9PB80[x] + _75PB80[x]) * 0.5f) && (hue < (_9PB80[x] + 0.035f))) { + if (y > 49) { + y = 49; + } + correction = _9PB80[y] - _9PB80[x] ; + lbe = _9PB80[y]; + correctL = true; + } + } + } + } else if (zone == 2) { //red yellow correction + if (lum > 15.f) { + if (lum < 25.f) { + if (x <= 45 && (hue <= (_10YR20[x] + 0.035f)) && (hue > (_10YR20[x] + _85YR20[x]) * 0.5f)) { + if (y > 49) { + y = 49; + } + correction = _10YR20[y] - _10YR20[x] ; + lbe = _10YR20[y]; + correctL = true; + } else if (x <= 45 && (hue <= (_85YR20[x] + _10YR20[x]) * 0.5f) && (hue > (_85YR20[x] + 0.035f))) { + if (y > 49) { + y = 49; + } + correction = _85YR20[y] - _85YR20[x] ; + lbe = _85YR20[y]; + correctL = true; + } + } else if (lum < 35.f) { + if (x < 85 && (hue <= (_10YR30[x] + 0.035f)) && (hue > (_10YR30[x] + _85YR30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10YR30[y] - _10YR30[x] ; + lbe = _10YR30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10YR30[x] + _85YR30[x]) * 0.5f) && (hue > (_85YR30[x] + _7YR30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _85YR30[y] - _85YR30[x] ; + lbe = _85YR30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_85YR30[x] + _7YR30[x]) * 0.5f) && (hue > (_7YR30[x] + _55YR30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _7YR30[y] - _7YR30[x] ; + lbe = _7YR30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_7YR30[x] + _55YR30[x]) * 0.5f) && (hue > (_55YR30[x] + _4YR30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _55YR30[y] - _55YR30[x] ; + lbe = _55YR30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_55YR30[x] + _4YR30[x]) * 0.5f) && (hue > (_4YR30[x] + _25YR30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _4YR30[y] - _4YR30[x] ; + lbe = _4YR30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_4YR30[x] + _25YR30[x]) * 0.5f) && (hue > (_25YR30[x] + _10R30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _25YR30[y] - _25YR30[x] ; + lbe = _25YR30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_25YR30[x] + _10R30[x]) * 0.5f) && (hue > (_10R30[x] + _9R30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10R30[y] - _10R30[x] ; + lbe = _10R30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10R30[x] + _9R30[x]) * 0.5f) && (hue > (_9R30[x] + _7R30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9R30[y] - _9R30[x] ; + lbe = _9R30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_9R30[x] + _7R30[x]) * 0.5f) && (hue > (_7R30[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + + correction = _7R30[y] - _7R30[x] ; + lbe = _7R30[y] ; + correctL = true; + } + } else if (lum < 45.f) { + if (x < 85 && (hue <= (_10YR40[x] + 0.035f)) && (hue > (_10YR40[x] + _85YR40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10YR40[y] - _10YR40[x] ; + lbe = _10YR40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10YR40[x] + _85YR40[x]) * 0.5f) && (hue > (_85YR40[x] + _7YR40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _85YR40[y] - _85YR40[x] ; + lbe = _85YR40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_85YR40[x] + _7YR40[x]) * 0.5f) && (hue > (_7YR40[x] + _55YR40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _7YR40[y] - _7YR40[x] ; + lbe = _7YR40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_7YR40[x] + _55YR40[x]) * 0.5f) && (hue > (_55YR40[x] + _4YR40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _55YR40[y] - _55YR40[x] ; + lbe = _55YR40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_55YR40[x] + _4YR40[x]) * 0.5f) && (hue > (_4YR40[x] + _25YR40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _4YR40[y] - _4YR40[x] ; + lbe = _4YR40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_4YR40[x] + _25YR40[x]) * 0.5f) && (hue > (_25YR40[x] + _10R40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _25YR40[y] - _25YR40[x] ; + lbe = _25YR40[y] ; + correctL = true; + } else if (x < 85 && (hue <= (_25YR40[x] + _10R40[x]) * 0.5f) && (hue > (_10R40[x] + _9R40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10R40[y] - _10R40[x] ; + lbe = _10R40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10R40[x] + _9R40[x]) * 0.5f) && (hue > (_9R40[x] + _7R40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9R40[y] - _9R40[x] ; + lbe = _9R40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_9R40[x] + _7R40[x]) * 0.5f) && (hue > (_7R40[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + correction = _7R40[y] - _7R40[x] ; + lbe = _7R40[y]; + correctL = true; + } + } else if (lum < 55.f) { + if (x < 85 && (hue <= (_10YR50[x] + 0.035f)) && (hue > (_10YR50[x] + _85YR50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10YR50[y] - _10YR50[x] ; + lbe = _10YR50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10YR50[x] + _85YR50[x]) * 0.5f) && (hue > (_85YR50[x] + _7YR50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _85YR50[y] - _85YR50[x] ; + lbe = _85YR50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_85YR50[x] + _7YR50[x]) * 0.5f) && (hue > (_7YR50[x] + _55YR50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _7YR50[y] - _7YR50[x] ; + lbe = _7YR50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_7YR50[x] + _55YR50[x]) * 0.5f) && (hue > (_55YR50[x] + _4YR50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _55YR50[y] - _55YR50[x] ; + lbe = _55YR50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_55YR50[x] + _4YR50[x]) * 0.5f) && (hue > (_4YR50[x] + _25YR50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _4YR50[y] - _4YR50[x] ; + lbe = _4YR50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_4YR50[x] + _25YR50[x]) * 0.5f) && (hue > (_25YR50[x] + _10R50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _25YR50[y] - _25YR50[x] ; + lbe = _25YR50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_25YR50[x] + _10R50[x]) * 0.5f) && (hue > (_10R50[x] + _9R50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10R50[y] - _10R50[x] ; + lbe = _10R50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10R50[x] + _9R50[x]) * 0.5f) && (hue > (_9R50[x] + _7R50[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9R50[y] - _9R50[x] ; + lbe = _9R50[y]; + correctL = true; + } else if (x < 85 && (hue <= (_9R50[x] + _7R50[x]) * 0.5f) && (hue > (_7R50[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + correction = _7R50[y] - _7R50[x] ; + lbe = _7R50[y]; + correctL = true; + } + } else if (lum < 65.f) { + if ((hue <= (_10YR60[x] + 0.035f)) && (hue > (_10YR60[x] + _85YR60[x]) * 0.5f)) { + correction = _10YR60[y] - _10YR60[x] ; + lbe = _10YR60[y]; + correctL = true; + } else if ((hue <= (_10YR60[x] + _85YR60[x]) * 0.5f) && (hue > (_85YR60[x] + _7YR60[x]) * 0.5f)) { + correction = _85YR60[y] - _85YR60[x] ; + lbe = _85YR60[y]; + correctL = true; + } else if ((hue <= (_85YR60[x] + _7YR60[x]) * 0.5f) && (hue > (_7YR60[x] + _55YR60[x]) * 0.5f)) { + correction = _7YR60[y] - _7YR60[x] ; + lbe = _7YR60[y]; + correctL = true; + } else if ((hue <= (_7YR60[x] + _55YR60[x]) * 0.5f) && (hue > (_55YR60[x] + _4YR60[x]) * 0.5f)) { + correction = _55YR60[y] - _55YR60[x] ; + lbe = _55YR60[y]; + correctL = true; + } else if ((hue <= (_55YR60[x] + _4YR60[x]) * 0.5f) && (hue > (_4YR60[x] + _25YR60[x]) * 0.5f)) { + correction = _4YR60[y] - _4YR60[x] ; + lbe = _4YR60[y]; + correctL = true; + } else if (x < 85 && (hue <= (_4YR60[x] + _25YR60[x]) * 0.5f) && (hue > (_25YR60[x] + _10R60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _25YR60[y] - _25YR60[x] ; + lbe = _25YR60[y]; + correctL = true; + } else if (x < 85 && (hue <= (_25YR60[x] + _10R60[x]) * 0.5f) && (hue > (_10R60[x] + _9R60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10R60[y] - _10R60[x] ; + lbe = _10R60[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10R60[x] + _9R60[x]) * 0.5f) && (hue > (_9R60[x] + _7R60[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9R60[y] - _9R60[x] ; + lbe = _9R60[y]; + correctL = true; + } else if (x < 85 && (hue <= (_9R60[x] + _7R60[x]) * 0.5f) && (hue > (_7R60[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + correction = _7R60[y] - _7R60[x] ; + lbe = _7R60[y]; + correctL = true; + } + } else if (lum < 75.f) { + if ((hue <= (_10YR70[x] + 0.035f)) && (hue > (_10YR70[x] + _85YR70[x]) * 0.5f)) { + correction = _10YR70[y] - _10YR70[x] ; + lbe = _10YR70[y]; + correctL = true; + } else if ((hue <= (_10YR70[x] + _85YR70[x]) * 0.5f) && (hue > (_85YR70[x] + _7YR70[x]) * 0.5f)) { + correction = _85YR70[y] - _85YR70[x] ; + lbe = _85YR70[y]; + correctL = true; + } else if ((hue <= (_85YR70[x] + _7YR70[x]) * 0.5f) && (hue > (_7YR70[x] + _55YR70[x]) * 0.5f)) { + correction = _7YR70[y] - _7YR70[x] ; + lbe = _7YR70[y]; + correctL = true; + } else if ((hue <= (_7YR70[x] + _55YR70[x]) * 0.5f) && (hue > (_55YR70[x] + _4YR70[x]) * 0.5f)) { + correction = _55YR70[y] - _55YR70[x] ; + lbe = _55YR70[y]; + correctL = true; + } else if ((hue <= (_55YR70[x] + _4YR70[x]) * 0.5f) && (hue > (_4YR70[x] + _25YR70[x]) * 0.5f)) { + correction = _4YR70[y] - _4YR70[x] ; + lbe = _4YR70[y]; + correctL = true; + } else if (x < 85 && (hue <= (_4YR70[x] + _25YR70[x]) * 0.5f) && (hue > (_25YR70[x] + _10R70[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _25YR70[y] - _25YR70[x] ; + lbe = _25YR70[y]; + correctL = true; + } else if (x < 85 && (hue <= (_25YR70[x] + _10R70[x]) * 0.5f) && (hue > (_10R70[x] + _9R70[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10R70[y] - _10R70[x] ; + lbe = _10R70[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10R70[x] + _9R70[x]) * 0.5f) && (hue > (_9R70[x] + _7R70[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _9R70[y] - _9R70[x] ; + lbe = _9R70[y] ; + correctL = true; + } else if (x < 85 && (hue <= (_9R70[x] + _7R70[x]) * 0.5f) && (hue > (_7R70[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + correction = _7R70[y] - _7R70[x] ; + lbe = _7R70[y]; + correctL = true; + } + } else if (lum < 85.f) { + if ((hue <= (_10YR80[x] + 0.035f)) && (hue > (_10YR80[x] + _85YR80[x]) * 0.5f)) { + correction = _10YR80[y] - _10YR80[x] ; + lbe = _10YR80[y]; + correctL = true; + } else if ((hue <= (_10YR80[x] + _85YR80[x]) * 0.5f) && (hue > (_85YR80[x] + _7YR80[x]) * 0.5f)) { + correction = _85YR80[y] - _85YR80[x] ; + lbe = _85YR80[y]; + } else if (x < 85 && (hue <= (_85YR80[x] + _7YR80[x]) * 0.5f) && (hue > (_7YR80[x] + _55YR80[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _7YR80[y] - _7YR80[x] ; + lbe = _7YR80[y]; + correctL = true; + } else if (x < 45 && (hue <= (_7YR80[x] + _55YR80[x]) * 0.5f) && (hue > (_55YR80[x] + _4YR80[x]) * 0.5f)) { + correction = _55YR80[y] - _55YR80[x] ; + lbe = _55YR80[y]; + correctL = true; + } else if (x < 45 && (hue <= (_55YR80[x] + _4YR80[x]) * 0.5f) && (hue > (_4YR80[x] - 0.035f))) { + if (y > 49) { + y = 49; + } + correction = _4YR80[y] - _4YR80[x] ; + lbe = _4YR80[y] ; + correctL = true; + } + } else if (lum < 95.f) { + if (x < 85 && (hue <= (_10YR90[x] + 0.035f)) && (hue > (_10YR90[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + correction = _10YR90[y] - _10YR90[x] ; + lbe = _10YR90[y]; + correctL = true; + } else if (x < 85 && hue <= (_85YR90[x] + 0.035f) && hue > (_85YR90[x] - 0.035f)) { + if (y > 89) { + y = 89; + } + correction = _85YR90[y] - _85YR90[x] ; + lbe = _85YR90[y]; + correctL = true; + } else if (x < 45 && (hue <= (_55YR90[x] + 0.035f) && (hue > (_55YR90[x] - 0.035f)))) { + if (y > 49) { + y = 49; + } + correction = _55YR90[y] - _55YR90[x] ; + lbe = _55YR90[y]; + correctL = true; + } + } + } + } else if (zone == 3) { // //Green yellow correction + if (lum >= 25.f) { + if (lum < 35.f) { + if ((hue <= (_7G30[x] + 0.035f)) && (hue > (_7G30[x] + _5G30[x]) * 0.5f)) { + correction = _7G30[y] - _7G30[x] ; + lbe = _7G30[y]; + correctL = true; + } else if ((hue <= (_7G30[x] + _5G30[x]) * 0.5f) && (hue > (_5G30[x] + _25G30[x]) * 0.5f)) { + correction = _5G30[y] - _5G30[x] ; + lbe = _5G30[y]; + correctL = true; + } else if ((hue <= (_25G30[x] + _5G30[x]) * 0.5f) && (hue > (_25G30[x] + _1G30[x]) * 0.5f)) { + correction = _25G30[y] - _25G30[x] ; + lbe = _25G30[y]; + correctL = true; + } else if ((hue <= (_1G30[x] + _25G30[x]) * 0.5f) && (hue > (_1G30[x] + _10GY30[x]) * 0.5f)) { + correction = _1G30[y] - _1G30[x] ; + lbe = _1G30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_1G30[x] + _10GY30[x]) * 0.5f) && (hue > (_10GY30[x] + _75GY30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10GY30[y] - _10GY30[x] ; + lbe = _10GY30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10GY30[x] + _75GY30[x]) * 0.5f) && (hue > (_75GY30[x] + _5GY30[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _75GY30[y] - _75GY30[x] ; + lbe = _75GY30[y]; + correctL = true; + } else if (x < 85 && (hue <= (_5GY30[x] + _75GY30[x]) * 0.5f) && (hue > (_5GY30[x] - 0.035f))) { + if (y > 89) { + y = 89; + } + correction = _5GY30[y] - _5GY30[x] ; + lbe = _5GY30[y] ; + correctL = true; + } + } else if (lum < 45.f) { + if ((hue <= (_7G40[x] + 0.035f)) && (hue > (_7G40[x] + _5G40[x]) * 0.5f)) { + correction = _7G40[y] - _7G40[x] ; + lbe = _7G40[y]; + correctL = true; + } else if ((hue <= (_7G40[x] + _5G40[x]) * 0.5f) && (hue > (_5G40[x] + _25G40[x]) * 0.5f)) { + correction = _5G40[y] - _5G40[x] ; + lbe = _5G40[y]; + correctL = true; + } else if ((hue <= (_25G40[x] + _5G40[x]) * 0.5f) && (hue > (_25G40[x] + _1G40[x]) * 0.5f)) { + correction = _25G40[y] - _25G40[x] ; + lbe = _25G40[y]; + correctL = true; + } else if ((hue <= (_1G40[x] + _25G40[x]) * 0.5f) && (hue > (_1G40[x] + _10GY40[x]) * 0.5f)) { + correction = _1G40[y] - _1G40[x] ; + lbe = _1G40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_1G40[x] + _10GY40[x]) * 0.5f) && (hue > (_10GY40[x] + _75GY40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _10GY40[y] - _10GY40[x] ; + lbe = _10GY40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_10GY40[x] + _75GY40[x]) * 0.5f) && (hue > (_75GY40[x] + _5GY40[x]) * 0.5f)) { + if (y > 89) { + y = 89; + } + correction = _75GY40[y] - _75GY40[x] ; + lbe = _75GY40[y]; + correctL = true; + } else if (x < 85 && (hue <= (_5GY40[x] + _75GY40[x]) * 0.5f) && (hue > (_5GY40[x] - 0.035f))) { + if (y > 89) { + y = 89; // + } + correction = _5GY40[y] - _5GY40[x] ; + lbe = _5GY40[y]; + correctL = true; + } + } else if (lum < 55.f) { + if ((hue <= (_7G50[x] + 0.035f)) && (hue > (_7G50[x] + _5G50[x]) * 0.5f)) { + correction = _7G50[y] - _7G50[x] ; + lbe = _7G50[y]; + correctL = true; + } else if ((hue <= (_7G50[x] + _5G50[x]) * 0.5f) && (hue > (_5G50[x] + _25G50[x]) * 0.5f)) { + correction = _5G50[y] - _5G50[x] ; + lbe = _5G50[y]; + correctL = true; + } else if ((hue <= (_25G50[x] + _5G50[x]) * 0.5f) && (hue > (_25G50[x] + _1G50[x]) * 0.5f)) { + correction = _25G50[y] - _25G50[x] ; + lbe = _25G50[y]; + correctL = true; + } else if ((hue <= (_1G50[x] + _25G50[x]) * 0.5f) && (hue > (_1G50[x] + _10GY50[x]) * 0.5f)) { + correction = _1G50[y] - _1G50[x] ; + lbe = _1G50[y]; + correctL = true; + } else if ((hue <= (_1G50[x] + _10GY50[x]) * 0.5f) && (hue > (_10GY50[x] + _75GY50[x]) * 0.5f)) { + correction = _10GY50[y] - _10GY50[x] ; + lbe = _10GY50[y]; + correctL = true; + } else if ((hue <= (_10GY50[x] + _75GY50[x]) * 0.5f) && (hue > (_75GY50[x] + _5GY50[x]) * 0.5f)) { + correction = _75GY50[y] - _75GY50[x] ; + lbe = _75GY50[y]; + correctL = true; + } else if ((hue <= (_5GY50[x] + _75GY50[x]) * 0.5f) && (hue > (_5GY50[x] - 0.035f))) { + correction = _5GY50[y] - _5GY50[x] ; + lbe = _5GY50[y]; + correctL = true; + } + } else if (lum < 65.f) { + if ((hue <= (_7G60[x] + 0.035f)) && (hue > (_7G60[x] + _5G60[x]) * 0.5f)) { + correction = _7G60[y] - _7G60[x] ; + lbe = _7G60[y]; + correctL = true; + } else if ((hue <= (_7G60[x] + _5G60[x]) * 0.5f) && (hue > (_5G60[x] + _25G60[x]) * 0.5f)) { + correction = _5G60[y] - _5G60[x] ; + lbe = _5G60[y]; + correctL = true; + } else if ((hue <= (_25G60[x] + _5G60[x]) * 0.5f) && (hue > (_25G60[x] + _1G60[x]) * 0.5f)) { + correction = _25G60[y] - _25G60[x] ; + lbe = _25G60[y]; + correctL = true; + } else if ((hue <= (_1G60[x] + _25G60[x]) * 0.5f) && (hue > (_1G60[x] + _10GY60[x]) * 0.5f)) { + correction = _1G60[y] - _1G60[x] ; + lbe = _1G60[y]; + correctL = true; + } else if ((hue <= (_1G60[x] + _10GY60[x]) * 0.5f) && (hue > (_10GY60[x] + _75GY60[x]) * 0.5f)) { + correction = _10GY60[y] - _10GY60[x] ; + lbe = _10GY60[y]; + correctL = true; + } else if ((hue <= (_10GY60[x] + _75GY60[x]) * 0.5f) && (hue > (_75GY60[x] + _5GY60[x]) * 0.5f)) { + correction = _75GY60[y] - _75GY60[x] ; + lbe = _75GY60[y] ; + correctL = true; + } else if ((hue <= (_5GY60[x] + _75GY60[x]) * 0.5f) && (hue > (_5GY60[x] - 0.035f))) { + correction = _5GY60[y] - _5GY60[x] ; + lbe = _5GY60[y]; + correctL = true; + } + } else if (lum < 75.f) { + if ((hue <= (_7G70[x] + 0.035f)) && (hue > (_7G70[x] + _5G70[x]) * 0.5f)) { + correction = _7G70[y] - _7G70[x] ; + lbe = _7G70[y]; + correctL = true; + } else if ((hue <= (_7G70[x] + _5G70[x]) * 0.5f) && (hue > (_5G70[x] + _25G70[x]) * 0.5f)) { + correction = _5G70[y] - _5G70[x] ; + lbe = _5G70[y]; + correctL = true; + } else if ((hue <= (_25G70[x] + _5G70[x]) * 0.5f) && (hue > (_25G70[x] + _1G70[x]) * 0.5f)) { + correction = _25G70[y] - _25G70[x] ; + lbe = _25G70[y]; + correctL = true; + } else if ((hue <= (_1G70[x] + _25G70[x]) * 0.5f) && (hue > (_1G70[x] + _10GY70[x]) * 0.5f)) { + correction = _1G70[y] - _1G70[x] ; + lbe = _1G70[y] ; + correctL = true; + } else if ((hue <= (_1G70[x] + _10GY70[x]) * 0.5f) && (hue > (_10GY70[x] + _75GY70[x]) * 0.5f)) { + correction = _10GY70[y] - _10GY70[x] ; + lbe = _10GY70[y]; + correctL = true; + } else if ((hue <= (_10GY70[x] + _75GY70[x]) * 0.5f) && (hue > (_75GY70[x] + _5GY70[x]) * 0.5f)) { + correction = _75GY70[y] - _75GY70[x] ; + lbe = _75GY70[y]; + correctL = true; + } else if ((hue <= (_5GY70[x] + _75GY70[x]) * 0.5f) && (hue > (_5GY70[x] - 0.035f))) { + correction = _5GY70[y] - _5GY70[x] ; + lbe = _5GY70[y]; + correctL = true; + } + } else if (lum < 85.f) { + if ((hue <= (_7G80[x] + 0.035f)) && (hue > (_7G80[x] + _5G80[x]) * 0.5f)) { + correction = _7G80[y] - _7G80[x] ; + lbe = _7G80[y]; + correctL = true; + } else if ((hue <= (_7G80[x] + _5G80[x]) * 0.5f) && (hue > (_5G80[x] + _25G80[x]) * 0.5f)) { + correction = _5G80[y] - _5G80[x] ; + lbe = _5G80[y]; + correctL = true; + } else if ((hue <= (_25G80[x] + _5G80[x]) * 0.5f) && (hue > (_25G80[x] + _1G80[x]) * 0.5f)) { + correction = _25G80[y] - _25G80[x] ; + lbe = _25G80[y]; + correctL = true; + } else if ((hue <= (_1G80[x] + _25G80[x]) * 0.5f) && (hue > (_1G80[x] + _10GY80[x]) * 0.5f)) { + correction = _1G80[y] - _1G80[x] ; + lbe = _1G80[y]; + correctL = true; + } else if ((hue <= (_1G80[x] + _10GY80[x]) * 0.5f) && (hue > (_10GY80[x] + _75GY80[x]) * 0.5f)) { + correction = _10GY80[y] - _10GY80[x] ; + lbe = _10GY80[y]; + correctL = true; + } else if ((hue <= (_10GY80[x] + _75GY80[x]) * 0.5f) && (hue > (_75GY80[x] + _5GY80[x]) * 0.5f)) { + correction = _75GY80[y] - _75GY80[x] ; + lbe = _75GY80[y]; + correctL = true; + } else if ((hue <= (_5GY80[x] + _75GY80[x]) * 0.5f) && (hue > (_5GY80[x] - 0.035f))) { + correction = _5GY80[y] - _5GY80[x] ; + lbe = _5GY80[y]; + correctL = true; + } + } + } + } else if (zone == 4) { //Red purple correction : only for L < 30 + if (lum > 5.f) { + if (lum < 15.f && x < 45) { + y = std::min(y, 44); + if ((hue <= (_5R10[x] + 0.035f)) && (hue > (_5R10[x] - 0.043f))) { + correction = _5R10[y] - _5R10[x] ; + lbe = _5R10[y]; + correctL = true; + } else if ((hue <= (_25R10[x] + 0.043f)) && (hue > (_25R10[x] + _10RP10[x]) * 0.5f)) { + correction = _25R10[y] - _25R10[x] ; + lbe = _25R10[y]; + correctL = true; + } else if ((hue <= (_25R10[x] + _10RP10[x]) * 0.5f) && (hue > (_10RP10[x] - 0.035f))) { + correction = _10RP10[y] - _10RP10[x] ; + lbe = _10RP10[y]; + correctL = true; + } + } else if (lum < 25.f && x < 70) { + y = std::min(y, 70); + if ((hue <= (_5R20[x] + 0.035f)) && (hue > (_5R20[x] + _25R20[x]) * 0.5f)) { + correction = _5R20[y] - _5R20[x] ; + lbe = _5R20[y]; + correctL = true; + } else if ((hue <= (_5R20[x] + _25R20[x]) * 0.5f) && (hue > (_10RP20[x] + _25R20[x]) * 0.5f)) { + correction = _25R20[y] - _25R20[x] ; + lbe = _25R20[y]; + correctL = true; + } else if ( (hue <= (_10RP20[x] + _25R20[x]) * 0.5f) && (hue > (_10RP20[x] - 0.035f))) { + correction = _10RP20[y] - _10RP20[x] ; + lbe = _10RP20[y]; + correctL = true; + } + } else if (lum < 35.f && x < 85) { + y = rtengine::min(y, 85); + if ((hue <= (_5R30[x] + 0.035f)) && (hue > (_5R30[x] + _25R30[x]) * 0.5f)) { + correction = _5R30[y] - _5R30[x] ; + lbe = _5R30[y]; + correctL = true; + } else if ((hue <= (_5R30[x] + _25R30[x]) * 0.5f) && (hue > (_10RP30[x] + _25R30[x]) * 0.5f)) { + correction = _25R30[y] - _25R30[x] ; + lbe = _25R30[y]; + correctL = true; + } else if ((hue <= (_10RP30[x] + _25R30[x]) * 0.5f) && (hue > (_10RP30[x] - 0.035f))) { + correction = _10RP30[y] - _10RP30[x] ; + lbe = _10RP30[y]; + correctL = true; + } + } + } + } + //end red purple +} +} diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 18fc18f58..56c6ac479 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -25,6 +25,7 @@ #include "dcp.h" #include "dfmanager.h" #include "ffmanager.h" +#include "iccmatrices.h" #include "iccstore.h" #include "imagefloat.h" #include "improcfun.h" diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 9da601e2a..e526f6e30 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -31,6 +31,7 @@ #include "colortemp.h" #include "curves.h" #include "dcp.h" +#include "iccmatrices.h" #include "iccstore.h" #include "image8.h" #include "improcfun.h" From 9a4ade6f203bbb459582b8c7706a509e937724c7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 23 Jan 2020 22:18:46 +0100 Subject: [PATCH 160/453] devirtualize method calls by declaring classes and methods final --- rtengine/curves.h | 4 ++-- rtengine/iimage.h | 20 +++++++++---------- rtengine/image16.h | 2 +- rtengine/image8.h | 2 +- rtengine/imagedata.h | 4 ++-- rtengine/imagefloat.h | 2 +- rtengine/imagesource.h | 10 +++++----- rtengine/improccoordinator.h | 2 +- rtengine/processingjob.h | 2 +- rtengine/rawimagesource.h | 2 +- rtexif/pentaxattribs.cc | 2 +- rtexif/rtexif.h | 10 +++++----- rtexif/sonyminoltaattribs.cc | 4 ++-- rtgui/adjuster.h | 2 +- rtgui/batchqueueentry.h | 2 +- rtgui/batchtoolpanelcoord.h | 2 +- rtgui/coloredbar.h | 2 +- rtgui/coordinateadjuster.h | 2 +- rtgui/cropwindow.h | 2 +- rtgui/diagonalcurveeditorsubgroup.h | 2 +- rtgui/editcallbacks.h | 6 +++--- rtgui/exifpanel.h | 2 +- rtgui/filebrowser.h | 2 +- rtgui/filebrowserentry.h | 2 +- rtgui/filecatalog.h | 2 +- rtgui/flatcurveeditorsubgroup.h | 2 +- rtgui/guiutils.h | 30 ++++++++++++++--------------- rtgui/histogrampanel.h | 6 +++--- rtgui/iccprofilecreator.h | 2 +- rtgui/imagearea.h | 2 +- rtgui/imageareapanel.h | 2 +- rtgui/inspector.h | 2 +- rtgui/iptcpanel.h | 2 +- rtgui/lockablecolorpicker.h | 2 +- rtgui/mydiagonalcurve.h | 2 +- rtgui/myflatcurve.h | 2 +- rtgui/navigator.h | 2 +- rtgui/partialpastedlg.h | 2 +- rtgui/popupbutton.h | 2 +- rtgui/preferences.h | 2 +- rtgui/previewhandler.h | 2 +- rtgui/profilepanel.h | 2 +- rtgui/progressconnector.h | 2 +- rtgui/renamedlg.h | 2 +- rtgui/rtimage.h | 2 +- rtgui/rtwindow.h | 2 +- rtgui/saveasdlg.h | 2 +- rtgui/shcselector.h | 2 +- rtgui/splash.h | 4 ++-- rtgui/thresholdselector.h | 8 ++++---- rtgui/thumbbrowserbase.h | 8 ++++---- rtgui/toolpanel.h | 12 ++++++------ rtgui/toolpanelcoord.h | 4 ++-- 53 files changed, 104 insertions(+), 104 deletions(-) diff --git a/rtengine/curves.h b/rtengine/curves.h index bc8193b76..1f07e6dbe 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -454,7 +454,7 @@ public: virtual bool isIdentity () const = 0; }; -class DiagonalCurve : public Curve +class DiagonalCurve final : public Curve { protected: @@ -476,7 +476,7 @@ public: }; }; -class FlatCurve : public Curve, public rtengine::NonCopyable +class FlatCurve final : public Curve, public rtengine::NonCopyable { private: diff --git a/rtengine/iimage.h b/rtengine/iimage.h index 7309dd91f..f44c01320 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -658,7 +658,7 @@ public: /* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image */ - void allocate (int W, int H) override + void allocate (int W, int H) override final { if (W == width && H == height) { @@ -746,7 +746,7 @@ public: } } - void rotate (int deg) override + void rotate (int deg) override final { if (deg == 90) { @@ -873,7 +873,7 @@ public: } } - void hflip () override + void hflip () override final { int width2 = width / 2; @@ -905,7 +905,7 @@ public: #endif } - void vflip () override + void vflip () override final { int height2 = height / 2; @@ -989,7 +989,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override + void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override final { histogram.clear(); avg_r = avg_g = avg_b = 0.; @@ -1328,7 +1328,7 @@ public: * If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);" */ - void allocate (int W, int H) override + void allocate (int W, int H) override final { if (W == width && H == height) { @@ -1382,7 +1382,7 @@ public: memcpy (dest->data, data, 3 * width * height * sizeof(T)); } - void rotate (int deg) override + void rotate (int deg) override final { if (deg == 90) { @@ -1516,7 +1516,7 @@ public: } } - void hflip () override + void hflip () override final { int width2 = width / 2; @@ -1552,7 +1552,7 @@ public: } } - void vflip () override + void vflip () override final { AlignedBuffer lBuffer(3 * width); @@ -1619,7 +1619,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override + void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override final { histogram.clear(); avg_r = avg_g = avg_b = 0.; diff --git a/rtengine/image16.h b/rtengine/image16.h index d0053cbfc..de9288f2d 100644 --- a/rtengine/image16.h +++ b/rtengine/image16.h @@ -29,7 +29,7 @@ namespace rtengine class Image8; class Imagefloat; -class Image16 : public IImage16, public ImageIO +class Image16 final : public IImage16, public ImageIO { public: diff --git a/rtengine/image8.h b/rtengine/image8.h index f125dccf8..c11d9d7fc 100644 --- a/rtengine/image8.h +++ b/rtengine/image8.h @@ -27,7 +27,7 @@ namespace rtengine { class Imagefloat; -class Image8 : public IImage8, public ImageIO +class Image8 final : public IImage8, public ImageIO { public: diff --git a/rtengine/imagedata.h b/rtengine/imagedata.h index ff8ed4b86..28d32c5f0 100644 --- a/rtengine/imagedata.h +++ b/rtengine/imagedata.h @@ -38,7 +38,7 @@ class TagDirectory; namespace rtengine { -class FrameData +class FrameData final { protected: @@ -95,7 +95,7 @@ public: int getRating () const; }; -class FramesData : public FramesMetaData { +class FramesData final : public FramesMetaData { private: // frame's root IFD, can be a file root IFD or a SUB-IFD std::vector> frames; diff --git a/rtengine/imagefloat.h b/rtengine/imagefloat.h index 4a2b2f7e1..cd08daf70 100644 --- a/rtengine/imagefloat.h +++ b/rtengine/imagefloat.h @@ -34,7 +34,7 @@ class LabImage; /* * Image type used by most tools; expected range: [0.0 ; 65535.0] */ -class Imagefloat : public IImagefloat, public ImageIO +class Imagefloat final : public IImagefloat, public ImageIO { public: diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index e0c26aa9f..d1fa5896e 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -143,11 +143,11 @@ public: virtual void setProgressListener (ProgressListener* pl) {} - void increaseRef () override + void increaseRef () override final { references++; } - void decreaseRef () override + void decreaseRef () override final { references--; @@ -175,15 +175,15 @@ public: return dirpyrdenoiseExpComp; } // functions inherited from the InitialImage interface - Glib::ustring getFileName () override + Glib::ustring getFileName () override final { return fileName; } - cmsHPROFILE getEmbeddedProfile () override + cmsHPROFILE getEmbeddedProfile () override final { return embProfile; } - const FramesMetaData* getMetaData () override + const FramesMetaData* getMetaData () override final { return idata; } diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 96d1f80ce..724443ecd 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -55,7 +55,7 @@ class Crop; * but using this class' LUT and other precomputed parameters. The main preview area is displaying a non framed Crop object, * while detail windows are framed Crop objects. */ -class ImProcCoordinator : public StagedImageProcessor +class ImProcCoordinator final : public StagedImageProcessor { friend class Crop; diff --git a/rtengine/processingjob.h b/rtengine/processingjob.h index 6cdc6bd7c..9c3846958 100644 --- a/rtengine/processingjob.h +++ b/rtengine/processingjob.h @@ -24,7 +24,7 @@ namespace rtengine { -class ProcessingJobImpl : public ProcessingJob +class ProcessingJobImpl final : public ProcessingJob { public: diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index bd460c61b..6be02f6d6 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -37,7 +37,7 @@ class DiagonalCurve; class RetinextransmissionCurve; class RetinexgaintransmissionCurve; -class RawImageSource : public ImageSource +class RawImageSource final : public ImageSource { private: static DiagonalCurve *phaseOneIccCurve; diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index 898150696..14f204b08 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -696,7 +696,7 @@ public: }; PAColorSpaceInterpreter paColorSpaceInterpreter; -class PALensTypeInterpreter : public IntLensInterpreter< int > +class PALensTypeInterpreter final: public IntLensInterpreter< int > { public: PALensTypeInterpreter () diff --git a/rtexif/rtexif.h b/rtexif/rtexif.h index c37533352..1a956a4a5 100644 --- a/rtexif/rtexif.h +++ b/rtexif/rtexif.h @@ -163,14 +163,14 @@ public: // Try to get the Tag in the current directory and in subdirectories // if lookUpward = true, it will scan the parents TagDirectory up to the root one, // but w/o looking into their subdirs - virtual Tag* findTag (const char* name, bool lookUpward = false) const; + Tag* findTag (const char* name, bool lookUpward = false) const; // Find a all Tags with the given name by scanning the whole tag tree std::vector findTags (const char* name); // Find a all Tags with the given ID by scanning the whole tag tree std::vector findTags (int ID); // Try to get the Tag in the current directory and in parent directories // (won't look into subdirs) - virtual Tag* findTagUpward (const char* name) const; + Tag* findTagUpward (const char* name) const; bool getXMPTagValue (const char* name, char* value) const; void keepTag (int ID); @@ -191,10 +191,10 @@ public: virtual TagDirectory* clone (TagDirectory* parent) const; void applyChange (const std::string &field, const Glib::ustring &value); - virtual void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call ! - virtual bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams, + void printAll (unsigned int level = 0) const; // reentrant debug function, keep level=0 on first call ! + bool CPBDump (const Glib::ustring &commFName, const Glib::ustring &imageFName, const Glib::ustring &profileFName, const Glib::ustring &defaultPParams, const CacheImageData* cfs, const bool flagMode, Glib::KeyFile *keyFile = nullptr, Glib::ustring tagDirName = "") const; - virtual void sort (); + void sort (); }; // a table of tags: id are offset from beginning and not identifiers diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc index 4410a4051..82323cede 100644 --- a/rtexif/sonyminoltaattribs.cc +++ b/rtexif/sonyminoltaattribs.cc @@ -541,7 +541,7 @@ public: }; SAAntiBlurInterpreter saAntiBlurInterpreter; -class SALensIDInterpreter : public IntLensInterpreter +class SALensIDInterpreter final : public IntLensInterpreter { public: SALensIDInterpreter () @@ -1192,7 +1192,7 @@ public: }; SALensIDInterpreter saLensIDInterpreter; -class SALensID2Interpreter : public IntLensInterpreter< int > +class SALensID2Interpreter final : public IntLensInterpreter< int > { public: SALensID2Interpreter () diff --git a/rtgui/adjuster.h b/rtgui/adjuster.h index 59250bc81..143268786 100644 --- a/rtgui/adjuster.h +++ b/rtgui/adjuster.h @@ -33,7 +33,7 @@ public: typedef double(*double2double_fun)(double val); -class Adjuster : public Gtk::Grid +class Adjuster final : public Gtk::Grid { protected: diff --git a/rtgui/batchqueueentry.h b/rtgui/batchqueueentry.h index c4cd48615..f06b65046 100644 --- a/rtgui/batchqueueentry.h +++ b/rtgui/batchqueueentry.h @@ -50,7 +50,7 @@ struct BatchQueueEntryIdleHelper { int pending; }; -class BatchQueueEntry : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable +class BatchQueueEntry final : public ThumbBrowserEntryBase, public BQEntryUpdateListener, public rtengine::NonCopyable { guint8* opreview; diff --git a/rtgui/batchtoolpanelcoord.h b/rtgui/batchtoolpanelcoord.h index 7a5fe77ed..ea11f97c8 100644 --- a/rtgui/batchtoolpanelcoord.h +++ b/rtgui/batchtoolpanelcoord.h @@ -28,7 +28,7 @@ class FilePanel; class Thumbnail; -class BatchToolPanelCoordinator : +class BatchToolPanelCoordinator final : public ToolPanelCoordinator, public FileSelectionChangeListener, public BatchPParamsChangeListener, diff --git a/rtgui/coloredbar.h b/rtgui/coloredbar.h index 6cc121cd5..69cfa47d1 100644 --- a/rtgui/coloredbar.h +++ b/rtgui/coloredbar.h @@ -30,7 +30,7 @@ * the bar itself, i.e. use render_background (depending on its Gtk::Style) * */ -class ColoredBar : private BackBuffer, public ColorCaller +class ColoredBar final : private BackBuffer, public ColorCaller { private: diff --git a/rtgui/coordinateadjuster.h b/rtgui/coordinateadjuster.h index 70fe42233..24edc707a 100644 --- a/rtgui/coordinateadjuster.h +++ b/rtgui/coordinateadjuster.h @@ -69,7 +69,7 @@ public: * * The position of the Axis in the vector will be used in the communication between the Adjuster and the Provider to identify the Axis */ -class CoordinateAdjuster : public Gtk::FlowBox +class CoordinateAdjuster final : public Gtk::FlowBox { public: diff --git a/rtgui/cropwindow.h b/rtgui/cropwindow.h index 491124ad5..623653d2d 100644 --- a/rtgui/cropwindow.h +++ b/rtgui/cropwindow.h @@ -54,7 +54,7 @@ public: }; class ImageArea; -class CropWindow : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable +class CropWindow final : public LWButtonListener, public CropDisplayHandler, public EditCoordSystem, public ObjectMOBuffer, public rtengine::NonCopyable { static bool initialized; diff --git a/rtgui/diagonalcurveeditorsubgroup.h b/rtgui/diagonalcurveeditorsubgroup.h index a077da807..9b1f67462 100644 --- a/rtgui/diagonalcurveeditorsubgroup.h +++ b/rtgui/diagonalcurveeditorsubgroup.h @@ -27,7 +27,7 @@ class DiagonalCurveEditor; class MyDiagonalCurve; -class DiagonalCurveEditorSubGroup : +class DiagonalCurveEditorSubGroup final : public CurveEditorSubGroup, public SHCListener, public AdjusterListener, diff --git a/rtgui/editcallbacks.h b/rtgui/editcallbacks.h index c2efcf53e..ee357c2f7 100644 --- a/rtgui/editcallbacks.h +++ b/rtgui/editcallbacks.h @@ -129,19 +129,19 @@ public: @param picked True if the cursor is still above the the same object than on button pressed and with the same modifier keys. If false, the user moved the cursor away or the modifier key is different, so the element is considered as NOT selected. @return true if the preview has to be redrawn, false otherwise */ - virtual bool pick1 (bool picked); + bool pick1 (bool picked); /** @brief Triggered when the user is releasing mouse button 2 while in action==ES_ACTION_PICKING mode @param picked True if the cursor is still above the the same object than on button pressed and with the same modifier keys. If false, the user moved the cursor away or the modifier key is different, so the element is considered as NOT selected. @return true if the preview has to be redrawn, false otherwise */ - virtual bool pick2 (bool picked); + bool pick2 (bool picked); /** @brief Triggered when the user is releasing mouse button 3 while in action==ES_ACTION_PICKING mode @param picked True if the cursor is still above the the same object than on button pressed and with the same modifier keys. If false, the user moved the cursor away or the modifier key is different, so the element is considered as NOT selected. @return true if the preview has to be redrawn, false otherwise */ - virtual bool pick3 (bool picked); + bool pick3 (bool picked); /** @brief Get the geometry to be shown to the user */ const std::vector& getVisibleGeometry (); diff --git a/rtgui/exifpanel.h b/rtgui/exifpanel.h index 0894c21ad..d336d83f9 100644 --- a/rtgui/exifpanel.h +++ b/rtgui/exifpanel.h @@ -25,7 +25,7 @@ #include "toolpanel.h" #include "../rtexif/rtexif.h" -class ExifPanel : +class ExifPanel final : public Gtk::VBox, public ToolPanel { diff --git a/rtgui/filebrowser.h b/rtgui/filebrowser.h index 86ab59395..53f3f1f2b 100644 --- a/rtgui/filebrowser.h +++ b/rtgui/filebrowser.h @@ -56,7 +56,7 @@ public: /* * Class handling actions common to all thumbnails of the file browser */ -class FileBrowser : public ThumbBrowserBase, +class FileBrowser final : public ThumbBrowserBase, public LWButtonListener, public ExportPanelListener, public ProfileStoreListener, diff --git a/rtgui/filebrowserentry.h b/rtgui/filebrowserentry.h index ea5140ed6..67b953514 100644 --- a/rtgui/filebrowserentry.h +++ b/rtgui/filebrowserentry.h @@ -43,7 +43,7 @@ struct FileBrowserEntryIdleHelper { }; class FileThumbnailButtonSet; -class FileBrowserEntry : public ThumbBrowserEntryBase, +class FileBrowserEntry final : public ThumbBrowserEntryBase, public ThumbnailListener, public ThumbImageUpdateListener, public rtengine::NonCopyable diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 8f7e5618f..b94d049d0 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -43,7 +43,7 @@ class ToolBar; * - handling the thumbnail toolbar, * - monitoring the directory (for any change) */ -class FileCatalog : public Gtk::VBox, +class FileCatalog final : public Gtk::VBox, public PreviewLoaderListener, public FilterPanelListener, public FileBrowserListener, diff --git a/rtgui/flatcurveeditorsubgroup.h b/rtgui/flatcurveeditorsubgroup.h index c358dde3b..865a0ef83 100644 --- a/rtgui/flatcurveeditorsubgroup.h +++ b/rtgui/flatcurveeditorsubgroup.h @@ -27,7 +27,7 @@ class FlatCurveEditor; class MyFlatCurve; -class FlatCurveEditorSubGroup: +class FlatCurveEditorSubGroup final : public CurveEditorSubGroup, public rtengine::NonCopyable { diff --git a/rtgui/guiutils.h b/rtgui/guiutils.h index 97c72513b..d4c91734a 100644 --- a/rtgui/guiutils.h +++ b/rtgui/guiutils.h @@ -92,7 +92,7 @@ private: * } * */ -class GThreadLock +class GThreadLock final { public: GThreadLock() @@ -110,7 +110,7 @@ public: * * Will relock on destruction. */ -class GThreadUnLock +class GThreadUnLock final { public: GThreadUnLock() @@ -125,7 +125,7 @@ public: #pragma GCC diagnostic pop -class ConnectionBlocker +class ConnectionBlocker final { public: explicit ConnectionBlocker (Gtk::Widget *associatedWidget, sigc::connection& connection) : connection (associatedWidget ? &connection : nullptr), wasBlocked(false) @@ -152,7 +152,7 @@ private: /** * @brief Glue box to control visibility of the MyExpender's content ; also handle the frame around it */ -class ExpanderBox: public Gtk::EventBox +class ExpanderBox final : public Gtk::EventBox { private: Gtk::Container *pC; @@ -185,7 +185,7 @@ public: * * Warning: once you've instantiated this class with a text label or a widget label, you won't be able to revert to the other solution. */ -class MyExpander : public Gtk::VBox +class MyExpander final : public Gtk::VBox { public: typedef sigc::signal type_signal_enabled_toggled; @@ -295,7 +295,7 @@ public: /** * @brief subclass of Gtk::ScrolledWindow in order to handle the scrollwheel */ -class MyScrolledWindow : public Gtk::ScrolledWindow +class MyScrolledWindow final : public Gtk::ScrolledWindow { bool on_scroll_event (GdkEventScroll* event) override; @@ -310,7 +310,7 @@ public: /** * @brief subclass of Gtk::ScrolledWindow in order to handle the large toolbars (wider than available space) */ -class MyScrolledToolbar : public Gtk::ScrolledWindow +class MyScrolledToolbar final : public Gtk::ScrolledWindow { bool on_scroll_event (GdkEventScroll* event) override; @@ -340,7 +340,7 @@ public: /** * @brief subclass of Gtk::ComboBoxText in order to handle the scrollwheel */ -class MyComboBoxText : public Gtk::ComboBoxText +class MyComboBoxText final : public Gtk::ComboBoxText { int naturalWidth, minimumWidth; sigc::connection myConnection; @@ -360,7 +360,7 @@ public: /** * @brief subclass of Gtk::SpinButton in order to handle the scrollwheel */ -class MySpinButton : public Gtk::SpinButton +class MySpinButton final : public Gtk::SpinButton { protected: @@ -375,7 +375,7 @@ public: /** * @brief subclass of Gtk::HScale in order to handle the scrollwheel */ -class MyHScale : public Gtk::HScale +class MyHScale final : public Gtk::HScale { bool on_scroll_event (GdkEventScroll* event) override; @@ -385,7 +385,7 @@ class MyHScale : public Gtk::HScale /** * @brief subclass of Gtk::FileChooserButton in order to handle the scrollwheel */ -class MyFileChooserButton: public Gtk::Button { +class MyFileChooserButton final : public Gtk::Button { private: void show_chooser(); @@ -473,14 +473,14 @@ typedef enum RTNav { /** * @brief Handle the switch between text and image to be displayed in the HBox (to be used in a button/toolpanel) */ -class TextOrIcon : public Gtk::HBox +class TextOrIcon final : public Gtk::HBox { public: TextOrIcon (const Glib::ustring &filename, const Glib::ustring &labelTx, const Glib::ustring &tooltipTx); }; -class MyImageMenuItem : public Gtk::MenuItem +class MyImageMenuItem final : public Gtk::MenuItem { private: Gtk::Grid *box; @@ -493,7 +493,7 @@ public: const Gtk::Label* getLabel () const; }; -class MyProgressBar : public Gtk::ProgressBar +class MyProgressBar final : public Gtk::ProgressBar { private: int w; @@ -512,7 +512,7 @@ public: /** * @brief Define a gradient milestone */ -class GradientMilestone +class GradientMilestone final { public: double position; diff --git a/rtgui/histogrampanel.h b/rtgui/histogrampanel.h index 4fd21bcc2..cec44ed03 100644 --- a/rtgui/histogrampanel.h +++ b/rtgui/histogrampanel.h @@ -53,7 +53,7 @@ public: double log (double vsize, double val); }; -class HistogramRGBArea : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable +class HistogramRGBArea final : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable { private: typedef const double (*TMatrix)[3]; @@ -116,7 +116,7 @@ public: virtual void toggleButtonMode() = 0; }; -class HistogramArea : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable +class HistogramArea final : public Gtk::DrawingArea, public BackBuffer, private HistogramScaling, public rtengine::NonCopyable { public: typedef sigc::signal type_signal_factor_changed; @@ -174,7 +174,7 @@ private: void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; }; -class HistogramPanel : public Gtk::Grid, public PointerMotionListener, public DrawModeListener, public rtengine::NonCopyable +class HistogramPanel final : public Gtk::Grid, public PointerMotionListener, public DrawModeListener, public rtengine::NonCopyable { protected: diff --git a/rtgui/iccprofilecreator.h b/rtgui/iccprofilecreator.h index 2cd19e14f..8ee46a71d 100644 --- a/rtgui/iccprofilecreator.h +++ b/rtgui/iccprofilecreator.h @@ -27,7 +27,7 @@ class RTWindow; -class ICCProfileCreator : public Gtk::Dialog, public AdjusterListener +class ICCProfileCreator final : public Gtk::Dialog, public AdjusterListener { private: diff --git a/rtgui/imagearea.h b/rtgui/imagearea.h index 28b52dcd2..586bba7a7 100644 --- a/rtgui/imagearea.h +++ b/rtgui/imagearea.h @@ -34,7 +34,7 @@ class ImageAreaPanel; -class ImageArea : +class ImageArea final : public Gtk::DrawingArea, public CropWindowListener, public EditDataProvider, diff --git a/rtgui/imageareapanel.h b/rtgui/imageareapanel.h index 831371dbb..f52ca9060 100644 --- a/rtgui/imageareapanel.h +++ b/rtgui/imageareapanel.h @@ -22,7 +22,7 @@ class ImageArea; -class ImageAreaPanel : +class ImageAreaPanel final : public Gtk::VBox { diff --git a/rtgui/inspector.h b/rtgui/inspector.h index 8338259bf..1526f90be 100644 --- a/rtgui/inspector.h +++ b/rtgui/inspector.h @@ -40,7 +40,7 @@ public: //~InspectorBuffer(); }; -class Inspector : public Gtk::DrawingArea +class Inspector final : public Gtk::DrawingArea { private: diff --git a/rtgui/iptcpanel.h b/rtgui/iptcpanel.h index 15d117f87..100904d1a 100644 --- a/rtgui/iptcpanel.h +++ b/rtgui/iptcpanel.h @@ -25,7 +25,7 @@ #include "guiutils.h" #include "toolpanel.h" -class IPTCPanel : +class IPTCPanel final : public Gtk::VBox, public ToolPanel { diff --git a/rtgui/lockablecolorpicker.h b/rtgui/lockablecolorpicker.h index 77d2e8e9f..baeea41ef 100644 --- a/rtgui/lockablecolorpicker.h +++ b/rtgui/lockablecolorpicker.h @@ -33,7 +33,7 @@ public: virtual void switchPickerVisibility(bool isVisible) = 0; }; -class LockableColorPicker : BackBuffer +class LockableColorPicker final : BackBuffer { public: enum class Size { diff --git a/rtgui/mydiagonalcurve.h b/rtgui/mydiagonalcurve.h index b38373006..b2b83c02e 100644 --- a/rtgui/mydiagonalcurve.h +++ b/rtgui/mydiagonalcurve.h @@ -41,7 +41,7 @@ public: std::vector x, y; // in case of parametric curves the curve parameters are stored in vector x. In other cases these vectors store the coordinates of the bullets. }; -class MyDiagonalCurve : public MyCurve +class MyDiagonalCurve final : public MyCurve { private: IdleRegister idle_register; diff --git a/rtgui/myflatcurve.h b/rtgui/myflatcurve.h index 88d651a05..5da1d09ad 100644 --- a/rtgui/myflatcurve.h +++ b/rtgui/myflatcurve.h @@ -66,7 +66,7 @@ public: double centerY; }; -class MyFlatCurve : public MyCurve +class MyFlatCurve final : public MyCurve { protected: diff --git a/rtgui/navigator.h b/rtgui/navigator.h index c1c23c6dc..e9d40e309 100644 --- a/rtgui/navigator.h +++ b/rtgui/navigator.h @@ -25,7 +25,7 @@ class PreviewWindow; -class Navigator : +class Navigator final : public Gtk::Frame, public PointerMotionListener { diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 1403e7c1b..75e18e83c 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -34,7 +34,7 @@ class ProcParams; struct ParamsEdited; -class PartialPasteDlg : public Gtk::Dialog +class PartialPasteDlg final : public Gtk::Dialog { public: diff --git a/rtgui/popupbutton.h b/rtgui/popupbutton.h index 87b1b73a6..a67339a9f 100644 --- a/rtgui/popupbutton.h +++ b/rtgui/popupbutton.h @@ -24,7 +24,7 @@ #include "popupcommon.h" -class PopUpButton : +class PopUpButton final : public Gtk::Button, public PopUpCommon { diff --git a/rtgui/preferences.h b/rtgui/preferences.h index 76a104ffa..a6cbe7939 100644 --- a/rtgui/preferences.h +++ b/rtgui/preferences.h @@ -29,7 +29,7 @@ class RTWindow; class Splash; -class Preferences : +class Preferences final : public Gtk::Dialog, public ProfileStoreListener { diff --git a/rtgui/previewhandler.h b/rtgui/previewhandler.h index d9c91f6ad..4fd9a1e82 100644 --- a/rtgui/previewhandler.h +++ b/rtgui/previewhandler.h @@ -44,7 +44,7 @@ struct PreviewHandlerIdleHelper { int pending; }; -class PreviewHandler : public rtengine::PreviewImageListener, public rtengine::NonCopyable +class PreviewHandler final : public rtengine::PreviewImageListener, public rtengine::NonCopyable { private: friend int setImageUI (void* data); diff --git a/rtgui/profilepanel.h b/rtgui/profilepanel.h index b3c968682..c3a125c49 100644 --- a/rtgui/profilepanel.h +++ b/rtgui/profilepanel.h @@ -49,7 +49,7 @@ class PartialProfile; } class RTImage; -class ProfilePanel : +class ProfilePanel final : public Gtk::Grid, public PParamsChangeListener, public ProfileStoreListener, diff --git a/rtgui/progressconnector.h b/rtgui/progressconnector.h index f4d1d8f7e..90c9f67f0 100644 --- a/rtgui/progressconnector.h +++ b/rtgui/progressconnector.h @@ -28,7 +28,7 @@ #undef THREAD_PRIORITY_NORMAL -class PLDBridge : +class PLDBridge final : public rtengine::ProgressListener { public: diff --git a/rtgui/renamedlg.h b/rtgui/renamedlg.h index f9447fbac..3c92965f8 100644 --- a/rtgui/renamedlg.h +++ b/rtgui/renamedlg.h @@ -26,7 +26,7 @@ class CacheImageData; -class RenameDialog : +class RenameDialog final : public Gtk::Dialog { diff --git a/rtgui/rtimage.h b/rtgui/rtimage.h index b68becd82..eb1930d28 100644 --- a/rtgui/rtimage.h +++ b/rtgui/rtimage.h @@ -25,7 +25,7 @@ /** * @brief A derived class of Gtk::Image in order to handle theme-related icon sets. */ -class RTImage : public Gtk::Image, public RTScalable +class RTImage final : public Gtk::Image, public RTScalable { static double dpiBack; // used to keep track of master dpi change static int scaleBack; // used to keep track of master scale change diff --git a/rtgui/rtwindow.h b/rtgui/rtwindow.h index 4791ac6c1..c493c2db4 100644 --- a/rtgui/rtwindow.h +++ b/rtgui/rtwindow.h @@ -35,7 +35,7 @@ class BatchQueuePanel; class EditorPanel; class FilePanel; class PLDBridge; -class RTWindow : +class RTWindow final : public Gtk::Window, public rtengine::ProgressListener, public rtengine::NonCopyable diff --git a/rtgui/saveasdlg.h b/rtgui/saveasdlg.h index 448b37fd7..445452a54 100644 --- a/rtgui/saveasdlg.h +++ b/rtgui/saveasdlg.h @@ -22,7 +22,7 @@ #include "saveformatpanel.h" -class SaveAsDialog : +class SaveAsDialog final : public Gtk::Dialog, public FormatChangeListener { diff --git a/rtgui/shcselector.h b/rtgui/shcselector.h index 5c4421e0a..e03ca8e06 100644 --- a/rtgui/shcselector.h +++ b/rtgui/shcselector.h @@ -29,7 +29,7 @@ public: virtual void shcChanged() = 0; }; -class SHCSelector : public Gtk::DrawingArea, BackBuffer +class SHCSelector final : public Gtk::DrawingArea, BackBuffer { protected: diff --git a/rtgui/splash.h b/rtgui/splash.h index 363c51489..bc63cef91 100644 --- a/rtgui/splash.h +++ b/rtgui/splash.h @@ -20,7 +20,7 @@ #include -class SplashImage : +class SplashImage final : public Gtk::DrawingArea { @@ -39,7 +39,7 @@ public: }; //class Splash : public Gtk::Window { -class Splash : public Gtk::Dialog +class Splash final : public Gtk::Dialog { private: diff --git a/rtgui/thresholdselector.h b/rtgui/thresholdselector.h index f948b56ad..886b82fbd 100644 --- a/rtgui/thresholdselector.h +++ b/rtgui/thresholdselector.h @@ -113,10 +113,10 @@ protected: void updateBackBuffer(); Gtk::SizeRequestMode get_request_mode_vfunc () const override; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override final; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override final; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override final; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override final; void on_realize () override; bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; bool on_button_press_event (GdkEventButton* event) override; diff --git a/rtgui/thumbbrowserbase.h b/rtgui/thumbbrowserbase.h index b4caac0a9..e1f24594c 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -60,10 +60,10 @@ class ThumbBrowserBase : bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; Gtk::SizeRequestMode get_request_mode_vfunc () const override; - void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override; + void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override final; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override final; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override final; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override final; bool on_button_press_event (GdkEventButton* event) override; bool on_button_release_event (GdkEventButton* event) override; diff --git a/rtgui/toolpanel.h b/rtgui/toolpanel.h index aecf1f39f..069654128 100644 --- a/rtgui/toolpanel.h +++ b/rtgui/toolpanel.h @@ -143,7 +143,7 @@ public: this->batchMode = batchMode; } - virtual Glib::ustring getToolName () { + Glib::ustring getToolName () { return toolName; } }; @@ -164,11 +164,11 @@ public: FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, Glib::ustring UILabel, bool need11 = false, bool useEnabled = false); - MyExpander* getExpander() override + MyExpander* getExpander() override final { return exp; } - void setExpanded (bool expanded) override + void setExpanded (bool expanded) override final { if (exp) { exp->set_expanded( expanded ); @@ -186,7 +186,7 @@ public: exp->show(); } } - bool getExpanded () override + bool getExpanded () override final { if (exp) { return exp->get_expanded(); @@ -194,11 +194,11 @@ public: return false; } - void setParent (Gtk::Box* parent) override + void setParent (Gtk::Box* parent) override final { parentContainer = parent; } - Gtk::Box* getParent () override + Gtk::Box* getParent () override final { return parentContainer; } diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 4313f6d12..17f14673d 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -318,7 +318,7 @@ public: int getSpotWBRectSize() const override; void cropSelectionReady() override; void rotateSelectionReady(double rotate_deg, Thumbnail* thm = nullptr) override; - ToolBar* getToolBar() const override; + ToolBar* getToolBar() const override final; CropGUIListener* startCropEditing(Thumbnail* thm = nullptr) override; void updateTPVScrollbar (bool hide); @@ -326,7 +326,7 @@ public: // ToolBarListener interface void toolSelected (ToolMode tool) override; - void editModeSwitchedOff () override; + void editModeSwitchedOff () override final; void setEditProvider (EditDataProvider *provider); From 1a7299403a25daaa150b232bf91362d532ea8467 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 23 Jan 2020 22:57:21 +0100 Subject: [PATCH 161/453] Added FUJIFILM X-T10 dual-illuminant DCP StdA from DPR studio scene. D50 from IR shot. Closes #5612 --- rtdata/dcpprofiles/FUJIFILM X-T10.dcp | Bin 0 -> 1102958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/FUJIFILM X-T10.dcp diff --git a/rtdata/dcpprofiles/FUJIFILM X-T10.dcp b/rtdata/dcpprofiles/FUJIFILM X-T10.dcp new file mode 100644 index 0000000000000000000000000000000000000000..e77837f3e2c3160047e0f894ed1682dc6a809060 GIT binary patch literal 1102958 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

)?=j8=UqlB|P2^6U@pWRJ|Q)QpyOIcfi`= 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

LwWIp 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


W?O_@_D&1 zp3T{=3*VRZn?)^C`sea4c1t=a9$1jSTEYIPxIpMeM4&I{jN|qe3nS_@zIqgmqJ7WB z=o3-MoJZbp#%FQh3i-@s)Dk)LRYa_dge~V#@e5yxr_`WWXhN;Rjz!}B8YMD2#G~`a zOkq4C5OaQ0Kf%XItRKcZWrGIZ#@1q2LiOYY>hjz+*9Z)tNu5O$MO>hW!ZG@zLh z=Y~YX-&d0U_28_qDSga4K9%}3QR2&6_KD5viuJmjvlkJ!pV>|nljAxyhjrjvWATc- z%7MgQ!hTK^H}@%#%la@d!&Urg7lK=ioBtoR_?a03Q+|za_vK>H_)xUes9dZ)JcO}NSRu%^T!r>jpS^2-4!slBA?tP3#+MH+N^nH5UP2&DWjc;Ol zauhn|QtxG34f$g>bp|HJ!nj{;`6qdaof=Yq{^387MPB9muhgda^-3IHOueta@kse| zLCl`U-$gG02i$iGD?@VL&hlgZjr0)b&f}~E40OLB+AE`w*Et>~yGs?GS?tAoROjVd zq;E+#*&`j~Z1g-i zEyovJm#jITvKUHE@4_l+h&%Z+ZOPqQ*j!Zjk*8Xd9z!m@#p|s~Ec#5GQ#)GxFU~{f%>h%_XApMieR*a{gHOO0i}oWBIFkoFnWz zgj|XKf$Mg!tUr^Je_k20KDg+&;({E#+hrEY+zX#m@ z(?#-^_kRq*cGk50t3u^aa%{e?=bq6uwfrD~+`LoNtBHw||5CfUw1RpRGZJL$HDOq- z7mKXBNpgn))WRo@u}YI5-}n&@4Ke3_!7*};%@Me=iMpH@L*=F2Baz41ci(7VIc8ua z9)o)n?_A}&YI1AO#6e`wl{+veTXAk!QeY{6;m|V z=V5v!tEn6{n{jTOgs2&f<#uD$xZ;+GIK6k`(@f4Zmc*ln%{N6_FyE~Q)#Kd4xn_Rn zU|Y<&$i1qE%?hrwX4^A^8i2=F73^Q?i4@+yDQ!Ip+~}uJpSArU1q#OeR$@J8zU9ST z3sf`dCq6J1QE!?Q46CU`c7O8viggOgIWPOtFBUQNUdzo{U!@J8&S3pJ@=jMJlKE%9 zEIcn8Q&;N35bgol=gM)@L(pIpwWRa2Wp_S{dSkhB)nJ?a`B*4k5$A0GVuPGS-P&4i z^sK43S{^Zl+)>uClX@up|2{HSk9#H*Wb7j5%-y!QwsQ*fIQuhopr&?{ zK?Q@!KR-*Jo2$A_fw2h2QTDulW9k*)4d;Wb|5NULmQA~|ewao*pTdW-&N?L?@oU7T zD{_;XA<&)28nr~oeNsYD>PQ`9^Bj39`H{u5{@+*x2PVr;$P4;LeY~NsG_vam?hEXV zLy)~nuH7&kHiPMzKFC*=YlmX}8)~CHwv%@q4Mt6J!(!HsljWy@xPKu5j*pGyA@mJw zO#P+kTHWR8y~0pnn1m<69p&_QhoOaaTo>~(Q%(a$-tH-(Zu<*Ru zD{XP9jCnYqL&1aFq1Z}ZM8)guf&=GVp-b%R-L1re0cWW_>lKSzVb%rqOM_9*n`g#v zXu-~0?u9O-&U<2Xs&Iwl0}0p!TFJtI%M6N1&D)Z+edOpcDEW_WZgs^;&NOQy2ET|#ZRdRg*XgK(Uq z-hiB(E{9*H-@#t$xNS(0J(ovd-)ZVap3%sS?~ot#J{EOWh032AMdDZwYWP;U%0;U< zvs2Skr)-*h*D4&N$lX2RWGe6W3`O_>#{5Muc_w?GS;R=EOgE65lKXUxUN#lKbY*|m zr44-(F>YcL`FdaGoQgz*T{e*G8*mQ%i`ttHzX=0LO&tsR;O6~PtYZD!&aQf#O^w^1 zO59|NZ%;UP%kN&0+Laox0rbk;pHlE_66^CejP0Ch1%IokL(-cudDf}GxLpJu8t@GF z`X~GF{r$sxymznba@h^eZ9Z{FV@$R@irmGFa%xpwTp=HQ9!CF6=I6PAvWYphE49qS z71QK<#9NLWre@~lp>kuF2&C;L@5Q5wJg`qB`s|@z`ci$_mi)D)?9r-b=*mafqZe@w z*t1Jr`699Hi^cRt>|a}c>_g5DcRx2f)|Owf=e{?L-XXi{$}cyw2IMnZ-m8J!g!9SW zb>lGUnXbI1XB1TXh%dP|k~`f9#~}^}PT`)b`h6mZ+_lB)J*t&P@yCDVzy^kiEeu2LU!h!p{}bK$Q~t#_vS$n zBTU#6UohqO`IssK+@i5y8uil8ZxQ>ro6?f+R8!xhqHzTGnq$fD+Hp>JJ*A%H))<&K zD;37P2Q2yQzLvcf69RcR@*a5}^;`50;X7o-JuHv9atCv2=4EqtSFe#=hx3+!M)aJ! z(M;|{K4$LyIQ$OPmq(6@f&=sO&NVINkJG|Ym_rRWR|EM}Iz2n`66o{SL5}3!hhj}4 z*6r&lXJ)AIq$Ck8=R3%6xd%CWLjpB%-U}ao&sP7<#WE@sV+^=wBUg{}=1vP0Mg15{ z))gVxZ>k~BO8lTER|7q%ihE4|@f~k^ZIo`1`>?kGcg<{WNQ1KCpu^qR;NLaHF!oPH zjO{MJ4nln9v*^e(<~TwOxEPC{J!7!-_bj2k8jFYQb0;hPMbEpj*gcxO#BYf-73TfP zJNNj|bn%lsL_O9a>K{AAPHHqZV0=5+9~Z4QQ=2M{^>E7z!t*NiM~_mEsp^hsUmk}e z_c?nV^GeM6M~tU2_wD~n9EuPUi zUJInQTa>6Y_ZIEl%{Nf7&RXQMHc0z~%ImCMIWida1b5Z7v zzUg;G1NH}hYEk=f>`USME)KV+aJTmFH&JH+ zIH=z>l2=qlQhSZOyQmg&I_t)5#G;oBZY!T*&2wi<0&duMmP_u3!gF>adba2$KR+Ic z4c3W>*r+ET^keV!M+3td7sPMQH-_(`7T<*3ih!TQGMjM@_<#TWKVI&%^Txv6fw=Ww z?uKl?FTLEX#FIb7NVgSA3C7VV;d$Qj^P$w4T#{h+2+3pKN>k{=vyUJD9Ihjhd&FZU zKbBVOi6K1a?fG$3W?SJgJPz~t>^jx&BObD^^{l}dZXYF7&HLZ`wZExGOsK{CieIDGeTC@KERMc&G5B(Ag9vXB2Setx z3te`J^2XfV?#}aHGe=C>5ew6q^mpD^AY%K(qCcO}vm4ih9rKpiclvl zrjjfBD;mP>kCf1cpJS{B&3i3b7HIH*e2JUg%B8*+;&H7ZHFz&Rl*;&XY4o^9-}IT3 zzna{iMyv_TKS(?J#-S&3OHrf0((*sCux-kFFua}^dz1A@vlyIc)=a!3rnsB23e>g} z&iUNG<~y<~vZrW%jT)KUhy89kL})*;?rY0)J8_J-P$v$PyU=U$-V9-=6Nfw__SCgq zMNfYIlO_E>YK4kc2kAxVPyFpgqWH-B@XvnYpUYQ^Ya?Q?rdcf3Z`v-#^A5egf&LjW zCxmSp@sMf!UahZ)kKEhJ<$E=Kz*CWbN(t>}&RiD%5S_WRa6F!#_t}5Nv5wsPCZ{(h z`?k0dM9(x|XK83j@+&Vt4@53y+1DF)qL4oRcVvbJTcb`8yuP9I_Y)r0!pJx@s{ysw({ z;l6##(^8?JhWtRDy^2C<*<Cby)k z1@uDgq9^XNroO*|c=GNJV(&!yj8J3Ny7zD~mtQ-O_0o#+d18|xc{i*HFB`;)N1r0F zbsqg|r)?0KCDe9coa@}p5g)!OQN^72qpVQOnG^y|ga#_JTf!hP9O0fCoVPzL>eN-i zgIuz~!>5RT8WlnYQVY?pj+vG?%`(p8{`Wk~jcdpyeTSLlb2 zWKZ72G4|$<`b?2dJmR}NfbZ{*LDHDxj05k)ABQ_g6Sq+>a3uX7SLsP!?3LB#yuZi) z)ehPpi(V6$bLPL&9_0D&#Je&uuR>e-lyf8pVw*RfX*2opML+7O)T`2V`$qk+B-W5p z2PtR^W6Qhp=(4HOknz-_e?wjCwyUKS#~57We;etRNT)g1&F1s&=WihHnnt19s)UQ&+TK_2eYtesp zaU)S>M*g4P|n|!c(-`#Iu2l)c?Q!e9t=0v8bOHEoE#yK%-vRGG6em(EO zp7xEz$sOF~;`{48w@{L)m;b_$dm=klNddok7JBj>FP|dC1@dFYGiP~S@)G0Fd>D1P zPo!xl-J*WE8TG+FZOw19D;8S5;~G(6dOD5x8P8dh$EjxXm&IZW@!|VBADacQ=ZwOI zwcJMoMVZ9B?MqL%RU;IO`F#So>ph^sOod-Dzh@eCPkh}JM;Y_G2dE2t%0c1BI2*7I zxzcs4LVptT2J3vofRAPkykg*?7To}&G zipS?R{l&&S?rZ32@TFv-7~YLoZZiGClj4Od^-h1gP#$j979-_dnu)4 zJUdoXh&B0tGn>PHZYSfpr^-SxB#wILjAu*71ceE)_Q#B8%+8&PxAC06MKNwIE-3Et zxwKwJ?dj5|itfxOD>9j9to|vS&aqA-p4|0!L(F3Qx87k6iD-f>KD#*$=x^%N1e;iQ z{Nx#)u}24YdGt1h&1*q$xS)aCPz#}I$8$~|LQ(zpBJ@TCmX2f&zw%dG%Qy;8DwyAT?2t@O zap%dqdYoHKog@1Wii17lyuE9&n9jYt=fvyYuZ|U6PjUv!Ia=4gUB#j_4H__)wk)_J z*{`C;2=AZ|J3XY7=l^-JG3HCNwHda|&pfNMkGD44!QOY%bk-`;#3+o5a)^$GUyE;wLB z-%j@Katt!>R{>?d!xgOX}s#ycvW(OEq}kVTY7U zpRcM~2{2MN6seDeUWY?t1+-a^*Hae z3XuPMw*T0hJedDpM_+~*Oxk@(}Plgy>|aRCa0?ZiU(drqu8t|$rQeHY1d zZuLnqnEk}OrHtW=mS{YUv*ipvuXcmbY&QG*LorC|H5DU5>1%p{xmU*%GnreyKVr`g z?mO|^Zm-FE(Ika>SIqx?7{k0Zi1eT@ts8fOGB;vw7uIgf^>51LUsL(@Xd*GL09^lGtM=q z)s`O(BR0r5JKo3;z7{+@)Abf(9d5v{4bHc;I zm^^>x`NMWGIIyyZB8d0b@kQ+KG+BzcRg4Q`dn@my;?#WlJu(lh|I-SE#6EqP2b9N0 zUcWU32 zG4ERP*|c;%fsE0-^ZEA;v68XoH-DCL*64>Ngg>L_=_LAFKR%45o1@U<3Vp2g*W!Q~ zXHV>fOy)acKs0&9T{SplP^swg#up~nG-%x;%WT?%}fs5Wed^IE{$JjRFytJS_ zu~o*lwEIfbF(y{Zb6dJ)8#az1&exq->xE-jKn&w2^Y68p7to6Df}fgadq4>~GdBnG z?+!3~h^c(Gh3st_t-pslBI}VoL{a|gx zT%m7>YuR4d%=|Fvb(~^O>qWRoU7EG07Ml5G_#lp)CF^I|X6Nd1mn|wDf25tr zSjaopEC$j0ze-PBrd;SbzJ^d53PSoue!H-#TBBJB9iR z!O|EZ%-C8iQH(t0g`Xd}kAJA4B8D77yB6{EBWSDmZ5V=iQeA{13?kYqN*_ua-N~SKh~&NHOQd1!b4S$sycTWsml^skazmuYn)yhbPvx zMEdM_Bomid*?YQFYhN5zFN{Hb!_a;?E7L3NT}k4=Q5fG3$Ey7kjT@-#g+_U5NZ)aRf(dSq&mYq^z&in@Q=`K<9@viQZ9yL{x zm$5I_u$EI@8zHBE=04yDYMZ|+6|t?U?aW?p=NgrGI)$3G6R8K-zma&yd*dzZhclm? zq%j-lHOe!*Pj{Y~K5OQutQih82X&tsux75XK2GfP#SoMcSG#wez5HJ4 zBQl=)jNOGi`aKl#{^b7~`)wN{^XL;YhZedTC!h2Ek2H~uu z?=e429{dOXtD`aOM=T1?)HI*Jhkg(P$ia9}!#r(A7{VN>VR!Ni_ppQLH_rb2Q3b4X zd{D-^zsH2j(7Uz}8)D-TRO1j{WVykv9cSD@>4;IeAdWLE+utFuI!FE+W4@(XPrS`t zK+RwF4|^RIGxEJqHHY~8*Jg?{wn6x_I1+>34wi5KiNJV=>b%?^t&8NBjI&@Zci@?& z9QHC8lZhLS8TwMpu2R9rfO?nB7K_Uxxsx=F_-|Zmakf`Hj=3?O_rj&X5YFG22Wxd0 zY?ghG{BHIR^DWX9FI{>6WU~irQ3p!m3inwv?4D?X0cV-NpT*$8LO(3zeb~GnpU2RZ zFj&Cc+>g2?mV42DFz@ZT#3F{D!M~dH^GZeq#a5tnt zkvVH2YO_bPZyBqor5^~X7qwcNc*$i`!!e;#b$(s{&@#DdAKyQo=fb#Iva@qAy6`+7 z2>Kz0j!~g~TVlwwSBZD;sa3}N&a+Mrky6SXCSU42+b@?!bfiyU5;byd9_RQmYguVEa9vu44{5>A(1i;B99(@MAhU$SQCcU7Slf?@h)VN}Mk_OK@K125;NAz!#fYJ6( ziNDz4RXn|%-02&;&JLff>3{e83hLK%z<1`&L$lLye(ij8?m|qVVH2!dM!iz@C z%>G)^o1=Fq%FeEq8<~ZY%e1K4J?Pr5Qa;@z2q#!?OxWWh$9H$f58i{fAJvvMjm9kr(CY{*#gdltQEm@8uLUY81$+==A5Y;03QI+9FWka>8F#bdMCyICin zV{h_ttD^SBSTub>9JOgp+z=5yym%0BDmXZ_FHS{iY{*3@<2Ye_` zz~k<<%!{Tu;Olno1Rbeq{{M0Hl>t$$-`6T)2L=XqVs|0TS%ck)NJ)2h4&5Orf?X(L zprVKc%z3a-Y;45t?pE|&-v5`M@BMP;az&Uu&)Lu3Yp=bQoMD9%?1z60eF&}3w&=pT z%Dz3l2}e5NVv!2Fua~I%CXus!oxUS>bHsLXGOaZKJvU&}49@n_%J zHWsG>_hIr}6=p4A-5FPg%g+Ll-+(yd<#V_+!5hk@#3&4I<4U9pJbJQD>+u#{_3YtE zJpbFi+RE$3)=2yskAd$SDlY|D;qbwDwAj>CS+?GWd%*0q=hRVl({zA0=LI?mh3KH` zj0kE@72TOBbyB*cIr*=;jfabuM&8K3|L=KDv;AJyB98vujPvgMj%5QH(c6V_&Yj)3 zY-LYh%x*)iVXGpsbT03IGtNde{e^8hJqP*Tdh2x;n*`r4>xx|gC*}Q**+cA#LgCyA z@<46Y9%p%P{yti2G@kggy2OX`d4>8J2QCY&>6Eo|KN<<9!v(ekM-? z*I#ny?-2RkMm?ZSJS>BGxT4Pl`0~%l7BRpQ2OKtFo;gJwq!*k;H76!CCKl^HEyMcP z+&wBGwpp?T%D2I&9v6qNmWNUInJ&q+_PZk;0vuEdj1R!iB* z#TKo4(krA^W98~5jP31s$Un7|oi^H%7aWI|LmDc_O>u;p{m!A0r*S{sg*d$mK|}9K z*SJ@>CX|{xgX)Ow{k)*p{ogoy-~3MQggwd`=ibH6WoO$vViV(>Kd@O@e`*vQV4OWW zs>K~Ia%9X|;}ynfkBzXm$Yh=%N+yH0^XJVw#b8d?iya8F7foi z@-ODtV;_klb?c^nUqZh@*1otx6vrb_~{i@(8YyB+-P5-|Kg z1Eu<>4H~pfz{3a4l@B`FA>u=)ihoed`lqVjA%n z#(9}#x-h=Nel3uD1ehmcSgT%Rjd6T>2a!EF2IYI1hcDfe-5J|nm*~l~VzoTrIL|6; z*Bd!L@E?CZ2%DgrEHvGO7@)7uNB+cB{i z#JhIE=}l7W5wSQKL*1BrcP0Dv^r8Mi?pC`Ncu5R!FK36!OL{mkioPwa;^2JV2_gBR zXuUrU1;x}WCRgV(&+xYMJ6Vr<;?j?JY#4DCr@uO5oI7WKlU~Dcjy+1qhiUUwLpeIc zmKXvxV4WK)b))R?xKBJ{@6}VT8RP_Q{_LtVSMcbYD{SAX;1)0v=Zh+v$rjXo>hvstr^9VS`@upS^r(ciR@=yQm;$5qy3u~+0O#-rIU`m|ZC zm$im)Cd(QlX@aG!9UhDGCeirQRZ~tR9_hxK+qm~|wK4m%HMiO4bRVcVnHP(VtTUXO zYDo=wwl8OM))*NpbzDbZ*4DA;Us5iahBL2FE9SxErWo9kb53e;KboaL#D-8*zKVm( zj6e+PAAr5<=gC*)q@JfqD8{NCqAtc*Ln9^;WW&KobuiqRE*gj(sc^fBhhv4;wDuV}5P)f;+8#C)6L0b4Loy4-V6d3yAez z-OZWt`-h5r^6Nu~Gbbwpq=9@UmLBE4_Vn}IJmzk?JN-BJx1%<9C>rvKtc8*P>LVfJXPNCT zd)#B3-!=Ct^PB64S&Va}OWU#^4}GC*7X>f*y6AkJa|uggxRJS{a$pP`L;3YxG2(m_ zd%%@{J*^f9$8y%vhoab54HX?4Q2*%`v5uA6V%0dluE+asLXG^4&-WSDaWf(?@BcVF>d!b?R0OgQ}W(6de;VPU(xR zo}L(YB>|^gR^f?;3y#mH|K^Cp2uQHU5PF^l)vCn%4tDe$riX>*U1$W@W8;H(IGa}C zZiX`s@wswcQHZ@$JyFA%L5=w+6t46~`>UJ*%;{a4?G=Ku_5bQ4dA|8sW>;j7CycY! z0`Ib8iyRTiIOk}!FSFC|!+OR!v-T~q?G<^2jPtE|+r=v8;dJ(ZCQXvWeV*YBtBF7B z+lbM;m(G@uFSJ+^=Ij|mIA55V+e3V0Ju5e6JTEsD9vjHbFrY`Q?pJy72hMYSdA8SG zk^6sQ?|YDUV%A={zlcRZqZo30)8*s2v8e4FgH}@}$tjJAso!Bw=Todcqs1P_gK_q* zr*L6Eo=u&H4Yr2Tn{O)EpJMNJQZ3!*97>fIkGmII!;rkhoCVCi6?4#gwg+0YrmntK z0*V}*@oYsR1`XJZXG86||3V*@nnRp%+QNYPb*D;>qw!IDyzG{MUxos;`nbR?hj_^8 zwU|}ug>i1|HBvg_*V{n2J`aT7fTGgM6wV5N|64zApY*HjM=}2%#<^L5PuVCJN33U@ zkGSfT`E~Wf55{@I;JYHORt(aJ%Vmn4!qtkL3KjEhQL2bx9*$Yd`|gLcsKb7AmmGyj z#gjyXiLr1Ye(_=E0I`9%<0~y<6!qJRPs|VfSvnH-o zo|G3JB$tLgNlxY#`E*7stW+_$(<@lsbAi3cch)P9TFT2d5tHHnTNVGbRMnfFeIw$? zwR){+!#$CGpQxLWl_}v%Aif@nN9Kc1(#vH&*hg;d-uXkg1LO`h&+zkHdlYPR!hkD@ zFglz{jT<`z)K0?E;&pI+XbbI(L>$_>6~;C8XvNQD+ssW^wwd|-H8E%2Cyn%};lR1` z_rh;d3#|~Cbs`46ZkW0+d3}HS{JW<)amBB)-bd(D!#L0K@GU#%=ZF)GbA)e)vOWgX z(rM2gWb}Qpza?|BHF@KOyTxGMcXz^hR+lUmFHe)Rww^Kfbr+Yk$PqfiS@XxKq91Dp z&u8S-m=6~In|bcqM8ou5d(rb&EaImT8@*d!oM=SuNg{j8)oDrAzpR~qmPYtEWD!!%4_&ctk@Gv565`*=6R7AY95D=7W7Ic zSIxRdJk~T{B+X3?Ko9OUtSdMs?HTEfRO&8%-P|0tG~KAfK>zeC1L*iTVt$(>jA`hA z)L*u!Gb#ylL+C>pPA!@+Nxjs-gK6rPce(%J^)HUJ^6sy)XXW$+VVp|1ZT2XQ#W4~%B{duhi%AJ{$#$1fW!Dp-0lbUfKnmkWC-zJJCIKm=XxF4{=}?s?>itQ8_Rc#}kBu&PelihygIi!#pabrXr_S)wAxQ6U z3k{bf1eH!ii&3_C|0NNvcg;{38HvAc@kj%6z9@cd+)U02)} zZ-((b+K|WiaF^J@IsBX`_K8WUVj}yob;OP=FE|K~5#-dJB(I}bDdL$c4!q;Nd8UUr zu8zgH?woVzH4)pd#-gIUf z#j+ps@$w_|&eJxL$MY_3&zieIUoF{r8oj@nYcgEo)pd8P@RIxz%l&H&&XNB=COjTP zZ$4B^p5==`*1(76Es*Bvcwono6Wm78cai8b;)lC1gor@jOmT^Af(XlK#$`1ds$ z+iZ!;{oEl|Ze&drO%76EqBu+ZMwQEblNsh>ICJuB&YlikA1)fM;{M_%)*-iBi*Ahb zF4oM&Wnbi$msrcOe>-7uMy~!vKI~SW^8tDCR^EMMe-W$d6fbw|9*aUdajll@`|^tz=a#v*MBsGd zlZ^9{nR%k|4stePc%HzWsk*V~l1Ch;bh=2K$NGVo#;6(Hgz;+Dy5BfA>GDUmVLj~0 znmJGFq+D=;wTBzeu;vQ+9M9u`y~N^Nt>hJpsXM|NL&Kw^-1Is5wEnEiEsm<2Pa$^q zG6p|FW~sNakM9~!oO7T{sk>$bdh_o4eto8av^fN)iND=m_SRtRP=9PX&poNUZVC(P zuq`d(p44uA#k3tR=+B&-)NYJo!hL(>&8L^mgtm&#MmAVeoWy<1a)W$bE0kSIg6RPV z1K&VuL0Hqjsn?leclOKXa}rUzdZ0S+nF|bu5F0Vys(!4=9kib8o7NmuCxJT@-6P<0 zwYU72r`a{}-?^2yXHr?_d}B1pkA&l)re)V`EipZt+GPz(MWUWN=XdnhJd+^O`0p;m zh{fy8607gB=QD~z`Pgn^1n;pQ>{)(R{*tvCQ{Q4Uaqkw#WgYh25tqqBFv*tp9wpb9 zvyvk=W^(>hVxh#Oa=KEtqyy)2>;KkrY2@M>JTKguO?%sMC$?(7$ss%I`OqM|`zL=+M7j#*(~i zrwxW2Ny46$c5Wlh(Y`PZRH-lxHsH90t*+n z{4dUbxnlo&p5F~_C!DX^B87S#Z@=%BJN9(IkyF%&h?*d$QBS~CgS#pt;?>iL+mBnw zKDuR3gX*T_djyjQTf9=y#hP>D4a78NHI&BY5HDihFuXWUGG#y5gS~dkeL+(1da-yk znz>?1mUO%h^Dz75{WDlDMF_bC)ea%*2qK}^@Cn^te-Ed z5+rltoOaC5_on1XI>Gc<+s0Yl&r<0Z@s-ZRG**tTk`A3_UDkkS`0ghu<00{hiJWaO zsgFnGO*G-Gq{D*NIDVY{4r`3S@AQlGW4|+waUQ12xgj}t2iUhS8-Ofb;@DCwwgnG> z)9Famz0J=iUKdVBsMV1f#~F4qhmzcfT0l}F;@)qU zo>8yEb953$^qDFBqK0<$z+@CeE>}z)>4>q+L!0O+4CnMW7>h zsfo+YN*fIC>BNp1=jBlb2!F;IC7;1wrzatARy2KZnQN}hf(~(31NQCTwP&N|2=$U5 z#A1kQD#Evh!G2{N#?6%2#|C47Lp-uB(3?-gA1h}hU`l!uL>3b-nv}@9=CYK%!41dg zFV?kTyfldT{FzC~7Nu^caJipUE>P#%gzA z8gx0g{p%mLcf1)=ouV<5abI@AkxJg&sXamL$khk?*>Ba%A@}zpwFYm7qaW|i-NBwP z;clSbZt4aU+oFR_5XMHtBffGvwoy0ljAH_|r3S#YjTgSK#z?MP4^w-&!Q3ke)3@xE zjE*^>G9(!~?t0R(arCNlOF^U1Px^J6IHFo76(iOTls~j_!o9C4_*!;QPLf=3|1Qt= z^v|-P2E7%ICE{7HTEezAy<<9&3%#VVY*?W}4-4M=wH*KNJX`*I4|Y7GqZk|IfWkAx zZG-kG9w#~C;5zz$iJ?+yfiHcC=}$g(jWmLJQejLiZt-#HDe<0%yps;@eIuY-ajD+ zl>SK7tO3u?<6TG`wB9)K2QINUu}{IuvD}fdr_OD|#pv}!MeQ=y$-7b!%Kh$hm2qgS zOMG)F-&1}(=3ezjZ(m>hT1RjCMho!C!4rxtiFmtl0Cp~OMg5~mxZm`f)YrfXz3(T( z?ZPUlg0qxFO%C&gB&9>yF#DQaz>)b<2ivHc|6`c?0$S)!$Im=qQ$lJ3!+EcfV_^73-rN zQISE-?bnbxB~k0|BK_0?w@Kw@(daUtv%dk?r0Xg^_x`Ls-0ENu&t{i3#EuT?KrfNC z0sEA#X~W?d#NL(n;JMK=uz5DIPX+trXZCp2j{OSrhIq%l^XHs>J>}lz*c3crzRx$N z)?CRlG}%I3glg6p_1EIGegrxM#Nzj#4cK)$jQXb3nj5<4m5`Y#} z@fb8?DLNC!n0zwqZ?ag$itLVEfvHT@th$!G77 znhN{*OQqO2`VlWr!_tsu(uev^*xh$As{B`~6%Sl+(I*Xe-96-1wY(9KmV%dk)8u8- z$Pam!fOV=(26s7E!3;i+ZFm27p3k-Vm-jXLemlj%UJ zhSUShEQ`dc)BB{GtQVHeW}KZLOCyQ**7YVgOREV|=aE0SoE~fa%z1a$Mf3!wPBXt>a|3-xix~TO&P`^g-~~UcMGuJ`HD7^9@}b5u&V}KduxTB& z%-IK;ecFllO74Q0%;_NfB+sqxmqPs9>yO|%2}ruO9aHkX zQJ|Gb&*n9lo9K>FW0G)XO(Gg?bH>%+WJDxdp?I1D=3Y)g=AR)L%vnipzchR~Tnh$W z>@e1uv0Z;yiivc<=&9-0UOq)qO?82?V>%}5>MCle-+L%Njd>%_VDn$SIw=_&s-{Vf z<|^b=QD>&zzW?Gp%JN?xs!}yv?A$$-E($_=7uK#hevZ%p`A&*gx@&zVv@y z#D4MpKw_ci`J6AH&H~N zf@e%DH9e1`$*~YTofwBdM^14UIuIXp<54rSg1WGNu;Ki4=H#Q~l6b*inTYRk2cU{~ zBd0Y9YZ7y@Khg;c&nCkH>3I6nj@;f$G z@h>m8s8$oja6bo3WjqgvONvKsjxgYE>M$#FDZVXvXdCI5*YlWU_=Rzu%-PDiA5y)a z-0gE<9zNb42Z?>INFsKcI~o%Y(%WQD6i%En#-n7`9S_(W#?eP{68W*52@Z|pdwWU! zV^8wxJFP|h5aKQ8*r$km%p&*cDC@<`KE-I@tis64jQNXGnD8kS`@&=KIN~zeB+~bhOTOPxypfDULBQIh6W$NLDz{-m|BcJbLmPrttIs2Rc`8is8 z`y+1@=l*){(QU2|>{-jLwSJHJ3hK#oCZhIvjjrQdFy(O)+8%v?#Xs%Q-64hghL^FS zzYRt-NJ9a+UhfMn5nR0(`wsm*|BK*KmVqA)3h1L{iErskF*;x)RH-(26PAf3TdXm^ zwF5L4FTv(mA(gLl!&$FXcugykT-NwwuO9U}QWvX_o({(6*8lDSnasRz@SJ($ZVvUI z?Jp=cIXPnMMCuOhwveX&)mjXX#M0*FQu9*QaR%hx-}@u|<<*W@7=;d^69&g{M<{EtWVl%N6BVwc-iT7D_;a&QhGlIiQv6?tQ=A>wp=;k88Dje6?XFi*F z0Q{DH9 zDYv)tM!Q+$1FWp09R1Y|@tlvGtF57&bju098YN>$Vl8DrD!pkor(m)3H@L5}g05W} zKK^=(fGP{@Sd>oxn5XD7)f_h?m!S5q$9Se~fyCTQ`cT|Pds9nDEwWHmwiEGLHmGZo ziQ`56sK4ceAl{E6@TycpU#-;6)Gi2!P*-OAAcxw9|64x~e0a#9v9|+Wu8KsK!AZp> z;-UjaM&k0|h0<{9RZeoHR??RvQUv=2*HO#`(|=03E6D$v#XW>+9k9=u7{4p`U-HJ{ zP805#F<)%jW{zxn3HmaJlu-LDB9*xJ6LRgUmSFfY{x`X~pYk@tafJ%=ST7EAJpeT| z3KZ|SFFd>g*3KbFkDy0Y<}KVj6a@Rhu{ihhHMWrh@5b3c;HMh+4DrS7=H%6nuBUAM z*^^!k3GjT?Na=RT6|Gh$(p#vR(sz?1OuHweQ`hFo5q)goek}!$`ZrVh-&%x?g=xtC z*i@-=&J3ror{mDYrb?%C)MOsL6n@XNl*vs^p*Xk<4Gwvfyk1T@D zh%9XQp(0Pp4nJ6LZl7KcdGx}F;hx3mdZy|#d9GN{HHWu?;vqK!q`^SL%N%gdJ;% zW2NNkZ7j!}&(!LfNL;&XHB3eYA@~z}`206Gu*DxsDv9%7t);BB%LiGv`bDrPN#Oty%!y*(UOe9`kj=i-E6S_M+$kx-IRCtT9C({h8x>^ zDVNqYR@UyXOv^Gx*0ZJfQ!`9i-QAe}cv+}5f3&jaz=iPAS%Eq^-IarPnWF4t zHdeRK!vPvCw^O`gJ0 z!x_7pafc#WlFqdAhZ}Q9+|zvN`dM=7dQ-D#@?EI`=S$u^+an?xLAyK}y{9s7yzPyd zIrJqa_h54UiMY<$&tB#e%@g)mV9GzgjvTP=+*cpKUB3%_F0N(aavkoMwB{Ur{#M)- zUeBN<<8uq+D(3Lfzcu z$a7taHJp!^?@PdEN4Jutr){90se-|(8PXbWb4)q+Z~c7Za8XI-P$#IUQ8lQik>VJ6 zP_bIXNWJSyI+OizZhRzq8u>|!UXyFwm9r|3_0q^c?4fzK8{arCjn||mnM93@xYtrR zV`IY_d)KrkSbd+Ian>XzZF`_Ud%hKk%pnSW)ZB}Pnm`rBUZuR~r#)T6;#?z}R+VKJk0=T-x!9XLdbx9vW!Ev<_zn*T`$qZi7qRxaZP? zbE#2%Fo8IScN)37Df)OFON_JwwRgtMp;j#UrNmFco^^IxY8sv7^KpefSeBd-)TWlv z%`|jd%UU}-0i$lM!H!d$*DRqw=Hs1+=IbZyuZu&=pclsP-M$!&CR{_{N#gX`OAwv? z1~1ldpUZO@?itoq=Jest!Lw|%vTLDiZWfMiMJr(1NJr^{Fx)@A0`jm1$_0z5^VTmD zM<-e0Ik~CT!~ynXbWjvg`|uEV#sBvn9M`|SIxEL1lzS0%$6`syj?0pwW4;OOqVlOJDw~L}4QY5b1{#Lkk|I6Ve?qu9n zdOjcub2tmTbzz7!XC8lNE$&!}>CzBi&f)u$i$2j=I<}TGb7S72<71`M7pZxW$z36% zWl{n;2rBmEheC6uW)9J?wvR^RhXdMce73Yg} ze$`0Bh`U-4bNH#Pg$wWaxk70dhQcf=1LjHe z_~!X-ewRJes&0z(!Q9iQcG&;M`ExI0wdt5eu(P2CgvZ^|N$!@YI2M854;GhpW?fXd zf?nPiCYSd4NNxh>_jQdFrR{r!LR-n)vO!TA=ogCGyf?dfj4wU0DippNk=WOBX6b?> zp?Lm+9_wFBOOJM;kNIQnuDiRG&JPHKpiWj$T4<^3-7s|Lv*T}-Q2NtCg%h0l-AYI+ zZSaViNC(K<>6cnMCX%{FgQ>ytHK_D{H|hehK0jR3rS$a>T!s84*Nr?aN-eo13d4|(ZIT3l&4oe%kcicgf zbx7^z#1%teq``Xcbk^?N9$QX_l}J!bwl&RRP~3EOZ8TQanHYjC7W4-hG*`Y}5CUIUYD#Ok$On3b;#L-a zZe*0anEb;tPa@DdI8ClYeZMWf)WAHvLN?@X+PY5cMZI$5?@ASx<^a3$_@8~A(^<-k3ECs@kybWzCHm%JjzNBxddai zXA+)mF_iw41z^yy6dYXsK$^pxIc`TPyiN7UYxhN>cN&6k(y!8uJ}<7RFm|GkacgSZFB_-xRV{j`Gdry>F&Mi%lR!(f!H<)4p@ zl8bzUVHH4c+4IZfXV+M#Sy9LJ=T^D|gB&_UihN+9F z+3wC6gxw!$v2_4$dIe!ZURT8->T*1L@h^|@i($5UtFAd}EsEq`%VPDtz826fyzx;twca~e>^Eq z!1V@2vQtwZoT|q@y;r`v=PGg(=~Hj0VI@V5;2xYv!v2d5u*b~<-~1A=$8j{i&_CrZ zamdG(&!w@Q1F(etgWtBdQ!LEq=f0i%_5c3)KYgSlh3nO;8=7OkRV40ZZc;mGTHqz; zLy6PhsGl9QM={@f(Zm_@$!H^`;bXtF-RSUpzDFNnEz zT*(}A?zXI+POoim`d$tDBPSK{wJG<0>$ebd$wT`!lRD2+dI-n35NusQpR$3Ygk>FS zU-Q}N)MBbw>lljFhp1uE*Fs#c4n@blyl0I)#f3p(7<7R-w>&~jU>}fb!g{hKL6nUT z`wtr&WSJ~}NudbX$C+; zrnX6-Pf0`3h&`;xD-3Y6^E&A86xq zxfce%qJHw^i_-k}#5WrIV9>Otiu-d^(0E3F+5d_2Iomw-rY&ZCR_I$gp-8>{h&imO zE4R|OfxMA?)PjTv*zNI_LxX zt8Drmht(Es5R4_%?<@S?TG;Lh=Kd_73!}bbmUaj%r%(@Ty(ISX?#^P&cfd%zE{MO>K@isrjmuRVM6H;8W5tXr3`M#KYa+N3v3qYeF^3R^8h(rB+@jZf^vqLUoN{Ae0i^@X(R{$dF@dg9vj}o{vD6 zo^9pMW9^YZtqKS2c=>E@0FJRXh&Ilb-%kp{nb*{T|9nxlEefKhegqz@`zB|93ZmX5 zd$z$X#0!I9>~{I<-KHy+9tfr{J$=$E6yjx%5IixAKv%B?V$}K&te!|uc1I7PTPqY@ z?Wm8iEk>*!7Ye(L^vt4$c|CI0(&}*ceB5gBfHD8NhWGX9%_7hs6lYn7ZQQz3L{gXa z3;W5J8GFUX$Y7lGjYgAzy<&(>AV!l5@?^{oQP0p1dj`c~NvAcUKX(_)n#92~F-~|7 z?W4+B;%*NoJm=i}-S+xItD8M?5RX4ai{vdWxi`_9dS`lOinsa1e~z-(+MF*r zx_aQXZ3sFAY?B^0^GBxl3{*h0Qc;@r+fcnCnasIKG z+9>@yi?tJj@!g)Bp+_Ud&y&Fjnihf7j9Fsss1VeQWq$bLB$jR>PENkm(_c|yWP?!5 zWNx`qKV6v34n-M%?!kU*M9#)g^rTMH+h2LYkNG4anL5dld&M)xwkvD&+twvw*f8>B zxaSqOKnU|jLC~{iy=N$d@bSl;uH^R?9u(gyyfN?*xe6_|iSm)|IJGer^#^B)@o7$Q zpAd&0OWcKQX-AGRYm&CTgtx64(Bpym3e8fZ9IIl+QT(kULfCg`Le&e3QP4 z=>z4fukA3A^>dMWwX72pK#Y<8-3w33Zxlhm(+KQ)@HQ%SuNZv^16oNQE()_c2J9jQ6c!=g?VFBxwtW$Ug5dK zK?2SQ9d!U&bB8Oc{TY!*kF!Q^Ij28*RDA#Bfl0(kO2-w6Hn*LzSf84r4K|A2#M}xF zarf|doai^(3e6vqD`GHP_`I;7_7ruf+}aAy7M5_bq;|*H<8nR89t z?h*9u&X_Ena`nR>Zx`I27h-Vr3H_}St^SE~iPvGZce*J8y~!nbd0#!ckvXJ$%#({p za&O2EwreBs*nE?0kwD#~29Y?SQ7I2)-bj5Ify+yO%k|Vj5UjU{Pire)wq~6iN6&)j zA;LO{vp}BDZw1rDoNvK6q2OJ4*g@=^&HPNigWjK_L{UWuX7Y8kZ-zLc;OuV#y=9}< ziN1Y8|MNS}KbbF9^$*41yZqkV!=n5x_YwHqwM#r9-ZK}iU@d*Q@kQ}-Fne6$R1?}= z6`EuGv7fWafu}Bu*biQ?Jw~tCinF5o9arpHK)tEPWuoqE2Q*=SIQ`i!>PcEbTZ)BA z?G@r&xH&Xu#KIsvO02kSiiJ<;1O9Mj5 z-^^QzrMiANn&6CK=h_-PPYLB**z%t^U)@%sKD*Qub2$_2d-kdNetmPSVDI)hNMDY9 zX$SM12xPt7Dj!=;o#A@KNIzYdoflHOnD0H-OGET!AK#{cd?(hio+E-09}z(>%u!{?dEh}dcW<{`6BS8LxZZ{{^o?i5sTBHbrqQ#$S}m&Yo8#<-7}(6; zElzedq1HHeiW_ebtD_cDqlo)9(=$ZllV&g`=J*D-BBZ@7?#&O!hpnsR+AUl#C&m}n zV=wD}eDBLSo)g*)jnqFpD3rQr|HircVyU`GmMK~U(hn>6rFu{kbEuhn&Lz_?2UDyJlh-MvE**pd3DQJ@LmqqKQ8Vx=I6yYztg=W5@!UF`^j0a?=4Z_=8w86Y9_qDFJ|oY zA|_2ejuj6@{w!BS+fuJ%%zbgAmOWOGmt+6wrr5*zRD=|RaVIZ{FH=pR4v#?#=A6sq zd^B1?Zo}oHqS$W%(ui$2>L23nm?`>j#(d&Lrr2CX&w3pdo;Ru`PH8#gvZW7p$5pHA zoTLtU2PYgpY*75+QV4Q5OZeaXtcuv8uGBZhIe*Rpr<_z9t)~|BlL&n9?IOq3<-A~3 z1YTW9muK|#$8~**_YiA3e^>5Y695f2-hC}K#mKIKC?*CGXWv1XObo=O zs&Jrkm>5Zps^&WS^*Bx!o`(Wq;TVob!yUxeCe&Njs)Who`Di|#yEDfxi9T!T&&ZkG%;^Opp`|rCQ`_t2(9vSA+6i&=0bQ`t zUM}6}ixZ5y)w&1zHCIERe)sQr?)4>IyaPY*-@V>|QlY|&5^h?gzs*QRz7rbF3# zwhPB`Rg_rNFc3jw!l`GPF0{Y`l%WbJ6qz;;hOY z1@tHhjy)o_1@Jj$jeWkwS>c#Q-Z<-oj<_lUoy}p$INzUkOB^sXhG8sc56vEl>YnrI z%f>y)n5SZ*dOr8dqA~U7BcTy)f|l$(m2*xA+uv3Q`$KI(;Ut!=bb_+j7nK{g$dT;9 z&DyyjFYc>Bt(&Y}um5`www>9y!z$jRM#U?2S{`PBFtd#<|1Ov+CAoZ82|U1l&SK z$V*SM_kTbf!`xARM&A~(o&DgxRJnB^y^3t;U;lKAJfE6Q!&-Ajb^eIFn`f{1Bz^I6 z?#kKJE88C*j^5UPC%E-NmhM0cc#K!j1={#0+v;hyI~2 zo9zrSi+}%2&cgHm*o(kL{x}^(Z`rX?!tkOmjy2#jH9B2b+jv8R&sSRab)r>Qcla+M zFXC6er~{ri*4P8Tl!zE78x)svHvjO9Xko-2fp~~d+neI=e9AA5z4PT~qREGOsDGF{ z(e*xv@FnvxhVz}lYd?xFvrKSn4Ken!*Tu6tRtP5dsFqi<=yEOKlouhTV+w@S$teg?p)8!@ACRZ#_Am ze&|uGLw@=6li%ua-!qSA>Gn)HbW{LtSn!IHL4>2;wp_W1 zc>t64yXDjRzQu%-&fpibB1Pa6ZMe-Mt>9Y4wqLYaS_tMInEp(yB1e~PCn^g7r< z7`-4S$(WBnF;uK6_rpg%3ybrni`paUANM32lioXt$xpm6D}#4vMV#;|a)TG2%{K+h z#f``0{BZ8$I5A&X_2S)kfO^H9S%!vn3$MwQhq5FCPj1xGgIrBnX*f9@J<}8V9T(`f&$#+*G6nz=z)}Py}M+KQ-3FF+NlcoB=N?XXw+4s#ZRrmAs zL*|_b%-ixp9ZqeZtHeKZvzo~EKj^1yLVWK{FWKvzKc3a+`;9P^?=U__)LOaL-CDN) zD#+-w3un(gbi|6kvxk|h#loA`Sh$-!v{w6t@;PVRgSclGctPAOT!0httg-985JN2IA@>M- zJ*yh=xZZr2vQ~Mfqfxf$+CtzF`^}CYL`9Sps@xn)cBxM*9{XPj4Od#GzB z_~FfK-->&gR$1e0j$hjvEt>c56dEpRYjYZC7Pgt;q9N28Acz?zfeGMYf zC(lB}^kN*^P$O(@ve+48jZws_o7rv?=hm6QlQs6LtdruL{Q@-Mc^*{nsc80dF6OgN z9_P$6%(H!!bLGdqHOqFSFN8yF&gH*+7w;u27&niAljC8L#eJgHZvwDcyNfvf+Y6TS z-O<}crAQ^V@JavQIOn!IS6WIx%?XV2fV;`1iyh5i!8k8Elvk?nW{X9{g?6p`S~|J2 zAKJ2(`w`kueVotA;q?*t^q{@kFU6lb&Gb!MG)V31LBEfhaG0%~tiEXEPppD|j_q94 z^XGHFU{N>@EJ#t8bEiMLEuZ%Ro7J05`Moz(_~w5`UD=vmd(^-g`K7kJb%P(`soOO} zzo)#E-rpAwsPOZMrM$MOFT$8-+Du;|-}mswu4HnUzMYomOz}iH`^wVIjYZ?ht~kN@ z4wXj4;cX7+N>0hmOh3`Ly)}|Kmz+S{sqT0)BNIW z?5tm6|AcwSA^$kvL$l0Yu@Dp6Q`JTdl%FYDw(hboJw4E4v@Z{biCX%*WMS8?0Kn8X|| z4yx@>9sY0(h*Fh&dhQ3QDSaDDzm-&d^n>MDYACl{RT{I!53RQlxAkeS-oxH%DLFJR z6yfUV)AR)AjKuHO19ftY4=P@(uslgmPQ6C#-76fq`itd*`#fOWi5^InH{@$-7o;>I zuYR(QxTni~klIl=9cnBxa;*@uoVwq^>0;q6Q%vbjEs3l9#N16rFk`)O>qC{8)N?N0 zGtT+lzKXNw=VCf*kH#-F$}I00qY?QKjgI^lHA^i~$Qod4afQ(Q;D9SP0}(Q7jOhK; z1Lt~rAl=4WeT&cIHlu&z9J+a7X?Z(SSToKo*L#;tFfqdj#<^2Q>*A#Gwiw1ZZ)mex zf65JC^tnObx@J=iboKnPV08qlCay6!*4rQBi4pxWxM1MV+OPT}>*2b83=Y!gWy@On zq(9M8MDFv0>8x;k)a#^po9T!98sP}v-b-OeYzBryveZ!R2>V99nv6tt6mC+gXQA01ZHKDg=3&(TxUT=@SyAurua;(v(6KQkxtn{eLEFTSzD6*JqE_$w3nFmG z9K1MA9mD-^M3ZTAp%2y~UuSl|Niq?{&NS!l3Fq&*WszSm(D@To!(K`8FIcAB|RQ=j_aN zML0G#p09Z2?1v?j!x1^uRpFxa!{nbTyf%$cv>wfxh&kc$l_16Qt5k%iM_^;!1&S0y z`hW+k;Hc`XxOvtGy&~udTdSx35AICwIibRed~0BK zC`3YEcgX%8csy*j9N5SkbMSARQx5Jg`PtGGk&JVvpNg?2Gt8jFIBVD#>Q{BM#YD!r z{intTH+Tn?U1g0oGu6QOJ+WNgk8Vb%4LY9p!vo?!NkT(mnd%2`>VEXn>ZVva!w;pI z;na=QQ*7_yhXliLv|T$((eMMk=|3{ghpZLxcYLvRrwTXDnkkO>_+nY43bU{2E8H&m z;Jq8UcT*cHoQ-@i%!?XC{qBtQedC3-%;5#|r>OILcw*3yaB7o&RUdlmhI_ZdFvT^~u8Ry9I$6~qhBDno#@8D1-mNam{7bosc z_zV_d%lJFkcyLE_q5Nr$Ckod7+YeT6b0~?|GR0EHS=#``Qzx52n{jSv*PvurD_cDN zi$7QBmQ09doUd>W7+ha}d!-)+@P5pWI;CICyjn7j^VW(k1{0|L=tG^6d2i+$6t&_k zI6WMH6afZn9x&$^grmM|tigz_d@f%7^)ik(_><_1@?7SMt_B9?TD}+_NdM^Eb7Rkv z|9#S0g_S+0lyXsV|FP))h~Y@aPXo+7b&otD_ye-VFo>fsESEIx-Wq)$Efzg|a+`k04e4{G71 zY!YM7&O$0@UPG3vMNH^y%+6u1ese)=Y_$N^WBB!Dl_K+&1%9xP@U|!r)64Dgh@MQt zt(uFNq1;bw;DM}PAJsmY9=LJzUwk8^(eM(pW~Rvf8|QQDN~*@0p%vpiV?$0>BZh^XfY1++p1&9GOl1+|MM$E+y#@VMJ zO@vg^EkRlyq;-+DSYoG-!etL#rF7io;bpe zt#ZqHZdh*Wj^(XdOLJdR%Wk*DKRA+TZc-A_#1uu0GbN}>m%t1y80Wrd$O`M9tV|x7FkK_@Y)) zID8Xp$-7;BQ87Fm71gce(d~Wl;{kK*mp<}r>alNHsX|w6L)n9K{LN1EPfxOtFRk>3 zHue6#^$L^qUwh#vU-z26L|$#-Nq&|JQE_>4u8}*&v}C^!RwkERa=}x^`Mz{lKEA>M zjrX(u`C3c#IB1QF$GA7WU0dX{Hz|qae(vyrqO!vR>P%Aiztbeq_Tp@;4Wj1QAsgYH zG6O#t=Tqy##PVe`VaB>T@N=?Irx8=qq|WjuX2<2`|Lqrdemhl+G`7dGHi5W$ZL4BX zD>p1zz}>kdePrahW19;(1phNn@h{CZc=^Bt$H+yA8uO~;$Z}J3CSKHgi>6xCvqo+_ z{oZ^wse>o^;Bp0f?O`|7j;!C#Y>dF##Cr0AS@iNY;$E{~cR4cDA9L6b#ynHXE}R)< z90*4bU0b=mKl?}9a6IoED`yeI)YA%wcENJFt;9X_5_+ed%a`36`XilrxUSn#xhLz8 z0RvU|dh4c~Hp~x=zEdM+;YV3#vM=^u4?{?49dY!A7ry0%Vd~d<;wJY{?yJHuaFwR8 z=;(+Yy~41jVQmq&)e0Ybhq0gfB{wQJg%$mecenZ}KZgYIkDv)-Fvo}C9h z_4*;&-2rtftzdh@RC#a__jA9^`X|myOEL`9ynka=k)Ug7>8E5<#A)6K6a5B9wRK9$_H-wY;I2N1c)FlBl!G z9U0`!3~4=5$e*2X;$aw0Z0{+y{jkN_dtrF@E}oTMXhpcPwmuZN+X83%h^Y-(Mf! zTHjjpvJ~Xp=bq=BefHVA@u#b@dm}5Sj4+>l~~aL%qZ`+;e|BhjT^d)fHid zm7iGS9BZWSQ%s~)HRqyibU0eQ?JVW@@kdQFUkq$_5XW3O+n-Uf-q;Tg%iAMD5c4Az&6?hl*JQBQK2C4BcHiX23#pOF z9A1B3ZSi#zcPwofb5%Q0xHkk%dU3z-;2`mnyO$P5)UtdxN#xa~KQ(KWzJKS6BhI04 z{1AgL>L}66p0gf)eZjUw;b9koPS;|nBcCD)y3(6c8-pxgt#B;n4(*?4I1h^y36Fe0 zw>#|Xs_`DC@`il<*ZQObMy&pdPCIK~r)qPSaA+(kHMdf-hb&OLivmfv0S zKth8!9991)df?{+GspM|)?^=)BB>MdbLp*!`=OcFuTJCUwQUE4G{0Oynhwy zgFiVbm(=mcjZJ0%@on0q4>b_v+F%_iJE zZ)YS{L^77^sZqOhlvsN>0yTokMV@#>8q59oY19Gv-+R!+HpArS2rC$7liPaecVRYr z!z1H~MSJZka*B1tt=eihPc)Nl37Fd5O@qB7yaf|Sw(y!xFL7dT+Ya~ zwua!yCwgSgek*t6SslYWCG3r{7)8u8o;7X1M(u<=g81{cI4mw4B04yQVg>shRkdki z?cz}ENsoiRrI#>0&2yW=7%tX`lQqNeZXvmOdlrd}#BAp9*)^!VNo1CXp@8>t*zN-& za}noXmB_n(c1kRBkHFSx!Z;13wqT4G!v`nEcz+NXYuB9)QJ5&G4 zxU+DnABbS;6Wx0g%-TB=W#mCww7eW6!dg z&wW8VxyUulk^5(Aga%p4Z;b;n%$D!Y?JRkH59W&LtOH->$y;5Bc@E_M?1&Qizr!K) zeB?7yR~ElMhM=%2`5t?kh!}GGcJRHhn%G-BWNdR-H!k%t6IPj_Xm>9TX#*X_IQpt* z6F0CuA0=8<55xS2aahndT?EVs!`k<8P}f@{CLIsMEZ!ad-FAuT6Umq3v%axJh$e5t zk->WDhTBz9K+a@?lk^(s_)^4?@1*8loztX0VxJY~yl(M`j51c!!xX4&#LlXIl;V>{g}wh`NUv+n#D(9cjYsXDGE` zsiC)e0~LD0sJ+J76EWVADPg!9sm9{%*M#GrFs#|bpS7l3Xrsf?{~Pb_LL+5X{RqT! zN5Fr3OJ$~r;GP^k&T92l9TZiKbc`4b8XDPRj(f66VSF5aND$AaS;ZG0dG1J*fhL#@O)KJ>8 z%v!m@Sb3Uq?)lwOX;vi+t0&XTzJsR{$oXss2kv{j1t@2!$61{@t?iOMqDJkiiq3a9HX3g8G+Kl z)aza~Sa~@x95JQz1U=ARS?L*qS{JC@d9k|EJ~E;u_t4ls6?D$ z8+DmlZpaX$yGCIbwaF4{ewLzK)mWBOald=l&ukNSUn}Hu7H@O^i(*J_X#n?HS2kL% z|6S|`^|yHHvHI$_eGKAkf!vr7!S*tJFBn`<*v{Rf9L_qZ|0X-_4D<8-!9>8;$ zH_24VeHjYR9$K{N-%TlLMvcS<^u^QEQHtrOvan_%_P2Z?((43J7b+3AN9__<$c?=fev8*L`%{r#)XWsO~5&rv6cemB|n9BWeOWqOrL-fCMf?z(Kds1y$>%Bh*;lm{A zL{Bl+AK|n9G>)1Nf4(YitAn8*OU;vhkCgVr_IHlq%t&`pv7X60nV(;Lla;ocLvWd& z18(h8M%AZxsu|}O8@4JdV>y#0U#|PxHA=6)^thZxEuf$!%8c|dpj{awlU}Do}f3`pdV64-W#0`RE)DK=#)uPpcPsXr`^52sy>(fT2pdM?)mQ2 z-z#v&5uQ)~;xv78#Sa~vxmOwLpzl322&>(A-l~q!?_3as&rZ}IaBrt?RuY6px!TvO${_C7jI^g8%9`Vf&w>yb@b8Wb z&QmN{pOo|Sq)*$F`J9iRiuT^5-g(B01eje_Nl^(HSDD~jn|6rGR}f{#f9<8{>R+0t)sy`mm$jO17R4QNzKO= zos{r!>Nis(=;o|?O8H67Zn(3r9{yb{K2M(WNO~X7xhqT#2cXZxMA$nY7hPI~qLW1; zLQm$4q-yjYV$SKFQ!ZU^M=!@N759#34!Cd9C&&t;p3+~qaczAG-&uES@~NU1>HoC% z#^n0+n^`zZZyXzrzI>MtF6yYi_B0&T8}MuxR?+ur8;)1M=_A(gs$zMXxtjZE!_s#t z)+fTS^*VLXwk}XEUZD4rp87L6{z_4maO99fo7`%$vUWl^eZ@Jy>(^INw(@%}qBd#o z7D_eVYd^Vr()OXT(tJS#%!$tj1yoWxN|88}O8t5DCy`2S-U04mzF725IOIm*#CGnR z_x~U)yrR+TJoi?B1%y7{mu3;rbwq~v6m57@!J_(t3V%w_JC?51cWKjd@ zkt=on(@u%wi80v8{piE%pGq%ls$sCHVw{chTVvD0AT%sjWB8BSO5XDzoUcy}z~zU9 z$EXm5*P(8SomT9zBY&z*jOxMExeF__xFls zVpI@ow8q@^9^F;svWFPjirDWph^KwyFtRh_w$fhs{EEf5e!N@lW5h7_N z+n6;t-zkry>qN#l_Vg~C>;2v%bW7s!&x0-Yqh1X9%pR2c<1=Sm6Bn5eH?ywj`uVxw zumIa%Q1k8mH{lph@AuB+31k~8mCML4=G>%@QBCDud@K@~pGW_#qXZ1%9#%Fv|HJAk z19;9&Qnc7pMp7y9nXMT*to~X}F=YUuC?PS~gyUDV$fj1+|gR@b}yQhqInXql-?~r=O<* zHE$dF$djif;b%>1=RVynPsydm6=Q2t^h8DmHF7z-KORw2+`mB%AZwBr&pQdDaT-)+ zO|p1_Bz&Im?Dyq4&$AMbS93>a1kZn3u&}h{T{=D<4^}0M{6X}fm_xszvZZ1c`JTJo zS-WH0Cd$*>v(=8{@nmbn#j^i4YKkznU%!^i zm#3s)9nWfc*XrUb_l;(72f5YzCgMonM3ghONn^T+29`Q(IjX0 zB1SHy?>+CA+yn1L_IWk#F>hbE`Aa+{K9v58G5=Ua*iZ`mEWeVnp$q$ztK1pPc_ZHNF1y<~5nszzi@J;HZNmiTTT;EP3XD9&xYT-i?nw1D62%@Ov?^p{k~+B zREfv%X|2WZV~P00&u>?@5er;(*v8NGA9fVWgQ*wF&;LE^DPC;Tz?kny&ac5Du^u_y zf2rFhj}k7tmwx6_6s%p$gAC` z2jVP*?p!RoInsY*$$9Z{T{L+|><0(m7F~U~i)TT9osy^Ic!c0e8+t)beJAP`lL2B( zZ$ZZ|!YqFtYColR=g3bYpllxcOw?h-t4Ctj=wKLZqpv`<1tQ2a5;cz|VCc@r(#a*n zfQhI5Z{9e#yOv^bA`9AIxUDus0RCpubsqlI~@-3_Zp~bBO3V9@5q?D_A>qDne)u}E^IPsCCsSbn99$8ezy^4 zm+*Y@^Nx&;;wCO``qR9<#S#6YP0CFF9Hu)+dTboP)Ih!#K?J81{RBihyM6%s736R8=}_wc^Gw* z+RDXuMf{O@&<&*r+4c*fq;W91WNC3t#E8V-5vaC+`iVQHNu9{AJbI^M-bkJ>R@t^M z3zm%Sw6-O}jrT(d&&Hafm16TREp9W;p>qR8I(O+t^Y^`!FkX1?O2km!kI!9ui4n8t z`@~!=8nh7W+_jkAkbWz^wS^gL(hS~%Zx0%ZQX^{TGS9r*{acRDVoqSL+&uM*{G2nl zdM%mfJ2rV_tbcyibu?(CZf5i8cq23%Vu>E(op71eqTgOqGku~qCI0S zGIA8hZbsk{Yt#eQiJ~`qz?&_(Z@*=o*m=Pp-O4riw*Qb=H)bA;^SP&g=Y$w+IgdNW z{GDGN5#28Yac^3S0hjH>O71T#n#p>mpr1+O406D$SB!IXLA3I4eHMm&CoVe7Sh0CU z&Nch)5$_9xbtyHic~&OvN*C4Bl5v~oXYD$Bv2Rl%MmCB^-lIW6Jz4kv-XD%uO+^bw z>en+?n?6<&t5?#Si1G2bbYFf%Y~~u{(su1Jc_*KFdRLy;_?_~15)HojK>r9@9~kL@;bijemut=TpVS+3F{jE|LI(F*`If8?Xi3ZevOrb_{>k3 za|degSh*haO%(smmGPGHx!GzMF}JH*CCG-(aafhh`{hQiT-=|t-(UQ_PL<26xeN9o zh<%U)z0rq;;A9KdX48B{5ohZU9}%xGTrRe6^g)wV%!xa5Mf>YM0OK;~$7Yf05(M{Q zT3GxCQPwg7c{Qlz*Zgsj=P~Y%w5(Xy)z__5JTkLbZ>sVAXcxtXS|S~o@9I{)FQ(km zqJtrG#ib1*KPDOZjO|2^5Mi}E5$YDyit&}iK>BojY)cQ*dQC*0r4~#0&UV{WCch>g z)0i>*l6ypUtIR%t_1nqw>2d^hHKZYobL3PxpY`}dp3$RKjb#JA$2Ue%J7vwSTUl|@1LCOX`HsE3uwA~q zhBfm5o{1&xMR2+wzP{0*U+*CCC(j#?h<{e=yHqr8>4Pcv>Fcn3fe1Vlh@~yGFm&!J zPPwr^I!RB=ldf{X4(_6HF8ROt`ETPqUmQMZtSEx^F;Zl{F zM~(8tOuuBT7Nqoxv+z@J5U#M^ z`g^QEKHl3G_3CO7*n5O{O)rnJN3~cyK1OUE=gk^{`eVH!#kPU~Xgg}Dz1K)Qh!4ZT z4g9?d_Q`!0$HCpPB97E|@nz+ucNXR{C#Q~eRKD?NULi);^m#pH$bM?pd{89JfCki2FvN6 zspC3{+Ww!97Y)!R;Nwij(bLehMN8sFjOX8r%_ZlHe2+cj@oPz4A8>x?=)M#(4w3SN_XMFtz@- zA4aa1b}|CVL0e25ETPU&^6H{E!zael&Is?w3y|-!_n#6hC2bDi{s^^wht-r#$z^`P z{n^J?s);MHo+!Vo#au0wTI{^Au8j_ZVyuOkg+F`{?yaNeRCVf;8{8L$GmzHYs0(j0Q!WIsN;(D_o2v(#~orv6mb%hD|!eCE^}44BKot$x?vvg;TY!k-~3uB>%NwZt$U3W-j{KlTTyfNZZdv($DlrO zt%c{p@QX91kTl|8?MLIyy2M6z`O8%=Ccw z2jcv{I*3v`PkbMw!@)bFMbltk?lcn*F)$DO>f98(G5`Qvu1x`RNT7Tbnh>d~o>z96_ zUNd@gfba6qwjyxAKQFI%=vx=c4q?=-WNdA+o6B3C6N_@?JEiGu>Jr9W7|8nUjDvKC z9Ji-@_uCpBmjX{Pm-DP{m}-QFam;h;<1yuEU+kIAcYQDa%%Itr-iNt`Iq)g5jhJTq z+Fd@ooJ_ptS!ni+zQE;c@Xn5ROXCFms+7&|7mHEsGoN{Hghw*>ZLNr9xi5mIZy4Hh z#n$p}yXFU>2_N?u!px zsl4PpWzPEl*sw9mxiIEi)=Wzd87N~1B*Tzrc)}j1^Fe9?-t0=j zDb^KTOB49}OhNhpAB6KgR5gDh_23!)GgOO*C6ei>x2`yRkD6BI`{aPi)FfxUyZCiq z@#dT-J*qVj7GLE;V#QnBI5RR|CEnV`;s9~m|BdsN`)%|q+h(DZz1Y`bIZ9Ma0=)R{ zH7S{?w3(|#GuF)6UFs;=?UQl0KhNaAlj8d1M7XP%AD1QxpTEo%=B%rR_7a8kkFaxK zeqMD{J}{RW@XQIr=bkDWe~tGY&**9MI?_p3zAubzmApKuC9$+FjBW0QI%s;BIW>>@ zp}h(Yyz7dXNB+_)sn=-c-pAC+D_Vd~ZRk(SdhDgiR&2PVh6Qs%-Ia&2p1XJYUJ0;t z&|~4`7$gkiJEK)lH9rFGCJ6|SJdE(&A=H?mp7O07XwBKZAAe7`#N{~S;EP|ksR7rG zyxIeqtP&5{oNB0o7>i}nFAa-V>?c)W}r0Ta52i2?4YKal<- zUS)FG*g*J=;mp13f1>qjax+E6dG}eLUV8tUS@`u2uPZyK6!~xmop{^{Z&zi+RC<2Z zVob7|DMi#&E@b^+ufHOum?lEcGb}yI6knOQt}};5pB^L(ct8JSj&eFuB&YD+UKGjR zBx6UB?`dkR&1aAEwy)IBhFSv52|dy;N!|Ib2k`!?^tvs~_OLGCxt*|mHm1y@rxwrc ztRFhmWsPy{2lKDrI_{q^CpV?GM#=$fuFM|2C-3YqJvvCr0ey|~Sy(%;t-)8xsRWZGQo28;A_tX-mXpsL+ zg=T>+=uJH__mexMRU@3(b8B(TtE22U-4WVK{5}8H6N^=@7{h*`h5c>$Vb=iMyBkBV z3uDE9M>OJgl3)1$|KsmhiF}V&!}TwJEW+0hYD`T&rsUZrAnqBxH6Mp467SMMwb^&| z=%_5LME?-hx~H-p3M*nq?WR&QaPxAJ&c45ZXZXx6Ntjom4=M9Q!K{;VAvNee@;)nW zyP?RVkiM@g8LJxOCAB$yGIuiTknTFJdG;=>K^BC^8(mD?t3Hk@YbgEZbxlsgB^w@(Cd zDZb0q|7k?X)SmIj^cM6Unv{>W)N^=9EP8k1F34v*@pdz377dr6W4tT=dBA+CV~cH_ zoS^ZcZ{~xiQrKEMoZmpd9P6tE<>q!+FtL$*-s6pE<8hx^Li`8KPJI} zxx#DhTan$7{=hTYNBp-zbiU18<<9r~+C(w=D{E%f3|GxB%Xd_qEigYEIlZ;$;$HUJ zTUmRrnko5?B6cJ*7kj>!x|gtKyg@v6z)<9+#3Q6U9+^JerC{zK#yhgRdMT_{vhQHN z_1nJ#Z`V?j4-60WL9JO=51f(e2Ao0EA=H8*Zrb|6o zKR>z5d%37wdb^wV&s)}nqlcr{!vy@~IXwS11Oxu?xeVa!FD(lnH1s>2%=zQCO~~oP zo_-c*WSzI;5N;O?|84Z>Y`dJ=+0-k3&0gr{223>chQ~B&{+s5aXB9W@ zH}Gd`6OF4~{oH;muls>^%kD+^`S=hk-y4|iEyu3LR z9|ICFcln0-+aO1k*rN%#jEPGXu_MeK3r1D+(>&}Qr$6ybgHXmfSCQvi2X7|%x3-{0%zO<#-Dcy|PImiMG&KT6!_ z(;cD3khn8gf5r~0uV^u}>wO&QYYi>2(6e}jZIvvc8Ki~fvU~V1We(P`2PpO4it#p9 zs1_ZALDr3=NzZH%NX|t2;VZ~5bz(15@jUAfCF)xig&~A-j&1lyc@^x6^Ne%+>(xqA z>WuwnoM$euQ0lP;|G+q#-)^E@;TarY&pvv^)24yhTl! zT!}6GGwa(6x1YoS^{ltmXJo@M8qQZaJ7_&hc1hq2r84iew3h`76b&A*FIIhPFa7f- zb>cl`+i0yc`7?d5)Z~pcxGQ}hsllu*=T5diR|xe{BZCwHKI5-`EPy((p^39gSZ6VZNrHH+zr{H#rm9L95`nW z-)cInv3Q2kXd5)EK`(&E-?8>Sj!Y|t-|`j5?xFm0VZ zek=>dil-2{^PTB=Qqfm>!1EOSo$cJaXPgbp|0*`guDHuMZ_in)JT+$@T7?*Xnx(Q$ z;tXgkF&%v?We?x)2COm0oh%jS?YPSr$~^pJpXj@XcU&fae{GUT{+fVk+lW)to*?S* z4!Ov>!W(tP)pXXUPguA8Et1QxP>YN2LsO5LG8(hr;(fP2z^};6oSr|{4B-iLGmgx=m(VLz}W6yi=@S^% zutf&3NbQ;5dWY=GBLY1z3F$bZaCsC!uh^dVQvkXJ6L>W zUL5w4wei6k;&@Z~64sS@O%q-vz>3c@@U2RkxlE1DJv4Z^Yn3$HI0{-v>RujtD((LnjP|?vvzN6; z>o>mW!M?-k1a%Ovd7v(TMugKMTpBVLlZnwR$~%lN#rEi(qC;)VyBOZz7H8BtIR5;G zKV5C$e4I7w?nK%-a7*?fJA4H%0CdPi?b1+*iGG zx@h-s4Q{dq`(zH2xxM)_*Af#JEwm_{ zCE>>w4;0?f;?yxMet&Sr6E_{wckV#oGJ5Kq;_SKGWz6erOP?VfzN{|8g5@>{{G!F% zxnE&Gt@5*VH0XQp0UY>TUbdw+PJs^H&bq*c8YPCkjZLTA^+wpBigEUhN!1UFcY!}z?sk@S7q7~#)&B)b)#BaLws>Ri zfhokl>T(x+=0az@=3M`3ht-%llfE8CiMU%wV9H=y?E0fakCHpw-M7X2zVvun_8f-> z*hUeF;Z0XZ7;@(Nm2(d_YJL2r{`PyIB;`P}!) z`ra2^(Ts6!aC@_I<%J(6FwTyBJQWSk<^#t0$L+p~C*R}M?Aem_#)|a^-U(6c!SP7U zv(_MIDf`D&`NEdJ>zVzG?cX(GWj!shnPG?2bXyE>TT+a#dE3u%R9AENV(kLffkE?v*s=lau%N>H@ncRL!#V? zaqi3io~HU$G`>wV>fNWuchP9mZ+)o;0{U#X)=BlueQ{dhGnOl3|9N-xwba2tOhD5< z&KU4YhlmR)7~FMeP*b+c3!T&B{X+3**^ZsuCO+oKR zPT1Isno;CVzUIuOANOZ!Oh07${u6g9iC_P3KUjJ^Ro{C#_j4KNk=iQy#`j(6Wky`I z=N6@bkw20d=MT<4N}rRgdB+nwvKXkm;Q3O|jmO83I?D69yu;Z8S~YzoN_gk&SWX=I z$uV(*+?qs=fS(D78Ps@#t}a)e$8qnHQP21Nnf>SG31o=X^=biWKr9HWoMk*?1be# zh>PvN{+5fi>e?zq*0m?2Ri1G0y&Tw<=-u zR6of$H|y-DM3)dhW1P(f4N)@BQlHF)v*UU7l`E`)N5ryD?)FYZt>z4qI7XkwXGD)m zN}jLPFX6#Pm{k?i8_8iG-70P9me-0mwttZc+;a*CSoc!HTbU_EZ^gohkQzv|Oqo3@N z;V4>dhnA-kVf)S(;n}w6a5NG7tmotGJUf*0%y&D#1ZSo>AgUVmU~^K*8*{iuzXUyW1J3=|!#!W--nubq0Fz)0KTH@r{@q<(U~Zx!J#e z4G2(F@7WhlAVwKJOliv=ZK5lEF4s0xoXzO@9LG6=-A6Iwhz1u{^G<4dL3p*(BCLRT z=KVe5s*V`Qecp*>E5zcLtlz4UBkh+Y7V->7v%j8c<|pDb)KzsSU&Uya=(U|+=iT== z%0whD(4paLetldQp)aN;CGP<9sdYtpA9|j0_K~YDm9zZG@!=gXF=)4JMXqD{BrQ7b znJS-t8%W<4dV$|=Ui9uJeYYKTNb1%|da!_6c2yJU2fs^NA8xwIhu{ykG*x}^g zL}VNqh$$OvG5Jd(hH$sroPH~hi0N4Dcg5fw2V_oU-7}n8rBo3EQT`I{RZJ(@uVuXF+0R~oWg)8X(;x#^qyo>q%+&=t4_8|UT^|uC*cCy^Ba|H6|X)!BOE1%Q{ zK>c2eCr*{*O~Q-ZJRLnQ)|+%#;(}=MnZNAqCvDp1fcrNSQBsgC4Jxxm!y!q?*!N1h zm1B#2U6X*Ux|n>*j{4$>I1$+r9WOY*owamp`lqk%=8pI+e9zk@NM)s==zNSbL6h!s zlgL=4wF|6}H(pLn)0ZjKYh|1l`55ZwH*td{<6JUryW$b;k3hz`L2|G%xH0P~#<}aC z5z5LM8q{_F=b6%2NeW_~Ody_r^|QEDO5X=!8pnEG6c=V|k-;7?c*!2&eprj{FE}ey zEf)r@b=bgKZe^fWIQZ-E&u6ownY##Iqr>|s@}?S367qiT*%T$9;p6@yAVi0Y{CRPw zT8Tc>$#bwFN5REN)CeU1o%Q0@BW3crm{?qHO74))N%`!VFrFnXRG(JKo!tG=iFHNj z-#M}^XQ?qoIwYRCU)0lwIyt`Nd9E8=Fyx^2~n5NS=#CxrzQ5;}+R*SrV6zNBSJ3M%1#OhSj+lKT`HH^lK-Int9Jnq3? zt%yH6`lac8S^ITmoPDku>g5h@n7}w^RNbL?E%wJs#(C|S5T$Bo&YLC?tM4~bNp8*_ znQ6wA)1Qt9s`|BX2EMp5P2|%ubPip8h7U*;f`W65R&s zFqpO6ik*=nFOobpVj^Mh=7@dSI$YMVzn(E%Ts=hp^D~_FA8sdpsdO0LjJ5cITB7wI z>fL&4P#*nFHek&%<^+48j`!r|J*d^uPm2W0ld|E2P`GaAd}7&dxi@R(GUg_3Im_3G zYe&A&A$N7SEYEbt^CjGO_-HE6er<;(1CwBW_D|9NO179dKMB9fHARJ8Z4n!tghpFe z7FM;lL-m97;4?@pI2G!EZhy6SPz;| z5BjwQJrfU>@@(s=1BuHXxK50(_X+v&ktnPgO-_Zike6~tW3|x2b-9qsrq4qy=B6P-^zyScZdhhW z-ihBadEQS)+&D!4pwWu_xT+nDrY50=;}N;NxeaP;OG5jqyX1juY*4y532mBfl^w6y zqVfgSAUJbG19N5BrG5JljqY+vQARL3P-tTpJfB8w6>gt3s~x z&Vlk8-fQ-zjCuX1MU#HelTDL=^%)LD{W;t1c$GM3P2<9G`TzL!tjmXNFiFlPrniXx zJCxL;gT?nn=> zrL7Y2*>kGADbyJ=P9|ckL5gfu)gH!{(uTj_ZXVvXm?D=3{U`4Y2HeiFMIoG6(b)FO^G z#?ATbq#5PJeR=n-%g>XBSJk0begcNnJSUy_rX?1xfx*walE*PEz6LV3Po7DqA8KIv zK!d@rA4}4>1Vj;UYCQBm>6D<3DWBP=n|r17!{N}7^Vh0}M*46u08w}8>2{}%G;f0! zb-3v#+b`P0eToYj(cdlQ=Dni5TO6>C@$~BFO0O0>jIK>yY(};`-;O>q^^>u;Tm;7W)Q|SeZCx#HHjl5(0@+-_n-CyS-+Ewm`TL;U~X6A8qKy47YMSG^Jjvi2A=o}RGH z>%g1$$)HsBCcZ5( z_H1aLr)VKv?2QfFV;*ay!%K%27~3ZjChS4-s{fFJ4hNAlNv`&?UDB@$K5!;)JJq14 z)MKO@B5aZ{>S*)A1+AU%vMdQ3U-y%DjI+m@Y01<>-yj=xu*WCsWQ?-9E7xD*i1hPG z7_X`=E|$#2#%hU}HM5nFXL!Nt1bG-;cgfA>(1V~!3=Tc{SXi2`MrM3PKOiTo(I#HA z-SF!I_fNOaG%b4Q25cd>^~(#>M@<9p?Hs*nGHj(&-Puo!rY@OFx^#-Yuhx|_q(?iX zk_p_8NFu(l{j79yod(z0pL;HTEj@WgoVkR!(~fEYYw2-ynN!X-#gAF!K}=4-h&SEf z$r#!$B*quX9)Vnu8N|UBU77%eb;a|M8aODkvHKhO>Ny%*a&tt|JPr5ji9H>5#yfN3 zrks7GpSFVS4emh<(V^Myv6x#*jggZ&G=A5S-oC-8?U0Br^WRAWe0`DkoBNfG6Q!k} z+%bZ=cjKETrcN==INd54(?9l>@6K>Qx;hzglMcv@WP6k>NrvyUZ}QIBPAF@a4E4^| z;_6h+L1GeN^Q=FU3;kz}G*I6?DjU0yf7F^9Ahp|?{9v3%f2mk+tY|USq)n5mHDC?wf)*|Izi*nU~yIm`gmr+i^+ir6DJU zdAR3G$st06M~w62sny|ikeCwZCIgzcq*oSa-wn94HoNcta|6d)kPonO42HBO&bf;F zXp=2b+(3)ux5SaUc*C=d_2D!Pw)Z9Wmdd_fXt0I2eBwLKWyWanVptOTu%|5KJ7Cp^ z_&fPs8-jIsvz0#B!=f<0F84>KPRGpyAy~dA5tsh7#gCi(-2Gx{ubU@=J|@BV z$Zylzm*$e^m5hTEtILarJ5p~f8JV>Y%6>i$NGnT5;NGg@V7?RQD9M;zsk=B6>V|4{ zl3?=HjF^}Y2FGX+rMfClnjV1!d!FZKOGkJXP^&e)Vw^{;vM{-3?S`d_8d)V;Q~d|> zLsF@Mf3lwB#5hmg&3W^oROx9gYR57^S1#EnwY^SmEpa59Mt7t|^?AoJ&g+_1f%Pn6 zXv`aRsx`yBL=7gf2Tb4J2T!&V4{kzixzRW@I7{q@82-+!_SktrgCE)SLFSHT?*sh$ zA96Fe2a*%3!FgBSdFlnY-iEtK_cZXaT8?{KYPa*gd-Z8G)^eU8*VMrWtFg(P`Yo)D zwePd=b3_z|@Oz{@=eejBiXk16P!>G{Im7+2?nV+G4Xuv^YcC8)N=EZ4^QGh~E_mB4 z1#>?Z7Y6@zq+VkRLcM)Z%kZ!6W{8RZR`%nlFV}BjQ7> z-;%p-MC(nQBQSTkkKc)xb%?KLYH{M_J|s40ziXmH6|V#2=*40tYc|78yD;HmBn)D|`82f!?vHOz-?vYAsP zR#)fyySsgn-92(|=T^+m_sYkc%yM&s*#YuuSdNkq5md z2M_~coJX$k!#(2jdz={aiAgAAUHoD{@r~I_k;~rt9^)I@J{y;Ju-7B6w=LtD(UZM6 z?>^JYGCJ}e(C(&&K*wS{>8ZvXPaQ0M&!HzZ!1jZCsYg!3vo*Z{x+URni$WAG4Z#W4 z40C+8AjW~c?e}EtF{c;x6EF0*lY&}e1XA-{`EI46_rqh-<%Lf8&?^li-_A1i-sON7 zerc$)zKeY2l@pq+NaOE2PY!ua4fCmKuyt80j|!$o?XqONdTJxr85IdF`>fvMeTo{A zL$~{L#d>4I{Xr(d^W31zRb%1uwWbg2xx>wgIMTVkQXKC=6V}opx!a`brHt`l-hDIg zN^Tp76Wb8apHzeVP0o*4*SWmvi220ejkdF{tvm`k=71}_2Os-7;sRqhfn2!F1G(S% ziM#^F`R<8V9GlAL0>&85%W{pYH>?_39=#i zHK(;0`|1vT!>D(Xsl(B`k5KAMUvqMWFE@Dt=K&Eo9h!vP=69gE9}E$jjNFZh zbZrXSJ>7=US}(XHq@s8^xjf_`O(U=3qd{*x_hTMzHJ`gu>!rM(_So$*AC}t}noe6o z&F8K2;cGM9wATrDJpVQy?bR8kIST{PzF!*F>DCrq{1%QHzliS~SoZ%u=`ZDqeM;We zCMIWy6Ru#5aiQ8q)61>gG1!6}0;|DNVv7KDpyr0b`rT6HN8A@2Kwk2_r_yKE2wDO2c0h@$^5=Np6x?7T}Hj%rgfYB_L%e@2@?aOWTv@ zaep~x#&GxQ0PEnp+Y!~5ac-$$FHwlyCpk}GpXvVk0`~IRTJ_MP*1r4L!adW!cbE^a zmZ9O-7);G2F0}Lu_8VmMo^U=YNz0)yAG&M>`a;=UiH?qfM+jQJMzeaNIZ;$;p>6q_a_(csYWn{erkDt5H`go#%?(7GTE z>-*e*+10s-el;JhYwSVTdlw0ONWd}gH6$E2?5&V{xJ zKAMIov%_-Cxw#m;l6wx)X!)sE0Me?^$Fp8c(NylIABeBW=XcRf9yyVm_*m9*2ac{a zT}e)Lqrqx)C>bI>?H+))=GvUZesheoby*daIeFtN&JpixQB&p2 z9&paRM0D`3uX5vVT4M8L+*{a472y$p%`quB)})~-nY#Two}^-ybuCqHsyjB*WBTgP zN~)O|&bYZO9shlPgr7XO9d~D->0a_t_gP~pePgF02%{@mA;W|Iv1?vSCHt*0?#6tW z`caoM#0k}HQ!r_7Y0<65eppeJoX*BBMT4scaJRH#oHyj{$~VxuVa`J0&;6E}E}Y_y zVO^-BRC|CFZ9;8NQ#IyQ-z}|YoJVzGZEW*gs!mLDF)>mjqk7oLm{0KH-p%tq*b%`v zbKd>!_B34KO#GojtmifLM7!|o--&NDO-IjH#F@Yxae6&krN(1h7Cn-^4x(m#?sfg3 zeopxrq`alR6zh!(e;;5mvD^ubIj0`?1?Tdpt;m_mhUZmPO@kxJr`2&cwyx^wnlOBL zo`}Oko2dqlpw`FGWJvAXsG>Xh!!a)fJ!-U5O|&(`>joWWx1I4E!Q25ql?{F<&p` zytK#s!W6tYxX`2}b&0pekzZ;ts%X&^4^(6Q@xS=SHp>SEBGC;!STjGWon|WRIHPQ; z#+lM?QVp8`wCSaWnfq4h5qplv_Ph&??@2cp+x25OPuXA$W5!m+TKaKuH@Jqd=SwE$ z+-xF(rW3a~z#WrpAAGOJ83E%fMyDX+G%+XE5YHa1MlE}CIwJW#Y}$)`d92x4ySz_1 zg+cS^i8_b5&W=2*XVirL$X@8fC#-824O?Q_o6W1Kw5KBwv|9)7+x1l!KZN3ENg_FS ztyIO->6&ep3@DvdBO?58fHj+0P*0U(rWZO!rQxP+Z&h@6S4j2K;k&x0>T#X}I;_n= zrTosS4(F}$^;IUaPd8KLoT5KM@B-{;Zm9aab0${)%Eah>S8(jZENn_6r|GfB$r-*WaiuYpki3FiODoOvu0^VCuI_`MaR3-3^eO{1=*(;l= zw9IWgCnTfkla4AQzgT#EPC>?pUMjU$BsOeLqh91d)oVv``$wlE@y!sGn))qO_GDn{ zk|C;FABYQW&&1r?{Z+FLa`y2k6D@mmQyCp}!p`NHNDObHGLLt{@R}J|J?bFtJak40 z=UfAFH3g=3$r;NGryuncsn&c;Orvi2|DNYC@AHM-hPmOhmU`wY& zVx;AKH?kMwx*7Q_k<>4`l8xHt+=*oEQG3E+{FJFe9v`Dk;(*`X`w4SNga4-XrGi$1b4kqt+RT}m% z*PM0_Mi17n$>~KVJ-_(ixlzS9n-w=Iy5Z`I0gSWh`9UT|*W7T*NDY;jzv&q30IY1R z#`7x%lDR488+D0eT^*CnJ%cZv7RV4wKjB3p{Q#dke{ zwe$}~%H$m6Jo}gQr4OXjZM4|7~`w8VxrbqeR#33b!qLmtSI!AUr= zVHN((#ZLT8#)+@n@SSIW_@`8iOg@BGd_MF4&d2wb$FYOYV%O~q6vSRYUCxZAy<{E^ zxQXeEpHm8xdd)@sH`H^k>TB|_$Oq4;shHi;+_Z^A zEqQXFk7s9@7Wbn*$7?kLY>G@rrIC+ciQJgzQqxw?7{3P8dl^z&D&W8QYuA6;1zn^; zj^vb%<)8UHN{V7Xa@?EG>;I_w%DAY$?`yjQ16xGJ!tQ{XWh)92(nxoAP7o3*h>D$v zihSySp&3yY*S$|MTX@yDJ|AX5W4G*|GLoRXmlctWi9cum|`@qYS^x9ON4J z>+|O*r}I8s*qJ%axFY2NlML9<&)<*Pqg>#SfivvMe&2LbS&jMi(zER4ZMv`g{hYp9 z#u&8Wt1{Dy{iYw8m{Cy&PMoV$$Yf|e!X)aXeRBfjWt+qN!^ep-erGhYH%Wee2=}O%i5EZyKx>lcTT03&9@-8 z?irpbzr3>VE6Ll#{G-BcN!f@7?8(?OZ|PE8mY&7kz@6O9?7p+CZGG;<4h+lWwd_kv27Ao?&+`uF?Dbi{6$*JEc@(Z>V?|tF zWslC}eKeVY_HNsit*fS>%kLSeHn|nlGg&tq&cu7>YgikBnDH~<_hKD3ED6D>5!tx7 zstmL0gd)z4c~xIxkLJgq8+8SmJ*lgxx{O+Lul*|7c}&+_T>&xG<<9iyF9UT(1+GZn zt;NYB19hslKB(%+UFGFk-S)lIK%p*4;gCXI#kWM%YC>*{6rl@|lDH2}J;BaTbldZ& z%}spHwyHHHm!8yeJ^!D!Y#XVrl!B@!si(HQpR{Tc{e)ltc5|YXx?jb;JnC;A@sS3Q zLts@6>QZ@WCCjC1WR4=%eamb~Zl-~91K(Hv3TX(rZ2NZLotwE?I@6f^OT=1F4LT@w z$Rno+{a?5rBR2xIQ$BEBQ0=T_UaZoj*r3N1>s2OP+w7PfCe|4R@MXRS-U_N+1mv=*HmiKxKrZM6-)M0 zm$PH0Zd?@~=zYj-9(+T0VMQE<)S|z2sV}{Gl89A|;h!sdNQ<^5!Re(IUQv^!JsHX9 zdWHKMC6Ut4t|@pVYca(#S9+ySfj@ud7o*iue@7LZ4soa5d7t!!99)LSwWv6MPFgmG zJ9jVmyR^@w0qdzp(Sf?{CRIf5R@`aTFz57YC^}|w|FJs#`DPn&>nCf&Kw@tSy9s-8 zKCJn`-mK3+;mF^4dkg0fE&k&UqNdq@b*0%bQ9M_Jv<&X+9_uCoCaN$sfH>5&>SDsx zM11d_g<6Ypq|e`Dkh3}q^3v^!8R~FMpHF<6}fv(!bm(2%>KvZz^q}op)8|zUO5~gPtbBnZDN`AXGZLgS*o76>rPg(!ZQ!c%7zg zx38D>^hv=9;ux;p)=Ov4rr`M|+WF9ZN#jYbck(8Tarq-fpI5<_XD8!IBXM@Tntnpv zmeU=?nGI?f@^__2^cSa^Yw+0Vzd6tt@rpG|Am?kQKOKboOAVTiXN~F@D7?uU8j2UD5;nC?pMAnH|_oYvj= z=?#Z)YR7*WBsE!1Ztbef{mzCcD`_jpR;JYR6ZjaXZe38cfTNQ z?oEED&D4^X-%D<%xLeJbyJ1K@5kHN+wdGpWH)<~ypCcDp5jAeU^%L?~HSaS1oYUjP zZ2I&4=UUjOxQXA?C#)F6n7=hzv>_hm!p2k>kY_va8e@BR#@{OW!t?`mt_nF{C|V?T z9i`qye`0Jxmx>JmYUCc_ezENW;dvk#Bgb$b;6|pXav&a?N;0^YZzqECqo939eD9UN z(x|u)Wc=d(zw0lZ(>Q-L=gc?qShjNc2p`yca<|2y5oVY9;vCLn>fZCvotI~6?*SLtS^xl_JQsSd3wtmV>agn9^|O) z#=P{z%@`Pz_~S#$b#u3sDy-2sSF-ce%p%=a2Ny*7@w3$5q$^J$KIDuReGC8SDqefT zD2bfdV?(6_`Ej`Qn|`QVE}2l{`1Kbps{N3pW`*2Iyg=^pDdm!NJh@DFX}PywTP$do zf{G>7e|*?ZxbPnAmZQbU=L1Cq`QpB%QUh*?r5JTVg|B@6y53(nO;&S`&Dh#AO$^wt zCboe&&$Zd&72|V#{;nRG%f(v<4g222wMK0s51s~o%q?Ra_J||QXN=g_x~DrR44qWS zWv=Kke!u8ElAJsjID^P95f6yb9s7yjGrK@MI2DetzyIN>{6+O$?A@`R4877uOzGr< zr>qlJ)>^EOMl>W2Ssgj+0u34k=o9cq9>_2+TJ9YnJU17pFxzewWG~~WF7Hi1y zzCTrpPK(1G`ta+A8>Kp@5|QwM8ppdXNOcw@;qobRzgzr}7KJ6_17q)j%T2}4mh7j^ zp?%y;#YN-&?avwFOCkS!(19c1x$%j1Yu<%GshS>;m z85EX^-2>xMWJ5pSx>?jb9SP@2?3uqQ5LMHOp|K4 zI=QMwixiBCBG*_~Yhmc6LJ#uuTR#mE+n%V9=0UBf^6A2a`+mM5)IU?`d{qxm#}A^ zR4U|~(Fo_)oB8BkxQ z>o+aLvr=j3p+uB02h-nsCcU4T1f@iMG{1UcQ%ExEuAom|?j#c0r*L;wi$UwnMW2)8 zRHtp{zjG4rBgh@+sKwobabm@H6`F8XZ9I0S2n?e}hZEn+ttDdrB{lVh$p`vwqj)|@ zgF@bwjo<7S@;fzBUs0dv{$X)uF|}w|!<0WgF3MEY4QFm&W_Lswe~ZP=Tjbzy+)u1~ z1jg`vm1S%crq=^8p0Vqo{Zg^3s}Fk7XAGLo6hF(SVFvHkv7ynT`yFCIjOgc897LIs z6OuZUkI8(H=w`6>l zF6*7OheStPHAZixhFAR~Vv=zRmhqjg8-7%bV_$SMd#P=!Nuv8a`W18QesgyVli?v) zcbwW!o+aXawjaEHYmmLHNHnP9i9yVN>Ni~~V%oa0_mzr`m*$C;=Nw^Ji#V(Gv&4q= z4!BOt+gJBQk+ahgJ90E=`>U^L`N;)ylM~T2WwNCG?1j!}!eI3{M{#BXXV!zo$)vq#Kmw2_N~x;x1`P^bE@XnZKb))%gboDwM`aEe|@Rx{E3tcUp7F9lB-2aMvzih>u+pXs;n z*LjKG%T(mD;5|D*D>fKY^QSL;Z*{&H#5nM3AZxs1tHi|W8sv}Xdra6SE>J(SWgy@0 zmxJORV@`u!vT6d5;qY=FAVfG482WOqa5&C*Tt6 zXd|~G>EBH19V9aE_0dbGI&+3Ff?6m0pGbCd5+QhgPYJxj!U z>YVls$`#`|D>YH8LA5e*ZFLmt@@yF2nj_Yp3PIa_wDXSw5&XdqOKIn^j>|;7Bv16< z_tafbEVfy@Vgk>}O8?Nas0yVol+(_^%hSY<8-5tLowa>hp6D{w69M$+ zTjnc8gpn(jzgJ_(%bj8-=Tj-~*(=eW6vOLI#p<=^2qBU#Uf}_MTWn zJZH_?3xw4pYOZ~x&RvsjLY>Mv;CIHc@u$V8Q+B9(Pm4e89t*h+^-OtwvFx?z9z7Kf z_n1eXyeAA>Ibkb5gLmT+Vco%wulr!O*>UsFtWB-U<=YJ>iwqF4^4nw4=tW#^^(r5PQWmp#}^qBC4;w&Gld$|{Td)$r=K_V&|t%` zOsNNF5WCxH@aE|vX$)s;`Q@CsJ|!>T;zSrxd+w#@QOPDd5o=cQGd{R4wcVV6j~R>` z7k^4UmDGc?W}eruq4?J~3YpAZz6EsbjiRW(1J3=W_WI*f;(L-E2C@DsJ@`y)KWvMS?6Hp4eic%WsYvgw zLCW+uqWGjE`jfNuhE@`bi#)Kob0nsFm*+{ZhLfL%vErF} zy)@!kEIgscu#N03f1>WjKlY@eKS?Iq5X>k3AT6M^m|^WlehU@KpN$hIR(L?Pq;_8O zG;z(!1zkU@(Xe2R@V;S>F*UWAmUu#}Z)1lc?3Ja(z7Ve>Z6QpFRWAQ6o?W#=3HzU4 z=l&25{*LH1D+#M^Ul4yFh6eXrnd#;;hX2WDtXS`?+m@BUd9(&KCTMh; zW#mOzR~T)H_59J_bS(_5VpRTcxOqh5o3#V zJyg8-;Y{vE_SD8M7hy^EI9!*#)b>ZjydAdq#o8yp=eZcr&=&J2{+Cz(6JsLDSGbO! z<#Z;{#eOYz9N#C!0gY__#(0+N{Lzq)_JETDe^nsIh2 zKR<4kWuAccU)8WNbTf09NbNAj3dO@NrHTBWn;JFF#YC13sgi*BX=>bcZK_*m8;^={ z%*Spl(Y-c~MGxLeFix_s6@qb$6@wCvNt+M*;^zwXK0X_Ysh`~O zr;!@VhdK+>#mnwP>3v)>3P) z)<89$KWbyPcV7&~HB{qReypyHnv7#_sZh?#7$>&(afY6Goy*u+!e`A?@_tc2v2c%YxnP5H{!uX@26<`M_5Z$j)Y*&9Q#Uj zcUI|JGrPOgYoncOmOe7`+(Jwa?Ht4aH}omj?@*6 zS+7OIoOkBqU&o<>HCoSItrZuB#iMs~EqYZmSJ=A7BayXh|B zBzHm|4VL-MRWzCtkDAQiy4$Z*%*>9*sTGVB{>6%CF0?swiRwqzDCRYbhs`iG{J-TZ zdIZM7l)KZ#Hr*6kIFEbyTZNl*v&&BN&VO@Sg+sYdbPuO+znHdN^fN;`@Q*t0xhmA} z`&{bI-L!61sIeYBNIW{|gb6Ryu-KUu12EbA4I6Z5!7Q+2-LBr)1g*voh?<|=~LF-CFE zG%-S}IQcOaiwx8-Yt>wF;9@lO);Z@ZR+UA!tyyVx6_EPSzV&LSy< zJ1pA_D%*L`fhhC!H=L0~J9{krXI5_w=PkSk`}#$jg>>-37}|O1(y$TtHPN_mhPkwU zq1j6INH47A{P^pKb)R~sJcHMprJ1k$5Qj;E_KaO_zJvP<9=xwt z-Q8mzT0b6^#u_v~angMIN9x92P(wVtWZvcm&js^}lE~BMPMqD0;Jh%}q{w{zaL#|* zs`0q2wt0I^EGnupKDW#%tM3pETXF@y>95lLH)sC2nHo!S9m(A?2%brd6`PZ#)Q{e< zi&A0J+SAh0rqf{lQiTO8TZ!b2jyTV`OZ+8A@ypl_9{-rL&7Upqcw6Hv`>qYfY!}k9 zDHuZxfK~n(Vf4`&CZ{zRU35oG>B`#BBpH`SToenLhvy;+acyEm&IvC(yXb?UK~A`Txz z*f;ypQD=CT{@;eN`lXpJcXJ$GpHw5%eVT4^Hu1En+>e$rbna$xurz1Rd})>L;l)_$ zFYtccepJ__4t1zMtI)9GhwdMBZjW(}>uB0ps`wj5?MD>?bS}~yavvoJsLqynGL-lJ@t0O-uwKX#75%BHwSb)$6S4=C2iT%|SuZ6<% zrxkQ&saS2hMYNhgjqf?kKZ_5DmW%9A{|NiAC$@;Tu`UQKjD)6I7qQQdIm1_P^x8Z| zd2NFaj(@hPWan!==bJyj;*8C-^MC!)LrY!Iigx}zFtcoFT`xS(V&C3*fUbdEG}2B} zJ9tB|E@WgJZnGzxoHARt(3^8`2lnAVY}5r7#9;$-q%?~YI@RJhG&)G_;4Lq7(-!{6 z_075U##+*vd2x8j+3J&9ZKOBED%T{wN(}EW4I4pC!z49M^_V1edBU0IAT^SF1EjrS zv6xwlci*K9sROZ~x9F3lH3}pjWfXSlRj8N0TIy>ThTD0xXSeOrt1AKAk5OTJ*Ta&5 zzZVABGq&7$D2?OX)8MuWKRs%RFLfL+XE2LLe*iemFoYnp! zva=PwGxxySR8co#3Obo`m#W2d(eaxtrq)Y>=~r*@%ftoq=0?CUQ0Oi)XYkg0aYm-b z@zLZlF0ig-Xa5!+iZRAE7)3nNoVFVCUd$m|A7;Njv~k&xb&l{GOPtUaS6x*1AlO8( z-@a(0?){r^e4k3(OW}20Cvy8-V0^PXSVKyw7lnBGaN0>@Y2M2ylrvWR-UDgmk!W%N zYTz!srPXQVc)72}(nZrHhc2%>CI4nNFpT5=VJk@* zsj|efOUcOkyGklfnT$`<60yDQILUE@74~ORcdcZ%;?zt#xc&-8cK;~2jP$^+5I1y; z(2NWzOn~P>i%NFBI>Afv^q)0sIRkq6%f@_Dt}TY&cb3&#HPq(RNcoT0 zPm9u^>!$@$dVVx#ebn04Y?Tsv#^C)=HKzNXlrHR`{aL4&UoMxXwU34UeD-ZVRTC8< z)CLVwBWG_D(fnf!cdgXW&S@)llSf2VtinjQ_F^cxYDe8kf${g2!s|>hKK)3>>7eFf z&5;0{=Imj@zb0b$NI!h>Oh)(pjl{${K^NX)N4w=8t!OBe%?d%dcpEVFdSY7 z!lP&1k#A3{F=A`wx_ea}U&WC9)+kOO24;3Q^H&bGSol_pqw9B+&FJEY3mL?*EZMD_ z9vTP()+U$N)Rl|}grm!1&YSA>l?(=u8_pHU>Ss79@_G3G|pgnso zmoD$3-q~IadUo0;DFUORC9ddB@f9hFHRcG;j$3{CB<-LsXIu84O}Et-%Lm4y4eN1j z^A2JQby4G4Q+%8BAg=6+hqLENMaWmq zyZxh)tZk{>@E{d6$RGN@bF25I0g5n7YuFHHzWqft^Yq5H)O_In;IRi~eQ!CSFYmi1 z)vxMmbO=Q1aV@k>v_$kB!+J-< z{i1?};;$kC{bN)JYNZxCu7|;GfeIz_+l$@1L*T=hR(o_;sYSI=1R3)l_rI>YL=M-N z&63cwPp0zrVRG|KsLWq?qa;Kz|N9iIB?rpK_#Zd#n{vQz9<#Nr(14zSxUR(FY}wtxo3&$o$*|03aP!*}PoU3kumgu<6+ z&8I{(GmXR#=6lLNb47VkII{k+Mrf=Qnt7r4ODttY>0Iek+c4DSOnk!7y3)VNaR^|Z z?|gTk(rO)Ju&9iGp1LbsvG>;$7%WM}?O_|t@5epOy{&b1VjN)fK#Lj|YDwzN z0gQ9(85USck8;Cs>MMJsx^!t;TsTTtzkGSSO8R3(f2Pe0=eR-mfEsj)E&SIvCuFc7x}xS&f7#Q9X0Mbf1jZdVr@%m ztbb?k#r2$Ub?zM=81M!)If=`OtifA|xAJXFcKG7~R z67MTgVG_1boESoFpykAMkDDasP7g)bh;+@ii)WCh1E?ulcjo^0F<~x2( zc{q>womQ3c{04`k6!Fch86SwJ+TYx)&jA}`jbrUOsi*FejRUU!rXSvGDlH&K&Fwbq zvE+J6Lp;K8jrn}R<~&Jf7LJAQIfFjBSu(8~fh!l8V>_Lb?%j^yyP{vM`XE`Yjl|JH z+T6W?*z6UBRdd)6jP5A9w~xmAOxB(~h6(w2G&(c>blPPjrY6K-=ycA(dxwgejbm|X zHfzj^>0;c@SnOM^#oqAwq6#@ClWEVTz{OH8-q zZu=wdt$S`1Ika=zTypz&brPc(D^77gXVR&!((pFnn7oU73vEsigAtEoiG^@tuDZHVKe{(Ho5UE|&kh@@?CrJeN6E&v^dq%!}H zkcRdNL+k+h!2E^Mv?}2^O8i?>gMHFVIUG?xI0rYmE2ZSJ7G|8uv#lkLSw>>dHRgm9 zI*XchqcEI(zwYZe2S34@^}qKrHAIZ#u5<$DyivnviS;HiP`o29dPR|Fql>|rM%4Jp zEEV_MW3hMy@hZJ;iZ*X!;T)feqKa>#{fs!gmC0W*zo9&|Cozgm($Jz$NBPRrc#I$( zX>A8ndEQp`X>-Uaw7!#ER4);w8)%a|ZR8!n3FyHc)GZZ_)U6wZ=wbs8$V%mD^`|z~CX{a}6K4;cyRhK2E%MPgnW*(lG4heni0p z2l>V(YAe*^{;K&@*^)iUi+pZpWiO|W zte{J(?4^m|V!^61;7p9iec0{92HgTat zs2SZa27kHRFr-$Zyzg=hO1blrSmZCKlHWSIggl&`9p%v;oU?2p_hXNV@(^?SHnCei z7G`q8h6#8|oag4p{p4uQ*Aicm@AOPpd3EOmT?VM-WgZKWR2a%v;)jwfD)9J7r-E2lUT z8(y4P$>wsph)JJkQU9jo_k8H6#_$gLJ? zp}+Dz6k{85x9Db1{gxx4+|wX;P45=^%{9VsyefIdmekbW)`nsDAM)$IeJ_t=es!OF zngv0(cd@rOCveUDi)dC?GI~HM}Els za8oq-{A*qn4 z)$46eSKjZwdMQJ3wzoB$xf^2K`>@=$Y5?+hpQ?Wq>hElG#qoFKC|H-LUo+nqh5g9Q zhNebVJNE;0B{A23C<9A*&9oq2LR{_~O> zpNvHe{o(2l8@a?WjvAfm+;tx*UuGYmU^F@OzW0;kUb7~eNo}TEM)Kp+?BV?5F2J_h z@-mkQWNywt?>AS4b#w@pPNy#0h6SR*upn3vi{7!irRYFAFX~I)-R#~X(JTSOt7TwY z@N=aD?}wlJEAPYFU&~gQ)6QG2rJ~){GqQ8TK(sRDerxSDdWQ$Dc>0gJOTF^-)f{|L z&VAuJT3`L`^}&d=;10+pg}&M-#;Z}}D*D_>zwU7eewz{3J-o60SVkzO4dsq}ohtgm z)?pY(jBC}{=kn1bVeldjJnPG4c|=q=_VXRJw%5yDJ4fJYPx5TP*(rBs9=@SFIT41e zlWXTuKa}rIb9}K}cVrYAbfiYoggp7&cXD}gC+?vh z-9@&T6pNQF(-9j!RDK0`7cvX(+b~j>e0o zw3Yg`nAai#>&bWX{M-R?m%gOgMIOSrxnfd_U_>Nja%Uw~n6NJ1OJ39i{S(9s?q5vx z&VW9B8Sa^B5ba*s&dp}zDr$7MMpedSh2>4z`(7YE3?e_z?ge_krk=R*lUf=(ob`7S z!!UyJVd3Pi`ljO|(eW2GJ94V)uk4S&<)_rPYj;(?u{Hu8=c#dde~X-Pm;SJyT8xpi zEl?0@QzzH=9t*FpFLO??w-3H71w4nuL~v4 z^U*1>*EIo``MWZUu8Opm3G4+@J7DKyain@8B6yCB9=#F+f5ziYHg#$TR0w4<`>x!x zxSe@d9DE*0J+$d~<9|%FpAZJq#+isduw5v>hrsDhCU)#*9?~_E^TSMxUK=f{yiY({ zVg|}>?jZeq3Z4~Iw)0Bce(1D67`NW0VwX`Jxel>^K@F(ev1^MkjSHf_067>(Mv5jM zYfSsT$Q^F3w}uU zCH%bnIg9=^78wSK*w3Fo{cC1cc7avX%O5^cg$kQ2=P&;pJy!p+ zxYv-g?&E3b5dT;dUg2lwebIBwd$GS!3iensPfPzQB7YG3dYC$oGd_t&>^GW)WZ=r1 zXCjqn$8GX-RPS^0kz4y-eUZt1${t;)v9i3g*gb&f zxHtW_wV7DJ9J9#~>Njn-6F2y?&1u7iD?&uQNvT*mnRn&PbTMliX9&*ZpfJuCnn79& z4B%bXVYxVXRfBr;|Go1zijJJ?n(}82NZuzrmE5OTnTEj!kBYv(IpaD&edG>T#O)$A z{_%c%c>1A;f3HHZ{zLSo20)KNO3W8RVQ#EEl1T zBe5lLI&mF$M3o_-_z;*0`-rPzze5O0xSzEl>acKG5{`ENeSXuiV#V?pyxWk0UPu37 zZ>I#z@~*58TO3zggjy^?O@8K3xrK;tKM&0t@?L(|Lio?lM-cP*opX$ZvBhlYX-}X2 zUB#J+GZ8|2#{KFe#%;>Rc@y%rmJb)3Z)D<2Puj%$vh1| z>iCMEYj}T-=ML7SjJpFE{?lw z&sK_SKKLFyCE^M=pJA?I z7;=?3e-%E_&NEeaMdQR|n9|On-5-e&qY`lR2DM4@9*g?iTiHtx`3QgJ;$_~#AdMUb zKdHOcBT&>T;a=cZ>f@wDh>8_j-1(S_aECREQ5L91 z1>$Qgd-?ZL(XG}B@vOcIIgdFTTD?v@pPfQ20CGz@Z518! zlQE0=su;Le4BEk+!AU${-euxGIo(v-spA=TM6`{GLar_M$}gP}L61Vwv>&w`g0GAA zsv!7wAupuwJ<-0LSl{c@aec&D@$y>;E*xN;QZ!X`I>&l}d+*iL*Fhh`8An-VJ^G7} z`^wj^Eyknospzn-johu-Ttx71JNWXMs4-?XB-%%KmWkVg^U#fPxM{5frFB?{NgDRAc5e5g$qm)0etL09U$SkDmV z#}YBqk!N$rJh8rncj#{Ntu$XLOk$%@hk4Yz6|j))nJyz6m@&abSK-hNMly#DrLeE!V% zINV-#eKiL=-cw^bt+jl@kX$wNz2P_Ci^tT6O6T7n7Vk2vda$f0{GqZ|EjA98bYd#V5ifq1l^=d7gYO zw-S5VhiJbu4SuU4#J4d~)VrfT(Vu)_dnuIoe{v&=67g~o^z-YHVh(Y+ZvxV>s3c1{pB&V8xexijal_%*D*4pC#W=(>+hTvV>~M4r zdGu3Z+aI$2MILVd;5^HtsodgoE;O{QS;q?EnR6h~o}EqgBHKF)jcCK)AJ>SadE|Vi z-QFI_6~70P3xamYz853fNkvAslJv@2#mby|K0!#(w|xw&ZY||3#9ftMQ~g<9Pl9DY_~7zKqkT?RZW)vPFe0 zov9(xQb@O*RPgLU{@&;Nq_}G-C?3f7e)^zvVo@^cPvHA%ewJFyiCD|rZ)uC4QajT) ztk}i7U{V*6@{@g0=J0LLd5PYuLoxh5YbANU*j*02|%^|n)->l}zKW63#od9QF^ z8H~KD({XX1N<=cpJNJus#8C%nmxxE{!^-(a(}9QO-47Nc{6i|TI!~A-s zo07n|J(`@D)tBkKkEI~ciaa*q({%@?CZmoQ`v9Ac>LQ4rEKcXoG_a7uG_m-hr^aGK zy|g@?z0iTw)z)+oJw}CM?;Y}&4M`S78v`+BC3!z46^Zht0a#D2Q?rTNg#Yd!xF09i zdhB#D>u3awmQW|+E#KFW1cY&C^?&_2U~Rcv<BO#$Xf1pL3kWNAP!=(w<&bh%=|1X~RM7sAa%=&}=Zz z^^tUGS6kkRX4EyVX(;tsNxaM`@;mG{)2$k!#@>mHKNA#+b$3)4&Y!E_R86^`*o`mD zTXt_#D$k{JW*C%)8--JqwsI1NGpCu-e1OuRT>_raCT;~e3eDCSSlp!l#8s2xIdd^* zd>$NrTk3cy1dZNNBXa*_(Y0G3JhzZjGGU$=cETS+$UkOyZ=;wW5QsbUb7yIWcx=rY z)`4fXQ;uj*oPcX~mHQh_b8G1T(#`?A-~V~uA-sAH0(f6rG+HcM`R3s<{n<+8A@458 z#d*er6{k$)_)R%*r{7*_P)nZHCJW%RI@DJ3YQ**jF#CE~RzW zz-e+CTHiWjwx9FB`u5zr%&x8MK+N53ch*WH)091#8xLg7a%l2y<>Ij_B*u})X6tq3 z{Wr;2l*-+-i;tAaXA@za&$wrNUfKG294>8QY~Qd%dHPf|`c<%p)9t9j)i?rnZq%%w z;wz187y_wE25T8(;TRkM?=tFV&1yP)R-QivX&Xt9@9T?M`Lap zI!-Z05i#&#^x+m2tzf+^mOVVy2=ZU0ryPaEkIXgCE>h;P#}(+!9?qs#y2xI^Xjp@K zhvi?SXYhx?0ru|ZMvKH+zIf7(yx~>Xi-m28uhx+Ny2c#g%bMlLpHzfoJP~d|iD;it zx&OSlN_TyOr;BleGaCDly87=m=AhOc?gX_fmFJKHawzTG>QRn7#Woj9>BHAjtmNNO zImB#J+i{AKe7SUL-od|wH4lerb(S~zG`Fp+x+P3}#8<91X zdEZF#S{`d4jBGe}n8ccWYmpQeP23aDUG%Xlx;}bx&iofk$4QFK1BufN=N|Ff*~&*J z)F|TF|JDAP^06~_r)DrG>C*~s#2h^-An)6zft(*FZ;mi5s9{P5MDUPp**69_71J2CNOrI%Sh($c`U)-=Lm3)eP z(TF@jD>wUzVXwWgpgaTryo$xhbRRSvNe=Lqv&Ea(aP-xtV(9alvi2nRE92rT#pj=; z!}Ue<=g+JK{&sAsZ+1T)<~LYV+&wGj-_3=dd3C*C^W|IQ;QZB$zLDx7ueHy?Px|mk zGgDcAITL$2F&{ozO&;Ec8iG7KmdX>t{|ft;gXo`q7l@ZnIj>N1SGuvCcuT+DWWijz zeQjYeo}4ta?dysek}8}SRUhW(lYf<293}oPiaL^`M=9%>Yj8!&+JE9{<<`sOdEnW< zrfi1Ge~2BR-NNS&#qXpP*cCFKOtHqrAxZeouZws$WY6Lr%{-oq^S*q?u?SnpK2o3$ zR@djetc345b_?BMBJC_Z_kAp?L7K@q3qiz7e0)`$(E6Fm0>v;NguYTHALQcD3dc~ z<``G&$riP!-_nmgw4_Vo4|_A+8E*rNmI^iRnM>o@i+E@+tXL}~PbH7l(`urhc`AB% zlZR(lpmZddJ6p8v$tHCa+m35+iE-ekcb@XuSPiPtRxRRxDb>WztfW2t?wMi+aY<*2 zndc0f47XoNAkYcVuDSyz379aKT&R8#IChOQ+-%0IUC9`vkH&aD?X$t2ZCzHgJe&Og`hq-B!?s7?f5+-)7%>NwR-(BDE{$jLZjuV>*xE5_a@sj^{Pa?tXQTeD-7?7Aise)Qp-n@wdM zx&D-l4`;935yiXM$6$W-IIvJWI+KRp)~o}MIEy&uzXiO%zIU%8UiK%)6k|fl&~Z{- zfAam%Z+CXyqc9|Peh_W-?BRB0eG?7d7xC+%jWFPz3QOsS|8@=~-w!ca>#0dJ!WOue zfToNa&$$2EVKlLk{5i$UosSJ*|DW$JvosTj#ztXh2=k5g}mXv{x2A= z{2Q7ZcV<7;AHh5?$9B$8Ud{HxqOAj z$^V!`%F{%|$uJal(jaH;VEO2Ga*{NyJny#q9HGC&xKWdRgJnCQPYTH=KWZu(rB~7K zwa>+8*5EgT_sjlgW?>L>iIp8@$c_GG;}vr=)le&W^DJtsF&{g8sf~Q~UIy;dhpSF` zCJNXus>%4E%_tTx1^v{C@x0Vs9OwOchj&@X<3G}}Zmfrr87p#3rODn}r04NI8dqDX zWqeMhe|DLDOc~2wP_M0w|7t@VUqs%6E$lP<48@YQyw8`g4`pqOdJ=05HS3P!A&5U+(Z~WabvHDji zibpaZdIs6tKN%WwEdFo)tPDugcl)~-JJ{!6{n=9A(J~*NCusAZb@cvya#53ZZd!g= zw%s-h)9H&Rd(M@IJuU&3@|I@-~P+ppOr%(u~} zXb0u35aCsqv6{a3vQ1U7uPtkOp7*XZn@QV<8~V7BIe<$G<(CHJJKD{j>ZSwAJ_tzLPSLPl^t18o1O~GUx&&xU!Y1vPElpiJsR5xp}hdW0F>yxnl?Ls-vF&+V{ zE9*SA+`dF#!Jczl+WEVCjDBrFHr8|Yz41av{fnQhN7;L9Q@vas@Ri!ae7{PwjdJyH zYNFE4&fikxA5W7og6Gl9*<6lg%rxTPU$dft{AVlY9nOrUKhKNox#W-u5ug2g}PkC0TUTQVWk7>j5uxqlv{Et>^dnpH)oqQ{(y(-icW%(<|jUt?%La98}Hz9_n)HOL^u4oTv?C)_UmH( zpqDezgm(5coUR|`N*)ox9k)rn^oK4*U>0L_%ZYF0Ns2hsVZQO^-4?ltA_-Z&=#$6O z<>6-RH}Y(@zBNvsXUcvrWAY`hma?~z3hiCVC;z2fyl9}tMBX*tRW=KgA8PF9d7pD4 zR#*@pcVroBpSH&0-A&@Q_A(By*eCt_q{UF$WMfDRX)bHR)l-|AL5zgm|p@)Qbj8BN0z0u2EJQtLFYKhdTe`bD#4bc^#O@9_`#FG}*Deg~?!Z95<@@X7{t>;P zF#Fl_%&b|n)?fBY>VfoB^u~0a&p-2~qWvxx7}}CAVG{sY@_k^wJC;8ibx&HLRT+H^ z;tIJxMBYUX@AaW;(QJn?Zp`Dm(;*X~)h39%nh5`;&7_^nED%yZ3WdXk$XjSl@0{BH zu=?%xmi^kBj%JMWGn>3JiSx&J#(Bwky|QI_?x^I){@EYZvy&nb%Q)-r*`tm~k43w| z#OvN=sk5lT_?&U>{@p~qa&|nTrc+bYriXfUUIGp{vfkeOOZ?{Ei6h_58H>xs*vuq2 zF((&=FA*Fnt*}$`X zhxhyNE2?4_=G=?S?F&~a+U4*Z{m1vHsI?@>CHSXzsh~HCUUDe@)1a1A(M2ijHMLR) zaOUpR99JgK!fnn|Y>tkFO?x+_u1Z6faS{0a-X7L>I0rwt97Dpbu&g=_Qx5Kf!xA%U zA5xdOMvaM&P0*Be=JfF07++`#lX;17m0EKz+yYVL{7umh6Z17~(6U+WIIp~VwCoM> ztA>noLHPW#b!qMhV{EH6hL&yG?T+@$A-)H{sH2b3JD71^X?Z|h#r=$}jPsZ`v(>k6 z$NdkN*tf-2t@k({yJiqus9^s>%)!Yy6{G4mQtNYOmlejGu<({J&?IjAM5((ROya#U_R{vKw4$=_Lrd9LQ<9fzpn}YYt z6Ib<6Lt+h9!bvfnFwNW&)x_hauplTVGenv7N(mxLtw8F z8n8-ScW1xOJiOH_QS@XEc6z`*E@_4c!;y_3p1Ml~y$vybBprKtUqko5W?1zv zFR3nL_;zy)UPCX~iL=rDfi*Ugo7?k49odUJN0tj~$60PyUe<1i1AZ{hCD#{}UAyc6 zH^zB_|M0T=-`uf;ady1@Qyt9xzT=Fu&Bzk9yA+2TjI+DbBK1vQ&W@GD#Mb$!y>k;V zm3KN1f_m|G;t#ClJ{omY$6n;lL^L^Xaeu}2Pvle2C*Dp@MMNw5Zg1s1WxZESVb7s= zniv}U^woUVNAr9Rdl@T=c>kaHMSSmsx%kHcT-cD_^mFt@M1CUj`SH+=Ekq!(zyONNT(Jnd%A{Wm#d8CQ^#my8XmmuDb08@3+cq-+SRL)lt0`s z#Dku5VjKb-9dVZ&q~}SjXV=>xfja8F=I_N_cT2QYrsKtv^Qe4njz#Z?!Qww?R9m2P zCGVTR%h1f%4wl?K3y=Dw-1Es5-g50Y&zV|Y)@us&7#Zi2rVGpBpE^)CIR)yKBg#tJ zd*CwTEKb*`U${qMDBo>b;;8*OFAmXTJWnoFpW7CX*%I%gtHJ6^SGh}V%3K;SLG4>7 z3CBE$6&vWP2M(qVP%QDH4vo~;9jQ;x{8lymnOM(U?!J@v+Jy@7mpL{20&{rcW-)6# z^Wt0HvsMem9nCZ}Badrjb)4wZpE`exXNL)PB3wTS3wdspdkjRY{c#xIFAeAXT8mA; zqM#;*9IbO%K9d}VU&-{uxnd*7Sq38HB6&WSG?c4$&qA+}=_pTIF9qCo!yaOr4nDf* zJj)SHKcwS?Ry59O*y8!uboe%04}%s~co5D$a*_(~Us&KTQk)eI1GUL%pR*72fzVzIJ|I8dF{tV_}cijPu2_3(GcDJHV82o^y6&S-@xy>h^Kw zVN$2epS~KP5~UtbO_yKnP4Z_k?YWCzL>*Wcx_ic1KoJ>DK81-eaQ_QZYQqN3vV9zW@T=}#qApIi+HAy zx6w%0T5^|jeHwON+%A7@#r*q&e%P_cRnvlI;UxJm<1dYodhK+>iwEiOK2e4q8SfRVQ*N#I()K*dd2^GKKhY0tP;C<20Pzo{lDad7_*rkmCO}}jdqKz zjM+8z3(8k3MP>{!V+GCA}^m6cLt&zCV8a*$iq1A6MY`JLgkJ`yPUb?#Gt%plj`gJ zD5%P7@25zb6=fU3?Qw%~{)WY6mU@mD#W+94=(4FxJaC3_9<5)$%&}WE9x%>7;?Jm8 zDdO>%@p5XoPHj6k0RiL5IXs)Lo=be#n|QL0ql0=-M{1J!6R$HLtxonx!Ojf!8lK(M z5BdLptmRC6WfS#fo>?p2b1R%bi*p6cuTOb~#Z58hK6#yu>F?I1OcXp|PTFFV6J${>u-R!enSD3g~wk*JFT~ zbIG4vSI#~HzR3Z@yfLpy1_pdzAlE#0#qK%u=(L`#Ix~?!`(w`DhIW)T(x)c>9=$DG z4@ibDtdTGy15esCz@cF_7||jf&+Iy&-%v*!`H#Frlk-wIXW#bJ>shweR4#rTix_(R z{C|97`>2YtM~T$ZWSq5Ci_2CUIZ|hW*pc&?vdOzW(6F3!h;4(iRO*mS=|~*%*g19P ztazjkBW~QkNS)34Dr^G#g|nIJ`wf%u$%fdSmW#R>_hnlKvDQ7PP`6l1JUg4%d!(-V zd=z`=4ZPzVnyWW-;y%p@_ORosMgGAwxW8czA66-(*J;!}NW%{66QV^ldFy)Au(jPM z8W^+on9SVxn{#LCXJ~Sk=M=SAoc>Bp$Q*icYGjC(MUjX;mxkoK-eUTS5X>J$thVU{ z(R8Rk^B;XE-*guFTf88T$-rjg=W?W-E9R8bU!?s)+2NZ54pLj&V$W^Wx5KuGppRsS zeKE>4AFNTDNWUjTbE(e)8)%xQL;LMQ>Dw45Oq|9Z*|3FFSr&j`Nc ztBu!<@vSI(lWh+*<2-s%WZCdMM|5MHXWY~+vwh|P7sh#s@n^M0Vl?;P`E#nu)O#1v zFJL%(>cVyEJ`dn5LM*R-H^BiHQEY|g%|d#RPg zjaqKu_g1c@Za9h_0%wT}>HQR=SkftOOTnY-h4bB4;klH zv6kxeHi=j}iQJW_5o%W#YNt7{ANku^-EIf9XZW69&TpdbN$l|9T-Ly$-$ez_@<85y zvu@oNucok0X21MoO%aw!47eOXL+O|4Z>l)c(6DHn|ar_ zODYiW)>8j3EDb$&ED%1sW6+&_@x6LE;&D`t`pty&$qs&znONZ8Qhfhvjq}8OU)*dfcI~%9ZWVpU zjk*dDyLj;=9s3=7iXr!$u##s$S1htENYR|jxG+Ln^*xeYx zOIX*n?xucn!4kdLOGKW!E@o_XLL+nTDp#)*(ex2qMf^V@FI?P;CLg{IbL^Y(!Z0ol zd)pAhJk(W`(#PS}0M=d$G=vTJm{I-cit2}0F&5cgep?u%M3Q}w;gv%p;8y=<}S-Sq@q z&0zg!yFq1}8$)ftG(2g3O0~X*I(yCNZ+)SjT*m$S;|b&j9M_jyCiRxc&qjt*71X(2q?EhPxcR6 z7Tl2!wR7aI!9O170y#U^gL{tD(1_~6;lsM2V0WI z`+#46vRL{tBM$Bj(-C=bt`tChk2Ev-LTOk_E&W2!s3aYaUB4-9HT=;78BmnDDQ*^d zVbq-rSXW(>;h?uI18@Nez>oU@~<^uZ2CtWl+q zx8b3XKX9I#L*40kA7%0=dV;4hC+==8JuQlX4ttD(36TDA*uL~(ui+RVX{o8ntoRrI zxzaAqdoQxy*x<5J>Nb;n1ojotFJx)R6z;OD{)e&Omh!6jE6;I_^A~A*L>f-lNkjG_ zP5k^wFG$vG!&~WKs6#sZGU-i_(haX9dMllxx2fC&i)es*Z-jlQ56xjAl$JdDV z_|lQ@(R6-|hbA1Wsd<&bugQ2Q?d49K3Aq-{M{JNT(QA9YCq2oY=t~~AywT)G2Clp} zR1}PG$Al%B*wMd-YZ=}8A{uO{x% zXuL4H?~301x%LgID-QJyflhinMt+{A{53rpl6LJl|M&7i>E#kfxb0`0XRc5rHl;2W z_e>9en5|57^1`?P&X!L1mW-$sKd~NXJ;F^YpHJ<>?u_k=JgMwZc@dyh-qJn2&%$@q%L(w&*)5Un8wQm-y<+$VSDBJ;-1)^PA8Hra?ca9&SDRnkM2 zJ>ezy5#%G#Lt`1wYR&}AWpClYUc*hp7;Odp+y;{SJ=X*cnEQi>|AZ`>gh^%8o0&tu zs~7sXW)p*p`^llT)yCM%VQ{FMf&DfQq;6J$7!<=jh%On@!gI6W*O2>Y;UUTm-8|51 z73&J;w(^X_E_l!_3zl6D$(PqVVf+mGQ8%Kl^&3YtI+=-u`V+Z#-~_L+8K~LnCTtqG z<5VH@;8txBOnrvWzvAczb6h!|cuv3OwddVSvLBRgI_-!d+lj3|lofAuopGAHx3*ZT zJd{dp5StYC0!nGzy%>1^BCmdRsuZ}DGrP{5UvF6}J^DtT?{M;Dj;N&*)P5dBd}Ge` z$I_lS<{`#;pI&_&H&4a)b*%kt+M)kl)@Ho>#t$8cRjk?Sv|~*u56ItF^L|Ka zPj8bQY491~gG@y_R=L$xWVdK zEQ*@bdpcXf*T2-bn?i5d7p-xRdk`JDyE^>SF=_4r9}Hm4_III%bl|)PdY;Y1hMn(J z)%LC^HP3?Gm_zcZ0%v?%o<&WT_QHCSGal(@p=hLy*w)bnuXk{lux*OC*UJO%OF7r@ z9V{F=bBCHcR^NM{R?g`_P0ALv>*uW>9+qyu;fNI*Qt-ETl|oB$MrUj48uZ_lKDVVV)DJk%{Jij79h7rE z;=rC{=T9A^S#wrg%sA^0!r&X6CEg>K#%uy!O=nHPp1NamN1WQi-RK~CONIe6J89_w>6 zFyAU1JElZpkIdK>7-0+bSjyOg3~5*&#^JsgT$qWKM>3>SC7zg}q^EbQo~7SH-0!=E-!ISQ4z1m>HZL0%6@95!?1jJCS+L#WEZ%teVw@v$h}l4~uQ(i` zsqy$YzD)VC4Y?>mwfjMzHBU<0Ja)vBm7J$H`>U|BamL6=?2`wbP=;Rc!dyLa3{K3F z4)mZ_^D}x+_gf>?S`?F`$xuXTCh#Gs0v-yQS z>?b(`XKxa$X@sxL8Iey|V+1(hydi5M))TLHL?K`{{dqa-#F<=N<^Dl_RT^3>%17o6 z;!DgOkG(gb#Xrrdx35cRbwK$DMDz9N(g% z;BA?SK*Lz{=bV4R+DzOG9*N~0{cxmH7Ur+JCjEHhiD{}VRHpw{UW%bN3cbH$d$*8_ zTwS>%PCotmee$u6?g&rLfp!1pqEhz4FLgE=#7q$_w{c&U`zb>&4-)e4aAX}}K5dYs z)FxN(b3pAlYqxq`YW&_2-&xl^J=#R2lBeY$m-X87h3rSVEXVsLY49V4DL>l;ZPpsiBGU1o z?;$J;WX$ViApJ-=b`W#wlb?a-R;O`x1a)mYWDkCKD3D@$xuL2)Ihykl6)V&(Fu9Qf ztxcok*}@HP^0?#o;gDST-V0}qa$%y<7N0KqQy)DGUu?UHxy}*jL0uHH$mYsh>>bVz zs+~6~&VMQW{M!-Lb2t+$&{k^AafaNB^AuDm)4EX$NRzw*DMK0*8H=@-sX5c@pcF8Q z+Q3bDZpS{6w#=q>a&O|#5l!)?g!&>=nTreipy)&jl9`{eXaXKG&d0ZNwqoIdpku5z z-!VV?GcPww12+;75wMtktIQc|)398-7;|0e;mckl_1;1Fv(Ik1h%+OrQ)tzexukyv zmQKBiG0UlWa3cd%b*gZmGaBvKOt@~X!f6NMTAEp?f93|t6QXfGEek6?$oRV;6y`6p z$UiScc58pQn`XmyksDSp4_G|TM#yAMT)Xay!z*)8UgRL@o_5CAh+Le@eV_|d%USX z-${0RlTgB1S{>LLBks@_Yf>uC%+f>A4fgBd+=B}=fg|Ir$v&`6Y6#y4)*TvsTo1&D-M(MJX$LosiPm_USueqBxmEu&Jy?@ z^+OkOeOexyhnlILyvK7;@znr*TDu@>W@N9Qpj7in#Wm41kEz{31o@=1@& zOW;Hwk{pa$VJ^mAcEi;>nP`|MiDjdMv77f-$GK*uLuN6*j;h_Koa@{~b+>~P)+dmQ z{Jw+oo!S`%_1FWd-zkSDd!zULWE?7-BW=DKi@PN$@cUCH-Q%9f`MR8qe*P+byiNb3 zF2pyww8PRL)GQfCURKgb41J!0YayIP^{~No=I86o8~$zLaCtpIoZ0XQHtgx^1!dsRyYE=Bh*;O? zOmtDzH)^qf`c-YR5EawdC~JB=a6b!U=QT1~Mva%Q3$k&oOC6&p)OmQ^A_w2b-^Zf~ zet2P%gJXLQ#FMC zGaHJ#c)OF_GS-lA=E58^#r+(1?KhN({byNoZoM0J2 z{nDN~N_8dcI-cQYVegdQd%fX(h9B$Bl}a1M;ohDUM7vi=6Gb8}{vzKXsao1ukD7Mv z$$x9#0U;fTVY6q^a4>{rbqZbw@Z2_YfQb$Hq3i>TCy=YSl>WUu&(AX#V>fG}?~JoW zug!2MBc4Z$qUvWUoS0+m4ASxK@Kq#xv0uN$+PL*=jCe=iq|6LN7-|?zq7Kk)=S-|x z)6}ThqC{*rp+9CuYoj|(^l%xLjf6hhM$O(vLaxci{zFu z&)j7)yopCu?wHv%7qf0`fC2l6htqQLr=KMvo7f_6dM<`L?2wl1wL+b{jPr`da@#6v zRJ_SX9jU(XndpS>ZCQJC87!KThtq^L?dvhqRXNRqF>-HheB;Nap0u=fLLK%af$>e0 zgTIrTSH(P@{z7@=i8p2+NXB6GY^jq`9Bz^07kF4L?I2z2`0&Slt-QhXROt47UMN*y}RtaJGR=w zxdr=m))Ng@$nXr~nKw+wUdtPZ?!dpBvyW2E_i!D~`(RJAbLaKZ=gotP6I z{-*Dm8~WwuVt?gj^f>K++xv5&wQw!-k2Mw@$wlxe6AVnZM04X@xY!?{y}A{O-E+`w z)<;#s5(n%YoyEMYB?6-S(6)x$wJAeXW=Fkn`A_Zhtg0HJG8syKuSW`oq<>QAX}Lh> zGW*7nmCD^Zv#^opreD)cX;*X{^9N_O5l5w$+<`jB8V|v5B?oG_IyNVs->nV(2jw9!BkagRns>7mI#$G_t%l3)ObHs5;DZUf&I0 z*tVa$?8JM0(jH*uu?*Z#rzXaQA8=Wdfv-HzTF#A)^tFh?#b?1q zZew(gxYHtk-gk#P8pZ!e!R&rH7~Q+GQL;-s!l<)wZa{mZ;(!Q*I_BWz%hpDhf&*pm|)u-^M^@tC-P6HGs4;rOINct8I?v9GLSr?|5SMhhs2z z0doU!rH}pRqT)E?oXI|=Y&E>!XJE!C?ns{40|l{p^LCkNcjq{!>awQmokgtsCRSeM zOwS-2UHd)f?s5hikH|sg{10%+=j`Q94hHCdz_?7F%j-Gl=>7)3Q|NV4oP)aqU*hQ8 zNIXf+L2>uz5C!aOMlt8?c#dnX0qj?@@z&@y4%G8Q$JwlzQ(xe24}T1r%vt$?9oR4? z9BbB5$KGj`V&XwR)Sq9QztL-4ylM$~Wr;5A`%bqk9cAZ?Na|ZoeXOC>yyT7gjOpp( zbIJv8;!u{Dg6GL?q}8m)x0MnDv4J%30Q>8w+|{}iECmxQ+Q58qQ+JW{gZ0`b=IWNe zcSzgW+uio(+@b9`sRwygt+#Ridf97f-_3L!{6=2a3{6ZMOG9CL-W-23CGd$Ir8lu`bXjR_)Nr>WxTntFlTET4l_TGELerc)S>J;Bp0#Hg(&yqF73q} zT+CmEx6kSSGCBw0K3maXB6$K4*{CV6Ks~cy?Bs6hx{wFZa|*&ma%_5DI*O+BI(f7u z9_JTUDc;-AYmQvW|DQM7^j)BO-N6=F7WA{&^IvK8aeLO7$r$QbaI{;hJ9gS9Bl}1T zr9J%!%==NpA>2=CU=$B4NA}f!Rw++6PQ>g$a(Z8#QtscHgpdW?*>3brxv(vLi7R-{ zE89p}Be=`Xd$HxZAyU0_sd#Kaer&=FX*_$7s0hwym-tI-D~LY}@(eVyr9$#796Gaa zX;~m8CK8`xpSU_@yY%xE{ffIV??kDkzswa^FQ#K{$D7hViwtUQ5j&dnPP&wk0iS)D zhG%+9T>OvE(>e#9FLf9T&M=*G5D=n^ULo8aXv8{X z?>PKNue5!{HyU(HLd~I2C{}0Tm&aE4w+=+|uMAv_x_};20*DE4zBzLv&i>_I%!Ej+ zee_bX<1zIXT-toWn2U z4%*Z+rB7~rAa1wUNMqxl56@V zj?XXulJu=k2u2^_y)p+V8sP_z-Q=Ab=cC>YFV1{Z&^WIQr}uk7*NZ!u>J?acF&Ga{ z`J&FHmx^)zN!T7$+rQf?aJ_1u4t4%nlVu$;R8`TFr6_^3kOSRSFEj0s{e?Lq!B!<7 z3gEp%kJn$hszZ0eP`-$sBW1;^wwoichVz3TCC61g&7;uTF`0MN3zhO>G%i_C-?CdH zdDQ4w-aE{RSGvf%(&A7Zk&KOzBV}!J^O~=r$5U%lxrY3NAMA-no${9}xnF#i7)yW4 zOnFE)wexqRARu_D9AwTN1;%>h-i`7E_N*5aR7Nd4X$ zY4|$aUb=rP0EWa5dv5BC;X{2;!rp3bC+6{DVm@ZnCQaIh`R!(5(F)?-1C~QR6b$Dv zv!G@6MseVKBJ}4u)H=_zqSmUSI+>xaG6g?A&QxhRTOcxx{?YR-RpqXBNd1)rr%!SWIt626ch{vOJ`dQ2?k&hgpc0TL2wNI|eQM>5#(}X1bCg&W_twsm2X4gT%aX|F*NrhH=)T7RJYiDXO(*c6iEuZ+PKz)xw|v ztd3)B&AZ9BsL|(3ZS#r)lVssWEktkncSncH!A+x>2a<8~TTg>fdLan}@-5#zAl<1XHqQ)hBM_kB`AMAl;Z23#Q@@_wXv zr=m{q2kr{J4-l;j;viQtk0e-#l<+95W1ZRhL|WvOnz$_fNsnu zzlKbd^{GFZJ)0WE=8^Kzi4kygXAgX1sqFqf57q9z1`8>TnhYY8-d6O%0r&lp( zMcpXX<}dQxiE-FDhUdIqbKytbh6R?q3)=P&6SpTonL^L3bOUjO-05dL+dsw{i)K8} zY0MEheZ9pT{yQ^rsVy9yB;vl&4~jW_>4jV&7m@o!?%B|N^TiEnY%gK|Ij(5FILdk5 z+OgbQDa#Tw$@6J=jyeq0{vxSyIP7_@jyzTfJ2?o(%u!jf-{jn>eptfy!T&~gSsv+4 zuSGu7jER!1+5-jKI7_mq%N;ULwC+lM?`1O(=Hi1rDyHpi6#f-jQ|1_hbRdX#Y@R-l*hFqk2GSCiRwUf~|Ojk}Zq#kb~bMGck zd5;J6v3XbCshKBt=@)^6&fJCQOl|Ee^q!WeW2|>c9#6kE`vJ-5Eq#$KuF%`AXEGKI z))JOO<8Zh?J#H#`ii@H2(&afHd3TKXR+xZ&o_t10mf|!y@;-&s%S{dv`-!_Ye95~t zC{ygUW{zjhebs%DI7_}$>VA5w^(_?J(~_`S|lmhgR^hFKV^kzzA6TIOI{S_ ziv88$nBS58Rc5T1^e`BY%9Fs2SK+gnIvdQ5V;VIVr!r?@MshOjuI0#&>w2PvkUnpyaCI~*F%Ccv%DKOb***!mn&%ri)U#wubW z|ND>ntju*6`z}<)%``*gbaLQSNvbB8C|yQR()%0hs9lz0pAg_Pv-!v|TVCz7QlJRBo^h4Z(8BJ|}!{@T5G8)f%FrSZVB-$N|L2)~t z#i*`gMo02JIHNJQE_a}he%2i@K$lK@hPfh% zckuU1i$~`@bK+f@h(38+rL8}lFhnC3w$`KY)!q#ieS%TZWgPbnf)H@fmAjuS717jX zT6f2?R-Aim%Tq;|n&G=KH43CORnd6Hc?0h?^-^fAy78ws2pyj&g!HEW>5fA2t2y_83=@%; zzd$Vi5{T({IX^Z?7yJA8;XY??ehL?H{ErtZT<8%wZjd;7#SP8xCGt+ZC6~N#!q{_( z=$718*4XTTOPvzX@9i+@#%%|r`O@bvyE*2+a>3sdfw;P`E9B%Ld}~Hd@#Cvp~3txYNY7* zGL}6ey;StggquF|XI-B2w}GOGcLEX^t4VT}D2S#n2JcYEp3B5??nk8ad^WOPFQSWB zZ`&~s=xz}^R>fofCweO=HVd1l(OA}nej-oSiWM`$QIGqI@f!<7U6Ww6^W=Ntyij<~ z^M~um1ZXO<#Xm2bxry{L3f4?qi;8cv5xank^KDyyMQ>$j?vtV?tIkj`S~(J-&wG z8Ds8oRV5o92uDlS$z8Ob%bTfjy@@&5QDGA4Cm&F{Xz7J?MAG6SAkelkcc157eT>A;@EWh zDcw&Z4zf}7ok%YlL+)^%T_Hy5V!u_|di^bYd zUmUBX2G_c|V$N$XdVVF~Q%$PqlkSGZvII;&=PJH`cf_2p33&5mxH#0+4$(ddxbILc z2X?o?woY--)p3ij?9Bx3%UrD; z=NZ~Ts^$~Tu+}~Wao(w_ee~68c#M3(=+i1gVT&E(==nI+N!H!&kKU~JwDeZV2XBXB z8RNWbU%9NeJRDQZ=#_Bxjr?#Ny{njKd=$;ao{LdSRqzvh9QfdR=e6R7s*qCFrgwIPk$^Eom%?CG$kIs9rH!h z@mZKy8c&}25)ts&1B-R}{%o5g7Ik*P!5n%v9Z3;&GVGyROi#BZE~3?S)(a)^n5s2Y zSaq?&L91BwdG=PWskBB;P6SGNHIWYDZ$JFP_=#@wnM z=Yc-Xs$9toZ;98*)(I-lHWs*9#&>+pY1QX1R!V`5mb+jB{pd$=mfEsj?fiVY z`3O~fb2F@DoJAWGRmyGpWbv+f@uOI^cBn0GO=6vDV<>;l@IxAFfLq=fa>o1+RI@i( zPH*~eylZYTwtq&QlC=}UG58sM=kL6g_0C7&>h>f=-f1d|+ecw{47LBlbVY_~G$v1_ zXLtD+p%D^;Cagv0+^`ZaQ|Vd%i@upHg2l|&vFLh+v#3F-;^yTTSUDwf_aswPHi*K# z^$8gGGEH3A9g4L4ct}T6#k^C2s6G;h*4F9b-}iY|FAjk*Il^=KER1Qzozh41#V1Qo zS1i~bi*sXZ$GO4w zrm8JX%_35fP@)+kyw=z^id)i_j;~cN2EiZKQq+mt zX&G|iolxxV&OO!5Yh`mKJ&~CcG}p;;MMeZXSbJR>_fWQ=7i8yM zp8V7iNeyDqqGb~IpazPfrqon;#XTYqBT=)My=)169@mHt*wc}MwhKZC)^w} z!eU_HwpxtqY6Z<65!{E25K~+n*+&MT)3|5ye(uek@o9nqv#&yh?w%DnZ8<35;{MHBVJrB|kKaq0UmHp7IDK`K}(x$Vr|q zci0+=g{-mb)r*#U*9~V~#CrG2Vi{5dz1P@3l<$!HMMdH|>(Y;JPsfQE0U+Xx$ z3QQH9PBSN8plAGn#o~K!2kbJ9C;qij4A^3gIkV%j<<Rz^y z`^JZ21N*GW_QU1YXTxxTIkx!&YHa=r$M_XI!)p@cNBtsEzior4X#$54g(p~urweBCRNzOUmGkz!RxYDHyIU^rQcE zQsrSxUIcqR*O?zw2bYAQ^cwZ%K5NPEO2V;aNfKIW_LIjx;BJmBITrIL$OE{WyM#Hp z{J6V3{b3Y*Unas~ahiPhcrick}Hd3XMFF zZWTxWAS-cgxC@ruXUrqBMaUL=7$wCc^uR_@J(~MI^w)b9R3Z8vGsn^(;)zbTg!yqZ z)bWbNQE^Y~<~iMH5Q%1cP6%sl2c*(VV}!krNcir9FP~gtx_iG;8X1FEezoK5)4h6( zsfHQWG0wX}7MFOd&GCY9wqI#d8u-Bmw9VQCqM zecL2)^u9CNKcUvzqGZw1(jM7!so`k8K@_~U!mA(g(7AL{#QK_J`kHv0%%~FW-OVtb zHN=k5Z^XEL?BkdRKfb;tI+)rciv3{oZaJcu-1P-K&vBPdEAB_puVIgQtv+S%`5p=j z`aGUyoMVl3#_E-tqlR%#y5v{l|I`LM8Rz7pgwoZV6;y;Xwi`E=F54XpC2{-R*>Y+1 zj}Sa)O@5?QS(>XyZ@~*mC|LTZbUu9|a)<#{8MaY5+t4d;8f#VZVt3JUZr0^OZMP5GRHR22*b#;Nif-QYHX!eIBKXJbF`qI;sHI;?oD7_(Y3pxbwhf> zHsJo-H3P+#`;qu|n*H7!C^i>IVfAA6%lX3<>n1aYxUvT^eKPh%WA0MX@2_3`F(sSE z(r1=gfedmsAX^kkDZjLr3k??-?MZ9Faz4|G=X%}o4(^A}U*3uQ3nrZU-?|!JewzfZP z)3>J-CBID3-Zcf*o6QwV4wz#I<7~38l_KD>4g47Aj)4soee-?Mm2p1(%vRwVNe@lC zWR&R@C|>Ul!Dh}7(f^bp?RqGbr;=c0`a|)7v#r~y^dzWmt6Y7DSd&EWUBh9@Ib{*p zQ$rujJI2Zu+}YVBh|RtCQT8#WJ_+X#X`hmn*Pn5QZJvmd4H?SAhv~iEi2SF}P-T~& z5hzbdK&y{^l*V&IF^szK-TF2d8+I-LM|V#`4&&Ew#ATvr}H&I|Qk#Nzdb zHFDA&H>jrY4A0UOYt>HZ`zj9KO6d*P$qvhk;?XQ=iLl#biA#MGV0A_D-Lmme?`olF$(QhX5COFcr84YiBtjDt;T*kFS$7Wmk%_FC+Z<8O^^D@qI(M6O z_9@@(i9kpcy)XMNQr@9X9X7<1>(od&JU0N7H*)US=D*TR0BMJ8CN%bLLVM$NBo4ValSQa3qhQ9_v91 z<<1Ea`0{~gRX29ecGK_pV4gB_2mRK=6Hzs%P^w+7DSEo2* zW{=u&ez0bca@==*E#s^eTdWwn-5d-5<>%RB6-h^I0LIz4@7l4ZcD}G=oTu$OKenb{ zFg92-Z>P3V95fHX*~Y}@mrhi4q0gPBn)45JoT8y+7`=UyFsiCRF-j2*cYWsMvj-Jl zn?zvo>qMaZilSqA1oE~JuW0sG@!NwQ^!|z1I7&l#x+)U6LlW_2UtMM6qmg*{gxGJB zhYEB0q#L*-pk-)?;&*Wf#nPgdNam63fyg1lw3Q$#2$8yZ;SahkUDQ|A;iL<9; zaoHzP?y%04d*tLg1Yeb}#5!VPWgHGR?kUD`j`yDZd!qzjv8j&*hG`SW^DGoAGfnX5 zzj%C(SBVLujB)=xdCAo`#bD|Lp3bJmT$B3(x|XT^gE5BdN@K@|Vx*je`$nqLPMifaj!Z&}C-+K^@J_rvC<#p? zHB>q`!cp~%xngTu)zPd75jQ7gU#WXNo`4sgksg45h1vpNF9)$XH>%+{4pgd4iBd^lx@ia%B+kV8ZK8@Y%<4F#yNBAgfY@~8<;T8#r_XU&l<2UWt_by z=&734phGiZs~|YUQe`d(k7ll=yJ7VpT+=FkB2{%-@!)Mm-I~x&BG; zsP|NLa$`6iKT52pBohhsJKGoHB#wxeKwQ<5T6fO{md& ziE~XSN4e>kaQdMq;QjDf@}Qm6W%ZATmSdpY>Z~8~{o~N%S(1GJh&M*DAG5!xuM8Yv{xg6MWTOY!YS&yGQ-90wdwq z(U|)%@n|eL3+wMQP=9hPHdh1-mwCn*yEpvoCBYkm+J@vt+A5=L3oE=|C#OaJyvb@Ki z9s-F-oHj(BPV7CDXLZ{>6ZxEJ5cct`Ho6`mH(=cK*n@0(J6EnDR-ZH_0fA3f$_33r z5TmA#d2W&XgV>{zd3Aq5v257gAC}w|JbHGkJgvPiMzkVEX0cz+UP@o)m>BfR2Is%yQx3m5CzXcd2;hB=CJz_iG|6* zvTC6*dgeu<`B8oObKRMkJu@728pW#4c+AAXqF{8c_L5#7HpSp0KIksZhr>ZT82dTk zME|))V=qQv(Uz&T;;eSqtL(gHDniJYGheTz+&*SHHXh}CEgU0#h;g73j-65R&G)v^#&=L8)c`$xfa&|K8 zirld>7<*T7U(w;2oHQjE(^(I^yzowbK8ZetJkM)Ce3U&J`NL!hainF{a$bxtZdJwN z_e~A)Akqg{JYo^ux}Mnb!5ilu#-Ll-SGj$pCyq>IZ@=Y&EcbT9)1qjsGx$HQzB;O^ zt$W+<##XQuTg_V}rz4k%u?!@lyj_ z{1a`+1ASo&D+PJ?zBw#Qk*yD-Hb)ffkOE z3b|lAy?vv}dl`O99!Ko39!b?C z7)~i2rP1^>zs(xUF7Bk1aFlthmOpCtZX@-pPC&r6zj2HwlMkr8b{Jw@Bso4^8mpSF znF6oZoYS>fH+JW+8JHawkI_qmDjMyuLo@b~^u9f*P{=E^^NNRKaT|HxFE_+@V}0T^ zMy{^yfk(IE5VONsep15|*Yo3$keM#8uFsyT3uh~x*2q0td*kaM)+EMda(7}Cma{J! zoN-;Q)7KXdZpUKjkRNiya6kO6G`M_YHXeTolO zU5Uoa`oW@8pbv3J>}eE-h$F-T?O%GX}*L1y?1}8E>*37A?~Ckz`>%C zYN7QM+^ClTyL(1sA3vXt$Ytb|Sk9|>LiCe0QG*p5COgUDPr;Vy7oQY>C4G^F8vQJziMG`^)GD=VZHLZ>X*4 zc@X+e_AjQ#-`F@fmNgRdclpvQI}U-{bj16E^v>=ahjL}OxFq|-i_alVW{Bqd1Mrw< zK}v$FSgZ=fVAeC^enp5F;#FRDh=VC-E`xYRPkTTNR;v^-y2KAp=W&+(BV8EQ^FyzU+g;S&`A+T54|!tZIX~pDqzAyHIAKO@(uJ;^UtVb^=Bm8$ zhlK|E9Zu9i#UTg9|!BZE5wn;f!NR5zRkq~VMomEV)hc7 zCKig5`TlV8r+;Cq&EoShe{6G$!_GdN#5v+WN3M?pG&y3Yi635Yj{o-3F!AM?Hx6>Y zClx)eIDgFx#>9D#P0p6yI|t(P4BlG{E=g0kX6r`&t*e&PTc~P97~&wYQZ?_^Q;jg4 z0-xc;RyhwY-F0v}tZtG+)MtCezV3GDTut1ST{n4znsfQ<#2ze}ArEvWmvb{`h4*9S zHpcGw9vzRGPnOCHiDgxY9bMqHNABLr6Tb#>&N%A4Y+1_-A=~x_%N9lS5S&5mN4*ki!!`^8+=%zswpASN8w9_Mc=*;hD0ZI+gw=|8 zY-(R6?$!xJ@=BiXfmI?hmfU2nr6~*dh!$)8i4!9}(sZ$?|HT(>#BP1QH%8nnB3EJ= zb&7nZQ=iQngNakUJk3j*8Wsr449=9lKaz|B6Y!jQ70PbyZW1 zr=TIR-=}kHm)&H29`lp)!NUhD&i}DRvp>Yogba|qoLq7D7jd3P+`i(nIX2zo+?W8>YhzBZpmptC}rz|mt6tbs!WMM}!gy+#^V}8f+ zV?_<-J*yeXb4kpk) z^0m0|IS}o3C7{j78zSyj0D2xvK<|2r80+qjg}tdUa$<>i-H|hso#Z{{jTZHfc|qSv zjl+Ke<&h7`W!pe4vhgFObM}Go>y`ks1J9*p1(RQT=T#Jo~hw^#)?a}2W&1< zQ=+MflC|9f8_!Tj;)TtGuATU)6kSewn5yYr6TMS2Dl*?I2}zdtcZ_ zQ#0j@o$^M@4@b!D^i7zeJa6t#J`Xh?n~hTP+OrOsL(IQtFXeRGKzy|&M%t^b^16Vt zatG>5zipsgVxE!7kDmDMgXlIU0J-_pMBRQ$Xm0yr?yp3wp1wj9fAqpo>Vr(|pf3jH zdSHxK5-P&-WHWb9dMi^i@K$}v#x4M1Ipkt%H#X2A2XNH4zvJvu1h}A{XyT8=Z!S$a$J%3mU(RXXQl3JH*%e*Y22b(8PcCRoP00VJB}(pSO-q# zdx>}1r;NDkfyI0;<>4EYfJ#q%sw6+hZmIHfqZf9T(l=y#rm`Z(8wtA^^FHxPy#ya5 zk+=10si$&0)ED&&=~X(!T>0Ybhd#@xa~@@&oDJaG=6ApQY=B~GOWrYYldpi-&U+6S6XzV|An$$px2R)fpR7Fi z;Em>dM}xNoC_CTyz=d3(m$H=-{>vB7WNImN8LyOdq$eQXOFOUrN-$?h>07A#(XO3x zinED;?bL+4S4W9R4S>#3>Q)S;k`r-{bsJNA>8#&|mm=iY6*627oV?T3+epFA5Iq%nt?otnMV@-|oSP#@b zPA+$cbIKP>540$z?}mD_vV5ZlN_j4OZ^%#qO;Zn~R4$P}t+mwq=#IXI*rVr`xEkci6 zb?|dK=@1LuKY;s{`sb$HTlo86T9np z|EJB^a(<#H_vM;zK)-31O!){kHVfWUNB7o023$+MPSaMGOlR8veEX2yBe|4kznMbr1w@L$W;~RMd!>-9MS;y|6jzHFt zV)-Gp#gVz zeXYgdgF&$4?=4>0UmPN4Pi{$ljjt2LiAfil{m0XG^-zhKFsI;)GHUCEhDHiOzq89CxmUw2=d^l zbGZDXFntmRN9x*)oqI)`p%2UF0_xHiUKEW4^SK>$>e5b#AZj^lStVol^HQ;mco=&X zdAP9)#mPu-bTv;w^4BCeNlko#0lkO64>#~{&03oH(*KQfKe;QCCgl7V!{s4W($tdF z|DMbJI!NZ_$v9jq5x8em5l3$NKaIFI8x4>HYp37|x$}n~&y^>QOv21o)TFv!BKQ14 z&Sg8EM=zep=lTCuj8DbVM#A$;JO=Z8KQ*?S_`n(0q`~yi>`Oird3Hst6SS5ai_XN$ z#80Ajbcu)P&tB;su5$yMMDf%<7Ct=7imbDQW)wXKc-}RAvqH$-ViCs}-e|N%3~CgM zT|76B&)X-e@?vm!GyNL+R|>y2G5EtAB3GOi_S5Mx&73o|*HzKA5p@L{sNvqETGS!- z%)(R+3(XyIALJvPSEJ9q+d`Ld4j>P4)PSqP>WDAKkqhnF;HY>-jg;NKDQI{xU;K&p zMC#lWl>AyDCv%;97bIbIv97`KuIw9}AO`q<*0c4UFLG+T1$e=;&pgmsoVD74sDkr>Bgwk2t?$E?VhR z=lpH37^0O9--%pHA7X?@=Tz9wAUCINvgngb9{g;+qmm49iXPt`8N=$U*`kLPeIb4R ztq1bNj#T;^N06`Qoi7}BQuCYfjJml_oLtN~FweD172Cx8?Q!&Iq}D{cz2d{YSS0XF zy!WD9Odrnv>%Zq_(P6Qk81oOO`L0i#7SfDp^n6Cmgpy0*b18jx+Nj}}bVH=ZhhvPZ z8uy#u6*E?mJNANFLe=-hzykrGp$_UVyeC|veGp2$sS{dPMDuo@*tUY2Y~|a;3GxNC z4^xA*=$71$^=%9}y7kUCGx+|}8?Cq||2NKc{y8S{%X0DHdjejK>7XpiD1y@uV$PrZ z5YDEB2<5&WJ?gqx+Ityh{-%F=iAI!e%Ecr;N53l;Jxk^huT9@x-c^G}XF#9NvFBC` z=fYG-%sJlQSBTW2WW46j&up|zv?Hf@5_8VNJanDoOZ@#rSSa~gA>d@9oMZA^ZLgi^d7NlD+Yd+Pr%82{$lfB&a_QCBfKl8Z0=j%Ay}6;HDwykY$ubIU;a z)UXh0#$?`c9p%sSrTD}6n}*d_1_$P1K4aMS!Yk1{jXs-vb`QBMbQ@)00OKqg9}M&qrzK-JpPzo&B3jp^rZ}HXBG-!YQ_T1Lw?5BSh}OFju$n*r_NzQ`TAMst zzL)Le7YdInv7D=t`?D`cgkGixIzQ)%UgWGbh{03l`Kq`qvD_{ihh9*-NzM{wr|9wV zl%DVVvc-v3QE2^)_d%;%(WX@-Zhhi+?6*jaUmA{K&AA6RE)$NN^;L|cHcLjKs6G~i zHyi2a(x+J9ryn-WqKCq#O7Zrz7j`i};@KJTDcl`?jgqk=K@rk5SJa!5j33urM2~46 zzz;Q0;DC2`d|=6*$^WkBSM&UohR1R-=1l@tp4p;U)GIX7{3JDn3(CTdixVZ--(yX|(-owe0nKF8Xu7FA(f z=Uo5FN!+2HWEKByRc~kUj`~y=SiAb(@e%K4g(7JT>%hTk@i`+1FBeibb>(8wVL#^% z1E{@OQ6$nMys-KYJp!r^3#Z@2MjlGS?1@Lj>G7`E_Lg21v*rnZT@Q>+p>K$@uk^^- z7wtdB{1xXeJ(epSxt<3xwtL!KQ(l+vKr#2`;pK&je#ly!;o5$3CQ*45vh=^T?bFvx z$*Ylz&;0!6UV4gMmwDL5H96pPJH>ZfIuZ}JZ4R)n#@gdyX{yK|rek;m{+#Y1 z!jJrhKYX5EW-sFDfj*-lpKneTb$dtS8UNfpe~ehex%VeNn+6ON6Aw~zkIzH9_Y{p5 zMc^89W^apbV$RPn{A$hK#fZM*I`L5fto=Tp9VeCy3PNKw-|x&I(O`xjVtH16TfRb6 zyyT4Lh#F?u<)YhEHyjJ&o{T*y#wWPoGdbgbQVT_`-|ld!N$uG_mGUHVyFBLneGWcK zEK|x3=VBA{W8XHlHCsb>z<_yd_3T4R+kR^?pKG18UJGLzFsrp<@hJt4jOUxsKVo!qYELqrhK|)@P@WnS>d|{; zogxBx?xipeu?;qhpjrv2)tGVEx==)=kUQ0sb+{%$Y&VHT8?L>Y77k*^9BR|CwyBt5 zAo4d5lf_u6`}PtAji|xGv-?C~Q*qKR3KLoDWMqGk=lVv%oX;_3S7hB@5op?hT3BZt3ECA5R2qRHJ|O z9&ysd6%SR^tvGQ`*w5#^nEj31hy%j$vOBEOxlWWY;hOG;x2OL0Nsqfzt!OjO-vYsa57@z)owf0$2a3ntH5kG;-x*u1{Qk8Btr=UF@NA{Q!W_(EY;Se)R#Hncv7WI_ zpFBZnJ0l&ojP0M?o=Te&Da8G;Ka<~B@p_Vk_l#}-(pSPWh}xlChff!r5LVOJhiJlm zYP4M#ACE^K<9Xx60x{Nm6}3Eb9abFUz`!& zgWBD%u84bHbLbbun&ifD5mL;%?GV=O)*4aW#vi|^t@gk9*|tj!P0gxY`knE7xjIC1 z>%n%MzQvr}u$Jaa-Wo)|XN}S9xU#=;2|6+dUQ1o0Xxsc>y^Xs`O7FBx?5jymx{H+( zs-2E&wW-@ht^UQUs5Qda-W<_RStRHQ!`QYg`X$n4uvX<-wVQZJwCvAy#QTUv(S zJPOPB9gi*w`Oj1A`%wB=JJgWvXGEYKpHI29uGsW~T6XOF#hNeC|3FO0n6dPXJ6UJ! zdg{z?GUI!^^t)p6ZGSAAPko!cXXK(N^2^v0SPTncLL9Y*dQa=4w~E2ma}e1m32SVt zMJGcijHiZgRMa&Q#5ia3Tz=M|mU3mWKVB1y`M+^)YTQzjsma9-=8CV`hMIXRwqyM@ z_CFi6($t@}2C1yCTCTdQv`JrrkBsvyv)xLc?m1Y%HEa`>t5}(4(o=?Ysg|Eo^ePQT z%&~+1Oi&I5ryznk!6Ci7lDm|>!zR?|E~uyE^i|^l*KO)rhto!Zni!;aF5tvGCM2~LD(GJ8#=!g9k=cxGZn%N>3Q}0uEwV#7#D79!UFHsxx zaW~DTKda%!cjWi%i_&h|66|HJu(*9lIruCa1G$DzoGMTPbTYA%YxwcjL?yQ(4P{)z znFGv}nuffOGLEZr2Pz0iLRZ#N=6cN(L+V)mtF;^Usf z4<0KmyZbR5UhI=Rtlv~}S{{aA#y_`iqO`p;ITt+drl%E1+xi5fl0UPoV}`Uz3PAG_ zJO}&jRJ~LAAZiwMv>K<$8RqV2vWi+mRR-c=$Q+#LOpR~r&En?|d;D6g#v8Bu;&_Y$ znuV+JEa8#($lMavh+gNNp?E9~fJy(q`*q*957Stc=Hk#D*0ftgHTCOn$K$gJz+x3QCOuC#Fb_}9%T#o-(lD57cm+mgC(Mc`uoPTn_Lp5!@Be&Jf?&-$Bk z#5>MQOSx`yi)V^X5izJ_Y`4~KAo9p1ygZ&-c(F@l?WR$vX_$yUPY+eR430qNMCNwm zLe<{SVOYd-t&8xJcBasGkuhxZd8d?qG8lt&c^2<(Q6m{7)RY|gR#OQ(h*Bb6R{v;ov6Lqj+}97-JiHF%z8WENI&`q zRNWDc$j5Jy5)ZrgHp4fZEF(-}8TGtYfB zG_N?ry55TY&%FQQytn^jWne`1f9Ks0%>kv;zPVV#T#;|ISXpeBhF#3Vx*>r|A8HY8 zZAPuYQ{$CFYSEqG_cE>OtVESF|1m%8zx|bUEN3`98J~NKI8UzOp@H1{3vxu74bMLA z_p(wWVMyF}KgM>4{VzGYgqo0yt-*M;tZEjC1$;i#9u+^Pg`k(S9|ivaYVtK}S=z zDDS^|SbFtY2~lO^E7w4{eU)-AVJ;!B-;)CIJ2C7Qr=sn1;4yevo`w)t1P8W#PPl)F6HTzHmch5T(Efvxi<6M zVJ`(pp>MbRkMcqULwY^r*wj|_+G=( zl~#|afxP2yo$X#@JT%U`a&hJ=bpqv;nnSwV@I}MBb89Ef_tUFT$h!KcUSCbFWgb>D zZyeoSTO;aZBZHs6Z2vhWZyNJPed;dO-=uW?k&1)N6$U-hl(~zO(O8Q)RQmTn^W*^;!>kd3G35xNZ;i&lr8PECii<^ZnHrBVE}Sgzem4mtQWF8WEd! zXc6z-U6)GT7x-YsUCw{we5ID>Jn*Lmqk6S(meVY* zw95et$#DT~G+T2xG&bqpb&T!3&E_v9` zI2#^rtVukZg;$KT_u*U0;|_BX$^H1e{x0SFsZ_LOu82QAUvcqHMmN?HrxKi$)tjiL z&pv$WAU!4Agn6+K=Yzc(Dtb#;W3bjTb~q#6o{Yr<=GFPtd15VliZ>YNqEurM9~6nL zT-*0X*A!mVaJ$PjpSdqUzAz{h-MDW5%trZ8tzgvSyDl$mBJJj!uEuKOe546dp9|Cy z;2eC+gT_;YxUyJtd*@a-9!U6C4?;7;a21SMR~OusG#<|u{}<<} zyR!x`xcjR>u!2m1|Pr%DTd6>>{NxXFCI!E2dR>DIUr6YwgOj zENhgK!Sn4o>*meoO_dnp2z0sMpDCBbgn`5}GM+#8uOxSmK6i|HaDx;Onp_s_^bLwfjY~mA)AIwpAvvVqjsEKv2On^u9Fa5!X$paph0LMW(D(&_j@QaB@ zhnIuK`fEEw*-zbrvI!M?UF_kYPhL{`l?tZ=R!|`haqD$ux54I+$;<2B*jbKqFu}A7 zd&xkB&xSs6> z_R^$1Ohp{yJa|AYjgu}td>H4Xx@VP1J7e&UaX#H@gYx!nIPNjd=Y}OK%VvZiryF~N z+Qv%f7a{mGfI0krHzn?6D5_Y~b}{-cl7hnUjpyA_Eg}9H8-~skIWv8lBVJJBa5-x; zhbJ?HUI=vp81tnT4aK`D!T84f6SRB1JZ%AS8mu87#*C25R`{W~jOW_oTNNLNa(*`^ z0f!RHDryQByj&YkHtxELLv0<T9`YtMdNL zfb|;Q(XMonY8;!23hqaDM-yq|uPHdiy+3Tj2Gy>4)1X5P!L?6aL=#tIr2i!DG^wqU z=wOadI)AU{mN9EIQ>P}Q8RL9TeMRH9X$3NOBw+g36`E}e<{|TF0#+5dYrL9MFZ?I_ z!wvN`30A}mGR|-1hMMxqV6^6U+&1f)($R<>SUmfhG~ce&naLWpeIoXqpR0_v2*H-_ zT=Q-06;uCEOkqyGzG8^dF(nLJ7{dqNO_WbV!>P$h4N2GALaT2$?o8o(+`3aNGpBY7 zV_v-_U1*X+(N0Bu|8rACW8x!jGUkhdT8fVKgAvR3=%9B}9zje|PEDSDwHL}Q?0j%A zpSW&I2YJd+%>i3?82E040pQ(*K#CguLWIZ;kGbTh&#g}!lkTlRYNSJ|sufsSSz9W9N zFoC80-|P8ajcuBGntc=46VvKwj-}=9WwYW3h622sSY0zZ1HMJ+*?+nRR2+@n7T{4X6$E zAOT$)RmjH=P!l|rBM!8#r8_f_;g=r|QERk6s;d?C&KG95PdVL<#s(W=ZC zb}4`37#DxvtvP?d8+91x`aM2t`s|#C4Vw~hp>n&%^gHLph1?@8A~o5aybyGoSfk7T zXf|vLKse)k*u1%B^Ql1SFi+mO`#|~gJ_sFJu|6JjP`T1H1V>q8^iE!)EF+&|CeN&; z8zPhr{47iLc;|ASuBaA-;}Uan|NecIq=X0@pU&BOVG|{|G6EIsIn-?bLX1TO4wy0z zXI6d^1ZG4a`Fk%AE6{$V%+$5R69r`L#j@3mZLu7;%4{ zOK&LNe(^-R3km37L&&K|oiSxq0!pV2kcXMsLAQY4xA1@}uGMTjn32wZz&2x;_=o07IfOkf<>sU?G zC*%w=&eQ9)(#&fegk6mDgZO7k%?ZJH!#J<0Ei3!oL-2y@$}THkiOdP5{uu8gT1m>R z6JdyDjge$&tt@F60e!}2kb0!jkN1vVtVKqQ>!|qoL?X_LeTM0^6{EWBZCW#Ld)yU| zd$YG`k%-1+vZ&$4yNP)s+B&WkGpM&Yga5Y6-gNQ$ZZP~4Bf>*Uz~T zD6BUF}T$1tvP8OL?0C1seis!dglb=6l>;*+YTwCS<`Cs?1-^1R9^GEv(;tqqDh8wfwkFU zei!#uZi-fP1fDYYZfi9`sm_k14@V-=2sSeQ&DzZsJ;MWViZQoPoWu&^mc#jb zw;1V)5!$XWWbIuPcwCOmCD)t#;^3Wi6~9MVqAZ9Qm0t5CdwCYZa_Olf^*}vk2AX-Z zUvNDNc2(1`!;jjgBUYkl`gCgkaMr$VE>2CGg_Fi%cokWp`qkPRQ;Es@-+CiBu0*ry z;qukQH)^MO zvoZ*e{*AN6MG+xFUj>zr7wf8tsF@1N$d`4;D|s^(Gtd8jxeSk{+51(h;!29KDawKg!BVavkXiiyeQ*dBDaJ&5ld6@Pcu! zd9PXJgGY{-z&NjU*{9K7VTnq{Id@B<=5jM{TxFb-UyausS{8^8jC1G99W>`|1pPPr z2u%B?d;np;eMBPC~cO7;XC(lkJgKn+0Utu#Cu=Nw-{yhgh*VT zO8nJcYh{#I6x!NyZg@kbe0>&$0C(cM8ud|LZe&gB!#?m&Eya&BiflfIPpGXV)sIB~ zVD9&~Pla|0&(JXXJ=HiPv_FO5pKxL}boUB;55NFEuU9P>4&~k`k59zhCt)Il+QQY# zc|ZL*SX|O~zzo42?|dQOYitGcmz+Uts!^eSZHni$)zF{5L28g`jHuJ>&p7r&<+Pa? z!|yoqFlR5434*o%)qV0qS%nqaCx>I1Zd++rh&yyQ|6OmKJzJt#QBBSuI2Y^x zQ#>jUN4c8$q2oPK$o}VrboQTh+2?6N3_th&VE^sHjQ-uj*YS@3G+VqWb;Z+TjB}}t z=xgl&<8SN*^=vMBnpi=L_kq3JL*))pW|&6|Sm>-uRa-X`JY>xKnOu`}mKq~>7IS8z z9?tqw8?7V`hOLIdXSW@CP^ZtY{lJR*-+a;hEwRG?{r7*kf~nt2G_H?l;Wp!}y}dDp(tU^+_LTg<<-D&d}b|YbU0tJnHRws1#7t_>B<9gc}w`2BNSgH ztz|SCyRfIU*F@P*eriep&!DZNm2Lk-<0;o_rFm~9%$6EmQS3hlwo#m;A|a*l>`Seu zJh>H)=xl1vw|Fm_Q&Ti$1!t^z*Tnpmfmptk@8y~-zH>dN9VJez$2t+e!4*1RSo=Aq zi2bGxtmoNVmL`hQC@XBUS7Z6+5Av;BW*8Ps4A|sBvUR&zXriyi(4`HfKV>H9y^y)3 z-*M@si}`Kq&IsM(=$n90CY4T~r63G#z?}R^N3$m*7>jrZJXWWUCXK!@ z=Xf_sKYB}<)in%8J$ZJAmMM#Z!qI&w&o8aDinzd;9czr=$~+}>Ocbmw*z3C*si%om?wrDf{_aq5L@}MJDbHZn?H>N#jZrOi8T=jQFW;c3U9Lg6q zy&S0NrN)qJaiWc{75cM>A6%_39=A1z#J?kVWfME(IYP6VT(JHR*)M(AT=R+?uA7W=XvHh#_N8DfWW8kn>$qapF%-i) z(r;qWP9=eLa^K#Jt?B^yM7oPa^%l zn0uXe8!KmSMk6dT5vuhD$^p&+lM`4g?j5G25Hm1=IU(h2cSXG<5`UH?(ho>WIdDH5 zeYP-$@9HV}ze5nEus8Dav-n*U0NiGsu=k!AFwh$dh`BY*KP5iYamA3S#5Vix7Y{Y` zTg+19V0D4GZfJ!9jT*^2lSJ|$a|BXDen$2b{(Vz?W6WopH4^LMO);lEamdqF$sbZI z(TsPB6}CQd@mx0y-b_8~l2#(0y!_y-;J@+);!8EPYncA0DcvM0Q8VD28B!SMvX1>V zbGut(7vtQi_>ZEqg&3Ph30S=4r1JJ^5Yij6=XQUyQj7PIMJ;*1`N{oMW!o z9^O{jK%Ib3vBWCBZmblKji!GJ^ZDso$|j#EcrriaHT@+1#SE-m!@A_~AA&759@AIXSGK0N~PrNr>>(E=d zz9kHe`>`H)+)7!;nca=i?D>1tR%Vz+BA)lY%SNw6FZPy`Siep1xh9Orl`IKiE^<36 z)@`SrJoCeYv=Y((dlcSq4G(wOA@;Mzd%l=^Hmy($>`ErNv9_KW-gEXH)})JA^~eg7S?{gC z)=R`a^uYG5)B#vAM*QAKZL_(5&tdP39j(c#!=HJUeXa2tB|Fy~`Rj-)c$}ns-D-`w zjPuWX6P4m_z6fQUUuJ154|Id!!Z?r8uB`-^grE)YCi}|nh@jL^eAMQdh)UrphhZga zxuPRmMGfMRKaA!2j9)4qIY+|Am~$?tbn%$llS^6a#?7Rben2#qum-dE;2^%B^^IoZ zKzsUAd+Le>=S-nLED3pQ`iWO=v#_vZ5+1f3AkJ5q;_*Q>X3pv_jvleXxhw2FzU?GB zt@MDNFMF!1KFao!$U`mp8&}Y7NTJgA(Ik|nQ@7`&u2Ow#8XoEs8`S%uIRDlZX}rsy zG2bjYM7pEIhj`1c$zo%gKQh-QkdtgFK6?h@3;U>DIt~-Ndk16aG2-sVwH5hCLr}py z)4uqp98T>W>$>EHt+^=Y)uiqpb4!57PT6S%{XRzW9_OAb$DWAdeTsMO!~SyEkZ2ra z?a{Dcik!DK3RTP}PBjL}CL1E5j^W(gsGYnlo1R^ZI1|)vELWTf!;amY1z0qb2YsVH z{B>erbo$8m_WI)s=j->3EaW|$g1?s3xN{>@uF`YCYWBp>jMyzZcd^H%!)j#b-jbcD zcRl_s^GQT)5j(^j;e3u<)K0wcGesWp115`gg@=ed#J z|9gnD`SFJG)v8z=o$&X1erGaOXgxJSGJAAoTJPmh12dF*vd0y@QSP?h3JoXnF8^b? zd>lUL$-c+Y8Q&`8#X*>Mop*4X%!;P>gYl6w7YF~s@_Blp(Er08%kLxl58{boW4$NZ zWT+Zmrv?CPyzW`IR33=LNUrU?G3}+M+oO7iNWNJ+?%?|QtSn4bnWD9(L7DML9R`36>CVONN0J@_I$`ZlO7`d=)#^-bNX?P znJB?E5c4O{N3zv3m6NRxdMDD$DdPUvKP%iYlz6$#IX^3s_c~%8bH$cbneteb4ek#~ zg7|PnUNveq{X3GVFWFpt>t>GA$LRa%F<1=QXimkA9gK4?16yh5n}2^c&!b*y>Ao({KGq>I+w!FE zocpipMVu$LN#l-3qSSyrx=M|-nE1mU%+IsyT$kcgVsM9fSnJsoT6kMLb|uMPb=G4Q|4pLwu0^7W#idyhVmZE9gXIT5dZb5^+Mv-IgoD9kwPuNibh z@=glEL1M`FE!`sZ|LTjF&0MQ%CrcK@gjapwpC8$)A6PvHPWto*A2dwXNw!0d2YtZn zRLQ?bTR~%zgk~RGi@-Y;SbbZKA8*EqYmH{(JMoG?tgS@aIvdnxUAHs1lc=WNj`J7# zcSkjoR1c_SNDY_&JqLf-hga--Vuly&hwqfM%G(dNfd8}v%&GdIf796pF`W~z?aLEY zw(N@_*3!ZE2S`U((wnT3xgyw7T6Q`FMm$6FdnZY=>V@G3b9l_P<wxFxP{jK!Kgyt5Q* z=69aboEwQGrdc(AKG&X)^U%Evvw7wQWtcV)rb#;))Ue3#5Y8>6y z3|gIo@yd@lq6bfbjy25W(edI%ye)<&>yAM8HRx*xUwttB6zTaB4Qf-6XwOBuE*Oe|@ z@x_R!1e|o5EDbISM$}Hu9hyc;y&i>NFXu#RyCqV)Zeggy9`7KV-BJw)V!1yhU`Wq% z(zCHTEM7a3vbwOEYmM83n=8Hm)5!LWh!8l2CW#$5I~Ml#=C9*^;tsl&#)Yku9K zxR4i&&a4gIZf=8SNalZSe3Jx%p$;NRID( z(b%27iK!0K+^S&AV{iNc{dsrS48`ir2{?6Si*(C?8s>ud-T^11WOev|_nJE=UP?XB zN1!izdQ0d9xsF;;9|zGN_GD-LijBrkuICTm^q{&DgT4#de;#avzSKnN#5>oC@%Avj zLOtmYYD~Z8hg11+@G|8*lJ$5;y;$rf=4v$OTE7yhU!qpSZrujYN;4nC7Z zu>YnS<8F<^ubTl_#aLZ9-4Qk;d@=oM62|pBEBsQ3LIPNiyrgm;1==RUn3L6+GQ??WzS?^9S8B7dPK+PMPk+M z$c-up2)|@*3 zrmRUyL#6GvgE5@%#is2FDY<(n`sZ=x)va7gbLXDjM$U58U1{XDaJ=W*F4d`nQ@_|N zX1(#=y#ofDML~Z6`@OS$65dk^-WVbFcMM!s5_9;~8CGNB(Dey>N}O><4yMiu z>xAjI=He4|2qy6EHhstfxO3+JjAzr)Wef3?_pru~)zs$8!ql-5sQHC=joT^Q10m=; zFbU6U_`&c4d!&n!F#OGU{BGfk1O1YLm?p?_^F)Vd$#D9RCDnf63WvfJ)VX@HT-VQ; z{$TW+ZLm%LojwP{MyEozNiX3T;|vR1`W?0m5_$ADAF`M4z1l-`+~SLbA>6B~9#R}N z{+;jtJ%@cTSzY1Y%p60a*;D0zlM^g3oVnu9Wh>R{$2OR9fZ8T!hDh;){ZJwi-#9o$ zy7@C0rjg|2x7s9?P*ZW3nsZ6{lyqr97=|uOK)cLOQdjnN3^e@n`z=s0lp3hN6Oeab z7Zcb6aP7-}@5Av>Zbwr`nl(vXM|2#*e)$IafY+stl`FNPe{gLZWMis7ea4*C*t0Po z)#bz?oS;8_mrWRPEe;@_tiW#@bXUb7a8?qgdv3yg_DgM@lMq)~fc!S0(3?-p*@bMl zv!~?voP6QpARK$`gDXk&0YCT;-0D%YVrB}?^?D+`+3JdCgHp+f=qyG1IOFA)R3upH z$XhSY!D-VpJlpYFcIfAVfGYm^`^jQ)fjicjC*vR4RVK>dc=6qTN;*NtrvR=_yBj+F+R`5~nrby8gCOTTnN z@Y^*3hTV2cnZdkk`w}PD{iZbGP#8WY(@*+oZFFwUT)`Z^c4}uN2SlRhJ8F8o7zt16 znXO^pBk8LdM*Lf|u}*GDOntNub&qy&7H~EbI?Lm5tOYTdH}m1ToW2TaY8d+z;a3xC z`qoWCw}IuTKb^W1K}i^~=@2%LiA7?067NNo(5;MwRW-e3Ef1n1k{HpiNl5Op1;4um zVkzhPHXj!vSfTgaon#c-_+V>>2X#tQFrZ6M*xz%(oBUM#b7->^VlxN#V$=BhTI$!# zaU$nE9k~y-%gIaUpyA>)`fC`7R5Nnee-WoLElvEOAHw>Dywk2frFuv_!0F7t^Tw&R z=@nV54|Q2He_Zx%%#dvs$i78?_XeS=wtBWeGPN~EPmogizUsE+nOL|`N+3sd^sEFl zKUFGyTN{e`oU^~*_gGr}Jq+yw=(ir&7>Q;P)MMrzdDshs_eJ6{=gzOcj)xBWpY3{b zp7PWgzdd4b)17_MPf6HQ9LsqK`yNm8aQ70ur*ygZ-*3VGz4W-)qGm5uh8@q1tz(mr zF!n6oQnzWGl7zr|H&Bp3-JR~q=+OE)>hO1Y{F99IbH_1>bMVBv^ptJ68+8}?A^suH zxIYW9=#&R){7ix>&;mu4&S-Cvj9w!?N?Y^n(fejHDjH{~c3-D%1F^;PsDbl`{w9LY z+Hsbmy%z6)>GZOFu~M}4qp$jUp2ekEVu!yM{tP1bM=w)lxSxE|#J|tMm>-!H#{JFl z#DRB^^t)qRDlK3~4ukQvVSLyY6$~pl%KD59&>g_+C%X#jgfw)yW3I)WZnfgt~ZBJYzp-HvxtUvd^)??B_h z&)6Ut*6FX{ORi8Z^MLE(x2V2PUdWzgYU({eIWZpX@dk%^^C8PG1rV#yY(R5HU>O9z`Dk_`}eXjqCWryV9f#z_Xl#I4Br-?DE zEs*g$iMp3_#l&=5Xf;hjpE}thKav_y=VQ>(bA^7LUBsU(_`9w%*_=~xc!W7pEXZd} zFd8$MTD#w1-hc>d=KUad@64`pjG~T?=M(bN+h0bz=ka*R8thNx3ry@mZ_mle zFbV&OQ~hG`^dfz|3u+oXC6eJ^c+hO$S?tv@8 z$vC^b0I?sPu-Z2nu{oA->un2r`j)DXo|f7r&Zf3dGH}JRVl?;rXYzQ5EqpJpXla41 zGm^2wWrk?D%?4JE?1!w*5E;uo;8_rZfsKpDd@=CFsnvh?MGuY1t7xfjj<(Yi&~(7U z(k&k>kXA@NM%y6O+pV_fGK@Z7T_;J$YEeh-N<1ve@}zfXIXBTFN5E7gX`6)Ma2s;) zAH0)p91F*YK?&H~u{Bc1MN&(Fah^LAFU!fDWQ{$h$Q&iqnbX!`oT>Re@HR3>Gxuc7 z_neOI!D#$95Iva=`mNVFKwgN);bOKT6^b8O>2c>({Jh;wJVdFEewM(b(0cDzmP)O zM-Z#eeX+L%?yQQ0vkA2hCJu%l@7KSJm~%L*zesJ%0`^W#Z&Neiax5l=6N5^;YL~;* zB7Kxdud7Yi%AC-K_c$*%1re-w0$L^E*ZCWGy*M6gd5@^b_<*{8^jP3}t3FxVpdr1~ z@^w>?+NhyH@pSf==AYrmqD1`EQOkQH4Ge@`r^&!%)xuyT5EM+THMVA%4T4_&eGbmdSXbfF!W_FsQ~&v9o$`bAXQPT3 z%OwkpRH}h?81*|2Z~hFD8VwDA*G|UsRjM?8S{PRI{t{PEBt0>Vz}ctN9J9G4O`Q~l z`m6~9Yc_zrIdyHB!*`A8h4$1ZE-qy4{bv#;C2>C1fphKeUMOY{!!C?{q0Jds8l}b! z*38=4t8l*$wJtcDa|_uA)3PMY(dHT+cm}CF>&ovX!MDL9tgAskdhX>G314u15OX%~ z7q#2hFgW1MIm{34efOWZHksPw^ql@s>m&ZK=Ipj53EqvL!Q^lNChGDIXn70IUVHuL zy?bccIec|?MLhdUnURMP9_@(c=hRU8mEv0;J8Yu2ukWlPtXyjg1J1r@t_i@bUiR=I zhS*~I&a&(EZL!6Sp3rZmN}p`ZVM_m+|E=pr*56oh&(93Htc`OrbITtev%nnI7|ple z(SP*O7H8^FKW+XSRoZ8N4Br)x)Z=3$gEqvaJdTHbMW__fBm(vBQ&YEMg>;v9>I(q>c+0(^8<2Gn=HV+uJlDOOhS{Jg>d8g>gkt^hc|Zf9>V?IE(L`h z1u;R?*GWpj)R;q@nXyM`l>+_W0)e{py5ZiR_O=9itg&nS`F~V>byQW|`n96iqGETq zh=CZK!&EFlMG+N6rMtThhek!kz(6oiOf1B}fW6l~cDLApf!&C$-+b@)&rip=LOS63|_dVRFG6hV`g{U%3PAeg)yyy9iV|YgBEBwXWh%kLmyY`TzTFpWgXW zS?FYB4kz!@{BB7o^St$3deg{H%$^RL33Y9HS+-19?@L*ZZW3l;yT=Gqvh);g7!`y^9cGhk3 z>|D;7pR(cXO~wC-x8}v1>3Xgw2V_}o>|k8iwcxJ#UR(M}vM%0{1f$Y{a3il)o|TOL zRmb5$a0({&OrZ|HGcL_a!SwPJY)Pem$hBlVOGrh57kkSqJ-7^~bBbhgByl~n)0&DpFo>z5(H}`v6*}q>t6M*uKLDWd#9H4q8 zelMgiTMqq?4j-X!fFDjDk42LJfsULTZK8jTQ-q|tYC?TPd$)h${Ged3wD+0~785gO zxUq$Vb+(-Iu{Th8mKcn&hsz`S&iq}Wnt9s?nX`$%H|wIF`#2b7bK-IIuD80|8{RcO z^e2tWRxka`*{?JG@@5=Wht!JVj+ojAr{AknIK$kvmA#yGBlDnH8nj?;={U;BTzHV9 zkVuZRG|pU)wP7pHn%rLcn@5Ilh8IOFLEJp^C5(TA3hwc1uQ6YHkr)d0-4;Lhm`~)4 z&1-Zr(D#J-Ue47DScCtqa?^Z=2|1w)Q*iXf6Z4}pi5Ga3g1*_$&Clm>?pTn5sa>9$ zU#>&^elOm4-5;6{sKvW$M=~-xJvQI{Bm&^O)T)ynoJZ3y!#D{QkpmDiG7#$raHmFI zNMT=J9GRfS#EQe1nCy)f#F1=BF2d@$At;{}gd_1MRnLiMk67dMPn^@A9hUN2TcZPe zfL=MK(wW2K(a<&?nn|xpW+vI<>v}EB7iN`g?C1ukH(GqJ2rhXy+7BmcF@}BZOQwtp zKyP|^NRCz|%|-;#Tb7)okdY-BHX-y^(PG-FktJV(+3#g&aptdO$*C-2Yxiq$K7DeD z@vbP?(*rj+#;N4^@)&6O8LcP}D$$J9AnGZ-LY^g+1YL|ny(O$$dS#UK9zfq|6Yd{B zWtZ$=KRW#o@uJtZl&n3+T+}ZKaZmS_+@8+)%KRi`Y%3|bc#OK3xk*^RLM~}|g!qL1 z^zweTq{OIo6y~tbX=>U;^<;S%dT{2juyQMBq(MkjwD>YWYrb@>A50517`m$-4pJ{` zD7`9n4k6w;%9VFh1gdR5g776SFbxaF@!&#y8R3VwE9g}dbW-)DKlSTQkUR8$^2WFD z15zVcVpvD&X>2l==H^>t^;r6Zj&3AvYBUjLjE~9ZzS4SQXN2qM1=hz|Qk8mR^-V3( zdZkJh=X~M6K#MnJYov;!#NkZT@^?NWojo5&ola_d4!WyFA^Q)Az~1S^O)cvudmBYTZ<7{xQpd?XzeK~Y4)5I8-f}1QvH{ED8JARfeFN&_ zj-=1aj1{u;cr7gI67%+IlkBuj3pdV5?yWDBFSp@4vV`15ayf6AYGCZcd$vQNT)sC7 zcjgd3KWCkM{%IH*e5Qx2ahROkCm3~N>3^~4vSdlE{U+4)a4x889>M%-dW#-I=c}OS zId>e{8jVdyG{~vu%J~g3*@q6|b{$tds0>C|&q7qG&$IW6oPjE5RDS#7;F<35Pn<8+ z+9{RTTOzXy`#9_2($e+TXg!f0%EP-!m%rO!*(xnP-;<>!wVe@rN{g762coUCL&=aBP z!I%#;nJ0I99S*+{oO>3nlW)I^B+rq$xKj?wn>nK}V!n#+a#emB!2CBW9!?hT#^{NngQ2)Gn)!6EB)1#FE~pY;(wMwZwNg^$nm(Iw;pTh4|{X2JD%SGBUJXfA2dzOqucMN3Drp3*qIdXX*d5iV5c$ShYo2P|hD7j-T zj~2^?`PAVz(&F}uJF;d!eXP8wOZEAe{ADT6GjVI_zZ;6>*0C7bGai2*cM*MVYM{qn z^ZR!SF{sK0O{U`VjlnxdGqJV`D^2J=Ox` zSOpfS#IUkZJfcp`>$yF}74o~+RMR3mv6{G;8wgj87Qd<_$|p5`+;g!jhYy~|u9X;f9bAQ~m)1pn@e7PyL4aYFf+s23FX9bFY6|3KZat+3k^Jn zJBaG^!svU7z5rFnipH~pu&r+#GQ8T0yRYauvyD1pcMIj|5k4?H5{Eas)vEWsJn^R% z^@E;YG4EDPzTt7^YP|_~-GjK$oKWmwjq{Upwj;5wh}pPHwQMBMd#7pt#JMy(Lu$L; zlG>*{&nwI%-BxSt;p}K>6>;?sFr#Z=g52zGVD$)8$vg zsh^Oe<<2No)-?BrAvuqGmaLawklS0yIB$I{(!eKj8)9ra{NQ~bqc1YK zBbZ;CXKYDpvBoSCHB7V!*)~ud>>Z8E`Aa>MGi+jK0#Rkr156+BZT@)*RHV&g-6YHDBkzyvbVmyAtVqfhL z;Yxki<6SiLeRLMxTTmA_pLyKQRD=)k!ir9WGDyz(#~%L`zSYwh4e~statwSF2iFjD<9E>OXNVzm+WA-)@P^ zCgdIeF_lJdwuWCwJo%E-rR6tm5X#?i;iB)-6XArOFQ{eKe}ueonm4@P(eI#hi2R|W zFKXxV`Rp<||AQa)JJ7>%-d=gml>neCwX!?ikj0rGT;n`WuJudqb(UJSpSZ)m-B`4L z#Jip`-#DO;F#8>WWZq!`x-sI!mnf7@)}rW+ix^4F`8MYNpXt%U_$u$E#q?p>kRtRh z@XQaK zivZ;5$D-P%sbasrF9uzp7v%CbB59KcYS3%!#=DjB51lji5Z7Kl{fK&2+$>xmb|L@v z7xND{9dL@g@hWxcNfkdE&tCY!v8fw62m8Vx&j~5@QdNc1W3hANlz-wpAuC8qDzHR7 z_T9#R`$-dXty$;L1L*8*sqC~3&nZ2KFX+q4HvStQ=vQ@ilALDljSIZ5HBQO$VLfV1 zGl$QRa^+WN{ZPVPQ|D8P{AVMzYpDJH;r27xX$5s!nBThi>27iLl%- zsJU}Z{xC$yB@sATgS)8qQ^io$2JZ&YyRdzb_*NW^mZP*#rY4Cm#MHg5&v)cPnuyG% z{)2xUMqEi14y(e@lA1nGXQc}NF(JrKiiQ5G6k%#Zz1GLXGhIs&!%qaDK{j!aH8i3J z=leHZ>1(rMx;RaoQbX>kdmU*ne(d?r+mv_1pslk0`q?-hIo|8Cl`oDFZ(aY&lc%dai zIg1F%?cboI06d|Vv;lmqxXzofAD{BT~cQ|{boHS8RACUIcL&;9o zP|J>-CYd#j?R1e<>W);SXbhOtS&ZE7#JP49Zup##6R$boXlNwPX1$Xd=G$YyJ$i?= zZE4X5#HlUwTN?K|VbZG#-eUKVDTT4x@YqC5p0Qr6B=lJZ0JhfjCB*wYsj>aOdEw#(a_>TMb5luRW zVI}YVO{HUnhTdV;jCr?LEm#CS|J6_ zpN5tLL-6IJv3X`O&7st)-#&U$ZqO3ut1`^J*1 zXwh8qOSQ&e^4rHm&yoUG+93Ux7CoYx$S<6ou%<3&?rJ|dq|ysMoG-mQl*t~!2eIrk zZ(*N2jr>#NK-RT!H)TK0VXF7nBH`>`dHdf$Ok;j_ozP4)e@B35*_4TRoB`tTk}5+4Wi^PL!j@?NRJFPy%Fmw0Z^CyCH>Z={$;qvoVg;W(0K zIF)?GF4IM#krOPgMIvILnTW7(z~8}f^AdY^$!DN&K(L*>bt<0w4IW zCMmtQUmiQu5A(w5vD@mlJm8x@z7OJ_Z%Y;7cR3KJS<8jKZzixe7+W6D3oqALtlSlf zkBsfrt7FBFX7mf&!E<}hK{yz3=Qx`_H4WTFou#2TF6hBD)Khd~?{@Dcdyn3JqE!TE zkitVrE2XDsxCnze*vS1NxQK))XLqWa%{$|IclJ#U$we$-tzzPhp21OQS<6lI{p5~!I^zDLoW+F@ zXAJBRi4~8W#kBo1v6P;vTMoO6+A4dPkBop#KOa&5njN)Us6G1IN4%3K<9%`%26{M) zg0I8|91KPcePb~vlKYoOzQ}97UXGg0dfT5h%G6ku8NdH8@o$`yisqG!OSeQf8*&Dv zbtRW(SRpLdyF_-fr)R+zdaj+=AtzCv@cl0K!*$Ne3E6=d9~g(>XI{&G(}VGT zNE{Z9MdC?E8&Si{ z8JX1jS!g#?wAeWlu4O#8>~T(-u!ox$fm+{_MEOZOG%<+42jlr7XUAmpyAlR@%L1|e zG0!>uLSjP#Md2g|H0tGtyuMXMRr)v8=XuuOG+BMSE$hLMf8#vmT19cSd6v|FW#6i^ zE?H-9jjN1vZ1rO$S%YmbfpM;HmL*klb3_})d4Jw#spV-;O!}(D-Hpv<6H{*tUacio zV5q#7bATQr>5G@^DA(-bhs=-Mvzn*MClC3fCHt&(YgWq>rUW9(GY-4=9+0=!4n`wm zp7~{0dZHd#`2qO#jP?gbWV@Lw4uF(^ImuA(zAZJI!riN zJEKQ%Bsy=i6Fo9!qJOhU*1ZuTw~0L}PDMbvy-?_Hw1W{bk=bL{h&yqUkw=a1pv;Y8 z9dWr0CWK(fx@98#`wWcrphnoezM{inFM6>#L(hDNx;pC@HThcqH$N|{d2!g?IhMG| zI5(b9T)beaHCk-oKE*t~#Js-^wWZ@>aD1k;bb=!_DmkOSUno7;>51NzTKxEUPx{>0 z8&=uuX2AIdon-s zPyQPogjH?g(5}OHc{h8vJDflKe(xbSD+xhQ?rUueqvgjxgE5nF{@XcG?zcV=D~w|? z!#GWDveL*v%zXyE!71asKUJM>-bciRKl=0o>~; zt-9`o>nk`r+Au-t(a#6f%s9vU5h1x}(U*<=NZRhDQr#y0n6!$1UY&PHtyTu0z%~x; z51o>F8*?AjBo0m)&!xYogR$WuYqo~fb-Mg!v=4eUh=$F(`SM|~{>+Yo$Be`Br3UWU z(=rMJTUQlj>z&Z|KqTxBnTUiN4!D)Tne3}bv3bNaTy-EW(0DyHlP4qLaRdxk=)_pH zEk4!szk-aGzNcPA&;KzD(wP;e^m3@a3Iwd$tCWAt;a{Huz;#@zx zOm#lR5(gRQ!}}~$@WneYxsGp!Js#%? zhfkb2WLTI@CeP?zrWRug=bJ5f<&79qdf`PLGP57$iwO23%X+;w^P(??H+#B6hK8!X zT?6oBH0Q-qe^p0%m0qeIhZVD@s9em0vG0Ngiw^~=7Iz7OMXCl?O#)TY?qIyq=kB!S zP?Z<&!HbOZ!M{VyzUceIk~5!WReVay+WKO^{Ai^1F_&5kZ)#*k<7whO>7`7+EuLrJ zU-t5c6gQ-IiNZ(6qjE~6BXUoX^FF?vFf`zKUc>rX_7_$&r;x8>=e2nAd=l<#2tn7vFXGA5DcJAlhxElKg`epx7%q3j*=o<_ohv+1 za`sIwZ+pX?~cqAPyHt zG*k~GUVY>6IK;l~rM?p!h+n@om{nq_enoA8;U_d$xYAvn`6igWVPe(ZgsUgc35F@_ z=Y97B)i*SOI6ja%xkVGy7I*2%$eo>iSv~bn&RBM&M596AGP7Xf+zg1fR_D7)pQAhx z#rzzR(Mg^)*bS?w0iC}zUpC5dM95j{3`RB4`o5pYv?Fc(S?)QQG;)MlK!AKa~4>+OY@CDeJZcUyICr#Ez*vn^X*T|J&Sn0j~EkDP6GotE^NtG_ZjWcX_KZF;o^Slr9pi#9w1}S3t>&t2qJwcako>F6 zO!ZmfmOFhR?ms(Iy{;F%7g^W2-AYv#1p1*TdH5f?PElvM`JgxVC_kp&Q-wYD!rIqS z7}M}{Ni=<#zs!xoj?6dG&kR@Sw~a!&G+%CfbvAsDM#8w^Z@E$Nbo^aKZrC6zp?hLS zO)2s{sx1+ZD<|S%%Sd{76pOf96X-!5j_3wuqFEpAJ~(?F*Z8Yg`*ITThQ7FR@0NJx zHx&apkIoy?RRnFaN1xgM#yPvkT=h7{c{=gTfm5rfUyZfK|JJ(L+L`7rs^#LsO% zk)(QJ;K!OX4pHrLRJXW8d^nK!;Fd)y6}{)iy(KTD^oFXcMGzhq@a~JMP(4%yZR9U7Q<~jLYD?$yUSkKRqdpgg?W7ZqphQE-XSxmR*YLC}y0meygQkJjNOYjI;at<*K(e zY*4{C-#2-Pe|czww1gpq^x53E58mC?rRs?~#Wkb2reZ^`!=;3#&=ps0A9hoju^( z7Si)7!PIWoU`}9f$tW)fo1evETf{KwTy6mRwT#8r2NR?Xw|sGwoT5zIXer}_H>S*{ zHqFw_(iSr>n3fV3GVi_gvWW)<21X(2+5p-1fD6vCPq8(bFK>D<3q^UX-(s)IO^G2N zMLlk}5v@f1+mo?=7USP{s)*oj^!Dutgp5rW{ZA6pVjhl@w>F6lAI9VDg<#aZxL?>& zZPvUFeN1~T6|IXWqjvTz96iy+{GN6)@&o>jbFF20>Ya@9XXcH#+Xm`UjPqyajjpRx zR5PpFP}4FVul4$s{4V5YRXrYd{hyWiKlQ-ncieF|ZYgbR?uA1OwOH`jLh`g?kI(%z z>W4@NlYMaO3eU4ereuA=7klG~QSMkEHKI4=**_~JX~a@o5E$c;U{ zQH!{sU(ZI%JMVZ>D=G>>SDfV39CxHli$ZL>1i61#7c?x7!~)}$vV+AebWM(g)uY4m zgO2uavW-NoZ*SzO)Y9?h4s2reW}@qK8+@mB+tzqf(P;E|RKDWwr+AWBkTxE%^yvCw zJ6SAMY@m+!!MDX{*vz%-xbKKeF(mCTbLv z$qVG_2R(6+_>Y^ui{#gK9>BQ>avr*f%=P!0Z;7|Toa59tnUI6*YEv=l+jJC4uCP3?FwY1~=XQ-FM%aa!0Mr7=?B- z641Zv81?BUV^B-t9I5|t)wko8K%aPg^g3TMan3XZ8c>^8Z>hA^&>3~B@@t+5>0}ER zOy8)*B)^Z+fiEuD%emoqCvFV}eHhJqa4egB=+H=O5;=iaJYw7ij+ zlR^4%xcOp<9NEeXy^a$HGk%-Anlr#%><8^pc)wH48gJ6)_ zQ})R6L`)trF>77TU5|KT+;o40dbPv)rvCVO*$-wT>cNQE*xUD=|2fZ{q93UJ-;Tt> zzy#_%TdA8J84bOM@mO8wsA^V>B}^USF?~`MI>=7LUBts>^e*YrQzyJ0#6EHP6Y0k* zXQ;WWb(&}(4?X6BW=mLCk28{YZFfbGg%;LU6Xm73ZutH!4sOT8Ag^lirZ|B8EZqX+beWbGGF@LksK@qu(vgF&6@ zh@XvoaV?h^YpW(=(OuRy4&>NBZX;C8mn)cyM$G6Y#7z29QESP%e?MXB>O&2&ScoyE zV!=QkoP8gI#DfFGfcf57)`eOsXS#~;6JA*IHwp{Jwih%Z@mly<@i8$IJOZ?>L1 z`;0TXx1nFQs*^lqy$hCKqs~}1=l}7p2xMLDQo~nn?BfRSiCX9ZPK zWdjEf?BY(gTj?P=&cPFh_7fL0<+_~V;)R||$W=S{NnRc9jev+ag!Qi@oKt-;*F6qq z>ej+xrZ06tsJ~FHx3Ik8i&~&(;hMo>!g*iVw~E7ph8Dsp#~15Z&p4i&AZl&%MGNAw zI&7UGc3ma*GL?9y`>sMu|I=N4=x=_|MT|S_%e@Kl`L`#FEpEP;>&*JRrJ2xZd|}&> zbE-eD<@o(Ru%5+xp?sOzexEmP^La{XrFqx3f!OqkIsyy#n_pZ>-ej!LKXJ~k@=Sej z=}2^2MBNhS32H0tXbdKQjKB$%N^Oa^`SG}G&|gZeKMhvg&yHXHNLqK?32VvIe=Hiw zH56w&B<^uWq=_86n7O)PJPP*CkT-j{qS_5&KPnRC%cIT#yAc-`KIH68Q+ z)ox-{Z(pqBb4kZx;+Vc4`tkE>iSgpqVn1x;bK1n2BDmNO+3b}JioC>@Lw*=1`0w0^ z5I;Y0FTlM+{U=GHj5Awn*7jHK&J|4$_`{byRAZ|-Vj8_2b$nl(V;n{GEbhg~PuQma zL4K$4!P*Pdddul(KJuy;l1{{8|G7^1Ow3ryF6yE#xn_PwL!RZ1e{}+7z2|D=l*&oUY-eQUzmYzcWQrIpg|(@vOqBpy#}+sn0! zozXUloZ0E4c^Tc;z(331{i%jk*jEN=NCASi7k8nq3tHr68 zMq;hvgN{?FtAENu7<0GZf_L%fd-lR}gC9~N=t+0gPt+#AZ1OxU>eWsZ8tz|)Ez=_3 zXQ7Ct#>HUH%oo;KCyaXrplkzst{ZE_xS{~`4bY-V^DI$|c&g<*1N9GRMb;dDcyjL< zVOw8x_~?T^#JMSfRn6_l_gu|c<)aO~kQU?*hu^U{b+HsxD&x>^dKOUWlhxz;y z;vumIdfVbLbLc^lxIF+{65`?YVwX7BJrE_%@i6VaLD*IXpp^KxsUfMtJJlar-dV?H zH5YHneCXpzuKF_{^&NU)ryQdOT0Jsx z#x1upP$|DO8QV*#ceE}^H$$0(N@{KSw(-$PO{T-)06FikhU+4Dp0iGp+m+u%XZV44 z;t^^rmp0HnwRFaz-PF;|_^TA0bH++?XI|ZUrnC%oLFFoX>rB6(ydCQb6aJeW%ML0B zdb#nwp#I6s&5EjpJG%K%H@?XV<(WS5gtMp>mOe*$|HA{;6UbHD6RMd0^u%RzYN5C| zC?!?AkIffT?=?B>;%?^5_n7TCQFAi2-5Qo-h9Cb2v9ToYBFFkLmM|!B95?1MlEj<$P z^G&6=R_2eJ&8Q(c>W=Va&sVEHbvtwDNkne4U2Fc#`kTdw0OoUk){Z~4!hWnTPV;x~ ztZOVLF7<-jBI-JJi<1IJd1CQ7`t~m90Kb(!a2ZQ|fB`Kz@n*Tpt)#9aL(*dH0F z^ZV`k6jH3KE7hd-`N zp>E#CN)bkmL&9kKiS)fKtZM~g!6@>H&M0D7-#`?*krRDvn@E@vfSNoTe;TI?$8LUT z?ns{9iJ{^cXOg?yk^5$pE0~KbX@PM18vajyK9*LY z?znIicHSeW@5MsJwtNcK@_m{6Wv;IHhAq;lQ#8eOye>3t7Q)U^`+Z&;-9a}uXqY#u zgjFh4%-k@FpG7s#6UsanH{@mUoVeyH&L`cFlR(X=1Bprl2X}n%QH`0d+R9f+o+G%joN5SpNXo=yyzdxxUE*i{AJ#VtV2ERr<+6*zMH42 zlH)mksW@=L7X?3fHVo5*1vPUz|0J(DH9>4p2jDl)$=b$A!j>GF&iq~C^X7@XdqG&x zE)m)DR)|Z~Sba2@nksMd#5HQf%_D~>^YAWlI5PzA^68gxez*8MA{Y~>O>w5*dJ&iy zfR5CwdGaGsjI;8^*`j1@yxK@4aMwSib_!xw?=`>K)f-FFs2!B=G<+><$cj7v>I4qC zFc#+od5Ld$Pswk@wY82o!<_cba*5bc>VRPt)HZ3Z7O9JQe!ft1!?3D2*3}=aJ|sZ9 z?|?jTpC2|np;pr1C9(U~f5nL;ik|YcnP-_`L$_HxRqX!&}N&-Ei(AE~13!WQnW+zNli9f)*Q1#ne1cJWWVJnU#@w*F~Oq+<~6ieQbxnYwCkzXaDsr&HB|5 zMNb#-jFT5u_lo%($JGBl+s_?lUW2-N19*NiO~Xr?9-u!$E$a1o){uKgCBv>R^_PZu z%Y%8>J>i*|cXPe$aU&jqyn|@?CR>pMRhuzsSXLqT`=x>0p58#s8i>^H8m#NiyYhKw zF==HiHt;Un)@rE8?aSJqxwQ1Yjo3>3a`G5z22S@7BTvK-pG9q-J#oU~Ap0{HzMFIA zi_*j7IEOH9R$1cSnHY3PNrd;lP2y>J4EC>JYzy~_*~IJz@_f$v&G(`j{piJipVuXE zr8ou-_xbe}_r$rXF}P-sglb0~3*{H}=cy4irQp7pH#7{r-zJeaa$Z=Q2BO!YWE8dA zEiTse!JlO*uv+LRo>uq3-_I%NpKmHvqvp@ALUMO&m<@lxck_&h{U>jf3q+Tx)U?Z`uHf~9B9Qf9 zJ?5+U3Pq$|iAO8OFlO#qk<^l2NtY7glYU*8X~+kC$j`3zeX({kcMiNeK5lv@d^c%O zQYQ&TYVP|gIolYLgw9Xih;JfEL8+!n2N`eWdCa(#O1#NQ@f z$bXW8+4+mbz+0}EPyTr8lr^$9xd1nZ(=*+_`EV6HaJ=h(dzAnF{P+LVPJen-qz7f7 z5p&&pRX1hy)*`Ir^AP9mO03fnwEs=Lh>Au^`I4>B@OeY?YRZTqYp{dQjcGO5_w3tYK+}P9fAjrBPCI?Ut z`x5z*Kd*=moS`=On}DES*TkaV;b>q%e;obmqV9@dv^Y!O&#_kpdi%kWT=C`|&k*0} zfx_%$=r7I}H9xsvmO2H?xAzo1=DNavT{8L}Jc9`M=(tJXJ)T8+#4IBqgou5%m2=E@ayoiu0tcNaS9y| z1Jk0oOQ(+6r2RrN(2 zbv3_!&4uk^PP7dd~a0 za)q$16OQL?=#yTtUd)&m1jj`BEV%C%7Tf`v7%`U}I3pI3<2LDc5|SJ)i?Hf0Xsby^ z!+V>>U3czoHYY)QwLo1q(-W4j{`I5p+-9Y+mU-jV3-Y@^yit1UilFAt=3;eMsj~bq zM)S-ZZMRQ(dv?qJw9zJvSgDjpt%jO^pFby2x&LPwBKSPDkCU?V$Rc7$6JS<*l+vYi zK1%t%Yp)t9-uLFBKI4!-skM?cKMh+M^KaYhDki&A5XM;jUhqo{HcCb|<9WyNndn%V zh=a^C4Le^EYUYU+e>k(X6XN5z|K3IF4bCeNgDA{v3;5 z%u7v|ri*??u~@>oXzlR?QQ;Yb-H-Wiwhj@+9?|UK*lU0F6{ex&qcHyUGs8p+%P>r= z!F%>_y71Taef)_e>TR_4~jM3_aL#b zGzKyM{kL9I#QjDwsKIxkPc+1}8&Ut$W^XNsOW#PWBI`_pDi&e^c?6yL^Yke66aC3= zeZU&KY}aaW>zo(80_jKj@vJz`9q3x-wPSBS2(x@A>{-V;@cRqVj{0oh7t`15>_(vs zC+0Bc-@5K^!EMFCD+7m_(>C)o#~&=hsQU@<^=+kd(Lap(jN7U5Z_3LtTQH6B+_3M0 z67@9)HTitWV3%?sc^L-sxl6(_rOaXx8u9C&Ue_uE+~(slMxKPHQ-=USLahJ6^bI$xU8zDU=FOW6E&iTv5 zxe1UQNn1o$^f2l+62tD?Rf5+)5KO9`qjy0Yx0) zKl-O)fyM0epVlakG-8zX(J5^>&6Cid~QSn87$ZMTaUU2F-;N7xQOu4$WF! znzdOhs6qcO*6LkD(}h)8EWWW84eIAC+TN#sPz&mp`t%oDYQ`X!e?R|CZSmqx6c#e( z?jaB56zXTZWt`oYU6oH%p?BnEYR}fJB0_$!S31GF>AqTMKKbApe}=35mWs-q?)c`z z{-W0vVcUb=YG3Iqv|C@Xo#_Zu>VDi>QeTPJy5i~s)(o9HD!Y49XW%XSqW^ObR#|VL zt2HYFCj3nA*PX4qyrT#P%w2b{jL{7YJA^g=#r9=8-6ydbe$18K+Ux0lgysCtn{PwG zEoEx8Wq8UnaCLr>a_m$Fn)B;ZtFKm8y-CMPp6y1qsmjG)b1;-~9vS1RjNYG$p3I-C zAB|9YK2H8$UVXQ|tCHfEgy%fN(@X0q0j$AY*b_b5@>Ya$mb{(unKAaHSob#$T^U>B zk9nfqMh%h~&(6(L#EPI;l=J?I>pfm1xyHbfHGk{l&BX=BXxwT=50OXr<)bpOMf|*) zMDCKu*oUK#@9fdJJLTR#g3%y{@6`0yvdwyGule&{Za7#hdFcg%b*!)6E*8lhI8QKU z&lPe_JnHC#Xx8fQYt~lE>N~>s59c!*n<_zyD>eu6v%54}nX=d$lkWUG-DC{%-;FnDWz6Ay-oQw%jIoK<2~uf7c`szkS+c>f zP?WA^jg*lu4|NE{kAC!3y#7|s=};b z_MWFJUQ>iR=c!e6D^&OG-a*(hZl~T3*EJlp8QWjed*Wpq-M%;3$l@$_($1>7;>1i8 z@Oki-TgpVM3}O-!Fw>l8J2ahou$<4AWh)Qn&f%Vr`b71UmCGYjagcE?^O>nsi%!O7 z_VuTF3{m>kq}~_vu&-H5r78Cef0%pUKm94{UDjd;&#?Z2bD~=NI8^2Ne7V^pu@+b554iUd}zykzewzi{!IV3$nkFiMUN3M5H-!^=;;fns1$vRhK$iUr&k- zYDX;XNxiJC)f6*xNAyYNeLb&*GE?V<8uQ|@u_RTgGR_CBm;XB#m4=VdnOJ0?3v=?~ zKg)FwmKMR~6wmO?RNd*t2l1V;{cy}y7x8WrIl-(4+V|4c-MAbm*i1Tb495WJwrc-~6@50x+f8@>^ssF`%J9g(Kxxo-}=*;Mk_W6<=H_9I; zh`CDr`$V2Eap!nii{~4wi&^(QU@?x~Cw+R0t0Ud8fIG@QZjs{DB4>0RLyT71ei3Hn z2(v9b=QBQv^~H`D$C>KwAB~jpe(v~cNGzi7awTV-54_21`oH<{F<@zE-Qm7=HV{Swn^4*rFDZjIL$k8ZTn2+Gxf|Gvo@}IC`_4NhdPUl zbIl7@O7L3x-LaPF8_-p$puT2R=86UT^_4FraqL$(Z`pTEWD{rijq%|x>!u23h?*XO3Kc;n-Y${^x4H?ItFlB#auw}Qd z72~{JV*SuCN0;!W2+tX}9Sy^DH=Q=2h%?OVT}J5&+Ge8$>%dieI_S!amQq8Dcl77# zx>czQ@s3}!$?ComzkeR4@Lh<_I;1qenuf=`6SHq;D@|6Ua4*1~dS-&M{VIDb-hE91 zCM$+c%ndw;-?sHu>RZI)IdgQpVIAcO@k&jaFrQ@I5>?y9;s;~C^XV3G{}DAd8Cz*g zqL^4W0);#$0|Lj3l9Uj1aOCdKZlG`&#~OGoIZdkW;;NGml2{kUuWBh==X*l8Ar60S zYl`49ca)sbAkXEEoN?a`)f~y!2&$A<1iQjGLj&`}9YsjAGahA9(|N3)P@i)|0r5hs zjPu0cA}4(E=JyJ?FUAl<`=?Xh*kbw6ijpx{yh3R8-8bv6`X z$|25^&u`LQDJa4*#_eQrlI~I4P4H)*IR5!0o${?oDIzNgnT)f|R|n-e zYlpEs&(|9aP{wfozlb%)Qy&B6)_4sLGv;=$9*Vl(qOpUyrCxG@@HB|TW9B;ll?#QX zZzzI%_&&A{7PA^qub?0vnJNd7xZ4NDhqTz#WVCRb?TNyTJh!QRg!y21yd~dOQ?rps z`^t0sl`~WQzw-J$#I5ZkmhwMuo!ZXW+d_l*-2X?_SB6EkzF*sgEhu((AT~0ymw_mt zNOyO4Go*=%0d`<_3--)@_F#+M9=p5i*zY?3_sfrOb8#WU+Rwh9JJ!9Hq3GAv2Zsl1 z;M+?rOlo;!3eRngHF3hI)CXb7m~Y9D-v+s=Oq^aXd;;yiOd#~g3H$@0b6a*te);z9a= zA@dN+&&m=*eV^L1c<-^FaOaD1bNF&n* zwo4uo88=Sl1uE6&vWLWX&}i~7W$I-O0*I&k*k(#C57yDV%lf*#6hoZI1LA$X`>a+h zTA7F%$vLQgr$nr88;gBMsZn;hP<$C0fjhiAzh>o%=bwY|<~VtMy(7fUm;gwZGckIY zix?8_i^RT}Xs~Xa7~toH6~8i|e_$z+p1L6;AQOq-Cx|>(XZmqzsIToVrXO;E^BihG zor)Cx#`H6#-eM2kOwn?a6S~af4ph(u(R8ynE^bQ4^NiCO#^<93&ff)O(!MFGY;mAAvfduD5H+YVGYlD>`DWr&iFVu^S$V3^jMS~ zj)5I>vnMNrSbBwCKaCjEN;ipmJ3`T$ap!u}VsXnc5R;wAgZeZ>qz&?=51s}`=Vytg z4xVs0pGohbVDUc86%%;2TU@dcot)`!(nN#(!~2V_y(hw^Mi#a0nureu>?Oum{rMgQxyHbB1yJ z934MMpZ$x^lQ`F%X{evAPCy)E`-(-M6~{}_C?Y-&o19iI-HpK?#^-NE8x}vg(!*7`y zzx(fr)0d+WHkN(bg-67z`VqKUl+7OfE)f$MjM>|`+t`1lczfCpA&LeAPRtgMCU`+< z#QUyqhA2JailwJBap1#5Vc6Y~JI>^NEp08xvcc@r+(UO0^4iWe)W9bX*{Z(0sje0E z`LgixY75oV>*H{_tp>+>FOz#$SmXHd6o^hWl&7!9Bbc10|2@y=HgD9|j!(cr;yk3V zTKTHiC1|mh{jsPg`m(_*(CjR6>szK@x}cDnz|@qyFh`$em5+2{YrG{?@47GVramOK;&1;_j)4Aj%s2FlE-A;HWAWfO?^gR=$|UL)lrkn5 zo6c7Psdbjed##V0u6!ydo{Y(!{T&p^i~h4sSc_FNRVMQHT*os%_@j~Xgfr8-jL!!b zRZ-SXibZ51y`Ov^h-EdSpgGUo(u~t$^_Wo9BbVvjwY}oLQvh5HsQ38qD)Ef_DTld} zdu&aCkbK-Q`Y-o2?s$kidq)iEqk-j4Bl;uTBIBqA+0D7<<2$wfU~!A;{9^P z?GVo}&+QduisB!bfZN2@%P~l?u91k9%r~}n9IZT>kcdp;Kl&hjkhdmaG2fB(^O`8# z?!;l?LiYKCswi6v$RqljjpB@_!u?zr?)3XlGxMBSwki-an2Q%%?-h=2+#g)dU9g9X zh3gMDSd7!at}I&kujWp7BsFbbwibI<+rr?L22&4d7z9>1pwZd@fOT1d|ExbNXpvPZjoQG^K)vKGhVmon8def}D@qoEF zww(2ds%rVTE;G@4CwqzgkL%|i$Uu_|IXJs+u|6h0g8a-Jq@0h_R~M1!$XHQkFj`-5 zI|_n1-h+1?^dCM%BZ~QR=i*xWOWg6f$^M4Ps7K2C0o;q{yT8m%uiT=(!V8|yg!J{w zAc?gwG29w3TdDmu0XK;4u{x$zDS3hboR zc^!`*yu15YHdaRNj6sub%<-01Rf1|o;Cv7@4~IS%eKwO1yf6!I+$zNQe!i$l46C2o zB3$RXV*)V`i=Het)OA8T=IgyO`iXt-ZE>l07B%3CMPMm#S9i7mNzW8!hK^F-!Fa$yf2?N55#? zV~$~Pr;GlYbqty_$7oShPyaG17VX#zZQ%P#IlLqe{}7+A(@rS{GCkIL-~BqaUFm-y zfqg#KD)K@lKQj^E*vIJXK1oUKodgrsdf|n^%80Tg9AQ1U=BSmj-#ZCWj59;T0Ob~S z_1^=H$=+?szMc=#Z8}m#~>L7$= zXAivk!kvOo3xsZ(6O4_sV0C1?Si`+GLH_E8{m13HMK-8*h&z%sN2q_qSfOhGHSW*7 zk;crn!m_#4Qi$u$ouLVMOdXFB_p3VTyE9(QsEqUN6J`2p6Kt`HI7ixdDmQY>$K55I z-~D4y-gYl_q6*n_`+7#7a6SOD%GmcXU#=fcZP*&b*32?ZU*sHxjf}|#`>gfNv!l_P zcb|{aL*I!S4o{e4Y|U$^-*A$8T+A_Y>^~{JZ8-0^2GqJKMOa7iTY>9R4@x1lnzLkK#tE{<#RQxv7pFKiZhysNH? z@`D~&%ABOA(N-~}jWa5EZc9!li#!uM1l-EP`d|a`Z^3w^8F07#=6T&-VGV!Yt$&7X zmriHfVB@PybnV*;4XW95#+!nkYyX<(CVSyVm&*5G_M0;OQzu(2ALv37}0iJO~< zzdXY`=50{6`X}Kpdl$vsij`UIlX1NZ`xTS&m73+rNa#)u#@8_AXmT>@vF`SAuvfZX zjJGp4nDn*zcbT)z3q^{6Rs`46IzIj56G--{WPABI0bbzfbwcSK){t z&RaUwE;sDxfOV_|9tI!RM`m(QZEp_jOP1*`E{jA}o?)*A+4_f%qTtJztRCl}UuDQM z%)1Zl0UjF>3j_A(y7XzT@0RqRHxBz1PF3}fcE!V+F}d!Y`%2c61ia&Yx6}BTV)iZ( z9eIYERoS8RJd%W?o#?%rvs5vemW+~~$s;( zoNrm&(ce4mfUU&&MccLdg*}7tXdnA{k-7SH+_ij8oEIN+&{uVi#$LwcgD*|>zAweD$^#Xp!Pt{{@n7Fs~zZZ&+nO-7NrEH zCLx-+_q*zxY3`(cdYy)OzygBa^92P+pwh9a&!8*kjZC|6itAK(r`vy7(7 zkA7Zwk)4gi(|<&A9ak(qk&U|@t_qji4$R#+zZ*Y6r0}n!iKs%DziAgZJvIM%iKtaqiNzYWe$Pws^jn z^WyKD_1=+=xI&!I9Lm%io($si%|YL9miiY3QTV}Fk^N6+z3<*=jAu+n1xcuCLS$MFz4@NrVQN~MeaFk{LOupo$64u|He3w-a$E~_#?N1*fwgSG;#96 zs5{wcUgxj4=Ix4)0~mj*+!Q179HC_n@Mza=v3Y_$W-i$yB=SR24$>>Z)KG76KMI|BhQI##tepK5jRuSry~bWpZa0dB=D)t2 zwoEzIBMyxjlU?msDp%~{=`TS4<^HpkqNxcO&Yq{aI#+48GZ9l5D-x2zmBHJRu!QHc zP_>&hLKkXXiZ_Df4% z87sY;#$(ED_GET8RvLRo(FccT<9BUE|Arb7-5K}x{S-fQ{4uo&d*iJhi(Z4hFqPQW z4L&8B(UbIK5&P{cwuu4ME?B^`k=AvNI9c6+IUae2`+|i&*#Q#oi#~(Q#E@k!(Ad#a zW2;&i{H1RqcOHHB&J_FIGLX`)@;v3-!M*yY8MX)|&N~bz>rd3N!y@9GU9G=9-@%Fg zQOtW6SJzMA{>aor{GQ_%mEsQ3uzE%xJ)<2;-XLl%z9J`f`g~=96pN~i$-|uTlzajmKQZj949q z{+t0Ve0fbYIvI(2vw3E0Dn$RF5X_xO%(v;px`zJHS#j2>-7X>?c)~c7{3WqW)Npgf zF5csE&UB%vMIJbxW8>4|;zE)Gh6HiGR%{_`O&rlRESLNBJ;bX6uGGdRk5kiID650; zPa*YlD)L35ore6u%JV_Dp&RwDH`t;cah__@TR%A64r<~&^3fAz;Yuf16XzRc+msbA zf?;}?^Xq{#6z7Tb6l1K|WEP@K<$O)WzpJ#)7-gjoH8j4m&;PTxvLlw>AB@TKy^WQ< z^ez*O$=~PHQD*8B(3&&52+2QgB8(? zIR6<#K7Wr=(QRG|(yVfEEMk*bbR`*uJlhdZR*Dk77e6|)zvr_=RQVoDolnMRgZbjd zcWSIIW8CwfEzDL2<5dLxW!6sCO(n$`?xY# zDBOMYB;WUc?1AC7s))&drZmI*Tjgo%-KGwaxre5hp06s1qX<2 z*(__};Y2+@8}1i4O5#H(^AO_vY}OD_owL6u%&Skh4HTt@v1rQr$Y#Mn;r1;YvHV-2 zk_U-q8-suZdbp1pEN;j9;_+1a&D|I*BBp!5{vx?3?*@yTAuh=6NiJ)^VDVaTGq}v-g$TPZ{@kEbjJWF0|#f7;Rt+)8E{CCHK#{nIBf0k!M~oL$sI| z4xQzMe=oas zWnNdxcSL_q{*;-3GyEHCXm-nS3leeZJvlKEi{;g!N%+qG($HS{@{^&-$TiHxmkb{{ zNSBNbj57h{7ILl|ab|3vvv|1dyFU>P>aqr(JVyRb-LT)h2e-Ehk+becVqGMA0_8L1 zvD~?M)0KRNHk;)-_55+D4LPf~PRq78J+W{UpM}jkIV;c=OJ?z&YFAHuFk#GO3>mty zwJ_5=;0(`sN8{eYoIQ}vymQT(nu>X2-H_wWyZ&;05lG#BH}^K2_YnUhK{>l*!6XET~e5_iTTxSt=mO8W6J`yRH++*$?&ELVXmE3h^6jqjy zUu1h$7qTT9FIR8}ZDhEvKuaB-wTyulMOqX33(sPHl{a~bDy>#Lipm)$Z+WSgv0r-n z4u9t8GIdePe|H6ERSUkTZPJsF#ozz6wXxKHa57XppV_JblKG)z_%WWm=xQT18{I}PeHIr8R#~_LKvYXi?^@djA zxWnIB9o15|Gncvo>Ey;V>L@R7;)CPU`OXepARkt_qv>Y$u_xV@|1ELG;R}3EKQQWVt&}URa5byI0zBcz`5yGp*}h$1MR6>^}lhW zaNSCsnV}t0*rRhlbyNGjvpwQ$Iaj(p$voNEnVP7~D{jqEZyP{=y+=@(v}(N=uMxY|HZl0 z*wwlkMs|2GkMq-e720P#?cp{g2cxVFRIcruk@_hc5pB1stJB+})RNCSvVj!J+N3Zo z2Z8$jlAB!&CdRWzI?GwQXGzU=exBS&BYn1GeC9pA#iB?O5%FkT$l2?{jncSz38=M& z=f_Z%=AYv1=_1ehn5$CzcS*RwvweK=D`^{bN?!0ijXnNXYC16m{TMR`rPg8noI>Bp zT;zH+#^)(17)?Br%ngx8-NfpQ+lCFA!Yr8gDdYLcfwf>meagP(%tIdEl-|Te<5FAR zp@U{hVJ*UtM9gPCEmUKC09xLnmz-lyS$y`QFDIXSiAB?curceR6UB7w4Jv*XoY* zJP+r))B2;V9c)64$4;F0x!J4QcXh^0&iJ>gkE!c)p++w2qt@n~q#;(+pYUO<9&RH! zG7g(M^0^F5k*29*@zjp>xI9lPwxZV(6gvxjR7Zi>8Z3in#|yQlqR_Qi7Pv{gm<4Vw#gxBxN|JVZEqa55E4pPPdpiALo0q zCcadw9b}KlM&#oSC{PXV>x?^x=sCFYj`|z>U7ee;2ERC1Qjd(r;xY7z_70NBl1C=b ze?xhO6hAx`6HR$e&aIQ)5$Cf*8OP=+(x|X_%&=mvXm(e+#q->f`PJa}zop=cM4Vp2 z8P?}U7+#P4qJKDx^y`R*T~qLyF{JxdQ|P!evVRcw>AnDN^g7(nbE}KBrVo4y>bw8< z*%67HW1LQ4d}!y6Earqwm*-;pFn4s;Bw^t#_CQn<(0_3PmUPKOm)|B>zd9D}yM$z8d!S!-%; z57jU7pqw_SyoNZVtb~5U$|to|#}I^lXTNLTSm~3B`cXXF_ZDPIzoZy^HD-UqZHZ*V zI^}+2#(~rOq~G>&IA=s{tAK0LlB9S@Jy@f8|10fUoq#SjjE9*GvExo6sHOzzey?Q=H|Sg<()A-_|wD~-E9xk>nC zLY(LF>(mIVW5fQEmb(_zj7V>vgnHa3b=tvuz&inhg7e5}al@f?^rk;gzrFY#fH6IQ zkdIqkj!MbYp!j!nK1TaaPEdF(&Mxv66qlp^HhQ2Ga%`5kjq;;Eh6PwzhIrB8b#cQ+M?uF zTa8D{NhwGr&WB$G!6=6wCcNVghiAg_Df^DO#N2Z#KIG9abq#q4`)5*bB?V9Rv!}Xo z4!-xLSL4H6R2a^K3*VRZ{qj)zZ6Q2rvfk$|kL9~O-i5Jv+$A5I_0EX@%eh-=K028; z!K=|>h@*e>Wz#4r`UUlr_D(|D>w2>8ZU8K=Pl82SHIcNId~%CP=&;UTqpAft|!dM*;B*l-2h8ww0wXV;V8rjC+!9V=^jonf&56(l+FwU&HDqYQp z!&ho|Oj`I$8o4DNSMHO0Hm4arKTN>fy3_ur3R?n#FfC4GtyDEBqFrQ+57L7dcybu>xy$rC{hw_Wi8ZaE?kZ zjwX5J@U6wighWKS<-vIJN~pNw>3krMI)3x;@LzhXb<0Qj=V%P55rMsn^UzE(!G6bRQ}Y80ibcB>Gc7?kdii`e5X)eB?|n7K<8lzjYXSzt|)u z9|?vT^>}Z0>?b9EOQQ~4Wt<~6?$m8#eD?HY|Ho;C*4y5m^Y?5FUUyIB;Ny%&yj$B` zX)G-t5(0}&*|^#)M%p!wI*P>he9w<3%iD*pj&`Qq{2wk6qyG>cwsC{vo+CpG0{NM=l1~olT88@acC`PA*G@MLj z&Ng5J?ok(T_dV{4cH4*SGifjyoQEfFI;1M}o>J#gxA`Cf=sorOO)ikX9kss4V0b=f z>wOlZ4>@l&*kg&^kbpx?f+1TlXB*ue%MAUXt497+>m}0ia8H=?>lO8{>eeo2ZOEDa zxn0%8x`WPG$z0tzHB5X@aKY^mYHsXXD}Kg$!1_`)ZuH(NKKBpCgKBB8+HzAph;?h? z(#kkroV@@4&hy2w%r`!6)NTp1XP!&XzM&6QN%_tgO&-qFmWEOT7wR0w{^uK;ES(6C z#@m(DO`5VodceJG`xN%ZUmlT09E@c@gE2hgt<;orz{T!7+n*X@`M3leh|Z?2MNd3f zk%;tF>;tzPiyYQ*BiR!!whhD52`TVSWu16eNv zQ}#@(i{>E3B^dAKG9SM0j=TPTFd9Z)kZ&#OaClO?DF;_;wUoXdcje5FeU;=CdBPrN ztPWsqbE>`QGQtJwdEB9xF4DkZbFfOcRxG$11pDR8huZE{2hh8wnnmS&ql=4H z_pzZJUZ^?a-dCob7jBPxJcs{|zN*?i-x(gSs9*G{vD7j=1VbINu|GUsGR=*~34YJk zyUV1;oa1+QWDLJpE;V`9}OHxK}Y6$Jv?WiUY#@)ve(o$c@|DGGWgA z=k#i1_hT&8a27vhGO9ZG@!er=*?lxxZt=v9;mnf{K9<(+c7@5A92`x1u5Ov+j1WuK zP#1#bGuNEyX-u9;n_l7_XH^qGxYbVT~9hhO@4*^z3GQSrA3RV*Az&NyX=M1 zmy0p*HOa=iwmRub%Qzfwn2oUc&!t#RJRED&KmAdC9OfMGdz);0y3_-$xEnIejXq@y z$KfaIzHht>zG>;hX_|^RtbP1n&49ra>XEmjcFm{NShOJ>e|E9%=yDJ%>Sf@tC3C6? zXQ?Mho;k5y)bR#+2`P~Ixy$`)_(dPm0-on>&ClbcJH4=HGxxLBQyVE9{n=k?YqtYe z8V951T6&T?F2T)YKP>A???~=C|M=wjf84xKX##eAbVZxf*?7Ld5GN9x(VOqu`%BxT z-_g$aHhs7D-JPcBhi&^cr0cKTqh{G(plDHP{h^6VXQk;e{(plMPQC+Wr3>~j{{x9mXe(o{^~^XmFd!jHx2 z@Y={&Z61KJ2Qv9Sv(IKW1-=i+)nbii9=wb@*4%+R#(lzdyP$Jmf0}32)TkVz>+s&& zmdCm6Y0f{%Yfi{R(~^_W4Nr&JLGF1*mBX}JGTir(*ZO)twU*=1p1)h22HQ{?LqC@U z4ZOr^)@EU7Qp*2(?-E$BcD9(8iRGWU6M5bbVMq9R+&r{4rcU{VO#CUEijN1WO=>|; z!#^$XG};T^(-Y}GD<9tT(StuD3Vqi5NrP2R@Ssl9|DI>VLC16!^(W%42|2FeHFf*y z+QZhLUbj8hm|M+o#;$|hQ%>HZPI}Gw+#wr>4j4+EcuuO1qb|Vl(Nf04SX4BiMwUUE z)M`3s&HP&?1TA6hNe{=HSy;RFko3ufx)v|!$ry28n%9fE*X^mhTUHa^X6eY8Lced* zcI;hcqB`sSz=p#yIyMVis^+5JQg>ud=H0l2{DBYY^eAB8SH=Ce6Eo3~IYsy}=B_Ii z;?OVlPX6XWslF65&Qeow1HGh+7sI?tI{N z6l`GKR)<<`8RTKKh>yl7V-23NN3w(ZU43d~;^?4Ev<{~iPd4&*(nYNa!rXosqy z*;u`;rq=w16P^n4T6+&u=P|DA@}LSByDfiNTV|VfKiqyL({34CxSOPhV@$%Zau5e)^3D`*I#y_lWfK zW(MlM&W4%u6KU5E4PNeN{A^JR9aw7yg;MjRMr&M+rhZa=zTdC=;m#%M!K}-J*FQiF zVjk8cA1x!TaH|dT@kZ2e$hJoN&6$XpNByFMV-ebmUXJgnA98Ud-oK%SF8iqEYBPN5 zLXJBB-x^CzVA`9UG;)o)_3a9~hU8FbGV$G|J3Sm@Aik&JPb&vZr%t%LOA0<;T!^mO z)P(#6 zs>2J_Ryna4JC;13Wrx*&BjaIfM*pB1Pt@DlbG95$&)KJSr7YeXQ>SHNbU+s=Ri6s+ zJ_}tkMoB~eW&T!_jZO1{q!rXYzr|j$#%PLkj?eZi=S1J57fF`?l)U|%faUT45*&j+bmN;Jyo!F;@y4g7evjX9fa?6(F3 zRAJQDO+=SmEs}52v%Y2wq{kan)26b|^xdx#&edE_>#p4ygHx@@@49NKJJM$y77pgQ zjjf`ay~PIYxpOqR`$ny^$`d2wv*6P@SNr~U5R&+_EG1uUd>Zv?T4&*TJsWLLYM<_x zH5gt6+J4{pekE#{x;}&PV*1yzi`-h`oRT8`!>7)}iLg*VFk5?fR@GCz6R~=&! zZ@Cqn$!oe>I|>s`bg;Wj9jC-#ME~5VYV)rK(_?%p;oLM$ue;jH0=~`Jt9(34_jIr& z;}+w<_By(?p;qYWLM_$}hPqBcZYbe7-0UmqYUKu?niqZ254!7abPU4fXXMHMqtQJ% z9gIua8uYwZtP5Kbim-0s)GtHnE4nti89h6617&mbNc3ROw*NLq`3m=;2Cb&ol3SW= z8Ok`bm0l`6=gFo^;t@@Jv~4%bd#)t1Hlp83c)6@Qkc?Y9`CgCyM;>xJ1^vkzKhfun zT=F~xMJ>pc-SSPIBq!tNGU~Nn|0CCmOv24inP^<6hDh3#NPj|l?d8-KX8)b-$(gXd zSwjqbnSiq^`8{{<$ZjLzxzodb^8IkRn^O#m@28_*UNtG3TDzOw*-x3(7E5eH(LOQ- z%7r564+Ud?N<2z!_8_!n1Ue`|u=3ley8D*%s~sMdaGrX7z3zUj1qQbxKWd7JZjX&6 z5y%ksASF{qfFfdy+Ubxlp_)e@SHAk&-D;)Y=`nwAP} zbTsm+hNAh%1U#&<0*$9d!pJBXn!=T;yD^!#G10ve&V~;b>AKIhz<{Y0Z(Ah)xEuik=B4!t_Q>-uMWG9^9nPcO z1B;Hii5r6xuwZot^=c&1$2|_|6EpByT}^0ulFv3J9luhIm3Z|Z5m8mnkN6O9f}SP8q8}tU*2{i4E{A4tK03AlUGOJD)(-T|2Zr7SR94% z+;y6J;=OFoy~e{!GBK`EeUY~-4i%diH$Jr&<82cV$hbYO+*CMrOoUj&Ja>^K)Xx&A zTgmzT!!bg2E1rDv3>4I}6?T2&xd%$Wj|z7&f*$ln+qpOE6(LG*#^cCY;^vbg8WHnf zRWp#>E^mBZhJ}%sBB$Z+$y~Ynqfj`q_uZvYD`{zV zF!J9f!=`^*81)H;JL|L*qfETo8i6l)f!vpztg48m*IBr0C7joUr|Qn`w?GMd@0Z&( z)U6J%gtHfG5W{*pC&rC6%NZZUZr$(^ZsfJ{JlAU}PZ=FR{jn@uY^s($js>E2d+yfV z43@8wgZJV9Jv5ulkb67}VID#4_lfIdtYn|4G52d4mdjh|+g@~;di%OZa*=Noc5TVT zuFo|@vKKwV7E#-1Q%jLHA`aWFspyT`2BT*TAT=pUUigIzC)?sf2Tt?;bj%BNj00&))3IsyZpi z5-mg6-xyI#m+EVU&ResPe^0A(8|sF5YE%EL)m6r@0HpHsrT*jPWo3c*+A9m+hNsE* z`FuAV)8O*&`LgK=@({RF6WM&X+&C=^0c|wMJ%2&Y9LfCi4zXSNS>Dkjiaqm8xFdUf1QREe?r7x?-fGn2XmH@_)@zs zkbV>5 zE@%h&TOuce`rfU+YO6R{p~k5!wAy)ESEI8V+U#L`s4`ei>p+hK_LmAw{N%gEfp{^R zcVe6A@|HhA2)wVM|LIz}8h6zbr)sdYw_cvrH;kMR=6F9I$|=vo5zky}U~COh#9gfh z3U~Kjw-5xv0A#nAZC*Df4Jnf=<6N?_hHm6V3uKKT zr>@anZLYT^XR6r<*#1mA$C~H)2DKwMoz-n?!Jn^W;o~SXIoBuvUOeah;)3NJlNkHi zhZ)glrd;?u2#?>=M?PtT+%Gx=AqzC9_3EhHtseE>Ei~x-<*6Jc(<`tFYrQ_Tgr2_J z1t&6LqB0hncSqsjB<`*E>MrKAj)qxB>MCCAFUr|p^q-x9pBsmZgO*XS`jU>ZsTSgC z<0u$7rDNh)Te0X-B%W_cLwu0E81*&+Qh6%!8`=oNA7Q9HgZ_7xYLPZ71dBT)W4~)Z zk#84>i^mhGt=(3f{^E;`o4Nnl#Xwx~_rfsNeFY2N$fF0icDy#NFroQ& z7$`;3A2=Or8(N52%whUblP+W1NKvI(IBJhiMbfyTqHJ9VDqbhUv130mpj!}<7bVft zt~+&6{PBdl*`?(Kw&Kk+;lPkp&oBD|3+MsOcP z6J1xt9CpR~;#ds&x=(iP;fd!z!J&}bAx>mBar$6~}^lP{a`TNEI zTo}h5-Kj9S@NppOkT+2=aHhOK3PxYU1i)Oar7_}!A{a1Ap$6wOdY$g2}1KW${^!m}*k!MiQO3WV~NL|b% z_&B!`Da-uG1xp|=yuJ9n${T~KCm^$KFR?Dg0}bZJBWTtz@#4HIPPx(R`hbP_JkJF; zxMQ<*`Dk&-kGmC}W2tT1QIvl1KznM_@9MEtUVl9VKS$9Uwbm5Xg5*@}YhM}X77HF8 z?t0h)`@u(!Z5|Ad6z=}Nog{b555a3Aa@{X2m8Vw=L$EFr z6Hb-NQF-C;j$mDuS|N|7X2sz;nV4;JSI%7(fh*IfXL#kMJfL|54n9n$Pu#z9txM!c zuxEYZW;Kz$k$wbI(-1kcj)*f4M_cxUmnGH}5zj(#oxRt4Q8mS}<-x42=)t|VhA8eG zh%-Yt%b8bCyr1fa==S7x>@gOvW_iPvHQi||6A>KXfqQ4;aboCr;X4^$ubKMM>Ueit_h?+yau1rd&_;_v!};?-K_>T@@!{vKd85m6CEReqSjLb)_TbY zXUGlh!|@;}6EzpCkh{A?pcTEVzWmxI4_-|D3gX=B?LK)GwLQB$;vUlkz3g=;91Dr_ zp+^<+r%B<6o0bOC0oUZ$ox|~vUU;RJ|Hv=zgyPJJ6g=v7L+(GHyB@QWargHfd17Pc z`5sBIz4KXC0{jqXmx!5~#^R*EH)fNE*Xx0)=x56F$+Nvj_7tOXT+#e^JSL^*i}3?p z@UKZc+}q3*CqKEMeIoa$&(9Fq&K``1k(l>PB}xYK{k;}|QMXsCvlpb|yK!Zl?Nvin z_F4;AkpE_&8fmVvw1g>lh@2m%94ZSyUw|SUIuaW>nUy~PbJs1DP!^jzrOO)6`^>#CldwD zt>s!B$f@vUeeD(^_Zb+0npMd;`Zr77H6wz4j~Qq*WvYCToWt?Nd4IFn@|xA*c+R-t z_j7?f)-N0e#JT;c61iHPa11@2iiVl%K}(k9lNaRbEb$L=UGN#I_2s0i)sirw5BUwvw}h&}EM zds})*A73Lh@h<2$nY^*mwPMS5cigw6SCAYn{OB)GHy{9`ql(lb=BiBmRLlbO-p7EAKToDyHr^i5Pv}1e7q}~66Y-shw37$)7PMsG30BY zZoEWZt3?)jgEMqd!GTD;rorqD>vc6Z1)*k)hCP9!y3DHdRI0}qQu`^>xDGzN(5AI*wQ*!AgPe_YE_LK~2$_KZj!sakjlC$!n*DW6jWX zSe>$x$Emn)J|&Hu8dv$ovoOx9IP>-hmXFdu=zeN z|7~3KK3V_P7w;FbhM)aQzH^TIRu{R;k!va{vfYvFn1J^`<3!;`7c{Mt0Mjpvg%df? zmwe)3c72bSKrTl-aXv8oka%>;4K4dbV*K(sqUj}`y$XMb^T*AnaEH|AoMR=NulISQ z>P(zlT5|_*hNH@jIR7Hf4SMc3ztYSK{>1rv&~Roik?u#oj&;csu>O{@MJ561gb7rAu6JzbLJASyunq`}! z))qHrk8~9E7Q#cc{rd$%byhf{_EMd z9CJ_Gx-bk!Z8MR6_OCWlgk%1v3~YVWK-YkNB^z=xP?6JIcl%~Ie2Mew&uw+>nO6i3 zOh@}iJ#~lPvuBc*27QI4PAp@uk~r^4&eh$?3dO4TU4M7&)kob7L^ z)%L{s9dXXyv{w~QoKF*H)lE-TNFysWAx~zg(N1%@E1w;4cGzfRURJ@GJ8?D-j5VM8 z(;s6;W?|EqIp#MF19A7F2GQHLnp=(wf+|!4k7{Sl$IlDK2i7L$2R@nqdKH2(>^TR# zZlqf0%^8GMChkt_p^9N%{qNfh9GpHv^>2>|EM?!)MmVWjo+P%+>tZc}R7d)TBdUKo zruqh|W}XZ~P<9%u-P)-}#)Tn|apQIAq{AOwLhdv+ZCV!gsb-*dza-N4C z2j~sG%Uuq>>w}rc5;5<}Y58cVCu^ESJowc^tl#U(zJ3C>^v)8mBAqb3A?GPBTg9dr z2Y8sqW7o~g!h5&_GC8CD{OXMuInoKiyuTZp-Vmv|?x?%d7jyr#75PR%tetHu;jF&z zr+&%&+1Dlq?S|e|nGxq<CZ@MbHffeG2^UOB=R7I^^p(oB+HB_pRhw1f6oNM|7 zs2)D^$J`NF*ztUtO8!MH(+e7`uvw$p&^ri0!5X|?rl{7%24lh>_W8#>Qr$Tkg6-@x z&-JgVPU|0rPwZ{Bx!g+a8Xb=Oml<%p-cNnKb_51wWMJ?wwYu{j?(f`VUKeSl?n__R zCw*80M%k;+t>ErMMjD(9tkj=Igdv^xV5=R5>ecjLPW_w$v(MAb&B^PvdqTeN&0Jk; z_R{{$9`x7)W11ww^jl})#CpV@I9oi*5OF1ru&9~6&Hx}i1yj4cU%2%W;bVr z(-*0RUiHU!Q2+W^nd;>e_NC8j(CFc zls?@nP1G}LhG94R7>gg4y|^E`d2JxzR79$(X~MRtU(y69Vf?oc7WRUO9(oAOhHbsqpCl9gOEwDl-P`Z zy6Q9iaZV(WE7M7C)y4-)iF2vjF1a++1A3n4zFXReKB+F4%(&6eG*Qfd?!dW6Jf2nA zEOtz{qds#SS{=S7>Ybd3Udv)&b?>`q^wJK&tJqha@j;B7;DoXbKB&9aSG2ZrLxVZv zE8%?Pbdh=kadsWg_*~FHU7a}hU6_r%g?m&h>RQ3_brx<_k5J96<%&ct8_ zY#`3Q1%;~HNBl9JIR8^^gX-=D#=vtL92$2-<@SvpngJS^EPSG>K7hXP-!pM?M=f=? zES_ifnVZaQtM1EO_lGJISMCi_cjs)Y!@~?rcxJ0^t_z2pK)=x(e|4QC#^-<1apilA z+M7OB4ZF~LwXqZwbqZ zv+wXq(eCI(xSfl`<7Q{Ypi{P39~6VaJ0HZd3u7{Pm+hL6MJYC~L#t-`Jl&m7^;4 z3PJ4!^r~4^tV-R_cifC$H`$`<`Y8-u?q)#arKp}1ha){E1HY0lsn%MD<2`#CS>m4R zBmH(m+tI5g?z!rHoiG%Ir(u5RP1W9|q1bpJ71t-tQmsu4!P!SCV4M7~BYPUIH<)9U zG5`EXpTx2x#M>Ilj|07N|3D&~3>V5#Q{1UzpMaHR)kM=oXVmviK#RN9;<{{)*+=7H z5ItLH+D$~n#yIjN4u~FKCLpXg`-!@LgdA;4?~*XM7hMsf66~P5N{{m|ALX>wc9=^} z#{crZ4)rNhNAn)s#XeHR%3f+4p64TTv;QAgZyl9Yw{{QP-I&Q>nMf`TwoR#Rp5*yJEBu>{rRANj`9?9feoPHMCi$ys_Dm=h?oM_Mo*l zI<1IA*M`t~w510Dbq$o-30iZ`0orZjzSd7_S1)qGlZ-Hw9BQYyR+xe>Iq zx5xfNA=vfnhSL4lWNHqFa4*?W3>ZC$bL?Pv7kG$fizgs8I0(+)vqgOib5wm!ylg!Y>~d4JEihw`glNx4D4?`&P}`Ulie zbSrt|ja4Mx3~a2-EGD+uDFTzuG*^xpyTh(qIGVQAQ}UWn^Y%XR1UHS8s}WA9TO5ML zAA*$`33jmE6O4HY`AU#Axvo!wFyh)>W!I{Sm~0RP9sh=6_D^#>y zk&#FqQ1Bb0h5DwjJ57w-tpx|;b!;&_mzbI7HMPy!yP$t;9DJRPwT;4D$eoYHq-Md| zOVR}$*=v_aFVcP=?}}60N9$^ewd+2)qP}+w!d73_Rxfj-$9OanO@3c6f&-KR(7)<3m8Rzh`EN!+sVYq=gh$AuBJ*`Ur%UQztw$htGpn#cKzuH zc-FF4j#u!&_F!rpOdX>bmDAINy3fCs_fvv9vY%QVOr5oM%EgIO@nA|IZZxZl_e@1ZzkF2CTH@mg;?Yf4n(U?a%j0b${>dBPvThsqxo3(e z8gk*MPc*($%M`IIh_jV1jK+^Pg+V#%w*mc1GW**i`Xq5a_9L{tI3I{$KRE76vNk8! z1`*MM+aK3NnRn&Y7%a=Gs|0Wc;6Tl{RbM(O zy6kJ>zEGFE#V|$G@WAt|XvEB&qBJ_0>#KHer73Gan2K9H`QpUXSg6SjPmABq2Tc$8Sucw#Q^Gf3BPR;`zqtRkaEzwMPb9Wtu zI#cS122S3%$UWEj;Z=nVH6oh2&%l@7FO_~%shiO(60z4WDbM&`6mY&br{X1Lxq}xr z5_9V^>A7-~b>m#c;<>L?w>Or><58goxv@!4jrNQ%#nf5k`*eL-veb)x3i%Xc zI_%VLT|$pt_jvjdKh^5qb)nV}wX+QBDYY87;-x}7zkYYcB+wPN1BkI{J60L?$QAeX z$m{p_QHDmlA@wFb&5zGiR&XwUe<}Ab)pM1gJM>MSLOf^xZA!!r4|MNF+)>sM#bTi+ zLVm^I-oZOc=SXrlu5mALzg+1)+#6~8V~{qfrby>r?Dg^(JZjri9FOrqNNfydEzuJl ze)~Y-oT^7%ec?E08X7btrmjXG(X#C{e9Vi6{rzqtBHIVMuMtPrubDW%&l@gVXCTt5 zx_EYwwU809!ksFMGc~87JNbQBM3+(&S_~A=(a+Xj_&BMX?{@wAI-I*K;<)M*TxGDU0$Kykvy4v;| zY_T|x*m8MN8-9a0N%k@o-d9pqbl`nAAs+Yowo@!ET~Upkl(J_UC6xT!=B3meo9V2a z&~?MFMB;k~Bq=%@+z`b%>e_0Hlouo2v9}KE^WcrjHs-lN#{cMUMVWDcvymd^_6Ap# z`PrUmJ&!w@viFJ}IWp_QW8pfix_Hm?`O<^fQNyNU*8m@wJ5q~v0C|+3I3u;@u3<=j z@p%0-RGbitrej8kt!BP>334T_Px#M&ZM9A;TF#s-oUU;Ww3~VC`~+dTn7Dn;z{9#4 zitFtC4a=gaN!>~Wa5nqXoag`dW@W{YY3OAgi5i+Kk&ek2YKcCy; z>oMk#e)qL^TDxK%Ie^K>8z}Rqxng-5IaV|JDBl*-KbqLQ;jV%D!^O^;PT-F0)G6iQIS=^jlm93l zD_ZWJx;NrZA-aO7O{{g{ANnm#s4py;E3SXx47OKW;Wvi(5I*-j(_8fD!FrqDb7!-O zSYCm6_*(3(x?77qW!yP7<<8=Ekm#{^I*zv?<|iykJZevkU*a%ptdAC6Osl zAd;+1Ff0-q`u@vLY2Wy*@t|l^95134(^*I3_Tx-pVMjh)&6`F|Zxg@%CmuBm25NhC zw!_UgoO`VOq}}S^N4aorV9Q{(9o;G=BsMyy#pzk(ZX6;$XIqwtcJ@X&F%JdK>%=6^k=Fj==TcD-J=#yh0fTrv zC_E}!)TAE)Id^v3wuzPHHy~&@2#DUB(l7_3?F*Ji3 zYn6vdY;eb$Ti3gJx3$Epw9e3-my1=C1wKt)<~34_xK% zOqp#fTl;%r-9B;+3QgttF5G_=^7s5QkUJZA<2QbxLJ&3f9mAtl*U#&3UhX zP9lQJFUcv)8?Q2`!8lecKb&^Mst9^lHQOYQ(}%hWbsl!aEs={VdLVcb^>44G%TGH! zI5VN9nRBRo#NAVOeQKCbvX@mxdI2r?-}+!8Jv(`0NHuE89qT5a*7w1R$Mo28(vgLA zr@=|f&nV}o7{*=s`y6UZ7T*xH>A^iIjGVGtQgqZ%KhTQWWjD477jk>o>rD$2*DKF{4@njX8 zUVEb3!#LtjvP|j+@x37T>VM;`4E$_->xU_ho}nhvPj~rdi!Fw|=S-OZ+T>9&SHbPBY=!(ck`r|*0PciA-D3+7h*p49Pj&qQye52s#n#eUL{_u%F}GHTk~Su3pF z=m`=^|Lc46#7N@JT10auKiof0Pm*9`fZf>vgTzQ$VQbdaoROAV{ai5RH{tJRKK;}Oqi z`Q0$}^I|)cJfU`F{z!EIWBdFI`ObzN)g8ZxPkWV!RsHL#Z`%-W`5+Nu!B@G0b#mA> zdY~-2DR-V{pL&LzG{?j8sJT0i9U|{3YlqZ*?2b+QsP8&>mE1bh1Jw%|p9Aycvwog9 zu$tb2i<6}JdrxF7q=x@FAKCZ-HJoSCr{@&L?2Y-d*Q0nR=%FY zdun1Lei&AlQ}_A8g`7e4+!OKa7i-ogF|LHFoCl-r0x5!Pdo`^%H>xFMg zAYNBV+EdR>28uR?oM(``xTJa=@#CHk>XTb%5OvDPai=FN$SWUH8iKmq zWxOKKvEjKi6VLsejZgYl@5?vmn{m_-GYon_eg5=B>2}`^gX{5}d<<7tH?={vV(QlF z4pHYtJEKU;fAgAps%IZBSn{lnKX6YDjPt~gb$@jWcgb!eJke_o^GyB%8S2D&4&yL1 zVY(c?h421U`e3GOq}20b4?#b{kuBwR-XoR<^j-S-Tl5d|#z5*VboaO@Y7X;3ore5O zw-kwyU8bQ^RqBX3EfqV6O)CCIUx~0Z@w?A-c<{ZeJ3m4^w_+ankbv2b{6y1CeSSJ?({^IT8Qljd|b3;+#KsK<~)M%eXA2lRx#0f7hA?@#4YTskr%>ekcZ= z#gsk1aR17k__aq$DRHw#AE_fzwpMviCjcFu(m&-;it=F(^+Tv%k$Ey&S#aDRMK`FM zG&fTjR+n7+o78`Z%~zf#2he+vo^J8S6mOkCxbt1U+ToS*YhNJN@b|0UHO1ucAdKO; zn)J4{up&2SFF$vy-TlNKoe;EYNq;8Jhu1%$zA<&cMlN<29aQ#hL-@Yv#EVnQ!r*OA z9msKWL|G*H&TiD@F3J-59q!=@aTktx)!^VlHn&{oBxE$|MWMo-tWH<(+by zvk)siYM>?55hp$q@86ww;>UL4yHPCC`Y|UQ8Xy)6?pS#D{b*q-!luRG&p4i|Hm;&d zKWa$Y@^^lT6k{5br{zV>fd}cLfEcl*yicn+EE2ct(6^NL?7{FgqIJ6%)Xd|%V7^`S z;;zPL$6sAFtuS!s{QEHP(5|ONMmjxenA7SnyejJNkH(%i)Wmy!S^Q}}1Iy|s!Nu{Y z*hqd>C;KGoBWw~`H>o4{A_;~i@gg_Z8@CQ7lZ#SYc&cuw=$wLPfo_@ydtDKwB$FFF z(xi)lJF*`VxAs4ET}H(h%F46Z_{{V3%Gg!t-PjKEW{GfF>?#^O$;bY-^lX)GVqEZY z%^6q9BqV@x`|X-d`$ zpHoTHyP|jb-9k~?GYNLwL9d&21|3Bk@*Q)wiF}=}Dcz>r?PKz_*&%P9FC{IA0 z{%3^OvSf_=!klAxR=g}of+zD;g3fu-`Y!L@w+Z;Z>!Mh}IA<{b>}YaTWV4Q*|B#r> zem8}+e>|#Rrx){=yP^a4Y^EouU6B7k3}YWZdk^_I+4n@FNyIPgrC!sCYa%X-S}V-+ zt?!-^<>thSTJl`Y5u&gL@xWD*P%Hz1gwg;a*im%sC{kIxHi`p9Rdi}8@pjyu}Ra%=h$GM;W%o5*?Tb1<6E zjXTwmEmLQ~g3n(%RFOY*Gfy)!5+*jBqqDA7 zE}Rsb!ihb(L{0me$Hf88s0NkL$3Ywt7cNl8V>@fPN{Sf&GaQ}IC!m$teoh^!Xv4p8+Vv>8=RzLh`P}{N6xpxcVw~smC_{8Vu4V%lh@6%Dj7|wfDN9ul?i8YMvL)*%7p<^nJGyZ<9zKFQ0DTv{_(5m>U zIQ^LKG~bsQ?QV+B<;=DGdKW*4*H%ylT4(4t)MPV23Q%*?=fM zw+>h;gE!=%l+UY|&y<}%<)Ak|i>U2>a@+6uc+2NnfmZTOpE=Oyzd3AxMvm+?3riU1 zg0}kd?U8htFg~p_Tgka+X2OzjoBFk$jOm*SXXd5Cx|L=5&1A&!UY6D0i@PP%iK)aM zXT%-x>n!g#*7?oCP7BwX)Ij2M6$?ceaK=7>-_s*!hqxu<@RR?oFD>##)$QaNJmTLt zDOYqN?rG?L&Vjcs5EXlIXFikvo_h1euiDhibfwN}!cq~R7XbS#`r)?UCek^(`0E!i z?)Mq-Vyrt{nDg}xyc8KF&X~5Gb;w=n&#!X9onh1q`eH41tZ>JB_kZufdoFwBVV7*w zW1Nd`)K?on*^kqF*VfoHRlVw-`mfe{XHhQS_t=H+jOX^X=jEEG>v5dV;~x~u;;1~% z%9w{o<;i`=axjar9nc_CcDgYCzjJlaC`5)-nFC|~y*8G%@<~PddNZ~0Z$-jyidKo)wlaR`_$~%I~+lxKIpkL{Bj0mYDI z>J}%m$PJH)rY`QP1mTnsf~Y}!ziQ1DHhui@dLZW{Pqv5-8@=Iwk-FT?uZhj+Zirt% zFFEgu@}Y|}-tcZ-IkB3&x5EXU_p#0w$HnrG+zJu=y8>kk4iZO>VT=wgOoN!=0>hpQT=(F;^X&##K+3&$lc{n!* zr}!KqmP`Ho`RKqiTqh|*PP;N2o&HJmVQ&vE+pmt@3b^&w~O_NI%~kB=dWExowlP z!seqTfA;*%CGxAcw25;qA-DfK*{h_uV&+Ym?UZPJ* z09Ht9p4?3nt2k3NCSIspXrXA6?1@2*=>f6qsTgbS3f(UJZ|`X&WeaD_+Qq*3Lnqmf zyQIH8g_j&EGr7BOe)C^F^IAjdsRrX%KR+SgYNL~yTCyKEZc(3blDqmgtqj?WReqkK zx_xai<}!wp59+Fq9oJ(TW2^U~l1iW=bop%Y{H}~P%)x0sFaIoMml5-k%y$7j3S`gl z*@$4A>sTz14)pc@dk5F85GPY=rlTiw>7ap5vSnk&nP=F>9J2O|l>dBZa%Xpvtve>8 z0sFyDZuMlf8r0y?VQsPZg9zZPXaZw9&ft`2%AJo}8-6a^H;J-7)Lh~7o^Nx+lPc66 z;CZh8D^$2rx2GZBQ?vV1#8C3CZUxg{;E0n5a}0tn=W=(e_=;3lKg{QDD99~c{8;IO zb^H-}%P)25r@$CfR7toE$qWLe<&2ACs=LW_up1cC{N2m7mp0M962DK*cjPZZebDn5x9)-$$UusT> z5xM8W@n8*eT9W`VcU>^_*u!M+^%JF=skJhRK0#+fL~@8PUXu@!S~XqNo6DUPcWo0a zHi?)B?suq5^TGa!sM*~WMz++rE^H=8BsxQH6myZ&Ai25JmD+FA-Vc~57dQ7r^SS@( znFl@Ut+p7z{LIg~*6Vb2_p<%i%D-WeQI=}awG5jWXGd2z^~$hftmjz`J2_M>D9^`E z*4QPL+o%)Mm*XCLhdJie)T$R3!HHkDc<@+uzBvyq`2DT&j>v7bXTy@eXRq;QIi^M? z^qHTVZqJs(R;5A1^ZaaFtkl_@3NOalvYwrMTQ>z+%oPU?4U%^cBw-WJ{_xI+n8O&=u> z?Dl2+t!@f!tSj0bCtho`j=cTb8J~F`rfe82ZOq+Jjr)R#bxUN7J?9&i|IS4#?lw_h zb;`z1=Hw;&7ODNx_Tw3A^$r!5s@=YxL>A*?T^ynM)Gx*lp4E7msjm;`V=-gfC$5LO zz;Zc)*+V&cH&kEeEy7Md8w@O$74zr8kukr#`;xqKF$?>6wvF=k$fsvB{_ADDcjw7; zuQXiad9!byCWi;7!h>8^|5TAR zm$TPn9uBU5Tihuj=9iy~&H01kNsk$LRmPsQd4aHc6^hm5-MFq74ho@ytxo(9E2Cv|IRoqWL{^SOgd8X|9M%gusJTGd9{BJ+FHhGe2+aw!T z?j#^MWsTY@Xg`{t;Z9cMt1l0qgdO92KX#^Cc5^2NGR{2Ti_vT|-Rx-!mby~oR0qm!r^oCxm+UF06#X-=HIG(J&VF6d7# z9b;>f_Da-AqfXr=-V4poid~(kjbYE4p}P>}hC#T#lKYYSJ4H|K1Rc45zi@AzI9z=i zMqG)-VtVpEKkSVTf4J{{7b1*Zy|Le)Jm@SJF`|e%26i!&?@thC$I7+Vu#){4DMoi1{+Lf+hhI22FZFBfp9`D*3A`;<6GH`TXsHlmr^t4!La zx_joX7U+5Z~le2^=qX2FH$zi$1r@~vG4%K1CXQg_H^Z)W~?CysrS zBNu;7fiLgD236vum18o!Ntvs?t>nteN%+RRF@0tqY4V zP;H(tAck%PF{`zkdW-5!y%D>FKIuN=L~x-OHl>okA7U%kck#r}$uT$;G+P|5?T#~_ zV)1*?AtBnkp-)si+*2FK+S`aOH;=ilD>pn5-Y zKb9S#e?c2XE$}^wa=!1U*X61&qIY5m&u78FIQ3Asd~9Ys%@eKEE=9{=$Ugm&seyXy z^Fm~@-&tVLO!Y3Gi*5XRy3%cE9zd60Voa{i|zc6x3ztopI zUWP#T5clt8m1RkmKP;)Um)ZKQi1M6km%&y7<4ZN^E|6hI4MAu|>X;?OLuduHleOxU%u^)}t zD_uW$QdNhagvz_@ME*Lp_Jp0-$TPfgYnuABd>xwnjo}6tbxhnc)PGJcKtp47nOKOY zocXt?)lRJ;=VA+Ma=&}k)nPAYp^Wjjz4=6@-cN`5d!EAshh%8jOpIV&^6R}`8powT zhj(J@)wAT~!%0YE%(pi8mCady3Et5ryT(e-jA#_4uy;P*M?Sh0hKj_NWSF&+quvI< ziZkwzeGOzCUFu;xjzvOx1zB*2S}Vjaovw0EtRRQt@snsg8F56kd*+6P9iri3S}dY3 zx=^1g3ihU3#QDZkQFb>9Ew*nF@zMd0@}jZzWRZBa+!i_8W6{j!uZow+XIm&mjYO^^H`i%3M`!Q;jP75)XaUP>gR-@f!V;Ezr zySu;I*Crip`1Q%(Td3zFQZRwv|7}ubb&wDJtQhAl+wRKScga&>oXbvWWxtz|uwtAm zc33TQ$y@!zTSi)WZ z^L8EO3@0}X?m=JI89K6$nKQl-ceL|qWm)*g39DMiz(4+_s9DPquYIDiclu@FKhF-I z8%E>$-b12|CpnlF(RezeSUe}5zgN!~C_Zb&gMJe*XLu|w87~k~#C+CcpPBY5LwGG9 zc8mDT6$#tL7H?C$7(WBss!ouD+|2RH<=?!qzv2p2H$4@JjPu0s_o`L)CKT^x91eX_ z_a+=fOTOdjb&si8`_^GQ<6N>hUmZ0i2QG};hk{JCTUi!1F`ll~eAH@{XW}B`tPLBf ze&oLKF28P6)LEU}5L&ilQUb-1^B$+~*^t?<+n$8H+`! zG3@2Xi;6+xkZv1^gfngAK4Qps)chB}F{pKc+Upmwu8gzYxJsq5m)Br)5&IfcDb?l| z|L5(s@z@nLEi?~W#`)H}9jZ^=xmdzD&*`*K-5-&P#+;43Zx^9Dn#CZ7v5j?}pym)? ze1czJ=h#z?tWQr0=5xOjjnr#rsAEHOfoSYkof}i{>E?kyjK|%P#IDc%nS8jI* zrWYLNy~|g~jND+9@oeYS&XnGnK^Vw?r>T3eoM{k%NAA=yZeS_zJoB2q z39Re-E!rq&c!uB+YmX&|7Rn!tc_jZm7SEDp$bvvLW3H}Tb-J{l?1%PO=s%)kBb)zb zokl#Ee#i)UYYVv>yJBJXp|2df&Kd5RF(_-{w0>%fPnF4wDgQ2t zPgr63?7x<@M@K7>RXi5kw=lNz%ap}FW8hR0jRw_6 zDc$CcMQUUOnm$-72COv0t{ea6=PI9fsza|%MF`{Ux=g3^G4pNpE%b_YZ(7>;{aWgh z5r<>+Uj0!z2N{gjq35OQ!>94=9f{p7TcK_^=0|UL?kuJ!sntULQIpU1Zg#45p8(Y7 z_f(obNFDGx05h1A$2V!Mwj)Mj0_(bJbE>NY7YE@2XB`_gFXfxKU^L_G=<@qhvPX0X zN;uOP>{TqMwg^QU`|kC=E2Twp2zoKkJnJ_{KG@BlWsi`Y6E9D%@rTYg;woc(6jx)+NE9fr%yL>KfWF7)z^-qO_33HPA~SwD~Ksi$7h55i-{YTmv&YGmDD%;4SEVc%!Di@HRuIZqCnbye1=K+YL! z=6h8Y8GIlVHQApGc(qZU9vg}f)*)lUmdGA!gE76BbA}$7au~JLPBdm;-#tbqlWS6- zN4#9Jm#lW!6PDGf+que8264`&^DqX<-!wAehZDBEjYgi@UHY%JLk&09btf9jQGF-F z-JV*G4a&vfHx?*mel9VPqHvrU9KvG|oRlO!93O}HqcK>0sa)CJYaD7{r#9@HDOy!y zhU44muQREts5{A;^Ra*P#=c6s)T>==;K?}mebK(O*|?c7-N+r*k9MVd<7X3}$X#c_ z54EE?xnh?%A6R}w4LD9rHRC+IbhX-RhCg~RhwL>-Q!Tm&;47b7_i|I$dX+G9u;wMj0u7FjcUUTmlyNeG4=<2JHV1vNS>1S!l9kDlL`B?;7S<;=6d z_qe<`o}54S+Es=WOaJ%Oj^g*|EnXvy9YS#TFuiMkW=k9YKSs$wf0}ecolh)Lx&C52tM%v^E3YX$X~dkAVUSJV+tWaN}k_%en&JDit}fnnIr8ByeYMV>SXN3k9; zS|_&4oA1K#kaN)`PV1z>giu)X?)cC%SN3PEqHE3_@yq$r$-)mJARdZarW}688#}2z zJ3B8)W=0YZ97D|nw*WbGq%$&iF;{EszeR-BLn_3P8Hhr z-}%P-uwCjdjSVI;&OPkAmEH?>!Y0OfO5z>$V(I_I`A5fmHR`e#QrRayvPx2)TLoY( zv`$|5Ki|?l{Nesj~p5ch|x@ym%L74p|0bL5Jt4Y6tkj}cI`;K?=)HU+{ znJc<&zAA^SA^5^PFy>0Bym~McZJ38cHAQm!nXvz`b{g-s@>fncc5{E>-fpqn*gqUK zIsc6No+TG0hhiven~#fAWUDnn_~}3#ns=1!oZ?6C;&^mT_LGrqe9(73wP!y~l?SQo zt6vz4H;*i2|7*?wdHvZD8d>eJBWxJ+!us9im8N!>`#1(U=Niev3zJbC9t+*dAB9J# zCCv5XVC13*i#?O5??kVME3?Imijy(Mnt5r6kEnmk31uCl(Phy(@s&K<&diVhJFnBM z*roOxZ9^^~XB4|Cmg=6G3`fR!>hsO&3pZ-1@jS0KjZ^oA5%0vE+H8lh>as(`2eQU{ z)4r2xJ3J5%_&n@SZB@NOzg?c;9IFqqeO3@=vDdp%@3M>^7mP9NHO#hZWuRUN{8?AT z&D|{5)(pi&?xEi1FOzF3hhY@+a2{)kyG`jw-zgFMA0^5DC#j*RPk+)T!LqJtIF7bs zK3U)@ol-+lgLQb;&dD+|CkRtHM>424UiJ<1gXw~JJiQ7zrne9M9LRrs*I!;B9=;c6 z9rreLmAm^9cVR-VuBEOt40PgrG!|Geeu#z9+QXvb5qcl* z=1w<%nF#Z-!byAT?X2<Wvp;emP?&b9JLKA&Ry|Ag$%U^XH{Ucd5(G zZ7`g1&JUxEP@*;T8RuNPSXKWKHDnm)_&Y<@IUl^yn)gn@peCxFZXmAk+zxs4MW$s1 zViEhh$c7i>re@@t^9;`n-6L-w4Z;ofAeX+amJ5@D5zQXt(CK;dmt6=f*n=!nljLVj zD1LCZe7mKebQm0li_F8VE$!qr#`8mW`tT}aq~*PEv^U^x^Y-tyKa;$Yc>7*ibp!BNT_2Z&y_A zA&*W8Lk{!s?Ix{d&%ki*MHA67zM-tledgDJ#H&}VA&=Dz$C9q(6qr!7i=hr z#Vz;!!sb0|>HV=7`@TRZSL~tRiQL}YMIyt{79H-yL9cG2NTUDLhLU)!OR^DruUMnX ze7@HM48)UIdw6Xlo-L+>nDE6Nkt3-~IW9`XJ5rbZ`M>)?vmXWOfCL-J%gnvi_0>hm zHpt$UOP1$`peFl{H1S>Zjt_;UE_Y8)ABh*7 z9aUx?_OQ4hz9fa?>;UGL+J{7wgVY-s!hC*bkGQlq4Awm79o-7qM}+)`r3v%hATqiI zVxd3%YMs}J&%b<8XH7gJ$K;7ujlJQ-SXIqlEbOOI_l){N&&uWr?^-VS@szu8C0$rt zbAtIdVpt!?idir0kroyQmks2kgxcc0A^ndmtVGgxYx))PyK1)hjKfMR^(O3xB3_V{KJ=)d?vQYXKftu;Fzp(*#-gY8RzZk z((05Q$`d*3kY;lA2_HB!&b=mely^1-B9(ET!rjfM3PHHWIQyr*6drNZ$7WrTw*R!4 zrx%P2))kT6_lRv*gJH|MBKF5xp|>Rj?U*YHzGjPB^Fq;qxgyVMrZ7(rLndQ*uV1L} zP7O!0AwAkwyNEPu@1GmWdgF_wxG*vdWjxRE@5hNk-lu&z8#l-wCH4#tfW8wwtg}Xn zgKd0qYd$$XOGbzxrd|lU6o-}LhKs$2+|YsN?WMJe@Xv6@)*rD*e`PG1$2y@~n>d&S z4i!^3+arGi`Mjovq9XafDxlJG-fpT7r)WMcB3@dF%GTfaBjSyw@h#`$J?PipFwX#!2C(L zP>s6KxkaLE6umo5*qaQREna$2vn`yyX6L+xc`z}nd}n9gA0aBx8(@4G`BQhgh{{3i zwWH|++p3|6_6tPCv;?&K`9rBoZtmm7JbPbnD3|B5elARa&ke0&%lI3fq>uT5bqcN# zH~yOQ(%N&CHM7F-n4j0M_ypxutuS2R=bI4|qAZ#cfTqAXc5?uxttQrM-yE$QIUVOXb1(?1uCaPu&pQIz=AtjswQ7%(w5^*PosG*|^^? zdh{@#Z(7t;Gx13n`f|q|J-Dl;@L?D(vnCl|)3>|Ib=&HOtq~LuMxPA?6iqV*<_|YI1 z?aDHge%Bn3MLlpY_oIp-=N?nZiJq8IMbucK;(Y3hu&@a ziO70lRIWRc-^QR*;y{hshWfJfz53s}Zu!df+NY(|(qumGmH)2f?GYO+cm2Qk6eQYV zj2?4HVzP0-P#?tpz0()mGd^F=8TKmn+MR1_V)e)=U&y(rLuXA7>gOGv%{((;xMu15 zK%CBE4u3jTb3L8>@@&R1K34N}crYCJvu&K`Xqr;DY}78E=L2~fH|p0OJX6XS>M`tf)yJT*D}eOQynLAri6Zv2e=eXm%oOKVorxYQZ9zs6wI zlg`Sga{6grpk9;pR;BzM_1mjbVVqXtIoY zeYTxMZ##Dw7DmJ9*-A}J-AFj{Z}{Ih-^?n|mKWLL;Tq0=mOn1Jwb=$EOHA7YgW8nkc>AL)HJHNxB+_Lp;MqQ!2vXP#9|e;ohN2Wo$Vairf1W z&}siqP3oCoICo0GX8(JdR#^e)Hkz8W^|xzs2l!&4aUABgbJ7$Z^28-_!(VQ;F@842 z6!!>e?-&r^F6RaWT*qQLAE5@ol82 z+SCE_iQBt7z*Jmn<&GiUqVVPCKFyeF5oqW8Z~fdRXOq@&J#$em`94`UOM-GZQ!*rm zv;5i6kiK@rOLF!#qsaK|Zf{uhXDye|RCA0xyUv`k`|cQ`SsNaJ_v4wjUpQ+H?dRXc zpDi1fqKWAfh^IZ7t9_PeCNPH>==19{w`%etf~cvOfX~`e&17Gi) zA-?EEYnUAh!Ek5t0WUVhyp}=qx~DJg%D0+qJwMFKkE7@HI?c7E-tgWLi+Lu$j6+_# zVI_OR)p~EVOJb&CD`(W5$gi`ngK=Sk4Ep|+?I`J0Yr7;}zZS0-HMqCygq2dZA5w&bV~fC?BR$XXyZO7qfec2wzt$&87B>S+dyj z!G)eJvA91dQ4HMYiK{k|m~>p#*v+TEFtv;SH*b8=-=>{B&lbkat5>U@D#`M*!Ix$U zIM&A6NIbJ8CoCTI9$zzlKhzszDkNaK;ULXC@{hXkth#je(3m}@Z%z$zZ=y3b6*>h# z_a*tx&DUy*sHJzBI}V#3C7Sd4+ykDDNBE1Yn%Ph2H+P=6pk<#m2AtLZc^Hq@g|(=? z#JtVC`e9H@m~qap$M@p%dozq~{1lEU3hDzR|Wj+GeM*oZ{>ZSO+)J!a;7Cu24jIH(-FwAc1;agp@wJ@XRYMn^-2nDpN$B;X zBWAUlj_Ywr@EW^OQ&W1Q_Q50^Y-6U4CHE&~cM@vqyi@eUs1wpSiGChFVyLe>bsedd z(QTnPBTgdfNXf<#HuNQk$HP~dM%`E2 zqH7fKHXfgh2ORZ6MgGp_JuNh2JpD2FLp&N3C25+nW}YhIQ80XkCZ66UqxrcM>^z{k zq#uB5;q3iAZ)m#kuB_u35A%ILH6!K*;=BiAUb7)KO`~t^jCic|>qMP^V2onF{CN6M zY~&1IayQoQ`y>SSpwBGNcKT&+xE6&XobO$&IWahLIuwmA5)*hK9XCFOB9Hz1?UMO8 zd@B?;N0QTRzX)$`hv1Mid3ImsV(1onWm*$IR-1hw=jSuo6D`?lf@KY-p%QmMDc!DV z_IYy#!u+`@v#OE(XJ@1iBehYem~+zsaYLz-^SxLMIPHikEy=-1 zJSeK(aKr5Nyt5l8X%8#zX3P~EjY>|z%L~+&xtFG?Im90sOZjim%hy~?OjSPyDXT(pfj!aa#;NF=P5(7p;*mO~qUH1;d^|whvMaGKe*XBd zj&lYl2TYzj4I5g~`)N`?WRWNS^+Ghf%B$n?DL0)88f+ub*&j_yo@s? z;U7)UlzGbGU-rmp9D^r!`iSih=zSa(gT3DKg&yC1oo3vvY!f2d%mJFQQP?(BD?aw* z*)9)bPvoU(lt!QQ_5a2>@cseq6=z$_@n^2^EGzlS*?!Y=^r(Hlz^JXAEn*pm+9iLC z=Qw&%_bi?|fDW1i75ovpGagNzWooSJ`lEYLJbuJ()V#9y$65M@*4TbRGmtr?Tb+0; zuKz~!mb=0sAE=wutTwI(1R~*e94_0mM?aS!YAwXWS7!($b+(4{XYDer(JO_1-<)lJ znh^p=zff54-b@{wjtUP$afWfe*>*mr(QmXZYr?&U7hvS`AQc^xug6G^)(&XeGzPD3R2SL$b{MplUKsPEMWtP~un*=QHm*omx;vmxQ50eh9TbU-^U(_7 zI8%9;X5~uqi8lQk=UOd=*2&e|m*GnZ&s@h;E&r;upSw`#n*h_?-M_ULbu13=Pn+T_ zYjC?iaXhc7A(u}NZk{urXU4;B6MfHF+pc-C2tG!k_{W#`@2(8=H>dx}T=ryEti=xY zQU+5u<4pQ09OM1-`UU+TiBZkZ^TsIV$*$)D@a+XTCg-DZ<^Bj*FQe`XHQDCr>!Y2A zBQ>0&P}g{`?$2a9ynh#k6;U&_7OB<QfO|3!P?hZ|DI(Py)4n$9EF7i0L2@9mPJyLHSLy_?75#IqdT-VT1~ zb(!AVUy60tPWqwWYHH3m`=G15+#koo**B|G2dN7K@RohuuJ1cR%?!li*>OndFakYK z2B9iz>^bXTzK>ZPovTY@z&u&ZXA!cJo;S9N~ zn>CKljKuthYvgPb7t~jR>80IM*KMm4X8ZjeXVtkRCJgg<4{`?msd7gQyBdgyk#X?S4aaH2 zVEPh}Z$Hx&t2q0!WxbsDWhU%ck5 zGbkQog0nGUAw9S|66fr-60@iU^~|0a=34Vm^PW47W=6qpPZ;iebfIT-BnB_FqW`lK zsx^qjUN;SAjrQo{5y=@wQ*<3{gR6a`P-cBvw|FbHp%S9-{pNk`?_HMovzK0btF{Wi zi&jXXXY;!fTlp}K+LE;c@V%;yt~~4UsF=TXs7#~JD~<0?M}_gM=?V;#(V5feV^3d? zSrs++4o*i2b)TFKu4oOK(TAlL(fs8!x>&}uawqC~bq?0ei1x#+BJRUC>AJEZ{%Gw* z+@|+I-Gq_6?>IYe>U&q`wJebOkg@3fp%Na^Tj2WhSo-xD;URlLLky@xb!Z6UHc%hb zlDfOoY*02U0w&bJ*$_hf*2hTL@%s!4UxceZQTSa(kFzT)@x3ep!};Eg-ntrJbzvC6 z=i8yuD&`hJ*jtY}>bk{vY2%ME)uPes#4NnG^}&)Bkw~I`apS@CR@fH~9sS1^1XG{Q zFdQp#y>UF7dX}xjah1NWBOAHEuq+I9E?A>8=K?lE!r*>=5E9DlknR|QZ;#S-N6*>9 zxQ9QzFB_R$v7`R{LSIDOP1g;$GL`u`^|$}`=l|+KvvDQLvJTU+c2WXPd~B%vnKBJ8 z7m$Auttni+b~*wskh@W1fp%k=8$27u!}UseU5j7zx9>@f=u@3_)g1ls<8&O(Pn@E2 zZpu3-i1C?{q>E@CfC^pMORT(BC+q@|@QoU19*1>z*f-w%G!_eclzT`qIPuG9Qh^W3PDX4^vynAQ~5%l83&<0lzLq;gl!q&3x*h z-;aRj6YhBvU)FQfv%Jq|_itU*A{aG%V(~f08aJP_h9cI>XZv{i(fZ=(`$#mxa5SY~ z-pC!)_MfdmokiYA$f74ma}zY8_Rfuk?1LwnVEcJ*_$&=UW4~eacl5&d7SuU^H5FZc zQTurt>x9KtIN`uvaUEYgeo$Xiy2lOk%KaVZaD!9I10$ZvJU6Ph?x=LzG!>PWkyCoh zTHo`}G>qWf=TBQh?O;nc6fw@(w^wRQ=la5{2WvfTv9`q*UuvDRmyWG)DAg8h_&+5bS6{n_8lfqgN5R~VF~-*wa5`r&N%5Exn4$86>RZ&L&DmR?fduY04< zF>1(*O}KpB7uj>!e{UJ0+3+F`i>kQ&wV&O#mncmFCSeSFK?h!FmA%H)@s8&V_t1I$ zospA~vo8)=ZEBflKRUvdcii%odd;4yUg-ZM4%P3})?P}b-Z=Mg;-I10Mz-{DBzK^A za)fqPun&gpjKwLR3~j+tUlhCXT^5J6+s65`M^5eH(EHkTKLSuj?ST0G2D%2fg3x;; zd%~kz>WpuO;K;IA6g?TN^W%JQaf3MQc{W|QBQ63@nX9zF6093Vt=s_SoL3@d>Q?@Y zz@zc;xLYelH@wfwK;PZnh%-$QT zdsvre-RwwgniZk5pW}z0?dX#g9H855?T2~q+529cp^GT?MJ>l*cp2Bl-mBi2J~j|P zoaSOqQKb~`IqNu@_GK5H+B9i&TXR3D#P-|VH<0%gv#d1Myqky zZx@eF-76`cx5uGhY#a_B*r}gqVvR5_YUriS)SJY*pgd!{P<7VlHmB#{6P~xb%=D}1 z?{LW>7CUo?=rhZ?{G&~TS8^)mT0(1S6m+VV8#2~`NQlIfInBJkp zv^d%8{Z|CToU_kA1MT(h9|Ez39tsZ@Sn3NN`@^Rnb&T`J>)Y@0g-J#PelH%bZ@APO zV|H-v7&uaIGnRf4^hCIk-d4Xj-xGfh2BCjk2W>|qPwa3GfL(~Ku4leG+OtlWaJMP4 zdb+~AtqzVX zhbucB%&?6*iXDy`C||djp&4_qnfcX}rhb-?%nf`*59K8}p;Jf4A^n%BVnhwbJNr4K z&$Cj3>5&)SF&5G{Qh8J8f-70n>O8(knN`sZu3hL+{$P`Gg74ezWAq-aC>6_&w^N5XmoGVP^^9Aht5-?QQV`eXr2&&HKEZsXrdJZ-2$%50Ay7it?}>dhD2lHjK9s*WhJ^`P#|O5c@Spy zqCU@1@;TEs!6m>E4XC&7ReBuheLcvDcSB0qV$H-MvDkFo?yor4>9JpVSj!xV1BtWE z9jN>aG(#Y3ZM3eajM`_0M$w#6!dTf6YKZ}p<4~*J9HmlQCtR2mhZ|07m2+3Ab$NvT zq`eO)%QC4`*PmzL`YXzLVvnEhrPqA#Z%SY8^X?`w7<9g_nBhb%tgEblpLZ6+et2NZ ztZ1x$IYL+;^TN4_^r`W36Ad`y(`%w(y=s;i!ZS}dESfn@x~TKhA1B5}W43#a_g|BzU+axN!+`!KRqHVe-x|E z2BG$dD0B<|Bqk>Y;V1nR?8q2+Q5pcFlyEd29xL8A_rs@3p{V?8h4y-;7iL@zg4eLR z*w)+~Yl#=!s$T}5Z!S1c(+|Bn2`NYOL*Fao(G-Md_e5M@!CL zeY7f&< zT%xbUqAyC9Y-*K{jzzgAb%hr-tF^~tQ0rP3(W=xHz7vU6TRuvh9z!143(j{=d5H2i zh;dpGjRp1RiVpNi3AT;KfCiaj1@}&S(`b0j+b2AXsFT)*`m?J`L@e{P=gp~k9(_;D zeD9A+^cQOz_EwB%{LjYlyggY?4kI6PcGoCmC^hBQc7ga_Hwp&}jAU+M5cx6ms&MTk zT`fakwmAy9(+0~2Ekdy~BMKHvd&}c-#O)l9#P8=-WXkv;ymF&wmY;=)IN=AAH(@CM zVwvtYYrP6%LoqSO7ROROi2DwN?}1Io=|uncY7HJ%?x!}>$%+hs!yd}@wN0gj4_Q?(zjcp%s&og7FU#=qo_qp9`5jOzm>VK zoG|7=EcP{SEH-U&MklLS1KFq=6*E5^UmCy~6G{ganbsMoKO z{P2Jt+;gL_sY-3xkNKo&izp;DX(mS<^2e3)k?8%StK81LJ?%s!UTh?^aX<0Z%n`qz znk-kf3_)@w>Yq=xkw<5TpgMD!X&olWxQJlP*cJh&&{p#EU3zA^g=1tqS(n{;$8`dmT8;gka8ULcy+OpnhU5`FuHk*V& zI`59cXneXOL=rtF-b7I!e)er)aM2qbM$!Yl@;7mgIjKR-XlzKb> z>2f|82Yn);9~mkwZU-ahLIm7%T;wm0AjB7jV{gyC@@%v}X0Hjui>8IbcOUEb71Y)) zSfXv_>VbepAsG6$2_or>>iNze2IQEU(n~Jb#|_&$I%-@RM57&X)&H$iMji=O29T?z zj-sASgG$Pub7quEjmO0EkMvI)n&VnNdl5a-72~Ux5c4@ZxL8@lxjCWyEaG;2+ljM( zobZa=^O>Q;MCNv4jAO}fvUC%-IAJ4&3<(C1tRI`sj8SnbV{&-+kPghyB$I=2n zyxZ|pH=(v2MzTk=={Eg9#@N%>fU~Y1$*6V69rvUQ3P))*b>~NMW;ElkIBN!4D$}=_ zqnP=#XQS8p^inhQm`CoCa$TR?$sE>4;;_EwdZi_2ScdEi9ga5?KSP|bns`^oqTXUg zHD{RCVZP@%SzOuajQxu^FRK(OL^|=t4Pp`9dZ}1V9{PFq70bQfDr%97dXBito6nDm zBQ_qm_J};1i4R0ki6;tqR@Zp{TO|MVLT%Cuki##hnZ&p^8Sz^J~I2^jyRE$e@f=wo|YCTQF zje5@5*)k4k=k0|d`MHO(VzJbCrue*^{t=yt51gDKey?|>b_@AR9rDEO``j~A*gyYp zRv2kK;PQ=rVP^jb19}ZS-9YZ-ql(f$k$#Sh^N|5{<>fzK*nFA&AL|w}B7{CCmQi?q zq@y(6>W$Gd65o3Fk~{a(7qUVmdd%u0TekJa{I}tFlhRe15UaK-FbwT~w~#G}^ReAb z{DG`34^U5_?}Z>V@AF;cTyeoF-j}hfkBW~O^dEWVkMYa=#pKWSsI2ivixFLvxYf4E zedvdQTcG>8&IYYov!~PUh0bV-9dXXy7;oPigRI=~r@AYK3@b7D5*`W1xWD84?3{6N3kP;>{lNilu>c`9a@C=5LQ58_K3pUPxpwBh|=Ap1mu>!OBY!d;DuXx^o%&uLE4S>#3iS2^g7iSQSLCL9`q37?d}q#nJ*zw4#~n{N_v&!Y-Q*#C(xcY>9cM3> zpZe9O%rV7^JWXAOzJED$VzJrtY>=zhO*cpLcht=9yHiJA70t6y@*-wghj-( zn>-mUYIkx*Kg7ZBke|4vP;>i4ECy_!FRHF^ftXCM*xU``Uv0giPsvjlq!+)BkgJ{? z1J{MuMZMSLLAQ;8*NG3poPN+9Rq}s#8^~`7o`|-HMw=W%IlQ75c3-FNeZ}Uo1$~XZ zv{BS|Xe|%l^u!m|-e)?tlA4?Jo0t)S)a&)-s5K^3`=8tJo|gkrMUZ}GyH z`MggsCa9mq;YH3ka4V3U(syDraRRBi0f?LXObpL)K(inI)cQFmTAA8mD0@W3TQ>`f z0XC=->JPvBQ^i&GrSl~<(DSb8%Wtwp8|q4%&gr20Qp+8tcc{-^VeOCy4iOmriNX2QR(GagPPhHX`#2s!SIR=3F6XI>#zx?rhiERx!965STN;_@$gwAm@5L7p30 zuwGtp@Vcm3?g~Lt?`OiO zqchI4C;PMiYjKZ#c*Dc2&)5AB15b0FawGu#T2+v3-tesG5x{w91$j8lmb_GdjM!Hu zn(Sr2kF(@=eeQ^-{j8}AO>9s}y0~v^i=MlEpa!eT`d4na>_R>0Lz=^ur^0c1?BDrD zuUsE}ZDEdz#A{Wm*g?PKH_vCz{!Z?9({CJSj^T{+DZhnE6TKy#u}Au`e>IU*(+QIf zQCBOXlNcZ8gzFmC;6p}>;?GX7lChZ8i2gpj6CFpy;`o>pv2C6UYd4s#irgK z@it>dR>@ZLxWgKW6}~ z=yz|8!*=93XSb2^wH5T#Up~{Xmi*Jz7J4rqY^bqItl3ZBq6uyY_ej;a-(cQ7!>a0Z{=ko-qELi208w>Y^}vc7Z(JTP)B%gta##0&19<> z6lX6Hx4qoZhP7c^WrH|4g#J0~T?CHE7pZ#g^AGemu69%eP=|ju=&h$F2s})Kk;>o_(@#o?bHxdu-PIWcsik6 z&0v&`KOn|Dc0}fmK-e9=Aq;Cd5=Rq&Q&tt_rs4M3RfQPew3f2m4;$huiHB%BL{8{L zoO7%{3cbh6jz_I9OZ9`c=V)m}4v~&|&y!oVrBPEi7;`Ye#f9LbUg0qSj zd8S(886rP_QoIx=tk5&g4eE+(KF;hh^L+l$ur64&c`VBO(JRJ^`P z*sOF%)rS!%@Ln&rSyT7vP&igPEEY@rT(Dwb7?!r0CB`x5jNBQ5_EqPIwZtnX4kT7G zKSQ|fal}cU&j;on6&;8xm`nbWgSMP}{L>DBy#gRFbd=q9Q9FWn;*BT^>3`k|R-7e= z*oDY}4p#Ve$PdjY#mE2~8}u>r!9;`MGOs4R&#t&)P;9z(V8sZmX!v)WC+AGkI5N(U z80XuS*PD1U&eQkBqvE}4hcApV#~;SImC0*;#`6E$&!sOzl;#(xx4?VwN2?Wz=|CsU z7(yIo?p~$wMkll>WDVZoqSBrES2cCSa##MO9BEF^NA^0VMAQ;(*hg(UIR=3#ZN=sm z^jW(fjc;cMiV@%3h?ikMv#+@@jN^X(CkpK<+KUOV+;Pd7HT5`Ok@=H#u09ggl0(E? z?&qMF5!i9TS5#vi7F`k!#~ste!~_>SCr)KWA6dhb`j*u;fB_xyjfDZvU`vGSEeS9%+RF)-0At zl~d#lOxoy&x}huNlLgkeVd#Ta=4L)-) zXWYwtl;`uDaO6-d3{Ivhzk1O>T|+&h+8dN+WzN`fgdWEY^va%3E(n|ugQ<}>lp9}| z@3GHpX#ZJRbdC22wMY8=Q$?6MP;2WsdqH^(L_2ETmvf9lqk}EQfhX>WV4R2aYcIaC zw{YcM1PXmyi+dq%n0+f8ONJSW{tH}C*Nc3u-BrcucTTwVBm}W)BVqW0I@rX6JlbL= z?l*SC+YUhpDO@eK{<23@L+Vu(y%jqQ>~PvX00YMKk?R**<0$XJVq%bbr_6xKOn;P~ zT_ykAv&4fKKR7t=kZoeEu%?JP{h$@nhI8|?JBfEpsIP2s3!{(5w7=q9c(P3MfN{Rb zIJe94*7RjwH*PDV7)0+v!%JyCK>{~)y$kCP} zE1$Y^!~`3;%oA||oN*JwTIJ+3aeb;ShPkoFecD(a5LQ^inPR4pE6vbf$aTS~(J^TGd#`@u zPFGB0FZ%L8xUzD@^XVp(e!&HtjW&b*?#RTSD>uc(CYamPEJ&y&Ne zDmT1Y=YEU8hgX%9`~LLVd>4)%vp(tzh=Ccy`KjxO8p_5~PUusI*r471%1nPp*lq}> z_R1$^q^SdT(qBHpEL^yqv_tuxfjHChf#{!LgHHeM=k$RxjOWAp3+yF5m@P-TOvl}U z{^Zu~kt4=WL%~O1Y;(UTBkZPQ$6YUM8dWSSnb}}TW%^2bei1cad%^nAq`%_4UpG=4 zUSy8zjB{~!scBH&9Ak;utDNGiSv`U=XPi%MIcp+4Eis;Pe%ap7#A5+-PR2PsG10{O zxg+)YIV*gy*d%zQ6Mc~AiS})SiP3#0{2367Bfk%sd}aTCP9ePt?p!wUnNKgg5%k_| z^})m8tH%Z)HF&Ue$RH+}bxL0IRN0!G zoj~dZRG4%~R?nV-IZJ)<$mhN+(@sU(abAcY`A`n7Is-GCJHg+0sBD(yOdN;BUvVxd z@YK#cLXS3A*4=3jH8U9J^NjPdxr;S-hco7thznX|teN9rN#1rGMy(vEc^T&jAI7;w zlc}11*SVh==S{1_G{$|Lkj@!aZ2v`?A>2zlIa{%d+oTzo%-Z%4^|B5tnoU0BOAcc_ z=yyxw;pqx_?%x^Kcg-W_o~x~?i4j#p>+-@4Em@m93T>+0#xrC!`}0#nI%;bI@iL*PckYmg{aoAuvZ0>Xz@J!y{asfHr zQ?T{09}@Nm=~QzvY7X$FzTrRe!NAFgJno6snV;nPhSN~Rn%>oOLS&s!HfXwM!e4P7 z`gXR~?I^JkjI%bVf_5e2Jh*^-f2%E;?u>Ijyl`UtamCbQUB2B$yJmtr z-m*?97~`q!*uWkAcy7$L^47}kZW#PC94Q?wwau(}&u$4r`ubMdVg63oO+3@~Zl_EV zcRFAyaalF35|q+M#L+R%DTc#E_v1EbZxl%G@i~$5dV>xWaG+ZTydzMeC zv`%AeXA$$gR>+2%EwK49JxoL1$ThAOXf)9i)mHqHPa`M8`LF{*E+)wUtLf-;X8d1q z{%pBYo5gb@hnq86fYoDZ@{+eDqA0yyhbE?+ezzyr!Xa4tNdcJQ+dLa&+wMDZ|ktm*|KsauiwrkgW*n6$h?3tW;c>;2udtlJ+Z!)5@1t#~Qe(ps#8Fyq7 zTr_{j`EJ@)t@j~w7|!55_`9w4(>F8hB%Z3X;TcUY_C+<{=!gE;Rx^Q|*-ylFCN6KI zsW!zC?%U$9M%z~NbBiN-b%}#ZjjozW-yC7NB^ISk25Q6{Cp>9Sz1fOmHRT67qh${J zNYflNB@JEBs0T5wtD-fU>fFxk%SLw9HfU7|l1 zdm6**R(2fLmuZKKSrI>thwrnXXnE4%JqQe`&Vb=28Y4+w~J~$Amb;=rFWdNG=+$kF8kiSsi53~D? zWUqQtvHG1KY!f|YtKikZu`fDo+bxY(clPmKQjhmbTa8U0 zOWfpHG1u+>;40*kzGTn;-XNpG4J#b6t!W&R=d3TR^28CrD~O{jcvJW~i04K<&b~z} z{qa`La7v58o(wa6$`5B05LaAdMWp`KEB1UiOIuZzrhjpUx(#iKg|ptSKgfQ}$hA=j znkV!Y^lN)pk#o|P7xmv6^Y1p1==-cxpSs8mh4UlO=Ga|*@3rjvhJ_=l;F7-HK6;rE zhkV}QslMnO^L#&I;jDTq%bv5QJ{5#z6Udi5X^ZCUImg^?Eh2|llegiIb3@WZwI9>5 z+rs8+w)Fj zkM3&2UdkcXzv;1@TTPg(e0azn+E3!#lA@GaoIhNTkH+GprAh&Fyo0}@;GMf!d8Bj0 zk-#YY8GKMVmq<*+SbMXLz+?B&tujrW~Yydaqs)$hvb~37GB*^;;OVhE6H< zsmJ)qmR#krg^FD`->=od#OWzY*Hn8v*b@lD%Qux5<83j2H#vAe>xpt1R?u?RHM#Q) zQKA2IL^t+9V1xA{b?#)~wijyp-4#hD6Om604MOY67q7=*<}Y`ATH8^6dTWk$?Eiik z{7e+r9f#&iZD7BBFNPc%i`B#m{C7UMd*3Z>%b`wK%Kme`V-vI)toL7&GquFyjb?TL z_2)U0eSCFU;ksgPOeP*IWo0!bM??HiN<4ZynkWX31E{mgIz8J*373neMIJwf*w<%diys)!rEH%N7DX;f>;-)Km&fOm=uWNc@@gDl22Uid&^ngA{{=&;$ z4Mc}^9yp+j!l0avVva9;qTM4gJGYN`LtUu=y9ii?_YsdDxFYW!HHZ(k5?#%mG5u)> zs!XaZ20nH`3iVu~#=TK0T%`}1VF0@HJ*ONzV~3d5zQ|gF`1Y_d)zs<1FhFx{Qmp{}A z+3->`VU7bHEN4Af(O7@$y*JiVKcvyL;fewIP?dAzaj#~wl3qIyKExR|+>x!UB&H>m z__yr~jwlEHebBdg9F{hDq70>9aEH09U(Qt$rS$L9at>bEtch@F=ZQ`hF_5Qwh=Yeb zu&*E*BW8~jx6|mg-G;eGeFsr_u?HNIqhRY7A*OhGV9&)!jQf@>j%{(r`R5V%?3XOw z4|anlHyqZVe8k=AE?Dp@6t&7miaTE%Vg4}~AN4)O+s=+?d?FCz!&`~AO?lS!W)FE( zMRD?t1N3Fy*yub{x!uG8XMH>{!GEImZk8QBl#zR{3(zgNV1smGgCg2g#8h%pmUpIZ z>9s)QvtRnTa-K=DtyQ6u6>kd^mhAr--TK{_H3YMT5`YqD?tx)cM37X$?o= z?dFUtPsj;hK2_XoMJ~L~A1*^X35z@ze0jrJqnfS^w4v56`GouH=W1Oe-EcC<1zrC< z);%?1pM0AWemtPA3H|b{O)iRXR=Yrw-i=M)3Pb!mgh(*aEe{IxfMU3&s zF%5aX_Vt9xP+zP)!+M;q!diM{|FI*^Gi;=Y;hFb`c#pltPU0XvMt9EPOnhIwm_W~+ zT`j3S+jg<=n(K*?tRIhuWQh>YXPJnFe_^L;-U&h|rSWgE;rLtp4Z*T3TI^ZA)}HhbNU>#12+cZPQNeDdZd zCm?k56OH74?q4AR2De`8zm4;uS0uGK&gUt&s)XQ8J9;IQJyYI&3dEwD@fcjAwiro` z2+KJ71vl#=jL2cx(t;d7&ynIgd$dCZb+@{>h)2XbG;oeXxJ8m^zuSxZlYPGm%R~(8 z*DI{qi;FgjRook`IrB2we?aK#c;Tc`Ed8=e#OZ!s=vNwp$u%E}1<77mxP|*arA)ZK zWbGSH{` z%RctQ!ULj&F{%HHy3L6tB4(2pLXO4KPwIhq$otfAIdjGQ?;^7*J1GAq5e{IbLcV_(K#NJ&5WXcT{!cxpTQcb9&t z-snaA>dI#gr6Kjt@2`l0`Oj}+>lIHpRgL7_^M)vj^unlS;rL~-M(pQ4xk9ak^0KvV z4Y8N2Y{L*$+Ygtz`CvD5OM~w&rnN4Hq2~&Zzv6t@@0IpS4C`_=0UO#|Yu(ug7@SO< zG}BVe^sf%|`(^*Xu)Pw0*9R{qQnT^H17*}k;)PkKKj>m8>Teg6 z-Mm9bpA;9mc;iPx93mE!id$X1ku{C@kTIXd9dmDVXYILTdKGzhi8op>Zy)%vfjq%G zI+MBOfIaQx@gN`EDNk&gDwzeNFyOOV@ay{;et-St(`nvz}2okL1a_Nf} zJiAWjjg`55eGyq4gNuWD$j?K4P=5*cWomU<<(4;gzlp>eWuCZG&l|E9c|fbT>D=r* zp4*?7UD3UR8v=a`<#CuY*)Z{Ebih&S3L`y8?MEIE%qthJ_%9FdVueGG@2 z8m|uY#v+fbNrgd*jych3?sEgT&&pMD%^D?AceI6(u=@~%s}|Ih_@)z8E(Tx=Ir#g! zc#5Pqte<$c=MP#U>TmFc_ttpKZj&!6a&JE;*Z6qy9g)(V9uO9cf1k?o27i|tz2c#Z zYa>78d!u~gc=$S-O4CE$7{t7BpvFb^xy`jfJoV6K%ZwI2a3d$Hx&0bBGRlXuxp<6p z-Y2WR@xfl+Lk;}5NZSPB@J-o6IGiR&_wj>it9WF-nJX{c;QsqXeCFN+d9bBFPV!89 z`7BUgE>HbKV!Yc`wUL3rei-aVZJAzO<>P*Q7VW6f?YTg7ZovIa&PKn{rMlbGJz&N& zN@=kdTNV-HR3!#R^_QELZ{?5Cu7B(09-9A7+wq|zy5AsPw0M~Mh&-V=zsbF7JwUCY zaYv&k+~-L>)UmCDP^)SpDmr&nJGY3yw-$+LxvaAq=@*Jk4XD!<-9`0&7KA(0o0=Ba zT@Bj(uPy?;x%>A~7d9cruE`>|k@rZQ=^64ov5rn^JX*Y8B*jmE^jH~> zYm4W|%N+wypo>R^FA>t>BE9L;;&9p5RDNwoj59I%wX5@eeBp)P#I`Ln`lYK!?!19J z&ppE6@6WWrP_h#z^|as?L#A;qY09`| zo36GNvi@p$>z2HwG2Fxr|zxq&T_+28tj=Qav ziy@cc9=$o59#Qkjso#H&8Upops+|q|V587Kx9S>of~_xh?MTFl?(@}_KN#B#`g+`o zQoEFpH!&v>*9#of+Gl;xG9(chBSxz~$*0(9Pwl}Ez0~M|zNkMo5f_FwRsGg*5BKHg zUsg~Dw(vu{riqX#_hg?uKlt!n2(&Je!LI%&;_o=5$_{y;Zvc#osf~PfjlBLP0H=47 zbNzj>v>6kKCZW{0?vp6T5ZBzU6)}hHhREwx{9s&(Iz?gDVg~V+^Edpfb^k-xsLU1Z z5*VvPd-15m6&0p(@BLhD`cEehBvOayzxhVxYG1V;rcUVblDazcZPicne9)2pJ4QP! zi&DwG_>@O)%6Bu0j!*Z)@ZX8JwXbJUK{ETh^^?%Zyk610eIa;TJ&F2JKh|49A1rpMHNlc-1fl=1JoTirO#56(B~8%PJb54(LauY{T*{tMN$7QVQy zXMCo_s|(xu!fq$EE-SgJ)jIlO)mr*34KY{enfW3pmA>2d{nXxRzDNkCuHCKX>Z^)= zSnWvv;7~^Gq2& zoxBPDzPYuQOC331>-bz2Hkl)<{u78i#-ze;b6N8jd;I)N=TW=G*Nt9?OXohxOV;i9 z#aWw65?24%g6aodkVe1nCwtON3+8Z+_W#rSx;yc^w!f9r|MYKbr+BNeAAN9+`(eOa z>!Kq@UhwDMlVds*U9B5}US|{0d(AJ^`CBAXxjzTiJf(J<7LG@U=zo--r53&jA^w)< z%#dXD+od36FeYz@O;P=v0`Vn?aogEV?G_Y(w$_Qz<<(T5Jn_d%YGv#!crJ@}(I0_( zGI!?@`6xG?_xaSlxY4b5leWsc*ZOfYAN}pXT<5HrqK8@>gJ7r1LXdLDHvZwN4Ip+s43o7;T2I%E^ z@&ICwaDAX@i^-587g!}EV}0mE ztmizm$bvrg$Ae8r5Z6~oj?910jhv2c@#)NZ7*(Q<)4of(fCVeilW}W$P^U|9U4s6M z?flqY`rkE{;X;E%WZx(+%swr|LhgC*$IfD-Zz{@j&*UA-6j?jx;x+f76eq>{ZL@Kt zGriUF-ib|}X5n%#`p506DeIP>iLQLEb2_z=pIRm3G4HtIAN^$$f9m3lPel53bGiO8 zJ@Kp(aoOHUwhv>DqI57R0sa^wMeS~!xH^wkB$4ORj$w$9-^t8R< zEK679(9Y+QS^PA$^~5U$zLQCrPU$B*fg7dpu&vucse(pJLg!lsZz> zJ{s)0OQuz#K3k6@EMC4u_GE5zKZBY`qur$LyBlVCB;#wPro3A@=N&c^Va6NusZ||e zWIPjv=UbarALoQ~{{Qml|NZlSJo;>tBeKfOY*;X7cDmL=k*p+Ct><+&E-C&BqSMby@8+{``Wv;s`d*al8q!1d6E$P6T$ZwbGJ@Z-e?H*4tP`Dt zbI<8RG48f>Wb8LHU+uE{uI$>CdzQKPe)qewxi%hOim2Tlem%{)Vil$G4jIM z|E9lcX1<(XJqY1dnZr!VmQ&eJc3wiC)V<4Oz-%{sj!nYcjd3zmOKjx4WLVnQmx(si z;C+ych3|_Ix7-O^v;GgS`2WQ@Z%KRAmT_*y^Z7&TIcnC05)}L*Cw*0#x}f}BtY)m{ zWyY&Zn;wM~&(dqR9Mp$(^8TmI`*6V+bwV2NT7I9gt^?HeKI>4C>z?mBsS{_cLJ7~G zm&019JGP{eS5Cdq{q@v^9~S@b%abA z^Y+9i8FzRN%5%NZ_O*;0GaG&QeHPVwCO6iYg%*5v<+C2ha^I6-%jeZ;LaF?1m`toS zXPxhE$}MI|DEdqtJlkt>h;Jg^Jfkkk?F;g}C;96asBwDfqneuZt7{%&sAJU9t8&2nT2^E6iz{(o_EgJWrm~X#OAn+0W(5d#dMSvN7;W0vx9tQlA|u!63$b<&~3a&i7J0sx6-Z53X-K zF;zDhEypOX)xzHDlVMBHg6p$2+NrMX7UDI3PJ7G7>b{k!c*M1%X)V<>G6i?J?wVLh zZI?d>daf^t?^4r$Hdb=I!u^$W_%IV=xvsMRzFcrG858;4Hilf20pF64$>;Um;jGN; zogi!29U+DY=#W>)|(&P+U=w2bVdb3!kxBNMkXg zwlkWXC13SFaXwS9LR}V?jcI)DyXL%7lL|_(<~wVvW^AiWFMe3_z>&ai?`)L@bK6<$dkNBB=XPwpFm6zi( z*GqE7sk^%_!4hO#?aIV95 z%A=w>t@&)UXAL<0;|DqH#!T$yx>EZGa_I47u;+{`lv|T>DL!QAEdLXvSmZuGwU(KeMXwDkBq<$y@JF-7EBvV$oMxDtj z^qy&9}%EtocsME$uHGO{$HrC@_dbdR_?6DpjxVEaEriNTu1xK#ig(a(rZ_?ny^^eP* zYWsRiki+$y{T6B=&yA7H|BI!GdfPP>eYj^X&*-A+N2Fi|^SbKQo2vWb=U^rCXC=J4 z8c}XGMl?x8(atjIq0B_BW;~-F5_7dZ8UCz0jJutc^@|wW7Tgadhvb-(tX=r|I_I~^ z0@l+Re2?-XGNpc94EElpr?d46`7oNADv|W6SezzP<_1IaGak0DGNd~(&iAQr9K2?i zyztc%?^-4x=Fk;sW#vi^Q6e6VEU&tj=YFn5?{-aXwdO5HSnxjmuBTZ|=K zulweqj=8=7^BIRu;SNN=;P?b`0PrnS9E$= zJ}UjYmqN=_tNA(bV@xiOzM-0yTaO5?i-+sg)tgp9%k__Io7B9*G(>Z~;nfngPw8T` z=YBJYPf%+VE`S$fI6cNm&F-E`Jre3tmW@*P*GR#+HtZu!@1@=wF$c%n^G>YYOs#!l z7NQtK?cvJmljNDW+nw=j{!(7^OU69bdR9M*6OT;;_RF}= zo;bgrn(!&lWRZm{a&GZ%HEXD9$iMbIn23Lh`>GRIQ+G;dPb_hfPV;kt-zG!uPKI*e( zSX#Yi(ZSFhWHLS}mENmso~^@Lu5-U$P#34J!gQ`%cRZkW%u2&LuB%L4uUe>!;mQenz?uAeYno&0Jpby#^;G%!(HbeMyd%-gTdX{)x{GK(=u zMCCp;)tk;Uk-)nxqRBhieLyl!4o*blZ|7v)6Nwnf+`eY51JbWzJbLl}${M^yHmC1v z&kw``HO!JzzK8x#_r6EtwKA$W5OMc7>s+x)cG&BONahJ+kFS*_>~DAb5eKF7e(A=( z<-=+5IC$u#j9l)DTIuv&Jl;$lcfbjAGw2I!V5)A~>4a`xiD;G{t@h~ZLVfkWb>mmG zXjL>~N;Yw=)Bqn9UgQ;1f(p!wDkmlurCurhU+>Fzxm8in;4yasynk6BcAbW zzh?IyE*0mXKKJTnX`zQ zOhmnb_0;6SGf`KYh`XD=%kM{%u+fCI-ozX7GxO`l{I}D(6v^)*1{%KOZ_M^fRGw%l@%O4 zG2duL1xrq^e=vFflU&H%q#iODkc$}|_GQaj?m`#Ix7 zucFsuvT>Ag-t~5F(Ey(kv}K$P)-U{jT)kynRPFaYtYUy526iWk-6C<8f`wvW)15PP z4vnpdC>9n5cA+4GICBCURP0Xd?yhIu-~XE*&;9Cr{LHPe=Q{h^d+oK?QpTLU3roJ^ z%ch4at*lR=Eo1wl+Zd(AlmdM1l8UDVW{UZU9T0i;evE6VEYHuuNt{If4tHgj2w(C*9?#!F<^@`VWQ#oq8*v|MfHd@N;b zhw3Yzq#xkoE4&!c?Rpuv<;pq)r+p^KL5H@?5IM*+_rh z9fyWrmGap~50>e<@T6SQETLCR5Bl+$mr4f2vg%S#^48u0slj{3mK?&~+Ktl0Kb$FO zl2F59wN&d}5Y`PPKhu1dwCHpI>{ch??wtFQ^J40hJ|v&EUQ4-KG54%T@J`ugFNbgO z!aLS!vyHdQ7Sx}a@Ubc`ns;KDa@uk;5*g>rqbrnQGt1GBaULzNRUVYyg+1T*(~D;* zZ%j|%AYVCe7KEra%B#p_*}TJj-u_KjgyRFLBvbB zukCXD;PgjQ9sfr59IJh)5vkVbUh)*aj7%YH)_Q zWvMiRdBf;LBBrxGSzyVX+|Egu`>jG+*TWA>Cr6I;#+xMO zgpbAY`)qHRC06yLpS;RJ>ECNJx-rh>^EN9vw*N2A;-ekPvf{gNjG@Q(U-HTJ%dwKr z2l8&p`4*Wt%Fp~X*2)(fEk9%;D2pY2>^8@X*Y&T=_lGk?-h&NYg~#EI-RUg^s-^TIKm zv*5!Pf239C$(8y`Ey4Dc(w_nq`i4`3u%#mTwWnXy+){-3sEHs4ug$zbKk%pCk-+*U7Yt#tpe8sGUD2f4PA`6ml{{PSe* z=W=2b_TBvalgX!L*H`JtWo%E|?v?jWUkG>JWlzGE%h&qMM?>a>Q$C6Eb>q2M$y}jY z_;o`rkNIrk?Fm*28)c*wgud`Dlot-S^%-21Rw)mg4Kir!@VlJW0UGx;64iW8Yv zi_G=q0}oVCyvW1c@KUOCHV8S-$%j97Ou9?miN#TgFrTtf$}v>o{pSR9TR2;4&spR) z*4g?}l9bUf2&?p{-(s;&s2_2x9$SuOtT#sYELCO{-bF+HUdv2#l|9dn;|tHBQTcpj z$=7`R;+^hp=&LNewH=N5{u+L?QN~*3z=QAmxeumFtxK!Xkuf}(Twi&0I}3IAT(7}5 zdGLoNXwJ`cTz*Bqay%WI&3WJXAC{AQFT{4{hwi59<-+^((CEK7Kba@b9We)Gd>00^ z36@VyOv4G{0Eg+fTTv?!WBHyQt2;{GGL=|8G0?&72FpcXILG9^oc2rH(}aM%5kRYD-tEfUZve2w(-a{x-n zfv+Pimx9Twd`P_MdHx3JcqMiCQxoA{w@~We-xsd-)V)uxEqjgiL%=0+-p0L>&xzg` z^#AkItm8LJ37o$fM?P_`O+R}5oN}~eoaNXGCFkZ{9AREv_H&<7|N3z>;5odKw^WI$ z%*S-b=i$Xj#i?{Vg87c$96wRn)INv1gsiJ3_fw(@R^t!j|941p#jzv{yZL~dza7-~EuRtClH}eg~$%(`-n)i|yTnnO}Ng}l7 z&E&aefyBG0L-@6(-209{(#Itrt;q+eggXL0x$#)D;IVW=N1YP#$9$$&O7wh!NG@w_ z)8|t7a98|TL(cZN_fqsZCwdJeqTp^ddC_DiOp8oHZj07()(kh8P>Z|6$sh9PQ{LFm zIqUz;8>{v#RYts6gM*CoABVfj%Oj*%kjg{Mp z^D&m6nYXN(5;bNH?l8`G67I_Vx1^yZ^YCQO$6Gg|RyzOA=0kVLU9IA9nRi^$jumou z>gy~%PW*H1d^v}_ww6ZZo~6giCcnsK8%iFOm51!T$`jv%xSzXVjBLHv9YI?YAu9c3 z!((p1g9Ln<*iJ6l>&h8K0{Zl7DBu6#j8FUG@$qwQIcl6E#_poFk@FwvU)eMiQcGdv z^Vd?3Uk+%;9qOsOZ%dVHC*U7-FrMlvq%G7`?8+S|`-JC`|K@S%Kz*TU4}xUBf8&t! zt!mz=tG7YX^vyyc<2*a^gR-Jg35wnkCv^X*^sPLPXvVob__8u~@L`xS&XJc7C}*R# z{_lOSxniaA)H@qL8IywgDT+ryCMNN@+FB>2V9-J|U_86MvQ%#OnS&a9zI3RAV#u7` zho9M4%TW3IjQU2*6~j{B%C9-M>Nh+U1{==Fk8ERL#k}FWr9ggc5rvnmv3(YAl&78# z!@8#_7{7C=?ABO~hO8wXZ=56V>*P<*UUFl)MaXlg!+dIS5`6bN%lQkqbGIWA{U42# zCp>n;dhR}V8#+KfXYGo^U*gfGypvpH;*51(^feyeRIcnj6Nksd!|SoW+#-D{ic7g` z@cW|_k~0Yr`xD?hyh7^UiaN0AiFng$uQX!ASa`d$Ci$>K`kZS=@2xmQT3N|sn~%lX zy;b=eo^5w1_re$95aTS2sZr{lcMz4F^M19jQ=0ScByKQ2NBBKf7GB?v0gUsQrJ@ql zX9G^~d?qa3q;wm&48wUQ%i1ka7N#sfDPuTrzrWJm4pWxRPcGi?rw^T zGm8QI{CVSsO09+5dtk1x+4)l*9uAV-->UPWF zGa@jHm|Ml!wQ{4{A!rtug2_Xd$R`@`!Y9||=gL{~&Xb(=lRws@UZ~tT-V@KMZ`0+4 zqr9~(_u9CNbR%VyY-sEXKk8oSJUF2uuX3$%l+C~i<%lj5j!PP+e zkkt!NJSZ^%-@kzO+-T`yQd2vvg z5_ESZxvu=(d+t)QzAnT(#!dYxLou9`hJkz@aXdt6@>~N4#(b>aIHlr4-2ZaRBJbYH zcNgxn@(k~O*HoF`Fb)fOZm&A&DaOQI`myF;{rrjCka`dANAdd&E|(|!#ZaT0y|Zvw zoDy%WcKU-XPQj4iY&pLu2wIWa^~)E_qs{!VsDgUk!D({)Kx%-n25z|} zST3CFj>mb_ah>ZZ7wWsBoSfeGFGtC8edI(72PMWcPFoY8u2LCG3%uJIEe3 z+->>4`PuMmzVh&LG$DoDS}RT~gWCrWLQOTSb#dJ&@tdACZwP7Sehuc=G6AYI;M=Z$?gsZ)`g zDxWpMmsC-kFF>&Lwf#(7TfR;8YLYtf{VK0DF@1M8N={kqgBU9o!wlKPV0l6gsq zljhLJDizJ#d!8l{`UCs8$b+{wYnEdwTO*Y9Tx2PdZzU~~G6|$q3 zCn6pt;I^_re&y%}d+H%S&W)EJyE`M3nuIDFZ@K-y8F1@N&-52|vcAVuWUYzEqF%k^ z$UoeBjZHw|Uqjg@c>?UM5^<^1S?R-(@z~7$Ch=*!G((z%ZoCJrH_et}ce|i0x#~S= z)a{V+jyn#^{)_YGuB8@((&>GXg1{{;N(;T`qU==)BI2GXU!Ccg$-dO97T{k+sxYbLmI#p)G6V;&s%eBrd^4Eji253qM&u zkFT*nwsUevcq{tIuSt}LWw~&VkDfIdezK+75p8D0qx&j*IkGW5Ajq?|8`4`Ytv?0X z>=R3$8nUlZWerq%5pF1y}R8O!~Km;cqkd+R8AI};GVGkmJ}z5KBQ{oZ-s*%Vxt z%U?6j_MAgMER}bD5*f36?4S~lAli(>YP^4$zs z^N0FU@97PHwU#Xc91&>DeVJ-C<;!(v;9vVB zY^Ziodj67L2K~vIf0ZpgYd3>@|77j~`AEw})`|n@)iUCoH2iKj5)M_x>t3%vq?~qC zBY|-)E3RJZIVA`NjC1SvyA}IP-s6n(-)TvTuO<;68Rt>nV-&YWX?Vpr_c80D6n0F- zS;kpY%SZ`OQ3svpc82RmdCucR__LPy)%2=7mG7J{&u~t@PM)gf?i9~(>y^9Z0fX5$ z@T}I_w^p7<4TH{(#H>6r-f_|oJEFNy@ok7asj&~bEn?nS*Hd=* z;fW3R6VT#nJ9$c_JF+$;VD;Aq@@_9zl-*1~{?orw=L#n*T$_j*#n+^HB{OkSp?Aj4 z-O{nQGoZZX-cv}DG%3>&?ITm*<~vFnc+&&ReCTQNwOCqj5rgaW1pU9~ximeU&dVzpm%G zZPn_Myo9@(6Byf035Vsg{QmXWYt*Z@S&r>R?@FHG)t55mvRq-n?guTv_Aom?^_K0porD<9m#etFz`h=)~D#k)?dhBNlsEx6f|WPkytI`cjN@ zszW!~S4-Zn6}>6@w3k!4r*oR$ccIW+wmIR4zw8Y&r!|m$-F#4;+8_z#b>zrpUUp3~gWVIqA%hL=m9zB;2XbNisLd!?w(PH5plEbdpjWVFf= zjknY9a`6nQ-h6t!u#dZ5x1Tg(ur~(qY$wO8ml_Y$VBNW@^OTPCqdy;@h9l#APMo7; z6jS$(aXwPLpR#d5FqSjUks&peY5cA_w&J{R)MfdJM;fZ}?)$09lWn|H;mtGbcx$EH z^$zFo%nxVQ%#tnaxfjked~=|`d~!Om9M)|8drg%4vBrNqfpe=wOF4_X^)WoFkw!h_ z0Ai5dUgT^9wUPI5U+}+K+jY-IvJbUIOPE94;|%1@|6;I*aaPT!AwR4}&!7*SpZ577 z?V(ppBcA6kK5wPD+;LO5H`?ONBdIsF*WTrD-qi4>6rALP^jnFjn0ik7`qhgVX(GCr z$x?@Y)C_b;L`>NMsZ!4!OQ=^CUXdfMzT|?&xk)f|qy9#JXKZ*!5A=Bf(vb^JxYe0F zir3as+&35KXOQ#usIAns&T_A4x9dahw^Qu8Xq~Mv^4IiG#{Ww zZ^qeT@H6@0tzh^u&fTu0~ZpSVg_FF8ZnLaDx7GL#e0k-0+lnJdMfOu!PJ;fh~T zl0J1KrmM-VeeNSQFxFrQzl#B#out#pqIrIKKL$;eK20N!o%M6-JqM`=f98^w#B%3O zl)5Yoz&~#?W(CwT<$3P=YqWHzqYv=|)?@m%lIDvSnsPppYzXNe`2Y*4opt_- zrPSKZ9kMOYNByDFr$AS%vrC31VzAVQIYf`U6&D)}kQS9V!*vjFIxgeO+GF9nNVYSasp9>U0S=1d%FeXIn*o?$Inp1 zVgvWlLL$Y}O%rjnW-7h}b`;I8voGw<+GFlRofYo{1HLa-_cC-n_fmJwj699fI=VSV z%oU8=f8Xi*S_x>$Kks|^k5!yM_uzYRwwMxUozXHL8Jx3hvMaK#WgHJv-k}lR@2!XS ziN~*r#Qnkyg$c|X0erqvT34T#^@h4)81L*iKOc(C(w%WgN5Ahs^`+rv&gjj*zq8Ou>etv6M-14< znbncL*YiQlTY6azN)#@0A9k>Q)%=Y=PHu<)A9vTBo(^Af zn4g!-vL57}M7?g#P)9R{67EoCH^06Dr6B?5ZSLS?rbC6vQES= zp2McTZi1l+cO3aVb4Y@aMttcnzays}i-nKG5^VVQoO{1kn4}{Y%aXjN&%1={#B!e4 zk)PAJNa#v0lcLWB|skt=kp$itRVtvrM zt<;KIj4x*=V)yn^!7VEasi&&e8*k?A&{fo<2PJu`zWbhNJ(=rPGl!7FZh27~j61wT z#}}`)HtCRry*$sUzx4z|a^8~|&(2w$gmKsSuJEir-)JlNuSud87CCs%K7u84?b>7>^d8`b!h5J0sMHb*G1`)N!v1vRH4wO&%e= z8OOTr0`e^v8?l#pXoL{fss)@I&RC;|PshVidsi~r z&3G(~`xgu=Yv$@LM+94XSWMbS50?+Kgbua+;la5{LG`cJC6A~fKZ-j-E`GYS_Z}!c z6bI$O5^?n?H@w*%2a_{(rD4ro;9Qg1^#dHFJ58t?pUwKX?;L6SEEmioc6}-`LK^*^ z`X1Z?570dmOt(cK`9Rfvkm{wn67DrmIY&R`SC_OGLbwY|-nHB9u2yT(f)UJf@;T|G z^^*OGNclzn-qWtaj?3grG7rpko+SJm$k{m0;j}!Bu;d!|q4~R88)XU2Z&3%A@f=;b zLkLdPU^MH-!T?cdnNB@L;@gK0UKRGej>Rzcp06w32zr^ZC}f?M=BtNn|5&Ube=9Vy z0UkugV!9z`h|St!%uZ_dFy==pyHlqj78N|(XQV;o55~fsxqaq)Ym{}4#VvFGd9)4O zi0?Tx=9&013^fo9y)7y5avwy$gh;$<&f5D>ODt#57OYsC?lBe4 zc?KbdHP(gE-NcZu+`rz+nP8%U^prkgKR6St-!VYyxXla4*;k@xykxl27oq%)9^H5; ztg4_loJm!DL+Z3&_xx8dD$D5ItbbP9*F#OuH0FY{Q>|9`urBqZUV+|C>&)0hl(7FQ zb{Zns7Lw0s${O;7w-E7+x<0J;dgm?>dhjz{n8Ux+-y}rR+vhjujD3V+;n%M?>|$Oz zV|!8PP9Mxr9rqf{UkOR$V*kf8`Pf_!r|-nz67S#X;~OGpe+<@f-r8n-d+3vQ*`6Gj zz5n{auQCP?81qvSu%7pMYo2Y}OXCq*KbE=*1$;AD_$B;8?#lMriYGDfX z#)i_fkui_`Jrj4gN8$==!mj4Sup%xT&v~xKY;6da#nfu$xmppEE&Qg=L!%KXcv~<< z_x+wfKD?kNcF{{Qa;PtSZOKO(=q>fm^TtqOCWU45r1tcu8_bzd;}zG1j4lxvak?sA zcckoq&iiXHdY&e};c-fPmYC9tMJdpX*I2C^9gLrjDY%~b+bv=H6~Mvjm&w?E9Eo>W|nf-1w=%GS)D!SDqB2660{5`!%Ic9tv*) zV^L!n&+3%F!oJ-x*pkeDx1TYN4~ap|1mc{d+G4L!47}1)(06hl+%SoO4gcR&4Tj?Y zy#;glE+|n`U=??$pksmVCwl_NR-f2iiCs>v^Z_{Mr|m%|a00n)gfad0`BFLo)cim>v6O73=Gd zl{_a$7he+RRQe#0{aE8xzETJ^WAh6V(YWCnsZ$qUxId1;lM9E0w)E1v`TxV8CnyEF z!_>pGIKlVG?}RqaRt?Wt#Gfk{S`FzDj0Ah?_Amczy@7RFDSyX6y@`Ta!`_6sqSuF1 z;raw>_SENYMTd35Pxf>(S!)#xJ1ksCrxryaH6?;C2~GdRV$?kPS(LsLoNmS7IBW7z z)9c_AW0=k}V_CO3ZtRGLXid&QqwZ)wCmO3Kke_U0jW3I%(IP4Z_gXu^bW=2J*)Mp? zzSw>u8lQf1cPS(eZFZ4I$5=h*{d_t%3PTxxs~W7I_C&yAA@Kxic&PS=;yk$r9j97j z?-J@(dMBbz(htF1&mZ$vkiT)pQgEs8f}A9WIJT5lou|}jQlv9rUTRoM z9fpM`wNBI|d8|pn54&YnF~-4&5xC2r_}ki__iEnl6u^GEV8uSzwhcL=hvy1w$uSo7 zSp#?6ENESb>GBM>S*H^u-giaISzC^{Efglj;@(Vhs$G5x{U*d9*OWZ=AN3HQ8I7Xa z)N`2D9;Usc(TwNBb;dw6Y7&iX&PR$H*3evj3BH~2qh~JtDeip{*3w7$9ChXkicSavn|Y%S zXX@W077J+)J@NZb3<|84TUWd4PVI|WOxO`FUL4|zrd?w3_D4I(;iD50?P4+e=X|N( zOGg~5Mg7|z_x5IIvTh%zvyIi7M@`U_Jku!SB za;>Q;>y2>sgN9jFt{>I^!wp&-`DguOdjcLYr~Q59C@ke~)q{0K{oxCQ$w!iKo4G{QTX_kIKyZ^Y-F74F;D*7Le5eB2%L2#|8uoJ z8g&STKJom-)QQ+NklG!@kYUstX)*pt7_PyMM-8B^?hB)}vG|bjM(9FchQYi8=G7|_ zqz+!_v^oYT?<3Uj>j7sa2GRHa={m1*MTbu@_&T|+VSaD#@Ezn#Xjrr!9UicIM)q4#r-c|MajVdD zD{K55;vri~h4rk{&NC-mtzRib&X2+R_sQ5hqz2NxqtS)<>A(q1V8D2eN~Pw^{_e<5 zjKYA3WL%H3LEqU?xI3R%eO(u!#Xl)RI2fe68_Bj?k z%tPVXfH*AY+m&-v=rkyS92y(!Eb~Wm&g|R@I>UdoFV=UDMND2@?4VcC&CW4MUh+sd zZ|j9ywfOUmT_zm!^*|~)I^(FZ9LxH-4mH{GPv?nu<~ZZE9K(71NGaIY35zzypu}dK zRCLQ3?lclDafz z#DD6H#1OYA=-V*P!#v=si9$$BGPyB)x3!UI!Cdi1FAcj&!|~xVJ=uw8{iR=l#pXl= zavuAAyb6g2Sk|r#u9oAxli~dMnyPbKRnPt`|m&OfjQRtjBad6Fa{k;fltgQ?V#5x=%x`D z9W~mj8Z|DGc%Rr$duE+um;mJfd&9eS!X@6lEm*(Z*qtogB&Iw54C~%=YlR`?#E-zTBm+ziV*M?rXy zgz!jP92*yfIX{!=f8dU{Go#R`2mRv~M5BXyB;K>P-^X6jt9v+11mYUmOIz5)Hh>$++8{UZNA}kv!iL{r~yE-$^d&WpmB3^#nL9)*i}Q-$UYT=12;IS0J6b<5T{p;o&{Y-{#KoKi@g zdFs!951J_{#@64q34VhbF$rT zp_y|WcaD&1aF=U9As#(7(8-Fak$g_JzrNKa8-7K=zjI z*f-S=bE3o1eNqRcANIkAz%W?EG=QPK7g|ma#hhE0g=Trg^c3zEb~Lr%A;9!p)DGO;^MH zM=~ytOt(J6nVmP|Y}UG(FtHtZi#3Sn-0dXf1#`BOPi*1L7@=EEJd9bJk&`7%nihw< zyw_YNWC%9&DA>>1e%+F7LO$q^#5mUnA9)+|iI(qlDnWq2%J zZsa*nZi?~Dzb~#N;X#jX$i7AI;v3u(={5km$*c*7lgBV~2ogCfOm3G5Ibi_u@~PqH z6OV}6U188U7{^;vk91T^%#EOrp>Yh#w=}@XhXFVf8-;YW5$=Wrz>@X!%`#(@eGR}Q zYI-JKGD76iK!~5h@aJd^+^`6O6ijbgqc6fo+aUN}q&A$Whx?lY@u^o3x;JQtkUCWC zEDA)e_C2j0Q%|M|cWD1_-e~vslx}&E3VMw5i7uwPVr>u_IIzEVb<)1wLyb`CWqq8{ z!1@ri#FlMfJYTG|KF0g7!w>T5mmIh5RFCuI?X35Pe75#+px)R(&PJa#5)7Ke!M1?+ z+TUKn%7Pf|u;#O)y>Le_25)XBq2HAdVbIHHtml5sp&sc%?NO|c;*wDP=w@NMUMwEY zCnmMBMCgAp7LAY6TiN%raAz3(%->LhYxNW19`n+ZUDU6$e+*^i9A$0b{=?f^bs&m+ zSjo8BX_55{);so_l3@2>tM%nG5pe6C1gY9F>-onb(4CxN;BDNRy7jorjs7n*69X&!AP0jKboIR=cO%P7}r6v#S`@&)e z;m3n;WRw5V@4UT`F)b7i>T94IJY2BTs?nrbEPTJ23m(1bTg^RKqcuZ>k)=T}?i7VT z0p`NUFF`Qd83AKgbHRi=L76M*FI(4ExX%39ikfsA2bT!9RVr+FLXGGm@|AuBz`2zQ z>N9(hb&?pY4>cn7J*?dOb3fx>RX=*nKBr6a_M(Om_cX_k)9s*kL}fi<{th*D{nmKG zU~V!@AMVp03ZoVoV?JW%Z0(?L(THh8OlFOjcH;6#B&|$Fhj2Ts#weT|^(6GE9HO00 zUAX3>k}zz44{eXb!PF;DL{vy8?dTT4@cl>5&GWX}kL-g^#Im<3Yom>i4MuKVYUf^P zr_CD`0*w-n@uxd!*Rf_B!hWsnhMBf2{fnc*$!!|mTf5<0C~mX2xBuN!dp#}$R(cu~ zp6Q}p9;e3L>{u-A(_EWcn>xLP(XdFar9C^_pE|dZ(EsrAsJS8eGoIAUYV+{uBl_dC zTugn#4K=ktIDcth5DbT*R!5Cb`D5Wp6}lUou^z&G*wku4&=0*Vn9cLUZO+CLe{i16 zU2mTs{#f(&CDi#R&#%H`&QlXGeOu}ot_AmM|BCk zRoFd?vy97EbyvQraG!YZ)8bFMp^wz~LQY2iscV_<1IPSu)D%i|-x9pJXF%V1 zr(L=yk=`g-5{x6yw(9PM`Cvmjf6orhbWZWUFenSeio-@ihrzyhOJ9k_TlKkX?TyuG z{xGp#ir9A4G>-Pi`xD2JQ_mlDskg458D?c!oA0QedzCm37YcP!j0Y@<+t}P0qO(xB zBUdj4|N80aw7uOiCW@H(%K^G?zACiKq4rRdxw`bQNHn^|{LpWWuG!FVq|D^J^2>hR z!!sc;Jd}h>w@&JO&QYtAvy8h_9_mzcRn&&z-0RXm-6rO};$56gY;P#`Dhooh#tC>9 zW-6ZSq@tEH=K*sBao8OdQhUdvcMnJLKV89%w>8MR6D7vP1tUI-G0&PWKK~qy_SW=1 ze!D{4uA(>Kn>d6;aPYJ6h~6;bc=T!JjUz91_wh?a+5tx?c-wWh)`5# z-`CJj5r<@jpyOWFn$bJNV3}Hx)H-b0z)n2w9)v~2i|fUtTZe3;mo(!a(7ZNOJA8Ow z1tH-;CTA61)Zh(7+Wu0Q{_#VQ+83vL2U{6OCLm*(Yn3=J$=t5npX-6%8QiZK-$VCi zzB~5lQ!n@CKke|b?l_&uo!l_`(KA*NTe&xvyI=Q-9F>cAm`|FX(+N|l|Hl3|vdv(6qsUr&9Gd<54{okUN;)Pt+isVb|FzhQ9Fb6ge6Of)WMij0D!QLzZ^E>;B zN4UqAy(1nEF3b`iALE&_ibqJ=3h_MW4vzOVxT)SQZfqBf+SJzWxUNWix|rT{?KS9L zr%aqcUClXX=*_+Rz8Lj}I+n}hFx2Fi_{<^<3$o&n7F$nhsSC&4O>sDPx}CKAKfG>3 z9B%jNE8W=1aI4;xDpjz?fuMHB`FW{Xb2p{Vg90yQ3*3pG7e zNDmE%?g0ghucqGpWtw;^kxrI z)KGM<9g6O}Yq#w0Dz0cizw0(hi0TLNxk9b}DCXxSj-r8)3KuSMA7_88XvVW`g#?(J zW{7>-s^F;QJZ{M*u@CDUfBSfxv?&xnj#NYaSc4f`&xp-=-mb)H&}P~_@y@_tc-PZl z;)E|^@SR|klfV0>SYPsb8iN0D*y;0INJoZ+VZB=%UMW2#5AG0YE#qK5-A0;3ExW!S zIMe;?Af09%Zr7a8?vo^=PmyTLo@#SRA8F0Ma2#qMh3xq!#XadE_`5p-gPY`8s}=^K z4*k@JMD@i7e}8H=hrr%48?mZD>Y@6hd+}r|n+cpf&UUU6=Yic8>gwL}fEVw<8EX2` zA8xIuGI^Z8^IyYW7igxG)l{D!Kca+d%v?hq}ap$$0Ru zo4CItwJte-&v;}bj%NNm(<2Ejz1_rH4^()^`oaBDqIi?};n*|I?)PPi*3@Osn?}y| zm|XD@_k7DP#>4MLvA8fxg{Lm$>_%0HON}_cen}4|?GsUmR3kQ8gWvIgMDK5EYJO_a zGQ>!_b1WF2_i)zLqK)*C=lQHE4ilUAm0pdZ)_Siv962#k8gd~VUbkbBm+c~5w2Q=K z`&j5D1xbOdy&n+!&iUaZ-EA9*b;Pa4A7?pqE)4G`Mq)~vC!$&3V3@XzK&WA%#rtW2 zxL6|`_Y)eyEZGnBS%mKkEIHP1776b43{#4dlSiA|1O zo3Vvr?KUcGd=`%rGtP>^2`Yq##N+7oM`E4pDzyHr!OxOkVoUPj!!;U||EePykxLwQ zFOK@6^(EUsD$H*Xhs~u8r5*iMIK|oFhH>?z=QjhU z*>}kOFgQ-UA@0=pq5s|xw7IrVJTr$rhBv5r`cn`myz@r4y()fgnYG?FPfRBc_;=6^ zp<;_W&eZ4q@p>Yhj=NK1nDL!57itx~ioW<@m3LdK^Jer7@T(f<79(cpZv6AW<(1TP z?(jyt$;)U=Zp0^snK~)BJ}mwh;EMjc^f9epyxiZ2L0vx z%qD*{>6o~%9eq~+&>MZ?ZE?Flb4VKb9BV#_*@skkTO%G{9BN4uo~f{ic_V&)J!w1Z z+gjQ<93RtA(!UjiTSvLa)!0~C85Ib#NyOYH*N{e2)32IK6g29$V%?scD-DjoUgfUX znwkS{hG8(BUM}W$@`Z6LYVWVyBR-4uLA%Xr_6ZK6{L%~Ub?iNUZMQm>JIar$!Ko0UDxCbwdjcz4_3Djquxf6|4ZL1qoJY=^WHrT zvCT1#VqsV)wS~z2GfxobE(}K6RQ4mmnPPY5SZiG(ES$E8H)B;;-8B)ZBa6ggomKE& z%RQz+=f#1hyl0zm=hWe;=;NeB@2ohM z{$-cuhhqQC6XFazA6&Q>jKk*+h-bMkym6ZvQI%n$BfWKe_`NQTnW>w7hVeYC!nL&! z+Vyfn{!Z4_{;vg}+w>SR4?_PtU0~P55A|mHqISS`%Nv|8JDOIFv-GKz&WGHmcI#3w zY)heb;6rx|H{%@S)=_PpeDWumlYc0?b(VFg>0O=-C;GxTR*OPM@+VC`3=`XOcJMoe zJ!6rV_;*n#d8|p;*L1dce+M;eiTT{wy;3~vuf|pOee(wG5-qa1&u&exv1Ot-$x4OF zeEQ|-u8KGNF>iB++N8!?QRU1#mpxtbpc>Lj*6qdZ<56j7AZ1EH_~gocsK*A`hys^x|#bQz`Z={`2V@c5xv7NmqHTTt+n9^8GZR3uugK9bJ)YaF8>z{qmT=c~{^$^Pp+gMDouNvp)A-}c1ntP&veRP+J zYqVQlxZ@M&M92H>)y`zDUUQVSgleBIoBvMXCH5(=I*Dgk`%fc|S991Xda!avL%pVN z^#jFM+vwd_jk;RL=83{7auTS$@apm!@$n)x{#GWUU+F%v@+fhtspP#6KPKLuslwH> z-05?@C4RD1VE{QF+eUsABN^M^GS+oZs!P>A2H|n%c+BorOY*ItCxwj$Bed0|{?Gj3 zYe?_o{Kw+LUcQL*Vy-xFT-3et!oP)42uwaGp7`a7R|n~n5}YT#80iH(4nyOIT2bGO z^AyKWL_9euiXq-O@Glr;uNCoX2K7S!a6Y$INC)u&G+1MT+f7W2FHWpA>ey{VW?JYf5`WV~)>CnnUUM`Z@N z!EtJ_rxJ>phTP*jvOs+KG#EWn*{A5O7q$D?3$r(D+VOxWFwak-PlVs>6XHyb3PV_X zT=2Xj4rFZK`_T_8|AQE1uEM#y>g#njfP#10L-afSHx$P?$p6ZO2XY*aAD#g~gsJ9=Otdw@X=BymjxH@vJL47Z>OQ_=joNOwo2bI=mD_deCHe?+f1n}#=>1-E&i4`gL4)jc;xBJ*@T&4#>X9H0`ie7UsxI5-#Dr#)$gAkXD zo|kRKr;n+_PcGlz!(L*=2Q|(*(i>%Nn)q!qb;yq=;(2hExIqrW?%w2eM{gBp5n~Kq zM_l`Ik+`C15PUdGSWsFfzW)`7l`-rMzg`uG4&oUmS4{K%su+2|AGwEFS1dRwn!5QS z&o>sr;1(H77T~vxRo)L3bpcq=s7$58cjqRwA%}7GK%!#6Pl8U~~tTCL0VePFp5@hp&YI$|?RbHxF->BSI9Pm>e-#Mi{j2NY|tr*odT_^dz9mvVm4f2&w+ ztuJgjN3Rsq#q}q=ka{N?6YPRT`7L!3>FrpyWrnyT)B_`^{by6pLp(ju6TZwFuAOIz zQ$bI+pisQ%zE(7)*Jm5@I8U@YDr(3%cW4vL*~C-v)(ZNm?I&mGppoRWl(WJDHQw5G zq9?Bl+}Eqoe`OCTA>I}2T=3|Vk#v$CL!IaQA->;aYY*}zF2q)ivwvfa<-WR}n7j4= zaYXApW8Pq#H}}|hvHigoV@EVFi(4qhJ@Ch%&JuIWebH%I zEON`-M2p{E_&^MC;~z`WQJ=f>?D67Ux{0g&J@B45XXmv&#V!0Do75pECThHBuIGha z#OPLUOcO)fc%j)q>S!156$iKS#5wNP>Ox+L=LfjscA*;I54DzVb#z7Vt!j)Yv6V8P zJEPGo&P`7`OEsB8*0MHLpBgSTrpI5Gu6{^)w8%P(Tmy$aj#c`UYv&!THn6Vy%{Yg@ z&9OYfI8PbMzT2#R$@cy32xXibU45fH!8!63#@YLQq^|#X;#Fyowb z-_iZLt;A&7zGR=Wqf94ow&*j3TzbRjx=lk^19R`gHBnF8JeK}?oe~k!sIizyf1hy~ zobT2*758QYV#!a|%sx)Uf$T+fPAJ_;kM2ZC$90J_CheEqBr8J4Q|Nbz0!X`cd1XD3+l}w{ut*W zId^sDJFP}?uQ`(Hjx(ko3&O-d(NdU=7mQc?qInrK9`g5-*Eeb;(Zqs3c2Y%nDC+yO#IwQu=2lU?cx~Y>V zc%oqmeMjzf7c;e1S(H36} zLmc}-_W?C@2RuU%{)|5LZq0PZoVb%XF$qVG^wORGMqi}Ei5TcMQnyww2obFl5nJx2 zi)Qb3fVv9D=f>+IEdpWpJ{}j17VBDC1|r&>`^kaXx`Q7B@UTdOvpYBFZoKzL|GRPM zkdv*`n))G(Jz(o`b9J?oys23mgC#9pboRqN;k_yf?blf7oUDo4e2u{RkwbKrQ$3JJ zZ1F+GV%?_e9;kjY6hRC0#j+F+NE1V_b^Sc?kBK|>a;CW5`lHyT!UfmKo&7#(xK!ru zM4eU6{>>LkR=Sz6W)6MVaG&(z+e~OK1>*3egVM4>SEznde`@-2@$f}@G_;;pCC&zO zI#@4doISU5&rx1$mBBd6jB{n*K~@QSSZ^@Swc5=&;y^s`JmdVS@Y_-0Uj!yG&c*Xv zY4yc0oQ_OpA8VogHkR1c(Vlkq^i@MZw+6l#z^{DpSY3x7Pg zABR)hDz*FilhZ|PU)S!W)`og<&&P6hzBxzRXsjoKcSf=IOws0>c_4;;ipj{?T5|&r z==p@>;;xRmhxQ&gb0!p(4esewhux85!@908Mf_sqhUxSO@tpHj3}5DqW#qv1FCQlz zd@&OvidFDzwL)54X9f;3C)f3sq$h8uBbIyn?$^&sM!TG_fwQV^&L)ybZ>vWpQ>w%{ zVBAP+BV+D%G0t-aN>=S(vLEEUZ-lej>iBMV3^|jGl6z+@Yq6()!Z<(o3$nz!2pBTX zHM=KS7VZhdV8(go>BW|t22scC331WK8!Uf!Rbw1?2A55%{(qA;XfcSG%E2}ls zkDB~24$grst(Fh+gKv2(^~>s6P1xm)N#rZ+_xWx4Y8-1bazqx5uWoh1!~Kd#x6Bjz8%x^@N@EVCR`z9!cu4p9`>` z_k?6h2A0@S3HI~Mh2tfu3sDz^o#(xpC`o|NYlnJW`O2k|#yme#1zxLWwZG(H|J8H@ zbtK8B6p5iW{Kot!x|~}e(Ju0&uLqC=CLEMJL%;o*F0`lJPD_eAcwkl!oFTWHB%bG> zL-%+M8UFkxnJ>b&rkJ;X+D>|DD>R8POTW2MOFH4a8^y!UG_#X*(P&rtcqNpM4{s&y zy5EVqA|LdS-j-aM=|J~H^sgtLl=S+8xO5P7V|(XGdZNbr7TAn;y;Q1a4Z;3FPIY|9 zUgZZBThh~AO{&Eqg55>Tx9*0{(6PUQ{-u=^gF42KaaL?N@EBXbgE^w9hz&MaMkl^{ zP{G?q<~wvLojc-2%aXsdE2`$Sx0?eUE>2-X^}ua)a7hb0vrh@qKZtp5Zw3A~thIF8 zWB6oX1O8dKOJau_pji#H(yW~%$5D$2xd>cbVvwZbd;mSZhx+rKG|6s-A5Ha)rqWwm zB^SY2v>cd$yg^4Kb!yeIuBjs))Rg~TMzgI<82p@z4XRzG(qz10!W z8t*KfS>#T8Zml8hSp%iJH@VZg>EMpjnjn1@35~5HX!4$tNuM4-ym1q?@2D- z9I&N7hkU`6P^9GZZRpH5AKL!dU-;axik6^%qr3dKV7YAt?ZurGc6$}GpK4Big`PCa zpqRZ3HluZk9(2L$K0B>zO74B!$Y{3;R}30BI-!`sV5|csEfVJ$ zu71?j8u{Rp^^&K^wbxvTqK)f!OEz8eBGoa_DOpu5DYgekA7)N-03Ll{7GJ_(#>J+6jKEp@>N~w055myWw3_$hXK<4X6`gQCY)Zp9WHH5aU-XF zVYKGPFlmoJF4Px&?R6f#r0Y_Emop3@`?V_4=bfRK3rya7-zSocT0|Z zv!zH)fBOCWZI#+Y;E2#iKQ_Nu`D}wVv^RZ7G1yZW_Q8^D(33En`a#&c)`GIHd6J2` z8C&#sDaAnts3v<0bB30;qOAuly4JwD&t6PP8(hg~%^y}=xS0AMhdysg3_BQMN?Lte z+Sz8q9;w++d#X>2p$=*W(t8)|D8CnYS~M<7niB2k(e7v(T4^n5t>Z-(4?uguLhjt z{yW|5sclb61DyNeK$!)^mC{9x#9Hs z%vQ;rm2Py>JB)lCw@5x;cAoel#Scp!z6c1GBNf?)ToO)CT7BeSdE{^wLWB(aw_MT|H@n?p@)h zd^tUt=s`uoRJNwUjM9AEY1N3e>>684HBoLGtB=6meTI}bOg~z4!AMN3ffdgMTRyw8Hjvi_Ni@Uv1q6VLqjed&i@d1)q-@vJb zes|izhsMz%=urY&>u=SgY94gm*N;UnAZt_AqkJD)SOC0G@`I}SMCdvGL@c*Sx7rbV zVbDtStrkwI4pGOP`+*3G6s@Z_ySPK6B!ZqsE2`Cdx#JE8X5(>gb+Q^Xj**+(zP`8m z&NDZ9p@Mir^+ff0JvVag7DjQ)tE#tUx}feGLI-n7s{?yF(UeKS)Zm?2{bHLvMIm3k z-56B;!NrcgF7c;sdO6i04z{$n2XesXZpzl9ZD=QQYHE8xc>=z)_f${%a$&0QN`ECK z4REJ~;BrA8XHI#*V|;7hg{`hLCEa~4wDh+PYd*Y)(tuI8p_1m+EXVtaBe`4z8Ja5h41JIj(8@qcebMk38*90 zDW>|NXG*Bc?agqm-n9}s>3Pwla=oNFr#14FKGAgk-Mwm^5cmy66eT%pC|}uoVIDt{ znhp(A`n>RWt}jVD~k}b%?6g>c3zHB_o^G! ztO+NB)5XdgrEb)xGK~87D_3s2?Mh23LusQ=x$=pL3%S`~9;9lUau|1{h3kSSKr>01 zz6e-x{{YJS$6INyZ%1wuptJ2^tz6gEmRw7GXy1EZrQ>dEx&iFS0%f7Ht26MQ*WJk0 z;G0ro`U=`U&V{C2UMO74Sw@qmg2!2Ho1pq~3GKY^Kx=zH5jwqDNPBkJ)3zinHnsBt zvh=bg?L9AqdtUQNF?}UvwK+uNUeBSmd*`;W^MF(}+0L`Rq#lELs1AWrlVi@HUdrC;a@u2w zSuM>>r|(D8j)f)4vfv21F%>yu=UU~#G0;}^iK2>qkCe%nl_2zICy!SVE?o_v zo;jFrY28_Pf%>JU){m%NC)Wi+CNnu-iDkHJr}b#s=_4CFlv1zid2{P5Da{RX}($% zY4jW^M0E`WKWHRPu%97pnhYI4H}LNTuM!dw7Yxi;L#KQ_go<-MWSAUI@`E12+G()4 zQ5bbsnhUL=s~#4LIf!$^gfnZMDPU<3DF$f>MHY@!pca6h#aCt94GyHe-j|HRpDVL` zFw?yOI?%VaDtleEM@;8Vu7>ZbDz4hmI}K;DZ+I>(wzj3V{&r;bYO~BT+nO4(tq_xR zr}3{=QMjHZow}SrE4)_Gx$7%v!rA8(X=6htCtJ|;6}~3zFr(zVxuxGY`>ma9N4zh+ z&xU@==Sbc|=304~6OZWXNT-wwRuf1u@XbEnes zl!9y;W9Z$fi%PqRa!Sp`-_1WO?NB3eM!qAzqb1lPFFAc0`st$v2_wIuJ~0M0lLt~E zK`R7!#V9HmutMls3*Cpi;O!h0AWZw|PoKwO{x&a32!OU=YxtQVej9~W{=PH>^?&zY zTZPjveQ0$@a4I@(6SiFPqV!*3^l@{JP@o6A3g%D_s{08|>aHXO4&S*#CWNj)F@nm^zUxT{&9y#K|Ce%b<8m)S>}-OHI) zJaHn6d-k$t(9MhnW-IE07PSLMu|thD?X1h7`hD(nH3)Gz+e@*)7}^bNiQmvM>md68 ze2XFaDQ}A8(!9;cqv1m=;&h~)AN!MoEijE=bE@CMZd&`XZ=2RDm+HpT7;rvxI(S-n zp;1AX-(qg!;%8;Im2y%$4!&!#vk(B>%~4NqROJsBmPAF;Cw0tRoSG$+0vFIRJ(>o4 zItXq%QK$VKMV{xQg~_hqT121APBT*|*$r;{XOT4g_EzB-@bZg+WeRyvF05JPM@|nT zXy(#WLVk=dnK>a=*;^+hpboV2>>6O^t_hlZz3F+YH8lLgDZwYilYTr4qaizsgx9ED ze_0($TQgKefs67JiR&qYgp7G&R>- z=(*ONjK+8)SM(R|Z1bdxW$q-i(G)b^def(;t`wZ}UAA=GYT65|Sb2C?lXr+!7d~r= zue+YDDLb%hHKmrrFYtKj2!Hf;u(yxKcadJZ49&72@Ty6wtNkP~;P8Yt`s01de){nw zVlMU3oo7nTPYN2K0v;IqPQsrxa=Li~GsRnn3Q_Ri2Z0F*emqNf4V!f*{Qq1hp$`0A zHucDNqUA!ziO_9y1jea%w$N5Jn2w+qqXIqpucm>}mj}*V=$*QzEQ9}?LnhHhtZ-=`vu!J?xYM2rE5JhgkJWrEf1#D&vK#ciyJN8A4qKa z2I1~W)LTpud%v#~GK{>bv~V@m8QxNw{DcnpcOP&KPo^Ow(WkrTM<$2uOhQl>Z8OuU zg@4X9)skI4xSApu@JPl<(y43w$P~SmSDxLZDoy@WnGD?=y(iUb*w^8gfYr~fRX&;& zPwLv>Q_XHIEbJUdYM38fU)o=2+AgQ}|HROP_9WI zL&4;zKQvD<`?Ko1kcXT@vm5$i5gP1Gp&z|yillx|yD@XvKjI+z>CgMKGGKR;d{K{G zH;@VUS5p}BP=oTmj4-!;#Xf?(ueWD$C0?{_=^9GYX%eh85q~}kqXeoDMx!3yO+S<_ ztllQ9g9h{i?O-~lzFoKvJG+etB#kx)q%&`LQ9dx8L-)ti5ok&K+zh5q`pG8kZlYdQ z?%Kl6iaKq~zptiM7op{6n<5>*7WIlsoc(v*r7u6AUJJZIwuP#4XB_TH_~9k0ca+A9 z<7uWYI2lK33-3q9QFrh&#P=`~-qp(K+Aqw^8Z8y%n6YkK2V9d`kf3!GGls}F*ZxQo z5+C7AFG37?e2efz5=J+FqNW{NA#BtS0iQ7HfgWds0@RPYxnagI@1F2=S|CLlLa%wo zXW{VD0Lnza=D>`$>{6LOt-|c$;+tJqu*9GCuZyC@H3rOH9kY9w3+P=xmTh|PNAB)X zs3T7USF;}-UI1Qw$Azr#Ghb5e5Cwd!gf-Uyrym3y?Oy{n7@E#~BG5aNwPu>vffdnN zL)RUy2tmlXOf67XS)>r=1IMCjdLH-IO)H#>$3+O}b9F*j+^88gT_dhBKo^sZ44%*&p_f*u9ZFW_@>pIEWn z?*T-37ORx8Oko~C7j|J5_s0e{8gstu_eWEw_dA(Wu|EYKN6&p|7Mrl%pIBlv8I>wn z=Pmv;*g2a13=L%cZJ^aVDVk1cIWvvpepCW%PyP*4whuj)G+<6jLPs$pJ=B)m(bIgP z%KjSqkf}}ta6~r3`@6vNyMPC$-80!L;B)ruMnC9H4c#1#`pj_5i&Yev7#e#~<>i+1 zuoatiWd$94p`98-<7W2ZdU|103*Q^%Kafu}3Z=W?d3dqAH{bkTP8%_+ZvC+bKP4uR zjtjVRgPzQz!{j=gP(;ys)0XrnNRlS_h!jyCD#6#{rLsliCb5LPrhalH#rnZ z^E|*SadQOczrv}}0k3~&#QU*OnuU30J)?_#KcKm({(v#B09satxagU{*q{LN!ToFZu$YbMf>}=7D>q%&Gx?YR z3NZlJlS&GEY7#)*b-@qj6w7jfKaqXJ^9otblE?Uy9r9d$*_2&;4(`D&(d5~qJG%&* z&+ZyUntr2&SYRyeo`X|*nl5FJbSE8P>>KCT(}^rsda*2qVy^5lF?i=rT5c_MJ!~4g z$YT2VQt2z)eKq}g-KH=K(gAPA=Lur|;_&};fptTNh*pRtrhWnE!yE9u`zB!S1RBbA z?|4^3=(i4m9#8Fcp0ZCt9|y~+-7h7N7%!)P^r7$RS;7avXB^j&)9<*AJm((nt8aM! zaf$rtv^6y54mbv*eYs7iFnU%E4uqx4`F_-rpA}*bbdZ$SW4_xn8XPHZgZMQ~%qH7{ zM>k)a_gE1K-2m|8UH!s#-wU9Xy|4#7uQB($0E+*HyP)k6_A3FiFqdP{7u?SDwg*t{ z(HPPkox_Hqwj`+l*WAx!HXb#x^xddWPKjoo$QLSc)_#w&W1p}2(V?C(6!Nn>>$7S# z=>U6N`S-H2={~TRDVWFaHi8bV4bxWR;s&8Fo z2E%;G_yf*(_rd)ApD^lydH>5NCyD7fm{F(%2UM0!{4f_hXUIcNPUtCSYr@WmmGkGc z5_`9aC)-JK($T!fX|IBgj+N7t0+HXH3w>bN|DI177p}z6fL{2wjhpzu0pJNn-dKM# znUBr_zj8CU2j>U#zrfw6+ybXZrWHSn`79qL{LYCPe63qBr4+@|*0Ce`KYl^vkc=7r z;O^X|Dv+AIz^S6yny;J@NOsus6XxAxlhNyWHU?ZbK>}<2Du8zPfj0NB-Ry#DAT7uK zN$-=(hR6cxWha~+%QUtDb<++Vael|gGCg2wbbsR>&$ePAZ7^@U9e%8$BdY@LU=;GT z&s)8eix+y595KVUhRNxA*1 z4$MmBo$FC={*B)*3*(-cbufDguAUfMzDhlm5^g{bC}}ni7J?~JfcC`E(cB!f_BVDx z!$r{(9OgkZGy`#tZ5wXAFOY`8N4;3p#Ja}?(wr4oFA|tyLm(ZR1s$U3T`UoPo=L$i z^L8V8uXVZtTohic!R~Egvvwqw>;e=2v9LL2#{bvOU&ZdSv}wL1 z$5~UTPvJ9@fD^|J+ZCjG8@$9noA{8RMB4u(mh`V3;ALGC z=u15`ef%=G?zTA8FJp;4ap8SND8P#Y-n>au`Lo(s+O-87{y%!~y|~}rCxYWk@r#xC zN0QPPdv)(MwksL^6Dz!Ka0MH0fO_*h=*!#ZvF1TxGzI>_a9R=@BoC#evH0!1LRi3% zQ1ToJzP@~S_EQ5hvskZIxUl8maxfkb-@f0Qo$wDOs~MQxb&qEL&k!Ty{bS~)vk8`A zbR`1k{r5)Jc77N*51{*YVH2BVhCFgRxN_i6w!I0W)@!l1rW-S_RerQP6B=GID+O&} zDOa?XqxX7OHZISFG9Sq4)P)jqLvJvIH=I1DAN?y=lZSWkNCW1fEsxMP(4bEc|oQI*~nVAXtX$xa1Z{-5Ev@)9Z!)}u9 z&g_L5>WDtzPuLXAUUrS9qBwAorDm|7z^-cH`3`wdz$$=~(uObUTU5$sWrD-=4zx4$ zD%n~^Bq`oQH*jtVOI#aH8qdHJD5c}tAYn9ZRIp_ zp{K0lNoUHLt)O0mqsVe4xCi4EWR@0fa#0<#gWzia-~Ie}{y^$-6&mPjh|SJ5$%J#; zs0{JO;Au-`dK2=g3*wE4VTvh{*@ZM8^Tw~8zbapt=aDgHytmG_7w$N1plsNuv!YN~ z+&!Dd!ag>w&I$#_&}EY$hVJlQ@IR1F{w-tpH#A6g0pO`&!%rorooor=Nvzg zo$r}M5zgQ-UbldSK1`qp_yJbvz-0I1X;v)k92LgSYs6D?7C60!B(vAc;wYyGyqY`K zvlmqg%7%Z7W!o8_q99w?#B==t=5$d`x~~xDtWYvN=*cgGex7msDR$Ex9JD>}|y%IzAdR-J_gYn}SkmZ;bCc%#$6QT||VlImtSJ$rB4{ zG5mPnE|E6#(r8R zQ1(0Us}DNI!u{iE9q!p7Mc0_t#yC3K2j^Pez;5{}=+a2s%U|l*-zJvTx65I zz=Mi=MCV&2Gx!in5)IgJ+%W{hGUF>YjWSx&akZwSNG zoag|a@sfQHq*I&hY4U(L8rU@0B&3%E8Rq>T7v=xghdulB1Z#R&@}J-MT{nPRZn;JA zIIH$AheG2OdTp@3#YAYKo~R|icF-*7)|MA;J3_s{3$erW2dn>6Mkd(*ChcFdnIDVj z9@hQ$K4fdt3h6u6V@5Qx9}70oI;`~{-e7NZ*HZ!hZQ1gxY|fr6nyCTa*GX4c$juDm zZE-Iwy3D>tq|sNLuZ^CUSqJFl{cZzZ$ABxW;7Sr*RKe#izRGfJ63GKK!>8}BGkg66 zx{do~vUxqT)`_Ql#7>>-8rf)_IBG^6;N5{cthP>0s>l(%n(LYQIB*lz$IvFHi)>N< zND4lOSo)tM>}XvGZ9f(RPS`E%i~>AhSHVg0KAGj9hUbXAWO6%zsZVpGUEmq7ezlZs z?chWojTGRmdoO&PjQ#vvL0fNLrP-bi^c27MfBi;zdOxn;xs-k&o(Y{8&)LgcG!b@= zD9Yja6PxJ_Y|ZQWmw1ixPJ7;?eGU~PubjACm2bbENz3p) zw{QGrfrc4$5$~_K{fSvUPNh+}BkuUWVK&&?ky?0O9?#i)^CVJeA~xIjh^f3zpfvoh zf9ji9*pYaO!?QCCyupjCsu+i0jVVZe%^oy-5#u)4;3iS%S42ZM_G5s5Kjzsle0Wv?7)v(l%jVDZYb@eJakk&X~53fozL=7 zrp=^*-zCm0=hGu^kp^t?yJH@A5o)Ld@`44Ci9E3HVY;h_yMDhfSNU5?iT%MrsRtp~c`UGMGkJYY0p(%6bKH3Trz)2|>w_=XW)OEP&7nTj&4T|IO||*i z_zZf2_Z$+`mVX?UM$zzNw*&sN2g6gSCw}k!SMOPLXcFewpjX)G8QZCnNDC2nP2PHk zr3vxW2hTLF(>3-sIF3~C?9xx2Wx0>!WP>=_)sQi_X7EPi_o_G_Vy#9*&@Sxfar%4M zl%v7)F9)y1r$TmL=?8un@QI}quqUW#9IC-<+U;S%QaAds9(=QFPcT=h6OGx4xNh`u zHhUv@cV!CdqB%^kya4_5B=EHS_uv1;&vOj2`IJMYq>K7b&hM98Gozlm;+#6f{o-wc zn#mX6^Lp+*9-4TII^y@va8YuDni>j+-Hzq$iQcM0T#^=1EhwiBAj z|K2GRo6oX6Q{zaA?|Hc z<<1GG3s}uBUn)|C9(|`G_GSZWdUIoFc=B=PJKT-@5tC1IzQdN!cA`DV$9(TLv$01V z=*kT_Me4?}2frNXmR4j7J0EecSc``HLFz@Soo0 z*E?E3OQxU(vSc-XT$W4ivCe+GoIl!_Lv@p5i3Afq!Z?eBN!ZW*M)9|v8FUTrv!+0g zyLL+Z?>##RcfroZMQoh`w31N2J<_m+Nl^E0L_K7~uR`V~ z@g?0`(X_z3gw0y%MfRvGS_x-asS&UZI2T3c-l}P zHo}pvq^@aU=U;nnaIGn2_#5~mnn}R9)*IGa9JBEjZG&w) z>$eeg&eYJI@#v>?eaLU>9j5unBi@FdD?1d?a6I=-J#+cg@&dXw z8}*-$2|TYTm(F0Fv3xaOk)A{A@EYG#bNkL&&8xhWg*w#y+%aU)Ckol#5M@yC0eXxUwSuDc zow(~AdDHkLsOAkv~hgCr|bzKa-Kz*;_p&#k!L!&3Kh&^1snm#Cj8}zPVPcfre z*bq%Yb@$lGN;m5D0JV<0I=o+7a1UO=T~j}aTX;K?I^qzspO$<_iX*AKZJ7_|M0F4& z&B~}A`+0ZWD)IW@1}fKp9cH?TFON3U0qlWcMRP>`+*|Y-=Y44TVDa;*8X7tWb7e!DnFh)Ac0c_NLi<{251T`weGvc06Bo*paMnx2$j6Xx~TlTUbW( z5c7ky%q@QPE#hc|9n{7nmPXCK#A`MeP@PvS8Ch0x?}S`3@J8JAs({zI z=1_wtIBaL8@aZa9;1T|pTi%y@jm)6)SlgzUa`g+Tm>Wh6V>h0=)+WNx+MisEL z{CcAJw?_l`y5TF{W{7)WXE)p_X5)jz5jnSL;CyJ!*e?{FSPgk$&n$=^DSpsCOlPo{ z?mg%tPIy*IA6MfnRJIbGKklICLGZVQ_xXdY0#XkHZ!PXk%+0sB1llNvWD$M?m#o7?RVdp!^uL-<_{`XAUxaORtCL?36~BbKEfKuN$$ zq~AHu1XDlK?2ftAm*vbL)0cW8?)^J%JDY>qu_vj~)Iqz9Z2>pVBk(rV_Pfh2%mE%g z68+QaUOaCjbjmg&pE6s)V^2F#VkLNb_aESPm`h5EX~`RZqMuX@kd$HG7qLomj(Dh3 z1D)1{#&OSl@iYAMH2C4j=?S6)@kTBDgWXA6aYI!NWjn@F?H!4j-{CL~!yX%SPG2;= zUrN*0;9e-`Am;zGgRaFwkE81cem9|jX2pXa+w~eR@XEzqgjnVK5&mdS4)6=;tu$}p zr|)IbQw4I6!W3?$oXO5zUmC0nWULEeGnh1hJ%f)A|trXM+W2DkH; zYi#UwUmElYoGqg(*@SH12!Qv#GP00mbpdCRH)h!1Zf9Q?_yEfmO`1oquwpe&3d8%f z3GBlEfKTb)-@D?71$PW^rZ*}0?T=1!OU!=GLS6fR%Tp0HPT<~aB%sSNNOiuBe6LKgg6aJw?DOWp} zNxiU^UdiS`Z_`N|uX(UFisu@qQg{3vs(bv*j3f%eejfFC7T0PEUGJ6fKkgIx4?L4C zda+cTJDg9Ny@u|W1BdpYAFo4?Is-QOJxzy?N3Z-{Tkuhj{ll~e`_ZOuB-SaH5D z4ZRM%sy~OAL!>X2YzGg<$ULSu&zFXqU|!N-Bbx}k@vGs$v30Iyb}!HqhY!z^w&NXv zU)9999_hN6`vLD)XAP`H$9lfCmlJxDE&C~#$J>fC#+G4*ESC1Z-zx_Esz+W3pB!*l z+<&NL1#9_lE;A#;!&RhdR~D0uFVIoxhR*?3UNo5UFBB>I<}tKe)QtJ(TmH154)_Flf35*;nLkIsdH6?zH%|8@8~EPqQEym3>(!(`9yqiKmslP+ z7M34_mc3ggI}1J>bHgYa>avSjNx|{1iah!Q^x6_U(XRl;`x$5LdwI~Qe^3{C+M7H2 zxKZo-=-oU2;Jw;9VZNs&Z~VrR7;(^|GHQgKpXHnuv*Dj7bjDf!aYc+%Hq&8q`0X|o z;`fkSG}sq+%%b(8+4dUJOGF&Cc8$3H?IF60eH(Umxu_|Y0@H$+wrr9Zdu9h|9mL%l z)>kyJETA)okTd>lC$2ThC9A{O^QT_(E-E<`jk_aP`x5VKl1Z`qkZ(S%}OH~L||qe~RIFKEM0;Eq$; zLa(h!g@@U?(nBNQ3XIhFtT&GItOmGZqxO9CGdo)IJ&J7R>T*|eTN>9JSeMbGxJ7_H zIGm#?OHWM<{)&9CuqCd*?Q({AabOYM{?~5=+!3cJFVl~I>v9cG#e#-sR17=YKofRI z?PVGSJ8ups7PED$Xa?-;V3{r&ChQ~QJk)Uf{KTL&MU;X)$!(U1e~a?zH|#ui$2d`Q z$p-oh+s^&eTkPC7i*6o4-POOX_~S_$y@CDr#k}Huq{+0i95GDeWj-+gJ@n17bTaiA zFY%A1M%)F>llJgJU`Yufi2ma$hp}?jN9~R3!U0vvI1-RhW zIdPRC&_eQ!Cil|$Tzet(G_|5B(qbaFv;i-x9N6H%!F=X-oS2;Tg?>DPgqM+ zk0QQO4i%4SrI6Jz)YHCp7R%7j+6J31wD`lXFOpMVJPRGmCaxL)4Ac&2y=|@KiNDYj z4};$xUCFbj2NR9QJt!^a1Hm^n6}95>>$!Yzg9o)k9w#wN<@Fw}lnpG+;SJ%u7(6^L z7Dtm#gaenuXU=Pgq8ZSFEVzg{>q+3*+aTrg_jdFl0rqKY#QO}fAw~B{s-I%W)8i~@ z8}{?`#P0n1%H>q`B9gSj)Va-gGwJ~xpgMcb=2S1D1Y69j?!C>dqZUx5Y9y(oF6Zuh z=ToYFOaB~{SR_6!&Ze8#&vy(|YKk9J(+8Z*=EAl$4@TaiD`vQ}Dqf0vB#e5%&XUlR z;^OmV6azcQN{dC6=q>aJc2*VA#ZQOUlK?v#yz&z>`(@DO3gnoF7K@$RCXo+pyCK&| zjH`>I`^VAGitQ#fCt)2qT3iX+M#u97FJcZeras)L;`|JA6;S$>EHw?pq>u1-zk@JsXy^$Lrt-^G>gM@a*Ae*XB1_@UEI z%yyyv7Pepf{BR=;!5L4RkRw`5%AmQp;~w-17ta(Y(k}SksTJnpBlMN>VcTn|lf-H0 zceq!fp0ll=Sn^mw)+Z2;Atv$sCZ`Z(DSR(KDq{jhoFJsttvXguPL%$##PJUEQ1 z@Z2{UpWxO$0l@3UkW9Xp=REPI$BSdAOXOC5JJg*Fao?H$%;v9vU0F2{afMD2?}#4L z_|zzx?-S0AF<(}DCXyZoxbbCzEsbprtx#_ZZYV;FEgkxN*Jtq1-z%ta2Wr#ZNAh7; zmQl$f@Zr4C<|g72s+tO}tu_zY>op5WxdD6oc_|zEbUy7zEqmyjPJFKZB3k{io!$oyD8#@yw?uEveA)&( zcl%f_>X@%3ci7oy`g+l0U@|n~W69V!LJWPBNMZ23)B3Fx2X0EBv#?>hwnQ{Bi>Hs( zsCo7<6x|2KkvZ1G|IrbvkZUYeBA&URB1U(RQzty5L)TvNFQL)&Gza&l%T2y;Z#a42 zPJA0$%Y&|gGrK+R+zm(hGK1B0)e-SVVkx(_gU(}BH0IE@@DAX3dC?nlc|EfE&*4tg zIw*>&7ANtotsSTX_{Y}SMDVuxwxsq5+?yWm{CI&CSp}e$w`3Xr)4YN%tb?wtXw3DV zFQX#xqjrt%#iw^RMb3n}s>5q$J!ld5{eT&MzMJi}TS$%*A}G+|B`eoAqdwrK{NFsK z>$CmhM&Kn+!Or~(de(UTDWdMMbJN=aHNCY?knc3~Qkz@Xn9_DykNYUj_PV&KQx+Y9 zosX52i4QY?D}bE`|5__nxhB)XQuq)_pcrGAM04P8U+XUw@7+nD_t?YZ$|s4(H^h@d zz+I^|K%Ck8E1@&0ki4Se3AHT1<9 zXW`>HzU4b~@w&#+7rBxT8|6z{f#6KOR?bsLd(v;j8{PNs;?EX?Q?3`V)<5$3vKS}y z8-dX|yp9_$aUk;@@BZqFv-Y8o6!oZ?XTDb!20M-bBc0G3R_L=2_rZ zdu$hducpus*x}XAM3L=DrbgJg`hkl$3;m9vxa0I}=7>G@5@|H{YVTH~#ToVSG@7IS z*`>F*_h1~wVVxDzUevy+AbAaH+AqKJfyd?a3;TbQ!4n<_AJ%s(YV-%L@wwoT*nnrv zKcC{U_kt;}5Awj-$N6?uKe~>7)5KZ(`Kwo+WN;o>(5fQd1Wx$-{h;NYna7vtIwS9a zR^y*ceq2Jq?+za{dyC+)!b5kV^)*6=TCHWUv0C%@##`(L!ADX$`EbKESx!@`1Q zg4e>j^#I;hx{S{7C>nhF12YIQqdD`UY2%M##(pg&|CzW$h4U=)mksq8(DELfI{1LN zTMoS>*!kLS!Ifdf&6K3Dy-|(3eicn)woaSZ&B592uVnvk` zJPmU{p8C*Jo_m1b-0DXmDc}szE9OsAyy!Rb=pwUx-Y(CL3`PQ%du1K(3~r3On1vZ| zI+>5eo%rZRBqeo=<^I|ZsH;cP%CFwsbGt3cz!j-ev7Fl}t*C5OB<=Y$nK$fQNp&XR zBl7OX+o@Sl56mFE_G@D6-kDQR;7;Z9Hn5yiE9j~@?!*;!Y!$Sw-o&vZf7h+FnV z(hb#WNf-OJHd9NyK0kppPND8Ju9Y}z zP&_5VwoC6k<9!##VP+q_!arB}v@r^*6rn|{C-U2|$eDH_e-EhSg^{pFAabI_J^aSm z5UMf2Ia1romEg2_1?+Fs#|`}05Ad8}_I$;#3?4hoot{dgDLp@)s}^JSq&SL{&0*YD z%bBKN&g+l12RHVG9!EqZFoG+1r718N4#1rIOylX*Hk5G(&tm%^KJV))dU+f8_I>I+ zuXZI(?SVSUlUmku!AkP{6hnR^64}5?gW(|6=z*WxsK1v`f}nTzT-j}<^q64V z1I;zOGAxdUTtsi_dpZBHR6+akEW9S|{^7 z8%cWV@Qok#iqG@W!-1XO_J|P!bCc-{VyY7Td7|BmG%8L;>=9rn7Mx8b=R)-T^*V|b z$tfh+k37Qb1D`o1nV!SPn(E!;fiDuN>?B@)RLQ4pNuX2z+BUD0-wunXT^GA6D``P1~8=t%hvo-_JbFsJL z0YChx2zDl$CA=H>RgS#@f5q+@d<=9Y_M@IzEuGB0zJuHL9cEkBjpPmQ!6_OVMeW}W z;76Z2)AfFcLqfap`OBPW5Jgd+_v(DwI0vc*&R@3sIXnFc`sv88f1W zv{cs2Z7B8uY|?iw8`R`T>tS>I9~JCwPw-GdOXz>&jSo2o#Ub~i=osvrs1!w)$|#b< z&W8uahz;XVr_@4kS5GS5d6!HE%b-1ava9IWFP(x?(EC{Vm5U!zY2g;!WwL90V_6DW zA3!{iaD?}?OeROfZ0*#xbBS6K6~jMts?X$+#}mj7wjFg|&hMZPq5<3Pp5x6Y?T@3x z>!^n~Tk@UgpDsU#@84rSw};<2`ERUPCFL5rn051qZ$Cbc?*l)LFr$>!JC zQOZ0yT@Es0$NIX^>yN05&dX)=U!k2?$y)ou*VCSHxiQ){*ZP&uick9QB z6BV#G?EHe%MAz{tq=g(j|L1kydTu%yq#~!NIly=7q){Kl1E=8|JJqI;J8Bv?w=1~6 zZ!%p#jL{%*6>G&nw@DlK-mk>9~r*hBTz^GpX*2QQz&o~-K$8TY8>-Oc< z&3PTa^&VsBl*ebWV(u&A;7p7 ze=slhlzW&J=J%CvQJ)8P zv>E(AE~xqV=51y@Um+hyt)q*m+#TH-g}w4W)?af=}z*!ked3%pGs@J+Du&ygv7(Z4ppZ|OO1F@GMOLj7Q8 zwN{3_yMH>V!Oqem4L-;yjV8m++b+IhYwo9jTM@pu@e&J4N~X`S^I4N4Y}A+}@aLmf z1#Hj7M+x+>4)s-y9A>19r=8ft7w;voS-ayX3wC~^9>!FDW3Kiz`mK(htoItk#kglJ zTpiir#&GJl5*QM>Ez3R`NX{y;6!>Tri{7@H@*FTvS7yP6fQKL$@kZQRQ#LW*o!%rN zuIoFWExX`G2Nz-9=gSOsG|`Ptbc`leA!Cn#dy%PN9_;88Hnfu~30~0@bA1wvp5aVW zkt5BVH-WVcb)0l{S)7_U8BP(V=v}6CswkM@&ss%<2U|D zXS%AXbZ`ZFE2-|xWNZqp_CX(i!c6vjWHK#^flpQ)!U8)bQP&LAv?uDYRYeX%ghW7q*=@aEsu9+UL{%pyX&p>H_?|aL?-TBo`O-eb%m*uv2-@I&H0*+zovqb^M!GxM#~|*F zRSH&C;Fsu)xx!b~f*S6`&(*+*-eH19f-5C~>t;m7c_Gi=g{Gn|$13j&HbYoPo9hfDvrzF={$}!bupP)gz0hr#Nhk=s^pWa|#s*iabl>W&JhGs|0 z{j9RvmUTluSOEN_&`ynAEs3IYSl8xM32MJ$@J!JAb`BS`cO`@OG?uF78wx^08fmOU zAAi{s<;j9nI=&ly(idx$j`LFJG<=Q4pms{(RTBNcp8WTjuFpuMH28|yslO$!CMHk{ z?z;irVbYte<0`)?)mKn3_VzUGZ_?^b@au?MX3l&rtwn8r zcqBBYpC6EBL+k1(o_p(V>M)jAjSd7$$W87!QwcOs8pku=-9 zQn>OF+@y#P`<-kS`tP%+O5lMN2Q-;UPX{`F5`C!JZ^DBEF3?fL9T%7{GnyR)&H9%9 z`TC&KN)z1M+OX;D%RQ89-(u$VZww8Zf4XYn6U5OPzzVwtNLBq)Xo(|oG0VHsh?VL8 z^_x_uw3iwEPNg`8dw<*@*`dr7`g|2WXZm!RP48s7(uB{=wUw`raH%xBfXOOZfpzL?ir+*8$mT ze`pf!L>@G@NY?m19J<@^SCi9Zr_&ItMgc=xXe+z7!I!RDV5XvCu&ieexZoy(+s*!~ zw9j96Dur!zXDX$K9)U*%cdGZ%Rnljz-Jq`#L8mwDs}3lDetNG6YV%Q3NC01`;u3HP z`!@(XA2`rd%nvFe-Uy%K?CD+&?$f?~*t>drx-=Md%O0JX)eIN%L?24E{X^O3KLMnA zwIv?u*!;7~^ZgK$eg|e-y{j@1*s()Dp)=TJN>##r-0f}gK7me(fGEK}LPQdzB{(0Gt=cxJPS%4=^*6KH6MtqMw>P@ma zh+zXz(?0k4mTdSOaMD=E63Dw{Ch;K@gt^@2f&jQ}s%*!vo6{B(P&?g;&|i&L2_-kz3k1+RPRB)0exxFf=$^%?q0W_iJ% z+y=FbpQAF)E63<#Mi6!$TB4&ogZ*3uJO6v$b?*Xq2|Jtm?vm=6r;slE@D|N3vg;Gl z|Es?pD>IgD1zzaO4diUjcCy@sDHMTy+exXAO|MO&&F?S+*mI+7>9j-&M{N1$M~UoN zZ9EyjMI0U>$ewz{(G2Y84V$maLaY@ed5ju}&r8{=4AeJZb3MyHvebI)Sv;@4zf@_c zJMRC}=#RUp(!<>SY}b0_pX-XrgfkWy^Phhx0G^30tMg z=5<9r?iE2Nmo1lFyzWlBTR}4`LPr)1-1x-ysJBM`mi(%4p>dnTs8X&igy#WYbQL;= zdDTK|g#)$X;q)?K05esw2d7a4o!4??`NQm~T@iRDtDIStDexPZA5*xi(o8LXQg>;Y z4~~0%Q5lT9Y8-6)y{?mT#0O}v!G|F2pK5d)wTE_yZ+D%Lddy8BMG$7qMjOid3`wVK z?BO)&5?TI{ROpvuK4mTRI>!J9{t5Uuqior#ZAml@dvQX?J+kww8u-pIyiD@Y&q%nxZpn=u1g2b&-C)~4)i+_%{OYhU%D75H9< z@r-Ic2h(KqrcUACz8XB5jssU+00F(4n0{zyEX>29*tlT8fFOYe$pla})j)^4MGj+N&%8yp(f{Qp5Gh{}(sWsy^C9bLPz0Ud?NZWpIr6}u~@-(!P~f@Vvd6SC2h=XO}%0_p1AOgv!?*;BKZT;>eCYNx@L(u-2t`DxhD zg0ZdjPV#!4g8#@n8$>^PTaRR<^3N%DFhuX(o$)nu(Fjvy@*|^f1d*~94TB1&A+|CHJwVxqYeRIbC zMiKBDTTiLYx%6*-{$&uZtQz6~xiA9tXKYo*J#fI!S@c2;D^o6l6JGJVgv*IwEVJ$aUs&oOTC{qSoqd1;)Dbn=u?Z)5^GGDn-aTVme5 z82s+dGdWa+{&T2h{XG#Q%R9rqPB3-~G=^-9x=F#x@%B#%+}z zAMn6)`Y|oZFOUp;JkX-$8H90RzO1W-f50Kgg>) zRmp#G#NFNGgu4YO>k}RDxK#w2CvH`yv~Z(H)QEWATMW^^q6P4`ssj5 z`S}5E$!mN5zg!(~sh(`ZJpC`u-_N#FS#chGiE-|v{h*eZd%NWGZt6QjDt^wdY)v`VVtg7E437Wx}za1}fHCbw8xzGe3`edryiZmpQw$2Ced{;8}7CR*_pe zDx(obJklVa`RBbyXEe#*_)83edEg^$?`%vc5x0c91kR``f1SbuECo{dZ;oX1y%TrT;DfF)LQcU zS-0(&(iQEkSdVOHkNIc_ni6}GlEeHkV=R=R@o4YKyKuyG%os~gJOgsE_fNz4*%8>J z5TkNo1gcOIW+<^kg`QpDL>&^7^D%h*u_ji(^+K#K`Sx2LNS$AKpbqnL*2A;XF+UIL zI))=<=uWBMb9cnl3CD*0lce1mH_Q&B-qGb5+T1)B#ElO_eus5pbR@l`W5e*`x2anOq^jEH$t6WWX#O5~iw;o!mjCQAXBk$3z!wRJB%jqrVRT=k1gAiHu|D9*|8iw-t z|L;5pnS3%EaFltX4(B|j&($BRX5r0R_RdEqO9i*)pk*88hbC!~<*;l7GoDjltd_zO zGI4AKe||ubnwO+wEi^drrb6<1lu8X=4KgeKO6^;wz^00Z`Z$d+*j0o1e3q)WoniWs zex7_^O2-X>Dd!6JgPCt{jl~OMC?<@cFZ$;h(C1utei`?G=WQ|iWjL;JwiYkOAb2Q! ze(KT(C(;NZX7t%;9fK}M8=!oz7mhB8M9KXxQa&})oDOovXZcu~HqryO)bF_1=#1od zotkwG!*C^VfmD008y-@dX8xUX>c|oo^46)}F}AZ1c}{TXABygNddm7nj=1R*ioYYh zm3MiL@K_m2jgh6w#$-2CKOTZFMFrBAKJ+s^Qbf!M^I=h7*}i&|SD`g<(0TaX9$!v^Npqj1tB3EPUM;P5kg#w|#|U}Xf%h*3;5 zpng$iPq@tTg+y(rz1th%3bmR4x<%mr_bRyT-~nf9b3}gpBE8b{z~PioxD9$L8D4Nl z>b4LZHW1RyOKv!IAsF8dXrvL{UEwx@``z0GYE4aNnEwuf>q}G7c$y>b^FCOcTU~j? z`_YS>7A0_k@~y-TvHu03#D9l$!j!%VuY4=TIXm^0Y*&-J6vnnwpPq8MjvffCH&$;B z80Nl#{2S(tK_a!ap}AENa9@KK>o}XrZ;B18n7iDG z)qmXs@sX@CSvODoI}{swB*1weu|}?z2)`PGvw?}2J=6j_=JNjWipQ0V0r*DDtvWmg zCOg}p`+Pr4pAw0S_iJNpus7-*4a1QhRX8KzjP6SaE}v&Txx*9Hs)S%bmCw@cjh=A1 z76eth`%<#v3El8O9J4+pEwl4P``iAwyJnq~a*$qc=cs=@b(FM$4V+$UKfJ8nSgrDL z!N*m8NQ<#lPdH6~id%s&b~!CMRht11zshmeGkPQs9!dQo#<{fG0QtB7|2xm|UutT5 z@;$D}IGbHgR);V@*Wbd~RPitM;(Bx8%Ua^{l+MzE+1ccnGbdCXBl%p;#COJa_4Od> zVABlTXWlq7bgr~{avILE-WaicwNx*Md%!2e*hKD^&R1yQyn;D-!3AmgQqDf@81v{i zQZeJai@9vvnHt2%5~sw&>*62u{?2sl~a_*9q0p zk9W|_f@ma_zmgjI_%UZhVBOejQgiNBY<7oXt#n!nrv~i0-l4EDJtrAbOUio`_qe8K zq@)OMguG?#yGSSL-}FYUmjQ5!+$^o$=!0)d{jl*#npBPRZLc9durkb+o;N11aE~_z znSPWOSW&OBKRr#G3e`)_vG>tW_ka7rqL;U2SN4u0d4|u%naOjuu-9Y{emQ-vHd#gd zCeQl9tJT%sTUkr+%sB?+s_Pt^1B+G~e3SoEYb~>}j2b@8{6DEPS7kzFM!l+bO{8nj z)1haq!OLoWq~86g+fZMF{*y*aL&8(g`#N`i13jc->MNX|&-)I^(!@;8qTH{%6zE@{X{3?0557q4#h&nplcekEkH0oPI2y2DTF-ub z6EXc>)bW?;H|jW-d#3KdWH!*IvSF7`c29`d|Q!!=gGkv%}G2}aP_Nsa^chPUS zv!43=vwFzHc@*|IvR$-t4S@X z-z6U`xJh4?qT13t>TUavqK4_Xx{|3LHRx;uA(rS#xhMQ!yPaJ6W!6&hb^d&U57r%O zjaN76m%-1+4GVE&p)a0&@Ils_0jj9x38-<_y;7XJ2HcX1+K1!kHP)=5Q{{`L^cCMs z973qRtV)Z(4Gr`4_Y&=T?vm>Az8teTO&djg(fGNX;kvHyEZe@{=B z-d&+~Zqp{(67NV@bf9;k)L6UHB?2ANiC6j2NPFd17~=NFA$SP?KLFk}V#|j0Wlye84{y(>WqQWm$fMrk+^@3g(<&d-qCWUk-j92TRmdpy z!nRuD(2u?3aONQ0h+Wum$QwVY6+UFVxvDkyCV!Hs-Sa=^xvs@oc^coFZD*-Fyw6I$ zFNNY;KJ`DV)sRy!hN3=knEm_JlE*M+5u6FM@Hdj*y-Y&b5)M)SGeK!8uoobN3Ni*_!&pFBs=D#wPMn z#`)dSB-n)i)N0O#lHW>w^3*=EGi%s?^`7aX6gl-tDqcGg8*pT){B;|3il%eE)??UrA%W$QSM;huDHhkBw<-)NlVK6J$I zHp1#z1pJ8+dOWAE2rv(aZv-(h4=hBADhyMP$H6+@P6Vt9#bV<)>^~PGHc!nTqc0Yqr(*hV6bGrnq^*VwoqlpR-gYOL4f?->FiZ3&(7h_fYeD>p5}{Pj-6$(7K=f}^dKF?n1`+xsn(%b!Z^=R z_KWA-4^A+RMU8rAMT3Q*NPiLox7a7*cCRp;-yQ?mQcu}JPus%8805t^QYP>|++s>C z`r`J=Y0f8fX8*kDyC^G0(Z6>_E(`e@55c8yT6<~m7I0fAyM1U$q{c;QHN*v!|3nw7~)&1uukZ6 zx{+vRo(ywi_IKaAi{gEpaq|2ZPN$rg1M&6D^QjGNMTZH*baSpgaZIQv42Y(eaUvEq z$Pn!YM&bv3$96qgETm-iZN#6MB(E0--NNwwP8Bph!)QL8cQrKn2X>5KuPc-eFC!4&GV z9%veZuU|Xh`yc9vzM_7_*L>`L!MXG!`s?iIt7@Rn=ikwxQk+k$PnVTC{4*HmHnpnC z{?wtJQONnWIHhg=JQRVfr$<;M%SWa$W}KORuKq^e{4N!Zc!q1dZXm`VOu^AnoG%&l z6bD97`>GdpT83DP0fPDv+=X@7;V3eQpZXO?&d%mI5#SJb4Xhp7d<1g*x?tGDEpnBWtNViAj7 z{i-SXo}n#ry8|1BV7*4mpJv7&DtcC>I45}d$Qtq)4K8rD-{GD% zg3ryTh`sH#{n{N@*y{&!9({I>e3dnW>N9t=+pCEoJkNSO!!O!)5RJ7d$Q({wH2vsL zkEV7UcLvwm*^7OL*-yVuLd###VxxvWknBA?%jOEJ#5k>^B z^igy;9Ee_Tq7lFRv8c~Fw{FiU-0yTk*pKvq-($u%u2c*O^1}V)p;$P3gIILV6N9JI zFY4-gak&HWU_%1Ya#fM&oJrrkG@jQ7GlkK0;!B5d_E-J6+1wBA#5Ry`ym+@Xqs$d& zp7_FHz9q)gc17Audfc8$LzkvrD7fK?$s4Mw{I*7;xOU|@pE)~1R>gX+wc5U=p%@XIgv{%UT)RMaqc1bMx5l(NMczRbq6{k0aVS6odu1Y_PeZN8w+AR*p8hsbft^^_acMQs= zy%7&v1z=SWbI{5Q!r}~j5NG0nR_+q32GB>ZH*0I>)k5{$1K(@X``ETn%zenc-uEDQ z8E+I5$~}P|^aeVzO8n&Rsc61GhTm`&U0Qo$DE+N!{Mo40ba01#D?i>-IZ|v5S4%jvA~7$3uh`SO$@ocX_|PVb#&;_%~C&H>0}*k~#~l%=4mDeDa*J7GR4 z86~aBA6y+LWbR_Z@6&T-+kD}@K9TrC^4Xo%h^5@^54}ns>R)?A=O@w7qgJ_Ca#B1w z6p3ZrMa>&_PgL(3fz8LcM?U;sRD_3NXZ3ifhJP0a)gjoc7l&1*ABAaTAWSyL;IP>( z(Y2}{_XJV6>9tQhTjYfUWf?XJ1QKncO@9tGls#slI*5K`A~ z6d@Y!x>V#5HD4{fxYJs++aG?D0>n<%+h6wjq1E6Fc}S!i*3a?7q2PhimM9mbGj}ZR z_FT#y;R4_4en<)Gfi@>S|F7mqut_ufGCB(R|9^3A-tm+6xi%QK7pUP@?4VT>@9(^Z z8hSkfv`?A$c862@J#M-DPuub&xy(y+r5kC&e!nH;W9`z))t=%ON^(+#9 z6BBT#-!oCzCjv_@#>2AclW0ku;S05Ke<2mjay4oL&yvGXtbXWYOmv`v=^|I-1XEZ3KzKkYJ z-R*`mTx$AbVyBT(Uw(&E{@%z6s5300A_CPWSB~?sd6wEjdQ1$sLfsF)qB7qZAy~SR zUa_kTwULuT(ISC)b!CC<%s97ymV`CQ9mO5S`6BD&lLM^83|$KT?Y*1^`HSX`$(Y}O zyV?(#qQNu%KYO1e6IO`r?EikbkV_n~Q^fv=!zbqF=(rxNKYj{Y~Q!zrR;KmLwgD83F@BqmvKSGX$}#!f3m&v(Sd z83bYHh1H@h@ko>DIrlAQrRY4s9Y)kFXrs&*u{~X}t#1HQ8U=_`LC(k?5r7NryNhqT zobjvBA0`FK^3goL7xjE_Zolean*sC#k}Jpg!E*bu9@~SFeKiR+mhC zHz9MD{EV1@ilZ8lS5EB;Bkpm`3UUpmq7mh zA@SKc48>0IxaaeqSV(W0!PCi|blEMoMEZlIU&P+c74g;Roo7wF&~!gBV4FL-6-2_& za+G-c!WGT+iOI;f6gJd`nw1xZ>Dy+B(+Az)!M^cFa)fwt#vKo1==X3qU8E*6=G5p( z*5nFb-4==Qn>vea z)F#Sn8G#oy+X-jtZWR`X;a0Q$;`<6WTqQqej`av}d4oGfEeb|>@Jw-biU)nc0+DoM zwg{{4fwo!H;5c3+oY%R*p~4?`YMl~ko2VB`Zu8wLKgHws^bM>LfIO#$N=0*Lym0Zy z%_B9HQ^btj`H#3gzlrKmGa``DvvQpEjDuD7dxKHJIBP~;HS4)N1g{w9x)0V4%}WbK zDdU`_GnAb;Ln>mNrw13yRZ~*2jB!qDe@f1_PQmN8#IC%1CwJ#Oc`EmdfA7>0e=Ml) z&N^Ia)IscwOh8f>a+U|ut*MumYy=!tQ9YQ^~dLyvGA#8C8Bxv4JF_Eb5vX5)yM-cL?kj!>xqJT zZaCY6{d0}a@|RWgA1);x-L{r!8|sE?R`f-PZYsudUblZ$Fzgof6n5NUdA|t6y7u@pkA?|i@LB?T!{MuuvWIH(F_Z@%4=9?*BZJgNm`J>j; zVM@e8cXFD&acE1D`gcGCW{jv@*B$MCNM&)5IHl{vTR!To+EEmOfUQYryTaG3cQ*3| z`{kxnFKI_`wjmg2i!On(DmE3f7-x^sx$;z`Ab@ecbAG$*tkYoa59Ws!r{tysSqHLz zf426SY(_tzp&iMyyIoCWj*BG*i1WLCO+~#J_PZB}n|19f4v&dIZrcP@H5nu}3=6|m zyLkAz3>BRg1S8mup2+X}iT&LJ5Yr_Vf!mr3`%m65$c)CX+Hd3&k_V=oWnCC^NG@$l zez8de9Eb0cH)gxytsI6CE6e4kW^U-h`{r`od3jqicLb9=R1)+>ewXczq^E%>EEy!6 z_1$rf9*TA6=ZW$0uCOfj$HI$m#Cuz3m}UB-#MfAfk0C}U&mWgf+?DME9pSLw4M6U9}_YQ?BuZ#$4+1XX9pN%YQs%z1MJBM*rMg*x|6o=q7<2$bD3nX9WBMb!(2LDV-0@!q%RCcram+ z^6soNas_Lb^!sx1^Ki_uvaJ;78%0Ly&E>)P$v9i~TBhnqovJ`$iKVffR6}z^VVBJO zeDY4&WA0mOKc-*X?(N!!zNz@qn|fcFH?=EzrC=W8oMly2ezBeyy01yNe%4T))r|X- zrR?P+`pOL&C17&vBuw)hCD*SWi`b+@OjzV3YuF!mJ3$ZGp^U?aaGdAw)jXdiCmDnx z$0iYE6~`Fo+C?q3KRcwrh;c^yVcN#zl}zKg&p2wY-BXMDNlQ52 zvq{i~eu#(Cg1x-nLap_K7z~b2L~+|t`Icx4Bp?u@V6X4bB7%@3q^z#}=B zTyH`Y%|yvDprd-}z!-=oaPl99yiXANkK+ zCl#kh_Arfg$EMlcmH#Y>lW8`!Qk>ULic$|g5DZV&b$NMrR5Le)pegS`olUZ;Dz!KJ z@*bRX@t)b;JInzOl8{mwVHRVTiVjBP&pOOD8`3-lW4JSY@Mf;rpm`elchaY@WQCb2 zan!1X?6n(gGwZZ&FIxz@yP7uejl8nKUT+KC1%yiJn;Hg zBzpGAHp`(Va|m}`?bfB6O(O;s8|{bpcUvo0+u0+hz!$3;Br7>nXJAwhUsSv- zQ(TTu;~DlwlTVM7UtMNkX@55?=oh6dIY3-`6`M+N-W{?)U7!xei!hL6;>>rLYWptM(LD1zSDUKL$E0FHH*)G{+o+6drQml{VgMpTRM!(U zc*-;1W=EDPpMPFz3i0>40@dwJ^n@eZhv1Dr}M!T?n?d` zl&Gd_J&^h!62Di>QPm#i24CtZt$z`!s;=*fzS=N6^mkO9-r|Be)VsXDtE+0Lg$wqx zhkrU@u@;laeQ3zN_WhUg8c#>8F!HD7^%{}4a3&%y_~Pl^&PscgEpF=j;<$a5@}R>s z*oXLFNAPiFawlR^&w3#=;=3Ymo`S}0h(qd-ujI@2=pQwyQk<>J*Q@(Q2O+0C3DL8f zsLedTq2Pu3nj=%KDs);q|CL zbE-&H>Z`%eOY8yf?ol0Lk5V%z39ItYsM6!&@%Tj|K6ieqDszkhM$u0#P*2^D+7A1v zufAN}P(5fM_rJu8r> zV7_lO0yn%?jbz>!x;zpw?+>VoTTpZIX*euSuT<%-yWs8UFkIf5rqYacp{{2La-Mcn zC9QCVmwOOSjX$Byn(BnktpjlKrk-$aO}=~+KX`oEBrL1iqxA;v#pm`=9)(ZG*~i}a zv}ms4*?J0UxDgB7@~q-7PeP~Lo}6V=)m_p|!q6VnF?TFf>TI0KJ?g|tac(Zk)NeWk zq0?@@=Uuz2owfyIat8Cp<729Z??do>CTA3bqg5BC5Pz;E=G!7j^{sO%x^P}}aZ9S| zHgR0Hs&S5VB~O(&U4ut5e`oXt)!@h^I8RH0LsFS))o5asPbb1@-UXF^*BET)EVR@9 z=c*q=>0{-YN4K4B^X8YX9`L)RC}7eqK@aiTA+6UXj@FwOCd5&=sBS!qMY-ma69p7vwME-s1WU)zQb! z=t*owgLOq_OTLnq-6asd3AJUlog*f4M}DHXjwrt}6a7c|Ag$_FF(=U$ch-ABm)lKQ zTRs&B&T#iyo~0ZeHW^WqJyEO4No8mL1p2wV!@NcnozMR97{A#GqWv7@XZA$sZ<|ml z&P{^Osr88A>9(F)k@JVDpRfmS9+QOL&u**6yrEa^_#}F-daH6qan7+V3AbN#R$XqM zib>pMzcJ{fvcH&2JWvu&_3fd`9-)PD@kmyB5OTL>$JZ%vD`INPJLwEN16s ztBlx_H8JOTz8I-eM*H9f{dOyss8oSNJ%}BP!0)%UR8yC`V#dla%&vOVtbp9rfK?%g zcT6>_6Yq?hlY(F~KCP^Lk`uyb`(uJ_ce%{f0cZKl_O>z*0fqK3AwDeeN0HdqbOyb$ z-I00DP`NX33O$0|aBzBzGA?f-vL?8}@Z?@)<%w~aT#cT}i=QYLL&n0qt^+o$HC7H! zAB#DI##f4S!KjC7C;EtG<|m=6-8i**Nic>mS0pujuWI%x1RvDw0fnim*)Zmel}Uin z^kK6MQc=Mj>rqYPvLYS*yKixq-FsPCLt^s1vXaP$dQdjM8RwveobOF(rhR%V4)2r6 z&#yI1JAk#A8#RSaE_TvBDT%-|)*{tYQnbcSVTfr)zvC`TwW)l+m-gqrw(bV)VxJ&f z?Z(}oZnO5xJbxTL8I99d3$?rG@wc>g6xL``w0;%tD18);<$kW(E-F{p>39DWUgZ1Jr>9G9MM8-Q5>(2f$YQVh&SJ08y{g*%IlX`TvF^Qn#7x_V z7`%B&^bobv?*B!CT!Gp-7-i|zbjxIB(IwcXMLxJ_}Ehp<1@=ia2Z?QFSw^Dy{dAa^oyp`1K~-X#^WFj%}& zHfR_GXI%{Lo6u{!w?B@Ii-!8rLU|5%adrJ8vHiQRJUhT0YubdPw~4vza@qy2c86f# zjb3ug)z0YGl{&5D#@<-#gkx3w=^Oq+d!?!)a!k21-TOj2a>+~#>&1F(E3sH!wm9I< zy7|E^IcwEaWJNllen%UTynPbhteJ_oZd*k-HPbv&?a^<`dodu{8UaUb5$F3rjB7N8 z-dt1QQfoIH=Z%7q%g9P`KAsvWwc>25o)`Hke}1V?=W++pEeWQdO4N&uh{1W6i2F-C z)Fc0dVr-ivjP!6(ZGV@Hm*41tKDmeXlSunNKc-(rRpfIg)6ro9=l`px%fH{JLv2gW zlxLoNZ$dh(iL>b~mB~4E(;zpZ-qEVN@+9KH?nV(C+DT8?r4VPDort?f8;G2ZiO4ce zz=5=8LZLU`f9Y}PcCMb7J}w;7$yGa%{8YZ#KM*(HMnZFXC!J2%8=A7uu~{I`?n3P; zj}Tnc&yj1aBd3o#`+*ZD%Ny2J| z)B;+Tr2f?>3^n^E;qD|0)r`6+X#JP?BHLVTEZzOUCaQGz#etcTsAbYve7x($9aK2pe6ArJ$?5Ls8j3-|^~79awQPug zF1U9>9zVnrr@5=@({QHNne);B4=<$1Kh?IfI~=}p-jTmix^mMU{Yqv*GrJe?g>%AV zw)jNDR*<>9rN=(nF!xGMV?<#=fd`XOg)a<-9Kcvvz)d8tyXA?TfQz$KrJCW1L<4+>(bp zO~+4X;_=Ql6+zzVaCPO}$#9r>H8l+yViM-Ia}W(GQt*QNal3AbBD7aBMzC%i)_1;G z#^+;PHwoMC6$#^1;z&o6x2`J@ZJx&BEWHEA4c3Vln1AwVg@lZQximoI;l85m^}J|g`&1^GWzlz(L7r# z)@|j^oOvww;9l`yU?Sx6iI{i&q!_w^xHZ#66uI3KHlRYaDvw{|CoB`QM>g zYMVrF)_v;63G~Wg@3HkmSCwv6GG^$L$Je&Ayv#2R-o$#PIhM$p_;h?2L*CS*I^w}C z`av*1n>Cb#TU(}x z-7eIA{zwjsfl=gqvE(IvU~flZ#_I*bXum%!%E)uMze2iyQ!m+oEi z!pH#nwgmjAZsHXR?@a1@oamx@KQ9^H%%Pn;2g)05)9{0{yJz*wWout@21ioo$Ge4a zy^@Ykd#9{V3)XB!nxyQsA z@&E!plV^VRj@ZN+^TQlsgIzug+ZWW8?8&(aYAIb_$D$2;%+E?wWg>A_mo>!qT6Lx# zS2TVw{#&0IE3>{t;#WIrZZ8_Dcqd0-*P{d!pD&$lyfP>E;Z=8W@)R{> zh<$uNBurdNPe%}Q?z0nX#NJYRGV=51inF3>Tq-h&+jIK%Tg22z!72W`ze8Inn?vaJ z-I1D&%LXZ4jCXJq)-4mJD)kpoSMnHVtzDv(%PZrMQo!#vYk?BcFcvpCv)U9fUpaJ% zIbbUF7QQ4Y2YDW=Hc!HrEq=<5n~|vcg!-i8fDdkVXU@{{S7a9*x z9#S_WSj#y;ojS@h5ri3M;t|y2jM!O5eTjvPf2(2QcU9Jt5U{uQN)i!TNpYarWBF+UPz@{%HJ# zdvJ#ay8TBZV8gmMr$ZgxVd}5`U<`Xl=FrUUWh&D!egl76RS-AZz_KGfFPxM!e9 zaQn~bqF~m5N6E8zS3@_1@mMjBd-pvLlwi(HKkz#gG}9?bt77q}J#{>y*D2NQ z`QE>xwm{!SimQ7xp6%hRATdp8yOCbWd@d^uV-!)!-FQ0Z2q(OivE;q2=e^@O!$y(U zgpn6XJ)Oxt6=Sy$G^P&PUF{=LJ3R=~sPk-l;gqb-4ZsG@6-TLB;e3EE+VH+;8u19< zE4)xfOhw&orRIPC5T~cBtmE4EYN|9Vl{?4l+*^Gfs{~KsZu}bg)$?BH){u8^OZ@GP zFCELfGxtQ7Q)A(AwemLuQ}BRX_)JxWuJkf}rO8?I8mZG&B(sF1o856S)R-%w{LsC%)88aLy=DTnvO<82!CG`d|Rht8Fz{7Lu-OYn_g>oa;G03DULdMgK4I;8Z!&b=Qui;HilQrp3@@nbZ55 ze}4S9UjOI)ediOu!_#KE7R&)==jaXgS5K#*UeP{s20rKBQSL@lb0dko-4;R_HzXED ztaF}UU8iifB+hXhXXA776f5o$_gV4$ugg?AKaIi`)=M?%ldwOFz=Wkk*54vMlgRs|={9j$a z@)-@NQ*oPTW=g~I;`n6bP@~{+?bo_r9@H7;{OIGF_E^t5^8uGcE9c`;?c$1n`d|p$WhU;QyCSxXf zbGu&~>0F-j%>JT|!9+vdKTMO^o!RiJQBCLSlYoFS^0^`^l*f1C@OdfYTp=sl4#c7p zV;=vwSaIO2dSM9j(u!QAAR-2J!&s}&%T$u+i}!anHKP{KRwmZr{kHg@M`VDqD>xDx zH&REvi=;H(N*=*#YHYTBCE~fK?vcgk;?+hT)+YdUZc(?QRzGYR>J8O44Vq88g+rX} zZ7`ws(1SJRkE^>=ld!T5RZ&i=v@x1}H)H!MHbiO98TR$x+@~!2s{6(BJSdR5#7AqF z?;}U=$}ZNo$~oPs(iD`Qp>FfwRXWF3>99Lbex-Z7u6B(KwBgTvCt2&}=4D{&337+N zb=LVuXW%Y#&UBxeIy=@Ot@crKBTfW+r%?7TvkdJq{4SO`;*``$}8g(4B_9a zYt4CzJuy!C(X1PnBr3Wm%-??Wht2j=-nL;5b0e;=ud8yC?{pj1GcP*1DsKHb7xdvh z;^C*b7W2&W?l|)@K`EM?fV(TGhftWMl*;kQJ4_Ds&;?4>;yB!SIUA@lM>)?verGj$ zpda^AZjnFn^(Q&kN2)51Y>8Fod-UFDvDR{oKRy|foA;#!VqJ*C{iMNoCmFj;Im=2+ z#?=jZ=0n=MVa>JZO6NK9b_!1Vq~h5x;x5v>l!^C~(7GP^Xn!AzT)$ZSSBrWhk7tU8 z)K-nIORtlObw!JF)G%k>a~-~4Hh+&qg%g<;4vYkyDn%nJzUEa-NHsu9?`xI>dd6fnv{|eWe$1W%Jr8 z_qM0uNziO0xernt3RAHtmR!-?vC3y91tT*Vw<+$*GJ}-=^9WdUDN)%UMva^%4N87*Qm#02j>~*ichF*`<@H$9CJ#M% zwUcsuX#|Fm@BiafHKl~urOd}XS3$RBt4u%CveIB@)&Hbthdj~SC>iz%TrRX!s7kgM`+w0PTm3Hb`F%`#Vt)^!)7+GzH5rk6$X zmR#IoJnM9;u2lWG5ZBqWyno$BNo%|S+rpV+7YtIG7|g@ylz+P1W0i)6b8&VddzmXP zN{T}^UasP9U5-{dP_O2C33dC&WGYchGSKS?`A7fdDGK|e6MUCX-(9Wz$wXMl+uKx)&-PmoC6)=BW0D>lNd1 z^ZrlQvBG@2l50H|YZ=d)=k_X#vgrT#o*wt76va$03z^iYDeZqkS+y<$Cp&1+`pJ3a zhG{x=tvC}8y`=02N<}Z;7gZLXRcwbRqv040iq6SO4bI4O|NYLN)yhBq$`0x{g-%IU z;!?wK`vLWSuUaZ6iQC;-!Fs-pzH;iB59ab7?^Az{sF>`5e_qlBg-%i%e^(^)y*g#p zhy9=n?y(mA-+S=Zn3YOW@CyEnF;q9y4e%2G_qo4af1O1}1@7{k|Bh*;ODsKx@w{{M zE*t2Koe$tE>z}>1e=0lM?8Ln~d=@=kDoM*X;dFg+iLc#NA~nUB*ogI&({&~7M-iSk zrk?Y{OUlVh1;}I_HNEh>;`TWoru~l&hm$@)zf8^wSL22cYjatlU<#jJB2gyCJ!gI31>Y7roR|fv@@A6^X4aH!2 z8rCr%7H_zw=o6=H{VfUomYr9;vRTWp|5^B6ryOGrKl(8V1$#Cr(=XGn@E!MV%-b$E z>Gk%Ed0#I?*-EdmTddD-Q;IGhpvo6m1PrkrQ7!5X;bQEx(w6J3*Ld2%-c2Z_S8i**@Vv>W<%Sct#0v(weapr zO|$Qfb$7Id=-Y$m@JVf5_~hl7*^~VF>D6^1-b?U>KhLlDtyopf#nW!=O`d&Hw$npI zkMGo%icgU{7@as?f-&7$V_bL8dEDF#W6tp`+Ktu? z`Bsb(rmSP*O?0XgMR;Sz`|f>r-N%jvu$QRWc&N3mZ@qkK`Vy1p-ALCsl|F7N=8!mj z-Kg*dFlNrbwx^12*(G{84Q6e2;iJ+%cMcAbuaWiesnT~<7OwNZ)qT(%<>Rdk>@a5U zX?#g({V|PrJnCkSIibXtr(hDloBa!++@fAZRX(F@Gj=KaR>#AY?_=#7>y_2qH-_*G zcc`;m5kbU|Z064B^de=OQy}V{AYQBHGUakRUvi_^H(`sCcEf|a1`V?HN|m}j-4N=L zj4s2viWfs&G0-NlQk=J(Ptk?XT!qzqj?*7s*JTF&$G(uWnp3}ZT@9Z@;dd~Z`C2zv z?=}YTJZ$=TLf5g+ag_3VDsQ*xpemyl32U$^`MMRYOR;$nd#+k(x}^=bP%nt*f40Bw zO3QU99mD53e5&rr?IM^>V&75ET-U630j^G=?(3(%y59}*v1TeYEk||G4NcC)Y8%$Z zkxg_Xf)=3NM4s)A`nvh2bI7ZvUx2|cMarIobEBCz9z0h9^0IK*in(;o4W<8q4165L zJJ@=ZpiNw zRKNWFy4x`OmlF)$>uT&ej(2>oubZ6J-CJ9RV8+(BcByWrXDJ3+@@#i3(0w1i1sRk1 zj;CbmE)H3Teh$17$A#)9zAeH+)*E-TZFN;m3J~eb8m!1dSG`F-c^lOH-(jpRKPoftwreqnlNAy_4r)n+vu65??FpQs{Hx%I7}qx?-7_ z0R#TLdZS~C^N=*mvuDkJ_keO`b21dxlP(=fl==CLCBL&zy)DYKC*1M!-8`MUPVws% zf$9&rr=PY;SwYVJ4ssdd>aA5ej|~Kcq|tv$nX=U07h{_9znl6(N$E{q4D0QRk@a6`#GNO+(fxc?22Y;bMkh||99NX$2V;u~B|61(3u-ea zL684`RDE?+RBijU-HP3TiQNrzwqh%Gp<>V-64Eh4H;Nd5iXx(7x4@ip9}Mhn#cr{& z>)X%o`{(6Z%k|6}6=$w<-&gKy?{u+uS`Pm4t}UM(BToO>0HZ+iXSy#H&ovpCrX`2l zu{okqlhp_dr%%`f5gn3>k9^<5q=$H9n}UQ8+P|#12v-tOfw{^@yBea@KOP_Wb4IuL ztV~%Fi*CWp3AJ|=r`FNL+VK2uELJwGjzA0dFjTHspcJzvuC;&|*Te(LZ2IKg^h@i0 z?ou4M6R@y7`(Q`6DY=upagV;Vvh`-A>Y}Askjp->=Qd@T4>hI(7!yrTDOa~TA&)-4 z@MT5O-kW`lGR{4#bQXzwtg$hjc&u){#e?lum^rU}{+#^dk=T%y4TB${a2A8qKIz41 zPdg8rFjbA@WU{y=_XMj*>b4mrXvvrrNu9Nirl(=fJGjELy85nZAsXBS-{BoDscjQcJ-#or}4P$PK8_N^A(YGgsAFy1YW6!NGH^k=?@!tS=IdD=jvV3!Hb#Xosx4TNDU$#)76etn@48 zK3#Wm@^;>>MDF%NCi9B8Z@W6e z<(eJ5f6?aILxsdzdoppHE5s5JcF_uBMwjQ=zG+uM-I1G(LY`;&!DRK-fntoO-#A>~ zN&RSEimz=MkE+g5OBR>Fl<{TDyaB3y`e|GrN&hLDsgFAsV%%KT8gnYDRnP6iHP-1l z_3w+_ae3GtNk7<5h~G{*2%$YKHMwG;K^EM$gh4i0AzqEkKteT&K=w0;Zc0EPW?nDIgb=-ocqSJtQ?BMI?E2@aR*cgQ7^79;i zr<~mqiB#HuOW*s7akvimc(xNJ+)$i|S+JeO`P!}Xisw{+jMeb&>{XTbdh#a?BoB*z zzp~lW3tMRO_dT~OC8^}4VUDq?`W|ICb;{~rBbNL3P34-_8L5oFZ8IB*Pvh+|iGE|@ z$MIsjr45$G@XoA@5nH}k;R10c|LdO(P8q1hwDTz1xylz?)$m9${@de@chRYl)}^T3 zk)Nlon_AJX1albc7ql3s?w)@dqbD+7ZQ4~`*|!iu^o`S>)l-db?n6u7U!RR-;{M7! z{Nwjs_xXwtUOBMb!THqZLqgXi3quNdZYOULzLPSDvEhuMa=hqCI|rW$LzA7J!ofQg z+SBZ<&7LWm%u2ziV%C)wL&TF6iCDweXZjh6+xj?6Qt2xe))QWbm}BfA??=x{;=NY{ za#DGABfcrde|bh6$)9ZURvGd>5XTueKl?vW3RB3#!Sg(}%~@qBc|*63A%Dfnk_ z9(O8%hcV~Zcjv1*tJ65feBiOiP_=AWA&OnuuLx|dPI+_)7%G~4i zGx0Yd2Ug<0z0H&2Ps=RwX|VQ5-XYda$$)POZCh=Xs7(L7;4#nVBAtkFr{44<@*}*n z6z1bnaN;5JG>g$6^w;<7?K7{S&E4&;DhF6!TUziltU9U~vCrR+XJ$vO zZHnV$a;JdLDy+2~6WwBmj{#h+wBu&e}<1(HN(~Y7T^9|RZ%)z$Diy=;_=>Lm-QyTtJYTfcd8h!Pf#5>B;JZ}^&qs`YBDDBRA{a?qbv!@{RB_ zm-K8do=x?|K%R|ZldFh?O+Faq$60*ZBgJo{H|&yFBP^7aj<>l_$NQKoXDiRYdBTfl zJECKTGM2lm``XgCm=`J*!Q_zOIe&4drl>(4wT)khm$05Irrx*1c=AtXEPNnZP2!GB zdii-u#o?3Hf$OsIkv=)2S+;7qhqWGS{ALx7s2M(`m^pyj$E|WzFV7O(noOHFk5?Zp zJ&j-&_9!+us*R_z*Tnqcru!JR@aH}hA10>mosnvEAP<%AGbcP}pgxJuK{lUzRiAG{ z-#H7j*hBjedtGQ|WMEY%_RZXnh~!$U(TRMps}^R7!%tUWWM?gIZA%mbQ<4x`P5U3$ zoA9UBq0Dc1qI6X(#w zP;B@@9%7!`KCv~$-!$?!(}#zbzEl>FdsxX}-K`cWqsTd$OFLITwMkjizzb&f?ENlW zuJq*|ZGH#N=xgLEhVkyGNSi#aT&7eGa)!YJ+M&jHVN72g)rI?$8J|QJ&-2GN<$2?~ zZ?;hT?9N6b+Id#{-D}3kde4^dl}{~ z=W}n?K*YB8!42AZYLnlJ9Owl{+TU~3J!LWZi(1of=kF|1Qfn@yJ_2n!V6Spyum_qD z+ptgGqZpDqaO+R@=6E zXJ=D$m3XAO1?tD8#qi_2xYLa*>fV;6SjX5}DO^!o8kOMh9QuI;8`OghPebtDbuNxn z=RGQbl*QRlWh=Ebd>;nWSLA+#8a*u!+rBgIRPUs|Kn{14*>Aj1N1gg{10EV{(bwaX z_}MiB`=@DPQF29Oo327SXIrmZ6o~G1mSb{9_SmKE;z)Xr;Kd%!qdGlICF%Ms{ zTnz1{WB-Zsj@{v+B6GGKjLUJU4#N6d0O!!`|F<_2cc%IMpHGvG28wMLeDENMcYI8H zVK&kW9VYUu<~I_zk9gn$<9=3!I^x1;H(YPa`S__?;utahee6PT&e%W{c5^_lzz}@j z-$b-1CI&K^8c!?Ri9=Ra*dD_E;fmp6&O7qV@R|OuP+Ps(&>GdBxs|iC`%|6za(xDF z(ayhbUQnw}Q&90WbH&>))yP#(@NF=8Df?ejM{d53i~L^SefFxY*Qf}gouw^ls>bsG z-m?Z6@FrL_>X?V;XW1`GFjqfR+l=kBbDP`4RH^ZLRBWfkm@$Uxs26L{ooCp4b1n7u z_?0+4gLB3UAI02_$rv+}=X~i6;kY>thJ86h99bmN=^s9qhT-YD{bC@`Y5g_KF_aw9 zw3;6Z>2KX`uM#@$h&4B3|6dm+R&mGhAK&kE)=l*2!ZFa@1$%E!T3n-kU8aQB53Drn|rHw)a9^{h;`o7RP9Bd z;5Lg|a@#AZZ=S?J&zX3WiO20@MB;RK@n^Qr`>veC6gUuzZ!p7Fl#MmRqlM+;puwXwwV_u$UeM01 z8huvlh3$sZ3-&k0)hudla~WB^7}w7HR1f-|!~)uR^0muqHNSm$%=lgqvq!CFm4gAa zb7g}x^>F7*bflfXI|r!&z0wd!JA1BUE$N<&*R=CegCT0-ws^R)FInBSjaqdjXHv7t z9sRb3TIXX7`Y+VtrQ;`&OYDK~C}Iza?ue}~blhFz-yL&WtgS=*#!=2FXXgvk%jC~? zV+@MU6Ti8OXH363>rAG&z10=o8rDsjNy28dGp-M3-^oKKo^^GEPbZ#}P!F-5{EB1m zu~#;Fi7?C~2VGa)wtG(yD0)tHv{Cbx)b=JsFe8f$Nw(LfkuShBNx|aZuYaL(QH|>;&z+Fr#A8 zl~cJeqMd(LZ&bA7YB5T?u(vs^T2cM0GMdrOGY&pbCtcl+7}~jJ)dDqJUWb$GS?|YW zs(s>CV*eT9;w79uOt@$V(&Lgz+IUUvampOZytHqCj z2I@-c;JjSIJtFn5sBhFoE%-^my-70h%H>~CztTZxRXqGtR8$Z8g(1!s^1+V;V+YqNYp91*P=#Wc=|CLFL|t;&|1m8FmL-+dlYOIM!}vI*|9g>FKLY>AQ9q$wiKxvulYWKy`P>U)SBgI@wA{%x z6C#UTRgG!qEvNR0+n3$&tQ&DGM{~qTaz{lpC7x;dT9Nw30acl=Y9A$uD}i<}3k=1C z>_}l)&j#tlpg!IZAdI?Na?TTsJJhCc>a&nMuIwStoGvW5-;?(@7;60iBIwmDy!cAK zr|7z(bntY{yF$!Z`gx_*w5fQWK>ovf)kJc~nb4$^x3lB>OjTQnJVUhej!_0hW%JfR zp`9x|>Qpr9>wb7Pp=Raix<$7>Z$T&K&#kXLRlC$!g9s02lS@EqqgF8DR_&ENP5`V`W56D0Jzj@uf8tc@V)&208cJ^4=xM=d) z6vWZaM=$m)vZ}TnrMzo3rCLSLIKR6`U$=AbE%g8~8}Uoo>-fGy)lN@93hnGxKS`bO zF9B|}^CUkv)!ix)TWROvjm^|=gA%#7#2K`EKh-HY0qyB~D-Cb0h9&?-&z*c|I4NpF|*#-07NXH^d@)V)`Bu2eSW^@S%QMdOYiqfra7* z`4tUm=dh7`#IQ1VSo01ZJh)kyjdH=nD#WQ?Un`JGt=Nm9_|QK^+#hC-X^zClE{_%+ z+mrk2R0y)BhEQ?ZihR@|D68ZoX02U}0iU?rXgyVI|FVEHmJr;Ndx{2&&B={N-14wW zLWtQgpf8>FZoAUt!))9nMqy3!tBQPYF|>`#=Nmuzu2W4r_@OFu$cR17i(WjA!5Z3G zZriQsCG!Mx_N7BARVaG3SBF`xXxrH1>aQX3xK2B_by%ksBqku1cD5+gs;dVkVhQbR zwQ|0CaAhKn)6T)ija7TcM5NKqN1u08%Z?|&WV99quj;GWC*m<+5qkm|71ernaVT*n zW~}WS(Y$>OUb0s(2)D!%qe$#v&9Y+dY0+_y7CWEtzVy}$rytZkNM!Hj=w4Bp5srIp_%plasnd_fqpA0Q__SEH*V_b)XTFiU$y#lyO~h;Z=kq}$ zRLg6L=)^j1_s`DiicN{szty6*M+0^9&jii@wFqcdQJwZP9^s6AZ*RX4V^_z)oc*qE zO|Ob;Q)1AT_P01zB&JS}#30t=X6FtHtLwZ6Pnp}a$rC9fgAkCwp6AyrQQ@%^w=Ab%daRhF&#t+X-P@8)vAcL{~;SVd-!YdIiv)OZwGEtwtNF;v_anbb* z)k+*@G8adp4()unG+msyL98zOrC)2V5IW+Y3u8IkjfxdR{*cFP6m!T4 zTCt`n>t)*6A>31#UUJ27=E-fQS_?PfjQ3U9k6u4pj52XTW8&NXb(tUz^mjyRGIvp} zOhn;Zdst{fVNt!O7`VM%Z}v#{e^EwVrf%t5&LCbMP^KPVjEjf( z?0>o{Jyw&)V>huJA7!QZDzP7B<@@}RwX)RGVL`}a&ECPQVbK^>vLcc_MUH0_xD`zFw3e8sChAj~8_lB9la< zD{(J8=gk*Kh?+dlUFkRW#`%e?gN&sm#44yx;$1y*O+?c7x-AqE&-1VmylY|8gh!vH z2&J9>Js2e#_h;_Wn7F1IL&b1w7YN4mW{$l?Pjc<7W_;9~?kMWJI}wA*{oflc#85X! zXmiOwd8&@E(Nf2NXRrFMuS%McEl!6pcXBzSysBjl3x57%FIOokldRy=Rfn6;CoArL zwn)?H@O;ZorF6UNSG8W^SmyFi%2V#(KkDl~jw1NqEcI)2%LdMb+0yc*tJF+2R7x<8BhpRb`%B zmMt{)N$AmAi*eS=MYGgIOl8g%6{i!yehK*QMD33;t|I$M9P)g)FA+6gj9(Okg*?xf zj!zQyT_Z8qNQ;pABg6~-{)Ov2OCJV_S(^f}o8SFrlb&K_I(O)eIj{8ZAbNLQic0j) zck8qeCLwO{rLVg%t-i>A%cOPi<2F`XTiPnIXZiavSI-yS0EQ5I$z`S`@L~v{_nBbS2M!C&ry)$^VokKHd%@kt`$6UWb7V?3dqn^BMTlouC8_&zIsd24-$(xu1&m!Tl{t6tDimg?WAKji zn#R9Z3X`B@d`%{XxxbINpOuWtN2r}=F;z5(NXA(D&-LH?i^8$V7*IzGzy586ZeP-W z^8wg4tRoJePQ;Db>|@0JR!p-J5KW()fAqPs{!$$J(asLNZYWo(Q7eRb-JL3Dl=>+V zP?~A+Z?dY)+QGiNOdR;`ql)hY>W?@PchP#EvSfod2J~Y6JAJ#dmz-KO^W3{ zH*8=%7;`mU3DCKs6>aN2Xr;3Erwb}FZXTbPq`W)lg1RHQBSxHmG&#M@_-v+?Z3qWAY0a$M7%_4QV=R_Wa~2Deli*@POZIZ|&iV&Ww9cd|&%%uwpI~55qWHJAQy7 zPLgAj@x|DrhZ6C^4h9Cq9jPsq!Cmd}t4cVU1-_Gw$r;~dQaB>C-Q)`$mLd3Gc{^L| zlf`rLx75rJ#rEA}#3DO#HZuP1oKaPD;7-kYazVUGXRdN60#!K^uUR=m*?cAe7x^8t zRt75$X^AMLf3e&>Q|Ws-5&8RB|K{{pR@_L$lgE7BuDNo?GZAC!Y02|aNy*-wfU!K= z%^EzEEpymgrmxODLk{zHapV(bjy->m+;mekhO^h?ZM04P>K%a(KiDtw-y!ckPaNV( z`s9-bWxFK-Sl*E}O8|L^{k<`TpBdec%Z()uTsEXO)4Job_L(b^nD;tZ6v^@VE|}ei zJ)D(_JZP{Bh9DG|M4^15mkU-6CwJ3wMYcQWj3`rL>PBCXFAj9V8Di>UM?aCP4Ryc` z#sZJ%Z}PWUc5t_)#_I73N}JWT@U|gWe%)Jg-)Rm|kL%F&cMYki*c*H8%iCF)g(>&X zgyx#Ra*Dx;1v#Uqm|*hJB@t?@7Mbi_Qt#A4$pYNT^`o6-@KaYhreD5OZL94ku+(Ik z$iC&z0y%f29l9~rO#NOeH*~Otdw(5*Yd(;zKar0rg|*zK15ye1j!#`H@1H{-wU>7W z@~knhXtiUj-qTP^z5#MX*e=qa_9iZy{=`En$bZp>di0zP)ve^BNi0rAf}WU)`iC@A z9`f}k_RN3$)MOPTV=C|0!w(Z7en?X2x~-K!z4f8*=&N0Fqz9+dD{#sn2uMYfJ*SK%TSj=RK6F}$sr zSDK8LoRfBG(nLCaiZhXs#543BDNXlEhF>tXmzKFoQ}!m|!Coy4eG{ZAs}d1M+wNPx zQEERd0WZEY$LM@WdbuYKQ8jfKnsQ3I%3gH!YC3F7xGV+i;Lh?@>eKJKAWi-r4lBmW z%dWEY-~97GEv;{Bvm~>B0oXQ>J+2vH(kbqyEvysDym^dtW;?m>UIoMRN(;&8mMgU6 z;~iF7N!q>61^(BAU^e@yW_WWKEQ=?B`!Yx+HxF3JG|>H&plaiV8!3^iJc%R%MyXLE9> zhVl24d7j;8?a^;z-L{plEB$oVx8nOAm3U9J2aRK?cf8bsbNRhFnwWdZC}jRN_BhY* zk7VkPYhiSwhZKD?83UP*jdEQig%b}Dw~l@LtQg6ZnEWBvwfLH|QR);;Y;6S{_Sego z^sN(!71zP-{ADRCl6LN?!{y5_rFA!Au!8$F9DGSRx1;cuHs4bAOS;b8hsFD}NXq&k zd2VK}x~CS?Cts6hd<_CTn3vw#DXqIkjgFz5DSwQXCY6wr_GmC#$5$n)!38k*B_H1n)8P_Q!|nn$+nNOaIS2b76tT?qxF0e&n6)T30F~ zjzu?!&t~FCsm6bM48~=h||nJ9V^XIZrpM}kK@#B-`NBmxYzl|sC<9JI;pE%6iz=(|8V%v zA$>f132*p%P>!$uN*wdnYMkNjG&UJHB$mBf{+xdoG%da+lV6!T9&xRt*j6c+Hia0V zKeMEV-bpRX_1&RM~A8_hXU8bQ9Otm zsB=c(>0BMI@ys_|I|>Px*vC4ig=}St`{^N=!8+*kIaBnqA#XQx%i#rMF}8jnnzzs* z?D9l3?H=%d-{t*0>iM4a!;mk;o>gd%=r2Chq~%#nJt)l~7NeBUXs_iw{ot46-gICe zV_ZGuesd=zvBy{~&OzDG*b(>KiAjj5g^JXb9_(DcU$>~No7^Rucbc|cD<9SG;b*a= zuh=#@NM9k9Hmk|Ly1%uF=g3%W@Fix$;Gw3ZDly5;nFDm~D!uQWg8%x$Gp+2T zf0(_Ce=DVVnaSu{U5CyM4@*w0Q#2EF5O;1#VfKj#3!pwz^Pkd->+vX9qr>|pbuqMA z94ch%&@;IW29AtD{95ijzUYPG%rNXKGC^!3 z=DNqp!@RjUJaUPtW1s(|^8smLlpDMP*x#v~W3nK{35Pnu=rX^W>*3>T0Cc7VP3sZUvZcg7b~-F ztq`VfmZ^nrZPqFGwI**S$Kp;H=T<-7YG$-ZVGYXN`BnX;&`~MKq2KBM+*=AaOhMTV zzIIqI&Doxe-`#a+ai~aYc8EPCo?G8j&n3gfi5Nk9UhGp9Pn39KdwCWMo8rvpSpL2a zPX~9!LW3Ag&ZliF3`g?hC`{#_&+KD{A(tbNkgCJcrsg=*h`gpe$LI3RaqbE0?+f(X zZ71Q^svtCY6NWo~da%z(UIOOE>&kveUFLb<(uY7GEkl~%M4IrrcdS>Zg)nnFJXPqzbb3hnOgmX zEyPf;wi@l4XtLQN7Q^B=zv%E?bC_p1VT2ZcEr(03iBF!C&K-@?P-(%?6s-8l++byn zbnR#|dQa71VAfe_XFmH&tGQ1b^HKUfHxX~n(zfBXF(EG=8(-?U2i2A~jKzym?)B+< z<7#d+GK+QSmNFPq*xz_VKXcz=02a&aOELFWG7PbmJg@OHIsaW!0VbQgv4FEY=S9Vm zbv<|Ps|DcZl}yPh&=~_t$@OXzE%mtQh_YN?wBNW$+OyRGnah@;;8PQ6*G7BPXzYVN zaW0y{#EoBRLEZVJ%lhA1_C=pk^T{b+UZA%|Xb81N9F3LkJ;=}YkNPf$)0EQ}EaCpy z7Z&diD@7-55XIOR?{`+3Fy9T=mM$&V-_Q=}CD%%$Ml{dx7(E}VQ>nktfDrH~)f_q()ydLo?5bhw^pfU?!`xMC2F*nb_cb$2Yf*AK@cgF$#3 zAC1PZb@&twxZICGM<4FVqiq?)K~YNJ<^+ zj{Veedzrsi>f`SWt(71B%Nl9W21o38K|C&bUA#9sKtmp$=&c%Q>UMj$a9=`Kpx1aj zvqO7{T6h&=^@rBmq7Jc)F}=6Q%kEp_w2v2VJN8vF##&*}Rd4j#o}zqsX-N#=GOYAG zq}V*NfxOWdwq|sOdG4~>QMI`Y)H{MEc)n1U=vEowIzA^lBAL5+)?DUdJ4$TG^8e0LrbqXd1!ILoUr{qj(aSuiBN_WDlxfKurbR4s^5#Ed zP4*|pq7!?0qbvW=DBS6@Wp4fIv59mwHw6`5lQ$z#C(VsaK_hb=8c*FO6~0TxbeVe# z`In?tmy+PZbK80Hcj@i;M64VWj&*Mg5a}IHF63~e7j=YzTP()UAXX!HFv@yH<3`JH zbYEkNdG--#nn3=?`J-`;y`?{_$A3Q@f(!aU6pbYYHL4}9FC+)clOW8P`%`k?;)b<4 ze;nL*PCER|2|cbagYUKd(!olOxLc1JnxQ$8_W%bpzV5{uAYAHA-Ofje8(u-4nS@h!svXr>@Z78Op?VR+wMxg&D+@ zhPJWAx6j__l664RlW%J3&+_=XiKV^e4Qn{3pszUiNY*bPZY84@dtU}x{fYBhVo%tQ z)w!DlXEF}%VcmVHRC7Bf1yh)doOv`*N);&>Tvdl}KLR9!^(nCTCr4GaZ0YO2WEefw z;p>>wQsAv5Y7(+Hd;Gm*HzpBN+`^&srhm4Mhp~?Og*k1J#WPpsqx;MN+*3Kbv~7gb^}OJEClK}vK1*+jM;c^F z{qDc#q}}~EE6Mf2t!f3*>nI2Aw|PO@v0J)d#GZVzCq~{{E{$(Q&cNp$*z>|l8hFtT zYy91DU{P(UvMSE_CN#a@IsEe4v(nX37X< zA9IhPX)KB6Ex-^R@c@jDtUD=bom` zO!`^JVk~p`ig{Nw4}(*P>*vgLRR_uObP7Bg>G0&FmGoXoAs>j2{9r4k&NEXG`CUg2 zu_Kb7MKZFdg_Dotp0w&~BEH6kqr-^`NH9sj?)BvNU)%_F#>YX5C$GoV4rp>b8lD|# z-(%hJX>A0&#^^A~rW+m`YH{-~`^<-0;zn!$f*d)UK2r$~dU!D>4?wDQiPWr&eT*B+ zFg~S7TFl<&l4zKiB~uYq(&iribK6jooI{$ZOqquO{8p4k@M1@VHuJGP^UmD;K!o!@<>> znzfeTPa<_AraX}PR+xwA<>h&(KDOy7rx_4KL7!acyF)k_cEl)_Y-l=IUIZ59+X;kPJm5FI1b^G)N()^${fSddgCi;&);ag zrM^NVgJ06$F~p1Vj`)AB0Q1Q@6!9|+*!xrZ(S=xm_N<#uKako|gKQKzx>u$MsTO++ zn?L!%H#b*$(A*UhKKkHc_8MvM2`7j{Uc@i1md<=}gatJba)MK(gAtBcS?0l=&nU^I zEA^>bxg-0WtMq3+-yiIX@i#|HbGkX=WkbHCMU28qeCHY|vkgNu?CH zvmaZ%q@7e^kc!f>+{Bfjh2)=fTlYH{L zutOJs-NQX41M;+2TjYyRU*<`VG%nmBBH!-EsnXaRPN-Ceb;Rjel75vFLe4FP{B62) z%*zQ@ojuUQaI~}|$_XPHQj_#iFUf{;Ti=Jy7-?To+D}cDy|N?5diRog1i9jEeMgwO zjzmjpj>Y_RMo^PS#;td;)=6?M7Y9GDt1lNk2!cfH?zO%v^m~R-%Zt5SzlNjqf7nOV z^0lY$(ZaJD@+*3A&$Q7Z<1+U1JF!36{a2ES@w6n|%4Y9kQAJIs=}9nPkEk$TqbdB7 zh?lczY&ZVz4}2hc9I;%`$^*OuDf zgFk7cx?ZSMmss=e*EMTYH?(Tti-s+aYYq%?f%`FU6i1xU_|0>M;aD#m-*#4G(8d`B zPw8WSUeKH|az-iV1fzqGYub->#-iG87~NoprpJBaPBWdkhmxl;Qe3#lM;_$*mnENd z&d_XjL=%-g^)=3DlR}N^CACe$Yf=l|oLHRy`;R#VYwh%*HRXonE%YZIX6BX%eYA-$ zGFXQW@7_&6^}H{ZY+9?$aNowJJRMJPKWpGad|S zS~$65BpxzOeBD#O&`1hLR(mb%@@f}OrcWLf&3S`qmBP^!&)9mn@+<%>xHO+tc%N{|WTrl)ymx7+l9TC2TnkkX_1xKjw@u!&+zFAk6 zs&Y@WLK{c4>Cgse(j74_mwi3gT;j@|uxE=CBF$QuT(k{B>Z9_!m#Nji>)$7MV;%9p z9v3Y1`G=Sz?ITX+^OwR@BOjE+{D(WuFRZhKGf(CrS7N^unuo+-egS9UYwPL%`H{<| zGI?xfchye_AQo{ru}1L|^p5PKPI4l?E5%h`HY)}V!`bJb8LJ=IhI}ufm_eH7CP)%*dHj=Q2%k$D|Zw>3Mm|W z#u`U!y5X(ZTo`iM2G%lle;zz9+&I<_Q>>g>o43~cf3U~ZV~#jhu~A{=agMMva=;2_ zXKBEF&I-Bn+aJU=FXGtAfimM=Ta${%0`Z~Ly4-oLUV2O4IL#Z= zh!wdX(@Vc#C$X0YcxFu27H*=xoCo(`PV`MJe90QuiGI7bhoOEKaV!`1v+tBVQ(xU7 z7Qer9Zfg^z-^m{JeS-UZMb_OwAcmT&Vc-+SPT z2|?6JOm>CAN^iJVYAWx^c0%Vb)G9N0s5hk^_dMns7dmg#r|xjT6JqjCb&fT$$aElg zJAXaNk+PTD!)+Kj(Y{*aZZA7*Swek^IY$xy$pIzt+|B6N*5rXI$o^9jdo0P3@=PoKzY%+ejZ@{k`XTtt`RRo8 zjdEF8AP&>c*^lpbwh;H~D}U1C3e5z8Jl9GzD{v&;sJf~+8u>Qc6p-}XR*E9P7XiP$Oju%5a0N$QDMc2+!3k4ozUeL`WK8@JGL;^ zpWCPpnI4O_^wqwTZs~tajYV)1_VM=AmSC>7j$r!DoWkI z)JzBUik2SI_s(<2lRchju(38`9GwyO*aNLsuY@I>F^sXc=viHp?T3hgAGD;Lor}hX z=yMIcv6<(2>7>4e>#5sNMr`D~;loT)p7S1E1MqLaY^7FRKVmig5TF^Wv>--q)^Yab2G>>o z)#5(#8UBj?s}IOwZ<#vKZvs9^_lTt_%;Y(r8;KJoPB`|$8R)S9Xt(2fd^AL^sY4 z&aIVi=_1KP$X;R6E;*id?s1A74o{2Zww+jKI}t}c?7H0Bp7^*|#G&aP$Un$g{_Hq) zs5jr2r?vFwZe}q4UA-XZ6OXjmCJ>MOcgaz=+;R1fAD*>Ikvk1^!I<1-coOU{XEt(z zSEM(&;63FuCr9WrJmKaPB{%)-h{9VQcs3zf&R^k#WbXZ)eeEEV%o2?kGe}ss%w02FGX%B^SwjnCIP>LkVM~NIl@8zxRkmEL9Bms zPv}PxtDJn8I10Bqa-ZZFtbRosiSa9i2Pc%T>vfeV!cgYD=xYxSs>Q zQi~|%%_8aXCtFnh=7Qs84RDm22nEaor&pPe+gb;-jdsGOP8*EN5`8iL>7sJyIovd? zuy=+VZeO96#z|o!TDs%>Ci0y89-{g3%N?>;D0#9@nrwT=-uX%L1=XLa@6y$PB|o8mPRk?Dz{e7~u(1xSrV_&t^HN@Np1X|9El>7*CQl@GQP(*H zTh?8aE%JTPXh9J3hpn58Z>I2sD)|x!S zMc$ayH$*O*wkz6}jj_pi+HfwSaZ?~5h`8lHCJL~Ezd-W3! zvj@Vw{BoT}(u;6g++ZDOpL$#Bm_c18FIUv;V}#ev?1y}H!nU|6#y3iqVezZ-cFtWf zW_T>0&lc`yRWPlmG0UJ1?Rs*$?zYnG*x-ixZq(Tu^cZis1$<)&XZcK50lMSMMLwA++6;da^kKi45Iy? znI4ui9U{@;CjHEzOY&%*=e`?Q?;n3G&w9chhB580JeOCLgus6+_w|n4mY>YMkHgosFF=7Ku4yVYDv)%ChE-`9Oj`H0Pyzj02VCFnamd%LU=j`hJe0%v>cjmVv zec<&vM6PS?h)P?%P_b2<9Dd#rB}GfowRVC$`ych$F1ce^4QE;HqPTa(+aKRM;w6oK`oS`2rflNkh>VWDcy--g?m5E| zFE03?_5DEE)W;E7J-x}79womy>xdd7J<&BkT26b)UCue=Al~93kNn|)Ax+#d=)949 zqq#kLZFIwLhXs0rO19KKCZAoU^%^I08yr3C1~q1~G;KaLrHMC{`f7)L)cN46Z+Sbn zKT}bo9CyZ-tF)(+x#rzk^6qZtdG<-xR66a7RA2JujUBGpXYNOhcjkK&jP$F@sK+sd z{DDe=-tA=+6dmvT-}>@FZ8ZDz}goR@jrk&m_2VtzID;(DH!#}Kz~%01JPOWWjHBYfcS zAqcTOBjm;F-QhVd5Z7&I$vZwevoGb3%IinVli6Dfzu`yC%UN>aPDi{KzF3=UD+h(J zFKSEf^7B4&_XI~Qk-d>xQ7d1*;0U9Oo~ScNCtF={g#6wEAM5zZbuTzz!GBtD9p}p( ziN$R`-5rfxd&`UN+8{H48X<2#>u-&-!6OfM)Cw4@Z!?b=yjL#pq#k{(d*n`eU*68= zH+Ir^@^iMk9*O{qNt$!SsgB7dma(s&X8ag8Ob#M`vT}1xm(KpMWIQri(^Q{2ClW@i zTe@x9tiLiK8nIEt@;3gXKV1-wUfYO~?$uX5cs?5cju8iP)>3{lA{tN5GEe&vBPR`y z!Z+Hs?z;{0#Jds5U&);O*gn~W{k*$o+{Ku3RKCLg;Z5GD9mDs?8M9bxj|)L_6wUvl;b_q%+azMtn}}qCxWGA<=N6o!#15$m4oO z;Q)Ihp>bhyr&AG_zk>13Ges_}6Atr9ei+L^KVxaV@&Gc6EXr-tC-Ab&Y* zk`GSo4#LUck#fsK_KAtB3yWwjOM9K+z1klS23D8rbHsM;t{#gWD1S9!Ow98@`^mHAGB8hD=8lyP z@p6^LcG%X)9W_hxW!)4TgpP1WkD>47J?pHg?d6XCPJiSFKK9g?V-HGerm6nd8#_(Q z+j-a^56#lg&Zu~U=eC1J^W?n?CT|Ue*nwDbOUPfWZ_{4s}fqOnQa3sWrE z6P_K0Uc1NX^+ThPOgndanW5jPL}SW!?(4n1t-nFPF_?D#O>O#GeWG#s3^5kBy2-QJ zMqx%i=X#!um9JDGRk$6`6EBIhR)=;uvcPMe%s1h&IF>`9O7n!#>)nI zKIldKR>|L1^82&ym|lrHDvQeWVW*vuo5&vY?rZvY>lphuw`$h>zP=gl`FEBt2DN^x ze<(X3pf)w@`+e8?z^W;??$S)c$|7DJ`Z5C~t zwnBb%!WJiAxFNy*k$h*pHQH5khehQ!N_LSIR^D;L`P%)I?8(HRS9gKONN0_2eINWD zT0Y;fZknJGWzLvQJ8MjaYm&-bsEy0B^xR03VC4qu5OT(LI&QLLyg&LDk+aceabXE} z&3tL+q^kAwi;bgEA%;5_R+jqZYBY*z=LwV7>(h=!!-RIuS$$R?-Gw%%oxK9S>95tN z-URWqjq>Wt+Uy7%PGlZ_x1(I0Sc6Yv`HTklmbdH*18C>Fb9>0mz62tFK6x+>G?Q2U z_5s+hFdq3keg%CCjIJb4#+2_#q-ZL z{V(RXu|IrJr_E0N9p(l%IlEnlZTg8zxK~0<%g$S}Uf00^9xfhu7~4UyBnk>6a=wAMQms8 zb8Z9!1-lg$3~W*C`YoUDpV#k?_qyig8HZut=j>Q}?X@4bX0vn5X;hIjSwGfgif}Wk zG=#p)0Sh*($da_R9LVN(u8!JpPdamQ{XhBhz83}3S(rcC3pO-CGnkdc!b8DL5O?UTgQ0xaM-@eh4Je<}j^j<^DXtoDUQPo$pJ7Gg! z$Ty}t`YCesY-rg;7aEqUBDA@OdE`^hw07DK;dX%qm5*@7bLqvV%`l_W$mECq%)`#r;jcNJMSE8l%wS^AgmGVmVHZbQ z;p0mU9a||}!_nWE3|;aiKjgQ=Z83Z0O~WES%UeISp}ZPT8YFFy+XFWa9f%!a;|2NN z7uM9+$&K!9AF8-M&YIL7Y^Kv;orR}Cz^fNH(W&P>`z&q z9`dif9ZA>P7vIM~u8KOYQy(AF8@W(kxXPA>{_vtLb7k_in7P&{_M|>9hR9ExvL?e9 z?vzEX*h53B<5S5a$!~PP2^nfNDs;+%tmtq zI8crhdo`13PFqKsdmJcvQ#HFn>q#`Xp<2%w>>heqKb4ICv2&BRSJovZt!Nd#V@+-H|g8Zf#O$T8kuKdO_3{hRA|;{EMwbl$Iwpdt_8 zQTra~XGrMy=kYkXx7_~wzN9giw^&2H7od+HG0{ebEX5Vuq?>nU)2ej(`?_(MTce$|gFEv)XR-En%IofxcgW zZxsyL!??8+?*u%wa2FdoY7MP&2Jhea5j!()4dq|8qGj!)*rM*{^eKPkKXx`UX)E*Y zV@E%LIok#}Ne8;x)8Z)Db5~pGG3*LCv>JUYo+7z0&YSGhp@AGfQ=*(4LFt$Udpcr@ zf3aQc`rL^qvK8G{u+}0;Lh!+_oU^ycXSSz zTT_O%2lXRZ2dNkde?EAUp5_u6bhuE>*1EY>J~2AI+HD~{A{`U0Wd@r}?t1MX># z9>L0W*tuy(H9suay*sOEcd#Apsy@Qv2CkxX;B?*(KCz5&Bhs2?Nw>;&u$PT%$^Po{ zf9%}*(E!=m_m<=cUr}`{R_bufnnG-V*X`>gby2~0)QkJ@D2P{OU}QGq?C1-?ez7L40#zv5h0kb|B@x~8y-y?vM~!#a$MrOJ&LxW_Aonm zR}u`&`A{(O3bUUQ&u$SkX(70gX5FMlMqxCk3G>da`%4WLAir)7qVMkpN-v%AC(oUM zH2#!@fGOLy3kzhqlZQW^8-jb7A?JTJ}%!PJ42Fn+YH78fha1J?INioDSBSL8pE% z`x$IRwi3gC?A-W#vh0YG1r?PFH15W?lB!`IB?I-*KBvyoxf*y@JAlhA>L#^x z@h9y?*p+sujr8^)FM3|&Psuy4N#2Zep{i{3s4itm99Cf8Wr8<(XRnbA0nU(J?n(7p z6D5{a*7UH!ojR3m*U{`_MV+%X0H(b0hRS zZIDCz3U%UIY8Y)rNmJUf^xMX?{;UPH?d!_)n^({T=vsb#AZMe?mXSL&!t$E`uuhMc zQlE^Cbo5*%8{Tah4bd?8$Ie%0%$60uH>ZBl*mG5BB{jmH(bh|(#yf2&p(`+@ z2`?nuT;1p(dPbv;1xk8Uf~(jKIl)?~byEvsUnY%KQW*H$r)>#gdgGh{Aw-LV%rWUC^jXk-X+*UTO=*?hI>w(El82@#8E)Fg+5|17 zBkMMj20drzmoBCkiEAm_b1svHE~24R7XM@C*K=0L(x3}n>xVNuu3GxFgB2ZyJ@bFL zOT&>{7Aggka*B%754EXuVlcJ%g-E(z0hhTwbSC3o>P#<-q*n0NkF<}?vf@#cx)Jsa zF+OGZHHx}y1_#pi<*CEqy&SN@Jj0;z@_Vx)Nt7U;xVm0$Q35+Z52l_i5%R{X(C1Kv zX3O$y`5B*Ja()TToZ>>c%053Ta1Nl)GxFuhYdxWF?ME&yQSvjUn`x-A54DRim8*eE z;Pb_keA*bwpBvlIxnj%^zA=)=ov@<&GFRFhw^AO+E$DYoXVTw4Q@($#8GTi@C&Q#< zdH?*4lxl4SKB~Lo;^K8Q?AIpjL?11<+O4MXz8h#_$D@MJtd%s;X&t>z8P4WSSVr7) zEfpn(vfXDElfR=0wR*UZeXv_d4LPg+v#sqAed<3+{~tTY7+K2Relw@$&EOA69!gu( ztf=dxVDzKYq#74&XzG_Bs-H4lD&6Nsy2GJs_RU+esvi4cmHzTD z$sNu_Q5@=*o}N|m z?H;0-z6%@~^v1p)NLF;{0o%u6cCSaKVx>0til_<4ElF0iz6*YLM?b1mc2byKbEb*t zsnl!CP@KANM;E($((p2M#aY3c`USX=caoYSZVYBdgw5oB>y^B&FF4GqjuiA{zI;mZ zCMrV?=9Uw#lajQ7ZjJ!g_Li5`a#A`mAtrgr6y$GDWWbDT3T)A@}Go zU!mcCW9@}7;HBy>gJ}OS;27xb4A>Yz z-@{KT>ioTFrkyYKf0L{*sdA+U2Z6004Oc9l=}a$sdeDmj(Tck#p%DsR=$6Cd6vr_a zynL7=^)Rp2F{-j4eg!)Mmu{D)G?-Fm#725}euB*X*E$-way5;WW-;cuf?x;CQiZ~Y@BjH;vA$0OP`|eAxE!V*pMaFMIHC70X(fnOX>4d*elW+b6Z9iBuxvU zmw@-}vo4k=G)K@!Lui#>*{*1{0eiks4|YA*Ls*9MtXc?6d+uVPF&4f(9$NJF0m59Z zNb0QzJTNIi(E1%l7hJLH(K11Zp8|gCtw2g@_7!Aye)RIUKdtyUNBCCk0o@c|dZyV+ z*zOBHzLpQ=z5b?H@dh}RU zu-k4(9@pE@ARSv;uu4bft#3__v&|^v@m1M_Tr283a2*9@&7qHrtjYTRDw=YkkPH{0 z&!x5+J0w(fuL=INwD{jT<>~%iGS3$5SOHICmaD$Z`-LUxTSAX?;W$}`!-$DfgK1uy zA+lC3b~H#GbFyhaq+2$4Q-=`fMWhMR+qmC%pJC@k+cIf6&U4i}@DNr;NFVGCrEQ3n zE0kI!V@8Kl+-PVMwLU1%tcsv3=y|P+tx#+n7e&g*_e9l^Ldd%)+JjmqG|)i^&Vrxc zg<4)YUD$$N?P?F`h830ySB`~~c3)^)m7EZC62WsEhFwVV=oo;Lba}yWA*IlX97lUo%1(NA~rC1*zntmmRT8cD>$`n&1bAmra*lI%Y-v z76en$rpdBt{&v)RGJHbU&a!eBZ|n?&uTZ)s9fH1p@O$WGedN++oX3k_@w!8X^zW`N z&(7#QUF{>vDmK^a!fwGAcEc@CZ=mvD_#J*TNH^JP;;g*;S!mQ?GImedf2^W0fa765HA z+jZbSyU1kI!Bc&YyxOcsAK9TeZ%W=4Oh=YImG+tk9?O?t+Ejg2YFL6i?ho{px)w`I zp#$O872K`18q$H7pC}rGJYBxF9-gqe_f&95J}TfKaNscBuqMwU5$HjR^?lS z8+)Q?3^3}X566XzCnM2!#p~U7g+jdu>gRx77EAZ-eIDm=de&Q((YH3d`%yDz(vUFQJW z;hiXmtz5`vyg%)HA0$k-+)S6y+ntgKjtBaL)BLkRmmdbwL zvZ4!4;OMF@mf029(ZjWG~i|+ zb?R|L_^RnfhgAaU`H2!C1O2OktpiBcAzjGZ=t3X${HSCQ&NgtBAv?UuV6drd#7FEz zQ1zm7j>qW=_Ns`=KFD?U>lOq5jNSe(&z$|(C(Hk0K_dj{Z}hg1omB>xX?rkT8fPri z2G-4jftw99mR*FMe<1el-Z)OCo#9Q&M}z73pw_Z)`rt(W23JuUliDsLf$% z;%0EWVCTq$>ym5%x(>iY3PR%)AvzHhiGSmJX^wC?Hj@v6z|P7srGea84cZ{@NgB zgg%%h@_Fff8>R!hUW4!QV5`{y^t*0d4yFt97qX2j{AdHt(!3MeY;LAEy`3IRfwz0I zBT*i-wFrDCqsKy~z8fVY&bH~ZLrD1TLOWdoC`#xr_|A8sG2nw*j=C)y^1z9npwDjE z>K6I$v!^O>P(%72)!ke5mp9`0Pri{DS}JS#gnaTG^cXL95Qg=&rVGcwqg$%N`#iU! zov)EoDJ%2iI~=JNemE-OJDZ>e-!=l+cJH?-UiS78G#z;D@ggKW#UHF?u^s{tA$=AFmAKyBf z%&jpec)A@|ogYQgb)obr^cge%96^QPm-c&J$&y{d>CI#G9J}sf^~$K5wm}1Pd@5Un z&-S;0Z@C!Gre_8dp%*qJz=I7t6i7Xhqb!(d#p;2P{Kj+dczh*e^MR+T0jp`8#+Lbc z(bz}upZ7X4^eEeGj<^O_kQyxy3v1Ilq9T{QM~YtDQiw+m>(J`RfbN3From zi@pgw>1PWyL>P$lmabRauxWEC78b*syUPIIUPl9Ekmi``A|OaJ#@A) zZ)>H}oqvO!U# zs9#rOCH5X9orIkKQi0Hz*@>60Hc{6Ff^dRqq?JuMiz_g~0y5_koP z(DX|`uDis`npV90caGk4f2nNaO$(|+?G}@)E{yAHO%_+d#cfLFS4KNh_i@O(Dpke0 zm5vmh4^6Y((0K3RLk}M!HW@$WlM675^OuJ|U*Mk`p}`DZ?z7uF__$>3Jn0%rD}oaE z2F&`@sE5)_P3+(p9ziq5g;E=~iq8m&1hNRd++`B(k`hG~D?-V#d?a6WJ&N*7pq1g+ zlb7m7(b1*Qr7>3G$$cWp9=uZ(?T0L|Je)qmrp~sE9as}ao9i$O=8Qc);G#P1Lciul z8v8R5xZoD#Hgls{?TH|o0XwYN=Fc3P1E@dFj8Bv;^QiTs=g5;($1Y|o`(kH0`avU4 zbZ74HAv_LsS8$9l-o=&9=^%EjZ6^!Kai))mLBfZ5q~F_th9Q?VRR2nSv~8#uzVcec zA>A|+%)fw>^uKjVtyZb*lH7tmJjHHwr?JAaFW~9bL$6*pjjIoEgkCaYO^d2H68ylo z#pq32br2UHhEKztEqeNh2gAQU_yhhxqk@+m0w#_5!?MC1{55Q50nY6x*92~d`M)1V@f)eoH8iHt=Bh0*0}(A)Ii$?D88lY#zYLwYLfg_!vO zcFQr2Vu`>bhabSb`{mE3zJ_K-CH7&>c4Dp{{b@SROwq)Z?BWdIf8T)*xbtWsXz1`T@*IW#VpXbmsTZhLIWKQ$Mr2 zY{R&S|G3k#KILplMkH0Hp$7EHWZ!C{=m~sm{niI^dk+-_}a)*#Kw)9b(XGF7am> zS=b@-1mEFpBvZ%F>Qvz4Tw~Y-_+Z~T@K>(BY?pEXbwXSSxhr9pk7B2rDfBYbD})}{ z$s0cmGsB)u(jaI)bcFWEVh1e}4q^B4bNIL37isHjoMGVdQD?Jt_nbtY3{L<5p63Bt z88mru6tzKa){s&wTvr9I+yQ%hvR#DJLw$iY;{OlWaLOzPIX-fU{q4%7Jxn5KMi<2O zv~Dt+uqe8$0zY_ssx10fByGp*C(UDJ!zM+MX)oyB#J!M?K~3F$5IA*lMUsv)VrVt| zUfk{*iu0b}|0Dlq9YTby(4lH?j#_4Mt>D)jNBx4~6Bc%2ZZX)EfWA!3;jt_#JC+Jy zbGz;f*n7Vi`VMgk9btQRyCpEy8Icv3$5t6i!SkGoSJ%F6Z!(9Bre!G!5-C-{#m;RoLJ zN^SQ`C8waG#^@KR+R86jLy!C*8TO+oXU^>tM@gi`!sSt zm`NgRc;WXLYW2JDKTZ2y*P3N-2WQYGHW{8<|bpSY8_oZ%|L{37 ziamu^Sf4lWzXs{dD<_T`;G=RL7qY{XV(I8e#E1?D*r{vi1uul|*~FtvyH^w$*+6e| z^kEi_89L^RI_iEg+chv095Bp{*G4lfr2zVgSgg=m%r3Zkk-==}?_K&WbhzY7QFvaS z!Yn~!gA--W!x?_EP*%LnmX3E0qjArcQs*0}xog5GCDK~=&KEN}3$3gFJV%rH;WVLlZ((EI?eqvu@K-X)vbnIJFGSjo0_%_1E;^ap3y zvROkiDJ>8`w+UrqO)|&@erE5xWHx(lI{CxbYi8uL(85$wz61^J&U@L+ODSaX3L3&w zkFeEGpn(9}zFy0i;r9gktGnl0c8>iV6i;h0f3$3T9c$AmmO8G)3~ga8n^1t6Q22p1 zVikLEJDk)uKudP#0X8TRy?4X{5Ly89t69mIkMGGo^&4mnc0kI4qaTy;0*50 zk~>2DPH;k70XMwXPx#PeLwjoxFMbrs)-184Q8>?aaZ_}kWSW!1*Z+sl|IK;+{x2>j zj^$)+{qJ?ow>Es`73@7n-SJ#!3csEIfLw9TuMZf^*AKoxbKyfi&*;XD=bxlYZE=5d zTJcGr_mgjX;B*?VS@H9d|Fk>QuHIwEO$(_McR}mpCFZarpQ^e+M`hhPwzg9)O~SqS zP*cSQ^w~;Y@GTc^Rk1b>S=6pC{^s6i*`&Y>`i9qPBWjp7rBNHau5rh{(QhgLy?^MT z%WTI9?5W4+tbcQj?Z`-=-}w9~7j81s_&D-`Pb*Tn#ReM3{I@e@U$1Md`@=|jfbVm$ z+j;gF+8)!phYz2x5sY|fBWYJ=B{W<6)T zG@1NSV=J~du(|6KX{jb=wdU3{@4=YO$LH*?z0K|)kD*a`-Kcqm%~Ok_XYgbB`e)ef zQQ=g9pKrT)l)V(e)0~3yb7Uv0f88~`sEXH)t|xogc9YhA9=x}P?&ECi_?6Au#GN8{oQ*C; z(R}{7gX9LE{38}PlHS8e$#4i0xCZkor zQHQ)>hcloxu@cW>Xg%9LEuOBdz0ifoYwCA6bUDD zMk_u9lXmhCzNqLaxwk`%>-U9^?e&N%sM=#5uuU^Scudr&3@Y zz~fDnK%4Ps0}I!LoejfirfoE{ky%h<`=Ed9{3&}YKhS>%N&cSa8^5@8MkQ6l&TrrM z6%#Kuktxn?zf)@BYw_`aS{#+ZN}^NiT1tQ)`?2p47s?g%WH5T%$yK~ceu&E92W~o- z^0S}zQZw%38S^YYW9?3g(FITJO9VeOxsbl$ymhUzWz))J_~esA`Fgty>>@!;p{>f_?@XooJYW|c+VBbOQYbSY8d=`&SdMohsUr9O z)8iidCdAR$T=>$bH7xB?G}We~HdkXz85q=qSe$LEW2^wRey%@k6>^a2*9FiF58#K& zd)aH$xoc665AiHws?br3Uksl!uYf7cT`3TM;~dX}%qYf*%n{#p-`r=Nl5Re-BgCM_Jk)m` z!f4v&DSVZ`1r0p#Z(i5s#|?h1sF*&%&Nc=U#YgL_=^4(m{&xd$*pF9qNDZ8#cKYIB z-$t?;0-G0(6NiqkqiwM5xW=C1s51h!)&kzLxs_-qub}oa*vI7|H@Lr#j^MfX)~w`V zLrQ2e?y0)_Zaxw*@v9$n&a1cZjdqBM*}yRO`tz*7TxezjL%3dl38205!scme+uzKtdygn!73N?;B~WBr#QhE5*ploRI`=+=nh(5YZ)<>8 z<1>5lMivWPsvFMy1f|<7KQxeL;W?^!on_B^`_YeA*e^WkIE#q%roun)d#w+!LjyeN zExyAZ--B!k=52rBxy<@-i9N;~+mMP78ixJs2S?dcM+;z&RSUTC3TtYIdFgj?@m%E; z_DVPXTX%P|?I3nIUrYxP2OpkYFYZgOrXciE`&fsGTJ)Ow!dK*0`iehyHYK5&zY zA|1XrE|qkEsY-Q+b4O?{y#)r<|6WgSK0BUHVjf@hMn_%<-n-%p{KiLR{=qDqeC{Ck zv;WR+;(O`dgMP*7=PbZHfD-T?yM>onNP{np1%|#~;}r9|;7x-t@2__H0P~LWr1kjx zxg*Nig*R^K^Wts}y~f@xKtJ&Yu(h(DTs&Y;>H(oNsE;vUS7lATr-YHUYZ1Q+{BwKf zf9-rpt&iw+v6w!523P-^yQrE`O*`KN)3w{lqT`a+G*tuVc}uLg?{FjOO$JA?*+I-% zT}Lib=&em&BtH5ikP>{?*U*XL(dG&&Mcwywe{b=!dMR1r3~OFi5{Frp&`F%()Jyez z*nl0>5BGP%5`o(u*hZ7!6Y>iR`8-7~`E`TFlzuEfpvWc@XaW7YWykN}JU1CaTexl^ zkJLydA7kvNsMX{zC!kIN=I};kIPdZf+SI@R)06u1ZhJ9n&;mQ__T9WV8;`x4=c`g@#h&@%=2~hbQg9&yU^S z&nAXJs{nT=F6{~{_`I1Oeg>yO+KcyE??9JRp`{qKk(U|SkkTyhI~ShhGv8ZKn%ciQ z+j3!q=u}%wlVRuaX^~>vtZF**3cSrl`Qj|2*R&KqIc|2QxK7bXleIDDULGR;*ic7D zaE8AvUN0K_66g@}hf@!wqScQI`ehzMcMc2_Lr0dn6qlEq-PiWn(nKwpT9w=A%vWgg+%MzJmvZS5aIo*=(|C^y*)$VcGL&3XL%%LK9kc46c?lN&?Fcph{=oEs+cb5kO4H<6zN4dpe!*i_(8Hae*C z@VP;BQ!|tvdbZ*>M1Pv*g3p=rfLVb@Cf|kq7bc8ZZuFt<(E7YHxs=Uw^P<_=z?Yo% zu;F7o=n9@`y>kt-IOjr#)v+T$SCy-1JCehmP%70jtC2>`R?_P zf4**|B~HV6w)q5J!Kf|bZk*>v=rEL=+A9XHeofZMf!{Xo5c{5Pq=Bd@p4!KY;bwL8 zXCdyPowL}ZH6w?$cowu&9NGFXt#(9Cdw8;_J-L)RMx$mq+DE(?T7v!+;@v?dQIPDQ zbll&_;QPGp>NdIte6n%wNk08?E_DH(pOKf(J&$D5yFl!?iHzpUuB6l3Bw&&rE`0ag z6gq^S>skGcJVP2!n!u|YxgpQYk0Pz^&=r3;n?LLDR|^*N;X5YrF~}Y2aWA?Y?#E{; z1yPbGcCtKZ%Ny?a)0HFOP40Ta=JoZX-jAS#-ldX7NBL0rQ~007d)TnMUZip^luWz} z+3%asH3IImxJAwqz%jdt-&?h=6SvWJqHF>C2!5^SL(baLBE2x^aX;ndtu5(-_%F^M z*iBE&y;Mv|E!g3EGEY>_tfp7saK0FKT%5D^HF=GK#>)v*q>Mam`S46}zeODp z{GF2?&UPC{18|0|3fGI7?G95pYJ`_3rK0|fQc_AoZ{pBU(JrBcIwCiVecVaZUbKTM z-XVrozvAN>woxs5E9&>paId$yG#)tQy(hc*Q2T5O$PcCGBhq-?`!t%p9Xd;Xk^JlN zB&x!Dj{ExZk3O;FGYK{c1@65tlC}&4hL*a5zgY|o`B~89TsVuno8mjdJ~M|7<$kI` z+*KC)nAN^?qz4XL0Y%A~4LmCO;dhp|!I=`zLO*1QA^(HiBTgDdLkE82-@aMUA#im5H{bAK z%f);3#gu}ad4l0?@pXPR)u6X>D7RWXXZD(0k-r@^l#B0b8>tSy!v0=?Xk}eT=ElHY z3}eOL?HTR01HY)1qd2?sVS0^t_m(dbhw7Hnt8MU;WfR0xStXQn0kvcwHL=~A9rQvO z8qxiKaE+F2G*utpnO);f4Y^d15=z&NkMNAUSu_IYE$n*%kK2<<4cpMqzMsy|KEd7u z`ymcbs)Qf7I)+c`8$|cM z;cUnBvtty%P z^P4Dow*Wq~V-#Q7HiCk2Zm&Og;OrN6!7$_}U6%1GePDPkz~?2?`Gg^XHih-RM z4Nep%?mjZ1sH`nZwS#=V*y}yK?BvAJn`b)J6M+S(J}F zKlxy5QQtV7CZwZJWb~LzH>c1V#3PM?HGJ&wcoK4uW5k@~nPHK%boJl-c^~)xhQAxJ zDQiLwe;MLWO~?%jj>qs3&0h4d1U}Q$jemUNP7m%utMJMiK0DWyyq{nsFHs?w!%9!8~u}N}3mq9H~trzv{ajZT)}ygSIQ8#L&g*&`|>~6gzfj zoH_z6JVW$# z@6DHrtH=`1w=uOHPt90PZ70B=A9LczBMfNtk$>}z(2_(kzI_663hWIxcp-j%S4LT| zbHj{|l|EZ8QJMPRd|tUy)u5IR!_M219*c(;9H+;ybLdI zM>6)f6#VAJlYqHZLH9VUfoDUL?J&;F9D~ceM-6tPAr8LN=Dchd@_pD@@!$X-4BpO= z#ppW+ZRaaJy(kkoiR@DfPr?qSqXnVll^elTp1F{18Q#;`lNUj|I5!;m@CYj&0UqL| zQK6JS--N$5w4s~(fo1Jo#+58BsMj1|i3{}jrjr|K&J~BgWH^0-orCPZia*p#Cshy%CoVjsC5VQ z1#){<);~Q(Kk$5A-+mEo?v~JfoagYnm&FW+Y-)g=oxdLt7mdc=OxW4Sc<(A|PsG*EMO-N=oKH`0j#u=&{8yzDbHv}1r}-B#yaN>Y zRea+P4ehg-Lvc0`hxd!8$*^;~6H~+|7vsr9iamo3>f&=B)OYCb-)w9rzR^gapYWwV zl^=N9!`MRso?>X^BVL#V{VU`i-oaOR7VI|yF;p0Hnn!2{U=|GZul^B!RNtG9;Ep^R zyqhoI;|^^n z2l}M5)=^HUf8(IJm@4+I4w~zVmM-(Qa)5ZG~;?Z@lCk+r`nl zi=i}d#~rT!Es|E@%rDQlz`gL_Pb1%GnIZ6Kc>raPKptXH&btQ5Yn!B>twmm(g^ileRJ@NcI)#BAR<^1yjEP+Kmpy$t)q&fBJI zi7gKCbR2f}%O4<~>YG4buye0&9Yw3N3Dg#LUUcdMm&Pa1fD4#&Q@hW5&5omXb)lH! zzQ{k$ilRY@@Xy;AuWk>l7ykLOO$8q?B9JC)pax9e#oM>_p(*3ALq|K0-?Q_eKZuV> z%Bj5LW>=aGza7^Y!?!Q3U3tz(Xgnj|NLgvdeFJT%C+haq z;}>!HC`%fA68(awW4KfKChE5$lzPVeVQ0T=pix7^$ggEPdym(e&<0Oj$XKcj+JoTh z{%<`vpg2uzKOmSiP&=$n6#?>vnpj9IM#92M!d56cGNT6dl!|Oj+^Oe@vgIpU*OV=Lf zXEBFZi)W$KtBhY98Aj9Lb2RjK@J#FoUC{^pqKjGl&sran;cV}&NaR1CfkO^EkHJ3r zDI?tIx*fE>>wP$H+DvA^rrLeC<3Agq--!C|^nmqT_pJj>Y>#~J^b(%B7nggL zY1NW0DgzHL2LAk^q-W)^_#mBJ5c?wi;&@zeAmt-xP%8`NBXgm*jo4J=?8cMVd(sm4&rB@~ZhYH~ zm#)OXPSx*V>D3dL`0P}JBl|O68_UU@f`JrpT3nq7n?Ayb!4`2JC) zM|pvHB2}+O4Q{@JH()=)ux+@@{ZqM8XT0Yccy2mT+{_MnAYx)jfWO!a5V4e?P2E*c>U%2{o^+db=xY&caI<+ zC19Iv8^oWVu-6MY#%Sks@!VbP(f9>DpSJ77e7k5`GZ=aA^6}!ZUf|0Cm-{rctJu6V znR4<_o3ww+Cs!s>#!=)L8!z(U{z+7N9eNSP<^1=9M6!cVUePL#J3L9G-tdP_v*Y-t zwn-FXi#lSsH~-u#2|J^3W(rJs^6*6L(+H*UNd|n*JnVl&&0?^64uASFl7`_--btFy zC*Q`NMEHlnolq~&!c3bo_HxOGa&PQJ*abWLH}~bQdSQ|W@^?@s6ACMe)(YhsP`IxgQ zG;t63REpi)>r66*R$<;Jc?(bbokXUM;F?N<_?bN9Fz^)?^EUChK}j?XcQZCipFi_U zB4bbB?fs|nU8|F*R|RT^3qyI}&_wJYMGmIjhnuvGqo=UR9dP^GY{x!LJeRyP?YSyy z4iDT5zl>IV=9>UIj9k(8?g!@gz=u{1LcX{3DH{h3SG|qUSD$l-S%+bkFdrCHOdXrK z)SV_?M!xa0ip5CWXj?t%eK$EfKiiegR{~!xI>c5%+hEZd__6dN7V{ihtvcWunItid z{n$M*5Sp_CEm%4FgTHjKtIur^bBo5_if0itq-6zb%JHEj)a?Ij=bmD&xJE0Anqgb_ z?h8ffiAd_$9=XJzcH)s4k#xHQu*G%fczVCM|M*cwdfRzFhb^QRiyHH8IN#v2g?7LX zud~_2=UAl>y9gY~7iTXTJ5!MVybT-6d-h1CCq2PGuJ6t3??RY5mxK#!q zHkCHBgPut=4xf)_Ru1epGpo3Tkkb(dle|sXINq z4nDx5B&Kr6jar_D()Jm#Eb0O@OA&Kl9t&q>$u9KxW+-jY_hvh@F-y2Sj1I(aV5&xr zv`IUhdKpY-Pxji=1>*>upEk_?mIHNA0uSEolMuZf^B24RwX@M4Gg0*7(hgq@SSZsQ+PBFVKQctHc5`5(_X8h~8==WrSSP_c!o;?R>a*5E?v7P?c889=Z0 zTq7lgnvhpKJ@bl9C`zVW*m?etORV3(WJ-pe`}I4<_`M_=j=a|-X$RB8zG-)0#l8Qe zuvf-OWP+R~bx$}8;0d(qLMSCx_%Jp#mbz^N_W0A4EmA~KGyd%enIoG3pVaj`ewUsV zvjv}a9AXLgU(ZtGeCPyX;;*zy|2ta7 zG)}uw3G8|3=}dO1!IdI~P-wVKV@-eO#B1<5uP3wfyPTg_ z%)`^3`p%7jX5B;KvZDhN4e0Nn1*TnqLPcfLjjatDYv9nq) z3)+Bg-MH%o@bNLTbY;RV7XLkxCL#C8^4`maMH};czGfz4ZuzcxAyFM4fxD!VK?<>LifXo zWR82yv(E_AvJxl^K3Vg}aY4Hvmbw=r?ib31yYnOI^;E>Wsw&~uION6fQ7Ttz1Z&J= zUPFD<_tym><*GN`1pdI-Il;))lR~P&-?&*NY`^PHwTP9@%ei3GLjyrp20pp=V_{LV z9r@o4rw3m}A@Qj_buNjZ-Gen{n$X)HzWZN02iwN8Bh}EALSA>Z^%(Z&bp#zn?(se9 zyYM43f=b}eue=n6FW#}#cM5tUj$4F65HPnmsR!A}=IL=l+T#E%YfC9GfGp#U8gL_-eOVO*+9T*v~l{waKJ5icW2U zX!ddBlhr{A>n}d!44*b#qd+0H^&&n(v7+q0cmD>UIUQ0GV+@GWJ_7J{m^ly%oaC z^Vq-iJe&s4t`vGeb6z+UL2vJ$mkqOo-hS4(! z>*YpBdy2_)6n^+Y4^f)FDw$IKk%OhTlbsu#OdhzKCo87P9>H&S>k>voo?FYD-opN7 z*!Ma#Ubbjr5+!3N?6o-=vVq9G4`zoE8<;3-m>EMaCWet-i>)l+GBgn2+czH9lsy2a zxcLD%3};%)!iM_MbT9NP&z_b_HhNKwDfl@n3Z$XSJSZm<_>4=8bd<6?v<{FjC3*fI zRaYHVMcaK5Yz4c;K*SaU72(co69W^m5LBeQJ1$(h!xp;}0|VsF40fSni!F9{*Khm# z{&{t+Z+-W53F4V&&U4N_`|K@@o*al9%<~!N#t0XS17K>%d%-PU6-TWD!#=z(Zl*}* zx-dT%5WkI^C=XBLj+I6O6E9hAn(YCf;skWFe;{Az<4K*;L`1f&jboz&afkEM|K<%V zhjH?XCMh^rlXu^RXVN=c=4S))9C{viOokDox76Th5icJLuiWX^#vEH%r=#dFGzXiX zuy#EcD zSyR<&^H`7+-hITx9u-^{UjGijb#HRmjL!)7lLDwK#agscve1q-Uaf7+MHf3r0pEO> z4~WaHpDR~ddEs464Q>y8Bo|pwUu_um!PSkGaSHtunk1rL)8^=8&gaE^``BmA#d|x z3*i|*e`6iHZf1yZVO1`?{`LiS#X{d(U~=2cru$ zTNal#6+fp3q6zi!G*Pw1E}H_NpQy%%nbpM-)^+iv^tRY52{YRG<2Gx6pKBXPtEe}= zJd6D2lS#6}A9_rCvuEk6uLRt7$9d`-R3e|Z#+qE z)Q-GL=891bzDU&_lTo)hd%cWuDQ6e8>4?FO%?y;fY0`1lm7M$+7OIg{BCtY*M7068J~c2_D!j&7KKsv^xQI1#2Y868|}uQ&F7xV z_fP=L)+NBTX@y+PiJJZOsYCQlrJQ5E5k!vx)fgkxKkbLD@BiiHE-jrbU!$hqUkwM> zoj;`m?#XE0nl-TNW$8I<>CVRF6%<5E2h!5O57w8+qjIb2i~WOt^6`55=re z17|E1)N(Es=dn(!`B(@hKe-!wf!yI;#AW-qSJgp-4^f`tuhltdL++-2jg?~Af*f3> z9`T_TXT@Z{9OwtI{-6F!oOvl52k%e|Om2z+i?X2M4sD$=CWtD`Kt6lh^EUmU=bMIi z+#75kWDbL7DfDurHc*~9d`h@;$9G}Cr$M-KNP}LF=`%OO0;V&0Cos-8hYv+mGt@(PzJaUtzc|wJ##7|iJyTHHfVkfQ9r<@a zGBxhFn`3ZOYI2PCU^n*EOEuEj1?dzlC7C>K+|5EJ__K&*9xJ8sk^nZ8~v?mo$RR;dPS*KZelm*t?NInPz_ zJ@ND6926<^d5o!xOV6_D&y$GVpN%knT^1gxsU_h&h<9%WMr0=##t`B)3E;`G4jC<}n4-&-XN&dtQVzBdRg@qn9vG<+l9{#vJ@?S5`-;rt@ zUOrYSx$1@sA2M zQOG{4+`5LCI5HQ_c!ocf4im4D6TUo7g9UBU#E8#1sK*@JCA&mC$=vcTCIK$#@5JUu za-cL!M6ar*_@v4mCym)-2YjiRis*1OnD&p!?lKoaj9s$LKe7(}CJFb*&IK zgnQ!ThW6~<8yUpaYJ8$U&gAN7zWeW<8goR~?PA2SASnB&4N=-pEIQ*0&AvPk6cO7K|^JEnFlInML^$CM|pL`4ZH6|F(>&c z2VGq;{x`iaiqjB&Ynvp7*A4tcB1;p^PmZ>_m%7+2p!%-i+h4bC=v1K3eG{+KQg+U&) zJi`HX>Wf~!xv&|lL1oABVotwYOfDiOU$$4HgG6rqCZdIB^xZ%lK&PUSki)I$SXg}@Wxz)2FQ{|AcDe&jrHz~Th?6Zh< zU3b=g>mNz&-X~$8CF`R3Y0~Di>A1X_XXDQ*)z(4z@Z^1GJ~l`&vCc;%&+zFJvT(&L zk9$e<;Vo<^u3b*A-cWMr(`-c(w_J32s=n4)n3fMukZdT8;06sL`1i_JuXv^&S}4A{7UpCm?EYBP3U8@QC$Q?ZAg( zPwtpFur6w}e7ERH|F4+pF{rsOSM1f1p6A^EJ@q+8{ItvunH?hFb~jNCp-C3rpbgw5_?YT2F99-i$9htyycdWmwCnFln~+-%eBm)xG`HnU4O z&ZPJ&5kp*IIX4O`;Ii(!XBk#D0?eY%_`OD8TqhE=NVQ73l03Z)AunR zXEv_ zOvKS=wXlC?E?PBDLZZ7ddbDEgos@(c$IX!An2CBeNz^v#ivgyo^h-*Fb5Tne{L)|( z>$;E2--}BxN7EmfcUvu4wCoxRPOA~PV43)%Jb>DO^ozQkB5s8rQXRrEsKo^F2G29TrZs76O6hWq6D8^o{*?F)#acZQL?tfL2t`v&7dUKKrw z+%S_n$*=d@D{JA3$$1gDn!iekWBhN@2P(?-lz1x13-d?+%NI?5V=EuEPr+r@7=xDR z$$NGtV{Jdyc+DP2u1%6LaTK*pR;5aFesX?P!W{?oV%3I-d_=F~p6?=G!FWMFrZ&}J z-*!o$DJf)-=X|J~@cFmqfqb{#eENOWLv|G@H~1Tfe8^4s&wuq87Nchjpu& z2DXLo#YaP!cge%Ff2@dWm(a7+EE?_~R*2cGhwZ5!Shj-A^ATTkqn1?o;Mrp3VsC^5 zhrsA-Bk^`4FMQ3Srta&t!s&3H=WcM# zp6;j)qocWqqvq81H|?;sUkW>(I>I9C<7ITe#am+6i7mhiJgQ#~= zP9KE+f$haF^v-o+pL}8A8KKoc-hG^lE51&`y+NKBZRn4xQvuow?(~3t*f(Ksf8A7xTrPF9A@Akw zet)F0?bH>qpjX|@>yl9e-ibEE&nG8IC*P2paXt=q9aO4xO+JQSAkMyOsBnOB)?v*S zI&Y=$iWup+EgHC;|0FzNJVRO~Akce|2%hc8jR}aIksz*V$s9g85!dJJ747&e0-Es- znD$DX!rvcEy(FuC4X{wk!H!YMNSe_aF>#rAr%l4UEsc;An1Z*T6HvqCy||vwxs-SD zhL%Ug^GhR7QFwXH?9Hlwr21K4Er>;#G%X^9WNFz>|>-bJ}tRx@($Yb|k zXe(?g%)|Er_8={`3U@l>VJ5ltHP-8h6+dzjoy$IA*kJKNojeRQOGK+1v0_g{#+f+9 zmhYRy1HW_eU~dxCpU;Zlp66g{-(+g4JQfdGXQACE`Yx<}BCctbhKBUEahh;m>~%c> zP7%bHytj+>jAGHNF7;39=7>{UgyHk^C=@*m5sT*p;>+f6>?w8=+aB~oHvKBvRLv6i zeDFc$_FyE2s>DwA-Z;HI5Vx+h7Mp~4L3P0&gFHS7`qb_=?&F72%VHtuw-?$`4|966 z1mWr`AE>C|Xyeje*m>O#t6Y2`jhZiZr&na{iGe66o*~R9w}0vLfAdCz8vW#rbCYqJ zd86^$Bhn6oWc(S#JEh4Y$uygI?*!I(evoRg@18^~_nY(W($+)r(Wivk3*rb>HqZ8n zJ{shWzN^}#&ZGUS1~pa<7fyW2Md=%A%=KI*gk8wRjlcwKPN))oFee+ZPQEqAP#p0l z7nO$-u{D2^Xi$-hwrctxkBS$|s&e4NJ9vh}d@*Nb7QRxOK0vcnJn}XTCx0cPk4c_L z_5#GN)K(i9A%66aLn3jlYAYv;rqd!Y+&KnyhW8f_>jfkESp=S{jKsLz{#e1Yo$#~0 zm`PqPwuf-9qosIerw`8l48r&wwZwhYG+SIP5MEPX3c@JX)lL0zDC4k@xy~EUhEoUG zHD0({;RD;7-f%iKO%RLy;2iA@^$9~vP4~lc56;n5Yb`$(#Xv<(rT^9&;t~_tntg58 zX2jtq6iWABCSW7$=do*}q`STexWgIB_=dftd3RE%OToQqWtnzUX%5uEtT$40w7T}W z=igPXt9gR4j?VNt&av_vo-?X^cM@?-}^&L9myVp z3WT|t?2B8_+cXaoW**~FA(}WqJ{id-blCd$3x9T;Z{E%_!`mU zq_d7tY37SYdBm61>+?^X7k6tTPpHkg z5V5JCphZ&7De|6(b##9*RH_H!_w~u&^QkWNBHoZWj+}vA#af3w8Tj6SIEG!m*7Ip5 zYKKr0&@EW|_-h7ti{o*A$|UW;s0>uxi^td11GKZrzdgb;Kf}>TYZ#J&_VdXn>E2x1 zATtA-bcz40ZJ^DJ$l&+kzF$l|?OXOl4U0L0Yg&uL(Nw6_#O~&QEiGA?ge3OTj~87k zwFzWD^pg9SyH=F8F^Qx;L<}Z&7*VS8ClDucBXCn*doZNAFWS&6y8o}#!5^6iA`b=O zLg7k_7sTXy*ahNq<1ZHCMNg!81fcqO14}0ldUv=GYx}UoLZ5TM82W{IcNriKbQVcT+SF*3-d;i(Nf%^PprciUtBJGZaJEs7;U@JxBmZs{jYv@ ztEwY6h$erZ^FfcnK9bRsSezqHd)xVqwnupkqP}xi#V$@8Y^uRE_TbC6r)al*NP{D1 z*=@dOX*>92VD&KaURGsjjhS2ias};XtkE8+m5zf;s7G0KQEU4u4To-!gS5S&G+i$p zeK;R^_Hd-si+tUN85-2wlpqC@_xOUCvv_Bn0TO`_jREOD4A4)Y|t#?(n}9E}Fa)um@5eHzJa6K}d`J8z+{Vv`VjD4tn* z$I1hn&(hB^M=X6nK0v>y090#QR+`Yt13Sj~LzU7)D-=@~{kt!g&(74E@Af2ax?H%q;{^iTrZf+}`yO@Sx-kaA;JSF?b zX)tN7q0Z@MNlzyoPkk9f%O_IE`!v{`)F4jXL^ice!)W#)=jQg6gIcDd#TRmq?vIn3 z`6VM^KWoTOj&eip{*30cpQGm`8?b)AP0&Zwf$L3XRjzVReI@5jKM%IizOh1$t}U6<96!jD=*Kd5C3PgkPjV0H<32H`PSLza@~+n52tN^pcppXXv>_Px z?$X1%#7;J7L_NkI0a*3>o$&FB4`x^R!8pAamiG0+Vm_A|Z8qZSQ7;^y;D=8JZ!Akj zMBpyY+@M5*JAy|zXjBSkvHd;+tEVlBqlDks%V_6K`*_+qXd7|20R|9LF=WXwL zTbOIpFs6ca^^Cb%uYMU=%X!K>{k7VG!_qNqB)I_(>PTPYG&J@lcf!(3(piy)ybaXD z)YnQ0JJOK$oO7#+dh+yRY3Rq^dDGota;t-B@JS`^G&)ND(K!uu5AbY1S}eEwmV&y( zp!9$3lp~#}T^ysqGQH#S(yfX3Xu^K;(hd5sCtw1(0i_S$$dm7qyF~m@YN4m>xK6GF z^O%RGfpW=!d|~FdO)^B4`RiBt`ba$nqBnI1a$n&Y$UwJw{8r?^dPdKojQlyE* zmT~kR8f2ghP=_Itp6l=1^_Q>L48m+pD9$!|APVums7sAwfAZ@i$8jfXIyH`S?pl6G zjlj;|&i}-D>+*1^PY^xOnUl)~J6ivNpWx@k??tTX<&2Fg z-L|Rdyd@4p2TVD*oB8(nSMDO2=xg`slN;7J9(6X~)NZCWQH~jV_<$pbH6ls)r2s5U&p{MaJKxGI8d+I zQE0Jmr2IVHA9prI;7rTO^892!jHFM~ok31=J6%8IaCfNccc46) z;_#OMY#VSvYDrC`2I2m=_F}O3;XZ4XuKw^eXoaoyJ{U3Pkt6zOX{zwCZ8*HHP$S~J*HoB?aYyo3cll<1Du$Oaw{(f6Pkk!d=xcDL?-u!KMk=}vLk)K-P`HXJmOHbFJw{?)3*QmAf>Fg8qkCbov}5Z#hpd%epaWdSSeL znL3L3IZ-%nJ6`rAzi83eNDN7HkQ+*VSbsSj59;~IUt0NLDtB6{-3^yx6<;jg98BLU zXL-*^U&PG}#G3;brOC&r`N{g*dtgiPYA}2AVt*9I{1LUs-0`MM06wML!0v`8UZ3;B zxT8Uq4t`;=7pf!Ej7Y!Y!~)^2*y;28WHDC3U_Ko zB9DBe@#owH!%f74-8geU_ED8$o`RoysQ02Tt2Pt6b~wTu9_DJfj`OeXcj8d{er@UE zVS3gu=BnQNrJclJ)2;X}+nC68-w`Lwp)T%~IJwF_71dd9pX^j9-{vmcLgth1t4_<= zyOR;d*+Gq%({kMt32-N-G5OCHa;yGo^K&kLB1zs$4QG$+SaNn}$n~kyHKctE{ar@O zuZIWXE$h93XQ#_RyK+nDY$3-4-uYZx@7!i}YIZC>J(u2t@EsdOGO56#QMo z;C_^|v;0Lu!_f)2$l7W4QZpgGTQZ`Sa(_*yt&qMv2`M~d$L2$Uo2{m{QBeNJnI$al}uXMTSO z#`@2a57qTWU_cN8zv{?G#(5)hU?6Hv))ij<@<4o>Ks5a7FZN4v$Iz5Ow76O+8kKt@ ztWE%y#U)x?>%f`L(|_Y^T)&gxp2hr4ja;XuD})Uj0#JBfjirT;gs|-skIvRF4^i$@HwLZ`GBQJm1B-IbvN90T=_{gX4G0rZb zIIwT3T(0X2cavbmJZUQLH}yvG_dqxW4w6Et@$U7S{f^sOp_bYm!)FFzZ`TRpiVL3D zclm#q#@&Pv*iHQR9@KLS5UwBq`>7%Gr%#daIVJ$-n3G?ceG!fi3xM~2-h<_J#gJ;t=3Y%DLrhSj9I)l+g@lbPxzFK5Ec2}OEmJE3i_=tAkR(ODmNURf(4v8_BP%o zUri_9ZxZ(kx2DRcIG-GqK<`N7sdCGUk<>I$!zXyK{QPk!{2Nf?9V2A%X)toQV`DqS zRyLX&L>xF4i3AmiUs@053U(7;_;tIP6lqq9rF5a1cK}ML|NM3T24Ur1YPDTcBYfOdp;|@&Ch`o&SUeZb zBNQ*ra3@QrK)AP@8nL6fU*C0vphIq0zf5waW_A;D$xk+84(WY;hf180guvb8BwNO7 zW1kW4WG&nLT(0D>BN;7Ny9P9EEE{;IpxzkvFBzV4JnQ6qp4;UQ7s%diICq%O9jNIG z`pz8nVdm19xNC6N5XPCcaQT8f5Zom_7Xe&Y%Z6)B3`;C2#tE!$WGMR__Qqu`oE*)!8Y!kGY4agOR{XZ!4tbz z2V&Klg{sY;gORfT-#BMDtrYq&&h4l@<#A=1P|P^rW}K&ZlnDNea}nd*cg;~@JolA* zmeX5vS-fDkP=oKBXSvqzEIeM4go_#62kdJgbTduD!zJ8-wOpWDG&KnYjC0ptR@&3g z8UIS&n>9ToW8Q1iSi9=?cqz^FO~D?6$@T>9k=B`))!nmo%k6c2srA)8P`&g&D5hs2{RA2pD_ z?x1cnG0KQJt>oA9cz$k1lZVqz-r3I|-+ZGGmO(--1nJ zIV+Ud#;#zrnlnf)Tirw%*l&A;D8|`?aeneCPw2%w)``1px^Alk51xTvjPt90YlX7Gp_s}z z*D$vgc4upFgmGTs{g@124lV-6_E6-9i~nXPnnC&f{lg2>Sa2Fq3h%-IglU&JKX(K{fVzB?wcAFGeuV zo@crVAJ`w~GtOr>+)#~3OCsh*F3rsn)xb_k7|l3;8e^?m#2IxJ<6QWAZ)sEF^y(X| z_qJ4%E|qXjLQK`Rf3oBinu2B4N=e&THEGSyI|l1q^&Fy!82L4jm4C=^|q$HH#bGN~W={)If&rub&OM)@^)fOe4RN0JkOU7Ap?p_-9o_kV^ z^T5ZOwZ=*^3K-{sBl=6~sQ<-zuT`GZi?y_F3U^L=$WkxXhdkdQzE)QpS1T zupQDK)+wsFtQ)5%NhTj6$sXKv=Yj z!S6M*r3+q>>qu?juh$ zI39#J%YJh6Wrntkw#?qlD)cy zAguCVf2)0Uz6vRfa~L(gntx0ZWS-|yte@ALju+Iq#Ax@b@i?rrkis~hKgJv`o>A2$ zhbx-(#w?>mRo&<$3{57N>GpKh%hvQ(+Sx0T|=#sMJVtL>gzkRd-h_XB*GMA=w8Ofp=v|>kq4e z_Wzvcjc;m;tC%-7QL86rXNsU@e)eTu@!Z5*_{lh5*sg{{k)H60ac<6fwW>{l>M;3$ zI-IpkzdKgdI+Psgc;1P7+N;{N!&piq5kc+Ah><=l$K9*!zb$i z$a{U{AdNGMkNR=PxPf9g)e$#r$h&={QJU|V4WnxG_WdX+N*cY6ISa78Z>5Zk_e9j3 zng7K3rqV)u`OF_imF!crSwe41=IS!;A++x;v~M2(uhsM+8g)x`yCeincT%frc9?2| zxdvwkuztQ{q^iq#s7V-e?}U$*51%Fezh1#3n*)|!X1o)Z5f5pSZ)yCL-gdeI$u7oqS4+D)YpO-~)#up3k)g~6-l0tBA5&7kd*OshW5{UVGqVVG8<%8OF{^-Q~ zvanxZX|SI!tXD?B>CTbir z=TcvIyjURr$Z|xp7v4xR?5fOcG8;*5-q^8fp>oe~7WVLaJsELBaT4t?<&``3G{{jN zR&#>JW7b!KjE#GOr-`l=lAGLGdSmVt;-Nd!8PuH74wppG09sbRE^`W`S@%6NzH4vzD8G z`Qham-f_+LS=^5ELA^HNFnwKFns$=hjKv{v{jga3pVaaUd1bCq250p6B&>vTz*tfID)|@@bgmAI@FBnz0|BooT7f zO28Qher{GrwY*UhdM~1mZvRkKrB^a$UgkOfqNrN4#&EC68NpQg)E6aV>TlLFyXy+a z7AN8*b5ZvfpHy$Za~FREcfm&NQLPymiQT`VF`+y}Wl6v81N6O1HM3L=N(#W0@(2Vs zYN-+@`C)t_vEW9vERSbdHFA50C2lNc}9FuvPRz z;Hd7hL&+S3t#!k_O&4U#v$Lp2Cls%G2`worC^XPmfAVv`0YQ+SW_F+ za&=^1y-&Gab1L2m|N7Ba{P7kWc5*_)rD_bkd|7BW!x=Gi)VP-yBy=E8%)dQrxi9*H zyvrS(f5hV1mIbP!1nTMWSva)qsp`9do@1N^v<^6BIcN<1MTzZfo|$ZUYBqV?O{f!i zeW|7JR)Z21d6L8QRO`577Z*a#_pf=X<2{pcqKG+sWudBeofN#PBELQPq3T{%G8!=c z7cG9M_6KmUmp$OeA$L{FFY@^ujzyzZYg7T3BQVd7xctKzs-t2s9BdGniexz%_m0h>9^G%H z@%{BTGllRD1N{-qxH4mY<86!(Es|2G>yyLo&9lBFDwOuWBdbTz-rkjHv0V=HbaO z+(r+GF3zeBqZ6@%??|F{gsRC(&Wg=qVX0qTHJUx#jLlIvKRMg7M^O-721Q_+;c<)V zqgcODm;C61#s@DwrLNbu5HuNau~ecz;7#W4LuJw09Y0*D72}JS9iD1aMmXU}5AFdr zkCV2k=b-$w6S8WW$}48g!j|cCkXi4PocDPejuhA@HP*YkDBizt3(^ zf@)6y_XvNp$Ju0}ifNR9@=nxgiH)#ad7k*vG-{ODjVtx#4qZC2zM)q-YS-0Gfv}05 zLEj^^{pTcOlA3wOWxh7KIp?j!nxj%PwC?N$O_#)A#}EY*(BWBOnr%)u{i(JQz(jJpF4#;i(@yzJD2_mXVpj;)IhM9 z#Q6qm@Ax%WRjoNsZ1+-)lzOfz_f83LY{{BrXth#r*2BTjsQp2Tj4LDc*Okc}pL#5F@!qJgCnVrg7 zN)LSku`N3cmOl-o4^{N7>l=c?yG^9+9^Uv98i*ZX*R`6H?yw`zUK4Ptbmnen)XH^- z5Pwj$ddXb;_~D4Gv8KYYnf90yG7DXustfb(OvjlYQ*rEVr8a5o6!dqs!Slh54 zZ=r~oc40Cx!;y)WQ)(n3i@75GV4P&fT6*mQ-m_1NB=eLc?B(}ARAY%`bDkKUCI&a2 zgiG_Auy&?@vCXsu>DJ+JTnGt=KDFlHSdZy&ve_o;IoY8yYa%)y`zF5sJr%ANV{ysH6d49K z*w|te3g7X}^`3~@r$%7;!RwgQbRs?ehG5v$gF|+%aE6(U=|6GKE3Oce_Bz8NlirR# z9^!9H7sT@({JqaoT=~WYA*RHlm-iMe7P%o@k2~OZ+luAk#2BquBTkPxn6511Ud$3uJv-R%_YR<_Q^Y5KA zaIw&QH8~v>#5sqIQdP2+o5gaUKa-hHIz+`vX@*-3~+EGxsNsh8~9u< zow+Z?edgXjYmbBKz0xMPNUXUViKlb+OFADy(Y8$l&bB@-jqMeT#wS9t%Y43+?BkD| zgXDG|uBA0;<_*W=HL@NzYE z;$p>bW-hoF%GtyZ2QgmP6}jMSI?N z0STsJPvRNT&FDwd+DxonLO)#gGOrsA5S`1Y8&QkecWwHL(MP!N!kWb4O-IpywfFA_ zjDPiK!mbG#EabZ|by^D{ssS-N=9-^`aUk~1^q z4ROLp>*TW?5-~rJ{n4##dD}zcSQctr**#0Pc*I?A&gsY5b(4b+bH2GI8Uubblha0q zpyT%_>~GXj-g-U=rnRC_u%oAZB$ji5Z`9n0>L%|Xj_Nlv1o!Vhm*%bTLzgH&3<(}5 zJ$&bj>eJovRbF3eS<@d`+Z}OHQze>k_GIWd4>3M*LmI6N#$uCy`@vGfE280aXKZ5~ ze9<#eY}?lbF$p}wy1wGRdfdO5&3@c7Ks37Q1{0p`+D%==v6TTh!e?<-Z zGe280LVT>{td()T+HI_8afbI>Q_fjpti`WaxR2P7e4v+B;&9@2$Ep*Ht~p2?)sXYP zU(8EZHN`4&xcpjC*O4=t70-On%*~9g_NH9{$$t__p``+ zFYn_XfYmqZLL8{2tl)m|m3`FMRM%2w9HhSEbndIJeyH`dxq5cu7Um5z=J0C!jYS9Q zX(cnx^*^Nvy4<1nXD$9nKT%rG*}(z!-G_R4$nLJxFuy?UKFu+?!zT9ZzlgzR>nT%j zCBcGm?o^|-GM$>bc2|iRni(saVhs+iCI8_;CuN92O%6|LU#xDZ%p4zs4c&PThCh;x z21Ov_8nr#&@08Dop$K#5J3Br{UP3L$jUKTW)FDHTSkL`7`)C~BK3X;*xA#|WIJ$In z5j$Px+?@Qn)^%mrj`u;M;t)(8y>Cb&wUXW^|I1@6&$=eA^KiyjMUBv<+-)4knw{Fp z{SKvz>lx=;8Pwc9nJ+&7?uNNRYFN+77W>hM$dvhfTJH!^vp*JK-f-(5CQdp^Jp;zm zxPOE=`yyvq%(vwmJjE2o{4RNf8v?CG2cGRC`sAjbZz-PqNnIuW{v8(&A?6`96ph&f zJ}s0ixI^4>3VZfTnR4j&L@4p^BYOGP-dV z&>+H5u|Aea-Ba$&ub!f$Tk*YM%xxk@DZ`dgJ7FjD`8adMX$Aj%tcRpk?Uin)qM-HV zXX7t&KcjH06xi?oIVj&EUnrmN_?i7vxDbx@S!ln?|}|*IqSttgc>W zde8$y-mo@q_CgsHMNF0bwfV7|iWzwgjd)gbK3`RWO?Z}h_JpE~ie@e~SDYEQTNR2z z4r6KnJ>3#7DhtUA&{cDncIGu@*;wks@qBK%c}t1s?{8hfyVClB@{4@A?=rpZX1`Pp zq|meY6Zr`_Pn1o>ohC4bzMT#$rSuC<;CT zc85E2^{9_g=BMaqCr~4TJlLdp%E6Wzr1G8!NVipnYRGS7j*IO%L>aR%2J;WIra#d} z$v+o?4x4%B)_Ne%TN;WdeAYh~#LG?pa3087t86FX@8<#VNsh+Xo$b+Ohc8BdjD*F_ zkGNb&UOM-m4^C2s^dI03!>j-9O~hZmCN5{QlZ7&&{) zp9kLDFZ;;7QGG9-&r6TWeuQu*eJl4Y&K)Yda+%!A2Yi=vH`0rfe1Wgjl{L*Pdq7@B z3g7D`^VDTM1~N`M)MYKVFKg0^8Z$qr1J)E}XNcSP{=hqNgK?S11M=?}+cuv1Wevmx zYPQhp;pls14CjL?BWgB!R4C8tGCy0y!~M=~F0prVemrTZAvjrGBdnlUIlpfhAZ zx(Bk!J*yEY4M}^!y>ITy{r5cIa=IqIZtD#DO5S}sGsTI#2hW^VV|cbnSwK%u>}4*E z)UPU=-<$6R&!>LQ*RuH`fz%+CWl*?Hfym-&QSL3P3d~OYR23(`3DY;G6=*D^F8q0plX6|=(B*wid z@~IruF^oE4#0soU<4&*~GM1gghoM_tv(uv47ut#!yi5%bM(F9_HET`7OF^ z-bQL3yy6^oz^t;StR1SJkdHJ~Ec=zo{Q&kIt#2Bam5@8I{0?*DVuP}8@f!5xpIQF< zvvR*-B9a($W%yMkKQsyPfBALSij__l$#~27%(q;v>>_U=nDc@^W;x1{rb)2npD#~K zP_EQW#0vgA2O5McH6L*Ap6}7yOfThh4)t#uai90+EaiMX;<)|E(+(M|G#wg^<(yYK z)T^dU>l2Q>?TCd{kC*3M4MraSZD|H0#h;b_Slo=Bw!}gnP|I$0_c&bh{fPIh6OQv8 z{5f*lkiG+4aIxRNd-Rj4E{mNxw>4qz?Z0NSxUk9@5AUk6?~Q3$%q0)pYQ?iS=Rw)^ zqn>Ea9P5*~v+UrWAQTbvk=7=a`RpU+w3M-$GOjF{KYPG@*33q2%5p!mPEMeP()A~b zFVC=9Ah{R)w<;G{=MJ7r&Wv@a(y5X;aw2zLX7*PK<2jopzO>u2z7qI^eq7^;OBei- ztCNe{-HCBdtEHUmo{SOvo~A;3WeqtVhqf?oM+PZ5T~ko|B=6n3phd>MgN%_*`8_`WzF9EY=e4qx*{emqkEg zf9)2LBIY#X{;M8&8vU1wg^u*aX8kZNbGtZHh7w|ykG+?ciXpP}LkNA4dRGUhj_$(EOl#%8SdjBiSR3{tUa zI{DRG*2z)+Y3P{D8CFdLrRn%|7)#VXojP1;prU5QYxYPh{1mUOG(2Dq8QdscQN^Sp zmUrcq=8Kh?jZ@H=^YjDnmn(xO(qno%cf|5?m8N?&sCSGz6l0y0*R9BFD<+5MT`MJG zVgyE$6V?1cjx0t|n{-M%>b)xzvS#|DT4(yFuW5`28@*6xCwKQQY{pH_7Aw|iu>EJ+ zkfOUzNIXH_!vFvJAI>v44fwQkJ_;DmA!~==RF92#SeLmdwIQ`J7Q>Y9RYR-WqLtqQ zEMa_V`7RevK3s%Kp7W{{AF1ZuDHHf(3H9mUAeUyTq4|d z%ErB3(;u#x7F^j?2XT$^86c ztCD&p9oFP06c+4K8ZSwuFFG|92X0f$E6HUor3XPHzQ+QsqHG5|jYely}xCb3c>cH#Htr^V5`l-Z7ZY`tY*X zEM?u#Fc{Qf%oE!ySTc(H$mg2KMv7YPum9wUc(45cI=in}7*^BvT#yj`d!$PIswtPHnPAqiw zZe{DcJS4Z~YeT z=52HrHjHyoL3~;J{ipGNR9$6Q6>Zm56v3kG0tvBD!4}TUwz~^N1w~Y(yYrkwcZY=m ziiv^6IWzYV=3_UCsF>K@`mN{v{yh5YTwDsc=bnA$BBNomWYV5!<47 zvses#(gnmeN#B}fAJ|FDke``Lf7XBPRvLz!^V_}$t6#B^2st?*2wq(?3Mn3U_x2f@ z>`Oo%&F+D`t@&LHK9)nn&>OB1Ux}x3v+2!X)HZdGMMX&#wYLVwz5Ri>cV{NGn21`a zbAwnt1X@7IInRFH5hoa>(S}*zIh5WIpJ2!N)LcBTeiuZ+E`g#K{X0XKM6bt6I=MWW z+B`lWW?+ta*9H159$Q3NO*r@iz*2HE#3|4(dF~I-@tg>8F*u>dUieuZmy6;LFS19? zH1GR-aTRtpD?($)Ep)ti5HrWO7v|aLdqCq5+a4N6ndXm6)LI)k(`XAjAHnD~^7)>Q>CExy zVKUZ1ulF&EEquJ2w(CO&&wdSaZC64|5zhnObJ?q`&E$yO{!GcS&W7vh9M0iZ4-0no zb3TnR2T!jcm(h-yVR0NOS0)La?TIKuVSM`77cdAe0*J# zXpopen*#CP9la-Bn3P6A5qQVzu8Os;$+R>ExW<>$;wdBSi7TN2zDg~Q0(bp>BF@P? z=#v}A(5EcSE{Bwej^Hu9&d2{nvrr7U8${o8&}aFih>9-$G+u%G;)zoHr@uEP6`_AW zo-Ph`b)#cm*dy~O7G-8@$?AlhZ0frSe-=5@b)2RDp64yvt6604&D0KY*56&tOp;a5 zF@~3_=@)jd-vj!LyfJIq52kQ^1n(7KZ37;$SoIYuMm%eGpJG#bR}sVa>^`!b{Ty?I z`ge(@8QB|H@RYrDALp~^X)-gPQwrZ0+?xZ!nB$RR>V-oUdm;gZbAL z&|AE}H#?1F4@&ar>{MX;cTCt_y<9r&h?qC&vu2gqG$a(e80jrouuB$oK^#WuycOlh zA?-_XpYEs^WBa6$=6>)NdR-KEbV{bC1E_N{szq5*JZT;TX43M6sD7`YqQm&NEf0v! zN6~Yu|D9d#6j$knQ$2&%ZRTb%^mY*Vn7DU#<%>IU55^V3cXe=qxN(s;-NNU4uMdcW zbKIzE8GO>q>cr6LYss(>JHxvY#D(6@WN-1ezUV!p3^pifEBdb}S~T%J3od0uIM1)X zbe1L!d_uQyhWo7VB9*m&N*{1Orw!7UhRnG}`H1I&$*)*OUNz0dnauaR#D3=-rJ1-l z#hJ&LP24_8Mh=wyvyD0V?x60L$l-mnSe>wi9wVN1HF9QSu#pDg-u&mS3(GAlq+iH~ z^E79()^qY{Cho`m79-e+%v>56g_`ZCA)C}GhuUm`|FTtE_HJ_)b*~0~rTayU+LS@s zb--9_<+}e*?J>2dWNcPTFRgHQxN1wQTOX%EHn^wq->@O~ z_tP%q)xgD9*#X>%KC{u+d^^F?9&M#8JM`u|O4ts=O%%Ecz4^XO7EoA3DM7d&7euhd z-3n+@K5)R2CCqDB9zBx4Ly$(ZMd>+|@(Efu8a>&of3k=}EqBSk6f6a@x zqV~BIc-Np`j(8|ehc3!&8+cDIuM-oR;OT%}QESUfV#oW~AwVrRVNA7{39ic1NO*;q z9~D2I4x_il*!?#v7kk1hHXNV3oh}#Cz~AeG`%=fRT3kEVhuRFpe)`L1Y+9T<-97~E zzJL*IRRpj~?| ziOr(|GAKuX9qrBr*Xg~FiN`8vWbe3Z#Q0CDShpCgA7NYzq>JB%CoPfy0NH{*7TPyj6Y6qW&%Iz*-={2 zvz&aFU}vzohV<^uP6|P6JDz;R+)THThCgtR6=ztA!zS7-N6swT&nDLwp>M{_<$E5R z?^pnjHr!M2_Bs)ohuQ|`XZ=FfTgssq^U=qhv0?@*vxrZH?sG{G*7G*Ja@K>h+f$z{ z34#u495f5~HtZ~PpZ@i8d{o_>P3FMWDZ?)L;}>EW`tq|cac<9F7DwSc7eh1Qq^ThG z2n(mBYvklvkIOV3u&G!DNcraJkO{bBeBywGLSlRapk2{b2b z7P0(iE|dp;+gR&Tb^zRjgU$Yq^Pri!(#i?&6a0kTrA4k%)WBMr*%U=>8`7k_k{7fM z^_Xr|ilpDAi5v!lHxL#qRgAm=uO8e}Jr_$ZuC+8C`L^SOF;elu<8*Nm&h|JHX`W>{ zy+lqJ-(N?v(k!DQUtn`3-&oR^ZS)+qmWK5mwl`oCl z0mVPT40U!QTeu~UoUFh}U9pPIQRmP?#IWV~vFy;rOfo+KJpYvi%i5SqZbyK#wJ>FM zofE0!HeeUuy0S?3So&BAEc$s{HUOG5A>Xi9`}~WzSs&iTbK%D`^_I9U4YL*C5?c05 z)OZk1(Wl{YFzt}I>um_l-;KDntPp2Nf#hN@r*{RH#PRxmRDkbOS7^W*M?tsW7XNmp zBkLTzj(8IV1!bz4U;EWG-|BCCapZ>^^VzZb44QZso)PoLGp&9pbnh&9W(P;G zAMfI+@e00PZO)3$E2*!RoQh|6WP1-lBhx`nS6rI2%LA}CpoYFgp9XQxsVMT)QjiDc zHM|V_L(t#eT3jwx0z=b)cGLd*`^B9B(BFUtNJqzWV%`I2H%^e#tTy`WxsDg*0@v>1 zx{8$=xsoNczO{c|Wu3aNrYX>-`fq+tn>J6GS1st#9aOq}LEe)_m?Rvpp+T?MZs@G!Xr{tx8 z8RgU|B$~ean@fL;%g8brz3oALsl;|0_1}d4>+NrLG=CEXAA&|u;axV@Y(33v0Dh8H z$$p$HpurZ{8Qi>q?WoP8W|`O}oU35_wR0%uX$-BI>B`gz=~Va*_ux@G=5jBIw!MiV z8ajoo?H^CI*uj7Q){1FtP||!iIc@rYJ`@;_3Hr6<`c`cEWN1|PL2Z}(M2vh9MR9ft zIu=zU7DPwTvULi2J9V%4>Q5*QUIJ~yh8Iij3MH zm5xgF0`VWWNX6-EP`a*|trTQj5LXO)uC1oAs3R z9sS_;Q|!o-0&)aCyr86%d6wr<-bvI>-O|~I4%zes=X2oI7*=nUM(^4ob}v0x-RnfU zJP=wa35(c^+tBI^M2`4k!%l2h(wRHZwwhteuunohG6lWyZ^ybVfd@;Nf(naXi}}DC z&KF{ixaqWL2+gpe<x*5BG z8P@jqavJt}F^d-6=tj7L6pwzf515sl{PZ`@-)F)UX|n_BI&g#%Yqv<-WVKWaZf%oi zjWq4-3+iSFJpVG24)IN-i(C6W|=I(w98;ZXyXdSX}sb#xGw_4&5;? z%)iR+|0tlaSkzwe2iPo!Jn-02nu)ps)gr$4XPBaPkbn@ZK3oCrd__d^p&jKo~( z?Mn9Q7W5My%BjY361#}Jv3$CM{7eS2XCI(fmad?6H#@SYcvt3?C}?Dc2Fqz41?0+T91$qWh{Kn!iv%4lYMTK?l*C*nwJU)nla zLD>!ySo0Imb&P|y{B><9>4P&Z*!Z_zZu)>l(hTH{?x^LuUE3o~ZCgwI?qK)o6;IKI;k%dHbPqvToItB`pSTb2B`|51KI34IZ?AFMQB6hA_iE zuGB9CHHmyW8!*QO9#aakYGWXIR5_E^yuaszcRRaF%BvgUc?zD!4?()4rKTOXfRWC7 z3X1;&8i{(NhfAZhH2EQ2LjAV4{6m+D|XcoK9mn?S3 zY5lMvOfwR?J?8Mi8Dzn#om?pjzeCFt7Hr$j)nw2a_rm*u%zn)ZGMk9qrQE(Oy6;jN z(g=^p8gterXffr0>(l#l8arIKfRx++&d=egk&?1R+YFuXRVwLyhn}K$PTh1z;*Xu88uZI=9MzJW;Zf@642*!=F730~O-;bf`nF7$ zHcj111JQTf-xnfnoxYw1AkNu??4|s@xnz#JFMKaAWolCFj?+`NW3NL^`j%>mD05ZERC$mm-*{JP4G&TSl z^k*kAMXU!M$9#mFG?uLzvyKdGP{ZuEVMBqx>0Lp6WjvH^hUV~upTO=id$X>amXHeC zVu6d>Gvg}@DHFBjuuyO2`*1FGYxj4Y^N+?#4Iffy8{)jDzCj8%+)LsO)OehB)pO_b zK`I8kBg9JP_xu9=D`vQ+85&#Q9tI6H?;74b%&HqyMO4$>vWs zT|k_r8;OzypGrQPfj|Fnm*x+I-wpD{SG`%%jkH9%jySt4w35E8PNaUnG5_A)MRFRF z1WYN04o__^`PIUI;Q?l&{T{LTHxkGKan^~s$TCBqfnWiBuyi%kOF%8W6n)3uJ*+eO z{zP!rhv;r%ceB6~z_}ewvvN9LWL5NG>~-K&lcKSAHnv-~OS zS{1HQO<#d$TE}QqH5TlnMTqn8qCmB<-qfvP7Kk25pv(CMQ!%dlIG90gJPG&JMwwzH4_mwX?X+ZauT*R5FW z`8$^~r7w15akhsoEn=FP(1AuzIH^|#3s3bY-+bsj`o^<3PjC1e;4U+bW~S5K$+9qp z?jP}E_Pt!F<1557eHF6|TZMZW*l)x%mLK6jGtU55_cCEI6-!7H+=H{>jp9Ai#iX@8 zhPM9Gjurj1C9A=I=ZzVriINt$XVr-Fqt+T#V_WBvFXB9LplQ_+^8=(`k3BW}UR5b= zk5Kc0=m)2?sM6W7m7V~{(0W}bO`VxT&(L4rF*qW9oR>m<5a;ep*OoM-nOFD{ASXou#DUB${jsP58kY z(gKTQ8g?y)&To6lGh->WNSny;J^G~@oYyfh@Tkxl&c2=+@c;=HlfH^GQ z$!-K<-iNcjSG|D+r36z@1$4Q0WHGNY)DkJsG`^PzEYX{iaks{r$k{CDr(H#yhxG|$ zZ6CSND*Qh7Ijfj`jx*IEZ@4E;W=5Vf=LS@DU5k3`Dzry+dsewzN8Q^2 zJPqUDQfW>$O+X%8)bfJV^ectl0ylPz+a;N#q);owxkNKV`tvoJ9wBdJzYml$p-Wta zIGYbxENP!iqCmuXvagLat6vfsBhHfqGilddV8x%2^Ka=&_t%4u0la9-%kONZT{3xI zfc}QbeYX7*G)Ox@gLL8r<`@@82jExuGD2iy`l5$GouCWP-`x@5jM#!l(XE8tECF7D zc%JD{#H`K*Q)a208s}xOx6n=-0StQg#(3u7=|ir_KhM0PSl&(Ooa~2&TYxtUhOdXp z5WJtXWlR;kh8i334tC~Q*aRnv=i%|KG+?g&4z#~D-WT^{;@-4nR27V$bx9KIwVi2~ z$KUuylt-eJiu=S0{b$7!t*R&RD!GX`hZR~?_3Tq7(fYm>rJ5jpc zEct()$QjNS(h|oc`iVGCGwLe6*T&uV34KtMrqsGRiGI()J2!kifKl2GE^6ybI~ktZ%6=O+?NabJB;M2!oC;Fq7NwoS1h6G|U}iXlaKz ztWJL&nR3V{KP*|ZrK{<4IdH9tRxGuX6Ll_tXJS){c(CnCIynRy*@~m$*#_v(%=sIC z{yZy5I`c(NhhIgJXwt$wqG?`RqP={!#S=qEC z>a8uOmT&g4)#u~j{|=s9r)|vE8J?E-y4LG_cCZSV>lmC*_|Z@Ej-Yu#a+;j4WLdvM zC=0mUkLqBy`W-xfaJJXfu4Au1`$6v={(9G!vU5YA1A*swX7+5RDE1`FQk>fc8y2?B zjphM&js9%J#@V`1d0*6)OW%v8(W@y3{_#DIR%7>0K?8D*i%HA9X|(0vbE{n+ zlBGD*8#{n+47=K{v=}SWzSp$p9@{&mvozrN132JXmQ^^Bf245HCz-yj0KesXIotXznf%V9?~W*DR*RA-2sr$b z7db2!an=ToWYH#>6}v;<{u{Vn6*0`>KIXL0g&t$)%R1FXP;cxd)^}gU?(7JqCp-S# zU0KA=H3m`BF*`*F$_(=+U%pR;1Sv%Kj#YU$2Tjak7b_#S+M z)^Sp6*6s(qZ1UyQ;><6P>OvmrN-|k{ShQT@PbR=I{);0Gb4-(l z9E+p2z*8@CB-7Paft2L*PEoP(3IP!37jo4Sh{bK4lfRzo0#d+ z?=6}1BMs;9aDVCjZg?E*fIqCMzV!NNI$4R>P3!%WO{__yNSs^OUG+@3o=RnJFeiOb z!+yfEK2!_6fPOjCF-@UA{bT68=|;95Ij7DaTIg9REPX->ZN)ukKRcS;nwdmnfOQPH z@5w^3pJMO`_-3dh(_W*XoR^sQJw)Gu9RCZsI(yRu<}n649bTxV&x~RrQ^RQVKJ<*n zgV^nwVDdf({^&YWHg$O*z1fY=f!*15D}TC;I-Gl`&s?CbbbbJ8KMze-^T`XGGMqn+ zM`Ga^4@w1I`t`?NvFwp6uwr=jwR051Tf@I;2sB5&Z5Idk2%?b}{^k|*Hp!IoP%lkr zjych|H`48jc-n){8m~4;*XCjtkIxSmu9XI$rhV8I_tfbT(y0#cPXR7BF+XbO#r)r?JxG>9MQ_VPq@FsbHEm8=e(H z`S9kft5XoILrz?h@JYPt9zb38Am=+h7YB-dbOgFNc4KdfEq3_O?1S(gT6{vB z+trIQqu?oEkSQ9~LEp7TN%3vQiOOHlY^;l=yKc$i_|#w;1U%%w=UHKuEg26?Ce{)? zn)`NXH}u%3SJ(oHn zCw%XCfNeC)p`u&hmed!ph+A0{fP0P8h+`v*GO3pVFrrHyY$#&xI5>uSOj^X&^oA!d zW~S#4j%8mzrqa|k=*2z^V$YpZsRL#rZ8!B|jqCAq@&0P4^jXh8iS!Az)9gpuY{2q3 zDn(u0@pm&OO#x<%Io+@u??vaH;LTaX+hXivvDwE+YK?c?ssC-!F)Ex!zlR6niVNa< zyHJWAte_iGjo3IZnAQ$g&>t(6Xe=Xm^{AfKiRY%{? z5f9~h6K|%Z##0{Rtf`(f-Y=GR%rX(j4}rdJCit>`GsXRh*ganZZKMDF`S)CdqZOSa z+09O&5s2;9;sw%8)L{Q=5=f?C}=E9!^xTwoa7FLGZuMKdmF2h;7C0SH~oNzI|H>)&&4>e}@1Gnfg z=kj!#w+b3xvKFl6$~5|fern9#SK)y}uXx9KU=`!{B(CTB!BgD(KEnj@}) zSO)EmH^|S?dk%~J$3sUK^B%8Y_ zWYQYA(DKi$0Cn$VUCi$1ma=UxlBiEd@GDM+vWpgJp>WnFw9t`!_?y&kl*S?K95vH*axc zeJr>x&@K;KE4p@9(6IKv`9qeA8hyb1bd}T02@AzwJ80qDg2ryu4AI6AJNMwnY)YCa zhCna6Gj@coY~aNa<{{*>6|jf-8&5y?`Zjxs!Bn> z%Z$Y6i9VE`3eAPQw&Jd>o^<6jIKEph3r(Fp>CzSGtq-hHf2|83TW}2id!F~qzQN|> zJ@7#N7E$HEG?qZWr5LlE&z;$i^RaYmC(cC2$KvTI=<1^mN%lS>?l8!r+qehw+ZTv? zjdI}MfgT+CS7E)gDH=Is}nnITqvfiD}d3m@ANqRstux@m+NpV~xR zdpM2CP?zqqHW25g;C)$+9iNBI#K>1EbRT`$KSd9OBfV4TR|9kfb*~6vC5hyO*uK1b zS=iq^4!a%DY3y)S=yC^f-HBZE_@Yp89COHzn8jF}6Fx%=(`7As@}ycpXA(4i8d2k& zWxPBq8sDek?$G_vOaVbyiyeo+g z;l8tIJxUy$huR4_S>uYf__;BWIw5cL+EOPR?w?AIz>)gR*(G>&%q5qD(4x{v6M`)B zXxdls0k#DRKd$D`Z^SS<*iL8&&!z#G!>JzH2(1RdYYg0pFC%*k-5WE=EFJuxn3lrQ z;&jS5fZA#E1@&&PG^$2jL4%{!##g{8>H-hlpNCZgOjD@_xo(5}c?hkS~pkErW@eydc^%n7HRUvUrW zG4+Y_(0~nwU!-tGtuhXwA*U7eKD18VJptZW7ZtSl@gwzD^fHHw6*R9~GvOEZktg4P zZ_YnsgywbLlvW0>-?CI8wWlYofo7a%<~G3<`d!n9K|>_s4u3}FM;8Yw{yNWZuy1?c z68|q9%=fL@3&}V?);)m%mOfSQX^~9F(D$uuc}T4@HjPT`!8!LfRQGC`2c31?eU;Iw z!O!xj!~*s0X^+Y+KDo4LNemtAZZ1<`W*Uz?Fwgmh>?ruOw=sj*dVLf(cvdFOydFbS zzs7Tw&EZ@617~liz^!>JCjN$&%&eg(tQ3mYQK&+ zCwETT@SVaFkYk~7@Ir_8jfKZ4u!GVWmpP{Z?9DyJ^S!czi!sA4$WS@;JeS6e&JHL3 zIB<~B3hwr4=tdw{&pPDJb>>2-<``yJ55{xjq#z1=gx)eh#%aLopiGT@t;;boQ)m(| ze2%$5#eVhI8gII*Qd0Qh7~v@NNIQ3pqm^}PVR;Am1kHypX@7mP6XD|tEa1O+!y_?3 z2p@?vqX!<*OaozXf6Rl7!5h5zS#7P8Omg&nXQ^vD=mwbNF%qFWA`BDR&f&AD!evMBR*40##YbCMl;%ofO* zJGXGdwKJ$Kumw|-XWXYhX_St+|B&E*d}2ZxjVYJY@?mTFCbKkJin-E3=M;YR3wS=- zDQLyxSiXN`B8~lmIjm^MyDh+8+hokMw9R-Qa0;3v)HXd@@c!+ve|7@-=fe}O-_&r* z$Ip5+=oaS>EyfP0@s{UYaxn+| zXe0WOQG++DTcLmXN3JB(=^KQxyF9?5hF7udn-E&=PP_WV)5wKJly};Pa*@ma8|M$Z zgM?x(m1MZ@B6@WZl7^?iPXRo`^%_FQ9?7I0jry(GWi>5HqkVzkRaOsE=k>we2Mm1m z%^1~v{d{@@9@P2uX$udO<{?}Q*G%}r z$mt$D>)ktNki9eJAY)tc`Mtms*dzzvWg>4>kw&+E$Vs70dCg=)YJ#P+?iUz-Ohvh#6S~&yooqm;;4FAKQhN%X|MP@&Og&b zggKK_=~oxG5S~?Dx->sb=I*aT{O`+xu`n53|T%Eb1}mB(7YMNso~; zKeRv3)xrDN1lW$*;4b`Ng5NP_|9Ss7@)03f&SkHNXMmzWlW{>C^zc>#Ju7KdDPP-P?&B@9hWqD_ZF^7ussyB46>jJJQJL zDeihNeOj8EN}ugx=})CG9S;Wv;uK2`Kl)O_#{}wY7)z|kf_k2f1HKYVi^mNkw}G*= zVj60L9XxeFeHEYw{JPyV=(a1!+$^4gl4sL0E8v#U-wc~Iiw5om2K+mo%B}j+rL*C5 z;UYZmZHoEA#X+?348HC*RXEhbmr{N~i#BekC}4)$34dp=buX%Fk3=M_$V5 z^Ov_=wOa;eq|iCi8p%H|NGExuf+pNb;1|xv*~Ttw#@Jdue^xpB|b}!Q{@b`g zK{I~ydhDioDClXy1m5-<;(1v?`Ym$!)%oebc%Umf>;~Tw@t-#|mLfIusqOM~^3jeX z{?kBmI+#k!XF|8JwFS*+n?y4`u#T$C`4T{@4oDQl{dwmjG&TH{ncZ3 zdeM3G5v?ZY3PuVKV)J51+jxv&*;2vj=T7sKMHc24Sc5zvuaA zWQ1@!G?iYOV>fe?xey>S+t*X|#mk&5v$>0q>JSn@YkxMVo^O`!?a*qnIGX

!ni}+b;~T; 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≪H-#+A?=CCm8l0~Wx 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]Twh+))(ens5r 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 Date: Thu, 23 Jan 2020 23:34:59 +0100 Subject: [PATCH 162/453] Added SONY ILCE-6500 dual-illuminant DCP Closes #5581 --- rtdata/dcpprofiles/SONY ILCE-6500.dcp | Bin 0 -> 1102958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/SONY ILCE-6500.dcp diff --git a/rtdata/dcpprofiles/SONY ILCE-6500.dcp b/rtdata/dcpprofiles/SONY ILCE-6500.dcp new file mode 100644 index 0000000000000000000000000000000000000000..66be8b1de0486546f1534c32cf865634c3870f1d GIT binary patch literal 1102958 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

e9g$8xZ9n1#rWxmrR`uZD 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�eMe31Uu>oqWJ#9dEp_~Ak`nOJ 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

E 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∨YXOKA*?b*=0NY+BS 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≈%r#oA!5*#9*O?^bvrE^V2}O%BJ%FfTMRSS_x74Z%46f2KCvAchVK z#7l7i#tnKjecWOPqx^&wC4=SL1G5#f?Y4cs6P~);8=WBJY*s{8WFwXscb0 zvuRIL@upun&c`pW5IPy>@ejfUyU$h#*otB)JpHWnzgU2?eB#dzE5zGB)%;KoJPw_cx=yu9NW)71+HV=D`j zIY;r_&KsY?bcEN$BN!OvgHW}ts4(&XR`m77g?)PB$hdt-twt~DeUn6g%}$J2K+WQi zWx{Mz42G6clhVgYBsz9jnM z^J_2h($Ej_)CFFuWiK38_+bM%spjJbh%TSYaqf3(xX7(kj&t0mapD>Moqppvrspsb zpIVOds3xt&3-0>-{<_=KI-=VDpXXEgVWPs7a-1Wc@7Hgw_rExYSIAO!MO=Xs`OKTY zoRo~{i*Q}bzVJ^+Wn4@#ybe3z>JdNXkncIns_KHwvvJC1vojd9lKa>T)0H;UPoac0 z>X0sHmC`P`)D!T4*`g99?4yK|M;&#uFG}}A*@zzJ4a;v;gyEu0EWg6p`YrXv=%wj6 z!@TzN6kV}@aw-B#{IJSss93C*gkAKCb%>ZQ?w0Ms-WGnC_;rnVUu6e5PhYtGYa#m0 zjKaPPz9=4HC$txZBY7!tJmn+?jtqh21wTB@^$<=?f}q#SA8j%M#C>vln?Czvy0)V* z3iHRkZeeIN(MZ_-D91T^te%+pgPPF9ux()<5yNxw`?;a9uDEcd9Ov|D+9KSq9Oq9P z9x7u@%FlD__jcmU)pDGVebF*>EHeA^z5k8RKO1E#)m~rW>_6|mE{@6p{Y%(DUU%vp zdnI+tdBl9CN84~8W&h4XOjt$DrlzsVj#CAw{md1CHis3joB23z;f|p_Pb(wupF~s> z?%0^zRrIdsAe24?x0609--LjflMj03RTk1W3th+fq4E8C!p-w2-kzps%zj-lV#ZaQZb5V}-s-4f2;@JO>8_RPPBa3pJ$Gc7z6EBzJ zoK&-e;m2iL{|DzEdoq-s6Ru+ZEb1>UvQ=JRyo5N;MO?08rBs`E0fpqdt(@GI$jl<> z7Pz3BeYld@jCsg9H}3JNBGHCjIO(ZeLX#&gXK0lD>_{Unvn! zn3ELJqv2)+G2pTS|4Z~`NUI}$9n6G1J?y%qv=a>nreTN4@BBbt=vwbbU85kR-mm~$^cy!Hyhi#eh29kM}mjG+%!#4hqOlfxsAg8GoPQ$cMUO zYWs4WhYhGFQu)6A{`x|fcZz97InFgkNyW>j9Os!O?Zu~aJ$|XC_kKOcvPsx3yvN(bCTK<@4@kJTDPvXl+ z#?8hxL=D3%ysR3Gu2WjG&P_-6C&5@Xd9bK!bpXf+M(x>?gN>Aak zbUT`Tp%+&5bz)Af&_6hs=uH#f)N-8r_!$Z_#-ZPMPBZN#I?_+!_j5Pn_9FFhInDt# zbw&2Ya-6%A-c^pRDaScr&mraHX3IaHZ{gU(pi&8Uz4^WWjT>vX?o?XOyMiw(sPWrj zvU1e&5?(sh*bR4|ZC0XAo#9@H z2M+FWRp#sF1LVSHM+7U0n@*y}E_!{H#48UHbI`5O4*^qCm825_2ibFaIpTye{_b(q zs~wCl;Ww2@yE&^cYdccIe<)tM2k}0L`M~2kqT-ExXgzm3CJbsNj34a6e#h-NIH!}i zY!HWda(3U{dIUm`trg`!ayibG z`^72--OB61?~aR=sY9r3#?P;^)>aVpzwxb~mnn-j2+F&MA(`ad@wUz~uY|W!0$| z7+Qtl%cg6}+INvC^o&5CPB)dk!QnW0AR3DPSw-7F;tvk%X6GtK4a#xe&?`YPtx}Hj z!=?dBr%~lN*U7L|7Uq=W9GJ0G84_5I^LOttiZy2ve&cD}qPuc^Mmf$K8obRuJD>eh zem%Kw?QDx(wtt@gd!BbKa8|Cjy@2`TjvPkSRW__G#==BLdJWvk9%ERDQr6ezBTi*o z-6}vvB=^j(so9Pur_rph8wOT8nSJ+p9%|lZkFDalY@@lk=*Hc;8}3)Ld!?(WZpONJ z`-AL`zZ80&k{6rxHd`|wi+%|H%(s7KcYb*kTjvJi{-o;4QLiH?yby$wubL<;TO7b} z#?{vW^s?06hfZd}sQPWFGWy|8WVrD;VwBRg;tpsH*^Zrw;}qBV(RfoW6owndEBSLG zQCcAaMg=34sly}S+btHG;xvl)+H#zajqaA39;s4L`A*Y+!^`@2M9IZ*q z-gv$o=l37Ovc2NValZZ4C0pl0InM9w?6O;|D95?hjmHLk*}MLYbNg%ev#L>d_V@FD zakjX>PT9_0RZM@*t?50^9x|!`U(7iFa3(1GTkX@RbBen*-KKFgDG!0)pry=al{c{d>NE z+FQ@YDP7*2L1<^{I#t}0ol@mA3g`Xq$JNMwnw5uyC~_JOvByg$<|68;GkcNV`iIY} zXkz4wJ83!wQNsjk?xyBZ>NJCn30Vke;DMO79tI&lkI{$D6E*7WF>o--zzoiUzu2N0 zOx%0~=UG#P%(-oFrBf;%{PczPsWO9=kCNeA>W7@*dWOB_Ufi4Dk4ulc7{<1Zr#Fp1 z@_Ag#xS#TfJZ89Nvf-945qQe}YsjkkhH8~CoSPSj1*29PPFWQKcdhNn);2L*Hf1|9 z?uTK_h<^=}{lc*K%WlklUElB<_mqF1x6rg}2D3^7{yg7pve)3-o;)6nYzEuT^on9rsB`=Njmo zS8#iq8_vJ`Y*4#v7A8M%M|Z~thNWAM;qhcoXjkcOsGXXQfATqN7(LAJ$F;-w#hKd7 zA+roWygmq>Y+pF0nHbLgL5|dre8ft7!;JfhSbr=4T3@{kGmQ39$0`s5e}o(Q_TGv1 z^v!LvF3Hg4d<-hCW|BG|`9#xfvC(mGg8wdQ-+MjhVJs-Qr zvIjb_j=|1hdAMQA*^lb62D?*FV0t!t$NxvxS4TzFu5T+Q7$_zxc6S%dzBYDuV2cHc zih!uZ%+TH4NT^_7q9V-9-k@R^cB3M8C)Rg)`2BJG&ROeSYoA#b_dNT4?zqD9rQ(*6 zjE*&_`_{`?=w+kD0ct;~o(vbVa`VySkROaK7YIS`kD>+nOK(p)3!~c|X5CHS8vh_+ zu6Pi7uY%CEX`+xhbssFbudG#;CG1+X2R|-_qV!0v&}#EeoLU@?>vLs6yJrW`G7|Gc z&I-MoZ^P07(U?Eys?hdEIx@b-B8cATM-ns0!uy=iBoKwvX zC?@x+%+EnvBD8JCR?auVrj=`V)~}pDJJ&d?UAen*{yg7pzIKmg<^0(|Z?2|kXl0yL z<+ZSCWM!OBeJIX9d8cv~{onWC?%Y7lm*`?_s!#8Lr!^I$gH9lyc-PRI#}z`;BK#OZ z9JaTyu-!+3(Q4-Bvy+4#&owZLC3o?sQb-@0kG1D~Q1fYwP%Z8#Y-(}NJS<0OaX%N1 zoOM)uI4;CBJ&0xj0XYBRwh%RH9~N;|pV|1G(0jukv}zuVH4XHTx^pM&sY~)`MIGGX z9=z*s&g!2wLPp>=G`|uKKUGVdwa!4FK~b>$+76cr(-1?gy?ZY^!+6bBy#Aa>j8->% zv`B?@Q5vq9b;G;{m2uv3yc1^itc-I|NfpTbE8{$7V{hR>mC870HILNx7*QGLg~JVX zgX!b;_x$he)l7H0N##D}x8|<)HFrdRKTot9sr9;38E19r6JhF_$~aH|eIP$K`G4aa zV%QOhOc~Kto+?2p8UKaQ6=}KYk;H`EmKsujhsN;VPj@k37_A z>ka3(iNe0z!!R7m+5YzgekbS8T=u_lzFX1EH2PT{&J$z&XYL8bBhD?8 zCF;Ze>?P=}JB)T&9%$HeqcD5%A&euZ>1Vqn!NL3hwsQ{q$5SKhGv0@uTf8x3>3#Zo z@4>fqKB$rNTd1~U7c5rz;&TT>>{*yi+=w5}DOD6wX>V{*|f?yKiS+}>rG$lzn_~~mTA1GUHtdCM{-cX?KPF>Sz&Nm zX#csgW={CBG=F6G|BZ9NVL`FRXCKB$b=OwqM?Z-4i`vzbs0K zFxic$Ce*&~oG*CH*@-iy#A$e!3MRf;u-!}l7hN?R<7{oe(i<eRb`x=>!b+l-c-gJ3-ylqeXE=){dazjZzn6Z z6l5c2mm3zH?k%`p%cA#=J9#>8!e{Rt2(ROTKU;SS&l+w=HLVA_=&lNzLNallSk~(& zehUwOr?Y<{MrTZ8RJBZl=S?rHdeaqpd8yds?~P|e6&PTUf-S>*@S)Rmq|Qsi@pnGR zJFyb!%jktlea`{KE?D0)4hO9Kuuk&F81@nGNBLu!el&^{Q5d?F+~EBwxIUZO8j(Q| z`)|j&=MgY(L@&dByV2h_0y}=Ne_6Z_pMQsAde>-F7#%=7c`p8o>HSH~yk=?P==3!i zL8D!9D&t&pxue;)|H~VH{op#Ssf=?-v$opUE|qcq`SqN}wO8eN zp4MbXf%5{hiQ9&rac+pPnkuZgmI;U9#0ifK z6LNQEVAy?PW(MaA?-r$_(1W;1!*ZcowKRP1!agxXA4eloar7)bFudDfR;v_Ptfvp= z*g+VUn1rR&3h0wfz3#?|7_gUkn5Rp)Z;6Mog%6s2b;O_aSPZR3zuO$@6U9bj2j{#) ziXsqsm^dz;^Piez_$EbQzBzmO3)@lHC;}!Ug0Qk~4)V|OZrm4w%o7LUvN0UZSBJx7 z{t-kx2*ZQ{Q5fCpD8_R}XkRN9{>S(7`wm0)LF!Icr+!5B%JXc#_^r??qcYBtlx>#y zr1CslrZ?9nCRfIJZbmchky({-K3$;EILxSw^Dft01zU;9`ulx3-@30DRjo2Vzumvk z)N1el#<{D#Lbwx}NsCwJ=PuU5rHTxsw0B4DpLiilpK(4(?DxYW!S_oVqFFC~X#H0B zeswEKm_t@Cs)r@Xsi>(VXQ_Dy+7YE-<{B?#Mhr!fK{8UP4?Z_(GSo*BafvzdhrA5S zhLa!U=Yto!x1begKWW^FH+|uY3-K{HJk$@1`_gNg^*{hI2F6X3vCTCK0n54jevye5 zJ)@w<8Q|bayP)JQJIOo@%j@jJD3?eSwu*%B^aFUjCjzP~(J;BOAK#9Kqn0iXi?g%w zY(39&`(%i#$?shhMX#MKSoz40q6tDO^dR|j)gBO)?c6{AHn-NtR z=RL;`YDDkKI4f=YX}%F3{Ws3rEd2`-j4R_@ZQc1}f%GE#`}u$8jShV#3n!On;u3ND zkN3_NCS1*cQyqH0I(Q4t@6u7chxpIXZ9>@7G_+)&I6t>o@Hj>8&kydll3xh@lTz_L zjhX=WY9eWA3hr@NTRgcrlr55ZW~l*X*A3bWiFlGlPr$h0c)c_MQ;9uD+%O6DTjRLj z^Tkxv58{M{l>sg*w#lYUz*b#5d&iiNgJB0Vp2lhdn1FahE+#ZE8wQb&Z6Y zd%n!R;TYX85+!XT5Vnv1Q3H1UcE*u;Vl4BS^>`F08dm$F>;GvIqDH*A}OdyTQB>k|vxSu@%ej5i8!bK-knc6{nP*a2;|(u)LFu z@^)UB?(jiq7@Y+5NiUo_RukUi6Y-M!aj$-jQTKT~Mzr(6@LugwefW zCkBcbU)+unQ8gh7b z7@dYhH}Xy1&lQe`Zp8u<4=htU36nOaBKjD2E-gZZ8Dmq(E%ikFs&wIagJhTxpIooq zVd3cIL=*=TBl`Wca5yLdn%?x%ICoFzrijPs>)sf<{(}&?Jr)aGeXwC%b!zTL<16*e z${IC*ra=@sw&u@P)&dhg^NtJPZr7p%95_S0%evM}uRF#yjzFM0HN4*RMj7YXe;CIx zr}`q1yVknI!<3>ArWc38p>`DNs5;;q_uXwz#vo?i3t=5+e)`-mzV0zxcv>rxdevDN zaLBX3{cR{Z@wv_U49%I%LFmHg0}UfJwZHj6(KicY+f~z;?DInZ_o=wjq*!CFqQ{wD z3M?C*(6;EP!v2&@m~@CK=zr3gT7cy2{pWv`^SX62ltOWN8b*>=b-=%)u)`t^jY_E7 zP+=^r*tiv;R`h{r-$8h?E)_$5u-=<7Q0O=}1&6~t5Wac5(5P=RHj+cy)6i0AT|EgI zx%6#q<}AE8n}DtpypZ+NUsxI%k5>=L-Dn*vOrIVH664`gnkm$~9fQTqePDj~pfIFQ zG}P3cbenTr@LLm!3ZCs#b*~Dydq*Jdh975h4~0g~;h4ED0H#k~2;cgLBiA(u7PmeK zBcE{Jc$0Xfv0sGY1IbnS9EQ!`KM750g`!Pd1m<0SEGU#A82%>;Pb<;{hkmTBD-y8h z{x5|S`;_jnnK=D$Nx_|;p%}{8##%U1N+b|-S8T)HI;%9hIcwi_KN$nmWd-BeACFeV zqWD!KZCGD&-3CV^@pWyTTdE5N)T7p$vW_-)VOXxX`-68#2|2&!FBLwok}zxuwK|V|Q^XSoUXT2ZI(2Fa z%d->kZ9VI~?1sWb*LZ|~qb6!@Yr%VB9AOwxjJg52g7hUUWWZy~7t zF&1l&1uKsHA>TGRg*&^g1@F3sVA#quC?+h_OrfUnV z^x=vQLv5$!+BSQXu(0N=AZ3W|PZcMKkHYZ5C0{!|#|bNllm74X{Pj$zaQH|HwZ5qF zvbMgkseKAY?Vx|g2uX2sNHR)^h2Far=BT9@{y0U4#JzhUlkJuhaiZ4+^@S;5yIOABV}|bMEy64Y1@bks~3)@ zv55-HxM18Uj>3&uea!L~hhX)2a$rWc)ReBG$Gu4+VlO*t?oRbX8nL?z?nP?)H=q`2 zR2bG;0u{U&Ny>DlT&esaVO{Q%TV8>nm6XA5qZ{mX})cqmTr zNVXIa+?Iqu%qA4ovmi=o5aKPF*$X2 z*O^|g5r^iJJfI)jpy1r67(C4*m&Yi+;OXON^kt1bV#dt^zsphB7RjD{e05E$qDZ{> zLyn$h6U~P_YE;^I;b-+Wn(f4Z_bK;+M~`-zN%J|^XZ=*8u%*U{SglEn`L_`bG!9jW zSDNSx`%!-i%pHR9EZYxy^NR`|Q3KG-mp|hKpMn$bgV2u{uvVVN1>0XyuWJhR)Os~4 zup}oag?JkiMNUEAt3imji9oyQ-8IXJi%fdW+4T}fjWR9(--ua%Talre=;ecIU&3%D z;J(IlE^!u(=+_?BNt-@FiGD8LDCzTFD>U4U%XO$-Y#O6GJjNc=UU&ipp}G}@8}X{j zzxo??`kBInN%6R&M-93uwFR*#4x86dU(s5n=y5X^O7dIl4BKw@>ro75_i{(yT$6(A z7tt^vc41Jv+M3PJqv)OMjy1O|G)C_u5n;+2`+0~ak9ex`NDq`n?bdv(8iCa>sRMKB zgl4c2JuJwDtQ&e;V@n;sts$P6=;piahWP4-fAU*BSj6jT`=KHO*3e6*L&i{7u-n{=p^J;7$=C=$$^%plaJ+4y= zjkwRVql+~6i9cPe3`XlsdouJlwo zuDdXIJvuG6`X_HJJX0vRnuS4ilHMq`t%bY4LNU1~`LNA{6y`Re_-aetfbu}Ix^f6q z`>2n!Eu-LyNeBwxP{;V|1kDbcV0g9V?AjwvGo&yG)8@G2z~SQ>%N9YLg}TFF(o0P@ z{*0bS$bH*XQ#+ZpaKsb#K35xS504E%pbHZjA#Xvjyd;sRD12H1ITocqO5cRh39cXw-Q&Q}Y2e*T9Zr?+V*Cihm zklS+gW@GL6yB@eX+ZQia&eba2mB_zCZ@F$ev@sVQF}}GIwrB+1fJU}x`^$l|+VeVt z%++{v#R2h=c*3%xnEju*1d@R>2UOvqRGp66V@IyGd% zznfhy@Pb8qH>4eyQZSJi;EoFFIm}mR-VonmI+1!BZm}B65niat{rZ`+#hQT)sWW6v zpI68Cnj3dL;b=!41FeDfcn-NNN@}$jw$SPVJh9c2JoKBLwdGsL|4X7~=9j+OZtm1E zxGTpcrw>hxsaB6XEss2MIv$&9t=scnwdTHf{}63k*50Mf zaWr=ji@!A0rX2LA4zn*RlB;M>yAWG_#2??UmuV(lA%9IBfVe9UG;iMcBJ#CAX8iiC zsa4GzlZXv{W872gso?wS?TO8^oU}bHosk*tijB2o?E?pUdcxYHb(a}BVTlbqey)YO z?;YK|sFkQaaxKOTd9Q<|C3nPg|B3TV!#WsHqQa)x)ZEy$TIkZ)4TF`u`TfcjGGn$b zg}!y-XvM@}YVhQ#F}9x4^cdfpHRsh>GUh`;VLrXWis=JowMx_O1b;8TqhocqYC?+{ zvjeQ%7oO1IB>Db1)TNpBL^J0U^?Nea_>uEV<3v8*=j-m&HlW7E#|GLv>=9n~cZVETO)DyW;J(@uZnd6k z4kb~0lK3=}yXQ6Q{R41(CiSrsH5#LPe&iBpwGk@QYr0 zrA5@rHKc!f=L4Ei2K0IGq*sXL9!-TG`L$K)<*__fv%0kxRu6DT<19bTq|tux3M5xC zL!}weCIF3xdP9-1PV;UneQmP6@y2eGCf3srYpDCsYlg4Jyn!z!&7xlUvlz{t#@^IN z;;f+MAx+KY^ro)jfx@cqHA{CYag`oza~^irK3?sJ%Qx&Wxt_mvmb4c47g^!rh_1Tu zvK7Ro380^Rv3i;>!9DJJ?R=tc(4MoUckC(d>EwZz8dDm0{)$B@l|g!ND(a2CBh zuD2De{&Hj)b7R|+iZ|3LaowOs>U}%KKGrtF9#v%czO+M};#{nFa1k=r?^!g@o261#|d$cA^TSt=<)^VP5Iw zphDHxKME{3JA59XLSM_T1$p({@tMDO;)-ttM~V9@YeS8iz^WRbIzIG1a>rG71I?%E z{_wHzg!R?>nk??y-&|s@=~`2Bk3K0e)Ty)FQcn|DoA`J3P+_NPY8F2w$8Me{lD=Lm zc*i+G1v$;kl+S%v@Ok+fm|s|i zV^b2ePx>xH*V>EFEZbf;(tH69mCr}+dw=cf(rHLC@;Fcvc0w#z%`wczWODDr=~;W+te@pA@IR>v6w)@`J|Q-okzY=;^PR@3v~vM_YK zHI6NzC;CpEU|+HXmu)QYO~V;}f(5D;&&JKLJY1SH8NCjg{}bnPS;KL#HuG_FC2o8< zAedEi!_p8Xw!N|zKC%~2`Ju!N*Pg<~>D10Kp@-V}+QJIP*;h=F#5t=i56tMIkZgjJ)fLYu(j~pZvaVZF9xcL8c1*&D6&wH>p){idp0?4@CZP z#baT9LA^fS*ilslO_wtT>s~Ow7E@1ThrT8+$_JBfQ3GnrK+X9zzUa@qpILjIrp7Wq z+~GX${_Pk|ub$M|D4=%3^Gjrv zn}WKG%yk*nQiU)1+-VrNqWy#)LXFzQfOn+^-I*R}!k=%+k4>=fTZ3J%s1GCBqQ>U! z*z$V=?o_NqpRzK{>bnM$do4l56%+BznH6x%U5MiwKuXY>AzvC#DVG)U@)6Hdq(U__u0T{JkKg)zIKowmJX-JcAP79j}xJ~PAv+1 zSDdEr#3J5nBd)k2tL!A=53*kgQet}RyWDGgqo+ z_|9HH*fB^vOZ|h<^wZG|G83N?H$J0{E9|y)5|^;{IXKS+4sC0R7S&V;IkpAg>U==I zHBM-K*`7UlHF0$CM(94T!H2bdMV-DK*1lhXys%iYSJo!-(f+OL#*Cbe`Dzumv{d3p ziXmQJrT-7P%BS*;@Rs^g3*Rbn=YBV822lg4hYFK?Cu05v`p&neUyJC7iCd_{`BaI4 z#MSrr6}jV#dDY*~F?BKD&0DTm8C_E>o5A}$$`xkD z#^SL@)U9!5oU8N_``A(U=(Q{HG$TZ1S1-&CQzGxce6hIM!j=p`Rl=u(5_*d| zz?wCJO`sAs7Y3ln*bSC%lz1F77mb-?V;JYqCfxh*j@#B#g*&fOk;ypc^ZQOW(Lv?R zzDefqEh)t>)*ypf5;j##}&m1&f;>;Vq4T#VqeoBQIWzK)m|lB&L@dRWnOsOpSkPQF45hI zJz{|hdf`Vz>n1+%VlGRFFBH3P^+C==`f=l&c;k)_W_F>Tf5kO%^Q^dSAN4@j^Yk%1a!G8$*^x%)g6p=~VvHGeu&O&V4_b*2 zSUc5e=Y+gY-Ngs5lz3O$5gAvmh*n;kFn!1Jf8yNCW*G_(xT1M4CB)tXaP5Z*BSV#V zK43C`9er`BJ^-F*r&u9El`dJ^&$4SP}rLhXjS3HEbFMIbVN@P{9 zF1`xj8Q!kM@YBX(PB>>TK1#$K?JItdWNw+MBwlO0xIBu#x0MpB8ZQ?|#xifyldhGy zT1-x0%%8ZTgKLObwTyn&eC{_eMO^ZTnn1&q*kHd`j2Oh-!c`?qKNgBDomum);GJ7> zORUE|=@=KjpS8+G`&4SCJ*U6tn-Ag-)+eLy@m>1;OPtq+^H=8O+wZHH`w8@sR8xP+ zQr}$V=?S}5{QEBIn>%y&x0>2?@7w8_zvW$;XXwH^qEx)j8mIS@%~-0)5^MA99dEY@ zL*ECBrGhJFb+yB3&kFI={f&?hE&C_VlWncBia4dtgOv!$6Htx0+A>0k=Gw)WT9Z0z z{GP^L_D2oY1~-_WXNBydeAIkz_#B{TrC?w_GK?4>o{1WB8knbypr6tK_NOzOnl~%= z#9HcGZnHKvpT=7H!$%j?wrp%Zi{FWJ1~t@%RWYC1kaecZCe+?@TJ)OEnoH+^t5&(9 zBGnnL57#4XwSoD-nbe5x@^75eBdlT1vm6fQWc{(|*^7R6(L7@#ZID%;`QZii1_SAV z$$BGrnX;g6}s6r6j2vzTU?kV8jx!$60E)dMIK0dyANHp5NUJdXbm;i@7D#9387f!v`^9 z5YJ!`^ZbkK46*KO)`5$Zc-w2A*s7&FtRt1^_A6hEpsv#UAu3p#7K=wYhmT#LM)a#v zvB1g;D)x21Z2pKf^t@4T6aBKC>zjKUcwt<^>gJ50G0n{%I8%e<>SkOl(K9dJ#(M0PBN`N57u(n5cgs0lXw+G82j|aK zUDn}Ucti7Tx9w2vn&m&|dD|r`Z0FB6g7dzDlM{$HS3{Mc!~kPEyr@H;rRPdiKOcpK ztUVOQ^rLKfn7A(9iM>=Pe0c*uLaF7$IG6OSfX8nB8=9-&Xi#5luVcNzI&J&LHlpSl zJqGKkSTFPy!^_#H|K@#gPZTF|54q)~5*bO;#G0(BEHF1920?uHfr%$dRB&FS>A-%UNwq;ye_+?ud`Ds;b;CvGP;@JlUf;4do? zr%j?>sEZnJy1WsOlK+voi@WZJ)y!u<^#X<9G4*Uc^Qzyxu!ryP;gTlisl=i5xvvEF zG&47irPkLsXW|U&n=6)4Ps?fxbz8oR^Vmn|Cp)5B9$^p*HG&bn<@Fq%sJOuoO-Zzp1Hdo|3qDxp={;%5c#bH;gusDjlL`mME6 z(TAxcYVBeDJX?htil>SZzo}IjtwL#&9HB1f5;wEhYg}oGubth|h(G(w_G|HZkUO68 zPI=ii9i}34A?GQPH!s6`1U2f;sL(Wyo=$x3ny=!Hp^ccs8P1$S6;fi&#q9pX`t4_* z*mi~3oPTCeDt(P#c#12HiG2uE(Zf1MY+9Ed^sXut9N8sKAI;fqGWGL+$YK>U50q4) zu64Ux;_gkJsLnojUf3J)G3&a3&Ga|i^-Eku3|VYvHL?wBnCm<8nYGvOfSTqjPf{DK zzy;{@M_fLZdPUc^;H=`Ys1BkA=150mO+F=B*t;Owd;_Z3Ulg5wI%3Q(8+;tm!2HN` zTX_9{=XpmhD=g}&gy9M$o|uh;(>MM-JCr!`+#1a}A9}(#zqZ>5*FHSY&3M23Y7Q&r zHuniCJbLY?vARuH~CbAdm_h$lk zNA#}z%HHtzHk34Qhvi-NqKBSfK@E2#Yl-PeXeh4bIq#6m_%G}$F6a4Aic_KAl^PH5AY7iPR$WNU_Epd$=yNL0-s1@o5hIVW0gQ=O-02@wE?oFZOXeg)aES z8g2PW`eQ{5=6%T-=O@-7*ZQH=4K+>~s&J7$)D2lb`}9-6|Il%*AKzswzP~lw*UB%c zNv%!Bs=Tx=CU$&GVePOiUv$p(%U$>th#-A8UIf$V>$zzlq{I z&Ym-`@P3Jd*sL!x4)ax5)O3`1b0f7z`nqtZJ3@?L%@aCyGmh9R#JkU2aU<9sU%s1* zHk^Ar@K}e-d)J7&TiIi&wGAvr$>PelHi%RI+ov2|bPTT+h2i!Q&NS-iV1F?VRawg& zsFI13tI1bjd~}CG@qrk>TC6e5$h{kzL#+$Ou;O_Nrne8IMhkNdai%VR{NeFSi56=P zLf6h8PoF6taiLy;6mNXk$a}=Uj(B#SH`X~SVNziz zo+fTqWS`!0LnHAQbFUnrM4Cfm@i=j;*ZJKoA6iHB<&NYKsT4-64>#&NqfXbSNZ!ldYT+gv-uVK5Z0UFW+72D`s)@D}HzRe{I-H)@ zU5s97hp!qNgodVwDgA8_zUtq;yZ$#TxXz5k6`nD_HnUOv$To~?twOxzN;p5x#mq%K z!#gc-F=Zb@cn4h_J02gmZAV8Z70!(riEd9)(Z*VZ#w|vm)%OGppR0ni{U{tkEKJ67 zhHpO}fzzVMlVg79F%7L=aIei?QooS}?mP>{z;^t6>{6T@5JF9N6~@ZexJ@mYL3|#< z*_iEm`unl>Y13;9GRM$2kY^w$L4`EY9}ahwaL?vDZQ+Mx_J)N=xa$q@g>;JF7jX|g zE^scoo$mtsf!)-htZS`={>>Rs9`r$&l@enb)`4>;U-V<|Q{&b>!I@Z+Zq#>(39gEz z#19s>bwW4iW+>f24f_&DxV#>Q<`3AroU=naVg~~wIZn{_0M5_0W zGo1Lbx~Phic-&Nt``-uYuKYQQC!9H-4DGCY`-Qs1zg0L`+FX~vW(Qn9sHk~VS7+{% zh6f*6|DUg_TXQN2)ysK@wtuIc{V)zm*H|CwKhX9~h=%(K6?{D|Y3~s`*N4w<79Q7r zSsR9oy{x5;^0kx6SJh{Xvl`@TEvc1~RH``yttS8L?R9SZx_Rt+@T zD}DSBS;G6};W@2&L+UHA-;X#|Q#YSlZc{2;(JW4(`*oB07M8AfG;^xXfSQHoom^0_ zwW+Raj0a9X-GUj5TIq%~<9xEiCL9v3X>av#!NSw_+}}lOO20Y6$=ViO*Bum=uGoN4 z&uy{5S5JK6XM;nTw*SQWW!s@z8(ZSzIZOYY;jbHLl#Pv?;ZOT~Qx{O>C>kwP<92>M zX^Y_roaOW8i0)EK=tVr|%)d*6fzrh4=W(C<-p7`7mI7yK5kKj#A9@Sv&GLg-Iz|n> znGL0RUv^?HcL$HA=}YZLWg?QFBU4Yhb2SBzh(dZfq(WygF9C+b)mZKLUYDB?g9HWp z->4Tl#X90b`5cm3rpw3;!@Xggi^e|EwIK&>Am??LCYS2oFARbq_Y{xoJkoU{@7cHu z@9d~2x^Q~Bj^G){Z}ePOlFxlgF?*TGUv!&^yNPEFV}H52q(`jT(4$J!ajGRPdF{m- zfOGzXdeRDVPl7lXo$&FCZfZ;JhT@&jGWvlIVJ;Z$wi$`Wc{(R)6XY;Q^mr4kd(_7c z_evchk8%`@8m>jXksJSs^8lZoy0;IK_!)gVxM>LqjUq7ps zt5ir06T?@G;ddJ;&}0{^-_!eM)nZBCF%x&cs!^r$OzHdAl>hu2iXM-b2CPhg17|C_ z=_4dJ{}^N#lB3jGA(@S!w;<;{f9!@y>xlt#?#&v-d5EOnC5Zo{ zJu;?Fk@CN?uT*muqn;@3V4WGzgmsM3C@DV36_ft3Uz<8e3g6AUF`W5oP7f)!p*(6qXYVHRmbc z`plN@YzxGBBjQPhSx6mjlJ7-Krn>DS$(1~ajT(2nG+8bMPNOa^^^g}0UM)?KywQ+c z2y0tg$(@+)L*X9$Z=-Z_9%m`(+#SR^O2yYXCr%*muipl#@c0%~v-ZFXKYQs-JqI`j z)8p*IKpwkO_B23Pc+(+I)xBF_`(mayd z#XiG3#=&4mg;ad`6@G9BF>d2edT^Ja`$=L07QL6ey52%v&busp?@F2P&%lWB*N#6W zjc=_(A>(Y~d00AG}d%=V|hW6v8OVQ)$#kZ6kukCZB@9vySSbL#f)I8~skuw_4pzoODda0<{ zM)cS4*9@K~QdHa*G9B%U!4j(uxnABW0Zu%N0_&mFYp`2!OAGP>i6!ferrwq7=BcC}p z%YH63>{*0<-_+Q8uS6Q^l83Y(oK-3%sa(1LKe@uZ+g@qx*_|+Du9y~@DphT@4bhD` zw^WBqxe97e_2mxog_pFmb`riYw#zacq-JyCFnkyH95a?mHI1TS+?sXA*{RZiZV_n0 z9aiX5bIHsjl$dhr@b?)kEhLW4Zc>@0n*>xaT1FN}R_BCYT0 zgWKHErrI`>Zr`I;cXfJrPirbw=|^upda=CN(?W`fcSCT#4|XnTFPU1qU~i}o%FISc zSKBz^<3%5IT{TC_OI?p{E&s)fHe6&SnRPsiHh&WRU#2^KYEhXFqnXpFIA`d%Ud2{CT&d{35gz(~USgUfNi;*Smtk zru47>Q$wzP@dWI7m-rs}Ag%h4k2P)G;4%HKRO{?PwCGG7NQ+Za#oOJe(~swN^SQgg zvybH2^FVp0S(4%2Fv#4wn%otoyRAZq>*wxdT5stQb?=_G@P=Ms8>!PlKltj%q1LZ2 z>Gt`+fjgLK@@L(W0B_hm@x}OR_jHM$Jn{HBv1PXRbR(v^!*q~8F!{Z1POvMg|M0`i zh}P19+M95OS`E7%T1ckNY;j`qzk23fvH~P)Y7t*&?)`qNLPGdc3}&vld$@~yCixrM z(AT@ui?OnKw4Qk8H*@u*>GBzE6|r+IH)v;0lq5*$!#)Ga+BfrbfX|-a~h8?37}q6k_T5oeocuo>8C2be%g=`-MvJ^cY&&f%}iC zo|03KC=^xkM3d9D(zLnZ`1#Wl2ek8~x;Y^zWgmF#(kN*p^|XETe9-O604b;$F<|@Y z&oszHY7Y9P-y&|zQBNAj-te8LKYfE9>h6=1YJ4*Q3%cFa-8|zCrFkG)+I-Ym%~!(U zX8>x%w37;s&>!|!0Djzdly2JE;!vpXKlk9IN2!t~<0AS8(7(H;p*(6}IVNmZqbOUD zC$ImGbIiBn_brou{L~X0-eFGOxmNCNP*pT$%@Dq9r93h66ZJ$nyHA=S_gMHCR`uPm zvXMe|kV|lzb>~xy?(#KtF?O_P++G{YwhdE=OO&vLJVJ50|Kv!!sonbG1bxy|w@SH*u{g|m zv6Eh;lZ?xFAK)OSWWoe`j9&R5iWzF`- zw;8_hY1%_7xWwAyk{_m<8AvO*PyEihykD1>I*SI>o^%PqsuM4C*NKOHM}5LSooh;- zO;xbCL+@#Mh_qtTW?bDJL@aN#^n0%@W=-<@C(b8t9FkHpFQN%++U8bmYa$$$1S^?sSjcH4{T1467!Om}&cq(M6GvQ=|i$WBqYurZ|v{nI*fenAfI zF5+&W`ETj;^DGp_y5WmmxzzPi2L8O{{=ln5Qq4$(7te5Fl|pID+(dls?t$-@_e-G< zskhPC6U9@~rMj2MZE45cx*}3)|1lgP!@ObY?=4+2Ab+I~b7`TS^qq0edqM8Nfh`=PF}>Efl@OUYD@F~tE}rvx#Vp;B)9Ek)i=8KA>P!C560GSA9R~pQw)%T@!+eW z)HPUz5$a$Z7&%dDR)F1 z%^I(jTV4E)=frx&mIunihE)?ilX!o{h08xotBT1y=YhFFa>u)$@Z>JBV#RK9jljp~ z#CvnIyh?uXs|0q;=U+BYm2Vdp<1aq4Q6p3N?Q;zlcH->GsGI!xbS^HM(-YR%ST6aU zg9JOC^LlmU4Q;aNrNaE+|4X{@GXq_C$L($OOd7i-6*BL*&Uda#@J)mr&v3STp|q|m z{orCb$NaEQs&5>Pm*nbPU%pkk(lP=k^1Shg_i4X3A$Vrv1B;QKQXJzfwIDU^aWb2OZ<(nKP=1GyQqad!@?0ldFoa_c7*K@pAg-Pw2ti-pM{l?vwZ! zW##;Qjf?Em=<0uJ3EdS-+2e6BvY5lm)=ZS28*0&z=lM;>5P90qTxtpM{#JCBFLm7u zR}W&1jGM_&WW$mens@K@WrGHpXhIFcjN3n@wjrr-Zb2^DpmJ&S@kFeyON^+;6=?^x z2qKzs&sVCIA}2(ne(HO`Gs{g(N#t4?y=pn%Yv$6aXNeL$nCPf!Dl?@*$y^}ldZNt zMirjz+~2;kqT^L`;Mv~MXrnCtD8>Zl?KPPT>)qrU1+NBYC`S1{;HtTV`>mg+_7?m9ow-EYA;9^Z%Q zCe5W}?u8n>BIi!eR=T6zj5|~OF`)f-DVo^bq5Q7@n+KHAt-8E_c#)LTUwK)@9=-0NBV*NH_q}m5&duqvFPOis+5chxL>~)~NY{Gl+$4nLK8*i2^ zca)Ah;$t7;!)7m+jhh_CcT4(8 zTThXrYwgAFeBvmknaOi%X5;ZJcPzH=A-lHD#JpA>IJ>H)eCJmxu`u+m+E`cK)inu; z#NQtL_DkyBCl0Tscp1hhdem=Ps&i<&mrmEz3+Yi??0k|4|O*iZT_2j(#AzGc$ z;RZ3%)U%5jZ6GyeuATbP3yTh{la37BOf7MGwKp=7OYX0ON8^9z8{az{%f%-yVjcGj z1KN4X12W68IY)(=Gjrr)rWJVDUX5P)=jGFDs)-sE zH-;?WUa;08x!gAgo6Znh^L3nTQ=El*4#c+^43_&cKYtwHf#MY%<-gpxw*wXWEQYK?3^cmsCohGZZn_gZI`uG3K7A6Ts1FRZa3yAIbxju{P2-m zb>4?oT`hojtmTsB^?*L!<%v7EXs14iSy`^+9Me`=D7#nb>9aCVUVu5%)OKBn(c zNC&yk$XKlO^TfO=jpY7aBeCMBC!S5HE|>HQCDzUpDZ5`w#?)atUBu5Fu1Zdy{4jy~ z6_k&X8k_r|B%9vSFVdu(C0_JICH{PkT9VdyqV+R+VD+0QdCvAgbc?piicdNjlqJsT2(LGj%3k=EEYUxlw{!lY$Ymr*P3-??Z(bbmS6 zIu9ecLuvmkSw4Az{cccrqn(G9d_uFh$FMs_MIM$UE4G@9qi6KWT52G03gX1YAd=>XIQ^l(g! zkZ*YJM0NHl)pvTy$yYP*Dv}sGaf4hsEd>>v1$l&6$oY@rVgAG&g9nU|hxDZO?J3q( z*1hET$OxSF^~ApQEo7@>PRzM27^<;ZJ{*r%}6j$PxA|MYrVn88VW1C#n+)<=FCE7;;7(*gQub?z$U!%pr2; zB>BPqOe|*Y(Qti`T&G(Kp0Wo#nd~ZO6~@7?mOCE5u#``4j>5e{cX)3dC-;9FhE-Xd zL$>QD&o2#un~EIC=vH#;7eNSoM6bGTb>xAQsXu+2d85%cY56tsXeII^2HcZ6Z}Ud~ zXy%#GC#0EsJYltxzqi3|$$~h#etZu65hC3u-oGbjAZoYu(mCQxUoz+Ks4-94wZ|0? zxZfSxdxq3|lq1skZZ6UrCvDKKqmBXbmgQ|F|0k>P>>GE)FGWdtdnxu0_}5pu)1^Uj zNVR>iXvSJlxmP}>uZ4{#u@=+b$o)@WMH25+gVcJ3MW4#3Q9I%2DK2 z^5-=_+D~p&Hx%&}p2!L?kv-Z5!~M+Pyj@pb;2eNa%oRsl|B&v}kK+aTDW@+zlzw=4 zqj(1E6Z#wRkuEUNufy`*a;lce}#CzL`{HX@xn%xl5hgLW+F247qxn{>je| z4F}7|Ywbg~CfsX3I4F1aItYbIh4_sXa;^DiF@v>uLCdCv19#oSCiaP2*0w5~R`)(W zIID59v}s{rwG#Y{VePT7Mxjw-30GNrgnPb}Qow%Mf&hlUV@{TfV5AVft#WHFbZ=lzq!)Uqg zoG{dwNl(mgz2)9rLh-)$|0C0wuRjab|8Xc=T(6@@7RSciUn9GCSm}RGYs9` zT_OmGNzB=2P^3gf1i`|>?he#%!TkQXe)s;hpLymYyt8MYwby!sJncOPC?-*cW*<6l z^FDM`jEwMrJ@KTUj{Po-d`NjsrcPL%Suc3)CLUu4C;Zd0RMDAo-`WRC|D*O#@h7`D6*d;?7F%S zg)QtLXmk?R7VM-fOX90ozGfP#rl{R+`4`Ry4F6HMcFxA{p7!*dIIXBp%0PFTWw)N# zs?elNftC+w9{p%gVd$J{gpGGV%$wnbpKNPzeK&DSLi!cnaV^FRs__;tYFl{C@eK5{ zX(rP7h2l-eV@RM`fJ;M};!9vOjA?JLIhdu`rV@^SXkO!}AFh~8dhn@qR(D$9s(4r% zgySH-=?-&+b{+W@gi&_tEd#~rJ^r`@2`*`I3aJTsyAGus!|x*%b0_&?IC<-JOi@#8 zUhR!TRC_qov{mrrjh9E6aehNS2w$nMsTfRkNN$}Fyp{UO*;1V8bW!;5j}zX`ry0t~ z6M`S{9^Wh=zlAwLLIdd8r%HU&1&+dp-NY3kZo%9BW+0Q*oAm?%E~-;nrV*Pg&TXV|H66K@qZKzJ+e{L-5%{5PAk@@ zWT4?7t#7Lowi|LD>9wSLx;wm3R&W_*8l)Lij42e#uE296)pFT=3SDR>^@Z-^ep6Z% z9v_%SIum+sUcIZ>H!vD1G?O~-B3CTch=dhk-u`i-VvKe;vMXuMW#X$y?M^1RG&>k) zY^Uh?HVAptJ6*YZvqJkx0CrmvSM2%%MF4pcPv}j4dXFY40=N62 z^H#(WqTZwPctLn>fnse3{5bM}+0^XCx4y*PTolCS(>_nou>A|?WYcL1kPhcdH{y-$ zI-{^{a{>zv(49rEec|)!ObonXkGdYC3k`!VqTL{>rK`0I*BoXzPtU}|DP0S<|4PFT zx{rHWy;fw0#-b*J&f&!+iUoerNU5ND&nR6{>>P=o#SWOcBS_Jjd^twaY_Uj1sxVy> z3P$I4>0nbuAFW`xQtx_Rhb4+v-2!pni0+t={<7iac!=ybxM8cwlZ@Cs^~>1>@n=o2Tcd`Z>AqhI;v>REO_= zdR(ZWx+9{5KD)Ugg0_sb#Wc@)6d(~aM$7Pt?((NJw+oB4oX|Ca_V%(Bf?}T|4vNVy zaUq0O+BPU8zTo87>cY$V!*G>3BD3pdc5C_pJY7q@7gt{vMm+O5>*y~0FF%r*(bLpnl_IG}p$ zXGOu4uehp&DN1phzX}jy1H- z+is$Gd?O6LbRXC3IbU&je+ZTkx7eU+qT;k>5Vjn0q&wsg#rC5C=+a1-uj;CptV_NE zf&@S6e+%7j6351o<|gTng$LvXtMgTg14$LaGx7%e{Eg1=p}E5AcsDF}mf~=2im-l} z3)=LMBGooTXtb8$aW3htR>}lN>QCpA?#T7kcH#66XM|JDm#Mx~7_BD5=zEmayICa2 zwo(RTtQ65UV})6}?eL4ZYb{#$65e`SVT391hBIVJ0o7_T_3m4Xe_i#yD@E53LoqG~41OPx+3yL7*t(o-}-h}cyb}+VMqRua!L)KMbF0xw1;~< z7hatYAYBsa7PeOkJyiYiiJoQUhYEy4pM7B7*9lp5X~Iz*FRZ0IY-QUx;9u<7(45=XA-uy=!h3MNfW8tZH-+Gpi=;VSp5qV3lm>?8BmSJ9Z z8MbxR5OV2zFrUsJl|^cTVC;b6C&VLE{9#{4SI9G#H~?D3%^DBeZ+fD6Ofle1Qs z&{6sq&h^U{DRf^H!fY;av6hu6G&Oh>-m=HS7`4LbrnwktPW#{Mks^93`L({L{wGc< zb~WUnY!u}c7W*nrEzSMQ_baAt%0QNcc(K11E1pnqb4@DgX;mjET9JR^eCl1? z|J_fqV_+hlms4G_qrJlKRxIl7)7)_GC*hh?6x3T2pIiHm@QwUH#B@)YpKwW-{g6DA z!l@=$bxPpL>*Mn>DO%RY3)>n3phb9&oF5?UqH}xwQo5V$l?nUFr{c_LCu|>JE=Y(o z^CwqITKDxr;VSZd(Wms8v#_U(+V}~X zAcA=O6VBfgTn)*;a2?J4-7g9KtdbCRfHxIH$x*M+DO1=^` z(}ex?o^U2@Y(?jhLT?{;1h`2_AJ$K}^wAY3w@9(yq=WEh5}o0DoiN1sE88^I4fiu; z*xd06>)zP~ugAzRYcerq^B zbjGi`1MJ!1qfn#z=ileXrt*!7?qjR*Kx&T-y0;ZcZLZ?LQU?T{2~c$RE5jJ-v+XZ4 zRLr|mgcUmp&vT;`Lq{plmayIVu9ISSd;v6mlE(G+OQGfB^T^bZAittaST*J}oGgjk z-Rh)JKPDS4aT2t;6eT!y%z!P;M7CY@5`xoGaq}8IkLnzR!V!sh{78az-^_%EKVvYC z>RO{NYXq0`kyx;U>Mq4>q4XK$p|qj%^YtX*MgI`eoI2rqgNE?^KJhm)>A7XCCL|_O zjxqH;9vXHOx)*sNsGk!IF8yYItUMsl`LOl(bM~Xo4TI98sGD@1ZTw1{8M@bO`6*|e zPP!4lfH(%7a+t*41vLROcyCE#Kc72cS)~(dSI4r?NfKDlIXqO~jfqGLa#dS~r4y&J z@e_~Y4)G>Ct{u&G8XZLmogx3mIU;$pV&%I!a3@Gp;OecAkGMgf1iit5)xz0HnV9&Se3nwh!akccSaqTA*M|whucRdGB2IIZnTBAX z9|vG+$lT88C!eF*vn7ktC#HzotCytM!GGViOz^i-o|dXrSHc}8S2)Gn9P*?8)BVt zFz^@e7kU&fbT-L`r}K>s)|f%PzJKG~cI#Hf($}{!s1s?F)(%%(bF9J2TMihhbyw*6 z?HY;2CvF|h_})4T?IvA91oa=PyP60I>I$SUlfd+XSghMl8`5 zj@~~<-hUFb?A}M%BsqoGok=Iws)I1)UM7Z(l0s_K$Rd8H;fNmPq8@w6l2wu^=UocR zR(IL(({X6DAw9{2tL(re%BFuQrTJ_j+cz-+9cd0YcEnk>gZ$Y>(_XrIGM%-~3WU^D z2HThMOycebEerCpnHk3JU-m}k67sp)>%(5ed*aRt8KxS^SY?Sj%B{%rr_hXP`MD#7 zd{MS8UC3Tj@44}kD_WnL!Q4GvDR0va1)WDRhxe2{MPACQGrO`jJEbT}b;X~qwS4e> zs&k2xs(&Sj?{xVno?P`n)@L2P@X^*VKlAt8s*BK5f!Q=4w59vb5hRc; z&0y~{&){h<^8Q*B&HTtyHEILh#h&=H-4{;4IY^4uk?t(Wfcp6baz9wtCaUPwS|{#%sUBh1vKY~b`7 z+^Zw+4DC5=_MS@k(_F)=Q0jmq1v^3Zzi!R#;18wI1lT{98VX*P)>Q%((v;;wx?_ zvg*n{ZV#o}(*ymF_h2t%L0F{eg?Dj1*+ueNY?bGYuMfMiYu>)Nqveafm)o-=$0#4N zJ$dQg`^4Ya>qVY{)Mwv*DJi6PCdlFH0yV? z9NmdJ+TP!1V^ElIC`Cx0Srg=&P_=PJGCQ_57z+W!Or6Z_md&`E`AZ@bC!r za(i0y#@ht!ZA%)|S2F%nLq1jn%CK{QH~%Z>9JI)9z3sOkUdQAVK1Mqu>`)Bf_$(8y zq`OYCKF<40A&#`E3(lX(rnG~_U^GPoSZboVcvA>(rw zT!IJ(HE*(7(`yeUgMCc#I!1I929CzUF$Q2^neJm+hP$i1{N! zF*3b3drBFSo5CY;^}_-Rp!CDoZSi=g{+zwO>y6J_<56C#Ez~cjyq8t+xN&{Dph3QE z3+BXQxye7m^`~^Mi{i1c-vpr(^#GEl$K&qowL(y_EqwdOWBlPx!cXdf)abN?;z>c`!H+p{JyGI=(4URj032hj=kcdOe++j1iD~r#I zrMV}~^U77(rGO~%Ht@t*m4R&Yya@96^hUV92D2DP-kZhb)4FXeyG(p(m-#_BvV1aY zJCyE~wPBd@X(9`J7yxO{SbQ*vWlwf0aZcCmAPlebZpQqcAfh{?XY<-;|0?0|ZMWw2 zu8M_1J1_FGqR(YV)eK?$NNMw0Z}Uc>FZpUTy8fK(;=4gr1G(-Cvi0 zk>~KQ;FEm(p^HfEM%l+13chcD0hw=H@cUpTZ&RC(m8Gs&wC_IOn0XFC(QY`c@rI9x zJ4M+i?g$(4gZIwPLWfBn7~7>4yY@aEW}T={p-^EyR^+?f(+gb(v}b86lW~$fw#Q!X z$gn&Co2WPXdr~*1EsdqjUVps!pvEj!C<9ABnEd;OGPV2&{B9e8M|a0DZ{zUhzx~L7 zI5w1gxSKHfGygXG6|BU0>VsZ_e~J?48#G@1zF&#++g19)xQj}hiCQCs9#Z05a&N3~ zv7-{_Y>O2_^iA95pJ^NQhyCpEUz~rxtmN0+ypM=y)GMQ``HrXVpzR&%fjn~N9lF=z zdllWA&inAIc2~iW_HeyvG=HJ)3d$?U*DN`ce`rz$d4)5Ga?9Utc?qFZtACVL@z%Kt zY@+Y}&#Mi5om7s_3qw;RgNETOYAJpleI zM=*W=Xbis{jKYzVS;+KAXop8&-FJO9`=Ao%zPiWQ^+YAkwy{r`wTlwxY|nl|!bv60 z(@Lib+N+c}KYu?-_-B|B=aR$f!uufdqpk7v&@GH}Sl=ZfwAWbC}Y{3zhOdENl$9wS7=IP?McJkdD1G zeaS0Wn|*$sinpGAIFUV;6>dwyv_^kSTk#Kb35mn6ZGkv#GM6pOh{D{jlu`J86LYBv zBYtBj?ys|DV^#%Y)JyVF9qz_{sVZ?+NvUU%{z{xrvmV0B2qn(_*Yp+c8`F1-@O-4% zOIS!fkfya{PJ1EZ2i5PiHeK_By>F$&*(q5|uqMuV)9W7I8SL$f|Khy2q>_Ji{Q>f+ zN9{MzpDz^M!x)hiWllc4&7fQGq*=SekVwAjMK$tciSv_uf}hGN@!^g$tnL-^-@__U zL!7|k6?MF?Z7DYIa)Z@`cl`66MOc5{9jA`8W*!?9INaV7jZR(J<5hB8U+aaC9*91hsE2s)I=h>z#JRexrBE5D#QEigw!#L|5H;auruK(bHo7#g$KQX-!k#H{ zet+p2yYrR$k@TJ^S=|MlrAnN;jF+&4VgJQ>VXI0Wh7WO>dXMiX1n@;&>)}OOn9R3+ zeBq?qXhXb+Cp9tr)_FH!(%Bg+PUrAXS5-lqytnRcDCNJIT*a0eSFBw1fZuzt9HEQc z@wxIlpGWhoh++?{((1ru5f>m??1jR4s;n}S;n)>#7~j`mW{Ny?YT=8rUenmEi>EP& zYTP2TII}VJG4NIQ#Z|boKQANU zO+L|s-g`4qt8o1C@<&VKAa;Cu2!1!+$+yQaqtrm$SQ3IfrwF#1`rAGA=sVE1h@F3` z#CgKUdNwCiiSxl1k6GwwCC<23&88BEw+YV+V|W%tJ?Wim=nPNxL1!>aZ(JZ_vfQm+<__8!(2!lFU_e% z1NCivR-EBax2T3!3s;PIahV^os1oNX_rl~=1HU7v0s+%Kus7%rzoNDjCBz?&%IM78 zRWG6DxHn~3^kcong_wKL7lvUY*$gi^vfhx-yF`yQgq_3NbN+~bwT3M{n2nxx{`gj7 z!L(A-Xin${$5S$vWSj)eBtOJH^kg1%RtHV8quI+SvbhbOazRmyW?z?ys(-Oaxl6L(I*N+XpxKkv%3Uc;0) z4~)oSQywUBwu}j58udz?JNA^Y^Iw!Wzw^JutaOz)7d z*1MxF>k0q*=2g6!`*>(mdmq+b_O_ z%2ndt`{3z-&P-J(M^KR;T7>jtIU7sx7WB+g8O18EUce^G)jm}THY-Jr!uSxxRc>Sh zAD;nlLwfzRqpUG269*^*>^Jp8wrHe5{c|uHullouDap9~B?Rx+gt46k@wmS+42i|D zOfet^=cB@*W=Z|bJrS5t7lGj?PO`z3p|F}6gI{ybv7su#%~*M!%3yORDsi6LJBn@h zQ{tRn=FKMm59cFCZJEIbCC+;a4Oqx;CC)c@Xfw|qN}SzNB}`vWiF1m7soekWq2{0e z?{kCSP{J!FJw~>JggpE``T74mg!w2Zc#QVo^Doxp@;lPURfqD8gYLqn$_1{m>AcFu zTjWpRhI3AZ{6znocuHCrBhA}L@xjz`a-(+_1Y-I6e!?k%3`aZEEj4nN;Uqw~^qw%siX?K;Pz zxa2g;oUW|vTKziB%)2RZcD74qHPjPo+Mgdz2eB)pH*8uDIN;1|CoA`JN}M?>q`p+s z>lM$Jv4dL5y3X*PCYwW^LQSt99BRm>LW#3#cRjwffkpG{|HgUV<%@jys>e|Hl851O z7k>P;hp44F#piq{z7u~RjUs1wUhw73_T0mxxvsd;7|$EExP!rm+~H$!j#qW7ga1`e zgjQYQ|7m*@?MQch*y<@C>v#hR6Z~<&yans~sS=v{K}cEDm8BErCqhHX|9>be8c_y= zwGmJYn9lSyFJOxz5`(`QFvaCOL}yTrg{L_i)&DepQYN=uwv>%no`s;<(YWO5!OTvi zV_HZoevAoWM?+Ja|E{=Oacni^!!-Tv7uuyW)f3Up>rY8J%!@vsrq@diGTA7atv9W6 z&c`#qg-V?DHU_bPGfJG7`?#}*21=X_r#Z6Cq{C`@f33DDtKOi**=(YSwHTtr`Tpxc z%=LxxZZhW0UVhAS^XB*e8|VGSC;44r4*@3$N_%bN*Cjn5-%9FTh*t4mj?sObH2h}W zjd+!ncd=TN`i+AR@pV^k;p9Sh?D*!&AD&eUM0jGOTPQy~vl@DXNnbGR7(c9U6(sll z@OV`&-ypq)MReXS99PcAR#hNpQ7FEIKj6obC#Kzw2#nqJhqtc1fNa{6dCPk->$~{~ zXcJAIwpwh9?`f!NMI&z9H0IbT3t4?)(A{trbECTYb#@%I!q%`2%Tt>FE|s|Lthh^j z^ZG=ZIg8beYF_7RA7LG;LYvoxwmVsMbzt+_tAznGqb!vs3=8yUv0YW9ouYN;xszC8 zw0rZqLoZGCIYD`D3?9^*>9G4I?_c3HV<(_OC#z#H9hoNnqku_JHH;TAJd)bAugGce#`rX15 zRd?K4KAqq1aTE52p7=9kAs_wW2HdE(9&mR9A8&XaU+BKJO|qYVe&H%*g9IY;qJ)=^ zuD}P%<(cx(n_nMOiWyxZuv;aDkK20@D^j8m9(s!3ze0}1717vSQO+A&Ay1#5(a_#_ zpLh9{1@p%-P)lv(d(ix=>2H~o)s}685@)k>-B@EoT=VOdvj#AO)=Hd{yZ2*XD0`^s z{eS$ru=PxdGrBhNGbbo(Z&(~1a9*(Wb3bM&pqauRGXBoRa~^-^xe# zzYPuQ54Rj$E9c5_<4yU;Q&r?|=|R3;59Dk5RAT&dFT8*I zM*ey474nStMO~lYa{HokCNLmk=M_#laa{(XC0q=h_a_GqR{E3DL>aE4cCKWFrnIs7gUuv z>%4R4_0yF&M?MMSEiXkXu?_X)(~l}~ZnMgqPtQ=|T&X^Xe=}8y^JX6nzUxyZ&Suh1 ze8)3NoNrdWksI+!oF{K6m#2}(T@!{X12W{}-zjnCb!Lj1{2rQK-=kq%P&?|sIJ@6* z;8$7J;u+P?u4_Nb^ZjmOT{-zO7e~o&OR6E=O1{ZcOyvB)D%kfRAC@R>d9CX;1k&B4 z?w>aDgj*F@O~2FEJ(UF}!^+`&lKKLPDFtqZC6HB69*n81;JQ;08oKzQ``G0L-4Y8i z>PP?*M-MHy-<9FQg&@k_eU_i6m4|nBA*i?+nD6%P6jm+>#Wjt_yq?2OP_HNy@6smd zG@ME$pVv?{JTuT8bT<*l-cts8Ak$rbEFKT1MM3_qMZx)rN}Rjrt}Sqwt;9JtsD0kg zZc3bQT;8K6rSDb~Cblad=}9LkaTZqh5KVcl#96ofaMAVxCC;j$<3)>$lsFHOsEdNf zC~?*@EY|z+MTzsP4({CH1e#&d&&(U8qqF6@vUm6IbHj4=27bo&8hjR!M(<9hJZnld zZf8lc;#n7Yddn)@o+3lgtHt?ioUTD}nfM9Uj_YOIuYlOv6+@jziu#Qxho-JO)ms*# z7F4rk_V$ED+bB`Ev|MqkB+|Qz=Oo{WAWlu%k#Y&vxI+Te#i67ncGcQl|60Q2K#CiJo z8{DatN}R7G4b~gv@L!xSSx@1wn%Cg4F3t2Ou96Q_sYY}P@%sA5>iT9~$3qS3f13Rx z`rYpuKIAx4)?ch>oJj@E*j=Hu>5eEZv z+l)g_!&gq{pc3c9eI9UY&6GHQKXQWmsHVg@IN6Nb)KQ7EbhN&m&UmUZP-B{i5lgL2sd z6ANk|Q(rDdif3^nL@)PVN2lI&KI@zk?Jl?q;|OQc9kk}2yuOTmlgPK?-YBkb*D~rS zxuL&oIk$RfF{+|z=Bs{~n>73)z8~;{^Zw1Tlka`QU=b0^$9tHgOtzdq>Usl@r{`ChP^s>HcuehruMC7}8JCp?Y0 z*4>mi7Y%tL`ub9NZtRP+6{%fP;_R+iCGss(;_MSVS=48|azCHQuG9NSK5tEXd%o*0 zE`j*VP3v1OpLOp)RraF)eQtEGxFJ^^S_6-%5|p$aq?c%P1Em4P>q`g~d0(%Db_??Q z2yMx|?s64rw#11~nZ)^yz6{+CuIRpPGpEogMayGum}}(9-Jf|0OV)W%zayH9pGqE! z1HEu+(ldAa=jN{fMXHm#N;bDKYf9`+da|E^EUT#mK^u{dgJWPPh8Cy>SNUU;27T)8AHz@ z`K%x1f%SyZ@<+lh<0<(Ftz6?TviV(x9do3ppWd5GN-IIWgtQ)NhFsOa zOE4{!;exXlx8cYI{2D-c=yNhSdqF_LQCDb7%Q^2qa^NxLxUPS}otu!41BM>>vat

Ye@~BL#IehPQ)}vrE}DcB+F7WIpq#dwbHHy-r!3$Ah#l5r z%;r=KB_7PZJNxl)1NHXRLg3P#JhsCVps1xgIOQa{%}9V-T`YPo@WRqZ$~$1)M_;6L zQQiS_uDe34sl?eYcA3|Q@1>{Q&n??&@!Hdr z`+3;W`|=Fp;55Cz)?<=FsQW@q3^+6FJ~ClpE!YwUARr5a)>B5C+9>ur#CMjqfDHEfNR|8hVvNd>w=rT zK662qXR*47vUZ|6L-*S$xVNO|qxoRC?mLNnvpq2R<9O_Sl8LlHPaG(j3F|4Oy&}E8 z&Q=4Q>Yj#;vwh$mx*NMglW{uO7rAYSi#am^!PHZ$nc)q`A#qSU7l;GIl}>LLi=9+& z4BAU3>DOYgm_=cHWCE^@RpR`_G6g19Va=HQtcrzokg`V?cJT;o1?63PO3)`xlm4A1 z+;%x_6Ge&q3*K8Nsp37%cp&n-Sl^SgB7_eLjh+=EkC z6z7Cp-72{8Z%-mATn4$pSI+uv7TSh6V@7s&BtAHStZ)|`^3z0mA@KxaTv0Vy2i1{j zlpEj%f1jnWu}(!4)uwGuZNK16MuWH66e$q4Sw@V<$j)% zd|f`*MTv8~c{};7?#liAKGvHX7NNxX+DA1#2lii_Bg5{AR;y-XD{;Ea-;23DURfAK zy*r~{UX*K`iM6XqQy|UbTIFRxeT)-0+h<%tk93S~OFW`gov_d_4Z|PFkY+p#6~3t` zB>tYu@)L;ftco4h?!f% z@GCkL`;L~tbXXX!E~bq3q;hOMti)MMUX0QRCC;-Z#9?4NCC*_>$I$1i#Cf`Xqv)Z& zazCGrX~U0{Dslc(HIScAcZH@s-#f5Kz9>bBb6Lrog6YIDZ+iWK!9s3kiW29#kgJk#SA5&|;+E2MYDG8`r5r(?U9+;q+g~W}aXi0t}VTHNa z*ftbNdwub%v=FNwh2W!a0FLUEp&%s$WBQYJ>*!Uq91;SPx^T2?eH{gf!MI`*gQcCX zK#`)vS)@lZ^I=MykFS`FBAF8BbF*7=)!|B6DsldJyFxTSPl zDtGDlF+^S@{l)hiT;H%%Z1<6pZ%9jAG)Y0cA?0cu?}vL`lA%v`8MDI^VU(VT2I5u@ z>b(%P(-UBI(HT1}Oz^8b4qwT`Vx6WH%r#@-L>PBH?1szK<2(`PhPOV!NHB;*TbhZx zj!(deei1NDqh9Ok6A<}_V_aJw6z84ASf_B5QLe6YE{}f16VSB@LhRj(aMTRPW^ouQ zi%QTC9EOwIqEPmz6!p(S(VF;0I=MwKR10cecUOtSPJfyo((AU;(XggG>R(&p(MNJm zWTWDP@3j8v+nT>HL|JcW&FjH?5dX0W=hZvT$dkJ$>y0}eW98+f`)PW;+jePzYNZnA z7cmui-!}di=kae%xoMw|VI1kpF8J)?%sZx`mN_D0i9fe)#W5`KqFVgIDNc7uDi*Af zVr5D#r#F;zmxJi64*1P|yOo6D4de@VuqRqe60tFx`XN!8Sk*THHV)3X5;q+m&ctB_ zd9ozkSd7NOu`pdo*^BK=ut^+^0IHd0C=OE|OC;VA7g>k6ccyva2y91rqJzovuU$9> z>3NgTiFES~VQAaK51WIdVOJ3bt&M@0rP8s@KuxCn%A+PBjp}5oSWB)Dl6oXyC@fz-gCHGg?FwY-3hI;j)`?u?QNQW&cC07 zlBbs3RP|%EN_B|VP`oy~b6!Q`tZ1OGS#tJ{VnKZ>$IDPMPKZWL~Y0jj=Hv}{UZ1O{^Wo++(mJi!$xYgvjErx@A;0I$?VFi|o2RANY#+{j`jdde z#0P7=Ad};=>$nwJ(}ZMzWk52EuTWFeN3ZfHwx1Xg>_LiCg%RJ4!9KaPEn zMEtr@ghSg2!CbtGKgQ5{SNjG%{|q0DqxJrpQ2BGJJ;&2}%;yOC)%E04MeD)SROL0q z7oJRO+fCl`Akr00p|$JFQ@rsy`{wnX!wm&91RG4F*Z+<4U@LE~-MVD7*CKDavy(Zo zbuw{L>ASU8lY3B=geu~b>v@gkG;SxNTd4%a0>>?(efz{lif-wvIaAkoOc?1z_10eQ zuXTdBzl^i`9D|`=8_dBdsAA)%Ct; z^llI1xL^!_5P(C2JL5&`U?_f4Pj7V>Y`qqUA=zO_o!lOFDuGB?5`~KJ>)bB&K+GT< zCOR+SWE%d^qqQi_Q_noh2Vz`WP2j5{MY$hMKKR=Vnkn^7(KGUX4iR+86udv}ZU}v~0N@8;GMzm<($5 zN+g@&4}Ds1*E>7IFTn>ZXnodvo?OS$69%;I|9gkrnRvnLXx;6~0{LTl4sN7%$?6Gw zAobps9FL@WR-5e|V}~u1=nVOAfe*cW6zf*|{)O|1HgVj_Ht`5PPdNpK{kikK>5OUX z2(GL|v}R9SvnJ)n@gR|dV=Q?Zk$2qleWK-uVsPsX<@Y4$i$+r2``w}viYNNxTPPNgMsD+}DM?y)jO1T=tc8fO7 z4MEBV7d$ri5v6^iyW0lRgY?f3-8&tKmPu|fGAI*W>Op(b+5TiG17`rs?)8rV0N$fFbKrhamJTY|T zk=wNKr`$~P z>)+5ze&d559#T!Rhr3e{nc{~=C%j@HuQM4umS3HLC z%k(9fc*zIhnpgNImgMCh=Yhv#yjgbVBXD`-NtrBx%;NcBM5fvQwVxBWo#8^-MBpgt zVJ(t+ayPruT-1a-d5Y~t2^+!z5oOPGHr9J&83x0A%EvW7S)k!WJ@_#a9JkV!2icQO z!C!(GwITA2*1_oXmUPqUg1pKq2>&dg%vPfY`DvR#Jf!>k%k{1Jr_KSSt#E=Qw;Lau z=#OKhJG*$SAOGVwJ@*NJ3)dmM@jgGCzeRe<%fon^d|x!&bH>MD4c@Xn%^P)HVHm5< z4?aP@f6v?yb$%cp5=Y$9dmhw3?ade1`M|b=H=->&@uf|kloIl9ozjB8wZa?jVSaet z^_l!dYadvXPt7g$YI(~BZ~WE^qa3#z^5w*j=tUZgQ{u1kdDX6nx*vqJ%Ub+Jdd_c* z^g+ytLwsofWiXHq>v%**W@=%HAiARs2tUsBuO7gwD>8(TgR;hx08sPwb;w zaf|g-UU8Ou;DRK0s4|BanNr`H=9*?-mhpYIc%TdUc>b8Tjz7D}1IKn!KKf`A{x)$c z+7M@TLC#iw%Pi7NeWY6Z?iPN=W)H|MUC~c(6F)xC17e;sBG} zLHrduKYoyg&W(-b<)rtGbR*B1+q!)4e)8_RMjlo(7W2PJJN9D{`Hrd^@-}qWoJ7y! zn~7U^!?UE1tdT%`*^EC1XY_eNzV3N@c#iI!jXg;7p1700NSvuP=bVu=ej{%@&kZjG zSD;`X|HYr~nlIfkhmGN1E+pOeGA}f2?aN;^a3^w~H(o~e<2C$U5Y*ojdFyBJl7&wA zHiYgc)wX=iAIjv3ByWz@=lIx}meBfbi!fImrg*;}Sw=@txalghFEK+UWq&NO`OJE* z*^UdEoBzVueNGDg)YUUXTT^3507<9abf9d?l?D1CNX zdOmr({3!qSbW_fts{CLSWn#uq?uj6kYbDYix26n^mRa%xv4qoX%If`DDSsT{NIX08 zx!Uwv9vV*i+9!6n@~H)%mgESBOLn++vpqkrh_b+*+d&qt#d`HoNA8bE^;W{U6$3Kly8Yj?Ln4&N+n9vyNbZ_Eff3u?P1a?#JW3zrC!FXzIi=4T3=)Bv78$kE;xp{VQ+}VliMm{AvBkZxF(nIuV zIAyl(w#VC^g?j$8$;-jq9uD>|^G&GMHdt(rnpPhQZjpcU!w&ZFo2@JVu)qXAG_Nc_HB>i?y>#6)0G1l`rVxFM4ee&$6fF^u?wkV zGnvukt%w<82FsU`Y-7NB%&#{13+K+xTIjTlz6TR2*SIImnyK$pmt+U~0u4^%EM*#y z&y4FWg=k$5@`chTPu+D!A~AVvICJD>)4pDB#3b^1SD{Q9uCv}2I=^@1Q1077*Zeud z9N}+B`K=4*75q`7Y)#5D8gR#{0NqI+df65?Ox+6J4WQhpFv=9ZZeO73EJ2@kl#eV+ zE;u`0iW5@GqS7iW$m~ex$qxFRhP^5nGD3#^?de&N+d-c3)){>{2~>9tmm9>m!J#+# zZ)8rFx18aDr?+KjYdTK;O3NK~U7fLP%piH8%oVeb%An)WNUU!&hzLYaT-hZJaZw#U3cTf8{eURNu?64H3`jyXJ2@8RwJ@H@W;`oFn z*x)~l`;tUnJ1y)nJh>GY(1v_i$Jyifw)3K`eH`(pKV=*{IE$_iB(L`hdWJgA78Uj) zA0~6kpNj7$nn`#Z?nLwT4cGP7e{-OW7+VzG3DdKr*PlDvLOn}W??IjfV`^;?-`F)@ zLiP2#ayq*`$ z#lQ5+SmZ|Ml1n~iSuVaS+Ce@671g%5Ujxp$f^xhkSffrSoZGVG2x>-Kz+LqP7iYW= zx;@RXz_^jSt8R+$)Gb&avYi`!(Fob=OwfjB_-D^bcum&-3ul{{IT)=+827fJT%xmF zV`uWH3$`JR*cLAAIOPw1utD0%L0m?I11eyPle&*ZdbD0ZdS=I@WKqvz2b`L0izj8< zMI(3zWS7{${HLJz@}?A;jW($LT&$aFB*Wsqw)oyXI5$6lYM%ldM8)3B@AZ)Uh(6h1 z_k6>G2-0+BTG(Rw!PJ7M4bE6T(+*1{FA5HvazUjhWjRe5DDRU*zT?$9rBLR;-ta)UHicrPWcVC_~>Kq&PyX>O`>b_!=e z^`ohbcy6oCa2eC7-lU#z+1$SPs_BSFWi}`sZHA@4ZICHFg2gl=`zp4^<2{typeU_ZPo+KYG3-%r_HyI^~En%L=$8BQASMD>&!@xDWQaUZMy!ufX23K;dWLwy$; zxK;k*B;ClvGSCJFyPk3@=_6vc;$u#^MhjZE-!{5*priu-DD=hFg`wM5cNMkHgw?%AM z`Wy`g<4}}6`i9sbHdGTItSSGb>F+%;7u*X62x42z-hU8>I#JKVj=b~E1i^tYzfAk^ zyT)lOr?aI(lQOCsYOuDRyp%3bCfDzu&Hi%%i8g4}p@-PO)`@(KZIJV5nE3e-%Dt7_ z;K$s_VhgH^r_<;1W8)mLP6=hupQqmECj)UX%?)a<*dQrjr+6RLa_Z}CF-C49KGVVl zr7g)5^|Y%vfp}R9TagEsr@y!tox_`n!}f4^r1(`hQ;LID1!A2IPN>{L8NjhjJoYDLAWm~c`=NPaUAiln6xd?I zicE1eouj+-tcV{NDKQCXvnh_8&U5_WPS*JUCPB1+^nG@-t`yGIi>rMwBsml z^|pcW=xH!2w1a9i?KdlZ__Ux5G1{L)dXk@X1m)SzwS{hO4CMomZ-f(_>7f^p-_8-S zezrL6@(S~*FY<1cE!M_#7LTJdIjbdkLiW-W$G>qvV!RFI)rrIl2S_l_#0KM@8H!cf zkuMA3FRME!*4acnKKfh?MmUQHI?Ax?lntD2`-x+Sm-3kUj9xvW#dYN}NPpU(MRA%q z=dBE9W|Bu-_F3^IOVZ_gP!?Fu1##9$7i5v2-d5Q)vCbtI6o03E;BrU&na*lQI-kE( zJr#E)9Yk+B&nG_kD1N$^o{5{OR+;cyY<1g-@>YlkUfyD6d+HgyN~3&twXfow5mKE0 zYL9h4?u+}bmEaoT@T^2GmSoW9aN7#%2FJvoQ_1ts*aDnhhnW}8TcW(Z>0dY}-lJ^w z4%WCn&<5vcEP~l!%IizE!Ia*6u!ipFCw|!cA6Zu!R@K&ZRV>8r?iRgv%h<=j?(W1w z5m1phbf<*00*VrXqKFEDXRnP77}o?96%h~vv0J|(d_S(wd*2`LdU%e++-t8j=a^%T zf#nZ58@86(CsWk8(mxGVZrS3tn;JcHp8`aYf;4eCfInMA&{}UrJsAt>aw&68ymfSToB z`F!_&l8z-hqZ!Y^5!0%vhWBP~A>0oA<7%tkt#(0rh&{|M*H?8aaE4wD2RKb?raCmp z3B@<G=~i-gMiF@9jFN+-sWQ(Vew_#rajBHR`J@aG{G8ruJG0NsnIl30C-i-VQ$JskhDh z;O(jdILKU7U2D%XF4<5T*V_)O4|7i{&XP-a=H6R*F0~Dks>IPVZKf4;!($}7NcP*O zvd6aPwB%1*WX2-?4rW>V77D@fujewNVe%vFpS?BQ5abRR@*pbJlBzcH+8C3su{iw%Ffy8}zU0 zsK$=8LZ_yN^ziDZT1tQDQ&-mf6=$meJ8ZmXfxtdiSoCcT`ns?_;5*wm(-k|*Z192a zzD{Za)<)T)<8-cf-Ng%S)(4F9>&w-oeCEur8Rr23ZKXe6x=)yMK5jK!GMGvq1D@eU z$L2{MtYzFLk)w0nM6#MrAMj!;>c6;2?yRjB9OW7JJy^QPwKegtsRv>tT@z{?!V21f zDblwV^g~x!!QCiRYS_{NX;D1qbFNG6sCD$EhZ>*O=1VGlC)8nnxMkRTspb>bbkq)T z$f&Lwf87aV8(L%iiUz6|$>jK)W3KkPr7FA%altOcaK3a@^=RyjJ+rCz+ogv}HgLjt zOB=*@?5ApV$^kuxT4COde^fK3Q}gnk89X2MR_VbG^;esseUDD6U5Bml@$DA49dDw# z7Hxs0Yc}J|ib1MnpG%s)&4Fsf zHujee-=GdR^ZTT(QBwZ__Ap+nM!xR}X&mwIi~PA+&$Fa|ZaU!C1vMUd6iJcU^xOTe zhDxrc>c>5Q@0ptVZVgmnwod5JeXbeWQdNDY6Y6$R!%w@TYG#-dUUp=?pw(S9v9lAj zy_j2;>#8g)h&8UWKziUmsw>&lJ&oCcX|4LIx=ygg6XF_e$F@?H1hc+dy%moA8><5P zm}B#t&A8ZafC_OY__X@(IB$7H-AQ^9j^v)%_`v{WG4$g-X@&e}#9iL8R?y)Y`{WR+ za6jA4QR9Pc1bX~KtqyV`yS*|*u)7^luBJu|M~Tj{KhTXeosKuw=Gvj>V0!Fcl<~Bf z`kXwEn#}lwov-cii~G&wQA^3<4bO1ql#R9wmvp#3@IwuG$WrO;Gy0@oW=!_kN-ys5 z-SMZt_)C9DH^&Y?cdC)`G)B@XhV!F7&oWTDTVGT_bj}kUqsNEYa?+9TqRK z#`x#wu>M~=obN+l>Fd=cBkq&4ym!r9x=ZW%j0$R7vyVDaYH^BMr2ndsy?ldI97E3p zp81+RPEt+cQOix#h#C+iefFZp8}oLtn|FOMeR6xLQMNrpsyB)ppD}9u+@zI@({7r)!8 zPTFt7Vy(aL!THb3;iYGZrOdTvZ(fKW#BV&A)5h}m>#&<%<@MD__uYeD1L#@0P>p%S zznvda`91&86tBJ>$Ghk)pek^0QuQn`{+s$D!C-ZqtP{XE$zjT*p=GIzjdUzj{toYm;-nYV+TB%ZX>X40O9@yn! zmSmbu{mTw&)M}U~mFO^UX{d&@@~Py~gWf^BJF5PCCS|su)@W@tjf&0wRQCpGWH9QTkZj5l7D6dg-EUSvdEB3D{-bqD&5F{Ex|J=K7HMi{;N z?>NuQGJ)!s1)glTLhFempvv*8KX&>>Wj{5W<7GtEOF4S87%3S*SQmG-I>9TAq ztetEj1yP^OhIe9aLk}s2e3STP%ta>#OTF(Cs~%79XNPDhoq0PC% z9!4CKUJ_4w$@lc1uw#u7|@x+kPHZ;AOYp+9=hPtutyTalgmcbs=@-3*^3 z3kVP9v`NEJi+i*0zg8GjvmfEjJS4ji>E8CJ&3#z3sg{&?(w_cB ztf^18mc~+3@D8yQ-NHUn`8W1q(yTBdb(G}N&H+^%t#HeGiu87Z17eJcw~SpRH8Xa= zjWt%NduW|>aNnQ&*9whln@G4z{?2MEEbVSBUF}5fwx<=sJ3B~Wza7zw^-kD74w5p~ z84sDO96D_&9c3+F|F#-=c1Dt3Hy3Q-8Q$s4PN|y}Yp6U6yeu%2RHb%U(%KA08%?F- z%dBBA%oM)Aw@be1=D3}`74B_3C4=tU(SN-mJgl!tKJT~SLalXw<#q3?q;oHL!{eA0 zY$C5gzk3+Yf40KdQ^`&*2^i5Y1VKg~X2HpT_du@P;YR%o#0@V^k?;G1``#+5H$PTX%R>)eoFYkwC zU*WmUm9w8}7Dx?dK>sE6Xf@Vc*OuJBQ|EG}6=pg&kRssu++2JD8opCDI*Tw=#9>1L*M_q(-isWQPip2sv+!p6 zUaT)wqg~Qm)FP)y|DhUYeHLTspg?G{)X>|p3J;_G5yt0owPYjCIQwE6pV!Lfrsz(c z+f_Ear_8J{N7ozq%c)bgoLXalIJ^9P&fa%{cR0CVUAgzD6&m8r04 zS%2G?nyCu{;NQWTo*a)gUiW-)f_3!kS$8$-kCOAnb8SifbY&e~2ivB0a&_Jvqj&5;?7c$G_#Mphmz!Wf za9xeo7Bg(9W`s7Ky!GC{HpZN%Tk&f{31)pU#Gc1n|B7>Nmdn|@rhy1!|6rb?w1o5bhT`{H=5;+S=(DLU>S!~E@4bsT>rZ(f&!+~3 zJJ6_Io}Bx}484w-BGW2G?%-ttrwCI#cvyaR)TS*sw$0?PICmKNO%vrChCAdBICd?R z`wch@olskJD$x}qj-N(*Ut7eiSs@%O&*3$3u%Zu6V!7E>^mHX=m+CL}=iY$7Gkp!} z28*q3IT+($i#h(g#r;%)-^4`Pk8u&RkDNrdjV+2Vs>S`ciE!uFkHv2jU5gH}Cu58F z@9V_ewoxdwXRlnnOw5}Wj#7UAb=nJrt|}PD^bMJ`YqpqkGk_SEE%scUA?`e*$A?Tm zxDV6C!F4|5o!hcEIa4fz7h2V{!?EnyLbJ{T-&!#*tg=98U2uaN_vJmarK0D0YT~vh z7I$i`xOSHKYD4xf?`{%9mpMZO(3387lL#!P-u!VJd^>F*=GikBVl6PFe7UgLrA8ca zwtXe^ug}|@2bnWpTIS>W;I_i{?v7WAN09F(y-zMastvJWaO6k3omTqhTlTlKq43-$O;$=?PdV_`HVGfjGDQGt^|HOt8SjR*X~gT6 zI}5#+F6j4zUypDX7xp@%e{Tm|p6V^?5vw-mdR8@GF?yIi#Akc7-tH@EU$({$Vs-}i zy@dL{IZl6J4OZ1t9GI~k4_QZzUbaXW?cEA9*24egiyAL_Dc9s2(CqJwRSQcoP04}_ z|Hdgu5+|S0Up~(kZKvdlqfd*dYfe9u5uZdKV$GY`qq-UUQ#kvUpvg&F%rpKhYTbT_ zjYnH;ahqdnk@xmyc zm_5DTU4n$UUo?i3%c1V=B_{Yspbs(p`8yrOwMk((O-wL4)m+4f22oGf4%gmq6@Hrn zP;i@lopbBO*8RS?yMSIk{nv^da(MF#shz%Yt=RCA8uGgwu(Iz4G32~EYEu_Iq1IN> zZhN$Ald$#@ zSDY;ox!Vcp${ukyaR=Txvd-A$ES|a;;XOHr|BbWR>K?-A-381lA*Mg&pg2gqsj#QE zFuqtIzL%F`*CShK(zTWCWgp@Efc@_SEtMzJzhd%za`;}gQkFj{haK0S7Bo?sSkdS4 z&u7wWDveaP(KeqPfI%O`mkrdBer${DIr*Yqle6&P_n&>^irDX;f@uESj!#dEe!GsK z=(8>QT!|G$+hXBCtZK}*P@zBm0Dciyy?5G6Xy@$1)vd&^;_OA80{XBJ@A$OCSgbM% zLh%w}9M@KfN%S8~QM=n|ia1x@2eVF4AO7q((Q~&acCwdn@vJ27 zXS!i)ZD;uFNMg}fXDqQKPTELMc!7S@lU>lKEyO3M!vJd(j%_KX=jVu z8`-;yq;A7iW8pN|42uuB(#OSFM0;;T^^(8!%p0y-C_-vq$2AMa^L3UOwBs38@f_B^ zsI7#Y`~aO0_6zTIR|@A5o8#HIpwAG+I<$(kk9&CA#KFq-ou6QS!4_#-dn-;eOR(`K z&r<8wN}a*?;Kyh5{F;t(c0d+>um{up z7|T9WE#^7}^M{I|KD*HLg9o;6HW#HUjZs7{?|=96(Y6jET>lovyk`z@=#4mJTZ-f4 zo4N&eQi582Lye()f3wCaUFvB`E9ct6tnO@Ol6^JFhPcvd>lsRZr>`*dv&D|fDrIfU zQaJJ)uz%lAF*uS78{Sj>I<{B#?9Ilk+w=#S(?F?HU%|$gw&*{&no=|`6{lIZAFK9S z6xTQoiFebK8oA=x^~3O<$QhX~7sLSdA@W%MoX;s@&h;n+y|sgf;UTg3_+D80*yBW( z5K*iZibe(wFnH-HQc?pExZDw&>e-1ccl_aHMQrHTMlr9wFTBb7oc?o;NTs*th=cT) z_Ew2*`W`S^;)?VZgTz4oe~&h9*nP0Ah)i+DyfkVc@6!^W$a72LxifxunLNauzI+be zaBA~It~$~dWgop^oY+aM2r)-gJs(((w-L>M8DrCM@^vcyW6!7xz2FmqM7qZk?tEjuWP?c6az)!pOFF?G+0TG2$`j%dHM-iOP18-vQ;)B> zKEsxtm`jx0`K36tg3ZfO1E;j@m6$)b<$E#ThnQ4#LRN7YP$wF!!vX z`03=0ZXH~)|I|Ver{>J!19BjpCkXQ_S7fEQp{h#{(ZPZI=LWV}rPMGn7Z~zoD8bd2u^;DZfLsr0484cCO;2=oD0woSu*;dD~vG zjQ$EU?*H7qri$JAQs!~CxM;XUx%n#>)@y9>pw0vmNweuEPahq?jc{qGKVYw zY%iL4&@bAO-h>0T2;&qFyqL_n(NA;5gT>V3o9&KEwfc(Wsq`Q_>WS62Yl~L3T(F_H z4;s~~Dr^>$gY(`8-+h`06CLI?em>~oHC1dGVu7e^A589hTqIkVVAX-Y9>oE8HPHnsHT8Y4(yoVonV-ZK!!AjO9&_k@{Jn;YFi4%KrBC zNE%Wis%^W8p&!(E*nXOFNG`?c<<>aU-c6aP`yKu%)`-tNpnQ9vC3)4ifnI5%vZ0BV z6tk6nrl#@A>5pIORma(une24YR#egfE2d8encdPrNE`qU4c1G6~7sZtD0NhyXg6Gv! zgtNXc=2msZ55xW9<6i1avtJSV*jt=)_r!{Z#1{WuFS;!DK;}449E)iuR#o%Bv>Cfm zzt?m5IX`*x=fz>0Aq2ZBYl@@dSFrbH*w$280$DM z^xu1M*UIlA%lIZzh_@F%UZ$MMD#bM70OMN)C?lqQ$0lMyi~dbg+P~G3{E0KfTAoo> zb<&c?uCxIHPbubgzM=D3Vi%ftWqouh-oCQIiyk4$)uDNK&ApwJ?xvK?$-&3L%%wM( zDbuTG;*vLcjqg_|ht1MZR+s&%lqt$U>hol6BaX0egmNZ7fu2JXt4_UwUB57UF}34MgBMdRcJJ zVSV?1Wsg2?m>K1ZUEz7M!$v1Gt?z?JZJUYNCU%%T!2>f5wu@$UEYRm6v8pY#mG95D zp_Od^SDc4Gtfl-AH?h{8oUYid%C`5VNULFuH;p2c&z9eT?bi5mE<>4DySn7~%o@F_ zUsmh}Xi2A**r3m`bIQ?9-`K;qf!EoSibY&0Ua;>HbK!szsh5YqpPVh~;jcX3kb|Kk zm`leyD({Q*S8uehFj9mtu^zCmW!1g+Q~T0o?n&S`bz251hkl7kM~1{D34QP zP=h?(n2@f@NxK6WHGsKn%Vx?|FV1|maYDZiwUltHFf=CDf6JhcV$c%K%jh^`WnsQ3 zJ?)R5Yn?Gy?~>?nV>dpOJLBKa$Aq5&=R0Cus6!ntmRIqFy`C#lo^BVPJ9!Yh%*{>?`D_&ybh%rO=lZ&Z}91%(nn!d3=N}XW-Yob_E#Tt?H-Mp%77U#WoA>bqR zLhH0q9=zTPowde)#W~Zgqk@o2sLr0$*@j+<^Q_1899QGFW17;_`7Pv$+;3*oIH=X||T>h|Tcd(3*xJ(q5R+h|xi7_piBaS~c#phq-s0Ypzb5jk`@uUMe z!~R02i2;1s2mJ4TUKQC(sXZ_Q*N3Z-b17Ik`}{Wa&#@<^ouy<>dXDbHtntgKTnT*m z2@Q_22ifSiQhVZOYI4|My6T&9-Srh`GHhUZtW>EsARi`aHoOb}Rq77AikLhbJUp7A zJWmp+#vJ?e$9QE<&?#7KCTDtYsB*8*QDi@~h4W@l^9a?J~4l&?M&ZB^B3a#P@WB*PDs3YLo^!Beimb{m3T%tHDf-wj2=eUqr|WWx-`C1h)Gr>vgm>bJxT=}Q zQp=DUWex90?acgU<*41v28|om%3SuM2=mQ2A2jHP68GvZdJ?nkH|?o1v*jhsyK940 zC0UC9$urnrpSVZoQ;I<*J%5+|nX!si46Wl}bIukU@&XhQu^%hQ{TgTLtgLUm7tuBC zQD^5iD85GyE*Ga?opxXE77L2E8ef8o&&e?I-DhtU7x*r&o#~9<3l<68JLXvB>j=Y5Gey^(CitST_E&m| zamMtOCa1day-HlKvknKwk;7B*UuE6hsfI57f>Y437kjKCR!L8mk#mwg{gK6r^VT~! zPwvnRi#nO_%!=`44|)Hinq;~t&+)PbIW!IpGspFMjM%mG?TxOH+1K+rROC;8OfFOO zKFSzz%LXIs+)++GI6)shTdeG)Q6~32j5jlhZ|BARsbZihd8phWTv%0&;nu zHB}CpdLf1}?=Yr@vM0;L1@B$$MnZe z$`ERjcqw)m_1#b@pTxcuIkc)ivz34MS=-A8_Z;p_keS4)?Ho*c1Ig4?;%@pw@v|v$v;XYpl`*I9``PimmCCwpY* zH)VUnOx$X0jde9!XPSB5fxopizMbouxh6dit4plO&F+wSx!ZLd8Dj&BVx7#z-{~7m zJgQ-rk4j*|5mY~91H-#_lr{SgKzhNmIyOz&p%)Gl=F)2h98k`G3c=Iu?78&WtyD>& zuQai{?EN-M%;`M{3FS=Djy1~f8H_XgAWHMe%3XR&RNL&pnbLuZS3l|#m^-3dyAI0t z>ASI`EqS87>nqj=y^!9TaqRh9+>9sQR_KUY^NPfYH!k?b_r2-pYeHh)v5>Lt8kQy+ zun$<}4!KIj2gJC=_ORi3ofqvP-p}S-HRD{g(pW?@_tYiFyurMv>uYDWw@Jd! zMK(xi^g^lKK;St$rxti1n2gIx8#B zQU8xv$DuVwifKA$!?)YPbjCbo%S`G#jJIcxd$iJYGX1~!zlQC4DqDJTKTo6weS_vo z0OJhai4l4=mDNYR(EkbdRg1Txgg!a`QJlBBm@97a+z6RM->A||v6p+ZcL9BqmnVtu zi4NGv-ge&!p~ANnz3T^amL}Oj*e;{?XCdc0H0y+cHvR7=I%9Ii3=!wVd4+-0gW5Yt zG~RE9{yT_oe}5@o9ch9!lb!K6&R>3BU!GGKM$hV=X?FZPq7BKH^X{J+(epAoUblu-NV80rS;t}1(FR9jzA5vU zAE@YkUz~7DS=^X@J>(J_oJ&#qJ=}+1#GUej_9}zo!r{lgUAM2h5EHH<&AnhQRkhmb$mph;8C zDMfY@v&<~mA9sR5{vG+!x*gbF$T!$8J%l=c>7XL%SVFR^8f zG+Vj4G6czYiDUN|rCe_ug!-Gv4V~6QIbyO0HFc@Qu)Ue`ZCC)tHgSMWQVm6~lzx~E z9GQE(5vy4r>!&#aHSUSbwcfbR`K}a65wCW5z-|@K;d@8KSNgk#aOSgU<6e<;gFY}a z``Nx;B0=Juk#K;m`3`aIH2rqxaHc(JuDDI#-9zL;jfv9}o%r5FP&>X_Y+vyrfHSIv zoDHySF8s+2iMvc5!%}1R%1w4?aakdr!bZGW*wt0nLn?m(C^V2Q_X)W&(o7|Ww{Mn9nVpIrX^x1&x9RM zW-3+K;!zH|$chUPfb~i!DA(BFNvGeu+8ElM=@$`fVeSR+YG1 zNl(SPeK>}ar#Q>Jg<`om1O`Vq%TQ2DG2KO+a|?T^N8XDY)IZ6X!&#ox`(n+i0Q8#9 zJr{Le=u@l2^pzue_%dOIR=pS^Ir=Yl}a zz9|zoiKAxDh-l7t;qg@Qq>Br5sL7NF_N}rmkXhQ6w>#!ijWp)brcDB%) zYN?Fedkm9_bAHa4r<`wk1nI5pFx+>T(n=GL5cZ)ydUaG%7R6AL*be@E>MKpe0r>b6 za}M|=Ubc(GuJh!8x)h0S_u2dFXOEmu*TnE0p(uPo&1Cm8!qYC8p0Ez+J~&P^w55k5 z=T*iP1&iR%{`fwbd9R+kICyS1dh$-3Y-lbVj(MTZc}G~cT`hig^?(OsUNB;s*xuO< z-MB}0c?}mYZj%odz`O5uXAx`8`Po!w#Gh^?dQn4YYJw}e9H}WrvF=WGpjW-lH~HWw zVl8!Ck@oz7JT{o~{p1B6vGS7-rPJ@&+yi@7?UuEoEU}Y5KL6d%(^gDVOt;;^dINIB ze`P7{qON1q2y6VF@>Cf+ISc)?$xW&iqx8Cb0Vf}FcH^zRlB1$U@=@YK=jJNP)eH<9 zXonw@1}Jk^r6Pp==$qSGC|CQZz>Bjzsq?jz4P%ZWh57Kf<|RT5OvL53^u+miRs13+ zGJLc>!cV0MW7lYWO>^36Em*t!N(*g^!PGU98l4hc$*U<&Butlt$Z+~IdxD=b%ic<(oWuU#G{(+ z#kTG4*n5;*|04~=`EG6)#r+y~_qW_8&<&Hhk5Bh~E`NXI%Km~I>>K9Eq3fJ6F54Af z=Vr_8Z*YFrnRB)~PRKu2bC1+_LqxcVoOGRYV8cD3)yPD4X=w%18-K_7u-!amu+Af_ zaa7}$!7XKI@I9DqwdUMWh?2YNCO*t#uOwxavai8ar0dyYSV4a!tKbqwH{smq+lI>K z+syrlTWxLsK{R=B76;GSVf>YUMZmZ;w5V^-`MA^M0HjcVn;H%S4v6&G$FL=c^Xdov z#5C%$S{}E@{7p_G(JKa1a_vE5TVXx*05*(qKnKg^Vpbjc34h{T_K+!JNYA~P!gDx8 z3>S4LhvJew^IP3sVkLcZP?_iDfQ9ZTx#WVMsVC$Mi>Md5!VODe_vwB`G7da8%~^8!6}6>3TZj+8UDkSAWv3j>{d$^TZhf{Bg$U;DYE{bFUm zQ6Xj!e|~$*U#U7cAK3}k*ycA@S-#~SWY%}CSq&8qCBxf?z1QR-kyM(EICAK(C7u;S zcV5Jc7{<2Bez9nvf;pc#H)8E6sPqLVeS389-6_2MPUAi~JRXrtg?(HyUa0bhv7G8sK$@|B=2z#!jwABa9H?Eu6^Ghhc8h>uk4oG{xs_s7biqTotKYM>*g$L z@KYmC$&cxUSZzCbFSldl{DbcJhcky~;{xPsIqq0Mz1g1+oaL$+^f;!zjIFU+emUF) zx0bm>{cNrLojNVWQ{6FW@fbPz2RZho?$Av7r728SqqZJ>*>z$xkAo~>Yw>sAs@eFZ zO7Z(54AZm52glw@jP?^uVLt5IxJX3A z-5`eMUc#t5jPs_6V&~>eOzcKZdFOvb%{gab#-8cNC2hqyt5iHk6k1oX%w z-}thcIPvueOq)62-|P>vS#TWcjc|bFxgz8W%w2*GolQDhP)uWT8BJ^k3r2#%0->2a`tIoPbQJ@S6~ z^m>kThP{i2oM1w|sFlPkdfLbxIqwACe>tg3~$Y%2wwYF)2cJQ*R;LxLhYq_eMOBfOLt>M-pSFvGD=n2{H>OjSeV-=JRV zQJx#K3gy;o&f{Gt^70EV$%}5w2y|v0#rN*qigbh)+vC@)gYx$Jr^(@`#$8s3ywfTf z69XI&XyGf{I5N(hhpd0iLq4%S4jqXR-8XTOPy8E=r>t$$AKJ^xd}%v3kv=q$Nv zv=73sxnan&aq?I4ONRzi3n_lEe1mxDEyV){W1GrmWgd9-(g)pMKG6)j<$*Ryd(f`! zQBCoBdh$@;^uwnOnnR1I6Ud(z=P*XoYODiBJPZb!jgXI!cUKlkEzW@HdY3rAHoGMF zuQ>P9E|TkAD1u6ty?b4Exp{-9K$;!rA7;q6r#(daBw`Dj`^k6a5sS-Xy^z&b-sE-z z)iyamFRihB_EQ#oKN71gs4JI6UO*w|4FY_$<<}kpcJz=NEZ34>pH9aK&YFhLtR;_o zdI|&Ivd4D4w(OIByh5ijL%*)v-#8H;!kv+#*GTqT5R3LzT`;6-Gg)_CG^`)FVC<$A z^15A7=x<0KOHNDqV6_NL-_9K3b8A_DVmQXwdvRu}y?nP>2uuh1;Q6i&vR2hV?2p}z z-!0n7UXnjCT|b;}+gzUC))yD)p)%S?NA5nw2b-o+*Le7D*`>NS{1A$B%XP%OHy$`} zB?NC;wh>00$1jcuL3P8%^f;y_5Pc1U-c=X-s}a+R3c=|QZN;S3*66-71n&_ddtK(- z>%Sp?#d*NBr<$mRuko5^?8%;PnkD3J>Cd;vvi!}O#xYN@oZ9U{eK%^-M&3t_6bBTA zn`*qe--hQ}dNb{^*YsL-4YM0NVe2;!jpx(LFp!v)8PTpvP>O8&y8W2r74!}chIy_Q z?ZldHoa2sRAEM&FN?de(gJ+t}1+Q@;ojJ-(Z_V@0&oPwmengCwX7AMkbYNehq`R$V zX4nG^YtMS>maFD|(jAzwF3^1U*WA*+fum=fh(|5fN*A2qv}`yHk} zSFfct0g-Y96g8w}_2KwK(ctPHHM=4&4v`sXi#})>`&3i9}v^e~4S1s)Mrnict{vRe)55T@ zZff$JGs#17!|R{|O`Xg1@}_Rl)_dieIpwL)e04{^WmV+}&gvY??=DSKG-&3kUY8{d3R<0(AhsqcDodT z1M5TZWTBs2{Qq%|j=3+7IaL|wK~8mqjYVagmjv|?V`}?U#C*hxmBQ?jXT^HrU{^7A zzk9`cfPRE{Q9vCVK8xMS;o|&n>UD7abhDqBbAuYUT<^FVA+`{+UwnvnhL5ROS<}4Y z^Z(t?C8b50$SQ9z_&xPvb_Qu$Hhcl65A+n%@z(5{_Y9NBCwmaPM>8Vo5ocA&RXue; z^SD_aia66a{pbnJ(zCZvTh|34UoU7z_+P`yajv)+pR3vDdj&U^y1}W}OU;;*=W&U( z!Q+}gH4Z;yL{Pg=Q&v+R#k+Dws3%fF>&t#`Pti}%3)XX*$?=?vX;9{kf>*8O#SN2S zuilLb=paA1n*ftIKh6Mlk&9Zy<980RkBDCK0Nq&JdmH-4n^S&mM7?_c?N@3&k#}T- zSFEFkHxVgGmFGq^y@6un6#t5^cWg3Ag!oj(dF1ldVivg^fBtPju8T;Etc>&Ib9+Sb z#mYFNim$j=;8gJ$>UD}UiS`xi-kbeJ0_T?g{M-7g7m2}pc2%tZiu253O-jrgEN3r4 zt52BbZtIum&c0`lodKGpq#_KRM_tMz`!pBEJ|TaP&vMyOP2KnR8E;RZSlcEerESDNWhvk_|Pj+M`=$T@87Q|8(A>&6ce}Gfya=p}b66dF@#1o2oaaw>6mzL@_a}z8o9`5J%gImY`g`3~qWewG z@NzxM#7+zxYE`jb{%nXa`fXOR{%@T1#};d*Z7#Gry)%%(yDYKS zQ2Eu3)9Aj9`mMY5BkgTf4ZC*oQUQAp;+f`F1H_78E31V zVe%-w$~c?+ROAV!m2rM%|59Gmu`iSI4pZMROufHFxCms{K`?J=yS}7XjSyrr%m^Km9FaK|x zI~^?2jQd@VgDQKJcZt*l40?^{;SSh)b+4wO<#SZ2&OU-(f@XC(y{DnE-_5`tYaAlk|Z$^ujLn`BZc6UGV zW>RIG_mLxQ?_3$@fr+DqH*ustF`ss~xW{-BQqBOS~mr;w7 zdg%I*n)3WoTp=F2tyhvJ+OY^XIDmhHymW@|DWA9BEA)gz65zn>-K=1ra z`B--uO(xN=Eoh6}{m?1&zD=zl$w|J6Bv{W1pa#Tl*;$FlzwQBWjSrHmHHyL6?|V@0 zx>uGOM?;w%j8*=J3T8qZl zD&t&D-BY;N^Q!oahkXy>(4jKUlg!(SksT`IyzgZ_v2|2soNeoVk+p3q<1D>xC6Z$+ z<9vB^l-zON|Hk>E>r;(R?pwIcwMTYgq~^}2G7KwY4bmt|Q%CP5q9chF~^we z!7bcd?uXQ+y7CLH8|=aDK^sFoxl3UdUQ%y7;_Q6+QNcO(wt}(r<950Fmopf-B^Zt! z+~t^(WJJnAIPDZD>pe>(7d{A1rTgR^&*SjTf_~Fpak8@MP(^&~-=3CljjN1vky(~p zzO*vVgT0^0GY?h9dG*jLB3)e>=i^oCik0k@|B1h1SYIsHt&H>N4%#B3U1gkK9R4nM zXk8g+bG;|B$C%1ETTj=>k$*H6_;1~se2{A&sEqTLUbEx_+W#A8>n2Y$5u@J0lyfwv z%px=!O5R`=aqpa(ks96jSGe?=dbnMVX(pqTyfYWHF2AHnyir6B9`UGFg__W1Pf=?o z`DP8O$TLbF!R@j)YPV`2+uJ?BRa@#U8?=|xhUTK7TL3)Y_LYCuyaUtEK^T!J$z>il z&~$hhJPbC;?T1{d_?>Uhag?_jYAV)`8u`hyZl0=G*YS^#I}SWnvEGxHAZN|xJ;=Xt z;(=7T^!vezb%3}aud7lSXVWQnE>nmC^fA9{H)EBljL;f1%K8pPVSbc1y#n`rLIPP9bXw| zzvvP8K=)BY8H%m ziE$fTQBOLr`8xYKOa!s5fsZwPHy0si4tt+XerRSmJjIIc)QoOYPhOSr7*_NB(Z{T< zykl}ca_a@*@N`}I)c6Nj<;NU8d6BGt@Os7XQ!dP9{rC$N>-7&j<)LlQR;;~}!sMmm zWX1Z{p*XqDf~1OdK*&jX%)$7I_0Btr?69*k&aoS=$v5`XFNJZ~w)e3-u5M+VZO)X* zt1ngV=SyiHVS zjk+9vzJIH*4RY+M$~d1p7$krG|MNM5hue{5Q_gYx6XdZ@$At);7%}f;HWf z-=fPVN0i(S(hS=D2HpI~akY)nn2&so{FkmseU+gZRQ3Y;P96v-y{qYa=s7Ic(_8TA zJI#zu#h6Y0>Vh`4SJ9JCug|Oa9X6URle?a|TCwgk z!$Cgr>s-Y;x2}&IcO<=H?P0Y~cH`{ZpTFx=VuJj1_0fv8bTVD;UKm%gE+u|t`Xsty zeJ1F(EQVIbd5FzZ+30py#n(T6dLb9ztc>%dug~RY)TRIPJ?on0%16^G}((s!6a40Brpf6a&$?~u$s&OM9Wnv}ccFrxOys>%B_4couLWBQxy z{Bm65y7@JRPw|B9oGi_bOD{3j#s|BypJ_@avc_Tk8*W%dUT;}S?dl+G9oI>=7*$m9 zbFePyn=Y%pBM%XJ|wSa5BATxss0|hl$_8%YpI91 z>|anB=j3*CID=2QcX z@3c24NGD#=*HokL^csd^-0xXu` z&S=`sD?uF{;_sVYYl3e)tN6Jlx3y(wo4Xb3nnpckol992>xkxKth=g&7GI>jz=3viJO$igjVMuk5s`GG~^DhRW{wdn>-aW$r%t zaYjhR`bT!SZ1ZJL#rpk;0C|E>WnTA5<1Y6!s?0aqek2xcQJL4(u4X8A3v;XZ{HHaG zTVdX9-(O+^a9pr=^OZA zvSw8Fa|GvjW1-dmk@b}UQLW$C3MeXyfq{W71|}$|FlU{yTdZqcv9JJI7FeT6vy-#np3_8IoU;T(m%trF+eSH+4U zawX2CMh1#bc1oOo&l;xax?PF$=)OG_vj4+*z}EJPmnlk|U+#X#ouxT~Ke(xRUgN&G zD{+p!lg$Y-CC%4w~!y|8c%GEQ$N*_5z=&zdWv;F1K;vOI#V| zLo=Me<=yI<;7|A9{9e!HwknO#3JHL$&13n$ou1*bRxmo4Hp$g{J;4OhV-6qxNj`qa zBNUQ;@Npv*&S*yi%1_21vZWJewZ0y2^%H5wdnV_Xuf$oW-jSPrQ;BoQ9d9n;y%Ohh z(?dBMA0^Hv4)NTWsY;xywbLn9SK>UP>>xLPq7rA#dIq$yyJ^t(rrmEe28+I1+=xCAfM$@j~UZx*5`w|yli4E z%8ElUchb$$*|+Y&$0;0Jf^$ks<0+O4ibC}%uhN;mx6qNaFAd#imG<~~1OL!oW!sKk z@>4x7wZ1k@?~U@q{gnRMaMjB&|lbMeHWgx1HOy)iRMQ&ZyX^5Toh{%%T~EqhE6J^e?C zGe2sB$TC=o^S)hnBK-m-&hO`YiF$rk;ykm-S(F~F#JSCJvFLq-5@+?}R?PJ^N}Pkz zUYOiE<<|Ol|LZrjmRoRdMm~mdXVUlid|H0B>tkqMBAxW+uJW#fA7WHC?cn=G6d$Om z!=e5D*f+Pzo)Ek3PZvCd{J%F4H!B{;;Y4V zQFXv|yiAM18?#R$%?;I%FG#?pstVDe^-7%Q-)h4YE>_~a$7K)`n6AXRasilz?n<2B zo!h`1u~*`pFkQ-22P<*bxERa?>MC*0o0Z5spQFV2;hl7*h;$+Ud@j# zb^!D18tul?<7Lk_F;9$?I6r*MFdaRVIIns;nklEf*gwxPUNxAxL;LlA>^6E`8N?}Z z7M0%<=|(GYPAL_b^_`SB4HITOt~^whoK@sdl7ZAgZ}=9}%g6czpeX$eZ>As~?f}q*q@i#pM?CsQxDX zXvEyPRfBmQNHaQf74vT4HAHoZf#|p$h+- z${54-s~S8ODshfmbCZe7QsO+(GJ#p7_kaG`VI33at;G3D=2+%qu@Yy+Z5>APQ;Bn3 zqy{68SK?g1{F*4}|8Oo^_mr7|0O>b^<;$u7`oFgA3 zmxf+_1VxEAOs+5@%b*5m`BJYW|AOe@%UT??AidW%-5L8y_n}34m`!($nTwWp(BWV( z`Q&ZP_PsY@N?IhpulX};E?vjueG!;`EQzV=S&byOXe<=xGqZgz<1X!!9CjBNn=Mta zJF}OxjIS^?x@E1eZIR9+#=%>OvxVs==HeSA&K>Ghkv1~7^*PZqx}fEa5@+?YJ}_FO zJkNXN!?4j%d7hV~PQv62CC(dT#^L_A=+>XzdP@b}cPnvjYaYWi>nd@s^BTy!4pib? z;Z`VmPJQn`SgHHRi{7g$Mj^g$ zEmME33Ugk@qA}wmW93i@+XT|h4O1n}IVH|VpJ<{sQ;GA^D}Ax||8VYYFdU|;N}P8z zkHg{9N}PqghM2FT#QAWQ2yaIyaV~i{1B3rB2kcrm3zlli^ZY7aA9r6WW9FQXb&OYb zSSy}WuR51{{a?MVF*%#NQ=^QZ+vR0)F`tw;_wUe$Q`b<|`M;PBm*1iO;GfT8-Ljj^ zn?NPb<7WvbAuj)mbJL?}xmQv>41N(m@p(g0YG@riBfOz?=Dnz(?*rHw((XXkbSC-V zyXf)B4>28Fm>+((5L6w2J~exp`s5nuRR!V6u+z-E^lA)z5`r}YZ!mK+FGF=iI67Cp zWgcf=#G&{|2x0AEP+pE&nrYVX?1?c(=Mmr=j|W2sWB+<3&OL(0VS}d<=eK*N<5<4( zJZtiE;FO~D8yZH-;WST)bJezgF*Q%=H~OD3N4Y}jH!knAfP!jNe{fi{$qGvZ<#{fM z+z7V_CC>L$`lHi4CC=05-4jI>D$jGfTb10IHo>hwn-#JSDl zHQa*1-mT9$S(nQc)9%8bzol87XJR+`e{o(qL0#@_bO%$P(_EZ?hN$o2+c>|P>UAB4 zGFwz`!r&fpsn}RD4DHO`v>{#HmPAHgdKJz(0l2)cgi(CF1k*=>=zqVKN!6nITS+ji zuKs3b>6POFwhDi9we$v+!U;3Fg|w zfk z?`^e9Dl@Qkpt2`;V08*?cx8;y;}YpxY*XT_V$=yPxk{X4>mGH$qu%R`VkYbNdAJ$+qrl=3 zbHT3+(~AS}OSc^cH}SYLk7jy)Xk!n{5zkUE1|J-Y+mR(mO$)`wp)5LoBQ7S-aI9Fg z5(>RjfNvyReTdJuxe$|+qcQP5&DdET#ofACOtYZ*p3GcC{-E7>s@a!6KiK;E3nRR|I;BKFLYB{?K-2A2z6G*%-#vb=-{Y~<#7eARm;&TlKn%Wt1j;(Y3R8q@@F?DY3?Ys~7Yyx}hmXWLQbsdYJ7^EZ`Wx5rtDR2e5g~ z0sLr*fhto7sXG0?OClNl{njoy%>h}ga15!XUahnw}}76`Bd!>k$E@TjWYMdnQ_aRKD|$)&ql&| zXChPo^dvMld1JJwk_j<8fjc{WaOL)QCc3Z?U8I!1Z10V=4acxCg7gL~Ct$?ud_)r; z&K8S#&~MI#mLdRYi#DTY<6(?{9*Ca{q*(ayAo$V2cs7q_i9EBRNx80rO(OK)?uXYK z($e$JLEeE3u-8db@XSfH>`lj*<5765e->#ec$V`%GhW~cZv{`E?ncj_0( zvuGdr&(Ch1rOm}ZP~seMRW3Ihr^LC3tGfIV&A0w}4$n_zEVn3e-r^N&GIq!R;=I{$ z8e@9n7$&HBB7M3GQ#yk7tzLP;wasDXlff};pzm?}Blj7PhxyocmF8nT)Ujx19^O>? zpw?#yw9g+wDfyEr`;9U4*CALIQN8-yD)bt45J|`Uakpv@o)TAy74d#H_9yOc>nyyv z8HfW^10Fvu6C(9s+^-|;+qY?0WgUXWFOT8lzp3!G4?|udhs5(K@L?nIjb?CI^;CGZ zi^Z_TH&I-Zid|hvKia$wiEha_Oz-!>y(c(F{2PDX`}m>6A>^XO`Pl9zEFu1kKaXc8 zS3og9d7f8qc1G|dCFc2${h3AsCFVPG&d5_gDsfKI)#5_?EAPSU9Z$=5n<;V559uJ! zp!thGzw@wOS=PjaypRi`52t*yB`Z^zRDyg1KLyzT6Z%9`qHC# zYoCtx8^WPpMYE8SbR44d9B6X^a#02bjg80kcUQ5kF&&YIlCXR4ZT$F=+-gTQP_Obr z0wU<~P5JeB@iV5?Hn~~{or96Y+mr;ey*%kFgd>dXZ69}|JH>TDWWS1XW+u{3oFCci zE}xgP^Of;NV0bsK7wtg&!81rWB_A85#CatFAV`Vx$(xsp(}w&n z&PMAznR6d$$HA6(s2F$VabZ5z49OJ-S%?{( zj+Uxe%x#+s-NhL==#YfND=F^t--o?~k9y!K1TRl)wf)kH&=?roY8Na%jY)78fgCp>5eg6#4A+j4=y0j;(P(&fXB z)4nD>UgQFJDV8BDu8;a^G5PJ0(K zDL4=Bt2~gh(U)P=^DyfMY49baFdHW1Lj4l$j7JwU1|yEZs**Gpx7=m?UmZd%?SQ=2 z{Kky)J&3r|zA(w{j7-fOngjQPbq5`MPCtOyv;LS#dD#-xEco0D!2QXfx^*VhsNXr8 zA@1L)>G+lsjJB@Zu=!akHlGQFR;?3U-AQ9Tp13pUKA!qC75Aw>er9J7&R3?PJ>@uO z4u`|w#Xe-vd;E7)G&&U~B9rWjw=r1zJQn-Oo?03WS$q_-$S&ROjGN)aZ$$Pptsc1L z7>;bRKdY!PyGDeyK5jKMQy!HV-1@j$bhTVBC7{*rX=y3HT0;B!^!&gX{p6cy_v;|p z*NXn(c2m6Z$3EzmZXC9r^g77?FV1s!#xPOZM-aZBIEM{ZF>~G>fsKs^8b+>Xu6iHA zp-kd?S>?=(K7AOY;=QncO*qr5^bnqfdt*GapRou!i20sAC|!SsF&>$N7<1~6@2+O- zP94Bg+C5)(u#vG}odx%$#JQZ+28Zf0@qAqXmfr1xapN;!7!intMg!ozE)AQ02I1mj zJ$MrLk@M3K=uMi2SBp|03kj#a^4ZkePQgW*2}rxR6oVGhTy9-F)~#EEnCTSP(fcYf zHlrF%B67*z8oL>;dNlVzcHV=HSok1{xMS%~bTCHW8xbfZ+ji~)CObVGC&CZOjbY*{bhb zfkz87=yftO_kbUZ&toILhcbD`NabKS$EM3E3}37|GXp zk5PPY454S5;yNn9cOzJ{Otei3P1kzMLg$62f+{Z+DkDhF{3h)?|{ z+5g44Y;g{g?U9X^UT!GdW5B%HPQ38t?s!?$k>S5*!<3<&h{ms?0n@VK+s_NJw?BzC zi4P$7y%!1w{T4kRn1vBM?KyVo!1&(JM2)u(9(!vsXNl+h!9vo^*fE@GzdIfG#?byk zJ0oWD+%&Xk`BRL%h_Td4MYCQ27VI}?HWI($ZYR>_Huq$%8z-Yz=V0up31`}_Cf{io z3TxecOy#H~Z0s2UyQewKgDl$dqdEp7!)5dBmuEZ0kJK1XME4aK;8JfucFV3U$ z3Yf*7`&%^^ewvPCbQfo#FYUt5%)KTWac@7?QoPr=Cq~q**M8(zdSYuwGtr!3nfMe= z{Y2}Dq6*CnESX3Ay^DH^l5eLW@`E=v4QnU5w=We_vuIznshenUehSUY(eBu6UD30` zeK2GFFvW1TsN`ZYRuD(xKYRCxyiQVG!kKpQy2pr~xa@_Da{2Y9$3$TkzTWd=k>;x5@6?l_35Yr@e$_Vx(dQroAYR6k2X%=~TgydkthLADN( z<-4_rGmvbeRF{vZI?_k7n})CBf~dy%h3uJ%1&U)CvQ|4%O{93SM@D=7f8#u3L@8rQ z-(M5bw!^AH%qYqWCU!P<_^=GOeeC-bi5UFU8LwpwybNMVlHVgeZTxSA7kgvl}!H{ zn)@JrB)yV>jEyFCZ9p#nd_fp*9i3fKA z<%10q(NW6_qvoEK*H1{mU2iX}VLr+|_2SX%gBNleI&)WZ8YF2m&T$?sxO2K(>deX7~&4{!H(@ zXd9h~YYyGHjKNW@XL4ky8aL}scq^V;um6;5?V*`g!s?8?12@z=2wlj2T{V{5LwSG} z*?UJja4&jLY!$T^3)$D)<8f|y+J)*SDXEH_Mkh?~7)?CP7Zuv1(In0Mo3G$=@hj$8 zQ3Rg9km34)X^g&mB%Zb*J-A*mq5+1H5Z!k}kTz%B>2L&=5U$ z4)&|K0WP7WA?$^SJKMRlZlM@UaZ)d-Bd3}fih?)Z$dB~odRz-dBJrn1Yxr?7)b9;U z@Iz%&05|D#C=yl$KsPy%Gnzy3m{Sm5Z1(4v@GyAFLvSj|n@jqKdOM%O5ZKj$bMX#G z<+mufj9$+pliDX!(aAj~t6_Jd9;`u=MN&$Gmz`R$cr74dBU-0Jd|f6jTL zg? zDB{;Aosk>t3puwcY~l4@jX=U#qw| z!5r$bJO0A?Z15OdSR%#hsWR-T3u8XlxS{tI(sPOI%G482M*RfRC%PRhI$ub<+Ww^P zv#->oNQE@CD@X(As-h&KJModqr%NM@q=dvZ_>bS!wua|G5BOZjCu4~ z-n=aY!)O|m@6&BtI^dJCtsF| z)_9OE2kmY-{#Yh549s(uCTi~%f#xG2dYWCr|onXqMF>?#v2)Q&I|5o%a11dplh@{+Rhy(A28MrnxXW0jGZg5q?-5cIBzWLvP1sj z9qnqY^uxgk=JNF7VDth$T9^F z$ftgnq1UlbBG--dH|G&IkZY#MEZPIJ>ASC8vrd#0Lpk~?(yv_DThzvhuzgLr{gDC_ z<8&{qY?MK5(Q=clZ=|jBiL}xZT8xcpPJ8D888)fSHGY%egFCr0p`9*x_}~;HKIjIO zITF%QTE*Nt=uY#rqyagp9do*y2jm%2TXkw+yeQo;9($ z?t>IV(p8`DYZBasIJcIPHvPxGCKKtdTr^mQQ~Gm_IZNWnxh_SO?uwECs#`~&kfLz5 zPU)tZv^%RU!=X9;r6u2qhgH)R_kWg^UVTG51Q~9)nAT42^PBQt(pyzD(4gde$AheX-#F0;X=9 z9~!iLan-AmaW*GE>_Plp<)hJWg%@ml6W1ScEzO!i{6hxh2bc2Ld_qDT(&S4+R9KxK z4hWs;h)(AxvAN|oaMQQJpfMKgzAaYRzjzNUESlK%Cbsw|ZOdOcUy0cQW~LM)wz=T? z`1bfG+6}`^B={oyW~7AkKy@j~FLlS%i5_^IB}LQ3aZsUJ^^77Z+`BHvRvqHVdLf0( z!4ZX5e6ZL+hOp})D5W|_(_$GcTK3`1C|?AQlR+ab9}AZf-(5-O@@U*0m?qf=yCkX8w3h z`Sa5r+t{oG+9CTy^_k8NY>%Jb@LEH>RfoJ;P2yi!PW-XUp9ixuPr0Keku8z{x{ z0+y9+AkB@%Qe2+Bob67tIR?X}IGkk8`cr*OqrVi5hn?AGBR}H3lw#r=Kh}qKMyAqh zZRZimo@^Tc`wbq{pGszT-U`50niU+pFq=IZ7>KA`+J)39V9Uw_u|%J^E>%idjj8}3 z%NM;rm9wgHKa8U9UgrVV*+oA{Cw(h%+#R{gI_)EEWy)uJrPZ>%dwO9I^_8}byUR}L z;Q@c*ja>M(n$<8TT|0Z?zpXA|n{_EJYezb{iCx9RrbyANqs3q6IkgYz2Ez$u)-D*6 zx`=p`WoR&z;DWmq3Pas6@(b|~Hpin6@py&DOR@Gok6u^YvFo-J7tX%J@rT4~enX0j zzqHtvEnd+5E``ePaqPPwijC)xrnT2h_9N{emW?5Ox?OA8ao328=$#bCl09rM!ha|2 zb$F}$ur0)y{oGQD8+qaEBJwlySt-8cB(e1?s3)c+C4G<_Ho%#5FuO_dv;P^aoY5jo>}gVvVgAQtI^)b{6@7ori1tn z^{6jW-BQ@_k(gJIS+ZpUL|hesjCS)EmqvH(gkny{?^m{O8j3F3>|R5*#(nR zwj%eu6g%lWPg)U#VJdEz`A!0xE61>WygRyv62Fr4A=PHwap{p1X~Vm);~U)JNM~$m z(pYv7@hoi_M7d zq@NVuv!Al*ZoU{ov1w`6Cw3aIZKrZ|u` zfeTIq+N0=`6f37lFl|&E8b-KbZleT4Y6UD<;*J|`QcPO#8B=QAk$Y2$U8no9`-Tt? z$`2{#^fhMf4L$IZ;#F?hx;J+sT76{>8u^a zrx8c!JCb>nl~mC8l|IL(K^&X(*at7orFi9XnKdU4k5pZX|EnIbKYRP4=CcH1c{8gs zne=+p=sat*u*b>QY7ds8Zbmz?2KoFF^7&(KYlw%}6CaX5wczX?Vq0IT5&r9rKy4lI zx+@gJP<;7xuC90#@z0HDCa&)<m~56sX~&>9TnD6{9D+DebSqB)ykw8O8$0+8TAC( z%8+!OWz8tY&ZBt9(9WE_NnC5^JIF9_jxXD1Fy%5;QbZZVvn}~Sr z#b?P^o4;cZhxp=KFUrd%w-p(k>F57^4hzA&Y~ zb=>$Z`(z89=Poi>&ruP#qsPt2FS%887N1^2e9yO}xMkNzoIBeWa}G+;Z^IDrKB|Ss z%_rY7ag6vdeJ-6sT#>wLlGv7Fq0Uqvwr)2~{DWpFGRH`9fQ9%;6V(&coDiD^aTv{$ zzv*pFs4Pbr}Pj-9CP3)>L z-IRERJ!IIsu^!{SDDSS7p?FR=)-=Qu`8A|F?4{4HryMSia%~~)A66}Z^rN@ZXJPHe z>K`Efut}s@Y#Yty4xqkGJJJ)cJ;27FB>h18ER4#|u%wwEMS z`xqvkLovun+DY5xI9l9Km3Va1D7I%OileFjxz3W}Fn)@78Pys^6T;g_8y=H;<*AiRYy7l)xc=Bo>RL(jf;Ghd}R#VJM zvtcdMBzQ<%wgKUE57O&-ew;@N`Hijg?{9w9;LZfnUZd~$Rn4mych3XCbUvTTyx8x2=sF6Kn~$3K^`zn<;l9zwwxI@SXixXKzmg9hafNlx3$$h)dg52K~+EY)9e` z+dyY*L7@*DU{1Q#Dl(k>8Oy%d<%vmoQcU&FW>-?(sU!K2B}>n+J?YL*wxT$^?Pd0p zo;S)Z$tNFt#1?d>I-wc)oE|M~L6bKocIMVNbsUlH}N2<6W&`WK|w)p z@s0(Q)0~wc$fCb^4c)VObgz9oJy<-Gqh5BBGx{#o70)Kltp_FcP=7mGoMYpLa-%)i zwP&cdd4gKwn-hRp@IzrdY1&ZX$xi${mI?s!A~vpM$^9OFCyI#*5alM&IIG~$h^ zH`XBq0rN?xkA9cGCUH~!>xnGF*6@%jyK^1Yeqv;h_zY*aE%!vJ1)cx)v)KFeeA5{+ z=pNs~z7Tn041GuTn0vDOCwfwTCPkZhku1p1f7(bfq#}cTsqcwoJt>}_KF+>9O`O;- zss7+s&d#8?YcZV-ecf92Eae@Bgsr;CJ9YrY?JqJ(>+4G!ac_#>hV_%+$DnrNls>fQ zWFtYlHR@uwo4)V|<=R#n;zaV#PH+aN+EqN$%@aMd?NL2KL%i9NVuPnPki@qWk8LAG z-=5aE)S-h|WxFFRk6WVV`e1Rg%O2FkZ2LQY{z=?3$DGjdiVHlwHej!f40Q`6Xqw`U z)X{FFyC}hwrzv>U-W|UuN})d{8&gu;QAM9+8F2*kA)TLH6q}Xm*y0rNvkvPo!?E-o zu+P|^l2X-Px#K&p|FecR{}u8^1ov_}%Oe;dng4Wyj-fCSG@XR?>CkzUMJii=W? zvKgz6%D+ zs@dInexx-mMHh>ktR3z4rOb4JNB&)QYMv)HTF=b1dh$t z$O*X5e#&&f(l9F|7IqLvC0k=w_w9e->{aZ7m0?b>f98TfmHAl3(ivPMLClhEXeQ08 z@$}lFrvwu(EX5miFBCS0!tOnB3DceUv%4L-Cllu-<>RW+JCQJuc=ITh*57>+bGB37 zN^!`u%$M+{I!z#9n6|A8YkSiRN&BUk9Xymh-HvoH94R+^HiaE!;0+z}{{y$pWz~q| z`fFb);w)CP9jV`yewXeDkL~POsxh19Ns#>2fi=EK{oZ&9Om}**-Ra(3?jgYfr$BZe z;{$JZ2`sjUv(1#>N$3opEr@0>|Dv->IakQOSXM+kzTFI^NSPMHR>u1yy;_QzQxR-1 z_2EP4evh(`WzSjt=|Q+)E0@S_q*%`*#t~n>Ca{tjZkX9G|$-mPPON_V5s^lzNo%1SAp3`QqS37+WIqGV1o_Is0mUVjz?gJUs*xCJ%d zpTI2A(eAs5^6qgZaHrkIwssU7tUrhE#l*QszS?_ZHB7uhaJ*ECb#rQw6GYndcPW+# zdjZqpAcRvKc*FWDf;56~FIkH8`Ks(vmq4ubkb+I?#IF7tfK$7q*n6@&JJUM=ej+Ju z=4-QksfJmmA*GtwAU2uiW8c1zplz`(Ye9KOBjJBDY8*S@s~@JFqqut2WVR~X4^2f9 z)Nh;4R&Jx(=Wz)tzAO zpm=0y$&k9m4!wvo<|*Yud#E-#o^;~p&}YHk@y4h*5imMO_de;IJdLYU=P|kQN6CWnjB$cG<&rxuC3DDE$$`FM)E zLI=!L9927yV^p_4aCp9=t}ln|lQPUrG*-;7C5UK%F~}Vb51nVGQNUhi93y4@v;z9(7iljbR+ldVi3L?OEJLU zCD+#`5Dxbxuv+nf<4gijZYRO|+wB!4RIk$`Jd?fk6uml8uP@LAFD{rW5^2U^ew8z6 z+0Rf6%BEc?6DQQV4p9_R&nUOv9_1Auxg!!8YR1~);I{SLg&Ze@ueHY8tCJYF#kTM} zu^YJ_0?oBr;l%g9_2|=n7>VZCN5kN@40y6h5oDf0JA#y}zvC3$4D!KEbA?&QHhj4B z4BR)nVzjmn|JtAo>mB~|{-*FR+g`*@Z&#FQP2&x7%b*oawfddo`T2IIF>fDn(T9)V z6FcT3fck**=MUtwQ?p^{>WcBU+WhFObkaN|J(qedUPqCPm!_`hxuqNLbuXMV=&DCqy9c)LJ@|48!yHO&;izSrOn9u39dG8tmjyYSbmiLZj< znY~{$`HG3e#j=9pr-R-3)8_(k^E-VO=*>@}-W0!63eBDa`M16N;e3#Ms$FOPvYKvNWkVf?pPwPQgpM=#@G4o=r?;XzpbJWdzVp8 zx^@|F=O;(%YImG@=E{#aaRD}K+;MtAByUT*miN}Wqr@zc&zW9@u4YurD@@=Y1eReY z^>lT^!g<%4)7Y@V9ceH9`O}H{I8HzNFx!*=H9Ci82I+4ZIrCw?GmyKGc-YR6sKD`s9#Ct4j2{|&68)BV!0=ZV?=UD2n^$MLG^kNf)vtoF5&QOmn6l;2#9@F;+B(Q}2OE2Lk!h7c^f)J>A&Of&9qVkr=d! z^7%eN{7RZnpOWB-pBW*1`cRtVs-fH|FM{u(AB-7PSBOrJ+hzOs^V{t4?5!(~7I^UcFYLxtU&&uMr!`zsT>fwdiOKZ(V|VZ}aTT_QlQ#W} zEdKeqJLvB1fjY@$K5p4#Y@+^O*nl^D*9$Lj%95V*y@l`N*odCyg#U#f{8op06cPSM zE#C5CX$=C`liq$l1BfQ>dtqP#zqBz8VU%;K)rIquwkBf-&A@+g3gq8-C7`FHCmh=N@?m3R z(eQ%e^<*!eCC1wwRI8F~^5R{Hi@1q+Xs7M*;Z;_IqBqs zQUKagE&7H$ns4t(9FsXThj~1aPonv*TOUbJ;c^;p_mDKr`VlwshHTzAl=Pfm_+XmR zA>Pwpirci0Hrtxi#8+eBVm^rh0wI#Ux&9 z>;p`CM|vpZZu3#=Utm~U4>&Vw!s^!_@v{r{w&(R0u4sQpOdk*8dFUsY$M{s?HR}QME6@4-5T112J#f;nhJO)s8YchH znJ?%0BGqHGQ$X54JC5n_b zA3c%NoA~7W`0=lvxk5*i_$N=s@K$%6h!dT7jdD}?oK7}4_VaK3l=~g#@pk8~WA9rx zn0@8>v%{YwQ^y@m_H=nSMeCF~ALxi_8+pxvW+-a?!wI-SCFRRfy_l}!st0=*gQg?a`Oc1XU+7S+xcx!i`bY+PP^~0# zLK1H#OF_;E;`YB7#v5MPOY`{NxEklpZ`cx##$TjKQMQLKwTwXrswEBlw4U!%8i}i> zRCi8Wz#r5M$DvLBSXaaFFTMpMZcqT0SWe~t@FFib9e~K{$@~_&6HV;`F%Dz-`Yk?K zF*q0r{78NUeLr@655Z)6eZDuHwW!0PSoCTQzp&H=3BjRQF*J&gTw{xFE9nmY&v`!8 z*?~XM{x*j7bVH2VQ(o7+8AE91Tye6$;FY<1!Ddo&1QmXYw$Y?)c-^uJDmZbC5CJ6Y?ZE z-{D3kR`OIIS(DGtiA_aRuoqG;rt?n~NwD{)p2+lAzHlY&TV;_RN^=06`B-E=^aYMP z^S9%o@b4IZJc{4Me^-Pfjr0gVvrG8d#0S5&Z6NJ+fG^k>h{B>koHp;GznH_xY z{>>X7*cirpKE8#2Xa*yqpQ;d6+>A5FXud9dl8|ZI0)aVF<&=et*j;CD_SswJ!VD;EM$VHt!T*TlTx zc7MpSf{{}`gzq`U4=U@zkSglLM+8$o{`k+{MOXeM)f`%EBEjZP2A_T2==6T)|Y&nWYQI)nYs@}cX@VE8VWaiW8mQmenwm}&EWW;p=S~Q$~+OLzWc)d zUJk#uSOhu>e~X*(Zh|0Rw$l|$w#l=$$u9GA!cMS zbV$pl%bWm=ejb7q&BORu;$3zg6oDa!JM&qCNqduG%2*q1zUGc6c-jSf5wnP2ltemi zQzNlPTF8GWw8N%Pf1l?qO(*z}D>w0)a=nq3TwMQUuf4sH-CBZb84KcPeCyzkr~!Pf6J?>qB6 zaX~a|l2%iZDgR|wAjbHI;d;a%egjBziSE>Ai5mP4nvu-D5RIu#I=oFUFEDo^@x0<+ z{wu}Tr*=f({qHJ%jI$l)wf}q0Ji@qwU$yimW>cSA@zp@s*sB@SR>`nd-A>qP(SnDK zGJHH6CB(iay<=<20WYQsLpG?f-S4|n-zQb*(fAV+r?{b{B2MTS`I>lE-EiqjfDrYw z7E5l^j9NcO;mUI2>gh`NX4wWI((F8@YycdS=>LL{N$-+VEqksI|R@mA(9rKABQB?ej&q>^eRJym` zN8aJTF5XKsLR7ODcAn?%$H85ncDrsJ=M%R^BYI>Yyr=Kyb!JCEhvw}HS4Q(AsSdVk zdoUWlc=7#q1|y9$qxE%{^3yg4At{P@S|<1A*|qeUNMmtsvO52P_S#d(ZY2CCulB+_ znpw}7yNiEAa~4kn!x0ehgklLh%rE;}59mhJeZHa1O&p@$MB&I;LgSa0$n7k{nS39i z+`a|nG{d>WK2_NLOO<^#+ZD^rbA{d8)!5I+scsc^L`eJc6WwWtC|#T>@Oxil3H2Lt zK1T}|I@Lk7+zq$9eFghH)mTP2KaJQUoC`XSJSWl((ON5fi!a6cHXg`Nnk^K!KZ#?v zJxKF%vY?rek9Fkxdau?MHg!6Ly^+KLepOo#Z^=RcX))Zms3EL!ONSZ7UP})B;wSyu zhfbuO{pQ|te(BD=m}B9Ou@h_fHhdiN76+iK6VK0_5{=h7f$%$@$CoUQz|+w|*gQ6g zFVmu3uF7Bx>*mi#whKY{iBK%FpUeLW3&yecQE2~4lfOqjr-y`XHx(6L5#rZsFA3J+ z2PJu7qg514FWd6Zzfx}{Jq#;f{or4pvqkz!|G)h6w$HEmfKNAYaX9Hn#f6>LQ(#CyzzI3^Y~ptWo{{)MtC46Y^9LZ z`y@_ld!pji452nXAHFX=;rvWr$eVZwR?S{`ls-(jP?&`S#4*eN=qX%zoDL)Ex$66= z3#I*1(BSHa8%dw}MDboUP@QOMY6H)$iNi>mRhsp)innM(_h23Ag4Lhmhi!>KLysVM z-%saXuwi&y7z}H90RN6+4}HRYyTf!oKQ9E;D~Q+kLmM7OL9N(YCB0HCxuL|_y}1wH z^A_m?%c8)~aN?I!-?%U~6y@DI3b$6;LQzWd+5d^_>Nd6&j&8h(sm)XmPcRpD&1}X? zs(-HknJ6r{(1O8MGMp_tEp#?eV+Zx8{;pfO5bUqUuAy06-O(2W=Rvu~Fm8-5~Da5`8GO}Z1K?Sh1T!g&nX>kfsdL=YF0LPj~G?t`tu zFs+m5LOBTYz?8H{^RZ}>7j8Ufgo@3F@YB#6{mRA(###r68=16$uImW%J7wUGAI<&G z?kbFXPWs66s24I*MQAFcd+-^}~eUIO;AgK)yX8G|D! zMhV<66jin0!Uh@U%sM9&4^v~;cOhT#`G(+ZrN;JhbHxnL8e#jhpA-+fVpUih^ClOW2?)-|uMJ*^$zC7~@I8dNd&nnWHxizWJOH}@AE+hh3ZBQ(Y5u_%X@mL* z!SnW^zLe$(d^-xw4--(LP5E8B@BH;IF*roC(3jF5@$)Mp@%a|{mI;^mhr|ofw1INH zZ7S2th#m0fOP{Jy=D(v;UswCm*#1ZtX=>@0ZY=nZKYN z@DO*YukkD9xS(qHgiu!5GAc7<{9c{s`-ji(^S!R` zb=}wd^VE6H?cICculvT^cCUrJFJF;z)ehbb4}@^?7oAC&daK#Xg4^OMtWUE?b#soe z@_i}g77@3_al+ufJoec+pkrOAV4{}~YdV9f>*y)`ypTclYP5bkWGUP#q(1x)<&^i_ zB>2}*J@^vJ6@6hOw7wRLVWc55ljsXZ@zEGbnS&qq3=vYDBk}nSX?!nq7uq2VHOpx4 zoT(<%%m{*$mpcX}f8kxJHgGfDR~d#s;$Jp-qt`sTN71{&Kj}zv1@^(QS8 ztpiu@isCJ-Xdbvmo-K_w{7xOx>nhXTo#{G$FxCA1SmA@JJ|=utH!IZAn!8@UfxrC7 z9MfsNq7xFv->o%6*rI>$yGM;1D0Do}!XcRM+MWdqt-sub$1)qLL%Se!*jWc38h1Xc zy%CDrH_^W%X=pTm3n{O@W3>_0o4o%ij1OugUphNTv?4UK?(AinS?wIq6^UO`>V}&=>SqLBPh@*=_gjSK{Co_f4-@3aC>vG}| z(}UK@LkxOIxG{n);4tYN z-;%{wBcc44^cemXX%yE^r+T_6uKZ>=AzIrT2DMxH8|0Z*ewFfcOgHc+Thl$$UN78o zo5R1qyAP-LdgJ?%!+amAp?E=cQ-AkozZ4yzlSKhm(!KC+zbIk<#Bx~AAT8t7n}SJA z4Q7yzBGcff(0HXD|KyW4qf@(Lw(uk6%h4H%UE5-ZHgC}7lpUORDHlH&`w;WgY5!94 zMwoS=9D^{uF4(u`=0U_W2u(vmpk<5mhrk9 z+>qJd17GLo^M%iy@r1^9nRzV#*o?GNksdg-)RXt1GccP)Uhq-h#Sg2s#S*$dsEA(2 zUvaUZd=jb|aMI@sgZ4q4w4aSvX7cx&c3@=fzj==Mq9d$0RDkJp_gcR!R!G_`poZ>( zZ%lkFoSt+SF{Gh#JKCmrk?BjAMw9L+yi0N5_P1C^Ymd%qU5dlkJ;R+qJIW<(U;L}$ z4&=0F4611oPHroK&U!jC`T9ucA6tN0+P@60yd>luN=Jnr?OC>E3mdc(F|wX=?PtXb zXC|M-K@}&=D+&~DojC@jdsLJ7!BL2yHA7lGeg9)ygy(z0aLT|HOGnQY29Qt6EYg8h zS&tJK@@4JNo6al}B4e=6X$Vn};y=8l{zas2OYbf(gp{CbA?@SSha{`Ds1n9kqFoA9=% zuk*rykTv{V!2&BKUik2SB(FNk9M$Kj2If&8zU10Y{E<;T-e2nt8>2yj?|}lu+8seo zVw|vj|2cS&eqgo5YhjF8Ic7Z|oxs{o#k;B=VXZTbA;Eo$pFV#^{nieP+V&~l>HiQa zRI75_U!z#9sT_}=QcY0WAE8rsIY!N}N21O%;fgF12%>)OcvU$1J`qn<>3pLkTS%)v zfk?RnoZU|dK9qZQv&<0#FZv0;vm)?|G(aBeHp2XMR6~4$=0stGFx5Pa?sHu+T{2UM zUr+hz)7;Qz-58fq{Jz%`R9Un4F`BXYf-anK2aM3w_hzFfBw;|nmK`ehs#|eE{(jP4L;$!Gc-J{eK zy*}^aCs3d2GR_-rqn7cd_bjoy+zTfU_2Da1_QNU52U};n;}-hw!E3q${+s97DT9Q= z`wF0HMcIVs;)K=?d6=M0bLWUgA;hK_A1;%&c7FF_l~H#vitfh38U_{5oc<8!>uiy` zcTn-E02vQdL^NYIn9aRF9^<)PauW% ziI4WC3b((L*9gstc{WFd6G=4QT07!PmWPm<9f2x0(lCXZQ(q0IJ6@{UuP_$o?G1x% z9n~@jhJrSEOy$s7!<{a}g~9g0z&kfs81xW6ybC}9&4c>!Z3KI&-$*xf$Ln4n`NhO@ z^l%zaglc{Q@%*B-J9fUk!28iz{)Z--LlF5dqv%q0FVQ=QJSMSY4rHkRYle9AqI)Gf}puY}8G zTeNvLsJQL*D|jWfqr1;e#g{+j;d;Iu<#>G+=9VYnh6eeWPP;9HUp$G&3+&M$<($yG zGX~WO_Ly0BQuwBF9O{M+NZjQw_#{T6lC;##1-61|Vg!uo%+X1IlaR1DoO08gVe2tR zn6o_$qvVuTw0xXkxjYn~-?^etPg_W}2}UjFhW%k3g*~6iTYV_4-(LRWV_*BCXIIJ# z9QK?)`NIpf_2fybdW}E4gLDOg8)csr@Z{(T=TiFrjs*Tb)h8~w=7yAAf&A7>&g5f5 zbLF&yd|Z<=ZhfOVX z*kkS2cwwL{1~NC&9!CTTt!Es^>y8ePt2ha_D=7K*6ey)SEP-qy4W!>Cy%k~w2 zc#7thz7h6`V0GAuYu{rPgDATuvSd3V}(H#Z9%hvq^5ybZp~hZeW$ z!DHs*TMWEbIpFiu^}_4TQK+VSmip+K!VB_(}y&`vu{{ zL>gCjT;+X#_+hsO)j|x;<9iIEy)}&welO$rPXcAieWdJp+Yo+lEqORe+|eP`g;#cU zg9+7d){o!JJB)J&d%_#?2h;f(bPt|BG5{92WB5ZqU68SfGP%z6;#C4t{$uX|C_Ys_%74k2hO~&X6*X%CRITO`Yd7l;X!g-h&lCHI*YOx?ILa$FY zNLAA-ra;ec>>yy?siC8E5Y*BDO3j2nRC|$ zUN`&%__5A7sCtj@Dt%EZx} zZvOmg(v>k&J&<_dxvFRsiLr?GE@4fef@+WsJn!1dS^YFn44G&cOVfYYlFBrQ~ zJ@Oh|-aOJ1J^Rvp8PkIgHYUASJAc@|QRBl_(fz7Ac|xB3!Kr7uL9crVc~8`GC+K{u z(?6l8zBh$CLhIHoR-`ZaaG1N2OcqYa%WZ@sE7^jt2-ExLOu zY3eKR#J@S!2%EHPE1cS%3;8V404#0b-+ax$fG{VF*?)(R-jRwD(gXZD%Jb985;5C| z@>28Cd6PSFP<`bLe&-4PO6ORhtt*<_2l8J>Q;mVQ8@%T^^M|e<$0WfWk`uf5U^$)b z)10-~W(BYDB@B<~JmRG5bl!ALFnS*G!1thW{Au#oHFu|)*d;pr{6CZfOL^!zA>H_0 zbjB|;@`OyI4gZk(`Qh>2(A-eZmC`-FN%_4m@9=bxA{kCTPb`>*5T5IRFH?=G10SCB}1x+&71{OlbU zaQhS8J>^&N-Bz=Bw4Iv-=&$;82Pck~y6LZyWa8Db&DI1NlK79(fNmG1KzAg~sYtL{QZN#A^h6p6g%uK)jtvbo9AR7IW`202 zP7mKmKYtO-+te zi=W8v*SL&NbT@7AE|5Q%A|Qg+pcka}ypp*Lp`_`_cH6@5YnzWt>*?<;e<459Aq$b2 zu?LfZ$htqgiKsx4=-T0|Gr*MtdX=Ux(@$)}X zHhmutSe*aG`5TbW*?Bsn@P5l(H;7R1S(0_1E6oi-NiyxR2bOUs>jL3TV{hJO8COQ@ zg>id5k(8azl`Qfl&owXbnK4|Gvk%h91OH@>5BDUOyk^%0VVjo&H-*mmbFYMA;*n%|w3v(_(ae;e;5Ef&2+eIets1F7iqjKJrdJru&jdeV`h@p?fx} zs+`fc{1>-lYZ~fD(4GCHdhVYaNiZR8kJ_OcPJ44a##24v%e6PT{aa5#b%HxG{4a7F zR8P=c?15bKLau2zd2aC@kj~HGy8jb_b9c!%YDoeYelrALp3~XI%;Q{_0YT7R?TKf~ z!Q8d0{+RO76S}QDIj?A6?0o2jOPBU@t#~?<^YevCq7moU-WN_kgK@HO5;vFryL@LD zmF=Ftrg>|ME{J*S{g z=b5Ya*>khvPGH9a@>D->!KG|Ej@EjV1HI6k+Z1~g+#_#nwb;QO?iB`Ms1ND#H*n{c z1S9E(4_?1s!sVz3qV+$181`{Gr$uAP^mqQ4)z+AsInodQRl!)fR+(2?MVf;7!Kh2< z#}`z2Vqm9W+}YNTuYKkQxl%BG%X{*R$S?Ora}a*c)aOg~*kf}^5Kin?=Jnc<9!xFx zUp&{9e&BZQ_=q=k4%js|h%25`4-IW6oLsVoyXO0f_U|;t?$YOe9IM4TTW8Y04dEU? ztVZjhF8E&8o0FQ~hQ@Ulj2qmYTe9UEo>N_PO#3d}^`y(Rrf?&F)XvPlNWziV&uE-sYKYDPHQ?uYe_xC5=`*KxRQc+vvfr8utoJwU9ekhT) zY9?hQ4I$5Ms^M66YA{z@8i#}jei(UiDA##tEM}z!BBbX?&i_#~K6M~pbXJ$cjAQt7 zA{1YjnRBWGY5$%@8HgLta3iM$<1qEN^ndPivN!%1uO5nhZ~E}rCcfxZ7=o8KxAQ}a zyp6SAV=UGC*9XJs>posn?u_~`!RSMKb6F>Q{45V9-zo{e z+@AI#1OB~!Ua|T+JK@Z4I2Jfz^*`aPs;u?)eXDWkvK#7fj4ds=1#{A+bc&2;mt~ft_dXB&Xv$z8G+jbB zhO`rwMeMe{0+y1OPL|M>gHDdSF6j2+n$*<>N@d(CtPDHZ3~E4>;(I{xu<3+%Ji5f8360<3nK4`Vc?) zsWprS{d?S)E&sue4F7{f%6JR;9L2g8eM7Gb@}pDnVe{WL;xuK}FL#hwUWbd8c)?69jWR?>W5KK3{3@vH!A>D=I@d3#R%bvC@0P?mS=9^A^y zXR*Z5AAz&_a~jTPC_5ks*Q&r>PDxhq_G{ZE?#338=Wmm{@($;s741E*PvNzrjw-No zCu9D$Zm0r>%r)b;nFK2E^n*@(aVtN}-WG-jgCqDSo}}L(jrD|0g?#21${zn6ib{>^ z{8C#F$jO8L^uRJcgzEhlQEt~jUzWeuhxAZ1CV!b)%(vCFqqB%mw6P21AC9xewQv9C zIr)4uTLL9%TNSFi8y?I4?DqqjU0mRi8p6iQKf-MU-P?AGWQ|U}g*x36JxhvbN8Edk z@8)zLWSh$#-}x8|Pk11)vV^@hzY5)Md*WTeJ$BuZTUgV{8~(@Y*c(sFsea1`r@sGS z)m$%AUal|R__X29suV-3*bimenq2-68D;MI)A>t3PE+d~mL~gX51x$;k!SPX_qb0>M4ru(d-5s?BF~nEQvQ&e$n&>dCVU54^S1P7 zyYYwk1zIA{0UccVLv%*n(q3yF$)C0o?^{o(Wbij5$e)VZA8x$Pn}mCyADtEM)4Ito zqC1?&o5S#a_9Z^foH84?h9S_poR=@OgXWqrsMkmHmOj-Z!i4b)4*OicL%er>CSkz3fC};a$sq1pcbRf^;IfEpJ0Ee+V$Wv z-J1LRqU^RAci7#Np2N_^3vGqVZ!RpR;Cuf_g6U}_rQZKB9?+X?Y} z!~)7Wq4!Z;9?6HSBX4ZN{ra5dA5cwX3vTm|6W`a-Qi1>GdD!7*cEJlJ=`9*-D&|p6 zpVcqiKIVc?@ z%zN?=JVc(8BS!N|LqwkUyU*Y?r;9vSv{}QCr@Mfb&mC`lgg2`Z$BlMZ{rKH~M4q+2 zhVi$0dnukNQw!x=`G}egZC78up4Rm(KbuhJ#1E!*SqpyO%8x&=SmZfeSi+B<_FtZ# zzW&a3c%vkJsOF5%pVL@BgWq(nL$yZ9XV{9R-!Xr;8$RTnXU9rE;{x3gzfiu#j+xPb zz0^PFpsg1IpY;p4 ze^l=&-c3izliNI}T!F7Q#B)<8UQpoYvkSN_hD8cI+qZ

YA&-MkB9tw_MLEuyn~i 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 Date: Fri, 24 Jan 2020 00:09:42 +0100 Subject: [PATCH 163/453] Added SONY ILCE-6300 dual-illuminant DCP Closes #5580 --- rtdata/dcpprofiles/SONY ILCE-6300.dcp | Bin 0 -> 1102958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/SONY ILCE-6300.dcp diff --git a/rtdata/dcpprofiles/SONY ILCE-6300.dcp b/rtdata/dcpprofiles/SONY ILCE-6300.dcp new file mode 100644 index 0000000000000000000000000000000000000000..53194d35de93762a1ee2ebe2d4d495a95f8378c9 GIT binary patch literal 1102958 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%0A7QCaJi<{wQQ%Z_P>8gt704 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≈{rW`$3|fH7Y&r-=hL8BNBHI`L+ULpVPVA5$sL zi?_r{X-C~)8ppkrT^-47z6a;n#Ap7ws7~rbKX&HXcG5ic&flRZl{lB~F+}zB4gE6o zI13$fTwA^`4N8A3>QDQrC=`SfXmBfh|H%NoOEHoIWkl{*C+NVjT*uWGQ_AO@km&ffI-9&MJ|tl z3;JfpP{QFn{9@lqA{RclK^Dlu280>|`mZQxK|6$W5j^f`=q{k&kHBb>GAYri&~#O_-S|c&Z~N>rj;afj!vEP zvkm3agfuK?oDE+T$lla{s5*iD%f%nE=59J3G0vl>^%m=b(=pP6dgdLci?ZM}RM-$h zGc7@Mtec7xL&&3Fu~5|UO-4VyBbsOH#QJUAnKO^&9@-}!3`&H2J`wY-pAy4161QfO zh(fn};^xvAye7_kxaNbfUKxcc?Gtd}-A%wMBWkhvwMg`aJwNI%0YNc zoY?dq+eBm;duw-cSfVn-;0L}K-Xt1^4_!qa6JNN^j)X;pw=PgW2v;h`t{Hj}^oxeA1Xf6NdLkD&rVq^^zqI z3pb3}kc8?R+en8;dSFU?5{x|bq=f5UaJ5aMH|u_NlLUI@u=m*Zp_@v#IvF;#$>VF+ zMPBBY25(}$(j0fmn)q~l7)##Nqq^e3E&4$)Kbtm^gj-xXrZUdGUImC=*=dNJ#rQ|% zh}0pem}5b1=JK^-!CHDHwHhH5Mh{%TkX+Z7A7pFfhrVqh3KUo3e^AK2Sbuz9^e7#{G4 zc`11=_g9M8VS&UMhEiX*qx$n5#=LeY#(bEIzIOh&us0m-UM?|nS`&l@9v+p>bCVCr zQi+Qj3OK(w=Fm~HwDy3KL%rYnwWWKPyf7+&zAXX&shfI*!aI}t9w)o1-p@;hH*;ub z&q4Ag+cf;(?Cx2EGTF+PoWW7l`SETkT(6|#6L}EkDr*s&oQ|i=8#_*D#FBzEdbJTt z9HrVB}uzf*Y$zGhB zpqA40bu8Ml$Na1`Q>=-zx~w6-*Rl)sxT5ic@!$5uNSXB|62ID0b9>P+#XC6yyB{T> z=%lgIWk3CPlgX{^*+sER2_Zg;_-e0e%7iZDTwIRBu3cwDckW{+bGN>;Xp^X4#Jc-S zG+yn>5Ncx2r?#iBd47OY{?H%c#Gv*Zu?vrGa?Z3h2Gbg@H#@S-AEnoPD#iJgk|JeB zP}76={@vMKC3%Vm3JZt}eN$iBeu5fJ8s_SnPjBxthH;j za(Pu8QdaQ0&03&DG>XMd&a5^^%vTOyVh)%_y@fAH$|0V|sx6Z6WvidE<7OnPKB2y= z=PYIXeDYR{6S1kmc%|$~7>sQaaiPgTPswS z{96wfzpJvIB;R&f*-feUem{H|9EVr=<@n>^gE5}mH}@$vD{SHmgTl%@&HHYtk|}Y# zN6rvqUw5=pgZ2B)6YRB@wbgx={L$nK_uviq8yg6!#1i3eNuv8tQ&Drys`+V(==O>vl`&OdWj==Dlctejc0o~D@aUJ+HIm&GM~#T zgBV4Wa5tXLIl@VAWgK~L8+h+{+DuX8wPEB%Qcq`cFU80$1Wl-ec31mI)JYG*bm~0Y zUN|kQa|5uEbH&lB);J&Fi?+NknngUq_X;nR5>rucdx_cKKg8+jD(krRyP7J^O6AV+ zI`>we$0@;6xf{Pme)YT;y0zrp+Y*0!<4dQq9?U(_Wz<-BT&?WQpcFhH7d}%}p)0ve zUukmIyhiDCRe6Swn`@9WYl|*pR0fXO(RX#k65T#(Qe7b@bLqiU-S4sKc;`so@eMzn z)IJRtteGP|P1e;TFJSZ#^5gP`>-;*BU*AxJW4F8N78OvJ;vu=;0~+ZJ1a&X=QsZXA zH|5CQc)U%co<{de%9LhtDB|6EcKcrCBDt_??k2553YA{BqVa(^wB0QiD9%RFh-pe) zn!Ge6!9NNK{M-OB%C&KkXvxpVU$`nda%9i&-kCJnL>WDWy9VA7i$C5I4Gwd*SDWXs z)V9>*E^#px?A^Yr@U4RnoQ%nnTKF2p|Mi(l zm#0zK%DQN$S%T8wTqG9pEa?uqE9yQGaABQarR5-Hz9tltN02w#@1(f8oOzq|)$AZg zb+Cs&_VC{Cw{;li9rs2~d!8TFbL5@luHh6pJZ-j{-K$OhIBU)Sjq|dvsgiwy8=PJe z+c}j!&Ys>_&iR|x_=E2F)gbKiB>z{}zs#l~bt-Q2%uH=mRurF%9BLFiuJc;=%Y!<@ zoF9E$dqTH6g86xv261lNbw?X#p#5kK)lwP#)ij!{?=pbA_yIKNyS7jCuUyBE^BT>V+Z9ODl7g6%jG07sgtBUZ#>n zU%bDwsTs9+wqjkE_uJxs9+3gc?%+sl+C&}ou9DJZ8+in4sIl4Zm5Aq_x@Q)ji&tBD zc;5ijy+z%MTK%zgm^W10HE1#Y77lZ^x6zo|Ll4%PJ+AIfO~T4LRE0UI(xzzk-Hh$4 z*bt=yXV}+&bDy&8tL_)i^WZ@05+AEmwx1lmE4x|WD(7^kOHxpBmb%SDR_h#Fr^D_% z`IYYRx;iy7(3U^g-sDwBAq6ji+~&W*5`& zY%|Zy2wB;+AQisL*`EZjRbCmTU?~4y-D=KL?1^#8k7nJtBvH{lVgB}`KWw(2^0qB= zm>Y3@{alrse5c#8o_W#PRdE}@xu6g45f4AbwTNe)cgNY62}U57RBMt%h^DcIm&tV@jI*01O0@Ta*O5$i%6?k5ca{XfQUoGm5Jf0~UQCl^-9=%Si>xq`w>p#W z^Po(=pE3uI+#7ZZYakNHwKrz&l5?ksUCZXci|?T7*CNsQdN!i@E-!AVh@8?a&UC4X zkn>#3bj`$O)*swumOUCMmSa}{)3w#@WH zElUk{R{c+UcGwer43m-HegUF3xZ(5OWOBn(%&PWtMT0Jtbpovn`@#0{GK{Up+UZ*p zH1H}wsXpV}uvA*qXfXmA+pqKcNJASh!%+4S(zT~Ppq03vr!2%lp@Dm9!=cusxhP zcEMn!ss22SN%^PCJx*z4Fc;+u*~?sUQBoYT@p3hH>vFWxk$N@PcTu;0Y^D;mBm=#V zl7IAHo}#cnI>~qW%-uE0pNuqEGoJQqcPJG*Q_+F>ZD`RU#bQ$mjxsMb(P@>!y2&u6 zuEPB$yOmo1ac0BMr-v_7l9}5lGR|-LzU0Z_nERWvg_CWSb6U=g-%)d^Zl2ho^F;{n zac5m}H5x4jbfxx1!zs$f@I5%qc-GrJNjbH1D;5~DcQ&1_G^@J-@6G=CB{?cj zTCRol1o|c<`z!803$Se_YqE+srR>KFc=LUK`6o>|`*$gf`7Y1sI!_7HUxJ4@)JYh; zM2R)b#TdqOe~$vC)6xYP!yMJYV1r^be%}A-I#!q!E4fy4v5xVqd2XMwD2x7&@9A-W zT2V~(vXDuQnvwx0mDTGraH^vQZJwN0ZkVJ~*NQXo&`ZjWpj7nceNkm$xnesa8I8tj zPFP`_~#|PqQFUN>+gzWzE`I$`?4Q&!9CWZ|9cPK8oNqK3SP;dF^1|!x`AHe z|2_|}8=y1KsK8yG^WQP8b%`a%F@bk(-erBAk@G=(W&N}7_D^MJ+nu;qm(QZ-OC@Rf zW}In2F7dUyN~ER;){R+TIbB!MeiY()6Y4oHyri7Ev;vu|qh=JGSKL15!-Su!{3us? zgyi7|fB(kha%GysLR@Reep6Gf#O;`e9`%`@v(G85UFO1w{gIRR1*Nq|Hfk}amDRhf z93uC;3eU+(%WF#g-WmAAzsra5Hx&KlX;{yEShVq)Qkyt!t8Yo@zwEr?mCag){m;Vp zI^{TX__2>kSh07rGUGD+3g2<>#=PxvlU{GnnD_NUlx_4HyT$taM(#wV^(}J1ncEk_ zNYTZ4pwB~MH|rl36OOr}Id`Q=V{cGj*ae@*RgUuu&$_yECabXcC-cL~`SGU^xKXhXpsw}hCm2BUSr_HFF=`vh5FL(!9 zF>lwr+e;VGbTdA8oDFTmcDltY*TK6RHO;;^(cRG&pkGg(!zXog;ggqRW-s#RXH?gP zcrU>h{ye|pw_;f}7f-vhH+l9+DW->r9^a`i$*+~{v>bfmpLsw2snXVV4z9Q3Gu`?? z86J^EzaZwc0~LzNi43f0#d++sn@V_1`Y-U^JlN$j->DRM@Ozs5KBe?7psp>y|Be>2 zVxN@&4?eGpL0grxA_{%KQbVA4sq%r`$=g?0>*}(Un`wdg&Rn|iP^xmMtuHRGqyE^a zbY=Hp4}=}kAo!)9VqBMahV9Ad;$()9rmpCn`cL=a-~ax_o8R;67~R$M0@(9ew`{&i z*Pu-q?y(1yYo5@hSv|!eeusJSGJVi)VH(fs^9^ft>ipv`xF*r2T8zA=PnxMSVriU=ZxWD9pjXBH{jodQw+B=K4`mnoOq z`;r^Qz6o2Ev>P7WHE58nSEAJG<%Up?WON zbzNrQf9wl6t2zB!*UjKL6n+QenXh$2^loDy&%@@QCv~0roWy`Sf8%6qJC>$wabynBqhI0woaak+>vVg+tif2G z=ha`Um+ehF3O}CbTL)W}9o_H(w;S>M1T`pozy3B%|K$Yz_qrOpPv9Nj>+8nlx_j$N z5zN^7)+y1=^en+33!d#xD|FvSY(>UozT+vGx{E{CqrU_1#POjz>$ini$a>>$wymzJ z@d`xxvIZ+O*Hv$tPu>PK|92SameSX|C4c^;UI*QA-vwCbNv%BNM!Gh~a^U91`{-s> zU7zGR*zQ8Dzr@$d`V{(HxbnGAzphv$W=qllzWw~Ze_o!oT+b}jappSredWIPt|#94SYhT#=7$YG zD;+qCtdm(j-`H@bQ2ecxg(tLgm}?u=@#!fv=h=1+8>Hs!e}l?=&!K&~sE3-CU||Q= z1~uxaCk%?Y!%f_I&^z&~G#|D+w+)KViNzWF@sqa2)O|v+%|$KR#O+y{*f%{J|9IC{ z%!wAoe>S3P0QocBmWk(@bWGQh!|nK7(WuE9goe>4Y=(#mPQge1+}*gRcx01|_+Z+< zthoqN5>SD;%17H8qSP-AANW3FT6|WfE{#F=Am)VHJBnlLC}M4R{x=mV8`p%RgTgpI`8@qG<2MK1Lbmo>e-FguPbSltw&O_depm4ol3M zUp{|M`te9?OwEG9j}SPC!D`>MBDANShfkcQMsPA&)RKFGRU~!$%o4O@%!;7S+DDUO znDGv-^r)`BYg&K?JSX$AUkD%leym=~c}iN5hz!n!j~C;<^DgmsX*Sewp0WLFME4q* z5Xp>pOCp3kIvoR8FWXo+39F`S&^?_wbKB|SZ$JvJuH)aWJWSXwP5wXa<{xGq#FC>4 zc(IB#U|u~DU>^sY)znD1@k`m*Fa{%8JI}Izq|6MDL}omB{`Xx_+zy4|xQ|I@HJvb#ciE?19pQY<7GA$-^Q>V)Vy!)eIL?(~sR+GjiLqnK^K9R= zt)TAA$wC3ov;1I+`s!d2CeUvjsqd(MG%Ll|wv0zr=c*-3N?^kHvUUDIRX?K`*GJKR zie~EL&IK4hkG00!ifYw!`*DqRdUpN$Voz)?c0|w*wiDvFV>W_mPYX?sSY(h1*R7$D zjaQ0S%8JI%@5-=ygU0;<-MN#NrTA4qCcQ)@$ke}+WdX59ZE?Gd1;tqtggOS89|-0`qzl% z{(V!qrgcIJ<8RxHM&i>1J4~kESoCp%*kNIfWzoDd>!ZciFP6AKoXP+CXM@uQY7y-` zns%=8#YQzeT7>`hxZ|94YJ^oOYIo%4sq3m%v@OA0#`=XV#;bc46l2UJ=BrJ+sjK=G zAdtRs#s0 zbYg5cBd8oFdeP27XF}0rmxr+TN`bbRy|p>BM3dRc7+u7=(tN0RvN8c{`T9(MLvdRl zi^(c|#iDw`^DuLaz2yDqRY|<}3`cef&u;iP#po~3hy(ePjo&Im-v{6Xd>^T6*LJGm)-34xKAF{n z)zh?dr?L=Kyqu&~aw^@8_8(x4S7xpUx zTB}nZ?MGxBpG$UCb?Am%=(aKUc>PTL_0NW-_-}9Xl=#y!lYAPieUf&H^;6T~Q$pKT zTP-TnKQDaD^SM|jqTQ%B{fPVs?<|Db_+*@X$UMz_j2K28Nzc3Nn>FYy0)EEe8J|n= zpw^;tY$RIkqTeuVD7ri(XK5&L4ijpNy|1WU$TNJXM`dyK5a+I=xeNXEJ$w7iD`;~! z+pEe!*4Gy1{0ys)DP7s;@6R){v(|RSVG6lZz~_~ot5_Smqbkq#r0zEqg|osm`t}c2 z&BX^ldrYaQB}UX-lvvr|yDRr|ejO4f1FVqNzdWD0O;{hb(&jAmqn$l#$Ei~f7oi&K zqvM0ut2^9EF`y@N1A`=WxN8Yk&{u5V=&C-kFNWzt+WFE1_0*^WbmiTw*|LXv>h*qf zN#otG)nKOqX#@|Qjt;EdHffzrYeg60L_B$rjT28gg`u|( z&-vlu;=@G7^Qr8wKJOt$k0sv-KXXa1=Hl5j9}MEz7(S(nh~Mmu(Y~C;r#@1AH+jJ} zku}01S?PG2`*ggIIdYcr{F?_ndA7qlrYqyPySl$EeT!LvVje^e37+#8cWR0nh5!L2E@dGk2+(XwI$IkQKx(LrrIjlCx34>#S$ss%syqv!}Rb?>^W zT@U7>@_pun=M2;*aoNb?bFb?CP3SvkVm5ndA7ZWx&CGPH?!>;C+fk8JYYjS)4|esU zOmXDtN{s5P#jWiLVo-7-LaJ&1<9ZW*)H;-TFKQll5f6PL;J|-(U){xGke3!V3mBWi zOoapSr>PUk`POBqSWo?zcr)T0dK!w2U&uqubK5tjrudsm{$~2{u+o>xLUIo)>8!ie zLS-~LM{{WB>Zdm=Ya4jN)Q-L1MJtqk+@sCwz!`mw9K|rs4HapV$Cb;J%7IQWctAVU zm>`Vkt0TK`e=_}($mDtc*rq&he2*>WYTrFsXhb{DZofzEonM53?}=NsIjQPHOUV^Z z-itwuJkQOdFvd`I#&wAAYFLB3^=aFYPqlUSNO(Z7@ z?|To^QQ|yt9fh9cdkpL7$It-W!BcAnPcw;~64!h!bp7=2G!LjI!G z^xJv63YClXQK_G`sU9$H2eSU zO~sw*zW?Xb!Tx8;2N zbS-h582`Su!8m7RAPTzMqjx|sz8`2JS`-lj8AXk!Rqe!KOH1qsX8&;I2r>5^d1m-b ze^;oj-fU=v>d#!u+1c%>PJOu{9k*!b-#0I)Ri`Vc_?o%m?U!oA>L>U%guIjkuBoH8 zT*pOzukYUb)YfZN1k=va)>KvFaS-oW0}Ol0RLKDqDe72>d=3we5J=L%us z^gt&pWgp;bCl}Eo%mE=L{PVxf#GMQ~^r%bzvh<0fnwbsS&m%X8uOu!;a(|Y)=UbW$ z7I!W$hCD17OR2iqg1t_XB=M8&aE1KR_lfCf#VDIH^$d2Y;AoRnY|g;&iqsl`JBQ+ z+Ih;g%W5^>{dmmyo*%tet!9~xfwXgFgH-iM=L~eDoxeK;s{XxG5kNb8tYYQpw7xUw%<-KC9Mbrok)bI2Y2wuV~gV>AXV(&DAVCy_(!fzN1S4+`&yZ7+1( zUE|*!TP)VqA%5c+XOwgDgvn*{XS*^6Mdga$+{H7ZU!8p>L)_lx0xu2gri?^kJ;n*w zN3ieYt`pC?Il#LU&q;{8*g$^8arf9O8?#gx=8}W4Q3(9z%@U)ITA;acFhX<3iQJcq zxGzb*roBVNxaIRPTMEXWV}_#gmD%VxI0V@vstRfKbc9yp8MC~n%=4Op$>hLw$Qmi` z9Wlijefc=3?U=4+%^`Mzc3zZTvGB_29CW3fe^qZ(xbtceO1rSPIlNk7{i`yX(atju zJy0iK-GOM@xn|XTHA`NPQyWB zxkjz|C=N~|we&e1)%TY41xLdpSx%d(lh82yq z$eVgiY+oCKh$7A|o1YX%CixNN5wl(+M`TN$eIhuUYf^Zh3^3QZejqU<^Ktwyyj99~(*J?4#9B5D`*opTVMXA`$G z|G8?^e-nDq&c_DIYR}YFoYixVe>g*x(&M3_oy`Mu>YP9EFrb|;EnB4CD2_)c?R@8q zq_%7oPy7jUiA7!1NA=@SkC>$o`x>en*HKHzn!aUeW%X3QC|EN-P95-GL{AL>^c6 zkY~*h=G^be{Tl?e{y-7;;k{}ispBkY zlFQrK;eCdxtwf$7+Ii<_gTk`;YoXB2l^%5}9R2kGJep9ma!lRATc5Y06Z7ZR*Pg0f zYOKbs)|J4WVK@Gkj3^w`WNEFZKeIa(v^1>k6`Du%TBHW%_tsS`|b0$aR-*7@eEn*TZ zGDIyy2iV=@9+~S(;Y^Iy8=DYde~ef#*Ba*!1S7~xEBbA*z|=QE*z4;i@_KM*Wmgb6 zTjq#0eHWlgC!XhCgGB9t)bH*=j-%*WqT-*Km|ll|ELc{2>dxfOPB1=B_@u<$F~bA$ z&;D;-H^0Vubyjs>Jf@x9S2Zr2vMw31wDYlxy$UU>?LaB-T1}}|;WN(f?$Oun+ILGm zNX$muGWI&Y?^Lxj;*m@{yVg%sXa0+aEA2el*Hv}1Ou#nUc|>DV_1oYC?k#Z!?bcs) zOo~T)`rb+-TB{)mtnbYEbHmzdagSJdIuHY3^-EYkio!d_#9toIMdv5s2q1U5rrHg$ z*p8UKhs1##I4!)XpOzNKdSp<6xIunJL)tlX)Lt>X%neq&gNF`n5vHS^F{ui1s@K;E zq);pNVhBDANEY{p+hMu`@v$qSM922z{yH6u%xS??oVFw%buh{*If~iqmSEr~?lxLY z6Fa^v7!Hj+B;7Sz=U+vRjb}QO8=7jodXdJH7 z&TZ}2tN97>h@qX$3$*H*K?zt&J6o<=pdMP4fD^QH&Bo^32joQN4~`$jZxAB~sn6%58Lv9xOhcCuz!Ij>lB+^fZ| zC%i9x^uqB6bq^BQdpWjGlqP!P*f{2F`CG*hFYc=IbEY)N5Unnfub6h;|6zp)8}Eow zcd3bdFIr6NV~+~Vfg>|RMO`;r-2NAgk$2ohskb%ylm9%5d%@t}BnP8*y~K zYDvtnA?rcoO|1$mWbnH(ulv@sMWH9}YYs7uP3qrQznh2QUK_q=w_J6`u{bpK`VXHL zqxOCqj|t2-ayDD3O|=PlP5*p8aHMK+EdiZa$L;yqSzWm~f%>;v^l@*XZuuF{8K4&a z%_^$Xf5stF+SeUWj^{weuacyce+S2~!#|y=@84(!FdffEfAz^u)_uwgW zn>M*3c~l_$^+wl?(E?8}`3`V|?xg zRq4lm3;T5m)7un|Hu8lR>%sh=KU8-^a^%qFm)9Orr!EP{ZPxf<8S!d!uXv<0)<67V zshWExpk)?&&XLCI(-#Tk&mk_lo}pT)VW^gi}kjG*7%H-UTL zooubQrNs(yTzIpe{L-DeSNHde!}ie#Tf(2mWs8g@5vW5uA1O@}CvOm|%YNzC znk$8l_~(Kc&UPbX#Lz$FF&oVsa-vqOZOVF?cD4`m5GI#gFoJn47iG=*!eCeajid%Y(|a6H9RMFrWQT7p3PK@_6hamgA$W6kR3uqpWg&A`n9+lp5UFOWxkUozhp=b9v9H>o zO(JJH%%kEOsxh{S*m9M3=kpJ-E;td<6{xv9@wUkCoQQ1pD`TH4qK|a~#<0Gwu{BqO z%#KGL`rOxx(?#Q(vGDe!ZbC$&h;Sk9h3CBal5kOz=eZmG#=clzk$H%*w1ij%)ls~w zN3Mwo`d-&XLgINIK9YAWbh>cwy9^<;^S=k9MdJa?JsK0&RAZPJVdV_LnBL5xx9CN# zoi&V)n&OV4zMCU4sNDa((LxM!b$~X9{FA5a2x~2M40!gc@BXT!cC|rqFmos8Gs>%4 zRxs!1KmKyHl04ZG-raP#`Fx7v=4*pgjSkPZ?ovvpE{C1A{Cx1;x=pGkk$2@Ud;7Jn zt4;wyu%=IL8Wg9VXwUll7xzRSnyMXIMByd#(&=V~>I<_()MczU++9gEznF-(oITy@ za#vJ+ors6*MVu|l7d`JL;#^hc$z@qWW0#1YeY6;FwL&yYNx(GbY>}}#5#$?>?~c^| z80#Xkp2Q;8oBI-x3&e!Q(OAUueCfnwVb?7J^SWvgTz{l^!Qa1dooDI8U@?1h0QT^^ z-)z!LtV-h!y%Fb?ejP-gZp%=K{`qd57Q#5#6+ZNJ7pB)2d2gI?uQPWIB5H`uU&$TC znx&1dqIeVRgtd)0-}EX|lJ_`rrpkW)&xgvFcjV9>#+a_0QvMRJ*rSN};IM4v@eOO3 zW@^#+OOSGlT$=82I%HNGtbAN+2gAcUoIk%(+2Bk+e6jqz`{L=%>VF)!Ybr1Y)}^Si zXSl0Pn>SA|Q9UAQ*NW_oA2m?Vb%@4@;hfQTe=IK4Nx}j8##WkR!f-|s3=XjtsGT8J zPfWs!`^<62MT&-PlW>!DT-+ijQDb!?im7X}(s70;IY__3KE|#zWAS7~JS^#x_x|lE zQXj?Q=5j5j*J>veqiD2YZP>I*6XEb89DNu=yQ8k~Y^6mZ>rLxr)kHV){C8s9IiB=S zSxP?A4nt@Y`%lW1%FD2x=Xv#;5}N6R=e)E12JTjD|2kljJ^ipYLs|9N4z+nVZF)s2Rl3^3^)d7R z>hqLVxi;u>lRBWDZIl5e_SjaJd&27%D6TKK+ju{)oPUl;&SH<~zrG0Z467w|e-7vW zwE6p}KO%egY=4xR)#nWlzrsXDr-vH8f{iA_Pb&u>%r)&X^Owj1+8dXx52BFeLtO1k#Y0H{6yv5 zIcL-z#T_x?{G-U}Wy;qZmur>B8yt~CzqFveyRvR8wQOh$r?7d7_OUHBjdggDGf25S z-WFy5bTB(nO*u(Uq;4a_u-Uk>a;}aq)@>}0lj-+VNWLOo6=C1grN`F1Btz^ zoR^YtzZTEx?>yy9ZX#4-V%2NeitWh+d|>aWG;NhKIV~Os-Lx>96{VEyjHRv!<6VN(b@Q6$9(1z#umy*(o!XBI4po_;ZW#lNB>>7mVR~-e*2W$*)Tt1lseHhorbYcg6#LuYI*g zC^}Q_J@Mz-PeT+lnRpn++1haf6>*9jn~X0;#yyqr7q&1kAnr(QsSN36i(gg3&@AAc zY(&oZCX>SuuI(;g=&&3?|H|9he7`K7lfR{AUI=#V87mgslCzQVch}6Sq62qoHjoSA zRT^`Z!{MmPnRw00>B^Qf@wmwEn7JxQu}@7v0sV``o>@x2%L&Lk!1_0PfU@#N0-ikP z>vqkRGad;TS5Hfxmr6?3o_LJo*>2Y0p=^=O-ZFi4&KYu;w~Hm8Fmvn$d*!B^qcDQK zCaW>v2S+n?)m)Oq>Q~8r#u zYBQ}rA#0zxAdz{my?LP=m*8)~ecsGzi2V*@X1a^=^(CHI?d z5A}o&-G0}Q3X8n3&#t_kg=wgA|6DLeFqb=Vucb2j7-KB^NG8fd`9F-wP4=RX$8zt_ zFdB_`?-o_CklQs#!sQLjS7STNuO=s<<3;w{)1K(9h9_Y+{aAEFnBL@HA{Gqd?$4dQ z1%s^;F_8J&)I;&cADt7R#%PgI-%Qhm`qWEvn5(_rsadSVBJZdcA*U{D%yq0&HnT?; zbV*YsGXg;tTFf=e(X<(-!^B^q$owRja{(*8u!%n2laLRow0x%)LY65_06U`V*=|zpX%@R3rd{u zfIqMMbdcPS_^!sR&GU{$QWKV%ER)!`{FyK3jIu>{#+qs0OXY_4HgFrDLr~2JvehT@ zQ6;mM+k8+e;okA-YvuiO$fNf1t^l4j<`u1WZqs`hYRNZ1jtHB@`eHBQvguFUrTn}X zZKy}j*-+g|&YFaxB*g29si=QgGxZ@~e`3%4$4^aWeiEkfem(rqK?-(B!av%lU(5vQ z?~z1wU!}!i6Bo&SdjfI`w5UHJTAH&k9<}arx1sww3DjF3_Kv>VIa}&b8jTB#HNVSp zq;vDQ@5yJ;e*H$N^NcWTV=WnM7AG|>VlKwG&~DQbX-qvojA4#($*#NPoZ^Y+U3s48 zey0wU8~Qi~qsdiSGijv@hPDhwLH~43Vg`9|D+ELO6Ri0)(ivUukze3_WzF|1)E#>n zgezxF^d|EhQ7;jfWGXcYAC}KI`fckdf1{ln)3*OocIs_AFz5OY12)4(-`G!!EA-U?AL|llMs?AM)iPSm`-oP?5dj3b7(HSe^dA@zD-%iL>p|O2{M6+h8Sga<`0TN`LYj-)~L7=iEg( zXh1!nU@cDes*Pb?m*H|?`TW_89IB!G{Un}ex7mC3+gZ158}UkSjSW=*7FhI!y5(Ur@wE_EIuuD7zDF z(TI6l_Z1CM(}%obAIsN+XRCFUUxjM9-_JhMwF7#JLZg`Zb4phaecf>0W9IFT57#xW z(>I3xpLyn@e2wkPB%J-oJKL?UR7M<&ZZMzCq)}3h7fIA=XT4nCUwRxyn+wkVR;`n& z)6OBk*xyhONmT<9aGN#MqS=?F)>Y#1mOgjX@KUK@Ni6(l>$oRa8Go{)kuZZff4lnl zQZowAxNGCrxE0<6MnK2;tD$E{Z2B06wKa5jX4ef4vZRK*nS($`X2@A90LrDr>RodJmKk<8h96V^j5Z_?YSo7uEu`Gd@W* zyu5Kei#_&?`I6((Wk_e<-hEpKIr|4W`&&|XcySYDqP+u(nSVM|nycKnWsjaGsN24) z2|94E^H10E{SB+cZgOE5{V@H*kw1s^aqK0$;p@TKKKd)M%v-B*hP%tic+k)o_HOw; z|1M}+d`%+1GIu;;TS+mkk}-WMF+hK2OAo&>e_qG^RyjtBNJ>J&6D_U}+Aek4n}~@W zbTFEITFQ1$z#iJr@cwhDurv;h+;#YESqXMVth>4YS=_b(mU~8%14@T058I*tWpYi} zbMM2mHQ^aN8;%`9j@`rH(WOw@t4@gI`CLMYHv7oQmJ|$3JA%!-p$-cUum9fXD7;N+*X2am2rlcw{ z$<3Jqbn7O)?~{!G`ogm;ZKb4I$vA(6y^DXVr1=?1=vG~a&JB-9j;vEO6Lk=GZb_kb z2?+J4K2!6b(u?bH$X~0&`=xa;tXV87Wa-c=sSO5=ibmWz?mWKejiRJToR8AsNOcLF zn?>M&FLRDBlVL>s#`Z-z@GA$Oe5yHC&uqii9(Y&-l)4zdOUR)}DJLL+m$nt&u zZG(EsQk)jgnOB%qFVI&UuEoX5tXnID>YHU~;ZvJ+%6+Zzn<+846Uw>OkGGncEs|M- za(90904Zd2GP3D+20ZtY!VHs9c7w0&H%N1LB;j`t9acz~j@VwF#e$|d^ErmUufx+J-LS|Y8dLIU+X^F)G$j(#_~$eFnquhXaKxwR zaIC2r4mTpNDbMk_JTsho!utCH{dU{Q__aC^4c>&}&Yzy_Gm@8px$*k4A5xe3?zr?J z07y-jCVD!-`i?L2lNQpv`S$QKTaJwBAB@|mwy5*T3uRp@$Q$fzkaWoln+F!kPTPq$ zNbyGFNMj|zko?=DeDLi;ic;aE1#IT}K@{#&Ivle`>SBMyZ@VLX*zAfl$MSQlCzE^0 zACu^ld4}7a(d$cC9}K9AS ztq}(!rAJTlv;CvK%aK&2_<{x8KKsD@{Sl?`lr{N#5Q5-5yCP5NmNB}|R(bh-D-?Ts;Z*g^6Vpo|0dtOVMaNJ`fIVj1Iv)#=>wHaf0;!E-!{c2@Awu z)`LGwnj@I=!7<*{F7*E_4eaHHh>`wSLVe!zQ_1&o#0Lj5bEJ;u4tQ9Hys^@1X;1() z6dsVjai_J^D$Nd0tf?h=zM7lEwSmgq_Cq0fJIDA`qPP_SS*Ki5HNWIq!@H!FKd*@ zhP1+tFmR2*gqg%@1Zd+ZkPUnY1`_D;7o;jlD_2uxnc0f8*$pLrkQA0B%Tk;xc zkH*(MSp$SgeW*KnWReGZ+6<5`U$sTQCe*HrFxJdELXD3!cdYeoD-UXDO|5Zv1h0Q0 zw+Xhy>E_fG`a4sZ)XowMiaarsn9`6oHu(103tch~N_z55P5W6MUpJ|=kGyd$=M?l6 zhaSoLg~Y9-*JAI>K&wA_UQ6r=`>{GV1cWUwI_c7Eijs+J{v{g;HUPj&b@wpa?dl}JrO_GVAKmu$x-V5(~vls@#&R&g-W zQNJ*|EixHr6PAVHxwapcll$&;moPZ>HbT$OVVL4ezg=R4iU*0^U{1B4hp(7>Me{HynYez=Ojmc19Ey|S-bjZh zr!1xSN;3ICbmRwHC3T*ajEL_#a)=$3e9e=PH9d@c9QUNvUlZ^(CJY@;RzSRQJoaoL zzyFd(s52oJQXF|bu696^6H)N!Nc$e|fluqg;W<`^$=2QR*ieg`f7xd~+!8lp{1NED z+4Px8c+k_6Ik`VltV*P2W$a_zSdIzFh0+rCHmCOR!h}KjQX2~g><#e1=P&!D?lI)K z{NWCh{b^G7Q`C3s=7y3c;ZoW@JN)x-!OiJQB)=i{_*lakyEHu|2Wsp#qefoqe)}|O zCbmc}b%OiVLgP7|$z8e76(0_*(bTN96n_$^8!`2P)UU#PM6D>#L-nyuM>*Ai7z+C2 z0-v4wy_Gl{qMffA+Ua}JH`q5LZf$nWyubx9aNS2A;u^1US(c0rjGdz5Lrvvl$uQt~ zZa2NHR6CbDXsj>(rc9Ua8Yd(C5&h~Xt<-Bw67~#cjJuaERlc8qYffR<`}UC3vU5DF zgTrtbm!y^hV^QW1hSr;2NqhfB;VtzQ8X5eO{*EPHly}7Ma|M`9(V>u^Y2dz}(vL30 z0<>q{RQy0{OAWHo6D@zq*Qb?;;p zeqf(4Td%pw-PJhO4rPP?YK$u-!;Sse>Lu-@5`!c(Xu=qGbELFtFMHGz!f>b5LYnh8 zj@l69a?Q|6$;9f1(r>G-E2X;?qfu0yHov@4I=YJ7K04MiE;*7t^S-bH>{*@6k$f1R zJEyW^5j>xrE@f9x6IAsLXTz1m_QeEKq9dZcmY4iWiwKTeaz z-Ec&uI;KW*QxAh%h;xY;?sW}$?(+Po19vQXX%~~hXsazcVyuQAi{~!<& zvAfs$t<>)wN-Zz;a(x?)*8gE2QOnmJKF12qYRIqX$vx9Xi;c?I&+o+kWRG8o#zxZ< zaVv|xi^UZ+on|D$fIXsuJdLK{O9Ecb(IJ1MpXNa01iVkxVfv;t&6v}1NIIs&z@bMq zw|mB-Zh;P2=dWu{&yU86G#$R&{j9OEjYRS+9UL}Sle&QsX<{35Mf5abo*fjX@hH{| zQ?S-f8&*?pNZvv};$dcO4cA8*`yicl=!hQO_0!J#VCh!I8rS;;TU+YTq&sWX#PkA( zma#B+&c8b=u%ObLSR5Lxh4$av0zL6yuD-7!_f+_ULqoX)) zFsV}TIW-7P7l$DC*8BX31Yi8<7KDpg=kotH@kAEmV(8Db{9iUMD0{^EE_ix=P)`Tk z=g!HS)lc%q?6E}=eTv4hciz7{%ngi)4|`*ItYxY#ev|vJ)AFWy4}aMq@RKu!z3h_T zYlQ>Cwo)@CA}{|a^*#PHbHq2R%2HMCX;x_CfHoc4;7pnW#^pR|6a9%r96_v6+(f+t`>2y0iSJ5w(U;AR zM#C`n`DexG2el#JO9;7fzNPCYuZ_Ulg`96D@751^@c;3*&b3s%j{bh^HriG>uYakK zdyMB{IrXglD+Hh_vESQP9M{{N^+xw60Z25>){kiIj$5qzhUuL3Np6ma@~3Wb&*pl` z%a(->dlq&F3pCV!-2BQ7MUR3D#+|Xkv6`-UE4CB_U$%yoOx>Rc&kHth?9U$~3d%Y!^K#_I|;Q(w-V`!6T^r4+nm zjq6CiUEAGIzneIg3kTSDN}8pwZXbi+-#NFnj@0kt>v;D2s;}6l*Ef&B3eIu=Ii1tb zoDhxu%gB?q`h(uPQ53vg7(=Jkl3T8f!0w6kIlWuUQTM~}h|lZ&_ulfVIy(GHqyHT< zQZ|}LZj3hEJ;|RXZ~aJ4l1U-x=wL5TF5-?hv2aNp{N#nJ{b1}AgvcAAa+eN17}_)t zHP;2p=ghpYaSC-ImpRF|d6w@z@WI4D>Lez)z+jaZ+$uGd_hvbw^A~EB89daRP>*{) z^NkCgx9d}O+T#f^d8a$a7@KFQ)i2G!Z zk~r>WbZl$2ua+{O4E}eQ`VV9 zwdJKFqj7>WtdSc#%kJc6+;6T$$q>l(k|W5G!F)Gx;+1W}}wLI~ub8l*k@S zQiMFqlK*eSo?+t@Ik$c=K68FLF>RAvRu+IGv~$*@eR4JOlGT@k5bSV5zHH}*?E`|4 zvi7#z^O`Tdoem_=#Yg#gCUa`A>o z=_`Ar{FK|g@kB>ztG~}rk#AU>>4Rs)pe=p1&*WSBAJbwG)P#M!y|v}pm16K( zLtKGTFL~FHXgr+3xz$-y88xENg!aGl##s(cAa^c%l`A!ovi5Np&Oc*ae=Sw6+ngL) zT5^x<$(HB25Zl5$GtK6(EXYkaW;nGij8Dt&+R$dpsQrEWt~`DPHLnVTP`$w?`Eax! zp3%->2dXMA?|gAJFA%n)8!JN(`a+!)h@uyrl;=hC?W`v|x(-st$iDDC>QBydD6i)G zBJ_ou!j z0VfP+tSx+2*LcTaV&DfaEobM#al!f=121ghd0sZTU%>|IHk1(?Ie)}(o?OtEf-tJIwvx8j z4_7ro*xjn7^3#BtWwdj{#XXcJ7ktsEZy@G68!I2rv4^+pKhADb#enC$XE%TR8#qU) zRo9nTO<(wH#wjg`k(+&jeYqiZm4CIkk9>x|qWiY*FQ#k{`q2S?aKR%1AIJ@92} z(Pojny9WIRbMeY<;qu^j)Sl?h`N6q$@-1Bic?j7nOx!KU(at?jlf&U@q1?6;>ug8j zsE1#d``8g5_lh_)-2?dtIm@4&pbqtx`||Xbe%#Fr!oRB*74P@|GK} z{_(}LHpz0QLCzSPvm8%?{N#*Aj_{1|A{V@eoa*QReYyu+9V6wYpB+$e%N@@qCdqj# z9g)Pnzq7CHWs+ILQR9Nn+h*&hpSMTia_Zbqj+LyUh(Xd)t8`yK=!V#ko7x$zLs%PR z*;6;b5qsWUG5R!)8Zphv+xc6A%6k9X?nu5#JnBayV>jXem*!G;X=!zh&+TQ%31Pl> z*v#1fcOVk!TP#M}>mQd=*C3GfZ_Y{mXkwLen^?l#3bD#vUdU}m2Ev0gl1*(&`TqF&J&mAP7YwIH z%Y+Rf^2sBP_%(YuG)DIFOX9M=`0{=}^py`yqt@GP4|F;lEAM1&_pu)Pa+b-mv6&;X zo4KKLM?1MHd9u%wBVKK()fe@*$5(0*CBIoLJ^o~a%HN!EqO1XqQ4=AbdEksH3vgR& zkG4^c*xYHOQCWfyCOlnS?mUN?gckHkcg5{1)Y3R5j73W~oZn2Ilix!%Uw*kk_6#9U z)+yud@7Oy(MZTc=v-F)>M7l_Nv9WA#V9*tDS zHJ7e_@`HWT+?fN8{w$*Bwybd>N8zC&@9L zsn2Fb4&ohl@?u{HGRn3rF!(@1&|W`i571MO07OC8gx%jD^Tnti+C zwG;axUmdYMcB;{hlI2+Ps=S?ZR*oGJ!{@V=`&kuC>S;{VsYAPgoUVH;H9I%DqP{D2 zHuGz0GF<%NOurpE3Hq@i5jaPTfsd)s+fR#vIqTml=JjRiS`@~~tbZ&f$O|h)BcAi5 z78^ok)74SXd?PoPUxu8pI}(Fw|7RvgH zD_@v8&6Z_T;`TYadcVL?}z7Ce_S~;N7HcwP+6)T6GcR)$uGIXmQFVFc$ zeYQ((7+%9kR{J_2jobvIXMERZnA=gW%mpq{vo$@2+He=a6$4L(O9MTuaey^r>h=55 zpT+iYjdFs+>$4*+^j?mlHs$?B!}HO`^?p&S;xgm-@gbU72c5}zPP`L0@hV(!fj{kR zv8byiSjX7GU4wH?`su@4)2}k0{^_pQn=pTv7E7Glo%-^E^--{Auc`ik$#Ro>QJ8t1 zd3E3|m(ywUo8fNbLJfXrTAA_2JK_p8 zdWtlC0X3zGHCugLd(0v>t5X?S6N5SbDrV7-}SP+WduY4eS3v#@{Jtk8^N5Hx!;kGx7A`n zHTL3qotMWFw{OBd(~?Wui9H zTMN74OU=vKa=|VKyca%Lmt!Lb2D2|}L+aCgKMK9K6C>TbpM2!Zl-Ri^T!_nUx&!k*E!)fbqP18 zc9x@#IgoS07uH+)%bkWf;H?Meq{l|eS@j$c+-f=61x}TFb|4Q7wSk5oHty?O7wUKxARglQDgtf37cu>ab+f&Dcmo(OFNgIoUf@p z%@u8fm`i6@)*R~R2RFeP{i|06KJ&?sN;|LV5vIqGC^ToEr_R$e`t6K~XJ}_r>KRFA zqR^fAoS4Of<;O##;7B{WwlkN<_lm?p_C`WtL*-7V!?9o`(rW|PS)-fWHh ziE*_vWAO=(6|zTa0JcpF#>K&Ya_D4loZJ(LQ$eHTmI>?=6IT}+-dvXUIl*gyGwQ=E!AWp0?Z#tL)?CDobp!y^$MgmgLF0sn!S?>4u)e-phN}TT$D~ z4Feqi$Pc{js4vGJl-5*J{jV2xnUuHl@WJkyWuKi;@dnRr2aV>*duL4976Q||lBSqi zAw{(Ffp$-fJ&pY^mvf?Vi8~6C&Dj&46N=t@#_RRNqL4&8cY2ww-=sug>JIMfy}hl! zLBBDCcK%Im`dWRXaQO@|7Pq>~v)e{uW*+By9*mfW!tpzacj3npIkF<>Cll%CO`PRD z%sWod&X0cE$Xm|@pxRvGW&DCi90Hb%k-hePRL1M4|>lv z{k!#yeVki0YkptfjQ0FH+XsVNztumK?craWn)Us^>-!zEM*y|HYV`Q6pYqV2{BIsG zX;eereujDSYIo!nj*$N{$JjobwoP3rKRRiHQ!iW*Z}&*Pv%w1Os=2|uavLS9&=RZe zxZ-^6{z}#q;?Ju)!+n&K#;3kFeh(|3Z&)>r*N8GF%%Pn%#v?R|WzN*b&x1#a2!cs9)7o@T%A~hPviKEhV+rQ z?hXZL=ezTI%FVt6Aa4PAFb+18SN-wTli;+t|JtMYf&4b^ zn-_H+P^P$p+@K!4+dSH%Sg;XuCE&D_-4YbxL+r@a$(0_)4G}KCvY|JKgMqWQ3M%*E zAF?nT@TfJLm1998i(JU&kseb-m{X-O^koiMvYACzq@(Rfw!d?A)rWb}nUib($)EQ< z&zH``{Lx<6dF@Kf%|jJGzBp1t5VZfS%@qCO;ghAl)bWm);w&(?=J7ssXWu%-esJ;~ zn!L!RQ2 zcO8{V@jYk5&Rz*J>Du2;bPMNs@v(N&N!~7`9D;mfWVYn{MnAHIon`lToLpubMQWzV z*#foX^Jm4-G1z(c*B$a*)iIO|J39wImuJ9NPlBEAuJ5B*)eC1HcCLakSzV?t}{B;PvKc#i?ooJb_A2oJprErTte`6AK$rt^Q--@uq?3E7s=e@*KIpI;~HULH&=2A zSoM#clULVD-+y(aUZ@9Gn$4A7RCcCI$m>cD{g%uRbD^mL(Bsukl&o~~qmRfp28;^O zz3&u7+K7V#-7lZCHo#d$zEQ2FIMwGI=1TV9JU45~KR_Q?Sp;XV)J%T1a|{Wv`MZ9x z@~_XLh=HGQ-L^o!&N-4YkrR$FJt21o*MrYMUD>BbzBC^^ozxK8U4BvCcS<1UeS;}j zQz1{u^`?o~xgKM`Ri2*dO23o?D9g)J{Dl<<`xwd9P{(!b?MwP2=F1CK*wK(5 z-n4m+Ouia3*P6v%)cg5h`H53DWc=KNvZ$53{vFOOccXx|-{ni{t;pD86ZNW96%Jpw zpjjs|-|~bDD|&4tmj)-gUnXI;TI;}pa-z7aTbS0=HKeu2ky18Rvn#ZgL<5xcV9OrAAE#S$W^Le=su0dytpH9l`hY9TMY`N zPZNT%zx%T8@d9sB+Z#v*r?PcF?ZBS#>;80OuvE7c@n^XY9*KY%&g1v*OyxH-_mXxMXC8|g9Z3OTeAeJh?S zxiHp;95SGRoG?S8oDxYHm<4+>e6r-)$!IEd18#ZUKyuM3hK?d1o;K1+V&W4+mhd6Z zY?CC{u`^{qX8%U0mq?}`iXtn#XXAZAqBkXyUZWp&?(I#99k|aQyJKGUPqXBa6ZA85 zLg=mLE6Kbs0dyVu3>D3{B|%Bvq-`4r9fy6A^_wxj7U@q>F1`{Q^rFR6zBKaNG>Jt| zds5N$q4EGtNk4Gs3LCs=Y3^;^0~R)vspCohBgL63K3maXRqzUYl;k}(S&|#_{cSs{DTw3-~QF8#;Oy&m?LoqcCTPVf~~^>I?iV>T3O3%qV$Z>g&) zzOxqkSzihz2K65F#R5CfpPNZ44I`-UFz^lhS4z&mjiS^wnC#{KmP;y-2w*{cCMMxDyBYJ& zt@}xh<{`gs38wFF2S_iS3LvkYK{WS?nzYi~oA#hSyxH@GB-_E2hV}KQ*Q57J+7>&~ zSS?@tjRBHnB6?4;-W0cCxujlVOKY$zwlb@g(==FMm zDbX@=`+}LP0ZKf%)lxcGYYv_Iz3gX*3E4@E|FLt^vq`ceN|scV9zr7%wn?>7zXvRX zrgzf>X+yp(b?J-TBaKOxW1s2=1N6SHZju;*7w||OIYIRr$)l}NG;lHUv}c3q&*VEB+TiCF!OK7mB(LZ*+I(?R`_?-pyjls?f z^#jruKdh(;_KdMvBsJY>ONm{8DUE+F+3w~}2hlScc`QiMy%Jo-uE+^iOC|RTqNue2 zbWXaAl8iYKO>TDJGKr%kH@-(xcVN^;F*=gd9?_)l1MK3Ip=8eTD4J=4{8)RfQ@f5q|Tcj zGFduwp=N6mHMMLl}-qukN%;OZdbr%ZU>#o z_!qj<%A%+heDy<}V>7LJG^MSFJwr`T8GntY&YQr2w0m*tFnBKqtTE3paGd<^%qS8i z$S1C@m0Om;&d)-q$Hz!{(^cqms6n%3X}0`~ZwR@(fM!l{fn0T;Kjpgw(&y=U@|4wH z(6{y{SJ!CynGKt0h^a5Njolzu2baM2ix>H-7|WlT+S0jV%n-gdk;k8~rh76s+7!QB z9>gu_cMlgb+&@FUf3-P%Rdyib

?oy!Di3V+}s4hvMSGH8k|sM(ji%CAitIq;Y=h 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�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,=f2&BKxI{@PWN}+7BhByZ02%Pos8@ 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

D^UoVWIx zB_GuO-#A+~d8`Q^^$y0Iqd8>~uGvuX2D6BJ=hckR=*GXoh1b->?Q%>r8KvZ%IiYp= z1x@0$Vsh|^N3|-_ge-f4S~JNvYfwd=QSuNj7d=tCRRh`9<~}Z4Q*YUzy_`NY9}Qjn z;r_O-{IljQ7=I4Lh(t*)bGwG7!$aX_ut{z|}DjoVmOQ`8Q5Hm?oEgKUA^y7w6=4RVw3bJmr>rer#o&7nHn^bN>Gx zluEwK0hcP{93J^wzObn>&egiTliN(KjB|P5BRR28Wt=}&mCb-^VIn=J3gjWc@=|D}JAHVJhp# zpQ~7}zwa&&ZJSlG_DBkqmx_}W>l@K=a-9W96>Ir`Tb{ABgf zinVkyL+)M_SFtW7er5bPs$zXQ@TM$=R>paV)f0L9&CrUkfBf`9es;Yw&Xc}Am!DFX z{?GTUYn(41O|Oh|U!yZ}SL@0+{~LZ(KDfCu&LyGyRD zOBH#&c`3E41F>yfC)sRNamCNgX*WiG)$UHkx};ju2>Hq<14r9 zbGl+Zr%t5&aNdcE^=q#qvgO(%6>HUy)3RIZ$~ez4JTKp#Q5okY7q83Ch2a&S(KUP^ zUpiYE=Z9gBvEh}rlyhDYWCNFkWeCEG#Zn{!v?yAdC zbs0G#2_~A5^W_-1+aA}a8fbi`y+L6H@ru628hwY?*fPciKQ1_GY6{je+U~H=2+;ig zU5X}sy-?dUR%5xGe6TEEwA*u9({^47>gW)E-}G7&bnR)y&o#QKEjwD>u2|RH-c#1O zkW;Y^Z$3u;(p0HfkLf&DHhP#=vCcccQLcLXc*XkGL$zF#nNYF5AL=Z7&X1{B7e)EV z4x1`-X8Hff`pST)_U>y16cYnmu}};QLP3Q&>x|uEUF(X41&DOa(B0h)A{c;zg}|IS zM^r!z6k7=!6ubM~GXD?P_jx|;=iEVtHNV-voog8+$%E=s+n!slOp`a3C$`x?YEtCx zUt-(r_s3%7bHWvI-6t+cKGsSRZw&cJwP+VbT-Qm-LOwb%M0rbR2fR01*EbvidF{yE%aq#O8Q0cTXxjD(9}SR>uY zwIA>dX|tn{|H_t|eESK$Y>PwP#tiPCAjNqe|MEE3Fivrvf5kO&)f*M(Sz7#wyB)2- z+2Mn#ygg30z0a;x<|%OAzECXxm9D_q zf6-jIos9zLHCM#)5i$kN<%at5F18Asf6vyG_t>GpdECH0a_Rr!JY-u(`HM6K&M)@7 z<<8I?!5`dIJg;(J-4!^;-p=I&sRHNH?WWwTJ05MXd1!E?Y$wfi{{J}N)J*0+xIM=w z>Mu|1pv7%k^a7VPeQ1XBx2$JF3;gLGT+sKK%tomh>LCG;wtFP|x64yJQV&KalNOn3 z-^Z9tdd%UIKFTJIc!*-s4?bq7#2M~vLgk4VME>Z)S#D^=8@)u@@t(!`6)JGnXmsFa z+)&_LcH5hac&EVm?2J&(+DC!2v3)!@ewqU3+5wpqt1ECGU2%Y0prgQ9E#)Y;v9ki_ z(tage3~{ae`5T4&5^nzx1ydr*OM6FZm-AWrW;|7PH`cAPHtt^U|c8>?gogA_O~HGFDhL7V}9p0Abb7>`o_ zU!0%M2;#(=Pw=oW?LQhRak*|!Fs9iXuV3cKEH6L8hugjgCf%0I;s>atSwI_$$+Fqb zjhH!uW_{kP$|`i~QBfL#dAc{s=iIytAIETP4bCeskEd8JCX&xmpNLp(BTT4n;&t!M?#Y2^a5p^F0NQIm#=oHqY2&a{NV%{F_4mabkH_jR4j z=EXx?qCIp&uP;WCSDN4+>x+w5mx?skHDIwn)s9q)M0MxyAtF5xkFLEJdDEU??L*R@ z^cu*dIp2gf)!!r^44KoC6)X+~$SX5KEkim2`}5FN8+9N%5Wpn!PPa(2wjIt9)z zibI$KcN923?w8Iq%vQu3rt6BCkH-}_?{KeXnjR}~ei`+c;nNg2JC^)rOkQTR;jsIA zSFC@gh%pA)_ricQMU3J4MFk#<6gbDNy}`ugC~(%XNMIIg|DS)hU(dvOD{%gtJ%Ra9 zs=!%(OM`Lwsld4*vMVEtSK!>Z;;Ja<|8Oo@|Af)GpzsxH#iK>p#Q)m%xwIWn6Rexsf#cP<78i5%{lbM=6wMcf0#v*YcGsou= z?$AETA$NhX-dY3O(@CUde3_}!s%U#}i!~lH_TCDd%}qWs7hWrH?$n@+j4}CbuZf=7 z9Y0oP9|h@z7eIA^o7L{I(?=kZ!kn9~Ug zoUeCM7G2;Kwdnu)jmp#pSv~s*%exS-@v)W0Z;cD9W2&6 z$MlK34D~xvh#y$bG+wR2+!wKE&icSu+E>FSfpl}jlu2_=f%B2aYN*dv;JobeKqUPi z&i(X9!9-bs^Ul_ZICM&Zvyfzf1sV#R57mh9X0!t5vIjFU{Qq*m9u2c$p`tj?FXQ!a z=Y=9>&il~7c;$w*;W_P!Q@Pjw)$5v5a=F`eiuk!hK{gljQGxT|PW?I6u8KPUXOmH~ z+teTY^I5E4euH@(sK9yBY{59h`G0Y4c^ED8N^XSyFXAUYXCO)sZGdNlH`GtR6BP}- z4_gD;9mtu%r2Kmay+8UPrjs-C-R~xXY6H-}E{SPOse^V+5FTruV&-SoV(8-#tQ~rt znU{SD%A>>4t@;h~DE9&m#z#U3>j?eIO4QR#b63wk7;ktE0lx9LKXN$sZBXFcJ7^*{ zdMa>!vv&rL7AnrO8b23~X$rs5)o=wI=PPio+5Ru46)611;L~QPlq>wkrCsKbQ;q5m z4r@1CVyU1w&qa}&;1;34`L5DnbeXTfdB*&^qNrlUdG2ttnmgStxb0^%;=9WmA{BN1 znNx0Y-^vv@w_CE7TR7ai?KLMF@|jZFUHJ36)M^WiZKwP%&dVmN%A5>uW7;#Ci}TMC z4P0^y=hjfYuG2_ntI`eV-z6>;YYT>QsL#3x?&D-^^_7O5CUXYGi3oyfHe9PgSI$xN!uYnh7}AFA9&f_3&>jhpNLd z=ze-O?r$u^JnMLzd$SIQn@(YkOA?YVTjQBoQQQ09H=Q)zIw)#K2Z?uTaPq#k=eLY0 z=j@T*W|vf?VwE_l%`U6X!nUD`p5Xp9X|U!MF-Gr;q;IiZfwPif7dYoDaE@)bFEX!I z;QYwotxSEP;ynM0VO*Y%;ymw)ua$LgQTUCli;!6#Q=DhFk0neC?XCX7S$ll0@erEV z{bT>vZ(xLxarA;q(5a*yN%eQ4j*%A;-OZc!08N-B=@&4H`UelVC`N5l6;MIF*O{eE z&hK+@Gw?@|`9tQsUj=5A2H=-g2MllFaeF?^^n4$Hy(~vOOTid^U;=JMmLWYO6q`n} z==PPkm^{O=a`7t2wNC=Rk#O}PKHt`2Oi77`&OMs3vpj-34Y8PRPV+t4`H1{ZyYW=B zuY7i(?fn-~tZ^qHyUqTmQz4#frM1}&h9?l}q==cl6H3v^K@rRG7W6x5Z|Kk8K2w^2 zS2q+s`ApViM6OZbJh;zTW@{Fsv|HZl3%vY2f$`gOHCs-dXMqk9^H2wVi=U$BYDGtVW zyz%Av5$0G^Iifp~p3aqeMz5t58$mi=cRJwu)e=ncCau8oA=nmo5`(G&kQ1SgZwrp& zUH>5T!9uM5RD|CS!FW)&8Rf-C@a{thaU42hoQ&CzEo=AV`;QnXGsTdo(*Ji(MDxOOOm)p_`@0e&&%u4XA~(4{?GkaUf1w>i{kD}xOEgcGZi>%IIO1LvI1xSxn@jri2~P7#-)6sIE?7@xM5qtp6@D>q)y&W}Y}b zaRt-A-zoIpL^$tCWE!8GfZAqnj1yHeA*RQ1dzTL`-}=Tx7Z;BNL-Zkj)IYY^>JfrFDsYbdE+Fl@0$YPdD=hmE+V+|` zX}*kqqXOq$dL^F~7+LqRcz#B*uz zVI%RCW^h>5ba-`$h31kQD6LD!?jEEcZPtK9w-g+rzxV##$2d#;8-M=xNh66v$XS8& z(LF6#O8gmrp68}iK|Vxrp4V(~La?p^^TJ2|OtZcM^IdtTW$7OjI45hVbD@J3_u#e8 zr(}Cf6*w1$bdqJ!{KcPt^ObM8Xqkfo=jVr}8c&+_zc}9=YQ-$SScsitJdiXdn5o=$ z1jnVG2-|U-F_ss?it5sN+aEK7Dho(w(;GEwy22qN9|1JOnfz=N%$6R8<7QtpdNRUcvU}Ohg_`#-5~G z`2Ibm&5mrMUgh}&M9}lig^hUrGp5ZpzS01V1Chkrlnm1(p7a&M5k~g*4|~vy;<_NR zUq(4GIJ9;%;x^BMRo3<3rU#u4o?(IJz8!c1O|?zorZ2A9B^Q3C7mX+z4YJ8*Z_CLkgd6L(2NU=wC(wSS+h$mD*QkqVEC3o$`foem7*R<+!^$LHF^rC+WCH{qfVg zf^e=n105;HIejP``p;95MStVJW24cfI1$-oSG|eBx@WQ2NA|SxXh`FukVAI)9w*!g zCw?QcpQ`u9O^0yglKn|ZiP=3mtnInw$ZT0uVsP7YmFQZTc3ME2-N(X0cBPE=_38D2 zGY82w)9%*+vago>!|kDXA$1L<{;{a>8t?TTTd1{_BCKH?nKU(L*Ydl=T% z9%ve~fw|&+7zeY7?`5?UGw#$OjE(ogzO~^@-|~Za8t#or%s$3E=l~XY`k;KnX~t+w z9%9U>Kfb4yu|2sTPiXgi`GID}ZcPr{ml5Z3PCFcI$i}nv0a$jYJ0?!bfOP3dt2-lxN6hf2iXPpH(}BJDB_N#JJH?<1FuJ*m~5MQ_nF+x za2zK)$KkAKJ^AXBWcN3*lW8Rc;}qHKt^W z%WVJf^%*ifD-M98eSYtM=QB7kblUqk78uO@ ze7p}%w5Mc|m&~YTWn;nxKg>2c%($+|g6zCM;_YS3)!P|3{gQa(Las6%Q`51Ca)UD0 zXH3(9RP0d+fxgENX4tC~WbX|_WQr=9ex=~cu}I1(dq62S70dg@!6CFC{LRu}=123K z7K3qZMp7GAqxKJlK->|3@EKO70cVZqHhj$bDFeMC+i+O0D~TyO9gYfm&B_>m(a$k7 zZ$kF-(T1}1UZnF&cC(73tfM>etCQ`1rmL)i_#`fqeXpyZ>|P0JU6EaG-@uu#C;e5j zeX56X3yDwt2HF3`xnfBklk1U-AAQ|WyjP!jxr2D&E8X#;q%*^R%Y_L;I}y!aL_?Ejxn`7tzTJYc zvo4%zzlMCLK`5-WQkm+p$=K8<0=7@`nEN@j<4OB$N4pd=r>LeeAvXb|KAdKJXcmm8 zzp+}EXL5*}@ehV?jCdwwXEZ9wURjgIbXgYJhTGw%`pk!FiXZ8DH|C?UefKcjB->%) z1X<)dii61RDD07$E)PHh*{gg^WLs!%=por#W539HSbE_x+0!QskYA1`PIt0ZHdJv1 z8N6%;W`JomL}F8nkZ!)PtZ!9d!DpOt@AH2Us7tfP3Zd2fuUXWxA&toFpV z&ZeTdn%VdmPW?nH9Z{897M9K@{@%rXL@Bp25c%F4n>9O#?xv<=S`O{2w)7MYFHEC( zIochYqa}J;oC;Ic4^s{1h{`UcU?p)R{*$y<B*>*DFT!*f|MO%H=nh91~60 znTUDB``>@aby1BI+rI;B+EdiR0iM--l@_OT_r$Ni=^x zoN3>Uw9V=7b#ByTT;$QHBimHeo*5Dui92L(ylpS4tqVsJ**hX^%59#6QvEC$F$=cK z3P#Wl1=$)%k?m0@&Oow>Qe8HQ>PR2RZW*F>7s`)jN!#p56_Nb;UMcPM z|Bds^(dCQV?@kCFP}5JJ`;7kAJY8T`9PWGD!P|qec-n) zPL>y*gg11~E6=COgjzp=a2AdDKbCGHLU5odjCe0Y>YS_?lgln zd5N#=@zFSxA_Se*?vk}|akxQo@WABRvIO;btV@c*lO984tJ=q7*4#L_>}@I!nh}SL z=ZT2ff1te6m>4t?CgVx7-sgT~8=ftnr^v?L4aX~bZk!Y>3!=H;Ph>|I9FsA3g7A}U z_unnD^K^$RQT#T~dL%dOC~0+)o%87scZlX>x{zI=;Vqx%EJ0_or9I;0^GJi~+oiwx z7`t_=W(L>M+z0U^X_pOUtj#FqrybaBzdS|FjmbDjoG^WRzBH2bq!_9l=}vv>EUTWB zL~(~F?%xiS4L3+cXLT=(op(moI5`1#yuGlN`5^Pujz{13UdV6i##J1TLpLvPBv=jM zUTDUlOvMM+XN=rbSL{& z%>-^QGHg0N6hFPO+3sO=IOXh66utIFVWcP5`)Vi>i9ap6 zs~;Cb{ocR?KUB8_aJrvDk+3=dS}B2?;arNx9E0$Di$BMNhrv@8f|JSKT=GBE+xZxV zz#jITvv)YEzed4%+y>5ZKqPAQ6VdA;%f(Y2u`6Mi`b~$^q4~PLWalMJ=i(*>L4)k; zT01yVXZp?!iAUX%Ol}5CTpU4RFuJcUzgp;wFwa2R4>}YJSjdAH}JB4S+HIH>aYk6cov#Rj*VI^O8?5Gj z(r(SzfGAA(#rMglDqnXw1$S$-i@=Sd{&q}9ua4RGX#15Xe*qY;0<2s zGgWnVBfG}xFPtY_8-WWwCsPu7e4cXBT`Ts?kR)}NkVA^nt)_cvufoIUaN zxGQdlwd3AL5x+j^q-5Fk;p${m^Ctb2ydGmXbR<4<+F5${z>ur7A-!lz;?3(ak5lVU zyi=6Zo^)NsoqJBZn-e`@U9^ddz378>8>qgpaVJ+qJVw)qo9N-%?OY%7rO%6qKkdXu zt^@U~w@weBeAI-?x*UY}$7pYB62o;_8jO*XLh<3F4p+LJu%-EvhY>nlQ8j5ROG06- zKbIT2fo3^PgP<-*xnaaxcGcb&?0x zm!NB7z5K>xGpNSy{0rwZ!Q*j$sRV1LNwK#fjQLdOhJKex&n2=4(?~oSjgv{A=vJ`k zTru%#`;)#;YPoTV5@~2xkp|Eed09j+;v>IBda1w9mS=bOq&}1@c8a^o^8UPLmMeaA zV`WiYXung5^lo-I%YG3DPWvL#F-eJ+t)SiI3#8Gr^mCysooXt|q)GIx`kYL)(Gyd( zT|xUhvVL}6a2Vl+8`EFP{PnyMlH(4x^G{hsJ0F^h^hEk=C2oPSA3QsGlLmG>ZsZP% z!Ke6P{KHSO*6ktCq+R%ZU0P*(X?|(}`IcFh4`fHk_bQhML2BF}TdEs?2XxQs4R4Vt zjrYYrRsJ~Ett03Cko3q769-CXZO&$p6sO)2r_+dCTtH_BWIIT(r2Av8M%4h+ikk700ICGH$5$z|~+^*xs0JY98JBf6` z-0I6Ev{!eSezqb}MP_F0jVwCnMRy0tjwJe^N3=WI&zmS4GQkgOq4ar7m?x{In)jYK zZ!GV=Q}+BV?P{#@!-2_Wvdq$8^a&$=OVwpEbHcJE%O5*(C&{#X6ZaSO;M9*R$--!E zBL5y77g}wrHJC8hBC3 zvV>X-Tx!}2oruYD9qO5l-eE;r9hBiJnWFpTQ@=^k_vlBF>n8f0^NAbCHCtpF?SVP;-5*f5UX&a|Ir?hSuUynm)XtHx zeMPzb;UZ(BOfRfzmO^Fm3geuwq^Y*v|P^g6)@xAUdQUsqCU z+Q%2|hmkhZz%ylIP7}{x3+cii*C}5d?}xl$?wF|KTi%l9k6s@nY{X{mc5 z=v)_>OK=eU+xs9eOi$)TTm(jYXkUJ=l8h+`gbwZdZR@B}{vy>Me!LIFucM4DtLS$T z&&j{xcA}&#(pS$W-n#y8MQg^9rV8a~*9;ajnY~G4d9MqoBF>y{afJF5M|3*)iJ5I> zgV`5tu-tzLwr)1Zp&(0qIm;lwGdB;o(>yI{K_ADH)( z;^nk6#+KK7kY+%->I;00gWD13)-uwj|1i*4hwjS7!=*T>H_wQ(AfB9S64Yp|EDNBz zb@XuwisxvQZ=OZFvje0!IM=_t>>Kg0s=4Cc&x-OZuW5%M%MBMYI>>x}Q~pbu3s(l{ z$bJnWE`fPo2oE)vg>R(Xv4;;bkH^TKP7FbFJ>Ao~LuHylq+QU>56=pvqQTU&?&R%@ zh4&UR4HNy)r0$C=Ue%0~8Tnxk;_s>)he0d7VAGGd{)lU7_Dtd*(kDN-jK`MaF2o^C zzBELM)%b3Y&{+=Xa!!}cue64no;8MzH)m6~T4LXly)ZX#VLKYz;Gc}Gf8l&NW-FLk z5{%yNjBArR;-6?Yj52n?XW=&^A)JS*N>F*R7pCcW;8BhQEjkmSM78RfB@(#zSb=RC z#F6z}0;#(U_9kJCdf(CB!)EF=5%7q3jLwH)D8M4)Y(-< z0qA?i1AV=Ru}1lU*tCeaQ}$`IPN_jC|4qB4)rPEVAF2f%r#<22bJ!`gL%+F`A9@F^ zW*tra@rv^2C%w0`ISI5w_L1r{-R#-kKfU3#mUycUdb4W8zp{e(V^=&2W@nvrM_nRm zW`7D}J%35ye83gK6QbEC*GZH6mlI|y?PD|Q957zh4of#*XM1T#VD|Cvcq87-23EI7 z>wBj&GI(v|HM>H|&;?71jA1*Ec!htu;Dq*Wj3QsHOMEo-U1JcVP8|Hz5?tL{g2i7w zU?P{`(bEP@P9x4I9Vx^Yf8llw@yO1TBH-U1tP*i%G?MSVxO*6DMce~Z=yS;`pUl29 z^hJH31S^VIR=SZiHdQg8Vh23>C0NZF*aQLEJ_DEnLqVj1MQlp5is0_qXJ>t4l zDrdXa1OPd{==ZUbRhIc-EPeO74Y|fH{!TjS+lb@t@Ez7Mm9&*9pY5Ab&-Ux%g<;fJ z+CK3PJGHk5{E0Vm(U)4bs~PFq*%AM3Z5i9DMR8dN(#cKiA=aEKLEp~if1T&_{-hfW zM^sojV|@Bz;!&2O$-o8Y-7QfZ>V`3&iGQ#)9{q{OD?DC;b@zDmz3h(Nwfy1+8xqDE*$uz73+-crIyLd(C1$&<zY+v%(t{0X@W5qP>y* zm1=WLC-H6SQD30CrLge>o72tjLY`N3mj(J9>l?zmntu)n?pr@u376qq?(` zn%v<)XKY#W1a=tlEOvSz!F*;Z>t^JQTbiV|m}|jSdJ#|L7}A$Np3@l{DYgZG0Sy>Gw4UB&NA{9$PC ziGJ?A#rx<^4B6)e!_@=Db^rK7brbbPdW{fQb@7Aa8!zbG8Y|wp+6UV%c;cb|IB^Vd zE-voiiM<^(#cI`F$mmaes_KKqT_{JmQ0xMG>0t4U53Wd!wt;hp_2Qx^N6cUNcU-5u zI}rJ4_M}bVjN^fJDETPCs;MrRJ~j?bqunsC*##r&1uR_Zj_Ym`=q~((srBy2zahcy zQv=!55yXS?U4pp-jaWMa54@l_t!IcS>ob7n_uffxf1VdB8b@4}bj|~IM6;j5eUSe| z0)wVZ)|TSah{N<9$v(omRMGd9KF23P9Gm>e2QSPdcbS;YiYwoi@`}v~o zlMBSMR#syQ>Gi14dG7jyJx0EEz;Fo~W_A#FC7)kLK7ahJuHsRR#D^qMEjYKg*v6M? zg#WrDaDaw*{bh<_D876$PfI+O_~%Bq64&?ViQ+@Vsg}!;M!-@7@$|VqVCal$=*Ozn|HuMg?ajo4Kigwl_rGzj zUJ{Ha=??Jqb4EoP>7Z|+J4fFI4YSfP!paTn8eQOBSA%4!JF2WC__w$n`?w$Js#QoZ zlKkyVQ|bw{mm>KZ%bHS*T|n`Wfvp*PgSghtb&_J}Twk{TaLQ$BB#6?FXIZLeSd*Vu zkIQ4ZyWUtGCBZA_Q|!CbK6p%i$#CIWHitC4K6*(o#-x_bQSybOjRe2;-(#yLP@TzM zf>TaU*<0k#OV5z6Hhaq+3h~9)zLb|uX)o4K^MxPX#SZ^;6R(N(#j%leFIV;#E1&eG zzJnAcOGb+C5U>1rA2)oJYKs?-^+UpI$~Tqt#S063QBq61d~=M%`J?DNpW*>d_+zry|rMTkV{Uz)b$_Eokci3+6PWE(fPrBEnFx=z8E}G&Ay%+SI z(F$RW>1;UMB|qboz}`}$yqV7Y*r5GvmNIeHQjAw^dV-Cob1oy_?sdM3joCncTaTWb z-)F10_`-yK*D<3v?BlI;p1Vt7HCIX8fu5U^UvjJJCO);6_?~Y{aMQNGIDd{W<{pq> z(8dwsRH}u?Eg;{bGhTd%K9?>bu1Hy}E4HCns2kOXtvXB>f2SFW?C}!pXCZ#vLiGd{ zN5p1897glxulw0z_DWVfpYA?RutfhW^Tl(h7HU|t17;7_iEB35;+*{NxbCY{2zuu` z!Y|nw_dj`}6EDRP@*9Ci(lI#G4Qf|iP}1W9(qoAuaHRw@H$H&bYSOqnBtc5gCNMvV zC%Yr%Cbl)0VM4sZ9#SN2YQ!Wj%Dd~OD4pArH3{)VVIAoXd+D(oD2FScTwBQahgAt6 z{pfATyx8x4pFtlWhpMDk&_(TPb%UzwwB2@LhvhCvQ h0KSgk`6@5SO;A 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 z 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 literal 0 HcmV?d00001 From 299f9f8c858b21f7cad3d6aac893ce11ca5d967d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 24 Jan 2020 00:26:46 +0100 Subject: [PATCH 164/453] Added Canon EOS RP dual-illuminant DCP Closes #5572 --- rtdata/dcpprofiles/Canon EOS RP.dcp | Bin 0 -> 1045590 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/Canon EOS RP.dcp diff --git a/rtdata/dcpprofiles/Canon EOS RP.dcp b/rtdata/dcpprofiles/Canon EOS RP.dcp new file mode 100644 index 0000000000000000000000000000000000000000..8379d9703bde2c9c2e9864fbc1899a5aec88771f GIT binary patch literal 1045590 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

}{9A^bWT!?C*-MX_JTO7M^K?UAgmHB=`}t&ku6B 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%0A$U%y=#Jd;Y+x=X_)Pd#RoDwVW;EJ_}7 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

?t7J=COa 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

yJnz(G{5k6z<;Eqe z9HqXw+vK&9m)!I&J9;hlkCn|Yr~%FfN!awmO0Ui2dh)bQ;+3n^8&}EwZjUP}qj;BF z@3n}_qd3#KT4-Ts_%b(c=Qh0!eNRVkxrZKozZb!>?&sfj&KA8&+nVGr-*vDtWq#S( zE`lR81ngGTvbNJ;ieA@43#@yB+oJ|>&^=(zwttez{sa8FGr5PC+os)*tn!M!Z}X4h z%6+tYr``#dq{l6lJu9rzAeuYaG+(9gWpHR!!=*>=naU-5e&(q#X}D*Vl5?oPoTPsH zFwaoh+~Dq?e7EKLHKo@iusX~>EL%P*^TvVCVMcRzRZew5bP)AmsNCyWTrImTSc0ab zmpQAl8mWZHOY+c^jGF3F>hLc)LS=eAXSK#;YItxqqX$$_H-dL6I}-d&Gbh#Bz$&*s zaho0Dq^_eES^JHBTjr9g|C|7{y@KRse0Fu}aN-HiSjlu)@gpW5YD`{vK2n)X9<0c% z?9x}qOsid(d-V5{awBKDjcCQQz2p6l9{rCu!SthJ{_^K_+c#-@=kiRkvr#y=<{IZO zaoE{AwVQ2XAT>F5&Yc?UTE95_iuWVLrGG0^1b1G`zzq1r>@-F1wMz5G>{HzA6#H0w z_y$_8A=Q+JqpVUr3@z88U6r1*tP)<1*-b)-5|_raI20yt4$M}L=JuCC^l_cKtyOY` zp{+?wo>Xa{vY`anyer_Iy{{{OaHpv&;S3%4QR&3odlh@-Cz*4qm8!y-MlXHBt%y2y zZLn12=DB(8QmQ-mGVh*-NS8|`)Qp?-v(8|7oeHV*>RaVxQ)Vvb^QnWTS|s{BF(tNu z`uVn1Za$`-vpA@+H3Q`CQSQo4eo+#sZ!?o8l1}bbPIe?_c4BWDI8gDN0&i*~tBmwL zVmj1}zc=4cR>j4;t!*7D&Q*OR1wHzJFKAF^`+ILyph}w7BOVMPcFwx3s@5zD+hXU5 z&G*_~52N0wOK-Tjne6}^{u}PWcXoP0+G==g@=qrwk16H0Al@qX=@Yu@Sxt`2Wh1%C z%zL}PDW;B9wgiUDWS<2lH#idKmkgKmz=Nh^7OND}xpV9G#&jUnDj$Zk%RJ?v6sv%r z7YLI%V=F6xx3SI-K5<#miQD%c`f9fM`#fr-kqOJd^1TckgU!Gn7rSHHyaas{ZoJ=|>ukEx zpWWzmKk2lqtlM$ob4FI5fAr{&+0oBl_}ibi6+5X-j0KmAoy)!Mt&O&lTd{M)Ddn_0 z-O$s-&Nq(c(dIn1%C);-hk~%h?l};bd6$K zQ@9Ox&}*-HUQv5q#45dt!r5D{zGlJx19pc=yCv@0fpJz@-Jja5Yai_@@5okeX~NWT zS{UzgL+Xc{+5}B11khiH%1_5x+HZRK!_-f?)-TmgSAutich Tkng+2z7$f4gnd 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�E zRUyu@yCJNlHsYBOOKKOvtx&(cp0k_Tu94$eL_ceDnsqQleK;1F@PbNqVlQ~( zgE2dJ^Mf_O&TlpDyHv-f{5yDkf)V&0-;8<3k1En>4b9uhefW_|XtEjL{tcG!^VnzC ztp|KbXB79d##sWtWxYG+Rm0rqYXmffa{6%Z;Ytd56-`fy4R{Xp6F!-u-njORjmmeS z2upBN_0{YoVs3@quG5h_n5oo-PGWZ;@Yp7H193K)6;2y&u402rWVC4>w0GV7m~IQ~ zO}m8B2&(~X$RYIL&`ooj_gvbrmphGwmgrEMKSOah~WLI6{i1Uk*9&ANhIh{tF zqppr+A8erwjyR9gRWhypIRA5i`81Aab1d<9qJ9ffu3?*jP4!2OF>>`Tc4v_i{T49E z%mP+E4gFC^{GQZ{EDHSjD+XS<@yNA~<0yv7=$A58tp@{8T+!9CoA zYreCHTW-`H^+wmM=j=>V@FKwV8vgABv-U-;J{G!#t{d472kd<~M^X2^k!+2<3pI9* zq{y>&?1zU7WjjPr_>(cr33^Du++4WsUD(xh{1;2|{^`rG+)r7eLqnaD!u(HMPcWgB-o z8W0Q|Z@I)A9vN!aAR2Zo-AV&5p%JbBcb-q!{T*k|f=5!_Ockw0oNpw@NiP9!_duM_ ztENe7uFL5F;{4_LC}{++plO*ns|91FjjYfoBF>LfY^2|!(chsr8R+ODje&oRC3@k> zs{^IC(cjHLPZzK^K{~GuI9*nlYiwC1EiO~i=0146Y?Cwv_1m{Ds8t+yOD`uv$G8*l z`7Z_1JmAUOkWaGR&PXe<3zCC;GU4e(=@fV9p1p@h-l+4^&3oL*I1l=eW*TX~j&9_N zxyI4R%~GwU3aX05zIm5u>1@JG4SnBG%kk34k1izajHGvFouzk=xKQ*4=(V~xk@mu_ z%A~d7RA}-^(qNm6+AIm92VaUMTj4uk6^Pn6Vu@tKQtS%`L({{_Lb696+^6NxPT84h zCDr!E-sPVfBgYVUooyhk`NxkwQT=zE-7Z~~4%-U64sjl}YqYd+NANcg=YzwZN^F4@ zKR}#4Ml6+d0IwhyaX!7rNYZ!``in%&6XOG|B&)%}19p-3Eu~=6S77@N!1wa^7gjD; zP>0Ewn=fl$)Ef9$h!pQPo>?@b7W1k8=(~l*Mfs(uOS_{^p1q^!%|6Ve%#g#gju-vR zbEhMnah_XO6zL{HkH{FcWkyZWicG}34nCyMJ`|mM0gb65@KHl*icDOgPlDQ`X#JHU z57dngY0(!rLs>r7|`sinQ>fJXm%SPU|n|e}B z<=9!r>y#fi)c5zo=LmJ+(bf;uqcF=ZX@tAD=_B=-CLUx`idpBo8|v_A=o-y|2mQmN z>cUFgx!KXwux5?==0fx`*P>|UF<&$g z`RiM%tAUk`yB9_)zP~8yS`1$p)OBq~?k%znR#JaxAUuqAD{Alq&z)8X_4uG&^yae{ zNz8+3+$!(FAcH`f46WW<2mbicPkZ-woL}`hDgC$$wJYNMb7&K(w1<*15$7XAK3Mev zx04~x5s!NpRk_K@3voVVa=B=aN=_o;{4KwuT7D37sQIx(MKq`99FMWKX*fZL(lTzTfRCPy@thb%)&OFQ@erx88-lPrOd}_?JvMH`{Mi6t5YAu z4)S4~d8ewzn$FOLc#AwUcUp5zqu=up)Ywx8HP`%XNF0`g^PgAdf22m^Q&FPm7 zR=2>+!lflNRXh#U2EfUO>myeuTq_FlQqm-&Pzt`etVqOeQSq!0I+0{r6kdz@IP`X{ zKddg?jaox`FbF=2t^eZ>YnA`MT>bkzPw93_8lM9$5aPVHqNQ|bA0_QWoacD;mTX21 z?29(qYZRTPUH^896<`W8GL+Twl;KYL2euK<&*LxS5XBtIM&e^C(W6v}Z81j>ZLF#!^Q9qA>j_@lZ zwHjENdP+Fyo%>wWG#9+V8DTWS=vYy%Oi9ju@Y7rvUL=2ud0AlyosVx_WMAV&z4SuJ zws%Hhf;Rjpppn$$A3u8kg#Y!1zvDc^=e+dpZg_$q&c?k4OHU8LjvL}UYnnz9P$#F& zh_mC>{*rOP#3Wl#OK+>Stc-yda5BCN)q%ooWpdgbgxvmaWYPA~*aeWG$Em-%DEBdN zay#%nJcXimYn1=-oY~G^7JYSsM&C&As5j`TkB-2u8H1n5OA|F4Z{Cy zrl6Oc8aQ6v`X%&v@P5;Yw(7~}J;<;t_>E&{s1>)dCk0H&towL%Zk>vF7-k~9EYx?< z;VnBb*iXhr3>wcUQor}y+sY6x9k)gLC<=x zE1C;jw{%4~4d#(WT``ZiyDf}7QpXfsoU5cZ$RT%^v?zL5?M6DiL#bT*LgDe}UestU z;;gg0&=fk=Mn8k8?>~O@V^n|p!}`p*E&YkQXfxv6X1>3)dWe#)AkOKnCDP5>3c7+g zm-g=|&5oB-HsZYhU{~pcWbBwA&JEV}l#ax`{2FtOE0qJJa$DT>3e>&&Oq%flILR#3 z&yyxe8-qu8&>HVCo+E7>1aD2$)m7s?q}OM=(Otx|c4LGTLcTN$Kd)3JO1I5|z7}%( z*zjf2GgThwBax%j%cR@DffK|M<}#xBDAMDj)G$`U)Jjt%&o5xE<1LOC>!*ob|eFmG)_@Ae}5AvzW`xGle0iO8owI`8sKA@*(u{4^#vEi0FuK{D z*w3R%I%NY~x_>|R7MRsZ#H~DQ1hc~qVBMtOylz`2m$_3A^0~a8lGVC-P`o|*bh7|< zr`&@Y0|Ol0I*^SG1;&otVz}6yb&|MKE%fbIo}I$>gO9ft`$wLK%~{L7*mbRd*3J80 z(nbSZsV#hq&efJkuW%Q7gPpjMpSMVlO?IJs*f)=lTPiiiZfQ_;1P!rsllo7C&SK{X zvU=Z3T7Q+CD$$QmJN!t}a~k@TtT1Z%BUn=Y6na$s(93vcSlxXB|DVgDwEvxPVffqm z^b=UqoPYf2hXN!0H;y#3R|ED2bDv%{m`#U0kUC)odg}&e{ja}CclX5ZWD({puB}-G zdcB9+aqmy=#})%OZn_eAHP)K>cfedP8u?_D7YhL9xeT@R=S_>4_DE=(C{aImOk;;I zOWKF~@lwkyHvf`}b~_<2#U5kk$J{6kd1jg79IMC&pV=F=^tTH3yT-U34z5nlGxq5V zv@Y>I`V6dMYdt)uKfb#eQ!3a_+?y*}<36<&S@(G04;$d4nx4TvfFE@Wyr6^AeA%=c z&}^6*O(!xW%(IaTDNsv0_BLXX!(Heo@TCX8blHKyt~7gSBvm^6hp_Rp;CGV_0no{?DeN>Nv9yrLC4|Ok~>ini#Qv=<7Q5IXu;f<^JyLQ6Wadc zM_-56|Bmz2VY+NS^v8Nt;d2S~nF{CmWhu^WFJm_3mz+$qFu(RDRv0a(!>BPl3RNt7 zA+$BTfNxL|%S12p+!pgwy-b!iK|ww|mR!~zVtT+=E%A&uC_B%Zqn~Pke#GX=V-^Pv zLt01Vhm0T0ViNSV@Y+|W3BM|ZRuXdW7_Ig^Vl+IUfjdp!V8$&!z}o@$=KHVR`0fgv z?cUIFO76m!y@Ni+XLyR)wdI}`Ze$Bw+U4q3mg|RS5WX0FZ=7Z~2g;~vuV{*~-N5ob zW5?eO`n}yEnD%iO(pv|QfQvKPp#WD3J03x4%3(}I{hU$-KP+>7Ho6p?OdV)_v_Bzz z8lZzTR6kZjU?$#FOn*bbRJnk}0 zF1v>3ORqcdpU!94{qJ(}X#(y+)D!k-HO@Ak>y*g)JPh;eJ&&P#Fues=>#8UfTs5zP z&ip9q=W#bz0|({<=_2=P$YzOpwuE)SXZx;W78OP*!?5PP-u9}P)+-rDHhPUU}PXUK9iKhBJ-!XX?8QEbs zR$d~qB<%Cnc}J4LflSuwHgv5+B503UGHVGgM1Dj#*^xcVZLOd z3*e#Y2pyZV&)Dq{87&89Xk|x=b%^2 z^|_T7YH46QO}H7qh?+10xaAIeOFkzXvkyl+*SXXASv-UHCd5$dQC|F~J$Tm)yZO%+ z^70Ab*-F7(nX`)jv~;JzV}Ud8-o%T|v8OgO2Kz+0ys;LzZQe2T;Qj%A9^B3^0hn<= zImGvXBQ(?wXMRW?pV{1l_F%?6GG_ySKGKc)&yJ=Wwz0g8fs%G%PycKEDSS}AoNju- zw`E{gUNBxx7K#XZH=!|~h+I*BSU6dBu3}EL3fc-krj(V96o4Ugn)_hl~M1U8Dk9H6>H9GsBKBd>fzw75Et6Q>k)Bq)yFkem`$3CE+ z(xieb=!ba<`s=>vHDt>VviiUb_clkJpkK-MY=+k-da;k=8}S6p2ZyZ(KT>VNdtz=| zssi6H(UR)}Q|)1eTye>ckMRL6+7{8d`(hUdIf+16Yvx z%VDnohTXR|uZX65pqW+E{)MoZpmI9nsI2=T#Q_R>S zckG5c2hzEfU8SQX@bW{iUHFe5{nPZn`@x!Rtyo4F{26ig*=Mit@p%u=_TzR^=$xZ>=)59{cWSMq4|~89-o2g=Lp`VJQpUNX+Qky+Ty;*UDFr(B7U?BpR2T;CCz;f&6umGV~ZFa+ZaG;1;8gu zENKh0ieG2}Z(rY&+~AA))(LgX2wjr?@*|xU5tJQsfEU2ex?a~%I@NMGADrPw^MPqh zaGTDGf8(R@0#E+OkG|>QzwwRK-L2S3@I~jIz>a()SLV1zL8I_p`;Ohp-s#~?0>e?= zzro%+fID|3hQ4lU$UhI3(dD=p=mmA*G2q&D8G;?*E~B{tI7ltuLOVBE!S6W&gTh{X zOUnelr;UPg;-GQ2KAn&F1bldIG-{+hd^pd{4E|YFcX)0?cj^kP ze&VcJURdi+-)Dgb`%9bVfD1Ip3%;3qn~{k9wb?7cAMorzcc9%DUk1NC-hUGG6USE!(-8JK>BlOZf0*Bdh-JT|7`O_EuIFh_nP?rkfEiv-|)&+1bceC4JtfN$^HB1-Q<7mExzt}on!o^>A0J0e@)y(CZvkYqGLFoJ zDC+MTK82@U@Y;`Fw2!8H`C1fe=}VoX;a9lWj#p0brTQ13^E0Cl+p{r{)@lck zz3h)4{puEf$N6-L0Xs4U_t9bW+ED?lqla?I3_4^0nSa(7)BEjkDO>Q^T|6a2dI(9_s@I-W~R<&@ebnix2lM%8jU`w$*^ zfd}|4=x=Y|7e#$TFLDR$`%GF1j;nn&pVZEc8YV_T54Hi#n*@#4)F^m!x1|v?Jm?VUe=>rxc1Nh1|J$v2}SU>{)xY#stfhYM17J5o#dF;Ks7MCycSN=gSPPFxHnUV zgi%hoJ)iUjnl@)KAC>`pNE;#)E0+%DXH?FG(`yv-i2u zm^##@%}4UnPoSff3Vo6X?tJWA8I|{sCY8++p41%uV|f&5E!xI?fMZue6Q~O0?7}PfgvKh$fj&=-ZXNgHZq%i=%T#kxVW%w20UEs1hmfPx zlL)=@n`IJe6$b6xu2D32$PjwI34Nt9lAiACOv4(21Atj}Wx!89{tonQQp3O-JjNF- zcBUNTQ1TrZ&qr@^f?qDYtm@hGF%z6=RSmS8hkEl?6J67i~1wtX zZd2k)9>}+LazE|}PUa0f?`dyW@aK(zhb)Vt=$dR^`5HAg=FZPMm+*Z$O3L{bNw=DV zD?0%D&R3v2+NmKKg+YIyB$8ymI#5ZOJ6*pE{NZhXvi$+=W!)$||6?h?0DJKRqiDpZ zX_Surg}qy{HIUNq0L2OJ9IrSNGYU`ooVt#2}dLZU2t*xHVs;Kf7XA zeH&)4DSj-g9rmq&v3GoYm|56>54;DxL-A*JGzmGbD|9O2O!#ZedRA}2?!d}%d==s! zXbSJ+mjQgg1U}m#tw4B+6ZtDY-mU{xK&4?U7Rz3^0V<>>xR*W7ELG-^OVISLdf{*4gTn* zGnq9ArbdSO{6l*e(q9(@o5=!RPlWy({0y!PIn5UU=dZPZcXeO>y! z6kHqR%|ef~59e)Rj{kE8Yfe5D6lJdqwWgbvk4%sO>c ztPYq)Co}NkqW80Qy|FK!8bcc|zhewqUaI;rWDsP`?Iyd@LGY}qkB{a@HbP4fdGhE5 zKVC5my_F1pG!^JI&_8Cqg6^5aULIx+t+ph1k{Vv(InGK72aiH=={>hNsG`RDk+gV= z0Zlc7J~{YrAD8r?x{bh}J4Zs_Z#1Reg~kzjw~Iv%bS&MAF075Dy*;2AP~VFlfG6M` z>;=tk51JGOjlp6^ipC7i2HfLvw~>_o7`e+el$;hA)3;Fg(8mYUode(awb3qgW(a0X zvYWiO%!Sg51L=y{L;eCea4I}y-}QLMV~U{1f_du_|A$-``!ZkP)7eEgna9VuQ37;# z&0qIrHG{AdC-?)?Y*aK`-;bKC@hYkIiBMvVYU}35P#c3U~ko4bOUpcsvUmh0bhBCYZ2s(de-ih zJDmp?aWc;1DeQn`u`mjli2DvRk>$1_^faOyou2PX8$E+aPrC{IaCD)Xc7b%+@(Vw_ z$b~9)&8JR}bm-9=SK1sGNE5vbsKq+uI&feTv+L7ULnR%8f9lRd0X)1?MeaTPNdZ6l zZ>u~h0s4&V;YWY3Ke)EcnqszTyYZ;79Co31+G5Jjfe<^k1;Q zlhnnX+LrY!QqG)5UO3-Y@T31wJ%hR!|6SJ&4I3w|-yXV=t75TNti$T*D(GV)%#4g? zF(2fChHf$Rt!OQ~xZ0H-9Y@VJ=M>wq!<8IS$7Z{IVFmau!Xu)n@hL-oxD{|1q0LF2Y3fDAi1YJv zReXjN`;W6D=zL`(%7>rx6P)v&=ZwfH$e%7(M$oI=UQ~npmvb7PV!R*SzUxcUXW^t7 z)|)aGdsB2u7!A=fqfgH~s5AU}+plX*XNJ4c!rCB`RsH1QDrgZ;45U39pYUAp>U(#b zPx1S2@lL?d+IR*~^4tgf9(J*}=?BoqVbA#3S-CDwMb5xKpPx^c_5(LS_}#0Hs?T1I zkkLKtDQEr~#%^R_UW__9&mfRZ!9GGl56s}K*0UeIWaPO7UYW)sdw~6jf)BXACcj{# zEueh_tfsC`pO0IHJ+%)J&}it%uVVIExh8^c44uShJ$I)U*hgr()t}cw&mnVo1fAZu zf;WHdP1#cs&(bWuu-2Et;K7u;shCruKkdaXgRr`se;pk_dmBg6*5W68wzoeW!|!ah z=_$V*O$)fo0XJ&4Gl<;J?c%koRP@6f zyCwB9ct>EWHKziox5-NW^A&bUM*71)dMV!y{BY)QU%K}qoExwAq}5i?XxnDO$84e@BQm6)~qY+dCz`#JdqbbpRjk!Oui<~-Vs2n`lM3y zEF&(ZQy_V+h4=0yCvNjk@ZAhk=s@8FZXxQHooUc2@0iYwSA>vvLk+#`zlPflPED_^ z$#m4<2sdhfI9>Kjrh6-Hao53DeT^IvdaD6{0=f--h9%S8Rn~luol2US4y`B89=zwY zDCh_!)5w(`{AB-Vx{kcvZjC4Z{dW}QlqOSg(q!J(Q$=qsK*!R20$=B$pit!l++(ENxiRj9&+g-;vGH^mJ20erie>?Vq8d zj?I5^n~LD^aY|0BqHl2d1(DdhMNq!=Y;N941x>(QuXe;{=`hUg@(STg2tRsHFVwu) zRsY|)sF2@9JEnCgh2b7_|8TPGHE^B-aS!ebT3z zsv|{Z{IyVMTqM&xFIJ{X2X;%DOt}NDm1(9$lFB2Q;@;PmrA?8OJDw-)Yozs>4(&L6 z=4vlHZB3&n3MovccP>ua%U01e=`t|P#je_-6H(L#J|GKtcWs@MiW*~Q{nDEVf=&MhSsVy6_9e5HC8FkRBEL)uuNlg|4!{NTH>@&{utxn)Ae77reg%5b%X@9DP zAH8@sg-$yK{1xXLss-A!?ZAi4L9XaCU%RhWFx6WDXLzenTZ|b|*BO{0%Pwmt?hl}I zFQ9*Tzh3Kj5Z(u4p&e>wFKkDg8sZv2Ey3PA=mF!k>7BVlCb|$K5!p&OY zBIW>Q;8VGVJQSv;0vn9kilIxXph%3Qak{8E;6s{|0^Oc{(2{;IS6k{DN19Ra1A`y^ z8$N|L4)^;z&RJ#Jrkz7cxf@?@4QJ+tJgp#rVTKgfD z%=jQ-T`9a`y}@@jUMQ>v_v*@-6q-^}C|r09?hksC(9sow2YT&2B^nA__*Qt>5?r1^ z@M!OB!o-JX?PBL8T!OFoP%GDB!Qatz0Hgr zRHW=2Ltm42vR`8r^t)6}L;3}><=|M|UKEPH=!Vdz78-*(*r`jeXmg}-l;Gq`CGev+ zLSJPd`ur7Vy^}Arh0w2lvj#g*!zRLT^xY9Hp^1?dvS= zGWmgQmkL^@=-pC22C)S{;De9{&y?x2S;9f^Ov93aom~e_Y#CXPf^M+Y0alBdTPcsc z(f2HKR4OT<3w9qZ@3Zg*DmwE~O`ff5*zZOv+P_pyMfMHEJ@69r^ib1pJrgm_3B0F1 zYWnfZL6n||rfTp|VxK#UaVuiU`3d$W#e+nyaXc9zpAWYgFM3wR(}xZ4WH~%R9E%x7 zIp!X+wY=CIv(J8R(KK$2kyvgYLxBc(_e!$ZFXL$HoD)d$Wix~&y4Ypi@gY6<(I4pi zkH5Y5UvVzAGZH@a2&IU1n1NsEAzbPWT?q7phF&V6bq4f=bKsNya-Faiy2KWS&`B^Y z7dD>(Rw^NteA8G&^ev`)5dN^;lIhNw z4~*Xdp6?H61<%nFx7R3$tyPn$H~cZ%DygcMn&yYtildGx>0}N3h6i>LOH8Ba+`A+S z+)3j8%b4Lis%h2gDPqm`So$GVQ=@vhSZESYp2w5G!ATaMl*ZFMr$jP&lPo%Kfj{IJ z_{q)>6kn~40|r(_hxfM?69&gn+#}4#Tkc{mQPCutg12*~P-u=B-s_1zg@Ujkkh0gOkvR0Q(Clsi6`Mn!b4az2 zS%umIeDjETChP+GptIkAnIGJl<$@oS9}C^)@ZqfLG|n@){PXe@?9Ef)?tt+Qo3fCF zxZ%!q(9oIU0@f9GkpHP<>f$Rf{Ymf^oSjU)THa=tpTg@I_1=JeU)c6ma=K-Qn(zsH zGf&H@G4wnihBg)7{E*Xj;8@tWmZER8f&xA!QTmr|;<#8PNwi56)_suJ#xjalvm{c< zri*PJMZ;SGSc}i`;+`Y1B&>y=|A;x_1k5=)LKk%W<1Eo@4fd$_>((z7MZi43L>GQ&==K=7PPor}s4OmCS zeBBcG?H06Pja;GO(+GRLAX zpXhIl&!3N{ynW8%(eKc>I~z;hP94Q+f~Vw=XlmK1h4}S%1f304l0x4?EbS3Vjj*S2 zUHgL>2$8f`4g6y6F19mRMn5f}2l~L7jk%&Ao3?)RvdmUkHYkoBweqGr6{AbdvfwE< z{O>rAPL>l2ED!7W7#YwNN@Dm~^|PQ@_qdLTx^JYV7WBWIYhr#{fFt20Q%_6PEof zfV!>6oO!Y)74d+*Z`V-@&t-i zbr;1e5p)5yTubxz;+RjU({f@c=|>AO?LauKYZpcBbZtZraEdLVpL@8xiD-2og3ipw zY-q@L_RBYtvT8#q>fkmOZXu)D*nha+?Z{kn71XS`AK89tB>d_TN2w;>bOL_#XLW#E z|2*}tywR}l2;m7hk^#UHyyj;Mx|sQ_!(7zs<6%K(S0HBRX_P0_2saymJKQym+>Tl@ z;XOE{+pt%?=gOKvyTAt8H8Gv1Gh^@^k76zwlb6YSi=oMe8Gh>9Rji1?!|OQm^V7Xd z`7?yxV*Ymf!g)3pJ@`0q`r7w<#X7GIr@+0*RN|*6Dxf8$GdUR?8FTT08R}K^)Z86= zaacwqT~?^+ky{7Rb6+GizMBLs{_djUP$cc_n1pxDS-j8&9@8xo$={`mxDoTEc6m6% zZ5&0%y&BYa=$Ya2Z z4D9%x6@HJP8Q`Qzo$}aSeD6zg18MF>d*-5m$GwvujUG~?-RuxYV_SODQuxsiNlc>P zOMl0iCQTL^LWAf!=FgR5vxHF0f1G<`kLG$*a4P}V7`PPQ)E`27GwiUiZ}orTz)F4x zkSVmmLp{&}j|!y8uHZ;k1+yU!1E~-^g{~HJnaL68*LkE+?#B&`gVuz{O$}uw9$`mb zhfqMAhR!OlFtJ-0O|{XGuUReg934(41@zQo48+~ggZhd3ZLr!xJTNbUvYx8x?JfuL zAv_;#{ng~4XfGOJcHvW&L>8W%MbDTBx_mQ{di-uDP8t?Y9WbAlPO}lq3q$Gm?KnDN zWG)W535|4}SSq^TSgd-A-{CX-3yMrc5AYUW-&9h#!b1GjJe)SbSK4>Ju^0**`+R8q zu#ZpJzQypD_6|jDx{}2M!!T$MxN}x!%!^adxBx$Lc0Q+FYZOQO#(UG%hqp?kZxX4n z^6xl%J@Xg#4M7dC8QLaimkH0XA3O?NcaZUEA*(!)7HZR|G*O53b%5popGL=?w`ScN z14DHzm0Fs5Fw@C_q`_`_`e+$5eTJFR1?-j9EnvG4XX9xp)Kr_#_`T53u7Q`aUm5Fr z4>N!T8VW7H&Sn5hVA~aVm4+YKTj17`(Z6(`Xdrf94)0N)WbiI5#P#@lz2K)gbd#MJ z=o~>KC#b1xbSrTV?)<^RGQT&x+;+z`bhcPSh&1oo3#tvFsqok*6O+@E&VYDhpPTjxji_J?hhuZ}2 z!|PX=0$y?#G5gs2aUN^XC6bJu2U5Csy&#w?sONq^8r*M(_Uo5e;tRZKAN=Swz}yY| z_II53eTxvbjsRDE3wTw+N+By8^B)Ot`}5BUEh?co42^4FdwrJB1^5Brh}KlM18^Mi zzkpfEq+zTlbPQHZOrwK9d|@=a{X&R{wV&ccC1TBbb@ z{j@v{O|id$`UL+jA?7PFcqgsIp3sjv4o>CyN;5GG??^M~J!4+I zfswF`q0GItY&Xu*mvNZSchwauETOHDtfX0o3`84E7^w%LA8GTQ`ArWe{pG+=HapIi z9|tcf5WdJ?6InRkqpSUb$Z^hNAsqnEuh_@D?U$v!^c4DajsNr}0jCm(r@!yP9SX|g~n5YliK?+E8GJL(Bs#Gx0Bm}e?_Lot=Sdv{yR=w}m!4of76VUpHkz6@ zJJ0&zj=ud{MY+!RSxg#wD0{@2f5w_O2qWoz=#aj<$y~u-JLeJsUCSay1>uz4ER-G$ zna;WcvuXuAP~p7_p|l#hj^F&KUai*t#2(;=!Jjyf$Nc*p|970bM)HC=_9^EO=XRqf z3q3He%SW7NhAb5B_#!_e&L3Xx6B?`ypmgMoIVpGHcNRdYER}{WFkrsf0aV5V``XZv zEyi8>=_ov{8cSFq?$9jcXH%VNtR@3mPnXcMOiW?Avx7;;S3^0`OPNO|=1VoGljj$( zim~trP$yHS*#YKrDU=BP$gT^=nVl;*EK%s=bT6_mJ>V~2oazPS5lZf0kJ&tH^>J?XGq);cwiUVe)vN%B_qaB~nncZTQS zl*8;{bO>$oR8sIt#+vEDTO6Ei%l(H~BKBzK;Lq1*!!lM`5l*i>Ldmv3!p?uj9-$s{ z$%>sq@FzKS`0Ynemrv0~y#kKW@K2okJxw6?pE!Sf*+npH7)s@cb2EvvU}F+Y8pOGs zr;l)E0_J?k&uiK&6rNxge3OHoTkj&FU?O}{1mNTgE(%gj0CfkB$R_u*pvHdfJTNBD z$2DOi7h$G45Oa@?o!GwV(7il|ng5=FY?3$f(p2bRxcD&_@IDM*VmEz6!=k!}(x7`5;q z(2ehlSr71)T7ZvZ5}C;=FmIHi#&8N#Gbdoxs@ufSt!XpZwJd1b1OY3vZ3!C^1W(mP zO3IC0#U3Nh^MGeMYqgxEyM{wYIf9CKCCjZ1r|=B$#DeWuj0Nf$Yj_#fEf(_i6m(O^ zpIVvs(wf!8(ujsWG!TCDO+O}3)_>w`M7DynUMOi1=Yn&lLI`vzy%6WxF`Wf3-~^T- z&L8T=3fq$dh(nx5)TIa;1_V&DHkGcItrBJhqaTuBw;~)6)}S9hp-rKAm#TygO8A9Q z3M~)(EObUbD>#jML&uB-qOTVx!pG`U8>Rw()8;8^j28Xa8fb~+L?x5CVk9$J5=zhE zg*3I3FH>V)y&ytO$3o>S&j{RkoM)R2u`C?t`NbDtymb^zR~bUK_Y%m&dlGY)g*b;} zAKj`yn>-GBEVpB+ch`Qb4bF_;uo!xg-=EC`Uo0pmiaHfeV%sN#&?M{_?fV3=7QjT! zTMJNqnGfrTy2T!6w}0<`Yzp?gZ;pW{*0)x0>K;j!67W}V`3afL6m-$hpNB&i)BY3Z)2obxCG{b67;!$!?rW`qr|pY4uh{WLJ0CsBAjElTm4)C2 ze(p{wu+8VX386jUy<3(_$yQ^88{mZnxTjL1at-}3WWp0u%&Ep{=v~v>LO)YrS{@{mbjKGV|5XURm!SubZN%;)SF7KsX`G`a zdwVyOQbI5nf)8Wdhfu0HkwoJ*v}5~$C04>8)J3N?`;~y2?PUTr53yhmfqQS65>G`V zblEkWlgl5VM;Y=>2*nQWdw2}N;F`Uh0-2K9U}pV+3$0U9(P?|urVe++Z8u=AtJ4v{YSDcH?s_eMg*K z?p<}OYLZBu{uAd>9^bTWeuV&|4vm-HJG4E(8MH;55B)0CjsoxCC%C=0I+keH`T|3O zIMn3tx~-MUZO+u$o%xxugPg{jbXRR9^4q>zqnJK+WPv(Mb&$vc=6Jb_nf zcno*n$*IC2>_a_9Y2e|j7EV8hmKyr*E3dKys=&FzyzWNLI$@UE7CiBaoHto5rt<+Y34xvKCd1DP}mjb`>6mdTF`)=8MNAw_w^PKycWdR-m)B|ze znrK)SR_9Nx5$9oBEJ{O~Vb6ko@cQBY?pGrM=uZr8q9nssh$}ETx>FWG<|6n_V2dv?0)&lT6!9L z=U!8wU*yqQ8Vg;8=9tBWG1 z>1NP*Xd6d5ZdTHVul>OT;Y6z^T|<4fZGHu5@=jVEG%F z`26cfzeEZ@$^XRJdiF`JmhA53FrA>3iZ1hAg#u%X<6?SntEcPG=F^{ zZ7T*I>De}E=FA|98-N<`c!hLLYA{(}#JtYnmDCX2-pJ!M#5IS<2APU$PPdDmJ zxFuf#$h=D&9qMhsSsw_1_CgGu`fS2YxeCn2*l0Qx-iC{*2L7Q~MX}Yrxdq5een%7( zxmCg~(S*}h?6o~yow&Eh(1$`l=!|)-bjk(XgJXi}6Dg$=mBI1S980ZEJ zKaAbV!$;EQAwe{q$DNpGz@0*k7j!n60t4*1L~%8fh+y(wT|yvpOac4tE=7uwmivog5J zY2kDfGf<=5N-hh%iRF0gGS_wC(rY7Wae6TI*}6j-1%EdQc(x}KG9;#^akRwD=U+ei z50f!#`A?jyrX1Ba2d;ht;_UdrNW0}0_{E5G%k}l8TN(z^lTzSvf3%Y5w#V!Uao(t| zkUR(faX8{U{hPhi12J!iI9sbcrTy_;+})Q#)0WJU-YW%O7xTKTge}sUs9jrQXJ+GZ zT6$?1xLOhoZCd?C>czo#33L8R-Nu|TwCUPow*OSpf}0B*?0VpktG{*UhNHI69109f zGI5dEM||9sM3Y92G`d3^ zRX26y8u$P^R~AE4^t*5y=LOPxzi6shF_b&@4^QNtiqz)=x%VaDalBMe^KsE!8RGmr zMFyUGFcl5)Q|s4Lx!+O^Mq4JDPf zm4B6BwlIlLVzz2S%+|3os4=%|#|)q{hBee0H&^QBd*pbr3V^zgWK(m{_xpdX{A z{_l#Uo6)yE0{?fUQ?Yaf>XVzVp+iz#DqV0rm>g>pXkGp;>9p^Gw0~7R-OpSn-5?8~ zQFd{}f6tb-!Jhx|o*0ThnJeuZjC%)qT&vp(Qj_dpGP$mz<0EcK?YD(OhgCsl3tvgK zDbTk>oJTBrEX^>CqzdHg3-vpsoK!{yJAx@Qt*6v_7re37`jhMaCXy_hIOy;B{Od<= z9i2$${uAf0IoGt+FGFZ8;(T#Mgtkc~^p_ClK?QxZdAOt3A321lswtG@6EHTie=JC2-bAt;mJ z-#uMMpDfIUhu|vedxg`2LHD$gq3{O*2Q}|Yu(tY?f~3GfF6rH>th*yTdz<-CYxdTy zQ(7Xe`A?j0y?Lc=@#2q9y6j?sHt+)U=n&^}&jPIhbQLlX=kp$iwB^RwTOrPVHI-U( z=nEMl&bs?QYloKklNI7T=Bc@Gq(K1LBF=eEodmmCz~FVmepY9&a2q>u<2@Rh`ZP$W zuM4CHy)|^N^(t{(BHiwQB5aiv6%wnLw29ZesGKNP|yBhD!*svN4%x}mpTm8qceY0cPW2L=EBz~L99P{E~( z!oeO9v_m%qe1X@(a&R7P!FQNhXTY9!1BMNE;@Pd%ti44zrMo24rF)&=eH=yy76Hdq z?7|v;3Z=nElIZy~XBO2ngtn|sq|Tr0SbYp|QTxSVl8ufg82%z0lG>l48DN z)-k*>+YWD?UYJXtYSV(nW`&dgQw`}Dy09;(n=E|6eUJ`kYd-<=b{~4nk%6oMo(%$k z_pnT6v(IAwa8pf&2WGP5dT8IZRzq`b26N9qz0@U%X7&zagI$5czn(yo_7eNq71(UA zcrw1)k$qSD(+l9kZ9Td%OLxp0vw_3V9mmGi2GSk-XiC1A!crdvQ%JCi#CGf0aAWw- z#-V2s%h>!NaAAhZXqnd?7S#o_(6{0AaL7AWj{9>y`qhgDkJtmf1llq(_}`si%=>g2 zJJa?DSl`rGyxvGpc1?9(1F6sl}TiPyxlB0NtpdHo;HM_e@R*^ zD1u^XDzIS-$CU|YccSRYL2y*_?hDq~69Ynpw<8y_cj(K)EHz|X zwT}JFhGyU);Hce-ST{Upj)WF#--FD)9+=w_HRZHEz$_|5>ExRvYO=9_jjRo(TNe`P z`P#Xx(iC0{(FxRUK?EzE4h?+FsBg9iW|uHa?hZVE>y+6n`A9Hr!K^8$MLwH;C6uNv zk0Po0N#-#CSgDOlx_I~#YcW|4jWJ+K8rX=x)<@A)&q%82V=q3$yl{(0_`k8Wxegt^ ztUodTpZ>GaLUY092J~0(9XwmmS+GJ6QGE^k?k@qt(?dygVJBi6uv~cBDuJrv(ka*a zh!C?e7F-c%YplC3%xfP_Za1La7pc!C1EaDUeD>w9?AV$;a#9CrMb-hGG zoiYxyJZO9+D>d|~`8j3>&6x{bG&E?#ebyyCf|S5TU%c>&{cwt)n=#PxTJ@Sm0>5{( zQcas{ZnKM+M>VNN{7Z|O5*(St?TNJQ`g+zd4!Sqq&^t<5#;(4DH{zE#y3o6T3A^BJ z5sH~AJI<~fVMhtvM$-1T?6a<%qQHZ-EjAM^t)gh~XzXHr8jABwp#f%woPz%%4*V0R zKQaGboGZ(l3a1`|)Bh2^4?`q^>m&_X-Nt-FH$ymfHHoGj0@pjLP#8Tbfl_Be`>21F zu;@lC?HP>yi%tVJS`kf_-_oe}BpbHPMnyL^q|vaBF3hQkg1%rc;JkD+_9-$t@i>(t z_eQdYyWkx&AN}LaS?sM&By~gWoek_O4 z8zxXoUB*(Nm3MDc9A(EmVFTf{Hw1IPY%4wSMxly!Iz-XS!7rIvVmuw({l^>q=t6KK z2LFlq|KhBgW+@1-QYqvUbl|s)6jH)9)Z;!lu%8wQR>1fa3eem6UMj>VfNz95(J$n+ zFu*L1GN!>pM`_M}?~A4kYv=?Pbz#PG@J1`3BbPjsg<$9YEFq0Xe+pp_;4^-{BhGn? znT)rQQBT~vmQwhc#zd0Y%2aBl+{&6^elDE=Zt~?4HuVAKy_TueVfIDl4WBy+c8*xf4}t?D}vXL%|iIgD~-j8xshZNokD|)ZN)8Z;bY~OLOZQGiF5K~vpKg14V(k8 z)56{x>?|;8*N-Pq&$65BR6e*!SK{D@Rl}Z*Q_#u z2mbGW|M(DQ&~r;`;l#&O(tZYZ(S4dQ4|%cIWAuaRYX$!%YC3chvyQCuLX+GC3ILX7 z^zR0&EwDE!D(FS9kcyvu7O+8l`dmv4KQvl7oVl~HlCRLqgvi7S@LXuoMH4Q$g#oBEu?lrvCY%r%fa)Uh)fw}sWO6H$ynEUZaXoG;) zd{a+!coIn#*q8M+wh*6pkdgkbR2tpGQT#a%6F1C#UcO z(BC*bPRtpFx$^N;in9z9C%jjX`)PdUgIuh4QPQDJsZ{z}E|Qs&$|b3^tj%sf*;9;JDyRJ~fCrv$DE>YsCw<_nmzAAk6+e|Umv7)235QY0{>Nn(sDN#Zv?EK%pgpQ@%ZXp131&eE#g@vlXNy2;bBVr=^GA4?CaKJKcO=Jl&C54#62Vvx5cDMz6Cm#Zvw1P2e=rHW)t+I`zUQ)$ zSUW~W2b__Yrdo?zvSrZ8gh$f(_F|7OGAhLL{t|3gYLL>qWX8})#8N=bsas}dMsD0q|d&m%(}!E1^*h4TP+0)&qFX6{rKb_(GPqLQaui zpxZo2%j_E9`8KrC23E0ld!X$AtcdlLm+U@xrX|3e4ZYbwJhfCt2lLbDTd}FAcSuIt z*Wl-Y_TtDNGI|YdpXxWA#TPzuVCwK)B)ExB?%=(KHptL+BgE$L>v0m(NZ!_4bZw=i zvA5Dlvs)#0f2|}#=mQLBoGJ3TDhklU%wfiCu~D@OUPx(lF*j2jlBc4t(P=byrH?pf zuaYLmrqc3AThX{eK@QiETbeWWzNw0iwgf(KtS|Gofd0nzKN?>L4H2{Azjdevjj<4# zTBgzSAJD8DmMmBT2R8&Y-h0ntVVFiu3!Wek-}@ruxg=67>gqx}2WAOO^MoR zWZl3+X#`CBlzrFO`$lqT;X}ji${W_dT1IVj@qMk(6>Z+3_x*u96KO8)Z7!!w)HaRl z9Yl}m(17|0&4+L&u@ShEZ4BTYdE8yx3QnA{Wja|qj}&b$gP-CAt=&7`Vo17@1`UN? z)=!n#ez=M(LNHt4GsR&BQPeZ}A3eRl?XqwvCn^%P89x4i1ozG24_3Tt_7>=8c$=-L$43`x-83B zI$DhP+vo}z(?$o$W+_m zhwF{~@2YF;AkHM`36Ip!H!K3VWy5Ijpq+HZ^FyJ%FcSKi$IZlfO4Q_I@Lm`@h`kR3 zJAwN~ZP!Koh@IY8yhnzO-9#^Vdp&}liR}9@vAVO8>gPj8%Y2#`01VywEzr?Qmy0iO zR_C90xv$$)jf3rE^ z3MxZxe)@Ur za%?me9!;kQx-;08`6|-vPpA5mE7+w8N-Et7{W_0rtPZnrh;p7`tY~t?FTW zQL0kV5Byu(y7U$&yipLHOsCDhgTx+bO47scxh&69dgVFTkJ{l~psP`b-_2Pj#MWwP z<4<_M9@{G@kE>}l>JXFrZv}^JV1GU!pP-Lcr^eIJH_!;JcV+6NSn5!XGq&D~ZJYE~s5bb1!Bsizfm{sO$7f%)<6ub?WNpS&Aq82g5M z99mey_4_ObIrboO)bjFAEaoN7{0-nq?iz?8O%;^)5OvN=3vthM1^MB3*tE8#m?0`? zD1PT=`dvj|sgh0@!l#?u#j_WbRA>RubmeeyQ?iPhx6B})Ltf&*u2Cd*$snCTf3d(T ziWJTnRB>~v`17iYMs&)cZSfMZk3vad@FG7|tt&QzC-RCl=r6u+W8>s<>f8zS)%zK& zcfFEUA?LqXV8m8nF39Ho@!p+}yZtNX5C8W(+pBMDC*ltOC+_VQdJETnLxTY^?^&}| z=!2Qf4V?2-{YOIW-b7mW3!2PR&DaU-D?IRb^*8OtniR&;HQb@uyGOC{;6^L)F7z9# zU@6FZxA7fCWzJ>GuPbR6eqR1=H4AU7q_4OO>g#r}y4i?1{w+=rSPEk9pqoKO?v*Sb zxQP7*8T500HQNmyQ2WLi^y}ykw%bQR%gy22p3+DhR0s|fJm~LrYA#wKFU@O_K{FCt ziQ2iSwK`-Fm)=cWh5pn7G3@Cr5qFeBGYUFLC!L0falm{%9GpRQ1BQxMYE|SrG=p*q z`-zz^l=O(ppp8Q;M6*}GCAGqLQGAkd88VuKzh&6R`K+rWYDE#+r!PABYMA@ z*TTK~v9w+Wj|2QypoagR9h; z&%@VW6xv`O(?c(V?rL>e`RRB%qn|-;4_dMjz+;LyKRr)NSX=ZgR(Ky@&7R6$@KIEW zcW_|0B$fw0+DCY`PkFJBJsJ*vE8f%R1J|>AINP(VGAPSs7aK53LG^YSL$p8EpB9~_VR zZEOZO30GM7R2dz|_Y$~%8LQhANh5In$G(-b3)aA)x6PpW^+Q-G@HJQPj^y__Db!uZ zECOfXpEwr={5iM(JpV7w-ET%}%Uh(;O2pZ#)>xQx13Dsj<|a%P?&PXz4xVpq&K4R* z{8Ojk-;FF2hC&NuJefU9MD3c4=iF0p0HpzDGA(J(THwI~LU z;5cSG6UVV{LnFx_XLz}?J9`do?er4NJqwz#*3Xq>eE>DX>TF?bRV=*T{+!{hmyHtpAkEI95A@*I1gk9ja>mff>l%EnxkPkn8#Lwx8a1S}t46(iA)qo`jDxkdq zUCp)TYzy=%p1(jX5#`8CGv!o(JiqHz57r+wTkd1j0Ja0z=K$1u4=`sm_hebK<vsm{u&`ZntMy=wNQ3u=s;&_o?MmxXUdPmO#Y=C_B2)x&KBLBqp^AzCmQPck4^BlNihr1o(JR0$w zSo^C?c2z^?@LbhZrtP%`+($eIH`=D%@0&7k*9>kX0J5gxaO-Ywt5h0o6 zA}4Fa+u!v@uv?t;tsOA?i07C-QBn!;;P>!+Ep(-nTLwNEo-?w` zq;1isY(t#G`#zJJ_JF?=;{5ir5!c)SasG~ZNb@#aL`%%VQExZ$k#MzRR5a@)_FU&C zao^3&l1^=&3M zBLe!;ZQvJ^7RW7|5kc-B(UUd^;EJoTzdD6Jbm%}X2EC6VYPd!^C#9D!#uA77ul?{m zHwogoOY(P|eQy;>C)k36f_OTeIxRhO9vV@oD>5SVxer;;9K!R2oGx7Ts6^7iXO2Ac zEHkLHMl(er>CFbA1UscjVhy3r=&9KcKsUb6daU z5jV&VwJy%v#gbp#-dS>5jd*TdY{H-IA*U9or3XdY^BiVw&bX(h)OX?M!`mq5G|sBO zgqL@b(+)hBZ5qWFp^lBmXU;wG<zj1` zAad0H8DzTE}AhnYL4sEDPKFYrf)AARJvRO)x~?>;4} z?3Q$iHMsJKq2_i&ZunUZy+UkDhWF!Q=Bep2o*yh$aUF(0XBwXwD__a&ZV^w`i1Vew zgWMy7Sm3?W$;|5-XRHVAKkhhL(pT`>Q;SUTu@|_wK_hJQg!GV|RWmH0?9`V!qdEFyDQ21Wo)3ZQk(%d2T)C-iYJ) zx$XJ;o0W893bbcu=W>-h&`0P1X9z#~zR;8LEB-U<_+S03?rO8$+BQHN4L~gqFe{#ChHXq0uF2bjc%(AE$+` ztT$$%(lNX@FslVkpi`9Q%ZK&~Bfl%qEDep|XZM6Y-rQ8`KQn|kOhvr`ZO=h7`t#MZ z(AVEdq1$KoagCuh(KjAC-teQ36X0Fe>hCzu+uVVRX$H+j#QE}EAMU|14JD)J<+`ll zIws>h<9Xxu3htnDB6Y`S4hH_@Y8u3oAL4vA)P{F}9^sM?s6B#u^Peym?Tb3?D|E}l ze<*1o?zM;!QT#37&~BVW{&bqhTb#z6trU2h&#UT;_Y@`3cVCIhSf)=NNVY`1us=SAK>FJRzRP>o=gcb}~|BV;<%9oxgA# zyv}gk1@(9NU3u`qL9KNU`qGDi+yAf=b?u%x{44kl-0(=F0*^qx!yWjfyoT=aei{E` z2>2s7tDPpK@dnV7xrBXLyFRn{Bc>75w-NT06EgS75;cUcJsCxJ9>8nkWGH_Oy;3x4 zgAwCq@jq58s1tJRUXvU?2D#LFKl;1EZG2EO+)ahh^mftm4U3_xmW#T&{4)O$bN;Vu zQ3EGFb!hojEdUiRarc`jn5I-N^ayBx=>)-KTbKuuw ziGOSGF~0ZXV7ii@M!EGX`QzZoY{agFO^M^BYXZp{dG$!MX#V{Y;M`JEY43oU@FEYP zi@j2zgPO(n02ik8E^x)`mhe9J!>J-Q1vtNXe1tvX+!olXv19lLsH4&jXvpKp25#RF z=(%>sJ{NxUQ-B$~cLwjq{tKnO1{SI1TQzr4f4n@%j)NECfB!0$KB{f4H z&JJ75hs*@V0eN+6PCl=*MvnIbzVq5ce1Ggj8f-*PetVWr*&w54sIQg`dc^lq$Vj^+ zogUBs#_I$l{);ddjn}7-53nE4fWFWX1B%aw2I*9IC6D^S+atEBCg`t&FYyk@10B|; zQEWs$zdtRIa?yj8IArpsSpoE<2!5vDqIg^2jbpG|zwSJfZx|m$Wernl?e|6eBxCqP z0Ux-l`%1p}C^V49q>#z{mHen&aDv_eOT2h4Usn-Hz2_oE-u?KNMVN!>YJf9|)(#!o|~spCE~pE=X|dJ5opdKwgEF3rv{&_6whvX-?_cVDvn_suv zp9W<^i~hWl7Y_PUUbj@bKQn{x@+yFu0IP8A$wFQ|2_DU}kxT1V@D1<4n*e$BOsh4# zb$TdOYJrV6S;2Q29!_h3YpHcn^TyC6+W}6^eK zZ~b`c%>BJjvAi;!`)LZ?7V^Wa$|c+fyay=_akh<4ahf1Cb;EP(Ejqj_xLOAIE?O;U z!;9Dt`XSD>(>(ZF*blZqPo1n6$@d0M>Yv&8V~=_Kk0K?l5YU&+UeC9ktRP#Q;U|~( z@u$M%6u1h#GgrZfpcd6ZY_py`;17q$s7V^U^X`A)3mO805r?}HaeneXg6?}FZ%q8n zFZ>2gYzx$fl@It87SIaL1Kw%Y9)8&qXmU1AqlBjOq0I{%9kgyrhRgW=tNiFelT`RJ zB=Yy>`a?SnI^`4Q@J&tve-4aC@_;4$Ynvcy`UN|r%`176CBd{0dyre(b9nns&@yTd zjk0d@`NPl`8c~=`r`wI>=bVN2lW8(-9&wSYzk%IZq?#Nj_LWv^V`#;-q<{VB`#@)J zUF6?>KsCREx$I$SGy`#dP@Bzd{H39vh;7FwXSsdlYG86O!(6M+-^@y+Ziw^vmL2%T z@S)vB=dY|!_GX! zUpSblb=dHUU)CSmFO!igRG<0$FlhYZE|X1s z$hY$Y2YF8#UFdv(k5UEEd)zCr#}@Fi{r+T(9GlfLl&@dyM}c+F!g?Rhw{!C+ArE)| zl_Xxr6JF|E3Keh2>;vDx}!+n9Cq9OJOR~)x<`d7g%L!9qf+~GRsCz3bfynjI>{yuz_``|oF zd$i|e;HhtZ32&w;gZP>S(G*dMGprlLdtXq|SmflO7BhIsRwcbboL?`<<~P4aZ@3sc zsT*7Pwdo3S!x^5@w1h9le&i$KTx(Oo$6N%a1^sW><8%C#Q8I9sQDfJOd>OP~E@Ai9 z=Q2Kax!UYIjJRr3~a0_gdQR60e&`QR!3G{PVizUFTHuF1eWFN9uG;XuA)U;yPf zKr=yS7{5au2(3pAd5s&w2d@QBL|;S4s@(Z*XM^dqGMUn=TJx_Pg;L|wYFf7L6E`g; zj6@^oG8t{+s(?+>^oLHu$?jYp&a(wHAoiT{k{Z5=p$S9(zXwq6>c9O{it63DiV5JZ zA(FTaU6qm=p*H(*HJo44Qb~!peyBkL5vufgYW)JA^CAO$T&{V>LU6Tb#~aG47*4>#8HGl8jlh+a7B(p=sr z4!B%+)7U(j%r9>R{eeC3p$K*2H-jUi0%oi%}(Cc}y71$%1}n z10OCs9GK{>iP-f#m#zfHDJeezvqWR*ylQY0u{Zr+jWNvYZ=6h5uTI?Z1s{c?4das5efrGu-{dvD6Cr`P+{- z+zohS3`Wg-?Pnu?ur0Je|EZI`9QeN2R|alI55CHoj~fG=(o)QUk9+Xp*oizr{V?L$ zbbiAP%zTiO9n7QnD_g)%$NYBu7&RYRfL>36JF$N(pSmrQ1}Q>>X1S|)C|fh zuJ3&KRBlVAMI>_VbAxFz&eqg{8@R*eA>?SSrZv7H+zj+AGy8&v>(ZQCJu!mp2PIOJ z(Hd#>5#Su4dEV*QLCGZa5h-W>{~7*V^0$9VipH92h<<1R;(Y#~G1nBeVMoNdXLbkf z*l#r%;Cam8QQZEUiS!b29yvUbyL}#We#E)BW;s`SIhNic&ZdP$-04@*Gz#}%#? zDTM4o8Hr?Obng4U>=3fbZ0~*A=XBails!YTGBTr#I`{oL84-o7%pxR%W)6>pRCf$s=w=;zp*(# z%@OY+>O8FVBThLWl7^tRFX8#HJ^a20=9j*KlE%*a1n_|i{KGzq>~M%%~pRqz2F@*Cb1 zJ{;c!dd3&1bNry8e1|A_JgkLxca8!7CDxUiWGiW`O)d8VnlI~{3i40R<}!6XNCs_J zQi2PYE`#@4br_wlc`j=J{z=Jcd!*loxxs4;>JITqvhtni{&*0pv+_cZg5cm!5LE0P6sX++sL;vjP z*o1#&2*2=BV3?;m@+VbtDr49~^)%rJ_yy24^mTqqIi3fWxD9=s)}xvHZ#>&2%TRv< zciuGAp9J(CE)OF3W0By$;jA7dEaBJR1HOm8u90&*KYN}pjp_&;!RtW&GqfYuj>3Pe zYASyv%bf~=9q6SR^5Q2KO7w~%Tdo0rce*pOm5|A@uatX*{JS)rNV?zpGB-8BnNH%| zFjI+~nG%}#)Cfwrm%(X=xsq^7N$r2fa!;4JQOY%F6(^76GMji1y@6KE{>7RQQ_v77}TuFxzT3Lm&`iLX<-Xe%z-o@Ub zDwtEI!V57!hV-5$aF17lA9Wb>;Da@sL5)AfVx}G}Zs)q<*_N-sTq!@qZP^W<+c@-i zZ_jYS$Ngz0W|OH^8m>nde=ETT>R+dw>BAFb;>>YYYuZ6uhj(?$g_-I}$I%L18~k z)ki&C$?1iXF1^!MPlBgMMxBB-4!V;!{D(W8=%t|5iJS9+kU4UDOgP;>GBM8qb^bg# zj2r_#=4Rc;^V=VJH~-|(+hzY<=j^_P+)r>+*P@22u6N_6!#ipoYP)0MBH4xE@GHXS z3-zXXWT>E9_@1pJRqCgG!zcjHbLshe>cBsKydS`CJk(Ltho0cb1MujG#EHdn3c3Kk zO=Ax+8{8z}IQGutlSF5DU5rC7J+S>YQL6GMJ)G4G+8+~}e)gy3c(%97&WSG?!;?G# zyvkYE#LM2OIqt-j9ZN*_AMleOj6MG03u4V-Z`xRbvtm@HD8iGn88jNhIxZKTHY1-s zHHvQbMuzw$WJT3PQrprIVzq%Yot_d&#Q}Xp!&T0-XBYe-&ANzXsPlqX@S`5tSZwBs zYy!-Bai!PP74S_mF;UX*4V%=B;mgr@p@QmqTdD=r`9VTBUCn)#H)W46^+8{EFwZ70 z6Lns(Ba|xt$)n$}@PE&c|L`&ToadUNKU#+xo^G$r%>j1eh}!mFT4S-9kDx91ysnv< z`hlr}8UpLsaqqg?**uKSqRu8p-Nl>JL;kZ9gd?#yJ~D^~Jc^-wpE%L!8L*Cv==WZ2 z5x+hSpguWx_ZOWID`o|dK6;PSU$2NkZE&984DosROf&>{r~-Y+^aXWdEV9*Jq=0jH zqOo)hXZ2J$@FLwN(*2*{tB(Y3U;jfi0e5A_U7XL`?uZv$;0Xqtb8pmP@nDiGrGqy< zWPGyd1AofOMp58_yNTM};l1D-Ni$Dbi~H6&(-81t5%njAgd?X?7juenZ*jFV<`k$N zYnS|12g==O1#pMTz+AN)b^e$RkIiEt>QOj1Zae@7uCb0f8RzpYopAE&lbF{X=SD>T zFrt6*=%+)^^*_DzpE~#Iae=#yeb;)_*-UE3J)VP{G}QLku>rDE@D$I&XSq<4w;cWB z5Y+jH)*kguWTJM!PIk@ShGL0b2yz@ypX9+};i@1K%VOXJy;wZ*9erJ44Ato-h+XOe zXbfiXJ3F_C&%rksgF7*sJ0`{t44`OWpl!eenF#_xOpK z8P3!VGt0crmSRi?WE(|7!?@C1Y?}&S-&gQ!s_83Eh;X581U*sfHsTl5S)+vS^r^>c z3D0vRaG~1H8EWHNcRB+OzZo1Lt%rHhK!OhKb7OTo^c#80!pUy!s=QVYaW@r)QLlgU z=xipqcc3!M+2yOX<`!0W+x^zbnxjhDFK)F^u1eq9vi-2Q%V(Q6lkzbjIz4P5S z>b%4NI(`J6-mhDVTHqnu;Mx9S+EZKxkIxx6PpTq^iN_}e&>B4F{ST7ZD9E3Npbs&9 zHCANUrJfs$GsJtO*m@v5R?DNwF1x$f`kFfxPs6U+tg+a$6LMRiiOw7TNIg)6diIT? z!`qqK4OpndmPlF^d|cf+-I*G-jUwk&_O3ykV*ZoK+h3 zvnMd)q|E2{n&hnZRYkTkc6bFss!nP7?`l zxrx{dBrWEi!F%K&>O7&@K+bA`J88`Thx?cow;z7U+3?mgesETH)DoKdQBjl_zEx)N z&54#^XZLY-ifjv>^8vt=T1X)>JNT}2JFKEaGm*-STs2a9ooyyYi-Dff_qS{?DvTYx#Gbg1J0=h6R}pa1W<@n%*P z_fUnMIqICfD}&qY6iG3t?S#3zxT*ya^a-DzwaMb<&sI=A>fFTfBG=6|jJjY~_`c`~ zmysAk_r9P9xc`$ggO5o0Q|zNXTk~3Gfn-&J_dTOKzkj5h#Iu;GlLqmbSpgJ+GsNxZ z7(Pf5K*Lb;3qNM_#wh{FQN;I8a^z2elVFINZ!vV?H-P{4I0@g=bOArv(Dy%i*1qG2 zFB#!Q+aE>K%bL!7aETlFqt2G+-g723;~ z`Pp2VwH0zF&me~=$J@e?VK+2WNqzi>p9^>C@nzT%{Fz@CZy&_xtq+4=NGydtoyJ$GL&yf0 z(u&hQ{GA^`bo(v5&?^#o6+G34;7 zE7&u}U*UT}D?R!;Fx8+^evo$nGBU6q{CSsm2JRGwv&AB_7}$;vJqErMd*e8tdd8ES zfOVKXU&#-K-{22$R1TTj^R+FIX9wMB5A_h<4cOf;Ug57siK|Bw{ySOxY4(6D!Mj$HrE3g!H$`zMdx?2 z?en}S8QB3XUk;L)6+(CLTS?C6PUhx3!`>f0|6TvdqpvLf8|QC3y*WR9BmDnR=SQ!# z_z-A+7XdpWUwz(nQ3M^rGi+2qeAnp;s>d^I(BFgKIWLUb`~ZJo$uj2S`>eh-!;sY?6yPK{B;$dhQ8uSOZ0f(eRzki=$Vo6`e^<<-uwi7eVatm z(AE?AgQ)ZCP!*M2>dSklxPto;LAH8z+y%_t*E&Yf;Bkkz{$1dst5TBF)XCg}8PL>2 zS81DaKz0_-^N6zw+8nWOwEt85+czud{6Bg0#o2#9&!+C$ylD!upz(Z`wA14k*uaMs zHCOn{cvp*v|8SG$+W7DjdjM0Z16Fx_HE*jQM%OBVXSP4Y`y&VEJf6c@NtgIDQ-f$( z7UtzQ&-tGR-(=y69%mGr&ho>tj5g{hPwDsyaBkHU&af|ynM(5e71R(1BCAI zF;>6>{MXJF!r|q}LiNYpx8xqb1~YZTyhzGve}q>hI+Hc-z5|ap@GanlG61;@k1Lk* zqtjgICFYcjXgU8m&6V0Th#-S=7JM3Tq!aL^fBasHKL;Es!cIZ=ZPU0soEuYbhtqj$ z9qwhWFYSv9rxv~TTI@!hIp=WN{7)YJ%^iQA&sEl~`9rbb>!Qw$-}K?fjftes*aIdt zU&vqU@@JQbuUn+>1s}ud3Ff{Tn-B3Gz>%I~zJ45jm9Kb=>;{~-bz491JHRtfUjzP3 zP)osoqMVeNFWij{go+^n6gU~W4DZ20_!@9E&46#v1i_H^r%Hk=jS?r}mXcrsxb;IUcz37?=xp3&nE zhj5}$S?5j-fg??;(-#Enp(=3>-aY?~KQ_>XE}cN0qu!Pt>+`xxgEa^q_kV;ncqSTkiH8FIuxbjC4CM=KR&j z0vH=cXTA=Q***^h_1yz1|MW5{h?{!SQpOsMS=t&#j~;B~`sK6G3k&Tm6s z(-r4Ka*v(-=L_M)Jx6U%U*v!74@FJ{aEyl4{D;lKWP~1AaMclxr3F&^0PIBS428=T z!03b+Ix%UKF!`K6RqKIEU}-JP>F7^ZHPPhI$V0FM&cEbdG);<+5svKfqqmr&Q`}bw z;o#NO;8_i9xY+mEJ$H`s8*EMC$vQ$`c#hfQyzO68!{-#c&}!_B zj2l1U9p4~J^qGR@kFyf1ND zp>(rrs%&^=5Y>QhVfIfR{fZ@j_s^TfcKlq--49S(-#3%^$WF-f!85$@#B%<}eI zHilw6XA8Nr{b>MtuxAD^QNrHD`~>z24hh1fVaSqO4Gq|#b;7*%el!Su{GNzi!tXxd zNCR`pxRoWSy#2_<7n$Zf||zqaICS-BW=djQ#|(VN0hk!iLUr zs_BBe_3j2C7XG?->?6r9CqOt4Ke6_%DiTe{2=QHA>1a5-@??fW17lYz0RLF;X?sE0 z54+u63i|b^q43Kc{=NR;Bo4pCpUv{1Rlti{cZ%hQtp9JG0{#5O<=^t9D&X(>iS@FZ zRY7#309?a=^61w_|2=mvzuBJGb&Dno)cNah8$O^hG8=#5F7w>Pzspn7F6^Y5_qfP6 z!{2!yeZu&~-}%T9p)>^jZEw4dLTK|~`ib-5?#dy;iz+!4_l==8`O}3lUEwA96#SoB zZ{h1R=uMChl9T~AYvA^K{h}##@djZ(v~07-LhE`YL&%Bur7d{(r|&)~Y)kf~3wS=w zJuV5B;4htR8cpS$9ti$ss53ZfU31?HTIc*|@~CK1;{a{65fT- zN1aetIW028?x3z0olg4WJB3}a?LfNX5k!4YV!tqA2yMC-L_d_kX7vY>=eZzCUms0g zM-9kA8=2|ARB27U&}xUALK{a=_pcd3p#?k{ZiUhM(-oo|AfmKlJ*Qs|HsayvDlwpf?g?gwJqI*7IMQOXf%FW(FYcQoNioK2@QSZ6x}<7xEAa9f$)6{)d`|$_5aPI zkK6n={+xEG9p8NpwCp%51`qJzdzPzcCFYKdrw93!(Mp>85dKI%p7EW#hEw5j@QZ5N z2-O!uuuH^qGGdUhHUe2&gRs9Yv=*+6fmagVUoJaP_&N)ms0cit3CTi26F-`T+ODlm z6E=fW*Qpfw^8K=eLEz5KSQkZ}+b#%meSN6MV&u!`JrL|wKI9IsckkgbtnDw@r zJQgcAweYNu5Aj2>r?$H(nAdsJy-)Bl4t*<(?FgTTV)!QYZA8=Tedsvmg^Xg_usbDIbz zP2DMcLI|x`^^zZU#FI>Z2GRStWxO=qmpXSwcA+YrvnmLpXQ=_?I`zMK^qI5&uJbCl zCcKsm{tCGJX5J6s4;}zs_!?e4T4#96{z@u82mWX0AN-x2$f5+!u;oN|VFtW@kB$I$ zC1RZLWIz0Uui;*+^$_Am!9UU(vv6jTa0flZ!9tw3bJ7HhGd|$Kf}4H#gy3D`O?{BD zvUhKhFx1JLJUt?*`{h?ca~p3`bdIEsX^qHsoi|N*siK@kdf?!A)3ZY4j%j+(ykKwo zirG!qy(h2=PqIdSP}R-$REBKgrtZkSI{8jmQG%R0WjN_B-7WOo=RlD@p`UxiJ5Q3!Q_f#_TCW z1zAsILAD7&22X22*y9O}WDr$5EaN}*@&%t7`5={bvaCHpGtiUVwVdAyo{rNC)NuSM-nguGu^WJ-Gv_T{D0IP z`%uL=;gnM#WgLp8uil=*)F;s4c86CFc+PLnLQAp~zWs~03+v%w5`{CNdu@&&ATM~0 zUnK3(To+z<_NG$s%pz>7ghWH+1MgGOQF(K^i+Zla{;pTsZscF?O*dw$NcOHD?ON(h zlaUGQc3}WrY6Pz;?0d$oGNjKNkhAjyej`tsQUiMzn*1(|zI-|-2o{bsASZ;ncSsO4 z%k9y(1S2n2CiwZ;Q-(46jCUkFsdk`U&Oy}1-d>R4Ke@Fb^beB*g@MgnDKjpZwBtR5 z^S#_D2)W)yx+a1Mzv9*S{$f*i{>D2WYCa6PlE|ZvwFg!S{gn;!=yMx-)2las=XWc2 zKIa}`W;MY~9TVlw_XX$F5O;Clqb%O|i-Npy_dVVEkvEuwUAiauEyZ1hp}EiuHvPk! z6$D-VK)SOOe#QM=g-y$#KYbI0{b{1$YVS*}#zxWiAW92yS_${YDy1^0~a^zW&}-hH=_=*z%)W5 z=%s8Z?Lu}{`YI*4O*f(a@$S%fE66uVmzsLHkO+^ng_rINKYbl(6nH$#duPRUN;!i(OHRE-Qr1Mr-eBJ-&HD{_?M(}b45u?H^0nQO2?I0^sQ zQEoxh>cem$uBRt0-6AIs*D`MT0UvS{z_mgiz1njb6_1H*(W(H?8*HB!ulk=Jh1t>fm;2zl9&#Ui>bL ziiNa%FKXLEMRq3DLUUx&ea{7dc#t-QtGsCs_8Pk1dr%m%2q#aCpf@MYC=?piZ0w^g zyA7qi%it3XkK&-ICY0XTohCL5r|5NUX#lc-znu%AucMy{{@^icY=fwx&rxCTeS2i~ z$*Ec6HA0tX_Vi_A0G*88DtOFsq<&AJbxg_;z9Un>ZM&SlHNPmh;CcR{6-ehE<_K+1 zxzY1($TSV;D>Mbydbp7vMIevfsUdjU@NCLJ9=+8*@SsY7xgd}JLBmBfU+3?0L#)c= z7UA5O`~A-xJ)WPl6}euR`?|Sp;WL0s>0qW_aOf8Q173zYz$iZZG#AFhzwY7<_!sT# zCp0yO#tQSo-R!A?|5og#BjCps6(B5J>r2z2FGwk0A+(jlYxJ#(W^LSya}r#A4s|X* zC-lLcxacsl@a$g**TIE08v}pKu}!HDcxx43l~nbi3#k{vALgKvy6N<#*6{qvd90wM zGsfhe0?l=JI5CUvG!*k%7Q8Ah?P^B1M!S+FG&AynkA#~`kU0)aHhpo9Fme$5W+iYM zp6n48!+X{CB|I%pVj?WV&OKX+XpWH0IP!p$giQ!@zaTrisFv}A|rEg;AJ5v&z1IV13$a>0YL;78W|6ttj(*1 zD{r0Pec?}gmL~~2!=1@zgg*r|+APc(1Abj^e_Au>pfC(sfwMFH$a(2;;cOq|0fnM( z?zcl&kNn3!f8UwnL4y1av}4E~OG6&L{ysk{7z*C7Qdg~|gr2DN-#&pk3zo`?;0vLH zI?ppr`}THxRld z@N7C~^Yeji-duw$b;T_{6gZDQdSIgu-}nLXm^Io&l7miLVQ2#%N_JLJWwwbh8GUjB z{P|yLCJ93^vs7Sz^JSl>a0u^$Bli2%{gZ^z8~kW<8FH7FZxL*P@73=|esTM~LOW;{ zA{*d2uir0dA%}YOUF@A@yM^>p_+E|*qv&nxgxlaBnqyw;W*s4Pzu`)EDg)`u9b4hj zdKcQ%Nltac#tLnb2~{fk(|TOd4`W=(<1}WHtFwgni`{7}a8K`Xi-qPhJxR;Vhlci? zB(!qyCg%d=ME3d4cN**mA18OZ8r79I8y!p^=D1PR@_Tt7u13)fBagq%=g>+A^-#R` zo?pR5yr7n?0I$IqbuOAcgWJ(vNnxn-M8`BPXjvGktl-!55c9Waq?;Xkwl zFR>zmuHMb&-$DEH(G!^nvu^U^p{dUV#{MYaGd}`eVOuM}58kUS*jf5h`APV-e(5A! zYUPi66Mn@u`a-Kb=sgDjXY1cZkmY+*!AbN+QLTiUg`RW>93jJ(pLrQ_a4J><>lt&4 zABB4MMjnvUYLS08*p)_AV`pOx_#ZY}r%tGV=KW11y&t<(eLUTV%!dO9&d*SHfF{BO`GZrdkE=H{ z@}Xv5aL3I&ryd{dLq~A;J+v!TAHr-q+c1KfUwf~cujM_mhj!AM}!i=AWDV+B8&dJFmGZ`-K-=0m5cbfPNc(RbJheFpd<|F_==NlX@d zT0~P1)On)wa&hZ^745$bom!6r;y366{^+4ny-LJ4sbRDQGoaD?pW+qW5b%WI`FyyO zG$1h$-Yj^wdkmEZf=ATxI6NmO&XA7R;ykO3q&YqOq+-n4=h1I)gO^DGZJ-Ur*|dCp zn)KqgH?3^}d}dLOq~#1hz!Z3E*It*V17F%VFoFV0s-&yBeiVb;(#yx2vPuU3neFhO z^wVXhfh`dFPSbtu*sC(&6t|EK)3X(0k{2CD*11dOPbtyZgX;Q(P`O{JP{75!RG8p7XL)A{?TIMFsUJy+4ky$ebdGyn@BXNH_{#EDd9JTlw z^PuW8=9KUE#EOIPV*{pf)Tp&2$NpTi9lFb}=F(E|o3_q?eq^bW)ZHKic_ZK+w_YZ7 z-xNsm9pHa;VW(sREYw$xochWrG%!1hU0D@Cqn0SB)F{f?Di8 z$G%|Ce)n@2t+dmy2iS`le+;2D4o6s%m*6wU!mFj{I(7iKiZ_0jGsn0w+nw+@g@#a` z)R`4Of%oQOS308DBGnoD(Z+9%WODM5sBIHWr9B*I9rEad!m&TEvj3~jYkyXX8NmPU zfa?-IMpqgHtfe37ytsC(WH4Mw5vX%=AC=_t=UueM-XtzfI{$~eSP8C}yCm($-0cti zI%mKWsR{N|n+vcr@@>fG;&;8EGj^bjIcuGSk7%YY*l@opW_SQ=}3FASy=@WdQp^oC_$ zky9AE%csV%J<lk=*o|Aq7+YWyV4M2}~5(oV6&+fyf zNSkR*4xp6lQIvAXh>f3$ycckRKD@GE7r*$>j_62Q`q+j|k>PWhiu%WdumRdW)X_>s zL(ZnK788AF@@423X6|6d*U+CVjG*DhIV{}`o*SQ$H<3}ueuFQ1Cs_$gmohdVo)3eK zkWm=*nQi(4&VR9jR@yYzod1cMrzwzS){RbwOYE#tE3l z?_KOHFwAa`;mLpgH2ZzRhc@{{P(QzGY*l|>x?Bg}-fPd`!uTjv_?SnK9i{x}1yVTp=Cu(ZSkRz|Jp!o8|np=3D zJM0Xn?;ip+!_)CR0}B<7#ApJ{LrK~aLZh3UWp@pqj|Cl8eNi~&#P;~yNu zRWi(lPO$_SQOoU;%_R5)qR!>bu1aCZmYq5qo=fHp7z2(t@*^+}+iq+de*W*+-MVm)bbC%AudL!Fip`yk{ zIdHx}Uya@)ZAKAOZ}p)s;OOkBe9BsW_Mz$~5oGkFmes=ZVb&_lsH>W3);gl*U%}le zYOQg`@A0ddf|3Wc)hr(iOj|FU%H%p4(&qiVo_y)aP_i1<8gf-sO@2NZWoSw>#%<`dH zXK)`M8nE-L(DMw3c5$P&lz>0Gfu9}4Adi0j0A#tJ`#W!=Ys^ijBB?NUGy5C|pIZausx&>!t`7GhZVh(*%5y9R z_1UbWqGfIm*vh5A4WJqEzEs1`!pA@xy>#z)jWu#Dcp9V5dkk7>GT}GEN}(UQqN~~c z4!I%7t==)c3J>bl(w7RhRI`@Q`%Kt^KWq7I7C9U<{x)|yroWyo0&ZY7$A!wB zIU_to13TmwLfK!z2e>tyHEt9{I`P1fF4(Zv@T(8| z0*$0h!LH@{A?FVJyI!lg^F zi}V%Y6i}k2Nku+#-)o`dH0dRqi%ilu+)uBaZnJu5e1??-+y{_FAr%eo|)6sS`9(nXPp=Hsx`@7CIt8FDqOY8@$!M{pbA+5ZiqF8XZ zeyz=yY`_`WfI1gd*Gg(+_~y(7&vv&yvyKd*`9H94mGjJ{V-Wcz!87Et1541L&cC8) z@ZC7}1iR6_K2cP*aRYmZIeN=|)ONxFHbMh$XJ`h(;dQys5%tulXl8>uY$JRvih(bc z&wI~OBH;O~iJ;V{S{fC0g?olU|9hgjX5@WuN(@ob8bu3D-_>5U!w($Rd@YTC04{8QWY7Ok+SO?KpUuy+?2SbPD`@&oXvnBz96Bz&v+dU>?9cFK)t4;`}`}zQB#D zfM;fQddbGk_n;d1s^rXg%HF4W(*Bw7pE|(Ud_OO;0rqM!CzkQxU7Nv6qR-J<>0WC; z%3F9=SkUhis0Bo6Ic*nN!8c zYdrmk^=;!pIcoU(yWC+*#$#_X-;0)aJ;tuJ#QAX$c{Ipg`E2eDpDW~2S3Q>ASNf9h z%#k8`Z4nEMf{~|SPZN+wKNd5c<*L8yTyO3zoxmP;cNMsW^&2Ipt15b344&KTA}PaD zNu^tX*DY?$F8{#!Yzr>^-QKLl)({H(1wF{mNvxPhR`c3uGCJbT)_w&4unqj0J|?lD z*gIPSyX!V*8*>1zwWltUZY3OJs%GF41V>WHmkTT*4Lj~?_)t84$X-UHwsI9M9rTg4 zpNF%e5;M!@dgkYi=f@0Z^^97!{E#R0H3R2u+Y9y*`N*HK2c&|ttVtUeEe8 zIn#++`#=M>Z5tc#!;$ualfk8BurKva^kH})X3H~7dCY};_F|Ve@-k~X6WOv4{3vT- z37dDpo%URXKgEp#R`S||7O9}E@=Iq0hdqgbD`^!ri&cPQ_QM4J5#tJ^IR)?_vI6$n zP9+Z03#R6Z|IQ{a--c50oxkh+^86fWXAAJmv3niVI9Bphs;D=1?sFa=luUjo{^Pye zbipI(mtPo70KQT3usJ*SF__v{M^lR}ft*V3p7{v0$zhMHj1F=;pnn(pJ>@I`rhb`ZIL~_`h}jQ5Q-v|Elx+b%ON0G4!yg^O=n=8A-{ zc}x@SNO{m0?7!d$UsETtM)t1zh!|$74@_eTctsCaFni#o*N=hE=e&W1g6kEY>O&*V z*Dzz?85R~^bo7BAlVy2=L+DP^9J{mU*!{(S1vlMslaz7;`mbS5)N9`uvA#3>kwX4k z=N39)H1l6|&Tc+HTGjx*5U8`Ga&~9hX36(`NgJMH2AUqM7U%8J{7CXI z9L|!l%l0&hq-Jxh*gb7;D&GKK?~^V}xa);{W9+!!MY2rX@3(>@;9Z}@lE-<`GSs=H z@p9Jhn+N6JLUzu2Zl2E7x|RdC-o2nI>cL9i8Z=YY5F9Xu_hR9LeZv z5KS=}#6Hh(qBXKW>Q-#Y9^m`+GNB*nY|l1cMh5A9Kbr8}hb4Hq6MxQ!+BEcJ@?sCt zc7Rq;J&v6#@uWN1&;reG$e!U{+y4t0=XVuS({lJbjdY@e_j-uk;7gg0I`2RpeHZYS z4gXc=DK=fC+4b-dM4i`sZzWx_M?Z@?=dU-B?%n_fvmPA##WSV87Gcx_bzbl&QYt@= zejjspK$!A~1|*zk76Qh#8=MsuUcqQh(H!9rlm*sXlN-H4_6 zc+<(=k#uaL9&Eq$jU}$grRR z+iu}R9+>5vx3*_9YoSNJhF*V6A7+gn&$W?1#djRSTKFInyb9;D(O_2p&;vOd@Uq$0 zk#(&>Hc*K>8NRq8X|QkQusd9QdYsf0T*?NV6P=$}t9Iytb0gHAh9i&O1iRFl+kc1(tXZNZMarOP+T9kWKgdjzt9o3NUmUesB{d_AoND`*C8 zOqqf#o-|?|dt-kGp4;xc=h9^lO8CjdGy%bxuMQZgARzAJnSe?=hnWtVgc^+O6*~yx84#RRs_?b*ME2# zpTy9HfpjuBnyhWKC0PpggD;~fGq=06F$TWP;Jbh@k9>71C>XT#R;%pqPuPk{x=g!MRFO?bnv#O|cuW|L*SC|FPj@2iT_L2(94EbyJJJI50m|zWq@}H$ z=zD4)h2M9PIs%*jfvmOGA#svPrYk%m;OA?)QtFIz!)h`#Cz-3IgfH+Y!29O@Dq8A0 z7#Uk#J?PsNGf8j-&!?L!Z5^8_9%>5j=!tlL2F_92_XTDWZcoX`qn|Pj*yg|Le9Gvl z*c?5AH|pGNWUQz?8TxY6`Oyh$u@CUY7O3-}O%uc;;6&J=&dtV85j(1a=?ZYsn{l>c z#d~lWg5X^?#Y^-Gh7aU(@DJO?igvE>3x(EcUjLP%9eCg$PCy%yyG`_N;7vy09WB;7 zEWY>gq5^Qg*DPaV-#@zPH^4EXZ;BcdFIt6NVX@|!81ccAGO()}rFkQEN5pJ=OaUW;IR;zuD?pm@Ngt$pI~~Ix=MTtoOtQ+ zKw#{9MOVogzQ1zx2}~Tl4H>oI^~&Jx73k(pdxODWpK@1p{Ov&pTYJ-8!*ilO?&6*k zJdk6uRJ9$n{@!F4esuo&h)3 z9d-WklEisqRb+}fuXyoDJ!qeT3f3Vww4{AYE+1St%lTmx{`sBE%oe%fxtLQ-Zp#$dX&fFJOvB}+G6VE`iwgp2 zQr35wHMkaebL4dRcWW*a+Mk&_{At*w?p(ElJNa$Hp8icAZU)Y%MizMYo^;_FyTdEb zAO5-iEs}{d0v?8;gOyVPyWVIuDI55O?G5 zaz>r|Z|WfG$yB6=IvWtDegqtM8R~qg>3)l!$kX&fowdJhmd#p(854CbF|CsgE0j}5 zIXK4eOu5V0lWwnwqHo6*abw_>-EMLeH4RPVD$aV-0&qE=?cdI+ps#G#Hj)y1oaTc2 zdQp4q9^S0D$qjt!i9Ao-eXFXuhWDXagBEv6NE3ejNlzMfM2UH!6(3*bK_75FUtX!h zHy(q%QgJx7G5yJLY8TSjhtY^{x432KD_rwK$fG)!J22UiZ%9C6iy{YFB9sW#|7mWiy zhU-<#y*}klOB`KECZEZD9**55-k-giKC%h;eYT1~osmc1Ix>u!{j1L9g&MKoRTSBy z&We|p#c76n&Jr(+A&vq8gR=@}4*5CccZ0mf{ z=tUGQMxE13T8K{uspuW*?Ar8KUY`{TGDMwww=$AFE(@hSlW}CuIj<@7w7+N9mrVycw6YwW zaOmt6Tl1FiHN65ImyY=c?&v(68!k@NEXhl@8}ChWq&@A4Yi03#TNoYsSDmi}ToQAE z%`Zfq^`ZudAN#{M9(8WGCsTbPK|$ZvLLYIop;`}f?JU%p?^HN?2CykV)cK6BzHB;t zW9*?fncg&67NYAe zLoqVneN{AFIgjIG;4OJ8fCk;$+RQx$E@z3JzJ=)) z&f=pRwLBM2>u#rTb?^*yvJE5a6+T=O+;?Tbk+Kh1b5!L(1I&Xdc-S1SIc65|ULd`b zDY=v}&h%7)^SR9iZYSqTA8-0ozvhQHeuO)HdhAOXN7P&gWLsMR-`5Yz| zX!-WFTv&S_I<^&gy?Dk%Xp|DXo#?J*BiY9>!PGF?o^ov(Tbw+EjMsnFdD!whVlv+K z1*miVZZ9#kFSMbkvrDeI*fJX4CaCk5?|sBxMaXAHom)Bg5q026^X)k>jiv*|2g&fd z^o^!_4J^cC4gBc}GD-car-~DvARiEX(L;s~;!gBJPcz_=I5tc?2Mo*#K5|Ecmx(Wr zd(vSq@U0(j7EPQzNxvk5beNhz8IAqm#$2%%a=lHrU~i>7C$?McK|WU$bhMU< zGxOa@aVDHDrXCO%4g*hMau|IyUM{|7juZlZc=t!X;;(!MnuUHNEg@K3?(9femjlUZ z?mE%AuQO>uBcwc>CHCo!%=0{G8vU<}v-@JJ1Km;HyjS9GoXOAn>Zqdg`MHf+L^Z4E3k8lN@LY+?}oD|!f52ccc@W$VNL%eSgj2z==YO?E-xHno( z?NH~s4y`2b8bA8{5W815BWeG29||0U{L15_rCrD#U5vfe(#CV7vEzZ|HijRRUVy~5 zc+yDB`8{ouq}oZy2fi9X=4(==N2u)^V4*!CGo=T(_jjyU(y6i8lDVk|Rh(5&+0^5b zSDYKw9)#|!!*=QNWB3dYLmsmbC)tL9i@OH9)osp_MT!F@=>*ffw*Jz>DURfUeP4Xo zYU!6Y?m=FToP(oMSPNHLyTYGx8eNy_+Pl*^a3wcBev()Nm zJl*aTi#)%j(lNI<%6*MYhns2Aj-(h`1YM!)uN8xRux^(E$Q$_o#z8$;IdqXnbt7m* zQY&`y8Fu^26m)OHBT4xXIHd-;s+*5Vq41{r)H{@7t@lf9;Th;q6ik=J3zEfCXS%yI zh`PGJm7*KFl7n_272Ige=K8r&y9EI>xNHCu;s5a73$^QL$=ajOc_@JQ5NgAW=6lm5 z^zrh~Jo^Za#3yiQdj5JQjl^^H4LhvSZ*GZ$q3_#1)$u=h^a&=wT9W_f6;y0b5no(zafoHhAtM^bz%KS$#^lmX^m0mn3hb#DQS2r^g#;@ zSZ~ZtWtfq&vxcyz(BG}Jg15j4OIFn@h}Pgd_p`TWM!V&t-zbuchbSkG6=D@ml4X7CA&+$=dHCP2%BoUhP4X@~9- zx{5kST`QNgmc&utpYRj#Z^$aZg^WCkp8P~d_UcR|6-@><;$q4Qz-7L31=`HL<5{y} zaP~$=Q;R)|*}J$9S_04ZhbzNb1Ne9p>VvO7E1Bsy1X3|HQ|tA%u=|+d)}Z&+p0t~F z&Ge`H{wnBvcCmg5$h(0D-Q=U|S+eLwW0gvJWaH1oL+;eEgMtd@2`s0`l^$FOqsz06 znI|}gU69{8_vlDwINFWgVc&UV@H}R<1=;ApH=q29VFB2ui1C5c^8Qv<3{1oKbO243 z7;AyPZ^tco(fYh)`CfABYT`?6Mtx)(uZL0ua&G=`>L%UB-Y?_7HUFby`}4n!jW&q$ zijznWSz`xmnn~qvedioq*{ibV^snhgPtc7US=-Hl{>e{n+6>W zq6|sR1{V4vTT)Kn!^>HMF=hvCWJ^2UU{_~B=MBEppE}Raf`^vpe{23fb?)!DS=1^@ zqS99Iiuu@Hnt?iBLESd#xJi#HmQqM>_yoR6mt3DDQbxa6TKnRv#O+F;m3@#2xb2r@ zZn1=hTn%55FmGA2t}?>IuETS8tKX zY~aCLdkP-T8#gkO_)xktJ({{t+|TNunV$C=ce6zvySW7VniatPwqIi-mIu-za9+#P zp0hWY_ha8iQsC@5W(N(KHRd4mJxw$+B{)&G@Y2s|rb!&+Pe00mr+;anN%r<7H!~G& zJN1w$dwWxqX#_3u%3`a~pSRUfQX9v$EakliU8@Ku*HOvr{4rpIyU{m%+s^WqfX_G+ zUZ1zmFg@Vv&!Nv5y}g8mKvR|XG>|4bonju~)rk84)k-AdZkk{6-z%Vnf|Qhoj6Kv4qx;umTcc_r8e9&0cIo=ebuyI#J=b~gj39bAQ3_0L(?c0u$tD~e3+ z*Rvw*u6u`plQT_QGZg$Q!i<0LLT63PF*!MaZCRVZIVbhin3x4n!~O7L zXx~%Q>!G!^|Kmii+5Y-AX7kbH+fi3$PQr6BG4Y-g|%Fd;RM@*B24iJZC>U)?O?7?p@K? z4ZA%36Y0_GB5}&=KoY*-=bKn4rd$Z3E}NhWQB^9=`w>El5#Ye}KQ6xi6iyv-rF8zm zYSFJ;N>a=eexK+1f#8IqzxMn2|8RD`xI*3Vq!RZpd?kkT)_hYcsSUgre|F2!^n9$K z=@#iU=;RTN{FR)-I;YbZp-!{|Oap8S1<>QMf zlwjUf`xm_VT8Sy7${wh_(mRqam4a7kG)(*9N(9|6M6D_rq0P03pz%@I$!)~6HecZ( z*eHc^W4mZ?V;5%L@MM~vtE;uZyx5=@v;_NJ5GygG?{^n5zfYM+;B1V|fNqSwD7rL= zfaeu>BRccNNO+nbb^AvP;@c$nN}c<2kNzQFp`MPst~2mi)N_dDy+TQvR?sdeS*%HW zq98l7bUIyoLDTnxoNRDEHq34)hL&ehJn%RBU@2}1m(gsT|5Z&LL}UF-lH$E^uNN#% z%S|WqT5uq(l%gEGGM^LRk{w?z{=l5K`+V%jdF&DwU@n%2+3w@kM@5~}u@v1LdI&n# z#BJ~?yK^170rqdiNytM6ZwK#JM_-#{fIasNXk89&q3wq~vlQ&h3$r?CHHhINX7=Y6 z_tD^hfItY4hwaK)DHPDWmfH`et676btL3B7CN)vMvX^})FYI;PF zAIA<)bcVQQ6+F$+*ZO^e&l7lC;6(j?{=f5lv#dZJU#_Ibc;A&bxn`J;@I<9RDtK4Vb)^rG#Pb6{(RJVniy)DN!tFBV zg-wX|!Kg^eMlRI3`($k;Jdx$t$FBdjgLZ)oUaR1+O*VNXK6eQthe6o8Syn2J8i#zN zV-n3Mh!kG~=hMIb(Vo)c{#pL^Pkp2>9~Y^ujw)#S14Vs-tfce19&%m>d zq0>(IdR-lDL&Uvu3HXzbnre651)mmqc-TTS?Mn2rO7U47HSekYRvAToTEkapi;eaq z_N%N-!P#~mt93`5N$d$fEazETi=rs9bbuDn(J*b%Gic34K&NzUqPF?*C^E=~*3E@@ z?ZPh5RE)U;2}F3?~Bb#aVB=k-bSa;`d$0PY`+LvyDAxd za5u3dc&0ALlKwu!Iy%thdjDJV=zr&V=(@S;DTkF54PCEsZANLVGJrYWeK&(b%~0Tc z8)tiZ`BP2yFFExCo?DAEgzw9dnzEr!^>tap3ukM-dHAXl8Xte4hvNHoair)2|2Gq~ z&G5N2c$Y?N9Xz#;*w-`LhkcxD-L>z1!|7`)=vUvmCpG~OTGtKw9!Ix|v*MsPaw3HW z^%x_1qXsIlO!?c7{>(jS_hw@T`X8J>MrNqHib}FUK6dEq2+g`w)GUbA_2LROu87YE zfLpr<&omu%6;uq&g~x5hRgbgi2I};8X-w4JBBPu5b7--Pp_4Od4!%D2hfGX3@I5HI&dFAzE^IYV}cev6Xn3b;=vjSq|N?Gq{GdKx*^REzh!#nZ|P_+gd26dxd; zT6YK>1}9x@d3+4^Fi}gsZl(F#2g!Q?UEnpf#Z47*q+++i=$}-FzF?+(FS1# zksxA@*~>w@3wS=SPNO-)XK2@e^KA76o?-`rweL4X{~a4`lrh>xq0!iDfyT?;2yNlI zDDpvm)uH)Rt$wRWdIwCp3vIPSTZYrSxwx;_o)nj3&!Vsq-mjCZ#nu_n2-=xS6+ion z<1qW}W`jHWp!1>RqtL`U@~1Cezu^IDFO`yh;T?ZAW|-zvl9Ik4h8+I1UgLv&LxDWx z_|?Z6cYOu*1%^|9nur#!vSOYj_;>n>({X3`hL=T?0(MfV07;DDp{ z`ME^&^}>0<*)EiA6|2wTK1Y4@qEaos#;o=82kac_To#XDccCxxlXV@QigwWY*!%$8 z;8DNCiKk=e`aSGHpEA^jzm{U(0sWJ_w%UeMrKI}={@_O4v_GH0)A=oCYBL6EkAm~C z5Z~W@fxULp=4h(JyIFc^s^a}y=K5m&cQr`I>n<(Dm+!M^D1QDHZ3c-;)iP=dYz^&P#psAks)y$vJCnq7rWs^}uX$Iq zK#a@7{2YHbcEJYGtbPjeC}_2PC>Fo0O{8u3w-oJ9i<^t%DFE7T!#mv-<80$749{Mz zYQ-FrSbC1H8Q-9R_LC4pH}H4$TDR1eZje$C{;hr$7TOS7DODkMowT;n{-rA=1K=4S zW~;46t`dX(K!MUhdltG5b~fpBsrNMPjC=6D91X8|^;GSpmeHh|m`>`ccG~r_NP3Dt z&%I-;-P9$VW}*K5*7&U0YAZPN`1ysJrJ^Y~2)kZDcgsp9P6N&o)Y!`&8;Ix8H<0H4 zgY(6?(Ak*!&-4G~8w(z^S6?qx(n7q~k?(tI-o`3vB+mBk{);s)9w?|ie#Z$>BpODdb{0y#R$BQU$Qh*yxc2;P6B5|ky7;5 zKvy1^+_hXTt{e(aB)k`oB|F4zH=q-XccJK~Ml7q1|2zJKq+b$urN&W(aXJ-OJ`(4+ z#Zn3G+{w+pi-w9A+6@ff7BKbra6Z4GuB_Z^}=>J&w1obi2R=2~fg@bAW^Q;_Qe zaU*!e1=jE>SiMFp`i$8<{@oo?rPvT!0jrQ-RlM{UMQla@$qo9YtKg;Qe#>GJKH~t?I zerT+JWRVH*A8OEEEITiw$%r!xXG_G3IhphZT0?D*O&3Fi4EhM1XXV6;=8vHlh@U6K zY@X;JfcgL!PD@-R4sU^+6d1MvkIo;vt&8xxtku_w4Z+LM1BTxwToUuwf-itGd1cl^ z@yV$e+Rzui7^A<4hW%sc+2C|qx440J$7v}zfVjtVTWGK5Nogz2HN`H4>lK<4vN?8gPvU zpy%L_D8?v5NNtJwf`y7VfwLZ-hq{jzvoT|QjCfvDa$Hj{3S2YXQ@^ooirnO%bNu_i z{^=u4m=|7FfqY{G@cek|k~%L&N%n{#f*EOCuPCTB&h~`eIhu->=p*4db8?BM)rBmo z#&c-v8jWUwjMn41*YgJAIw6zv@GRak7gO#de&Bmr3>Y9zF~?pw{=FmiW5tv6p}~xv z-r#Ot;^A)4|NjbZ1&f2xcXhz`Jm)q@bQ}ro zNBmoQ+xm#^o(rC~632UE&j`;RUl(gSq38Dt=jk`HeP*W8K>W*+Vn~Z$+chm&Ci&voyK#l)&OLbc;_FA`KhPX&3*CL3f0kWOv_-x%4WGrKb4KD^ zi$vNA{7trY5RdeZr>=FVS-SQU?RUnK1bh7zE_Px=^p{rReXMnyD&}vL(s1M|KP>&k z`t_y6ac}PYoFH~uftnHcTSh3wHt;n|e}vleSDvUdBAQy_`L8_%VskZgDWNBsma{~R zTm&w04dxI}W#X^GaC!(l?MuLKgs#Ru+;_uw8;N$92PNS7yulMq)L?MI(5rEnR-@4a z&QtGTm*?eSO=n-^b@*J~r3}|B50g>=KCj=%dZJIz;_{z3j~Uiccyvrj68!FM(_&Ot za1YJ~w)&dk>b01sj6@vhJb$J7;5#{OM(kbNs#5*)auy9kyp3F^uNk>WM&I#V;@m;w z0i2KF`R8XF&BMFDdw#edb(}P(jp5Oa7{29Ugr;34ya<5*fEtBnM{DGD_)I_C&esg> z98aM*{~6Lvn)EfXGz@26R#L3lfStY>$j9nRPH5DNq}22y{EO#Z(|mZ38XRZ7Y|;zO zWF@@dfqz1$Um6uS4<2v8jepumjA$24fyjr8%9@D1{i0|To^PybC>}Dv{0eirzaBl) z9KDYjEbza$WtXN6v>&=&gJ$@!6irX)yzK>6lef*#*z|#KHO~L1Hm;fp4KM@6pF1Ym zXgZ@#nRyCxjRR`+{ctJtGXKGLE&7gSd;Y}vZD5#i^SF|R;`en}a75yktfUZ}NjmKz zk={|zY+yC8WoJpiM>%c9ofTr!Skj<6i@qQh^}MDpaa=4TOWgJK+ZsrMfpdF2H!N={ z(cVd?YxtVe7duEsGzVt*yJu(jl}t-Yrat(d)eY?==1s8wiht|J!fBER=*O?Z&yaE> zP@;#O{U~65Js5uUUNN)+n0p?dC;5>srAdf0OlO5e7dgWW)IQZ#TP0hg!KKIZotdSQ zQ$w-$gU@A3_j1V-)aJLpL*HrCNy+pF(Cqn!8AOCASways2AF3KTq{XDf&C7g)xmLL zlEjVRik^nofc+pzsSfsbahJI`_K=M34nLamG@_y1Br9~oXwngIJI^(hC^5^;*@wDD zn`3(m=Xv}x>`%dueg^XB{f%9~u&U_3aPLYM?L|*7`)4EOv_wWzaF=cR*@?{r&e3?5uZO1b?caGH{K(on zvjK*{33p$CHj@3q&O|cq#GwGxrKZ6A#NHA% z0R3}oVBW{*Bn!sx@(q~#PrtzioJGzI3=eF7#l|8I>*3E!cGu&B!K;6aSac)10gn!d zA_e|#hZgnuwvIT%h)apq@7O?#aOgPUtQM3zb1qS{H^|0DkoQOu#pE z{1fN)o@!y=X(bIptS|{L6HGIel#BCbl=?}iLjQRg>b`GH{$l&T%IN@bTQg}AJAN&T z0?|i$zbA#6`~c6=befF7nF zV$PabqxsgHQ2K>;Unkpyn>GPY0Ci<E*lY_LlN)r6pypJU5P!EJ9Vpbmu}y*c=|hgqOKj0Z%jJCDuDB* z&Zwt^YBm`-xB4rcqN+Z#r`OXduoLR;!%eyHE0sO~|2NY+@(AbzU&5JhTQPu7dXYdY z@Hv{a9m5k|!nYc+J>0{MFLOsdh!Yi6tDeCH_i?tt4foke^rYUf{g zek)zW#g5U`7hhvpw299d7)2BCE;KeM)=os4@Ax1+R=g)4Li@q3OweBWjuX87Uf{;UUgxB4VJIj5w4_`Sx>Zq06^ z&wmK-wZ)>Tto{oHH0hC7k6yq||CG}y)S-SgrA+Tu7TxWFdPKj5SuMpJ))KJ-p6MZy zOq$glek)RQUUfB{=5)h*VLE`vq3^gEpG8yESl)34xEna<8R6di`yFWT;B&MZpTgT? zURR8>9XDtmzY31+dYtY4F)R4mw%8lS+4hXv#*bNJw-p%Xk2=H~&O;pyY}1^N^G~~? zXe*xk_B_c;>>_FCFWhTV4eyQ_N*m-Arv7WW8$8J35eMXAH1B#E-lH+dRU!o5a!CM< zbwLkgZ7+WK4fxg5(2p8m%lpj=qEI*VX{V0hrr)5|i9er^H=OHW2HSKnYVfMAyaw8J z8a?=fzg)`<$6yETAo}6(qc27eH41aj-?_*C<#oD#4cW+xO6rTeV$FFgmH__7Ih?UM z1LE0{R|@)pGyLw#R@PESL052AJDFT(?zgjOHEM@dIrVuGaIUpNY-!$s54O#u4ZRWD zEo^vDHF6WwXpW7iaf^58qvNyq&@+Nt!dLt>-UYpL3V!2K0zJm(IL>A%e~uoxA^u%g zXpmY;V#yP+%Otv#w}yA{Se$`}fv5OVb15~)d)M^*bzUQY*9`oFy5HvuvFADf@npfT z8(bHAu13gXZ!J8+lUhPM8u!%7K?S^H(;zAf#=SW<#K={A{&R54qV}^nZZ)Y3QDH$cm!wh{IVKuX$-o1U-5N99rDq!=VcuR}4=guRXk7 zL=Y+caE6VQ+_6;vJ?Men?7kU%VOxKAEkd6`bmc7z{jpDje(|GVJ^@^7-?rGz$xY>5 zunXqY1b5=}EWYzZFzI3+XJbk_?*&~fhf?fY&UfUUpt<-m7#dzL_p$}(pM24U<|q8< zcRWub^Ws1IbvZrES^rAljC+69=_%}6u9ChXm*|nUoYlQo&=|b$n>3eL=lTlz0IVuZ z8gecA&t|AeXZdvFJ~+>ILvSDYjN;>mWK!p$=+RmD^9L6&D;R{&E-Q;?pdafC%-u#U z<)duj>x9@6{CF$(1W$h(=3i~%)Vw`7Tm$g$j%s#^d$x+D5X2D8>c_n7ij*Wc+sa9w zxQ!cjKyZd@hJ59F$AFuUJh^$zGrm?1oiXIDQ;m=Ek;uoKfvsidr9938T*P+BtNVxX zODnL?iudZ~SvNjul^?x)nM#!tB6(dt_=%XUwDgeiBgX>h1ok4&jhx57m|Dc--WPMNp7bZq zeK&St$yG|~jo;;biYE)oQ~u2_>Uf}#+0`m2yesMyy3a17U#AbOJpXFJ=iNj98Q8j1 z_vb%w5Bdq|v|*wX&m5FVGg&&NuZrg<&cY)LJ;s}BbGaKdp>GXDUR}MO+hcdIg%$d) z^-B2rP0*LdUHNLr86Hp&N57EINEYAcmcL>s3c2@B!&>f#T#n%kJcy{{whmF$4Eb{d zxA*)*WH{|PhB-*x1>PE(24?90AIwn2hd&Ga=q1+JRZ{)g=huDMi*2k1 z&UjBJMuf50ixqrU&~lu;19`7lJodxN-Sk|>vz-0F3x&4cArC%sB0N6!LX-S!FfTp`-qE2{3g4X0&!+m( zFWgzj8qMP!BK;`=XSJ1OK0gHx*W7quJ7GEJ$V1N9!gGNy;rT6~VekT;vnvv~-PRB~ zCc|!snK57Z5SoHNF^5wbvGu4)7o;Tr?ML76E_zDc|HOHJtu-sUqNF~^jyR zj|M(T+5G%*^d?83Cwy!bpN@IyYMk>fCj0pi?54Cw%;`DjBrnfOAp35peGKmLA)(lv zLLL&7^OpO=Q|=Ky_YWuE@%F8w=sE7S(D2)Q}bBOPNCzo=kUqUM~#k1p*iW}`2O}G^zIcnmYdHr z9eBw#nhmZ_))1irG0ovt5j6Ew-J|)jx8N0w!3~fjzwySGTHxK+w@Bc(ll-Vr0=z94n$+~5Ru zxW0m4vM!nH%?lvMH7WGzloy{86iA&1fWN)5Klh9bBCFzLvg!VbO@h`+F80$`P4;Gw zv0vt~>mNKPi~$eR8rpyGqi=5&OufOG|1Zw7uR%uUOpKs~&+5O~n7&vR>fAN{W(60l|4eQ(Uqa~T-F#-J2ao)UzcLsEB zQBzFL`H@E)z%tK~+a@WjS_ zH-6V4zWq!TIfJJ+iq>&?=P=TaOCz`A@w^fAH!?4zqIYf2gRv7Vl|zF%rZ>-9>r2mr zaIfVJ<$ZOquN?w^kjKNhzS55-ppVwhZVc~+UBG5$;3~`?#pBfe)aDqt@rDxq796n8 z*x@y-*O@mO2Jf2-*zXAW$aHuR{p<(dFN+OKrz)5>$&%m?YsK<`bNj=IG+HrP_>u%Y z8RSp@hixhP2>moD$rG>bUSu+8aq{AWcb)t{J7T^kJKiE$a!8Th9eOyp;KBHr7h zHt!$ETU|~e4dRb@Ig|H-{^c|Le?`w1^2KS;pTm2UyLTBM56zO#2KfHdm-4i|&?`HS zykeAs?}taE!W+6Ph0}PmGH9vZ1s`TxH$EU6dstbiWM18bpZ?)XGp0l5t+FZ4X$Jo1 zMC1(Pjrlg*eJ=;5()I!qUSsM{$=CtT=-P^V?f1vbJcS;-ZOB);1&|YXs@rxwWcADf z$vO+Ya+|Hp4tn5~;7QgWG=l{~FQ^B!4V$&SFU*}8Ml;ac-MddukYLW6@#ufp-a7s# zPv(^V51|S;e+165-YrNTN#U< zSaC02eI}UtB2Q!W8}ik^V+dkJaHBgcC(4f+I;K)Y_9fPN|gu;)1VI&*~P`5K(z z@R>JQ5#mNT_GpG3y3Ec&|KVpmW@)Kfw#EUwitnLQZMvH2eTQz=1Iio5hKA%yF?`KQ4?+N)jm7daGotKlW2R{)e+q_djt?T6|l$3!L8r=d#03 zgyrl0!Fgn-)@-qbl2U-Pd)Hy?+9U-vLyqxQKY|%fkdquZx0B?t9^H^jBUY>vcCfim zGRbig;=rBb?B1#jx(EDy?e8;hC-|e{>))UF!M^l`)-*n^&=XC$HMpF2dZ&}husz>m zkVtmO)jxN$)8s6~ zin+EzpD%s{rAtxdrUx&`v**c^5j`%s-%;7%Men`xc= zDGOY?z4pUcF!Ja5?NZ6(I%h?wP1N5~=t_~mj7{Jts7awlG5y((W&U))8NAaw?b+KN z&`7U<=G)${LWgq!)EypFbGPpklA&2~2Yc@>EoKYVnb2zr!yOlQLsDxKMn8NK=*{fs zw&O9!>DcstI18Wu#Cf%L%irhu4RG##LMaq%_y^|?;}!|_T`&g+&L@ht3Gp)&G#2>u zY+fOd8{#u?docHj&`HRmkH9nOlRmT2lOdL;)3z%n?6M|BahhtPHFWwA!@fj#o|0`8dnKX8GiJmHEO_i z=LE$%==^|Ry3*s6AcsDA5qP9$E7Zc2#s0KyN(ywHHVJm9AKR5D)BJ7e!Uz#PrB=z* z%x#cx{%jznOvK*%*1M7(&~);NgkM0Ev*ZQzxn07ck^OCg?I-lWS6luM=cz;fj2r9k z^G9pu*t}in@NQ=XESI8&UU?4a-m`_?mFanCtKtRhFeqVEb14@*VTeK zdZg2kOOIT+LwLF&krpDy>w3CK=njv>B=ncyPa*VyC;L*=fbr|M3Cl{Md9@Lox9SDL z_QWviWQm#VJul%F_WTUDp|>vd7u2u)X*1?VSNvKDVH^C&7&tewGZf}yk72>v6w2P; zP&f&koe$!^tNJb(y#OBTIL|LCuSvSLM*e&{nHm&qlI%SY03Fa|I)2?-VsQdqv~JKr z^=%+Ah2~qEIf-;J-^cb8a9*?IpB$sLXEZ(Zj;B5U`q8fhr|Q4?MvvKP!YSbV5;*%r z83{Ip|KMzVN-b&MLrEKe^On|el45TKWdY|!QOzYnu$)qXv(+mf+mVy9=qzw#FL!OBM~mxqTC1qHf$xM)Rj& z7J!k!peGrW2+X^s`>T6y$J`rtqQ@Midf*G}rXa@?JyxpuF68^jrGMG&Q8x#_vJ`jX zq(KjP#m0^5AzIA$`yy^+%hhu)Ll0pe z^0yJL>I0nu$Y*LQMX|x^oTGkZg&afuu&4UYF4W_Q&z7ZK)m@R-sZS$kjxbfX2G055 zoQH+$t6dvoSMgmkMO{0uYP>Cg@+K$K>v#F8e!#h~5L)-IN2n%2Pw&X{M7loxZkZ)? z?C+T;lH7Z8*;|NB{cK54-m#&bntO3Oj-GbKq>XWshX(CiLr&*Lf|7wH?-5 zNe6)Qg`y#++fwSM-bE+|Ma{2_E&)+atuXfL(b->xT(oy}TuMB;0aG{rEsDHlC zpa@`oX2=Tlwo+h^7;ay(U;Pyvz}Kk9d(S+h?g!7MSIF_2eSV-$XbHa>^r^hlYSlxG z(Dy(;Hrnf(dMais7Iws2HCnM2R&CUz@INPQ7FubqQEqwp?j zmqr2DPlT7*(O)WqtpTJ-NT!PBhg6p3fzecOpSqEajP3&G{SDpJkAGxPFrJ6G zWT{)0BW_GY-|6jg^%C^UPa#*Co4-fB{ADt^<9m9(Emt?{okU|0t9`aqs&5%5kS=n( zSEH}0qcK~F)JHFC;aT-yc<{a7g|t(ZKm}WRUvISAXh^ zoW`kew0Z>M#-^U=w_g#|k%#<9Kn!VoXOLRf(I1=y#0tSuZG`yTWHb28&ROOhb9l+n6Vq>U|!(Pa1nYQg`s;o zKN>O^=ef^8Rj0##w512WM!ip^>go@ES}HZr6sn3A`9ohYg`OW-pn7HyK)u|t>%KNn zwFdFI;azy1o*AUNaxRdfF>jN$t6bCvSE(@6wM&;v^Xy=GIWol_Oc;bm< z^{*d&ePI6Id$9F$2Vp62ehi#nH0&Tu-=d^C;9OAHS_tf~qzk~=;G&7}U8*1>^xRhd zG8anaa@qo{dg*l&Mnq@PZD82zT|eRc7#a0PO>%Jp6Sg%6&UiL@K33R&9We&6x^3lj zp&WCzJ-8E_*9#KfbV{LBxDyXMB?yPcCDA_A04O~Ol7|D(Te;S6KC*Mnw@l6BhBzz2;Z2xAPfgOK8 z(-f-Nm}dK-Dv&l|Km9juZ}ZXf@0(1|2GlDXg1WmubZ^^T4lDba5KY5flm5RS{o=Ym zah@GIOIQP(9|7n6qkM#C!1)Jo&K;-_9t=>@b>KW9W}UD$PC>nZv(F`suyc-_YJjt) z=9aKLK8r>H!-v^*!u&}xx(#gYqnfduZ8Is@8GY&J7VJ|E&L(0=&ue{Icpx}LxD#i) z*s*6rp<^=wGg-6Atmy>!hM`V8)z5_mUI0fIx%ByYj!cPNm8Xc$Y@#hYGdGgkwb{87MJCKIYxBgbn6?S(pL!2+5a3N7NZjk!=&8i0O3YV+@>B|UBjQt{hl zdY|Sbal)*eEl8%PH-l}He8R|Xa5A;-Z(Zh>7EN7VCH;Rt`s><1`=V*{rNVdck$%VL zmM_-|n}G9R+(Ai8tAtB7=x_8zec{xIoscPL7T)m#PTg70RdRZXGwCqUfi=s^B0t23 zhhaf1I#fneXW$G!mNRF}zEfs_53p+~3pB`}elyYEJGg~SQiIC_{GIw9V%C`RJi@zB z@}h#-XD3ksKD#5@vrG!jmc`Skz%xg0^X=H#Y|8>UIUvXAH9^6gQqZq+MUK63H9I(2 zM(=>FtZ^~h-X@bexPhaRf0jMJjjx@KygKJ0`|X9Efb*Yh{sVsN&_qGr@@jo!{&EWZ z_|R|i&27P5Iwp`7Io^_u&3P^K33nS}M)tBkSL8-fDdKZR?p?M6eiJKDcRQu-V;>!Z zs6+<6(<}2>tBd}$8?)vW4k4@pwaF61gt9&!?4rgG-VG`6K6GLG@L6nuzWuVqk?bop zYF^?VwC-xj9D4@PKu6T$h2I5-(*aa|E15I}JA{sp0_g?#J;$=g2(#7&(@O)~kIT18 zCV7R?@UkT8=eOA=D>a(7&P}30#7N)uLXD!j<`*j(rNV zM{MFp^q+yVL$wZHus@x`aE8T@7JSw_+)L==?T+Zg1F@gF8L=qofi?g5B#}PiGmU%3 zxuRPF^hq##{WhG39mTGF1MH9%Ncg&~(KK!=^182G`ITeglnk8p4%X+n_}#q_6V!iI zu_w5{GSDOXv3Une|LR8;m@7Q*xs0t_jJP2{uj&0_=4ymot_L)9jB{9@<^Hti4emIX z2==HqYLguJdp5FV=Pm`1ZoOn0{-PeMhDKRhbP~0nw?b%%_^kd3kM+Tgg>TcK{`I48v*XYB991M2%+Dxk3+8b<2YeIGZC8>OvGGtMV;=`9sViow zZBsMY>_`PQ1wNaOZekMT&zD_rKkhxv20Ld_9I&ms^M-XrJviPoo!YNx%*`)l(0iQi z%hL8-p~MUdxwP%ke%x$cDxF51vTof7zOFy!Ki0?zji+-zA84H5^KGLJ;r+3DHyw4i zrXY?l(t+Py9e9ZsVt7pm{8F)#Rlm*~{?w855qyBaLBzke38gk;pnZR)Ex&arkgT#( zC|U7=twL^GfL+Uxbe7G=Z0l$N>QBvKW{eo}Iv6!lN-1k9hmKdzWJ+jM$og3YP<}}g zH9R3>sdoYpx1qr@%7*Q^gFY2@XBhwb@@zO&P(a^oOK1X}ckV1%77uOIzp%$WZhH+CM)7E-`Rde#a#TdW~FwL?jxG2<9+@5&D29xTIoGn$ppRH#!3 zv7(FPVKx?Z_jjD(&jv49bNei+@&dL^nsB>%GWvz*t^GT5yWJUN44k)Z7|ILrzgs6F zm)<1`!n3hHW(T%Q`JEro@dBr4 ze7EI%+dV01^U~--;9_oW5k;3UdmXCICfH_lusoUjeUOgNsN?aq;S27=@FGmZxS>qj4% z`)8eE_$)^dE@0l>8eGkLZJE(7C0#_HVabw6HUN3uRODUrC0m)EpW^SjLs)a2#ktF| z-;Xo;p+2|mmqmJh*j1U-fvX>7(rh2_L~jk{bLVEzM%;KBR$R!<*r9l zNQwW>-;l*Eu)nUvziahr5%-)4t{u*8*4gzu<82%rzK-~Cd=GD?f%dE_joM8u<(nGE zkZpV#^}AclccEtKq7UxSiyEGCF^10kfOeK@K3~%{1oO%iXpwvKnbv_6I0Za2@4?)} z*Po2$B~i3)JHGdXAC)2RYSghMPn_saQ7aQE_mu&Efqoq|MsL~dEz7G5puvOS$M^F9 z`}7g|qVOr}v)P9YgC4l~z&MgVyf5fmhtV1M_e830OX|>n-hdsC+JF7%%|iaHyS=LC z3SP+T!c0(WeC@&lcPnWYa=EU7S?o|h)Z-)2-`IJGd3h*k5n@G{={t61s+^ht&-SN` zxw?H8)e8hKdb~9cJOiA4QG=LFJ25n{OM9STXKt7LRsIp?JilkgZF& z)n#b4>Z6aOyNQ=o$J2rf*a7@i%nN44k@p77Ubk29`lts7$+3^${09HIIEGvkpyR<_ z@z=d#=w&8q%k}jrMlXg&Y=PE?sUdi*$WNYtJJ-yFS_a2Z1KjCyw@%a%`g@hgIY(aX zLEn4F(i182_G&BaM8;AzV%_Uj-RWdv47CLB(ZRhf^`0fAHG%L+s`r7fT?%jRZ%LHf zYYmrPji6aA6KJorGtYk(LD$bgOZ4hcc6qFnT4H`&^RFL$9e(cr#*IS*=L%0RqmR)B zJRh&V?CTz2+YcO<-MOp~b+;V3)(+tmGnuKNeTWqkTI=zhW90PSAGuby&OFNyyWYW= zEiSaroW;K{ViT zHEe4{frF)#KN?(iQ!|=?9jl)BTxM!5sco8+(y?z?Z_pr`{7FjjR@ectvZsOqXqSb7 z|5G)d+~38JG6(&HQ4?tgG+}1rY&@G~Ps2OJkQ4ZgC+xaW`{U4BdCvo3Jm^I<$Oio9D?e=ZGdHGivx#DM@zGV{sR**>p z5koS%M)BmX=s)A`>vT4UxA8~aHW2lT-D*B+aWd5zB0gvB<(Ur?$m0-r_=V+sC^Y~4 zz<0GOy3Wn5W9g&?a^vG~xF@_ZS3d{eHC~TCKo7ngebv32jcDI4=q;D0(u-tsio~wv z<(sKAyjM@!hQ8Tg@H$Fv4W$|DuuqW;u3hSA()|cMu20bOoajgp7@&^$eak*iqD=c} z+J$+|if@c=AC4r`!c_V=t~GUsHkJ1~_^YOs@EK=As5SOy&Ny}Cn!E53xCou4U~?uc z52bF!Q8YMJSCY{%nm#3AZ~R|B`Vph0f1GFOcbRY+JegtbunV@DvGoU(;GH5Lc)FU6 z0nRGied{0IV?LA7NAgCFH>nk$K0r>f;h4R?9n2>`mC>#U)W~gS@=Mqs{Dt%U@qQXN z)X$&=xcjERT*TGjT#rV~uQ{@rFYgVlg)f-v$yNMlNCK&H(kNj3CGJIW)D~wove#3- za(N6*zXVREMLn`|my!rhi{tqwv?w{6sytJvi@Pa2BBIC}9E_~-9ijIOu0DFpIuZ+N zy)m4mqf@Bm1|xEP2X8FXWb9qs<+!M56MU#0hUD_SwZ3Fh4_*~&ciVes z*72Y>eSeM5^4&LKOM73+g8qE=LPK<9{Hf3UXxjHwm#NWHx{wz|w%67O6RhEDRsijf zuqcU*PBfX$j->jR|M8>0g1PK}<3@Z~f^hyC;)5CPyRF06-eM)K8;V}>;0;Uf1*8u`*|WdTka>v7a5-fs29Epgr~vA3hW+dW1r=DuM>It(5$z zgP!;N2nrtej~{(6=qddd=XvdYg%dZxc{WGwARWd|l`3fn@~%O*H?kY(KfgtNVHNs< z*??DY7qMde_jY_v2RY@$g5PCn$G2f0b`|cF9ZdrG>Is>c3xlWeM#*cBV8)F*G-}H# zz9$qjf8-U@qxbXro=G%(4|EB_PVw*rXrZ+S|FHNz-v!M#Sw3>$knjAWx0Kx5fd_lO zA^F5aQF%J}6|W5FpgNrLWysA!>QQc&5PFK7;Y!6h?wspSji4VGuvEsczxJZ{onq9h&M<&|zhe#pf~=k z2752?qhHn<{$FN);@o5ESi$JFl1$J$dbC_%6Uxw|L(V)+zJa|2&e_P#{N_GqX(JVM z8L=Y$R6A~EBBuul;4}`mJ7{{%njiA;EU!We{K|=%_G+1F2(l=%3jS60JHQ) zsP9f6;6~pP;Rgktyz3c04*BM`JE`CRJ>>B#V`v%rX?5Rz^7bd-wYn#T7CRc!{kljp zGD@MRxkls+jwm&TCx~AoI&Tz0rtqY&Yw>_DKMK#=e()JASk4tT-c*1cEr)7rp6cWQ zT@L8D?k#5H?cK?IaU?A|Rlvr!@}T>DBB}WmEqlMula6~w()lv#8I>5=wSxb@EL~4D{4~cXV6c+UlL6_3EJP^4CzEdB*n~!_e#GO z^yXa{&4XrLRyRYsup*cas?ev-eZjwm;Jl5GqgRoe_`z1*lV$|i+#2x z<7(NysqVDJK7zblZm~9s7!|o5_=L(1JY^GL8^^ohPMdvd=;Jn*2oo2qh&h~KyEdZWueRDon zUrv3}(cc?8h)*t%QFuIh7d10@S%Xa4*|wYfg-lA_oD zMGOdo{$3*07)eaMrXysD()PUywOwPtQdlynnuReD9qhBC}nkYnU-sbEvw6m%A`VuN{ot~XFl zYjIxpMp*KiD>Bjt&K}yaT$q+gmFUYYaR}$iL(m)O0zSc=9PR;LoBuv&Ys_5B2iL++ z3EKV}#uRgB%qkCjP9e8|^L+kx)EaG4=+%H1d~SDWXH7)!(Yqcw^oXJaA&Jb!>rroO z>?ssLL;m|Go;MjgBO~JIZuS|z0R4OyODV}~^Z9_qUgS|1LD{a(eAqZ>x2A^S_vy)R zoq~7k`w((2u;Vw4J!wZFeAW#kx#?ps+Ij-dwhQ?!wGUMs4WSvk*K-+q*WuwIbVRD) z%g*`}YaC2pK8+~* zsLIMtA+IaKdG<~$7w+Ob7Y#@LCKFhyLrVT#-5Jp zEB2~dM&-yi61E!g^}zY|H0%d0?!lj^z=gs0+;MUQzXbo;Iha##F7`ye2k$%JJk}wd z&-(~&c^zh;`FY&rKn%sAPx{qlGk-8#O1U$Wsd3jbp7#M7FAI~1ijVWxm*ErYl1Qr0 z<@^aeG+!@(7WBv>{uR1^`CVekG$@as1s6BAO*Hg#XYuX#y=aMJ1PRIAc(AJ{E$IW_ zkyp+5wb{_(22b58wJVnc=hFNT>VDpVUxhYil`Fi%Yy5dG=Hpdm!SGy&;$w0G2ud}y z@U9bYogGByqXWr(?_G9%Fm&Vn;9&zl`gYAQD}>KVU-;42tLI1iC;q7u`1vmVNjUsSH4zv1rEi*zdZTA+`Yqd?d7Co@ez>!enBb0{OM!$fx!vQO1H4er-FvhYluERf|l%9bU9! zMkbI!egcoPhPLXcIEq{}ogV-v|HM{k6)o+>j~Vz<9WScB^91-4RfxQy;I}tbPD_@z}1A35#88NNJT54$ZgniPP~ zqD3d>;fy*3bC#?aVkJiqH&Amqw{d5E!Kb)}enk$YGsiATbQT^8yK3`Tvrh3;+7P(Wid$j#)emCl7Fe zW^{bXoZ5zx59-N-KPy>YNg$;L#$Zo)JL}rpkHiA(7PgVI#2enEXBt6Idre~-A9zs= z<^;vZiQzVcPd#QcjxH?cm=APlf~ojvD%*j%z>N_>bjf}Wvx5fa#=QYFDmj)d-VeXC zB5+UNwqo@n;iuQg7dm&Hh2e(K#Y*>~sqmw>ZjU)pw?B1U?Z;=UEh?3?t37s|mguOh z4=KqSy$I?3{i@yQKOaK={8qh0)qfi1DZrB%=BPUNmQyLt@RUW_sy4v69b$OP+PSJV zE}7J36nOZ(7pZz2NB`Iu{h~=LR6l29M+ChKwN9a`7(NRjzQ0XnMpv)t2*Kqy<0k z+DMtov!^$yJ>hRB%Tev$=R^DTzz6+Ypt`jme2=w()U9r{s{8f;x^x+SS2lU7ik(4p zxzHD$kxr_*kWflE=}o2*UDZQq7!JSeMK9q;zYy~)V|=dvy$1)!>`*&gQqnfO<7OS_ zsKZMztFi^ZV)r_=75bt9s0a1`I;B2{x_c68kiaot)!Dt|bQG8m7fm#8DrNKnvE_T` z{+f2vGiiVwW-Hq!YCfIB?ha;Q+6^I^T+BtgEC)Ykh(gl@z0hBeQ|X3zfo8(wcpBO= zmEO1Aris;!rDY6S=x!QKf|nFp&dKzms#4P$yW2;~p@lo}p=NF=@?Z4$b~JpZ+2$I)I;`ovJAi(eLyNiIQq8EgzNDN0-9{(}T|*oWzYNd8@`0MO zmR{s1hC)lBmu3SnpMt&OM~fzCx-7?ehBwCe*eK05!~>xfyk1H(G@q6QK)2AJM(p&~ ztX~#Hz0dhjt+KHu2s>_u!1nTve(LA?m|H14sW1HKyWYngr1z)(bHe;H>J;>!H=*uc z6mVK?Sfu=WXKjg8Uo!*!I%7xF)W+}|0{^)_?!=wPXK7xd?!JICyxd%=xec5TyFyRk z$U4o78JXmScY#KzG+)nxU(f`+^zTH?%)-merczx))*mftiYL9 zcf6-*@0JO#Jk*stbVc_|=!G;w@2I(nSfNOT&KdM=vU-XaQD=O7gdS1HVWP1-o`#!) z-~Y>5l-kA8QSf8Uw}gw`pszm>v-^r_xmba{52KnS>LAG%$6bI%@#x?A$|f-{I*N+5 ziIg(?pva*$8swNrqt2WYQ%a(sv6@IU^|7dhW`39I1RC5=N9)oV{j+@u` zVp0NidSjuDFN=ZiRXp{7*hL!^5(C}>G*)g{XrrMaw#y-!X1g`i2KPbEBMqa_r~5?1 z6}W#x1L$o7b8%q3aH`kan+%`VsoiX%sSx@4zOGBkvbMr2!`uB2oP|goP30N%j!bbT zr9ZECN7k_Mhjvb9fJ+dm6g6=(G<-lC&5KAYH|6oHaLh1SU z7&_Fcty^&=z+y>jLP47jJ9J4X8BS_seC!8h}1(EQ!wOZR8I!ir$NobbC)?iniW`a8fzs-_f zzYe3V&9Kt~`{?gLzr`_e-XA!78MT$P&tMM%VuOWJ#=%=8sv^XG98rBapn>g2+ zPArnFCMZb;yLB&pAk8yUP*(?>cZRLl2jDyh_k!|zGauI!dICN`A0{y4yU>YggxIcT zHY-I%cL1egil+YpV9l#GEYpq{ni!)Nas_DXPQV zcvnMpYj^Bk#IA~%kHgjP2SZarAG)y@C#pZ8hW{)i8rmy!)o&^y=>6Czaz5;(eu0{Q zy+;I@M|-NTMMTgE)IVj9C#yHL2&ZN#fwa77NAMHCJ%bHKA*hhcc1<%S2mp^d!P3j`~g1^zA$#!i0ILREmg5iVFWBs&Dx&%J|6XYy+ z<4;INda5)?PA5?(YXx5TxuJ}MnM00RV?^F$F8tf*vki;bEu%pfY8u*UxLF@_UCY-Um*SVx#3fhbP-Bk<08M`44M4ex^ z(R}KFee?r=Mp0CcKXJ~tHSo_D`WK!@y2ev_;a3*65L)Hk;wUBM1Dl=`NIy=-Q2F>f?6#gCEp8l5ecX;P!y+%5`8tA} zbk{SjwI1~BT^RM9zLFh!=Z>9^p=A3xkHu~9pcr3h!Mxwis@{5%a5ND8)1#~ob&C?_ zPh(q@vc6tEv^y3tUhmE9;6z`V_}YttyDwlPNBhyt@9q>TdnRqq44_?g3$dr6OdN>% zKwY2t^rE(HS>;63ZJPdx^Sy_Iq|eY*%STSJ`+krVy9K-gW1M}X_DYL-q+>1t+U72= zrFNs06bv7-J+CXX1{;s* zi^bj~HF#DA;UAfaJ@jdx#nRR1k6Hay_aF{YOSe&Oj-RmAo8SZ&3Fx`X7@`A}fd?ypCJjoGtx$(OWvTYjPwC0gN zegD3XRrL0uLtB06{GDtT_0@+8^}K27;mK@UOFw#O=|TI1i_&Mm06J~uiq!!5;@oGU z$SLO2+K0DGJN$`rQ>)?9;uAOrI{_DiXlX9y2lp9aeznITDGGC%Z-AlUu+Ne= z>Y@{okB?97!I}W)->~y5Tdi2lom3h;1ibxNPnHped=UPp^1Ff+e?@Hr^OaVV$G+EN zKG+|cEmMow%r^04jycvQRwvjj`xv@wfxb!aTP)uqimGztH0t9E_RTPY5+7lgdi7g& z47zhy-o%mRwWqA}t3aB&6MMaVD%n`%WqIGg-#x#H*@N3Wp<5L7o~~fouI{9E###0- zf}L6GMtzTk(b_>uRxrKcePH33!+r+iUR({vKA3H63V2FB&>c=azMCDrfH^Ge$lTI< zJL`-2!4=PZ>0;wWOufg4+F<|IrV0!8;kqw*W_i%zxDqLPY5-Yo!=C$`6tN8bwNX{` zDJL1E{lGEUnYt$-2g24fH^rTXZVRQv(JNWe91l8=m@G-Po~2^GUe7TI``tFPCTqRu^E~Y6 z^2=jeHeyzV^P@3sqSz;I?4FRk!3XKf+9P+7!Pmd&zDXj~>#TaXQHNPG#e2x1hSEQ| zN&1KgI<@pqoH;!sX*A-EMZmf2%PdK`CY>4sXI)w+={HWN*Ra*SVV5QIc1jvF5_1-} znlZzBX{3eNuXTNIwkIK#?!YJa#h&Yp8Y%Q1vD{%pSGGD1&j&c+Zqt%k`YY5e24SDC zZ5HeHCYHM9Vtzz(8yngunpQoNlkJovEE9V@bVtgm!@?7+sRDIP)R6|=Ji#^x2Gaw~ zlnvW&M1habMPQK@ZNyt>Nu3bGz-8hKGyjjcw#(UB2MgepOIp!cQ z>;t-ub1-ridp-p_#Dg)rqS=wj^RY|uj0df{x>TAwB7lZ!xS>DFiKbUV>6hhya2^Z& zkbmL)yH_WvzA~K_1Lw-YBc-P~sO|R#Z*#v~8uL?0mx1%K#GO)d3)Ji2Lq>1CDY-!R zG9B;RRW)VTLQ<)&C-`&I^w$(MJP*UcTs;eU;6x{ad%v)a0W*abgl1p(4gC@9;+j~xmx);h8$0Gw z8Aa!B!G<$j*);TF@Aj3`oVF3HJ^(n+izl;3F)VjeFm`TWC$h?q%|(BC3bf|GW{zdb z6W*j98%@G{T~=-CK~CT>#U?jmhfLileN+T?&3=|PUvi~w7s9BgU2EvLx{(QT$W*Hy z?C>3TN`4P*y9ooCQVTn~O;MAYGm077dyz}O016s5oIOs%9MBtIs@>Uz)h78+68`(@ z+VfKOF<)AC%Y!B#m?-5>2p|s6PgQDjQR^mlyKoDr-Kr3aCCGL3{)O|D;ZMXA;JgGl zZ>Klni&dDZ2hIm~cawC!U}g|_a{b0hpXwFl0h~>jL`f}$wzv z(VcWOLg-%G#!S`5ldf0=(FIj2<~Y-fCc{SWylu%QW&zh|)Ja>=(#{`Ais3oAr>;Jg$#pZ#%E zT#3^`ud#g>LkN{ygS--|B(YQ?yUgw?*G68MD~kPf625qR8Q#oCa3h zlT!HzlIh6FVD@`yCVD6%9pY)@(r;450qidV&h^LMN}68qhXbIc)#ifKWU3FnME&RO zxy_PGq6cvgu*od8!(gQciA2CQ> zjR%FEdMswT1dwqjH)xP$t8$QQhVl!rxBZ&M3Pl7R{};~L(YwU{z_1Yrosu6l9Q?W~Z=yIuOe=xm7O~Wo~u~d;9KwpQ%(p;Zl$xZ1)lMAA0^#o3u zy4i!y)I?HA*DjL7bZ}j;^K0c^O{sbx_LIKAK2Z%lNvU+B9UDT)ufR;oIP6Z%j63ZiYd=1BdWyvQgR`nfyjOR1P2>~7*m6_3VAJuycgjGX-Kx>k~Zy)R99 z=Rrr*8R9(LfF7M$WF1JXfk-)i+qmO91FPS=l zrx86SNhIVeyH`Pz#BHegZlfnwp&NbmA zwv!K1Iik}PO=>7W(V#`(7FAR=c?{0_0)%$$t)n3d~pU)J% zMGxBjHj++hxrp`7=$jzV`S^ak_^!Z}lHP{V_%jQ{v~V|?zB802d8deHw!701^AMVZ z>O_Y+59+BvAARK(Q4V`HUK9ZBnjK2={;IsE*arlh^Y{ELOWc%3Z&3p|eYI&>;~}Y(4@@^aooMO2Et#xP z)9AYDr{!wY_)WpRA5%O|X7B|%79F9NI7BJ?3%vbZ;g}IVQYfnhSAQ6Kme1qP%2uhN ztKURU*Ur6`ZG9d}8^^>`%C9C|yA9wQ&x@nGZ<=vE*MT=U0`nE#b+RnXPF5U_CWoo# zWJ4|@kNzA<8trz;PR@1%za4yZK3{er&y~i3Cu+EAuk4(w8!b5yO1Do|$=2q$lRkDV zUF}ybYYz>pq%}cwf6sT>MEK{Gn{c+-H05+ui0fwiQFZrEviEg9q^RQ=9Z24G0!N9pTFjuxaFOAj%=N0OD*-OmMw+GHiLkDtm@{+OF z31?sbxm?4n?c-(8sx4D+xwo+ovpqQZU-CJZ<1thdj6FF7!LYEL)QjSCUABIhp-Q3`p%X{)4N$ETvwd` zcfLka@`+X4I!8BJHaCL8UMskoOjpvX3!{|eY>u;cqg~+F9b!eChQghmO~bCz2bG-H zV-NBy#D3WK54hRWyy(QC04nZX%S}Iyy}%)UG{WOPm(?2cw)ecLOmhoYZ|O%aI6F6+ zn{b1c29ULp8}$xqFWU$$h1;VS&_nE_&pR1Gt^S3x{F}Y_061p@=bN>ARBlWE!TIRd zHf7pRl_UV?$~tdZ)jb7GYVaFgA7s|pr)dwIZSIcXyn3e6vTm4z>lMPiS(Z#4--1)# zDu-KM1FroNXxD2V;!d%6y4wajfI3{|c5jWL5bzp*`F-RP5c66dgf`IuO@3uWI325t zC;31<{&YboWm#ZX;Msos31}isa>DG`P-EV5MF4m-vGg#vD}NZXIk(Et$L;coi@gr* zsc)EHI9$$6w*$9!P6Szt`?%6LS6T|3+p14;C(+lgm7vkT;TiWJ#GL}2LP&A38Q=Mu z2TeH`M1IF~crRP%`IHAxr#b_EBWfniQvJwW)}8n0;Y(R>um@J>8D~7*k8bFAVrNYl zw;cDq265!h0pn%!Q5%0@wSazmb+oL!juj}gH6uC}S{BKDRJ0?y}$R>>wUO{4a}+0jy$Tc(44H*gMbY|jl-B-8%a*iUVi z%00f6NRQA%(VM-2OD{m}O%u7dPZ@VJJ%;Rjk!v5g$yH!)`%Lf^d&Pd?j-to?4fBr= zhPCGH(n863cs$K9)8P-z4W=KcIgd5(!uNqzPYKS!Q5ReB;g@~r*wJWk#_w@yCp}2{ zC6Zj*@8^z=a-&q#Hd{HIh=VgB6x3d#(KhT##e|TfZ)?X#^Gh3ui6mc<~`{ZqO~ia-~}JDHC%O@Ea?} zrK)NkA=d`Z2kNhv^}VjZ83YdA&(9X;(y`ZL0Bks?hs+upGKac?SKzl;HaI?+B3~ua znLXvQULxjo7GWmB_=jxxvUoCu9>mw|?%Yevfkk*>&(^h3+_1z*y0lwPw}v@#8pAQO z_6GgCOa+0P8l0sZC6rmKD9?+lw&aZ%TY71z9 zJVfmXI0s$qCZ4^lpkL@4W?wQ8Po|{NR^Z(8wyBue5`8P+T+`N4tO-jd_gd`UGqV%F zV4m_oI%=Uo^Ti|4@ieMAw5;5DUp@Ca0zSo83Ft`Y79g4)q<^jknW2x8UJW));Ik+>L9%crJzL6gEs5+8@ zXPAqZKDbi<@e$B#FcR}E(etkfBZo#-;;mM091U<*&Nmzg`2j18eC^^3%Js6{u$ z48V!}&EgdkFN!S0z>g*cbPt z*JwAY-29?UQ6EZg#xD4KAN{)Kn6LR4&J!+riPgY)J#f~G2okFn|C6Vj2w5ry-d95Z z2|UJcyTs!c6!4AU-}X8$j!sCUSm3Pk`yi$?NhK}dEDmieh5AE72DSYI+YKc}F6MQV zh~>UpNFUvyZ;BZ-d#4#vi_tN3#x;R{-U^fqu)q6#ft+-ll#==PFzow<1{8LJd-Q=W zfl)l=9@r#BeZpQ>n>Z@&wn<887C^oAVkv=JE-e|2`Gs}x&$s7GPG%m|xHgN8Sy6sL&4JeA<+8hngwK$N(`}Ngpm@fr4HR z1D-u=OKX}c=?nT+U0aVAbxuM9(;GYE?%fot!@=EMoJ1pIhf12Y(D^SyKT8=a*+_Us zP9U#bvRT>-z3$g|UEl7cl)D%4;V$_0wKY-_GzRBIVeXr0u^QiJ*$3lk@8n04Qzz7c?#9xugq_myG(Y-*oc^}|U9QH^7w$S0Z6+tnBDy8{}-V`1mPK%LKTWk7IC3yRL2WYa* z;BVM~YwEtQ2isMR+Vg`z;_mcgSHZ*Gp5;%s!aB2U$o*~bxl)ru(%_$gwDY(pcJ3C6 z#};5WTt4=)_u6358*^JN5B*b9YKXfU{i9d(Ap4j%Ni&~4^zRn67hq_S7lkQye zFadXyBX=(3WN-1KU*Si}nkazPwE*{cX_lDkzk) zFc;9O6n^{rEs35hsiF+u*+V2NGSm8Cv3}@G&snI0W-SohfNsmPg{6!(KjktOq)Q`m=s7Rud`U_ieT_h zz%^aCgoUGrZo1?j?&3nkw(Vbf{L$~$-8_pw06z2Fc9>y2rRIKUV+IrTimc|HIh!B_ zxx+sg?AxlU)dKGey{ga)N5%ZJN-~=RJ()~%X>%Crd(q&Co?I<0_zQiRT<9Hjx-5BN z&ZX-f%(JX*&f3GC1B=0*LB0CqVFf+jfEttkXqIQ1Mm6|brT$#DGCYMMc<3J7iDE{u z_bl{c%mWs)rX3RKu`zaCoy=xd&tqwpKXk|k<*~26QOLREbSGy8>jjOGr!m-LAq!%w zS_P43-#A)rY{@(kFT8&hLz;8DusYO&de%pi=SUq^2cL6zax~c&_G98EAJS7q(a9X1 z-Gd)KkDVf317@>dkZi|ctck$%bl+><`})*OD)2nF$NvBPmlITr<-Zy-+FJH0)35OdrOy~5U$ zo~oW`D(Qm^{chujV*N2CZJhzz>pMp>@`N^NAh;htilr3rduL{%b{A78%{qu3LmM$` z@1xJ6Q1^Sf6h6X?BbB8BB2W;Z{BPjx+kdNi(J4zO8m8)%YGJk4&ejKp`!$@um$W-%j-E|g;z z&f0BEXGIXD90m{gSuz{u=}%F6F|%=T8e5(1OFEBZsFqo=Z^L})oE`WcryZFkdQ#WH z3HZ1&m~8=npxNOlGJcl9THsumitVb4yj=J8Kq&w6dZ$4ENG*>wU}zYF5zHk#ZgF9q531t!zA#EtOJ z+tE*16y8`GdIa`739l!{Ng2-R)XM{YVDM=v4+6mBT3f#d)wL|`n=W9_!8S8}I z4xezQ=HI=*+JwiGE9!oOtE$;ff7G!LA`ZXug|+mLrWunH=OyIf_yrIueG8X*VhgF+g>>P-V6{kzr%;1S5=p- zB`w>fq}#B)!}?34*|zBv2_NEo)7;#HnH8evsDOX4vSTH`lw`34v$U!x z)~i}UWAJ|AxRq>S9JCICz&m|Wz-p>fFoy~r@2E27XqimW$mP>DFS26HAJfT1(zklb zQl7_CiAy5Q?e&x0g%26f6my;at<^7PVt1iBf!-|CQ4cr^9{|mhNj19agl`eF0{zD) zy}PNSu3={Ok(?acX{wVD(|w(VewoHY)~Ya&hU|-{iZ1(EO78&L*FT>6_sV7NkNwHK zG>#t0H?ke?F?V7MeS_%-Sd+XUDq0dt0jtYcF?ND?m=i;{yR2l!(U@62|Ih6FHZRn8 zkbD1sUhXXiSAH?(Anvrnv- z3eQ*4D)>_Sf;CdPCF*DmAHhexK2$x%Gm2)Tw?2QO zxq8*x2vStwJhdF5wgabeTn_e19PF*u!tB~}!W?OKQ?)NJtT`qp2fqs}ZgwC|!o6^A zQOxEB1%ls={?61=cBVFnW~_`SPdPYCjgXsE#E~|?n4JZeK`-MUZIjni;PamTsSEKl z#GPL_SV2cy!Z!}S#6`AJP#t1Csj?Awawc{T!mhp*If{=^ud6cxUv$5TbZ@DWT;M}~ zU*94uqV2<&GZilVdE=AQgNq%!YTl#ad=0(<1cH6-(c;(TIbNHiOSM)=-ZYz#LbJ)Xv z${BkkkK3yw{sKQ_J~%wic4}V^yJhV$qttzvdR-6j=}^DzQK6|`p^x~YG=X0KzRteQ z3!;k)aqqMwHrXVYMuD@P5Uyet143!U8acf>k<1pXjG%#=|ItJmN#J3jcl`hD*-Pok zhnOfRy9M-KlvlYaO%x=-H=4yX=9W&xoFII4)OuI(1pMk5_>irKhedgIVgZHy@ zhp;!<1voD_!v&smv#=%`WVgMLfChVm+H-j`$rp)YLwjYE$h5GDFN%y|0V9 z2>IfSa_n2|XQbZ0C6=0OMov^XLhTk2L&;g#K{IQd`qRp2dcHo9dd+uIw|oqo)$r|E zu4+5P)OVj^-wNlZE-#3nbBJ#@oSClP{{&juzp*nYqrdw5_7HNY!0y7jAFK|0=g-BX z#(TM(1&0Qc-AK%&UoByQwwSMdhgsjjq0Ar$_s;B}9Y9&Vp@(WI{{!dYOTGD1h6)O4 z4!`>K2Iu!RjZ)iSr_5muZoW)GdGH~3JiJ7+3e5f>-rHs}N-B3(k|E-d!4LLID}do& z=w}`FYt2G}z%Lz(-d6EgrobM<>gmurxRJ=NVL!-&+0fuHUeEM3l++3~A8%B`T9v2$ zt%;$&afu1gu$qqNq9XqV>w*4P2gK4d`ZreV&O>aD{^RO)?bI63!{`kEc1)$KHc+A; z{vJCSCz_}gP2y-0;=pM)EYve^#*hwX6+0+x)z+U-|ENx+=b>}e$qvzE3tRHt?WHxo-gB<`&qB~*bVm#yN?~_G3(XXT|4ui9c@D!XwhVe{2>rK|(?%ua_-9^UL4 zd(hA~$JyGv#cSqSi3MUyk^Vcer& z^>^_4Ml3|Gq;ywnOo_nE8s9{J9s;dZ<5dj2L662DHkL-skkOQ^~L; zVm!x=oK+XZ8~81u-)D<&b1-9t=Xdn2;ZnvB>E^yY3YoblpR- zd3`i~wmRMl^~^;$gZ2$n&ngauUJCfzc^_G2RWQXwLRb9rKGp*L_Xjv%t~K4jdijLX z0o)hf-;B8-es+LeRbU_er1AuchJF5jd!CyYz?ZgAP?x5#!=y*tipy#AyBYjpj4tP_ zp&)NOrwiNJi5ZCsszol-bMhc*UuPvfgFkuey;B;A7%v9DSKG8D``Rm=;()pJDQk9R zTsj>ch-buG&K5s_&BG5=>aAniz_~y0Z{O<(TZ(-*3t|6O>o2m5j8qDPFaCO~hK

    Tb*6OBK;DGc84^`Dw{VqsO1K_)ES{kYEevPAAygxjBxO&gE zSPC7A{7AA<$9;^U4x* zMMGcs7GVA=zK=BgC;T=rubZ`5l2$0m5}4Z>HDMcCrIQKlyvGqs)^bGp-?8^$=P;&w z9oqiDq_T51YX!fd3EUj?irL2JY19tqU0qHk`<;_YeSy!w$_LEZH05uN;srB5v#eXl z-SLcM4QQ^;l_ydLUcciysxR-C(@K1P*}I5|WYxt&$=0@sA1z|K5dDeiX@7Row z!88z`88~nkGpYjbAPBs{j2t$6b1*r@V!!snRCdJ)^=!nh56v}M)1U~Nf^(+<=hWrs z7a{I#c>UixQhKu>zUQ|zs%?b(HQ_HVT!kHujgdzf4&oX=O(Sh!K4`g~INw=8_chSh zUerZe_FO?}I8$6@Int3>%u~QGowxibjr^qi+n<}h9>kjWg=Q)8orR9>Z1y=NErQLP z|IB22aSk3fK>iZBjpe>cqY-_fE9j?U2e+our-pl>bD511Qm7GpextU}*o}AKRu97U zIDBV44kyxwVerpqTB?2C$Z0C<|9iByn!~)_XT&_mP8+BV5l?x+f94boRBu3T*UlL{ zAM=rFKh(V&G_qFqAEBOH5Ji5l=jf4r)ivPM3pg-z*>;LIs~8W>F?_$S&THxSLgd}>jSa}&M?b$gd|kuq z|Khx1S0EpS8ePM#)$!#|xSfar7UFfufsveqy=)D8>YK#=RQ0!0&?3B^Hn)WojviJX z?uFyKbg8G0lEQH>*1WnW%|M@P66}AKl|Jj#1@#S0yf&J~94k=YXoveXCy`kqe>c`f zJlrIQZTg6N3cq^)`7ZX?-c)*{kJxf0V1lO8Zs%^AR5L(Xy#udgp!r#hMn4H@{BJMopG1^n|GV4G}dCuMF?(ka-v$It>P zyFGG1`1Z@p@XjJIoARK7V}Xi`fx27Ux|h zdYXZY6>LaN5O!21Qe5d6Ha9Pj2IAUkmJefdb%LlVeCFH-gIFwfNgu@XTij2ZxnYiD zH{t}dX{)6MZjQ43KRC*dTBfBbzgWqs?@J%e-p`@O$+v{mlrQTxP=?vDa61yvLA7i~dnc??%`h@GuvWR8p(i?Iw%rj=CGf$6L%0aE~ zWc$p!a)!HHfhKneXNT>rEC zAEe4a*fadzt?AFCXWfIy0Wr+gHBTfBzhJuF8)v<6T#7IbrAv5i^Uhj&HWNGM4FAD7 z(>Z}E@qU9f{}<;JTMPa+aCXBr&%Rv91!0$QHtb41dI)!?je-Jzt#o9rtb7q_9l*BN z)8@EiWx*$;#f^~0l_{xK56@%V zJZboK1*PJewIWlb?%ScYi`RabPux5{l?LH6A7&Rw*RLj1T36_d)gG3@;t}iNJNb8~ zq&CN~3k5dwwDOh|h~D^C+>19$Yo%~G=Imi(gG_!)6CGoz8n1nIn={|9(G(Bd1}T~` zOWi2ykH6LN`6PW@6HYr|1LrmzlTtDB(y*8I+ma=c7kJPOz55!YIZ_oDNZNf6SKOa1 znPcB~1kT(NXJ=^w^ky1nNq$sWNUJfwc>-|-+H|6X9{V+%9Sz7{wof3ZA%EiBp}R5f zsRzFSoafBS<#HdSkpu4a>fuAUL8y^lf&Gj*`dHRDOF=8}>^z;3C!5({NxR^0Wu4~9 zmJrGbY#XSuzFp#Y%S5jx3aZ|4kkSzxfL=FG;>5?ED zy&H8=yk>i5$ck)J=@ved@ybVb`Wmzx@f)3TlVlA$Zk*t^Pkvk?b1#EVHsYD9L)Xf> zzrgO5E;x(l7s`r5QP)TQA}cr|TM8bH8}3ofD<*5bHkwA_^Y`b9vgc8eG!SR;z`8=2 zVn-Oo;QiuBsj^7S1KkC-N7)$JTdzRMfldBA(?^y9Jp&c66=M3!rWyp1+y?b7Un3a{ z3#LVraJFi;lg$|xN&_c?2i_&q(hEJAy*P^-_R;T0jnE4Bq5<>&+OvaM7e3QKL0S#I zF;&TBRHso_*sw+MVD2LP_GsAfwI6-CgX_`nhMlyzIh`vXp`>`&z?8)~oa1TCVd0vO zPP@rTsNGcq+m@3%@}2CUXEgvijg2jN#d#&oLOk3`dm(Rtx@ZU3K*tHG{K9={f7`=R zt!zGXGPM0iASUUyoe#a9OnYDtwKYfhrZM0+;9m5xt>Rmt-fW3;$29j2KM(q9LxIV! zm#_K#UeFE2>wV{c@`)c}C=~bT=ch)(6y$x@_4FZbsPYt!fva87(R zh+B^LOW+$XzH{U%3Kb-W4TtvH!ELkwzY+G6pWl@4a!W~544`8O1^eg*S| zEv$^f9z%R4S?(e91W$4hKJ$CgR3QTMup|3H3+{!X(Dh(2#rA-&Ui^`-f_BurUf=?` zR`6=)0II~ZKhyjyKebgLu_?%TSKi<^>Icz#H^k~2uJgI5BR%uQnQ{6ke|vB!4OobC zu+Ead?EoFE$>6_XAN}F4avJw9oHb6o;>=OUr~u9vpG@XXAUD|!Us3mDAZLeq>2OW( z4elg!*AFSEInJy(@`qdnG$IzlhPlrpd1K_%-HmWw%v#K^M{i|0?6#ZcF}}q8A6*&) zqc6M$;=Pf!sA&gv7Uq0Z(8sC3aP1($sw|BX>`@Q5vlj3#b zaA96Ja){BmwsM7Fvo(PXWO&|9vV?PI<7pqB&EMbF2_f%eDI2eMV>kWzU6@(H{Vnd9 zBXk4*>K!m&=@l<*n}&Unu=x`>60Y_L!X9M!#&;bBYjDMtuz7Ev=E59s`Ey{y7q4jv zeV}RJI}bTXkM6=*J)DoBICEXQ2~z`tsTSAts;7qV9cO5g7tW8m6#nHT%;N*+hJEyn zz)6{G`KLW=y*|gi7^I+{O`-WPZU`5FoFxY5FPlGrD>qlr5%`LZ8adp)W2hq`RvA8| z6`wL+NdY}kE3oq5|N5+?@37(BYxnX=Uf`VqhYoi?@F5{M2Z8NONmu9ue(yO4ocn!v zLBw1@#$24Cnl3^WOQR6{7W-*&!it%xv}+FH8M7rqHgMjJ=k)HjwZf4Q)a&36HFxb4 zveuzbH6Hf!wglQ!;5?2+{8`I{Z&tCi#|kn0x-y|CD2kGR`K~tGh3`MYXtfDyhHI0B zZ19?F;I}Jn#tNIjBZ}{ad5}hZgcAq+!8O2hy5Ce7Y#czTxbGL8Ero^61L<8L&YhGo z!h6iGcqG6c&RGl23xg><7N6;6B+Tv_N;kccZ%*9A?kXB9LGzT(0~eSVa`l2TzC2hG#@ zM@>;L8VVnN;{snE0lxvC(67F|kSB)*FR&Va&|J8Pdm+d3waQ_Ea2j(igME;XbWas( zVO$}8n2YI}EjT!)k~glo%x}B!73bi(1@LuyN(7@I%re3Ut{;9{II{@4m@~l5-f~U2 z)jFO6VE@iXt_i&{AD;vNqa9ZvwA>bfog3&;&fX|Y%nqThIQw+Zgb6m@fz(9{c5Y-X zOy1{DP2lUI40*wCnLi!EJ@U_;EUbc#rOX5O>)|}Xt4Sc~0^6Gpe1xOup=&Ae{W_k4 z0y=i>;}H7|v=TfTL$|{n{pD>3_}>FCn~xmlJND6YN8@Q6@cH`~Y}D}o=v8Sg=MIci z&~@Nkz3`o^CwMZt@X1qZjkre>6m+^Bo~aHcTrb39cVG`Y7Mt<)(CXg~U(rRD$G_}= zemBmwIc;j8+n-MN?2tF@?JbO01YQ$tHRz|k&<_2SF#$M3J0uFREfEt&05|Pyq2g2; zB}XH-&Dkj&bHZFL-rqG}66}HVO@HigF}N(W#@}h+w`-{%2|7|C5}rr(wnF}+UOF`saLpSU z3)+|k(1#6IEFUh6S)Go#fAq5oyo9SQ&>xIJ{b%12;VkA5%Tf?m$hQeLXVNGi*Y9Pj z5}rDz(uZX9Yr0()ngZwMcsB2*Rtu@{Vv8FF0`iO{ypLxsrSLrW2=SOvPsE?5)A_HNO8Sl8r5kmaf88&g4DrmqFKI1wTAxnQ z@V)a2tc3#1)fR*yo-BzG^kDOyfal1fT%lSUvG;PsoG$x?yz|ICvl?`aPYb5AF;|QC zmp^2zlcVfrL! za`r|1lN`Y>JRVL{A1D63kN(EsXbRl=C(fHAZpn%T1w9AO=f?Jvt!=NMOikF{o6cOn zS%~*=_KkaejT?b@>^yv$iIxi=up0do_`v5SYTguDRkpS`2XA%~=IltPNABQVe4Q+0 zf>&Sw|JKPMO&H!4`&m|kpP<+ztm>|$1M9I@ovDO_m(r-uCdAbzt_wHkq|%OjBw*@?FD<-mLY7pA4F!rcErHB zLUXWjX2GtOZgm#o=KIq+3&fum{=#S2^JQF{Yh{vfVwykcrJ|2-x&&sz7qw%n$3vVX}(saD;)Onh)^0Gf- zdDO22H(_A7KTW|Iv9x2fuztKhbxA^Azg8*uPxPmcu-k~t<$`&DKOMjs*X2#NU;xd_ zKwz8OJXdI97eE2?5$h~jB((VqCKcke$ye=!*3cjA2CS;SU*Ju%f-ygYTJ5b-TwowL zGA4%oI~GSlU>qRkPeBaIRb2Nw^+>TpKvQ)3z73Y)z-M#kl^*=|b8h z%nNKr9&u*7P?Lte75fm2CRYdw9|c_~LH%?2Eumr$bRCOvZid_vHg-;?(xv#GtxPz+ z1ADq0&lT<1FNal&0Ea0_uRm(O$*mVv+gz!AB*+($@q z1K&O#yg~OE!LScBNiu=?vt(h_PxxwJuHP|Ln1Vf73SXRS595Vm?Eu<83BRS0n{d!6 zfJWdu=U*5mOg;@i5595Y{4ad$Da3mU>=7t-rXbx~LKQ@p*Z;hHp zgFTCRe7|b+yQd;QjeX1C^+mh^+xwE+UueA@JSE_4Zx^OC6NfY+t zoVDF3v_TC}brk2|;QfNli&QE+fEaTAA)#+Fc0|ISUj%Fu_}X~-3A>W(rwFrVNB+%i z2x&e+aEuEf16*?-2O}X8oFX-zyU4btLerB0sDC5JJYy~>Fbg;v7+&aQBTR3!t`|h+&F8@x$^lPqz`X zHsiPO+cyQ$c75!On=*huihA{#RSER9#GdP!8BPPC3GiPV9=7Yx{Z@@HT~pmKRZu*x zIrrWK)v}jqv>7<>oo6qb{~vpnc}8$cH!5f{aIWv#ikC=9)p<m4xzg%vKZw=YdS* z_aINn1I|ua&4hCJYER(2FKnQ2Vjg_>7Mz=#X9}YVlw<%r<>9fy*tO7uErpG7ON33` z)5!WTZ0yJi;qa|wdXfj5ADS-g{D{4m-oWSFTww-ko2&c7pBy$3dZTBwxd~$UN38?{ z-5{!je|B7@AzV2hKm!IMpK8)h7#|&gow0cKOrF3?D z%*DqBgNKja@b#vg9d=u2JO2-7uQPx0WL~t>6MI0%G66VGIhd{*f%?Wa;M}e7ie*Jl z1$-X3`W;4avH1!TfV1JUi(ELT{JS65&C;CTau0fIz}dX>a^4!bwj*%<=y-;|iF0r! zaBe%kso(}q=_cSjx5_}UJ*cEQ;QZT+7i_>)*jt90)rFbDSerD=xHZ(kU4-rW(D~nh z*#6RVq5ElQ7y}cF{zHXt&_G%|6nRY(O<{UJ%&P%sjgNQvFW_qt>hom=mHhd~zy!X< z?ZRdLBJe2~kJ@SCZGI~>lzzJ6T-bJp&uxx-;fdPmuPc1#r-+|z5#xz!e!v5N8r~D< zzFj`=`2~9ERoKJQ#GM}u|MP@PB;5inesn1KU|XPjC||_|`UlhN*K#UxE0kS{3a5pQ z|A%v`!=E^J)0`^WBJWNH&Yr17s_nqJ!S6NL|LY#8tpVrKHlJk!*C}WqaMu04iu-1c z`Fhy1!(8JsU)C2cI;T)me16W!ZbEG+X0{>_(>iDfI^Y`J zGe4D2&pZHpJ@N__)r&*wu)gyk^V!<*frrfiv-VSQhV;i1}-L-ljN*mtnSL z68!cNqa5B8e&Z+NhrzR!^O3+dZ7gd3{z-i01?W!bAa)9z!Y{}B=fHLU)km8*nT8n8 z5IA>HaUHO8@G^XFSd}H$*bTaBRdU)iahhyeSUB~CHp_qgM)UrE;#^gdEV`gxlnR_z ze7~-G0i1UL=TpOumOar^P;214$bN}z{~F|p!1>n!;v5?4qQE&Ub}yH74SP0$bBB#B z_!o22>6#z%_i@C}0M3Je^B&JA{!wT;joFHt`S%>Y1RV8shu}|i_Ve#9qfRB^IW4K= z2PLObA~3&ZeTAQ-Od;(8#4wl7^6U$C&cq;pw>iL@8)G&_K>T@r37;PuP8Sf1wpPvK z?Nia?c!>RCk2wCiERX_W=LdgT@^>(=y50o2r#|u3uxDdC^dP=*d>8oPw=;3?4iDpB z-1NuZd&Edxdh%}2RO7TzV`*8>)trSMRRJ^sp6}CSdBv{v;+!E0QUGUpej`x>e569)yuZ|3RgC&` zLk)jP?g>k6@MKy5=ONk`Wb1}1$q6`DOdQKixrE*ya;v8c)^fVw#;gI(A1!Wk)$kj- zz5Z4fi;UNezTfi{wjH8>v6^?8%`*u8^mE)4v^HMxiRg`3!0A-lqAXK;}pxM!Qs^F z?*DKu^86ELGw-9~#GwjG$2G6n-{o(dcLL{a!5JzK@WFoJ94`s*E%RN4SlSS^Zrjh6 zj|PHg4xE4Ik zlG7OA(9?_i3hvMuTyweGaITSV2zJ;el7UqxPJ2-xt^Nxf#rB$9P-*~~=^$2&Zp~eR zmeFp+z*)~*aE{;o>E}e$n#_O57Gc*)4J9PaQfnUux_psbCE0`AC{KqHjg@!|~5j!&evya{%-0A=NkcK*v z%lB*IK=7Xz;hJmhhKP0W8x1(0Fg~E_jJ{zVaPEBDLRGm!K@WlRgGr~#I1?px0M4&M z6U#KJloSOlGB>4^t+oe`5jbx-FP8O3yzy%ho{^31RQ5^fBy5AfO`o8WVU)@HeGi;o;bUgT2E4*++lc@PD@5fb)vL4`K(@ zMHd6-PYJf->;K>^_r0yU34Yx>{JZV8ELGVpQ_wl!99kNyx@x4Px434L7da|Ja5HRy zbHu{SsMdJ0glp~_oqZG>7gR`mYVR0p5x=~4Zj*f2?2V=+gSsUbKJ(XfYXawDA zg6rQmOY8^jfwB_~T1+Fw{4Igh{Zlp<$S5s_!fMef6h{ zL#{4=}&`4BRAiwAxazlX$a~e8~a^U6$A6|W6%=mpQFk{eW`^_B1M^vRZW3C z&ym1`$$waO4gPujfCM^~VPCcp@y7TxIi3B_K6?4OKXGp9*;1+l&P#x^m5ZnN`9C;c z()*=4p@aEB;Jo(UUX|7o2diT}?&dMmyE#dr}+rQN&`-xyM3K zu*F0aF|a!@zs>VLzwiJ0y4JJSJT8P`pL?$Rihb?f_@rh;qKa~Xvq46-rehE2Qvv7n zN0KI0il_R(IsMCb&96z&nFr2q#QvgwCiK}5pNB18BBrAky(A0wc=wg!n_uv|LH@RX zakd!VHJ)_Nfp1{M#D=%xXnYasotO(^ZAA z-zae);>P*Om}e>bh;z`>IAD$WLVRn{ccX$j4M48t@=#-gUA9v63TMyG)T~8c+C2vM z;N?Y{mvgW?h&%CJpN5)DXp~y+z|3;T>cTwKDdV9@+dbK=unt$JZGYojFsiTgX(TuU z!1>_8WHAmn?*q;w4|Wsl_+VAQxhm?U=1PK!b^zyKKc(gm@Yw~NJL}HY7=l+&GYxZ! zHw!d56V#LqoS#_7YZjot(GEDbc(-3O3>pZRf%8kRyPCTB%Wl*r)gv2;oBF^zvKaV( zHWG7z^9*3#{AVAr{89}4MBIqh_7QguLf#RE9*eV~7`r5t7Ng!*=+qN$Uht>2;3Mg! z+|@k3<4s)=OCPmAsd?fD9JJ^;Y&)TOgPz-L{4Rg|k88B(<9Xsv$=Au(^uRsnj$G8| zN2cZ#aDI>e%%m?#n#t%zo8tG1eIwT#2F|w{B1dX4O7mkN`lZ?MR&LisGjYBrxWwQr zjXhatggRxxqe$8@ZAGC`oIg1rul_$j`i|r5KKI$-^TR$Y8dY?xv`CY-qqIcH}m>bRT z*Ku{SuJ2Z8gr`Q~EHzvua4z$(pM zwTjY#v$by%*~QNBv<5hr1-0acA4j|e&g1S!a~0#@-vpfRhHJUkz458uItdLTFrHJR{%N+z#j-ZNaXD=a)jR8Z*0zd!WZVVH;;S&XcYnJ{Ps!!kO$` zPPM?Q@qi32(0Vz^5!+3BrEnFfQz}poMi<9&yWs_N2Y0~J<#t>d;>NRT$?IRbt(pQC6(TU%L%qbC{XM3LDig}EjOS_)3st$Six_;Hm#$p+(&aNY4w z+?d_!@BVY^>P3>?!2i_UyKWbYzrYcV1!noU=#Mk+w3y$q){nkoeqmrWly`@Agg@f*jEkLkT}w~;d=Ea@Ha&zFtG{PSB!kDextpkWHh*4(; z&F01;w#T7P+%WF7EZyCc94fIB-Ds%nYlJr$A;;b|`|yc2$?#OguF(Ja(HHvtjq{Z= zOQg#!Rn)#QW{$yS;-K<4>d_K4#ej*TFLtlo3{V%0$|^h>jNV#r^cF^&a-tq~>hT$j zb-T#zD2S&|w%`n$8^Dj52)#jIa?UuE*ULrjk%9OYkjZz)3@Zd@_)(_|{JKuSxg7V- zir4%_3vlzEqKEmZp|JB)98G$LUj4LY!uS_4)CT7~vq?kYq$T`R*I<5RU(H7=Lun>{ zu6y`l-uH?>t-6dJyU`lH)kSY=>;)Z)2n8RA_<494dTaNV@&|(uD~?9dgRM*Xk2sV5 zz-o|e9$%q@ngy|XaMc7p7j^eVd~XLSt(A)U zH^I+sbyeJaGmb_ercJ$UDNe*b#R24#wH@x6{yDkcVRK#Z6VHZ9C~6E+j)1bni$S-hnCm*UdZwKUqW7;QBN2EPU%3lSLM}wM1(b-Mud^P%SXG5UDBBb&? zDin0M9K75`iTp(LF*fS}=iA=A7h?7Lw^7hbH|Kw$9`BzKMY+T4@wryWy%C4SC!4rN z&N$D;o`A@Z2X{_X(bM^J_wG4tqH;Uql1Cw_(x^@NVX zL}*Ul>i}I-_fPzV>0Z!Lh$PvJGX4#ZIJ^`%%skEeWGl#HH?$7ApW-j!^-MkVogN(H zKjbNB)l_IuIArook$aq*7)38z$MN$YDX8n$NZNAHjIV-EN>^WK-}kKMwl2XQJ$j)V zSI*|Hpag{W{*;W@l=T>*c@Vjy3qL2DZ zm&DDO6)r$bE?68a3rWRH9Cu$Ig_gU9{{jq}|k9tJ54fjsP zbKd2VnzUuuad>Gc6duA1>jProW|`2dnVN35P|^hdMM5WVIhq?O>A5USumi^+qoa}* zUrrR>fjb%m9{;X}$-)kMCHY)MtcYGCG+Y!(N23u(a+Ja;-w^txhZ?8b9N`Rn^!BvF z&gR;_g3Q31bjPB0fCv2{^pW0|Mj&7Rz%N`3&IbG@yIFnUyDUSU(l?SChQ8!a$1CWj zH_je+n}2&)LDlFHO?gwme|?Sq#(+pl?jFOxnvK5bMtFl6^yC%DXKJAT=EyR*T03w# zRNVo^;%hb4Zk0}f*HBs2489{M14ej zzK^^@-&ELqOid<@fafbap$hqPbT`bU3L=D(Pv|2Jz%Fn)tDDVoDz5mJs!lILsF(-pBhT#{c+FQRSOmgkt8AhwAt<;9Bt|Y z?XpPPoHkN;f%)m48R$7!bredcE9elo=`)t<3z;nxvui|R3C;JrpFsH_S z=W^l6vO5VLJpcO9=a&85M;dFbknZWBztJ2y^YBMvIP#5yxcl5knu~`pPpQkJPU}38 z4cZHC|5)fFZPDRxE<_J`DSG>Nlzbz7oZ&=pkW8=h(a_u|*8tm>210zp1hRdLyL-e$ z!4n!jZ4H%V`^8r<#dC2OhCR%}HNpb)MbFFd_a}A=r=cOXX}FT=?>Qp$Z3b^&oO5+; zvCw#nl6oV~v<$f`6ytNFLj3ui_gZ+{C5pBpSK0qShy2e+kP)8g+(q!C2Vd9p7jg`{ z4%8i9k&{O&=|gUhe>DE5CL#v)?N7m3*n_*Hq=mf(VXr2Xem9FDj{4H+q7bV5s-y^8 zLu%O}nDPRYbacZ9VPSCq4f8<1EHtG1X=na7Rcb)m^*@grZML`OJ(h#_h5pWn$|U}5U+i?JfrFuWjypw7H!q-mywgW0Yo9e8>-T%%z(DkzZs82PXh2y(k<=OaVbtQ**wui>$!X+lPMxTrWjJ-XgL}4B zU+Rb+uxm3VopB#YANBCs4)Mywl1{)Uxl^H%=6O%0@42BA(iHoO%cs#naHm%r#8AB! zr8S4~HTk`e<3l&H0CV$*N}&h&Q+x~f`eiH?3R}W2=tU?c9`oZxcsXqz7DAJL zUHd10UUai=XQS@Ve{kN^*;^_?|MN0(xprAK;&Akl`gF##t3Oh-L0@{+5Y(rk-MOqH z6>(FLSC8z%XGO=;FK@)ggw1@{v1)k6f&yS z6!`ZBh6BeX3#*`YY&{QgWA9#Jej)sB7Afg${%OH(d>jp#jM%dKju5anhV+cV;V^qA zEbXbJV~Fh|Pc)#3nAg=W#jO8zYuXOo=skJJKhJljQ?tTJLQWE7-=C%m(8vTPg8dje z5*SKL?xC*FwV?BUA#@jaYh~Ivdi|qLCkAIJe>Bzq6+nxTH;%hxNR14k4Tc?U>klP@ zRk9alOog`FX=`E8jRkVoBg=|Ldf z`PYyB(XGFAAu6`{NalzSUs|E}`|E|61paeKSKNb^!$dt^MN80o=}|bG8+}tnCb;`N zKJ?|EfE%zMv!qn--TXkzP}~rcbFVfLvVW^_*3i>iI8JzPmOx>Mw~eob3&XC%A7r+Y zx|ePeZh@ma+(SvORY!#4Y!#iv>w?tFz%!1j@HM65YJ}FIF{DDCF~VMl<~{~C_?|C6 zwxDIE$gR+WIu+5L_QRjB$_IBxNqZV>6hdb2qGnTafbK>hH!yoBG=c|jr)A;9 zI)l*VP_$MKuA$Hor@j0@r z7Hm3%kT4XzWqE z(eQ)$Z=45T@RMHm1uwKM`Ypw;MQhaB)~HoKB@Gho!LRd@;SAeP=X`&v(96VUvuq5% z5BhbTRv~|Df0X}|1Rf)5i3MrkLX1kFp~%@jE}A8@aY&$()0AYBmLPaktLbEzl9u-0 zEnI-ULH1fDbpTg+cNFFb&@>5&ekerVhpwX|Ue|sTUVOsWf|GRes}A{niKNgl^xmUB z3yMi0G@)-4P5eO4UH4J-u0l086lK9pn;%U>OxM??CSfo6(9V?k&M6- z8uev{j8{0)T zzoQ?$Z1IX)ut83N@cZf7^90xEvi!b4puaH?96QH$4QUCu61BMN zMrhugyX1K8c;!fDBlWIzG8=ifLR-uIXCFi$yw+GL*mjkp>!l(ER=9^gEu1gfYK{e|AAW^ft3&^vNRU*ftM zKOQ;5QPd;F=EwMxC2Csu2=RP#JHg5)fhvY5Y3i`q!idBKvIJ3(`g;8~a!33KPENEetd&aV=x;J5Ap-ON|LehAIiDd{`%?H-*Qz&AURym0^a ztNkhX&k3eYp^+3q9>T}-oVDMI6>gPh!=6aKJdd^meo(E7(x3r{7Dw)h~lMBXv{Jvacbz6-64QOn}J zd9QdY+%*ZJ@nQsBPC75l0grJS_}oUf5(K*r?({4^kX(Ls5)4;3lN_J-LnX<)F|_lW zukxndG>K1x?r7o|FX~p2#1G%*NLDvJY5TBKyuRc_4o5MIs{F*)w08N&v;LIWLRb?A z-!O3L#<_LMO@Uv`k?oc!nZr`K%?$} zXYeeIzx>338XQ7j>Eu=3?wunohkwV670racBjKThe)Jmk072a9LPxGBXi>R^Fslc2 ziMJ@Iy$5LT#q zH;=kt|M|b~!B5Q`r9yobWdY}WWrgVa3w7B5>>X5Ci{Zf80_WMfS}xnK6Hm2X$Vv8| z=M1jKlL_+GWjAekUCaTGq82u8ahTWGCQ!);CB4?x6RMIE;8~9zk-WdKwQ~Zc>_yyI zJxfq@fgb5GCB5AnA|w|;(_^!e9zRSHZ0pC-5nCla>$5|6TrY;Eqt>W>pCjD-P}lbY zXX(an;fXu^jiI~IczL=o-5vVb&{tF}cN3CcDCl)XAT_w(NpRGJ z+YDaPVFA3cjU)9Q3J&6xL_YBaw6VeEdRQp(E+Fa>>0X(^PN zx{-UW2W{|dCoF|V{ZMH2ci;94Ie-U^f^OrO$^d?_gD0iDbEjYMqu+*Idwu*{f**aK z-mdgI(&sOnov+$Rm59lMMbc&(TxLb$boiDu2i=t0P z(R6_p3snrdiLyv&{>&6Sy#pwGe;94_9x52`^&$m4nCg$x5#DrkCv)f`-l@&uSKGkP ze6@8OwRTv`ZJL_;m;>S-49^=c zn{qjxqBmm?rHvIg4ZR~m4LEGL#0{8~Ksr4TD@L~FXGbG$AWzeABtEiP0u5S)JlV#R zKiUGb+BE!q>1y77H}bj=#OKUi{IA+r${DGo(=AT$9ec#k;1clnzLoGj>euPKVkYQu ziEoddO$d5x6Ag=b<7I)gtaCVhn0A04SqqJq-XT=#6~mVUo9`O}=tt9`{Ej)UWZ>jW zYgblrSAIBA^#yp?M{eT=L(lxiOT-P=;8sIb?F`pc)e`1?0vxGQGd zi>_+Ul|U0F9kq7UUd_Z5_>Nrz{`u*eS+WG$-9bs6j8ZgR{1Zq!7d@QhbWQdjHC;dq z`O;;FrltY(b>nbXF3Z(4-GP3cTuC{)8qKjU*wZvo()p;&m z3^2!8epk~hJdEzaL!rm0o0{e^(Bp?jrQD!Mv%&~@nNGwGt&e6(t&rfrN1O$UxSBb+t& zySSl0=1w=-duawCZhX^|)Bes&G}q30P@na#wD9ym%{%N7IO8+(Jmh8Jyk&lrR^&`C z;74zPTGeH&>tE-2OhjjCJNloN!1+{FvS@-mO}D=2A*d#aDqG}TsWFo(MIY_YJ8|=%1nP@ArSeHn$;Kst=3Alv_GP+MgS>9Z zawYZs5h@jbhnAy1Vz^FgXe~@qB8G-O3O~QE&+Yc_;fD6(B^z!RC zX`5SJlx__Pqa+LHRh~R0J^L6y!mBV!?3F34KwkC|T6GP(E2O4L?s)G3RNT%;GD&x# zIOp5cAsb)nbpYj-)fZ&iC|)XsF|iT@wZIPv48jJzeNzp$Ao`x0gzq z!3SZIJEfGENNHv8UE1YFr*qm#Z4SfNRWNIVer7;4{F`n^GrK84v~^H8*&c{wi@_0E z?+Skk4-a-}9O?}C<7)IQSuEz@xzP5?p46UoJL-STA^PzNJ%MI>#?18q3=2! zeYxbW%&aD!63{Oqg*j`MguD^`;XH0GJN`bFUgO_(T>!1@{xLK%6?2o)I5rhEckfP^ z-=(f&^~Xh0<;*C|)_1UnCgIdIE|T)^9b&&Xh0+f2Hpg!~%f$5|bZ}+_o%?l%U8s*b z{arZS5C6dCTneTD^g~vTZ={`<9!yz1!s+6L7TTj%f@sX;P&)snxwgnUkY-E{rXxpw zGjI4ZsIfyeY;7^CUG78WbG+!z3m5kCqbJ?oEvM`CHByX$7rnr_9Xu~Z+>4t2_H75~ zP^7}bG?Zis@QVBA&wu)&D-`8o3FcP%z&YPb5Kq2`*AMFM@%KlG?iS$BaLB7)ZWK-L zsc6zd@F*;sOG7rrlT9pgfC@LMbfKCu3($8OkT0G51;3kD;2W3JN?XPxkaKs`bn|<# zUl%b4M_*L3oWOY0?5>tdy7S$Y)j*?WSs(P(cgHag;5_v?p4W|3mNgi9UwDpu{Ve9H z0)G?lt>uR!Op95cJ7#&I^-9=W^ejhVj$%`OkGX3@DZMg+9$S217mlKLhduV$j~Zzs zI)_lvQ}i~&+iAB{1=H3z^!?kKXxDs%uPpl1J;smF)_WXGZhgXN^j1M@7Zyxc;qS6* z8fo{f3!=amfuyNFSo`o*0L8#_tJ#ZR%)!Qwru!|YE4$S!{fQ5C-swuaLSv*1V}DXM zcLeuORTwCS(Dw9Yf8ku%XF}FeuUK`MseeRb)5$HcdmWGL^ z!1XdkpMQi4%K^_^H5@sKy_yB6RJ7ATi9XaOb__Vbxr0dbSvrH5Hu+u#eICs7KQ!@wJeMQE&`x^8T>!I&a&kX0e^+9n} zF*Il9q6VBcNGed`OrrlhxpSH%3h=eb!ff%tQ^~XvJ^$O7ac}I&esxNqI!&}bDYID3 z5jE+cU;pc7H1ofNK8dlCTB*|6XC?06rsy4+=CTcl&sR_b-ZePQUYo_xO4Rt`?i(y4 z0$j@<@H}nufQ_?`pmcDn;)YeSj}{?h;}StFZ7#7jXZ$HN8uPfCT(bUFAys?v+dJu42dek`sOTSR_ta?`;l8`>$!Dh)fsx#z%%4Kj0dh0-eD2$RQ_nd&C}0 z$1}ecMI*DHvP5|}^~V{mO|D>ri-YJPw67JNv}{?jFHO1=N?%WN8yRB!tV7733qPwduu-b`Wo8h5%cdC`WQ zX)Hb1gVv&!u_#e7g$edn8hB9tP=TGse$d)K@ZCIJA{_-+#Q(Ju?!`RuH{!|hP7ahh zd~l&{N)W9W^f%7uw+s@yqvxyy&Pyi8YTPl0)d9}gWi7<#y`j}V5+#&?O>>|y_|fmH z4y67Df8#vm@k7l>)POyJbD5y0al9W#y?cO<@%E2qcMlc)91h%;OX8tC%mSt&m*{RS zZF7hxClAa<-yD>-Vn@DyGB`z5x=ei-vu{l_>5Q;sCZE-0g;?!q5y3*zv0sl|qNYIx ztJ7F}_ys%=bLhB+swnjy_+vjWvytCosVCx3uThU!POb7EzSB+9r))6zM74I!GT#m9UDSlM)B8<*9S<6_2CzbyQp*K-(?0HuYvYr%7Z3oO@`AYa;B5s@< z=gRVz$te$7*xL*vnZbHFHR$S3>4qyW%fI;%yFesq)T=+r!}j z)$ebdi&QomCmj`?#@x#DZll5n;K|r@2T%3=V~s8L2c3ois|Av1kOLh9^zPJOrb-Xy z$J09(gU>Q& z=z`kHao=6YU{^zYs6ZV?y~hMFd+e^7J`SPQQ8U=WPSZX)%!Z#2H0<~Q6|4Cqr=M4SX;b|bthd6QCV;C~Z4k>&!=Kb|>QGPm)zF1bAfwD@SPXu0Qb*bH)2h z{>Hi2)fZ;Er~#dUbN#e*b6@CQ#-X1eKUJa$z#P2X6t&n`jp(*ZMc2_&GPRv9U7QJi zxC8QlA;+X9sG~0<$15>t&00a9|N0(i!aSMG4&BF2_XYH*3u0Nh3VWIr&?h(B!Q^@1 zAR(`?^_5ssu!>@|ct#=D*)=hiI>%sEe(etP0>9&jE_gUjWo**0a0)#fN%wE>VLzdj z>ir%1fRkcb%vmq`ik;Jq?@_;WQIKQ(P|CVs$ubtZ)3-11Uk{tj+#k!y;w^mcZ#uEV zhvmp01IcE;Kbv0&4_~7I;zvcZuOH-8GR2RMxGP!DdG3^KsKpfY=%%E=-ywjeW`$GZ zB~EM=wsJIQz1ShmShPBY+J zcK^q8)@81o-lAXKb@>8Tut`pb-l8_2Vb6+NyOZ&AZ|ayni;7yCY~S~9yT)F!~$^1}#rZW_)!dLS0N7BUBLal4~_oM;)%7Jy@Rbsc87 zhHKf5Zn1Q33gUmpdN$)Iu-_R)^-9;Wwea&9XA?g-Ssb;PhB|(?J zD7ynoz&G@sMoiZD zlUe?7=9UisQ+PBsav#Io_1$UGD{v8Zn=+R}=+zzeq-&mSS@>)Z8r@$(eU_euC$fT` zIpDK#XsmP;I~vO)UC88kJ#iA^#@Bywj;J3%N&kcMfVZ8v>EL~>2hKXB@iO(#IPB{n zH*42WV*{MG0%xy%R-*YE72N~Q2VYi;-BEWZ0OutytR=%a*mVWYZu>S%vA5N<061IO z-j&i2H%8RqT+^KSjfZwFVo29x{n)W#n8OyLmN%Km9+kw=p(JSc1uS8)`muD)3P0D& zgZ064=#O30v`bE`&GRs7KPQqLD<-noa{=_KFr3uJM$F~87tH}T?uGL^=^SPqCP^W* z-~6f+Su7`C^rDx(x-VInVSefwgk8Un(u*!~avl~)hPxUv6XYJd(WBn^q9wCVk(22s z%&#l;po{BH7v6c(kMXV8M$An{ANQoPUT-8d{PDQq3UW=@A?Y|PXn_~a=qwlQ;&zk?idC(9W?izTE>wxp?usqpt^pQpb=e&#~C%(F5OLh^`vMtm@** z)+ib`tv_p`7fxGjQJa``V8=QHl0UqwZf}1sbu@-QFK{+^ULbYSQPAX=5a@wylCltc z|G=ZodCyMiNq0G&pBY4t{^UzLbmdeIU%lZ|&Pu0-$;t4rKgm~ImxiyAlLXHLz{%&{K7`6jlAg$`I8dVC4l z8kyine}MBk_|cd22%v%ggY(9XFgVS~)A`W*O2GN6F_NC#Q`0Hn{GgSc2?QbW+E;$i902|+!goF&a9E)J<0YndZFWx!#sN~=}YL*B4gG zG@Sm}!AD7ZNs5^tNMkO9)B3O-(&2gDv{)@-<#7XuhxE~LI7v5;CG&Dg@^J{&{ep|Y98M7GuU)a5b zPWuD&>Pk;}Qv1mN-b? zf**bGP|O*Q{2iYIR&L?OwE|xhIQtE+&n<=?;~?PN{G+MN6meqEXn1vV)#- zhhlGOW>O$cyA1B}6;8@XKs|x@yolOJuDuns9KN%wt>22JS#mnv8@^(XzKBgexY4Y> zLFD7zRI+&BMk{p#NjJ|xYHA>-{yBC2$|jO2a_lSM$(*$|m4+F))7Xa4Hri(@wY!bE zUoqz04?9U$c6v}bc)j}hx5TPs=qyEI{{72VJe1-|wyRvo^>7o-s&RfaIt8Bh@S``X z+dcmuoV)xu&JAjbJ$m3=u-cHj1D~3Hz&T{NN_G-B?*z_KS2~(!e?%<qLF* zbayz6uj#%=JPR#|r*WtU?L@KHwU~c=_g;@UFZ$-A=bRcv4Lg;HwX?yG!+BnFsX$CT z9!SN|rP?d376%{lM!gtDQDJk$yCa}g;uJz+_CS#~BUZEzhTpKM_~4!!&2Aq=A#W|k z?HAnW=+6K;6t_?;Y9gomyZkA~%~v$Stnd3TU!vbiF%aiDwYd*9Iu$G0KR{l08MA=y z3Q`xu4PV2hO`U9Wf8jN38*z=e!6r zf4B_&4d7hRf0KC&ppRmj-0vUmkY8&Z47D0KrhJexs2stKA8l~9KCO{pYzbmM0{Qn`&Kp;9*Un5Nidzhv|4uhoEx=nh|Zjc&Yy z*6Ppwved6`v~VkO+)5^Ugjl=w4`zr*F3NTo0B1cP+B@dDEbWOq+28i0r%z7H$}y|D z42`xQ21&Ag&@pI>n7;5*SJ}fXXcwn~^YKG4pMbi15Ax@S@S|5O4ItP5!MX9O_uS&< z=x+e$+j>@99B{7lhdtB!x-4^!3cK&{5D7_?J^iX8JK*e=A1ez#g8f0@T<>MBtiCfe z09T-=)<%cBgk6a|;H*uCfBFSAl>+BV-kV#duO@X7a<;DPxviKNm>ooYec~{e;}A#w z(a6J7uW(_xF_e#9%I2tNoaHvep_Nf&+377uw&Bzg`G%c&6<7Qukh(&TI7H_-x9N#D z^#abtd26_>7Qopygv#1_a2E0C5q%E=$Jdkln(syfKZ7@070VT1?qv29edPA3+{&kJ z|I~x_epy_sGxBO3KiumDoL4({+G6NKlk7Cy+86Hh;UVJlvjg1A>mGE?RY92@qB$Mx z3TaWdZ@$)q+X;T%+>I{ex#EraO>1a(r#aGn_|bR7EPmww;9TLWl@oE1Iu1~O>UZDm&(qao&wjKQ*{F?%s1KiGJH?q7RK(*dyxqUa>=;u1zgC6&} z*Yo96h4Z}Z-bd~_>Xc8NeQ4NV9lqNe^g(MpX>069uBgg`R(dIDZpsl(_ojksx5??L zvjunigeUy%U8wO^V_EW4KXO{{NWb7mUlSET4gLq`hTs=fqW>HLoENtU=WhHPH`1jh zTt7P%mEd>pH}HsTJNTlhz}c_cUfBlhbk_pspolxN;U4JW1Lrp#I&+p!Q5&L`tGGI! zODuxUHgKl$HQboScox99?bbuw`YZ57#a!To-VN@|#5l?eM{aTJGk1Dr3@tXrUD;Zf z?-7q37bW&HRjv3;^Ki0|B= z^LND~E?F0S)UG}x7`*3Nga4BE8rlc+oHKueeq9j!cAMsN_ra;Tmm{Z>x?{QhXFX}( zE*JXT4m$HQ{Kzfck#;CsnkOa&(A9#!^Nlv53EvMmhXUu~?<=`B$T#{TZkYAc=X~a& zrvaP;FXYIcgIACboO`r)mMIy0>fOLAP}<1)dZKp(oC6y~$*yAF8Uma@w>ltOa0dF% z!1?^08re7<=*idg9AdQQQ^G@xEI{Quz8nj>G;!X<0Z;7(AWpiTGUkEfo5FJvh06fvZ+>3*5G#&fcUHvS%gMyr%Bd?Q>UC4!_ zN7}KA5780@*B3Yky@lq~06Av^UXoFy0=hJ#xy?Tn6jmT7J)=??cg2%d=D5&{m!kRc zS$>qX!SNqIdb4c-wDo^*PKq7Ldp1>3o$uAx%uSr|FV2QfJ8>Jpf4&c#U%AA~zJd33 z5jfY47W`I<0%R_ z|6*>U4D*6dh%NUDRN~CR&=$j7W-zy29PJrHZ3m*i>a$C%+kH7497R^T*`h(caJpj& zKabrTMJY3oR-6l`fS10aJR6=<&@t~|I$ZSm=s|b55adg(L}zn32@itE{DZ!z32?(* z7f2E`5TYI2DCP>{#u^Lp**0(lV*SbH_A>G9U^zvC+x#a=Df)kvQwIa^a%0wrmWUfK zUco~pBT4MgKtbQ*6!2(w6}PvAW+3L@vLin<=PNv+li)(dBMJ&_ZQ;4R(UE#$8g%af z{8|17XAfxtpVtPU8$LmWY6mC@ZIFP=7>@97Z>qaTp z;Dyj~tmK~LMwg(Maj;;i6pMO%)C*q<8X6;+zm!wE7T_YTNS0>e9vuA?o)hENOL5H= zRJ2k-^FM@3A~es9FUo1&{nk>em!4F73_j`I-)VMY-n}Bj@gG0>BP@W-{|DzEZs&Pk zNTAFvs1YX3<+ta8FNFN6rdc<>TOaTNWFoe{`2C zTdSf9HR5*E5w6w@yhQZhDxD^CMe*35Jq*6|h5*g2k??kWh_k)mo;VG6Vi0!R`uVy_ zHK*b42F{X$&k1QE_TZ}G!C4ypNpkKDZdfe%cwvp%x!ZBn8oMgpGu}uAy}?t!`)M9} zSTY3H?)lM3N-|t2rNR@_9kbV&Yt)jno*z{r#~z=XF6ABsM|x#Ay?>Y^HG$@8`WMtS z*-X;z^P)?b-PT^bDdjfuB3JDARIhq39Yx=$dIsvplMPu7xVlTf*6m8@GS`+~bbhff zc4q1_g-G$FHOac zLnq8r{Fd_7g=(6J{AzXT5I%e~yrHL}k94RL?~7cnXenaFK0gn0 zmiJNUg?78iB`iVCwg$a@n$KD1LpxDLM-IXKe`@q8&HTa(9*tdGUU9zme zJaM9u?1%l5JarQ&7CfcM(f!zN^jbGzZ)H^dNo-$=ie`*g(vntFS)WqG7S!as%T3w! zc*N`*QPhiT!Xmo{)1NVsw5`K+Np;zeyaq+keOa-@vV7Fc*cKKPxZvf86 zI%2o9t%9E-qFx?~J8S7!KH408iHXRuDu(d8PQY_*KK3r(_2NrM;XKQsOEA-bmk7lYZVNjS66!KioJf>j(0q`Y?EE$ug8^B?lc^D-8Vm+k)n)~J zoseH+uVBZM?JQt`A6YpDl4Iv>tilU(NS*)e0jE_NW16#&RhXIi6P~a>8@Zr0#pw^trW?LX$=@ zf83$f;E8=Z7r;#B!c%X8k_N9zXGPuOsn1~SXBFfz!8?x5e?fomhRCd@$57Tr?CdYs zupy7(HQfijf@AO!tqi3LldVzn#anVT0uoqvyDLylnwA_u$h zJuH|UdlH7&&8Yrl%k;5J@dCQ66DN7Iy(_#a_boiWP1H4x^P#k%%?9=$E|7k<4*mz*LwQk@_4)tpUe$3%pFO+6ubG@cJKLic{u9mb z0?wiR(8oBwgf{^(C)#+@n}XUzZz^w2@#KiRYKAMvA36;luOsTmNuBt; zPAVF_95v(NRBl2BI8I7@&r{Lj*%9%yXglVETjHdwchFTU!OU?)1GX(0oL=Cz@%nW3 z{1!A)x+!UP@Jcpg7W&l#;U(5-KdXXPo{iiX?{sTF;+54~ z=Fv<^EAbu@JHBPZ`bAQKKF+|>3N}dxyROJvTE9KaHXg$amPOK{%d1($Mqes%ilkqT z9xMp+lQF9!Nqx?fUE1kQmofKUbS;hz_~1=EbT+PTN@cCpKJ<7J^y~KRX1yYPY40KE zsu>(%;UB;eg)YJ1@#!q~05p^T)yR!hLwjcM-}|sJIoJ3?@Rrl?-o}4a@gayCi6+pg zJH4D&;ymXeR{wEv<_*CIxMYdn#bhzxd@S^G!7ANz^#9NGA@m@PKI zzM<|WrjPkc5cnRa1;!TO8QlZlrf_8?>vkxP>>j|EC-MiYFo>nmi2vCE&9oObDxp6O zota5`+TX3fahQr;cRziteswsNbwkd7OIN!~5keat0=LX3tih20dJB!C_U1>JZnZCM zw1qb!-Q1zsorL`2OCLduc1y zMpKqEK5M3fv`ML$-_Ax&WItG2REeGw-t(psW39onV48{FGl zGw~y1e9ab}{jAYzAG#b3{VTmaEVHXGjVQzK<#mEt8u`(epQy$1MAlU9Pp@u6i#{%q zslZ=|!_TU#FM7<1BB!o@>-I#gF6Tw?!-HGbX)3PaSLQ>H3pw7tD>3{yln(L3P$1D_$b)SJCk z?2cK?C{OgO-7+Qj&GGaz5ph+=m|ekhtgCC{XDL~3ikf0CAT-zJ0h62BhGIaps$S@89;3g;O@?> zVgm>Hk=-NYv0sicpD6fPfw#7>m&7b4_)%|n?Bea!uqJAMO2F&R&0|Dh+qyZWY_ z+~sXUZFguX@W(M<>)AoO+%uM*ZNiM;lZm!9^fRJx_Kug0)W*HWS@uJ`3ZJOm1&+ER z1X^A*=4g)@M^euu#E>QnwEMb+)95_t9`Bl^{dysUGH)VR96m}Lqyyiv->6A9G}ErY zUUEc{p?M(9p)&ZaHlYA0L3Yfjh;j`6~YR3+Qj- zoHuG8%fEC1ucHs*L##dj{w=tsh%*~?K6CEitLFiKG1Wm#bcde>FhAz7U0Sb)xM731 z=hd5yJ&HYX)bEvl;#ojHDcY*>@WeiIvP{r5}}I zk4eAJQP#!Jk6N9@zW?YPR+-{Yrj<%)=3BGAMc|k1SN`Kip8?&keb^KE@3>Jo^%g&_ zegaKx0-Ud}=j)+g@uVemgQJu9Wsjh}uaDR`axI@^8&53_5r>1<@TuszWp%=R(LSE< z1MihNIP-1ix$w`=#*tHZXymFI@y>X?+XQF(LSHd^1oo(Z2_a zj*F*`vr#{GjAMt<(>o-G4#vFW?ACMqeK_#vp0V=-<7uJ_z1ERUwH?7N8HLwIx<*h?rzPeheQ(j?Sb|BbWX?3?_jcWRp1 z2+!AcJzu$4O$NN1I02t04_U1-c)Yk%njUYcwFTdDu`l!n2XxT(1W)Xb zH+tsV;lUjfL(hFM_emb1ZHV3F%ZSO>pIT~X#9?*;oG)k1)bjI?|K=d)^s&`$#a>0u z1>{SyQ?-ugLuoBydfu1*+NxDSbOk*D>jhs~XXtmG!al-?CHXAjn=kR$^Ia6Ti?v_q zM`qX&tJ#yx3>5yDe_|iuPgmAvdmwfGH&%?!Lq3k!{@*xP#N6P+FxOk$0K6CHRQ}Io z>`^wxJ@RQ4Uxs;WNmHDe!qxmwBk0rt|IMMR_-FqgS6=~DRl9XDPoQsz=Q7g-)*s*Ui)P>t-1J~)g5zluzJ;Y-TQVCj=-;+LjhVby z^8(tTy@0>>{TT5;1onv#f4n2~rEaJ}N)hK%Zu&`Mkk8!bz;(W|O|nD|88NOdZ@eZo zG*Z(Yj+@eeu(J;wfnN_u?`BV%CxrULsZlY?ntC3@hg zr=$z(z!SKSn!BRq0BjQi7?&_dhwt z=#|mb``+LAMuFxMI|yE!ygu^VbLngr2M$I9+%?dn8@CpECcwW%BJRFM&^6LRPeUt_ znfoMAF`iu>#4w|K;9%g{FU6Jhn-x!X_%6ClXu(1q;^{Wt*MY@5idXN6rwY8IDMpJ# zW6Wrl;k&pmHk1k*qn1bfXfw{AH-;%in$UTwUEUF$* zlJ+JVKIe#64f~XM8%0vD4D5hhGAJp?4y6;Bh(*cQrGe1=_esU?({8O)T&AFA$WPV_ z$(bCyLdW_=ej@3aV5Cxcs}erRvgG-p9t?|k=0A_4erwe zz`u(yTJjEu=O$v&;;X6Bw`?_CLCn8oe^By6ZZoV8a4Wqgjl(>m&Z~Ed?1MD#UK|Bj zgX8+KQOS@a(8(N&7!qhu@^hP#u1&$871*xiNKD;XMorYeZOLkACHl=nkNr}U66^AC zGQfLr+IvIlSsYB8@a{|k@+AB00Gcrj^Wr_hQi~1>QkVn7ZvoO0Cj}KE)~QbUNVl+W z(Gz!#bpx=bngmj_-l#j$Pm1<4gQ-XBKmXnXUVnDd{}*R%|HG_S8@sE(;ZlJITjmCS z5zaRIIF27Z=sJ{re=Rb?1=;07oGZvRqGRIBF_1?9)cLn)Rc+)_hL#1Y55NHw-KYl zhq_3XDQdcnUq76omL4PbZj7HVu3al#SszbL@q2o`-YX@!;vU4`xmWB7soG3M66#;3 zcU3aQUQvV3G1zywBeCl-q>UVUz40yShG7(OUr-OXKPmMt4?~>skMXNz@P+mYDNw$z1R}@$Bf;k^RDa$^^K@ z-qd4<;W1H$=VXIMtj8+oz~JB8yzhH%3pit4fMM<6b6m;_oNYXJIUUMP%>hRd_^f~b ztoR1vY8n15?LJ=@R&2#C3}Se9V_&fnxpY!X@Cx>qiW!G-=eC94YquuSx)o|FM?M*s zZ6@8girgE|^CImf*X_`bz|WXzxk)b;#8DnF2}}%=cV#y2uPG+A1PKJ+sDx2MJhO0!(UFmK2Fw}+Kv6cfvXXls8xMkq<*7<9=9rot@k#D>Mws9eb-1R)fWMHdxr=eBP7727#5B26dPT&qE z&=!1OvwqzYBBnr>24`k_zhR&FA~FV#nQ~v=i|mr(=N_RUJr&?a&iA>m&A#!u)DF?u82zMAJ*q=0Of~q}fa{ z*-k-0iHISY)5Ltt#>Xzl9ie9>es3E{-gvG}z}ng3U>f^xe4aitnoj-u{GWPIx~*W_ zah_9vbD8OV?!p4>T>@Lrb4gtB88w{-wu@?pbH>9_UjW+{o{c!4E%3Smo_1HtWSO18 zHN`hRvoF8)WT>STWUif<~o3E2Zmw>aq zT`uRb81rjj`#tx$tVbnu>VU0Ve7x0NJ2hDV+qHq+G%e9PItOgay^=KL{lFOmwnu7{ zHMK|LDI58oeg2MO&*RX~L|%9M@DABp%LLkrZ-2tLSgz_WcG+-l@9h4-sbau62ewnj zTeFL=QJdggEm#%Ds*dA%A~+ne8(39s0`0~(yHZ)g+MI}|elCcaMc3IGMI5v%&`ZgE z$rd7RoWsx9y{=`=%MshAp?{e1kwrO2(~TL(&jW6=g_+@0I2--;n>*N@g~8CQ09H;h z%zknJ6$9Id)sCzNG5G_q9TMTfoS)0d>?Hi%I=iugxronCkfWZS$Mjl*--UOnXJyN_ z^a&*EcgQE_pX7Q41(R(Jcy92c*TWwAum^wRoF3AH)nM1J1I}^{&1u3_8_Z3BZDB)O;Vb-Jhao=Hj@hYc zUKLMEaE4Rz8gjQMK$pG??zN>)xish=yvN<`{Cz%~w^B|1IC~}Y53u2lu&V{!_I0mi z-LFDRZ~^AR@$I2girKn1-rcD|{MWOH8$NY0(}6b*jia@AHlvw*w4sWUe32*Uy7I4p zSq`4Jwx7a>V6SsNp0(Q!<~uYGqh9#=X*aa_2iR}R3q~%Qbe{RYu5(5*uc55;Y68h4CYEW!|Ns)35{^ZGI55dHcu8f z%u=r*AFw&MMd*Jsfkpybt&4?1D7ayF5Fhru$Pvo1}UI08={=x=vSq!SD4`fLOE;>T**7=m}LJCjc| zz^q&epNoO9yc@LEf5zkcDoNu92F6je8hOH%9KOp2oiDE7KmEWS9Dd&8rJBEY zDuVQ)kk1Q~_(9eo6peS#WmgxzrW!l%spt*1Z@_07DyaMj-kqv3Z-%>X3C?Ho8w0)? zI$`Zhl=Of)@FxNlqyIUP)^vXz_i4GjEIe8W+bt$PqW7bynv`A9FB@ zz8U|G^T{g`=h`WW_5x=g{Q%9@Bxu{>4BL-N5}JYEQWtx#%{VE%S3su=x$ah@$HI?i z3DgPL+I@Z^bo7Ad8sfv?b-<-gZbdL9Mt$n*Yl33 zi5BI7EAnX{Kg=nPPT=|6wnKafdNxaQk^i{w;D;}Xrexef>+_cJs)Jz^iudvhdj`{naZ2LhN3VnaNu3Vx|DNXu z<3c!d^hJLG=ZKdkLOsmv4gu%U9|d8h7C8Ah!*dS&5N;!u*7;EM4R0C@1%gvrNnJA3wnm`MUakgXAxO;2h^)?8;c->>!eB^Qq#-c}Y z>&ri$r`tSmkED&{``TmoEfMkdLIQt9Cz15l;a%+7#Jl3Xyxfi4dt(V-b2*+`;_R)| zuHbFHsVL+?UF~y{-+2_@!B*%=_TI^N1z(^E-pipY@%)f=A@pGx`UAG(_$GFN^n43q z%bNjw0s8jtw}Gua4uK9G)pXVR(ue)bjlbHoDZJHd~>K6Va%P52vUi(M~d)_sy_ zJYurz1eH*m1KmHwid)(*g{95mhk`ilGNz4~kJ_QmA7S%16VVwp_)DDO*3XQ^t>DAx zwnneUNk@z`g7zAEM@{y73M&Ue=f@P^`{J!!0k|9wha*oup2_@XVPSg3O77B`(qa%M}#554w?OV);vr z0_Z@Yl3H6&MeaK>QnYNVfQ{ z6VQ)svJ*3>8QXa3i@W$7bX2}p@LM~A*Y^&?1Xj8OLW~4k$l{9$n&6-U;V<#aZ|+>!+XN&LFU3i@#zdY)lU z{H%%q8n6{!;|KEC)1JXJE?W7IAH8V;avRLE{x@!ftp24jADl!lfU}~*HQ`qQutiLE zr%qx^oU1yIyrX@XsLoZ>Z^Vk9dmY4`ZJP8Ir7QB5 z?uo)B>=3o>4{ZG|bMe=}I~|Q4-L3s>P69kZJQ072`tp-87Yjh1e>5_YFT;G{RSEj? z9S`wC2Efba2{1RT}snJ+#tmd{!dNSXSG14n1`gVx|20$U+M&R@Wcdt(8<_hoVX@kQX$oL7>T zYbqaC7c1@|))%bcEt@N7$Ri~=X=n4BtQ2I0UpMWX#E&h6Mk#*2i5lT-?W8+|vmh zt!B7u+{cO9d1_jOT*Ag?x>$~0<+3*DIWM0me$P*!0l4oh4w{RlRtYq#J8Eh^Rj8ST z`7B~`%dro+H`UlZbVNMSKFY?UM`RR;JVb98zi}8iNClWH^-Sj@*TD0%67O-d$n)(I zsp)ULBa_Q~6Ndz{YXThVALU;|FXHP9^kEuj@f>_vpO&GYsa(Kc{T)gHm%(doYtLKv z4W?P>A+NhVjqiOG{Ws_`IR-7}@1F~xZoUWinzZpj+nsj@d&1$)0MP5 z!i{g#A_zO((292s zMFstH`1yO~RP`Obl7q?oudQ;L@g7Q@{QfVxofM=qF*xhq;U7O-)}F@Lw+R!=XS21qAoNy zmI3F%n?l9Ocfi>|OkV9BC^{m4euwk?dWDM^h5Yt=w>odl?}EAEs^bij14oujTb$6&M=sA ztCiq+gz@9A2U1tyS=(5}SC$1(Mne^O42c@p=@afgjn)DdabH1mga4dc)4f5Y1C6*kKl&#@@bMh~ z_jxY+{#}@gI^_Uxe!E#utO$mu3~-L}?<*d>uco`eS*2qu4xNO1A2^rx7%v_#O~CFE zdgCWXLtQ$7VsZCnT<<5oMqRucabw-FvqFRb-$vlv@~$DL0nXjVA$Ls(VJ>(_SLMj7 zEwuOt>($f|`M}16S$xhSa2SB0{_Ir#?REGY0%w=|$^3yn&^d2brw``Bm*AZYe~Nj{ zv0i-drr-wDVn+6>Bfp_p7|k1wd8oA+ZyFXt2XMwd{~pF)fClrC8{qOzv*o!LfixGo zrSg4a_@9>pXmDc{?fy23AMp}?>%hN_pNtP1tRUZa;DSu<#vj-&r;XQ@bnEFy)_;MV z@{n(2`K)J;i{-FUM6MFpmvw)opuO{zlu|vBQ$7l!X@mcZt+WkGw8f_FlBftc z|Lk60TpX529B}US*g%Y_#y%!+RvL8`?WW-wIA?4!6-S(fH$CEpZ%h}_bu?yJzdEkvx|(El+r%Yc^JMR<&)sUfGj6-2x6_x#V@H)8$YIKODqO5E5!iA3Q1dBY1~a|Co?fb-M)ABFYM z(r<-a?m&b3V&E)z1)|p5u4*8zx|l#2z}cg$R(Jvq(j3HRRnto05bB8I!1?piFyY*> zc*+INuGjKqZ+a(?1#tEmq|a_6f9MOGV{WZvffSYi^{5jZ4?>e%jTT{iFKM0^R@bb9KuCVGF1r0*nXz;0oMH(q6 z{{_x!=vtNu9hK@cm^IoiVDF%x{b-$%49^=dt(D+|1%S`DDU<6|sQ_0+Ne45w$}F&B zH2BwlvAq=g-{-pC=nYjDu{*T6jsfSZ!c8GIDv_Ll^Oe*Jq4#reVu5q)y|co_xoR2% zoIf8c7wWJo2hO8k6bW4>VXg|CkAGY%bh{BxCZ?DnroiI{{ko&Tx%c-mGQ*zG3Ioph zdrxt$7og+qk25^Sg{@5nzc(MbvD<#uWDLHeyO`(Nd}M8rhqxox?OEA?FThT&6M8kB zm)~X$YLIszhG!M-V6K~^pudWq$@FDx({gBU;NRHdb_(kof`vYIUihH;B0U{Q!u#!J_c|enU)~* z#a#6{aBk9Lt}y#{Joy3V5}}c>95|l`&W^v2Tg~g9KsRs?hE9y(>`$Y24VwYS!(xEd8Yp9^cc$epe)93Cq#v*$A9n z+8olXN8Bg}&UNopzYF&Cf%AtGjk%)Z@bmS<&+p3NhG6!(Z!P+Pw|;R=EE7qIJgu|$ z0Co&}6VqFw_jS#NRqg=ysT0na(2EWBRFMq-mJ<&fvd!L@S)4_l6LXbw`5i`cknb&6 zcbww_L+E=S=t~El;pQ0!Qx0OkYmt@V@-U+?Rz#$*B!+cGGu}y}?Yp26vzF zc1NpN>~h6@{4cg66aV{MhqH6)cyU;lBybXuGc_y~?3M7H0nYwMqJ_HN`*`4t@r6*a zP)+f`S>@eQa092P8*tv|^;F}DdSn1_PO&_o`ThXd0_U<(UYZU^;WG=I#k}BR=MD*E z4xGL2be6r)Acg?v%Csx8?WnCN`?&Ee&BO*8J z2b}GOq-yl%pr-+x-51$wuAu*X8#uczYN;6^!S@X~A4_;y9M~FjSO@e2U%e^riTR-1 z7iUk^R{V2>Yn%AGK*$a+nDzMtZrDS*7`MG@7m*MeP&ksu^JsPM>hL$82%ZbU|LHhj(-$ai&KbMHh=Y9+j7-Xd4LF;esWqJpk|$3E9?b4}YPa_Rw`wfZ&FOtO&E3g8@+b+x#6 zeK~zc+!)+GyZCI7oC44neYIgkarFrWRoN)1o&D>g28ho$k$>*}*N@&^{2OPkAW*C^ zPNJ*8S^vZpK`#!TU%j>B}|ocdBnxbBWV5^(M`w?K0nv!}tpd64S4C%#KO3EQ6^wxMIn3Y| zr4APw1Ly0}3q=Ay`}rAZO$i z&!4mx`c$CqMs2wCik4sr-hMsctnt5~Iod}~QxP|WS=pL^AO7?V_n@G#(;Nsu3<(6D zRriW5ai0Cg!qZ{<#NyN|LF9+{_V`~v`u=zS#@Qk!L7dh-iEaRAMLBx-z&QjsAAAxf zDBh`Q4sgCXRA0D^nQ0DiewVXe^Xne=BY?ABr@U_2n~?K8unoOcH4TaL#t$D=4vV z^`<#IKE5N4A#Sunj;FJ2w_vYU5j{d|f3-}wxG@@iGVDjly@Zk7!s#wBUz;*n*pGW~ z$xp-(r)k2yR>71o6Yt1mn$YQSAQhpX`TXz%!4$oYq$j959Ib`yas|151xN9 zL6p;9`Tzas$Nv5s=cRix#HXmcZv*FEI==?;CJ7KDSSE z0R52ti_!CW+)_9=1N;!+?A>L)5Cojt0Oy5JfZC5-+8j79VB3VXJK+O`J8@IfY$4Q5 zMXu=2-~AjQXcW;DRfzl~ZLDyhQ8>NdkA1ouRzf$Q5K2OwxS%gD+-@06FEA4s>cfOx z4+G(KfIP&1sE~Uab@xN))gS9AOu)C__zPl!pf7yF-0D4Wet7u4CbtV>aw&QyOE+p- zLo=!62JDu$o~^kfm(yA$>K%LNbe#k@X&&PFfn~)m*MrCrG2}mf^kt~2{x?47zsnQz zdnDnGMLzsSU-VVu-UrUZ&TSVyd;qr`I6Iu2D{Mq8%?HlkYugJJkDz%1oLRkFn#l{` zFNX8HYhi)r_wzqEFY6JZ@dM8127{abMSUwO=&*zI^b-zK3ijf8uLLe zW=!`gG+Plj<^$)bcG&A2mq^}-b>9mOgpEtUod)JJDjN!};1A5XigPmRp5}&mG^sYD z|6F@a)8u{_S?+?CX8XgMww@tW`T-oL`$d|DIM3t^Pn<(XG!_p6>HJ32KGyp*;>iF? zy@wbwWRqrk3H-=#Cn|cRYr@Zhg9My2Exk0%NKTGrO0pU{R8#%IA3b#?T^^*Z*#eyV zCt+?f=VP8Lne1Rw4y4V;@yG!eUDK9~rc z(`_#aw?3)K4><37wL-Y!1OG4JY*FkcY<-No4>&gr9VoPM$F4DOHa6E4wBfP-8t3`y z{c;VDxKRk4bMMdAc!7`fZVcw3fw@IJz_EGg4Q!7)%09V(djp*N1wE0?H%p{;xChUK z_2RT_6Dgx9?!KY{TnO%25A=(C&o$%haPFdU-%aRoUiPdiit_UjpFicv7Ge%~WgBLf zj>~1Wz}e?Ldb#P@G7I#P#!kRHdXptvdOwij*Q36$T`HSY3J<$G&`FjD%eH6~boL|s z99LP(j-8ZKA#nC>_QPs3_UStzKWT9~)=CdMZYJCQ;1&p+7cPV6&WPVdmrfzJBUVq| z?ps`36-3wPBF}eEDz3{fJ^}OpJ<6bhU@ zgHH*PKYDAxxz~{m!iT4b6~MW+L85Tf3tqjzIeGdt;Rm$PzX9hCds_<=a1X8l&Mq6B zHJgF+ap2tVNsde#v%(F)xyWcS=ZUz{264l!`*rRN=CD@C>%w(gvy>s||Lda9pxuGh zqQ-gq8+?ZM-#CBVV_LZHqI(|aYNDg4Gu}~P{dJsS3hHj0?S2DRaizW?G!Eza+w`^E zEaBgXZSUk&wS7b9_Z z9YcQdcqsdhUEz;-N4K?&SohE{+O-q>rA_VGo}>^m#64Ivvm;xMp8uC=sFw$KU=yK5 zS&R4_-?JsVjvesh4}gF3hRpYvg0k?Pl=i>QwJw*F8|p#b#5`^a&hx4>=x?l=#C^cd z^449@20!&m)(ZDv%N6jWR1cK7p8Yj@(c zaNZGK_Bg|)W+#ON^q=3EVNQB1K`;W&al=s8%(2&KKE#vU8GWaRN^U_GG|a=%M>=Z4 zG>98Bc4IyppU&(D!J`o8aP-i#Oy-Up-a<)9DYx01?dT)n9v?hGU^$~zq(t5KGCGr; zMtuGXoCoaoV{XU8$Y%-SN!m=d+$w}_;$1|In8&t%2_mDu$W?UavG_ZIv^Etr=K5)D z{q+D^iu3%%dKBA)UVSin9qAW(GVLF7szG1cXxk62g$?vh5L+fV?d0}DD`LzcHwtI1B(G`8syTI1(LUZx`*aT{14!*SSYoYZe zXc`Z$o8RRL;pk^(k3j8^W~xa*+z{vDKCQQ(Tek=MDNB)8^q;|ELe!*Jj(N1cz_uVJ z=jda1zI$W-Y9??-p0M(3J3ekW_MPV_DZ`-|pWiEv+8bc@H2N-U30Z$=MUkLQ9Eb_zY@ z8;Bb<6Xk5YF>01Z!1=rtGxC(v*!##;Lh7>%$njivV#m#DHD|pt^dX$qQRL2>JMx`oiY(u*~6o12zV52nu$xn`#Qy8m&fafppPBl zFXM3bHhwA&Ylq!8N#n&DI zXBBbJI${+6Xd`AixOa}%j^O3Lo@t4sdQe%=^yvw2L6+9Gs1M=b6AG zud~KI_)TOzErQ507=Qm=$622#fz%84V@Av|_6!=`!Hdu%k{w}>(MKvkooI7-BRdF= z!Bq4&T1<^+?bGG7qqaP^Eb`~5!c04FR{DV6#Nsr1ThcaY#rCdZSX?T`L-H9BZ#r-F8`e8FvNtY zx#Prx=(*+M+;%@F6KM?e~k_+|}q|{;qb8tQ*5ofyV zvyfNlUGGPon6ZV;2k%$vwc zhirikTRiH-?=$(SoRXHIrCA78I)B;^C=wN0Ax&fvz>$DMMq_gm(Sp2qAJxC?aN zvXuJ)#N@bNj=pE@?E>h>NA!f>zhL@@6|@w2!h>BmSdcmRGkN%PCmv)MF;5A{y}8L# z#bPGP$#x#@!N6`TG*?b>EtQmNw1#VN7P0*bw3^jRWOet13&NTEoM(qla>YY)fw}}&WIa*aBd&j zI*Z4Ea|E!}x-vvez&vGvBWlL^&xM{R!L@Vy^Jg^$mtz^?=abE5?5H06CQgB~ZFZ7< zc!8ctJ0%TY(}T|`Or+Mq*ez-8%dh>BNIfrLPC9BizZY>k<2`z1`D=Jr^sy(R=Wya> zI^UxFsJFprGl9EjDUh-WBuiwHD~-_kG76?3YuAaj01e4zK};A;ul? zUOO*juIuEqs02AJ|By>VJt$Mu^;qu8%uWYUD8AoM|N7Bah5U_k#G@*)@h51YAto1; zrim)(ccpcPmW7c@41T1hk$o{&t%wp2PRHH^?zPFEg2jjU_CMR=-9@>J)rij>fNkmw zdvWtc*&+=`GMWuyF2-C@OBnf8!G~if_mh)~X6ilVe~iL6G8w;K z{hPmM5Kl*-ue89bDIIDK9_bSF@Z;LhbXyhux~rnx&&JezH~1{r0gy%Yp%q5(H`9V& zc&s@ML+;~(JA2F8UNrs(^kR|UlHgR=eGFZJGkWr$VEG5i4oYd_Us01 z_auo6F;6*x9Qa<>L@~z|98N-yy(C`zTKQ)_GVDOOI2rSfZou~1>lq?{GoDW1ob21y zL|ld%{6++N`{#SfK1HJETnMhkjzug8IrE!Z+_@L)^O1IlQOLU%pP$BGX$qgya@12@ za`_L~>kowYlIQSayyK=sDqW}|U$<)heJt+c5EVsDu1_1lG5fGsMK8DN(eHC{G{Qqg z^SzD8;ed*^MPc9DxfdP320w*joavGwlrmUJ<QP&)MfGwylY$WsA{YTG~Ri#ozH_ zGUCbT<+ADPFylT7{?G^&3si&KjQBQfQwx4~2z+gD-s7u!;z@ZH&gaN){8_o0v4k}vuyCcQMh0*#eN_rwb;JwU) z=r-c5(ToW2tL2pM6ho=gkFoS+(5i}p=F(+%Zu~Ys8kZJHZ{1f8w}ek=&C*C};k=}H z|KuPtf$!jrfBooNZu_If@t^*)bnUiS(;R-Itx^ z@(u3F=HlKI(7VX|n9kN824@U;MdQ5A{5@d!c^&pi`^52M6-lTIu|K@~5Z^2e?;Sn; z{Mu^1`T%-&r7F5>*@&v3U9eby*XD}m^yO0=h1;vhYqAbW-LR{wz`MKpl>hiD;-B4$ zpcCu($sL2JIw*=dj2gfP90fjS!>M3K2zv;BpF=-Fi5*I@vVjkX@034!JENfUYGd|&j1Tsve((dU`{!y7 zc+vL{f4rW(yuD}&yeH~@U6JNRu{-}fPjBr_s-J(JJ>aWZq5kvVj_v0|%XR+XFID=| z-S9upLwd`hoBiiqOz94-c>6z?*Wr2_dP;S_|9{SNlHD!wEBepPkz)*Lx<)JnkFid> z^;*wt@t83*1nj}PTe(s!2JdSPawo^)m7-54=5)dBJp4#o!auZZcoFQn_`0jNi?h@aBjI;9K0uybP<#9`>qg&42Cw; z1oYPGuN0@^dmoH5+1(5_r5qUqIJ!NbxS{k@JtB)n(ROW&~fAvH1biX~0cc zw38P-+XLUL_r{#|Xm2X253N_{p4{mb&@c4}q)X|N?EGY3dif}jHbm?#I(gb3o?Jn6 z0DkoKFF@b1IE3EBRuy&K294;2f8#v6;dRjhJjMmcNm6lEbtUZ4%TPC6UM}ijzF&w~ z@v-*`vEjKtzS3K{72@KF;1MMv_GYAtN5Q#0zZ(4W6@j7=cH|@W;mn_IAcj|ozC+MOOi-; zVjM;Mc*0AOY8voaMV%t9@kbD|qtM&D5x$x~B#R*3N73Yi<^5 zDO$k$fL9=IdBu^QH&KLw)CSeuo0;&zL2quX-Fz;$tuH-<2Dr%WdfWmV1f|5kvMKM{mdBy|5ZFxg}~n zOP_ph`W5v*9M1Acfn_{Sq@DLLgT77tr58!m2(zf?=T`Ey@yXPC5Oz)iPVqZSlW0&( z933>c&94NXf58tGJ(zrw_eNiB26~S<6H<7+$}kceMw9YbTYez=Z25j+G}~kf3tzOD zZX6Dx*6nj-F3=B_aRFrWyBnv555gqyGcE-0z4sKfENoSYPP#OX%-!m^^_!=&+cELKiyoaSqo5-eMiVp(*(IvpCMspRPfRa6kO$ z_r7o^4`@Tw`O$aT=1NO~|BlZCn_d*pS|`ym1)iCiL?odB=?uo2&4N)q*ORnesq6~Dt0I2*)~+x|Vg;i)A0h?-)R z(=k4_KfC}CFBau*=8s^G;q?mqy1mo*=?W+_=SPy=np^B#tUuX*goe4K&F%zw6K@Z0 zs6}7yoekmxbp58SKEaiV9+WNmQ<8Tt_O#4{^j`VVEHRArhnKys%8#dGt+JtPk?!r_kKlV>q1mHczIXweZ7x5zVjpkVMU9#gUzLCV!?D zI)U2oCe%yiPxXzXVd%FHI6IR!#lDYcaWuK!)!|2L&=pR*Ev5p0a?nl;2vxMoFjAFi_bLR zfC1+QuMI>;^ye>SgPSC3i`&Z+Xg+Z6U=Fcq)GQy5qhA-jTu8~peCjRgoyLV$E1fV~ zw8p;7*$-T2_%s#ogIDRkWVUuHe5h?y6zThfDY_=pK-9?1dvxXJeovwkBjf1f0G_`% z3AMRl95q~R!;f!3F7k%iKqetKS%^WW0q6a-151hveoC=;ndYL%So0_ofPw=04=Sypy z2eRXzy=dqp#NwrP%nlwk+#w$dy`EJ|sA1$)1IwA6Vu~ zo8d=)Sd1deTZ+H(x{85m;$h^^H;mE0ayJs?I}_=J4Pr(1bD=qOg9%h4XI9e(wq3=?e>pc&ezSW;%t~BM^LC^f$SwCtve-2lTeDByt zUn(oe;WoYTq6P-OwEN~BE)>2YE?s?SZB7B_g7~b0A8NyOmR#qS{$y9>O=|Oovc_`) zvBLyUH~7&L^kOZ?{L#++&w0MxDOeoZ0ecg``BvI9;Vy8N0q2+p%Y|mZS!*u#8cH3( zvqdi&bC6EgItVYusA)9ve|J09%8% zWtyg#J2*m1w0PH9O_>k+RN#v5yenx!a6dnvhQANLPE*w?ln%)wNh>5mV}aR6hk2nS zy&+Al^78Rbd$IzzMDq>Co|jVFCI z^rIf9`e;_yc+txbJ~Z*xKus|`#45za}`1fQ^ zdR=@?fHykw4NdYZt0=^c!gR!t-afL;h#UJiVJ=XsklBFKs8a-v%EDGwVgh=4_p!r% z=%(fz;(6B|bsDWJgh{5*EX951xU;D^0)MVAc$<@t&J->-|39(tDG^EmtAwg&%R3;H^&UHSdN5 zl1@)g`jon-xb1P|_Fi6p;k;bvEvB?hqAOhypWQh@YcqP$$m`xu39@?H5BpHFpu-c; zkaIeKnhy1KHwQaTcNjEJmZ8u2cn%i|ULtfc>G1IJ+;a3tbq|1}QY6UME19f5JrCH7k(XPYcIxL$#Qe<45ne1=G;4%fzkdW7xsxQTf0`oPHIa z$aDQkxbjor?t4*8cVBX_Yb|bsX8EMp#bhdLCazzPUPqM|1=SuD#@zCw-ZH$Wu5UDL zu!C&h-GhFr*B8&#iJ*l=9)IEdNYO|vhEAXyIJcY>snJ@8eRdvwkX>!KmEf*a%>d@l zQn*&z)#MO}*c-o#^DzT&IR$%9&_8(wzR>Hn=qcrI<;GgUvtt+DS9X8y#4PXuE}^G4 zuC1`YzMA6n(f{={5l5r9FSuhCZ?Q#OR0WTlO3d0;XiHmjlBmUa6|GWmQeigUJNj}H z_b-<0pvC*Bi^gHcrLUNsR<2f( zd{CvNjozC!=2O>4)<~`wV@QSAwQAHyY15S`+JgAzvGtR*(m8^Tro_N+vRbklig+_D zl7{RNq;K$ZyBZxrG4rFP%9(N+0FI;g%!blB^zL+SFQ(8m8!>jUKmC~MNjdvF3Xi)4 z(kOp-(t;oTF3c+x?(To#Tw7Qwxa*_80i3zuDY6Z@@ZezR`9mwaUT1hX;;!jmUBPwA zNB*q9JbL?kt|Ru^MAU;m!+vlFP+$Mb#az|1nv3rR4HLv_y|Iy8Ao}ouXTUpp-BD;* zgS|p6%sRW-iMJ}$lUN}Jb|I}-bx2h%e>zLzDiWX zl0F~6d5^-Jv{{Ri#6Fmtxnf7#wsT1%=zsn|KU(pjPf4G*QFN>v{haR>CB32}>Efdp zYTVwUBxQd%ee4`XBOZ4xnLj_2UVaQEuXfL*t7G9^g@(K||O%M=FS5yitJEZ>OPrGaaQ951)B8I#&#zZiXQ>*WQUhc4Vk+|R24j>|c>cL4t%4^7`W2ljtff5UctfD0(X(En=_xOH&XHVr_^*p968h|>6v5Gk{h^JZ-}Vz`?f35 z!Q5o*2Apr>9wpz#VLvh&x%Z?YCAN++bY7;UU6*W1N}ooN^LE@L@-Zb=@E!`83Ejpi zBTEL)45w^(m`%4dFA=LlC=vPaiz6STujd2F3w(6l+9>HTG$JApQ*O2K7VBLJq{cq( zv>1N$CRL%7w)1Zvgx}TQHKmP`Xf$wsWUJzwm%-DAL(VqoJr~hDkyfC;vEoc8b}vOu z^?WgtdN+{uZH#+Og&1f%g!!W$*@GH9s*wr1sgpns>%hsMd5rtg=}*5d-pEj}L@l%H z4d#ZY6=FQz*C^z8I?45=?%0Jf0OzFlt|?N_VM#RetCGfPWlNpMCQ+gtY8L1%$G9ZY zO~ez=ffdpN24A!1`1Td$(kYz%YkJ^O6m6FVct_E$;uyLP&*Bc?KflHQzMz>SF^2$J zvNVD^Jsc(dI^j>QFT&_+v9ojo9=?||pe5R5fz*KfDB?S2P7~$Qsap8^AU~NB93YiE z_od8(3bH>rONwmZM_aV~scT^u>GWtnYJ6)kbV+uKo#D;50kwU%9qR-o?m>1H9;Wc4 z*Y6cdFZ%zDb6uaX6LhGappWEoVK?^{eSUZJk;Fdw>}umgvYP@<=CHwRuL@c^n3Z@& zjA5}q5-2kU+_v8itRN(TywdQFHdwL|KjO(~4LAd@Z*wi1W550oYMHLOLXUz38u0}4 z%HmjYSA?3znIUFA(v^JXforW)(*8FKB~$FkOt`P4+^_;E6np)0+-(Q@lu8CIF^4r( z(X@sarHqZ(c|kpR$WoF%TuIGE&_w+h+PpbH8u1(b$$?R1HPKP>UyU94 zlM&SauA|iTwLk674JYC29O+~|@DgppXxLI8>ETR2N?8K0URj7#_0^Z+f`dr5J5aK@ z4(~y|0NU}{MY?~-m$upY)1+jc!HE(uciz%XiF7)>V}rb!0c(BX$(&(qHK(%3i! zO>&B)#_gs{ao7PI%a=z<)%-Hc4J#M7T1T6)nf-5|lYH||YycWMGZ z`m+~h*IERl2;0An6q&~p;^`l>0EcUJL4ac1NtObkyp{5JY$U~k^W!r*L(|Mrh zKgx^kd7S{RHDns11F!6avqC#mkdU~JVeRyj(Vhx*SHJ8#z-I7!#QftlMZ zit0ztmFjQA?4uVvQ_{Vqt_lA11^3)sK_PvI?~Hyq{`;%|X}pdf-H8n*{`DfMSFtYz zVJEx@W7>ynfq4r##V8v{zj5X#qsI~5B3|U-UEg`P7j0#Gi}`}D=$C<-5GcP-b9Z$;?@e4E< z7h<+zj&HDcheQelN5VEaRyz9}bCyl$dzkE!_F!)K9JA`mmm2A&GJ#w(l%(pnP71-D z`K1Khi36ch{r-{E>Ou@v7uied*&*Z!FNun<5it9K1{ZvqIvsSDs;vVk@MIJXoH1XT z4Xqew=yZ(GES8qR$EQ>tK|7oJOC8GnC={Nj=LRp9?x7a+Y=gbHy)&eGdwr>wGLW3M z^_R}6eQDQ9)Q_Pr#5M3*8X4?Mx-}l+yIKD97T(^YNLLC z$LF0X&$$$Qvl`(1)20i1mM+FK zeG#kxXSGWbxOVgAv%Q$ZTH{W1aL{9Wpgo?6++*za!x|ah#j!HX%AY5TGIP`{Uoqz@ zYcE}H27hE8XSKgdst4}bQ0z1@*>=uOYCYri$nItvH0|zN2njY59lcw848!b1A z?yJ0{+wdlB(=(FR9Q2ZG-oXdFO*rkHFkd=h>PNc|!Gmn-I4KrAxmTFup0MsB%>=H^ zzzIv1E{Tzkd?~6udR0jdq6#=~ccJ(5 z&u3=#WAD*_uG52h6n2O^>zhC?aZhzV9w3<3gXYgoXi<(#6Z1>e^tu`HtpEdw#e;X` z0Dpm6Pid+FxWVAjB`C6_SpyQOCR0hP)3c-k_jsCuntg|; z88H;oxTDlE8#BNy;P;Q}E^SH0UX@!kmAxDwoox|7W*?%UL&Bt^XXGR^ilWk~qofkV zTC4pLH0su9>1eJWP1zGh2{t37>Ic5GXKD!5I1H3##Q0LusX+Snx~Y`wik|2PIaNG4 zB9`Cug@27Nb?Y@q%$?y+3$A*T?7};}6c!^>7#eADrX7byyAR?w7zh*SaBl z2VP3vaOn25ZO#165vviOt(KUu&3nOx2F`MCGo~Jh-B{r4r|QA>?nTZFPFK}_eP)9h z_f6b`yZYsDzr4X+1kT2bY=qgU2kn9L%7gBr+bQ@OG)Eqr_(D{u;UQ}ee&7Nond9#J ze_UO6R213M6$Jx9RKN%#q8KnMh)j1EMhuumFk?nh@(dYdW(WfUii!b6F((u;!u0Dw zMHEmmXEC8-&SLhv?EdzA>;Bh=!;Z_H*Y&Dy-MTe08Jg!gfzn-P+!yE}-s%-1c`R4c z@J`TvA90mtqrUg@#QWmYLQ2jHCvPE!M*RNGf+7_(#W$KpU8*D1>@V00pFYFdrczJv z8M#svJ#=g-b=em{b3R5=qETC^G!0zwh6r-=X(xSO=|>lK!xzlPM*2{Ry^fwC^e)d_ zO4s<(?Q_V9`@d%W{e7w3cf{xBS!^JFr}HOY8eh?ZwfFL;7T0~quWz|_0`iRm|HIkR zR8F)0gY(R1X1qaD9yp%Zrv(L*=j~^Q(EjomlUy}!RvXN{{aNh#w z4w0W(zYF0s-VXh4gHpC>z5?%HG@YJ*mR0o%rX$ays7w6{76c7>9}V;y|+Bz$1@0OyqO>s)hNoJrtpQRf_& zj@&pi3Geg7{oF+-_&KA`GEgbwb|Meqf%CBEW!m}Bdz1m^83}dRy$g5-&X2R=S)WwA zJHUCK>;?#{T06b}Ww7^7+J>QzjyZZL)BM3K?4&Fsb6K#Ce4Mas>&OywUy4>!Rxx4y`X zeEjL|f(Sa7e4Oo%_rw2l7!^J&WKq}$+i^+=+59-nc4qq0Zg`{YxSPS8mir=afv&XG zaFzs&>*@JX-=JdgIXT_4(8rqWL68BFQGS%-b}=el5qBJI!k+_qOYes>e_z`)sU z!zIpXJ+v{v*=XKDF5eo@!1;^eE^a*Z8$Q4}WMwwz0{w;!a9-RvgZsP=IU8^e-4Mlf zfPP~Ta6WXi0Y|{O8*m<6uF#IJj~?GG#A^5b;?Aqk34l}D{i+YUnvT5yBcQn&zntBG z2Q?oLeJszI3cY}9OVJD9OW1SdEoEI}>09Y8*3S%lDtImP_eOc!B2S>58@nZIPbO3FVN79y-(QMU3fB3yb(9jbq z<{9Nj4=~>{JW$Q{1LyX@dF!D_Hg5}J@SR}91b60{?Mn?T;4R2Z*|@rXB(H~@dvl7| zIS@O<@B7f;)=t{jc#oRocvB|!(QlMN%kUqZuQ>C3PuxLQfb(6?Qtl>rq%pv`61`oy zWdgYX=lpH4T#xnf@kX$e$l*Msm|v!J`%V^ThR?xb;2Yrwy({H$ajd z1-5{|7GXfsSfqO@v7YkRzy9Rk(go_<3fT#MHILt>lPGZAH z!b=vhI>=}N8~j~O4&7pDdpB2ht2g?JQ{el$rYXyZUZd%|Xlku`DVDfk=aCpiuH7Dr zhR|Oec8(&$7oSD>Ncfh(i~n7EUFO<7fbI>Cq;RLk%&@;d`SpmPh~j4KP@o?zjSQpU z7cDT?fO-&dBRSNZ_1=wL#+V&)yZB4oloUb!0PHqm}GH`yorxsVW46|3jd1zIMtaCT)4g=2i5rHz}h45Gd&KDnT z?`PI1p4#6APclrc4TC+_S~m)N zmwJc=osf%ZBgx9Pzjy_n0~T!~$>Ygb@g(|s8nXzxEKC!B%tOwM{JFqqmN@aTFJ&O# z2oR@=2Ef)9-p~#XF5-9eWB0ZXq)yef#X;84G+OwP^X*7&dW=6!ct+J?TRmVt{G;6fOETwmfS4(p;aP( zeq?)577V`512`{!ohA!Ofwmbq>#uf|>AJv^rv~SG4P`wR!3zR74|Vw9dI$#UJG4Mxw!?)P1pO%wQgAa0cQ zI4{$Jx2~GLgw$3$WF00%(3_jl#1&{{7rQCQT^U8|uPbG3=LV7TRwP}$m?8_WA4smt zBFVXAt;`BDfJc5{z9M?N%oe(fFV*1`F67F5Cu7g!^e}Sxd06%edEKRPAvAE%AzA4m za2ik1TXozlTX@!&(xCMZ$ncRxcJZU{mVPwkavj-`cz@zv_|Tq__Rf8sf~f*H*X*P3 z=q)G9|KOZEHHZ&_Ui1`j-mv5{*K-y06~I|lJfEA;6#9*^;4yyabF0C#ovx_|O;^fX zO|dTtIBy!#O!hhn-ZF`p9X4F$%mL@c!1?;K?aq3r0WSdOwk-$Bp0|kq%g?j8{zX~Z zOYqo;v&qe6+(BrQCX7Z*=&_tj1RkEY;+yzM_tE+(eIgATom{s?I@h*g<0IvW60~C2UGm3 zH15$2U+Ux#NVdyHbA6rt=vO;GsuOTqCQC*9d4pZ`pHDk?at@}|`@QKl_R;?U7xg6d z&wKFB0yRI;82e#?bE@(YH)17rdjV&&bwS)1@XxP+^NBJ8ZpI4iv;xkvS0>6zP0;%W z&RY&tI(ODUrvaSPdz(8efb)FdeB36*c>?-Ywt3KC`z@0BSi>9eF7h$&`dkHO#@m`> zcBWS-*BSM75Msfc?}c0jaGnF4$?+E#0e-3GPFz3Fg#Qhk7bD;B&Z)(p1Gje{I6t^w z%-shkG^-?<`WIw!p3N0BZ%Py$4oc(pV9(mi%t&gfzkyR+2%tlwBI)|)JzT!zPxVhm z(7s6`_w%VA?JNzac3sQ3``|_G2EiNp^Hr`R@O(QQb8%~La6Q2tZGII@AKRYch9GB_ zbAgn0EuBk7A6wnkk9zEC#aUl5>x);N^hx)5TYvpUdMY8aT&8C-bpgJY53Ls-z#X7T`?UTVNJxrWdEoOThkO z>~OTp;c|fU4&dxi^@tmf8Mk@36T8g##T7y8I|BK${8JToL5cbsI2T16;@V7$pqD42 zNj@%xyHj5QANVL5-CD^hTLh6~awJX5O6AsS11O%0B)f?9T+nWRQbV6?d}a^V;R-ls zF`O1(DB#xg@`FYWzHHiJuI?r5;~pA9ktfQy!=f))V2jso+dhjTes@Yv5$4~Bkm=Nux?SDXgErDG><+VBW?MuNwn~9#{i# zp}Cj8$(k4i(Y-kMx*9a#-tP^d&V3`PzkXBh`#OKJ%ZZ?rq;_2PNk6JQ5{`PWH&+f$ zBOANFbH2N9lgoVR$B+Gj>!d(IX-*0#zW@XK}@$>y?j*B1NAH7xP zwF7hCzkJAadY1DQ7w8J|yy=*`zVq%a(47AV=d`Td{N?)4&jaW2TifuXfwLiSc9>bl zC72~p32+u?FX!e1=V;)(a@;h|19@5zaCS=U%2~&wZv~u_U+8mhfpaKu4w}15b~F;Z zH4lQDGQa8U*d3m1_Ym8M*lHv7(HCn5FAIt0N-%b}DF@G_*BYZ5|DaAeu;mJ1{x=Ia+eLF|cxcq4PUdvRpsE|`*;2d|ij#yPE zhzwFA$?&e3m;&uU!~T)j)!SZlTJBFH4o8sbeJ8QrQD_IW;k2aID6v*cKf2uyK31D% zinc|*WQy~=|Cg^g8s~WuJe6K{TPW79h5g-Qu&btCKd~D$ViqI(Xt>#FZDZ`Jw$fij zJC|t+Vg?3N#6fSe#XkDDJUN;E2WKHYpI?j`VGnR_Rp7)&!Dm|!I9Ishoo#}Bm%w@H z!ZTd*vUpkmoY!~R$&ECOryan#G&_yEsfI2TI3LZK&-Lw&y(+-DPIx`8XAJ6Y;4F)1 zQP30mjU3>-Y1$akpg{t-6Y!t29*ZW0(EU!p-51f1IRa-p#N_JN!R!Ti>8mPWIy8al zf%mK7kx~r<*#_h$H9HZ!UpTOx-^1xF_N4!gH)79E;P1k2u-|R;*&73B1hz-gsUR~J zyFGwXr$&-jay#}d#h*Hyi=cVMec6wFeq?zLUO(|8*+^4AvKbgg&6dq(bAWBY2>7zS z3T9)#KiByTO@@JjwMShd^9ZDMQ6pGR5`G`C!_)JzXe;_tQ|zjL94KkCh9H(7@}>_? zrTvy1m(#73KkvcC^P383TaxL!J$O0m?fkj-N$`_^=F?Nfe{@fx3sKM|CI;}Y3p8|T zGy3#di}_KO8j2|brzi90RZ)o)_z=1Dk05>`X44w~fOdDYoGr+heHu4m?G#uV!1I zziQM#NnIN5X4cp@ZQe{t8?H(0>cdcKjlQkJrEBa>n-JpBYq*#AihW9v(-h>5ExvwZ z`}+q|H&g7F-Taw(PYt5F@51TV^7HHowAQ}R8;tns%dQLvqKk#dZ>*Pr{X_zOKWBpiizgvUz$b_RI1%gC`k*6=;P!HebvVo2?E{I{vltN%v*F0STNb%;3) zkte@T<3rn^U(g(R^2HE-+)>PXw!__a&6t0P+%E?)zXu*2Iw`5#B zDSL7_m1jaL64g}N|2UN5p@+P7tb?>?X9&&l!z^ctOnSdTK@w&Lew-X9DN5zE3Uf(0 zslJl^U^(?b-(i|xq7*zpPUjH=-!xw@<$RD+r=u~H>%LO*x)VZOU;nM)KYs=L=+O(S z!TcW`W1eM8!D?SJ)v|?;oM{m+1I_~n!Fx)c$Jd{cM3J-6OC5BC9}k=rOQ20MD&$4r zoWBnBh-)eDpP5JvkXLlMev#io9|D_E6w}>rOZ%^{= z!Ch|x{+*L{@Gi$NkNh4x3r;!n9e+Y&gM3dDs}zgSdo{z^4zReu_J=`NupN2ejqy@C z`tpMi2R08`CB>nZNx_-4J-bC>P2=b*^tw*RQl+!6QOiWelF|C<5;r`Wc*LtM&3j`f zdpJB2fK``nl4BnHq7ULb9noJZ*n|EFzAxi89ujv$LEIV4)&=@Y!yVz7SqD49of9Pa z6**N`VKy^utyF~PdC;dFXu3zL>kA*keCXCvS4*!g(PP~Ix3)YuFNRtg{5e0^aa=25 z&F*CSU=5yU);V7IoU4#)~t&tVBaMq5Fz{f0bX~Q$tH}wjYN) zwsiaFZX5IfxEd;6d6m zpFaX!hvpXU+1?|0*H_qOgEOC{TqCXpmogNXTTyVG``;Uo9Q zQ8>N};|bIG#W$f|I;CU`z9!r-!PD zPud#;&dOX(A72$nNtj1meN9F0HY}I+dxjFj_fiune)z?ZKD0eG&;P`Yv|(1ly^YCq zuLaKYiMxE4w@Ea*7y1^HZt>GbC()~+@Q3$*#;?lPP$p^w?#g#QwXKFa`lDv~Y9QRy zB+_)mlgNHXLc&|*7?^Rpzrcae{KgJ8-4H&*k^Pz zD~@{Z27lGVpLb#4RCVC4FYXraPr!^7V$0q(^`sm15~#i{dRuuK>0w*~Wq2V^XnRo_ zjb3dAdM?>Xb#>3@VTUZ{u-?CFrE3nYP95Bd7mC~Ke#%s2ycW8e^0qqfq0r#00XG%i zNH=d@G%>`Y$LA|0f6Qrd_hadGZk|;9AcUqbR?^3J>!eF76y##1A`|l?q(5ORV(IKxdTxlIa%Ut-PP&|0+;hsV&()qmn_F{`yOD?XV{ zo1rK5`x)8y1M}8af>SGaO#uJ)QgfkeEO0<H2x%f9m^7+fovKgDqdn28`lxwIAi%2)N#AMf`-s?`pk zkNl+l@Fu!9W3YP*ImUuPU3CT>;wTQ>)aQ@^xXU}JKGzJFLoeSCnBDB8c4dD{Xx0dCpdqZwB{YWDUef*>iI}&UK_k(19*on zGuO=w;^&Er*66mZ3MLqRnp@=db-A`q165*JSDE3l)9HF$O8KgFQ#jy1DOi= zuBfQN#5`#Q^pE9D)zo(I49UtVl-@r18{5!EG4S*F6X%1yTMG-OB-1ey%op!^%b(0n z!oC{h61TqaN$)gtyglMTaDB`-Y2cp;Zoip@V7?JPnK%?(FBv$(F%;jSBF1vF{*;Y&Q*TxabV zPp!X!rz-EE8w<{`hY9@6a$I%gbueeq8TsK8PhHou@Zg_>7~WupZajFB%ZS?-tlf2A z4?u^DT(Dw$FC8r7UFK|gE-u)qo7xcxo-#bzTa30uk7O}1J83t8woM1u=^XobJar2+i28OE<^vN zTLbR3DL9kSxLY$TS&NI{S{Ea4KM*hFMPjCY1^T)Ew>YA*MArr(9 z{k9!-#`zJH4h?qQ*&n3biJ^3S2KJ#w9hTC8ZM(xt3Ub&d?U;X-C~} z;C$&k_{NWd?n*N?S-r(O_1I0f5gN$xn31tNGg3EpBs|E`{|z0@>E72xO%V?t@9ZWz zRb@C$5y9E&E=ijXh0w0|*r#xOtK`@n{_}m5RJ?nO6pUQjFA!Sy>&vBii3$q9y}8@X zT8h3KLUZxG)ZBwP+GslB@+ZzOzqb&oOq1z>KHm4p7yRX6Ni?+qupjuN0`Wp?T=JTIz+})A3pGSh$iQjr}O67RTYE%T!W@yMl(DK;H*>Q6{_!`tSMM zOD%sZG?mEnYcT&Ough%KObAA;UAH#&cFn8gH}+1V$914B|NNXkya0K!0si0S)DjZ6 zASUB^Pkm!S4&AJ2UCdH_un_8W28W5CAIz~7YN5Uug6Hf()% zt?{nKOq4QT$I%_cnUm@x(t$~sWd`Qcld7dp-_hH`9qQiQLU#)P*3&p>`Lf&Vg1)He z(gwu#(oVX(+3-ThLu|Bet+V&X_k0|>`plow@sW{aeHuOV2gjs(m>Hi`hVx*PA_e!t zUa%YBB(H0v2jJo&-eWJuqXfwiGx~#ngKmEG~{F)L? zy)OJ&4|c9@BBTyXrscK36_?)R890q}JV!pb!}m$o&|y4#4SvIimnG6CJQry7gnabJ zN9duxo?b_kHWxH4#ps7G4Pqx2Bs4{y5Jc@!TZ6p71J9O^(2v z4|&h`XoZwJ z%f3iQ9b;(0WbleV3ZybsIGG_|-TGJ~)ke-N$KA1CZ;_OgBgY&>;N126=~gmj{>?!n5t5LjD?ZIa^>77+A`mP@wmO=ejp9 z@SV@b69G5(Zx{JG?c?bxo)tl7`7!9Z%){B%ua@}0mw)e4Hz?h~51pc>5jewp6f^mE zW3a;)@5r-eC9>@EYTAwa!lzWp)}vqW9yp)t)k^x=6rMJSX^y)irN{l@$%*H|p*tj> zeb`x#-*LAnmbiV075H!CW?Yf%oK$oT&pA)dOIA~nYZ&32WFL?gxkb}++&kk)EgilW zMxELs*K!&tod=I}8`uVw+e^#i<$vAF4!3(r(WBs>hVRkYxx3^rTTTq$OVbtR()tH- zk|U2wc({@&;a6{pySoNkDHwfteAoZRc~8&--pMJMJ_6fkFH-opnMvdUJjFKA{LD-Z zmE*Z_N;GeB8=eNh^Mz8y_lN)aCp_nVN#L*gVebj>Oy8ZvTZ8}f0G=%uB=NtX4QmPv z&vuLF6M$7s%;{kh&Ktp7eiQIKd2kB<$XyMN7noR@^PflK3?t`ReIP?tdPxm`0{mN> z+p`miapZ)!J*8VQb3;GZ7CekhVI%EFZL%HsxYU^_JCP(a@bm0lM#lV2732?uh~gSL3zH|BT#sU zz1%9Nqj9K_4?ba~i{vzSHQp)HN6a-EnrOtLu#)5KcQrWDP4EIeFpxEi3nAIozp=do z?P~e1KXJZYQOH;KNv3wdvr?SM9|O(>c+S%6%)4&T&`jXD;c`pftRj)jfM@F!7JSc+ ziF6Im#hc9dkYIRb0^9y&jd_n!Xy<_Eh>;EX&Coh3fajBo^>`I#kb{9|kGOB#1f1tM zoITl^TU^Cd%vs<}KH9s23!1Eke-ylH>>Xq|_tmtlDeCSQYsH|o&{5lf4?OD3ej!hu z2;8_aYgpzi?AhdMJnBo>M&yn6amJ1`c*z*%Hyhwwt=d-29ye0acn`c&hpX6@+Q>0x zfj?ibWh-P+G%67B_M?VbbqFKPQuK>Aj%Q!jD9C0na>D0hm_K@9pU>mnahk$zY2@Vp z3_H`$c(N92s|Hk%pE~~iq^6=;R+h{9RF{rwz9tWp%rfd|McUXWDDU(bx9UWjZfOi_Tf&n zL5+DcprLFk_TbDJj(+{#Wao1mLdXSNRn0#7u@f;vFznBKFrgngkMXRu{L~Bif=a z&IGm=&Z3xzTH6A6t|>V#?%E$mM-UsA^wo+#aZe?n_I!AByXc*$Ceaj{oVw%1Hpyzb zg?pr^@m}W%&}TUgN7!#vep) zad$HK8RsYby^>E=p&zvky7bd0`B=Ow8M%1(?N;zsGofWF0UvvF8vnaF zc5&iNT8(z)uYe29Ld||L%Y)DQC8rbfP^XWW&F7%6x-SKK9=%!o(_-9@s3o^W4CH0V zN&MGi{;{x_JF-259%g`V!9Myrj?vTr&;LHp3uPntVS|#X5IFCAsLx%DOd=y-d)UfR zv;yZm8!@52VUgG#{upJz_I5^n_Ix_#I)QDJUVF9$eWg3V_VHjR7K(Y3Wx&=gb^!AL zCW~-Z*R>wV0)bTo{>~r0`mufv;ENi8Q##g`wS)idX5`qDua${Ld$Bjc3U^b(wlap_ zS=JL=ho3!fgIsRPNO0Y?wfyu%?BYaDcKDE)Fm-15FT;{I;A*DzMkg&gRa&(siIRYGeBVpruFD#-2eu=N z?U;v+h8`g%XtuetMGEL@fbH4zQ1-YCyLy4G{rd#=5`0=QuiI_cX%nw zL*BKmF>-??YG&#VJ`H#MvGRHB&}lU_L!QR=ny^pEF+$rRo)6t5Gnj-K0mR->eIod6 z(3)mW$Ggz9o?yKTTt^aes*dA@I}F_EG5otKmGA@iVBZ@xvj!SrO*#B=pTKvev#$^b zz1YR)m=CS&Bb2}|H1{X&7f(as<2ua60^6#%FMO|!A=Ek?xUH=#n1C4YqF**UU70}ZfNfFSK4v*60edaL*To!SW46ZA4`6$IY#zISddo8wM+r%a9$mSWCj0Jyu#(k#I;1llLm4!1OGg|Dqtlnw6m^1VPI5#Lpc5$1^| zISJQmN1{K5`T8-^q4z-HKIS-`z@1htw-Z*nDJT{5{vV%i;sf`EP)qc43H#`mL}Ctl z-k&(n*V%GsXC_k!aDJY0N4&8K@fkRu|1pZWgRi@aGaNQFg?SD}-wJnG9lJej`X=0i zh_^mj$Js|{2{s`nSn?Ox1ZWBN0o#%(*O*L##~rXWeRhd`LoQvjH^FjC5qkx`q8iw) zFW4Up#i+EK&nB8g&z6kk0wI0TmqR-OL9d%;)8GgPeJT?=-qjniDq9-cERSm?7*3x4#%%>dqkx1vBh#a?mL$ zaQQsp{dYONMz1!Zpucc*sDjp=QqtrJ2YCbZ%|GDxe_|g!4_$D_t$*UY{;G*~?ZRX_ z0-Q$-Y0AdzP9jU3VOdES`}{*g`w)k_cG$)e#%m}5XSnx*Q|x+fBKhGi3p;U_r9;!Z z5ApU^&?|PvAD%ym3B{W}FvlzL)DhT5{CdqeJ{~zT?xsc+%yuXCh}qzr#WSXCjr$At z-4fX(HURw3dGK|+3gfv)I?UbA!8@gR#Se{-Cw>cJRG3^iWRLIkBe*HHLvTXxK#B9I z3EC!nZjM@hAUxM@D21JA zac$@%;VZmnTvlQag8w361hh!SSMc-hF~X|l3VQqw8iQkMq1aMEdg!;Ve6d7mh}{ac zjKCKx9V?uLzI{G^KKIK3{^aTqI{8HT*FO3#cz62T{S)WZO|wKkFqu9B=fn-ptX*Cb zZ3E6%v}w$vZW1LRR`}k`XT{Ssv=wLgRGmAliX~EA#D~6*KQVXAzaK$9c3oCS>K2Rm zjJ$V`dtK?nV{l5XP(LoIBiW&*aBYJ-vFHQ)g;@H&Jz}^?IWxjMOZ%=k^OwEZzG0YO z9*jAkfqS{TkK)KP1a;_z2Ew8f*h^c4x*j{qdFapI+1Aw0+XOZ0`t6f2Lo_8#C~c}D z_u062%w`Cm5Mu@<;&)z>ux~~boxK)Ivu3#o%2^R~w!e~W#!MHy&W4f8HfRH$2M9t$ zC?&jC((wZ-!PX~)+9B=;TbBw~v*0(=OGODimI+f^DySQJtO+j?1@#j-Eggb8pk%aA zguPCC`l@Kwmn{BhYzT!kQ&G>yZJpa==B@|4`2HQAH=CRj%R`g@;vBjJOkq8aB~cf| z3TCy5jWPL~yW6*^^B1zNZsoEAeo7R!$m%;O-GvdI_yDT2_hM#-keMy(IyqVzl#v-1N zyw6pDmkUWlU9iW86hHTqTufOC19eQbP_B#xONB2dLdg)gEl6J_yiE)t z-{tTCDqJg!Oozr`vx?4$D}@u_F)YwGxt(*05qeU0&Y24{SIcQ(G(IP)5q}0T zM?FjR*FO3K;Hdk|{}X2&b}gBylIbXLHcr&AgSsT@jhI|UviUV*bn6NEmM*heuE-fJOagor5Q4tP#FwQBuZlux&K?y#?UEt5$wO!!KG)HG zwGarc(XR9GfxM*=x@KW!yi7%lXSyMuk(0|o6>Uo?=k+IG4rPUknlE(XCiKB~6s7uW zAH5emN9!g2iF1f@9!vL4rgGri`^_r$YI73&8}XjjKgG;mX{Z7?$98$7j~W;omzE&5O?47Zl&yFZ4EsH&e3zK*v7Gm^cFae z8&pd=osF3t)XQCi>q{c?u1ds>LuSTO@$FGd_R9TJ{wDkL3cy5chCyNo$4ot81kTm{x3P@+8nQ#&klAb56VF8QLfp8y=PbLt8(tZ}`IW;B zmT3UpEb=$y#yf28Z0yEDZag^i2FocyUeOUe>YY;79XUpe?x^FA9%SY4d}uAJnbGiP zZ+EIG61m)DJ!9_PN6dJh$2}-N%}7(YX zKK_7n^uZkWX%%HO(dW!(hR}h+|Hn3G-~T_?^sY9wk7aYmCqo+v&XAkPcEl#p65wq8 zdjXTcZ;S=b`&y`36Yv|;f%B{MbaoK@Mgees&1W&QJa`--K2P1fjZJEZ9aV_WWq23L z7i0H|EqI&4ElhhAwRWc(57IR(uRr=DJ;3?zj$;qO$$tdSb1ylt2<$K^!9AGjm?Cq$ zj2%NK!I@xRSn_D}$UNaa^|h3LgwG5wz$~G)#COI$I3L2&OW=Rv39c)sTOiMc6%Y)fLWf~!1>ehKxU0OxUR_Mo^B3e*X8kKikQq- z_^`&{)0X2NO!+*CjdF{lGd9({_+?H}l3~4M-WTyXumU?N zE~fJ;25rBmidr{Z%{PsWqN#^e6sF4HGiP8g#2x%RH;rEv1V7`KDtN3f;a{H&A;S;w zpnf`vzcK>cGJbv}+?@X~1iLa3PdKHP8}cle&Oy7V>?PwOaL$jMMZQruMrH#~n-l*! z&kd2Q{DXN7&Ra6l*sF=j^cFbhd-P;I6sSj}ebh{nPg?^($3-nVy+cArl3A6?{H*eRToq=yvHgN7_-I{%SjD1P===WW2 z#D+|WqXOg`8SB1^VW-se1~`B3lOrz8R8yBJ;QIQl?U%9{y68N_{3*5gS~dxkh+fDf zVF+LM0B}Yw=lYW4$HlAZ;8S?fG_~hvAUulg`z4;sG!NUUqI9Iyo zaYH#deFDxapG@ZlV9%@x-i0y4Zp(6}$*B-Hrwo7Ld>-@nasR?u*zzaNNxRput>BS9 z180?i9h1jHCj*@Iw%20Ep?OXN&K_f*h!@Q@R0N!ZXWkaKc_)$wa8A8+Rg8xJ`6S@n zE#ZQ=#43UA0%!mHGvdb>%txT^o9-=&mCxho9B?)?*)8f#M()uYnwCe)M9Z__>v(*p z#lyuLtJU<@6M5qZy@KN9@ZH^uKAO3P8;V%88`{M~o$qqTPol@Y5jy|aD_rn;HL;uE zAulsd2TtNlZ(!T(1b4e0<|LpaYJRko>$M+o!x4G!$8%gL;>M+H+;I-2+#29K7C3KP z%DBWuVPplI-41NyhJkY%3r$yHmsrlThk{liR(Edd$Q{GppW*jabS(A0?DK8-nOs%T zsR$o=f8uP^Y73h-IhlR{=dqR6EG8id^IND9_FNZF zltPOOoQoFi5Wib!=rVAg>A6&Fu`rPq0cZV6xi}g#Q*z+!U^7)b4j+ly$mOpXeeJK$d4kVh0iNxkr2)4c z{i*Ct;CTWJxt5p-de~k?ez%RdA@Iv@k)fjGq4l}Pm|5O}du{ZyA2PG~Vbm1oHm~re z?D4h`8vh1y+ikln9J9=JxCfWqoFn_vNlwl00#AL+yiD&l!>v>ebsOp-OEG8A`I=_ z0nW?&cM|JE_az6;YX($l702OA37q2+Hfa0c9XAHf*Q-Wr)6_V7z`0g&9j*Lr9N7Tp z*!WEatDp-#2b`z88C+27vYIX;Zj|3?TX1q2`rY8@_FP_7;DXw)cnfmut(IErFWAjz zhh24prfCDqEcQ%K)8^w2t#<+%-3m8tHgLY&1iCDfQQGG}!8N8~|MZCoTD=W1 zG#=bXz^aMb3g0MtuR-4XX{`3nlnC;}T~=fHxP2iQJKHf2Q#_y`5p_y6@yKJ;>ClV+OI0x0;-miaK%pL+~)9DRmcj7Q>51j8lb(a~wk0TS{T&ne##ms`& zC~!VhJWDp^ikf_Zvwu`G*{u}yUs~UsdwB(^VR6`F1s&0{ciPUM;E@Xsj+e>AQRwp~ zfg>7j~*n*LsA@qo;sO*3H=zaf_KW8b+n4woP znE>Y}@47Ruq$D~HoHLmyeg)3^f%B*DBShQg8hQYnJ4G>V+#>LzIL|k)ZZGI^5*`k~ z*_eCnJkl0EU5L*!qatL@&`+t^zd0y$vn=XE9No3A(P`|J^_v5o5^#RhJWF;TI6p&P z*F!O0b`|}>spG%_()EJ$@Hleah|kY#DP~l|-`hHttfws&&w$fj6^s5+fwyRpg}9Le zEp){=aRTna>&QKN7>pPB&xmuu$oJNJiYG89lKUOI^8!3Y-SjAO2}G>W8!JA8mrTh? z@N&yt#7~%2nSq#~vuiKjhc;j)p3N555;g_G|I?c`kiXPt0AMNb`VmKJTjyF2bH-;2ip+B42{`y9hWd znmlmck6zx@cDOf>50uG1!9xi+=S-O+>pc&=9B{U7?7ma zbjHD14Eq2b1m>Z3`U&EdxELyUt0Yw}FBVOVB4Ivec5)rXw}T^SG-|hIKRSs1!;o*_ zUUPYc`Q?ZZ$^^DMYCq6E|0bs>V5=(Js?9Wn4-aBOg!?pYWnnPQKpsA4fxec5NAbHn zO zZBZP>0B1JIMC=Eg&-BBdi?5fo!*CD&7>zn;T}y5D2JDgC1fSCSjxvAbCiE+Un=|JjvbHSoaHOiWj)`5f1ZkcWH&NoAH$K?-BXf& z-&HcBq41j-kGn5nsqAJS?7~95cIuTv_RcYk7NU+T)`ON~P6!nt#^&$*;cN-*+)SL$ zevYxuX{fcWfMHD>cz6i@!&xfy)PLoF!OW)P8Wn9^<696k7X6gfDtPbzy^sF(hCk2q zj%s5m9(}70z*(ZO`ZYgmHrk?K)-uDa87ft z&#s?KpjN z#r44XjT7R-z?q^o^5;juIpNKhg4Tzz_ib~Hp23R??36$THt+{~v6WkaUSSouj-N9( za3>tql$i{_(bp@u{oq8~BbPP}SjR1UgFdh)YVh?NxC%uKSwml5c{r2%-hT~4$ zwSwDcA3^r(kSDmPxer|sH*i*0J9=_5W2G^C4$tzffy`Mo#Eu z;URmF0}rsJ$hTkmI$!4HlpTj!W@?WDH~7$4sPOs!+ecr8pZ_~PpGs;WeV>s`&4IH| z{!TU?_h2z_Zn#&;ig6ES0Oxg$yxC^t8>zr~r{83@0r|#pGwdgAG>#P_uN#26+pXDf zCLpit2!7+|cVdpn>(+orimcm<-F$f0F%*6WJKhv6d6`=jl>q0R^P2EZy&~v5&K@_U z4qw#`aRV{LDD67;1RhlHaBdrvXK}4>$SDiI)A{#!uGh<8aPulM82DONvLl!*!V!Od z_LQ}8l9RI^@q~nIks0G0Tk37iyrYBJrur=P5 z&ZIryHyVS(R3$R^AJ8CyXI71hW9`Nz(o9Qu!e3S~-(B$LLf^z^X)Mcb0N;!b$Vptn znFTnXr^w}c+WD}<(6Kbd-FIyK1a@$E9MwTgKKsdmJw2+1?j7~flRB(XfSQ&}Ku-8$ zzBUv2^Vc2Vtai5Gv*9J%4*k}XVRC*P=HoUauN&8YF@I1FEjr?Jwy6id1iPC;OQ6*s zFoj?J2%O4L?9tmilfN4sL$|}pd zgjHiUu*JUR^BDP}maBh7Q48+fe9uXU=DH3)EDNSmC~*BRc?`yUfDxgkR7aLMPMp z0CaR0IQ|>@xd*{-OzX9u*KY*P9C!QU+jl@A8>-!NA&musQcWkpeIYrnH80=D~Y^RTNI zH8^5yPRS9L=>g9uoKJ6mExwBc@&TR>(;0gQoG%T)j8APX+wTL`du@8$I&D=wvBMn49rH-Yzb`bRW67t4o)A(bB@#N(O zjgZGPe%wOroxFirY`4#R_S`s{a}_)CVlMM~n2BhMT>9$ee7@sK+~;TD@9~WB_II&2 zZ-$c28=T~~wS?zr8}QFJj`L#_5!CAv_6@B##;4qcW(GR!Pj$EPSwll<@+LL8tyc2} z`3h>4peE-)XWkHc(Q9tFr!6WuQzJR~;{11yp1?Wy%4rE^+2(w+mA#)4LK{!1Nc`VE z`pL)}|BZ9Kt=7^BGw5>BE1CQ2B0J}uL>7n%dLAd3@evKZLR=k}T+DWZ=g-1fec)Qo zET$$>JHovN*T6yGpO@o&o>+UEjWLRLLZ9DVVvB(D?itY3Ii6%E zT%fg^hxf%{H>-ob)sn@i--;E?7Q3AntKr#eJX&Og-0uSVFS8=~m(bDmm=Q}Eb(;vc z5ToAJ#?G2icETy-irV_VSF7dqL|thfw4j;G_JXC(Fix=g&L{UBUnM(dYgruiGxR zk!)HdlPO}we7D=I+Bb>zBi>e8U1W#QxBA`#z3GOx*mBGomkYT2?ml7HW?|3T2xy8N z-m}%1fi(sHli%hm6EWAe4S3Ey`;{dJ#8X{w=$2Q!XI9s-E5Q#snePu+7I^-y3iMoJ zi`h;59Ty|<9#y5XCzx9~yBaz9>Tt0XT8@$`@cc7V`K_C=gAe+FvlqJx2Ibgm22YZ6 zNorwrokY|TO7f3)5%%K#UyQSTcCDr0qy-n~gW15PhJx+YC~6pjexcG-NHd8fCo`Pw zH)g`+GvTxyJ34dgmD7-zBN))_KAm_cMNm|$O9X;x+m-F6+$DypZv3r{(9P<=Xu>S8)-@#@JQys zT*3C8(olEgw;uK{nF95o3*x}Zmp_;>>cJ$u`v=b%NLHx3ThGDy zOgEHfSSHYWU+i})F_QX*V_rBE^CpS)r7w5m=w}Q#kgDH|AwHjphrVviL$>p8f3Vp`U_2S8iYn`^3{bZOr?!Z!#H-UvAT@q)y!vsNO{I zmR%e1MWOK&3~X;sXvvS=1kW6CHOEDt%aMZ_0M7~G2K)f(?x_jrQ6JFbSI~bxmxh_b z7hQhA8GPn-z~8M(>Y<6IiY>?+2ON>C{)whTXTa@rOH((BhMqt8a@~UWh(#Nqd6fqq zvgt%-h`V5*ANJvA9AT5@LUV68diYO1vdz$$+4l~!r@hUo$R6`?%vxULm{4EL6B~Yo z@5N|qnl%b~;Ft#=*=>)eKXASWzUlMP)bmgjJ+gpK;@B~?Xp@3k^~LXLY!44r+^fqI zsN$6odG8G;8TQQvzPQXb&I~4Re-ERyxup`Pq+JJa+x~mR5Pzt?J@NIsqtt$>0 z0N;sUxMwwWWDO_ykPmvW^;T`PZ47V6B}S#9*qc|V;j4bQCMUGyUpmB6VF9$Gle_Rc=n*wJjr`<8 zE8gN0&htg&+r7_8Zw+Ip4q`<@o}+qiHSj^dD85&**vu-9j`YRv{s?>(^a-CBN73x} z*I627lrPZRsT}*9{RH2jXiO9}5|1YM*QRb+Ie|#yRj!XTA;d?!n048qqgt&@pIF5q75b*5Sp? zl;k}V+{K@|JQaMT@d4<`5AML-FT)=>74z0JJ$QTUxK-~&PxWSBeiJ$*OLM_RwCT^s zy+B@f7I*)Fethsy==R(~@A|U^uiA}#<1uBT~6hwDQaH7*BY9l_{`QkFS-G38T83(o@;P60q5`E z=bHZ>9BRasu8HJhidpLXZ&Hs7O3HIU|82DvA84T@UF2Y;o161pY49UP-Zfa+i3fjy zSKwCQzsG{>qGr+0!?_h~_`vKqT5<*PS;vmYL(6gDGvs^c2l8lN+(#wQf6(v4Rj65P zE0IeFci=W-V^EhPKIEN~>h1&AXgqk}=?+4nRvg(OXIov;i_HWF*hvrbri>WocLy7e+Z16wK;cGg?xfb&>2X8X@-}JS+e|!7p?1&@}MqwnR|wrx;<*%>Yt$ zs>Qirf-f1iuf?t3KrJ!tjAle*@8x%&7S2 zTku%Kv`}x_*}KZrzLlTyJ?C1%k7($+bV%e+8WZ;Q9Q6C7(JHJW>Ii@T2YciW}Gw z#u+|&C`V%8)b&SR(S7q1K?k$239A&O-^QLjpOZl6F@r1mqGbC`uz!R;!^{pN*&FnD zTA^m~+Ezw51)boD@K5Uix_5eJ{^2X0^zBLjZMMwMKN;dh>CmIQ>2t3jYr8jf z`rmuEP3}Vz4MM5ypqcptgS_adMFjY5oeG-mT?{|-zj5B5rq9x&cU_f5p5N@Je+0J@hIs4v1TxEu1& z5?~t=*M~nlh8+szMy+#u^KHnhjZix;Ue}#3#vHsibdAWk72n?`mU@A2ztw)XAD;FbVSQU!MDqrb@p+du;rfA_}T`?gKz<9>vv-cI<@ zUn-MRrideX}y2No}+eslE$p z;n3I8bsr^}C)LcPeoMO833`7V{j}4%e5F$YZF`EjNql?$JqKPD+R&Ff-i7x;9@_$3 z<&j-2ct{BPZ0P^&Nbkub?qc>d0cTk1&MhplA2b&nxoZa88gb(s`u4{QuS@D;=metY zwsF@=*-h+>>mYx#%jn2DdVoKPenOOLI7`4i*e5fJVs=)F#%mQ691cCeimqY>bQetq zg_HTshv|ZCT`zhAPI<)44YvJzc$1=c0IA_e zztIa`(+cPtzvx)-OLC=62AGXHgcRJ)o=qL)f9KCVMQwi3DUtMmbKl;%QsWy+DxM9^ z?GM>f+VEPOn`fVpuA$d40=Y!{UN@xf*m2v2J1*=+p`@>jr#tnq7iI<>)X#CW3>*ME z({gG2 zDa)Scn__S4;1&f%&buwXLVa}O3G&+weOUXA;Pv&xez=n^Tfoq}#(Zj(_DXTf$8h>^ zHi8`LY!wcJQ`7`G#;sjlRSlw{v#JQB_CKTo!%^OJNb;wK*_~veWzdS>=tsjnbOZ@! zcr5agNs|@AC_PVln2DG!9TU8vJ)8p%rzuBI3iV%l(#svbRGObGSi;kO74R(UU zx<``z?@f~058fya$R!4ElmZ?>lYchO?bB7#HA1i68?hoTTB>^p{i4W7YWTxSioq;E z?;2(zX0Hl7EaNC69-IsoDjsVabEtQ*p;W3fPPPPjSKTf_6yQ})H8jwhtSxHqI}d#?>_Ym}^h>_7KJYq~8DzVIA+@@1kg{k)(Q>@R!L)muK)A;nk7zu`r}`+R8SnP;-R zRdQMgpNVB29mL-btx)Rw7Bj*>Us?=|rKDIs@lh zZha)%8A|F1oL}`amHJ{P+XitXqf=+;C`+I)#0|^D&XUE!cxr_6{J_{)TF^e8#^OAe zml{d#(Q!0akA}wj!N$hU|=i9rEsO^z&L|{kq zkhQ7mk|E~i;09!LzArS?K<^Pb+||NaVpabHnl}=4-^O`jDe{(!Q0XafzIE zN62YZ+`4@83*bd7eBdQ_so<3*^bp3?zNi1fbz# zS_zzMynarsiBS&(&Kr-RrdTyp?FF0_s5Kf*DM)j6u% zDAdSBHk*c=?e$VsC3dgIA#U9IG)!fwftC^C#`A*%RA%5T)jJVM>ZIYS zQ4Qkg2KvTwDMYnw3w$=wpa18h+{XUq19#*LG91(9S!8=_y zLZuxLOyl75=oMt3dai|8s(Wod*1UzBY!E|os;UYuz`wv3v+dPy<3lNVbyaygy(kx+Vz<}5FK`_#r?tq% z=XAYT@P4l!UjyJrMcxRn&k18HZI_ zla+KoemU9Z?3SGbcl6j%rrLSLM#M-MQ|-nL5cL)<7qF4w5>F`*D~BdZg5-kS56 zfuaVN!5_l)hVbq&c+1G&blzST)Mhv<05&UGii*#^1w1A4?Wgpp6vO!HLogGGu>Cv8)yAm4Z_MOy0hde2!0sLjs3y*s`jYImn`<8 z0Uw8}d{!WCXu-!6e)QM=387J_+iPOTzc`m194##c@9P0(Pn&z{s1qJ2Neei~4Yv{6 zk5Q5*YMhrT=Y=>4x@xFRY)f^;DLpU;zl*x>xuy6rEuPNeEcN?5RJ?%Q*m0;qD!z{w zOXs4$1fJ)pwo^p?v#~T69OlSxW5s@Ev6O{7(X6#hY_$>^CYY;QcvlEFYWkMog4Xs)))70Bm#n28;8(APzJu}EE0P^@$cn2`bgsyR4;TPmCHC-}K6c=4=;Ik@L{m3+ z2R;P45KGZBx}s&w>!NpZ_bT4s?sp|&EOg=zM9^xFrIPbAc#Il{($Xj=WrM#M*;Snmf8M#!jeoG)TfGrDM|Sa{2QMSl0`%vlh2C_%m!0}MJc2av zq`#k=sA`ECuuX{vJ%u0rxyG3D7JB}L^PA;uq~73*h5_f{;mNY6$T!SzSJoHr2&0B5 zsVoM(uXh&W&O_)wXQAgj(M5E}>|2R`MT38$#Bt%!BK`_pg>fszAJ4I`+8Vp-l^ett zs0U|QM$(qwo5U`t2QLoBPUXUMafc3SmT{P0`^SrovFrUD@r1P-D9%ET_dXe3ORke; zALgQF0bj2FWOs?h!<#Q(L67a4@@G5Y*RUP)i?8!|j%@<=fTJmGX*yqs-13GQv`U8` z=gn8b=Ust*_oS;_*9PAU8Yq)1AM>5~+C4YHcOOv5CvH^Gco}+C$8Pe5m<81b2W(;9 zVV)!pAsaXB%6a?qUkk8PpC3x!rZnT*-^KpK`2|wmZ zI|C1>>S2c^zOM&8?y|a|uX8XxUF`7}&fm_f)oBwG$p|>t&x;o3p}$e%iT0?ziI_7$ zNq*>Qbk$xazTK8U-!gHYi&lwy>nG6I>zGH!Ws3i}#goBj+>b}p;^NDwwV})R?($jD z0A2=jaVJLHJ}>5_#?nGtaA;#sibs)G1P;TweUv5YOavZI*!vsrB{l<3NgWEE{j=|7 z`}?Cd|A2EiAW6DBBaRY*%d6)-xJO7lMPT0a?yHg;cfyR=JDOfw6!6Dc(CkG|>bXZD zKeQeD1#t=NiCvFF_p%W@b1R|q ztOp%(@Q5Z?eH8onLo1_iBuyOfO6-7LmEj`x{gz!9uMU8226F7i-f7|q%wF5LN7B^G zf}o3B;{Lrz`kA>=(pbY=L4jU}L-KIB+y&9`*$mxNgI?cYVS9)0g0yMSk=wMN||n#{2Cc`cb~)^Y{3`k~1Z zVy_A6gL|Vonk+jCn(hV>6swQ@h`wDkdZ{6_E*PBc>KA+j^g3=d4<>VMciwa=b~b%b z3x!UX_JGIRZUTHk;75P`OCSvh|Jw&4U97h2G9r=Y0%x;o@K3OJyn8C<)I37mW(+Pz zB=iS5W{RmX33PA|_BZ=o6Z^f4r-_JtbF4pzM~5QEc#AxIXC3B_v-GrXBspjrFbO@k zcZk(?*$vq(7id(PL;rA}HWN7RJ{#x;y!apmtb7*Df8bU)rXC~ha z-oDqxFw$x=iKpE4p&lQCDa%pDHy5Mld;lcjffJzMf3r*_e5 zH>DqqJK|24&pH*H92rP~74T#F^QX2>NjIA-SlK61J>dLLcTtQwqNHb2py_13N}Sma zn%m34lbLct92=Yf%~A9@gI|eV@5j?Y-0vT^YO``^C28<8H@&ROiqkNg`;DL9stq&x z1Ri4>c#<}5%N966&%6s}qYIj|n9LY@h`4=HSDOvji6Il5^Lsh)aA}75^(6H18ixr1 zKfo6~6G{H5H>KcM>}4b?$S}s6&)FPLx*kz9%{-Y$K@Xwx+$ef*&yPDKN0CRSf|l!y z2`FrBp)lMPpf_Dqi?j7^$<0njyGL9 z?56%1>qoC2xRc7NSHY6~0o35&-#D+{c}2(+5@~-=#XQ|*oq`5A`SO)>;;GYQ%uRbO=WQE7=c*%k%XZWF(@)UJ#{8m1XU46O zhdQID+V1!We%Lac?qX+lar89a;#vrOHv>0GXA!r8Pw6_$KGHY2^B4Zeqo3e+4|U^1 z6n?Z$KY}JMox(4a`p~CFq0sZ~%Y(0?9?1%%?Z-Y!2IxQEY3)bnBjwWDdva)=cw;}; zQQbHWx^|Wx&_K{F_y(Qx-W&hM`N5jjV(@@O8V{V`9t;)BcPYtjGWIAR9uYe?QPTS` zXvD246!$>`bLe*Pa_7}!zyCo@K84&bvkiOF8J>Em!BZA@W@m%pjfMN-?)z>m6LZev z=sACL>dwaW!=5Z+$oAyUOpaWx0p7R#_oJsbeUP!R8va48 zQG-u{e{o0Tiaqu#C~MGSe!B!a9&#fYbQFg=h8+Mcu5R4fU7toaaHb7k$g(P%nNOx<(>CQ+*QM_&sPa z&b|^s$*afnZuNZWLUt&5S9RkVm*n&uJZZZ&kEJdSaxy*yZHU*?q(wN-Z`;YKiMg42 z9O6dN9uHdZnq`rf&TNY z_hP37=!-j}1NH@_!yxDHP@>^@m} z_hh9#;X&3G`)IwpGS@`-ULl6MJZ;N%VD>u7IFe4RyeZynfLwYEFmKderk2Oj{-@yL zhPB`ogU|!iDCno@1bzja0ZVXV8gF;tS8t$KS_FRAIvYL;dlG#x+v<47oup3tmS25 zL*#YUh#NhkbXgpBz3ZF>Hzuwl>wtOaK+I5d-uGa~G||F{H?mSV~e0CV}d(A_V-n>*9hEwbJ0`1R$smMJaVpb^zjb1 z=6c96KA!`>#ovy92iNWy=F#R+y?JqTG#&W}%^cr;ygknQxVG5;{XB#p*9ZS-SQK^C znaHCSMbOTf&>vVhkN3M5N>w&dl=*E5A2AzVDu)$hpuLp0Xc`EgSk$ezX7e|w1vjrl z{k~u@9}C|fXWMZ2eKg~vAIa(HsbDg-IVQcFAcuEi0OjuLA%&F4sYkjGnd%p*Iay6yaWu>j{p2tm7KQzt zqMq0t&Z)=L=FmGDh}~er_hMtzCM!_Cyxg549({&;5WNn2k7H`HVW>Rcq!FNDE$_+UQV~}jk^`rK4z=J*6oxjoX zCFR2~3OD{K8K05UL-2j**pLi5=jU~W&kpBtM+B|`V z0q5@h}ixbyy&Vz@peTVeMirK?D*HBJ?e`~h{=adUy6BZdGDn3W8_R}wtIv$QvTY|5C{}*5%69^XhQg@B*3<5$*Zu z9`MJzf`0Wh6Q2Jlh&rKnowB(Lx6gz(M?xfJZtcXo7eHrYF8EQqN~u{zd=9J=gNZQcOB^#5?a9Sk1ne{eon6e+%g z-q%dv{QLHFQFC8O7lHHIaxbyRC?)j=&L>+Yh;Q=}s6KGMIB&hEgTC1j_C;)3_^-_(MK*MS_-68rDV+M!4HFElrq#cPY+1FT%Z|?p8t)@kEM~%!67<|xVr9~ zG|DcT;;?6xIZ!PbwL(oNho{@g%Th)R_MW%mYnDEhp1Z);6z_}qiBHlUtx)nptT?@? zTIzWYen8{#cYbSetv%Rx0H^xowkm0o8v4WYaK;jgrM5=C)b~|bjpwrTs!&d|;oD^0 z%|-e+Lk``G0NTcGsk@cS=_&k`lR}lMlb9R)1kPLFM_-KGqb%U>xN#&TUaSV6eFd@<_)W`T4M9_#gzDJct#u)l$ZxAj%=| zAy1r?0=ETFTnuInk0mKfLVX9En{_!L>2^olcppY~PH|EY&h42E!Bl^Nr8L`BPS*?q zX#MG(>L=gjbS}|{)Fl&DrJMYqM+MJy_|bn_jd|C9aAqbeL~HcxMgwQlgEpcDeWZ23 z*?y*}$ObFv2JXT57F|W*Kmtt%&UJ%&icMPKJmVfbozhP%_m3y9m*6R-+KFfGW3C6B z1+^gB$>OLZX0qdgZN*a><$Ad;fuP6#avuw#fG zPIIp$)uT%6(mu!EwKkXTkA{A10<`tlyGqBZW9cc*>Zy@qq&Wkic@AFI%Qd!={!dVP-5rR^1AbkR#eO#|Jf@T?H(<*lFxiQ&@MH9_>r9NvY`qone+ z0noXG_t11GqdVr@KoT31tTT9fZ z@Op8I4|0;$D)TMSdIiqe@T32ofjzAM;QXm{ofwb3IM3u?LG+GZlEvv8+%frZ-sR9 zCHf$j)30AF*kC6p2zm0fmA3?wFEKQycO>0)%onyTL~o}iR?}i(^zj(-S_BV>1{DP# z(SJ63f*InD6YBUO@$_anw4~DOOFzJ4k4DY1IJ{I{1e|BfaQ}6_r9OHRyrepay~<+s z7W^J9yFlyD`J4LlsW5sx67$+i4Ww>SA(S=_J-~pLl1nhOAlfJ>>8-w0sKj12?u7~d z`jQIgc^7crHd9B6g1@}@HH;37c%i=E#D^*m1XH~AYPDOC9DP=J9{kWzztHx9R+$eq zH{4O+yVZ}JD#1&DAH6Q}Yw`F;lXqerZegnYmQID0n=5UMUgL%tgKX332j_~VSz_?C+WdKeYiCioq@=mPS>N%5Fl(Ta76IqA_d^AP4D^wJ z^Y-Hw!qa-#lLgLG9N)?wE};aH(am6vZRi|m7vN6h+jrUi1kSmbv&4C3+j*d7FS(8PC2FQj-Y=f& z`zR>-%qrQgPH{93y^i<*rEG;Qbjv#>z}WgoDUd(c_|ezQ z3Qzn0eGiTurxF`Of1?-9^KiQ^;&=3)#{=hU&9a3j{n3jC&Vhjr!pN-&6bGC$b=9(5 z)G1-W+0if4Zkj9V?&si)#Z(rQ{{!y{%&@{j5>#1T<7f?;OsfLoor1ZbdYW$hJPL??C6c%TjaWnrbP(@ z@NfDeR$D&t6byiKr5?B_+s6u@lHm!K1HJ1h(}hs*3v5n7i)y`xP%S{)9TD{V0QOU4n}wlH(+GC*5+3s3e-89wm1dTBRtmmggL&OhKszvMY|QT~Io#m5I?8|Wh$0q60r zm^cb`w=Hl!*z~&K44k_I=Qob7!d__gj|I+wS0BjE)JdRTz`1_ONxP=Nc@}U^nAcX- z5xlsOz_~-~9jYlN*!2d^b-kXbhAywwc3AiAhiVOWC=yV!JQKdC4Ccm=5pecvouvAL zzVvzE9DQk^Z2AlItAX?RO|yiGp7CV31iK_1z<~kItD~Xq)gVoXv5Ka7O%(842o$yi zfIqSs-buX_!jXgs1T%1(dxIC+bix6lVi0=KcMzYO2MQJ7PN$6xfWCy5 z;NRJY!gl+RRrCwH27CNyYn3N$g&+N+PsqdngR{=F_o6TO&-%dm!uoHBAZ}=E?#oOOH!^^8ht_(+hHi1R5t=5!ZJG#<7TEJc>}|NQRF>um?Z6G_Q8fH1 za}J3hAH?e)eHsh-WuY|V4DJPMJ)y^iU<$g2dXsk%&cW}v5#mg@C)UDT>i{wY|KU@G zC=7BoPIyP#j!3^?z7bdGJ!1;R9aJo9nSv`H64-I-AOoJPDQny4ex-0hWec$d-wd?Ie^N#qCdCA0rH~1`U ztM>fkN551D8dm?odCU1GY#sV_^?|cNe2RGUjFMUcXSYF4;yQRReFy{ZtA9_iJ8=Gm z{&T>|4q{W_tOm|;P1=g@(0e~yjNQzoEyS_t*C~MW^szc(K5~PtEm70mXdtRXP-_F{ z_UbC(7k1pLQG?&F^H@*;=eO3-t+7+pR6(V^zN$wrhW6Ax)ccP0q=E4f&=f=*+1gr?SB28e z=kOXV=pvnfha;7v-%>e1N`4qf@t2_8k>Vu9b%8#K6YhdDF4E9+=szGnmxU~nA`zc= z=!Vnju$hv2vJdIK3#Mkvdr2`*bUssRx(+EOAu3(DK_bx42=u$b)O#; z>n}|r3w_-2D|5uRIf>L}cqFaN)`-)8Kr2iRZ2Mgl_X$cGx*k9OlUw4ckOcB9KtAmJ zNNk)RPg=N}j!k(cekwz4{uX+42MR?u^fa1RLQnX7p*Wy@ELGQ4&@B5rai$+M=lvDr zy-QzQgT3-LE1`|HQdGYw#V#9mR}}`Gqyq4BW_!dSSMZTCus<7vy|d&uYoua*>}WiU zrE=T-QY7}wMvjW3vGp~QsRlo<2cGNRlP>iGN4^cthg2fHND8BlnA_&{{wWzCKY7>+ zek8f&l3QsYT~35n)toa@GIEXYtHJ9|ogyjcgTuQooHqFgYHjF0*BcW2$B%vnb|^Zw ztL2sb%afTjXe8@4HI?K8kTc|ziXW3wXsbJP1_oUbH4l@iE6(u19T&w^^JKEP4G#JH zTjG>}B=W9{eVY!&Vv940l#lxE>*LR&KK7SqOobn-ybe=>%VZV`AGFsE*uV|gC)$X3 z>(`W(J^@$!7-l6CbXlblJ`3pmrd(*srp&<%7x-_=X~_0rCoUCrN7l0UVz7vPPeatm zmeWPO9pFZy=X`n2Q}v-c@w7!7d)bD|rDeE(kEch|hF#mGKqF`u_l+U9rDvq_6lgp` zGidm>r_yGvC|U=Obp;qy4Lw$2Jd4nOTg zEzkd7oL8S5#coebC1-2s$YuT#&%~wBBvh--<)JCeyCdn7z%f z6hC_<(YcSnzpw#Q@-B|Ft9kshM|W>ndpZ6B{Bmzj~YuE>NvUzdAKy1oVaT`#&Zi+R}b+>2b=rxP2pI~MgB^kJInFs2tvrHHY| z!qD_4Uf@}xVT(;wOZlcCR&E#o_!!s!lb+V^kAbIqhs z@POh-%=X|{4+hgsye}P>$MYuWjnvx#o`vE=xM$pp zpie{o=9z!Da$@Gdd0-7+bVGeMAu5I1<1TQ1Rw)`?O{QrHn49#e%RG&e$u=7~&x&Sj zD&oe%hrnNH$jtK+!H>nR@r)j9HaP0rjZhaHv}T(|E9tg?-1vaNWUHWOH3@zMgYB6= zxLaOsm>bR=!VG|OK>&IapBYP@A4hu2!PoV)X3yZ?Q7;-fo_0s}P&bx-r(qVLl_$mr z!q2w^J(B_F)M1-2i$w2km)eBeV;9Lu3B9A)WBKPSc=A4g9+bWJrmW;mJ7Q_F&A)>LRC;?Ef9Kz7co#r)s% zoE9~PnU7B;Bg_Y*>gure;VJZHB68_b4VlZiWYWStXj|5TCFv#8Q^b%~4n|BqFNr#% zkJMGwi`iu*QY8AKLY&ABeFI+_@uU*5C=#C3VI9H$Y&en4S04qI} zy}i7nUocr>@7kcvF@EA@5HaLiWvx=V4R(V@mSR`L=4O6_pa_zh)?)rI&ex;IFrb#XiIzcuAaU(^L}!Zr2^mXRBgcYV@u|(<$T}%a>I0 zfQjh+ABZC7zNh#<0($MUqv_R#jeOC@FiMz>KKMWBJgHSEsnX!rGGs5$?G{4y4g+(y zL;O7W)Njxe|N7_%|5O}A1Muur7RkT10sr@B9JSkZLuNl8Ue$>Ce~xpVT0YX+cFwG7 zKq_761kasIhRkPr3XR40zVNOy>$NGFI)ejt`?3|A_%w-1z0u2RG=f=oNuoH!?Y$IO%no%) zrTy*UxfWr>f`+6}C*+hRdfi!8L^6FCg?`abJGQqVi4LKc)vd^xS^P{SH{{q^lNYlb z+eEq%3$60lPrhXZO+?>m4C*7-R&!Oi ztH9I4>}JfFQT)CdbA)-Q2df|RBLl&^Lv5nBrL(5qQ|xO@SCHQ}L9-v+#(a491iBB_ zoOliWaxsd`^m=MI>Xj5|?<{U!Pcv-+eB?JkN9@))-fgsF#X1?$lE=Szg`zap}1Fc_xkWfw}a@+fLd(*g$Odnd;I^;^ZmBYEV60pAFZCO zekSZkw-of#fZ;_8W-~3BE+N0XG-5E@pPWPooS{J)HH{rY&KwTRSG4tJM)2^p_kvh(2FSWsm`RalIy&;!xKv-h`X#!!QgO-6s!$&J~e);JlDc-7jF1viBLNjh|F&UFy%cfkV-T*`^c z!Q9#%c`@qEpt_HE&JTDZuSIY0hKc6#Kj8Q^#@ukn5KVI_hEAd0@$ea=X@`Bp!p{nN z_?R?Pt#ICa3ZHS$V|{?9II$swu^cF}5Fc zrP>;5o;IuDV}i4Hw}{6q2Y+cHFyEQYZ@UK5GTj*Z?Q@(D-yQ@nQ0z#r-^YhRlkL}0 z@YwD;@=1yyy1oIL3;1(e3p$YAwa@?FgY%2Wu$+r2$L28KL5Y8KL9@eySWEbCI@_aX`!J5Z1xI@GaOBk=S1^k+ zsEZMEoY$l?o2oeaF&c5(Vj~-j&z7YVG>VNkGQD8%XYe%vFV?cf*u5Hu8S0P?$;`Dm zb|@UMBTyL1=FN|$19*Rvo7pf2$7p&q5;>=#iP)$Vx*E7I4*PZHzpmEQ$KXxPxx_n0 zK~Kp5`gC4s|tEIw3Vju z!3Zj}kD?YXw|H#JP&xxGsf{Z$dFz(J6oPYpWLg&Lmmso%hSJ7$TX^pefi&}IG@S|P z$6Y1_(c{h0fBfioy$YxL5r5~;($>-J^4=8kX#%~MbQ9)qJeeHYVBZRSt&V4tC>NMp zsU6tKr-@X6b1s*;uueafG|CKpfx-ah(q2jKmUz87mgx>ceccCVujL9>;tuY8UvQ}Y zS<5MBF3eHT=$K?7|ddcJHsJ zF`o}_5%fHN`wY+=jzZqD9-bgKNi*mJG`h+osm%lnjmK%se86W)clym2UJR%0+psep zlF$1u2*G}ef|eO>=RI?SsMnMzT5)9ux7G?G5A;~HwO4XecsBLk7Dc)%jretwAUcZp zQ*)l*;4$Iu&1|t>f5iari)$1c3vD46+^4g8Cb6le*xAABTQXO&Hpp>~ z;_Ia`YuV8iv2;uiSgl;k)_~jJ7w@Ta*-BPmjCnV{SF?ReHVhhTXYu)3^)85wxC3uA z{5)?WWXuj41p%$mk6qy9Y-5BfjDj_?@6SXzAm^;BzJO&9b= zEPjF8bJk4L5&DE5Q6C-KZ=t!Xh$3YSc9g7}Yr?^O$U~1S<>Ga|acdaySK#$&Z|0A; z2E(I7L9<7v^Bq%zC}pOC{J*Z{#d`wDJs7@hFQWLBX@L|D4&~9`O?dvNK-z=;Z4J&( zv%_ihl)vllEsY%5KJOITrwvZN(4M*ZB~!2ZxQ{-YvH|iWdJOzW1`lKwq1feYh|l#L zozdjg4gb`A()1t*|+g1`HzD4GSm1FxVS-mhXM`vgv71@4&peN$M6 zY0%=Rj-csNQrLuT*eR)upx5`6Yz^Xo>}v!~`K@3K@!=?XG2LyKvESH*wfGc4zg(?Z zPHYtURiUQ68zAn6PESL;M}AI^BpLXS5A48G&CTFG*nhF}0oVL>9Ze2uc7wy1O?=hU zd?<;gW5^XB3oSINM+zzf{ub?@@jQlnvoUu3A8hCE;m;d}UJbaz{8?!b9YU=%`%?n9 z|BSi7IB*ZN;<@ptK$O)e41^z3&HHHY&PG8C`U9S`*G^(3&=>!LX9s6f=75^+0>0kwoSSHlKK}!J z-+E~p$@&{K=bK}Xz$lHIUxLp9VpL=2=iC|3+s9+Bdi@tKa>33J?&ziSp70Aev%97s z9>(tEaw(if48i?g7RX(pb8r$lZJ(^AypwkjeMAoMc8V`gjKc2E0DLc751#ivfMN&Y z_lh3D_o)MD2)jv9DifeL{ zsTj}cRVCt^<4J#fz1vsSVdWPRNeP_SoX}-CFQAQy-*M6A_N=0wlJfCf&APFyo(U8T zoPBomX5GPy8w;FG2lr=H$T6&d?coWw?8$>zY6q+?SPf)fOk<&gh@82<6}yfdx0=t( zB)4uXEMf zXUV?ByjMAL6~wp3pZD`5Hx73dD>ih&e$vi}^kKa7sn) zYVfWPx2*`K>ap0Terv%6a6D$sg3i%TE56+~kct=JGds68U;R9QE-eD5;zS$XT?4)7 zrKrU^uaRc04Wy>{9MvFO0spdtA%Ek1e02*Js7j&d!1m)&l{g5swjuD$e0ESQ&q^W> zJg=`TbAmKhFjCax3F{^CQVS5c|}II^4iGoNlhfK1jerscn7uF&$b?c14e+ z#MB@%xPG4BRkadwJ1fv1|r(Iq)paSSF4_AN>e$o>sn0 z+<|`B2HdpdET*wq4hm`#z_S=JSA zbVQ#M_ux^jZ?Zs+d$1dN^y8nXrzF9T-X0wI-pP_q*H~Jz5TCoZ=cP4UanHsghkSZf z(m?yuH3OLB?3Bc=n2Bk?_jZ>{ABw_g#0%V;ZHGyYtwLyf&HiI!XDJpnbst;w7+q#a z18+cg6daGT?^C6+zJas?ef6y|c9KIie8=#fU9sfqN;USFF?Xv$c5P5N^oswE&tl+3 zaX@YgI3dWL#)@LIoMcMJ^V^KKf(o^E2jKbs=~m(1jYP`A^RskUA-hybPBmxPw}(*U z1^E-t`{#a_{ggpx9@rKKD$Q_azHH)Gpvqjc}2*9}-J}tHAy1xKg$=894^W3{H_MYvc#5+(N{J?ek>jw}5v8 z^uu>r%Ea_AnlS+L^2zOGOTbxj^F|)B*Hl)CescSL;M)|M$=X&Uf4dk-SKoA#xlRcr zm%EtRZEhxeY8Xf{;69bTOSFr<8c3CewSM&77l%{E>%VbsHZ4PpmQqLnwzTD@5ON|J z9A;qXuvnIRF^Q6Ea9-L|eeq=?4FR59%2fY?woiTF`D#|FI;S68)k%h_{+8_L4dJ5A~71 zSzH+)E%_ZyKY(p-<1SKH{+f9!oS+#NzJ3l!3f%lJ9)+lvxnv4MJUGJx{C(4y3JP6%=!Ph}dXA zAZcU1N9515|IX_w5`4rc+=Fv~ZL#!F_5m}Le!w=q&K7kY z^ypdu+tb(EOHscP={ufd1Exr;O%kaD*bccLEqQ{AUIuJ464y&5LGbtno?jpAliD4H z4jAyw1gwe_Jt?>AnmjEJUYsB5lH$Wi%PLc?ZJkRm!?JTNv8zAC^|TM*a0 z52P{I@H+hHJuJd$WzFk<{?vRfkuQaH7uVcMp?Kgt^sJRy{xq3Z0OxBTOr@S*P^SP} zl~07!TQ7;u1KUFncS!>%k$wZ)_NHf{A&=S+*eV+rNsYjzIRy-G=<}j5zv=v$`y}A$LcPC$zx*n^~8S{{}8JdMrb8ze-D-fFWv`9xLuk zUbydO86l_YkR}-%jHZ#e<0c0$RQ*^2ZTV2tq&v8{XEyc?AL72QD`R(-#*!pP(jN4# z%Y(oT!(43EWcc}h!sq@7>JWm*{JFHn%_p$6>dn-G$rr`Ou3 z71LW83=SqV`9s>X(ooC4o{>gy11(zTd*LICOAUp{795|u^jW+AyI$) z=qEf6qxlYh*MsHtBw<=%3LOK^?@OPkQ%aJl3^*@L@RDZKPo^QjwrS1*DaI20I$&#; z`aqfp9&ayT`=WjwJ^*_D*MY5Zw-!8=Cr~=D&A8Kn=l+bR6*#Nwin{U=8T9;-C%ELA z^Da^F0l``IJZsLUVkTmUT4S46S3V6jxHr!2xQhn7$`5m-j(G3xG~f&GqP{jqd=5D* z#UgHBb;jr7i=C`rUJUu~z~3FL#VRoqY>S@85WT5vXRlbA5E)4w){J8MFX6?3K2oe? z!aA=6H>a6`e3!Ih-`}G@EC=@^q!UX8CdMxmBw&_kqzcwCtQXw{kzaxLS5SDOgDB`9!MG~ii|BX#C|^m=@ImwYy9Z9A?CNr`5Whf zX8*{pqF+}GoEsjpkQ{zu_KGuXw0eWI7&F0l!1>Xt+fpC2U&W1-5px?0Az738aHKuzBrJZaO=jP6OLX4;^{#Zg_42+j{!W#>jJ0S_fzexFg?N zx=2`$SW$v`ftyWd<_ccTJXhRbN2ao$;OQBlr~JraFiUfX-&ZH>cy{f^l5qb=L@4OO zhF;79abqpwb=C@z$zjB&6RYUlxuh^%+xxHICfd@l}WD~IUwsPS!L*nTfuw_>k@X=@DXce$s_l1?nvaFR?0L`gKCz#@7a*6oU#S!{ZOpcsg+nL7L74p;dn-qAuk{`x{2YVcJh({5Fdz3^I!U-1A3{!_;8(SFk+6Mt5N(8> z*x+fQLfck>H1w+HUX1H+pi-LY7;BLO|E*$q$kkdLP1@zs|&&StI zpfle^sOP*0yImR3?EN>+x?8uzq$(?^KX9J9Ia<0@S5Njh!)NZ~O7302B|y$l{hb*b zH6xaSaE3?d>{tr)?n-fnyRYugVy{HgA;eq5#)+&F_LQ>`Z)?4n&$Q6EYYS}GeD`Ih z3DA;4OxRKo$of6f&A}pd zql#+JM9p>irc{VtyWctVvAJP=B3C~!&`fdU@LqR{vz{TmA$`8glH^=vs`_Vr` zT`8hp^KYD&uC~}#w-Jz4KJMGm*1S& zrp+DTH7r6oLMtEi|${%T=5yz@pnV26Cz z8X*O_^alJLDf6`g2j0=3$>1iv?IVmtURNEu;a|4Pc}H;es`Q0snX;SnxNiP*Yt)~8 z{#M3Wl8NO?N(at|A`VH^N>87F^S-CQBu~cwTXa8`f8_XSVRFz!~nnPsLg+fcH1z!|tWAtQvAWBkr}Fy(`(8-{4yzKD7I! zXVzmiWJI3!en|{#v<9=h{^-waRkOKAFe{l+p38Z%MltYG-v@q(Tb2|KzV5n(&@|Yx zkl%zjKOcKNT$f6M{RwdJ5EI(i^$_MMR8)KnHTKBy0(*lV)F>r+1e=or~0$R|Gv;M@nN-w?S)^sJ^ z1kQQO&q>p5!23c>9H;MCPcZuZJ*IQzN>`?H9{Ck*qM&l_m3 z;S4X*g){FC(Insu=dO-np3spfKf}h*zTn<^aydI)dC-ulp0Nmh#RlpYM9dv z@IryPXV(PgfZex{hN#E)tY%NSlhEI zc*7!YSK7u--&Ilw>bnIuma~K((Axo*sdMxxsU~zMLQ$8M3@PGHyn{z7a@1;;pZP?& z1{xTMx0_``ZN!$!*Dz;I_Y$HGD9O`FMPHx#3qDmM$>4*T3PlLEzTlc|g{SzuNMRZJ zC0U45VZp&dw*$eHUZSE)+F61jCXgg>W|s8qE>zy{PebdfX~@$r{FfyP+SL#`%WJ%N zhTdHWX7lB7c$q;#2it*994~V|2p#E>Bmcy?yJ45)bz4u*fwM>9aVh_jj=X@gfAvpN z^Bb}B33221wuVgq8axf)tn=!^PSuQ|2*iypuZFTR$7qVj-Pe86be4&_J0E{{J;M@K z9IGWI?!IG+AQpfta$;T^8#O@4XaL;~#DVyFE};zB{1zH}W&zV7ou1I;)B8+RP92R#3GOYDzoQk&i&!xIPbl7@bCQ zhrS}OM(q3N?koNLzt`pU;HQxNlJ2gaihy&@<18r;b$1|ee)RIPwBU9u*&=ROW_^;p zi(}|Ja30>G4qIL?hH4{jtn;#BYr!R$jr`4aLKn6S8Xfg-yl%UDtw5 z?}2?c)X@PQLZpzYs3pH+pJntG?#6BSStBOT#=iM;aA|KKH*+}nf;Ypwrm_Stx?BhKd7s~;kz4FLs$wf?MXY}nf#ou z8Wu>M(UYq5Y#VRA$)DDbM<1~E6n@`A1r1%Irh@lRxSFP@yTMsH(yX;|Gf_|pdIx*+x5;k*P|yneeg9y4t<#@4@9K73 zI`}|Ozkzct>u6~dIQ(hAxpkKqY1V^SS^%7zG+rw$`4&TR;4IeKCOv8%gZ)DEMjjrK zq=C^C3!L?@&qz_=#u$Ke=Xcj6UueoH5GxjTy(<->k8}$$xo-A-sWG@Q5qNK1>)n%@ zppSGPI1ib1OOi16UpW+avDY=}?J=CgMd-ut*e<Onl&=~sUCVK;%`NIF<{2l$We=sjU&jY+JNZF6{WQrQl{&b-9 z1l;mH!1>I=nNm;m>mq@3&V||1sj`^A{PL>LS}r|pg}8ycujSq_Ne2!8XTbTjq>_`NJkH- zsM`?4tBY!B`vv3+^YD8wPM7S_XI5XpXSA7#i`D|?t>N@;OPQ?pA^3(Lh4xX{H7?o} zdtO_>$qv#IXh{vh-6vmXCruiJItA~o$1Pjw5zd7XIBUPRly(@QNjV68Z;!^(H^kL8 zUZ}y%e~6WEmkp6n`>&ZQuEqJEmjF$J8IiI{+u(x)?Sk%OW^(EH?2bTN?X>$g&J#Gz zTA(Bok2Bl>XeeDrkG1ie9BvqJHbqXmcgaPrd^c-6?!LCCByK-q*aP6)FF%t@*&Yl{ zbTu__59j1=f%F#VdAy4gml+D~9Qv(OuH?&}PEgQWa8>WbPmtwdp0X7+(p}jo=dd!= zhEM;8Gwbjt&bOOCkvtUm` z03J*c;7iYsaGtmxwIpi57pgU~a{k~zSD zvg&g5MHhji+r?D&-3@&tJcl})InE2qped16f$gAg3VL-9XMVNfSb3bV`OiJr`ssVA z>vM2Kf%EqdQ>B`Bb#xs#U+Y#~+6tWa0Ov}cd&P0+^XCF*rP*@P0)74wzda6v6Q8EZk`U}ASQDFbR7?>Yrik_&b=e%~}CF7&7Ko@%-_WsPB! zi-M*Fp>}%S-%#hXA06L_T6A&Iv5}t@RCqy6`~LQ$?_B%O^ISBm5=(xer*`G%dHGD~ zJ8-@aoICU`6PrJYrNh9v@@Soy0Gw|E=c4#JA_ts@0O#U{osAEHvkh=I_Iu_06F7$f z=fU;1%F=;z5O8k2_>0UIwRT6~JgiA0Zsss(M<8x|vT4VC$9Z-^{@i1GCvG74oCDE2 zvJdLYJ;(EYbprSRZJKgM^!X=c;CGE#Ap1BDdlT5noKWaw^igW)7y9$tmgO45u_yZj zJ)^81^+l-zv`|n7>b|uTKa|gEagVmy>>$2!h@{^dcs^ye6Zf$VAFom~AURQk8Xl)-zXJx2I4zDqKd*U9%{d)AtAmg^a3i8J+!FfnNbVA_0 z8-x0#(A}^TT$(kAA^-T%cQ5&03@Ja~H9ps5&ad^<2{EBA0GylFoWc35Lay5dcj%pY+*S1LFK~!I%@%NTP-mC{t5W@6=x_Q;)@S37+$n5-;Q2KzJ*ITcvGaBKE^G+Nxh9wT$Rj+WBpf>=5ZoHusdE*AcZp)0`I z;&@kau`T>Jf%BK-aHA!(xbGp~STQx;xnCH#9Kd;6vou*FNlPb@*PZxKD!WoiOPzpo z)Y#^n#|RBAMqYR9tRpuS_ld3(`g^Z>agV@n?cj{KeNM(LIu4%9D8wJ1R$MtB^Z9yk zFoLGZ0w-d}4Kw{}qo*5>uE1OdoZ6xVAB?XXVQ0U4B<{a9qJK;5X`&~eQrJhlh?uhk zHF&Q*y!a43yaV7$_Iu+bw$wpG{T%Adu6ANJ>RLzS9yOZP6@#GH;S3$)oWW0w`LzOR zN+UH5F3vD|3_+hC=X`S9G^0~T1zo^7uc5AHJoXs+J;>MHZs`n7Un1X7zjsI{Z?#Jv7QJxCr?Y1BEZZ244fOR>Lvw0i>0%`IkxH>F|ktYU-#h2d8uN@ zw(#Es&RNkSXVaVppqI4!}AsQ+qq0cd|p=(pUr2e zY4jxQ%Jr}{(qavHVn?sDQ>3vQ`bd$e!G9?;jYW+STd==bu;{Q+jd~^NgpyW&J!)b^{78y4R7qYa4X`@EtIrUl>|Ah!JDM?X05&+{Dd%aMI3 z(bG`ieC*P8sb0SBuNmuwv7S92Vy}X>|>$wOtJTK%G*p;Du;9 zCYr*5bAGi;q93%2=K*K$=7+>}*sHpO*yrk+F8Y{g=>_f^(Aw7IVJMudL(6ncSFu(O;xlmGX@1zaV6mEfCqQc=&&}{? zE^-*`p}dOy>FjBaJr|tU+~?l1HkLSdU*Rb~W|b@%+^`eqC5`K}TE^9nBnuZ6bi89_ zA48y9k9~ku)BR*t;6*M+56i~0pKMzHVCs5LMfH3CbpDBbZilDvX-E!tUWR?lBAog1 zyIZmZ2dqp*;V!?9b-e6H0`PaxdK;?bDQE^_)<1sq{>U%OzyF`}tl7%3k6-oV4xA%b zoR&PF>Zlez~U0O=7 z(R)FhoMqGkEwPu3s5Nbe%-pKC@ zOPqH>6S^txQ+4Yu2FqOVWRR2p<414ypT6kQnj@HJk)8$t=Y(6&q+Sm&??&7Rd3{i7 z{Inu}E{MvIP9Z)o#Cg6jJ5@T2dvFwRwo6En;*f86p^sFlG(|d({8_@i^5$%cBw}Aa z482f0%Z*ZB@cGZ-PP}8cPWp}+%6!D?Pu7XjUi3E#f%(=ry_6D!_kpvWxlb#dTA?I= z8S=V=?vm9@%;nZ%RyFmI*f|t=9rkL^3Q4j_lQq<*7b`0v-UX8e!Zk<_m%d^*$W^V5Ly5H;qt0af`s&qC>HDsqp)JKX6u z@YdW8zD~VVc+=oK@EBaop%8Lh23Nx2ccoL3*R$z@3Gbw z!52kM+vIOQ`UwaB?DOxRF^ZKc^yCO^`%Wv7Zl~(V9(d|EUXrdJjiog7Jk|3~N_XzZ zP%3(HW~)v~ldxah9cT5Y{duW#M`&ZV!aZe{BUxZpB}e{NOxL7`>$LD-Lamo`P5Sr% zJ&g|Nhh*hQU7%0(y%XlSspq6pFX*-63_meFF5N_L-?1k+s9ldpUNP{RM~=6z&1$LH zIwd7)@%j2yl^%~mKX@ee4L?`mY!El%p{usA(=YA@&hxQWk@U8h<11UM>1|zb5e84; zmw*p>@eS&BuNnLt9zJJ zR~NgPSMc}ke7lodjeVc)lhI#tbmdHC*quj@+oi`2nI_+l9uI}?q4%ynd!8t0EoSy7 zH)I>iV@01nf5wfOHQkw6pq^^gM1THrCAKa@M;j0a)=n>wrX7zZcid%(oAagKPcaj; zMGm~^rL+nCXAZb^zxGi|fkuZ4xmnEWA5#6<*qd-dPvb^qmXiwK6P(HOK2@27UU6N# zAD1;%*mBgPrv@SqAM{I_xB_QyDEKzhK1nVq;ApvER{Q3KbO|wa(n$D;1fP{GXTeh< z6up$BUXnR-t})=`D-8X(z1|u!6QHZs*O4de55BL9{o+0Wd=hF7M-$wA&hh-F^GY(S z1TV?9Yxy@*B5A}k#AMUe{H!9x_%t=0YaYY5P@#{4x%+DS<$SLJ;4QaBFIyqwWl|so zzZxdi?r&Zl1q_yb6%}`PJfT)=-dRj+)8_r#l-^r*sz4fBD;welN5D z{vDr_*NtZW*y%39eB{(MQ0e|j2rUv@vYgO7aFQI9{Jv!)_={o z3nzo)ai=-^j5~R_NBNAbA=`^*ZU|m?UT)5^Zz^dPUMICIlLih@(&#|&fou9pHxU=F z_Y9|VssL{JBJ9ud@Gy;=$1iQDLC+ldhSNrV_$$m$uA-M=bBuRK?(LJOq;2M>`0f)U zDF8Toc09?4R*N8)T;#ydj`D*KqIavt{)}5DU+Yu|rCrs~(_AHgwR;e0(W~ll!I^*2 zB!F_Gu(z*##F5hz}ugb=cCq;PWGXS}IIg0_G{df$hw$b=bBqG4xOXfAw<{b`SkJ>tT4_N3>ys z(XTr*4tJcc6I-i*x7zeD`Vr#9&cm}{`W*CVLS)SHy@ry|=R9+iV@uF4Jg^LX(TF~* zEDSwGIdTlH8|!uk82F*@`m{aUiW)9*1?t4Njo4xtxcwo>;cYXd*-`L9X@{PsSu|&h z_}W5ca=d{QDDHg)-@zbnBDGk03RZR}_V>5!t0PTrUMG^eVMFEt6oM~)J zTfWCD1sP7E1~|KcdofgjnLqRjhQ`WTTl$l6qUQho=)2-?`ZvzQ8;xVRQF=O$`|HW0 z2JFI79sF=HGkRQ)rJ`Tg95tHP@D}VB^17xYz=!egz$D}wO{XFbl=Noy$TwQd$8%kI zFiX@#Q4=53-ILvz#I$4$DBtqte;;^!0t=f@W3 z_!D!m`-!|Qz0F7dEpmjb@JdKmR}%4(SR9rQxvl9AFzoRKN z$BcHPe`vENmRi-XC1j5XrHS*jw8ictwA_QK5Vcm**@yVICjuyRIsR?4IecLYf9wuu z$&a3L=IBMsjL^o~@mLmsuNwk1R5IoAU-7vkF#k8s_POJjNrE2wOz30io3VsbI;w`d zsfu@V_TqgkEkRGX#M7RYG>D}gQ;_@Jab`*2F=j4CES)}_MS{oJ8+dMTn#$g+kD?*K zB(=(XRtx$MXA{w9tGt};MP7Gn1NQrD zdURE$GD7~>kvzZ1;9Mf1@qPzD#YFN;^#EhSq&~hJZh83rP#BJqRdT*4~Ih;d#j}% zyKrv3R4lQLmc|{y=Q2pk9^m(1LOsAhWN2{gTP}v zjUJ1~R2GRGc;Ojvt@CWyG+^%V8~dJZhe(eTkOv}fczN^@->0&M&i;y^i9?cw+__q+ zh8ogt$v43aIKR$7ZF9XPP0Phzd8n4g6gUyrM@tuWMpN9#Ata%%b@&tJ8NtIzhFYZX zpq@^*AaeVOd(~wnS-)*cIt_eQJL)N=Z?^Cm+OS5S7&a?|3;ng@AI5>a~zw!3)&{Ai=U6NWmbhcs?-m&$!8tdh9){HLcDeVEU^1S zp&=819&!(SE(+9xz_woR#q7;C=)P`43~w6FGVjB;&HxTlZWIfs8%6CdfNM7;j%g6* zdfdb=twkbhfIi#tJnTwLPGp*MYO0fu9>}&h)(7>)&L`NdXrpCz(^RwquLV;db|3wX zbNC)>o33md^0bY%&=Rdd()&9qs`>#t4yQ~73AOx}{+MUqI4DfUe4%xH%+9--k|}m_ zOB1kjD{Dk?U2%`~M?J%vl2g2rc*GrNnL(%w{$o1>_LFl53bu-1IyhQQwGV{z1Hh@v z;gI8{WXYa1Q_xHFV!T#VmU*r6qnPKozmrq?7}oib(?iq%_oEFS;3L)lfS&)~e)My= zKXIO2G?s;C>&db$@-d5cjQa^Lt_$*Kp$i+^Q-_)!bB+Cj*~&%OjYUlO?Ci-B(xCCR z6?5tp{_GfZx$7QBe`Bzg^{o+2b8evr^?MbYOi^?O&v^GG>sUB6qFa2z9rt1*>$o31 z`Jdo7o=;%`C78KYfp5XW_3R1epJCOo_mLmZu7%?+tBSq&?Mjw-SxMnI!`}YgSvMIt zjq}kL9XH?TQA0z$*JC$3ZMg8$A3I0LnK#W`Ae1=Ze#-(Mx00FQg}Ph`9)j6jYyNxx z5Tei63mZ_!c%Ts8Z8s`c9=W?>$Dzk=1=*NX@M*`HWAAcm1xGGD9(r}56?KO< z{CGd&Z!JHoUwr&1Zd%3b4;K`q#Aor(8NQC*)<3Vy^XZG@#<1PsnUAsu$5q~*6*Sh< z5qI2W+q$!*6Le&uz*&7gjP1l-k-Z-IbJw{{b`AY!5%|{)XM2%LyWGS4&PT^4^o94z zN6Z4slGqh!$at8-U&$ejb%kERHE=MVj?837F_VqLnS6b03mcA^@M`GElrG6+zpyXd ztquG%<2SQ@&fo!IeZzxR$Zt)a_h7Svb>xgZzUr`%?ChCXQXt-b*}Z@@H;JV+ zI1e(9NR~e+hT7t+?j9G%Vk6+8P!Bth-s@S}ar8PIfKTTPHu?wpbp*}0JKLEjV&i_) zbQTA)*iS$B*FzI&@vlYgD7c802fY0Ct9UsHZ7MMDxJiz?uL5(k z)_&Bkas|$ASs=^b*6nEh?p$T);F!EZu#D+GJTItF3{?S6%Gw?v7*aEpwiq1UvzUW~cgi%>`ac1=BGh>f2Iq&4E?$goZ<0#v)Ns68lP1T2UjDU z*<(+(Zzt#pyXx7JhR~K754~1t9jh}vnx+Nd43}(XSP zJST@1R4U%%uFnx%Gdbo_;B|$x(;7{&4`H#V0-s%`;GU=}a68&R2s%I&IBUQYSm0TK zt%gBkIJn}q`F=TxDHY$dw4ofnAr=3&!+l@!_o?`q<7&#O7k)=M=5EL3@XSG<5PtMG z;2&EFb!@pG{gDO>Y0~vSac=T*AoI3gNn4#!=e};iw9sSx?1SFj0(R_}wfH zW0#S$aenZZiQg*C#*V=B=9rc2nZ(&(Z!QkHeARt6$c*Uq?Hz_4`?@-#6*%VA-dA9< ztrhb9y%kt(ofbrE!YeRL+vrb?6DqKcz6Ou_Jr%F}!(&~5woy5TN1yo8MD)ALUoU}Y zN27v@*A`cxEswKN{&h!JIXrW~4Tc~6lj6m+`KKi;k`#4%@GGV;48YlBpwfXe%vb zPd~-bt{LD6b%Zy=t4KXB9Quyl10yhS{eRMN#v zG@qlTj@y(p_H2D|2hQ_vMI_bVsWUD+4n4qb73b|G>VO~l75K!!)7u3)iRJJ7AoHi= z1r^xZm!IdL5L)N@%HZ!Qr%s3`n@hJE4y^R0G2ozo>G;J^*2kA-V;)fcZ#QdwG2=z< zI&aP~UwE&pE=GV?)6$^unoqqZs{Zn$A5<`dEYJff|Neh)ew5sv{l2EByTI9LZ;ABD zRZrc3^X9!@r9s$14g}7!$2FL9H65KoUNm-LQ7(Dy-V`sA* z^pG#LjiAbHy;z6WDw=MBuQ%_@ENfvOd^)@jnk7j&o8a*TUg(U5OS#%6QAFR+W2zj$ zeMj!S`wn)^(!Lo)?Di$~uE05l(4%@+fpeGjLF7@n;`Qho{^U`w0yn=?(C3c{p(87A z8?0UA6f-;onlI0eotzAfV(4I&BQ^G^56)c(RjaEuFf(7OUbo`kro(IfWNO9F+*8e$ z_HM-;0YCbUjTX}*aM8>E?LRobT2`06f2gNR!1>x`CbgZYhwcmbS6K(7Os1oSz`2RJ zB<)7c@)kG`S(YPhToy~(&f&DbR=%_fnp8vPpl=@ZQR>qmh6tK1J3}k8D<1HqJ{L}o z18T52+oGub2i%FdwOPG)xXUaf=##b%ThR$Ukj}tRVa~$P7dnl8MaC907Ki@sC3|=( z4g4sL`mLhMxZAwCPn0fp0cY=Un2nBHfwQ*GEGZ@! z^DLa_`7Vp3q}&+FKuuNM-%ncBCWfxzzPn#9T=HLzePrO=+*>8Bm7?etaPDrRmGaIvy}(S$P~s)ctqeXUw2Z8;KN1(e zgRX57v=;A`%6@}0XL)R?jyXJ=>y&KVto z$#!i84j&c<(EYv@ufqie4S5_&`(6|qJ}c$qgma!&dy~Or6g56;W(UXZ4~ z(Nhp`1_fEt&cF-{INuoaUd#v1=D<1jSEg79oWGV}CTO=@>;RmrAU=CF>M6Dc&ZB0b zMmt$UOatGbcy&0%OuJ$XTZX+tMzgqq|7IVvDY=!FBG}lWZu{TTx z@Ty@0`O+245nI(hX=vf=M-#mR|MH{XvoVM!nN>V5|KPmob(&;@JxvZc^Dl3T>!#}| zH4uGc*M-JWCv}vM{?9zS?%d~QI%@F|{rT1hxs%ul8jU*6??yk#zUOBq+> z;y3i{5A{`2k#C+ccu6D;eO(bZ+;ULsf2_dvd3)@(Z?1TKb4DPA&#id;0G(73!?4~<{CG7`_Sda@IRjHVw~T`mo)F7 zhZ6kJaA2GtDUJSg7k>1kUj|Z%W5xOZ2j}m0E2J%`2S4!TnrRP=WfS!DBmlgiCY!lm z(3S~1jI-@$#g8#Ze14Cb@!|}A3U&#bw}<{`PAnh4KZYhxL2j@&gP#S>z(~{@`+Se` z%?3x4^AT`bzMtb?#YWN1hw#l@b%R%2gPu9^3c>FVuRtI7NuvlFb@mn?;HIIS*spA4 zeVOkbhh2m&sQZQ;<9}j?Vu~2@`&|Sd3J%McOzd6ud?-syLZ2UV?FNmKr0wA6+<%Te zL;p&w)I5rw6spP3_kpwq4`?&=It#9aN%zyhPe)F;WY0yhC8c&SW$hBz6QXK;rfO5x&AvPm0f9JmSo#^%8kY@K4W)+HuAW@QE$< z@Tb=94UE?4NOx5$=py{+kM|Cwa$Sk?&+Z?bQ$yNI0nhZb5ja~+>B$w3)KdfC{OCt} z{>Kg-d>N2eyDBk*07n;hx3qf~-)ML&ZMQ}3_UtfMscK;34 zg^ul_X%gy%CspbSRk7pN>Lz@>zcmtm?7)lyXKc55GvWR#4b`a`0lo1iLaX+Oy^SO2 z?wNYR6P)MAts|)2j%vbV+}lS`iw$mfk{2*5*$qFSu+ki^?|bmOuw!+i%6iEq3Ozd1 zg!dngU?xqX>B&KOx0t7~nZeQIW(q#*wQP3EHHsR*C+60bGtA->d=^~Mb8Nnc?aanJ zD=CU{D+RGJtuZf}4*h6(L-vjfpqbd`3UF6TwjOdy7DLIiS&}%%=mUOSAXOTD)mXQl zFZ6!>$@)fbW6Q37^v>W%C*en*s|%pYoZ=6h_sx*R7~~rRfb(n1CtT)0J^ZAQKQEB; z_n_mdJAnPZllys3a5?(EK`(C8Q~pHHSdv-6qaoN-unvPK^=N2TENvzPoQft{DB{N8 z4nj(GXyM}lfql!Y5@T~D^!jC~u^#tZq*Q@W7zRuT@#W-;F zz2t0BE$ru>K`uVz46C*~nvS|f)91(^tZpml*!L~xpft!fF9HWX0ecH)Y_n4bBG3H| z4V^g-*(1P7--^07A+>#W+@lEEUIa}~&wAO9C!${-jhRjK8TM5kNW0DNSWi!C*cmPfK$Fqek8#NSz+U<1gEa4Kk!)JlH zeETG!7kE{P@a#xvJ4Cp#05iR&@C{68B$x-Q=tm@cFfR_{lQ1LDq6Sx=6Q$SkB(1FtURqsz7S*`upQQ61Ci z^-@O-oA=93vw}a-b?p5*I%n@=*j-je)1uK<*=>-UoWq>H>HP;RAv}=W-$u}?ku%vn zaP9n&!(Hw&N{YA$U(RX@%GtiiFm1R$m74yEb8=G$PRhZqF>nrCI*0GlMNe6nhaMX* z@lrVU2T`{kQvc>JWA^<5{p9%DEd>YjSSo`K!}*WBg;F=@Y`Z`M=O*@@SAsKxKESn` zUP7bGcrVH5zeV{7j_`M@X+R9A8Y=9E&)xW3=#%dZ7u3k*em_HvGa*cvWQ1NN;z`MS zKj8&t)+J@gTU_S|SK6tN-$Kth+5&pusxeUAvmX{xZj5_cq?6-DW~GR5SnD?BOQL=OFO`) zS>Jw!IM2n8&bj-M7Jl@ln2DQu!?W#Q@!7lg9WMQhp85divqxijzCAbwm_b|k-{mLE zb>xrP+}m0f!cAx;eZw80snuE70&YK{pM2SLxKLfd3~LbX#N^pRQ~-P-m%vw|a-gvO z5d5%^Q+>-<3B8bG3_JjTlZ7$DhYqMUE&CD93I^72C^B^)V}Mt{^&2I|J!gIh5U z_v!e}*lYOi%eRR{IFQ}ie{?+WTga1qW9o6eTkkD!_3HP{WG!#+;MY-gvM=FFVU z)Is2VEr;e^{c$WIHGuBqMbhvlofv1YAd7tT#!H_`^S$Ksd}b((`Y>Di_0X3*g+RJF zaERyzoKNWeC=h=1?rp#~Xz?e`B_HhhmP}92WZ+rtOy})e>&Y27kI8w@uV192Vdx{R zyU|?W_QX<;r`Rd(zza>@$Izt)m`w&v5t2K_(Dwc~&wb^>llkzLU5Il#LMDc{1YWmPY z90@>J_qJ#nL80Qaio3GUF9>xIorz?lKg zKAqIU3O^OCodADs@eBXy1h`)NBdOW#BC#WOZzEh#lTUddb-D{JQ~di{=h`u+ts2^c zn456ImDL89@M=EzPwhQfX$NraY_t^RyNFq%zHInHLp_U^GDq+oLRx8P=+F5q3-#Pm z{F^eD(JTS=M~o8wAfs%U`EUjGONqct`jWIN1UDvSf?ycn_i`h?BG5pZT4ucH6lDqZ+67~UFqHr0zZ3quBgV~DtMyh^0d zw-7Umm6!vLFW~2)zmfbkl2*iD6Wf9NB*V-u`d6NG0`r=}t=JJ7WY5~&gue7D{M^*KqjsX@r`&(KJzxJh@|n-~(Md?MC;F;B5389EdmdYZWQYAUTOY<74FBW zpV431cAf9EM+;w2B@JAANc^RYq8M;8Q#$8KaW+xd%R#=f+MdOH2TuU?`Q)6DtO5E_ zFTpbykvNmh@B-IhCA5;g7BZ`45i|llS!vlq?B0TdgZubEUk`TWS1@&qgm=Q3eynzF z_#<~jzFrL+Ero*SqRxCdf2TCzfSlIinH{sFiL|h}oT{Ry`hDOj<7jW>bu#b_@W0+x za#FSUGv7GvyPNOzNl%q<4?f#{k~f_LJ#*k(^YdqZ?*$!2Am13Xr;%_H{SCtl#1?f| zAqn#oHS)TqysI$aVhjb3#QFT@Ata(-=N5#X|A}Qn=G17~nu&Y^Iffkbl>7_O&z}-0 zjKw_V*GrsvbCpmRXDSz5Hxt~I5_&-&pcm(ns}drtv@)64LhNb2;E~fbuw$9`0;s`9XlpAgg76-nZr&Ul08aC*Z8wS<0I<#Y`4BZwRa>6hT|&baTu~9<&jvOEI(v z`EyMhC!q)Q1K$L|zrlN;&=31T`RSNjaifGOtH9YghkkX|IAJWXx`6v`I6qNHu7=rD zC3wwrog}1zTiXQn;E@j#g|^_#+~|b-xo;c6`!;sV9$*%5FoF*`q^0#Ol=QI0RxxUR z6m6dkuJVLrX%2qoRUb7C&3q|2Cu(Tg2=MzuYqOfD#mf+%s~>2_R@GKg|JLxt+HAwV zqL1>kKtrQnwPACYLNC7uW@fKjv5AL*sSj!-o6oh`$$|j7h(6Wi2{)zCMc{8>UQ?JG zE(PtCQ{OSD%WPkWYGBy{y(XvpRmO!&&=>t1=VQGPH*nVfo!7a?9pgW~*V9|zJU(Fq z-)gF!4glvCb9eKCQAfpy8`1AC@I&kB{^DbdU-5zuLVu$kaJKwiS+Lp{L(4F?YE@E4 z7*HBb>8Mk@uQwIOBWo4VxA|^sBb>$FO4b?p&~<4qd^-i-^8$Dro7oFW%&af`z`Yq@ zFHES8{xfPo<8M2`@LokS^pW=bs4N^fh+Uks5%lZED1P%=EiD00=wuI-cpR~)2KXFx z3ztae_G>8}+~c0v2c@+upy$&v)^Cx-;cjSP{#z<^Kz)B7 zTu|pKY_>OIE$#`2Mn9$SBf&JjFM3kn3Z!;#0%%mJk~*Hn2j}0_Pw-!{Z}k*7-|VX6f1r<) z2%M|st>i~QYjhuQ&N-XHXV%csWW;|qY#;B1dCIb8$T9fS{OK*Y6NjO8F1f`Qzl)|I z1#q)`&bI6gzn`JXwi77rPUe*wV41u>gBeQ?Fl(`nT&iXJy9Ip zMoy!bgpk+Qp2i`|{Ah9?=o-V1-gy+h=RY{_{cwSAguduK;5>F)7{6kyp8SAwHc*5A6z(QMT0=OXEDV^h)J7WF3hyWLv75gk@&DFJ!O!qBeL ze(bN0HXts?jF*I16`6y#$z573jktt;*&~>feF>55QTLoWrh%4-QnH;7zIGRAHYG+# zOO7Fb2F?=}E|HFu22l2IC2hXPOZO8MbZ%-S4N7?u#XDvyWL!VFh_8)kg(k#E>Kx$=8)zAlu2o6%}0fBLJMoT^7aJ9`lS3ph8# zY-`8Vmi$T7#OsjPt7Z0z=d7q$3EW62gc zPw$U?t@X8~+}{DT1v|?#4i<<$o1pnHGm@&W*NIlSzz}oi8moUAA9j?}RCx%6bkP__ zuE6eRAXpXhw;|3>#50Dp5qvvLE7I*NzQIB++o5@{AuToY8x~aNUE*kMU5;-0#3*quc zf>#KxQRb!lva1|Co6rmWb~nQ?y9zWY4l8NGgTuy}$RnmT-J zv|LV;|AX_Y7e#yl=7S<|9^HF7?>7STZs0u6Xu`kRqN8u9yQe?f&us)BsS9wvQNx!z z4-L#i;OdmsZ_mBf!TTFHb4~JO>Ko`k182wG5wac)q2a$FoDTQ;;{19X`uq$W`nV;1 z?k8$##eL|hHq;nCBG3JReqH}pm5dKRq9^e?ocIz)V=z40uD~<8=Ors+BJTete(?P| z+sd%b5x%t0f1r)o&Mm)asYx34F;8@sJwhH)XR(TszIn@<9)K z*VrRjc25~euLo;rK#}64Y6hZz z1HI!q@v<4<&aHctBmRP+IT(URIr#oj&9AMyqtNqgAnkGgqU zcqAR_<{?vnU%gq6or+XbE*3d*+*skIM=0- z)UG{rZIBtx&P_~}+zFPWUqM?lXpJ=yt~+>gEk=X>y@{}m;tOHKcb&!*Wm zgn3Wl>j9jT+`aiu!}MeUoKI}}!R^KFRW@)w{~(lW1DqeAUw3oZUfDB3&mTBz;_Dk# z(ddf;=foW*;znp-YJhV=&vD|my3urSJ-Bmkqr_}C)NT^`OSzlG`l!hY?!q^)-+u8u z_;oRu&t~rs#c<%9iX1Qh@kz0N3B2hLtHXL^h$}m*X~2Bwg{poTvzmi<3O>w>r+QiR zbNHu6lxv!I<$ST1(WMV!DHqN)*@yECPF|YTdM?6TMKjj|=Y>1DuhS#Rst)?n4@BVvc`ku zlo1<3t*>5mp6KsK;d}t4z>hu^oKo&TIHw(KB`kT2oEbQ~Jy^wOxqv$goWBJ)^0k0- z9B|HZd(1rs&g+5mQm<7U1J19|fA){*$qfR|je)b*)^oBh!1?QnaC+ano~!_T(I3g! zH!z!K2n5dQB6808V~vA>^XWUN8KX0eiVN6x1I`ZHuNfBu=Z|IZ= zRR5;&BKnd{)RaIiQ-Lnyw<{C+hP{W^i--Zi527PGMfGL(exSE)ilvaaYTNin3(16cSU-L!wy}lm}3B@i_QJ}0LxT6E1x0_MuQbpul!ga+s%X@RrN_bvR{p?b;#&I`s(<#(p*NDiF)xwqp* z;OqySJG899?*`5W;2h)rhO-CGcZXn?!7G>hk%O5aaK4v+k_!XQtAVrmnZw-qkx^s~ zoIl*$$+>`+YYm(W!qYjM^EiiZzzxez<|Y?I*9bW4O%k~3IM3n0xhP~YR|R+4lzGtg z+Iv&B30_XAh#Q$7dl*jPJTD4?u0hk4#(G82Ji$(J<(jXJZPG9sLEMS>Tu&@UJ=Yc- z`|RAd;zQ_;p9Y>0qxy&ehoNCCgXZ1fk>W|b?*yFZ^VOz{=^KN|68CQL?HS^2oM%H_ z)TPHqi3v{?G!eYeMOPY$`@nflRE5)~stLyRqvf<}Z3x-sbuugn@*~`);N!mQV|7eU zyZ(do@}fS1C-mzA@%y$NIKgX&z_SK8msZj9k2dRQB5*dJzJjj{oQDJF))Qv&U%`Ja z_a|EMc{)EdDu&d+dBto`{?%p7VS)4K{$6~GI?-eXoPVaz<9`f?9;Ole=c5a8Jwi|Z zHu%z27xDTt@D_dzUV5zs{7CShuOr{O+G8%i82QE~;CyN?&u_x{S`Xi-gMCuDspyMN zi-@FU>V3xhh2W1xV{fh7I`Q2%4b>m20w>_DxF`$r0`ToN9jqsPtcuzN|9|t#Hqv(J z&CF>HPfUm2lJ+R#(h^~Qb};q! zJA-Ns^bn4;ld>KC=uj+tBv)pM^(JG6l^Q~Rrb^@J5I=g^7qbEQ(N{hrr`i9(S*}nB zweQ9g=Zc-39cF^+&??#w-fxQs5Bc$j;^^Wn^!XoL;d4)}q=k*bsr9O>{E9nzT0SP6 z?ELTWRwX)8;rBi%DBxvv(04-YyM|dz5_INmksF_{^OFy9k0A&2;vPJ&hFu%XT>3>& z%Xl+kYGxEIMoi%IEQFuvQ7;8Abl{bSLM_a}({>>~|7;7-a{TknTdX&>I}Iqaj(ES6TZ z2T#_3-{EmY8U*e~f+c1}YkA4CQy~2xS6=}Y<<@?WEr@~zDxzWs7}(6b=MhkB!otSJ zRt%J`8JM9aKrB?k0xWEpc@HAkqNrF1w$~QBg$VU_>4{*)fB>LYxhp9VZC@-vMh`;`Z1>N7DpE7=Wn$f z%R;de+4BTUOa4`J*5fer#!`RL&+?D8E__)V1Wf}4iXos!Llh_aoCC#6TSg~pg zOYVoce<=0>+GVhq{?Jiw!|Mz7v3}r#dAtj!z^|Lwr(aPt#$HB)HiWa+F-o%j0xrGf zJk}ZDTai`UI!vU*BNbWqafx=UE&i_i*#E363fVl_O#^<9Jc#IJU27Ia3BT+v&9 zcTji-U)aG>v9xb~nWWYoSE1*=V+NmZ5ro~x z(X@6$BF}CL{mUH%_6o^)>iZBHu;_1|`Iy2WcH*g)8194V-P$mV0u8+bUv!s8GxqYh znhqQdrMCGU*t=UQI{g~lQ3)|~^sA?|!}~pdGV{RvW#c&XJl%uX^FH7@%1|eMQL#@` zW9buSf?KqyED*89^$L2?XZN%6Bhh609`WtNaW?E3@G%D$xAi5=zm)V($8h@KS}FxJW2s9t z{GM(eXG>9=H`s-~N7i-L8k~w0^!#7Edd4P#=f501(lX6AcCCw&hI|Cq)U`S#gZDBS z^Trxc!B!@_BtyD3eE7m)&d$>Osysb}|ET9z6|7h#9?~ASdUi3Np5BLC4Vl4{IGweLA;*hbH)a z_A&HUVN5McQM0~^q15+zOmhYvN)nvs$^Dtw)J;idh-op)8qiVTd;~G4mXig!0_Qz= zFYd0lq{gVtKm0`f*w=#0N5G?~7v=&TtJB>V&>p@ChiAb_*0qO%T)}B<;kSvoyF!x< z&$`yN&$2z+;H?yj{T4b?TJjLHuW6&(2hDCg1-*-TwZZ{!%iIz0cSpjmL){9sY8P4WA#|F+=c}Z(0tU0YCq-ZNez?<7Ku8vw(q)hz}*tSpa$=rj*&U5&U3(?8UBF-6j81qd=+ee8%4gPeHyOJ))6utC z)0|p8Ku-_vOUHyJl+g>`B*gXP1A`77&(1)!2X-dnjg6ZHScx0H~XXlKA$Q3@q$#XN<+RzYcqxl=> z1nY2Cd_hZRyTGdK!d<31*}P-q04!w5GH??EYAc z_o$a8-8VsP7lA&NT{TK?1RXH$t>(K9u@0zrw0puSr9%@|0bP3=?CSouwWZJr{L8Pj-4ssRV?}5iWV-wJ^1bK_JAMZ84eyu-^uLL4mCwD#y$8nl$D7p%!}dAtXs=WF2z#~@H(oj+Q*Dv z#L)=c6HER%!|t2L(NAy>MsZ@eh}9G2WPN-bOKk$5SoEsyT34looxtNW!TWJmN|(V^F$Zs0(r*lH?1)({?$Ct| zN0Y}x)PEUDiu*Z)y2S^PRiTn(7hUOPav+JAgYFVssppgssx{St9{jY~BWC&~hC+(*HICm|&F1hJybZ7ZRkbO^F`C{!ML){EJ}q5u_7&IN>A{7dmFGtUeWhGz9tay88w70avryuW<;TK%;e$Kmhz6R z9Ru&X4!A>qZe(Msqn~jAJuYdOun)cHk`3V`k@n&{LNI4J9zoaHcwUb8>nb$)os$RZ zUPK{Q?}AstiBzWbLXP7TNdX0xH1{mLC&Ag1Kzeon@5`yll1s_L;y+DYQ+67&Veg$GzS>{!_Vj@re|XW7i5vA?xiZgcOlRTJPj6A6vL z!uRavl4#n9`}EiMse+A~% zIz}_^5cpE;L;smwWTr2JsoezlP|dx~-o;?%k`qZ+TD@VGQ?X0E7~WWWE$Qdc0Qz(= zk`|IZ_E3e;_oTn;luo%JjCa>klLnZT9CKrxTWDx;8*riS&0@Qa)%4LGnv{lecI_*8 zcLNNbJR8{Bw{g@HecOc&``El!;BMpI9CGjks||kR&?(p-@%kq7`W#JZGvKZ4@q*pQ zy?tdiJgFSMv-OB`cjtfy;$NMrG6h}6>qe!uvBv_w9QgXo(0o$Gn< z4(5Y9bbTGS7b8iD+`Hm!8P8|f&u$Yz!nQqJ1rMdno8WXkI4)kmJ?K70hWXY{;c0j9 z8_z+zeR(QtJR_Ji9`IGEvw|)76-ZHu(2?e=SH@}!kk*5#AXJNyFd(3w`=7V_tky622 zpwpD${mMG~l|8%$&Y=)Wg%(w4(GT$X`{Qdus#0h4oZt4uz0j=+`p)3V;^!s}`NCT7 zf;VF)aIkAXWe>sQ7-)+b#EX-x_HKCW41@>o5pPD&%YM;9-{E>ne?Ay}Amk0}Y_{_4 z!SMD$PNHn|l<$6nUUgzPb#WH?%eTPWDuTQ&cjhMO(`4%?+f-6VdnXeNs3MZ~1QXWpwlr(i3?4o4Mp^v2H3 zmhi`}p2j+(j}dNz9+dS#_GCy5Ep81BYDpoRI3${W;dP50S6I1+^7lR<)0THx=UJ%r ztifs9`IH?&t~(R&sbzWv%LG3^sS$P(c)wx&%CM^kze8GwSFCGOITaa0|Mlr1yALnB zDYf8#RqHBStiybx4)hEi53%~QBgnZGxR+0cGrLAI3h=`BoaiW;I$}RkG47PmU3?b$ z_d$!o$hyHZu7oGyF4X=_Ht4yZ6Y@G|XhOSA=8kW$zt<1kr~4noh{9lMam3JXc_NZ^ z5c&k+)I9#WSpQ@IW!H@$Me1s?*#&-@m^~eGcx~UN}=FAvEu+ z$Udr|6D$j%T|-h>Z~F)e!(MxRd1p4D9R8P`LTO_&t@s2y8c*a%UGMJUhFMm@6U4Ex zxA>ep;OO;&k951eJat((%?4l2zS9c60QsyD^7gz458fV}#_w{>0k2Kqon{8ol2puY zJxB9jO#|rBZoEgUJMoTv{i(@b_=Gf{D9YRU)3Me z$Bb|u=JaB7zN+a6p6iVv_TqwyUgBBZYdo8}w{nNYmBD;7Tx+uIy z`v&K;(a$3(80WLdI3GKD;PY&XIdqnu-SL!Tu7@0E`~miEBRq=n+`7+Jb_n%HBb@m< zo=W!8JA$4g?hTz)o5kIapqqHF?!TWBrQ zn-1Yt>-@+BUtg!>gecASqsREX8)8N2nqayP-2RLk|JV*^9`;%~hu1%5*JnOI)N~%t zgBLeor_c*E?DhUQxfQ#M_-xqKd(GRPP1yd{UxU*E%*X5H%+(s)SYW&Kz2GP$T#QefhyxP71Qb(ZvO?2bu0{tl}3i*Jl7vFo-kBVcV>q)&V*1U?H zL2K|gzNyfkh37&3mcMa+Gqf8!4V*6l&uz0F3WKU>=oX%@Zz~Z(OI1`8c%D&|3!B7v z8iVKc2VM!k!0RZ$vs=$9tmFDv8V#Ile>Y)M6Jw|a(1yGExF(&jChkMkg8BHO3wNFkhHbjQymoQCBSG(p=08w}NB5{b{y14ELbvO!yFn zI&$~z*ySAuek?RwCK z^_1{#9|FLagEr)m1OIi@pJt+lEq3e7TRiil=3Q{NR(mb#KS1xy_VCu*I zjvK9(G-4ARv~&&Fj&sWt8klM58J^3l#|r14si;2id?U()ffwObh36xWJ1oWt8-$V2cb~)a>Cu~nF;~Gy!a4Vt zv{`uZF^U!fbA3s&@U1n@HZUJLVx8cDT-67dw`!&q>aK$)4=~^693ce43)%{?Vwq;T z@UD-H+;NB6TeK41f!kQ6EAG3^b`nd(mT?pDK5iQ?{)0NtEg7GkoMKU#0dIr*xZfrB z#6`%RBQ2nR9DH3ow-EDT^ji}0%c1uVL7yJ}rK8`Aea-~Yw>0cJv^C=S?E|Us2x|P@ zMm+MiKY12{6T9ZM__Ufo=`LV)J|b6~Tg9I;(AQD~E*D#12EO|K-#C9VelMWnq}#x@ zdHdPIgk~Bt0)~f7>IwJ0s>lw{^9L75CxPQJ2hST%$4cvA2UaGYSLC@$li^SG9nT#n zSxVE7$Iuku-1+u($(%Dd&v-txLoJz8sw7X~oK(M~WcNF0N$@;3)z`tPF?d|Se0B3$ zxw-++lmPQ;?Ox}$^+g{8m^(NP*0nx}-Vbp0jaTTJ{*=*t#M`oEyL8V-LC=kxCol1W zt}){6c*IZJ7Y}t|7i4q{pZBkKzUjt58{WSh_jPgy{i?NcIxPvKl0tv|e$1}pL*QRA zJWHR2e)%xeGWQ-_(%a+jcm_U0vy$if+$zDepM{fM!8`p}_dt3&0r|t8H+pmAZ&3^2 zStEO_KhV%0T4(gh9~A4|s{?<`fD%5W>pOzu-#_;6d}F}2V?y*GEjMnQ5_@1A-^!kz_Zo(cyVo0CG`QeuQnx#4ix2)nu0MnHV-;sw*70FFm;)nve0WCKW2(>XEbt^SEv)~N`=O#V~jAb zd=WiJsM`^~7wf~RPVQL2*D06=mV-C)Xu9w@JP^!ve1vt+tIxi{ctN9%t>3Ar9gGGP!hDe{BUc zagU(ys0b4x7e>+}^tammbxj2J(I0URrnRUs|H9dhgaj|lQ-Eh;wQ&9Ap&F9oxl_+^;w%R>_US-#tJ*F; z>7k++JeQ3q71!FulNB&L-?ciwXB$U3cs`ZYgfHtEOY?wdSX^gr?u0of@HENl&wEV3 z?rGrJi4Wp~e6a@^cn+WF%GZKBYS;(&=))+!`eYP+MSPg>YZQ+H7rH6#yV&z1`2z>^ z+?wDF=R5Is5%S+PY2yw(c?;~3IE&n@xNj|<4&JDABXXp~r}~$O6$5Y|W!>8&G>rzg z2t3Jg`jTNJsw7m;3)1tUXwiugTKhN2-@AV0kgXr zOn#O!@Nb*3{@((rzJQqZz9~Bt5g@eef7-DWx#NQf;Rtf+mCMj$J$A2u zN26e}1h?c*oDc0iCH=Tq3%@(yGp~`Tn56lgOXyB*6jR;Rv=G=HS#eip@H?Gm`V4xD#`c1D`LD@l-qLMNk{&voPLt339x)@F+gFlDEe0 z58VLVaffE{o*VDDK&W1t6H$P-_Xx*ETfEewrt!!)R6%)a=hli<~I+aefwqbq8h}c z=zo@$%jj*CGrN)zK*dIK8u6|@+Zp3e-gy6ly;FtWF8*`^bA$odM;{D6WVP0R_cvZ@ zoh7YeYN(C+3%m8W1yvt@jTIPZ2{34&(jCK6+I%@FC$t{pWd}w@IbnP! z5DWb@G#uF8?fgm{vQka%IJZrFTJaC7RkRY=dY*LQ|AfYq4%j-^ozJz=&~gIXZ@*+b zcSGgA6}x%~ya@g0Okn%8Vl!`F98E>Qws_1=zUeLa70At|UE0HETPbN0YK>ME*?iha z==_=?51*gS7lTW1wF~O^*gd?(KFp+sA`Vx{_=b^c))1UVR zS4)-*j*-_0{WTBhe)hrJs&B5as}P>VNfBi1(2})4E}bD1{ndp~F;UV%T&aN|?h>h24DH!Lu*USClLb-<2zY$12W z>~$+@x9pq(zHbjaPo^VQOONxqyX6$M8Nbh}EIunhPQ7iAlPzSt|8;PrF>~6|Po-~& z`IH*ks3)&a3+AXXhmF9V?zP>SX9;##;l1fQeFCe2SbGNFYlitUHUiq0VO1ij?(GQX z)(!d(U|8jPEZcTJgw)~Cea};~9{Jc4bQB)WVY$ zq#nq>C#vWOaGq3SDPNNsPrf+A`-aAH-@S3Nhc2|@6C1}7gharUYmay-lw?+jkZI{3$Qfr2LKZaM4GiCGLyK6oO?9`ZLEb=G*1G_@+nF}QY{iy-oW5Ygr`L0#89h#Xx z&-18xI`QWrEtLW1)tX;o-Hn>xG1>Wx9S>QrrV8L3H+u@-pQfS{z`6AmId2NxeJOCB zcVHto&W|IICcrb_%hz0wB_o{SyBG6$*?a8H!x`RVeTg?~8biO3KlJk`=kD0sYm2|( zsP$u>g?%gGT`?bwe$9iy**G>FyXjwk<)+}&l?H~=rE1mkO3bi-1O10_(jUA5&SOj{ zv|0lTxEtnBOSXnncE(ixsUvjs&|%)`a$mm?e8|_(P~86fO6X>zpoc>dQ_RP)kW}ap zA4bxkD-mq!Eg9*sXDjcSiXF3t4g($$%cmzX$7uNQy@Quf(puKD1AgD0@Yib|&30W0 zqSaFs$n8h4?*{|u7x-jVs}~EsMuHy-5Ak<*`bqN~k$Zr1Y}iM?s_{z7M!)P&oUc~D zEhZptTmjBzjZOH*5DnQNCfl~^%g-(Y9|<_GuIOisF}%ex=sJP9yh$1# z4=5;YQ62`bx*L4l zQ+Phqi6GniGG0*^I~Twih`!`2zB;0yNSxuaTW1B1yR}*d_T2Rz!3WasZgAC##eY0Xc< zt@8m?hjPmvmE#A_WPWWCr^2gzEis!d@JVKRZ&+=%FBdbcOirc9|+H?i&I1WDZ`If91V(lTs)e~|@wrsK-`?sU$QNzKk z74%zKPSA}%lCVS2bNq! zR#2@)zOhhA*&|0uudDp2Rq_9@U5mc(pXYh(+sERoIp}Wy=dnR$V&gsrwTRDdXT!M; z{f%M3_I7kEpN{^9A99SB)4*SC4$e99w{@*H@@&jjUUm+piD9XHJNlxII76RJck%+v z?^fXM``&IhFGsI_=mYfm?ciNpDx=lg;A1lx-n{nUY1{&L`l~e`ycxRMK{EQTs3V3# zZ+lCR{c8{WgqWoY`V3uLY>RgS>xg-JbQEbK>a&CMknkKOZ=tBw=86 zY1n%7kvjYjTk+@ro(;3B1}!SYe)F{S9yqV)e?koJry(EUymxk~__&FhY9UrE9ri;! zSWQKzfb-6Z`rPe(-0wY`y;`*61uvl4#2MDw_2oe?V`wkV@Scf-c@50Fub?l{7hXf< zrs!`VKD(B9@maP?`hmH_vMkIm&`0v?f}N6wm-4RQiEkW?-sY~=ylX>f9sH2nv=8A^ zO;N{{pikJ&ms_64eqIIolcNUki)~Pk49|SJ zNff1c+t%|DCs1zP$EobPPP78g5cC=xgicRC;rv{F+S;Cyr339+=MifSNM)J-oF z=YEc(R)`f}e!dq?-onoZIN#|}lUw8N3&lM+=%_jGf?Vzc?!i-Qn)1CC(bNEawk}?+ z_-1%zTi_mCx3?WXIt*Gu;9NAWGyjQMVfrBO8BTZQPF;bL(1+|XAfVY zl?1!YkX!3-sf8V@<#Y(2rS6$3!67Ar&V)mQ@hMd32b^bLK(BU~o3MNc?i}#cC*(I0 zx<3dagT`iMsZP4=P5^1wE9sC@BK^4CpKgF#?9kdnVwK`g7Z?5y=W2ca#<^ci6@F`x z_IEF?!>3g7xdgl~;9O8oD_(A{rlG*u)^&||v9^lrfwN}V7V-VpIGP2VuOwxOULWAG z2Atj69~EbOuG~|9;ZT7XT_c8$B36VhEfQUx`b>!TaJH^o|UE4cgBCh`mrR-_1q8^4)E*;XWBX7!Cbw`EK#~S2>Y9 zoI(b=iMxHFL;M;+I@g~1#%mPx3o{ra^R3d900pI%V*lM&E8z=x=4rce_qp^D3Q*&W zv4zJ(+n&N@;5nF0F*FG= zx#ao+F|jsw^&)5Pzi64*(Z;}C#N6^Cn%>mCG zGnG1K=XAA!Sv6niwK{c^zCzCBbpgGk&O4-z;C=1c3m@3!$EET>>{qf=(1dtVD%}!6 z2k~#pO}0yy-9&u80?$*QFli0UTD8#XUs=^hIJer;%H;wTL`x83wbuLaISfwTLl=lZ~JF|-0Whc>>iFEWlH zXW*RSeoOxheEG}3IdRlgedHh|-3HFneq7WSPF9d(C)6*8;YSCb?ZX0UfA7=!rGt>` z&Oj}{;ee_=p z=;?+3Rys{$ihD4bgPXqNuH-a4*?htKuUk@8YLD}r*jYgZM0BQ_gXui)JhqD{~$qc@e20Y*6 z9^4EcuK)JY+kg8X<_4UV$D8n&mFSBC=O;(v#5=(GIB>q@Y%7ih&i=r;WsiUKPjH?M zefV>sTlD>bb2@Ntcw&lvFmQGR&PF~K`jNnS8gPE}HcxjMINJc{>s7|-`nLfG3^>o9 zmzw(xIL`*oc08wlL*RV41MbRyiXDdGJo}(;pSQE4WEg7Vdy_H0-aAQB#}?iN=q)=Z z_(`V6$*6rZXf(LHL_qHLy+8CU?f!9?1r6~^^xzDCuO(`T%h0%uKJ_9uA0AXYcfmum zc^}<;7KI!fd5Q0EU2Vi?b7&E-+YZttpwATLkN1Oh)y191tS?VNxf@M&wYrB=_bm@K8VSylXABe1P}!($-jzoZrwzG5{r~{Ebvv%TRive75#tv=;NSSHT*sX zj1B*9TdfTbU9F|=z_ z|NZbrY9CI@yDy^i$-6y?X$Z2XZ@n6aZ(hC zYg*~0;6o-`;%=~QrZ++#y81!|JsMs^FU5S-ZZ~#^bS&0o;{E^d0QFCKk}i2q5OzsJ zYudm?mwF_C^j=Ej>UVQDNBdJ%aJUslqjIC;{mCEPp!56x$uZy>lJqyu#oN2`yZ|k{ zFOWaaUoTd7)X)v!T%m3+z5~t*;B4V_Kz{%@&&GM4e$Gm-1kQ%KubcLJ&S>CVfqU?f z_G^BIbHU?s&gquSsp8acHANoiesWYK|WK&R^J<_k6qb80y4|M)2kM zH9*?D6SQxU5oD2j#bNC@)EUT8x`bcSEyee*8yQKvOYHSO;LTGchcCglq52OC@foQN zo?q4geJl8%8{Tg>MLYeeT=cM$6clj8NIwPr?UP1zhoU4AL3@1zyFH1zp5 zqtEDn)kGH_0-WLfv|@8a?uSTtLR?q=-#+@Dh#`NT=VAF0J}yK{F2H$C_6{-4Nkb2S zb3ZSs__(E-;(>GDM>q9j5T6a)w)5?0>wf^}X~6mC#}r)}aLxwK$`e&2e!zJVaBiCO zTJjS(??+zu_>okq1iJ}ZbJ39@@ScjWtvG7wv=uuC0Wj+j!+j89C_U0RR28@uR)l&zvtN)F2^Et!#mI`P^-4OIZ=-aBWCX*Oy~1kS5Z zT8IzpKnDbzR~{(RM`EYj0N`BLBSzo+Gj>4&=kkJH`d^68-%zJ0FJ93Fn8Z*`;JkMm z(=}*|xP{-_@csq>=WnRHS0z-FTn8riac&$p`$#xMK=(2=#3MS z8_;NgeqHuE>msagN4!3}X_>&}V1FiK04f%CS=YvP%~8u|{LQ`W|dUTxLj*MN7?XuNo+ zo(kUJz+r25QDziRt?_$oNw*aHe~ZOF6!bsiYKnHhVzA!?ak$BQ{c&&_N24C})!fz3 zMm@S8ccOk$vAziL*$1&&GNwS^XD~jCh}Es{9@V>JCTQ9Lc}wIzeRU)BfRR`AS+r9h z{tWs)AM`_pY|zV=z@OkBaN0{3>N7TCb_88>m0^waC+b9z@p$<1d>*B1*Ixl&I^=&F zR1WTV)(^vOb!RWh9Sg*a!PwClF0DQS{Z{GTm(_xH19lna1({FL^nYsStXQKSS zee}l2PyUP>b&?nI{g_+L1J0#spTsTT^VdO7W7f@sqGw0&3V^foopoZ}hAMIc&K)kr zh$CynlL>H+h?0u~jlktVf1{mWxae=t(gEi=CqhN%hR`_TP8_#CSo~!hjlJcebbnZY zxDr4A0%AzZ!K=l(&d^nXQ&i*VO7R4|b56EK?Q?RunDjzUJ^EoLxN?bj6+O%c^HJ}& z_Y(8K2_JnA{PyB5Vg%0fmS@=C6i}?Uu8Ds;0)9RfWx7b{2aV7NY4quxWI%W5m!Svv zb#0ZjxhXhiU8AThHBRc}g1C}_9``hvv=lyG4WD3V?d|c>b}`W5nZdJhhqaXMg-{M^ znZVEIB|nG32Mo2V=W9>NkZA$*VLtAF#H9{dPX06}9%ueZx7?|d{i)j_>>l<`{e7NC z-Tb>R>gW;5`^hjL1kPJtnek?WG{5;m77mZZ6^I+YzE)Pt*l`3YT__!{-#d0_t9<+j+W7k1Vo zp6nccM~uSf^&!rAoo{!<1xC;b;(mOrzAHwZ26qUtdeFXd@ig?r&1NFzue=~$#*UN| zw-8SxTSPDL8!v%d#a9myBR@sb+yN1^XRe^%)*4!zGw>5W8Z4cJ@81R5iOK1oq#bHS zQMDGpIl)wL0GH!sViZ|;R}=b=i=gfoqG(R<8`8$%VYKrla=(#Vq-Ezr$fT-*zU>_& zoeJ(~W@82VG8Gcr;Q`bYx%Zlj_LB46{Av0CX!aNG%{hvlh8xgR{cj)rPxPk#JkQ;; z!?^sl2L2PMN1iv~Cg0VRit~BonGs*|N=13VXYrNK;-|au)CDoN3jZOtDv5*733_qQ zt8oYTteXKJmtM*ph;QP4*7Y7CAS3!DXK>(ZML%H^YUbLcMN*1)6Dp)p1|)g-p8PF z@dkQsPet&PwKDO{cf|9-@X<~R(7Qqd+ousYF}rf5nW$6#!CX(Wx0kSb0etMf;SMl& z7u+zTo|&s4oz6vA3-0JZ^os_kbQJbKhXx%w^N!Ddpfe4AWp^cg=&@URJTHixkYn_U z7$%*uKY)HB_GKwDCC7aIDGMC>&E~RAQgO6Eo{i8VQV28T2S}WcKysy5<$Lfc4 z;+BtMs1H8x^=sI3*&FQjkm4S^-jBbA#&H2*MlfCAL2dE#o#6dcN}Tt>S#U)D)YOqD z*kbqf0L)@0I`SQup^O^@zF*D&KJqzwM-wqmtn0wj+h7io5=zn@^?5IR_G7`*Aj%ZK ze2t_mJ8%V*8}(;rAjhzi)9MaCq(+-C52+tTjf54#$pfgllNHoW4qp)~c(3hI())^N zp?zP}K6cU6S+Pvm;}K52*qhL-P$FDegS!Gdvn$$F752CU)1)!*erl8~z1j$SRPZ&< zId!D_!5!T?A{w5D=?-Qau;UvVhIRk$qjyKF{PR5b9~r@i{L)Yc^0Be3GauVXL#4pB zkC!#yTnBn9Y<# zrD7~Et{Ouo;99gnFVq$Nx|LIK&P(U;c|DZ0aT_<2S zT{@^gjl1iTIdt@eZG=;}uZ+-lo@2d97zaO5;}6KEGjjwt_!$_1BQ;?2QDF*d`E~tb z=xM?>q2>YTyI00gQ60H(3VBT!o^zT?gp9MnG}!{EX)Fdf1PUhd$e`GC$rBKXZpK z@5HOq<%OB3hp2wA_ zgB)UbI=CwDmxIrIP{CCa?3I>do|QO_f4hluh@O(~yIpc`o|Y zZm&lOh43AH2@ct^FUN&tx3E|JJ7R^+Q{f!+^bzm@dA;O?V1qj|1T*7vw{Hqf>P3)g z3_MT99TwU`n?6ASJ!Gc{Vflyby3Ba6XW1+Q-tOhMT0HYy&9e9rSxCv6Aeo z{?m&o|c6z9xuAJstRqUeIYGHlAEL^Wq;Yff;M?Fi^L`pn!Yq4nBI>@R4g3Id z>G}Kcyi3hJ7t3kWb@W$fg!2r{u(H4fovoS7zb44&^$GA~3a;x5!D~v522a=3PY6W+ zWE{9($HF|=n=mES0Y}HUaXmKM555JPuzxG@EgNVbP1Dh%4D+bNHn~O6l96$=Z2emy zSq+?H<7kR_NbtW9Ldk={2a1~`9B3UxW3WH|`N0R$bgux42RG=1{auOh5?+iRvGn%e zee|YAm`VTsUuA!z_^^z}bN6+6ofycq;{OL|`milkuYe&Y=utVT=du8w!ldzMA zhm!ZKY<^>jk_roux12o817hIshaUd;uSa=L^ehLRKyBc2gu9i2PjMW5)bwn=!y=Np z7D7Y%Z9A_8ja$D`)QR=h@>lQ{9o-N$uY-g1RlX6uK^g zmk;>U!)nTyL!uJ*CVKK_&)5fWv*$5zUPBwwD{uG+Rbcj9vn6eM3hndkL{bZuv|$52 zQ^sqkiTIw`9Eza#s}jhv{T7x|hTI3a!qRzd*wwW`l!o1n;|DkhiEB|O+Q(7hzx(L> zP5v9_p8I4xOp19*Yw!e&2lF#iG?a=vC?&;}J5N>r)>l5W^5$va*DZ)Z{TmR@qi4s{ z?M>)gzSHm=Xxzku$PJ#P@P>By$YIyI2bYZ0xv*r)$KX%*@PnA7J1qs)FbbHo#LlDVzzP*uiw)1+KbSK zdxFnSbQV8%8hh%|Q;N=t=R8nG1*^koS=Gke8hLg0Q+P+8_ZQyB!y_fups(D@9`8iI zN2a9fuT5x5VKn8piKq7E-Doa!{WnHxX<*3!l68Uy?~*mN;80(3yaivzxFlLTp#lC| z1bz6JNK+&BGTU9~H7YdZQnwM?_9~E$(<3l%geYk_Uz(cu+KCS7$&vTbLT90n|#My=J*-j@F?yC6YNd+QNmMCqj%l_^ZWkg z{N`=&7@=QqJ9&>^0{0}SG5pw{-{X^!=YBDRUq^8n*Moo2xK+K%BoA2->=hiPRr%oo1jj^_N`7u3|XB8Zp06Y8K2N`xougCQattHvB}q>=(g zon@Wyo;JamZr5AJx^0)y)DO}0;L}6F{sCeIc-td z_pW^YS`Eb_kFqqG${%i5lRe@?Nnj9Pk)xu+crV9UX!xKL@${}3dC%K)-s)-`O@D)0 z()lniyAumtExh_&PVsEqE$^Y188`PDpM#$F?B3`_G=0E_)QP6LxMQrdU+{d)kPo}S zXTawzpAGM+S$KBRyyKV0!AEKUJTo(1^JO#O8)Ju^Wdok^S?;Lgz%|^dDdmyqDYf~8 zdG5n-9y%6$@>$`u!|t;_3wrzs;QGJ3_Douk1uqovq}9R_$%%T{9WfI=GfE5HbL4NI zURLsxKlO#r&8kYyVHe!(f!>w%MXd%Qbkw6VXSf^?1pl+jdu{mJ0E*LAVi-_@o<>6D z^NNf9v~$P*uvG)|KhN{%Y2iFlgZUtG;FD4A{8o;JCd|ee9x#IsEK$=Y++}5T!?`PJ zmUW1kGuE!*TWhFDhtInvBZGfw7EcRsKJ)vEyahPtnLV-VD)1t2D?lgfhJDlb?(mwf zF*JKN@W1?$5AcF#;|j#mi=X-O#o$82H{-KomAn~4!AHW3^}v%FdDFpxVH8F_@g{kB zW8@V047{>i)$;BZfeVAri)mpl-*EnaueOd+SsN3uP(U!BJQQ}l^oi(FQI?$P|1rcTpCPg zFdsBv6@#64=@%<8FE|!J_mRIEUe|N*WcpO%dGaK9=JWrD?bpKpJsbK+vyO)Hd;7Jd zKz*^+$(`HZ(O~x)a^Ryg`P6C}nz|kJOMC?HZ>y%QH!;61Tgyie#~x~9>`c+`;?)<# z6USNI-8P?RM8r{}Dd?5EmGGGxW2qXnHodn!;y2(Ml(7LiJ=J?2j@US8FY2y-MtQZb zq35r|nO{&N?>u?~*6@r=SZb2@1#_so5zv%{n&sJx@c*;L`B$6d6<3qf{w85mt>HU^N?3M1_Nz~Vv)zXP( zx{nX>-afCKzx0hquN`wo18z03Q@VbS%Cr6MP7p@Sp=T~FAh({ht!>G`Me|*y@IcZ#l2m;V;;D66M@5ld_MO<9F10nQKLy$ z`OIo@)O|mAvrdnBl@{=pDG8(c#UHs1=Ix;sc+RepcVH+yqN`x{gG;TvTOF0~9S2p%%N4e|O8-I`MB#bc(SdX!Ov^pX+$!r zX?tB9S{6mkk&8TaZ!CUC-FNLEcKV2)bl#u)J&{(t)7DC{Gk%(I><>=5N8Zn zy)_G=Rr!@?`=K0M@u8JC*I|M5OARJTDT&R^92)G0sa_dfdR zX3NMu=Wm>=6|Um`ueH$Uq2IoGC{MA)>^llvi&0bf=Q$cOKLak!^iX~ix^His;gVyC zJpZnWYzBvs$>j`gWuc<5Fw901IbV+5g=?U*lMcPiyDW+$t0#yX6Cd&{HT?FlyQ`@C zdtQG}41Ix5*NDwVc{+H1Jsk<3wCy$X8lXr1U?{lAz&WTB`ee;e1CME#Hw=CHR|hfY zaIBa2@eFuG_$<6yUBuU62h+VC@XW8_&Euh!D>w-~;h{2d4dVPl^zrWoHWMGrk0g84 z=WpVw=q*sQFFS(W-##sMCz^)S7-)wK*!INdRr#p$*}Y>39frQe@cOZ3m~pqQ#5uKo zAiV`Y+wi*m4}VI-?`n8H4{rG;c#9bJ(WgFGNxQL&(XfyHd)gvudF*eTQ=ENxSnUL| zABx;yofALiswF=yW+e~C@VmGZOOdZG-R{fTJvChhuRG*PJa66}{PQ{Zdk3fU(0MBQ zxD(!JtB-J53hu{$@H%*m9nfnsZiW0xRmSV1cUm?I-car@z$1#Kk|6BIJotrs^o4I( zGQ1h*Rm;0$6b&EoaPSCC^5*&}sAwi|Hf@mSxfMP-IR7r|P4WhUqgx1!wwwcxdILn)zZ%w}V=+DpRU_$ikDB`D@G|)Y?St%_jcz0K zKpRnK8nAj?ff{#T<#W-B5Ly84uHp4uSrBbNzuNGugdVm-w@RF|^Zlve4XMo8WH@uaGxukMV|Q z<7n3)cw9tX=KEj9(oa9^wtIA+@2?e07s01(^ym#=SPdSqB6bTV8Re~k2K*;HMPDmx z=WS^Yek-()l63RDd(e7EzJ)J(dX2m+Uj*TU~~~Wp(fx z_udfAn<&W?oI0LqC7OX7v*!}_uT(SEU;KnS)CZhrzqY!IrSNp@S&3);cJRi-eBFTO zY*h#)sw$teM#J~-N#(O~Tmaeht;Bp&xIaBXztymh{&wU_+J>2+VIRHU=tYzaKGyU> z0lB^%X44DIJPhB{a0eRx|6=I~p0WWk893KkWWg(bXvh;dC)cpz)rV^Ag_**=nk za^QSz2DCc1d3@$BIkklD@5YR1{s?!Jx*hJgoTj`5a$_^oNU}~y6tBDnSFQ-VvXZas z$99XNOz_E=0tUj{@f{6pZSUHN>qIgF;@ zkM#R>#N=92E1#E`p#RA$pQ|7CqXO{H4PTR$YS{4zE)Dk4iy=#>I(8TsUjGkgH+eVS zB}+>jI2W&aCO)dGrTM_Q@%=lZ7Pa9?;9R#$g;<`drt1B%Tg{?6Pk5lBr_eucj%~nO zwp4-h1F!ydHau-iJbH)VaE|TH=gBZb90$Kd8^(in!Lw6?b31n!&nU)T^^@V$K{1AB zzQP`mxA4;On!=lxE9o|5h*Z4d7nYg;qJMkND`bf)-znq+v-)eX=A9^Os0^p0Q3RtuLoz;BrhY zG1nyTSd8wM>KP^}pEG`3#-ljmp>(3{6BFxFd$I zaU17HVaVML&q>YU&5!!W@I0kcFilOayet31x$IO!{`9bx4g=@8X}iSXmRfQG&TDt7 z#R_i?MF8iM&11#)yVZ0M=UJ1c7K`4fXghFz(`UW-z8mIQz>c6arG2N5`>%g$oQLGBrGlz9x5e-5X0S1*d~;TLTWJ@4ee zt76$1_+HkIpr@o5Z%_Ho;HC` z_oqz#!Fo#C13k{tUgr9`$PXhLV7K7-F}jig*rj3)eS}RdT~Y4{(&E{G$pPdt;g*%p z=@&!jA!>fZ>pL0-!FRgyxqYcWebQE9YZT~5dC&e^Jt^E20 zQ9*S7bY%?x59f2E-ip4WmevF3Rnj@)kY-xCkKS6!OEYoNJPn;kd|o6!rH|PItqN)< z)>fn64V>#DZs<}x_1l266mi2Ur7*EQ3$t z*m#GP&!E%9z4^X(BZsT&(XU26JY$w!ZsRpd3c-2K>#NJ%13t?P%&4Yadzq_+Mkjb0 zIF6P^y6T~FS`3~{#=Wn(6IR3DAp2izGf`_Eu6#aZihY1fE1&fp;Z67NIk&kC9XI~H z0nZT={K#%^Wqwli#%ih!e!JoICmDW}aJKTf*WEy>i{HWU`hPgTvCk7N^0ee_IL~K4 z>SJ-9#{p;S5AF z1Y!0#?B%Q*POBuLf=6T=4RH;pZ#MA!$IeqX#OIgGwg`i+#!!94-b1%Dg}9H=RR4K6 zJ!o=J==}!ybM*+?(n~MIWx;z7`ka2T1;X?0*h6&@8oz-jg=v^)6{bMv9+n^!fh%Wb zj{Q@MEQPr^&l2eSTGp3KTObb)#B8Shkpzh?W+>)G(6&u-&K-=LaJ{{P&IUiueFOgu z^~}oi_Tw??Zp>f|h;;9Tp7)zde6|k-X9M@C;dRX|e{xK!#QEA#KT?Is=w^W~x8=dr zv>2N1BP|c)_6qf*L4}n$`D$Pi2hh_`558yjk+ECSO1B5=0?msv5RT^^8$E^ z&A9R>Zm$sMYl!puwYm9D@MCH%#&^)?aQ?-`KJ){7f^+brU%kzbG>re;?SJE3v7O_u zB0t}C!Hjohgvc8G;G1pOpQgHVr$+49T) zes2WT`L0l|Ug$%^&|@x~*jafq)tk0~ga0n;TE6*IpWm7iIq;+3tN{-N-9LBx-#D|$ z7gUu;;z@=$?~OC!V!y_b4dPt&F_r5B4n^b>VB|JF=eByr(!1X9yjx?)?(afBh&kl$ zA@=M^iGs!emlkk-BHRB_PIJFP11@I;`)(|!umNKDECw?j2h+YLU&7vy%|t?c+E_n<%mSO`nip|A_08Tx@3yb?xOw*A1?jDTcA18MV;gqLA+xU@jZ3bbD<|T zT`P`cpK^r4{2iVV-l>z@BXnkD-g}p=mQ_ z2D@+!dgiA>sE4LETZkTT$OrV}Z>7u~{y~>}p*HT9!o1pGpS1u!2*G<5uR6HRNM$I$Aa zChCXT(PS_zk)HcltGNJt?pu;+*Z#rk!hsUtn3738ZLr!3{Oorp5~-WJg}M-)r9Gd= z(m&(x2>nd3H2xhN&v=N?KOd2UmZgy*T6@9 z$R-w_te^nQ*}P9iv*H|hZoY*lul-Ke>?U?-U7^8JeTc=qmC<`Q>`7R*m)XtU*ehK?{0*+M6~Livet?=}+;#Q@xPY~I6P;_y*spicy|hB! zo|VtsN8`@wh0(yfbC?)hhgvy4gDcKl*J>#Z-vv(v!!5i{19pJTqiN@Db0PXF?rJV( zE~7>ZF5t=9`9sIkahC8r9C~8tuMRhL7y1keB?nVEYFby}o_Pp)CCMnXUvJ@nPaxex zFBEy;8DH+^N1fXPtCzNfSFH1a{{}Qsjki1W0sI;=(~j^eR1>R2_H&9Dc?pgU>|)ne9ub_~7u1RtksB;%l6 zPEaJM1)RV;II_WYCdn%>oeqy>>bc5-A zm(ZMDVtRV`4!fb<=;;P8yjKrd--bwPjvSIHJY`yV^Y!pPCUkzu9$*epX$Smm&kHQ< z6fn}*R|U93YaJMt2-L~jtmbkrfSAkrDSC6KhHxJBQbWXvqgo~jW9?)&G*vd}KQ_#@^ zjh-n-Se1{Q1_ASC()TP&z-~uk1ig_KWvpwajO3{CmJE8p775^YuMq>g_=>Fq=U_{c zn99pPvOy~NO+z>MeY0QeV;p?1kT=Q-HEAMx-`DNoX;ttKokQQ<5?UpBwx#T03}WR8 z&%w4q%>FdAfS!O$A6kN1=m`AiUw-qV5kvouv$-G7eFJYI2XXd@fXX%e zCOE`dG_^15{x+6^?g0aqHlGz4Kr5*W=JTzhn7KXbqou%Ho!iCCrlGFe554!FC)m2x za_VqDgiOa@VzCj?R0{9Wp(85U#U0?(!(-sH|5L`F!2HuwOnZ*hGcjtp5cr{Vtoy;* zC1EFm``m1S7Ig(qxz%&Lj~dX^9tb^Qy!SqaO{phla>vkX`*ym)Trkhif~JPWmQdCY zvysh?QPky!oV)EMqeEZ7#r?X6KOQEdT@G?GUT!bc50KKmI0ec%Psm1V3E z8lVm18>YbLw^X=36WrK5IqfePCky}vXG$RIQC$;ZTxKA4c2b%dqT>7Q_M@y!XiB#3 z!S_@7&`Q)jp0^(;cgOqC=Auxl^H0tTi1#7~?Bo8MH%9Hh&y9gzK{WD4XUmrCl5RZt zBR_X39>m&Cj{D8|?QgY=je-`(9Ml_AG-Ryr`55xvfF68Z8k^9dpc=fb8jEw-Jqraq zEwNXfdztBukW-<(m?nLxV%HZ(Q!3`1-#J+g~wRSaJCpY zxLHNObd|<)InXLJ86_hJqcna!xco0LH~cBL6U>2!IgfZ2f0!?HZ2}D5RR#4Nuu`bl z2kl%beuwmVLI84-CicpgEr$wX+{dNRZ83iS6EG9>jHp7%mo)- z)dT%v2D7r3@OOpv4{}6kU$QUP1vZ&1gZ1{@5G(Wi8&3 z;E4HBiocwG&Fd}{Ait`XMbpJ6UwGOXNMR4)``#^u7aj4V@8GIz-_?|7v2DZ60x&R3!ceBjbrG19(;HQZe;i1sTYeKU-KyuZ2U$!IXOU2 zpluwRjGb&XYM!w=+gKOG;S_4Q#jnzsHTG5qQFB&p$z+XO-Ui@^=IzdA+*oLk4nc1g zpUe7#6A=Thdqey&rqcqs0=v9ZEoDp}yr{3Jp}UBCFdtxw8fU4(R|{^(ei=1je=tk5 zj_1!@D?jKFp!aM3=7r}cCcmdrMG`epmp)Kk1Q_eYj`lRuReNZa5$v#F_=pMm>4LlfUUuO})^%;;)v;yblgrqn*@LmjdI zZOj$rL%nFz|B3Ur;#%$u=1Ad)^E=BzZhEVDazLCXh2P_hreOYz`uR$L23r^tOPRLt zps6-w2A81=jXuRLz=kbs5<~XL8)1y@!;m+&-<-%KGv)YRVs^n6uw~HYFk2<2 znl@|L`90uMAaBh4>C1W^mC}dnz}<+K4E!vk#?Z&k13qA26ML057V(eFSCh)nH}7S!hp>qK{i&i&XGKj0SfPkS^Y3yo}CY zfnSo_dA{Zec$Te!3ylBB4^TqaWTAo_2L2=1<1MZ0prDGFAN=dVp_IKzPO8O^c`0T& z4-n`2mPhy?bs!x>zca>QI{*HXA9QuVu?Z7YFP{3)`f|)!hI=Y+9PxpsKD7Rm);XLU z??qbwC(gk`K64vS$J1QIxxc|l?ubVGZ`@IJMGkk)IgUzEKYyH4#4YlPC1dm{SB^dA znj8Z+b}jG~ML)R?PZZP%d(vCgx@>@ff+nFK+?Qg)YMp?e>5IO@)S6{4jE2S=>bG~j zS>xN(AGO>S*Fmgo3%sWtrXNYN8l?R;dSpRC)YNI`SXt0+aqrz ze~;kXl?T%1*QhrVyYZ)QLyxh!gaTe{QAt1e(5njQuxE}{zQFu{72>Sh>5xP0bT9I} z{&(Jpchq2up^wxXajuZ;<#g-gs1NGr{j(Ff65BY+Lj4@=ox(-Tk0nB%vghnxt}r2n zj;(_C>$`03_(cVY!3UdZaF#QHKf(#@Ovg1`<9eH+KC%(h&+FA(bL?6ekl(@q`P;aH5(PF#v zBIshXFtTrUgNKBzVWk2D5+ABEF0RdzF9qAKW4baYUDRr^pJ;#>kh`o;6TfN%Ue&XHrZ zSx8zueL`KQ^(L9?^Z>IX)OBph8g4W&=d)2iOBT6vyU=%=p-T+A#_p&wtY;2uqt&{pj2EGiPX51qkx!<@hO=dIk6YWO2iDD``gz=fp)hyM&Y z49RZu0AiC zBSJlP5PQQH7e%ieB~)03+)`I8>TZC2_g699uDT(51-$`pTl9mPMWWIzn7bFlul!NG zXgc!oho#|EoM9xg17=SykEGqs-VQIpKZ*d(=~P*v(k(+uyU>endSI=(g*nwce8)z( zjZ>ws$Bw2<4h@j`ssw1mo)+ZPa=53;2z~d_0eA;rc&Z+|!HX4sFfRwXsiN$H=riU8 zcAacgZ|wa^f;dMO)+rrCzBB^3(ms7xD!uOeP$A-M06+Ss@TMPk_3t=8O>NIsf^W43 z_j$t)DOU#H()Yl4`=@r{469?Q&s}g-Z(I}Y(L~>Ef$!3_V3DnD47FGUPxDv$qG#w+ zdhfx0aP=&w+kU`kR|8-7X?=d(o@mNwhx)lTTKV>}445OliF+R@AJs}}-v(&SS+r3V z8G`S&Q%py~yQwnFB~*DHdbVo^s@8nROc*&ta)(q5yXAVLP#P_DQrRj{Lmdx=H>8QG z{S;t4Mxgd>e_6Q|*pH?Q;AQ1ztaQFFr3u($9Wah`%tL*C12u>3=M_$0yGh8kFq%%j zPji|z1$<3~oQjPyoJ8Qq>vcw{Uf@gD5$B3?dz7O;`A`Mo{1ATh#Q|Ql_sZXKjZWAFT^=G zI+_bii=&>1^R+vM+zI$;rU578H+hTb6L#ElJBHA=UFV$)wPR?|ybyY?@1d+k?OC$} zm|GgGS~y8g+spAj_K#J?ZjL4kT`?VQr&QfTKUj!bTE4Yf^%=FC4sdY|dY@JEUjt); zz2TxZ&3K(};QHktZ#>ZBJ3fXM^li+YCbZ)-4#67}`>e%o`usBVCF6I7Qk#~QszeEwnqsSBaK;K^Fn}&i<5v=uRxW9Z~BWsh2q3 z+~QA0O(kTozDVf??WrG#b7sUV<&!qPRE;<{`q6KX^rGCNzvDbu&z4<ywWyR81U>7qQq#_U0a@{a1bhRGpl>1ykwX@L!>S(A&K?~X~1+xGR ziE3dlIb|dN-}AhnDxV1NX)Q6ua zdRb5YpXw-LnPM8$aUg%aIFhoj;4^Y(d^Ps`st;lc-#CC@jXlY3=yRnPHseE~MNr>9 zoSJWlSDpJPf&OYF{qkT+zZfYEz;|Pz&_;Af3-w(wxG_NrQKb+?z0HC18+KaM3H;fI z@1bX5S}1zmI~*P?a@x_oKs3Y!ISIS@)N}hpL!wZ(YDQDrn^Q#T=YnX`CCnMUemHI| z@u%w=5^6p~Q}ssaOLM?IIJn3{m165lZxQE4Kl(dyUi7W-?>Gmq8pOWMMJ zn<_@$0PgFJxh?0pEtYy#LNB8IVNvM`;0H{BPcC}w^aEP`eP;qwcPLO<{0`r8O%E!hRO-bo;q3D$OC#8l4?RjehhkcEIEN(%*5OHD?4n3p{@!;(WB=1lQ6l zjsg(p$|jRIhv--uQ33vraTD$t^cYKxv4U&2{8{>edopaW4 zKRER#@bl#j@ya$P(d6+3UcIHpsu`S&Ms*dF$uc+9*2Pk)aY24K8>aHZ?3`PVdt0BZ zntcSCd`V*JWVKJVHXWMV@Z#}N999(vf-iLsSc0H*Rq9sg$p?kfScr0gqlpnm z)3XjeMUU{En1EhpNNIbKBX(kuVbN5$Lg`eGH)s8A85v!O&+Fb29#F_fq9LtS)2*Rp zhd5WvjZz(G;zy6~MNoKiAJt0e63;@MbEj!JQo0u(y1*{3MVz?}C0y`o zaAFYWsRP5gQtVz6%YkDI8^$Ss#XVvK-c6+m=W|3sW2eCrv;Pl~s8~)WF^GSk3elWr z*j-@v?U$w$?QVwe=tp3r7ab5W)LK$YF~#po5t*TP8#`J|_e~U{HRw&6dSXVM5-AGZ ziM=*3Fq+ljBC8bWJY!Dyv%Y`me^IjJ0Yc!w&zufVFA$Nl+Yue zLRGaPG}eH3($bAn&6))rD#W=9{OC6w^ZL#I`tQ81Z0u5YepEb7L7YG8zU6{F;KLgS z-LoNCT#;`q86wX8`^0ez6*2UveF#mP7|z-5M-MnPgkp{bbLnT~v{@cP$8QI5>O0Z2 zu>dh28^X2xiXBQld`nA1Ijs)hs&o|7jQbJXchRzH!_b)VIBl0ITo2g@_c%%pY&&b(b9&?sKMJA`W1KjOw@$;qYy zb)DNAZp7K>-`LSRHeWb%eE)_FLLQF&huy(!cnNw#>*39rc{eF7Lu^}0^%%{T(0V~k zLpHQ!+ByTq@_fJXhJ z7;0Gkl6M6@;dVwW-Q53;Z@njsO10z2aPJ%b8ZZu?m9eCACxiD!-%$1@hPIwI=9g(g zr(qSe-G@gj)fR!Ydjzlx@S}fQ>P+ zOwtSCBo2t7;lFvq?4M-zsB}b1Dp&vR`t2lnES;z zayt)RymBKu!N-!zFK7nNh-Gsx#gM}wc#-rw#N2T&?ydx`;B_I>c!l~1wRGjp7wo;Z zoa!%QUOl!Mb+(D7!|y}r!bxNLIu%?M6JQ-(Y-vD*l#V!w>GDaA-l-)tVXm0^^q)v+ z*vX2~o4dDJM247=epI2C#B3&Z12nCFV7G|bO$BoG;n|qW;|?9b{H;Z57>xve=le1V zHM;<>L1_wA72sZ9fbL&uI`uMvhUI!G@y~N;tyUCSzLZh^VV+j-z(01A)0zdxi3dM% zwTXh(rX|x4%&Sxn736zzG0ph}j6-G&*~r?F6nDpSW-NB2>zM{HL<~NHJK8iCItxK` zVEm z2|l-7udowed7RAz?yGkvXv=QB#e_!+%60`V+VeXz#yqAI@L<^;+R{c7#5o=K@QppF z7~Cu066Et>XWEAT%>Nzw_a8IJ2Y93#t$^DvUrp|}fcrx2_bCgwCB$Upc=X`#D>Lzc zE|(Yl0V`5yPIe?_R$}t}vX8nw!~27n7mqwj|5QfMd|+nodLJjdQP5)?hTh{#E?EKF zb>0P95XL3ccMm?V7tnEYc}hD&BT0f;Q}3KF)O|IC>{Tjui_2!u2d)q~bqTPBRXCYw|eOUF>-O&U?c z65!*O+YEE?eV^EvSJ3dmtafF28=9h}pzZF!hCS#(rq*(LEDoWh&qK+29PmikA$D&% zhn}Ek*@QRZ@@y~i&y>=Jhaof>HJa-~)MlsyyPr&?ah4M5+Xk4K>AQj7$9KFBaAJXn z==d4vz`KLzaxaIhfU7-(p54x`faJh~kHXyP@Z*bQJTa1{+QL6#^(AuN3wU+2qO? z(tHb^#Z+y&i8#ME455>mov5&>f_gatuN&(?67*Q|IU&?%&Q$v05=~e9apxbbAq{Wn zD4>5#$Da8*;`|Hm`tfh^H10mUuMz(}TT|il4xc9U@9W1Nf~FgM$1nqY-71IljzFuV zg_tJyJOl3qU~iFg&Lk93**v^o$TKEk*GLQbBo1{$-_KWQ%{APAa1K8zuhKI)cHHRU zODbN`@1mzy*hS+^`|VIdtnCl z`W*Bkbd8*6&Ikc-0^IqG6Sa!{c*hkv)m-*|rg<-1sA zn?x$_4c)CA2{Q%9?c!|k3b*ZM>I-oc6#gWx-uQI{9PsJ2Yy|Sgvzz!VR<$Ar z_>0+n29GkeI~5}L|3ojd+-evdG{>H8Am(`9b7`Y(~<5ut!gRkR5gfbADhRoowhl0=zdL+;e;C;_Rj$N=u<{;C`*UvxOf#dSSoXT|kQIhFFS9LM;A9m$}a{z4ZYScFS&yYTP!v(|Wv$qJrCsk&@WiOv4(8JEqWLTqMuGpkla33+0w1CGzxV{jmB5D1NhbmXlS$!X-6v#Dt^a&MCV=Ny)oZ2pgnk6QYt-FNo znnM@(OwO`}2g&A31esn4rG(g2TCp7(#hb#Zn>3H^qYs(^ z4gUwS7w|+3qc*OQn3c739*p;Rlx7r_))_h<&wy6_70grS8aYey;V;?=`VtZ&=c746 zblM)={7t6LKL-X<8v5~bE!#N{9}Ygz|IzzeShbTGTuPut9nqT%Rj{w}cslF^%(F!X zn;Zb`uj#?mOs|BowXrk+@8i*~4a|ByxNP8ZN_!d5w~Y!42mZg0q6c*jf^O1L)b1fe z=wJ-|^3=#PF*C_^FLoSPpzGznj+SE{GXw8w*D>&sss@)0IGiWLW2h6b#w1%mgRpE%NEuZRE8Hvum?ZGCBZ#z)8UQgZuDn$`+O1mhVy9b=+er7chb{xjt&N23cR~76Pr1EKxbwrc!g1h zy3UDD0w@%pi?Obbv$jnTbp$@@zwe-Y{dShTD}kOHW2WIPV*oYMr@qh-?zE2`pA<(H zqpC=r(jdF3F$?6FHbBIiWY% z0uTB{6X@D#871sSF49;G9b74OIRMW16>mD}B_WMN`0m(44=E*zOtSEK*~E}DxUSRC z0}T3+OkwYEhf(u92--<;$i1)dJ!*Pn4|T$xIxHQZyDXhbg)sVodnUSdfQrTTiCz}9snfRJ|#=tx5Qv{vO zc}uUMbujz>AI`Kgxi@122*cCskawn_r6i2HD;dgw`v&&ks z#E-E;2wFyd z_)H%H)7dv4^Ev$d*9*XRYyz!pPxxn9CsE)GcqIg({)tVZh1H>Cf%p1yU(D&2K`#(7 zN*%t4N}%890leSYPCcmpIDY0_%%iG$(&>BPa7_)Pm;?_R2d;gGn}{_uRt-Oc`->ew zSC<{6#`nes`n;Pa?56B*K~!5EPR;5Lkjwl)@_G{vefC_MY8OCVN}kvu_(um(8Hnd^&-3eiKV?y20P%@-e2woIjvHJdW>_vO$Lx zv;?{3$b)(&0Qa|JDE3^zI;1U)hCXE@=faE@gu}0G95kj}deUR`ec`~d8!i&j;W)$= z=T?#9$S@uLIruw?2{UO3uq)T`-I@P&2_1Tgz5_q={>rs<+bn|8@!!f!@uuO(1Gn(G zUz`|7-S%PDi$8ycx48g!Q!yTX#AkzO2IhI^Hv%W0w3HIH!>Abh`r}@GX*h75U6E(6 z{Jh8Rf?Ld#z%b<8X30yihuw&MO`Iu30s~cj6PU^AL&zC3o3H5WOH9U56XeDHzG1Y{ zV-js$9z@04pkL!NpVZZu-K9g*BNlo$*ZpaaJd8dCV|MZcK97NaFf;$&=bAVL`(~a% zmzv}Ea$UN*eaDR1ePEJIsDeoXhyKwHX-;hQPkWzHx=apzh860*#*3e=I?M*Ewp=Ps0 zE^>Du>1ycqm_sLF|4^ERJgnOuZ@Knrp? zTY0y~?*V<{rqGQ%QOk0|&?7S3_dUR2-U*}b$S1?zKUcLxk5twdb-PnPemiswygjj- z2)`|wJsAA3D9pY(^yK!vMLs(Sy^DDrxq;QtF+jhqG0K(uY8^=S*s-q4y3Cae{=|x* zJ@RV?>;2u2K7-eAiA!NSRPgWK`S)Bjyda3(2}z);Ch&=VLCn@Bo-X0M@8Bqw|2~#J z;p|{OpS3Q8&b9{fo@OBP$WTzbf1p#RRtvT7Q!c`4ZdHK`&P4Z=PiQto$h7jOp_o^^Ey?CRfQwck z-!|45wdsNM3vv5zy)jqe&L-YSfOjbHiq37=FaLNd!}QNL4NCTK*-wbM;Uw2(=7-PvJmIJhyRZA zj>W^+n`ensf_M%!c){KFPN35`i&kCWdRoW-{`084JQs62mh=&4y1{cZz-#lz`K87g z?gHlAhKRFm^k=KTlAxh&ws8$I9}^5%1SCS%hu}W z`vNEvm@rG5mg@ZR{**f&a{$W*p=FO;D=RpI%4j-{^NC%vxE*;inuz#6K0lP3en3jC5dS$NtT+c?o*T8(R~o(* zS!IATh0ns$KSY$556wV)7Qr*R<$uB)qX>6Ct1wfQ*F1tm$RQd#9C-WTnE&7ouWq)L zH;RH5w>@f=ga^FNl~B4p4ZF^3eS{wHymH@)y2wZ(ED8@NMH66qwx19lLfdM^Ow6x# z7Ygfk0rQJ}{q~Vnf^#eAuM}Zl<@ro-y^gv2JIvMB)(UkSf@qosuz&aJgdS;#b89gf z6}=L2`}aZ9-C2R;Sxgh_Kw3Q4Jfv=%e2|He7as1-}?oJ`vhtIyXXxF-3D zGzVwB1KqfzOA_#Rkz*Nf)N#i+pg1#~oy8VlA-thg2a>Fn5sW``%x~Qb+S%=|s5!Y;2 z&Cthw51)(Cd{{G2(yy6=40x=uec}ZL72w#u3=o77VErhoCTn>+fmcnp* z;l&u>D-(gY1fKuFd+a(2vBzmUMhI0vU-S|5aDI*vlqt|Z`68w%Hp7Mc(6W1`i#Nd5 zPDq4TX$w=}yL%|A}+rTs?l?yFYQ3A0El`(6#IOD+o9wZ$1kAgL|kYR6FB&+huaf#MyE{IzJKf zXBo~C+td6q2N}iT{AB(GJ_YlQLYybRb z-14>AUH+K_7z4a_E$^4}tPHHMSPAFH4!3n6!ZacyP(%rs82$li1VmrorN9#z+2(mBcq=%!V@?{ zoad)-g6~o(<>B0!s|1be|8F{ zq?uy{<5%Id(iuDYJwt^%sH>lBL@g9!FC@E$QN(5B{~49M7y25Xun_Q0nQ|xa373Es z`B62U8+#(0MgSYxZTC*@#jr3+MVkU%5)cYg2^2~jnF z^2R*FX+oz?FZIe+cS~EKtT7}pTn%eUNHIv96=aYBy`F$4>XcNv0 zO|*qNX*_Mlc|*TmLbQ7v1>?MJ>qKFW9k4VwcMDi2Y-=4ur*O8eiWHW9l0&-ycu1cl zA?6Y09*E(^`DwzIa`+?QJjUga(B!6+INaOVhT}q~D(G)F)+7z5g^O>11x1aqOgmrr zjQO*P6|~4|^Mw7@n9UCdhtwihnARV&Wq=Ff@0=SW?zyE)2MB~t=ol6NeUFEUJ`6r5+YtmWI?O`t5C-F{jNFTl0GhI5CR zlZ2;!;3gwh4u-yhYI-b<#`&LivBHx$3OH^Sh@qEXwvYwfoq+S{scPYU zQ}9z!WAwgVB=`VpaT>ARc>0EL4_Frq)N)(bR0-v%_uio2U!Qna7%sw23AMzbHunT; zc-iz{i2By!o{)y$dlF`PRp$4EY}9F6u*b0mlDRr1oZ`M>=6_(AFscUegkHyhBePUi z3nPIY3!~<_mE4W^2znkAP7M!j*+=*d9k+>~Rma9L=as0XBO++v)_H6?YP{a15#(I3 zg7Nq~Ex>CQgWo4YE%9hfBu$z#lm+GZlg1kG2s)kQq|n^x>kTX={OHBQ14tM7?!WcM zzKjA@Y9RRfh@rupZ2m3gUyb$iyIg(2ur`67;#_JmLfzbX!Je?L-32~^a8~uC(CO#GJ z^p$}#h?<#uC%oXKx}gSk`z}nF1`HQwMB7}OsQZq>-YOE_Ppkh? zuk0B?+iIX?@kT>!IX;{;uz#fRD?$?9yQ+9GeNnp$m!OZdtuB0sM88=uF`Sk@ zY~ap9zx4Tx2s+Yk1WQ8>H+vfa?D}%%2Cl6Mb~gE$L9A8>H6Hf18#KZhw;O%ib9_!* z2)lAEkS=zC*Y7C!(Uw#fjS_bXZE@YF<0YBj5G9}gsz8xQ$jqow(Sx+1M8TBbI`?8 z!iEjtQy{i3LyLu=1<)==Y!~zQgtpVLD@1Gy&esajuBfX~KTLf0LwGX{yKm%&H@;fx zrFau3bwJId+d{p`LqZ)KQ7by=sWX5l|GFG==AbreQ6F$4PNNPVWvKqg6yH(o*>!ui zQO82_x#|n%`H}~M?jHEy4FoQ~)n=hVfaf;m`E%prRHm4_dRl_BbGQXt39R%ZbNHmX z&1TwL;c=Q3NjHa!*_1n>q&9-i>Fa3L9r!6LU>`e*W7%gl`WOKm+A$KA^C^&$e}F?L zpUAr0_9rI`>{fQAa)HPEsL)38+mF7nH{_w^@!vR4n;XNw+n)UU4v(Mzg`dEZ=sn_m z>9)NvODBfP%fVC1%9=T+H3eFroAlyEW4 z3Hl&B)dBY4ZYb@Y5+SU`z1z1uoGkn9QSA$fqWQqko{BeQa{|!^l|Zk5?`n1%dTA|I z!B6vZG@I21y8ggIm9$M}PV>aTn@Q-kIGI`AhMphhxvmGISX#>5MJOl? zHAC^ipMpUEu)D|){q$R?69RyT#T{0Av{CPmkWmQk@UbN(>Zhy0CBZDBI?+-+SR?^= z5Bq|>HtP1!I`Yg%?eV^!dSE?zaLg;us_oSiMuf!A6uszL{>?N;Y33=@{&KT2M02;WgG5H zz8?i&1C9-T^zAo$lho>OJ;vE7Px&|5$yC~yH{wkM9hW5RmoSrwnJ8o!C(;(2Q^$u3 zhhP2iC=4F9N9YM$$2Y{eMBwA7MF zIf>CbpYGO5?G_zP&9J+9n{BLKjG3NoH+&}ptkfE#rF4HRw5IKQsmFf=rX>oq6y+fG z7R034XUtM$Ox+KN1z=v4}-t);+1H*x`{_E&Sje|Fj)N}+jO9WlPoz%)tWX+dDTNj^q&G9X4 z=Qi**z?Co=EM<=MsGER!O=#xA`hN_hLu2th99YW9^Zn_{O7I~K97ILu{HXsf*>693 zpT3)EB;Nb~=8dbZnhWoMCp(Ea@4aU&tnHsfMUCeLvxQmp33M6fGw-BAXkI)W$9dKE z4B@*Rp2#@Ay?sF#vFuO%e8cjQP%-jP55DW|cVQlQD~)w>^A|em@n+z=;q!Xr(O#|4 z1+EHnIh#65^^&_%I%I|WuhU!IfbV5<kg7Y;k_c4O5? zJ|mvZpyMGKtG>4zJK5LZWZftAP2}X|_23)sF;QD1Cp2K+)JNmA&_WFTOlTzyv54m1 zf&VfI_q)5PHXB6nQ#vCd?@5c<#C;J|Ai+GbsSjIyDva7=E>L`R5nFU_5lAg%yvWU4ZkcDSL%` z`+-r#IrvVVuyh@C7jU-fc1>^@BPTE1dCihXLUE61nt(g6xBG+87Z{&u`oXkDUsL_< zAut=AkvH^p)%nnc*oV5JlaHagVFbJZF>h40>7b56UGSni^q=i4)vJrp_tgQjRBfR? z=pRlq!8d%CXrvyE-5>i1?w>)Oke3gh1?u6lQn|3+7;oAeXkBh}}@5OZSU098|?b4vZ?AG}(x;jQizGYTyIyiQ5hrtz3{m6;+pl1fGsp8=t zE@V&;O<4j@uNOVJ8fcJSy&Fxc<&#CJm_-XA|HFD20^j-H`d8)ZLfxyvN1`HBqd=$JQ!l~v8ctf#Ig-sdg z@7`j*smu|U;{K|!^Si-M6Jl*}Z<|I^SSw@xtFDBi3s580@8Z0c!po*Dd;(-mm>k&B zU*K-*+caY{u7=ST;L<+TJ>hy(K>q{xc8*mhmtufgW@I$ooi&?lF*1n6(9n)$k3_F} z1yIY8;BC2SiF7c#I|_W^zp>rB=5M@cR+NDdG%cC#;12uMyyZ(Pp>c(HzRT7Wx?|50 zg7aWg6X8(bcxu2od}%*ner+smM{J8{j1{)$0Ly{cdY)M*tj61?LTtT?e1smr`mIE4 zLp>q|qtW30;vKZfh!r$}lTu*jwsH1WK^uNdjd9NYg+8$o8jPc``*?a#=%j!SXe4I) z3yuqJA;6aZLT%G0N4SqZdcb*TeOI3pwqss*20Xadwwc25tZ-l_G0!<3E_{Mc!(4E- zH(oOnjt_)Ci*Y0^G`g*-GzNFG0(biUQtl|~wE|n<{5$1xrdQz`(o9A26T>7 zWb{yb7uTW^`YYhl?rgP$D+iXR4{}1eivf4U1zN9ffv>Vo6uAuwpzh&vXd7la4RrLU z`{Vx?=iw*+j&tZ6BcX*`^6wtm{c;7r7jq;+JQa5;c`h`84&j__S4W`-srw}i4gP}wd!zSmP*zNCh5>##a?6k0$(9o5kdKHP|Lju z6!z7GQ+M>kITC-t5A)=lUBIRLuN3&qaMCM*=1#hUa0GF#!G3GYvkE?xi$Y$Cr1Slf zRUJ_0Mq+=n(X%6W&KvhxB&FoezTEdR;5v+D^m<_cR|iaiEBr_XZF1$@!PU5E7EM0) z+i}+r=K%OIxinFU+D#0C9}D_{BTk~hP64z#T~6=EO>(-x!H)@A6aU_4dC}i-_V?>3 z9G#U+A8?Z;THKH`4wyAC68v=E+*18)U!Uh%b+ z@Ts?y;;c|t+q4&ypP?P%989x4&4t$|;ick*n)SA&@H8occ2wgtvgji81&*sVX7UZ@ zR>Jc@c!i;6u2;1e)~1D1bxtU9+8h1=@GRQk66@zk_}wfD_$l~i9dlO6I)g`#&(i zIrYtH-lRH_mfY|_VWwuz$LUqzd!LH zKNWlMT7nDZ zpMQjT@-XaNZwMj0>>M=92|ied+VlR{g_!}nW$az4Jc~Goyah(ibh2n4;yiMsl)U!r z6S?93KSi7`TkRFy0>)t1aT)E72@xffK#LCeOLf{n(J_5!czi#09y*@(0MVC0{EI($FG`QkF{ zQ(o!tnF;9o&LIDUx8QHyKySA+guYW#zQYQ5n}Y9|Z1q7k0lC^a68Z*)g6aY|Sw_Iy zwRW4MI@li^E<@}ZXZ2G$TS}<WnLQdUY9? zKX44c-%5AN2bROa5V{cCmpFZG4u1;l^1J$LJ6TW=YF*50a+f;h^$DOB34dw~Hqf8C zj{&zK$@`Cg_tL-Pyj|B($Xk?5CWxn&{4ig9FOec~UTZp)zk~bSI3p@JqtACmoDbj} zu=bMb9q(H@jdetXuE&4SAz#9(I2wX-*F4GwzefqXtQ7aNEAhBk;TVr6;4a_iU9W1;8HQ9o(I#tDGr7 z-?s^B47XePM}d*N4-Xn;d~*Js{z3E{bKd4=!}70zv-ttO8alGKdA5D9lZB4$aqjT% zI7gcQ9p|*(BZaZclBp|VJ9BI{fA)SNCE+}7z$iWsac->N3|c%@&Br^qALsrzSF3ou zgBuX%4F|R<^YISGBhHzI&Q9(M=no;z-FCDS@z7Wsf;jhCv{dvH`Pm5h`QX?@Q5o`c zc`NkkK}SVWy!mFP*ypalD9WwFoVgEr`BAq;b(xV=jhXM!xR;`iLEv;BK)*BKgD5l) z7%hhVNRv;Zx31yTp$D*d4$noRm8h59LTO0eY0-7yqJR7dqr6d*ML*2p7hMNEuBtM} zazk)cZlTvs%u|knMoNEhC8DCVRZq@Bs|}c*TxU(ymfSF!4DG5Fvr3inli-Y^uG7-k zqWq42v>G+j9&V&EyEFRke8hkEgZwcj0mQHey=XK!->$1aU8s`N)Bo>BUv&0=IixW^ zr@osaIIK+m-GjVctK_vGCej|nxxmSVe~madVg`b`JW$p3hdvd~t;UU3-K&eGDTwp6 zPm+8&IBu?pbCZ;nH)&bMSXu8JgwEvPL|w`H2{#S9*}#E55YnY!TmILrNLp9~#`JLTjjz@mB zMQm*wH{b*~&k1<`IWS&df;jg?oL{ae(>Wu~zww-@vvOIAICn#w`)zJ62*Ql+JkEC8 zPOAm-DeyYOd?Rf`s-Q3M{2P#~{dt|hy{()cV%8DjR4$lVft=Y1SPR=1g2pmv3y(k@ zzTk&o*4#+iqy$FV)R=jS`RDI;c!#5m(U*bWQxE(7yw3vpga~Lkiz!-ABnYkHgI|`= zVB=YWU%(@eL?7}bI^X#rxEP~y&usq&ybb=d z0@Tm?2f7UkCZw2(fMBnXMm-ys-<kR0aG~aJK7Qsi$|xd9Fgtn=M?^T8j#F}tTAc0>d{2X4@_cSC_{4RFfXll~4#aJdCN z*bu}q^V!b4i>MnD5~F};0OJGrN$~hiQR$xvtZX5JSU&rcpz+Z0|e3ahU`|1S1 zN(bX?kGM5ZxBeRLt{m(nHaF0DJPn~-%!uxtD9BHI5=05$iPv8(%kNeen-P4lmh0h9Z(__b)*j%Y!0v^PbED1G;@103M<$FqV@=K_n6 zH}HIF$#(9T23&8%d4JRGT+(`Qf)MAV)!RAE>=?4g*>3!PJ14|>Hb=~(>!))a8pwgE zM~+I(;C4Y5!W%PxzvxWv}bU4A4q9*5d2rhKG1EtA4P_md~wY}up9k& zUJ|&n!{!U#i6UtpyrE6oPZ7LZ1N?tB`tiGM1>IKx%kcsp7{g0k*5%>sbcv>iz zT7=ks=;z4S1J-QAfBiFY{1W30zFhbr@u1iFJM=76VF4YHs&YviY5;{tMi-k+pA=B0KeyB zrxtuuc*R=aZ0lyW;_r2n($KE>or7BQ?QP-By#n)-2R3}YRp`4vLj(Mo6(7|uf*h{` zKd{?`x9<(l%s0@p3M}Ouk!J<~g=EC34w1C%!ZEho&J9P&;QnxeIiL@Z4yHkk4rXz9~N6*lsxg{1&`C@O$R29?fr! ziK6lN`M5B6AYu==uM6_hyh(hOF?9H+!_Vc#1pb8pno$=pYf2c+?*1%>Is5`b9MU!=P zccy-0cryX(P$BQk4F4dZCIr19_g{j_nvjw-zz$;3MA8?+^!!?Zcm`S=9Dw!c|+_9O%+u5j~{(m{lD|`nba-(^$QvbKx}<359JfLtLX>+ z?VC>Z;AhQKQSbI))W_73Pq2emuLI(lGLX;4{COtc>&gXg{E_T9as!rFVLpMs4~?}W z*q=Ufn$7o~3H?Y0d)V(w`2gVj*Wq59ylX9Ai1Yjr&x5W6^7l;952DwOj}PY!__t>a z!Ctal!cPWYet{4*Ic9z4y(0f$XhRlA`2oWs$o)95vcn|&Ap`I}OTn4EyN*|V1n2#L zh}IMe`OdzmmvIkvPJhJB92Z5O7hzAZDowTZh1p}4_ z({ucr%X~7NV}=IN3-rVP`q9r>`*&TJH!&50j~YtGz3+N*G#`?yruQAdk=r2P-)~S+ zQeWWQUc2!F219cO@!9V)iI@EX_i8le@P!Ncewa%QodT@v0e@Z%zqV$xfaRDI!C!*b z#aSPm=THTI)Eo1dMc{IdQuEHJpF1qUy;-oCAB}!6Z6W&cja&H$)B^>xf$0j~!OuA$ zrSmf}|9`)eAA)>qwG8vv%1nOnWXvsgg16W_gFgVA%X8pnjg(3Jh|?09iyqt~brruB zd7?v%gj{8o`~lx6nuQuMJNv2rXMJdYeF4`igk^HB$Y=z(jx&y?G7ATxM`Xb9`o5hp zZ2&GIcsMgDf>A;zZ_(E{8o9uQsXPsB0Hb(v9r;AyhjUkL0$qXwQv@rDgJ~z8=S}SF za${W(W*+c3|HqGhzv1tG@aN-HzTqF=5B70G{722; zKTU!*rWdd@=_~m&ZIpBtaZ9=`=5Icaqsn!-%Z%gslYA`A2?IVeIfcKRtf0Cw)DO0q zyfP5_zOmSOnIGWQ3!#^bdf2JsQGVGJa4Yb9&P2}-bdb?a)Nj9T7w~7EBF@3!7F|8b z4*|yKa1iExpNjc@E5HNVjJtB*Nq+4X(z`J^Vk!p_4T=DnWu+wFC2@f!YfyqALwx=V<)HI zc9ih~?#>SSBTnUcab!w!dsU05++QX~25wwOaa__s;hu#_s-{^n+=x0{d zU=VBmtF1TOW^U!bnQLiyN6gu}F5>NhV+547=~nM|f#7=tZ1EZ}RaJ|Kb&T{hQ#-`jzu0CD4R>jOV(K zcwfvN4?f2Z*YP#KBMo)aOU%93e&XM%q4igZm^*yur(;(b@enhO((n8l%sR@Sp!Tl# z%(uK53BCrn)`hQm`yRj$jRGIM{e8Y73tqjzY2Ckco)7mz501Uz=Jk8|q1bK3=b={X z+mBZPQ!r*9_Pd|=Fm*8Z9&#*}hWqBT*ILAo%XoX%^>RMJ0%v<7YOSdo_`0uDR2YDBxK7SrDg+-n75KL~sr;1` zC7JVK^dsaT{|bEMl@;Liq@Ln0d&JSQ_s9cpZt&VJ@F&5Zc*DKt{1Ow)I?%^Wzx0h? zTZOr!Z8(i>UC-c)y?p|3#y-M^hS%V!&%w`){TmtD0sFHJv-Qp^EDZUlq%S!u~*TAskUQ!w3~tfr5@%l^dq#gZDV zZOwnR=Q(0iD!*~4mTXWzJQuFvd-T<;Q@Img#O0374*FtYxBg@3C6UbGE%Y1^y#@8GTM=@0+hhd=olW1xpQ9Pw;q zYS`NcUOW@SspxuRL#Yk0qtGbWZPLQ<%NR5N$vBhUS{v5mPTYvI8hyvs(DV~_-!9=a zEVs469`E(w0pZlrsfFRQ6S&GF!%4it(lBL11RVmuSbxLVUlxlwt-JjHnh91iumm_qNrv^JL&p8 z?!0#tjrcC5Q=ADWL0>NwLeHVg72PHDK_6e#_HF}ED?073trI4Jms~NS_T69c5`IUn zH9UtpbrvHw7xlHzK?_4Dm9KsN@;-45rN@*iQ?`H5E(1%mxO&h~tXf}4ejQ-+w2g9+8(ImSW zP9LB4Fl?MHr_M##-wz#VxUdKFVc_sT+6^^0Kqtx(dNt=*55pHT;9rot`1d0Xd6b(PMRgIh)%wZ8>@ z*MKI5uc+S}*8#t#UmHW6Km|Fq5z+cPT?|(+|KHmKIPloMhOd|<^faYeZA`0=&1nPGc4NsrZ@?Ze*aYe(0{keLB&zpVCo)rTNjbyWSwkG|-XKP}Mw z9cR&f4S%~_OV>tWcF_(q(pMTvL!H)QVR{;f3UgfStQQUJZ#alOMuSbzPirMK96kknD#Ht)GV8ZTuqMeK_KL5IygkAin=P4fQjF z=io*a-+Pame0{>n(0w1@=bDN#jzb%2V=*uLnLryGL6>#x16~2|6}Or2jQ;eU|Ii11 zm6^Z`fm`}k0KdxT&?oO>W7x*V(XCEm+WXetu-G=1T6jWtZb@&$GTrp^jbL0bM-b9W9Hu-_vVyyLPH92_>rs7FI6=$ z+)!e+3>;&Ed?z2#PEMr}QB)*o${&3rBP+}{$CWs7`B71H1v8)g0rmB#(lD?47Y}d( z+7JKWh~_|tst+-z1=j8=YU6P^e!OXfhK8fQ4LU04$8c(z4i3_} zC);^Jm5Sz7K)3usKHnK$_T~ei?YH+TpAU|qJ@i69B)#VQx`SJB3;Cf%J%hmm9%LP% zL%yPkVLLQ>&de24hw?Ut2f(AX6N%}TU3Wt=uz~MZL1Q6wuwmRzR=S$J52$PX=r=7PlO2EegH^v* z@e`7?e`aFK&-LZapKEBQ0sQWtgLtv6hL&I-7mz!Sck)nEKq$`7a6f+gGVH?io_M-bDI&KEdVbNqI0^ulAt$7SACA1?6DX!t zVR!hM&^x@nA9bqJYkrk!3{5)@J(nlHc~3@8FQAKSv9zHfxeu`Rwqoi(&dRWPI`o9G zxBGCanZXP*(htZ>?i1@89&CZe)LAi2+jxTSvlo~F??_s*XcoUALQZinz-#DoiW`|A zr`PvmXng!9{gtjVYLyoYEYSsBkrnEb!rC||ft$bLpSw>B{_Fk`wXuDKo?v~0+UN7p zq4a59?Xxr|m|ktDjc1z`o9IP<)gM24oyi(n{GZyRCU@}CvApL#Ep5VizBbd0zy3o* z>4@{foO=8V^ekTx=c2=w{Nn{`ibb9(udw4M#UMZ32WR03t8@j*Prz6Hm5)Jk6QB96`ug=h5aaQ^A5SXve>rV>9n-~WMv+z_As$tr#_ z>gqV~Oba`u@|zxG7I6`AcFp1!e2*e=2t3pGS6O;!nFH{GdJH@a01*s%R@O zd)>3WwU~$MwLyLJwAR=Cg;Q2mA*MdUbX%g+b4#=I370 zAmrEDm|sT!V)LaohyR?e7oqmpe+8QO9%lR?+(rGqz|-oA75H({bQgWxtkPC| zN6h9I9)_oIP6z%|pcMB2JkGy#=3~D^khc-|)P0)rBP=lgnIxh5->!4cIIFM0V;PX? z&uy*5oGKaoBA-Y4oHyX_qn41~X{)~hFO~MY;;4tUhwjBZ=tk$(#_B@r2pS43Y)#zk z?t(YpzxH{|SM2;J*2bBKmr7%3_SJkwY!^&lAJ;z1Cj?Ojydr9T{_w9A&wKO8c~_u}dVpKKr@52M)g*9L{KPb4 z)dCm0mf%o0LDOV_mrD`2_I9xnT2f@@a(6U%wUeZD|HsQAyW2#QC-yfTnK}6juwQuW z4h~r7lKhf0(46yzH_Vc%eB~B=ckqL+iO*K#qWg<#pNo+5=KPZ%WS?;cF}tbx%#HUU z^mA2hY~$VpQOD-B&xIX>r~rHDn$N&Zm5QM)RrCCBoVU)o%b6ByX&&PINNLFpYN(~J zxCf2c_PSm}z>UQ{=-`Td8SYZ+5ZnhlZJ6_MDq3(Gy`HNVbN3K*xrabYf0mRff#%OP z@J|Qz-p;5W$I}qh7^2eSO!b>Mn(iVdU6+eY;YaAOML?6w>H%Z)MnQX^v6b@rJtNo^ zL+xImzZho3PHY7q%t~nSxR|p?pm{q(C#Kftnz2dirL=hsbS#xE*&kNevrNW!=TV=v z1^)jUFdL^miBwvC?D4kOJMJn$JW%3!wnd+Iae4-+d{%w%(@S zf%Fbo=$g+oKO96=|9t-6IDa{m&TYqe?u9tl%{rwUURMjpNnq*s)n_{P)R22yXb5v* zOu{tODd_u-&pgUZhmJun^vmATXG~^N0_M>0mp@|0-p4F_x z{nAL8XSXoQ5EeS+AsDe&7}h#CIuFm_yh&VQp;NKMtgl6SZ|XIR?QWruH-c z#<@d?7dMR4((BonX{78DR91rz%K?_%ICcE(!l5G^Eh&NZ7gMvXTXx}PhZ4zN$f z&@2O%#r{qM0p^BQ8 zg;Nuone4&I33RAC?)~gAcIsT*gQ4J&PE26CFNr7nQp_>RcCbOfs4AcVviRvicIlj0 zN{1$qa;SlwI8i~X;ov!ka^BQ0YB=Awl$!2#xk&@SC87;Bs z%g({xs_bAajeo&$znUnhKCs9YXAC?m#hm=nRx&?hZsTWQ&(EPn1-Xq=>KDQ~|8e*k`_g#+X1{04*Gu2B#TToyx~@S|VXGZ46! zzvJ9|MogaHZY_Bu&Q+murn*8y6ZPOwcdTaKRjZ-59!{@U_Fz{vQ&X4q;S^FmoqgR= zMTagzFKCjO9Sz*wE9}pbxFnWwR+4>yhiO%h1zFJfL&?p$>f> ziQSeCUW&8oP#<8pmis}Ar{#C{f=v{KC?YBE{Tp^AFuksr7v1o`#45f>ssBvi$v4ep z_1Ih8vW7NXR~;8s9YbdkXUmz_c)_GtGN!HcWA3ee8TtB1aV%Pe3;o6J}5JuMl|{`{$;)@$J%eky=% zZ>FMj=(c^0(6G+X^GSy{N^t*d)~ThEeAi-^cBqK`WdkgFfrwHHZm@4qV@!i*gXZH4 z_JL6>`3)D7^~)b@&`0PuhKgzMa}#=35luHxznwhOh>Fsob^TOKu7jJA3HF8+wi1e- z-U=9|D6#^UWvQ$!^i<$C{Z&FX?^{vPy+{&y!e{ExXSUOOaM`_N`2hk=~=-1T&`ezPH4ysaXuN;h3#3crn4;&+kvxL*B2@pwi-EkjGR69 zA%R|=!JU|&!G?TS0`D&(3rC(^k9#8+v$#<+uCb%O#L;l{5i>r%WT(Ey?&7zIbVYS2 zA2`ZnMoexM4QX5%b}Rniy!UEKshF7^*e|9PO8+-QJu?nzAW;w`mb%g#Cxp zkzV{Z#CfTYnhvWUavAHf!#tye?%WK{R~<}crg6{&=%*j_GLRVL4OjTlTiy?#j{E

    E@wC=&~>18{6S-)g)3wxffrI^PIXtOU*;O^HzHB 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§m}VNkJIMUQ_Xr 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

    E-zU_zTKpL=oyJWgQ)X7?yXvX?<@@5 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%0Ad!D!T-K-nZ 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ⅈ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 SEDnJ%tT- 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

    q(~$#ma&_#**LJtKL@S`BUzA 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�r)CIHGjo!c6{=vCq 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 XJ_>vW9tGVl+I8X9f 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

    DA%|r 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 Date: Fri, 24 Jan 2020 14:53:41 +0100 Subject: [PATCH 166/453] more final fixes --- rtengine/camconst.h | 4 ++-- rtengine/cieimage.h | 2 +- rtengine/dcrop.h | 2 +- rtengine/dfmanager.h | 4 ++-- rtengine/ffmanager.h | 4 ++-- rtengine/iccstore.h | 4 ++-- rtengine/iimage.h | 20 ++++++++++---------- rtengine/imagesource.h | 10 +++++----- rtengine/labimage.h | 2 +- rtgui/thresholdselector.h | 8 ++++---- rtgui/thumbbrowserbase.h | 8 ++++---- rtgui/toolpanel.h | 10 +++++----- rtgui/toolpanelcoord.h | 6 +++--- 13 files changed, 42 insertions(+), 42 deletions(-) diff --git a/rtengine/camconst.h b/rtengine/camconst.h index 1096e1767..c014a3322 100644 --- a/rtengine/camconst.h +++ b/rtengine/camconst.h @@ -14,7 +14,7 @@ struct camera_const_levels { int levels[4]; }; -class CameraConst +class CameraConst final { private: std::string make_model; @@ -56,7 +56,7 @@ public: void update_globalGreenEquilibration(bool other); }; -class CameraConstantsStore +class CameraConstantsStore final { private: std::map mCameraConstants; diff --git a/rtengine/cieimage.h b/rtengine/cieimage.h index fea675cd4..329c0ba74 100644 --- a/rtengine/cieimage.h +++ b/rtengine/cieimage.h @@ -23,7 +23,7 @@ namespace rtengine { -class CieImage : +class CieImage final : public NonCopyable { private: diff --git a/rtengine/dcrop.h b/rtengine/dcrop.h index c65c1e72f..8feeb4f90 100644 --- a/rtengine/dcrop.h +++ b/rtengine/dcrop.h @@ -35,7 +35,7 @@ using namespace procparams; class ImProcCoordinator; -class Crop : public DetailedCrop, public PipetteBuffer +class Crop final : public DetailedCrop, public PipetteBuffer { protected: diff --git a/rtengine/dfmanager.h b/rtengine/dfmanager.h index 216dcfc53..b23981ffb 100644 --- a/rtengine/dfmanager.h +++ b/rtengine/dfmanager.h @@ -31,7 +31,7 @@ namespace rtengine { class RawImage; -class dfInfo +class dfInfo final { public: @@ -74,7 +74,7 @@ protected: void updateRawImage(); }; -class DFManager +class DFManager final { public: void init(const Glib::ustring &pathname); diff --git a/rtengine/ffmanager.h b/rtengine/ffmanager.h index 80ef5fa1c..f3303f12b 100644 --- a/rtengine/ffmanager.h +++ b/rtengine/ffmanager.h @@ -29,7 +29,7 @@ namespace rtengine { class RawImage; -class ffInfo +class ffInfo final { public: @@ -71,7 +71,7 @@ protected: void updateRawImage(); }; -class FFManager +class FFManager final { public: void init(const Glib::ustring &pathname); diff --git a/rtengine/iccstore.h b/rtengine/iccstore.h index 731a155bb..117124122 100644 --- a/rtengine/iccstore.h +++ b/rtengine/iccstore.h @@ -39,7 +39,7 @@ namespace procparams typedef const double(*TMatrix)[3]; -class ProfileContent +class ProfileContent final { public: ProfileContent(); @@ -54,7 +54,7 @@ private: std::string data; }; -class ICCStore +class ICCStore final { public: enum class ProfileType { diff --git a/rtengine/iimage.h b/rtengine/iimage.h index f44c01320..c4e6b7d14 100644 --- a/rtengine/iimage.h +++ b/rtengine/iimage.h @@ -658,7 +658,7 @@ public: /* If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image */ - void allocate (int W, int H) override final + void allocate (int W, int H) final { if (W == width && H == height) { @@ -746,7 +746,7 @@ public: } } - void rotate (int deg) override final + void rotate (int deg) final { if (deg == 90) { @@ -873,7 +873,7 @@ public: } } - void hflip () override final + void hflip () final { int width2 = width / 2; @@ -905,7 +905,7 @@ public: #endif } - void vflip () override final + void vflip () final { int height2 = height / 2; @@ -989,7 +989,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override final + void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final { histogram.clear(); avg_r = avg_g = avg_b = 0.; @@ -1328,7 +1328,7 @@ public: * If any of the required allocation fails, "width" and "height" are set to -1, and all remaining buffer are freed * Can be safely used to reallocate an existing image or to free up it's memory with "allocate (0,0);" */ - void allocate (int W, int H) override final + void allocate (int W, int H) final { if (W == width && H == height) { @@ -1382,7 +1382,7 @@ public: memcpy (dest->data, data, 3 * width * height * sizeof(T)); } - void rotate (int deg) override final + void rotate (int deg) final { if (deg == 90) { @@ -1516,7 +1516,7 @@ public: } } - void hflip () override final + void hflip () final { int width2 = width / 2; @@ -1552,7 +1552,7 @@ public: } } - void vflip () override final + void vflip () final { AlignedBuffer lBuffer(3 * width); @@ -1619,7 +1619,7 @@ public: } } - void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const override final + void computeHistogramAutoWB (double &avg_r, double &avg_g, double &avg_b, int &n, LUTu &histogram, const int compression) const final { histogram.clear(); avg_r = avg_g = avg_b = 0.; diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index d1fa5896e..75b160e10 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -143,11 +143,11 @@ public: virtual void setProgressListener (ProgressListener* pl) {} - void increaseRef () override final + void increaseRef () final { references++; } - void decreaseRef () override final + void decreaseRef () final { references--; @@ -175,15 +175,15 @@ public: return dirpyrdenoiseExpComp; } // functions inherited from the InitialImage interface - Glib::ustring getFileName () override final + Glib::ustring getFileName () final { return fileName; } - cmsHPROFILE getEmbeddedProfile () override final + cmsHPROFILE getEmbeddedProfile () final { return embProfile; } - const FramesMetaData* getMetaData () override final + const FramesMetaData* getMetaData () final { return idata; } diff --git a/rtengine/labimage.h b/rtengine/labimage.h index 79f003b07..7140d9de0 100644 --- a/rtengine/labimage.h +++ b/rtengine/labimage.h @@ -23,7 +23,7 @@ namespace rtengine { -class LabImage +class LabImage final { private: void allocLab(size_t w, size_t h); diff --git a/rtgui/thresholdselector.h b/rtgui/thresholdselector.h index 886b82fbd..4ae86560e 100644 --- a/rtgui/thresholdselector.h +++ b/rtgui/thresholdselector.h @@ -113,10 +113,10 @@ protected: void updateBackBuffer(); Gtk::SizeRequestMode get_request_mode_vfunc () const override; - void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const override final; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override final; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override final; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override final; + void get_preferred_height_vfunc (int& minimum_height, int& natural_height) const final; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const final; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const final; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const final; void on_realize () override; bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; bool on_button_press_event (GdkEventButton* event) override; diff --git a/rtgui/thumbbrowserbase.h b/rtgui/thumbbrowserbase.h index e1f24594c..69017b183 100644 --- a/rtgui/thumbbrowserbase.h +++ b/rtgui/thumbbrowserbase.h @@ -60,10 +60,10 @@ class ThumbBrowserBase : bool on_draw(const ::Cairo::RefPtr< Cairo::Context> &cr) override; Gtk::SizeRequestMode get_request_mode_vfunc () const override; - void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const override final; - void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const override final; - void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const override final; - void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const override final; + void get_preferred_height_vfunc (int &minimum_height, int &natural_height) const final; + void get_preferred_width_vfunc (int &minimum_width, int &natural_width) const final; + void get_preferred_height_for_width_vfunc (int width, int &minimum_height, int &natural_height) const final; + void get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const final; bool on_button_press_event (GdkEventButton* event) override; bool on_button_release_event (GdkEventButton* event) override; diff --git a/rtgui/toolpanel.h b/rtgui/toolpanel.h index 069654128..12b3eebcc 100644 --- a/rtgui/toolpanel.h +++ b/rtgui/toolpanel.h @@ -164,11 +164,11 @@ public: FoldableToolPanel(Gtk::Box* content, Glib::ustring toolName, Glib::ustring UILabel, bool need11 = false, bool useEnabled = false); - MyExpander* getExpander() override final + MyExpander* getExpander() final { return exp; } - void setExpanded (bool expanded) override final + void setExpanded (bool expanded) final { if (exp) { exp->set_expanded( expanded ); @@ -186,7 +186,7 @@ public: exp->show(); } } - bool getExpanded () override final + bool getExpanded () final { if (exp) { return exp->get_expanded(); @@ -194,11 +194,11 @@ public: return false; } - void setParent (Gtk::Box* parent) override final + void setParent (Gtk::Box* parent) final { parentContainer = parent; } - Gtk::Box* getParent () override final + Gtk::Box* getParent () final { return parentContainer; } diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 17f14673d..0fc1a9070 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -314,11 +314,11 @@ public: // imageareatoollistener interface void spotWBselected(int x, int y, Thumbnail* thm = nullptr) override; - void sharpMaskSelected(bool sharpMask) override; + void sharpMaskSelected(bool sharpMask) override final; int getSpotWBRectSize() const override; void cropSelectionReady() override; void rotateSelectionReady(double rotate_deg, Thumbnail* thm = nullptr) override; - ToolBar* getToolBar() const override final; + ToolBar* getToolBar() const final; CropGUIListener* startCropEditing(Thumbnail* thm = nullptr) override; void updateTPVScrollbar (bool hide); @@ -326,7 +326,7 @@ public: // ToolBarListener interface void toolSelected (ToolMode tool) override; - void editModeSwitchedOff () override final; + void editModeSwitchedOff () final; void setEditProvider (EditDataProvider *provider); From 2dc66e81e10883213e2a36f6854624eb7f19d206 Mon Sep 17 00:00:00 2001 From: rfranke Date: Sat, 25 Jan 2020 15:58:26 +0100 Subject: [PATCH 167/453] Create progress tab label only once, see #5596 --- rtgui/filecatalog.cc | 51 ++++++++++++++++++++++++-------------------- rtgui/filecatalog.h | 3 +++ 2 files changed, 31 insertions(+), 23 deletions(-) diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index 109a1bb57..bb34072e2 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -55,6 +55,8 @@ FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : fslistener(nullptr), iatlistener(nullptr), hbToolBar1STB(nullptr), + progressImage(nullptr), + progressLabel(nullptr), hasValidCurrentEFS(false), filterPanel(nullptr), exportPanel(nullptr), @@ -705,35 +707,38 @@ void FileCatalog::_refreshProgressBar () // The second, usually longer pass is done multithreaded down in the single entries and is NOT measured by this if (!inTabMode && (!previewsToLoad || std::floor(100.f * previewsLoaded / previewsToLoad) != std::floor(100.f * (previewsLoaded - 1) / previewsToLoad))) { GThreadLock lock; // All GUI access from idle_add callbacks or separate thread HAVE to be protected - Gtk::Notebook *nb = (Gtk::Notebook *)(filepanel->get_parent()); - Gtk::Grid* grid = Gtk::manage(new Gtk::Grid()); - Gtk::Label *label = nullptr; + if (!progressImage || !progressLabel) { + // create tab label once + Gtk::Notebook *nb = (Gtk::Notebook *)(filepanel->get_parent()); + Gtk::Grid* grid = Gtk::manage(new Gtk::Grid()); + progressImage = Gtk::manage(new RTImage("folder-closed.png")); + progressLabel = Gtk::manage(new Gtk::Label(M("MAIN_FRAME_FILEBROWSER"))); + grid->attach_next_to(*progressImage, options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + grid->attach_next_to(*progressLabel, options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + grid->set_tooltip_markup(M("MAIN_FRAME_FILEBROWSER_TOOLTIP")); + grid->show_all(); + if (options.mainNBVertical) { + progressLabel->set_angle(90); + } + if (nb) { + nb->set_tab_label(*filepanel, *grid); + } + } if (!previewsToLoad) { - grid->attach_next_to(*Gtk::manage(new RTImage("folder-closed.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); + progressImage->changeImage("folder-closed.png"); int filteredCount = min(fileBrowser->getNumFiltered(), previewsLoaded); - - label = Gtk::manage(new Gtk::Label(M("MAIN_FRAME_FILEBROWSER") + - (filteredCount != previewsLoaded ? " [" + Glib::ustring::format(filteredCount) + "/" : " (") - + Glib::ustring::format(previewsLoaded) + - (filteredCount != previewsLoaded ? "]" : ")"))); + progressLabel->set_text(M("MAIN_FRAME_FILEBROWSER") + + (filteredCount != previewsLoaded ? " [" + Glib::ustring::format(filteredCount) + "/" : " (") + + Glib::ustring::format(previewsLoaded) + + (filteredCount != previewsLoaded ? "]" : ")")); } else { - grid->attach_next_to(*Gtk::manage(new RTImage("magnifier.png")), options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); - label = Gtk::manage(new Gtk::Label(M("MAIN_FRAME_FILEBROWSER") + " [" + Glib::ustring::format(std::fixed, std::setprecision(0), std::setw(3), (double)previewsLoaded / previewsToLoad * 100 ) + "%]" )); + progressImage->changeImage("magnifier.png"); + progressLabel->set_text(M("MAIN_FRAME_FILEBROWSER") + " [" + + Glib::ustring::format(previewsLoaded) + "/" + + Glib::ustring::format(previewsToLoad) + "]" ); filepanel->loadingThumbs("", (double)previewsLoaded / previewsToLoad); } - - if (options.mainNBVertical) { - label->set_angle(90); - } - - grid->attach_next_to(*label, options.mainNBVertical ? Gtk::POS_TOP : Gtk::POS_RIGHT, 1, 1); - grid->set_tooltip_markup(M("MAIN_FRAME_FILEBROWSER_TOOLTIP")); - grid->show_all(); - - if (nb) { - nb->set_tab_label(*filepanel, *grid); - } } } diff --git a/rtgui/filecatalog.h b/rtgui/filecatalog.h index 8f7e5618f..10f2bc88f 100644 --- a/rtgui/filecatalog.h +++ b/rtgui/filecatalog.h @@ -124,6 +124,9 @@ private: Gtk::Button* zoomInButton; Gtk::Button* zoomOutButton; + RTImage* progressImage; + Gtk::Label* progressLabel; + MyMutex dirEFSMutex; ExifFilterSettings dirEFS; ExifFilterSettings currentEFS; From 24684e5cb35a2d487cc74407941b795788566a9f Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 26 Jan 2020 11:24:18 +0100 Subject: [PATCH 168/453] Update rtexif using ExifTool 11.84, closes #5618 --- rtexif/canonattribs.cc | 120 ++++++++++++---- rtexif/nikonattribs.cc | 15 +- rtexif/olympusattribs.cc | 8 ++ rtexif/pentaxattribs.cc | 8 +- rtexif/sonyminoltaattribs.cc | 268 +++++++++-------------------------- 5 files changed, 186 insertions(+), 233 deletions(-) diff --git a/rtexif/canonattribs.cc b/rtexif/canonattribs.cc index 0e6f7eb2f..ee451c7d7 100644 --- a/rtexif/canonattribs.cc +++ b/rtexif/canonattribs.cc @@ -557,7 +557,8 @@ public: { choices = { {1, "Canon EF 50mm f/1.8"}, - {2, "Canon EF 28mm f/2.8"}, + {2, "Canon EF 28mm f/2.8 or Sigma Lens"}, + {2, "Sigma 24mm f/2.8 Super Wide II"}, {3, "Canon EF 135mm f/2.8 Soft"}, {4, "Canon EF 35-105mm f/3.5-4.5 or Sigma Lens"}, {4, "Sigma UC Zoom 35-135mm f/4-5.6"}, @@ -598,6 +599,8 @@ public: {26, "Tamron SP AF 90mm f/2.8 Di Macro"}, {26, "Tamron SP AF 180mm f/3.5 Di Macro"}, {26, "Carl Zeiss Planar T* 50mm f/1.4"}, + {26, "Voigtlander APO Lanthar 125mm F2.5 SL Macro"}, + {26, "Carl Zeiss Planar T 85mm f/1.4 ZE"}, {27, "Canon EF 35-80mm f/4-5.6"}, {28, "Canon EF 80-200mm f/4.5-5.6 or Tamron Lens"}, {28, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, @@ -629,7 +632,7 @@ public: {36, "Canon EF 38-76mm f/4.5-5.6"}, {37, "Canon EF 35-80mm f/4-5.6 or Tamron Lens"}, {37, "Tamron 70-200mm f/2.8 Di LD IF Macro"}, - {37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20"}, + {37, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)"}, {37, "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]"}, {37, "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro"}, {38, "Canon EF 80-200mm f/4.5-5.6"}, @@ -637,13 +640,14 @@ public: {40, "Canon EF 28-80mm f/3.5-5.6"}, {41, "Canon EF 28-90mm f/4-5.6"}, {42, "Canon EF 28-200mm f/3.5-5.6 or Tamron Lens"}, - {42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro Model A20"}, + {42, "Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)"}, {43, "Canon EF 28-105mm f/4-5.6"}, {44, "Canon EF 90-300mm f/4.5-5.6"}, {45, "Canon EF-S 18-55mm f/3.5-5.6 [II]"}, {46, "Canon EF 28-90mm f/4-5.6"}, {47, "Zeiss Milvus 35mm f/2 or 50mm f/2"}, {47, "Zeiss Milvus 50mm f/2 Makro"}, + {47, "Zeiss Milvus 135mm f/2 ZE"}, {48, "Canon EF-S 18-55mm f/3.5-5.6 IS"}, {49, "Canon EF-S 55-250mm f/4-5.6 IS"}, {50, "Canon EF-S 18-200mm f/3.5-5.6 IS"}, @@ -660,10 +664,17 @@ public: {103, "Samyang AF 14mm f/2.8 EF or Rokinon Lens"}, {103, "Rokinon SP 14mm f/2.4"}, {103, "Rokinon AF 14mm f/2.8 EF"}, + {106, "Rokinon SP / Samyang XP 35mm f/1.2"}, + {112, "Sigma 28mm f/1.5 FF High-speed Prime or other Sigma Lens"}, + {112, "Sigma 40mm f/1.5 FF High-speed Prime"}, + {112, "Sigma 105mm f/1.5 FF High-speed Prime"}, + {117, "Tamron 35-150mm f/2.8-4.0 Di VC OSD (A043) or other Tamron Lens"}, + {117, "Tamron SP 35mm f/1.4 Di USD (F045)"}, {124, "Canon MP-E 65mm f/2.8 1-5x Macro Photo"}, {125, "Canon TS-E 24mm f/3.5L"}, {126, "Canon TS-E 45mm f/2.8"}, - {127, "Canon TS-E 90mm f/2.8"}, + {127, "Canon TS-E 90mm f/2.8 or Tamron Lens"}, + {127, "Tamron 18-200mm f/3.5-6.3 Di II VC (B018)"}, {129, "Canon EF 300mm f/2.8L USM"}, {130, "Canon EF 50mm f/1.0L USM"}, {131, "Canon EF 28-80mm f/2.8-4L USM or Sigma Lens"}, @@ -674,10 +685,12 @@ public: {131, "Sigma APO 120-300mm f/2.8 EX DG HSM"}, {131, "Sigma 4.5mm f/2.8 EX DC HSM Circular Fisheye"}, {131, "Sigma 70-200mm f/2.8 APO EX HSM"}, + {131, "Sigma 28-70mm f/2.8-4 DG"}, {132, "Canon EF 1200mm f/5.6L USM"}, {134, "Canon EF 600mm f/4L IS USM"}, {135, "Canon EF 200mm f/1.8L USM"}, {136, "Canon EF 300mm f/2.8L USM"}, + {136, "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"}, {137, "Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens"}, {137, "Sigma 18-50mm f/2.8-4.5 DC OS HSM"}, {137, "Sigma 50-200mm f/4-5.6 DC OS HSM"}, @@ -687,14 +700,15 @@ public: {137, "Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C"}, {137, "Sigma 17-50mm f/2.8 OS HSM"}, {137, "Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]"}, - {137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, + {137, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD (B008)"}, {137, "Sigma 8-16mm f/4.5-5.6 DC HSM"}, - {137, "Tamron SP 17-50mm f/2.8 XR Di II VC"}, - {137, "Tamron SP 60mm f/2 Macro Di II"}, + {137, "Tamron SP 17-50mm f/2.8 XR Di II VC (B005)"}, + {137, "Tamron SP 60mm f/2 Macro Di II (G005)"}, {137, "Sigma 10-20mm f/3.5 EX DC HSM"}, {137, "Tamron SP 24-70mm f/2.8 Di VC USD"}, {137, "Sigma 18-35mm f/1.8 DC HSM"}, {137, "Sigma 12-24mm f/4.5-5.6 DG HSM II"}, + {137, "Sigma 70-300mm f/4-5.6 DG OS"}, {138, "Canon EF 28-80mm f/2.8-4L"}, {139, "Canon EF 400mm f/2.8L USM"}, {140, "Canon EF 500mm f/4.5L USM"}, @@ -713,23 +727,28 @@ public: {150, "Sigma 30mm f/1.4 DC HSM"}, {150, "Sigma 24mm f/1.8 DG Macro EX"}, {150, "Sigma 28mm f/1.8 DG Macro EX"}, + {150, "Sigma 18-35mm f/1.8 DC HSM | A"}, {151, "Canon EF 200mm f/2.8L USM"}, {152, "Canon EF 300mm f/4L IS USM or Sigma Lens"}, {152, "Sigma 12-24mm f/4.5-5.6 EX DG ASPHERICAL HSM"}, {152, "Sigma 14mm f/2.8 EX Aspherical HSM"}, {152, "Sigma 10-20mm f/4-5.6"}, {152, "Sigma 100-300mm f/4"}, + {152, "Sigma 300-800mm f/5.6 APO EX DG HSM"}, {153, "Canon EF 35-350mm f/3.5-5.6L USM or Sigma or Tamron Lens"}, {153, "Sigma 50-500mm f/4-6.3 APO HSM EX"}, {153, "Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro"}, - {153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro Model A14"}, + {153, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro (A14)"}, {153, "Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro"}, {154, "Canon EF 20mm f/2.8 USM or Zeiss Lens"}, {154, "Zeiss Milvus 21mm f/2.8"}, - {155, "Canon EF 85mm f/1.8 USM"}, + {154, "Zeiss Milvus 15mm f/2.8 ZE"}, + {154, "Zeiss Milvus 18mm f/2.8 ZE"}, + {155, "Canon EF 85mm f/1.8 USM or Sigma Lens"}, + {155, "Sigma 14mm f/1.8 DG HSM | A"}, {156, "Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens"}, - {156, "Tamron SP 70-300mm f/4-5.6 Di VC USD"}, - {156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF"}, + {156, "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"}, + {156, "Tamron SP AF 28-105mm f/2.8 LD Aspherical IF (176D)"}, {160, "Canon EF 20-35mm f/3.5-4.5 USM or Tamron or Tokina Lens"}, {160, "Tamron AF 19-35mm f/3.5-4.5"}, {160, "Tokina AT-X 124 AF Pro DX 12-24mm f/4"}, @@ -742,7 +761,7 @@ public: {161, "Sigma 24-60mm f/2.8 EX DG"}, {161, "Tamron AF 17-50mm f/2.8 Di-II LD Aspherical"}, {161, "Tamron 90mm f/2.8"}, - {161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, + {161, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF (A05)"}, {161, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, {161, "Tokina AT-X 24-70mm f/2.8 PRO FX (IF)"}, {162, "Canon EF 200mm f/2.8L USM"}, @@ -762,18 +781,30 @@ public: {169, "Sigma 30mm f/1.4 EX DC HSM"}, {169, "Sigma 35mm f/1.4 DG HSM"}, {169, "Sigma 35mm f/1.5 FF High-Speed Prime | 017"}, - {170, "Canon EF 200mm f/2.8L II USM"}, + {169, "Sigma 70mm f/2.8 Macro EX DG"}, + {170, "Canon EF 200mm f/2.8L II USM or Sigma Lens"}, + {170, "Sigma 300mm f/2.8 APO EX DG HSM"}, + {170, "Sigma 800mm f/5.6 APO EX DG HSM"}, {171, "Canon EF 300mm f/4L USM"}, {172, "Canon EF 400mm f/5.6L USM or Sigma Lens"}, {172, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, + {172, "Sigma 500mm f/4.5 APO EX DG HSM"}, {173, "Canon EF 180mm Macro f/3.5L USM or Sigma Lens"}, {173, "Sigma 180mm EX HSM Macro f/3.5"}, {173, "Sigma APO Macro 150mm f/2.8 EX DG HSM"}, + {173, "Sigma 10mm f/2.8 EX DC Fisheye"}, + {173, "Sigma 15mm f/2.8 EX DG Diagonal Fisheye"}, + {173, "Venus Laowa 100mm F2.8 2X Ultra Macro APO"}, {174, "Canon EF 135mm f/2L USM or Other Lens"}, {174, "Sigma 70-200mm f/2.8 EX DG APO OS HSM"}, {174, "Sigma 50-500mm f/4.5-6.3 APO DG OS HSM"}, {174, "Sigma 150-500mm f/5-6.3 APO DG OS HSM"}, {174, "Zeiss Milvus 100mm f/2 Makro"}, + {174, "Sigma APO 50-150mm f/2.8 EX DC OS HSM"}, + {174, "Sigma APO 120-300mm f/2.8 EX DG OS HSM"}, + {174, "Sigma 120-300mm f/2.8 DG OS HSM S013"}, + {174, "Sigma 120-400mm f/4.5-5.6 APO DG OS HSM"}, + {174, "Sigma 200-500mm f/2.8 APO EX DG"}, {175, "Canon EF 400mm f/2.8L USM"}, {176, "Canon EF 24-85mm f/3.5-4.5 USM"}, {177, "Canon EF 300mm f/4L IS USM"}, @@ -788,6 +819,8 @@ public: {180, "Sigma 24mm f/1.5 FF High-Speed Prime | 017"}, {180, "Sigma 50mm f/1.5 FF High-Speed Prime | 017"}, {180, "Sigma 85mm f/1.5 FF High-Speed Prime | 017"}, + {180, "Tokina Opera 50mm f/1.4 FF"}, + {180, "Sigma 20mm f/1.4 DG HSM | A"}, {181, "Canon EF 100-400mm f/4.5-5.6L IS USM + 1.4x or Sigma Lens"}, {181, "Sigma 150-600mm f/5-6.3 DG OS HSM | S + 1.4x"}, {182, "Canon EF 100-400mm f/4.5-5.6L IS USM + 2x or Sigma Lens"}, @@ -815,10 +848,13 @@ public: {196, "Canon EF 75-300mm f/4-5.6 USM"}, {197, "Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens"}, {197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HS"}, - {198, "Canon EF 50mm f/1.4 USM or Zeiss Lens"}, + {198, "Canon EF 50mm f/1.4 USM or Other Lens"}, {198, "Zeiss Otus 55mm f/1.4 ZE"}, {198, "Zeiss Otus 85mm f/1.4 ZE"}, {198, "Zeiss Milvus 25mm f/1.4"}, + {198, "Zeiss Otus 100mm f/1.4"}, + {198, "Zeiss Milvus 35mm f/1.4 ZE"}, + {198, "Yongnuo YN 35mm f/2"}, {199, "Canon EF 28-80mm f/3.5-5.6 USM"}, {200, "Canon EF 75-300mm f/4-5.6 USM"}, {201, "Canon EF 28-80mm f/3.5-5.6 USM"}, @@ -829,13 +865,14 @@ public: {211, "Canon EF 28-200mm f/3.5-5.6 USM"}, {212, "Canon EF 28-105mm f/4-5.6 USM"}, {213, "Canon EF 90-300mm f/4.5-5.6 USM or Tamron Lens"}, - {213, "Tamron SP 150-600mm f/5-6.3 Di VC USD"}, - {213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro"}, - {213, "Tamron SP 35mm f/1.8 Di VC USD"}, - {213, "Tamron SP 45mm f/1.8 Di VC USD"}, + {213, "Tamron SP 150-600mm f/5-6.3 Di VC USD (A011)"}, + {213, "Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro (B016)"}, + {213, "Tamron SP 35mm f/1.8 Di VC USD (F012)"}, + {213, "Tamron SP 45mm f/1.8 Di VC USD (F013)"}, {214, "Canon EF-S 18-55mm f/3.5-5.6 USM"}, {215, "Canon EF 55-200mm f/4.5-5.6 II USM"}, {217, "Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD"}, + {220, "Yongnuo YN 50mm f/1.8"}, {224, "Canon EF 70-200mm f/2.8L IS USM"}, {225, "Canon EF 70-200mm f/2.8L IS USM + 1.4x"}, {226, "Canon EF 70-200mm f/2.8L IS USM + 2x"}, @@ -843,7 +880,8 @@ public: {228, "Canon EF 28-105mm f/3.5-4.5 USM"}, {229, "Canon EF 16-35mm f/2.8L USM"}, {230, "Canon EF 24-70mm f/2.8L USM"}, - {231, "Canon EF 17-40mm f/4L USM"}, + {231, "Canon EF 17-40mm f/4L USM or Sigma Lens"}, + {231, "Sigma 12-24mm f/4 DG HSM A016"}, {232, "Canon EF 70-300mm f/4.5-5.6 DO IS USM"}, {233, "Canon EF 28-300mm f/3.5-5.6L IS USM"}, {234, "Canon EF-S 17-85mm f/4-5.6 IS USM or Tokina Lens"}, @@ -867,13 +905,19 @@ public: {248, "Sigma 24-35mm f/2 DG HSM | A"}, {248, "Sigma 135mm f/2 FF High-Speed Prime | 017"}, {248, "Sigma 24-35mm f/2.2 FF Zoom | 017"}, + {248, "Sigma 135mm f/1.8 DG HSM A017"}, {249, "Canon EF 800mm f/5.6L IS USM"}, {250, "Canon EF 24mm f/1.4L II USM or Sigma Lens"}, {250, "Sigma 20mm f/1.4 DG HSM | A"}, {250, "Sigma 20mm f/1.5 FF High-Speed Prime | 017"}, + {250, "Tokina Opera 16-28mm f/2.8 FF"}, + {250, "Sigma 85mm f/1.4 DG HSM A016"}, {251, "Canon EF 70-200mm f/2.8L IS II USM"}, + {251, "Canon EF 70-200mm f/2.8L IS III USM"}, {252, "Canon EF 70-200mm f/2.8L IS II USM + 1.4x"}, + {252, "Canon EF 70-200mm f/2.8L IS III USM + 1.4x"}, {253, "Canon EF 70-200mm f/2.8L IS II USM + 2x"}, + {253, "Canon EF 70-200mm f/2.8L IS III USM + 2x"}, {254, "Canon EF 100mm f/2.8L Macro IS USM"}, {255, "Sigma 24-105mm f/4 DG OS HSM | A or Other Sigma Lens"}, {255, "Sigma 180mm f/2.8 EX DG OS HSM APO Macro"}, @@ -882,6 +926,12 @@ public: {368, "Sigma 50mm f/1.4 DG HSM | A"}, {368, "Sigma 40mm f/1.4 DG HSM | A"}, {368, "Sigma 60-600mm f/4.5-6.3 DG OS HSM | S"}, + {368, "Sigma 28mm f/1.4 DG HSM | A"}, + {368, "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, + {368, "Sigma 85mm f/1.4 DG HSM | A"}, + {368, "Sigma 105mm f/1.4 DG HSM"}, + {368, "Sigma 14-24mm f/2.8 DG HSM"}, + {368, "Sigma 70mm f/2.8 DG Macro"}, {488, "Canon EF-S 15-85mm f/3.5-5.6 IS USM"}, {489, "Canon EF 70-300mm f/4-5.6L IS USM"}, {490, "Canon EF 8-15mm f/4L Fisheye USM"}, @@ -897,7 +947,7 @@ public: {493, "Canon EF 24-105mm f/4L IS USM"}, {494, "Canon EF 600mm f/4L IS II USM"}, {495, "Canon EF 24-70mm f/2.8L II USM or Sigma Lens"}, - {495, "Sigma 24-70mm F2.8 DG OS HSM | A"}, + {495, "Sigma 24-70mm f/2.8 DG OS HSM | A"}, {496, "Canon EF 200-400mm f/4L IS USM"}, {499, "Canon EF 200-400mm f/4L IS USM + 1.4x"}, {502, "Canon EF 28mm f/2.8 IS USM or Tamron Lens"}, @@ -908,14 +958,16 @@ public: {506, "Canon EF 400mm f/4 DO IS II USM"}, {507, "Canon EF 16-35mm f/4L IS USM"}, {508, "Canon EF 11-24mm f/4L USM or Tamron Lens"}, - {508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD"}, + {508, "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"}, + {624, "Sigma 70-200mm f/2.8 DG OS HSM | S"}, {747, "Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens"}, {747, "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"}, {748, "Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens"}, {748, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x"}, {748, "Tamron 70-210mm f/4 Di VC USD (A034) + 2x"}, {749, "Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x"}, - {750, "Canon EF 35mm f/1.4L II USM"}, + {750, "Canon EF 35mm f/1.4L II USM or Tamron Lens"}, + {750, "Tamron SP 85mm f/1.8 Di VC USD (F016)"}, {751, "Canon EF 16-35mm f/2.8L III USM"}, {752, "Canon EF 24-105mm f/4L IS II USM"}, {753, "Canon EF 85mm f/1.4L IS USM"}, @@ -938,16 +990,21 @@ public: {4154, "Canon EF-S 24mm f/2.8 STM"}, {4155, "Canon EF-M 28mm f/3.5 Macro IS STM"}, {4156, "Canon EF 50mm f/1.8 STM"}, - {4157, "Canon EF-M 18-150mm 1:3.5-6.3 IS STM"}, + {4157, "Canon EF-M 18-150mm f/3.5-6.3 IS STM"}, {4158, "Canon EF-S 18-55mm f/4-5.6 IS STM"}, {4159, "Canon EF-M 32mm f/1.4 STM"}, {4160, "Canon EF-S 35mm f/2.8 Macro IS STM"}, + {4208, "Sigma 56mm f/1.4 DC DN | C"}, {36910, "Canon EF 70-300mm f/4-5.6 IS II USM"}, {36912, "Canon EF-S 18-135mm f/3.5-5.6 IS USM"}, {61182, "Canon RF 35mm F1.8 Macro IS STM or other Canon RF Lens"}, {61182, "Canon RF 50mm F1.2 L USM"}, {61182, "Canon RF 24-105mm F4 L IS USM"}, {61182, "Canon RF 28-70mm F2 L USM"}, + {61182, "Canon RF 85mm F1.2L USM"}, + {61182, "Canon RF 24-240mm F4-6.3 IS USM"}, + {61182, "Canon RF 24-70mm F2.8 L IS USM"}, + {61182, "Canon RF 15-35mm F2.8 L IS USM"}, {61491, "Canon CN-E 14mm T3.1 L F"}, {61492, "Canon CN-E 24mm T1.5 L F"}, {61494, "Canon CN-E 85mm T1.3 L F"}, @@ -1514,7 +1571,11 @@ public: { choices[1042] = "EOS M50 / Kiss M"; choices[2049] = "PowerShot SX740 HS"; + choices[2052] = "PowerShot G5 X Mark II"; choices[2053] = "PowerShot SX70 HS"; + choices[2056] = "PowerShot G7 X Mark III"; + choices[2065] = "EOS M6 Mark II"; + choices[2066] = "EOS M200"; choices[16842752] = "PowerShot A30"; choices[17039360] = "PowerShot S300 / Digital IXUS 300 / IXY Digital 300"; choices[17170432] = "PowerShot A20"; @@ -1679,6 +1740,7 @@ public: choices[52822016] = "PowerShot A3400 IS"; choices[52887552] = "PowerShot A2400 IS"; choices[52953088] = "PowerShot A2300"; + choices[53608448] = "PowerShot S100V"; choices[53673984] = "PowerShot G15"; choices[53739520] = "PowerShot SX50 HS"; choices[53805056] = "PowerShot SX160 IS"; @@ -1737,7 +1799,7 @@ public: choices[67239936] = "PowerShot SX420 IS"; choices[67305472] = "PowerShot ELPH 190 IS / IXUS 180 / IXY 190"; choices[67371008] = "PowerShot G1"; - choices[67371009] = "IXY 180"; + choices[67371009] = "PowerShot ELPH 180 IS / IXUS 175 / IXY 180"; choices[67436544] = "PowerShot SX720 HS"; choices[67502080] = "PowerShot SX620 HS"; choices[67567616] = "EOS M6"; @@ -1821,7 +1883,7 @@ public: choices[2147484453] = "EOS 70D"; choices[2147484454] = "EOS Rebel T5i / 700D / Kiss X7i"; choices[2147484455] = "EOS Rebel T5 / 1200D / Kiss X70 / Hi"; - choices[2147484456] = "EOS-1D X MARK II"; + choices[2147484456] = "EOS-1D X Mark II"; choices[2147484465] = "EOS M"; choices[2147484486] = "EOS Rebel SL1 / 100D / Kiss X7"; choices[2147484487] = "EOS Rebel T6s / 760D / 8000D"; @@ -1837,8 +1899,14 @@ public: choices[2147484680] = "EOS 77D / 9000D"; choices[2147484695] = "EOS Rebel SL2 / 200D / Kiss X9"; choices[2147484706] = "EOS Rebel T100 / 4000D / 3000D"; - choices[2147484708] = "EOR R"; + choices[2147484708] = "EOS R"; + choices[2147484712] = "EOS-1D X Mark III"; choices[2147484722] = "EOS Rebel T7 / 2000D / 1500D / Kiss X90"; + choices[2147484723] = "EOS RP"; + choices[2147484726] = "EOS SL3 / 250D / Kiss X10"; + choices[2147484727] = "EOS 90D"; + choices[2147484960] = "EOS D2000C"; + choices[2147485024] = "EOS D6000C"; } }; CAModelIDInterpreter caModelIDInterpreter; diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index 77720dde0..2ef37b8fb 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -627,6 +627,7 @@ const std::map NALensDataInterpreter::lenses = { {"02 48 65 65 24 24 02 00", "Sigma Macro 90mm f/2.8"}, {"03 43 5C 81 35 35 02 00", "Soligor AF C/D Zoom UMCS 70-210mm 1:4.5"}, {"03 48 5C 81 30 30 02 00", "AF Zoom-Nikkor 70-210mm f/4"}, + {"03 54 68 68 0C 0C 00 00", "Zeiss Otus 1.4/100"}, {"04 48 3C 3C 24 24 03 00", "AF Nikkor 28mm f/2.8"}, {"05 54 50 50 0C 0C 04 00", "AF Nikkor 50mm f/1.4"}, {"06 3F 68 68 2C 2C 06 00", "Cosina AF 100mm f/3.5 Macro"}, @@ -906,12 +907,14 @@ const std::map NALensDataInterpreter::lenses = { {"7F 48 2B 5C 24 34 1C 06", "Sigma 17-70mm f/2.8-4.5 DC Macro Asp. IF"}, {"7F 48 2D 50 24 24 1C 06", "Sigma 18-50mm f/2.8 EX DC Macro"}, {"80 48 1A 1A 24 24 85 06", "AF DX Fisheye-Nikkor 10.5mm f/2.8G ED"}, + {"80 48 1C 29 24 24 7A 06", "Tokina atx-i 11-16mm f/2.8 CF"}, {"81 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | S"}, {"81 54 80 80 18 18 86 0E", "AF-S VR Nikkor 200mm f/2G IF-ED"}, {"82 34 76 A6 38 40 4B 0E", "Sigma 150-600mm f/5-6.3 DG OS HSM | C"}, {"82 48 8E 8E 24 24 87 0E", "AF-S VR Nikkor 300mm f/2.8G IF-ED"}, {"83 00 B0 B0 5A 5A 88 04", "FSA-L2, EDG 65, 800mm f/13 G"}, {"88 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 DG HSM | A"}, + {"89 30 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC Macro OS HS | C"}, {"89 3C 53 80 30 3C 8B 06", "AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED"}, {"8A 3C 37 6A 30 30 4B 0E", "Sigma 24-105mm f/4 DG OS HSM"}, {"8A 54 6A 6A 24 24 8C 0E", "AF-S VR Micro-Nikkor 105mm f/2.8G IF-ED"}, @@ -955,6 +958,7 @@ const std::map NALensDataInterpreter::lenses = { {"9E 38 11 29 34 3C 4B 06", "Sigma 8-16mm f/4.5-5.6 DC HSM"}, {"9E 40 2D 6A 2C 3C A0 0E", "AF-S DX VR Zoom-Nikkor 18-105mm f/3.5-5.6G ED"}, {"9F 37 50 A0 34 40 4B 0E", "Sigma 50-500mm f/4.5-6.3 DG OS HSM"}, + {"9F 48 48 48 24 24 A1 06", "Yongnuo YN40mm f/2.8N"}, {"9F 58 44 44 14 14 A1 06", "AF-S DX Nikkor 35mm f/1.8G"}, {"A0 40 2D 53 2C 3C CA 0E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G VR"}, {"A0 40 2D 53 2C 3C CA 8E", "AF-P DX Nikkor 18-55mm f/3.5-5.6G"}, @@ -1007,6 +1011,7 @@ const std::map NALensDataInterpreter::lenses = { {"AA 48 88 A4 3C 3C D5 4E", "AF-S Nikkor 180-400mm f/4E TC1.4 FL ED VR + 1.4x TC"}, {"AB 3C A0 A0 30 30 C6 4E", "AF-S Nikkor 500mm f/4E FL ED VR"}, {"AB 44 5C 8E 34 3C D6 0E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, + {"AB 44 5C 8E 34 3C D6 4E", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, {"AB 44 5C 8E 34 3C D6 CE", "AF-P Nikkor 70-300mm f/4.5-5.6E ED VR"}, {"AC 38 53 8E 34 3C AE 0E", "AF-S DX Nikkor 55-300mm f/4.5-5.6G ED VR"}, {"AC 3C A6 A6 30 30 C7 4E", "AF-S Nikkor 600mm f/4E FL ED VR"}, @@ -1038,6 +1043,8 @@ const std::map NALensDataInterpreter::lenses = { {"C1 48 24 37 24 24 4B 46", "Sigma 14-24mm f/2.8 DG HSM | A"}, {"C2 4C 24 24 14 14 4B 06", "Sigma 14mm f/1.8 DG HSM | A"}, {"C3 34 68 98 38 40 4B 4E", "Sigma 100-400mm f/5-6.3 DG OS HSM | C"}, + {"C8 54 44 44 0D 0D DF 46", "Tamron SP 35mm f/1.4 Di USD (F045)"}, + {"C8 54 62 62 0C 0C 4B 06", "Sigma 85mm f/1.4 DG HSM | A"}, {"C8 54 62 62 0C 0C 4B 46", "Sigma 85mm f/1.4 DG HSM | A"}, {"C9 48 37 5C 24 24 4B 4E", "Sigma 24-70mm f/2.8 DG OS HSM | A"}, {"CA 48 27 3E 24 24 DF 4E", "Tamron SP 15-30mm f/2.8 Di VC USD G2 (A041)"}, @@ -1051,21 +1058,22 @@ const std::map NALensDataInterpreter::lenses = { {"DC 48 19 19 24 24 4B 06", "Sigma 10mm f/2.8 EX DC HSM Fisheye"}, {"DE 54 50 50 0C 0C 4B 06", "Sigma 50mm f/1.4 EX DG HSM"}, {"E0 3C 5C 8E 30 3C 4B 06", "Sigma 70-300mm f/4-5.6 APO DG Macro HSM"}, - {"E0 40 2D 98 2C 41 DF 4E", "Tamron AF 18-400mm f/3.5-6.3 Di II VC HLD (B028)"}, + {"E0 40 2D 98 2C 41 DF 4E", "Tamron 18-400mm f/3.5-6.3 Di II VC HLD (B028)"}, {"E1 40 19 36 2C 35 DF 4E", "Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)"}, {"E1 58 37 37 14 14 1C 02", "Sigma 24mm f/1.8 EX DG Aspherical Macro"}, {"E2 47 5C 80 24 24 DF 4E", "Tamron SP 70-200mm f/2.8 Di VC USD G2 (A025)"}, {"E3 40 76 A6 38 40 DF 4E", "Tamron SP 150-600mm f/5-6.3 Di VC USD G2"}, {"E3 54 50 50 24 24 35 02", "Sigma Macro 50mm f/2.8 EX DG"}, {"E4 54 64 64 24 24 DF 0E", "Tamron SP 90mm f/2.8 Di VC USD Macro 1:1 (F017)"}, + {"E5 4C 62 62 14 14 C9 4E", "Tamron SP 85mm f/1.8 Di VC USD (F016)"}, {"E5 54 6A 6A 24 24 35 02", "Sigma Macro 105mm f/2.8 EX DG"}, - {"E6 40 2D 80 2C 40 DF 0E", "Tamron AF 18-200mm f/3.5-6.3 Di II VC (B018)"}, + {"E6 40 2D 80 2C 40 DF 0E", "Tamron 18-200mm f/3.5-6.3 Di II VC (B018)"}, {"E6 41 3C 8E 2C 40 1C 02", "Sigma 28-300mm f/3.5-6.3 DG Macro"}, {"E7 4C 4C 4C 14 14 DF 0E", "Tamron SP 45mm f/1.8 Di VC USD (F013)"}, {"E8 4C 44 44 14 14 DF 0E", "Tamron SP 35mm f/1.8 Di VC USD (F012)"}, {"E9 48 27 3E 24 24 DF 0E", "Tamron SP 15-30mm f/2.8 Di VC USD (A012)"}, {"E9 54 37 5C 24 24 1C 02", "Sigma 24-70mm f/2.8 EX DG Macro"}, - {"EA 40 29 8E 2C 40 DF 0E", "Tamron AF 16-300mm f/3.5-6.3 Di II VC PZD (B016)"}, + {"EA 40 29 8E 2C 40 DF 0E", "Tamron 16-300mm f/3.5-6.3 Di II VC PZD (B016)"}, {"EA 48 27 27 24 24 1C 02", "Sigma 15mm f/2.8 EX Diagonal Fisheye"}, {"EB 40 76 A6 38 40 DF 0E", "Tamron SP AF 150-600mm f/5-6.3 VC USD (A011)"}, {"ED 40 2D 80 2C 40 4B 0E", "Sigma 18-200mm f/3.5-6.3 DC OS HSM"}, @@ -1076,6 +1084,7 @@ const std::map NALensDataInterpreter::lenses = { {"F1 47 5C 8E 30 3C DF 0E", "Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)"}, {"F3 48 68 8E 30 30 4B 02", "Sigma APO 100-300mm f/4 EX IF HSM"}, {"F3 54 2B 50 24 24 84 0E", "Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical (IF) (B005)"}, + {"F4 4C 7C 7C 2C 2C 4B 02", "Sigma APO Macro 180mm f/3.5 EX DG HSM"}, {"F4 54 56 56 18 18 84 06", "Tamron SP AF 60mm f/2.0 Di II Macro 1:1 (G005)"}, {"F5 40 2C 8A 2C 40 40 0E", "Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical (IF) Macro (B003)"}, {"F5 48 76 76 24 24 4B 06", "Sigma APO Macro 150mm f/2.8 EX DG HSM"}, diff --git a/rtexif/olympusattribs.cc b/rtexif/olympusattribs.cc index f9869f13e..f590b8154 100644 --- a/rtexif/olympusattribs.cc +++ b/rtexif/olympusattribs.cc @@ -130,6 +130,7 @@ public: lenses["00 30 10"] = "Olympus M.Zuiko Digital ED 45mm f/1.2 Pro"; lenses["00 31 00"] = "Olympus Zuiko Digital ED 12-60mm f/2.8-4.0 SWD"; lenses["00 32 00"] = "Olympus Zuiko Digital ED 14-35mm f/2.0 SWD"; + lenses["00 32 10"] = "Olympus M.Zuiko Digital ED 12-200mm f/3.5-6.3"; lenses["00 33 00"] = "Olympus Zuiko Digital 25mm f/2.8"; lenses["00 34 00"] = "Olympus Zuiko Digital ED 9-18mm f/4.0-5.6"; lenses["00 35 00"] = "Olympus Zuiko Digital 14-54mm f/2.8-3.5 II"; @@ -190,6 +191,13 @@ public: lenses["02 26 10"] = "Lumix G 25mm f/1.7 Asph."; lenses["02 27 10"] = "Leica DG Vario-Elmar 100-400mm f/4.0-6.3 Asph. Power OIS"; lenses["02 28 10"] = "Lumix G Vario 12-60mm f/3.5-5.6 Asph. Power OIS"; + lenses["02 29 10"] = "Leica DG Summilux 12mm f/1.4 Asph."; + lenses["02 30 10"] = "Leica DG Vario-Elmarit 12-60mm f/2.8-4 Asph. Power OIS"; + lenses["02 33 10"] = "Lumix G X Vario 12-35mm f/2.8 II Asph. Power OIS"; + lenses["02 35 10"] = "Leica DG Vario-Elmarit 8-18mm f/2.8-4 Asph."; + lenses["02 36 10"] = "Leica DG Elmarit 200mm f/2.8 Power OIS"; + lenses["02 37 10"] = "Leica DG Vario-Elmarit 50-200mm f/2.8-4 Asph. Power OIS"; + lenses["02 38 10"] = "Leica DG Vario-Summilux 10-25mm f/1.7 Asph."; lenses["03 01 00"] = "Leica D Vario Elmarit 14-50mm f/2.8-3.5 Asph."; lenses["03 02 00"] = "Leica D Summilux 25mm f/1.4 Asph."; lenses["05 01 10"] = "Tamron 14-150mm f/3.5-5.8 Di III"; diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index 898150696..46ae9f67e 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -752,7 +752,7 @@ public: choices.insert (p_t (256 * 3 + 44, "Sigma 17-70mm f/2.8-4.5 DC Macro")); choices.insert (p_t (256 * 3 + 44, "Sigma 18-50mm f/3.5-5.6 DC")); choices.insert (p_t (256 * 3 + 44, "Sigma 17-35mm f/2.8-4 EX DG")); - choices.insert (p_t (256 * 3 + 44, "Tamron 35-90mm f/4 AF")); + choices.insert (p_t (256 * 3 + 44, "Tamron 35-90mm f/4-5.6 AF")); choices.insert (p_t (256 * 3 + 44, "Sigma AF 18-35mm f/3.5-4.5 Aspherical")); choices.insert (p_t (256 * 3 + 46, "Sigma or Samsung Lens (3 46)")); choices.insert (p_t (256 * 3 + 46, "Sigma APO 70-200mm f/2.8 EX")); @@ -908,8 +908,9 @@ public: choices.insert (p_t (256 * 7 + 243, "smc PENTAX-DA 70mm f/2.4 Limited")); choices.insert (p_t (256 * 7 + 244, "smc PENTAX-DA 21mm f/3.2 AL Limited")); choices.insert (p_t (256 * 8 + 0, "Sigma 50-150mm f/2.8 II APO EX DC HSM")); - choices.insert (p_t (256 * 8 + 3, "Sigma AF 18-125mm f/3.5-5.6 DC")); + choices.insert (p_t (256 * 8 + 3, "Sigma 18-125mm f/3.8-5.6 DC HSM")); choices.insert (p_t (256 * 8 + 4, "Sigma 50mm f/1.4 EX DG HSM")); + choices.insert (p_t (256 * 8 + 6, "Sigma 4.5mm f/2.8 EX DC Fisheye")); choices.insert (p_t (256 * 8 + 7, "Sigma 24-70mm f/2.8 IF EX DG HSM")); choices.insert (p_t (256 * 8 + 8, "Sigma 18-250mm f/3.5-6.3 DC OS HSM")); choices.insert (p_t (256 * 8 + 11, "Sigma 10-20mm f/3.5 EX DC HSM")); @@ -920,6 +921,7 @@ public: choices.insert (p_t (256 * 8 + 16, "Sigma 70-200mm f/2.8 EX DG Macro HSM II")); choices.insert (p_t (256 * 8 + 17, "Sigma 50-500mm f/4.5-6.3 DG OS HSM")); choices.insert (p_t (256 * 8 + 18, "Sigma 8-16mm f/4.5-5.6 DC HSM")); + choices.insert (p_t (256 * 8 + 20, "Sigma 18-50mm f/2.8-4.5 DC HSM")); choices.insert (p_t (256 * 8 + 21, "Sigma 17-50mm f/2.8 EX DC OS HSM")); choices.insert (p_t (256 * 8 + 22, "Sigma 85mm f/1.4 EX DG HSM")); choices.insert (p_t (256 * 8 + 23, "Sigma 70-200mm f/2.8 APO EX DG OS HSM")); @@ -938,6 +940,7 @@ public: choices.insert (p_t (256 * 8 + 62, "HD PENTAX-D FA 24-70mm f/2.8 ED SDM WR")); choices.insert (p_t (256 * 8 + 63, "HD PENTAX-D FA 15-30mm f/2.8 ED SDM WR")); choices.insert (p_t (256 * 8 + 64, "HD PENTAX-D FA* 50mm f/1.4 SDM AW")); + choices.insert (p_t (256 * 8 + 196, "HD PENTAX-DA* 11-18mm f/2.8 ED DC AW")); choices.insert (p_t (256 * 8 + 197, "HD PENTAX-DA 55-300mm f/4.5-6.3 ED PLM WR RE")); choices.insert (p_t (256 * 8 + 198, "smc PENTAX-DA L 18-50mm f/4-5.6 DC WR RE")); choices.insert (p_t (256 * 8 + 199, "HD PENTAX-DA 18-50mm f/4-5.6 DC WR RE")); @@ -992,6 +995,7 @@ public: choices.insert (p_t (256 * 22 + 3, "03 Fish-eye 3.2mm f/5.6")); choices.insert (p_t (256 * 22 + 4, "04 Toy Lens Wide 6.3mm f/7.1")); choices.insert (p_t (256 * 22 + 5, "05 Toy Lens Telephoto 18mm f/8")); + choices.insert (p_t (256 * 31 + 1, "GR Lens")); } std::string toString (const Tag* t) const override { diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc index 4410a4051..61223edf0 100644 --- a/rtexif/sonyminoltaattribs.cc +++ b/rtexif/sonyminoltaattribs.cc @@ -574,11 +574,12 @@ public: {23, "Minolta AF 200mm f/4 Macro APO G"}, {24, "Minolta/Sony AF 24-105mm f/3.5-4.5 (D) or Sigma or Tamron Lens"}, {24, "Sigma 18-50mm f/2.8"}, - {24, "Sigma 17-70mm f/2.8-4.5 (D)"}, + {24, "Sigma 17-70mm f/2.8-4.5 DC Macro"}, {24, "Sigma 20-40mm f/2.8 EX DG Aspherical IF"}, {24, "Sigma 18-200mm f/3.5-6.3 DC"}, {24, "Sigma DC 18-125mm f/4-5,6 D"}, {24, "Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro"}, + {24, "Sigma 15-30mm f/3.5-4.5 EX DG Aspherical"}, {25, "Minolta AF 100-300mm f/4.5-5.6 APO (D) or Sigma Lens"}, {25, "Sigma 100-300mm f/4 EX (APO (D) or D IF)"}, {25, "Sigma 70mm f/2.8 EX DG Macro"}, @@ -612,8 +613,9 @@ public: {45, "Carl Zeiss Planar T* 85mm f/1.4 ZA (SAL85F14Z)"}, {46, "Carl Zeiss Vario-Sonnar T* DT 16-80mm f/3.5-4.5 ZA (SAL1680Z)"}, {47, "Carl Zeiss Sonnar T* 135mm f/1.8 ZA (SAL135F18Z)"}, - {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or ZA SSM II"}, + {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM (SAL2470Z) or Other Lens"}, {48, "Carl Zeiss Vario-Sonnar T* 24-70mm f/2.8 ZA SSM II (SAL2470Z2)"}, + {48, "Tamron SP 24-70mm f/2.8 Di USD"}, {49, "Sony DT 55-200mm f/4-5.6 (SAL55200)"}, {50, "Sony DT 18-250mm f/3.5-6.3 (SAL18250)"}, {51, "Sony DT 16-105mm f/3.5-5.6 (SAL16105)"}, @@ -645,7 +647,6 @@ public: {128, "Tamron or Sigma Lens (128)"}, {128, "Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro"}, {128, "Tamron AF 28-300mm f/3.5-6.3 XR Di LD Aspherical [IF] Macro"}, - {128, "Tamron 80-300mm f/3.5-6.3"}, {128, "Tamron AF 28-200mm f/3.8-5.6 XR Di Aspherical [IF] Macro"}, {128, "Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF"}, {128, "Sigma AF 50-150mm f/2.8 EX DC APO HSM II"}, @@ -680,7 +681,7 @@ public: {137, "Cosina 70-210mm f/2.8-4 AF"}, {138, "Soligor 19-35mm f/3.5-4.5"}, {139, "Tokina AF 28-300mm f/4-6.3"}, - {142, "Voigtlander 70-300mm f/4.5-5.6"}, + {142, "Cosina AF 70-300mm f/4.5-5.6 MC"}, {146, "Voigtlander Macro APO-Lanthar 125mm f/2.5 SL"}, {194, "Tamron SP AF 17-50mm f/2.8 XR Di II LD Aspherical [IF]"}, {202, "Tamron SP AF 70-200mm f/2.8 Di LD [IF] Macro"}, @@ -723,10 +724,11 @@ public: {2552, "Angenieux AF 28-70mm f/2.6"}, {2552, "Tokina AT-X 17 AF 17mm f/3.5"}, {2552, "Tokina 20-35mm f/3.5-4.5 II AF"}, - {2553, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"}, + {2553, "Minolta AF 28-135mm f/4-4.5 or Other Lens"}, {2553, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"}, {2553, "Sigma 28-105mm f/2.8-4 Aspherical"}, {2553, "Sigma 28-105mm f/4-5.6 UC"}, + {2553, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"}, {2554, "Minolta AF 35-105mm f/3.5-4.5"}, {2555, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"}, {2555, "Sigma 70-210mm f/4-5.6 APO"}, @@ -805,7 +807,7 @@ public: {2624, "Minolta AF 35-80mm f/4-5.6 Power Zoom"}, {2628, "Minolta AF 80-200mm f/2.8 HS-APO G"}, {2629, "Minolta AF 85mm f/1.4 New"}, - {2631, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"}, + {2631, "Minolta AF 100-300mm f/4.5-5.6 APO"}, {2632, "Minolta AF 24-50mm f/4 New"}, {2638, "Minolta AF 50mm f/2.8 Macro New"}, {2639, "Minolta AF 100mm f/2.8 Macro"}, @@ -818,6 +820,7 @@ public: {2672, "Minolta AF 24-105mm f/3.5-4.5 (D)"}, {3046, "Metabones Canon EF Speed Booster"}, {4567, "Tokina 70-210mm f/4-5.6"}, + {4568, "Tokina AF 35-200mm f/4-5.6 Zoom SD"}, {4570, "Tamron AF 35-135mm f/3.5-4.5"}, {4571, "Vivitar 70-210mm f/4.5-5.6"}, {4574, "2x Teleconverter or Tamron or Tokina Lens"}, @@ -832,97 +835,6 @@ public: {6118, "Canon EF Adapter"}, {6528, "Sigma 16mm f/2.8 Filtermatic Fisheye"}, {6553, "E-Mount, T-Mount, Other Lens or no lens"}, - {6553, "Sony E 16mm f/2.8"}, - {6553, "Sony E 18-55mm f/3.5-5.6 OSS"}, - {6553, "Sony E 55-210mm f/4.5-6.3 OSS"}, - {6553, "Sony E 18-200mm f/3.5-6.3 OSS"}, - {6553, "Sony E 30mm f/3.5 Macro"}, - {6553, "Sony E 24mm f/1.8 ZA"}, - {6553, "Sony E 50mm f/1.8 OSS"}, - {6553, "Sony E 16-70mm f/4 ZA OSS"}, - {6553, "Sony E 10-18mm f/4 OSS"}, - {6553, "Sony E PZ 16-50mm f/3.5-5.6 OSS"}, - {6553, "Sony FE 35mm f/2.8 ZA"}, - {6553, "Sony FE 24-70mm f/4 ZA OSS"}, - {6553, "Sony FE 85mm f/1.8"}, - {6553, "Sony E 18-200mm f/3.5-6.3 OSS LE"}, - {6553, "Sony E 20mm f/2.8"}, - {6553, "Sony E 35mm f/1.8 OSS"}, - {6553, "Sony E PZ 18-105mm f/4 G OSS"}, - {6553, "Sony FE 12-24mm f/4 G"}, - {6553, "Sony FE 90mm f/2.8 Macro G OSS"}, - {6553, "Sony E 18-50mm f/4-5.6"}, - {6553, "Sony FE 24mm f/1.4 GM"}, - {6553, "Sony FE 24-105mm f/4 G OSS"}, - {6553, "Sony E PZ 18-200mm f/3.5-6.3 OSS"}, - {6553, "Sony FE 55mm f/1.8 ZA"}, - {6553, "Sony FE 70-200mm f/4 G OSS"}, - {6553, "Sony FE 16-35mm f/4 ZA OSS"}, - {6553, "Sony FE 50mm f/2.8 Macro"}, - {6553, "Sony FE 28-70mm f/3.5-5.6 OSS"}, - {6553, "Sony FE 35mm f/1.4 ZA"}, - {6553, "Sony FE 24-240mm f/3.5-6.3 OSS"}, - {6553, "Sony FE 28mm f/2"}, - {6553, "Sony FE PZ 28-135mm f/4 G OSS"}, - {6553, "Sony FE 100mm f/2.8 STF GM OSS"}, - {6553, "Sony E PZ 18-110mm f/4 G OSS"}, - {6553, "Sony FE 24-70mm f/2.8 GM"}, - {6553, "Sony FE 50mm f/1.4 ZA"}, - {6553, "Sony FE 85mm f/1.4 GM"}, - {6553, "Sony FE 50mm f/1.8"}, - {6553, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"}, - {6553, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"}, - {6553, "Sony FE 70-300mm f/4.5-5.6 G OSS"}, - {6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS"}, - {6553, "Sony FE 70-200mm f/2.8 GM OSS"}, - {6553, "Sony FE 16-35mm f/2.8 GM"}, - {6553, "Sony FE 400mm f/2.8 GM OSS"}, - {6553, "Sony E 18-135mm f/3.5-5.6 OSS"}, - {6553, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"}, - {6553, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"}, - {6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter"}, - {6553, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"}, - {6553, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"}, - {6553, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"}, - {6553, "Samyang AF 50mm f/1.4 FE"}, - {6553, "Samyang AF 14mm f/2.8 FE"}, - {6553, "Samyang AF 24mm f/2.8"}, - {6553, "Samyang AF 35mm f/2.8 FE"}, - {6553, "Samyang AF 35mm f/1.4"}, - {6553, "Sigma 19mm f/2.8 [EX] DN"}, - {6553, "Sigma 30mm f/2.8 [EX] DN"}, - {6553, "Sigma 60mm f/2.8 DN"}, - {6553, "Sigma 30mm f/1.4 DC DN | C"}, - {6553, "Sigma 85mm f/1.4 DG HSM | A"}, - {6553, "Sigma 16mm f/1.4 DC DN | C"}, - {6553, "Sigma 105mm f/1.4 DG HSM | A"}, - {6553, "Sigma 56mm f/1.4 DC DN | C"}, - {6553, "Sigma 70-200mm f/2.8 DG OS HSM | S"}, - {6553, "Sigma 70mm f/2.8 DG MACRO | A"}, - {6553, "Tamron 18-200mm f/3.5-6.3 Di III VC"}, - {6553, "Tamron 28-75mm f/2.8 Di III RXD"}, - {6553, "Tokina Firin 20mm f/2 FE MF"}, - {6553, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"}, - {6553, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"}, - {6553, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"}, - {6553, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical"}, - {6553, "Voigtlander NOKTON 40mm f/1.2 Aspherical"}, - {6553, "Voigtlander NOKTON classic 35mm f/1.4"}, - {6553, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"}, - {6553, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"}, - {6553, "Zeiss Touit 12mm f/2.8"}, - {6553, "Zeiss Touit 32mm f/1.8"}, - {6553, "Zeiss Touit 50mm f/2.8 Macro"}, - {6553, "Zeiss Batis 25mm f/2"}, - {6553, "Zeiss Batis 85mm f/1.8"}, - {6553, "Zeiss Batis 18mm f/2.8"}, - {6553, "Zeiss Batis 135mm f/2.8"}, - {6553, "Zeiss Batis 40mm f/2 CF"}, - {6553, "Zeiss Loxia 50mm f/2"}, - {6553, "Zeiss Loxia 35mm f/2"}, - {6553, "Zeiss Loxia 21mm f/2.8"}, - {6553, "Zeiss Loxia 85mm f/2.4"}, - {6553, "Zeiss Loxia 25mm f/2.4"}, {6553, "Arax MC 35mm f/2.8 Tilt+Shift"}, {6553, "Arax MC 80mm f/2.8 Tilt+Shift"}, {6553, "Zenitar MF 16mm f/2.8 Fisheye M42"}, @@ -948,10 +860,11 @@ public: {25521, "Angenieux AF 28-70mm f/2.6"}, {25521, "Tokina AT-X 17 AF 17mm f/3.5"}, {25521, "Tokina 20-35mm f/3.5-4.5 II AF"}, - {25531, "Minolta AF 28-135mm f/4-4.5 or Sigma Lens"}, + {25531, "Minolta AF 28-135mm f/4-4.5 or Other Lens"}, {25531, "Sigma ZOOM-alpha 35-135mm f/3.5-4.5"}, {25531, "Sigma 28-105mm f/2.8-4 Aspherical"}, {25531, "Sigma 28-105mm f/4-5.6 UC"}, + {25531, "Tokina AT-X 242 AF 24-200mm f/3.5-5.6"}, {25541, "Minolta AF 35-105mm f/3.5-4.5"}, {25551, "Minolta AF 70-210mm f/4 Macro or Sigma Lens"}, {25551, "Sigma 70-210mm f/4-5.6 APO"}, @@ -1030,7 +943,7 @@ public: {26241, "Minolta AF 35-80mm f/4-5.6 Power Zoom"}, {26281, "Minolta AF 80-200mm f/2.8 HS-APO G"}, {26291, "Minolta AF 85mm f/1.4 New"}, - {26311, "Minolta/Sony AF 100-300mm f/4.5-5.6 APO"}, + {26311, "Minolta AF 100-300mm f/4.5-5.6 APO"}, {26321, "Minolta AF 24-50mm f/4 New"}, {26381, "Minolta AF 50mm f/2.8 Macro New"}, {26391, "Minolta AF 100mm f/2.8 Macro"}, @@ -1043,6 +956,7 @@ public: {26721, "Minolta AF 24-105mm f/3.5-4.5 (D)"}, {30464, "Metabones Canon EF Speed Booster"}, {45671, "Tokina 70-210mm f/4-5.6"}, + {45681, "Tokina AF 35-200mm f/4-5.6 Zoom SD"}, {45701, "Tamron AF 35-135mm f/3.5-4.5"}, {45711, "Vivitar 70-210mm f/4.5-5.6"}, {45741, "2x Teleconverter or Tamron or Tokina Lens"}, @@ -1057,104 +971,13 @@ public: {61184, "Canon EF Adapter"}, {65280, "Sigma 16mm f/2.8 Filtermatic Fisheye"}, {65535, "E-Mount, T-Mount, Other Lens or no lens"}, - {65535, "Sony E 16mm f/2.8"}, - {65535, "Sony E 18-55mm f/3.5-5.6 OSS"}, - {65535, "Sony E 55-210mm f/4.5-6.3 OSS"}, - {65535, "Sony E 18-200mm f/3.5-6.3 OSS"}, - {65535, "Sony E 30mm f/3.5 Macro"}, - {65535, "Sony E 24mm f/1.8 ZA"}, - {65535, "Sony E 50mm f/1.8 OSS"}, - {65535, "Sony E 16-70mm f/4 ZA OSS"}, - {65535, "Sony E 10-18mm f/4 OSS"}, - {65535, "Sony E PZ 16-50mm f/3.5-5.6 OSS"}, - {65535, "Sony FE 35mm f/2.8 ZA"}, - {65535, "Sony FE 24-70mm f/4 ZA OSS"}, - {65535, "Sony FE 85mm f/1.8"}, - {65535, "Sony E 18-200mm f/3.5-6.3 OSS LE"}, - {65535, "Sony E 20mm f/2.8"}, - {65535, "Sony E 35mm f/1.8 OSS"}, - {65535, "Sony E PZ 18-105mm f/4 G OSS"}, - {65535, "Sony FE 12-24mm f/4 G"}, - {65535, "Sony FE 90mm f/2.8 Macro G OSS"}, - {65535, "Sony E 18-50mm f/4-5.6"}, - {65535, "Sony FE 24mm f/1.4 GM"}, - {65535, "Sony FE 24-105mm f/4 G OSS"}, - {65535, "Sony E PZ 18-200mm f/3.5-6.3 OSS"}, - {65535, "Sony FE 55mm f/1.8 ZA"}, - {65535, "Sony FE 70-200mm f/4 G OSS"}, - {65535, "Sony FE 16-35mm f/4 ZA OSS"}, - {65535, "Sony FE 50mm f/2.8 Macro"}, - {65535, "Sony FE 28-70mm f/3.5-5.6 OSS"}, - {65535, "Sony FE 35mm f/1.4 ZA"}, - {65535, "Sony FE 24-240mm f/3.5-6.3 OSS"}, - {65535, "Sony FE 28mm f/2"}, - {65535, "Sony FE PZ 28-135mm f/4 G OSS"}, - {65535, "Sony FE 100mm f/2.8 STF GM OSS"}, - {65535, "Sony E PZ 18-110mm f/4 G OSS"}, - {65535, "Sony FE 24-70mm f/2.8 GM"}, - {65535, "Sony FE 50mm f/1.4 ZA"}, - {65535, "Sony FE 85mm f/1.4 GM"}, - {65535, "Sony FE 50mm f/1.8"}, - {65535, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)"}, - {65535, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)"}, - {65535, "Sony FE 70-300mm f/4.5-5.6 G OSS"}, - {65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS"}, - {65535, "Sony FE 70-200mm f/2.8 GM OSS"}, - {65535, "Sony FE 16-35mm f/2.8 GM"}, - {65535, "Sony FE 400mm f/2.8 GM OSS"}, - {65535, "Sony E 18-135mm f/3.5-5.6 OSS"}, - {65535, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter"}, - {65535, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter"}, - {65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 1.4X Teleconverter"}, - {65535, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter"}, - {65535, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter"}, - {65535, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter"}, - {65535, "Samyang AF 50mm f/1.4 FE"}, - {65535, "Samyang AF 14mm f/2.8 FE"}, - {65535, "Samyang AF 24mm f/2.8"}, - {65535, "Samyang AF 35mm f/2.8 FE"}, - {65535, "Samyang AF 35mm f/1.4"}, - {65535, "Sigma 19mm f/2.8 [EX] DN"}, - {65535, "Sigma 30mm f/2.8 [EX] DN"}, - {65535, "Sigma 60mm f/2.8 DN"}, - {65535, "Sigma 30mm f/1.4 DC DN | C"}, - {65535, "Sigma 85mm f/1.4 DG HSM | A"}, - {65535, "Sigma 16mm f/1.4 DC DN | C"}, - {65535, "Sigma 105mm f/1.4 DG HSM | A"}, - {65535, "Sigma 56mm f/1.4 DC DN | C"}, - {65535, "Sigma 70-200mm f/2.8 DG OS HSM | S"}, - {65535, "Sigma 70mm f/2.8 DG MACRO | A"}, - {65535, "Tamron 18-200mm f/3.5-6.3 Di III VC"}, - {65535, "Tamron 28-75mm f/2.8 Di III RXD"}, - {65535, "Tokina Firin 20mm f/2 FE MF"}, - {65535, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III"}, - {65535, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6"}, - {65535, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III"}, - {65535, "Voigtlander MACRO APO-LANTHAR 65mm f/2 Aspherical"}, - {65535, "Voigtlander NOKTON 40mm f/1.2 Aspherical"}, - {65535, "Voigtlander NOKTON classic 35mm f/1.4"}, - {65535, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5"}, - {65535, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical"}, - {65535, "Zeiss Touit 12mm f/2.8"}, - {65535, "Zeiss Touit 32mm f/1.8"}, - {65535, "Zeiss Touit 50mm f/2.8 Macro"}, - {65535, "Zeiss Batis 25mm f/2"}, - {65535, "Zeiss Batis 85mm f/1.8"}, - {65535, "Zeiss Batis 18mm f/2.8"}, - {65535, "Zeiss Batis 135mm f/2.8"}, - {65535, "Zeiss Batis 40mm f/2 CF"}, - {65535, "Zeiss Loxia 50mm f/2"}, - {65535, "Zeiss Loxia 35mm f/2"}, - {65535, "Zeiss Loxia 21mm f/2.8"}, - {65535, "Zeiss Loxia 85mm f/2.4"}, - {65535, "Zeiss Loxia 25mm f/2.4"}, {65535, "Arax MC 35mm f/2.8 Tilt+Shift"}, {65535, "Arax MC 80mm f/2.8 Tilt+Shift"}, {65535, "Zenitar MF 16mm f/2.8 Fisheye M42"}, {65535, "Samyang 500mm Mirror f/8.0"}, {65535, "Pentacon Auto 135mm f/2.8"}, {65535, "Pentacon Auto 29mm f/2.8"}, - {65535, "Helios 44-2 58mm f/2.0"}, + {65535, "Helios 44-2 58mm f/2.0"} }; } @@ -1198,12 +1021,25 @@ public: SALensID2Interpreter () { choices.insert (p_t (0, "Unknown E-mount lens or other lens")); + choices.insert (p_t (0, "Sigma 19mm f/2.8 [EX] DN")); + choices.insert (p_t (0, "Sigma 30mm f/2.8 [EX] DN")); + choices.insert (p_t (0, "Sigma 60mm f/2.8 DN")); + choices.insert (p_t (0, "Sony E 18-200mm f/3.5-6.3 OSS LE")); + choices.insert (p_t (0, "Tamron 18-200mm f/3.5-6.3 Di III VC")); + choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE AF")); + choices.insert (p_t (0, "Tokina FiRIN 20mm f/2 FE MF")); + choices.insert (p_t (0, "Zeiss Touit 12mm f/2.8")); + choices.insert (p_t (0, "Zeiss Touit 32mm f/1.8")); + choices.insert (p_t (0, "Zeiss Touit 50mm f/2.8 Macro")); + choices.insert (p_t (0, "Zeiss Loxia 50mm f/2")); + choices.insert (p_t (0, "Zeiss Loxia 35mm f/2")); choices.insert (p_t (1, "Sony LA-EA1 or Sigma MC-11 Adapter")); choices.insert (p_t (2, "Sony LA-EA2 Adapter")); choices.insert (p_t (3, "Sony LA-EA3 Adapter")); choices.insert (p_t (6, "Sony LA-EA4 Adapter")); choices.insert (p_t (44, "Metabones Canon EF Smart Adapter")); choices.insert (p_t (78, "Metabones Canon EF Smart Adapter Mark III or Other Adapter")); + choices.insert (p_t (184, "Metabones Canon EF Speed Booster Ultra")); choices.insert (p_t (234, "Metabones Canon EF Smart Adapter Mark IV")); choices.insert (p_t (239, "Metabones Canon EF Speed Booster")); choices.insert (p_t (32784, "Sony E 16mm f/2.8")); @@ -1211,17 +1047,19 @@ public: choices.insert (p_t (32786, "Sony E 55-210mm f/4.5-6.3 OSS")); choices.insert (p_t (32787, "Sony E 18-200mm f/3.5-6.3 OSS")); choices.insert (p_t (32788, "Sony E 30mm f/3.5 Macro")); - choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4 FE")); - choices.insert (p_t (32789, "Samyang AF 50mm f/1.4 FE")); - choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8 FE")); - choices.insert (p_t (32790, "Samyang AF 14mm f/2.8 FE")); + choices.insert (p_t (32789, "Sony E 24mm f/1.8 ZA or Samyang AF 50mm f/1.4")); + choices.insert (p_t (32789, "Samyang AF 50mm f/1.4")); + choices.insert (p_t (32790, "Sony E 50mm f/1.8 OSS or Samyang AF 14mm f/2.8")); + choices.insert (p_t (32790, "Samyang AF 14mm f/2.8")); choices.insert (p_t (32791, "Sony E 16-70mm f/4 ZA OSS")); choices.insert (p_t (32792, "Sony E 10-18mm f/4 OSS")); choices.insert (p_t (32793, "Sony E PZ 16-50mm f/3.5-5.6 OSS")); - choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang AF 24mm f/2.8 FE")); - choices.insert (p_t (32794, "Samyang AF 24mm f/2.8 FE")); + choices.insert (p_t (32794, "Sony FE 35mm f/2.8 ZA or Samyang Lens")); + choices.insert (p_t (32794, "Samyang AF 24mm f/2.8")); + choices.insert (p_t (32794, "Samyang AF 35mm f/2.8")); choices.insert (p_t (32795, "Sony FE 24-70mm f/4 ZA OSS")); - choices.insert (p_t (32796, "Sony FE 85mm f/1.8")); + choices.insert (p_t (32796, "Sony FE 85mm f/1.8 or Viltrox PFU RBMH 85mm f/1.8")); + choices.insert (p_t (32796, "Viltrox PFU RBMH 85mm f/1.8")); choices.insert (p_t (32797, "Sony E 18-200mm f/3.5-6.3 OSS LE")); choices.insert (p_t (32798, "Sony E 20mm f/2.8")); choices.insert (p_t (32799, "Sony E 35mm f/1.8 OSS")); @@ -1245,7 +1083,8 @@ public: choices.insert (p_t (32820, "Sony E PZ 18-110mm f/4 G OSS")); choices.insert (p_t (32821, "Sony FE 24-70mm f/2.8 GM")); choices.insert (p_t (32822, "Sony FE 50mm f/1.4 ZA")); - choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM")); + choices.insert (p_t (32823, "Sony FE 85mm f/1.4 GM or Samyang AF 85mm f/1.4")); + choices.insert (p_t (32823, "Samyang AF 85mm f/1.4")); choices.insert (p_t (32824, "Sony FE 50mm f/1.8")); choices.insert (p_t (32826, "Sony FE 21mm f/2.8 (SEL28F20 + SEL075UWC)")); choices.insert (p_t (32827, "Sony FE 16mm f/3.5 Fisheye (SEL28F20 + SEL057FEC)")); @@ -1255,6 +1094,12 @@ public: choices.insert (p_t (32831, "Sony FE 16-35mm f/2.8 GM")); choices.insert (p_t (32848, "Sony FE 400mm f/2.8 GM OSS")); choices.insert (p_t (32849, "Sony E 18-135mm f/3.5-5.6 OSS")); + choices.insert (p_t (32850, "Sony FE 135mm f/1.8 GM")); + choices.insert (p_t (32851, "Sony FE 200-600mm f/5.6-6.3 G OSS")); + choices.insert (p_t (32852, "Sony FE 600mm f/4 GM OSS")); + choices.insert (p_t (32853, "Sony E 16-55mm f/2.8 G")); + choices.insert (p_t (32854, "Sony E 70-350mm f/4.5-6.3 G OSS")); + choices.insert (p_t (32858, "Sony FE 35mm f/1.8")); choices.insert (p_t (33072, "Sony FE 70-200mm f/2.8 GM OSS + 1.4X Teleconverter")); choices.insert (p_t (33073, "Sony FE 70-200mm f/2.8 GM OSS + 2X Teleconverter")); choices.insert (p_t (33076, "Sony FE 100mm f/2.8 STF GM OSS (macro mode)")); @@ -1262,6 +1107,10 @@ public: choices.insert (p_t (33078, "Sony FE 100-400mm f/4.5-5.6 GM OSS + 2X Teleconverter")); choices.insert (p_t (33079, "Sony FE 400mm f/2.8 GM OSS + 1.4X Teleconverter")); choices.insert (p_t (33080, "Sony FE 400mm f/2.8 GM OSS + 2X Teleconverter")); + choices.insert (p_t (33081, "Sony FE 200-600mm f/5.6-6.3 G OSS + 1.4X Teleconverter")); + choices.insert (p_t (33082, "Sony FE 200-600mm f/5.6-6.3 G OSS + 2X Teleconverter")); + choices.insert (p_t (33083, "Sony FE 600mm f/4 GM OSS + 1.4X Teleconverter")); + choices.insert (p_t (33084, "Sony FE 600mm f/4 GM OSS + 2X Teleconverter")); choices.insert (p_t (49201, "Zeiss Touit 12mm f/2.8")); choices.insert (p_t (49202, "Zeiss Touit 32mm f/1.8")); choices.insert (p_t (49203, "Zeiss Touit 50mm f/2.8 Macro")); @@ -1276,11 +1125,17 @@ public: choices.insert (p_t (49235, "Zeiss Loxia 85mm f/2.4")); choices.insert (p_t (49236, "Zeiss Loxia 25mm f/2.4")); choices.insert (p_t (49457, "Tamron 28-75mm f/2.8 Di III RXD")); + choices.insert (p_t (49458, "Tamron 17-28mm f/2.8 Di III RXD")); + choices.insert (p_t (49459, "Tamron 35mm f/2.8 Di III OSD M1:2")); + choices.insert (p_t (49460, "Tamron 24mm f/2.8 Di III OSD M1:2")); + choices.insert (p_t (49712, "Tokina FiRIN 20mm f/2 FE AF")); + choices.insert (p_t (49713, "Tokina FiRIN 100mm f/2.8 FE MACRO")); choices.insert (p_t (50480, "Sigma 30mm f/1.4 DC DN | C")); choices.insert (p_t (50481, "Sigma 50mm f/1.4 DG HSM | A")); choices.insert (p_t (50482, "Sigma 18-300mm f/3.5-6.3 DC MACRO OS HSM | C + MC-11")); choices.insert (p_t (50483, "Sigma 18-35mm f/1.8 DC HSM | A + MC-11")); choices.insert (p_t (50484, "Sigma 24-35mm f/2 DG HSM | A + MC-11")); + choices.insert (p_t (50485, "Sigma 24mm f/1.4 DG HSM | A + MC-11")); choices.insert (p_t (50486, "Sigma 150-600mm f/5-6.3 DG OS HSM | C + MC-11")); choices.insert (p_t (50487, "Sigma 20mm f/1.4 DG HSM | A + MC-11")); choices.insert (p_t (50488, "Sigma 35mm f/1.4 DG HSM | A")); @@ -1294,8 +1149,11 @@ public: choices.insert (p_t (50503, "Sigma 16mm f/1.4 DC DN | C")); choices.insert (p_t (50507, "Sigma 105mm f/1.4 DG HSM | A")); choices.insert (p_t (50508, "Sigma 56mm f/1.4 DC DN | C")); - choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S")); + choices.insert (p_t (50512, "Sigma 70-200mm f/2.8 DG OS HSM | S + MC-11")); choices.insert (p_t (50513, "Sigma 70mm f/2.8 DG MACRO | A")); + choices.insert (p_t (50514, "Sigma 45mm f/2.8 DG DN | C")); + choices.insert (p_t (50515, "Sigma 35mm f/1.2 DG DN | A")); + choices.insert (p_t (50516, "Sigma 14-24mm f/2.8 DG DN | A")); choices.insert (p_t (50992, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III")); choices.insert (p_t (50993, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6")); choices.insert (p_t (50994, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III")); @@ -1304,9 +1162,15 @@ public: choices.insert (p_t (50997, "Voigtlander NOKTON classic 35mm f/1.4")); choices.insert (p_t (50998, "Voigtlander MACRO APO-LANTHAR 110mm f/2.5")); choices.insert (p_t (50999, "Voigtlander COLOR-SKOPAR 21mm f/3.5 Aspherical")); - choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 FE or Samyang AF 35mm f/2.8 FE")); - choices.insert (p_t (51505, "Samyang AF 35mm f/2.8 FE")); + choices.insert (p_t (51000, "Voigtlander NOKTON 50mm f/1.2 Aspherical")); + choices.insert (p_t (51001, "Voigtlander NOKTON 21mm f/1.4 Aspherical")); + choices.insert (p_t (51002, "Voigtlander APO-LANTHAR 50mm f/2 Aspherical")); + choices.insert (p_t (51504, "Samyang AF 50mm f/1.4")); + choices.insert (p_t (51505, "Samyang AF 14mm f/2.8 or Samyang AF 35mm f/2.8")); + choices.insert (p_t (51505, "Samyang AF 35mm f/2.8")); choices.insert (p_t (51507, "Samyang AF 35mm f/1.4")); + choices.insert (p_t (51508, "Samyang AF 45mm f/1.8")); + choices.insert (p_t (51510, "Samyang AF 18mm f/2.8")); } std::string toString (const Tag* t) const override From 397099c543b47de748d9a12dacc31cb2ff7f535c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 26 Jan 2020 18:38:18 +0100 Subject: [PATCH 169/453] Fix segfault, fixes 5621 --- rtengine/capturesharpening.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 072935dc2..14e9b95e5 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -790,6 +790,10 @@ BENCHFUN } } + if (std::isnan(radius)) { + return; + } + if (showMask) { array2D& L = blue; // blue will be overridden anyway => we can use its buffer to store L #ifdef _OPENMP From 364fe35023874276b9572f58a62b9e62787bc981 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 27 Jan 2020 16:59:44 +0100 Subject: [PATCH 170/453] generateTranslationDiffs --- rtdata/languages/Catala | 3 +++ rtdata/languages/Chinese (Simplified) | 3 +++ rtdata/languages/Czech | 3 +++ rtdata/languages/Deutsch | 3 +++ rtdata/languages/English (UK) | 3 +++ rtdata/languages/English (US) | 3 +++ rtdata/languages/Espanol | 3 +++ rtdata/languages/Francais | 3 +++ rtdata/languages/Italiano | 3 +++ rtdata/languages/Japanese | 3 +++ rtdata/languages/Magyar | 3 +++ rtdata/languages/Nederlands | 3 +++ rtdata/languages/Polish | 3 +++ rtdata/languages/Portugues | 3 +++ rtdata/languages/Portugues (Brasil) | 3 +++ rtdata/languages/Russian | 3 +++ rtdata/languages/Serbian (Cyrilic Characters) | 3 +++ rtdata/languages/Slovenian | 3 +++ rtdata/languages/Swedish | 3 +++ 19 files changed, 57 insertions(+) diff --git a/rtdata/languages/Catala b/rtdata/languages/Catala index 31614c7b3..ac4c9565b 100644 --- a/rtdata/languages/Catala +++ b/rtdata/languages/Catala @@ -1354,6 +1354,7 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" @@ -1920,6 +1921,8 @@ ZOOMPANEL_ZOOMOUT;Allunya\nDrecera: - !TP_LABCURVE_CURVEEDITOR_LH;LH !TP_LABCURVE_CURVEEDITOR_LH_TOOLTIP;Luminance according to hue L=f(H) !TP_LABCURVE_CURVEEDITOR_LL_TOOLTIP;Luminance according to luminance L=f(L) +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Chinese (Simplified) b/rtdata/languages/Chinese (Simplified) index 5be2958e8..61cbd58ac 100644 --- a/rtdata/languages/Chinese (Simplified) +++ b/rtdata/languages/Chinese (Simplified) @@ -1401,6 +1401,7 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -1885,6 +1886,8 @@ ZOOMPANEL_ZOOMOUT;缩放拉远\n快捷键: - !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Czech b/rtdata/languages/Czech index 25bcf2820..19182a1e5 100644 --- a/rtdata/languages/Czech +++ b/rtdata/languages/Czech @@ -2335,6 +2335,7 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost +!HISTORY_MSG_TRANS_Method;Geometry - Method !PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !TP_DEHAZE_LUMINANCE;Luminance only @@ -2344,6 +2345,8 @@ ZOOMPANEL_ZOOMOUT;Oddálit\nZkratka: - !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_RED;Red ratio +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_PDSHARPENING_LABEL;Capture Sharpening !TP_SHARPENING_ITERCHECK;Auto limit iterations !TP_SHARPENING_RADIUS_BOOST;Corner radius boost diff --git a/rtdata/languages/Deutsch b/rtdata/languages/Deutsch index 592801054..99835591a 100644 --- a/rtdata/languages/Deutsch +++ b/rtdata/languages/Deutsch @@ -2392,4 +2392,7 @@ ZOOMPANEL_ZOOMOUT;Herauszoomen\nTaste: - !GENERAL_HELP;Help !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations +!HISTORY_MSG_TRANS_Method;Geometry - Method +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_SHARPENING_ITERCHECK;Auto limit iterations diff --git a/rtdata/languages/English (UK) b/rtdata/languages/English (UK) index e30425b68..2cb1d526d 100644 --- a/rtdata/languages/English (UK) +++ b/rtdata/languages/English (UK) @@ -876,6 +876,7 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !HISTORY_SNAPSHOT;Snapshot @@ -1792,6 +1793,8 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behaviour of "wh !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/English (US) b/rtdata/languages/English (US) index a1e0050a8..d8c497f16 100644 --- a/rtdata/languages/English (US) +++ b/rtdata/languages/English (US) @@ -788,6 +788,7 @@ !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !HISTORY_NEWSNAPSHOT;Add !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !HISTORY_SNAPSHOT;Snapshot @@ -1776,6 +1777,8 @@ !TP_LENSGEOM_AUTOCROP;Auto-Crop !TP_LENSGEOM_FILL;Auto-fill !TP_LENSGEOM_LABEL;Lens / Geometry +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Espanol b/rtdata/languages/Espanol index ee8b0d17d..c1468a6d9 100644 --- a/rtdata/languages/Espanol +++ b/rtdata/languages/Espanol @@ -2334,6 +2334,7 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius +!HISTORY_MSG_TRANS_Method;Geometry - Method !MAIN_FRAME_PLACES_DEL;Remove !MAIN_TAB_FAVORITES;Favorites !MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u @@ -2362,6 +2363,8 @@ ZOOMPANEL_ZOOMOUT;Reducir Zoom\nTecla de Atajo: - !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_RED;Red ratio +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Francais b/rtdata/languages/Francais index 9ecf43733..a98b6eded 100644 --- a/rtdata/languages/Francais +++ b/rtdata/languages/Francais @@ -2278,6 +2278,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost +!HISTORY_MSG_TRANS_Method;Geometry - Method !MAIN_FRAME_PLACES_DEL;Remove !PARTIALPASTE_FILMNEGATIVE;Film Negative !PROGRESSBAR_DECODING;Decoding... @@ -2295,6 +2296,8 @@ ZOOMPANEL_ZOOMOUT;Zoom Arrière\nRaccourci: - !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_RED;Red ratio +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Italiano b/rtdata/languages/Italiano index 0fd256d7c..340309b9f 100644 --- a/rtdata/languages/Italiano +++ b/rtdata/languages/Italiano @@ -1579,6 +1579,7 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -1946,6 +1947,8 @@ ZOOMPANEL_ZOOMOUT;Rimpicciolisci.\nScorciatoia: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Japanese b/rtdata/languages/Japanese index 588a817f2..b7c0b7e22 100644 --- a/rtdata/languages/Japanese +++ b/rtdata/languages/Japanese @@ -2314,3 +2314,6 @@ ZOOMPANEL_ZOOMOUT;ズームアウト\nショートカット: - !!!!!!!!!!!!!!!!!!!!!!!!! !GENERAL_HELP;Help +!HISTORY_MSG_TRANS_Method;Geometry - Method +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic diff --git a/rtdata/languages/Magyar b/rtdata/languages/Magyar index 4b6f2811b..7ecdc6f3b 100644 --- a/rtdata/languages/Magyar +++ b/rtdata/languages/Magyar @@ -1288,6 +1288,7 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" @@ -1912,6 +1913,8 @@ ZOOMPANEL_ZOOMOUT;Kicsinyítés - !TP_LABCURVE_LCREDSK_TIP;If enabled, the LC Curve affects only red and skin-tones.\nIf disabled, it applies to all tones. !TP_LABCURVE_RSTPROTECTION;Red and skin-tones protection !TP_LABCURVE_RSTPRO_TOOLTIP;Works on the Chromaticity slider and the CC curve. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Nederlands b/rtdata/languages/Nederlands index c230323f5..c43f6314e 100644 --- a/rtdata/languages/Nederlands +++ b/rtdata/languages/Nederlands @@ -2076,6 +2076,7 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -2256,6 +2257,8 @@ ZOOMPANEL_ZOOMOUT;Zoom uit\nSneltoets: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 4e5d950fc..b6d116479 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -1661,6 +1661,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -1967,6 +1968,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Portugues b/rtdata/languages/Portugues index 789d26cd6..0896214a0 100644 --- a/rtdata/languages/Portugues +++ b/rtdata/languages/Portugues @@ -2276,6 +2276,7 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost +!HISTORY_MSG_TRANS_Method;Geometry - Method !MAIN_FRAME_PLACES_DEL;Remove !PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode @@ -2294,6 +2295,8 @@ ZOOMPANEL_ZOOMOUT;Afastar\nAtalho: - !TP_FILMNEGATIVE_LABEL;Film Negative !TP_FILMNEGATIVE_PICK;Pick neutral spots !TP_FILMNEGATIVE_RED;Red ratio +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Portugues (Brasil) b/rtdata/languages/Portugues (Brasil) index d619356a9..85dbf377f 100644 --- a/rtdata/languages/Portugues (Brasil) +++ b/rtdata/languages/Portugues (Brasil) @@ -2283,6 +2283,7 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost +!HISTORY_MSG_TRANS_Method;Geometry - Method !PARTIALPASTE_FILMNEGATIVE;Film Negative !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PROGRESSBAR_DECODING;Decoding... @@ -2295,6 +2296,8 @@ ZOOMPANEL_ZOOMOUT;Menos Zoom\nAtalho: - !TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) !TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards. !TP_FILMNEGATIVE_LABEL;Film Negative +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !TP_LENSPROFILE_USE_HEADER;Correct !TP_PDSHARPENING_LABEL;Capture Sharpening diff --git a/rtdata/languages/Russian b/rtdata/languages/Russian index 4246ecbb6..27f4cff0c 100644 --- a/rtdata/languages/Russian +++ b/rtdata/languages/Russian @@ -1736,6 +1736,7 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius !HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold !HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -2014,6 +2015,8 @@ ZOOMPANEL_ZOOMOUT;Отдалить\nГорячая клавиша: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_MODE_HEADER;Lens Profile diff --git a/rtdata/languages/Serbian (Cyrilic Characters) b/rtdata/languages/Serbian (Cyrilic Characters) index 7fd0ca378..27da76acc 100644 --- a/rtdata/languages/Serbian (Cyrilic Characters) +++ b/rtdata/languages/Serbian (Cyrilic Characters) @@ -1554,6 +1554,7 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -1947,6 +1948,8 @@ ZOOMPANEL_ZOOMOUT;Умањује приказ слике - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected diff --git a/rtdata/languages/Slovenian b/rtdata/languages/Slovenian index 0afaa83e9..73c1bd2d1 100644 --- a/rtdata/languages/Slovenian +++ b/rtdata/languages/Slovenian @@ -2308,4 +2308,7 @@ ZOOMPANEL_ZOOMOUT;Zoom Out\nBližnjica: - !GENERAL_HELP;Help !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations +!HISTORY_MSG_TRANS_Method;Geometry - Method +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_SHARPENING_ITERCHECK;Auto limit iterations diff --git a/rtdata/languages/Swedish b/rtdata/languages/Swedish index 6dbea54d8..f54b4de30 100644 --- a/rtdata/languages/Swedish +++ b/rtdata/languages/Swedish @@ -1903,6 +1903,7 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor +!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_CUSTOM;Custom @@ -2150,6 +2151,8 @@ ZOOMPANEL_ZOOMOUT;Förminska.\nKortkommando: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. +!TP_LENSGEOM_LIN;Linear +!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected From 2cc89183df862c1744a6578032803737b64fe467 Mon Sep 17 00:00:00 2001 From: rfranke Date: Tue, 28 Jan 2020 22:02:13 +0100 Subject: [PATCH 171/453] Prepend DATADIR only once to LENSFUNDBDIR, see #5622 DATADIR is also prepended to a relative LENSFUNDBDIR in rtengine::init. This removal in CMakeLists.txt keeps the cmake argument LENSFUNDBDIR unmodified in the ~/.config/RawTherapee*/options file. This fixes a path like ../../Resources/../../Resources/./share/lensfun for LENSFUNDBDIR=./share/lensfun under macOS. --- CMakeLists.txt | 4 ---- 1 file changed, 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index bbc129eae..7c60fa37c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -252,10 +252,6 @@ if(NOT DEFINED APPDATADIR) endif() endif() -if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}") - set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}") -endif() - if(APPLE) if("${CODESIGNID}") set(CODESIGNID "${CODESIGNID}" CACHE STRING "Codesigning Identity") From 01053df85d5526966d88018c30d7bfe2ec12eb9a Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 28 Jan 2020 23:39:08 +0100 Subject: [PATCH 172/453] Updated url in lensfunDbDirectory comment --- rtengine/settings.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/settings.h b/rtengine/settings.h index f261444c8..f551d0f34 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -80,7 +80,7 @@ public: // bool bw_complementary; double level0_cbdl; double level123_cbdl; - Glib::ustring lensfunDbDirectory; ///< The directory containing the lensfun database. If empty, the system defaults will be used (as described in http://lensfun.sourceforge.net/manual/dbsearch.html) + Glib::ustring lensfunDbDirectory; // The directory containing the lensfun database. If empty, the system defaults will be used, as described in https://lensfun.github.io/manual/latest/dbsearch.html enum class ThumbnailInspectorMode { JPEG, From 093e873517a353f67d61f29a026aa3a5873ccd5f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 29 Jan 2020 12:49:44 +0100 Subject: [PATCH 173/453] Capture Sharpening: support radius up to 2.0 --- rtengine/capturesharpening.cc | 306 +++++++++++++++++++++++++++++++++- rtgui/pdsharpening.cc | 2 +- 2 files changed, 299 insertions(+), 9 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index 14e9b95e5..9b60694f2 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -33,6 +33,50 @@ namespace { +void compute13x13kernel(float sigma, float kernel[13][13]) { + + const double temp = -2.f * rtengine::SQR(sigma); + float sum = 0.f; + for (int i = -6; i <= 6; ++i) { + for (int j = -6; j <= 6; ++j) { + if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 2.0)) { + kernel[i + 6][j + 6] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp); + sum += kernel[i + 6][j + 6]; + } else { + kernel[i + 6][j + 6] = 0.f; + } + } + } + + for (int i = 0; i < 13; ++i) { + for (int j = 0; j < 13; ++j) { + kernel[i][j] /= sum; + } + } +} + +void compute9x9kernel(float sigma, float kernel[9][9]) { + + const double temp = -2.f * rtengine::SQR(sigma); + float sum = 0.f; + for (int i = -4; i <= 4; ++i) { + for (int j = -4; j <= 4; ++j) { + if((rtengine::SQR(i) + rtengine::SQR(j)) <= rtengine::SQR(3.0 * 1.5)) { + kernel[i + 4][j + 4] = std::exp((rtengine::SQR(i) + rtengine::SQR(j)) / temp); + sum += kernel[i + 4][j + 4]; + } else { + kernel[i + 4][j + 4] = 0.f; + } + } + } + + for (int i = 0; i < 9; ++i) { + for (int j = 0; j < 9; ++j) { + kernel[i][j] /= sum; + } + } +} + void compute7x7kernel(float sigma, float kernel[7][7]) { const double temp = -2.f * rtengine::SQR(sigma); @@ -183,6 +227,105 @@ void gauss7x7div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT di } } +void gauss9x9div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[9][9]) +{ + + const float c42 = kernel[0][2]; + const float c41 = kernel[0][3]; + const float c40 = kernel[0][4]; + const float c33 = kernel[1][1]; + const float c32 = kernel[1][2]; + const float c31 = kernel[1][3]; + const float c30 = kernel[1][4]; + const float c22 = kernel[2][2]; + const float c21 = kernel[2][3]; + const float c20 = kernel[2][4]; + const float c11 = kernel[3][3]; + const float c10 = kernel[3][4]; + const float c00 = kernel[4][4]; + + for (int i = 4; i < tileSize - 4; ++i) { + // I tried hand written SSE code but gcc vectorizes better +#if defined(__clang__) + #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep +#endif + for (int j = 4; j < tileSize - 4; ++j) { + const float val = c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) + + c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) + + c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) + + c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) + + c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) + + c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + + c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + + c00 * src[i][j]; + + dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f); + } + } +} + +void gauss13x13div(float** RESTRICT src, float** RESTRICT dst, float** RESTRICT divBuffer, const int tileSize, const float kernel[13][13]) +{ + const float c60 = kernel[0][6]; + const float c53 = kernel[1][3]; + const float c52 = kernel[1][4]; + const float c51 = kernel[1][5]; + const float c50 = kernel[1][6]; + const float c44 = kernel[2][2]; + const float c42 = kernel[2][4]; + const float c41 = kernel[2][5]; + const float c40 = kernel[2][6]; + const float c33 = kernel[3][3]; + const float c32 = kernel[3][4]; + const float c31 = kernel[3][5]; + const float c30 = kernel[3][6]; + const float c22 = kernel[4][4]; + const float c21 = kernel[4][5]; + const float c20 = kernel[4][6]; + const float c11 = kernel[5][5]; + const float c10 = kernel[5][6]; + const float c00 = kernel[6][6]; + + for (int i = 6; i < tileSize - 6; ++i) { + // I tried hand written SSE code but gcc vectorizes better +#if defined(__clang__) + #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep +#endif + for (int j = 6; j < tileSize - 6; ++j) { + const float val = c60 * (src[i - 6][j] + src[i][j - 6] + src[i][j + 6] + src[i + 6][j]) + + c53 * ((src[i - 5][j - 3] + src[i - 5][j + 3]) + (src[i - 3][j - 5] + src[i - 3][j + 5]) + (src[i + 3][j - 5] + src[i + 3][j + 5]) + (src[i + 5][j - 3] + src[i + 5][j + 3])) + + c52 * ((src[i - 5][j - 2] + src[i - 5][j + 2]) + (src[i - 2][j - 5] + src[i - 2][j + 5]) + (src[i + 2][j - 5] + src[i + 2][j + 5]) + (src[i + 5][j - 2] + src[i + 5][j + 2])) + + c51 * ((src[i - 5][j - 1] + src[i - 5][j + 1]) + (src[i - 1][j - 5] + src[i - 1][j + 5]) + (src[i + 1][j - 5] + src[i + 1][j + 5]) + (src[i + 5][j - 1] + src[i + 5][j + 1])) + + c50 * ((src[i - 5][j] + src[i][j - 5] + src[i][j + 5] + src[i + 5][j]) + ((src[i - 4][j - 3] + src[i - 4][j + 3]) + (src[i - 3][j - 4] + src[i - 3][j + 4]) + (src[i + 3][j - 4] + src[i + 3][j + 4]) + (src[i + 4][j - 3] + src[i + 4][j + 3]))) + + c44 * (src[i - 4][j - 4] + src[i - 4][j + 4] + src[i + 4][j - 4] + src[i + 4][j + 4]) + + c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) + + c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) + + c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) + + c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) + + c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) + + c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + + c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + + c00 * src[i][j]; + + dst[i][j] = divBuffer[i][j] / std::max(val, 0.00001f); + } + } +} + void gauss3x3mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[3][3]) { const float c11 = kernel[0][0]; @@ -267,6 +410,105 @@ void gauss7x7mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize } } +void gauss9x9mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[9][9]) +{ + + const float c42 = kernel[0][2]; + const float c41 = kernel[0][3]; + const float c40 = kernel[0][4]; + const float c33 = kernel[1][1]; + const float c32 = kernel[1][2]; + const float c31 = kernel[1][3]; + const float c30 = kernel[1][4]; + const float c22 = kernel[2][2]; + const float c21 = kernel[2][3]; + const float c20 = kernel[2][4]; + const float c11 = kernel[3][3]; + const float c10 = kernel[3][4]; + const float c00 = kernel[4][4]; + + for (int i = 4; i < tileSize - 4; ++i) { + // I tried hand written SSE code but gcc vectorizes better +#if defined(__clang__) + #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep +#endif + for (int j = 4; j < tileSize - 4; ++j) { + const float val = c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) + + c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) + + c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) + + c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) + + c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) + + c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + + c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + + c00 * src[i][j]; + dst[i][j] *= val; + } + } +} + +void gauss13x13mult(float** RESTRICT src, float** RESTRICT dst, const int tileSize, const float kernel[13][13]) +{ + + const float c60 = kernel[0][6]; + const float c53 = kernel[1][3]; + const float c52 = kernel[1][4]; + const float c51 = kernel[1][5]; + const float c50 = kernel[1][6]; + const float c44 = kernel[2][2]; + const float c42 = kernel[2][4]; + const float c41 = kernel[2][5]; + const float c40 = kernel[2][6]; + const float c33 = kernel[3][3]; + const float c32 = kernel[3][4]; + const float c31 = kernel[3][5]; + const float c30 = kernel[3][6]; + const float c22 = kernel[4][4]; + const float c21 = kernel[4][5]; + const float c20 = kernel[4][6]; + const float c11 = kernel[5][5]; + const float c10 = kernel[5][6]; + const float c00 = kernel[6][6]; + + for (int i = 6; i < tileSize - 6; ++i) { + // I tried hand written SSE code but gcc vectorizes better +#if defined(__clang__) + #pragma clang loop vectorize(assume_safety) +#elif defined(__GNUC__) + #pragma GCC ivdep +#endif + for (int j = 6; j < tileSize - 6; ++j) { + const float val = c60 * (src[i - 6][j] + src[i][j - 6] + src[i][j + 6] + src[i + 6][j]) + + c53 * ((src[i - 5][j - 3] + src[i - 5][j + 3]) + (src[i - 3][j - 5] + src[i - 3][j + 5]) + (src[i + 3][j - 5] + src[i + 3][j + 5]) + (src[i + 5][j - 3] + src[i + 5][j + 3])) + + c52 * ((src[i - 5][j - 2] + src[i - 5][j + 2]) + (src[i - 2][j - 5] + src[i - 2][j + 5]) + (src[i + 2][j - 5] + src[i + 2][j + 5]) + (src[i + 5][j - 2] + src[i + 5][j + 2])) + + c51 * ((src[i - 5][j - 1] + src[i - 5][j + 1]) + (src[i - 1][j - 5] + src[i - 1][j + 5]) + (src[i + 1][j - 5] + src[i + 1][j + 5]) + (src[i + 5][j - 1] + src[i + 5][j + 1])) + + c50 * ((src[i - 5][j] + src[i][j - 5] + src[i][j + 5] + src[i + 5][j]) + ((src[i - 4][j - 3] + src[i - 4][j + 3]) + (src[i - 3][j - 4] + src[i - 3][j + 4]) + (src[i + 3][j - 4] + src[i + 3][j + 4]) + (src[i + 4][j - 3] + src[i + 4][j + 3]))) + + c44 * (src[i - 4][j - 4] + src[i - 4][j + 4] + src[i + 4][j - 4] + src[i + 4][j + 4]) + + c42 * ((src[i - 4][j - 2] + src[i - 4][j + 2]) + (src[i - 2][j - 4] + src[i - 2][j + 4]) + (src[i + 2][j - 4] + src[i + 2][j + 4]) + (src[i + 4][j - 2] + src[i + 4][j + 2])) + + c41 * ((src[i - 4][j - 1] + src[i - 4][j + 1]) + (src[i - 1][j - 4] + src[i - 1][j + 4]) + (src[i + 1][j - 4] + src[i + 1][j + 4]) + (src[i + 4][j - 1] + src[i + 4][j + 1])) + + c40 * (src[i - 4][j] + src[i][j - 4] + src[i][j + 4] + src[i + 4][j]) + + c33 * (src[i - 3][j - 3] + src[i - 3][j + 3] + src[i + 3][j - 3] + src[i + 3][j + 3]) + + c32 * ((src[i - 3][j - 2] + src[i - 3][j + 2]) + (src[i - 2][j - 3] + src[i - 2][j + 3]) + (src[i + 2][j - 3] + src[i + 2][j + 3]) + (src[i + 3][j - 2] + src[i + 3][j + 2])) + + c31 * ((src[i - 3][j - 1] + src[i - 3][j + 1]) + (src[i - 1][j - 3] + src[i - 1][j + 3]) + (src[i + 1][j - 3] + src[i + 1][j + 3]) + (src[i + 3][j - 1] + src[i + 3][j + 1])) + + c30 * (src[i - 3][j] + src[i][j - 3] + src[i][j + 3] + src[i + 3][j]) + + c22 * (src[i - 2][j - 2] + src[i - 2][j + 2] + src[i + 2][j - 2] + src[i + 2][j + 2]) + + c21 * ((src[i - 2][j - 1] + src[i - 2][j + 1]) + (src[i - 1][j - 2] + src[i - 1][j + 2]) + (src[i + 1][j - 2] + src[i + 1][j + 2]) + (src[i + 2][j - 1] + src[i + 2][j + 1])) + + c20 * (src[i - 2][j] + src[i][j - 2] + src[i][j + 2] + src[i + 2][j]) + + c11 * (src[i - 1][j - 1] + src[i - 1][j + 1] + src[i + 1][j - 1] + src[i + 1][j + 1]) + + c10 * (src[i - 1][j] + src[i][j - 1] + src[i][j + 1] + src[i + 1][j]) + + c00 * src[i][j]; + + dst[i][j] *= val; + } + } +} + void buildClipMaskBayer(const float * const *rawData, int W, int H, float** clipMask, const float whites[2][2]) { @@ -522,8 +764,12 @@ bool checkForStop(float** tmpIThr, float** iterCheck, int fullTileSize, int bord void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal) { BENCHFUN + const bool is9x9 = (sigma <= 1.50 && sigmaCornerOffset == 0.0); + const bool is7x7 = (sigma <= 1.15 && sigmaCornerOffset == 0.0); const bool is5x5 = (sigma <= 0.84 && sigmaCornerOffset == 0.0); const bool is3x3 = (sigma < 0.6 && sigmaCornerOffset == 0.0); + float kernel13[13][13]; + float kernel9[9][9]; float kernel7[7][7]; float kernel5[5][5]; float kernel3[3][3]; @@ -531,14 +777,18 @@ BENCHFUN compute3x3kernel(sigma, kernel3); } else if (is5x5) { compute5x5kernel(sigma, kernel5); - } else { + } else if (is7x7) { compute7x7kernel(sigma, kernel7); + } else if (is9x9) { + compute9x9kernel(sigma, kernel9); + } else { + compute13x13kernel(sigma, kernel13); } constexpr int tileSize = 32; - const int border = iterations <= 30 ? 5 : 7; + const int border = (is3x3 || is5x5 || is7x7) ? iterations <= 30 ? 5 : 7 : 8; const int fullTileSize = tileSize + 2 * border; - const float cornerRadius = std::min(1.15f, sigma + sigmaCornerOffset); + const float cornerRadius = std::min(2.f, sigma + sigmaCornerOffset); const float cornerDistance = sqrt(rtengine::SQR(W * 0.5f) + rtengine::SQR(H * 0.5f)); const float distanceFactor = (cornerRadius - sigma) / cornerDistance; @@ -637,12 +887,52 @@ BENCHFUN break; } } + } else if (is7x7) { + for (int k = 0; k < iterations; ++k) { + // apply 5x5 gaussian blur and divide luminance by result of gaussian blur + gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7); + gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; + } + } + } else if (is9x9) { + for (int k = 0; k < iterations; ++k) { + // apply 5x5 gaussian blur and divide luminance by result of gaussian blur + gauss9x9div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel9); + gauss9x9mult(tmpThr, tmpIThr, fullTileSize, kernel9); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; + } + } } else { if (sigmaCornerOffset != 0.0) { const float distance = sqrt(rtengine::SQR(i + tileSize / 2 - H / 2) + rtengine::SQR(j + tileSize / 2 - W / 2)); const float sigmaTile = static_cast(sigma) + distanceFactor * distance; if (sigmaTile >= 0.4f) { - if (sigmaTile > 0.84) { // have to use 7x7 kernel + if (sigmaTile > 1.50) { // have to use 13x13 kernel + float lkernel13[13][13]; + compute13x13kernel(static_cast(sigma) + distanceFactor * distance, lkernel13); + for (int k = 0; k < iterations; ++k) { + // apply 13x13 gaussian blur and divide luminance by result of gaussian blur + gauss13x13div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel13); + gauss13x13mult(tmpThr, tmpIThr, fullTileSize, lkernel13); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; + } + } + } else if (sigmaTile > 1.15) { // have to use 9x9 kernel + float lkernel9[9][9]; + compute9x9kernel(static_cast(sigma) + distanceFactor * distance, lkernel9); + for (int k = 0; k < iterations; ++k) { + // apply 9x9 gaussian blur and divide luminance by result of gaussian blur + gauss9x9div(tmpIThr, tmpThr, lumThr, fullTileSize, lkernel9); + gauss9x9mult(tmpThr, tmpIThr, fullTileSize, lkernel9); + if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { + break; + } + } + } else if (sigmaTile > 0.84) { // have to use 7x7 kernel float lkernel7[7][7]; compute7x7kernel(static_cast(sigma) + distanceFactor * distance, lkernel7); for (int k = 0; k < iterations; ++k) { @@ -668,9 +958,9 @@ BENCHFUN } } else { for (int k = 0; k < iterations; ++k) { - // apply 7x7 gaussian blur and divide luminance by result of gaussian blur - gauss7x7div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel7); - gauss7x7mult(tmpThr, tmpIThr, fullTileSize, kernel7); + // apply 13x13 gaussian blur and divide luminance by result of gaussian blur + gauss13x13div(tmpIThr, tmpThr, lumThr, fullTileSize, kernel13); + gauss13x13mult(tmpThr, tmpIThr, fullTileSize, kernel13); if (checkIterStop && k < iterations - 1 && checkForStop(tmpIThr, iterCheck, fullTileSize, border)) { break; } @@ -741,7 +1031,7 @@ BENCHFUN array2D clipMask(W, H); constexpr float clipLimit = 0.95f; - constexpr float maxSigma = 1.15f; + constexpr float maxSigma = 2.f; if (getSensorType() == ST_BAYER) { const float whites[2][2] = { diff --git a/rtgui/pdsharpening.cc b/rtgui/pdsharpening.cc index 18fa7aa2a..8bbf19620 100644 --- a/rtgui/pdsharpening.cc +++ b/rtgui/pdsharpening.cc @@ -58,7 +58,7 @@ PdSharpening::PdSharpening() : pack_start(*hb); Gtk::VBox* rld = Gtk::manage(new Gtk::VBox()); - dradius = Gtk::manage(new Adjuster(M("TP_SHARPENING_RADIUS"), 0.4, 1.15, 0.01, 0.75)); + dradius = Gtk::manage(new Adjuster(M("TP_SHARPENING_RADIUS"), 0.4, 2.0, 0.01, 0.75)); dradius->addAutoButton(); dradius->setAutoValue(true); dradiusOffset = Gtk::manage(new Adjuster(M("TP_SHARPENING_RADIUS_BOOST"), -0.5, 0.5, 0.01, 0.0)); From 5a5856fa1d59b1e9053a708674ea2551c681babf Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Fri, 31 Jan 2020 01:26:27 +0100 Subject: [PATCH 174/453] Date bump --- LICENSE.txt | 2 +- header | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/LICENSE.txt b/LICENSE.txt index 653f0ac50..2ba8256ab 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -1,6 +1,6 @@ RawTherapee - A powerful, cross-platform raw image processing program. Copyright (C) 2004-2012 Gabor Horvath - Copyright (C) 2010-2019 RawTherapee development team. + Copyright (C) 2010-2020 RawTherapee development team. RawTherapee is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/header b/header index 966153c0e..a98fbbac1 100644 --- a/header +++ b/header @@ -7,7 +7,7 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * RawTherapee is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the From 8970da1c2c673d0a5562d9de5189b9cf94c5e4c2 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 1 Feb 2020 08:20:58 -0800 Subject: [PATCH 175/453] macOS: preserve binary resources / codesign frmwks Copies libraries using `ditto` Codesigns each in Contents/Framework --- tools/osx/macosx_bundle.sh | 83 +++++++++++++++++++++----------------- 1 file changed, 47 insertions(+), 36 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index cb8839455..e4476c5e7 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -76,10 +76,7 @@ if [[ -z "${MINIMUM_SYSTEM_VERSION}" ]]; then MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" fi -case ${PROC_BIT_DEPTH} in - 64) arch=x86_64;; - 32) arch=i386;; -esac +arch=x86_64 cat <<__EOS__ PROJECT_NAME: ${PROJECT_NAME} @@ -131,8 +128,8 @@ msg "Copying configuration files from ${GTK_PREFIX}:" install -d "${ETC}/gtk-3.0" # Make Frameworks folder flat -mv "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" -mv "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" +ditto "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" +ditto "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" # the print*.so lead to errors when running gtk-query-immodules-3.0, just seeing what the app does without, since they are not in immodules # and including them leads to errors and a completely empty gtk.immodules file # mv "${LIB}"/gtk-3.0/3*/printbackends/*.so "${LIB}" @@ -144,11 +141,11 @@ rm -r "${LIB}"/gdk-pixbuf-2.0 sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" mkdir -p ${RESOURCES}/share/glib-2.0 -cp -pRL {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas "${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" msg "Copying shared files from ${GTK_PREFIX}:" -cp -pRL {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime # GTK3 themes ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css @@ -157,33 +154,33 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk- iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} - cp ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} + ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} done ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" -# Copy libjpeg-turbo into the app bundle -cp ${LOCAL_PREFIX}/local/lib/libjpeg.*.dylib "${CONTENTS}/Frameworks" +# Copy libjpeg-turbo ("62") into the app bundle +ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" # Copy libexpat into the app bundle (which is keg-only) -if [[ -d /usr/local/Cellar/expat ]]; then cp /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else cp "${EXPATLIB}" "${CONTENTS}/Frameworks"; fi +if [[ -d /usr/local/Cellar/expat ]]; then ditto /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else ditto "${EXPATLIB}" "${CONTENTS}/Frameworks"; fi # Copy libz into the app bundle -cp /usr/lib/libz.1.dylib "${CONTENTS}/Frameworks" +ditto ${LOCAL_PREFIX}/local/lib/libz.1.dylib "${CONTENTS}/Frameworks" -# Copy libtiff into the app bundle -cp ${LOCAL_PREFIX}/local/lib/libtiff.5.dylib "${CONTENTS}/Frameworks" +# Copy libtiff 5 into the app bundle +ditto ${LOCAL_PREFIX}/local/lib/libtiff.5.dylib "${CONTENTS}/Frameworks/libtiff.5.dylib" # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" -cp ${LOCAL_PREFIX}/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" +ditto ${LOCAL_PREFIX}/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -cp ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" +ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" # Copy libomp to Frameworks -cp ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" +ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do @@ -198,9 +195,7 @@ find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib } | bash -v done -msg "Registering @loader_path into the executable:" -echo " install_name_tool -add_rpath @executable_path/../../Frameworks '${EXECUTABLE}'" | bash -v -echo " install_name_tool -add_rpath @loader_path/../Frameworks '${EXECUTABLE}-cli'" | bash -v + msg "Installing required application bundle files:" PROJECT_SOURCE_DATA_DIR="${PROJECT_SOURCE_DIR}/tools/osx" @@ -208,34 +203,46 @@ ditto "${PROJECT_SOURCE_DIR}/build/Resources" "${RESOURCES}" # Executable loader # Note: executable is renamed to 'rawtherapee-bin'. mkdir "${MACOS}/bin" -mv "${MACOS}/rawtherapee" "${MACOS}/bin/rawtherapee-bin" +ditto "${MACOS}/rawtherapee" "${MACOS}/bin/rawtherapee-bin" +rm "${MACOS}/rawtherappe" install -m 0755 "${PROJECT_SOURCE_DATA_DIR}/executable_loader.in" "${MACOS}/rawtherapee" # App bundle resources -cp "${PROJECT_SOURCE_DATA_DIR}/"{rawtherapee,profile}.icns "${RESOURCES}" -cp "${PROJECT_SOURCE_DATA_DIR}/PkgInfo" "${CONTENTS}" +ditto "${PROJECT_SOURCE_DATA_DIR}/"{rawtherapee,profile}.icns "${RESOURCES}" +ditto "${PROJECT_SOURCE_DATA_DIR}/PkgInfo" "${CONTENTS}" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist.in" "${CONTENTS}/Info.plist" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist-bin.in" "${CONTENTS}/MacOS/bin/Info.plist" sed -i "" -e "s|@version@|${PROJECT_FULL_VERSION}| s|@shortVersion@|${PROJECT_VERSION}| s|@arch@|${arch}|" \ "${CONTENTS}/Info.plist" -plutil -convert binary1 "${CONTENTS}/Info.plist" -plutil -convert binary1 "${CONTENTS}/MacOS/bin/Info.plist" +plutil -convert xml1 "${CONTENTS}/Info.plist" +plutil -convert xml1 "${CONTENTS}/MacOS/bin/Info.plist" +update-mime-database -V "${CONTENTS}/Resources/share/mime" + +msg "Registering @rpath into the executable:" +echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${MACOS}/bin/rawtherapee-bin'" | bash -v +echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v + # Sign the app CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" if ! test -z "$CODESIGNID" ; then install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/Entitlements.plist" -plutil -convert binary1 "${CONTENTS}/Entitlements.plist" +plutil -convert xml1 "${CONTENTS}/Entitlements.plist" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt-bin.entitlements" "${CONTENTS}/MacOS/bin/Entitlements.plist" -plutil -convert binary1 "${CONTENTS}/MacOS/bin/Entitlements.plist" -codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" --timestamp -o runtime --entitlements "${APP}/Contents/MacOS/bin/Entitlements.plist" "${APP}/Contents/MacOS/bin/rawtherapee-bin" -codesign --deep --preserve-metadata=identifier,entitlements,runtime --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee" --timestamp -o runtime --entitlements "${APP}/Contents/Entitlements.plist" "${APP}" - spctl -a -vvvv "${APP}" +plutil -convert xml1 "${CONTENTS}/MacOS/bin/Entitlements.plist" +codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" -o runtime --timestamp --entitlements "${APP}/Contents/MacOS/bin/Entitlements.plist" "${APP}/Contents/MacOS/bin/rawtherapee-bin" +for frameworklibs in ${CONTENTS}/Frameworks/* ; do + codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" -o runtime --timestamp "${frameworklibs}" +done +codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee" -o runtime --entitlements "${CONTENTS}/Entitlements.plist" "${APP}" +spctl -a -vvvv "${APP}" fi # Notarize the app + NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" if ! test -z "$NOTARY" ; then + msg "Notarizing the application:" ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.rawtherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` echo "Result= $uuid" # Display identifier string @@ -264,8 +271,8 @@ function CreateDmg { local srcDir="$(mktemp -dt $$)" msg "Preparing disk image sources at ${srcDir}:" - cp -R "${APP}" "${srcDir}" - cp AboutThisBuild.txt "${srcDir}" + ditto -R "${APP}" "${srcDir}" + ditto AboutThisBuild.txt "${srcDir}" ln -s /Applications "${srcDir}" # Web bookmarks @@ -292,7 +299,9 @@ function CreateDmg { fi # Notarize the dmg - if ! test -z "$NOTARY" ; then + + if ! test -z "$NOTARY" ; then + msg "Notarizing the dmg:" zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` echo "dmg Result= $uuid" # Display identifier string @@ -316,9 +325,11 @@ function CreateDmg { fi done fi + + +# Zip disk image for redistribution + msg "Zipping disk image for redistribution:" - - # Zip disk image for redistribution zip "${dmg_name}.zip" "${dmg_name}.dmg" AboutThisBuild.txt rm "${dmg_name}.dmg" From 91259a23283e5e79370722e33ef734411517a913 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 1 Feb 2020 10:15:42 -0800 Subject: [PATCH 176/453] macOS: Fix location of pixbuf loaders --- tools/osx/macosx_bundle.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index e4476c5e7..a2df9eba2 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -118,7 +118,7 @@ msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" msg "Copying library modules from ${GTK_PREFIX}:" -ditto --arch "${arch}" {"${GDK_PREFIX}/lib","${LIB}"}/gdk-pixbuf-2.0 +ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gdk-pixbuf-2.0 ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gtk-3.0 msg "Removing static libraries and cache files:" @@ -136,7 +136,7 @@ ditto "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 -"${GDK_PREFIX}"/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders +"${GTK_PREFIX}"/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders "${GTK_PREFIX}"/bin/gtk-query-immodules-3.0 "${LIB}"/im*.so > "${ETC}"/gtk-3.0/gtk.immodules sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" From 07a6ec5f10892f91afdd9f409bc753f5296b9f3f Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 1 Feb 2020 15:44:05 -0800 Subject: [PATCH 177/453] macOS: cleanup rpaths, gdk adjustments --- tools/osx/macosx_bundle.sh | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index a2df9eba2..36b650f3b 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -99,7 +99,7 @@ MACOS="${CONTENTS}/MacOS" LIB="${CONTENTS}/Frameworks" ETC="${RESOURCES}/etc" EXECUTABLE="${MACOS}/rawtherapee" -GDK_PREFIX="${LOCAL_PREFIX}/local/opt/gdk-pixbuf" +GDK_PREFIX="${LOCAL_PREFIX}/local/" msg "Removing old files:" rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" @@ -129,16 +129,14 @@ install -d "${ETC}/gtk-3.0" # Make Frameworks folder flat ditto "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" -ditto "${LIB}"/gtk-3.0/3*/immodules/*.so "${LIB}" -# the print*.so lead to errors when running gtk-query-immodules-3.0, just seeing what the app does without, since they are not in immodules -# and including them leads to errors and a completely empty gtk.immodules file -# mv "${LIB}"/gtk-3.0/3*/printbackends/*.so "${LIB}" +ditto "${LIB}"/gtk-3.0/3*/immodules/*.{dylib,so} "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 -"${GTK_PREFIX}"/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders -"${GTK_PREFIX}"/bin/gtk-query-immodules-3.0 "${LIB}"/im*.so > "${ETC}"/gtk-3.0/gtk.immodules +"${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders +"${LOCAL_PREFIX}"/local/bin/gtk-query-immodules-3.0 "${LIB}"/im-* > "${ETC}"/gtk-3.0/gtk.immodules sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" +sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" mkdir -p ${RESOURCES}/share/glib-2.0 ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas @@ -158,6 +156,7 @@ for f in "${iconfolders[@]}"; do done ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" +ditto "${LOCAL_PREFIX}/local/share/icons/hicolor" "${RESOURCES}/share/icons/hicolor" # Copy libjpeg-turbo ("62") into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" @@ -222,6 +221,10 @@ update-mime-database -V "${CONTENTS}/Resources/share/mime" msg "Registering @rpath into the executable:" echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${MACOS}/bin/rawtherapee-bin'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v +for frameworklibs in ${CONTENTS}/Frameworks/* ; do + echo " install_name_tool -delete_rpath /opt/local/lib '${frameworklibs}'" | bash -v + echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v +done # Sign the app CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" From 2b307218be95671c554510c120ed8919859c329e Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 1 Feb 2020 15:45:23 -0800 Subject: [PATCH 178/453] macOS: exec loader, harden app to /Applications --- tools/osx/executable_loader.in | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in index 429173d8e..a10e88265 100644 --- a/tools/osx/executable_loader.in +++ b/tools/osx/executable_loader.in @@ -1,19 +1,22 @@ #!/bin/sh +# GIMP has this next line regarding raising the open-number-of-files limit: +ulimit -n 7000 + cd "$(dirname "$0")" || exit 1 cwd="$(pwd)" -app="${cwd%/Contents/*}" +app="/Applications/RawTherapee.app" lib="${app}/Contents/Frameworks" resources="${app}/Contents/Resources" -etc="${resources}"/etc +etc="${resources}/etc" export XDG_DATA_DIRS="${resources}/share" export DYLD_LIBRARY_PATH="${lib}" export GTK_PATH="${lib}/gtk-3.0/3.0.0" export XDG_DATA_HOME="${resources}/share" export GSETTINGS_SCHEMA_DIR="${resources}/share/glib-2.0/schemas" export GDK_PIXBUF_MODULE_FILE="${etc}/gtk-3.0/gdk-pixbuf.loaders" -export GDK_PIXBUF_MODULEDIR="${lib}/gdk-pixbuf-2.0/2.10.0/loaders" +export GDK_PIXBUF_MODULEDIR="${lib}" export RT_SETTINGS="${HOME}/Library/Application Support/RawTherapee/config" export RT_CACHE="${HOME}/Library/Application Support/RawTherapee/cache" From 081c4eedeebf2ba620d316cafed6dbad5c3915be Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 2 Feb 2020 01:01:51 -0800 Subject: [PATCH 179/453] macOS: use ${app} to call binary from exec-loader --- tools/osx/executable_loader.in | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in index a10e88265..8e9a9b230 100644 --- a/tools/osx/executable_loader.in +++ b/tools/osx/executable_loader.in @@ -1,6 +1,6 @@ #!/bin/sh -# GIMP has this next line regarding raising the open-number-of-files limit: +# GIMP has this next line regarding raising the number-of-open-files limit: ulimit -n 7000 cd "$(dirname "$0")" || exit 1 @@ -30,4 +30,4 @@ esac AppleLocale=`defaults read -g AppleLocale` export LANG=${AppleLocale%@*}.UTF-8 -exec "${cwd}/bin/rawtherapee-bin" "$@" +exec "${app}/Contents/MacOS/bin/rawtherapee-bin" "$@" From 10b6171f6323ca06743a9c0864b10a2cb03bb6c1 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 2 Feb 2020 01:10:45 -0800 Subject: [PATCH 180/453] macOS: fix a ditto statement --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 36b650f3b..02a85564e 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -274,7 +274,7 @@ function CreateDmg { local srcDir="$(mktemp -dt $$)" msg "Preparing disk image sources at ${srcDir}:" - ditto -R "${APP}" "${srcDir}" + ditto "${APP}" "${srcDir}" ditto AboutThisBuild.txt "${srcDir}" ln -s /Applications "${srcDir}" From 49e93d27b31fab18f9e47867c6ccfc9bff53a766 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 2 Feb 2020 01:45:38 -0800 Subject: [PATCH 181/453] macOS: use DYLD_FALLBACK_LIBRARY_PATH --- tools/osx/executable_loader.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in index 8e9a9b230..5ee609043 100644 --- a/tools/osx/executable_loader.in +++ b/tools/osx/executable_loader.in @@ -11,7 +11,7 @@ lib="${app}/Contents/Frameworks" resources="${app}/Contents/Resources" etc="${resources}/etc" export XDG_DATA_DIRS="${resources}/share" -export DYLD_LIBRARY_PATH="${lib}" +export DYLD_FALLBACK_LIBRARY_PATH="${lib}" export GTK_PATH="${lib}/gtk-3.0/3.0.0" export XDG_DATA_HOME="${resources}/share" export GSETTINGS_SCHEMA_DIR="${resources}/share/glib-2.0/schemas" From 17b7783e727930f74abeffc3b997f58cae0f28d9 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 2 Feb 2020 04:25:48 -0800 Subject: [PATCH 182/453] macOS: correct copy bundle to temp dir for dmg. --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 02a85564e..44f351080 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -274,7 +274,7 @@ function CreateDmg { local srcDir="$(mktemp -dt $$)" msg "Preparing disk image sources at ${srcDir}:" - ditto "${APP}" "${srcDir}" + cp -R "${APP}" "${srcDir}" ditto AboutThisBuild.txt "${srcDir}" ln -s /Applications "${srcDir}" From abe1e3bb2fec96fd8709a655c3c26255f3510361 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Feb 2020 14:05:41 +0100 Subject: [PATCH 183/453] Polish translation updated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated by Bartłomiej Wiśniowski / bwisn Closes #5630 --- rtdata/languages/Polish | 375 ++++++++++++++++++++-------------------- 1 file changed, 188 insertions(+), 187 deletions(-) diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index b6d116479..3c4607cf7 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -7,6 +7,7 @@ #07 2012-04-02 DrSlony #08 2013-05-21 DrSlony #09 2014-10-16 DrSlony +#10 2020-02-02 Bartłomiej Wiśniowski ABOUT_TAB_BUILD;Wersja ABOUT_TAB_CREDITS;Zasługi @@ -14,6 +15,7 @@ ABOUT_TAB_LICENSE;Licencja ABOUT_TAB_RELEASENOTES;Notatki eksploatacyjne ABOUT_TAB_SPLASH;Ekran powitalny BATCH_PROCESSING;Przetwarzanie wsadowe +CURVEEDITOR_CATMULLROM;Elastyczny CURVEEDITOR_CURVE;Krzywa CURVEEDITOR_CURVES;Krzywe CURVEEDITOR_CUSTOM;Własna @@ -34,6 +36,11 @@ CURVEEDITOR_TOOLTIPPASTE;Wstaw krzywą ze schowka CURVEEDITOR_TOOLTIPSAVE;Zapisz krzywą CURVEEDITOR_TYPE;Typ: DIRBROWSER_FOLDERS;Katalogi +DYNPROFILEEDITOR_DELETE;Usuń +DYNPROFILEEDITOR_EDIT;Edytuj +DYNPROFILEEDITOR_IMGTYPE_ANY;Każdy +DYNPROFILEEDITOR_MOVE_DOWN;Przesuń w dół +DYNPROFILEEDITOR_MOVE_UP;Przesuń w górę EDITWINDOW_TITLE;Edytor obrazu EDIT_OBJECT_TOOLTIP;Wyświetla widżet na podglądzie który ułatwia ustawienie narzędzia. EDIT_PIPETTE_TOOLTIP;Aby dodać punkt do krzywej należy trzymac wciśnięty klawisz Ctrl podczas kliknięcia lewym guzikiem myszki na danym obszarze głównego podglądu.\nAby zmienic ustawienie już istniejącego punktu, należy trzymać wduszony klawisz Ctrl podczas kliknięcia lewym guzikiem myszki na danym obszarze głównego podglądu, następnie należy puścić klawisz Ctrl (chyba że chodzi nam o bardzo precyzyjne ustawienie dzieki spowolnieniu jakie trzymanie klawisza Ctrl nam daje) i podczas trzymania lewego guzika myszki należy myszką ruszać w pionie aby odpowiednio manipulować punktem w pionie. @@ -144,6 +151,7 @@ FILEBROWSER_RANK3_TOOLTIP;Oceń 3 *\nSkrót: Shift-3 FILEBROWSER_RANK4_TOOLTIP;Oceń 4 *\nSkrót: Shift-4 FILEBROWSER_RANK5_TOOLTIP;Oceń 5 *\nSkrót: Shift-5 FILEBROWSER_RENAMEDLGLABEL;Zmień nazwę pliku +FILEBROWSER_RESETDEFAULTPROFILE;Przywróć domyślne FILEBROWSER_SELECTDARKFRAME;Wybierz czarną klatkę... FILEBROWSER_SELECTFLATFIELD;Wybierz puste pole... FILEBROWSER_SHOWCOLORLABEL1HINT;Pokazuje zdjęcia z czerwoną etykietą.\nSkrót: Alt-1 @@ -169,24 +177,38 @@ FILEBROWSER_THUMBSIZE;Rozmiar minaturek FILEBROWSER_UNRANK_TOOLTIP;Usuń ocenę.\nSkrót: Shift-0 FILEBROWSER_ZOOMINHINT;Zwiększa rozmiar miniaturek.\n\nSkróty:\n+ - Tryb wielu zakładek,\nAlt-+ - Tryb pojedyńczej zakładki. FILEBROWSER_ZOOMOUTHINT;Zmniejsza rozmiar miniaturek.\n\nSkróty:\n- - Tryb wielu zakładek,\nAlt-- - Tryb pojedyńczej zakładki. +FILECHOOSER_FILTER_ANY;Wszystkie pliki +FILECHOOSER_FILTER_COLPROF;Profile kolorów (*.icc) +FILECHOOSER_FILTER_CURVE;Pliki krzywych +FILECHOOSER_FILTER_LCP;Profile korekcyjne obiektywów +FILECHOOSER_FILTER_PP;Profile przetwarzania +FILECHOOSER_FILTER_SAME;Taki sam format jak aktualnego zdjęcia +FILECHOOSER_FILTER_TIFF;Pliki TIFF GENERAL_ABOUT;O programie GENERAL_AFTER;Po +GENERAL_APPLY;Zastosuj +GENERAL_ASIMAGE;Jako obraz GENERAL_AUTO;Automatyczne GENERAL_BEFORE;Przed GENERAL_CANCEL;Anuluj GENERAL_CLOSE;Zamknij +GENERAL_CURRENT;Obecny GENERAL_DISABLE;Wyłącz GENERAL_DISABLED;Wyłączone GENERAL_ENABLE;Włącz GENERAL_ENABLED;Włączone GENERAL_FILE;Plik +GENERAL_HELP;Pomoc GENERAL_LANDSCAPE;Poziomo GENERAL_NA;nd. GENERAL_NO;Nie GENERAL_NONE;Żaden GENERAL_OK;OK +GENERAL_OPEN;Otwórz GENERAL_PORTRAIT;Pionowo +GENERAL_RESET;Resetuj GENERAL_SAVE;Zapisz +GENERAL_SAVE_AS;Zapisz jako... GENERAL_UNCHANGED;(Niezmienione) GENERAL_WARNING;Uwaga HISTOGRAM_TOOLTIP_B;Pokaż/Ukryj histogram błękitów. @@ -364,12 +386,14 @@ HISTORY_MSG_162;Tone Mapping HISTORY_MSG_163;Krzywe RGB - Czerwona HISTORY_MSG_164;Krzywe RGB - Zielona HISTORY_MSG_165;Krzywe RGB - Niebieska +HISTORY_MSG_166;Ekspozycja - Reset HISTORY_MSG_167;Algorytm demozaikowania HISTORY_MSG_168;L*a*b* - Krzywa CC HISTORY_MSG_169;L*a*b* - Krzywa CH HISTORY_MSG_170;Jaskrawość - Krzywa HH HISTORY_MSG_171;L*a*b* - Krzywa LC HISTORY_MSG_172;L*a*b* - Ogranicz LC +HISTORY_MSG_173;NR - Odzyskiwanie detali HISTORY_MSG_174;CIECAM02 HISTORY_MSG_175;CAM02 - Adaptacja CAT02 HISTORY_MSG_176;CAM02 - Otoczenie @@ -488,10 +512,70 @@ HISTORY_MSG_294;Symulacja Kliszy - Siła HISTORY_MSG_295;Symulacja Kliszy - Klisza HISTORY_MSG_296;RS - Modulacja luminancji HISTORY_MSG_298;Filtrowanie martwych pikseli +HISTORY_MSG_318;W - Kontrast - Poziom podświetleń +HISTORY_MSG_319;W - Kontrast - Zakres podświetleń +HISTORY_MSG_320;W - Kontrast - Zakres cieni +HISTORY_MSG_321;W - Kontrast - Poziom cieni +HISTORY_MSG_322;W - Gamut - Unikaj przesunięcia kolorów +HISTORY_MSG_323;W - ES - Kontrast lokalny +HISTORY_MSG_326;W - Chroma - Metoda +HISTORY_MSG_338;W - ES - Promień +HISTORY_MSG_339;W - ES - Siła +HISTORY_MSG_340;W - Siła +HISTORY_MSG_355;W - ES - Niski próg +HISTORY_MSG_356;W - ES - Wysoki próg +HISTORY_MSG_359;Hot/Dead - Próg +HISTORY_MSG_372;PRS USM - Promień +HISTORY_MSG_373;PRS USM - Ilość +HISTORY_MSG_374;PRS USM - Próg +HISTORY_MSG_380;PRS - Metoda +HISTORY_MSG_381;PRS RLD - Promień +HISTORY_MSG_382;PRS RLD - Ilość +HISTORY_MSG_407;Retinex - Metoda +HISTORY_MSG_408;Retinex - Promień +HISTORY_MSG_409;Retinex - Contrast +HISTORY_MSG_410;Retinex - Przesunięcie +HISTORY_MSG_411;Retinex - Siła +HISTORY_MSG_413;Retinex - Kontrast +HISTORY_MSG_418;Retinex - Próg +HISTORY_MSG_432;Retinex - M - Podświetlenia +HISTORY_MSG_434;Retinex - M - Cienie +HISTORY_MSG_436;Retinex - M - Promień +HISTORY_MSG_437;Retinex - M - Metoda +HISTORY_MSG_438;Retinex - M - Wyrównywanie +HISTORY_MSG_439;Retinex - Proces +HISTORY_MSG_440;CbDL - Metoda +HISTORY_MSG_442;Retinex - Skala +HISTORY_MSG_485;Korekcja obiektywu +HISTORY_MSG_486;Korekcja obiektywu - Aparat +HISTORY_MSG_487;Korekcja obiektywu - Obiektyw +HISTORY_MSG_489;DRC - Detal +HISTORY_MSG_490;DRC - Ilość +HISTORY_MSG_491;Balans bieli +HISTORY_MSG_492;Krzywe RGB +HISTORY_MSG_CLAMPOOG;Ucinaj kolory spoza zakresu +HISTORY_MSG_DEHAZE_DEPTH;Usuwanie mgły - Głębia +HISTORY_MSG_DEHAZE_ENABLED;Usuwanie mgły +HISTORY_MSG_DEHAZE_LUMINANCE;Usuwanie mgły - Tylko luminancja +HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Usuwanie mgły - Pokaż mapę głębokości +HISTORY_MSG_DEHAZE_STRENGTH;Usuwanie mgły - Siła +HISTORY_MSG_LOCALCONTRAST_AMOUNT;Kontrast lokalny - Ilość +HISTORY_MSG_LOCALCONTRAST_DARKNESS;Kontrast lokalny - Ciemne miejsca +HISTORY_MSG_LOCALCONTRAST_ENABLED;Kontrast lokalny +HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Kontrast lokalny - Jasne miejsca +HISTORY_MSG_LOCALCONTRAST_RADIUS;Kontrast lokalny - Promień +HISTORY_MSG_MICROCONTRAST_CONTRAST;Mikrokontrast - Próg kontrastu +HISTORY_MSG_PDSHARPEN_RADIUS;CS - Promień HISTORY_NEWSNAPSHOT;Nowa migawka HISTORY_NEWSNAPSHOT_TOOLTIP;Skrót: Alt-s HISTORY_SNAPSHOT;Migawka HISTORY_SNAPSHOTS;Migawki +ICCPROFCREATOR_COPYRIGHT;Prawa autorskie: +ICCPROFCREATOR_CUSTOM;Własny +ICCPROFCREATOR_DESCRIPTION;Opis: +ICCPROFCREATOR_ICCVERSION;Wersja ICC: +ICCPROFCREATOR_ILL_DEF;Domyślne +ICCPROFCREATOR_SAVEDIALOG_TITLE;Zapisz profil ICC jako... IPTCPANEL_CATEGORY;Kategoria IPTCPANEL_CITY;Miasto IPTCPANEL_COPYHINT;Kopiuje ustawienia IPTC do schowka @@ -510,6 +594,7 @@ IPTCPANEL_RESETHINT;Resetuje do domyślnych ustawień profilu IPTCPANEL_SOURCE;Źródło IPTCPANEL_TITLE;Tytuł MAIN_BUTTON_FULLSCREEN;Pełen ekran +MAIN_BUTTON_ICCPROFCREATOR;Kreator profili ICC MAIN_BUTTON_NAVNEXT_TOOLTIP;Przejdź do następnego zdjęcia względem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F4\n\nAby przejść do następnego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F4 MAIN_BUTTON_NAVPREV_TOOLTIP;Przejdź do poprzedniego zdjęcia wzgledem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F3 \n\nAby przejść do poprzedniego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F3 MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronizuj Nawigator Zdjęć z Edytorem aby ukazać miniaturkę obecnie otwartego zdjęcia, oraz usuń filtry w Nawigatorze Zdjęć.\nSkrót: x\n\nJak wyżej, ale bez usuwania filtrów:\nSkrót: y\n(Miniaturka otwartego zdjęcia nie zostanie wyświetlona jesli filtr ją ukrywa). @@ -525,6 +610,7 @@ MAIN_FRAME_FILEBROWSER;Przeglądarka plików MAIN_FRAME_FILEBROWSER_TOOLTIP; Przeglądarka plików.\nSkrót: Ctrl-F2 MAIN_FRAME_PLACES;Miejsca MAIN_FRAME_PLACES_ADD;Dodaj +MAIN_FRAME_PLACES_DEL;Usuń MAIN_FRAME_QUEUE;Kolejka MAIN_FRAME_QUEUE_TOOLTIP;Przetwarzanie wsadowe\nSkrót: Ctrl-F3 MAIN_FRAME_RECENT;Ostatnio używane foldery @@ -541,6 +627,8 @@ MAIN_MSG_PATHDOESNTEXIST;Ścieżka\n\n%1\n\nnie istnieje. Wybierz przawid MAIN_MSG_QOVERWRITE;Zastąpić? MAIN_MSG_SETPATHFIRST;Aby użyć tej funkcji należy wpierw wybrać odpowiednią ścieżkę docelową w Ustawieniach! MAIN_MSG_WRITEFAILED;Zapis nie powiódł się:\n\n"%1"\n\nUpewnij się, że folder istnieje oraz że można do niego zapisywać. +MAIN_TAB_ADVANCED;Zaawansowane +MAIN_TAB_ADVANCED_TOOLTIP;Skrót: Alt-a MAIN_TAB_COLOR;Kolor MAIN_TAB_COLOR_TOOLTIP;Skrót: Alt-c MAIN_TAB_DETAIL;Szczegóły @@ -550,6 +638,8 @@ MAIN_TAB_EXIF;Exif MAIN_TAB_EXPORT; Szybki eksport MAIN_TAB_EXPOSURE;Ekspozycja MAIN_TAB_EXPOSURE_TOOLTIP;Skrót: Alt-e +MAIN_TAB_FAVORITES;Ulubione +MAIN_TAB_FAVORITES_TOOLTIP;Skrót: Alt-u MAIN_TAB_FILTER; Filtr MAIN_TAB_IPTC;IPTC MAIN_TAB_METADATA;Metadane @@ -602,6 +692,7 @@ PARTIALPASTE_CROP;Kadrowanie PARTIALPASTE_DARKFRAMEAUTOSELECT;Auto-wybór czarnej klatki PARTIALPASTE_DARKFRAMEFILE;Wybór czarnej klatki PARTIALPASTE_DEFRINGE;Usuwanie widma +PARTIALPASTE_DEHAZE;Usuwanie mgły PARTIALPASTE_DETAILGROUP;Ustawienia szczegółowe PARTIALPASTE_DIALOGLABEL;Częściowe wklejenie profilu przetwarzania PARTIALPASTE_DIRPYRDENOISE;Redukcja szumu @@ -625,6 +716,7 @@ PARTIALPASTE_IPTCINFO;IPTC PARTIALPASTE_LABCURVE;Regulacje L*a*b* PARTIALPASTE_LENSGROUP;Ustawienia związane z obiektywem PARTIALPASTE_LENSPROFILE;Profil korekcji obiektywu LCP +PARTIALPASTE_LOCALCONTRAST;Kontrast lokalny PARTIALPASTE_METAGROUP;Metadane PARTIALPASTE_PCVIGNETTE;Winietowanie PARTIALPASTE_PERSPECTIVE;Perspektywa @@ -642,6 +734,7 @@ PARTIALPASTE_RAW_DMETHOD;Algorytm demozaikowania PARTIALPASTE_RAW_FALSECOLOR;Tłumienie fałszowania koloru PARTIALPASTE_RAW_LMMSEITERATIONS;Kroki poprawy LMMSE PARTIALPASTE_RESIZE;Zmiana rozmiaru +PARTIALPASTE_RETINEX;Retinex PARTIALPASTE_RGBCURVES;Krzywe RGB PARTIALPASTE_ROTATION;Obrót PARTIALPASTE_SHADOWSHIGHLIGHTS;Cienie/Podświetlenia @@ -652,7 +745,9 @@ PARTIALPASTE_VIBRANCE;Jaskrawość PARTIALPASTE_VIGNETTING;Korekcja winietowania PARTIALPASTE_WHITEBALANCE;Balans bieli PREFERENCES_ADD;Dodaj +PREFERENCES_APPEARANCE;Wygląd PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora +PREFERENCES_APPEARANCE_THEME;Motyw graficzny PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia PREFERENCES_AUTOMONPROFILE;Automatycznie użyj systemowego profilu monitora PREFERENCES_BATCH_PROCESSING;Przetwarzanie wsadowe @@ -661,6 +756,7 @@ PREFERENCES_BEHADDALLHINT;Ustaw wszystkie narzędzia w tryb Dodaj.\nZmian PREFERENCES_BEHAVIOR;Zachowanie PREFERENCES_BEHSETALL;'Ustaw' wszystkie PREFERENCES_BEHSETALLHINT;Ustaw wszystkie narzędzia w tryb Ustaw.\nZmiany parametrów w panelu edycji zbiorczej zostaną traktowane jako absolutne, nie biorąc pod uwagę poprzednich wartości. +PREFERENCES_CACHECLEAR;Wyczyść PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury @@ -703,6 +799,7 @@ PREFERENCES_INTENT_PERCEPTUAL;Percepcyjny PREFERENCES_INTENT_RELATIVE;Względnie kolorymetryczny PREFERENCES_INTENT_SATURATION;Nasyceniowy PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Pokaż osadzoną miniaturę JPEG jeśli plik raw jest nieedytowany +PREFERENCES_LANG;Język PREFERENCES_LANGAUTODETECT;Użyj języka systemowego PREFERENCES_MENUGROUPEXTPROGS;Grupuj "Otwórz za pomocą" PREFERENCES_MENUGROUPFILEOPERATIONS;Grupuj operacje plików @@ -719,13 +816,16 @@ PREFERENCES_PARSEDEXT;Przetwarzane rozszerzenia PREFERENCES_PARSEDEXTADD;Dodaj rozszerzenie PREFERENCES_PARSEDEXTADDHINT;Proszę wprowadzić rozszerzenie i zatwierdzić przyciskiem, by dodać do listy PREFERENCES_PARSEDEXTDELHINT;Skasuje wybrane rozszerzenie z listy +PREFERENCES_PERFORMANCE_THREADS;Wątki PREFERENCES_PROFILEHANDLING;Obsługa profili PREFERENCES_PROFILELOADPR;Priorytet wczytywania profilu PREFERENCES_PROFILEPRCACHE;Profil w pamięci podręcznej PREFERENCES_PROFILEPRFILE;Profil przy pliku wejściowym PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamięci podręcznej PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejściowego +PREFERENCES_PROFILE_NONE;Żaden PREFERENCES_PROPERTY;Własność +PREFERENCES_PRTPROFILE;Profil kolorów PREFERENCES_PSPATH;Katalog w którym zainstalowany jest Adobe Photoshop PREFERENCES_SELECTLANG;Wybierz język PREFERENCES_SET;Ustaw @@ -744,6 +844,7 @@ PREFERENCES_TAB_BROWSER;Przeglądarka plików PREFERENCES_TAB_COLORMGR;Zarządzanie kolorami PREFERENCES_TAB_GENERAL;Ogólne PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu +PREFERENCES_TAB_PERFORMANCE;Wydajność PREFERENCES_TAB_SOUND;Dźwięki PREFERENCES_TP_LABEL;Panel narzędzi: PREFERENCES_TP_VSCROLLBAR;Ukry pionowy pasek przesuwania @@ -992,6 +1093,7 @@ TP_CROP_GTRULETHIRDS;Trójpodział TP_CROP_GUIDETYPE;Typ pomocy: TP_CROP_H;Wysokość TP_CROP_LABEL;Kadrowanie +TP_CROP_SELECTCROP;Wybierz TP_CROP_W;Szerokość TP_CROP_X;X TP_CROP_Y;Y @@ -1000,13 +1102,25 @@ TP_DARKFRAME_LABEL;Czarna klatka TP_DEFRINGE_LABEL;Usuwanie widma TP_DEFRINGE_RADIUS;Promień TP_DEFRINGE_THRESHOLD;Próg +TP_DEHAZE_DEPTH;Głębia +TP_DEHAZE_LABEL;Usuwanie mgły +TP_DEHAZE_LUMINANCE;Tylko luminancja +TP_DEHAZE_SHOW_DEPTH_MAP;Pokaż mapę głębokości +TP_DEHAZE_STRENGTH;Siła TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominancja - Błękit-żółć +TP_DIRPYRDENOISE_CHROMINANCE_MANUAL;Ręcznie TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Chrominancja - Główna +TP_DIRPYRDENOISE_CHROMINANCE_METHOD;Metoda +TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW;Podgląd TP_DIRPYRDENOISE_CHROMINANCE_REDGREEN;Chrominancja - Czerwień-zieleń +TP_DIRPYRDENOISE_LABEL;Redukcja szumu +TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Kontrola luminancji TP_DIRPYRDENOISE_LUMINANCE_CURVE;Krzywa luminancji TP_DIRPYRDENOISE_LUMINANCE_DETAIL;Szczegółowość luminancji +TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminancja TP_DIRPYRDENOISE_LUMINANCE_SMOOTHING;Luminacja TP_DIRPYRDENOISE_MAIN_COLORSPACE;Metoda +TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* TP_DIRPYRDENOISE_MAIN_COLORSPACE_RGB;RGB TP_DIRPYRDENOISE_MAIN_COLORSPACE_TOOLTIP;Dla obrazów raw można używać metody RGB oraz L*a*b*.\n\nDla obrazów nie-raw metoda L*a*b* zostanie użyta niezależnie od wyboru. TP_DIRPYRDENOISE_MAIN_GAMMA;Gamma @@ -1016,6 +1130,7 @@ TP_DIRPYRDENOISE_MAIN_MODE_AGGRESSIVE;Wysoka TP_DIRPYRDENOISE_MAIN_MODE_CONSERVATIVE;Standardowa TP_DIRPYRDENOISE_MAIN_MODE_TOOLTIP;Jakość może zostać dopasowana do wzoru szumów. Ustawienie "wysoka" ulepsza odszumianie około 20% wzrostu czasu przetwarzania. TP_DIRPYRDENOISE_MEDIAN_METHOD;Metoda mediana +TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Tylko Chroma TP_DIRPYRDENOISE_MEDIAN_METHOD_LAB;L*a*b* TP_DIRPYRDENOISE_MEDIAN_METHOD_LABEL;Filtr Mediana TP_DIRPYRDENOISE_MEDIAN_METHOD_LUMINANCE;Tylko luminancja @@ -1025,6 +1140,7 @@ TP_DIRPYRDENOISE_MEDIAN_PASSES;Liczba powtórzeń mediana TP_DIRPYRDENOISE_MEDIAN_TYPE;Rodzaj mediana TP_DIRPYREQUALIZER_ALGO;Zakres odcieni skóry TP_DIRPYREQUALIZER_ALGO_TOOLTIP;- +TP_DIRPYREQUALIZER_ARTIF;Usuń artefakty TP_DIRPYREQUALIZER_HUESKIN;Odcień skóry TP_DIRPYREQUALIZER_HUESKIN_TOOLTIP;Piramida wyznacza zakres kolorów uważany jako zakres odcieni skóry. Większość odcieni skóry - białej, czarnej, i pomiędzy - ma tę samą odcień. Małe poprawki są dopuszczalne, jednak jeśli potrzebna jest większa zmiana w lewo lub prawo, lub jeśli są widoczne artefakty, to najprawdopobniej balans bieli jest niepoprawny. TP_DIRPYREQUALIZER_LABEL;Kontrast wg. precyzji detali @@ -1040,6 +1156,7 @@ TP_DIRPYREQUALIZER_TOOLTIP;Zapobiega artefaktom w strefach przejścia pomiędzy TP_DISTORTION_AMOUNT;Siła TP_DISTORTION_LABEL;Dystorsja TP_EPD_EDGESTOPPING;Wyszukiwanie krawędzi +TP_EPD_GAMMA;Gamma TP_EPD_LABEL;Tone Mapping TP_EPD_REWEIGHTINGITERATES;Powtarzanie rozważania TP_EPD_SCALE;Skala @@ -1064,6 +1181,7 @@ TP_EXPOSURE_SATURATION;Nasycenie TP_EXPOSURE_TCMODE_FILMLIKE;Klisza TP_EXPOSURE_TCMODE_LABEL1;Tryb krzywej 1 TP_EXPOSURE_TCMODE_LABEL2;Tryb krzywej 2 +TP_EXPOSURE_TCMODE_LUMINANCE;Luminancja TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Mieszanie nasycenia i mocy światła białego TP_EXPOSURE_TCMODE_STANDARD;Standardowa TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Ważona standardowa @@ -1171,7 +1289,13 @@ TP_LABCURVE_RSTPRO_TOOLTIP;Ma wpływ na suwak Chromatyczności oraz na krzywą C TP_LENSGEOM_AUTOCROP;Auto-kadrowanie TP_LENSGEOM_FILL;Auto-wypełnienie TP_LENSGEOM_LABEL;Obiektyw / Geometria +TP_LENSGEOM_LIN;Liniowo +TP_LENSGEOM_LOG;Logarytmicznie TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP +TP_LOCALCONTRAST_AMOUNT;Ilość +TP_LOCALCONTRAST_LABEL;Kontrast lokalny +TP_LOCALCONTRAST_RADIUS;Promień +TP_NEUTRAL;Reset TP_NEUTRAL_TIP;Zresetuj ustawienia do wartości neutralnych.\nDziała na tych samych suwakach na których funkcja "Wyrównaj poziomy" działa, niezależnie od tego czy funkcja ta była użyta czy nie. TP_PCVIGNETTE_FEATHER;Wtapianie TP_PCVIGNETTE_FEATHER_TOOLTIP;Wtapianie:\n0 = tylko brzegi,\n50 = w pół drogi do środka,\n100 = aż do środka. @@ -1213,10 +1337,14 @@ TP_RAW_DMETHOD;Metoda TP_RAW_DMETHOD_PROGRESSBAR;Demozaikowanie %1... TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Udoskonalanie demozaikowania... TP_RAW_DMETHOD_TOOLTIP;IGV oraz LMMSE są przeznaczone dla zdjęć raw o wysokim poziomie szumów (wysokie ISO) aby zapobiec utworzeniu się wzorków w kształcie małych labiryntów, posteryzacji oraz mydlanego wyglądu. +TP_RAW_DUALDEMOSAICCONTRAST;Próg kontrastu TP_RAW_FALSECOLOR;Kroki zapobiegające fałszowaniu kolorów +TP_RAW_HD;Próg TP_RAW_LABEL;Demozaikowanie TP_RAW_LMMSEITERATIONS;Ilość kroków udoskonalenia LMMSE TP_RAW_LMMSE_TOOLTIP;Aby zmniejszyć ilość artefaktów i poprawić stosunek sygnału do szumów, można wykorzystać następujące ustawienia:\n1: Gamma\n2-4: Średnia mediana\n5-6: Rafinowanie +TP_RAW_MONO;Mono +TP_RAW_PIXELSHIFTSIGMA;Promień rozmycia TP_RAW_SENSOR_BAYER_LABEL;Matryca z filtrem Bayera TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Trzy powtórzenia prowadzą do najlepszych rezultatów (zalecane dla zdjęć o niskim ISO).\nJedno powtórzenie jest prawie nie do odróżnienia od trzech dla zdjęć o wysokim ISO a jest znacznie szybsze. TP_RAW_SENSOR_XTRANS_LABEL;Matryca z filtrem X-Trans @@ -1234,6 +1362,24 @@ TP_RESIZE_SCALE;Skalę TP_RESIZE_SPECIFY;Określ: TP_RESIZE_W;Szerokość TP_RESIZE_WIDTH;Szerokość +TP_RETINEX_LABEL;Retinex +TP_RETINEX_LABEL_MASK;Maska +TP_RETINEX_LABSPACE;L*a*b* +TP_RETINEX_LOW;Niski +TP_RETINEX_MAP;Metoda +TP_RETINEX_MAP_GAUS;Maska Gaussa +TP_RETINEX_METHOD;Metoda +TP_RETINEX_NEIGHBOR;Promień +TP_RETINEX_NEUTRAL;Reset +TP_RETINEX_OFFSET;Przesunięcie (jasność) +TP_RETINEX_SETTINGS;Ustawienia +TP_RETINEX_SKAL;Skala +TP_RETINEX_STRENGTH;Siła +TP_RETINEX_THRESHOLD;Próg +TP_RETINEX_VARIANCE;Kontrast +TP_RETINEX_VIEW;Proces +TP_RETINEX_VIEW_MASK;Maska +TP_RETINEX_VIEW_UNSHARP;Maska wyostrzająca TP_RGBCURVES_BLUE;B TP_RGBCURVES_CHANNEL;Kanał TP_RGBCURVES_GREEN;G @@ -1256,6 +1402,7 @@ TP_SHARPENEDGE_LABEL;Krawędzie TP_SHARPENEDGE_PASSES;Powtórzenia TP_SHARPENEDGE_THREE;Tylko luminancja TP_SHARPENING_AMOUNT;Siła +TP_SHARPENING_CONTRAST;Próg kontrastu TP_SHARPENING_EDRADIUS;Promień TP_SHARPENING_EDTOLERANCE;Tolerancja krawędzi TP_SHARPENING_HALOCONTROL;Kontrola poświaty @@ -1271,9 +1418,13 @@ TP_SHARPENING_RLD_ITERATIONS;Powtórzenia TP_SHARPENING_THRESHOLD;Próg TP_SHARPENING_USM;Maska wyostrzająca TP_SHARPENMICRO_AMOUNT;Siła +TP_SHARPENMICRO_CONTRAST;Próg kontrastu TP_SHARPENMICRO_LABEL;Mikrokontrast TP_SHARPENMICRO_MATRIX;Matryca 3×3 zamiast 5×5 TP_SHARPENMICRO_UNIFORMITY;Jednolitość +TP_SOFTLIGHT_STRENGTH;Siła +TP_TM_FATTAL_AMOUNT;Ilość +TP_TM_FATTAL_THRESHOLD;Detale TP_VIBRANCE_AVOIDCOLORSHIFT;Zapobiegaj przesunięcia kolorów TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH TP_VIBRANCE_CURVEEDITOR_SKINTONES_LABEL;Odcienie skóry @@ -1298,6 +1449,42 @@ TP_VIGNETTING_CENTER_Y;Środek Y TP_VIGNETTING_LABEL;Korekcja winietowania TP_VIGNETTING_RADIUS;Promień TP_VIGNETTING_STRENGTH;Siła +TP_WAVELET_BANONE;Żaden +TP_WAVELET_COMPCONT;Kontrast +TP_WAVELET_CONTR;Gamut +TP_WAVELET_CONTRA;Kontrast +TP_WAVELET_CONTRAST_MINUS;Kontrast - +TP_WAVELET_CONTRAST_PLUS;Kontrast + +TP_WAVELET_DONE;Pionowo +TP_WAVELET_DTHR;Po przekątnej +TP_WAVELET_DTWO;Poziomo +TP_WAVELET_EDCU;Krzywa +TP_WAVELET_EDGCONT;Kontrast lokalny +TP_WAVELET_EDGE;Ostrość krawędzi +TP_WAVELET_EDGEDETECTTHR;Niski próg (szum) +TP_WAVELET_EDGEDETECTTHR2;Wysoki próg (wykrywanie) +TP_WAVELET_EDRAD;Promień +TP_WAVELET_EDSL;Suwaki progów +TP_WAVELET_EDVAL;Siła +TP_WAVELET_HS2;Cienie/Podświetlenia +TP_WAVELET_LEVF;Kontrast +TP_WAVELET_LEVONE;Poziom 2 +TP_WAVELET_LEVTHRE;Poziom 4 +TP_WAVELET_LEVTWO;Poziom 3 +TP_WAVELET_LEVZERO;Poziom 1 +TP_WAVELET_NPHIGH;Wysoki +TP_WAVELET_NPLOW;Niski +TP_WAVELET_NPNONE;Brak +TP_WAVELET_NPTYPE;Piksele sąsiadujące +TP_WAVELET_RESCON;Cienie +TP_WAVELET_RESCONH;Podświetlenia +TP_WAVELET_STREN;Siła +TP_WAVELET_STRENGTH;Siła +TP_WAVELET_SUPE;Ekstra +TP_WAVELET_THR;Próg cieni +TP_WAVELET_THRESHOLD;Poziom podświetleń +TP_WAVELET_THRESHOLD2;Poziom cieni +TP_WAVELET_THRH;Próg podświetleń TP_WBALANCE_AUTO;Auto TP_WBALANCE_CAMERA;Z aparatu TP_WBALANCE_CLOUDY;Pochmurnie @@ -1332,6 +1519,7 @@ TP_WBALANCE_LED_CRS;CRS SP12 WWMR16 TP_WBALANCE_LED_HEADER;LED TP_WBALANCE_LED_LSI;LSI Lumelex 2040 TP_WBALANCE_METHOD;Metoda +TP_WBALANCE_PICKER;Wybierz TP_WBALANCE_SHADE;Ćień TP_WBALANCE_SIZE;Wielkość: TP_WBALANCE_SOLUX35;Solux 3500K @@ -1361,19 +1549,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !CURVEEDITOR_AXIS_LEFT_TAN;LT: !CURVEEDITOR_AXIS_OUT;O: !CURVEEDITOR_AXIS_RIGHT_TAN;RT: -!CURVEEDITOR_CATMULLROM;Flexible !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. !DONT_SHOW_AGAIN;Don't show this message again. -!DYNPROFILEEDITOR_DELETE;Delete -!DYNPROFILEEDITOR_EDIT;Edit !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule !DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. -!DYNPROFILEEDITOR_IMGTYPE_ANY;Any !DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift !DYNPROFILEEDITOR_IMGTYPE_STD;Standard -!DYNPROFILEEDITOR_MOVE_DOWN;Move Down -!DYNPROFILEEDITOR_MOVE_UP;Move Up !DYNPROFILEEDITOR_NEW;New !DYNPROFILEEDITOR_NEW_RULE;New Dynamic Profile Rule !DYNPROFILEEDITOR_PROFILE;Processing Profile @@ -1394,28 +1576,11 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version -!FILEBROWSER_RESETDEFAULTPROFILE;Reset to default !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. -!FILECHOOSER_FILTER_ANY;All files -!FILECHOOSER_FILTER_COLPROF;Color profiles (*.icc) -!FILECHOOSER_FILTER_CURVE;Curve files -!FILECHOOSER_FILTER_LCP;Lens correction profiles -!FILECHOOSER_FILTER_PP;Processing profiles -!FILECHOOSER_FILTER_SAME;Same format as current photo -!FILECHOOSER_FILTER_TIFF;TIFF files -!GENERAL_APPLY;Apply -!GENERAL_ASIMAGE;As Image -!GENERAL_CURRENT;Current -!GENERAL_HELP;Help -!GENERAL_OPEN;Open -!GENERAL_RESET;Reset -!GENERAL_SAVE_AS;Save as... !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTORY_MSG_166;Exposure - Reset -!HISTORY_MSG_173;NR - Detail recovery !HISTORY_MSG_203;NR - Color space !HISTORY_MSG_235;B&W - CM - Auto !HISTORY_MSG_237;B&W - CM @@ -1441,15 +1606,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_315;W - Residual - Contrast !HISTORY_MSG_316;W - Gamut - Skin tar/prot !HISTORY_MSG_317;W - Gamut - Skin hue -!HISTORY_MSG_318;W - Contrast - Highlight levels -!HISTORY_MSG_319;W - Contrast - Highlight range -!HISTORY_MSG_320;W - Contrast - Shadow range -!HISTORY_MSG_321;W - Contrast - Shadow levels -!HISTORY_MSG_322;W - Gamut - Avoid color shift -!HISTORY_MSG_323;W - ES - Local contrast !HISTORY_MSG_324;W - Chroma - Pastel !HISTORY_MSG_325;W - Chroma - Saturated -!HISTORY_MSG_326;W - Chroma - Method !HISTORY_MSG_327;W - Contrast - Apply to !HISTORY_MSG_328;W - Chroma - Link strength !HISTORY_MSG_329;W - Toning - Opacity RG @@ -1461,9 +1619,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_335;W - Residual - Highlights !HISTORY_MSG_336;W - Residual - Highlights threshold !HISTORY_MSG_337;W - Residual - Sky hue -!HISTORY_MSG_338;W - ES - Radius -!HISTORY_MSG_339;W - ES - Strength -!HISTORY_MSG_340;W - Strength !HISTORY_MSG_341;W - Edge performance !HISTORY_MSG_342;W - ES - First level !HISTORY_MSG_343;W - Chroma levels @@ -1478,11 +1633,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_352;W - Background !HISTORY_MSG_353;W - ES - Gradient sensitivity !HISTORY_MSG_354;W - ES - Enhanced -!HISTORY_MSG_355;W - ES - Threshold low -!HISTORY_MSG_356;W - ES - Threshold high !HISTORY_MSG_357;W - Denoise - Link with ES !HISTORY_MSG_358;W - Gamut - CH -!HISTORY_MSG_359;Hot/Dead - Threshold !HISTORY_MSG_360;TM - Gamma !HISTORY_MSG_361;W - Final - Chroma balance !HISTORY_MSG_362;W - Residual - Compression method @@ -1495,17 +1647,11 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_369;W - Final - Balance method !HISTORY_MSG_370;W - Final - Local contrast curve !HISTORY_MSG_371;Post-Resize Sharpening -!HISTORY_MSG_372;PRS USM - Radius -!HISTORY_MSG_373;PRS USM - Amount -!HISTORY_MSG_374;PRS USM - Threshold !HISTORY_MSG_375;PRS USM - Sharpen only edges !HISTORY_MSG_376;PRS USM - Edge detection radius !HISTORY_MSG_377;PRS USM - Edge tolerance !HISTORY_MSG_378;PRS USM - Halo control !HISTORY_MSG_379;PRS USM - Halo control amount -!HISTORY_MSG_380;PRS - Method -!HISTORY_MSG_381;PRS RLD - Radius -!HISTORY_MSG_382;PRS RLD - Amount !HISTORY_MSG_383;PRS RLD - Damping !HISTORY_MSG_384;PRS RLD - Iterations !HISTORY_MSG_385;W - Residual - Color Balance @@ -1530,18 +1676,11 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_404;W - ES - Base amplification !HISTORY_MSG_405;W - Denoise - Level 4 !HISTORY_MSG_406;W - ES - Neighboring pixels -!HISTORY_MSG_407;Retinex - Method -!HISTORY_MSG_408;Retinex - Radius -!HISTORY_MSG_409;Retinex - Contrast -!HISTORY_MSG_410;Retinex - Offset -!HISTORY_MSG_411;Retinex - Strength !HISTORY_MSG_412;Retinex - Gaussian gradient -!HISTORY_MSG_413;Retinex - Contrast !HISTORY_MSG_414;Retinex - Histogram - Lab !HISTORY_MSG_415;Retinex - Transmission !HISTORY_MSG_416;Retinex !HISTORY_MSG_417;Retinex - Transmission median -!HISTORY_MSG_418;Retinex - Threshold !HISTORY_MSG_419;Retinex - Color space !HISTORY_MSG_420;Retinex - Histogram - HSL !HISTORY_MSG_421;Retinex - Gamma @@ -1555,17 +1694,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_429;Retinex - Iterations !HISTORY_MSG_430;Retinex - Transmission gradient !HISTORY_MSG_431;Retinex - Strength gradient -!HISTORY_MSG_432;Retinex - M - Highlights !HISTORY_MSG_433;Retinex - M - Highlights TW -!HISTORY_MSG_434;Retinex - M - Shadows !HISTORY_MSG_435;Retinex - M - Shadows TW -!HISTORY_MSG_436;Retinex - M - Radius -!HISTORY_MSG_437;Retinex - M - Method -!HISTORY_MSG_438;Retinex - M - Equalizer -!HISTORY_MSG_439;Retinex - Process -!HISTORY_MSG_440;CbDL - Method !HISTORY_MSG_441;Retinex - Gain transmission -!HISTORY_MSG_442;Retinex - Scale !HISTORY_MSG_443;Output black point compensation !HISTORY_MSG_444;WB - Temp bias !HISTORY_MSG_445;Raw sub-image @@ -1592,17 +1723,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_482;CAM02 - Green scene !HISTORY_MSG_483;CAM02 - Yb scene !HISTORY_MSG_484;CAM02 - Auto Yb scene -!HISTORY_MSG_485;Lens Correction -!HISTORY_MSG_486;Lens Correction - Camera -!HISTORY_MSG_487;Lens Correction - Lens !HISTORY_MSG_488;Dynamic Range Compression -!HISTORY_MSG_489;DRC - Detail -!HISTORY_MSG_490;DRC - Amount -!HISTORY_MSG_491;White Balance -!HISTORY_MSG_492;RGB Curves !HISTORY_MSG_493;L*a*b* Adjustments !HISTORY_MSG_494;Capture Sharpening -!HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors !HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction !HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel @@ -1617,11 +1740,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation !HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask !HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope -!HISTORY_MSG_DEHAZE_DEPTH;Dehaze - Depth -!HISTORY_MSG_DEHAZE_ENABLED;Haze Removal -!HISTORY_MSG_DEHAZE_LUMINANCE;Dehaze - Luminance only -!HISTORY_MSG_DEHAZE_SHOW_DEPTH_MAP;Dehaze - Show depth map -!HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold !HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold !HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative @@ -1633,19 +1751,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma !HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope !HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method -!HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount -!HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness -!HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast -!HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Local Contrast - Lightness -!HISTORY_MSG_LOCALCONTRAST_RADIUS;Local Contrast - Radius !HISTORY_MSG_METADATA_MODE;Metadata copy mode -!HISTORY_MSG_MICROCONTRAST_CONTRAST;Microcontrast - Contrast threshold !HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CS - Auto threshold !HISTORY_MSG_PDSHARPEN_AUTO_RADIUS;CS - Auto radius !HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations !HISTORY_MSG_PDSHARPEN_CONTRAST;CS - Contrast threshold !HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations -!HISTORY_MSG_PDSHARPEN_RADIUS;CS - Radius !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction @@ -1662,14 +1773,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TRANS_Method;Geometry - Method -!ICCPROFCREATOR_COPYRIGHT;Copyright: !ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" -!ICCPROFCREATOR_CUSTOM;Custom -!ICCPROFCREATOR_DESCRIPTION;Description: !ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description !ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. !ICCPROFCREATOR_GAMMA;Gamma -!ICCPROFCREATOR_ICCVERSION;ICC version: !ICCPROFCREATOR_ILL;Illuminant: !ICCPROFCREATOR_ILL_41;D41 !ICCPROFCREATOR_ILL_50;D50 @@ -1677,7 +1784,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !ICCPROFCREATOR_ILL_60;D60 !ICCPROFCREATOR_ILL_65;D65 !ICCPROFCREATOR_ILL_80;D80 -!ICCPROFCREATOR_ILL_DEF;Default !ICCPROFCREATOR_ILL_INC;StdA 2856K !ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. !ICCPROFCREATOR_PRIMARIES;Primaries: @@ -1700,7 +1806,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !ICCPROFCREATOR_PRIM_WIDEG;Widegamut !ICCPROFCREATOR_PROF_V2;ICC v2 !ICCPROFCREATOR_PROF_V4;ICC v4 -!ICCPROFCREATOR_SAVEDIALOG_TITLE;Save ICC profile as... !ICCPROFCREATOR_SLOPE;Slope !ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. @@ -1728,14 +1833,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!MAIN_BUTTON_ICCPROFCREATOR;ICC Profile Creator !MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor -!MAIN_FRAME_PLACES_DEL;Remove !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!MAIN_TAB_ADVANCED;Advanced -!MAIN_TAB_ADVANCED_TOOLTIP;Shortcut: Alt-a -!MAIN_TAB_FAVORITES;Favorites -!MAIN_TAB_FAVORITES_TOOLTIP;Shortcut: Alt-u !MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. @@ -1744,10 +1843,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !PARTIALPASTE_ADVANCEDGROUP;Advanced Settings -!PARTIALPASTE_DEHAZE;Haze removal !PARTIALPASTE_EQUALIZER;Wavelet levels !PARTIALPASTE_FILMNEGATIVE;Film Negative -!PARTIALPASTE_LOCALCONTRAST;Local contrast !PARTIALPASTE_METADATA;Metadata mode !PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !PARTIALPASTE_PRSHARPENING;Post-resize sharpening @@ -1756,17 +1853,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_RETINEX;Retinex !PARTIALPASTE_SOFTLIGHT;Soft light !PARTIALPASTE_TM_FATTAL;Dynamic range compression -!PREFERENCES_APPEARANCE;Appearance !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_APPEARANCE_MAINFONT;Main font !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode -!PREFERENCES_APPEARANCE_THEME;Theme !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_CACHECLEAR;Clear !PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: @@ -1799,7 +1892,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_INSPECT_LABEL;Inspect !PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. -!PREFERENCES_LANG;Language !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders !PREFERENCES_MONINTENT;Default rendering intent !PREFERENCES_MONITOR;Monitor @@ -1811,7 +1903,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. !PREFERENCES_PERFORMANCE_MEASURE;Measure !PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console -!PREFERENCES_PERFORMANCE_THREADS;Threads !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) !PREFERENCES_PREVDEMO;Preview Demosaic Method !PREFERENCES_PREVDEMO_FAST;Fast @@ -1820,9 +1911,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_PRINTER;Printer (Soft-Proofing) !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file !PREFERENCES_PROFILESAVELOCATION;Processing profile saving location -!PREFERENCES_PROFILE_NONE;None !PREFERENCES_PRTINTENT;Rendering intent -!PREFERENCES_PRTPROFILE;Color profile !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". !PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now @@ -1831,7 +1920,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules -!PREFERENCES_TAB_PERFORMANCE;Performance !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering @@ -1900,33 +1988,19 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_CROP_PPI;PPI !TP_CROP_RESETCROP;Reset -!TP_CROP_SELECTCROP;Select -!TP_DEHAZE_DEPTH;Depth -!TP_DEHAZE_LABEL;Haze Removal -!TP_DEHAZE_LUMINANCE;Luminance only -!TP_DEHAZE_SHOW_DEPTH_MAP;Show depth map -!TP_DEHAZE_STRENGTH;Strength !TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones !TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatic global !TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Chrominance curve !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. !TP_DIRPYRDENOISE_CHROMINANCE_FRAME;Chrominance -!TP_DIRPYRDENOISE_CHROMINANCE_MANUAL;Manual -!TP_DIRPYRDENOISE_CHROMINANCE_METHOD;Method !TP_DIRPYRDENOISE_CHROMINANCE_METHODADVANCED_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. !TP_DIRPYRDENOISE_CHROMINANCE_METHOD_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nAutomatic multi-zones\nNo preview - works only during saving, but using the "Preview" method by matching the tile size and center to the preview size and center you can get an idea of the expected results.\nThe image is divided into tiles (about 10 to 70 depending on image size) and each tile receives its own chrominance noise reduction settings.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. !TP_DIRPYRDENOISE_CHROMINANCE_PMZ;Preview multi-zones -!TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW;Preview !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEWRESIDUAL_INFO_TOOLTIP;Displays the remaining noise levels of the part of the image visible in the preview after wavelet.\n\n>300 Very noisy\n100-300 Noisy\n50-100 A little noisy\n<50 Very low noise\n\nBeware, the values will differ between RGB and L*a*b* mode. The RGB values are less accurate because the RGB mode does not completely separate luminance and chrominance. !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_INFO;Preview size=%1, Center: Px=%2 Py=%3 !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO;Preview noise: Mean=%1 High=%2 !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_NOISEINFO_EMPTY;Preview noise: Mean= - High= - !TP_DIRPYRDENOISE_CHROMINANCE_PREVIEW_TILEINFO;Tile size=%1, Center: Tx=%2 Ty=%3 -!TP_DIRPYRDENOISE_LABEL;Noise Reduction -!TP_DIRPYRDENOISE_LUMINANCE_CONTROL;Luminance control -!TP_DIRPYRDENOISE_LUMINANCE_FRAME;Luminance -!TP_DIRPYRDENOISE_MAIN_COLORSPACE_LAB;L*a*b* -!TP_DIRPYRDENOISE_MEDIAN_METHOD_CHROMINANCE;Chroma only !TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) !TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Applying three median filter iterations with a 3×3 window size often leads to better results than using one median filter iteration with a 7×7 window size. !TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Apply a median filter of the desired window size. The larger the window's size, the longer it takes.\n\n3×3 soft: treats 5 pixels in a 3×3 pixel window.\n3×3: treats 9 pixels in a 3×3 pixel window.\n5×5 soft: treats 13 pixels in a 5×5 pixel window.\n5×5: treats 25 pixels in a 5×5 pixel window.\n7×7: treats 49 pixels in a 7×7 pixel window.\n9×9: treats 81 pixels in a 9×9 pixel window.\n\nSometimes it is possible to achieve higher quality running several iterations with a smaller window size than one iteration with a larger one. @@ -1936,13 +2010,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_DIRPYRDENOISE_TYPE_5X5SOFT;5×5 soft !TP_DIRPYRDENOISE_TYPE_7X7;7×7 !TP_DIRPYRDENOISE_TYPE_9X9;9×9 -!TP_DIRPYREQUALIZER_ARTIF;Reduce artifacts !TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. -!TP_EPD_GAMMA;Gamma !TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors !TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve !TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. -!TP_EXPOSURE_TCMODE_LUMINANCE;Luminance !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) @@ -1968,8 +2039,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. -!TP_LENSGEOM_LIN;Linear -!TP_LENSGEOM_LOG;Logarithmic !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected !TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected @@ -1979,16 +2048,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion !TP_LENSPROFILE_USE_HEADER;Correct !TP_LENSPROFILE_USE_VIGNETTING;Vignetting -!TP_LOCALCONTRAST_AMOUNT;Amount !TP_LOCALCONTRAST_DARKNESS;Darkness level -!TP_LOCALCONTRAST_LABEL;Local Contrast !TP_LOCALCONTRAST_LIGHTNESS;Lightness level -!TP_LOCALCONTRAST_RADIUS;Radius !TP_METADATA_EDIT;Apply modifications !TP_METADATA_MODE;Metadata copy mode !TP_METADATA_STRIP;Strip all metadata !TP_METADATA_TUNNEL;Copy unchanged -!TP_NEUTRAL;Reset !TP_PDSHARPENING_LABEL;Capture Sharpening !TP_PREPROCESS_LINEDENOISE_DIRECTION;Direction !TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both @@ -2013,10 +2078,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_DCBVNG4;DCB+VNG4 !TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold !TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). -!TP_RAW_DUALDEMOSAICCONTRAST;Contrast threshold !TP_RAW_EAHD;EAHD !TP_RAW_FAST;Fast -!TP_RAW_HD;Threshold !TP_RAW_HD_TOOLTIP;Lower values make hot/dead pixel detection more aggressive, but false positives may lead to artifacts. If you notice any artifacts appearing when enabling the Hot/Dead Pixel Filters, gradually increase the threshold value until they disappear. !TP_RAW_HPHD;HPHD !TP_RAW_IGV;IGV @@ -2024,7 +2087,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_IMAGENUM_SN;SN mode !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. !TP_RAW_LMMSE;LMMSE -!TP_RAW_MONO;Mono !TP_RAW_NONE;None (Shows sensor pattern) !TP_RAW_PIXELSHIFT;Pixel Shift !TP_RAW_PIXELSHIFTBLUR;Blur motion mask @@ -2049,7 +2111,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Show only motion mask !TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Shows the motion mask without the image. !TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. -!TP_RAW_PIXELSHIFTSIGMA;Blur radius !TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. @@ -2095,32 +2156,18 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_ITER;Iterations (Tone-mapping) !TP_RETINEX_ITERF;Tone mapping !TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. -!TP_RETINEX_LABEL;Retinex -!TP_RETINEX_LABEL_MASK;Mask -!TP_RETINEX_LABSPACE;L*a*b* -!TP_RETINEX_LOW;Low -!TP_RETINEX_MAP;Method -!TP_RETINEX_MAP_GAUS;Gaussian mask !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) !TP_RETINEX_MAP_METHOD_TOOLTIP;Use the mask generated by the Gaussian function above (Radius, Method) to reduce halos and artifacts.\n\nCurve only: apply a diagonal contrast curve on the mask.\nBeware of artifacts!\n\nGaussian mask: generate and use a Gaussian blur of the original mask.\nQuick.\n\nSharp mask: generate and use a wavelet on the original mask.\nSlow. !TP_RETINEX_MAP_NONE;None !TP_RETINEX_MEDIAN;Transmission median filter -!TP_RETINEX_METHOD;Method !TP_RETINEX_METHOD_TOOLTIP;Low = Reinforce low light.\nUniform = Equalize action.\nHigh = Reinforce high light.\nHighlights = Remove magenta in highlights. !TP_RETINEX_MLABEL;Restored haze-free Min=%1 Max=%2 !TP_RETINEX_MLABEL_TOOLTIP;Should be near min=0 max=32768\nRestored image with no mixture. -!TP_RETINEX_NEIGHBOR;Radius -!TP_RETINEX_NEUTRAL;Reset !TP_RETINEX_NEUTRAL_TIP;Reset all sliders and curves to their default values. -!TP_RETINEX_OFFSET;Offset (brightness) !TP_RETINEX_SCALES;Gaussian gradient !TP_RETINEX_SCALES_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Scale and radius are reduced when iterations increase, and conversely. -!TP_RETINEX_SETTINGS;Settings -!TP_RETINEX_SKAL;Scale !TP_RETINEX_SLOPE;Free gamma slope -!TP_RETINEX_STRENGTH;Strength -!TP_RETINEX_THRESHOLD;Threshold !TP_RETINEX_THRESHOLD_TOOLTIP;Limits in/out.\nIn = image source,\nOut = image gauss. !TP_RETINEX_TLABEL;TM Min=%1 Max=%2 Mean=%3 Sigma=%4 !TP_RETINEX_TLABEL2;TM Tm=%1 TM=%2 @@ -2129,26 +2176,17 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_TRANSMISSION;Transmission map !TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. !TP_RETINEX_UNIFORM;Uniform -!TP_RETINEX_VARIANCE;Contrast !TP_RETINEX_VARIANCE_TOOLTIP;Low variance increase local contrast and saturation, but can lead to artifacts. -!TP_RETINEX_VIEW;Process -!TP_RETINEX_VIEW_MASK;Mask !TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. !TP_RETINEX_VIEW_NONE;Standard !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed -!TP_RETINEX_VIEW_UNSHARP;Unsharp mask !TP_SHARPENING_BLUR;Blur radius -!TP_SHARPENING_CONTRAST;Contrast threshold !TP_SHARPENING_ITERCHECK;Auto limit iterations !TP_SHARPENING_RADIUS_BOOST;Corner radius boost -!TP_SHARPENMICRO_CONTRAST;Contrast threshold !TP_SOFTLIGHT_LABEL;Soft Light -!TP_SOFTLIGHT_STRENGTH;Strength -!TP_TM_FATTAL_AMOUNT;Amount !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression -!TP_TM_FATTAL_THRESHOLD;Detail !TP_WAVELET_1;Level 1 !TP_WAVELET_2;Level 2 !TP_WAVELET_3;Level 3 @@ -2169,7 +2207,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. !TP_WAVELET_BALCHRO;Chroma balance !TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. -!TP_WAVELET_BANONE;None !TP_WAVELET_BASLI;Slider !TP_WAVELET_BATYPE;Contrast balance method !TP_WAVELET_CBENAB;Toning and Color Balance @@ -2186,15 +2223,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_CHSL;Sliders !TP_WAVELET_CHTYPE;Chrominance method !TP_WAVELET_COLORT;Opacity Red-Green -!TP_WAVELET_COMPCONT;Contrast !TP_WAVELET_COMPGAMMA;Compression gamma !TP_WAVELET_COMPGAMMA_TOOLTIP;Adjusting the gamma of the residual image allows you to equilibrate the data and histogram. !TP_WAVELET_COMPTM;Tone mapping !TP_WAVELET_CONTEDIT;'After' contrast curve -!TP_WAVELET_CONTR;Gamut -!TP_WAVELET_CONTRA;Contrast -!TP_WAVELET_CONTRAST_MINUS;Contrast - -!TP_WAVELET_CONTRAST_PLUS;Contrast + !TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. !TP_WAVELET_CTYPE;Chrominance control !TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). @@ -2212,33 +2244,21 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_DAUB10;D10 - medium !TP_WAVELET_DAUB14;D14 - high !TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. -!TP_WAVELET_DONE;Vertical -!TP_WAVELET_DTHR;Diagonal -!TP_WAVELET_DTWO;Horizontal -!TP_WAVELET_EDCU;Curve -!TP_WAVELET_EDGCONT;Local contrast !TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. -!TP_WAVELET_EDGE;Edge Sharpness !TP_WAVELET_EDGEAMPLI;Base amplification !TP_WAVELET_EDGEDETECT;Gradient sensitivity -!TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) -!TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) !TP_WAVELET_EDGEDETECTTHR_TOOLTIP;This adjuster lets you target edge detection for example to avoid applying edge sharpness to fine details, such as noise in the sky. !TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. !TP_WAVELET_EDGESENSI;Edge sensitivity !TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. !TP_WAVELET_EDGTHRESH;Detail !TP_WAVELET_EDGTHRESH_TOOLTIP;Change the repartition between the first levels and the others. The higher the threshold the more the action is centered on the first levels. Be careful with negative values, they increase the action of high levels and can introduce artifacts. -!TP_WAVELET_EDRAD;Radius !TP_WAVELET_EDRAD_TOOLTIP;This radius adjustment is very different from those in other sharpening tools. Its value is compared to each level through a complex function. In this sense, a value of zero still has an effect. -!TP_WAVELET_EDSL;Threshold Sliders !TP_WAVELET_EDTYPE;Local contrast method -!TP_WAVELET_EDVAL;Strength !TP_WAVELET_FINAL;Final Touchup !TP_WAVELET_FINEST;Finest !TP_WAVELET_HIGHLIGHT;Highlight luminance range !TP_WAVELET_HS1;Whole luminance range -!TP_WAVELET_HS2;Shadows/Highlights !TP_WAVELET_HUESKIN;Skin hue !TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. !TP_WAVELET_HUESKY;Sky hue @@ -2254,12 +2274,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_LEVDIR_SUP;Above the level !TP_WAVELET_LEVELS;Wavelet levels !TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. -!TP_WAVELET_LEVF;Contrast !TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 -!TP_WAVELET_LEVONE;Level 2 -!TP_WAVELET_LEVTHRE;Level 4 -!TP_WAVELET_LEVTWO;Level 3 -!TP_WAVELET_LEVZERO;Level 1 !TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength !TP_WAVELET_LIPST;Enhanced algoritm !TP_WAVELET_LOWLIGHT;Shadow luminance range @@ -2270,10 +2285,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_NEUTRAL;Neutral !TP_WAVELET_NOIS;Denoise !TP_WAVELET_NOISE;Denoise and Refine -!TP_WAVELET_NPHIGH;High -!TP_WAVELET_NPLOW;Low -!TP_WAVELET_NPNONE;None -!TP_WAVELET_NPTYPE;Neighboring pixels !TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. !TP_WAVELET_OPACITY;Opacity Blue-Yellow !TP_WAVELET_OPACITYW;Contrast balance d/v-h curve @@ -2285,8 +2296,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_RE2;Unchanged !TP_WAVELET_RE3;Reduced !TP_WAVELET_RESCHRO;Chroma -!TP_WAVELET_RESCON;Shadows -!TP_WAVELET_RESCONH;Highlights !TP_WAVELET_RESID;Residual Image !TP_WAVELET_SAT;Saturated chroma !TP_WAVELET_SETTINGS;Wavelet Settings @@ -2294,15 +2303,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. !TP_WAVELET_SKY;Sky targetting/protection !TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. -!TP_WAVELET_STREN;Strength -!TP_WAVELET_STRENGTH;Strength -!TP_WAVELET_SUPE;Extra -!TP_WAVELET_THR;Shadows threshold -!TP_WAVELET_THRESHOLD;Highlight levels -!TP_WAVELET_THRESHOLD2;Shadow levels !TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). !TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. -!TP_WAVELET_THRH;Highlights threshold !TP_WAVELET_TILESBIG;Big tiles !TP_WAVELET_TILESFULL;Full image !TP_WAVELET_TILESIZE;Tiling method @@ -2312,6 +2314,5 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. !TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning -!TP_WBALANCE_PICKER;Pick !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". From 1f0f05a74294e9ce83c2c3603d0b2d4c193e37cc Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Feb 2020 14:10:49 +0100 Subject: [PATCH 184/453] Updated splash screen SVG splash screen template moved to splash_template.svg splash.svg now contains just the relevant part shown by RawTherapee. splash.svg updated for 5.8. --- rtdata/images/svg/splash.svg | 289 +------ rtdata/images/svg/splash_template.svg | 1078 +++++++++++++++++++++++++ 2 files changed, 1110 insertions(+), 257 deletions(-) create mode 100644 rtdata/images/svg/splash_template.svg diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 0989bfdb6..0321d61a0 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -479,9 +479,9 @@ borderopacity="1.0" inkscape:pageopacity="0.0" inkscape:pageshadow="2" - inkscape:zoom="0.90075514" - inkscape:cx="-60.984253" - inkscape:cy="136.82017" + inkscape:zoom="2.3815029" + inkscape:cx="276" + inkscape:cy="173" inkscape:document-units="px" inkscape:current-layer="layer1" showgrid="false" @@ -606,15 +606,6 @@ inkscape:groupmode="layer" id="layer1" transform="translate(0,-205.45415)"> - - Each logo element has a filter effect (ring*). Additionally, the logo as a whole (all elements grouped) also has a filter effect (logo glow)."Raw": font Eras Ultra ITC, 60pt, -3px spacing between characters."Therapee": font Eras Medium ITC, 60pt, +1px spacing between characters.Version: font Eras Bold ITC, 64pt, skewed -3°. RawTherapee splash screen design version 1.2 from 2019-02-27 | www.rawtherapee.com - - + id="text3689" /> - - GNU GPLv3 - - Development - - - Release Candidate 1 - - 5 - . 8 - Therapee - Raw - Therapee - Raw - - - - - - - - - - - - - - - - - - - + + + + + + + + + diff --git a/rtdata/images/svg/splash_template.svg b/rtdata/images/svg/splash_template.svg new file mode 100644 index 000000000..8044343c0 --- /dev/null +++ b/rtdata/images/svg/splash_template.svg @@ -0,0 +1,1078 @@ + + + + + RawTherapee splash screen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + RawTherapee splash screen + + + + Maciej Dworak + + + www.rawtherapee.com + + + + + + + + + + + + + + + + Each logo element has a filter effect (ring*). Additionally, the logo as a whole (all elements grouped) also has a filter effect (logo glow)."Raw": font Eras Ultra ITC, 60pt, -3px spacing between characters."Therapee": font Eras Medium ITC, 60pt, +1px spacing between characters.Version: font Eras Bold ITC, 64pt, skewed -3°. RawTherapee splash screen design version 1.2 from 2019-02-27 | www.rawtherapee.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + GNU GPLv3 + + Development + + + Release Candidate 1 + + 5 + . 9 + Therapee + Raw + Therapee + Raw + + + + + + + + + + + + From 94ed8a2fdb6c0d6e3480aa7b1929a1e75079584d Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Feb 2020 14:12:07 +0100 Subject: [PATCH 185/453] Updated appdata file for 5.8 --- com.rawtherapee.RawTherapee.appdata.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index 3a55109ba..5d6346726 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -19,13 +19,12 @@ https://www.paypal.me/rawtherapee https://rawpedia.rawtherapee.com https://www.rawtherapee.com - https://discuss.pixls.us/t/localization-how-to-translate-rawtherapee-and-rawpedia/2594 + https://rawpedia.rawtherapee.com/Main_Page#Localization rawtherapee.desktop + - - From 3c955e6db3183372b8070034223da0f1ae46be62 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Feb 2020 14:13:29 +0100 Subject: [PATCH 186/453] Preparing for release 5.8 --- RELEASE_NOTES.txt | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 33a984c1c..9aa5a5ac8 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,17 +1,10 @@ -RAWTHERAPEE 5.7-dev RELEASE NOTES +RAWTHERAPEE 5.8 RELEASE NOTES -This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them. +This is RawTherapee 5.8, released on 2020-02-02. -Start by reading the "Getting Started" article on RawPedia: +Start by reading the "Getting Started" article in RawPedia: https://rawpedia.rawtherapee.com/ -While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that: -- Development versions only had limited testing, so there may be bugs unknown to us. -- You should report these bugs so that they get fixed for the next stable release. See - www.rawpedia.rawtherapee.com/How_to_write_useful_bug_reports -- The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version. -- Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of. - NEWS RELEVANT TO PHOTOGRAPHERS @@ -27,14 +20,16 @@ In order to use RawTherapee efficiently you should know that: - There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page! New features since 5.7: -- TODO +- Automatically recover detail lost to lens blur (diffraction) using the new Capture Sharpening tool, located in the "Raw" tab. It takes place right after demosaicing, and as it works in linear space it is not prone to haloing. Capture Sharpening in combination with Post-Resize Sharpening allows for detailed and crisp results. +- CR3 support: image data is decoded so you can process your raw files, but metadata is not supported yet. If you have an ICC or DCP input profile for your CR3-producing camera, you will need to point RawTherapee to it manually (Color tab > Color Management > Input Profile > Custom). +- Improvements of various camera models (new DCP dual-illuminant input profiles, raw crops, white levels, etc.), speedups and optimizations to various tools, better memory management, various bug fixes. See the git log for details. NEWS RELEVANT TO PACKAGE MAINTAINERS New since 5.7: -- TODO +- Optionally link against libtcmalloc.so which comes with Google's perftools, to fix issues where glibc won't give memory back to the OS. Use via the CMake options `ENABLE_TCMALLOC` and `TCMALLOC_LIB_DIR`. In general: - To get the source code, either clone from git or use the tarball from https://rawtherapee.com/shared/source/ . Do not use the auto-generated GitHub release tarballs. From d6fb059382d3a4b392d8cb9fed8f0f8b0435d1ae Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Feb 2020 14:34:46 +0100 Subject: [PATCH 187/453] Revert version in splash screen Revert version shown in splash screen in dev branch from "5.8" to "5.7 development" as 5.8 is not tagged yet. --- rtdata/images/svg/splash.svg | 147 +++++++++++++++++++++++++---------- 1 file changed, 106 insertions(+), 41 deletions(-) diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 0321d61a0..27b504af9 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -442,34 +442,34 @@ operator="over" /> + y="-0.5" + x="-0.5" + inkscape:label="RawTherapee white" + id="filter4749-5" + style="color-interpolation-filters:sRGB"> + id="feFlood4751-6" /> + in="flood" + in2="SourceGraphic" + id="feComposite4753-2" /> + id="feGaussianBlur4755-9" /> + in="SourceGraphic" + in2="blur" + id="feComposite4757-1" /> + aria-label="5" + transform="matrix(0.24127119,0,0.01264448,0.24127122,-4.8837843,265.42414)" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4749-5);enable-background:new" + id="text2124"> + + + + + + + + aria-label="Development" + transform="skewX(3)" + style="font-style:normal;font-weight:normal;font-size:12.80000019px;line-height:0%;font-family:sans-serif;text-align:end;letter-spacing:-1.06666672px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06666672px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + id="text2132"> - - + inkscape:connector-curvature="0" + d="m 491.97892,49.720543 q 0.18333,-1.9 0.25,-3.041667 0.1,-1.699999 0.2,-4.399999 0.075,-2.066667 0.075,-2.958333 v -0.975 q 0.975,0.025 1.68333,0.025 0.68333,0 1.79167,-0.03333 1.10833,-0.04167 2.08333,-0.04167 1.11667,0 1.95833,0.133333 0.84167,0.133333 1.56667,0.55 0.73333,0.416667 1.225,1.091666 0.49167,0.675 0.75,1.583334 0.25833,0.9 0.25833,1.858333 0,0.941667 -0.2,1.816667 -0.2,0.866666 -0.55833,1.566666 -0.35833,0.7 -0.84167,1.208333 -0.475,0.5 -1.09166,0.858334 -0.45834,0.266666 -0.925,0.416666 -0.46667,0.15 -1.275,0.241667 -0.9,0.1 -2.04167,0.1 l -3.36667,-0.025 q -0.475,0 -1.54166,0.025 z m 3.6,-2.508333 q 0.45833,0.04167 0.95833,0.04167 0.85,0 1.51667,-0.15 0.66666,-0.15 1.16666,-0.641666 0.50834,-0.491667 0.75,-1.258333 0.24167,-0.775 0.24167,-1.583334 0,-0.991666 -0.35833,-1.666666 -0.35834,-0.683334 -0.95834,-0.95 -0.59166,-0.266667 -1.61666,-0.266667 -0.6,0 -1.41667,0.05 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px" + id="path2144" /> + inkscape:connector-curvature="0" + d="m 512.24558,47.203876 q -0.10833,0.5 -0.41666,2.416667 -0.96667,0.191667 -1.625,0.25 -0.65834,0.06667 -1.33334,0.06667 -0.99166,0 -1.825,-0.141667 -0.83333,-0.133333 -1.44166,-0.483333 -0.6,-0.35 -1.00834,-0.866667 -0.40833,-0.525 -0.625,-1.241667 -0.20833,-0.716666 -0.20833,-1.475 0,-1.066666 0.425,-2.083333 0.425,-1.025 1.09167,-1.6 0.675,-0.575 1.55,-0.816666 0.875,-0.241667 1.79166,-0.241667 0.95,0 1.80834,0.225 0.86666,0.216667 1.46666,0.766667 0.6,0.55 0.85,1.241666 0.25834,0.691667 0.25834,1.491667 0,0.475 -0.10834,1.058333 l -5.84166,0.0083 q -0.008,0.133334 -0.008,0.241667 0,0.9 0.64167,1.325 0.64167,0.425 1.56667,0.425 0.55,0 1.25,-0.125 0.70833,-0.133333 1.74166,-0.441667 z m -5.125,-2.699999 h 2.75 q 0.008,-0.141667 0.008,-0.241667 0,-0.433333 -0.15834,-0.741667 -0.15,-0.308333 -0.44166,-0.45 -0.28334,-0.141666 -0.64167,-0.141666 -0.25,0 -0.48333,0.08333 -0.23334,0.075 -0.425,0.233333 -0.18334,0.15 -0.30834,0.35 -0.125,0.2 -0.18333,0.391667 -0.0583,0.183333 -0.11667,0.516667 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px" + id="path2146" /> + inkscape:connector-curvature="0" + d="m 515.32058,49.720543 -0.88333,-2.733333 -1.99167,-5.775 q 0.95,0.01667 1.76667,0.01667 0.85,0 1.6,-0.01667 0.14167,0.575 0.55833,2.016667 0.41667,1.433333 0.91667,3.416666 l 0.21666,-0.691667 q 0.05,-0.125 0.39167,-1.066666 l 1.325,-3.675 q 0.9,0.01667 1.7,0.01667 0.825,0 1.71667,-0.01667 l -1.15,2.475 -2.14167,4.916666 -0.45833,1.116667 q -0.98334,-0.01667 -1.73334,-0.01667 -0.81666,0 -1.83333,0.01667 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.06666565px;line-height:110.00000238%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06666672px;text-anchor:end;fill:#ffffff;stroke-width:1.06666672px" + id="path2148" /> + + + + + + + + From efd28baa3a440e5b110c14e8cc3f9f629df79f3c Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 2 Feb 2020 06:02:49 -0800 Subject: [PATCH 188/453] macOS: specify certain library destinations --- tools/osx/macosx_bundle.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 44f351080..f21915cab 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -163,7 +163,7 @@ ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg # Copy libexpat into the app bundle (which is keg-only) -if [[ -d /usr/local/Cellar/expat ]]; then ditto /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else ditto "${EXPATLIB}" "${CONTENTS}/Frameworks"; fi +if [[ -d /usr/local/Cellar/expat ]]; then ditto /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else ditto "${EXPATLIB}" "${CONTENTS}/Frameworks/libexpat.1.dylib"; fi # Copy libz into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libz.1.dylib "${CONTENTS}/Frameworks" @@ -176,7 +176,7 @@ mkdir -p "${RESOURCES}/share/lensfun" ditto ${LOCAL_PREFIX}/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" # Copy liblensfun to Frameworks -ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks" +ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/liblensfun.2.dylib" # Copy libomp to Frameworks ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" From 160aae721569cb1f47a4261a9fbecd78983be471 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sun, 2 Feb 2020 23:23:31 +0100 Subject: [PATCH 189/453] Polish translation updated MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated by Bartłomiej Wiśniowski / bwisn Closes #5631 --- rtdata/languages/Polish | 459 ++++++++++++++++++++-------------------- 1 file changed, 230 insertions(+), 229 deletions(-) diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 3c4607cf7..b4e1a2281 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -8,6 +8,7 @@ #08 2013-05-21 DrSlony #09 2014-10-16 DrSlony #10 2020-02-02 Bartłomiej Wiśniowski +#11 2020-02-02 Bartłomiej Wiśniowski ABOUT_TAB_BUILD;Wersja ABOUT_TAB_CREDITS;Zasługi @@ -39,8 +40,11 @@ DIRBROWSER_FOLDERS;Katalogi DYNPROFILEEDITOR_DELETE;Usuń DYNPROFILEEDITOR_EDIT;Edytuj DYNPROFILEEDITOR_IMGTYPE_ANY;Każdy +DYNPROFILEEDITOR_IMGTYPE_STD;Standardowy DYNPROFILEEDITOR_MOVE_DOWN;Przesuń w dół DYNPROFILEEDITOR_MOVE_UP;Przesuń w górę +DYNPROFILEEDITOR_NEW;Nowy +DYNPROFILEEDITOR_PROFILE;Profil przetwarzania EDITWINDOW_TITLE;Edytor obrazu EDIT_OBJECT_TOOLTIP;Wyświetla widżet na podglądzie który ułatwia ustawienie narzędzia. EDIT_PIPETTE_TOOLTIP;Aby dodać punkt do krzywej należy trzymac wciśnięty klawisz Ctrl podczas kliknięcia lewym guzikiem myszki na danym obszarze głównego podglądu.\nAby zmienic ustawienie już istniejącego punktu, należy trzymać wduszony klawisz Ctrl podczas kliknięcia lewym guzikiem myszki na danym obszarze głównego podglądu, następnie należy puścić klawisz Ctrl (chyba że chodzi nam o bardzo precyzyjne ustawienie dzieki spowolnieniu jakie trzymanie klawisza Ctrl nam daje) i podczas trzymania lewego guzika myszki należy myszką ruszać w pionie aby odpowiednio manipulować punktem w pionie. @@ -49,6 +53,7 @@ EXIFFILTER_CAMERA;Aparat EXIFFILTER_EXPOSURECOMPENSATION;Korekcja ekspozycji (EV) EXIFFILTER_FILETYPE;Typ pliku EXIFFILTER_FOCALLEN;Wartość ogniskowej +EXIFFILTER_IMAGETYPE;Typ obrazu EXIFFILTER_ISO;ISO EXIFFILTER_LENS;Obiektyw EXIFFILTER_METADATAFILTER;Włącz filtry metadanych @@ -66,6 +71,7 @@ EXIFPANEL_RESET;Przywróć EXIFPANEL_RESETALL;Przywróć wszystkie EXIFPANEL_RESETALLHINT;Przywraca orginalne wartości etykiet EXIFPANEL_RESETHINT;Przywraca orginalne wartości wybranych etykiet +EXIFPANEL_SHOWALL;Pokaż wszystkie EXIFPANEL_SUBDIRECTORY;Podkatalog EXPORT_BYPASS_ALL;Zaznacz / Odznacz wszystkie EXPORT_BYPASS_DEFRINGE;Pomiń usuwanie widma @@ -97,6 +103,8 @@ FILEBROWSER_AUTODARKFRAME;Automatyczne użycie czarnej klatki FILEBROWSER_AUTOFLATFIELD;Automatyczne użycie klatki typu puste pole FILEBROWSER_BROWSEPATHHINT;Umożliwia przeglądanie wprowadzonej ścieżki\nCtrl-o zaznaczenie\nEnter, Ctrl-Enter (w menedżerze plików) przeglądanie\nSkróty:\n ~ - katalog domowy użytkownika\n ! - katalog z obrazami użytkownia FILEBROWSER_CACHE;Pamięć podręczna +FILEBROWSER_CACHECLEARFROMFULL;Wyczyść wszystkie profile +FILEBROWSER_CACHECLEARFROMPARTIAL;Wyczyść wszystkie, oprócz znajdujących się w pamięci podręcznej FILEBROWSER_CLEARPROFILE;Wyczyść profil FILEBROWSER_COLORLABEL_TOOLTIP;Kolorowe etykiety\n\nUżyj za pomocą rozwijanej listy lub skrótów:\nShift-Ctrl-0 No Color\nShift-Ctrl-1 Czerwona\nShift-Ctrl-2 Żółta\nShift-Ctrl-3 Zielona\nShift-Ctrl-4 Niebieska\nShift-Ctrl-5 Purpurowa FILEBROWSER_COPYPROFILE;Kopiuj profil @@ -104,6 +112,7 @@ FILEBROWSER_CURRENT_NAME;Obecna nazwa: FILEBROWSER_DARKFRAME;Czarna klatka FILEBROWSER_DELETEDIALOG_HEADER;Potwierdzenie usunięcia pliku FILEBROWSER_EMPTYTRASH;Wyczyść kosz +FILEBROWSER_EMPTYTRASHHINT;Usuwa na zawsze pliki znajdujące się w koszu. FILEBROWSER_EXTPROGMENU;Otwórz za pomocą FILEBROWSER_FLATFIELD;Puste pole FILEBROWSER_MOVETODARKFDIR;Przenieś do katalogu zawierającego czarne klatki @@ -423,6 +432,7 @@ HISTORY_MSG_199;CAM02 - Histogramy wyjściowe HISTORY_MSG_200;CAMO2 - Tone mapping HISTORY_MSG_201;RS - Chrominancja - R&G HISTORY_MSG_202;RS - Chrominancja - B&Y +HISTORY_MSG_203;NR - Przestrzeń kolorów HISTORY_MSG_204;Kroki poprawy LMMSE HISTORY_MSG_205;CAM02 - Gorące/uszkodzone px HISTORY_MSG_206;CAT02 - Auto luminancja sceny @@ -472,6 +482,7 @@ HISTORY_MSG_252;KwgPS - Odcienie skóry HISTORY_MSG_253;KwgPS - Redukcja błędów HISTORY_MSG_254;KwgPS - Odcienie skóry HISTORY_MSG_255;RS - Filtr mediana +HISTORY_MSG_256;NR - Mediana - Typ HISTORY_MSG_257;Koloryzacja HISTORY_MSG_258;Koloryzacja - Kolor HISTORY_MSG_259;Koloryzacja - Przezroczystość @@ -511,26 +522,66 @@ HISTORY_MSG_293;Symulacja Kliszy HISTORY_MSG_294;Symulacja Kliszy - Siła HISTORY_MSG_295;Symulacja Kliszy - Klisza HISTORY_MSG_296;RS - Modulacja luminancji +HISTORY_MSG_297;NR - Tryb HISTORY_MSG_298;Filtrowanie martwych pikseli +HISTORY_MSG_299;NR - Krzywa chrominancji +HISTORY_MSG_300;- +HISTORY_MSG_301;NR - Kontrola luminancji +HISTORY_MSG_302;NR - Metoda chrominancji +HISTORY_MSG_303;NR - Metoda chrominancji +HISTORY_MSG_304;W - Poziomy kontrastu +HISTORY_MSG_306;W - Proces +HISTORY_MSG_307;W - Proces +HISTORY_MSG_308;W - Kierunek procesu +HISTORY_MSG_309;W - ES - Detale +HISTORY_MSG_312;W - Residual - Próg cieni +HISTORY_MSG_315;W - Residual - Kontrast +HISTORY_MSG_317;W - Gamut - Odcień skóry HISTORY_MSG_318;W - Kontrast - Poziom podświetleń HISTORY_MSG_319;W - Kontrast - Zakres podświetleń HISTORY_MSG_320;W - Kontrast - Zakres cieni HISTORY_MSG_321;W - Kontrast - Poziom cieni HISTORY_MSG_322;W - Gamut - Unikaj przesunięcia kolorów HISTORY_MSG_323;W - ES - Kontrast lokalny +HISTORY_MSG_324;W - Chroma - Pastelowe +HISTORY_MSG_325;W - Chroma - Nasycone HISTORY_MSG_326;W - Chroma - Metoda +HISTORY_MSG_333;W - Residual - Cienie +HISTORY_MSG_334;W - Residual - Chrominancja +HISTORY_MSG_335;W - Residual - Podświetlenia +HISTORY_MSG_336;W - Residual - Próg podświetleń +HISTORY_MSG_337;W - Residual - Odcień nieba HISTORY_MSG_338;W - ES - Promień HISTORY_MSG_339;W - ES - Siła HISTORY_MSG_340;W - Siła +HISTORY_MSG_343;W - Poziomy chrominancji +HISTORY_MSG_345;W - ES - Kontrast lokalny +HISTORY_MSG_346;W - ES - Tryb kontrastu lokalnego +HISTORY_MSG_347;W - Odszumianie - Poziom 1 +HISTORY_MSG_348;W - Odszumianie - Poziom 2 +HISTORY_MSG_349;W - Odszumianie - Poziom 3 +HISTORY_MSG_352;W - Tło HISTORY_MSG_355;W - ES - Niski próg HISTORY_MSG_356;W - ES - Wysoki próg HISTORY_MSG_359;Hot/Dead - Próg +HISTORY_MSG_362;W - Residual - Metoda kompresji +HISTORY_MSG_363;W - Residual - Siła kompersji +HISTORY_MSG_364;W - Final - Balans kontrastu +HISTORY_MSG_368;W - Final - Balans kontrastu +HISTORY_MSG_369;W - Final - Metoda balansu +HISTORY_MSG_370;W - Final - Krzywa lokalnego kontrastu HISTORY_MSG_372;PRS USM - Promień HISTORY_MSG_373;PRS USM - Ilość HISTORY_MSG_374;PRS USM - Próg +HISTORY_MSG_376;PRS USM - Promień wykrywania krawędzi +HISTORY_MSG_377;PRS USM - Tolerancja krawędzi HISTORY_MSG_380;PRS - Metoda HISTORY_MSG_381;PRS RLD - Promień HISTORY_MSG_382;PRS RLD - Ilość +HISTORY_MSG_384;PRS RLD - Iteracje +HISTORY_MSG_385;W - Residual - Balans kolorów +HISTORY_MSG_392;W - Residual - Balans kolorów +HISTORY_MSG_405;W - Odszumianie - Poziom 4 HISTORY_MSG_407;Retinex - Metoda HISTORY_MSG_408;Retinex - Promień HISTORY_MSG_409;Retinex - Contrast @@ -538,6 +589,9 @@ HISTORY_MSG_410;Retinex - Przesunięcie HISTORY_MSG_411;Retinex - Siła HISTORY_MSG_413;Retinex - Kontrast HISTORY_MSG_418;Retinex - Próg +HISTORY_MSG_419;Retinex - Przestrzeń kolorów +HISTORY_MSG_426;Retinex - Wyrównywanie odcieni +HISTORY_MSG_429;Retinex - Iteracje HISTORY_MSG_432;Retinex - M - Podświetlenia HISTORY_MSG_434;Retinex - M - Cienie HISTORY_MSG_436;Retinex - M - Promień @@ -546,6 +600,11 @@ HISTORY_MSG_438;Retinex - M - Wyrównywanie HISTORY_MSG_439;Retinex - Proces HISTORY_MSG_440;CbDL - Metoda HISTORY_MSG_442;Retinex - Skala +HISTORY_MSG_449;PS - Adaptacja ISO +HISTORY_MSG_452;PS - Pokaż ruch +HISTORY_MSG_471;PS - Korekcja ruchu +HISTORY_MSG_474;PS - Wyrównaj +HISTORY_MSG_475;PS - Wyrównaj kanał HISTORY_MSG_485;Korekcja obiektywu HISTORY_MSG_486;Korekcja obiektywu - Aparat HISTORY_MSG_487;Korekcja obiektywu - Obiektyw @@ -565,33 +624,63 @@ HISTORY_MSG_LOCALCONTRAST_ENABLED;Kontrast lokalny HISTORY_MSG_LOCALCONTRAST_LIGHTNESS;Kontrast lokalny - Jasne miejsca HISTORY_MSG_LOCALCONTRAST_RADIUS;Kontrast lokalny - Promień HISTORY_MSG_MICROCONTRAST_CONTRAST;Mikrokontrast - Próg kontrastu +HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CS - Automatyczny próg +HISTORY_MSG_PDSHARPEN_AUTO_RADIUS;CS - Automatyczny promień +HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Automatycznie limituj iteracje +HISTORY_MSG_PDSHARPEN_CONTRAST;CS - Próg kontrastu +HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iteracje HISTORY_MSG_PDSHARPEN_RADIUS;CS - Promień +HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Próg kontrastu HISTORY_NEWSNAPSHOT;Nowa migawka HISTORY_NEWSNAPSHOT_TOOLTIP;Skrót: Alt-s HISTORY_SNAPSHOT;Migawka HISTORY_SNAPSHOTS;Migawki ICCPROFCREATOR_COPYRIGHT;Prawa autorskie: +ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Przywróć prawa autorskie do domyślnych, przyznanych dla "RawTherapee, CC0" ICCPROFCREATOR_CUSTOM;Własny ICCPROFCREATOR_DESCRIPTION;Opis: +ICCPROFCREATOR_GAMMA;Gamma ICCPROFCREATOR_ICCVERSION;Wersja ICC: +ICCPROFCREATOR_ILL_41;D41 +ICCPROFCREATOR_ILL_50;D50 +ICCPROFCREATOR_ILL_55;D55 +ICCPROFCREATOR_ILL_60;D60 +ICCPROFCREATOR_ILL_65;D65 +ICCPROFCREATOR_ILL_80;D80 ICCPROFCREATOR_ILL_DEF;Domyślne +ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) +ICCPROFCREATOR_PRIM_BEST;BestRGB +ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_PROPH;Prophoto +ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PROF_V2;ICC v2 +ICCPROFCREATOR_PROF_V4;ICC v4 ICCPROFCREATOR_SAVEDIALOG_TITLE;Zapisz profil ICC jako... IPTCPANEL_CATEGORY;Kategoria IPTCPANEL_CITY;Miasto +IPTCPANEL_CITYHINT;Wprowadź nazwę miasta uwiecznionego na zdjęciu. IPTCPANEL_COPYHINT;Kopiuje ustawienia IPTC do schowka IPTCPANEL_COUNTRY;Kraj +IPTCPANEL_CREATOR;Twórca IPTCPANEL_CREDIT;Zasługa IPTCPANEL_CREDITHINT;Identyfikuje dostawcę zdjęcia, niekoniecznie właściciela lub autora (Credit). IPTCPANEL_DATECREATED;Data utworzenia +IPTCPANEL_DATECREATEDHINT;Wprowadź datę zrobienia zdjęcia. +IPTCPANEL_DESCRIPTION;Opis IPTCPANEL_EMBEDDED;Osadzony IPTCPANEL_EMBEDDEDHINT;Resetuje dane IPTC do domyślnych ustawień osadzonych w orginalnym zdjęciu IPTCPANEL_HEADLINE;Nagłówek IPTCPANEL_INSTRUCTIONS;Instrukcje IPTCPANEL_KEYWORDS;Słowa kluczowe IPTCPANEL_PASTEHINT;Wstawia ustawienia IPTC ze schowka +IPTCPANEL_PROVINCE;Województwo lub stan IPTCPANEL_RESET;Reset IPTCPANEL_RESETHINT;Resetuje do domyślnych ustawień profilu IPTCPANEL_SOURCE;Źródło +IPTCPANEL_SUPPCATEGORIES;Dodatkowe kategorie IPTCPANEL_TITLE;Tytuł MAIN_BUTTON_FULLSCREEN;Pełen ekran MAIN_BUTTON_ICCPROFCREATOR;Kreator profili ICC @@ -601,6 +690,7 @@ MAIN_BUTTON_NAVSYNC_TOOLTIP;Synchronizuj Nawigator Zdjęć z Edytorem aby ukaza MAIN_BUTTON_PREFERENCES;Ustawienia MAIN_BUTTON_PUTTOQUEUE_TOOLTIP;Dodaj bieżące zdjęcie do kolejki przetwarzania Ctrl+B MAIN_BUTTON_SAVE_TOOLTIP;Zapisz bieżące zdjęcieCtrl+S +MAIN_BUTTON_SENDTOEDITOR;Edytuj obraz w zewnętrznym edytorze MAIN_BUTTON_SENDTOEDITOR_TOOLTIP;Otwórz bieżące zdjęcie w zewnętrznym edytorze.\nSkrót: Ctrl+e MAIN_BUTTON_SHOWHIDESIDEPANELS_TOOLTIP;Pokaż/Ukryj wszystkie panele boczne.\nSkrót: m MAIN_BUTTON_UNFULLSCREEN;Zwolnij ekran @@ -641,6 +731,7 @@ MAIN_TAB_EXPOSURE_TOOLTIP;Skrót: Alt-e MAIN_TAB_FAVORITES;Ulubione MAIN_TAB_FAVORITES_TOOLTIP;Skrót: Alt-u MAIN_TAB_FILTER; Filtr +MAIN_TAB_INSPECT; Inspekcja MAIN_TAB_IPTC;IPTC MAIN_TAB_METADATA;Metadane MAIN_TAB_METADATA_TOOLTIP;Skrót: Alt-m @@ -666,6 +757,7 @@ MAIN_TOOLTIP_SHOWHIDERP1;Pokaż/Ukryj prawy panel.\nSkrót: Alt-l MAIN_TOOLTIP_SHOWHIDETP1;Pokaż/Ukryj górny panel.\nSkrót: Shift-l MAIN_TOOLTIP_THRESHOLD;Próg MAIN_TOOLTIP_TOGGLE;Przełącz widok Przed/Po.\nSkrót: Shift-b +MONITOR_PROFILE_SYSTEM;Ustawienia domyślne NAVIGATOR_B;B: NAVIGATOR_G;G: NAVIGATOR_H;H: @@ -678,6 +770,7 @@ NAVIGATOR_S;S: NAVIGATOR_V;V: NAVIGATOR_XY_FULL;Szerokość: %1, Wysokość: %2 NAVIGATOR_XY_NA;x: --, y: -- +PARTIALPASTE_ADVANCEDGROUP;Ustawienia zaawansowane PARTIALPASTE_BASICGROUP;Podstawowe ustawienia PARTIALPASTE_CACORRECTION;Korekcja aberacji chr. PARTIALPASTE_CHANNELMIXER;Mieszacz kanałów @@ -757,11 +850,25 @@ PREFERENCES_BEHAVIOR;Zachowanie PREFERENCES_BEHSETALL;'Ustaw' wszystkie PREFERENCES_BEHSETALLHINT;Ustaw wszystkie narzędzia w tryb Ustaw.\nZmiany parametrów w panelu edycji zbiorczej zostaną traktowane jako absolutne, nie biorąc pod uwagę poprzednich wartości. PREFERENCES_CACHECLEAR;Wyczyść +PREFERENCES_CACHECLEAR_ALL;Usuń wszystkie pliki z pamięci podręcznej: +PREFERENCES_CACHECLEAR_ONLYPROFILES;Usuń wszystkie profile przetwarzania z pamięci podręcznej: PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury +PREFERENCES_CHUNKSIZE_RAW_AMAZE;Demozaikowanie AMaZE +PREFERENCES_CHUNKSIZE_RAW_RCD;Demozaikowanie RCD +PREFERENCES_CHUNKSIZE_RAW_XT;Demozaikowanie Xtrans +PREFERENCES_CHUNKSIZE_RGB;Przetwarzanie RGB PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT +PREFERENCES_CMMBPC;Kompensacja punktu czerni +PREFERENCES_CROP_GUIDES_FRAME;Ramka +PREFERENCES_CROP_GUIDES_FULL;Oryginał +PREFERENCES_CROP_GUIDES_NONE;Brak +PREFERENCES_CURVEBBOXPOS_ABOVE;Powyżej +PREFERENCES_CURVEBBOXPOS_BELOW;Poniżej +PREFERENCES_CURVEBBOXPOS_LEFT;Z lewej +PREFERENCES_CURVEBBOXPOS_RIGHT;Z prawej PREFERENCES_CUSTPROFBUILD;Zewnętrzny kreator profilów przetwarzania PREFERENCES_CUSTPROFBUILDHINT;Plik wykonywalny (lub skrypt) uruchamiany kiedy trzeba wygenerować profil przetwarzania dla zdjęcia.\n\nScieżka pliku nośnego (w stylu *.ini czyli sekcje i klucze/parametry) występuje jako parametr wiersza poleceń. Plik ten zawiera przeróżne parametry oraz dane Exif dzięki którym odpowiedni program bądź skrypt może wygenerować plik PP3 według reguł.\n\nUWAGA: Twoją odpowiedzialnością jest prawidłowe użycie cudzysłowiów w przypadku ścieżek zawierających spacje i znaki specjalne. PREFERENCES_CUSTPROFBUILDKEYFORMAT;Rodzaj kluczy @@ -774,6 +881,7 @@ PREFERENCES_DARKFRAMETEMPLATES;szablonów(ny) PREFERENCES_DATEFORMAT;Format daty PREFERENCES_DATEFORMATHINT;Dozwolone są następujące kody formatujące:\n%y - rok\n%m - miesiąc\n%d - dzień\n\nNa przykład według standardu ISO 8601 format daty wygląda następująco:\n%y-%m-%d PREFERENCES_DIRDARKFRAMES;Katalog z czarnymi klatkami +PREFERENCES_DIRECTORIES;Katalogi PREFERENCES_DIRHOME;Katalog domowy PREFERENCES_DIRLAST;Ostatnio odwiedzony katalog PREFERENCES_DIROTHER;Inny @@ -794,6 +902,8 @@ PREFERENCES_HISTOGRAM_TOOLTIP;Jeśli opcja jest włączona profil roboczy jest u PREFERENCES_HLTHRESHOLD;Próg dla prześwietleń PREFERENCES_ICCDIR;Katalog z profilami koloru ICC PREFERENCES_IMPROCPARAMS;Domyślne parametry przetwarzania obrazu +PREFERENCES_INSPECT_LABEL;Inspekcja +PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maksymalna liczba obrazów w pamięci podręcznej PREFERENCES_INTENT_ABSOLUTE;Absolutnie kolorymetryczny PREFERENCES_INTENT_PERCEPTUAL;Percepcyjny PREFERENCES_INTENT_RELATIVE;Względnie kolorymetryczny @@ -807,8 +917,11 @@ PREFERENCES_MENUGROUPLABEL;Grupuj operacje etykiet PREFERENCES_MENUGROUPPROFILEOPERATIONS;Grupuj operacje profili przetwarzania PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny PREFERENCES_MENUOPTIONS;Opcje menu +PREFERENCES_MONITOR;Monitor +PREFERENCES_MONPROFILE;Domyślny profil kolorów PREFERENCES_MULTITAB;Tryb wielu zakładek PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) +PREFERENCES_NAVIGATIONFRAME;Nawigacja PREFERENCES_OVERLAY_FILENAMES;Nakładaj nazwy pliku na miniatury PREFERENCES_OVERWRITEOUTPUTFILE;Nadpisuj istniejące pliki PREFERENCES_PANFACTORLABEL;Współczynnik @@ -817,6 +930,8 @@ PREFERENCES_PARSEDEXTADD;Dodaj rozszerzenie PREFERENCES_PARSEDEXTADDHINT;Proszę wprowadzić rozszerzenie i zatwierdzić przyciskiem, by dodać do listy PREFERENCES_PARSEDEXTDELHINT;Skasuje wybrane rozszerzenie z listy PREFERENCES_PERFORMANCE_THREADS;Wątki +PREFERENCES_PREVDEMO;Metoda demozaikowania podglądu +PREFERENCES_PREVDEMO_FAST;Szybka PREFERENCES_PROFILEHANDLING;Obsługa profili PREFERENCES_PROFILELOADPR;Priorytet wczytywania profilu PREFERENCES_PROFILEPRCACHE;Profil w pamięci podręcznej @@ -868,6 +983,8 @@ PROFILEPANEL_TOOLTIPCOPY;Skopiuj aktualny profil do schowka PROFILEPANEL_TOOLTIPLOAD;Ładuj profil z pliku.\nCtrl+klik aby wybrać parametry do ładowania. PROFILEPANEL_TOOLTIPPASTE;Wklej profil ze schowka.\nCtrl+klik aby wybrać parametry do wklejenia. PROFILEPANEL_TOOLTIPSAVE;Zapisz aktualny profil.\nCtrl+klik aby wybrać parametry do zapisania. +PROGRESSBAR_DECODING;Dekodowanie... +PROGRESSBAR_HLREC;Rekonstrukcja podświetleń... PROGRESSBAR_LOADING;Wczytywanie obrazu... PROGRESSBAR_LOADINGTHUMBS;Wczytywanie miniatur... PROGRESSBAR_LOADJPEG;Ładowanie pliku JPEG... @@ -882,8 +999,11 @@ PROGRESSBAR_SAVEPNG;Zapisywanie pliku PNG... PROGRESSBAR_SAVETIFF;Zapisywanie pliku TIFF... PROGRESSBAR_SNAPSHOT_ADDED;Dodano migawkę PROGRESSDLG_PROFILECHANGEDINBROWSER;Profil zmieniony w przeglądarce +QINFO_FRAMECOUNT;%2 klatki +QINFO_HDR;HDR / %2 klatka/i QINFO_ISO;ISO QINFO_NOEXIF;Dane Exif niedostępne. +QINFO_PIXELSHIFT;Pixel Shift / %2 klatka/i QUEUE_AUTOSTART;Autostart QUEUE_AUTOSTART_TOOLTIP;Rozpocznij przetwarzanie automatycznie gdy pojawi się nowe zadanie. QUEUE_DESTFILENAME;Ścieżka i nazwa pliku @@ -949,6 +1069,8 @@ TP_BWMIX_MET;Metoda TP_BWMIX_MET_CHANMIX;Mieszacz kanałów TP_BWMIX_MET_DESAT;Desaturacja TP_BWMIX_MET_LUMEQUAL;Ekwalizator luminancji +TP_BWMIX_MIXC;Mieszacz kanałów +TP_BWMIX_NEUTRAL;Reset TP_BWMIX_RGBLABEL;R: %1%% G: %2%% B: %3%% Total: %4%% TP_BWMIX_RGBLABEL_HINT;Ostateczne wartości RGB które uwzględniają wszystkie opcje mieszacza.\n"Total" wyświetla sumę wartości RGB:\n- zawsze 100% w trybie relatywnym,\n- ponad (jaśniej) lub poniżej (ciemniej) 100% w trybie absolutnym. TP_BWMIX_RGB_TOOLTIP;Miesza kanały RGB. Kieruj się gotowymi ustawieniami.\nNależy zwrócić uwagę na ujemne wartości ponieważ mogą pojawić się zniekształcenia sygnału w obrazie lub działać w sposób nieprzewidywalny. @@ -985,6 +1107,7 @@ TP_COARSETRAF_TOOLTIP_HFLIP;Odbij w poziomie TP_COARSETRAF_TOOLTIP_ROTLEFT;Obróć w lewo.\n\nSkróty:\n[ - Tryb wielu zakładek,\nAlt-[ - Tryb jednej zakładki. TP_COARSETRAF_TOOLTIP_ROTRIGHT;Obróć w prawo.\n\nSkróty:\n] - Tryb wielu zakładek,\nAlt-] - Tryb jednej zakładki. TP_COARSETRAF_TOOLTIP_VFLIP;Odbij w pionie +TP_COLORAPP_ABSOLUTELUMINANCE;Luminancja absolutna TP_COLORAPP_ALGO;Algorytm TP_COLORAPP_ALGO_ALL;Wszystkie TP_COLORAPP_ALGO_JC;Światłość + Chroma (JC) @@ -1026,6 +1149,8 @@ TP_COLORAPP_LIGHT;Światłość (J) TP_COLORAPP_LIGHT_TOOLTIP;Światłość w CIECAM02 różni się od światłości CIELab oraz RGB TP_COLORAPP_MODEL;Model PB TP_COLORAPP_MODEL_TOOLTIP;Model punktu bieli.\n\nBB [RT] + [wyjściowy]:\nBalans bieli RawTherapee jest użyty dla sceny, CIECAM02 jest ustawione na D50, i balans bieli urządzenia wyjściowego ustawiony jest w Ustawieniach > Zarządzanie Kolorami\n\nBB [RT+CAT02] + [wyjściowe]:\nUstawienia balansu bieli RawTherapee są używane przez CAT02, i balans bieli urządzenia wyjściowego jest ustawione w Ustawieniach > Zarządzanie Kolorami. +TP_COLORAPP_NEUTRAL;Reset +TP_COLORAPP_NEUTRAL_TIP;Przywróć wszystkie suwaki oraz krzywe do wartości domyślnych TP_COLORAPP_RSTPRO;Ochrona odcieni skóry i czerwieni TP_COLORAPP_RSTPRO_TOOLTIP;Ochrona odcieni skóry i czerwieni (suwaki i krzywe) TP_COLORAPP_SURROUND;Otoczenie @@ -1058,6 +1183,16 @@ TP_COLORTONING_HIGHLIGHT;Podświetlenia TP_COLORTONING_HUE;Odcień (hue) TP_COLORTONING_LAB;Mieszanie L*a*b* TP_COLORTONING_LABEL;Koloryzacja +TP_COLORTONING_LABREGION_CHANNEL;Kanał +TP_COLORTONING_LABREGION_CHANNEL_ALL;Wszystkie +TP_COLORTONING_LABREGION_CHANNEL_B;Niebieski +TP_COLORTONING_LABREGION_CHANNEL_G;Zielony +TP_COLORTONING_LABREGION_CHANNEL_R;Czerwony +TP_COLORTONING_LABREGION_LIST_TITLE;Korekcja +TP_COLORTONING_LABREGION_MASK;Maska +TP_COLORTONING_LABREGION_OFFSET;Przesunięcie +TP_COLORTONING_LABREGION_SATURATION;Saturacja +TP_COLORTONING_LABREGION_SHOWMASK;Pokaż maskę TP_COLORTONING_LUMA;Luminancja TP_COLORTONING_LUMAMODE;Zachowaj luminancję TP_COLORTONING_LUMAMODE_TOOLTIP;Luminancja zostanie zachowana przy zmianie kolorów. @@ -1093,6 +1228,8 @@ TP_CROP_GTRULETHIRDS;Trójpodział TP_CROP_GUIDETYPE;Typ pomocy: TP_CROP_H;Wysokość TP_CROP_LABEL;Kadrowanie +TP_CROP_PPI;PPI +TP_CROP_RESETCROP;Reset TP_CROP_SELECTCROP;Wybierz TP_CROP_W;Szerokość TP_CROP_X;X @@ -1108,6 +1245,8 @@ TP_DEHAZE_LUMINANCE;Tylko luminancja TP_DEHAZE_SHOW_DEPTH_MAP;Pokaż mapę głębokości TP_DEHAZE_STRENGTH;Siła TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominancja - Błękit-żółć +TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Krzywa chrominancji +TP_DIRPYRDENOISE_CHROMINANCE_FRAME;Chrominancja TP_DIRPYRDENOISE_CHROMINANCE_MANUAL;Ręcznie TP_DIRPYRDENOISE_CHROMINANCE_MASTER;Chrominancja - Główna TP_DIRPYRDENOISE_CHROMINANCE_METHOD;Metoda @@ -1165,6 +1304,7 @@ TP_EXPOSURE_AUTOLEVELS;Wyrównaj poziomy TP_EXPOSURE_AUTOLEVELS_TIP;Dokonaj automatycznego ustawienia parametrów ekspozycji na podstawie analizy obrazu TP_EXPOSURE_BLACKLEVEL;Czerń TP_EXPOSURE_BRIGHTNESS;Jasność +TP_EXPOSURE_CLAMPOOG;Przytnij kolory spoza gamy kolorów TP_EXPOSURE_CLIP;Przytnij % TP_EXPOSURE_CLIP_TIP;Ułamek pikseli ktore mają zostać rozjaśnione do punktu prześwietlenia podczas automatycznego wyrównania poziomów. TP_EXPOSURE_COMPRHIGHLIGHTS;Kompresja podświetleń @@ -1225,6 +1365,7 @@ TP_HSVEQUALIZER_HUE;H TP_HSVEQUALIZER_LABEL;Ekwalizator HSV TP_HSVEQUALIZER_SAT;S TP_HSVEQUALIZER_VAL;V +TP_ICM_BPC;Kompensacja punktu czerni TP_ICM_DCPILLUMINANT;Iluminant TP_ICM_DCPILLUMINANT_INTERPOLATED;Interpolowany TP_ICM_DCPILLUMINANT_TOOLTIP;Wybierz który osadzony iluminant DCP należy użyć. Domyślną opcją jest "interpolowany", czyli wartość jest mieszaniną pomiędzy dwoma osadzonymi wartościami iluminantu zależnie od balansu bieli. Ten wybór jest możliwy jedynie kiedy DCP zawiera dwa iluminanty z możliwościa interpolacji. @@ -1243,10 +1384,13 @@ TP_ICM_INPUTPROFILE;Profil wejściowy TP_ICM_LABEL;ICM TP_ICM_NOICM;Brak ICM: Wyjście sRGB TP_ICM_OUTPUTPROFILE;Profil wyjściowy +TP_ICM_SAVEREFERENCE_APPLYWB;Zastosuj balans bieli TP_ICM_SAVEREFERENCE_TOOLTIP;Zapisz liniowy obraz TIFF zanim profil wejściowy zostanie zastosowany. Obraz ten można użyć do kalibracji oraz do wytworzenia profilu aparatu. TP_ICM_TONECURVE;Użyj krzywą tonalną z DCP TP_ICM_TONECURVE_TOOLTIP;Włącz aby użyć krzywą tonalną znajdującą się w profilu DCP. Opcja ta jest tylko aktywna jeśli profil DCP zawiera krzywą tonalną. TP_ICM_WORKINGPROFILE;Profil roboczy +TP_ICM_WORKING_TRC_CUSTOM;Własna +TP_ICM_WORKING_TRC_NONE;Żadna TP_IMPULSEDENOISE_LABEL;Redukcja Szumów Impulsowych TP_IMPULSEDENOISE_THRESH;Próg TP_LABCURVE_AVOIDCOLORSHIFT;Zapobiegaj zmianom koloru @@ -1291,10 +1435,19 @@ TP_LENSGEOM_FILL;Auto-wypełnienie TP_LENSGEOM_LABEL;Obiektyw / Geometria TP_LENSGEOM_LIN;Liniowo TP_LENSGEOM_LOG;Logarytmicznie +TP_LENSPROFILE_CORRECTION_LCPFILE;Plik LCP TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP +TP_LENSPROFILE_MODE_HEADER;Profil obiektywu +TP_LENSPROFILE_USE_CA;Aberracja chromatyczna +TP_LENSPROFILE_USE_GEOMETRIC;Zniekształcenia geometryczne +TP_LENSPROFILE_USE_VIGNETTING;Winietowanie TP_LOCALCONTRAST_AMOUNT;Ilość TP_LOCALCONTRAST_LABEL;Kontrast lokalny TP_LOCALCONTRAST_RADIUS;Promień +TP_METADATA_EDIT;Zastosuj modyfikacje +TP_METADATA_MODE;Tryb kopiowania metadanych +TP_METADATA_STRIP;Usuń wszystkie metadane +TP_METADATA_TUNNEL;Kopiuj niezmienione TP_NEUTRAL;Reset TP_NEUTRAL_TIP;Zresetuj ustawienia do wartości neutralnych.\nDziała na tych samych suwakach na których funkcja "Wyrównaj poziomy" działa, niezależnie od tego czy funkcja ta była użyta czy nie. TP_PCVIGNETTE_FEATHER;Wtapianie @@ -1316,8 +1469,13 @@ TP_PREPROCESS_HOTPIXFILT;Filtr gorących pikseli TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Łata gorące piksele (pojedyńcze świecące, przesycone piksele). TP_PREPROCESS_LABEL;Przetwarzanie początkowe TP_PREPROCESS_LINEDENOISE;Filtr zakłóceń liniowych +TP_PREPROCESS_LINEDENOISE_DIRECTION;Kierunek +TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Poziomo +TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Pionowo TP_PREPROCESS_NO_FOUND;Nic nie znaleziono TP_RAWCACORR_AUTO;Autokorekcja +TP_RAWCACORR_AUTOIT;Iteracje +TP_RAWCACORR_AVOIDCOLORSHIFT;Unikaj przesunięcia kolorów TP_RAWCACORR_CABLUE;Niebieski TP_RAWCACORR_CARED;Czerwony TP_RAWCACORR_LABEL;Korekcja aberracji chromatycznej @@ -1331,23 +1489,47 @@ TP_RAWEXPOS_BLACK_RED;Czerwony TP_RAWEXPOS_LINEAR;Liniowy współczynnik korekcji TP_RAWEXPOS_RGB;Czerwony, Zielony, Niebieski TP_RAWEXPOS_TWOGREEN;Połącz obie zielenie +TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) +TP_RAW_2PASS;1-pass+fast +TP_RAW_3PASSBEST;3-pass (Markesteijn) +TP_RAW_4PASS;3-pass+fast +TP_RAW_AHD;AHD +TP_RAW_AMAZE;AMaZE +TP_RAW_AMAZEVNG4;AMaZE+VNG4 +TP_RAW_DCB;DCB TP_RAW_DCBENHANCE;Zastosuj poprawę DCB TP_RAW_DCBITERATIONS;Liczba powtórzeń DCB +TP_RAW_DCBVNG4;DCB+VNG4 TP_RAW_DMETHOD;Metoda TP_RAW_DMETHOD_PROGRESSBAR;Demozaikowanie %1... TP_RAW_DMETHOD_PROGRESSBAR_REFINE;Udoskonalanie demozaikowania... TP_RAW_DMETHOD_TOOLTIP;IGV oraz LMMSE są przeznaczone dla zdjęć raw o wysokim poziomie szumów (wysokie ISO) aby zapobiec utworzeniu się wzorków w kształcie małych labiryntów, posteryzacji oraz mydlanego wyglądu. +TP_RAW_DUALDEMOSAICAUTOCONTRAST;Próg automatyczny TP_RAW_DUALDEMOSAICCONTRAST;Próg kontrastu +TP_RAW_EAHD;EAHD TP_RAW_FALSECOLOR;Kroki zapobiegające fałszowaniu kolorów +TP_RAW_FAST;Szybki TP_RAW_HD;Próg +TP_RAW_HPHD;HPHD +TP_RAW_IGV;IGV TP_RAW_LABEL;Demozaikowanie +TP_RAW_LMMSE;LMMSE TP_RAW_LMMSEITERATIONS;Ilość kroków udoskonalenia LMMSE TP_RAW_LMMSE_TOOLTIP;Aby zmniejszyć ilość artefaktów i poprawić stosunek sygnału do szumów, można wykorzystać następujące ustawienia:\n1: Gamma\n2-4: Średnia mediana\n5-6: Rafinowanie TP_RAW_MONO;Mono +TP_RAW_PIXELSHIFTEPERISO;Czułość +TP_RAW_PIXELSHIFTMM_AUTO;Automatyczny +TP_RAW_PIXELSHIFTMM_CUSTOM;Własny +TP_RAW_PIXELSHIFTMM_OFF;Wyłączony TP_RAW_PIXELSHIFTSIGMA;Promień rozmycia +TP_RAW_RCD;RCD +TP_RAW_RCDVNG4;RCD+VNG4 TP_RAW_SENSOR_BAYER_LABEL;Matryca z filtrem Bayera TP_RAW_SENSOR_XTRANS_DMETHOD_TOOLTIP;Trzy powtórzenia prowadzą do najlepszych rezultatów (zalecane dla zdjęć o niskim ISO).\nJedno powtórzenie jest prawie nie do odróżnienia od trzech dla zdjęć o wysokim ISO a jest znacznie szybsze. TP_RAW_SENSOR_XTRANS_LABEL;Matryca z filtrem X-Trans +TP_RAW_VNG4;VNG4 +TP_RAW_XTRANS;X-Trans +TP_RAW_XTRANSFAST;Szybki X-Trans TP_RESIZE_APPLIESTO;Dotyczy: TP_RESIZE_CROPPEDAREA;Obszaru kadrowanego TP_RESIZE_FITBOX;Wymiary obwodu @@ -1362,12 +1544,21 @@ TP_RESIZE_SCALE;Skalę TP_RESIZE_SPECIFY;Określ: TP_RESIZE_W;Szerokość TP_RESIZE_WIDTH;Szerokość +TP_RETINEX_CONTEDIT_HSL;Histogram HSL +TP_RETINEX_CONTEDIT_LAB;Histogram L*a*b* +TP_RETINEX_CONTEDIT_LH;Odcień +TP_RETINEX_CONTEDIT_MAP;Wyrównywanie +TP_RETINEX_EQUAL;Wyrównywanie +TP_RETINEX_GAIN;Wzmocnienie +TP_RETINEX_HIGH;Wysoki +TP_RETINEX_HIGHLIGHT;Próg podświetleń TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Maska TP_RETINEX_LABSPACE;L*a*b* TP_RETINEX_LOW;Niski TP_RETINEX_MAP;Metoda TP_RETINEX_MAP_GAUS;Maska Gaussa +TP_RETINEX_MAP_NONE;Żaden TP_RETINEX_METHOD;Metoda TP_RETINEX_NEIGHBOR;Promień TP_RETINEX_NEUTRAL;Reset @@ -1376,9 +1567,11 @@ TP_RETINEX_SETTINGS;Ustawienia TP_RETINEX_SKAL;Skala TP_RETINEX_STRENGTH;Siła TP_RETINEX_THRESHOLD;Próg +TP_RETINEX_UNIFORM;Jednolity TP_RETINEX_VARIANCE;Kontrast TP_RETINEX_VIEW;Proces TP_RETINEX_VIEW_MASK;Maska +TP_RETINEX_VIEW_NONE;Standardowy TP_RETINEX_VIEW_UNSHARP;Maska wyostrzająca TP_RGBCURVES_BLUE;B TP_RGBCURVES_CHANNEL;Kanał @@ -1449,12 +1642,37 @@ TP_VIGNETTING_CENTER_Y;Środek Y TP_VIGNETTING_LABEL;Korekcja winietowania TP_VIGNETTING_RADIUS;Promień TP_VIGNETTING_STRENGTH;Siła +TP_WAVELET_1;Poziom 1 +TP_WAVELET_2;Poziom 2 +TP_WAVELET_3;Poziom 3 +TP_WAVELET_4;Poziom 4 +TP_WAVELET_5;Poziom 5 +TP_WAVELET_6;Poziom 6 +TP_WAVELET_7;Poziom 7 +TP_WAVELET_8;Poziom 8 +TP_WAVELET_9;Poziom 9 +TP_WAVELET_APPLYTO;Zastosuj do +TP_WAVELET_AVOID;Unikaj przesunięcia kolorów +TP_WAVELET_B0;Czarny +TP_WAVELET_B1;Szary +TP_WAVELET_BACKGROUND;Tło +TP_WAVELET_BACUR;Krzywa +TP_WAVELET_BALCHRO;Balans chrominancji TP_WAVELET_BANONE;Żaden +TP_WAVELET_CCURVE;Kontrast lokalny +TP_WAVELET_CHCU;Krzywa TP_WAVELET_COMPCONT;Kontrast TP_WAVELET_CONTR;Gamut TP_WAVELET_CONTRA;Kontrast TP_WAVELET_CONTRAST_MINUS;Kontrast - TP_WAVELET_CONTRAST_PLUS;Kontrast + +TP_WAVELET_CTYPE;Kontrola chrominancji +TP_WAVELET_DALL;We wszystkich kierunkach +TP_WAVELET_DAUB2;D2 - niski +TP_WAVELET_DAUB4;D4 - standard +TP_WAVELET_DAUB6;D6 - standard plus +TP_WAVELET_DAUB10;D10 - średni +TP_WAVELET_DAUB14;D14 - wysoki TP_WAVELET_DONE;Pionowo TP_WAVELET_DTHR;Po przekątnej TP_WAVELET_DTWO;Poziomo @@ -1467,15 +1685,26 @@ TP_WAVELET_EDRAD;Promień TP_WAVELET_EDSL;Suwaki progów TP_WAVELET_EDVAL;Siła TP_WAVELET_HS2;Cienie/Podświetlenia +TP_WAVELET_HUESKIN;Odcień skóry +TP_WAVELET_HUESKY;Odcień nieba TP_WAVELET_LEVF;Kontrast TP_WAVELET_LEVONE;Poziom 2 TP_WAVELET_LEVTHRE;Poziom 4 TP_WAVELET_LEVTWO;Poziom 3 TP_WAVELET_LEVZERO;Poziom 1 +TP_WAVELET_LIPST;Usprawniony algorytm +TP_WAVELET_MEDI;Usuwaj artefakty niebieskiego nieba +TP_WAVELET_MEDILEV;Wykrywanie krawędzi +TP_WAVELET_NEUTRAL;Neutralny +TP_WAVELET_NOIS;Odszumianie TP_WAVELET_NPHIGH;Wysoki TP_WAVELET_NPLOW;Niski TP_WAVELET_NPNONE;Brak TP_WAVELET_NPTYPE;Piksele sąsiadujące +TP_WAVELET_PROC;Proces +TP_WAVELET_RE1;Wzmocniony +TP_WAVELET_RE2;Niezmieniony +TP_WAVELET_RE3;Zmniejszony TP_WAVELET_RESCON;Cienie TP_WAVELET_RESCONH;Podświetlenia TP_WAVELET_STREN;Siła @@ -1485,6 +1714,7 @@ TP_WAVELET_THR;Próg cieni TP_WAVELET_THRESHOLD;Poziom podświetleń TP_WAVELET_THRESHOLD2;Poziom cieni TP_WAVELET_THRH;Próg podświetleń +TP_WAVELET_TMTYPE;Metoda kompresji TP_WBALANCE_AUTO;Auto TP_WBALANCE_CAMERA;Z aparatu TP_WBALANCE_CLOUDY;Pochmurnie @@ -1555,12 +1785,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. !DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift -!DYNPROFILEEDITOR_IMGTYPE_STD;Standard -!DYNPROFILEEDITOR_NEW;New !DYNPROFILEEDITOR_NEW_RULE;New Dynamic Profile Rule -!DYNPROFILEEDITOR_PROFILE;Processing Profile -!EXIFFILTER_IMAGETYPE;Image type -!EXIFPANEL_SHOWALL;Show all !EXPORT_BYPASS;Processing steps to bypass !EXPORT_BYPASS_EQUALIZER;Bypass Wavelet Levels !EXPORT_PIPELINE;Processing pipeline @@ -1568,12 +1793,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !EXPORT_USE_FAST_PIPELINE_TIP;Use a dedicated processing pipeline for images in Fast Export mode, that trades speed for quality. Resizing of the image is done as early as possible, instead of doing it at the end like in the normal pipeline. The speedup can be significant, but be prepared to see artifacts and a general degradation of output quality. !EXPORT_USE_NORMAL_PIPELINE;Standard (bypass some steps, resize at the end) !FILEBROWSER_BROWSEPATHBUTTONHINT;Click to open specified path, reload folder and apply "find" keywords. -!FILEBROWSER_CACHECLEARFROMFULL;Clear all including cached profiles -!FILEBROWSER_CACHECLEARFROMPARTIAL;Clear all except cached profiles !FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? !FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? !FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? -!FILEBROWSER_EMPTYTRASHHINT;Permanently delete all files in trash. !FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. @@ -1581,87 +1803,46 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. -!HISTORY_MSG_203;NR - Color space !HISTORY_MSG_235;B&W - CM - Auto !HISTORY_MSG_237;B&W - CM -!HISTORY_MSG_256;NR - Median - Type !HISTORY_MSG_273;CT - Color Balance SMH -!HISTORY_MSG_297;NR - Mode -!HISTORY_MSG_299;NR - Chrominance curve -!HISTORY_MSG_300;- -!HISTORY_MSG_301;NR - Luma control -!HISTORY_MSG_302;NR - Chroma method -!HISTORY_MSG_303;NR - Chroma method -!HISTORY_MSG_304;W - Contrast levels !HISTORY_MSG_305;Wavelet Levels -!HISTORY_MSG_306;W - Process -!HISTORY_MSG_307;W - Process -!HISTORY_MSG_308;W - Process direction -!HISTORY_MSG_309;W - ES - Detail !HISTORY_MSG_310;W - Residual - Sky tar/prot !HISTORY_MSG_311;W - Wavelet levels -!HISTORY_MSG_312;W - Residual - Shadows threshold !HISTORY_MSG_313;W - Chroma - Sat/past !HISTORY_MSG_314;W - Gamut - Reduce artifacts -!HISTORY_MSG_315;W - Residual - Contrast !HISTORY_MSG_316;W - Gamut - Skin tar/prot -!HISTORY_MSG_317;W - Gamut - Skin hue -!HISTORY_MSG_324;W - Chroma - Pastel -!HISTORY_MSG_325;W - Chroma - Saturated !HISTORY_MSG_327;W - Contrast - Apply to !HISTORY_MSG_328;W - Chroma - Link strength !HISTORY_MSG_329;W - Toning - Opacity RG !HISTORY_MSG_330;W - Toning - Opacity BY !HISTORY_MSG_331;W - Contrast levels - Extra !HISTORY_MSG_332;W - Tiling method -!HISTORY_MSG_333;W - Residual - Shadows -!HISTORY_MSG_334;W - Residual - Chroma -!HISTORY_MSG_335;W - Residual - Highlights -!HISTORY_MSG_336;W - Residual - Highlights threshold -!HISTORY_MSG_337;W - Residual - Sky hue !HISTORY_MSG_341;W - Edge performance !HISTORY_MSG_342;W - ES - First level -!HISTORY_MSG_343;W - Chroma levels !HISTORY_MSG_344;W - Meth chroma sl/cur -!HISTORY_MSG_345;W - ES - Local contrast -!HISTORY_MSG_346;W - ES - Local contrast method -!HISTORY_MSG_347;W - Denoise - Level 1 -!HISTORY_MSG_348;W - Denoise - Level 2 -!HISTORY_MSG_349;W - Denoise - Level 3 !HISTORY_MSG_350;W - ES - Edge detection !HISTORY_MSG_351;W - Residual - HH curve -!HISTORY_MSG_352;W - Background !HISTORY_MSG_353;W - ES - Gradient sensitivity !HISTORY_MSG_354;W - ES - Enhanced !HISTORY_MSG_357;W - Denoise - Link with ES !HISTORY_MSG_358;W - Gamut - CH !HISTORY_MSG_360;TM - Gamma !HISTORY_MSG_361;W - Final - Chroma balance -!HISTORY_MSG_362;W - Residual - Compression method -!HISTORY_MSG_363;W - Residual - Compression strength -!HISTORY_MSG_364;W - Final - Contrast balance !HISTORY_MSG_365;W - Final - Delta balance !HISTORY_MSG_366;W - Residual - Compression gamma !HISTORY_MSG_367;W - Final - 'After' contrast curve -!HISTORY_MSG_368;W - Final - Contrast balance -!HISTORY_MSG_369;W - Final - Balance method -!HISTORY_MSG_370;W - Final - Local contrast curve !HISTORY_MSG_371;Post-Resize Sharpening !HISTORY_MSG_375;PRS USM - Sharpen only edges -!HISTORY_MSG_376;PRS USM - Edge detection radius -!HISTORY_MSG_377;PRS USM - Edge tolerance !HISTORY_MSG_378;PRS USM - Halo control !HISTORY_MSG_379;PRS USM - Halo control amount !HISTORY_MSG_383;PRS RLD - Damping -!HISTORY_MSG_384;PRS RLD - Iterations -!HISTORY_MSG_385;W - Residual - Color Balance !HISTORY_MSG_386;W - Residual - CB green high !HISTORY_MSG_387;W - Residual - CB blue high !HISTORY_MSG_388;W - Residual - CB green mid !HISTORY_MSG_389;W - Residual - CB blue mid !HISTORY_MSG_390;W - Residual - CB green low !HISTORY_MSG_391;W - Residual - CB blue low -!HISTORY_MSG_392;W - Residual - Color Balance !HISTORY_MSG_393;DCP - Look table !HISTORY_MSG_394;DCP - Baseline exposure !HISTORY_MSG_395;DCP - Base table @@ -1674,24 +1855,20 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_402;W - Denoise sub-tool !HISTORY_MSG_403;W - ES - Edge sensitivity !HISTORY_MSG_404;W - ES - Base amplification -!HISTORY_MSG_405;W - Denoise - Level 4 !HISTORY_MSG_406;W - ES - Neighboring pixels !HISTORY_MSG_412;Retinex - Gaussian gradient !HISTORY_MSG_414;Retinex - Histogram - Lab !HISTORY_MSG_415;Retinex - Transmission !HISTORY_MSG_416;Retinex !HISTORY_MSG_417;Retinex - Transmission median -!HISTORY_MSG_419;Retinex - Color space !HISTORY_MSG_420;Retinex - Histogram - HSL !HISTORY_MSG_421;Retinex - Gamma !HISTORY_MSG_422;Retinex - Gamma !HISTORY_MSG_423;Retinex - Gamma slope !HISTORY_MSG_424;Retinex - HL threshold !HISTORY_MSG_425;Retinex - Log base -!HISTORY_MSG_426;Retinex - Hue equalizer !HISTORY_MSG_427;Output rendering intent !HISTORY_MSG_428;Monitor rendering intent -!HISTORY_MSG_429;Retinex - Iterations !HISTORY_MSG_430;Retinex - Transmission gradient !HISTORY_MSG_431;Retinex - Strength gradient !HISTORY_MSG_433;Retinex - M - Highlights TW @@ -1700,8 +1877,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_443;Output black point compensation !HISTORY_MSG_444;WB - Temp bias !HISTORY_MSG_445;Raw sub-image -!HISTORY_MSG_449;PS - ISO adaption -!HISTORY_MSG_452;PS - Show motion !HISTORY_MSG_453;PS - Show mask only !HISTORY_MSG_457;PS - Check red/blue !HISTORY_MSG_462;PS - Check green @@ -1709,11 +1884,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_465;PS - Blur radius !HISTORY_MSG_468;PS - Fill holes !HISTORY_MSG_469;PS - Median -!HISTORY_MSG_471;PS - Motion correction !HISTORY_MSG_472;PS - Smooth transitions !HISTORY_MSG_473;PS - Use LMMSE -!HISTORY_MSG_474;PS - Equalize -!HISTORY_MSG_475;PS - Equalize channel !HISTORY_MSG_476;CAM02 - Temp out !HISTORY_MSG_477;CAM02 - Green out !HISTORY_MSG_478;CAM02 - Yb out @@ -1752,16 +1924,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope !HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method !HISTORY_MSG_METADATA_MODE;Metadata copy mode -!HISTORY_MSG_PDSHARPEN_AUTO_CONTRAST;CS - Auto threshold -!HISTORY_MSG_PDSHARPEN_AUTO_RADIUS;CS - Auto radius -!HISTORY_MSG_PDSHARPEN_CHECKITER;CS - Auto limit iterations -!HISTORY_MSG_PDSHARPEN_CONTRAST;CS - Contrast threshold -!HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iterations !HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost !HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold !HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations !HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border @@ -1773,76 +1939,48 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor !HISTORY_MSG_TRANS_Method;Geometry - Method -!ICCPROFCREATOR_COPYRIGHT_RESET_TOOLTIP;Reset to the default copyright, granted to "RawTherapee, CC0" !ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description !ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. -!ICCPROFCREATOR_GAMMA;Gamma !ICCPROFCREATOR_ILL;Illuminant: -!ICCPROFCREATOR_ILL_41;D41 -!ICCPROFCREATOR_ILL_50;D50 -!ICCPROFCREATOR_ILL_55;D55 -!ICCPROFCREATOR_ILL_60;D60 -!ICCPROFCREATOR_ILL_65;D65 -!ICCPROFCREATOR_ILL_80;D80 -!ICCPROFCREATOR_ILL_INC;StdA 2856K !ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. !ICCPROFCREATOR_PRIMARIES;Primaries: !ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 !ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 -!ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) -!ICCPROFCREATOR_PRIM_BEST;BestRGB -!ICCPROFCREATOR_PRIM_BETA;BetaRGB !ICCPROFCREATOR_PRIM_BLUX;Blue X !ICCPROFCREATOR_PRIM_BLUY;Blue Y -!ICCPROFCREATOR_PRIM_BRUCE;BruceRGB !ICCPROFCREATOR_PRIM_GREX;Green X !ICCPROFCREATOR_PRIM_GREY;Green Y -!ICCPROFCREATOR_PRIM_PROPH;Prophoto -!ICCPROFCREATOR_PRIM_REC2020;Rec2020 !ICCPROFCREATOR_PRIM_REDX;Red X !ICCPROFCREATOR_PRIM_REDY;Red Y -!ICCPROFCREATOR_PRIM_SRGB;sRGB !ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. !ICCPROFCREATOR_PRIM_WIDEG;Widegamut -!ICCPROFCREATOR_PROF_V2;ICC v2 -!ICCPROFCREATOR_PROF_V4;ICC v4 !ICCPROFCREATOR_SLOPE;Slope !ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. -!IPTCPANEL_CITYHINT;Enter the name of the city pictured in this image. !IPTCPANEL_COPYRIGHT;Copyright notice !IPTCPANEL_COPYRIGHTHINT;Enter a Notice on the current owner of the Copyright for this image, such as ©2008 Jane Doe. !IPTCPANEL_COUNTRYHINT;Enter the name of the country pictured in this image. -!IPTCPANEL_CREATOR;Creator !IPTCPANEL_CREATORHINT;Enter the name of the person that created this image. !IPTCPANEL_CREATORJOBTITLE;Creator's job title !IPTCPANEL_CREATORJOBTITLEHINT;Enter the Job Title of the person listed in the Creator field. -!IPTCPANEL_DATECREATEDHINT;Enter the Date the image was taken. -!IPTCPANEL_DESCRIPTION;Description !IPTCPANEL_DESCRIPTIONHINT;Enter a "caption" describing the who, what, and why of what is happening in this image, this might include names of people, and/or their role in the action that is taking place within the image. !IPTCPANEL_DESCRIPTIONWRITER;Description writer !IPTCPANEL_DESCRIPTIONWRITERHINT;Enter the name of the person involved in writing, editing or correcting the description of the image. !IPTCPANEL_HEADLINEHINT;Enter a brief publishable synopsis or summary of the contents of the image. !IPTCPANEL_INSTRUCTIONSHINT;Enter information about embargoes, or other restrictions not covered by the Copyright field. !IPTCPANEL_KEYWORDSHINT;Enter any number of keywords, terms or phrases used to express the subject matter in the image. -!IPTCPANEL_PROVINCE;Province or state !IPTCPANEL_PROVINCEHINT;Enter the name of the province or state pictured in this image. !IPTCPANEL_SOURCEHINT;Enter or edit the name of a person or party who has a role in the content supply chain, such as a person or entity from whom you received this image from. -!IPTCPANEL_SUPPCATEGORIES;Supplemental categories !IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image. !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. !IPTCPANEL_TRANSREFERENCE;Job ID !IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!MAIN_BUTTON_SENDTOEDITOR;Edit image in external editor !MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. -!MAIN_TAB_INSPECT; Inspect !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. -!MONITOR_PROFILE_SYSTEM;System default !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. !OPTIONS_DEFIMG_MISSING;The default profile for non-raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. !OPTIONS_DEFRAW_MISSING;The default profile for raw photos could not be found or is not set.\n\nPlease check your profiles' directory, it may be missing or damaged.\n\n"%1" will be used instead. -!PARTIALPASTE_ADVANCEDGROUP;Advanced Settings !PARTIALPASTE_EQUALIZER;Wavelet levels !PARTIALPASTE_FILMNEGATIVE;Film Negative !PARTIALPASTE_METADATA;Metadata mode @@ -1860,52 +1998,30 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_APPEARANCE_MAINFONT;Main font !PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit -!PREFERENCES_CACHECLEAR_ALL;Clear all cached files: !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: -!PREFERENCES_CACHECLEAR_ONLYPROFILES;Clear only cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PREFERENCES_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_AMAZE;AMaZE demosaic !PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CHUNKSIZE_RAW_RCD;RCD demosaic -!PREFERENCES_CHUNKSIZE_RAW_XT;Xtrans demosaic -!PREFERENCES_CHUNKSIZE_RGB;RGB processing !PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CMMBPC;Black point compensation !PREFERENCES_CROP;Crop Editing !PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop !PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop -!PREFERENCES_CROP_GUIDES_FRAME;Frame -!PREFERENCES_CROP_GUIDES_FULL;Original -!PREFERENCES_CROP_GUIDES_NONE;None !PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons -!PREFERENCES_CURVEBBOXPOS_ABOVE;Above -!PREFERENCES_CURVEBBOXPOS_BELOW;Below -!PREFERENCES_CURVEBBOXPOS_LEFT;Left -!PREFERENCES_CURVEBBOXPOS_RIGHT;Right -!PREFERENCES_DIRECTORIES;Directories !PREFERENCES_EDITORCMDLINE;Custom command line !PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. -!PREFERENCES_INSPECT_LABEL;Inspect -!PREFERENCES_INSPECT_MAXBUFFERS_LABEL;Maximum number of cached images !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. !PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders !PREFERENCES_MONINTENT;Default rendering intent -!PREFERENCES_MONITOR;Monitor -!PREFERENCES_MONPROFILE;Default color profile !PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_NAVIGATIONFRAME;Navigation !PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel !PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. !PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. !PREFERENCES_PERFORMANCE_MEASURE;Measure !PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) -!PREFERENCES_PREVDEMO;Preview Demosaic Method -!PREFERENCES_PREVDEMO_FAST;Fast !PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: !PREFERENCES_PREVDEMO_SIDECAR;As in PP3 !PREFERENCES_PRINTER;Printer (Soft-Proofing) @@ -1925,15 +2041,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise !PROFILEPANEL_PDYNAMIC;Dynamic -!PROGRESSBAR_DECODING;Decoding... !PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HLREC;Highlight reconstruction... !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... !PROGRESSBAR_RAWCACORR;Raw CA correction... -!QINFO_FRAMECOUNT;%2 frames -!QINFO_HDR;HDR / %2 frame(s) -!QINFO_PIXELSHIFT;Pixel Shift / %2 frame(s) !QUEUE_LOCATION_TITLE;Output Location !QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s !SAMPLEFORMAT_0;Unknown data format @@ -1949,50 +2060,31 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: Ctrl+Shift+right-click.\n- Revert to hand tool: right-click outside any picker. -!TP_BWMIX_MIXC;Channel Mixer -!TP_BWMIX_NEUTRAL;Reset !TP_CBDL_AFT;After Black-and-White !TP_CBDL_BEF;Before Black-and-White !TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. -!TP_COLORAPP_ABSOLUTELUMINANCE;Absolute luminance !TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] !TP_COLORAPP_MEANLUMINANCE;Mean luminance (Yb%) -!TP_COLORAPP_NEUTRAL;Reset -!TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values !TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 !TP_COLORTONING_LABGRID;L*a*b* color correction grid !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 !TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -!TP_COLORTONING_LABREGION_CHANNEL;Channel -!TP_COLORTONING_LABREGION_CHANNEL_ALL;All -!TP_COLORTONING_LABREGION_CHANNEL_B;Blue -!TP_COLORTONING_LABREGION_CHANNEL_G;Green -!TP_COLORTONING_LABREGION_CHANNEL_R;Red !TP_COLORTONING_LABREGION_CHROMATICITYMASK;C !TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness !TP_COLORTONING_LABREGION_LIGHTNESSMASK;L -!TP_COLORTONING_LABREGION_LIST_TITLE;Correction -!TP_COLORTONING_LABREGION_MASK;Mask !TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur -!TP_COLORTONING_LABREGION_OFFSET;Offset !TP_COLORTONING_LABREGION_POWER;Power -!TP_COLORTONING_LABREGION_SATURATION;Saturation -!TP_COLORTONING_LABREGION_SHOWMASK;Show mask !TP_COLORTONING_LABREGION_SLOPE;Slope !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 -!TP_CROP_PPI;PPI -!TP_CROP_RESETCROP;Reset !TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones !TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatic global -!TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Chrominance curve !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. -!TP_DIRPYRDENOISE_CHROMINANCE_FRAME;Chrominance !TP_DIRPYRDENOISE_CHROMINANCE_METHODADVANCED_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. !TP_DIRPYRDENOISE_CHROMINANCE_METHOD_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nAutomatic multi-zones\nNo preview - works only during saving, but using the "Preview" method by matching the tile size and center to the preview size and center you can get an idea of the expected results.\nThe image is divided into tiles (about 10 to 70 depending on image size) and each tile receives its own chrominance noise reduction settings.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. !TP_DIRPYRDENOISE_CHROMINANCE_PMZ;Preview multi-zones @@ -2011,7 +2103,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_DIRPYRDENOISE_TYPE_7X7;7×7 !TP_DIRPYRDENOISE_TYPE_9X9;9×9 !TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. -!TP_EXPOSURE_CLAMPOOG;Clip out-of-gamut colors !TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve !TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual @@ -2028,70 +2119,36 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_APPLYHUESATMAP_TOOLTIP;Employ the embedded DCP base table (HueSatMap). The setting is only available if the selected DCP has one. !TP_ICM_APPLYLOOKTABLE;Look table !TP_ICM_APPLYLOOKTABLE_TOOLTIP;Employ the embedded DCP look table. The setting is only available if the selected DCP has one. -!TP_ICM_BPC;Black Point Compensation !TP_ICM_PROFILEINTENT;Rendering Intent !TP_ICM_SAVEREFERENCE;Save Reference Image -!TP_ICM_SAVEREFERENCE_APPLYWB;Apply white balance !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. !TP_ICM_WORKING_TRC;Tone response curve: -!TP_ICM_WORKING_TRC_CUSTOM;Custom !TP_ICM_WORKING_TRC_GAMMA;Gamma -!TP_ICM_WORKING_TRC_NONE;None !TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_LCPFILE;LCP file !TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. -!TP_LENSPROFILE_MODE_HEADER;Lens Profile -!TP_LENSPROFILE_USE_CA;Chromatic aberration -!TP_LENSPROFILE_USE_GEOMETRIC;Geometric distortion !TP_LENSPROFILE_USE_HEADER;Correct -!TP_LENSPROFILE_USE_VIGNETTING;Vignetting !TP_LOCALCONTRAST_DARKNESS;Darkness level !TP_LOCALCONTRAST_LIGHTNESS;Lightness level -!TP_METADATA_EDIT;Apply modifications -!TP_METADATA_MODE;Metadata copy mode -!TP_METADATA_STRIP;Strip all metadata -!TP_METADATA_TUNNEL;Copy unchanged !TP_PDSHARPENING_LABEL;Capture Sharpening -!TP_PREPROCESS_LINEDENOISE_DIRECTION;Direction !TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both -!TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Horizontal !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows -!TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter !TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. -!TP_RAWCACORR_AUTOIT;Iterations !TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. -!TP_RAWCACORR_AVOIDCOLORSHIFT;Avoid color shift -!TP_RAW_1PASSMEDIUM;1-pass (Markesteijn) -!TP_RAW_2PASS;1-pass+fast -!TP_RAW_3PASSBEST;3-pass (Markesteijn) -!TP_RAW_4PASS;3-pass+fast -!TP_RAW_AHD;AHD -!TP_RAW_AMAZE;AMaZE -!TP_RAW_AMAZEVNG4;AMaZE+VNG4 !TP_RAW_BORDER;Border -!TP_RAW_DCB;DCB -!TP_RAW_DCBVNG4;DCB+VNG4 -!TP_RAW_DUALDEMOSAICAUTOCONTRAST;Auto threshold !TP_RAW_DUALDEMOSAICAUTOCONTRAST_TOOLTIP;If the checkbox is checked (recommended), RawTherapee calculates an optimum value based on flat regions in the image.\nIf there is no flat region in the image or the image is too noisy, the value will be set to 0.\nTo set the value manually, uncheck the checkbox first (reasonable values depend on the image). -!TP_RAW_EAHD;EAHD -!TP_RAW_FAST;Fast !TP_RAW_HD_TOOLTIP;Lower values make hot/dead pixel detection more aggressive, but false positives may lead to artifacts. If you notice any artifacts appearing when enabling the Hot/Dead Pixel Filters, gradually increase the threshold value until they disappear. -!TP_RAW_HPHD;HPHD -!TP_RAW_IGV;IGV !TP_RAW_IMAGENUM;Sub-image !TP_RAW_IMAGENUM_SN;SN mode !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. -!TP_RAW_LMMSE;LMMSE !TP_RAW_NONE;None (Shows sensor pattern) !TP_RAW_PIXELSHIFT;Pixel Shift !TP_RAW_PIXELSHIFTBLUR;Blur motion mask !TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion -!TP_RAW_PIXELSHIFTEPERISO;Sensitivity !TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nHigher values increase sensitivity of motion detection.\nChange in small steps and watch the motion mask while changing.\nIncrease sensitivity for underexposed or high ISO images. !TP_RAW_PIXELSHIFTEQUALBRIGHT;Equalize brightness of frames !TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel @@ -2102,9 +2159,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Fill holes in motion mask !TP_RAW_PIXELSHIFTMEDIAN;Use median for moving parts !TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use median of all frames instead of selected frame for regions with motion.\nRemoves objects which are at different places in all frames.\nGives motion effect on slow moving (overlapping) objects. -!TP_RAW_PIXELSHIFTMM_AUTO;Automatic -!TP_RAW_PIXELSHIFTMM_CUSTOM;Custom -!TP_RAW_PIXELSHIFTMM_OFF;Off !TP_RAW_PIXELSHIFTMOTIONMETHOD;Motion Correction !TP_RAW_PIXELSHIFTNONGREENCROSS;Check red/blue channels for motion !TP_RAW_PIXELSHIFTSHOWMOTION;Show motion mask @@ -2114,25 +2168,14 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. !TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. -!TP_RAW_RCD;RCD -!TP_RAW_RCDVNG4;RCD+VNG4 -!TP_RAW_VNG4;VNG4 -!TP_RAW_XTRANS;X-Trans -!TP_RAW_XTRANSFAST;Fast X-Trans !TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CONTEDIT_HSL;HSL histogram -!TP_RETINEX_CONTEDIT_LAB;L*a*b* histogram -!TP_RETINEX_CONTEDIT_LH;Hue -!TP_RETINEX_CONTEDIT_MAP;Equalizer !TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. !TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) !TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. !TP_RETINEX_CURVEEDITOR_MAP;L=f(L) !TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! -!TP_RETINEX_EQUAL;Equalizer !TP_RETINEX_FREEGAMMA;Free gamma -!TP_RETINEX_GAIN;Gain !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. @@ -2147,9 +2190,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_GRADS;Strength gradient !TP_RETINEX_GRADS_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Strength is reduced when iterations increase, and conversely. !TP_RETINEX_GRAD_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Variance and Threshold are reduced when iterations increase, and conversely. -!TP_RETINEX_HIGH;High !TP_RETINEX_HIGHLIG;Highlight -!TP_RETINEX_HIGHLIGHT;Highlight threshold !TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. !TP_RETINEX_HSLSPACE_LIN;HSL-Linear !TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic @@ -2159,7 +2200,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_MAP_MAPP;Sharp mask (wavelet partial) !TP_RETINEX_MAP_MAPT;Sharp mask (wavelet total) !TP_RETINEX_MAP_METHOD_TOOLTIP;Use the mask generated by the Gaussian function above (Radius, Method) to reduce halos and artifacts.\n\nCurve only: apply a diagonal contrast curve on the mask.\nBeware of artifacts!\n\nGaussian mask: generate and use a Gaussian blur of the original mask.\nQuick.\n\nSharp mask: generate and use a wavelet on the original mask.\nSlow. -!TP_RETINEX_MAP_NONE;None !TP_RETINEX_MEDIAN;Transmission median filter !TP_RETINEX_METHOD_TOOLTIP;Low = Reinforce low light.\nUniform = Equalize action.\nHigh = Reinforce high light.\nHighlights = Remove magenta in highlights. !TP_RETINEX_MLABEL;Restored haze-free Min=%1 Max=%2 @@ -2175,10 +2215,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_TRANF;Transmission !TP_RETINEX_TRANSMISSION;Transmission map !TP_RETINEX_TRANSMISSION_TOOLTIP;Transmission according to transmission.\nAbscissa: transmission from negative values (min), mean, and positives values (max).\nOrdinate: amplification or reduction. -!TP_RETINEX_UNIFORM;Uniform !TP_RETINEX_VARIANCE_TOOLTIP;Low variance increase local contrast and saturation, but can lead to artifacts. !TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. -!TP_RETINEX_VIEW_NONE;Standard !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed !TP_SHARPENING_BLUR;Blur radius @@ -2187,35 +2225,17 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_SOFTLIGHT_LABEL;Soft Light !TP_TM_FATTAL_ANCHOR;Anchor !TP_TM_FATTAL_LABEL;Dynamic Range Compression -!TP_WAVELET_1;Level 1 -!TP_WAVELET_2;Level 2 -!TP_WAVELET_3;Level 3 -!TP_WAVELET_4;Level 4 -!TP_WAVELET_5;Level 5 -!TP_WAVELET_6;Level 6 -!TP_WAVELET_7;Level 7 -!TP_WAVELET_8;Level 8 -!TP_WAVELET_9;Level 9 -!TP_WAVELET_APPLYTO;Apply To -!TP_WAVELET_AVOID;Avoid color shift -!TP_WAVELET_B0;Black -!TP_WAVELET_B1;Grey !TP_WAVELET_B2;Residual -!TP_WAVELET_BACKGROUND;Background -!TP_WAVELET_BACUR;Curve !TP_WAVELET_BALANCE;Contrast balance d/v-h !TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. -!TP_WAVELET_BALCHRO;Chroma balance !TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. !TP_WAVELET_BASLI;Slider !TP_WAVELET_BATYPE;Contrast balance method !TP_WAVELET_CBENAB;Toning and Color Balance !TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted -!TP_WAVELET_CCURVE;Local contrast !TP_WAVELET_CH1;Whole chroma range !TP_WAVELET_CH2;Saturated/pastel !TP_WAVELET_CH3;Link contrast levels -!TP_WAVELET_CHCU;Curve !TP_WAVELET_CHR;Chroma-contrast link strength !TP_WAVELET_CHRO;Saturated/pastel threshold !TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. @@ -2228,7 +2248,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_COMPTM;Tone mapping !TP_WAVELET_CONTEDIT;'After' contrast curve !TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. -!TP_WAVELET_CTYPE;Chrominance control !TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). !TP_WAVELET_CURVEEDITOR_CH;Contrast levels=f(Hue) !TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. @@ -2236,13 +2255,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Applies a final contrast luminance curve at the end of the wavelet treatment. !TP_WAVELET_CURVEEDITOR_HH;HH !TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Modifies the residual image's hue as a function of hue. -!TP_WAVELET_DALL;All directions !TP_WAVELET_DAUB;Edge performance -!TP_WAVELET_DAUB2;D2 - low -!TP_WAVELET_DAUB4;D4 - standard -!TP_WAVELET_DAUB6;D6 - standard plus -!TP_WAVELET_DAUB10;D10 - medium -!TP_WAVELET_DAUB14;D14 - high !TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. !TP_WAVELET_EDGCONT_TOOLTIP;Adjusting the points to the left decreases contrast, and to the right increases it.\nBottom-left, top-left, top-right and bottom-right represent respectively local contrast for low values, mean, mean+stdev and maxima. !TP_WAVELET_EDGEAMPLI;Base amplification @@ -2259,9 +2272,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_FINEST;Finest !TP_WAVELET_HIGHLIGHT;Highlight luminance range !TP_WAVELET_HS1;Whole luminance range -!TP_WAVELET_HUESKIN;Skin hue !TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. -!TP_WAVELET_HUESKY;Sky hue !TP_WAVELET_HUESKY_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. !TP_WAVELET_ITER;Delta balance levels !TP_WAVELET_ITER_TOOLTIP;Left: increase low levels and reduce high levels,\nRight: reduce low levels and increase high levels. @@ -2276,14 +2287,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. !TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 !TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength -!TP_WAVELET_LIPST;Enhanced algoritm !TP_WAVELET_LOWLIGHT;Shadow luminance range !TP_WAVELET_MEDGREINF;First level -!TP_WAVELET_MEDI;Reduce artifacts in blue sky -!TP_WAVELET_MEDILEV;Edge detection !TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. -!TP_WAVELET_NEUTRAL;Neutral -!TP_WAVELET_NOIS;Denoise !TP_WAVELET_NOISE;Denoise and Refine !TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. !TP_WAVELET_OPACITY;Opacity Blue-Yellow @@ -2291,10 +2297,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_OPACITYWL;Final local contrast !TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. !TP_WAVELET_PASTEL;Pastel chroma -!TP_WAVELET_PROC;Process -!TP_WAVELET_RE1;Reinforced -!TP_WAVELET_RE2;Unchanged -!TP_WAVELET_RE3;Reduced !TP_WAVELET_RESCHRO;Chroma !TP_WAVELET_RESID;Residual Image !TP_WAVELET_SAT;Saturated chroma @@ -2312,7 +2314,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. !TP_WAVELET_TMSTRENGTH;Compression strength !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. -!TP_WAVELET_TMTYPE;Compression method !TP_WAVELET_TON;Toning !TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". From aa120768ea6c8b9fea94d64602bea9da9b586ddd Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Mon, 3 Feb 2020 18:54:40 +0100 Subject: [PATCH 190/453] Show 5.8 in splash screen Reverts d6fb05938 for `release-5.8` branch --- rtdata/images/svg/splash.svg | 147 ++++++++++------------------------- 1 file changed, 41 insertions(+), 106 deletions(-) diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 27b504af9..0321d61a0 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -442,34 +442,34 @@ operator="over" /> + y="-0.5" + height="2" + width="2"> + flood-color="rgb(0,0,0)" + result="flood" /> + in="flood" + operator="in" + result="composite1" /> + result="blur" /> + in="SourceGraphic" + operator="over" + result="composite2" /> - - - - - - - + id="g1792" + transform="translate(52.916669)"> + aria-label="5" + transform="matrix(0.24127119,0,0.01264448,0.24127122,-57.800454,265.42414)" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:0%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:0px;word-spacing:0px;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter4749);enable-background:new" + id="text1782"> + d="m 290.0611,1.4557576 -0.27344,-3.9453125 q -0.11719,-1.9140625 -0.27344,-3.4765625 -0.11719,-1.5625 -0.50781,-5.0781246 8.08594,2.3046871 13.39844,2.3046871 2.85156,0 5.23437,-0.8984375 2.42188,-0.8984376 3.71094,-2.5390626 1.28906,-1.640625 1.28906,-3.59375 0,-2.851562 -2.65625,-4.296875 -2.61719,-1.484375 -8.24219,-1.484375 -2.5,0 -4.92187,0.195313 -2.38281,0.15625 -6.48438,0.703125 l 1.99219,-25.234375 q 0.11719,-1.875 0.23438,-5.195313 9.80468,0.07813 18.86718,0.07813 11.48438,0 19.14063,-0.07813 -0.35156,4.0625 -0.42969,6.445313 l -0.19531,5.3125 -5.19531,-0.195313 -2.42188,-0.03906 h -3.78906 q -2.42188,-0.03906 -6.01563,-0.03906 -1.21093,0 -3.98437,0.07813 l -0.78125,8.945313 q 2.61719,-0.195313 4.0625,-0.195313 6.09375,0 10.74219,1.953125 4.64843,1.914063 6.79687,5.390625 2.14844,3.476563 2.14844,7.851563 0,4.257812 -2.1875,8.2031246 -2.1875,3.90625 -6.01563,6.25 -3.78906,2.3046875 -8.82812,3.359375 -5,1.015625 -10.27344,1.015625 -1.99219,0 -4.72656,-0.2734375 -2.73438,-0.234375 -4.60938,-0.546875 -1.875,-0.3125 -4.80468,-0.9765625 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:80px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold'" + id="path1794" /> + + + d="m 286.21154,2.2370076 q 0.19276,-3.22882392 0.33734,-8.7226438 l 4.96371,0.072287 q 0.79516,0 4.19265,-0.072287 -0.19276,2.6264315 -0.43372,8.7226438 l -4.19265,-0.048191 q -0.45782,0 -4.86733,0.048191 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px" + id="path1797" /> - - - - - - - - + d="m 305.49017,-14.629983 q -1.39755,-0.67468 -2.07223,-1.132498 -0.65058,-0.481914 -1.27707,-1.156594 -0.60239,-0.674679 -1.01202,-1.493933 -0.40963,-0.819254 -0.57829,-1.686699 -0.16867,-0.867445 -0.16867,-1.734891 0,-2.337283 1.06021,-4.216747 1.06021,-1.879465 3.13244,-3.08425 2.07223,-1.228881 4.43361,-1.686699 2.36137,-0.457819 4.96371,-0.457819 2.48186,0 4.79505,0.578297 2.31318,0.554201 3.95169,1.758986 1.6626,1.204786 2.43367,2.771006 0.77106,1.542125 0.77106,3.710738 0,1.036115 -0.21686,1.999943 -0.19277,0.963828 -0.62649,1.783082 -0.43372,0.795158 -1.06021,1.469838 -0.62649,0.674679 -1.32527,1.180689 -0.69877,0.50601 -2.33728,1.325264 1.54213,0.433722 2.36138,0.795158 0.81925,0.33734 1.56622,0.963828 0.77106,0.602392 1.30117,1.445742 0.5542,0.819254 0.79516,1.7589862 0.24095,0.9397323 0.24095,1.9758475 0,2.4095701 -1.18069,4.6022789 -1.18069,2.19270878 -3.22882,3.51797234 -2.02404,1.32526356 -4.72276,1.90356036 -2.69872,0.6023925 -5.51791,0.6023925 -2.69872,0 -5.20467,-0.5301054 -2.48186,-0.5301054 -4.43361,-1.75898615 -1.95175,-1.25297646 -2.8433,-2.93967555 -0.89154,-1.6866991 -0.89154,-3.8312165 0,-1.2529764 0.31325,-2.4336658 0.33734,-1.1806893 0.98792,-2.2168044 0.67468,-1.060211 1.54213,-1.758986 0.86744,-0.722871 1.6867,-1.108402 0.84334,-0.409627 2.36137,-0.915637 z m 7.90339,-9.999716 q -1.90356,0 -3.01196,1.060211 -1.1084,1.060211 -1.1084,2.602336 0,0.915636 0.48191,1.686699 0.48192,0.771062 1.34936,1.156593 0.86745,0.361436 1.87947,0.361436 1.75898,0 2.93967,-1.01202 1.18069,-1.036115 1.18069,-2.674623 0,-1.445742 -1.01202,-2.313187 -0.98792,-0.867445 -2.69872,-0.867445 z m -0.57829,13.22854 q -2.16862,0 -3.3975,1.108402 -1.20478,1.0843066 -1.20478,2.8191971 0,1.0120194 0.5301,1.8794647 0.5542,0.8674452 1.56622,1.3252635 1.03612,0.4337227 2.2409,0.4337227 1.25298,0 2.265,-0.4819141 1.03612,-0.481914 1.63851,-1.4216463 0.60239,-0.9638281 0.60239,-2.1927088 0,-1.6385077 -1.1325,-2.5541448 -1.1084,-0.915636 -3.10834,-0.915636 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:49.34799576px;line-height:1.25;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';letter-spacing:-7.09514618px" + id="path1799" /> From 9a9e0acbf27d589dbf6e964fd20a25893eedf749 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 4 Feb 2020 07:39:52 +0100 Subject: [PATCH 191/453] Bump release date to now --- RELEASE_NOTES.txt | 2 +- com.rawtherapee.RawTherapee.appdata.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 9aa5a5ac8..21c3fd658 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,6 +1,6 @@ RAWTHERAPEE 5.8 RELEASE NOTES -This is RawTherapee 5.8, released on 2020-02-02. +This is RawTherapee 5.8, released on 2020-02-04. Start by reading the "Getting Started" article in RawPedia: https://rawpedia.rawtherapee.com/ diff --git a/com.rawtherapee.RawTherapee.appdata.xml b/com.rawtherapee.RawTherapee.appdata.xml index 5d6346726..f7d588684 100644 --- a/com.rawtherapee.RawTherapee.appdata.xml +++ b/com.rawtherapee.RawTherapee.appdata.xml @@ -22,7 +22,7 @@ https://rawpedia.rawtherapee.com/Main_Page#Localization rawtherapee.desktop - + From d35dc3f93b2b0d7e02ab91c1a222948023f6653c Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Wed, 5 Feb 2020 23:27:04 +0100 Subject: [PATCH 192/453] Fix copyright references for the CR3 decoder Closes #5634 --- rtengine/canon_cr3_decoder.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/rtengine/canon_cr3_decoder.cc b/rtengine/canon_cr3_decoder.cc index 6274154cb..d9a10900c 100644 --- a/rtengine/canon_cr3_decoder.cc +++ b/rtengine/canon_cr3_decoder.cc @@ -18,6 +18,7 @@ */ // Code adapted from ART +// https://bitbucket.org/agriggio/art/ /* * * This file is part of ART. @@ -37,11 +38,16 @@ */ // Code adapted from libraw -/* -*- C++ -*- - * Copyright 2019 LibRaw LLC (info@libraw.org) +// https://github.com/LibRaw/LibRaw/ +/* + * File: libraw_crxdec.cpp + * Copyright (C) 2018-2019 Alexey Danilchenko + * Copyright (C) 2019 Alex Tutubalin, LibRaw LLC * - LibRaw is free software; you can redistribute it and/or modify - it under the terms of the one of two licenses as you choose: + Canon CR3 file decoder + +LibRaw is free software; you can redistribute it and/or modify +it under the terms of the one of two licenses as you choose: 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1 (See file LICENSE.LGPL provided in LibRaw distribution archive for details). @@ -49,7 +55,7 @@ 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 (See file LICENSE.CDDL provided in LibRaw distribution archive for details). -*/ + */ #include #include From cd1e96b41c269b87aba38fd38a9e9264734a9464 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 6 Feb 2020 12:04:28 +0100 Subject: [PATCH 193/453] Changes to merge release 5.8 back into dev --- RELEASE_NOTES.txt | 23 +- rtdata/images/svg/splash.svg | 1320 +++++++++++++++++----------------- 2 files changed, 691 insertions(+), 652 deletions(-) diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt index 21c3fd658..eb8d96379 100644 --- a/RELEASE_NOTES.txt +++ b/RELEASE_NOTES.txt @@ -1,10 +1,17 @@ -RAWTHERAPEE 5.8 RELEASE NOTES +RAWTHERAPEE 5.8-dev RELEASE NOTES -This is RawTherapee 5.8, released on 2020-02-04. +This is a development version of RawTherapee. We update the code almost daily. Every few months, once enough changes have accumulated and the code is stabilized, we make a new official release. Every code change between these releases is known as a "development" version, and this is one of them. -Start by reading the "Getting Started" article in RawPedia: +Start by reading the "Getting Started" article on RawPedia: https://rawpedia.rawtherapee.com/ +While we only commit tested and relatively stable code and so the development versions should be fairly stable, you should be aware that: +- Development versions only had limited testing, so there may be bugs unknown to us. +- You should report these bugs so that they get fixed for the next stable release. See + https://rawpedia.rawtherapee.com/How_to_write_useful_bug_reports +- The way new tools work in the development versions is likely to change as we tweak and tune them, so your processing profiles may produce different results when used in a future stable version. +- Bugs present in the stable versions get fixed in the development versions, and make it into the next stable version when we make a new official release. That means that in some ways the development versions can be "more stable" than the latest stable release. At the same time, new features may introduce new bugs. This is a trade-off you should be aware of. + NEWS RELEVANT TO PHOTOGRAPHERS @@ -19,17 +26,15 @@ In order to use RawTherapee efficiently you should know that: - All curves support the Shift and Ctrl keys while dragging a point. Shift+drag makes the point snap to a meaningful axis (top, bottom, diagonal, other), while Ctrl+drag makes your mouse movement super-fine for precise point positioning. - There are many keyboard shortcuts which make working with RawTherapee much faster and give you greater control. Make sure you familiarize yourself with them on RawPedia's "Keyboard Shortcuts" page! -New features since 5.7: -- Automatically recover detail lost to lens blur (diffraction) using the new Capture Sharpening tool, located in the "Raw" tab. It takes place right after demosaicing, and as it works in linear space it is not prone to haloing. Capture Sharpening in combination with Post-Resize Sharpening allows for detailed and crisp results. -- CR3 support: image data is decoded so you can process your raw files, but metadata is not supported yet. If you have an ICC or DCP input profile for your CR3-producing camera, you will need to point RawTherapee to it manually (Color tab > Color Management > Input Profile > Custom). -- Improvements of various camera models (new DCP dual-illuminant input profiles, raw crops, white levels, etc.), speedups and optimizations to various tools, better memory management, various bug fixes. See the git log for details. +New features since 5.8: +- TODO NEWS RELEVANT TO PACKAGE MAINTAINERS -New since 5.7: -- Optionally link against libtcmalloc.so which comes with Google's perftools, to fix issues where glibc won't give memory back to the OS. Use via the CMake options `ENABLE_TCMALLOC` and `TCMALLOC_LIB_DIR`. +New since 5.8: +- TODO In general: - To get the source code, either clone from git or use the tarball from https://rawtherapee.com/shared/source/ . Do not use the auto-generated GitHub release tarballs. diff --git a/rtdata/images/svg/splash.svg b/rtdata/images/svg/splash.svg index 0321d61a0..5609a45c1 100644 --- a/rtdata/images/svg/splash.svg +++ b/rtdata/images/svg/splash.svg @@ -1,6 +1,4 @@ - - + inkscape:export-xdpi="96" + inkscape:export-filename="/tmp/splash.png" + sodipodi:docname="splash.svg" + inkscape:version="1.1-dev (4cd8f7c, 2020-02-06)" + id="svg783" + version="1.1" + viewBox="0 0 146.05 91.545836" + height="346" + width="552"> RawTherapee splash screen + id="stop3964-8" /> + id="stop3966-8" /> + id="stop3956-7" /> + id="stop3958-6" /> + inkscape:collect="always" + id="linearGradient4002-3"> + id="stop4004-0" /> + id="stop4006-3" /> + id="stop4026-2" /> + id="stop4028-5" /> + inkscape:collect="always" + id="linearGradient4018-0"> + id="stop4020-5" /> + id="stop4022-9" /> + style="stop-color:#f18e01;stop-opacity:1;" /> + id="stop3982-2" /> + inkscape:collect="always" + id="linearGradient3994-4"> + id="stop3996-7" /> + id="stop3998-7" /> + id="stop3972-8" /> + id="stop3974-1" /> + id="stop3948-9" /> + id="stop3950-3" /> + id="stop3988-0" /> + id="stop3990-2" /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + inkscape:window-maximized="1" + inkscape:window-y="0" + inkscape:window-x="0" + inkscape:window-height="1021" + inkscape:window-width="1920" + inkscape:snap-global="false" + inkscape:snap-nodes="true" + inkscape:object-nodes="false" + inkscape:snap-others="true" + inkscape:guide-bbox="true" + showguides="true" + inkscape:bbox-paths="false" + inkscape:snap-bbox-edge-midpoints="false" + inkscape:snap-bbox-midpoints="true" + inkscape:object-paths="false" + inkscape:snap-intersection-paths="false" + inkscape:snap-smooth-nodes="false" + inkscape:snap-midpoints="false" + inkscape:snap-object-midpoints="true" + inkscape:snap-center="false" + inkscape:snap-text-baseline="false" + inkscape:snap-page="false" + inkscape:bbox-nodes="true" + inkscape:snap-bbox="true" + units="px" + showgrid="false" + inkscape:current-layer="layer1" + inkscape:document-units="px" + inkscape:cy="209.17983" + inkscape:cx="275.82889" + inkscape:zoom="0.95596044" + inkscape:pageshadow="2" + inkscape:pageopacity="0.0" + borderopacity="1.0" + bordercolor="#666666" + pagecolor="#ffffff" + id="base"> - + + orientation="0,1" + position="27.648959,71.437501" /> - + + orientation="1,0" + position="138.12828,76.425406" /> - + - + - - + position="123.92422,11.509375" /> + + + orientation="1,0" + position="73.162242,39.921138" /> @@ -602,308 +570,374 @@ + inkscape:groupmode="layer" + inkscape:label="Layer 1"> + width="146.05" + height="91.545853" + x="-2.4167275e-07" + y="205.45415" /> + aria-label="GNU GPLv3"> + d="m 9.4489751,288.85927 q 0.3352508,0.002 0.5154724,0.002 0.1918485,0 0.4321445,-0.002 -0.04263,0.57942 -0.06201,1.39914 -0.5871735,0.12596 -1.0038148,0.12596 -0.3081207,0 -0.5910491,-0.0795 -0.2809906,-0.0795 -0.4747773,-0.24224 -0.1937866,-0.16278 -0.2926178,-0.41858 -0.096893,-0.25579 -0.096893,-0.54066 0,-0.32362 0.1220856,-0.60849 0.1240234,-0.2868 0.346878,-0.48059 0.2228547,-0.19379 0.5019074,-0.27712 0.2790527,-0.0833 0.6181793,-0.0833 0.3720703,0 0.829407,0.0988 0.0039,0.14534 0.01938,0.31393 -0.271301,-0.0891 -0.4689632,-0.12208 -0.1976624,-0.0349 -0.3643189,-0.0349 -0.2616119,0 -0.4980316,0.0795 -0.2364196,0.0775 -0.405014,0.24029 -0.1685944,0.16084 -0.2557983,0.3992 -0.087204,0.23836 -0.087204,0.49222 0,0.22673 0.069763,0.42633 0.071701,0.19766 0.2151031,0.32362 0.1434021,0.12597 0.3488159,0.19379 0.2073517,0.0659 0.449585,0.0659 0.1317749,0 0.3139343,-0.0233 0.1821594,-0.0252 0.3681946,-0.0833 l 0.038757,-0.91661 H 9.855927 q -0.1821594,0 -0.4185791,0.01 0.011627,-0.13952 0.011627,-0.25773 z" /> + d="m 10.908188,290.34174 0.03876,-0.53873 0.06589,-1.57355 0.0078,-0.30618 q 0.0019,-0.14534 0.0019,-0.22673 0.14534,0.002 0.242234,0.002 0.07945,0 0.222854,-0.002 l 0.211228,0.34106 1.280929,1.93206 0.08139,-2.27312 0.17247,0.002 0.170532,-0.002 -0.04263,0.67825 -0.05232,1.19567 -0.02326,0.77127 q -0.114334,-0.004 -0.224792,-0.004 -0.100769,0 -0.234482,0.004 l -0.178284,-0.28487 -1.311935,-1.96693 q -0.0078,0.10852 -0.0155,0.34106 l -0.05426,1.37007 -0.01163,0.54067 q -0.125961,-0.004 -0.168594,-0.004 -0.03101,0 -0.178284,0.004 z" /> + d="m 14.004899,287.69655 0.191848,0.002 0.187973,-0.002 -0.0872,1.47859 -0.0058,0.18022 v 0.0368 q 0,0.26936 0.07945,0.41858 0.07945,0.14728 0.251923,0.22867 0.174408,0.0814 0.439895,0.0814 0.178284,0 0.329438,-0.0465 0.125961,-0.0407 0.213165,-0.10852 0.08914,-0.0678 0.147278,-0.16666 0.05426,-0.0949 0.07752,-0.2151 0.02713,-0.15115 0.04845,-0.5271 l 0.03488,-0.62399 q 0.0155,-0.34494 0.02132,-0.73639 l 0.199601,0.002 0.180221,-0.002 -0.0562,0.91273 -0.03488,0.75577 q -0.01744,0.26355 -0.0562,0.40889 -0.02907,0.10271 -0.08527,0.19379 -0.05038,0.0814 -0.124023,0.14534 -0.0872,0.0775 -0.211228,0.13759 -0.131775,0.062 -0.279052,0.093 -0.211228,0.0407 -0.437958,0.0407 -0.220917,0 -0.412766,-0.0446 -0.166656,-0.0388 -0.306183,-0.11821 -0.139526,-0.0795 -0.222854,-0.18022 -0.06976,-0.0814 -0.110459,-0.20542 -0.04651,-0.13952 -0.04651,-0.30812 0,-0.18022 0.01356,-0.41276 0.0155,-0.23255 0.03682,-0.70151 0.02326,-0.46896 0.02326,-0.71701 z" /> + d="m 19.285584,288.85927 q 0.335251,0.002 0.515472,0.002 0.191849,0 0.432145,-0.002 -0.04263,0.57942 -0.06201,1.39914 -0.587174,0.12596 -1.003815,0.12596 -0.308121,0 -0.591049,-0.0795 -0.280991,-0.0795 -0.474777,-0.24224 -0.193787,-0.16278 -0.292618,-0.41858 -0.09689,-0.25579 -0.09689,-0.54066 0,-0.32362 0.122085,-0.60849 0.124024,-0.2868 0.346878,-0.48059 0.222855,-0.19379 0.501908,-0.27712 0.279052,-0.0833 0.618179,-0.0833 0.37207,0 0.829407,0.0988 0.0039,0.14534 0.01938,0.31393 -0.271301,-0.0891 -0.468963,-0.12208 -0.197663,-0.0349 -0.364319,-0.0349 -0.261612,0 -0.498032,0.0795 -0.236419,0.0775 -0.405014,0.24029 -0.168594,0.16084 -0.255798,0.3992 -0.0872,0.23836 -0.0872,0.49222 0,0.22673 0.06976,0.42633 0.0717,0.19766 0.215103,0.32362 0.143402,0.12597 0.348816,0.19379 0.207352,0.0659 0.449585,0.0659 0.131775,0 0.313934,-0.0233 0.18216,-0.0252 0.368195,-0.0833 l 0.03876,-0.91661 h -0.182159 q -0.18216,0 -0.418579,0.01 0.01163,-0.13952 0.01163,-0.25773 z" /> + d="m 20.746735,290.34174 0.03294,-0.4399 0.06201,-1.51541 0.0078,-0.32556 q 0.0019,-0.0775 0.0019,-0.15309 v -0.21123 q 0.242233,0.004 0.393387,0.004 0.09108,0 0.279052,-0.004 0.187973,-0.004 0.280991,-0.004 0.246109,0 0.364319,0.0368 0.11821,0.0349 0.209289,0.12015 0.09108,0.0833 0.143403,0.20735 0.05232,0.12403 0.05232,0.27324 0,0.24417 -0.124024,0.4399 -0.124023,0.19378 -0.339126,0.29068 -0.213165,0.0949 -0.476715,0.0949 -0.139527,0 -0.310059,-0.031 -0.02907,-0.13372 -0.06589,-0.24224 0.151153,0.0291 0.294555,0.0291 0.139527,0 0.265488,-0.031 0.127899,-0.0329 0.218979,-0.10658 0.09108,-0.0756 0.141464,-0.18797 0.05038,-0.1124 0.05038,-0.23836 0,-0.0988 -0.03682,-0.18216 -0.03682,-0.0853 -0.102707,-0.13371 -0.06395,-0.0504 -0.147277,-0.0678 -0.08139,-0.0174 -0.238358,-0.0174 H 21.54126 l -0.203476,0.004 -0.151153,-0.002 q -0.02325,0.42439 -0.03294,0.77127 l -0.02713,0.79646 q -0.01356,0.45347 -0.01356,0.60656 v 0.21898 l -0.180222,-0.004 q -0.03294,0 -0.186035,0.004 z" /> + d="m 22.891953,290.34174 q 0.04457,-0.49997 0.07558,-1.22086 0.03294,-0.72282 0.04069,-1.42433 0.133713,0.002 0.203476,0.002 l 0.180221,-0.002 -0.06201,1.22861 -0.04651,1.15884 0.368195,0.002 q 0.410827,0 0.577484,-0.002 0.168594,-0.004 0.325561,-0.0136 -0.01163,0.12209 -0.01938,0.27131 -0.439896,-0.004 -0.777085,-0.004 z" /> + d="m 25.335602,290.34174 -0.06589,-0.19573 q -0.03294,-0.0949 -0.155029,-0.43214 l -0.486405,-1.33519 q 0.11821,0.002 0.186035,0.002 0.07364,0 0.174408,-0.002 l 0.04069,0.13565 q 0.01744,0.0581 0.06007,0.18603 l 0.455399,1.3507 0.616241,-1.48053 0.07364,-0.19185 q 0.114334,0.002 0.18216,0.002 0.06782,0 0.182159,-0.002 l -0.251923,0.54066 -0.505783,1.12784 -0.124023,0.29456 q -0.120148,-0.004 -0.187973,-0.004 -0.06976,0 -0.193787,0.004 z" /> + d="m 26.769623,290.2836 q -0.0097,-0.16666 -0.02713,-0.29843 0.218979,0.0833 0.391449,0.11433 0.17247,0.031 0.323624,0.031 0.197662,0 0.358505,-0.064 0.162781,-0.0659 0.265488,-0.19573 0.102707,-0.13177 0.102707,-0.30812 0,-0.14146 -0.07558,-0.25192 -0.07558,-0.11046 -0.228668,-0.16859 -0.151154,-0.0581 -0.410828,-0.0581 -0.120148,0 -0.269363,0.0136 0.01356,-0.16472 0.0155,-0.26743 0.100769,0.0174 0.182159,0.0174 0.205414,0 0.379822,-0.0504 0.174408,-0.0523 0.269363,-0.1841 0.09496,-0.13178 0.09496,-0.28293 0,-0.10077 -0.04263,-0.18991 -0.04263,-0.0891 -0.124024,-0.14534 -0.08139,-0.0562 -0.193787,-0.0775 -0.110458,-0.0213 -0.224792,-0.0213 -0.149216,0 -0.284866,0.0174 -0.135651,0.0174 -0.3275,0.0659 0.02326,-0.0891 0.04845,-0.26937 0.224792,-0.0329 0.358505,-0.0446 0.133713,-0.0136 0.255798,-0.0136 0.203476,0 0.38176,0.0368 0.180222,0.0349 0.302307,0.11821 0.122086,0.0814 0.178284,0.20735 0.05814,0.12596 0.05814,0.2713 0,0.10658 -0.03294,0.21317 -0.03294,0.10658 -0.0872,0.18409 -0.05232,0.0775 -0.116272,0.1279 -0.06395,0.0504 -0.137588,0.0833 -0.0717,0.0329 -0.218979,0.0775 0.155029,0.0174 0.232544,0.0426 0.07751,0.0252 0.151153,0.0775 0.07364,0.0523 0.125962,0.1279 0.05426,0.0736 0.07945,0.17053 0.02713,0.095 0.02713,0.19767 0,0.18216 -0.08333,0.343 -0.08333,0.16084 -0.23642,0.26355 -0.153091,0.1027 -0.346878,0.14728 -0.193786,0.0426 -0.405014,0.0426 -0.153091,0 -0.313934,-0.0213 -0.160843,-0.0213 -0.395325,-0.0795 z" /> + style="filter:url(#filter173)" + id="g171"> - - - - - - - + + + + + + + + id="path6484" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccc" + transform="matrix(1.0281074,0,0,1.0281074,-62.765085,91.449911)" /> + d="m 467.68945,468.75 -35.33398,-35.33398 a 94.999997,94.999997 0 0 0 -5.01563,5.38281 94.999997,94.999997 0 0 0 -5.74609,7.56055 94.999997,94.999997 0 0 0 -4.96484,8.0957 94.999997,94.999997 0 0 0 -4.12891,8.55078 94.999997,94.999997 0 0 0 -3.25781,8.91992 94.999997,94.999997 0 0 0 -1.02149,4 l 48.24024,12.92578 a 44.999999,44.999999 0 0 1 0.54883,-2.15039 44.999999,44.999999 0 0 1 1.54296,-4.22461 44.999999,44.999999 0 0 1 1.95704,-4.05078 44.999999,44.999999 0 0 1 2.34961,-3.83398 44.999999,44.999999 0 0 1 2.72265,-3.58203 44.999999,44.999999 0 0 1 2.10742,-2.25977 z" + id="path6482" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 487.45898,456.80859 -12.94531,-48.32031 a 94.999997,94.999997 0 0 0 -8.9375,2.96875 94.999997,94.999997 0 0 0 -8.66797,3.87891 94.999997,94.999997 0 0 0 -8.23632,4.72461 94.999997,94.999997 0 0 0 -7.72461,5.52343 94.999997,94.999997 0 0 0 -7.13477,6.26758 94.999997,94.999997 0 0 0 -1.45703,1.56446 L 467.68945,468.75 a 44.999999,44.999999 0 0 1 0.95899,-1.03125 44.999999,44.999999 0 0 1 3.3789,-2.96875 44.999999,44.999999 0 0 1 3.65821,-2.61523 44.999999,44.999999 0 0 1 3.90234,-2.23829 44.999999,44.999999 0 0 1 4.10547,-1.83789 44.999999,44.999999 0 0 1 3.76562,-1.25 z" + id="path6480" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 523.58984,408.09766 a 94.999997,94.999997 0 0 0 -4.71679,-1.20313 94.999997,94.999997 0 0 0 -9.38867,-1.41992 A 94.999997,94.999997 0 0 0 500,405 a 94.999997,94.999997 0 0 0 -6.7207,0.23828 94.999997,94.999997 0 0 0 -9.42578,1.14453 94.999997,94.999997 0 0 0 -9.26563,2.08008 94.999997,94.999997 0 0 0 -0.0742,0.0254 L 487.459,456.8086 a 44.999999,44.999999 0 0 1 0.50391,-0.16797 44.999999,44.999999 0 0 1 4.38867,-0.98632 44.999999,44.999999 0 0 1 4.46485,-0.54102 A 44.999999,44.999999 0 0 1 500,455 a 44.999999,44.999999 0 0 1 4.49219,0.22461 44.999999,44.999999 0 0 1 4.44726,0.67187 44.999999,44.999999 0 0 1 1.72461,0.44141 z" + id="path6478" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 523.58984,408.09766 -12.92578,48.24023 a 44.999999,44.999999 0 0 1 2.63477,0.67188 44.999999,44.999999 0 0 1 4.22461,1.54296 44.999999,44.999999 0 0 1 4.05078,1.95508 44.999999,44.999999 0 0 1 3.83398,2.35157 44.999999,44.999999 0 0 1 3.58203,2.72265 44.999999,44.999999 0 0 1 2.12696,1.98242 l 35.33398,-35.33398 a 94.999997,94.999997 0 0 0 -5.25,-4.89063 94.999997,94.999997 0 0 0 -7.56055,-5.74609 94.999997,94.999997 0 0 0 -8.0957,-4.96484 94.999997,94.999997 0 0 0 -8.55078,-4.12891 94.999997,94.999997 0 0 0 -8.91992,-3.25781 94.999997,94.999997 0 0 0 -4.48438,-1.14453 z" + id="path6427" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 591.56055,474.68945 9.55664,-2.56054 a 105,105 0 0 0 -27.55274,-47.01172 l -7.11328,7.11328 a 94.999997,94.999997 0 0 1 1.69727,1.58203 94.999997,94.999997 0 0 1 6.26758,7.13477 94.999997,94.999997 0 0 1 5.52343,7.72461 94.999997,94.999997 0 0 1 4.72461,8.23632 94.999997,94.999997 0 0 1 3.87891,8.66797 94.999997,94.999997 0 0 1 2.99414,9.01172 94.999997,94.999997 0 0 1 0.0234,0.10156 z" + id="path6475" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 591.7793,524.07422 9.71093,2.60156 A 105,105 0 0 0 605,500 105,105 0 0 0 601.11719,472.12891 l -9.55664,2.56054 a 94.999997,94.999997 0 0 1 2.05664,9.16407 94.999997,94.999997 0 0 1 1.14453,9.42578 A 94.999997,94.999997 0 0 1 595,500 a 94.999997,94.999997 0 0 1 -0.47461,9.48438 94.999997,94.999997 0 0 1 -1.41992,9.38867 94.999997,94.999997 0 0 1 -1.32617,5.20117 z" + id="path6473" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 567.30469,566.95117 7.07812,7.07813 a 105,105 0 0 0 27.10742,-47.35352 l -9.71093,-2.60156 a 94.999997,94.999997 0 0 1 -1.02149,4 94.999997,94.999997 0 0 1 -3.25781,8.91992 94.999997,94.999997 0 0 1 -4.12891,8.55078 94.999997,94.999997 0 0 1 -4.96484,8.0957 94.999997,94.999997 0 0 1 -5.74609,7.56055 94.999997,94.999997 0 0 1 -5.35547,5.75 z" + id="path6471" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 524.64258,591.70898 2.5664,9.57618 a 105,105 0 0 0 47.17383,-27.25586 l -7.07812,-7.07813 a 94.999997,94.999997 0 0 1 -1.11719,1.19727 94.999997,94.999997 0 0 1 -7.13477,6.26758 94.999997,94.999997 0 0 1 -7.72461,5.52343 94.999997,94.999997 0 0 1 -8.23632,4.72461 94.999997,94.999997 0 0 1 -8.66797,3.87891 94.999997,94.999997 0 0 1 -9.01172,2.99414 94.999997,94.999997 0 0 1 -0.76953,0.17187 z" + id="path6469" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 475.44141,591.6543 -2.60547,9.72656 A 105,105 0 0 0 500,605 a 105,105 0 0 0 27.20898,-3.71484 l -2.5664,-9.57618 a 94.999997,94.999997 0 0 1 -8.4961,1.90821 94.999997,94.999997 0 0 1 -9.42578,1.14453 A 94.999997,94.999997 0 0 1 500,595 a 94.999997,94.999997 0 0 1 -9.48438,-0.47461 94.999997,94.999997 0 0 1 -9.38867,-1.41992 94.999997,94.999997 0 0 1 -5.68554,-1.45117 z" + id="path6467" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="M 432.91602,567.17969 425.8457,574.25 a 105,105 0 0 0 46.99024,27.13086 l 2.60547,-9.72656 a 94.999997,94.999997 0 0 1 -3.51563,-0.89649 94.999997,94.999997 0 0 1 -8.91992,-3.25781 94.999997,94.999997 0 0 1 -8.55078,-4.12891 94.999997,94.999997 0 0 1 -8.0957,-4.96484 94.999997,94.999997 0 0 1 -7.56055,-5.74609 94.999997,94.999997 0 0 1 -5.88281,-5.48047 z" + id="path6465" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 408.33008,524.82227 -9.57031,2.56445 A 105,105 0 0 0 425.8457,574.25 l 7.07032,-7.07031 a 94.999997,94.999997 0 0 1 -1.06446,-0.99219 94.999997,94.999997 0 0 1 -6.26758,-7.13477 94.999997,94.999997 0 0 1 -5.52343,-7.72461 94.999997,94.999997 0 0 1 -4.72461,-8.23632 94.999997,94.999997 0 0 1 -3.87891,-8.66797 94.999997,94.999997 0 0 1 -2.99414,-9.01172 94.999997,94.999997 0 0 1 -0.13281,-0.58984 z" + id="path6463" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 408.2207,475.92578 -9.71093,-2.60156 A 105,105 0 0 0 395,500 a 105,105 0 0 0 3.75977,27.38672 l 9.57031,-2.56445 a 94.999997,94.999997 0 0 1 -1.94727,-8.67579 94.999997,94.999997 0 0 1 -1.14453,-9.42578 A 94.999997,94.999997 0 0 1 405,500 a 94.999997,94.999997 0 0 1 0.47461,-9.48438 94.999997,94.999997 0 0 1 1.41992,-9.38867 94.999997,94.999997 0 0 1 1.32617,-5.20117 z" + id="path6461" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 432.35547,433.41602 -7.10352,-7.10352 a 105,105 0 0 0 -26.74218,47.01172 l 9.71093,2.60156 a 94.999997,94.999997 0 0 1 1.02149,-4 94.999997,94.999997 0 0 1 3.25781,-8.91992 94.999997,94.999997 0 0 1 4.12891,-8.55078 94.999997,94.999997 0 0 1 4.96484,-8.0957 94.999997,94.999997 0 0 1 5.74609,-7.56055 94.999997,94.999997 0 0 1 5.01563,-5.38281 z" + id="path6459" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 474.51367,408.48828 -2.5625,-9.56055 a 105,105 0 0 0 -46.69922,27.38477 l 7.10352,7.10352 a 94.999997,94.999997 0 0 1 1.45703,-1.56446 94.999997,94.999997 0 0 1 7.13477,-6.26758 94.999997,94.999997 0 0 1 7.72461,-5.52343 94.999997,94.999997 0 0 1 8.23632,-4.72461 94.999997,94.999997 0 0 1 8.66797,-3.87891 94.999997,94.999997 0 0 1 8.9375,-2.96875 z" + id="path6457" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="M 526.1875,398.40039 A 105,105 0 0 0 500,395 a 105,105 0 0 0 -28.04883,3.92773 l 2.5625,9.56055 a 94.999997,94.999997 0 0 1 0.0742,-0.0254 94.999997,94.999997 0 0 1 9.26563,-2.08008 94.999997,94.999997 0 0 1 9.42578,-1.14453 A 94.999997,94.999997 0 0 1 500,405 a 94.999997,94.999997 0 0 1 9.48438,0.47461 94.999997,94.999997 0 0 1 9.38867,1.41992 94.999997,94.999997 0 0 1 4.71679,1.20313 z" + id="path6455" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + d="m 526.1875,398.40039 -2.59766,9.69727 a 94.999997,94.999997 0 0 1 4.48438,1.14453 94.999997,94.999997 0 0 1 8.91992,3.25781 94.999997,94.999997 0 0 1 8.55078,4.12891 94.999997,94.999997 0 0 1 8.0957,4.96484 94.999997,94.999997 0 0 1 7.56055,5.74609 94.999997,94.999997 0 0 1 5.25,4.89063 l 7.11328,-7.11328 a 105,105 0 0 0 -47.37695,-26.7168 z" + id="path6388" + transform="matrix(0.27202007,0,0,0.27202007,-62.944889,124.70579)" /> + - + d="m 132.51082,119.61863 c -24.71711,0 -44.754267,20.03716 -44.75426,44.75428 2e-6,24.71711 20.03715,44.75427 44.75426,44.75427 24.71711,0 44.75428,-20.03716 44.75429,-44.75427 0,-24.71712 -20.03717,-44.75428 -44.75429,-44.75428 z" + style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.97340848;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.93150689;opacity:0.7" + transform="matrix(0.27181121,0,0,0.27181121,36.997416,216.05244)" /> + transform="matrix(0.24127119,0,0.01264448,0.24127122,-4.8837849,265.42414)" + aria-label="5" /> + transform="matrix(0.24732122,0,0,0.24687704,-5.5339446,264.55152)" + aria-label="Therapee"> + d="m 256.12553,-157.9659 0.78125,-11.95312 1.05469,-24.76562 0.35156,-11.44531 q -9.57031,0.0391 -16.75781,0.35156 0.23438,-3.125 0.27344,-5.50781 9.92187,0.0391 21.40625,0.0391 l 12.5,-0.0391 h 6.64062 q -0.27344,3.4375 -0.27344,5.46875 -6.05468,-0.35157 -13.39843,-0.35157 h -3.20313 l -0.82031,17.30469 -0.82031,24.375 v 6.52343 l -3.75,-0.0781 q -0.50782,0 -3.98438,0.0781 z" /> + d="m 287.32084,-157.9659 0.97656,-16.99218 0.89844,-23.16406 0.23438,-13.16406 3.55468,0.0391 q 1.32813,0 3.47657,-0.0391 l -0.85938,13.55468 -0.3125,8.08594 q 0.9375,-1.67969 1.60156,-2.65625 0.70313,-1.01563 1.75782,-1.99219 1.09375,-1.01562 2.26562,-1.71875 1.17188,-0.70312 2.61719,-1.21094 1.44531,-0.54687 3.47656,-0.89843 2.03125,-0.35157 4.25781,-0.35157 3.32031,0 6.32813,0.74219 3.04687,0.74219 5.19531,2.46094 2.1875,1.71875 2.96875,4.10156 0.82031,2.38281 0.82031,4.84375 0,0.97656 -0.0391,2.57813 -0.11719,2.42187 -0.3125,5.66406 l -0.66406,14.375 q -0.11719,2.34375 -0.15625,5.74218 -2.26563,-0.0781 -3.47657,-0.0781 -1.32812,0 -3.71093,0.0781 0.42968,-4.21875 0.97656,-13.28125 0.58594,-9.06249 0.58594,-12.57812 0,-3.125 -1.13282,-5.15625 -1.13281,-2.07031 -3.75,-3.16406 -2.61718,-1.09375 -5.82031,-1.09375 -2.92968,0 -5.46875,0.89844 -2.30468,0.82031 -3.94531,2.30468 -1.60156,1.48438 -2.57812,3.63282 -1.05469,2.30468 -1.48438,4.64843 -0.66406,3.71094 -0.9375,10.3125 -0.15625,3.94531 -0.42969,13.47656 -2.1875,-0.0781 -3.28125,-0.0781 -1.01562,0 -3.63281,0.0781 z" /> + d="m 369.10209,-164.17683 q -0.46875,2.14843 -0.9375,5.46875 -3.75,0.9375 -6.52344,1.25 -2.73438,0.35156 -5.46875,0.35156 -4.88281,0 -8.78906,-1.17188 -3.86719,-1.17187 -6.64063,-4.0625 -2.77343,-2.92968 -3.98437,-6.67968 -1.21094,-3.75 -1.21094,-7.92969 0,-5.82031 2.22656,-10.78125 2.22657,-5 6.67969,-7.85156 4.49219,-2.85156 11.36719,-2.85156 3.55468,0 6.79687,1.05468 3.24219,1.01563 5.39063,3.125 2.14843,2.10938 3.32031,5.23438 1.17187,3.08594 1.17187,6.75781 0,1.40625 -0.23437,2.73438 h -29.80469 q -0.15625,2.14843 -0.15625,3.28125 0,4.10156 1.71875,7.57812 1.71875,3.4375 5.07813,5.23437 3.35937,1.75782 7.73437,1.75782 5.03906,0 12.26563,-2.5 z m -26.32813,-18.59375 h 23.28125 q -0.0391,-2.46094 -0.3125,-3.82813 -0.27344,-1.36718 -1.01562,-2.8125 -0.74219,-1.48437 -2.03125,-2.53906 -1.25,-1.09375 -3.04688,-1.64062 -1.75781,-0.58594 -3.82812,-0.58594 -2.22657,0 -4.25782,0.625 -1.99218,0.625 -3.55468,1.71875 -1.52344,1.09375 -2.61719,2.57812 -1.05469,1.44532 -1.60156,2.8125 -0.50781,1.36719 -1.01563,3.67188 z" /> + d="m 380.10208,-157.9659 q 1.40625,-22.53906 1.40625,-35.97656 l -0.0391,-3.59375 q 1.99219,0.0391 3.28125,0.0391 1.48437,0 3.32031,-0.0391 l -0.3125,6.48438 q 1.44531,-2.42188 2.53906,-3.63281 1.13281,-1.25 2.53906,-2.03125 1.40625,-0.82032 3.16407,-1.25 1.79687,-0.46875 3.71093,-0.46875 1.64063,0 3.24219,0.39062 0.0391,2.57813 0.27344,5.78125 -2.42188,-0.66406 -4.33594,-0.66406 -2.30469,0 -4.14062,0.78125 -1.83594,0.74219 -3.32032,2.30469 -1.44531,1.52343 -2.38281,3.67187 -0.78125,1.71875 -1.21093,4.45313 -0.39063,2.73437 -0.625,9.96093 -0.15625,5.27344 -0.15625,11.17188 v 2.61718 q -2.10938,-0.0781 -3.39844,-0.0781 -1.17188,0 -3.55469,0.0781 z" /> + d="m 411.68802,-191.24714 q 0.35156,-1.71875 0.74219,-5.07813 4.6875,-1.21094 8.12499,-1.64062 3.47657,-0.46875 6.75782,-0.46875 3.51562,0 6.5625,0.66406 3.08593,0.625 5.11718,2.07031 2.03125,1.44531 2.69532,3.32031 0.66406,1.875 0.66406,4.02344 0,2.69531 -0.42969,9.0625 -0.39062,6.32812 -0.625,11.71875 -0.19531,5.39062 -0.19531,9.60937 -2.10938,-0.0781 -3.4375,-0.0781 -1.25,0 -3.55469,0.0781 l 0.82031,-10.66406 0.58594,-12.61718 q -1.36719,1.05468 -2.07031,1.48437 -0.66406,0.42969 -1.52344,0.82031 -0.85937,0.35157 -1.91406,0.70313 -1.01563,0.3125 -4.02344,1.13281 -2.96875,0.82031 -4.21875,1.25 -2.69531,0.85938 -4.25781,1.71875 -1.5625,0.85937 -2.61719,1.875 -1.05468,1.01562 -1.48437,2.03125 -0.50781,1.25 -0.50781,2.61719 0,2.10937 1.25,3.67187 1.25,1.5625 3.125,2.1875 1.91406,0.58594 4.57031,0.58594 1.64062,0 3.4375,-0.23438 1.79687,-0.23437 4.80468,-1.21093 -0.54687,1.52343 -1.25,4.6875 -2.85156,0.54687 -4.64843,0.66406 -1.79688,0.15625 -3.39844,0.15625 -5.35156,0 -8.35937,-1.25 -3.00782,-1.25 -4.49219,-3.78906 -1.48438,-2.57813 -1.48438,-5.58594 0,-1.75781 0.50782,-3.24219 0.54687,-1.48437 1.44531,-2.69531 0.89844,-1.21094 2.53906,-2.42187 1.67969,-1.21094 3.47656,-1.99219 1.83594,-0.78125 4.25781,-1.52344 2.42188,-0.78125 7.77344,-2.07031 1.71875,-0.39063 2.92969,-0.78125 1.21094,-0.42969 2.14844,-0.82031 0.9375,-0.39063 1.64062,-0.89844 0.70313,-0.54688 1.28906,-1.28906 0.58594,-0.78125 0.85938,-1.5625 0.27344,-0.78125 0.27344,-1.5625 0,-1.91407 -1.25,-3.28125 -1.25,-1.36719 -3.28125,-1.91407 -1.99219,-0.54687 -4.72657,-0.54687 -2.53906,0 -5.23437,0.42969 -2.65625,0.39062 -4.60937,0.97656 -1.91407,0.54687 -4.80469,1.67969 z" /> + d="m 451.86771,-140.30965 q 0.78125,-10.07812 1.44531,-27.42187 0.70312,-17.34375 0.78125,-28.35937 6.40625,-1.36719 10.23437,-1.83594 3.86719,-0.50781 7.73438,-0.50781 6.09375,0 10.58593,1.95312 4.49219,1.91406 6.99219,6.79688 2.5,4.84375 2.5,10.97656 0,4.25781 -1.17188,8.24218 -1.17187,3.94532 -3.59374,7.07032 -2.38282,3.125 -5.78125,4.72656 -3.39844,1.5625 -7.57813,1.5625 -2.5,0 -4.80469,-0.625 -2.30468,-0.58594 -4.02343,-1.5625 -1.67969,-0.97656 -2.85157,-2.1875 -1.13281,-1.21094 -2.77343,-3.63281 l -0.46875,15.46875 q -0.15625,3.78906 -0.15625,5.46874 v 3.86719 q -1.99219,-0.0781 -3.47656,-0.0781 -1.36719,0 -3.59375,0.0781 z m 8.94531,-51.13281 -0.27344,2.96875 -0.19531,4.0625 q -0.15625,3.20313 -0.23438,5.23438 -0.0781,1.99219 -0.0781,2.8125 0,2.89062 0.58594,5.46875 0.625,2.57812 2.42187,4.72656 1.83594,2.10937 4.29687,3.20312 2.46094,1.09375 5.07813,1.09375 3.67187,0 6.64062,-2.03125 3.00782,-2.03125 4.6875,-6.05468 1.67969,-4.02344 1.67969,-8.78906 0,-4.80469 -1.75781,-8.28125 -1.75781,-3.47657 -4.72656,-5 -2.96875,-1.5625 -6.71875,-1.5625 -5.35157,0 -11.40625,2.14843 z" /> + d="m 533.25831,-164.17683 q -0.46875,2.14843 -0.9375,5.46875 -3.75,0.9375 -6.52343,1.25 -2.73438,0.35156 -5.46875,0.35156 -4.88282,0 -8.78907,-1.17188 -3.86718,-1.17187 -6.64062,-4.0625 -2.77344,-2.92968 -3.98437,-6.67968 -1.21094,-3.75 -1.21094,-7.92969 0,-5.82031 2.22656,-10.78125 2.22656,-5 6.67969,-7.85156 4.49218,-2.85156 11.36718,-2.85156 3.55469,0 6.79688,1.05468 3.24219,1.01563 5.39062,3.125 2.14844,2.10938 3.32031,5.23438 1.17188,3.08594 1.17188,6.75781 0,1.40625 -0.23438,2.73438 h -29.80468 q -0.15625,2.14843 -0.15625,3.28125 0,4.10156 1.71875,7.57812 1.71875,3.4375 5.07812,5.23437 3.35938,1.75782 7.73438,1.75782 5.03906,0 12.26562,-2.5 z m -26.32812,-18.59375 h 23.28125 q -0.0391,-2.46094 -0.3125,-3.82813 -0.27344,-1.36718 -1.01563,-2.8125 -0.74218,-1.48437 -2.03125,-2.53906 -1.25,-1.09375 -3.04687,-1.64062 -1.75781,-0.58594 -3.82813,-0.58594 -2.22656,0 -4.25781,0.625 -1.99219,0.625 -3.55469,1.71875 -1.52343,1.09375 -2.61718,2.57812 -1.05469,1.44532 -1.60157,2.8125 -0.50781,1.36719 -1.01562,3.67188 z" /> + d="m 576.75831,-164.17683 q -0.46875,2.14843 -0.9375,5.46875 -3.75,0.9375 -6.52343,1.25 -2.73438,0.35156 -5.46875,0.35156 -4.88282,0 -8.78907,-1.17188 -3.86718,-1.17187 -6.64062,-4.0625 -2.77344,-2.92968 -3.98437,-6.67968 -1.21094,-3.75 -1.21094,-7.92969 0,-5.82031 2.22656,-10.78125 2.22656,-5 6.67969,-7.85156 4.49218,-2.85156 11.36718,-2.85156 3.55469,0 6.79688,1.05468 3.24219,1.01563 5.39062,3.125 2.14844,2.10938 3.32031,5.23438 1.17188,3.08594 1.17188,6.75781 0,1.40625 -0.23438,2.73438 h -29.80468 q -0.15625,2.14843 -0.15625,3.28125 0,4.10156 1.71875,7.57812 1.71875,3.4375 5.07812,5.23437 3.35938,1.75782 7.73438,1.75782 5.03906,0 12.26562,-2.5 z m -26.32812,-18.59375 h 23.28125 q -0.0391,-2.46094 -0.3125,-3.82813 -0.27344,-1.36718 -1.01563,-2.8125 -0.74218,-1.48437 -2.03125,-2.53906 -1.25,-1.09375 -3.04687,-1.64062 -1.75781,-0.58594 -3.82813,-0.58594 -2.22656,0 -4.25781,0.625 -1.99219,0.625 -3.55469,1.71875 -1.52343,1.09375 -2.61718,2.57812 -1.05469,1.44532 -1.60157,2.8125 -0.50781,1.36719 -1.01562,3.67188 z" /> + transform="matrix(0.24020317,0,0,0.23782112,-7.1514703,262.84505)" + aria-label="Raw"> + d="m 65.040005,-157.9659 q 1.158206,-10.38391 1.637464,-16.81395 0.479257,-6.43004 0.798762,-17.13346 0.319505,-10.74336 0.319505,-20.56814 5.032206,0.15975 8.107442,0.15975 3.354804,0 8.5867,-0.19969 5.231896,-0.23963 10.383915,-0.23963 6.230347,0 10.024477,0.3195 3.79412,0.27957 6.54985,1.19815 2.79567,0.91858 4.55295,2.1966 1.75728,1.23808 2.95542,2.95542 1.23808,1.6774 1.91703,3.91394 0.71889,2.23653 0.71889,4.83251 0,5.63128 -2.83561,9.66503 -2.79567,3.99381 -7.98763,6.35016 l 3.95388,11.622 4.15356,11.74181 q -8.22725,-0.11981 -10.78329,-0.11981 -3.31487,0 -11.542125,0.11981 -0.718886,-2.95542 -1.517649,-6.58979 -0.798763,-3.67431 -1.71734,-7.38855 l -2.036845,-8.22726 q -1.118268,-4.47307 -2.276474,-8.70651 1.797216,0.3195 3.514556,0.3195 2.675855,0 4.632824,-0.63901 1.996907,-0.67895 2.995363,-2.07678 1.03839,-1.43778 1.03839,-3.0353 0,-1.15821 -0.55914,-2.07678 -0.55913,-0.91858 -1.437768,-1.3579 -0.838701,-0.47926 -2.196597,-0.71889 -1.357897,-0.27956 -4.912391,-0.27956 -1.198144,0 -1.956969,0.0399 l -2.79567,0.15976 q -0.479257,6.58979 -0.8387,16.135 -0.479258,13.53903 -0.599073,24.44214 -8.387008,-0.11981 -10.623544,-0.11981 -2.635917,0 -10.224163,0.11981 z" /> + d="m 127.9905,-185.16377 0.87864,-4.95233 q 0.19969,-0.99845 0.47925,-3.19505 l 0.59908,-3.95387 q 6.7096,-1.39784 12.10125,-2.03685 5.43159,-0.63901 9.38546,-0.63901 4.87246,0 8.94615,1.07833 4.11363,1.07833 6.43004,3.51456 2.31641,2.39629 2.31641,6.98917 v 1.07833 q -0.0799,1.6774 -0.31951,4.95233 l -0.47925,6.66967 q -0.19969,2.55604 -0.35945,6.46998 l -0.43932,11.22261 q -4.79257,-0.11981 -9.54521,-0.11981 -4.59289,0 -9.82478,0.11981 l 0.19969,-1.83715 q 0.11981,-0.79876 0.15975,-1.71734 l 0.79876,-12.30095 q -1.95697,0.55914 -4.07369,1.23809 -2.11672,0.63901 -2.8356,1.19814 -0.67895,0.5192 -0.95852,1.03839 -0.23963,0.47926 -0.23963,0.99845 0,0.83871 0.59907,1.39784 0.63901,0.55913 1.95697,0.55913 0.63901,0 1.15821,-0.0799 0.55913,-0.11982 1.63746,-0.47926 -1.43777,3.75418 -3.3548,10.62354 -3.15511,0.43932 -5.67122,0.43932 -5.0322,0 -8.42694,-1.47771 -3.39475,-1.51765 -5.27184,-4.43313 -1.87709,-2.91549 -1.87709,-6.27029 0,-1.75728 0.51919,-3.47462 0.55914,-1.71734 1.59753,-3.23499 1.03839,-1.55758 2.47616,-2.79567 1.43778,-1.27802 3.75419,-2.31641 2.31641,-1.03839 5.03221,-1.71734 2.71579,-0.67895 5.0322,-1.11826 2.35635,-0.43932 3.874,-0.71889 1.51765,-0.31951 2.31641,-0.5192 0.8387,-0.23963 1.39784,-0.59907 0.59907,-0.35944 0.79876,-0.79876 0.19969,-0.43932 0.19969,-0.91858 0,-1.03839 -0.87864,-1.51765 -0.8387,-0.51919 -2.43623,-0.51919 -6.50991,0 -17.65265,4.15356 z" /> + d="m 183.39268,-157.9659 -7.2288,-23.32387 q -1.51765,-4.83251 -2.83561,-8.70651 -1.31795,-3.91394 -3.11517,-8.86627 4.83251,0.11982 9.66503,0.11982 4.55295,0 8.66657,-0.11982 1.19815,4.31332 2.15666,9.06596 0.99846,4.7127 2.35635,12.26101 2.23654,-8.06751 6.66967,-21.32697 4.7127,0.11982 9.62509,0.11982 5.19196,0 9.18578,-0.11982 3.23498,13.13965 4.67276,21.32697 0.99845,-3.67431 2.67585,-9.46534 l 2.15666,-7.34862 q 0.43932,-1.55759 1.43777,-4.51301 4.83252,0.11982 8.90621,0.11982 3.47462,0 9.30559,-0.11982 l -14.89693,35.58488 -2.11672,5.31177 q -4.3932,-0.11981 -8.42695,-0.11981 -4.59288,0 -9.90466,0.11981 -1.63746,-6.90929 -2.55604,-11.18267 -0.87864,-4.31332 -1.71734,-9.22571 -0.87864,2.75573 -2.75573,8.34707 l -2.5161,7.26874 q -0.55913,1.71734 -1.79722,4.79257 -4.47307,-0.11981 -8.14738,-0.11981 -4.35325,0 -9.46534,0.11981 z" /> + + + + + + + + + + - + transform="matrix(0.24804687,0,0,0.2480469,-16.632728,273.1232)" + id="g3926"> + aria-label="Development" + transform="skewX(3)" + id="text3924" + style="font-style:normal;font-weight:normal;font-size:12.8px;line-height:0%;font-family:sans-serif;text-align:end;letter-spacing:-1.06667px;word-spacing:0px;text-anchor:end;fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1.06667px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"> - - + inkscape:connector-curvature="0" + d="m 491.97872,49.720543 q 0.18333,-1.900004 0.25,-3.041673 0.1,-1.700003 0.2,-4.400008 0.075,-2.066671 0.075,-2.958339 v -0.975002 q 0.975,0.025 1.68334,0.025 0.68333,0 1.79167,-0.03333 1.10833,-0.04167 2.08333,-0.04167 1.11667,0 1.95834,0.133333 0.84167,0.133334 1.56667,0.550001 0.73334,0.416668 1.225,1.091669 0.49167,0.675001 0.75,1.583336 0.25834,0.900002 0.25834,1.858337 0,0.941669 -0.2,1.816671 -0.2,0.866668 -0.55834,1.566669 -0.35833,0.700002 -0.84166,1.208336 -0.47501,0.500001 -1.09167,0.858335 -0.45834,0.266667 -0.92501,0.416668 -0.46666,0.15 -1.275,0.241667 -0.9,0.1 -2.04167,0.1 l -3.36667,-0.025 q -0.475,0 -1.54167,0.025 z m 3.60001,-2.508338 q 0.45833,0.04167 0.95833,0.04167 0.85,0 1.51667,-0.15 0.66667,-0.15 1.16667,-0.641668 0.50833,-0.491667 0.75,-1.258336 0.24167,-0.775001 0.24167,-1.583336 0,-0.991669 -0.35834,-1.66667 -0.35833,-0.683335 -0.95833,-0.950002 -0.59167,-0.266667 -1.61667,-0.266667 -0.6,0 -1.41667,0.05 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.0667px;line-height:110%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06667px;text-anchor:end;fill:#ffffff;stroke-width:1.06667px" + id="path3928" /> + inkscape:connector-curvature="0" + d="m 512.24542,47.203871 q -0.10833,0.500001 -0.41666,2.416672 -0.96667,0.191667 -1.62501,0.25 -0.65833,0.06667 -1.33333,0.06667 -0.99167,0 -1.82501,-0.141667 -0.83333,-0.133334 -1.44167,-0.483334 -0.6,-0.350001 -1.00833,-0.866669 -0.40834,-0.525001 -0.625,-1.241669 -0.20834,-0.716668 -0.20834,-1.475003 0,-1.066668 0.425,-2.083337 0.42501,-1.025002 1.09167,-1.600003 0.675,-0.575001 1.55001,-0.816668 0.875,-0.241667 1.79167,-0.241667 0.95,0 1.80833,0.225 0.86667,0.216667 1.46667,0.766668 0.6,0.550001 0.85,1.241669 0.25834,0.691668 0.25834,1.49167 0,0.475001 -0.10833,1.058335 l -5.84168,0.0083 q -0.008,0.133333 -0.008,0.241667 0,0.900001 0.64167,1.325002 0.64167,0.425001 1.56667,0.425001 0.55,0 1.25,-0.125 0.70834,-0.133334 1.74167,-0.441668 z m -5.12501,-2.700005 h 2.75001 q 0.008,-0.141667 0.008,-0.241667 0,-0.433334 -0.15833,-0.741668 -0.15,-0.308334 -0.44167,-0.450001 -0.28333,-0.141667 -0.64167,-0.141667 -0.25,0 -0.48333,0.08333 -0.23333,0.075 -0.425,0.233334 -0.18334,0.150001 -0.30834,0.350001 -0.125,0.2 -0.18333,0.391667 -0.0583,0.183334 -0.11667,0.516668 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.0667px;line-height:110%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06667px;text-anchor:end;fill:#ffffff;stroke-width:1.06667px" + id="path3930" /> + inkscape:connector-curvature="0" + d="m 515.32043,49.720543 -0.88334,-2.733339 -1.99167,-5.775011 q 0.95001,0.01667 1.76667,0.01667 0.85,0 1.60001,-0.01667 0.14166,0.575001 0.55833,2.016671 0.41667,1.433336 0.91667,3.416673 l 0.21667,-0.691668 q 0.05,-0.125 0.39166,-1.066669 l 1.32501,-3.675007 q 0.9,0.01667 1.7,0.01667 0.825,0 1.71667,-0.01667 l -1.15,2.475005 -2.14167,4.916676 -0.45834,1.116669 q -0.98333,-0.01667 -1.73333,-0.01667 -0.81667,0 -1.83334,0.01667 z" + style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:17.0667px;line-height:110%;font-family:'Eras Bold ITC';-inkscape-font-specification:'Eras Bold ITC Bold';text-align:end;letter-spacing:-1.06667px;text-anchor:end;fill:#ffffff;stroke-width:1.06667px" + id="path3932" /> + + + + + + + + From 1150a4352f318ff80b94bad06291489f1846d9d0 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Fri, 7 Feb 2020 00:47:24 -0800 Subject: [PATCH 194/453] Re-enable a private LENSFUNDBDIR on Win32 and UNIX Restores a few lines in CMakeLists.txt 2cc8918 removed for non-APPLE systems. --- CMakeLists.txt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7c60fa37c..6d51503d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -252,6 +252,12 @@ if(NOT DEFINED APPDATADIR) endif() endif() +if (NOT APPLE) + if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}") + set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}") + endif() +endif() + if(APPLE) if("${CODESIGNID}") set(CODESIGNID "${CODESIGNID}" CACHE STRING "Codesigning Identity") From 4221fdf31e43658cef98ad660ad398b8ae81b8d7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 7 Feb 2020 13:52:25 +0100 Subject: [PATCH 195/453] fix regression in Canon sRAW/mRAW black level computation, taken from ART, fixes #5638 --- rtengine/dcraw.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 812f122b3..0284b3f1d 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -9868,6 +9868,7 @@ void CLASS identify() filters = 0; tiff_samples = colors = 3; load_raw = &CLASS canon_sraw_load_raw; + FORC4 cblack[c] = 0; // ALB } else if (!strcmp(model,"PowerShot 600")) { height = 613; width = 854; From 0bec7719fea97a3eacf260883e61d629c7c02040 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Fri, 7 Feb 2020 10:49:01 -0800 Subject: [PATCH 196/453] macos: fix some script errors by re-ordering ops --- tools/osx/macosx_bundle.sh | 124 ++++++++++++++++++++++--------------- 1 file changed, 73 insertions(+), 51 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index f21915cab..08740f696 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -114,60 +114,31 @@ msg "Copying release files:" ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" ditto "Resources" "${RESOURCES}" +# Copy the Lensfun database into the app bundle +mkdir -p "${RESOURCES}/share/lensfun" +ditto ${LOCAL_PREFIX}/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" + +# Copy liblensfun to Frameworks +ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/liblensfun.2.dylib" + +# Copy libomp to Frameworks +ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" + msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" -msg "Copying library modules from ${GTK_PREFIX}:" -ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gdk-pixbuf-2.0 -ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gtk-3.0 - -msg "Removing static libraries and cache files:" -find -E "${LIB}" -type f -regex '.*\.(a|la|cache)$' | while read -r; do rm "${REPLY}"; done - -msg "Copying configuration files from ${GTK_PREFIX}:" -install -d "${ETC}/gtk-3.0" - -# Make Frameworks folder flat -ditto "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" -ditto "${LIB}"/gtk-3.0/3*/immodules/*.{dylib,so} "${LIB}" -rm -r "${LIB}"/gtk-3.0 -rm -r "${LIB}"/gdk-pixbuf-2.0 - -"${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders -"${LOCAL_PREFIX}"/local/bin/gtk-query-immodules-3.0 "${LIB}"/im-* > "${ETC}"/gtk-3.0/gtk.immodules -sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" -sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" - -mkdir -p ${RESOURCES}/share/glib-2.0 -ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas -"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" - -msg "Copying shared files from ${GTK_PREFIX}:" -ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime - -# GTK3 themes -ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css -ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css -# Adwaita icons -iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") -for f in "${iconfolders[@]}"; do - mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} - ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} -done -ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme -"${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" -ditto "${LOCAL_PREFIX}/local/share/icons/hicolor" "${RESOURCES}/share/icons/hicolor" - # Copy libjpeg-turbo ("62") into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" # Copy libexpat into the app bundle (which is keg-only) - if [[ -d /usr/local/Cellar/expat ]]; then ditto /usr/local/Cellar/expat/*/lib/libexpat.1.dylib "${CONTENTS}/Frameworks"; else ditto "${EXPATLIB}" "${CONTENTS}/Frameworks/libexpat.1.dylib"; fi # Copy libz into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libz.1.dylib "${CONTENTS}/Frameworks" +# Copy libpng16 to the app bundle +ditto ${LOCAL_PREFIX}/local/lib/libpng16.16.dylib "${CONTENTS}/Frameworks/libpng16.16.dylib" + # Copy libtiff 5 into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libtiff.5.dylib "${CONTENTS}/Frameworks/libtiff.5.dylib" @@ -181,6 +152,43 @@ ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/lible # Copy libomp to Frameworks ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" +# Prepare GTK+3 installation +msg "Copying configuration files from ${GTK_PREFIX}:" +install -d "${ETC}/gtk-3.0" +msg "Copying library modules from ${GTK_PREFIX}:" +ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gdk-pixbuf-2.0 +ditto --arch "${arch}" {"${GTK_PREFIX}/lib","${LIB}"}/gtk-3.0 +msg "Removing static libraries and cache files:" +find -E "${LIB}" -type f -regex '.*\.(a|la|cache)$' | while read -r; do rm "${REPLY}"; done + +# Make Frameworks folder flat +msg "Flattening the Frameworks folder" +ditto "${LIB}"/gdk-pixbuf-2.0/2*/loaders/*.so "${LIB}" +ditto "${LIB}"/gtk-3.0/3*/immodules/*.{dylib,so} "${LIB}" +rm -r "${LIB}"/gtk-3.0 +rm -r "${LIB}"/gdk-pixbuf-2.0 + +msg "Build glib database:" +mkdir -p ${RESOURCES}/share/glib-2.0 +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas +"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" + +# GTK+3 themes +msg "Copy GTK+3 theme and icon resources:" +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk-keys.css + +# Adwaita icons +msg "Copy Adwaita icons" +iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") +for f in "${iconfolders[@]}"; do + mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} + ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} +done +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme +"${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" +ditto "${LOCAL_PREFIX}/local/share/icons/hicolor" "${RESOURCES}/share/icons/hicolor" + # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do msg "Modifying install names: ${x}" @@ -194,7 +202,23 @@ find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib } | bash -v done +# fix @rpath in Frameworks +msg "Registering @rpath in Frameworks folder:" +for frameworklibs in ${CONTENTS}/Frameworks/* ; do + echo " install_name_tool -delete_rpath /opt/local/lib '${frameworklibs}'" | bash -v + echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v +done +# pixbuf loaders & immodules +msg "Build GTK3 databases:" +"${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders +"${LOCAL_PREFIX}"/local/bin/gtk-query-immodules-3.0 "${LIB}"/im-* > "${ETC}"/gtk-3.0/gtk.immodules +sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" +sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" + +# Mime directory +msg "Copying shared files from ${GTK_PREFIX}:" +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime msg "Installing required application bundle files:" PROJECT_SOURCE_DATA_DIR="${PROJECT_SOURCE_DIR}/tools/osx" @@ -203,7 +227,7 @@ ditto "${PROJECT_SOURCE_DIR}/build/Resources" "${RESOURCES}" # Note: executable is renamed to 'rawtherapee-bin'. mkdir "${MACOS}/bin" ditto "${MACOS}/rawtherapee" "${MACOS}/bin/rawtherapee-bin" -rm "${MACOS}/rawtherappe" +rm "${MACOS}/rawtherapee" install -m 0755 "${PROJECT_SOURCE_DATA_DIR}/executable_loader.in" "${MACOS}/rawtherapee" # App bundle resources ditto "${PROJECT_SOURCE_DATA_DIR}/"{rawtherapee,profile}.icns "${RESOURCES}" @@ -218,15 +242,13 @@ plutil -convert xml1 "${CONTENTS}/Info.plist" plutil -convert xml1 "${CONTENTS}/MacOS/bin/Info.plist" update-mime-database -V "${CONTENTS}/Resources/share/mime" +# Append an LC_RPATH msg "Registering @rpath into the executable:" echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${MACOS}/bin/rawtherapee-bin'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v -for frameworklibs in ${CONTENTS}/Frameworks/* ; do - echo " install_name_tool -delete_rpath /opt/local/lib '${frameworklibs}'" | bash -v - echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v -done # Sign the app +msg "Codesigning:" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" if ! test -z "$CODESIGNID" ; then install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/Entitlements.plist" @@ -237,17 +259,16 @@ codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" -o runtime - for frameworklibs in ${CONTENTS}/Frameworks/* ; do codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" -o runtime --timestamp "${frameworklibs}" done -codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee" -o runtime --entitlements "${CONTENTS}/Entitlements.plist" "${APP}" +codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --entitlements "${CONTENTS}/Entitlements.plist" "${APP}" spctl -a -vvvv "${APP}" fi # Notarize the app - NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" if ! test -z "$NOTARY" ; then msg "Notarizing the application:" ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" - uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.rawtherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` echo "Result= $uuid" # Display identifier string sleep 15 while : @@ -329,7 +350,6 @@ function CreateDmg { done fi - # Zip disk image for redistribution msg "Zipping disk image for redistribution:" @@ -340,3 +360,5 @@ function CreateDmg { rm -rf "${srcDir}" } CreateDmg +msg "Finishing build:" +echo "Script complete." From 8f291c3ff2adc66b5db846a9053cd1bebd0e9c55 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 7 Feb 2020 20:18:35 +0100 Subject: [PATCH 197/453] Be -Wunused-macros clean --- CMakeLists.txt | 2 +- rtengine/FTblockDN.cc | 1 - rtengine/dcraw.cc | 3 --- rtengine/iccstore.cc | 1 - rtengine/image16.cc | 2 -- rtengine/image8.cc | 2 -- rtengine/improcfun.cc | 3 --- rtengine/ipwavelet.cc | 7 ------- rtengine/jdatasrc.cc | 5 ----- rtengine/klt/selectGoodFeatures.cc | 1 - rtengine/rtthumbnail.cc | 2 -- rtengine/stdimagesource.cc | 1 - rtexif/canonattribs.cc | 3 --- rtexif/fujiattribs.cc | 3 --- rtexif/kodakattribs.cc | 3 --- rtexif/nikonattribs.cc | 4 ---- rtexif/olympusattribs.cc | 4 ---- rtexif/panasonicattribs.cc | 4 ---- rtexif/pentaxattribs.cc | 3 --- rtexif/sonyminoltaattribs.cc | 4 ---- rtexif/stdattribs.cc | 4 ---- rtgui/filecatalog.cc | 2 -- 22 files changed, 1 insertion(+), 63 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6d51503d6..13c648de0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -402,7 +402,7 @@ if(WITH_PROF) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") endif() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result") +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result -Wunused-macros") if(OPTION_OMP) find_package(OpenMP) if(OPENMP_FOUND) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 121c8189d..b13920c2a 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -56,7 +56,6 @@ #define TS 64 // Tile size #define offset 25 // shift between tiles -#define fTS ((TS/2+1)) // second dimension of Fourier tiles #define blkrad 1 // radius of block averaging #define epsilon 0.001f/(TS*TS) //tolerance diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 0284b3f1d..537bf1334 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -94,7 +94,6 @@ #ifdef WIN32 #include #include -#define snprintf _snprintf #define strcasecmp stricmp #define strncasecmp strnicmp typedef __int64 INT64; @@ -158,7 +157,6 @@ const float d65_white[3] = { 0.950456, 1, 1.088754 }; #define MIN(a,b) rtengine::min(a,static_cast<__typeof__(a)>(b)) #define MAX(a,b) rtengine::max(a,static_cast<__typeof__(a)>(b)) #define LIM(x,min,max) rtengine::LIM(x,static_cast<__typeof__(x)>(min),static_cast<__typeof__(x)>(max)) -#define ULIM(x,y,z) rtengine::median(x,static_cast<__typeof__(x)>(y),static_cast<__typeof__(x)>(z)) #define CLIP(x) rtengine::CLIP(x) #define SWAP(a,b) { a=a+b; b=a-b; a=a-b; } @@ -11022,7 +11020,6 @@ void CLASS nikon_14bit_load_raw() /*RT*/#undef MIN /*RT*/#undef ABS /*RT*/#undef LIM -/*RT*/#undef ULIM /*RT*/#undef CLIP #ifdef __GNUC__ #pragma GCC diagnostic pop diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index aea03664e..9d7024bff 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -43,7 +43,6 @@ #include "color.h" #include "cJSON.h" -#define inkc_constant 0x696E6B43 namespace { diff --git a/rtengine/image16.cc b/rtengine/image16.cc index a98d64d51..4bcd9d5c0 100644 --- a/rtengine/image16.cc +++ b/rtengine/image16.cc @@ -187,8 +187,6 @@ void Image16::getStdImage(const ColorTemp &ctemp, int tran, Imagefloat* image, P gm /= area; bm /= area; -#define GCLIP( x ) Color::gamma_srgb(CLIP(x)) - #ifdef _OPENMP #pragma omp parallel { diff --git a/rtengine/image8.cc b/rtengine/image8.cc index 66ad8b60f..8784c962e 100644 --- a/rtengine/image8.cc +++ b/rtengine/image8.cc @@ -151,8 +151,6 @@ void Image8::getStdImage (const ColorTemp &ctemp, int tran, Imagefloat* image, P gm /= area; bm /= area; -#define GCLIP( x ) Color::gamma_srgb(CLIP(x)) - #ifdef _OPENMP #pragma omp parallel { diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 6749ff305..1bb7e417a 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -55,9 +55,6 @@ #include "mytime.h" #endif -#undef CLIPD -#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f) - namespace { using namespace rtengine; diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 7c0dc368b..be64be0fc 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -50,13 +50,6 @@ #include "cplx_wavelet_dec.h" -#define TS 64 // Tile size -#define offset 25 // shift between tiles -#define fTS ((TS/2+1)) // second dimension of Fourier tiles -#define blkrad 1 // radius of block averaging - -#define epsilon 0.001f/(TS*TS) //tolerance - namespace rtengine { diff --git a/rtengine/jdatasrc.cc b/rtengine/jdatasrc.cc index 8c04a14a2..e461b60f5 100644 --- a/rtengine/jdatasrc.cc +++ b/rtengine/jdatasrc.cc @@ -25,11 +25,6 @@ #define JFREAD(file,buf,sizeofbuf) \ ((size_t) fread((void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) -#define JFWRITE(file,buf,sizeofbuf) \ - ((size_t) fwrite((const void *) (buf), (size_t) 1, (size_t) (sizeofbuf), (file))) - - - /* Expanded data source object for stdio input */ namespace diff --git a/rtengine/klt/selectGoodFeatures.cc b/rtengine/klt/selectGoodFeatures.cc index 20e67fb2e..ccd7681db 100644 --- a/rtengine/klt/selectGoodFeatures.cc +++ b/rtengine/klt/selectGoodFeatures.cc @@ -9,7 +9,6 @@ #include /* fflush() */ #include /* memset() */ #include /* fsqrt() */ -#define fsqrt(X) sqrt(X) /* Our includes */ #include "base.h" diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 9da601e2a..a25f70749 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -511,8 +511,6 @@ Thumbnail* Thumbnail::loadQuickFromRaw (const Glib::ustring& fname, RawMetaDataL ((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==0 || !filter) #define FISGREEN(filter,row,col) \ ((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==1 || !filter) -#define FISBLUE(filter,row,col) \ - ((filter >> ((((row) << 1 & 14) + ((col) & 1)) << 1) & 3)==2 || !filter) RawMetaDataLocation Thumbnail::loadMetaDataFromRaw (const Glib::ustring& fname) { diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 1cb11e94d..271818303 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -53,7 +53,6 @@ template T** allocArray (int W, int H) return t; } -#define HR_SCALE 2 StdImageSource::StdImageSource () : ImageSource(), img(nullptr), plistener(nullptr), full(false), max{}, rgbSourceModified(false) { diff --git a/rtexif/canonattribs.cc b/rtexif/canonattribs.cc index ee451c7d7..c434634dc 100644 --- a/rtexif/canonattribs.cc +++ b/rtexif/canonattribs.cc @@ -16,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _CANONATTRIBS_ -#define _CANONATTRIBS_ #include #include @@ -2142,5 +2140,4 @@ const TagAttrib canonAttribs[] = { { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} }; } -#endif diff --git a/rtexif/fujiattribs.cc b/rtexif/fujiattribs.cc index 0eaa505f6..ffbf3a0be 100644 --- a/rtexif/fujiattribs.cc +++ b/rtexif/fujiattribs.cc @@ -16,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _FUJIATTRIBS_ -#define _FUJIATTRIBS_ #include "rtexif.h" @@ -312,5 +310,4 @@ const TagAttrib fujiAttribs[] = { { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} }; } -#endif diff --git a/rtexif/kodakattribs.cc b/rtexif/kodakattribs.cc index a9c168a70..619925760 100644 --- a/rtexif/kodakattribs.cc +++ b/rtexif/kodakattribs.cc @@ -1,8 +1,6 @@ /* * This file is part of RawTherapee. */ -#ifndef _KODAKATTRIBS_ -#define _KODAKATTRIBS_ #include #include "rtexif.h" @@ -161,5 +159,4 @@ const TagAttrib kodakIfdAttribs[] = { }; } -#endif diff --git a/rtexif/nikonattribs.cc b/rtexif/nikonattribs.cc index 2ef37b8fb..9c52f3b8a 100644 --- a/rtexif/nikonattribs.cc +++ b/rtexif/nikonattribs.cc @@ -16,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _NIKONATTRIBS_ -#define _NIKONATTRIBS_ #include #include @@ -1229,5 +1227,3 @@ const TagAttrib nikon3Attribs[] = { }; } -#endif - diff --git a/rtexif/olympusattribs.cc b/rtexif/olympusattribs.cc index f590b8154..ec7ab98c7 100644 --- a/rtexif/olympusattribs.cc +++ b/rtexif/olympusattribs.cc @@ -16,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _OLYMPUSATTRIBS_ -#define _OLYMPUSATTRIBS_ #include #include @@ -850,5 +848,3 @@ const TagAttrib olympusAttribs[] = { { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} }; } -#endif - diff --git a/rtexif/panasonicattribs.cc b/rtexif/panasonicattribs.cc index 3062824cf..4ebcf2447 100644 --- a/rtexif/panasonicattribs.cc +++ b/rtexif/panasonicattribs.cc @@ -1,8 +1,6 @@ /* * This file is part of RawTherapee. */ -#ifndef _PANASONICATTRIBS_ -#define _PANASONICATTRIBS_ #include #include "rtexif.h" @@ -138,5 +136,3 @@ const TagAttrib panasonicRawAttribs[] = { }; } -#endif - diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index 0e866b09f..abc25b7a1 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -16,8 +16,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _PENTAXATTRIBS_ -#define _PENTAXATTRIBS_ #include #include @@ -2216,7 +2214,6 @@ const TagAttrib pentaxCameraInfoAttribs[] = { }; } -#endif diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc index 722b11faf..ee41b2a9b 100644 --- a/rtexif/sonyminoltaattribs.cc +++ b/rtexif/sonyminoltaattribs.cc @@ -15,8 +15,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _SONYMINOLTAATTRIBS_ -#define _SONYMINOLTAATTRIBS_ #include @@ -2499,6 +2497,4 @@ const TagAttrib sonyCameraSettingsAttribs3[] = { {-1, AC_DONTWRITE, 0, 0, 0, AUTO, "", NULL}};*/ } -#endif - diff --git a/rtexif/stdattribs.cc b/rtexif/stdattribs.cc index 8e076152d..be7a28a5c 100644 --- a/rtexif/stdattribs.cc +++ b/rtexif/stdattribs.cc @@ -17,8 +17,6 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ -#ifndef _STDATTRIBS_ -#define _STDATTRIBS_ #include #include @@ -927,5 +925,3 @@ const TagAttrib ifdAttribs[] = { { -1, AC_DONTWRITE, 0, nullptr, 0, AUTO, "", nullptr} }; } - -#endif diff --git a/rtgui/filecatalog.cc b/rtgui/filecatalog.cc index bb34072e2..102c17daf 100644 --- a/rtgui/filecatalog.cc +++ b/rtgui/filecatalog.cc @@ -45,8 +45,6 @@ using namespace std; -#define CHECKTIME 2000 - FileCatalog::FileCatalog (CoarsePanel* cp, ToolBar* tb, FilePanel* filepanel) : filepanel(filepanel), selectedDirectoryId(1), From fefb9c43b9a6b86bf07ff609fcf213eb5c509930 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Fri, 7 Feb 2020 12:45:24 -0800 Subject: [PATCH 198/453] macos_bundle.sh: fix libpixbuf and immodules Fixes building libpixbuf and immodules database by modifying install names later on. --- tools/osx/macosx_bundle.sh | 41 +++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 08740f696..eae8a2021 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -124,6 +124,19 @@ ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/lible # Copy libomp to Frameworks ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" +# dylib install names +find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib))' | while read -r x; do + msg "Modifying dylib install names: ${x}" + { + # id + case ${x} in *.dylib) echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'";; esac + # names + GetDependencies "${x}" | while read -r y; do + echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" + done + } | bash -v +done + msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" @@ -189,6 +202,13 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" ditto "${LOCAL_PREFIX}/local/share/icons/hicolor" "${RESOURCES}/share/icons/hicolor" +# pixbuf loaders & immodules +msg "Build GTK3 databases:" +"${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders +"${LOCAL_PREFIX}"/local/bin/gtk-query-immodules-3.0 "${LIB}"/im-* > "${ETC}"/gtk-3.0/gtk.immodules +sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" +sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" + # Install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do msg "Modifying install names: ${x}" @@ -209,13 +229,6 @@ for frameworklibs in ${CONTENTS}/Frameworks/* ; do echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v done -# pixbuf loaders & immodules -msg "Build GTK3 databases:" -"${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders -"${LOCAL_PREFIX}"/local/bin/gtk-query-immodules-3.0 "${LIB}"/im-* > "${ETC}"/gtk-3.0/gtk.immodules -sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" -sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" - # Mime directory msg "Copying shared files from ${GTK_PREFIX}:" ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime @@ -247,6 +260,20 @@ msg "Registering @rpath into the executable:" echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${MACOS}/bin/rawtherapee-bin'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v +# Install names +find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do + msg "Modifying install names: ${x}" + { + # id + case ${x} in *.dylib) echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'";; esac + # names + GetDependencies "${x}" | while read -r y; do + echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" + done + } | bash -v +done + + # Sign the app msg "Codesigning:" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" From 97dfa4e4af68b98996a5e19e000723061a961488 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 7 Feb 2020 22:01:58 +0100 Subject: [PATCH 199/453] Some more -Wunused-macros fixes --- rtengine/rawimagesource.cc | 11 +---------- rtgui/editorpanel.cc | 6 +++--- 2 files changed, 4 insertions(+), 13 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 18fc18f58..e084a5156 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -49,10 +49,6 @@ #endif #include "opthelper.h" -#define clipretinex( val, minv, maxv ) (( val = (val < minv ? minv : val ) ) > maxv ? maxv : val ) - -#undef CLIPD -#define CLIPD(a) ((a)>0.0f?((a)<1.0f?(a):1.0f):0.0f) namespace { @@ -426,10 +422,8 @@ namespace rtengine { #undef ABS -#undef DIST #define ABS(a) ((a)<0?-(a):(a)) -#define DIST(a,b) (ABS(a-b)) RawImageSource::RawImageSource () : ImageSource() @@ -2916,7 +2910,7 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b) float X; float Y; float Z; -#define CLIP01(a) ((a)>0?((a)<1?(a):1):0) + { // convert from Lab to XYZ float x, y, z, fx, fy, fz; @@ -2951,9 +2945,6 @@ lab2ProphotoRgbD50(float L, float A, float B, float& r, float& g, float& b) r = prophoto_xyz[0][0] * X + prophoto_xyz[0][1] * Y + prophoto_xyz[0][2] * Z; g = prophoto_xyz[1][0] * X + prophoto_xyz[1][1] * Y + prophoto_xyz[1][2] * Z; b = prophoto_xyz[2][0] * X + prophoto_xyz[2][1] * Y + prophoto_xyz[2][2] * Z; - // r = CLIP01(r); - // g = CLIP01(g); - // b = CLIP01(b); } // Converts raw image including ICC input profile to working space - floating point version diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 806af8b2e..5ac2930b5 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -61,7 +61,7 @@ void setprogressStrUI(double val, const Glib::ustring str, MyProgressBar* pProgr } } - +#if !defined(__APPLE__) // monitor profile not supported on apple bool find_default_monitor_profile (GdkWindow *rootwin, Glib::ustring &defprof, Glib::ustring &defprofname) { #ifdef WIN32 @@ -91,7 +91,7 @@ bool find_default_monitor_profile (GdkWindow *rootwin, Glib::ustring &defprof, G ReleaseDC (NULL, hDC); } -#elif !defined(__APPLE__) +#elif // taken from geeqie (image.c) and adapted // Originally licensed as GPL v2+, with the following copyright: // * Copyright (C) 2006 John Ellis @@ -129,7 +129,7 @@ bool find_default_monitor_profile (GdkWindow *rootwin, Glib::ustring &defprof, G #endif return false; } - +#endif } From 5dc1c1dce2c1b12a572d7b3be0652eda9aa4a7bf Mon Sep 17 00:00:00 2001 From: Benitoite Date: Fri, 7 Feb 2020 13:10:32 -0800 Subject: [PATCH 200/453] Mac: install_name change after CheckLink --- tools/osx/macosx_bundle.sh | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index eae8a2021..b8554a6e3 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -124,6 +124,9 @@ ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/lible # Copy libomp to Frameworks ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" +msg "Copying dependencies from ${GTK_PREFIX}:" +CheckLink "${EXECUTABLE}" + # dylib install names find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib))' | while read -r x; do msg "Modifying dylib install names: ${x}" @@ -137,9 +140,6 @@ find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib } | bash -v done -msg "Copying dependencies from ${GTK_PREFIX}:" -CheckLink "${EXECUTABLE}" - # Copy libjpeg-turbo ("62") into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" @@ -273,6 +273,12 @@ find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib } | bash -v done +# fix @rpath in Frameworks +msg "Registering @rpath in Frameworks folder:" +for frameworklibs in ${CONTENTS}/Frameworks/* ; do + echo " install_name_tool -delete_rpath /opt/local/lib '${frameworklibs}'" | bash -v + echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v +done # Sign the app msg "Codesigning:" From fcbb9f55b6467ba92964cfcadbacf263ccb3fe02 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sat, 8 Feb 2020 08:45:38 +0100 Subject: [PATCH 201/453] Fix non-Apple build --- rtgui/editorpanel.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 5ac2930b5..6a0d41878 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -91,7 +91,7 @@ bool find_default_monitor_profile (GdkWindow *rootwin, Glib::ustring &defprof, G ReleaseDC (NULL, hDC); } -#elif +#else // taken from geeqie (image.c) and adapted // Originally licensed as GPL v2+, with the following copyright: // * Copyright (C) 2006 John Ellis From d796f70caf12ea2825610d20962b646bbd56fc39 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 8 Feb 2020 02:52:31 -0800 Subject: [PATCH 202/453] Mac: fix os deployment target compilation flags Uses `${CMAKE_OSX_DEPLOYMENT_TARGET}` instead of `10.9` --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 13c648de0..259a0d7a2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -118,8 +118,8 @@ if(APPLE) endif() # Set minimum system version - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=10.9") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=10.9") + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -headerpad_max_install_names") endif() From 291abfd7a705122420af7874c109c4fea712dada Mon Sep 17 00:00:00 2001 From: scx Date: Sat, 8 Feb 2020 12:56:40 +0100 Subject: [PATCH 203/453] Install additional icons - Install 32x32 icon - Install 64x64 icon - Install scalable icon --- rtdata/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rtdata/CMakeLists.txt b/rtdata/CMakeLists.txt index 46722ba01..76804c0f0 100644 --- a/rtdata/CMakeLists.txt +++ b/rtdata/CMakeLists.txt @@ -29,9 +29,12 @@ if(UNIX) install(FILES "${CMAKE_CURRENT_BINARY_DIR}/rawtherapee.desktop" DESTINATION ${DESKTOPDIR}) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-16.png" DESTINATION "${ICONSDIR}/hicolor/16x16/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-24.png" DESTINATION "${ICONSDIR}/hicolor/24x24/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-32.png" DESTINATION "${ICONSDIR}/hicolor/32x32/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-48.png" DESTINATION "${ICONSDIR}/hicolor/48x48/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-64.png" DESTINATION "${ICONSDIR}/hicolor/64x64/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-128.png" DESTINATION "${ICONSDIR}/hicolor/128x128/apps" RENAME rawtherapee.png) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/png/rawtherapee-logo-256.png" DESTINATION "${ICONSDIR}/hicolor/256x256/apps" RENAME rawtherapee.png) + install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/images/svg/rt-logo.svg" DESTINATION "${ICONSDIR}/hicolor/scalable/apps" RENAME rawtherapee.svg) endif() install(FILES ${LANGUAGEFILES} DESTINATION "${DATADIR}/languages") From 344e9862ef971344e89eaef8f2a899d48d5e3c3b Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 8 Feb 2020 13:14:37 -0800 Subject: [PATCH 204/453] mac: append bundle-time to AboutThisBuild.txt Appends a section of information to uniquely identify a particular bundle. --- tools/osx/macosx_bundle.sh | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index b8554a6e3..779b31a1e 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -68,7 +68,6 @@ if [[ -x "$(which git)" && -d "${PROJECT_SOURCE_DIR}/.git" ]]; then PROJECT_FULL_VERSION="$gitDescribe" PROJECT_VERSION="$gitVersionNumericBS" - fi MINIMUM_SYSTEM_VERSION="$(otool -l "${CMAKE_BUILD_TYPE}"/MacOS/rawtherapee | grep -A2 'LC_VERSION_MIN_MACOSX' | awk '$1 ~ /version/ { printf $2 }')" @@ -110,6 +109,13 @@ install -d "${RESOURCES}" \ "${LIB}" \ "${ETC}" +echo "\n--------\n" >> Resources/AboutThisBuild.txt +echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> Resources/AboutThisBuild.txt +echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> Resources/AboutThisBuild.txt +echo "Bundle date: $(date -Ru) ZULU" >> Resources/AboutThisBuild.txt +echo "Bundle epoch: $(date +%s)" >> Resources/AboutThisBuild.txt +echo "Bundle UUID: $(uuidgen)" >> Resources/AboutThisBuild.txt + msg "Copying release files:" ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" ditto "Resources" "${RESOURCES}" From acdb3c32ddbcc7c78075a9e75e2e8803e88e0694 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 9 Feb 2020 12:02:57 +0100 Subject: [PATCH 205/453] MLsharpen: cleanup --- rtengine/ipsharpenedges.cc | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/rtengine/ipsharpenedges.cc b/rtengine/ipsharpenedges.cc index 73295e4fa..8dd12c836 100644 --- a/rtengine/ipsharpenedges.cc +++ b/rtengine/ipsharpenedges.cc @@ -23,13 +23,9 @@ #include "procparams.h" #include "rt_math.h" -#define BENCHMARK -#include "StopWatch.h" - -using namespace std; namespace { #ifdef __SSE2__ -bool inintervall(float a, float b, float c) +bool inintervalLoRo(float a, float b, float c) { return a < std::max(b, c) && a > std::min(b, c); } @@ -43,7 +39,7 @@ float selectweight(float a, float b, float low, float high) } #else -bool inintervall(float a, float b, float c) +bool inintervalLoRo(float a, float b, float c) { return (a < b && a > c) || (a < c && a > b); } @@ -75,8 +71,6 @@ void ImProcFunctions::MLsharpen (LabImage* lab) return; } -BENCHFUN - const int width = lab->W, height = lab->H; constexpr float chmax[3] = {1.f / 8.f, 1.f / 3.f, 1.f / 3.f}; const int width2 = 2 * width; @@ -127,7 +121,7 @@ BENCHFUN const float contrast = std::min(std::sqrt(SQR(L[offset + 1] - L[offset - 1]) + SQR(L[offset + width] - L[offset - width])) * chmax[c], 1.f); // new possible values - if (inintervall(v, L[offset - 1], L[offset + 1])) { + if (inintervalLoRo(v, L[offset - 1], L[offset + 1])) { float f1 = fabs(L[offset - 2] - L[offset - 1]); float f2 = L[offset - 1] - v; float f3 = (L[offset - 1] - L[offset - width]) * (L[offset - 1] - L[offset + width]); @@ -146,7 +140,7 @@ BENCHFUN } } - if (inintervall(v, L[offset - width], L[offset + width])) { + if (inintervalLoRo(v, L[offset - width], L[offset + width])) { float f1 = fabs(L[offset - width2] - L[offset - width]); float f2 = L[offset - width] - v; float f3 = (L[offset - width] - L[offset - 1]) * (L[offset - width] - L[offset + 1]); @@ -165,7 +159,7 @@ BENCHFUN } } - if (inintervall(v, L[offset - 1 - width], L[offset + 1 + width])) { + if (inintervalLoRo(v, L[offset - 1 - width], L[offset + 1 + width])) { float f1 = fabs(L[offset - 2 - width2] - L[offset - 1 - width]); float f2 = L[offset - 1 - width] - v; float f3 = (L[offset - 1 - width] - L[offset - width + 1]) * (L[offset - 1 - width] - L[offset + width - 1]); @@ -184,7 +178,7 @@ BENCHFUN } } - if (inintervall(v, L[offset + 1 - width], L[offset - 1 + width])) { + if (inintervalLoRo(v, L[offset + 1 - width], L[offset - 1 + width])) { float f1 = fabs(L[offset - 2 + width2] - L[offset - 1 + width]); float f2 = L[offset - 1 + width] - v; float f3 = (L[offset - 1 + width] - L[offset - width - 1]) * (L[offset - 1 + width] - L[offset + width + 1]); From 8170b6ed759cdd6a365ec74c7a6a76bfb73b6e9e Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 9 Feb 2020 05:02:50 -0800 Subject: [PATCH 206/453] cmake: gather and display build information Displays unique info: the build OS, the build zulu datetime, the build epoch, and a uuid during cmake configuration. --- UpdateInfo.cmake | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index d1f532506..9aa211d96 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -63,6 +63,11 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() + + execute_process(COMMAND uname -mrs COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND date -Ru COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND date +%s COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "Git checkout information:") message(STATUS " Commit description: ${GIT_DESCRIBE}") @@ -72,6 +77,11 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS "Build information:") + message(STATUS " Build OS: ${BUILDINFO_OS}") + message(STATUS " Build date: ${BUILDINFO_DATE}") + message(STATUS " Epoch: ${BUILDINFO_EPOCH}") + message(STATUS " UUID: ${BUILDINFO_UUID}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") From 80eb85215ad9c133affcd9996fb5e4dde7e3391e Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 9 Feb 2020 05:05:30 -0800 Subject: [PATCH 207/453] Appends build-unique info to AboutThisBuild.txt --- AboutThisBuild.txt.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/AboutThisBuild.txt.in b/AboutThisBuild.txt.in index f48d39b50..d6454d8a0 100644 --- a/AboutThisBuild.txt.in +++ b/AboutThisBuild.txt.in @@ -13,3 +13,7 @@ Build flags: ${CXX_FLAGS} Link flags: ${LFLAGS} OpenMP support: ${OPTION_OMP} MMAP support: ${WITH_MYFILE_MMAP} +Build OS: ${BUILDINFO_OS} +Build date: ${BUILDINFO_DATE} ZULU +Build Epoch: ${BUILDINFO_EPOCH} +Build UUID: ${BUILDINFO_UUID} From d9a62aa27af2d3fa930d370c7ed524451cac81d4 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 9 Feb 2020 14:14:46 +0100 Subject: [PATCH 208/453] Fix LGTM alerts --- rtengine/ipsharpenedges.cc | 48 +++++++++++++++++++------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/rtengine/ipsharpenedges.cc b/rtengine/ipsharpenedges.cc index 8dd12c836..6a44ee40a 100644 --- a/rtengine/ipsharpenedges.cc +++ b/rtengine/ipsharpenedges.cc @@ -75,8 +75,8 @@ void ImProcFunctions::MLsharpen (LabImage* lab) constexpr float chmax[3] = {1.f / 8.f, 1.f / 3.f, 1.f / 3.f}; const int width2 = 2 * width; constexpr float eps2 = 0.001f; //prevent divide by zero - const float amount = params->sharpenEdge.amount / 100.0f; - const float amountby3 = params->sharpenEdge.amount / 300.0f; + const float amount = params->sharpenEdge.amount / 100.0; + const float amountby3 = params->sharpenEdge.amount / 300.0; std::unique_ptr L(new float[width * height]); @@ -103,12 +103,12 @@ void ImProcFunctions::MLsharpen (LabImage* lab) for (int j = 2; j < height - 2; j++) { for (int i = 2, offset = j * width + i; i < width - 2; i++, offset++) { // weight functions - const float wH = eps2 + fabs(L[offset + 1] - L[offset - 1]); - const float wV = eps2 + fabs(L[offset + width] - L[offset - width]); + const float wH = eps2 + std::fabs(L[offset + 1] - L[offset - 1]); + const float wV = eps2 + std::fabs(L[offset + width] - L[offset - width]); - float s = 2.f / (2.f + fabs(wH - wV)); - float wD1 = eps2 + fabs(L[offset + width + 1] - L[offset - width - 1]) * s; - float wD2 = eps2 + fabs(L[offset + width - 1] - L[offset - width + 1]) * s; + float s = 2.f / (2.f + std::fabs(wH - wV)); + float wD1 = eps2 + std::fabs(L[offset + width + 1] - L[offset - width - 1]) * s; + float wD2 = eps2 + std::fabs(L[offset + width - 1] - L[offset - width + 1]) * s; s = wD1; wD1 /= wD2; wD2 /= s; @@ -122,16 +122,16 @@ void ImProcFunctions::MLsharpen (LabImage* lab) // new possible values if (inintervalLoRo(v, L[offset - 1], L[offset + 1])) { - float f1 = fabs(L[offset - 2] - L[offset - 1]); + float f1 = std::fabs(L[offset - 2] - L[offset - 1]); float f2 = L[offset - 1] - v; float f3 = (L[offset - 1] - L[offset - width]) * (L[offset - 1] - L[offset + width]); - float f4 = std::sqrt(fabs((L[offset - 1] - L[offset - width2]) * (L[offset - 1] - L[offset + width2]))); + float f4 = std::sqrt(std::fabs((L[offset - 1] - L[offset - width2]) * (L[offset - 1] - L[offset + width2]))); const float difL = f1 * SQR(f2 * f3) * f4; if (difL > 0.f) { - f1 = fabs(L[offset + 2] - L[offset + 1]); + f1 = std::fabs(L[offset + 2] - L[offset + 1]); f2 = L[offset + 1] - v; f3 = (L[offset + 1] - L[offset - width]) * (L[offset + 1] - L[offset + width]); - f4 = std::sqrt(fabs((L[offset + 1] - L[offset - width2]) * (L[offset + 1] - L[offset + width2]))); + f4 = std::sqrt(std::fabs((L[offset + 1] - L[offset - width2]) * (L[offset + 1] - L[offset + width2]))); const float difR = f1 * SQR(f2 * f3) * f4; if (difR > 0.f) { lumH = (L[offset - 1] * difR + L[offset + 1] * difL) / (difL + difR); @@ -141,16 +141,16 @@ void ImProcFunctions::MLsharpen (LabImage* lab) } if (inintervalLoRo(v, L[offset - width], L[offset + width])) { - float f1 = fabs(L[offset - width2] - L[offset - width]); + float f1 = std::fabs(L[offset - width2] - L[offset - width]); float f2 = L[offset - width] - v; float f3 = (L[offset - width] - L[offset - 1]) * (L[offset - width] - L[offset + 1]); - float f4 = std::sqrt(fabs((L[offset - width] - L[offset - 2]) * (L[offset - width] - L[offset + 2]))); + float f4 = std::sqrt(std::fabs((L[offset - width] - L[offset - 2]) * (L[offset - width] - L[offset + 2]))); const float difT = f1 * SQR(f2 * f3) * f4; if (difT > 0.f) { - f1 = fabs(L[offset + width2] - L[offset + width]); + f1 = std::fabs(L[offset + width2] - L[offset + width]); f2 = L[offset + width] - v; f3 = (L[offset + width] - L[offset - 1]) * (L[offset + width] - L[offset + 1]); - f4 = std::sqrt(fabs((L[offset + width] - L[offset - 2]) * (L[offset + width] - L[offset + 2]))); + f4 = std::sqrt(std::fabs((L[offset + width] - L[offset - 2]) * (L[offset + width] - L[offset + 2]))); const float difB = f1 * SQR(f2 * f3) * f4; if (difB > 0.f) { lumV = (L[offset - width] * difB + L[offset + width] * difT) / (difT + difB); @@ -160,16 +160,16 @@ void ImProcFunctions::MLsharpen (LabImage* lab) } if (inintervalLoRo(v, L[offset - 1 - width], L[offset + 1 + width])) { - float f1 = fabs(L[offset - 2 - width2] - L[offset - 1 - width]); + float f1 = std::fabs(L[offset - 2 - width2] - L[offset - 1 - width]); float f2 = L[offset - 1 - width] - v; float f3 = (L[offset - 1 - width] - L[offset - width + 1]) * (L[offset - 1 - width] - L[offset + width - 1]); - float f4 = std::sqrt(fabs((L[offset - 1 - width] - L[offset - width2 + 2]) * (L[offset - 1 - width] - L[offset + width2 - 2]))); + float f4 = std::sqrt(std::fabs((L[offset - 1 - width] - L[offset - width2 + 2]) * (L[offset - 1 - width] - L[offset + width2 - 2]))); const float difLT = f1 * SQR(f2 * f3) * f4; if (difLT > 0.f) { - f1 = fabs(L[offset + 2 + width2] - L[offset + 1 + width]); + f1 = std::fabs(L[offset + 2 + width2] - L[offset + 1 + width]); f2 = L[offset + 1 + width] - v; f3 = (L[offset + 1 + width] - L[offset - width + 1]) * (L[offset + 1 + width] - L[offset + width - 1]); - f4 = std::sqrt(fabs((L[offset + 1 + width] - L[offset - width2 + 2]) * (L[offset + 1 + width] - L[offset + width2 - 2]))); + f4 = std::sqrt(std::fabs((L[offset + 1 + width] - L[offset - width2 + 2]) * (L[offset + 1 + width] - L[offset + width2 - 2]))); const float difRB = f1 * SQR(f2 * f3) * f4; if (difRB > 0.f) { lumD1 = (L[offset - 1 - width] * difRB + L[offset + 1 + width] * difLT) / (difLT + difRB); @@ -179,16 +179,16 @@ void ImProcFunctions::MLsharpen (LabImage* lab) } if (inintervalLoRo(v, L[offset + 1 - width], L[offset - 1 + width])) { - float f1 = fabs(L[offset - 2 + width2] - L[offset - 1 + width]); + float f1 = std::fabs(L[offset - 2 + width2] - L[offset - 1 + width]); float f2 = L[offset - 1 + width] - v; float f3 = (L[offset - 1 + width] - L[offset - width - 1]) * (L[offset - 1 + width] - L[offset + width + 1]); - float f4 = std::sqrt(fabs((L[offset - 1 + width] - L[offset - width2 - 2]) * (L[offset - 1 + width] - L[offset + width2 + 2]))); + float f4 = std::sqrt(std::fabs((L[offset - 1 + width] - L[offset - width2 - 2]) * (L[offset - 1 + width] - L[offset + width2 + 2]))); const float difLB = f1 * SQR(f2 * f3) * f4; if (difLB > 0.f) { - f1 = fabs(L[offset + 2 - width2] - L[offset + 1 - width]); + f1 = std::fabs(L[offset + 2 - width2] - L[offset + 1 - width]); f2 = L[offset + 1 - width] - v; f3 = (L[offset + 1 - width] - L[offset + width + 1]) * (L[offset + 1 - width] - L[offset - width - 1]); - f4 = std::sqrt(fabs((L[offset + 1 - width] - L[offset + width2 + 2]) * (L[offset + 1 - width] - L[offset - width2 - 2]))); + f4 = std::sqrt(std::fabs((L[offset + 1 - width] - L[offset + width2 + 2]) * (L[offset + 1 - width] - L[offset - width2 - 2]))); const float difRT = f1 * SQR(f2 * f3) * f4; if (difRT > 0.f) { lumD2 = (L[offset + 1 - width] * difLB + L[offset - 1 + width] * difRT) / (difLB + difRT); @@ -203,7 +203,7 @@ void ImProcFunctions::MLsharpen (LabImage* lab) if (c == 0) { if (v < 92.f) { - channel[j][i] = fabs(327.68f * intp(weight, (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2), v)); // fabs because lab->L always > 0 + channel[j][i] = std::fabs(327.68f * intp(weight, (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2), v)); // fabs because lab->L always > 0 } } else { channel[j][i] = 327.68f * intp(weight, (lumH * wH + lumV * wV + lumD1 * wD1 + lumD2 * wD2) / (wH + wV + wD1 + wD2), v); From 9115addbc2299e1b527d2906b8c0127c17eec16c Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 9 Feb 2020 11:25:21 -0800 Subject: [PATCH 209/453] mac: copy correct AboutThisBuild.txt into bundle --- tools/osx/macosx_bundle.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 779b31a1e..19b78fae4 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -335,7 +335,7 @@ function CreateDmg { msg "Preparing disk image sources at ${srcDir}:" cp -R "${APP}" "${srcDir}" - ditto AboutThisBuild.txt "${srcDir}" + ditto Resources/AboutThisBuild.txt "${srcDir}" ln -s /Applications "${srcDir}" # Web bookmarks @@ -392,7 +392,7 @@ function CreateDmg { # Zip disk image for redistribution msg "Zipping disk image for redistribution:" - zip "${dmg_name}.zip" "${dmg_name}.dmg" AboutThisBuild.txt + zip "${dmg_name}.zip" "${dmg_name}.dmg" Resources/AboutThisBuild.txt rm "${dmg_name}.dmg" msg "Removing disk image caches:" From cb09e78e81bb8129656eaf51437f54436eb372d0 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 9 Feb 2020 12:21:47 -0800 Subject: [PATCH 210/453] mac: convert case statement to if --- tools/osx/macosx_bundle.sh | 53 ++++++++++++++------------------------ 1 file changed, 19 insertions(+), 34 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 19b78fae4..83bc4f630 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -34,6 +34,22 @@ function CheckLink { done } +function ModifyInstallNames { + find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib))' | while read -r x; do + msg "Modifying install names: ${x}" + { + # id + if [ ${x:(-6)} == ".dylib" ]; then + echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'" + fi + GetDependencies "${x}" | while read -r y + do + echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" + done + } | bash -v + done +} + # Source check if [[ ! -d "${CMAKE_BUILD_TYPE}" ]]; then msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." @@ -134,17 +150,7 @@ msg "Copying dependencies from ${GTK_PREFIX}:" CheckLink "${EXECUTABLE}" # dylib install names -find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib))' | while read -r x; do - msg "Modifying dylib install names: ${x}" - { - # id - case ${x} in *.dylib) echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'";; esac - # names - GetDependencies "${x}" | while read -r y; do - echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" - done - } | bash -v -done +ModifyInstallNames # Copy libjpeg-turbo ("62") into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" @@ -216,17 +222,7 @@ sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/C sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" # Install names -find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do - msg "Modifying install names: ${x}" - { - # id - case ${x} in *.dylib) echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'";; esac - # names - GetDependencies "${x}" | while read -r y; do - echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" - done - } | bash -v -done +ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder:" @@ -266,18 +262,7 @@ msg "Registering @rpath into the executable:" echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${MACOS}/bin/rawtherapee-bin'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v -# Install names -find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do - msg "Modifying install names: ${x}" - { - # id - case ${x} in *.dylib) echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'";; esac - # names - GetDependencies "${x}" | while read -r y; do - echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" - done - } | bash -v -done +ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder:" From 3349aa041a9546ea7afd5b59a29bcab679577e38 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 9 Feb 2020 13:25:45 -0800 Subject: [PATCH 211/453] mac: include .so objects in routine --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 83bc4f630..7a6bfe765 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -35,7 +35,7 @@ function CheckLink { } function ModifyInstallNames { - find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib))' | while read -r x; do + find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do msg "Modifying install names: ${x}" { # id From 2c831a11a7a164685e51169e7696ffc50f7e04e5 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 9 Feb 2020 23:34:12 +0100 Subject: [PATCH 212/453] more double promote fixes --- rtengine/capturesharpening.cc | 18 +++++----- rtengine/filmnegativeproc.cc | 12 +++---- rtengine/filmnegativethumb.cc | 4 +-- rtengine/hilite_recon.cc | 4 +-- rtengine/improccoordinator.cc | 4 +-- rtengine/improcfun.cc | 10 +++--- rtengine/ipsharpen.cc | 22 ++++++------ rtengine/iptransform.cc | 64 +++++++++++++++++------------------ 8 files changed, 68 insertions(+), 70 deletions(-) diff --git a/rtengine/capturesharpening.cc b/rtengine/capturesharpening.cc index b5b74e140..4dcdd0734 100644 --- a/rtengine/capturesharpening.cc +++ b/rtengine/capturesharpening.cc @@ -761,13 +761,13 @@ bool checkForStop(float** tmpIThr, float** iterCheck, int fullTileSize, int bord return false; } -void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, double sigma, double sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal) +void CaptureDeconvSharpening (float** luminance, const float* const * oldLuminance, const float * const * blend, int W, int H, float sigma, float sigmaCornerOffset, int iterations, bool checkIterStop, rtengine::ProgressListener* plistener, double startVal, double endVal) { BENCHFUN - const bool is9x9 = (sigma <= 1.50 && sigmaCornerOffset == 0.0); - const bool is7x7 = (sigma <= 1.15 && sigmaCornerOffset == 0.0); - const bool is5x5 = (sigma <= 0.84 && sigmaCornerOffset == 0.0); - const bool is3x3 = (sigma < 0.6 && sigmaCornerOffset == 0.0); + const bool is9x9 = (sigma <= 1.5f && sigmaCornerOffset == 0.f); + const bool is7x7 = (sigma <= 1.15f && sigmaCornerOffset == 0.f); + const bool is5x5 = (sigma <= 0.84f && sigmaCornerOffset == 0.f); + const bool is3x3 = (sigma < 0.6f && sigmaCornerOffset == 0.f); float kernel13[13][13]; float kernel9[9][9]; float kernel7[7][7]; @@ -906,11 +906,11 @@ BENCHFUN } } } else { - if (sigmaCornerOffset != 0.0) { + if (sigmaCornerOffset != 0.f) { const float distance = sqrt(rtengine::SQR(i + tileSize / 2 - H / 2) + rtengine::SQR(j + tileSize / 2 - W / 2)); const float sigmaTile = static_cast(sigma) + distanceFactor * distance; if (sigmaTile >= 0.4f) { - if (sigmaTile > 1.50) { // have to use 13x13 kernel + if (sigmaTile > 1.5f) { // have to use 13x13 kernel float lkernel13[13][13]; compute13x13kernel(static_cast(sigma) + distanceFactor * distance, lkernel13); for (int k = 0; k < iterations; ++k) { @@ -921,7 +921,7 @@ BENCHFUN break; } } - } else if (sigmaTile > 1.15) { // have to use 9x9 kernel + } else if (sigmaTile > 1.15f) { // have to use 9x9 kernel float lkernel9[9][9]; compute9x9kernel(static_cast(sigma) + distanceFactor * distance, lkernel9); for (int k = 0; k < iterations; ++k) { @@ -932,7 +932,7 @@ BENCHFUN break; } } - } else if (sigmaTile > 0.84) { // have to use 7x7 kernel + } else if (sigmaTile > 0.84f) { // have to use 7x7 kernel float lkernel7[7][7]; compute7x7kernel(static_cast(sigma) + distanceFactor * distance, lkernel7); for (int k = 0; k < iterations; ++k) { diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index 1f27983ed..c7de3c483 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -122,8 +122,8 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s } if (settings->verbose) { - printf("Clear film values: R=%g G=%g B=%g\n", clearVals[0], clearVals[1], clearVals[2]); - printf("Dense film values: R=%g G=%g B=%g\n", denseVals[0], denseVals[1], denseVals[2]); + printf("Clear film values: R=%g G=%g B=%g\n", static_cast(clearVals[0]), static_cast(clearVals[1]), static_cast(clearVals[2])); + printf("Dense film values: R=%g G=%g B=%g\n", static_cast(denseVals[0]), static_cast(denseVals[1]), static_cast(denseVals[2])); } const float denseGreenRatio = clearVals[1] / denseVals[1]; @@ -141,12 +141,12 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s if (ch == 1) { newExps[ch] = 1.f; // Green is the reference channel } else { - newExps[ch] = CLAMP(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 4.f); + newExps[ch] = rtengine::LIM(logBase(clearVals[ch] / denseVals[ch], denseGreenRatio), 0.3f, 4.f); } } if (settings->verbose) { - printf("New exponents: R=%g G=%g B=%g\n", newExps[0], newExps[1], newExps[2]); + printf("New exponents: R=%g G=%g B=%g\n", static_cast(newExps[0]), static_cast(newExps[1]), static_cast(newExps[2])); } return true; @@ -246,8 +246,8 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ if (settings->verbose) { printf("Sample count: %zu, %zu, %zu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); - printf("Medians: %g %g %g\n", medians[0], medians[1], medians[2] ); - printf("Computed multipliers: %g %g %g\n", mults[0], mults[1], mults[2] ); + printf("Medians: %g %g %g\n", static_cast(medians[0]), static_cast(medians[1]), static_cast(medians[2])); + printf("Computed multipliers: %g %g %g\n", static_cast(mults[0]), static_cast(mults[1]), static_cast(mults[2])); printf("Median calc time us: %d\n", t3.etime(t2)); } diff --git a/rtengine/filmnegativethumb.cc b/rtengine/filmnegativethumb.cc index b31432a55..003fab8e0 100644 --- a/rtengine/filmnegativethumb.cc +++ b/rtengine/filmnegativethumb.cc @@ -89,8 +89,8 @@ void rtengine::Thumbnail::processFilmNegative( const float bmult = (MAX_OUT_VALUE / (bmed * 24)) ; if (settings->verbose) { - printf("Thumbnail channel medians: %g %g %g\n", rmed, gmed, bmed); - printf("Thumbnail computed multipliers: %g %g %g\n", rmult, gmult, bmult); + printf("Thumbnail channel medians: %g %g %g\n", static_cast(rmed), static_cast(gmed), static_cast(bmed)); + printf("Thumbnail computed multipliers: %g %g %g\n", static_cast(rmult), static_cast(gmult), static_cast(bmult)); } #ifdef __SSE2__ diff --git a/rtengine/hilite_recon.cc b/rtengine/hilite_recon.cc index a56ff1918..1ba42a68b 100644 --- a/rtengine/hilite_recon.cc +++ b/rtengine/hilite_recon.cc @@ -323,7 +323,7 @@ void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue if (settings->verbose) { for (int c = 0; c < 3; ++c) { - printf("chmax[%d] : %f\tclmax[%d] : %f\tratio[%d] : %f\n", c, chmax[c], c, clmax[c], c, chmax[c] / clmax[c]); + printf("chmax[%d] : %f\tclmax[%d] : %f\tratio[%d] : %f\n", c, static_cast(chmax[c]), c, static_cast(clmax[c]), c, static_cast(chmax[c] / clmax[c])); } } @@ -366,7 +366,7 @@ void RawImageSource::HLRecovery_inpaint(float** red, float** green, float** blue if (settings->verbose) { for (int c = 0; c < 3; ++c) { - printf("correction factor[%d] : %f\n", c, factor[c]); + printf("correction factor[%d] : %f\n", c, static_cast(factor[c])); } } diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index e915a11b0..c14e889ad 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -734,7 +734,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (params->blackwhite.enabled && params->blackwhite.autoc && abwListener) { if (settings->verbose) { - printf("ImProcCoordinator / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", bwAutoR, bwAutoG, bwAutoB); + printf("ImProcCoordinator / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", static_cast(bwAutoR), static_cast(bwAutoG), static_cast(bwAutoB)); } abwListener->BWChanged((float) rrm, (float) ggm, (float) bbm); @@ -871,7 +871,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) double E_V = fcomp + log2(double ((fnum * fnum) / fspeed / (fiso / 100.f))); E_V += params->toneCurve.expcomp;// exposure compensation in tonecurve ==> direct EV E_V += log2(params->raw.expos); // exposure raw white point ; log2 ==> linear to EV - adap = powf(2.f, E_V - 3.f); // cd / m2 + adap = pow(2.0, E_V - 3.0); // cd / m2 // end calculation adaptation scene luminosity } diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 236f3c672..7ade3e92c 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -5142,7 +5142,7 @@ void ImProcFunctions::EPDToneMapCIE (CieImage *ncie, float a_w, float c_, int Wi float *Qpr = ncie->Q_p[0]; if (settings->verbose) { - printf ("minQ=%f maxQ=%f Qpro=%f\n", minQ, maxQ, Qpro); + printf ("minQ=%f maxQ=%f Qpro=%f\n", static_cast(minQ), static_cast(maxQ), static_cast(Qpro)); } if (maxQ > Qpro) { @@ -5563,7 +5563,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double contr = (int) 50.0f * (1.1f - ospread); contr = max (0, min (100, contr)); //take gamma into account - double whiteclipg = (int) (CurveFactory::gamma2 (whiteclip * corr / 65536.0) * 65536.0); + double whiteclipg = (int) (CurveFactory::gamma2(whiteclip * static_cast(corr) / 65536.0) * 65536.0); float gavg = 0.; @@ -5585,7 +5585,7 @@ void ImProcFunctions::getAutoExp (const LUTu &histogram, int histcompr, double } } - whiteclipg = CurveFactory::igamma2 ((float) (whiteclipg / 65535.0)) * 65535.0; //need to inverse gamma transform to get correct exposure compensation parameter + whiteclipg = CurveFactory::igamma2(whiteclipg / 65535.0) * 65535.0; //need to inverse gamma transform to get correct exposure compensation parameter //correction with gamma black = (int) ((65535 * black) / whiteclipg); @@ -5820,8 +5820,8 @@ void ImProcFunctions::lab2rgb (const LabImage &src, Imagefloat &dst, const Glib: */ void ImProcFunctions::colorToningLabGrid(LabImage *lab, int xstart, int xend, int ystart, int yend, bool MultiThread) { - const float factor = ColorToningParams::LABGRID_CORR_MAX * 3.f; - const float scaling = ColorToningParams::LABGRID_CORR_SCALE; + const double factor = ColorToningParams::LABGRID_CORR_MAX * 3.0; + const double scaling = ColorToningParams::LABGRID_CORR_SCALE; float a_scale = (params->colorToning.labgridAHigh - params->colorToning.labgridALow) / factor / scaling; float a_base = params->colorToning.labgridALow / scaling; float b_scale = (params->colorToning.labgridBHigh - params->colorToning.labgridBLow) / factor / scaling; diff --git a/rtengine/ipsharpen.cc b/rtengine/ipsharpen.cc index 959030dc6..0e46cd596 100644 --- a/rtengine/ipsharpen.cc +++ b/rtengine/ipsharpen.cc @@ -103,7 +103,7 @@ void sharpenHaloCtrl (float** luminance, float** blurmap, float** base, float** void dcdamping (float** aI, float** aO, float damping, int W, int H) { - const float dampingFac = -2.0 / (damping * damping); + const float dampingFac = -2.f / (damping * damping); #ifdef __SSE2__ vfloat Iv, Ov, Uv, zerov, onev, fourv, fivev, dampingFacv, Tv, Wv, Lv; @@ -163,7 +163,7 @@ namespace rtengine void ImProcFunctions::deconvsharpening (float** luminance, float** tmp, const float * const * blend, int W, int H, const procparams::SharpeningParams &sharpenParam, double Scale) { - if (sharpenParam.deconvamount == 0 && sharpenParam.blurradius < 0.25f) { + if (sharpenParam.deconvamount == 0 && sharpenParam.blurradius < 0.25) { return; } BENCHFUN @@ -180,7 +180,7 @@ BENCHFUN JaggedArray* blurbuffer = nullptr; - if (sharpenParam.blurradius >= 0.25f) { + if (sharpenParam.blurradius >= 0.25) { blurbuffer = new JaggedArray(W, H); JaggedArray &blur = *blurbuffer; #ifdef _OPENMP @@ -229,7 +229,7 @@ BENCHFUN } } - if (sharpenParam.blurradius >= 0.25f) { + if (sharpenParam.blurradius >= 0.25) { JaggedArray &blur = *blurbuffer; #ifdef _OPENMP #pragma omp for @@ -255,7 +255,7 @@ void ImProcFunctions::sharpening (LabImage* lab, const procparams::SharpeningPar // calculate contrast based blend factors to reduce sharpening in regions with low contrast JaggedArray blend(W, H); - float contrast = sharpenParam.contrast / 100.f; + float contrast = sharpenParam.contrast / 100.0; buildBlendMask(lab->L, blend, W, H, contrast); if(showMask) { @@ -292,7 +292,7 @@ BENCHFUN JaggedArray blur(W, H); - if (sharpenParam.blurradius >= 0.25f) { + if (sharpenParam.blurradius >= 0.25) { #ifdef _OPENMP #pragma omp parallel #endif @@ -372,7 +372,7 @@ BENCHFUN delete [] b3; } - if (sharpenParam.blurradius >= 0.25f) { + if (sharpenParam.blurradius >= 0.25) { #ifdef _OPENMP #pragma omp parallel for #endif @@ -405,10 +405,10 @@ BENCHFUN // k=2 matrix 5x5 k=1 matrix 3x3 const int width = W, height = H; const int unif = params->sharpenMicro.uniformity; - const float amount = (k == 1 ? 2.7f : 1.f) * params->sharpenMicro.amount / 1500.0f; //amount 2000.0 quasi no artifacts ==> 1500 = maximum, after artifacts, 25/9 if 3x3 + const float amount = (k == 1 ? 2.7 : 1.) * params->sharpenMicro.amount / 1500.0; //amount 2000.0 quasi no artifacts ==> 1500 = maximum, after artifacts, 25/9 if 3x3 if (settings->verbose) { - printf ("Micro-contrast amount %f\n", amount); + printf ("Micro-contrast amount %f\n", static_cast(amount)); printf ("Micro-contrast uniformity %i\n", unif); } @@ -439,7 +439,7 @@ BENCHFUN // calculate contrast based blend factors to reduce sharpening in regions with low contrast JaggedArray blend(W, H); - float contrast = params->sharpenMicro.contrast / 100.f; + float contrast = params->sharpenMicro.contrast / 100.0; buildBlendMask(luminance, blend, W, H, contrast); #ifdef _OPENMP @@ -648,7 +648,7 @@ void ImProcFunctions::sharpeningcam (CieImage* ncie, float** b2, bool showMask) // calculate contrast based blend factors to reduce sharpening in regions with low contrast JaggedArray blend(W, H); - float contrast = params->sharpening.contrast / 100.f; + float contrast = params->sharpening.contrast / 100.0; buildBlendMask(ncie->sh_p, blend, W, H, contrast); if(showMask) { #ifdef _OPENMP diff --git a/rtengine/iptransform.cc b/rtengine/iptransform.cc index 9e7c61dcf..b0dc55b2f 100644 --- a/rtengine/iptransform.cc +++ b/rtengine/iptransform.cc @@ -689,11 +689,11 @@ static void calcGradientParams (int oW, int oH, const GradientParams& gradient, gp.ta = tan (gradient_angle); gp.xc = w * gradient_center_x; gp.yc = h * gradient_center_y; - gp.ys = sqrt ((float)h * h + (float)w * w) * (gradient_span / cos (gradient_angle)); - gp.ys_inv = 1.0 / gp.ys; - gp.top_edge_0 = gp.yc - gp.ys / 2.0; + gp.ys = rtengine::norm2(static_cast(h), static_cast(w)) * (gradient_span / cos(gradient_angle)); + gp.ys_inv = 1.f / gp.ys; + gp.top_edge_0 = gp.yc - gp.ys / 2.f; - if (gp.ys < 1.0 / h) { + if (h * gp.ys < 1.f) { gp.ys_inv = 0; gp.ys = 0; } @@ -723,7 +723,7 @@ static float calcGradientFactor (const struct grad_params& gp, int x, int y) val = 1.f - pow3 (xcosf (val)); } - return gp.scale + val * (1.0 - gp.scale); + return gp.scale + val * (1.f - gp.scale); } } else { int gy = gp.transpose ? x : y; @@ -747,7 +747,7 @@ static float calcGradientFactor (const struct grad_params& gp, int x, int y) val = 1.f - pow3 (xcosf (val)); } - return gp.scale + val * (1.0 - gp.scale); + return gp.scale + val * (1.f - gp.scale); } } } @@ -766,7 +766,7 @@ static void calcPCVignetteParams (int fW, int fH, int oW, int oH, const PCVignet { // ellipse formula: (x/a)^2 + (y/b)^2 = 1 - double roundness = pcvignette.roundness / 100.0; + float roundness = pcvignette.roundness / 100.f; pcv.feather = pcvignette.feather / 100.0; if (crop.enabled) { @@ -783,42 +783,40 @@ static void calcPCVignetteParams (int fW, int fH, int oW, int oH, const PCVignet pcv.h = oH; } - pcv.fadeout_mul = 1.0 / (0.05 * sqrtf (oW * oW + oH * oH)); + pcv.fadeout_mul = 20.0 / rtengine::norm2(static_cast(oW), static_cast(oW)); float short_side = (pcv.w < pcv.h) ? pcv.w : pcv.h; float long_side = (pcv.w > pcv.h) ? pcv.w : pcv.h; pcv.sep = 2; pcv.sepmix = 0; - pcv.oe_a = sqrt (2.0) * long_side * 0.5; + pcv.oe_a = std::sqrt(2.f) * long_side * 0.5f; pcv.oe_b = pcv.oe_a * short_side / long_side; - pcv.ie_mul = (1.0 / sqrt (2.0)) * (1.0 - pcv.feather); + pcv.ie_mul = (1.f - pcv.feather) / std::sqrt(2.f); pcv.is_super_ellipse_mode = false; pcv.is_portrait = (pcv.w < pcv.h); - if (roundness < 0.5) { + if (roundness < 0.5f) { // make super-ellipse of higher and higher degree pcv.is_super_ellipse_mode = true; - float sepf = 2 + 4 * powf (1.0 - 2 * roundness, 1.3); // gamma 1.3 used to balance the effect in the 0.0...0.5 roundness range + float sepf = 2 + 4 * std::pow(1.f - 2 * roundness, 1.3f); // gamma 1.3 used to balance the effect in the 0.0...0.5 roundness range pcv.sep = ((int)sepf) & ~0x1; - pcv.sepmix = (sepf - pcv.sep) * 0.5; // 0.0 to 1.0 - pcv.oe1_a = powf (2.0, 1.0 / pcv.sep) * long_side * 0.5; + pcv.sepmix = (sepf - pcv.sep) * 0.5f; // 0.0 to 1.0 + pcv.oe1_a = std::pow(2.f, 1.f / pcv.sep) * long_side * 0.5f; pcv.oe1_b = pcv.oe1_a * short_side / long_side; - pcv.ie1_mul = (1.0 / powf (2.0, 1.0 / pcv.sep)) * (1.0 - pcv.feather); - pcv.oe2_a = powf (2.0, 1.0 / (pcv.sep + 2)) * long_side * 0.5; + pcv.ie1_mul = (1.f - pcv.feather) / std::pow(2.f, 1.f / pcv.sep); + pcv.oe2_a = std::pow(2.f, 1.f / (pcv.sep + 2)) * long_side * 0.5f; pcv.oe2_b = pcv.oe2_a * short_side / long_side; - pcv.ie2_mul = (1.0 / powf (2.0, 1.0 / (pcv.sep + 2))) * (1.0 - pcv.feather); - } - - if (roundness > 0.5) { + pcv.ie2_mul = (1.f - pcv.feather) / std::pow(2.f, 1.f / (pcv.sep + 2)); + } else if (roundness > 0.5f) { // scale from fitted ellipse towards circle - float rad = sqrtf (pcv.w * pcv.w + pcv.h * pcv.h) / 2.0; + float rad = rtengine::norm2(static_cast(pcv.w), static_cast(pcv.h)) / 2.f; float diff_a = rad - pcv.oe_a; float diff_b = rad - pcv.oe_b; - pcv.oe_a = pcv.oe_a + diff_a * 2 * (roundness - 0.5); - pcv.oe_b = pcv.oe_b + diff_b * 2 * (roundness - 0.5); + pcv.oe_a = pcv.oe_a + diff_a * 2 * (roundness - 0.5f); + pcv.oe_b = pcv.oe_b + diff_b * 2 * (roundness - 0.5f); } - pcv.scale = powf (2, -pcvignette.strength); + pcv.scale = std::pow(2, -pcvignette.strength); if (pcvignette.strength >= 6.0) { pcv.scale = 0.0; @@ -954,23 +952,23 @@ void ImProcFunctions::transformLuminanceOnly (Imagefloat* original, Imagefloat* double r = sqrt (vig_x_d * vig_x_d + vig_y_d * vig_y_d); if (darkening) { - factor /= std::max (v + mul * tanh (b * (maxRadius - r) / maxRadius), 0.001); + factor /= std::max (v + mul * tanh(b * (maxRadius - r) / maxRadius), 0.001); } else { - factor = v + mul * tanh (b * (maxRadius - r) / maxRadius); + factor = v + mul * tanh(b * (maxRadius - r) / maxRadius); } } if (applyGradient) { - factor *= calcGradientFactor (gp, cx + x, cy + y); + factor *= static_cast(calcGradientFactor(gp, cx + x, cy + y)); } if (applyPCVignetting) { - factor *= calcPCVignetteFactor (pcv, cx + x, cy + y); + factor *= static_cast(calcPCVignetteFactor(pcv, cx + x, cy + y)); } - transformed->r (y, x) = original->r (y, x) * factor; - transformed->g (y, x) = original->g (y, x) * factor; - transformed->b (y, x) = original->b (y, x) * factor; + transformed->r(y, x) = static_cast(original->r(y, x)) * factor; + transformed->g(y, x) = static_cast(original->g(y, x)) * factor; + transformed->b(y, x) = static_cast(original->b(y, x)) * factor; } } } @@ -1147,11 +1145,11 @@ void ImProcFunctions::transformGeneral(bool highQuality, Imagefloat *original, I } if (enableGradient) { - vignmul *= calcGradientFactor(gp, cx + x, cy + y); + vignmul *= static_cast(calcGradientFactor(gp, cx + x, cy + y)); } if (enablePCVignetting) { - vignmul *= calcPCVignetteFactor(pcv, cx + x, cy + y); + vignmul *= static_cast(calcPCVignetteFactor(pcv, cx + x, cy + y)); } if (yc > 0 && yc < original->getHeight() - 2 && xc > 0 && xc < original->getWidth() - 2) { From f0b5ca02e7f9649db5354db6313885ee4b4fbbb7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 10 Feb 2020 16:22:42 +0100 Subject: [PATCH 213/453] More double promote fixes --- rtengine/imagesource.h | 2 +- rtengine/ipwavelet.cc | 27 +++---- rtengine/rawimage.cc | 41 +++++----- rtengine/rawimagesource.cc | 63 +++++++-------- rtengine/shmap.cc | 115 ++++++++++++--------------- rtengine/shmap.h | 2 - rtengine/simpleprocess.cc | 8 +- rtgui/cropwindow.cc | 2 +- rtgui/defringe.cc | 2 +- rtgui/diagonalcurveeditorsubgroup.cc | 6 +- rtgui/dirpyrequalizer.cc | 4 +- rtgui/gradient.cc | 4 +- rtgui/histogrampanel.cc | 20 ++--- rtgui/hsvequalizer.cc | 2 +- rtgui/labcurve.cc | 2 +- rtgui/labgrid.cc | 16 ++-- rtgui/lockablecolorpicker.cc | 14 ++-- 17 files changed, 155 insertions(+), 175 deletions(-) diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index 76f4e435a..96711c1a0 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -85,7 +85,7 @@ protected: public: ImageSource () : references (1), redAWBMul(-1.), greenAWBMul(-1.), blueAWBMul(-1.), - embProfile(nullptr), idata(nullptr), dirpyrdenoiseExpComp(INFINITY) {} + embProfile(nullptr), idata(nullptr), dirpyrdenoiseExpComp(RT_INFINITY) {} ~ImageSource () override {} virtual int load (const Glib::ustring &fname) = 0; diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index be64be0fc..0e621b254 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -897,10 +897,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //init for edge and denoise float vari[4]; - vari[0] = 8.f * SQR((cp.lev0n / 125.0) * (1.0 + cp.lev0n / 25.0)); - vari[1] = 8.f * SQR((cp.lev1n / 125.0) * (1.0 + cp.lev1n / 25.0)); - vari[2] = 8.f * SQR((cp.lev2n / 125.0) * (1.0 + cp.lev2n / 25.0)); - vari[3] = 8.f * SQR((cp.lev3n / 125.0) * (1.0 + cp.lev3n / 25.0)); + vari[0] = 8.f * SQR((cp.lev0n / 125.f) * (1.f + cp.lev0n / 25.f)); + vari[1] = 8.f * SQR((cp.lev1n / 125.f) * (1.f + cp.lev1n / 25.f)); + vari[2] = 8.f * SQR((cp.lev2n / 125.f) * (1.f + cp.lev2n / 25.f)); + vari[3] = 8.f * SQR((cp.lev3n / 125.f) * (1.f + cp.lev3n / 25.f)); if((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { int edge = 1; @@ -1116,7 +1116,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float Chprov1 = sqrtf(SQR(a) + SQR(b)); yBuffer[col] = (Chprov1 == 0.f) ? 1.f : a / Chprov1; xBuffer[col] = (Chprov1 == 0.f) ? 0.f : b / Chprov1; - chprovBuffer[col] = Chprov1 / 327.68; + chprovBuffer[col] = Chprov1 / 327.68f; } } @@ -1280,7 +1280,7 @@ void ImProcFunctions::Aver( float * RESTRICT DataList, int datalen, float &aver for(int i = 0; i < datalen; i++) { if(DataList[i] >= thres) { - averaP += DataList[i]; + averaP += static_cast(DataList[i]); if(DataList[i] > lmax) { lmax = DataList[i]; @@ -1288,7 +1288,7 @@ void ImProcFunctions::Aver( float * RESTRICT DataList, int datalen, float &aver countP++; } else if(DataList[i] < -thres) { - averaN += DataList[i]; + averaN += static_cast(DataList[i]); if(DataList[i] < lmin) { lmin = DataList[i]; @@ -1334,10 +1334,10 @@ void ImProcFunctions::Sigma( float * RESTRICT DataList, int datalen, float aver for(int i = 0; i < datalen; i++) { if(DataList[i] >= thres) { - variP += SQR(DataList[i] - averagePlus); + variP += static_cast(SQR(DataList[i] - averagePlus)); countP++; } else if(DataList[i] <= -thres) { - variN += SQR(DataList[i] - averageNeg); + variN += static_cast(SQR(DataList[i] - averageNeg)); countN++; } } @@ -1613,7 +1613,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #endif for (int i = 0; i < W_L * H_L; i++) { - avedbl += WavCoeffs_L0[i]; + avedbl += static_cast(WavCoeffs_L0[i]); } #ifdef _OPENMP @@ -1702,7 +1702,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif { - if(contrast != 0.f && cp.resena && max0 > 0.0) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step + if(contrast != 0.f && cp.resena && max0 > 0.f) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step { #ifdef _OPENMP #pragma omp for @@ -2011,7 +2011,7 @@ void ImProcFunctions::WaveletAandBAllAB(wavelet_decomposition &WaveletCoeffs_a, editWhatever->v(i,j) = valpar; } */ - float valparam = float((hhCurve->getVal(Color::huelab_to_huehsv2(hueR)) - 0.5f) * 1.7f) + hueR; //get H=f(H) 1.7 optimisation ! + float valparam = (static_cast(hhCurve->getVal(Color::huelab_to_huehsv2(hueR))) - 0.5f) * 1.7f + hueR; //get H=f(H) 1.7 optimisation ! float2 sincosval = xsincosf(valparam); WavCoeffs_a0[i * W_L + j] = chR * sincosval.y; WavCoeffs_b0[i * W_L + j] = chR * sincosval.x; @@ -3016,9 +3016,8 @@ void ImProcFunctions::ContAllL (float *koeLi[12], float *maxkoeLi, bool lipschit if(Chutili) { int i_i = i / W_L; int j_j = i - i_i * W_L; - double lr; float modhue2 = varhue[i_i][j_j]; - float valparam = float((ChCurve->getVal(lr = Color::huelab_to_huehsv2(modhue2)) - 0.5f)); //get valparam=f(H) + float valparam = static_cast(ChCurve->getVal(Color::huelab_to_huehsv2(modhue2))) - 0.5f; //get valparam=f(H) if(valparam > 0.f) { scale2 = 1.f + 3.f * valparam; //arbitrary value diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 4421e4af4..34d5d961c 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -171,7 +171,7 @@ void RawImage::get_colorsCoeff( float *pre_mul_, float *scale_mul_, float *cblac } for (int c = 0; c < 4; c++) { - dsumthr[c] += sum[c]; + dsumthr[c] += static_cast(sum[c]); } skip_block2: @@ -195,7 +195,7 @@ skip_block2: } for(int c = 0; c < 4; c++) { - dsum[c] -= cblack_[c] * dsum[c + 4]; + dsum[c] -= static_cast(cblack_[c]) * dsum[c + 4]; } } else if(isXtrans()) { @@ -241,7 +241,7 @@ skip_block2: } for (int c = 0; c < 8; c++) { - dsumthr[c] += sum[c]; + dsumthr[c] += static_cast(sum[c]); } skip_block3: @@ -365,18 +365,14 @@ skip_block: } for (dmin = DBL_MAX, dmax = c = 0; c < 4; c++) { - if (dmin > pre_mul_[c]) { - dmin = pre_mul_[c]; - } - - if (dmax < pre_mul_[c]) { - dmax = pre_mul_[c]; - } + dmin = rtengine::min(dmin, pre_mul_[c]); + dmax = rtengine::max(dmax, pre_mul_[c]); } for (c = 0; c < 4; c++) { int sat = this->get_white(c) - cblack_[c]; - scale_mul_[c] = (pre_mul_[c] /= dmax) * 65535.0 / sat; + pre_mul_[c] /= static_cast(dmax); + scale_mul_[c] = pre_mul_[c] * 65535.f / sat; } if (settings->verbose) { @@ -387,25 +383,30 @@ skip_block: asn[c] = 0; } - if (asn[c] > dmax) { + if (asn[c] > static_cast(dmax)) { dmax = asn[c]; } } for (c = 0; c < 4; c++) { - asn[c] /= dmax; + asn[c] /= static_cast(dmax); } printf("cam_mul:[%f %f %f %f], AsShotNeutral:[%f %f %f %f]\n", - cam_mul[0], cam_mul[1], cam_mul[2], cam_mul[3], asn[0], asn[1], asn[2], asn[3]); + static_cast(cam_mul[0]), static_cast(cam_mul[1]), + static_cast(cam_mul[2]), static_cast(cam_mul[3]), + static_cast(asn[0]), static_cast(asn[1]), static_cast(asn[2]), static_cast(asn[3])); printf("pre_mul:[%f %f %f %f], scale_mul:[%f %f %f %f], cblack:[%f %f %f %f]\n", - pre_mul_[0], pre_mul_[1], pre_mul_[2], pre_mul_[3], - scale_mul_[0], scale_mul_[1], scale_mul_[2], scale_mul_[3], - cblack_[0], cblack_[1], cblack_[2], cblack_[3]); + static_cast(pre_mul_[0]), static_cast(pre_mul_[1]), + static_cast(pre_mul_[2]), static_cast(pre_mul_[3]), + static_cast(scale_mul_[0]), static_cast(scale_mul_[1]), + static_cast(scale_mul_[2]), static_cast(scale_mul_[3]), + static_cast(cblack_[0]), static_cast(cblack_[1]), + static_cast(cblack_[2]), static_cast(cblack_[3])); printf("rgb_cam:[ [ %f %f %f], [%f %f %f], [%f %f %f] ]%s\n", - rgb_cam[0][0], rgb_cam[1][0], rgb_cam[2][0], - rgb_cam[0][1], rgb_cam[1][1], rgb_cam[2][1], - rgb_cam[0][2], rgb_cam[1][2], rgb_cam[2][2], + static_cast(rgb_cam[0][0]), static_cast(rgb_cam[1][0]), static_cast(rgb_cam[2][0]), + static_cast(rgb_cam[0][1]), static_cast(rgb_cam[1][1]), static_cast(rgb_cam[2][1]), + static_cast(rgb_cam[0][2]), static_cast(rgb_cam[1][2]), static_cast(rgb_cam[2][2]), (!this->isBayer()) ? " (not bayer)" : ""); } diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 003e018a4..fcc85f2c6 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -17,6 +17,7 @@ * along with RawTherapee. If not, see . */ #include +#include #include #include "camconst.h" @@ -98,7 +99,7 @@ void transLineFuji (const float* const red, const float* const green, const floa { // Fuji SuperCCD rotation + coarse rotation - int start = ABS(fw - i); + int start = std::abs(fw - i); int w = fw * 2 + 1; int h = (imheight - fw) * 2 + 1; int end = min(h + fw - i, w - fw + i); @@ -422,10 +423,6 @@ void transLineD1x (const float* const red, const float* const green, const float namespace rtengine { -#undef ABS - -#define ABS(a) ((a)<0?-(a):(a)) - RawImageSource::RawImageSource () : ImageSource() , W(0), H(0) @@ -615,7 +612,7 @@ float calculate_scale_mul(float scale_mul[4], const float pre_mul_[4], const flo { if (isMono || colors == 1) { for (int c = 0; c < 4; c++) { - scale_mul[c] = 65535.0 / (c_white[c] - c_black[c]); + scale_mul[c] = 65535.f / (c_white[c] - c_black[c]); } } else { float pre_mul[4]; @@ -631,7 +628,7 @@ float calculate_scale_mul(float scale_mul[4], const float pre_mul_[4], const flo float maxpremul = max(pre_mul[0], pre_mul[1], pre_mul[2], pre_mul[3]); for (int c = 0; c < 4; c++) { - scale_mul[c] = (pre_mul[c] / maxpremul) * 65535.0 / (c_white[c] - c_black[c]); + scale_mul[c] = (pre_mul[c] / maxpremul) * 65535.f / (c_white[c] - c_black[c]); } } @@ -670,7 +667,7 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); for (int i = 0; i < 4; ++i) { - c_white[i] = (ri->get_white(i) - cblacksom[i]) / raw.expos + cblacksom[i]; + c_white[i] = (ri->get_white(i) - cblacksom[i]) / static_cast(raw.expos) + cblacksom[i]; } float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); @@ -679,21 +676,21 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima bm = new_scale_mul[2] / scale_mul[2] * gain; //fprintf(stderr, "camera gain: %f, current wb gain: %f, diff in stops %f\n", camInitialGain, gain, log2(camInitialGain) - log2(gain)); } else { - // old scaling: used a fixed reference gain based on camera (as-shot) white balance - - // how much we need to scale each channel to get our new white balance - rm = refwb_red / rm; - gm = refwb_green / gm; - bm = refwb_blue / bm; - // normalize so larger multiplier becomes 1.0 - float minval = min(rm, gm, bm); - rm /= minval; - gm /= minval; - bm /= minval; - // multiply with reference gain, ie as-shot WB - rm *= camInitialGain; - gm *= camInitialGain; - bm *= camInitialGain; +// // old scaling: used a fixed reference gain based on camera (as-shot) white balance +// +// // how much we need to scale each channel to get our new white balance +// rm = refwb_red / rm; +// gm = refwb_green / gm; +// bm = refwb_blue / bm; +// // normalize so larger multiplier becomes 1.0 +// float minval = min(rm, gm, bm); +// rm /= minval; +// gm /= minval; +// bm /= minval; +// // multiply with reference gain, ie as-shot WB +// rm *= camInitialGain; +// gm *= camInitialGain; +// bm *= camInitialGain; } defGain = 0.0; @@ -872,13 +869,13 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima for (int i = 1; i < image->getHeight() - 1; i++) { for (int j = 2 - (a + i + 1) % 2; j < image->getWidth() - 1; j += 2) { // edge-adaptive interpolation - double dh = (ABS(image->r(i, j + 1) - image->r(i, j - 1)) + ABS(image->g(i, j + 1) - image->g(i, j - 1)) + ABS(image->b(i, j + 1) - image->b(i, j - 1))) / 1.0; - double dv = (ABS(image->r(i + 1, j) - image->r(i - 1, j)) + ABS(image->g(i + 1, j) - image->g(i - 1, j)) + ABS(image->b(i + 1, j) - image->b(i - 1, j))) / 1.0; - double eh = 1.0 / (1.0 + dh); - double ev = 1.0 / (1.0 + dv); - image->r(i, j) = (eh * (image->r(i, j + 1) + image->r(i, j - 1)) + ev * (image->r(i + 1, j) + image->r(i - 1, j))) / (2.0 * (eh + ev)); - image->g(i, j) = (eh * (image->g(i, j + 1) + image->g(i, j - 1)) + ev * (image->g(i + 1, j) + image->g(i - 1, j))) / (2.0 * (eh + ev)); - image->b(i, j) = (eh * (image->b(i, j + 1) + image->b(i, j - 1)) + ev * (image->b(i + 1, j) + image->b(i - 1, j))) / (2.0 * (eh + ev)); + float dh = (std::fabs(image->r(i, j + 1) - image->r(i, j - 1)) + std::fabs(image->g(i, j + 1) - image->g(i, j - 1)) + std::fabs(image->b(i, j + 1) - image->b(i, j - 1))); + float dv = (std::fabs(image->r(i + 1, j) - image->r(i - 1, j)) + std::fabs(image->g(i + 1, j) - image->g(i - 1, j)) + std::fabs(image->b(i + 1, j) - image->b(i - 1, j))); + float eh = 1.f / (1.f + dh); + float ev = 1.f / (1.f + dv); + image->r(i, j) = (eh * (image->r(i, j + 1) + image->r(i, j - 1)) + ev * (image->r(i + 1, j) + image->r(i - 1, j))) / (2.f * (eh + ev)); + image->g(i, j) = (eh * (image->g(i, j + 1) + image->g(i, j - 1)) + ev * (image->g(i + 1, j) + image->g(i - 1, j))) / (2.f * (eh + ev)); + image->b(i, j) = (eh * (image->b(i, j + 1) + image->b(i, j - 1)) + ev * (image->b(i + 1, j) + image->b(i - 1, j))) / (2.f * (eh + ev)); } // first pixel @@ -1542,7 +1539,7 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le } } - if(prepareDenoise && dirpyrdenoiseExpComp == INFINITY) { + if(prepareDenoise && dirpyrdenoiseExpComp == RT_INFINITY) { LUTu aehist; int aehistcompr; double clip = 0; @@ -3873,7 +3870,7 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) { if (fuji) { int fw = ri->get_FujiWidth(); - start = ABS(fw - x) + border; + start = std::abs(fw - x) + border; end = min(H + W - fw - x, fw + x) - border; } else { start = border; @@ -3914,7 +3911,7 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) if (fuji) { for (int i = 32; i < H - 32; i++) { int fw = ri->get_FujiWidth(); - int start = ABS(fw - i) + 32; + int start = std::abs(fw - i) + 32; int end = min(H + W - fw - i, fw + i) - 32; for (int j = start; j < end; j++) { diff --git a/rtengine/shmap.cc b/rtengine/shmap.cc index abdcc42a4..306e30bdd 100644 --- a/rtengine/shmap.cc +++ b/rtengine/shmap.cc @@ -27,6 +27,37 @@ #undef THREAD_PRIORITY_NORMAL #include "opthelper.h" +namespace { + +void fillLuminance(rtengine::Imagefloat* img, float** luminance, const float lumi[3], int W, int H) // fill with luminance +{ + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int i = 0; i < H; i++) + for (int j = 0; j < W; j++) { + luminance[i][j] = lumi[0] * std::max(img->r(i, j), 0.f) + lumi[1] * std::max(img->g(i, j), 0.f) + lumi[2] * std::max(img->b(i, j), 0.f); + } + +} + +void fillLuminanceL(float** L, float** luminance, int W, int H) // fill with luminance +{ + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int i = 0; i < H; i++) + for (int j = 0; j < W; j++) { + luminance[i][j] = std::max(L[i][j], 0.f) ;//we can put here some enhancements Gamma, compression data,... + } + +} + +} namespace rtengine { @@ -51,39 +82,13 @@ SHMap::~SHMap () delete [] map; } -void SHMap::fillLuminance( Imagefloat * img, float **luminance, double lumi[3] ) // fill with luminance -{ - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int i = 0; i < H; i++) - for (int j = 0; j < W; j++) { - luminance[i][j] = lumi[0] * std::max(img->r(i, j), 0.f) + lumi[1] * std::max(img->g(i, j), 0.f) + lumi[2] * std::max(img->b(i, j), 0.f); - } - -} - -void SHMap::fillLuminanceL( float ** L, float **luminance) // fill with luminance -{ - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int i = 0; i < H; i++) - for (int j = 0; j < W; j++) { - luminance[i][j] = std::max(L[i][j], 0.f) ;//we can put here some enhancements Gamma, compression data,... - } - -} - void SHMap::update (Imagefloat* img, double radius, double lumi[3], bool hq, int skip) { + const float lumif[3] = { static_cast(lumi[0]), static_cast(lumi[1]), static_cast(lumi[2]) }; + if (!hq) { - fillLuminance( img, map, lumi); + fillLuminance(img, map, lumif, W, H); const bool useBoxBlur = radius > 40.0; // boxblur is less prone to artifacts for large radi @@ -91,7 +96,7 @@ void SHMap::update (Imagefloat* img, double radius, double lumi[3], bool hq, int #pragma omp parallel if (!useBoxBlur) #endif { - gaussianBlur (map, map, W, H, radius, useBoxBlur); + gaussianBlur(map, map, W, H, radius, useBoxBlur); } } @@ -99,7 +104,7 @@ void SHMap::update (Imagefloat* img, double radius, double lumi[3], bool hq, int //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //experimental dirpyr shmap - float thresh = (100.f * radius); //1000; + float thresh = 100.0 * radius; //1000; // set up range function // calculate size of Lookup table. That's possible because from a value k for all i>=k rangefn[i] will be exp(-10) @@ -142,7 +147,7 @@ void SHMap::update (Imagefloat* img, double radius, double lumi[3], bool hq, int dirpyrlo[1] = buffer; } - fillLuminance( img, dirpyrlo[0], lumi); + fillLuminance(img, dirpyrlo[0], lumif, W, H); scale = 1; int level = 0; @@ -181,28 +186,18 @@ void SHMap::update (Imagefloat* img, double radius, double lumi[3], bool hq, int for (int j = 0; j < W; j++) { _val = map[i][j]; - if (_val < _min_f) { - _min_f = _val; - } + _min_f = std::min(_min_f, _val); + _max_f = std::max(_max_f, _val); - if (_val > _max_f) { - _max_f = _val; - } - - _avg += _val; + _avg += static_cast(_val); } #ifdef _OPENMP #pragma omp critical #endif { - if(_min_f < min_f ) { - min_f = _min_f; - } - - if(_max_f > max_f ) { - max_f = _max_f; - } + min_f = std::min(min_f, _min_f); + max_f = std::max(max_f, _max_f); } } _avg /= ((H) * (W)); @@ -214,7 +209,7 @@ void SHMap::updateL (float** L, double radius, bool hq, int skip) { if (!hq) { - fillLuminanceL( L, map); + fillLuminanceL(L, map, W, H); #ifdef _OPENMP #pragma omp parallel #endif @@ -228,7 +223,7 @@ void SHMap::updateL (float** L, double radius, bool hq, int skip) { //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //experimental dirpyr shmap - float thresh = (100.f * radius); //1000; + float thresh = 100.0 * radius; //1000; int levrad; // = 16; levrad = 2; //for retinex - otherwise levrad = 16 // set up range function @@ -274,7 +269,7 @@ void SHMap::updateL (float** L, double radius, bool hq, int skip) dirpyrlo[1] = buffer; } - fillLuminanceL( L, dirpyrlo[0]); + fillLuminanceL(L, dirpyrlo[0], W, H); scale = 1; int level = 0; @@ -313,28 +308,18 @@ void SHMap::updateL (float** L, double radius, bool hq, int skip) for (int j = 0; j < W; j++) { _val = map[i][j]; - if (_val < _min_f) { - _min_f = _val; - } + _min_f = std::min(_min_f, _val); + _max_f = std::max(_max_f, _val); - if (_val > _max_f) { - _max_f = _val; - } - - _avg += _val; + _avg += static_cast(_val); } #ifdef _OPENMP #pragma omp critical #endif { - if(_min_f < min_f ) { - min_f = _min_f; - } - - if(_max_f > max_f ) { - max_f = _max_f; - } + min_f = std::min(min_f, _min_f); + max_f = std::max(max_f, _max_f); } } _avg /= ((H) * (W)); diff --git a/rtengine/shmap.h b/rtengine/shmap.h index 68e352b23..b1b1e5eff 100644 --- a/rtengine/shmap.h +++ b/rtengine/shmap.h @@ -48,8 +48,6 @@ public: private: int W, H; - void fillLuminance( Imagefloat * img, float **luminance, double lumi[3] ); - void fillLuminanceL( float ** L, float **luminance ); void dirpyr_shmap(float ** data_fine, float ** data_coarse, int width, int height, const LUTf& rangefn, int level, int scale); }; diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 1c1e46a65..c50e23d4b 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -994,7 +994,7 @@ private: ipf.rgbProc (baseImg, labView, nullptr, curve1, curve2, curve, params.toneCurve.saturation, rCurve, gCurve, bCurve, satLimit, satLimitOpacity, ctColorCurve, ctOpacityCurve, opautili, clToningcurve, cl2Toningcurve, customToneCurve1, customToneCurve2, customToneCurvebw1, customToneCurvebw2, rrm, ggm, bbm, autor, autog, autob, expcomp, hlcompr, hlcomprthresh, dcpProf, as, histToneCurve, options.chunkSizeRGB, options.measure); if (settings->verbose) { - printf ("Output image / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", autor, autog, autob); + printf ("Output image / Auto B&W coefs: R=%.2f G=%.2f B=%.2f\n", static_cast(autor), static_cast(autog), static_cast(autob)); } // if clut was used and size of clut cache == 1 we free the memory used by the clutstore (default clut cache size = 1 for 32 bit OS) @@ -1162,10 +1162,10 @@ private: adap = 2000.; }//if no exif data or wrong else { - float E_V = fcomp + log2 ((fnum * fnum) / fspeed / (fiso / 100.f)); + double E_V = fcomp + log2 ((fnum * fnum) / fspeed / (fiso / 100.f)); E_V += params.toneCurve.expcomp;// exposure compensation in tonecurve ==> direct EV - E_V += log2 (params.raw.expos); // exposure raw white point ; log2 ==> linear to EV - adap = powf (2.f, E_V - 3.f); //cd / m2 + E_V += log2(params.raw.expos); // exposure raw white point ; log2 ==> linear to EV + adap = std::pow(2.0, E_V - 3.0); //cd / m2 } LUTf CAMBrightCurveJ; diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index edc378700..8e1dcfaf5 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -124,7 +124,7 @@ void CropWindow::initZoomSteps() zoomSteps.push_back(ZoomStep(" 8%", 1.0/12.0, 120, true)); char lbl[64]; for (int s = 100; s >= 11; --s) { - float z = 10./float(s); + float z = 10.f / s; sprintf(lbl, "% 2d%%", int(z * 100)); bool is_major = (s == s/10 * 10); zoomSteps.push_back(ZoomStep(lbl, z, s, is_major)); diff --git a/rtgui/defringe.cc b/rtgui/defringe.cc index cdec88edc..7aae8377a 100644 --- a/rtgui/defringe.cc +++ b/rtgui/defringe.cc @@ -37,7 +37,7 @@ Defringe::Defringe () : FoldableToolPanel(this, "defringe", M("TP_DEFRINGE_LABEL float R, G, B; for (int i = 0; i < 7; i++) { - float x = float(i) * (1.0f / 6.0); + float x = i / 6.f; Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); bottomMilestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) ); } diff --git a/rtgui/diagonalcurveeditorsubgroup.cc b/rtgui/diagonalcurveeditorsubgroup.cc index eed6c63d3..079a083ea 100644 --- a/rtgui/diagonalcurveeditorsubgroup.cc +++ b/rtgui/diagonalcurveeditorsubgroup.cc @@ -477,13 +477,13 @@ void DiagonalCurveEditorSubGroup::pipetteMouseOver(EditDataProvider *provider, i double pos[3]; shcSelector->getPositions(pos[0], pos[1], pos[2]); - if (pipetteVal >= pos[2]) { + if (static_cast(pipetteVal) >= pos[2]) { editedAdjuster = highlights; paramCurve->setActiveParam(4); - } else if(pipetteVal >= pos[1]) { + } else if(static_cast(pipetteVal) >= pos[1]) { editedAdjuster = lights; paramCurve->setActiveParam(5); - } else if(pipetteVal >= pos[0]) { + } else if(static_cast(pipetteVal) >= pos[0]) { editedAdjuster = darks; paramCurve->setActiveParam(6); } else { diff --git a/rtgui/dirpyrequalizer.cc b/rtgui/dirpyrequalizer.cc index fd0268efa..34aecf095 100644 --- a/rtgui/dirpyrequalizer.cc +++ b/rtgui/dirpyrequalizer.cc @@ -428,7 +428,7 @@ void DirPyrEqualizer::lumacontrastPlusPressed () { for (int i = 0; i < 6; i++) { - float inc = 0.05 * (6 - i); + double inc = 0.05 * (6 - i); multiplier[i]->setValue(multiplier[i]->getValue() + inc); adjusterChanged(multiplier[i], multiplier[i]->getValue()); } @@ -439,7 +439,7 @@ void DirPyrEqualizer::lumacontrastMinusPressed () { for (int i = 0; i < 6; i++) { - float inc = -0.05 * (6 - i); + double inc = -0.05 * (6 - i); multiplier[i]->setValue(multiplier[i]->getValue() + inc); adjusterChanged(multiplier[i], multiplier[i]->getValue()); } diff --git a/rtgui/gradient.cc b/rtgui/gradient.cc index 4f389e112..b46f8e1ca 100644 --- a/rtgui/gradient.cc +++ b/rtgui/gradient.cc @@ -164,7 +164,7 @@ void Gradient::updateGeometry(const int centerX, const int centerY, const double const auto decay = feather * rtengine::norm2 (imW, imH) / 200.0; rtengine::Coord origin (imW / 2 + centerX * imW / 200, imH / 2 + centerY * imH / 200); - const auto updateLine = [&](Geometry* geometry, const float radius, const float begin, const float end) + const auto updateLine = [&](Geometry* geometry, const double radius, const double begin, const double end) { const auto line = static_cast(geometry); line->begin = PolarCoord(radius, -degree + begin); @@ -173,7 +173,7 @@ void Gradient::updateGeometry(const int centerX, const int centerY, const double line->end += origin; }; - const auto updateLineWithDecay = [&](Geometry* geometry, const float radius, const float offSetAngle) + const auto updateLineWithDecay = [&](Geometry* geometry, const double radius, const double offSetAngle) { const auto line = static_cast(geometry); line->begin = PolarCoord (radius, -degree + 180.) + PolarCoord (decay, -degree + offSetAngle); diff --git a/rtgui/histogrampanel.cc b/rtgui/histogrampanel.cc index dd0cbde46..b8338e4e8 100644 --- a/rtgui/histogrampanel.cc +++ b/rtgui/histogrampanel.cc @@ -518,26 +518,26 @@ void HistogramRGBArea::updateBackBuffer (int r, int g, int b, const Glib::ustrin // Luma cc->set_source_rgb(1.0, 1.0, 1.0); if (options.histogramDrawMode < 2) { - cc->move_to(Lab_L * (winw - 3.*s) / 100.0 + 0.5*s, 0); - cc->line_to(Lab_L * (winw - 3.*s) / 100.0 + 0.5*s, winh - 0); + cc->move_to(static_cast(Lab_L) * (winw - 3. * s) / 100.0 + 0.5 * s, 0); + cc->line_to(static_cast(Lab_L) * (winw - 3. * s) / 100.0 + 0.5 * s, winh - 0); } else { - cc->move_to(HistogramScaling::log (100, Lab_L) * (winw - 1.) / 100.0 + 0.5*s, 0); - cc->line_to(HistogramScaling::log (100, Lab_L) * (winw - 1.) / 100.0 + 0.5*s, winh - 0); + cc->move_to(HistogramScaling::log(100, Lab_L) * (winw - 1.) / 100.0 + 0.5 * s, 0); + cc->line_to(HistogramScaling::log(100, Lab_L) * (winw - 1.) / 100.0 + 0.5 * s, winh - 0); } cc->stroke(); } if (needChroma) { // Chroma - float chromaval = sqrt(Lab_a * Lab_a + Lab_b * Lab_b) / 1.8; + double chromaval = sqrt(Lab_a * Lab_a + Lab_b * Lab_b) / 1.8; // float chromaval = sqrt(Lab_a*Lab_a + Lab_b*Lab_b); cc->set_source_rgb(0.9, 0.9, 0.0); if (options.histogramDrawMode < 2) { - cc->move_to(chromaval * (winw - 1.) / 100.0 + 0.5*s, 0); - cc->line_to(chromaval * (winw - 1.) / 100.0 + 0.5*s, winh - 0); + cc->move_to(chromaval * (winw - 1.) / 100.0 + 0.5 * s, 0); + cc->line_to(chromaval * (winw - 1.) / 100.0 + 0.5 * s, winh - 0); } else { - cc->move_to(HistogramScaling::log (100, chromaval) * (winw - 1.) / 100.0 + 0.5*s, 0); - cc->line_to(HistogramScaling::log (100, chromaval) * (winw - 1.) / 100.0 + 0.5*s, winh - 0); + cc->move_to(HistogramScaling::log(100, chromaval) * (winw - 1.) / 100.0 + 0.5 * s, 0); + cc->line_to(HistogramScaling::log(100, chromaval) * (winw - 1.) / 100.0 + 0.5 * s, winh - 0); } cc->stroke(); } @@ -989,7 +989,7 @@ void HistogramArea::drawCurve(Cairo::RefPtr &cr, cr->set_line_width(s); cr->move_to (0, vsize - 1); - scale = scale <= 0.f ? 0.001f : scale; // avoid division by zero and negative values + scale = scale <= 0.0 ? 0.001 : scale; // avoid division by zero and negative values for (int i = 0; i < 256; i++) { double val = data[i] * (double)vsize / scale; diff --git a/rtgui/hsvequalizer.cc b/rtgui/hsvequalizer.cc index ee3eb90a7..817ba1f4d 100644 --- a/rtgui/hsvequalizer.cc +++ b/rtgui/hsvequalizer.cc @@ -38,7 +38,7 @@ HSVEqualizer::HSVEqualizer () : FoldableToolPanel(this, "hsvequalizer", M("TP_HS // -0.1 rad < Hue < 1.6 rad for (int i = 0; i < 7; i++) { - float x = float(i) * (1.0f / 6.0); + float x = i / 6.0; Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); bottomMilestones.push_back( GradientMilestone(double(x), double(R), double(G), double(B)) ); } diff --git a/rtgui/labcurve.cc b/rtgui/labcurve.cc index 491b02c4c..5f4febc0a 100644 --- a/rtgui/labcurve.cc +++ b/rtgui/labcurve.cc @@ -203,7 +203,7 @@ LCurve::LCurve () : FoldableToolPanel(this, "labcurves", M("TP_LABCURVE_LABEL"), for (int i = 0; i < 7; i++) { float R, G, B; - float x = float(i) * (1.0f / 6.0); + float x = i / 6.0; Color::hsv2rgb01(x, 0.5f, 0.5f, R, G, B); milestones.emplace_back(x, R, G, B); } diff --git a/rtgui/labgrid.cc b/rtgui/labgrid.cc index 516dbb825..d8a22b1d9 100644 --- a/rtgui/labgrid.cc +++ b/rtgui/labgrid.cc @@ -209,8 +209,8 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) float x, y, z; int ii = i - cells/2; int jj = j - cells/2; - float a = step * (ii + 0.5); - float b = step * (jj + 0.5); + float a = step * (ii + 0.5f); + float b = step * (jj + 0.5f); Color::Lab2XYZ(25000.f, a, b, x, y, z); Color::xyz2srgb(x, y, z, R, G, B); cr->set_source_rgb(R / 65535.f, G / 65535.f, B / 65535.f); @@ -231,10 +231,10 @@ bool LabGridArea::on_draw(const ::Cairo::RefPtr &crf) // drawing the connection line cr->set_antialias(Cairo::ANTIALIAS_DEFAULT); float loa, hia, lob, hib; - loa = .5f * (width + width * low_a); - hia = .5f * (width + width * high_a); - lob = .5f * (height + height * low_b); - hib = .5f * (height + height * high_b); + loa = .5 * (width + width * low_a); + hia = .5 * (width + width * high_a); + lob = .5 * (height + height * low_b); + hib = .5 * (height + height * high_b); cr->set_line_width(2. * double(s)); cr->set_source_rgb(0.6, 0.6, 0.6); cr->move_to(loa, lob); @@ -319,8 +319,8 @@ bool LabGridArea::on_motion_notify_event(GdkEventMotion *event) int height = get_allocated_height() - 2 * inset * s - padding.get_top() - padding.get_bottom(); const float mouse_x = std::min(double(std::max(event->x - inset * s - padding.get_right(), 0.)), double(width)); const float mouse_y = std::min(double(std::max(get_allocated_height() - 1 - event->y - inset * s - padding.get_bottom(), 0.)), double(height)); - const float ma = (2.0 * mouse_x - width) / (float)width; - const float mb = (2.0 * mouse_y - height) / (float)height; + const float ma = (2.f * mouse_x - width) / width; + const float mb = (2.f * mouse_y - height) / height; if (isDragged) { if (litPoint == LOW) { low_a = ma; diff --git a/rtgui/lockablecolorpicker.cc b/rtgui/lockablecolorpicker.cc index 071847424..0a08bb945 100644 --- a/rtgui/lockablecolorpicker.cc +++ b/rtgui/lockablecolorpicker.cc @@ -37,7 +37,7 @@ void LockableColorPicker::updateBackBuffer () int newW, newH; // -------------------- setting some key constants --------------------- - constexpr float circlePadding = 3.f; // keep this value odd + constexpr double circlePadding = 3.0; // keep this value odd constexpr double opacity = 0.62; // --------------------------------------------------------------------- @@ -121,18 +121,18 @@ void LockableColorPicker::updateBackBuffer () bbcr->set_antialias (Cairo::ANTIALIAS_SUBPIXEL); bbcr->set_line_width (0.); - float center = (float)size / 2.f + circlePadding; + double center = static_cast(size) / 2.0 + circlePadding; // black background of the whole color picker bbcr->set_line_width (0.); bbcr->set_source_rgba (0., 0., 0., opacity); - bbcr->arc_negative (center, center, center, 0., (double)rtengine::RT_PI); + bbcr->arc_negative (center, center, center, 0., rtengine::RT_PI); bbcr->line_to (0, 2. * center + textHeight); - bbcr->arc_negative (2. * textPadding, 2. * center + textHeight, 2. * textPadding, (double)rtengine::RT_PI, (double)rtengine::RT_PI / 2.); + bbcr->arc_negative (2. * textPadding, 2. * center + textHeight, 2. * textPadding, rtengine::RT_PI, rtengine::RT_PI / 2.); bbcr->line_to (textWidth, 2. * center + textHeight + 2. * textPadding); - bbcr->arc_negative (textWidth, 2. * center + textHeight, 2. * textPadding, (double)rtengine::RT_PI / 2., 0.); + bbcr->arc_negative (textWidth, 2. * center + textHeight, 2. * textPadding, rtengine::RT_PI / 2., 0.); bbcr->line_to (textWidth + 2. * textPadding, 2. * center + 2. * textPadding); - bbcr->arc_negative (textWidth, 2. * center + 2. * textPadding, 2. * textPadding, 0., (double)rtengine::RT_PI * 1.5); + bbcr->arc_negative (textWidth, 2. * center + 2. * textPadding, 2. * textPadding, 0., rtengine::RT_PI * 1.5); bbcr->line_to (2. * center, 2. * center); bbcr->close_path(); bbcr->set_line_join (Cairo::LINE_JOIN_BEVEL); @@ -222,7 +222,7 @@ void LockableColorPicker::updateBackBuffer () bbcr->set_antialias(Cairo::ANTIALIAS_SUBPIXEL); - float center = (float)size / 2.f + circlePadding; + double center = static_cast(size) / 2. + circlePadding; // light grey circle around the color mark bbcr->arc (center, center, center - circlePadding / 2., 0., 2. * (double)rtengine::RT_PI); From 4790eb08b3f6440a7a487375aec2ba2735365157 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 10 Feb 2020 09:45:39 -0800 Subject: [PATCH 214/453] Epoch -> epoch --- AboutThisBuild.txt.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AboutThisBuild.txt.in b/AboutThisBuild.txt.in index d6454d8a0..06f628187 100644 --- a/AboutThisBuild.txt.in +++ b/AboutThisBuild.txt.in @@ -15,5 +15,5 @@ OpenMP support: ${OPTION_OMP} MMAP support: ${WITH_MYFILE_MMAP} Build OS: ${BUILDINFO_OS} Build date: ${BUILDINFO_DATE} ZULU -Build Epoch: ${BUILDINFO_EPOCH} +Build epoch: ${BUILDINFO_EPOCH} Build UUID: ${BUILDINFO_UUID} From b4c0bb3acbc6b2acead76b7ea8321d01e60415b6 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 10 Feb 2020 20:06:43 +0100 Subject: [PATCH 215/453] More double promote fixes --- rtengine/lcp.cc | 132 ++++++++++++++------------------------- rtengine/lcp.h | 2 - rtgui/mycurve.cc | 2 +- rtgui/mydiagonalcurve.cc | 16 ++--- rtgui/myflatcurve.cc | 12 ++-- rtgui/retinex.cc | 2 +- rtgui/rtscalable.cc | 2 +- rtgui/rtwindow.cc | 4 +- 8 files changed, 65 insertions(+), 107 deletions(-) diff --git a/rtengine/lcp.cc b/rtengine/lcp.cc index c80a126f5..1826101e7 100644 --- a/rtengine/lcp.cc +++ b/rtengine/lcp.cc @@ -42,7 +42,6 @@ class rtengine::LCPProfile::LCPPersModel public: LCPPersModel(); bool hasModeData(LCPCorrectionMode mode) const; - void print() const; float focLen; float focDist; @@ -82,27 +81,18 @@ bool rtengine::LCPModelCommon::empty() const && param[2] == 0.0f; } -void rtengine::LCPModelCommon::print() const -{ - std::printf("focLen %g/%g; imgCenter %g/%g; scale %g; err %g\n", foc_len_x, foc_len_y, img_center_x, img_center_y, scale_factor, mean_error); - std::printf("xy0 %g/%g fxy %g/%g\n", x0, y0, fx, fy); - std::printf("param: %g/%g/%g/%g/%g\n", param[0], param[1], param[2], param[3], param[4]); -} - // weighted merge two parameters void rtengine::LCPModelCommon::merge(const LCPModelCommon& a, const LCPModelCommon& b, float facA) { - const float facB = 1.0f - facA; - - foc_len_x = facA * a.foc_len_x + facB * b.foc_len_x; - foc_len_y = facA * a.foc_len_y + facB * b.foc_len_y; - img_center_x = facA * a.img_center_x + facB * b.img_center_x; - img_center_y = facA * a.img_center_y + facB * b.img_center_y; - scale_factor = facA * a.scale_factor + facB * b.scale_factor; - mean_error = facA * a.mean_error + facB * b.mean_error; + foc_len_x = rtengine::intp(facA, a.foc_len_x, b.foc_len_x); + foc_len_y = rtengine::intp(facA, a.foc_len_y, b.foc_len_y); + img_center_x = rtengine::intp(facA, a.img_center_x, b.img_center_x); + img_center_y = rtengine::intp(facA, a.img_center_y, b.img_center_y); + scale_factor = rtengine::intp(facA, a.scale_factor, b.scale_factor); + mean_error = rtengine::intp(facA, a.mean_error, b.mean_error); for (int i = 0; i < 5; ++i) { - param[i] = facA * a.param[i] + facB * b.param[i]; + param[i] = rtengine::intp(facA, a.param[i], b.param[i]); } const float param0Sqr = param[0] * param[0]; @@ -152,7 +142,6 @@ void rtengine::LCPModelCommon::prepareParams( rfx = 1.0f / fx; rfy = 1.0f / fy; - //std::printf("FW %i /X0 %g FH %i /Y0 %g %g\n",fullWidth,x0,fullHeight,y0, imgYCenter); } rtengine::LCPProfile::LCPPersModel::LCPPersModel() : @@ -188,35 +177,6 @@ bool rtengine::LCPProfile::LCPPersModel::hasModeData(LCPCorrectionMode mode) con return false; } -void rtengine::LCPProfile::LCPPersModel::print() const -{ - std::printf("--- PersModel focLen %g; focDist %g; aperture %g\n", focLen, focDist, aperture); - std::printf("Base:\n"); - base.print(); - - if (!chromRG.empty()) { - std::printf("ChromRG:\n"); - chromRG.print(); - } - - if (!chromG.empty()) { - std::printf("ChromG:\n"); - chromG.print(); - } - - if (!chromBG.empty()) { - std::printf("ChromBG:\n"); - chromBG.print(); - } - - if (!vignette.empty()) { - std::printf("Vignette:\n"); - vignette.print(); - } - - std::printf("\n"); -} - rtengine::LCPProfile::LCPProfile(const Glib::ustring& fname) : isFisheye(false), sensorFormatFactor(1.f), @@ -522,7 +482,7 @@ void rtengine::LCPProfile::calcParams( ) { // Mix in aperture const float facAperLow = (pHigh->aperture - aperture) / (pHigh->aperture - pLow->aperture); - facLow = focLenOnSpot ? facAperLow : (0.5 * facLow + 0.5 * facAperLow); + facLow = focLenOnSpot ? facAperLow : (0.5f * (facLow + facAperLow)); } else if ( mode != LCPCorrectionMode::VIGNETTE @@ -532,7 +492,7 @@ void rtengine::LCPProfile::calcParams( ) { // focus distance for all else (if focus distance is given) const float facDistLow = (std::log(pHigh->focDist) + euler - focusDistLog) / (std::log(pHigh->focDist) - std::log(pLow->focDist)); - facLow = focLenOnSpot ? facDistLow : (0.8 * facLow + 0.2 * facDistLow); + facLow = focLenOnSpot ? facDistLow : (0.8f * facLow + 0.2f * facDistLow); } switch (mode) { @@ -555,7 +515,16 @@ void rtengine::LCPProfile::calcParams( } if (settings->verbose) { - std::printf("LCP mode=%i, dist: %g found frames: Fno %g-%g; FocLen %g-%g; Dist %g-%g with weight %g\n", toUnderlying(mode), focusDist, pLow->aperture, pHigh->aperture, pLow->focLen, pHigh->focLen, pLow->focDist, pHigh->focDist, facLow); + std::printf("LCP mode=%i, dist: %g found frames: Fno %g-%g; FocLen %g-%g; Dist %g-%g with weight %g\n", + toUnderlying(mode), + static_cast(focusDist), + static_cast(pLow->aperture), + static_cast(pHigh->aperture), + static_cast(pLow->focLen), + static_cast(pHigh->focLen), + static_cast(pLow->focDist), + static_cast(pHigh->focDist), + static_cast(facLow)); } } else { if (settings->verbose) { @@ -564,15 +533,6 @@ void rtengine::LCPProfile::calcParams( } } -void rtengine::LCPProfile::print() const -{ - std::printf("=== Profile %s\n", profileName.c_str()); - std::printf("Frames: %i, RAW: %i; Fisheye: %i; Sensorformat: %f\n", persModelCount, isRaw, isFisheye, sensorFormatFactor); - - for (int pm = 0; pm < persModelCount; ++pm) { - aPersModel[pm]->print(); - } -} // from all frames not marked as bad already, take average and filter out frames with higher deviation than this if there are enough values int rtengine::LCPProfile::filterBadFrames(LCPCorrectionMode mode, double maxAvgDevFac, int minFramesLeft) @@ -649,7 +609,7 @@ int rtengine::LCPProfile::filterBadFrames(LCPCorrectionMode mode, double maxAvgD } if (settings->verbose && count) { - std::printf("Filtered %.1f%% frames for maxAvgDevFac %g leaving %i\n", filtered * 100.f / count, maxAvgDevFac, count - filtered); + std::printf("Filtered %.1f%% frames for maxAvgDevFac %g leaving %i\n", filtered * 100.0 / count, maxAvgDevFac, count - filtered); } } @@ -1007,7 +967,7 @@ rtengine::LCPMapper::LCPMapper( const bool mirrorX = (rot == 90 || rot == 180); const bool mirrorY = (rot == 180 || rot == 270); if (settings->verbose) { - std::printf("Vign: %i, fullWidth: %i/%i, focLen %g SwapXY: %i / MirX/Y %i / %i on rot:%i from %i\n",vignette, fullWidth, fullHeight, focalLength, swapXY, mirrorX, mirrorY, rot, rawRotationDeg); + std::printf("Vign: %i, fullWidth: %i/%i, focLen %g SwapXY: %i / MirX/Y %i / %i on rot:%i from %i\n",vignette, fullWidth, fullHeight, static_cast(focalLength), swapXY, mirrorX, mirrorY, rot, rawRotationDeg); } pProf->calcParams(vignette ? LCPCorrectionMode::VIGNETTE : LCPCorrectionMode::DISTORTION, focalLength, focusDist, aperture, &mc, nullptr, nullptr); @@ -1038,8 +998,8 @@ void rtengine::LCPMapper::correctDistortion(double &x, double &y, int cx, int cy if (isFisheye) { const double u = x * scale; const double v = y * scale; - const double u0 = mc.x0 * scale; - const double v0 = mc.y0 * scale; + const double u0 = static_cast(mc.x0) * scale; + const double v0 = static_cast(mc.y0) * scale; const double du = (u - u0); const double dv = (v - v0); const double fx = mc.fx; @@ -1059,22 +1019,22 @@ void rtengine::LCPMapper::correctDistortion(double &x, double &y, int cx, int cy } else { x *= scale; y *= scale; - const double x0 = mc.x0 * scale; - const double y0 = mc.y0 * scale; - const double xd = (x - x0) / mc.fx, yd = (y - y0) / mc.fy; + const double x0 = static_cast(mc.x0) * scale; + const double y0 = static_cast(mc.y0) * scale; + const double xd = (x - x0) / static_cast(mc.fx), yd = (y - y0) / static_cast(mc.fy); - const LCPModelCommon::Param aDist = mc.param; + const auto& aDist = mc.param; const double rsqr = xd * xd + yd * yd; - const double xfac = aDist[swapXY ? 3 : 4], yfac = aDist[swapXY ? 4 : 3]; + const double xfac = static_cast(aDist[swapXY ? 3 : 4]), yfac = static_cast(aDist[swapXY ? 4 : 3]); - const double commonFac = (((aDist[2] * rsqr + aDist[1]) * rsqr + aDist[0]) * rsqr + 1.) + const double commonFac = (((static_cast(aDist[2]) * rsqr + static_cast(aDist[1])) * rsqr + static_cast(aDist[0])) * rsqr + 1.) + 2. * (yfac * yd + xfac * xd); const double xnew = xd * commonFac + xfac * rsqr; const double ynew = yd * commonFac + yfac * rsqr; - x = xnew * mc.fx + x0; - y = ynew * mc.fy + y0; + x = xnew * static_cast(mc.fx) + x0; + y = ynew * static_cast(mc.fy) + y0; } x -= cx * scale; @@ -1094,20 +1054,20 @@ void rtengine::LCPMapper::correctCA(double& x, double& y, int cx, int cy, int ch // First calc the green channel like normal distortion // the other are just deviations from it - double xd = (x - chrom[1].x0) / chrom[1].fx; - double yd = (y - chrom[1].y0) / chrom[1].fy; + double xd = (x - static_cast(chrom[1].x0)) / static_cast(chrom[1].fx); + double yd = (y - static_cast(chrom[1].y0)) / static_cast(chrom[1].fy); // Green contains main distortion, just like base if (useCADist) { - const LCPModelCommon::Param aDist = chrom[1].param; - double rsqr = xd * xd + yd * yd; - double xfac = aDist[swapXY ? 3 : 4], yfac = aDist[swapXY ? 4 : 3]; + const auto& aDist = chrom[1].param; + double rsqr = xd * xd + yd * yd; + double xfac = static_cast(aDist[swapXY ? 3 : 4]), yfac = static_cast(aDist[swapXY ? 4 : 3]); - double commonFac = (((aDist[2] * rsqr + aDist[1]) * rsqr + aDist[0]) * rsqr + 1.) + double commonFac = (((static_cast(aDist[2]) * rsqr + static_cast(aDist[1])) * rsqr + static_cast(aDist[0])) * rsqr + 1.) + 2. * (yfac * yd + xfac * xd); - xgreen = xd * commonFac + aDist[4] * rsqr; - ygreen = yd * commonFac + aDist[3] * rsqr; + xgreen = xd * commonFac + static_cast(aDist[4]) * rsqr; + ygreen = yd * commonFac + static_cast(aDist[3]) * rsqr; } else { xgreen = xd; ygreen = yd; @@ -1115,20 +1075,20 @@ void rtengine::LCPMapper::correctCA(double& x, double& y, int cx, int cy, int ch if (channel == 1) { // green goes directly - x = xgreen * chrom[1].fx + chrom[1].x0; - y = ygreen * chrom[1].fy + chrom[1].y0; + x = xgreen * static_cast(chrom[1].fx) + static_cast(chrom[1].x0); + y = ygreen * static_cast(chrom[1].fy) + static_cast(chrom[1].y0); } else { // others are diffs from green xd = xgreen; yd = ygreen; const double rsqr = xd * xd + yd * yd; - const LCPModelCommon::Param aCA = chrom[channel].param; - const double xfac = aCA[swapXY ? 3 : 4], yfac = aCA[swapXY ? 4 : 3]; - const double commonSum = 1. + rsqr * (aCA[0] + rsqr * (aCA[1] + aCA[2] * rsqr)) + 2. * (yfac * yd + xfac * xd); + const auto& aCA = chrom[channel].param; + const double xfac = static_cast(aCA[swapXY ? 3 : 4]), yfac = static_cast(aCA[swapXY ? 4 : 3]); + const double commonSum = 1. + rsqr * (static_cast(aCA[0]) + rsqr * (static_cast(aCA[1]) + static_cast(aCA[2] )* rsqr)) + 2. * (yfac * yd + xfac * xd); - x = (chrom[channel].scale_factor * ( xd * commonSum + xfac * rsqr )) * chrom[channel].fx + chrom[channel].x0; - y = (chrom[channel].scale_factor * ( yd * commonSum + yfac * rsqr )) * chrom[channel].fy + chrom[channel].y0; + x = (static_cast(chrom[channel].scale_factor) * ( xd * commonSum + xfac * rsqr )) * static_cast(chrom[channel].fx) + static_cast(chrom[channel].x0); + y = (static_cast(chrom[channel].scale_factor) * ( yd * commonSum + yfac * rsqr )) * static_cast(chrom[channel].fy) + static_cast(chrom[channel].y0); } x -= cx; diff --git a/rtengine/lcp.h b/rtengine/lcp.h index 2e36fe113..4c1e09865 100644 --- a/rtengine/lcp.h +++ b/rtengine/lcp.h @@ -54,7 +54,6 @@ public: LCPModelCommon(); bool empty() const; // is it empty - void print() const; // printf all values void merge(const LCPModelCommon& a, const LCPModelCommon& b, float facA); void prepareParams( int fullWidth, @@ -106,7 +105,6 @@ public: LCPModelCommon *pCorr3 ) const; // Interpolates between the persModels frames - void print() const; //private: // Common data diff --git a/rtgui/mycurve.cc b/rtgui/mycurve.cc index 7401570c8..d460713fb 100644 --- a/rtgui/mycurve.cc +++ b/rtgui/mycurve.cc @@ -183,7 +183,7 @@ float MyCurve::getVal(LUTf &curve, int x) if (size_t(graphW) == curve.getSize()) { return curve[x]; } else { - return curve.getVal01(float(x) / graphW); + return curve.getVal01(x / graphW); } } diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index abd339ce0..ac7976b7e 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -358,14 +358,14 @@ void MyDiagonalCurve::draw (int handle) // draw upper and lower bounds if (curve.type == DCT_Parametric && activeParam > 0 && lpoint.getUpperBound() > 1 && upoint.getUpperBound() > 1) { cr->set_source_rgba (1.0, 1.0, 1.0, 0.1); - cr->move_to (graphX, getVal(upoint, 0) * -graphH + graphY); + cr->move_to (graphX, static_cast(getVal(upoint, 0)) * -graphH + graphY); for (int i = 1; i < graphW - 2; ++i) { - cr->line_to ((double)i + graphX, getVal(upoint, i) * -graphH + graphY); + cr->line_to ((double)i + graphX, static_cast(getVal(upoint, i)) * -graphH + graphY); } for (int i = graphW - 3; i >= 0; --i) { - cr->line_to ((double)i + graphX, getVal(lpoint, i) * -graphH + graphY); + cr->line_to ((double)i + graphX, static_cast(getVal(lpoint, i)) * -graphH + graphY); } cr->fill (); @@ -390,21 +390,21 @@ void MyDiagonalCurve::draw (int handle) if (n > 1) { if (pipetteR > -1.f) { cr->set_source_rgba (1., 0., 0., 0.5); // WARNING: assuming that red values are stored in pipetteR, which might not be the case! - cr->move_to (graphX + graphW*pipetteR, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteR), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteG > -1.f) { cr->set_source_rgba (0., 1., 0., 0.5); // WARNING: assuming that green values are stored in pipetteG, which might not be the case! - cr->move_to (graphX + graphW*pipetteG, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteG), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteB > -1.f) { cr->set_source_rgba (0., 0., 1., 0.5); // WARNING: assuming that blue values are stored in pipetteB, which might not be the case! - cr->move_to (graphX + graphW*pipetteB, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteB), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } @@ -414,7 +414,7 @@ void MyDiagonalCurve::draw (int handle) cr->set_line_width (2. * s); c = style->get_color (state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (graphX + graphW*pipetteVal, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteVal), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); cr->set_line_width (1. * s); @@ -460,7 +460,7 @@ void MyDiagonalCurve::draw (int handle) // draw curve cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (graphX, getVal(point, 0) * -graphH + graphY); + cr->move_to (graphX, static_cast(getVal(point, 0)) * -graphH + graphY); for (int i = 1; i < graphW; ++i) { cr->line_to ((double)i + graphX, (double)getVal(point, i) * -graphH + graphY); diff --git a/rtgui/myflatcurve.cc b/rtgui/myflatcurve.cc index 362d34f35..da993987c 100644 --- a/rtgui/myflatcurve.cc +++ b/rtgui/myflatcurve.cc @@ -233,21 +233,21 @@ void MyFlatCurve::draw () if (n > 1) { if (pipetteR > -1.f) { cr->set_source_rgba (1., 0., 0., 0.5); // WARNING: assuming that red values are stored in pipetteR, which might not be the case! - cr->move_to (graphX + graphW*pipetteR, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteR), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteG > -1.f) { cr->set_source_rgba (0., 1., 0., 0.5); // WARNING: assuming that green values are stored in pipetteG, which might not be the case! - cr->move_to (graphX + graphW*pipetteG, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteG), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } if (pipetteB > -1.f) { cr->set_source_rgba (0., 0., 1., 0.5); // WARNING: assuming that blue values are stored in pipetteB, which might not be the case! - cr->move_to (graphX + graphW*pipetteB, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteB), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); } @@ -257,7 +257,7 @@ void MyFlatCurve::draw () cr->set_line_width (2. * s); c = style->get_color (state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (graphX + graphW*pipetteVal, graphY + 1. * s); + cr->move_to (graphX + graphW * static_cast(pipetteVal), graphY + 1. * s); cr->rel_line_to (0, -graphH - 1. * s); cr->stroke (); cr->set_line_width (1. * s); @@ -437,10 +437,10 @@ void MyFlatCurve::draw () // draw curve c = style->get_color(state); cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); - cr->move_to (graphX, getVal(point, 0) * -graphH + graphY); + cr->move_to (graphX, static_cast(getVal(point, 0)) * -graphH + graphY); for (int i = 1; i < graphW; ++i) { - cr->line_to ((double)i + graphX, (double)getVal(point, i) * -graphH + graphY); + cr->line_to ((double)i + graphX, static_cast(getVal(point, i)) * -graphH + graphY); } cr->stroke (); diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index c78be375f..7fdea0319 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -278,7 +278,7 @@ Retinex::Retinex () : FoldableToolPanel (this, "retinex", M ("TP_RETINEX_LABEL") for (int i = 0; i < 7; i++) { float R, G, B; - float x = float (i) * (1.0f / 6.0); + float x = i / 6.0; Color::hsv2rgb01 (x, 0.5f, 0.5f, R, G, B); milestones.push_back ( GradientMilestone (double (x), double (R), double (G), double (B)) ); } diff --git a/rtgui/rtscalable.cc b/rtgui/rtscalable.cc index a48a95fd2..78202326a 100644 --- a/rtgui/rtscalable.cc +++ b/rtgui/rtscalable.cc @@ -68,7 +68,7 @@ double RTScalable::getDPI () double RTScalable::getTweakedDPI () { - return dpi * fontScale; + return dpi * static_cast(fontScale); } int RTScalable::getScale () diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 514685a16..8cfeb8ec0 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -179,7 +179,7 @@ RTWindow::RTWindow () fontScale = options.fontSize / (float)RTScalable::baseFontSize; } if (rtengine::settings->verbose) { - printf("\"Non-Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", options.fontSize, (int)initialGdkScale, fontScale); + printf("\"Non-Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", options.fontSize, (int)initialGdkScale, static_cast(fontScale)); } } else { Glib::RefPtr style = Gtk::StyleContext::create(); @@ -209,7 +209,7 @@ RTWindow::RTWindow () if ((int)initialGdkScale > 1 || pt != RTScalable::baseFontSize) { css = Glib::ustring::compose ("* { font-size: %1pt}", pt * (int)initialGdkScale); if (rtengine::settings->verbose) { - printf("\"Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", pt, (int)initialGdkScale, fontScale); + printf("\"Default\" font size(%d) * scale(%d) / fontScale(%.3f)\n", pt, (int)initialGdkScale, static_cast(fontScale)); } } } From a65b6e6edb3e69d3c23d03810aa61907c4746dba Mon Sep 17 00:00:00 2001 From: Benitoite Date: Tue, 11 Feb 2020 06:52:27 -0800 Subject: [PATCH 216/453] Remove COMMAND_ECHO STDOUTs --- UpdateInfo.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 9aa211d96..1c31cf44f 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -64,10 +64,10 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() - execute_process(COMMAND uname -mrs COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND date -Ru COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND date +%s COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" COMMAND_ECHO STDOUT OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND uname -mrs OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND date -Ru OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND date +%s OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE) message(STATUS "Git checkout information:") message(STATUS " Commit description: ${GIT_DESCRIBE}") From 1c0033f798498803a80661305b35b075edac0fad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Wed, 12 Feb 2020 09:04:55 +0100 Subject: [PATCH 217/453] Collapse all tools on first start (fixes #4776) I had to remove the `isVisible` check in `MyExpander::set_expanded()` because it would trigger in Wavelet and Retinex for unknown reasons. One inner expander in CIECAM isn't covered by the tool states, and the way they are distributed to Wavelet and Retinex won't allow for further tool states in those tools. We should consider to move the tool states for sub-tools (like Wavelet, Retinex, and CIECAM) to seperate keys in the `options` file. --- rtgui/guiutils.cc | 6 --- rtgui/retinex.cc | 10 +++- rtgui/retinex.h | 41 ++++++++-------- rtgui/toolpanelcoord.cc | 42 ++++++++++------ rtgui/wavelet.cc | 36 +++++++++----- rtgui/wavelet.h | 105 ++++++++++++++++++++-------------------- 6 files changed, 133 insertions(+), 107 deletions(-) diff --git a/rtgui/guiutils.cc b/rtgui/guiutils.cc index 9a4e71ab4..d759751c3 100644 --- a/rtgui/guiutils.cc +++ b/rtgui/guiutils.cc @@ -826,12 +826,6 @@ void MyExpander::set_expanded( bool expanded ) return; } - bool isVisible = expBox->is_visible(); - - if (isVisible == expanded) { - return; - } - if (!useEnabled) { if (expanded ) { statusImage->set(openedImage->get_surface()); diff --git a/rtgui/retinex.cc b/rtgui/retinex.cc index 7fdea0319..2fdd8f319 100644 --- a/rtgui/retinex.cc +++ b/rtgui/retinex.cc @@ -659,10 +659,16 @@ void Retinex::writeOptions (std::vector &tpOpen) tpOpen.push_back (expsettings->get_expanded ()); } -void Retinex::updateToolState (std::vector &tpOpen) +void Retinex::updateToolState(const std::vector& tpOpen) { + if (tpOpen.empty()) { + expsettings->set_expanded(false); + + return; + } + if (tpOpen.size() >= 10) { - expsettings->set_expanded (tpOpen.at (9)); + expsettings->set_expanded(tpOpen[9]); } } diff --git a/rtgui/retinex.h b/rtgui/retinex.h index ff524f854..dea65daab 100644 --- a/rtgui/retinex.h +++ b/rtgui/retinex.h @@ -104,32 +104,32 @@ protected: sigc::connection medianmapConn; public: - Retinex (); - ~Retinex () override; + Retinex(); + ~Retinex() override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; - void setBatchMode (bool batchMode) override; - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; - void trimValues (rtengine::procparams::ProcParams* pp) override; - void adjusterChanged (Adjuster* a, double newval) override; - void autoOpenCurve () override; - void medianmapChanged (); - void minmaxChanged (double cdma, double cdmin, double mini, double maxi, double Tmean, double Tsigma, double Tmin, double Tmax) override; - void updateLabel (); - void updateTrans (); - void neutral_pressed (); + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode(bool batchMode) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void trimValues(rtengine::procparams::ProcParams* pp) override; + void adjusterChanged(Adjuster* a, double newval) override; + void autoOpenCurve() override; + void medianmapChanged(); + void minmaxChanged(double cdma, double cdmin, double mini, double maxi, double Tmean, double Tsigma, double Tmin, double Tmax) override; + void updateLabel(); + void updateTrans(); + void neutral_pressed(); - void enabledChanged () override; - void curveChanged (CurveEditor* ce) override; + void enabledChanged() override; + void curveChanged(CurveEditor* ce) override; void retinexMethodChanged(); void mapMethodChanged(); void viewMethodChanged(); void retinexColorSpaceChanged(); void gammaretinexChanged(); void ColorSpaceUpdateUI(); - void writeOptions (std::vector &tpOpen); - void updateToolState (std::vector &tpOpen); + void writeOptions(std::vector &tpOpen); + void updateToolState(const std::vector& tpOpen); void setAdjusterBehavior (bool strAdd, bool neighAdd, bool limdAdd, bool offsAdd, bool vartAdd, bool gamAdd, bool slopeAdd); void updateCurveBackgroundHistogram( const LUTu& histToneCurve, @@ -144,9 +144,8 @@ public: const LUTu& histLRETI ); - void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; + void colorForValue(double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; private: - void foldAllButMe (GdkEventButton* event, MyExpander *expander); - + void foldAllButMe(GdkEventButton* event, MyExpander *expander); }; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 57f61a09c..00ad96328 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -632,40 +632,52 @@ void ToolPanelCoordinator::closeImage () void ToolPanelCoordinator::closeAllTools() { - - for (size_t i = 0; i < options.tpOpen.size(); i++) + for (size_t i = 0; i < options.tpOpen.size(); ++i) { if (i < expList.size()) { - expList.at (i)->set_expanded (false); + expList[i]->set_expanded(false); } + } } void ToolPanelCoordinator::openAllTools() { - - for (size_t i = 0; i < options.tpOpen.size(); i++) + for (size_t i = 0; i < options.tpOpen.size(); ++i) { if (i < expList.size()) { - expList.at (i)->set_expanded (true); + expList[i]->set_expanded(true); } + } } void ToolPanelCoordinator::updateToolState() { - - for (size_t i = 0; i < options.tpOpen.size(); i++) - if (i < expList.size()) { - expList.at (i)->set_expanded (options.tpOpen.at (i)); + if (options.tpOpen.empty()) { + for (auto expander : expList) { + expander->set_expanded(false); } + wavelet->updateToolState({}); + retinex->updateToolState({}); + + return; + } + + for (size_t i = 0; i < options.tpOpen.size(); ++i) { + if (i < expList.size()) { + expList[i]->set_expanded(options.tpOpen[i]); + } + } + if (options.tpOpen.size() > expList.size()) { - size_t sizeWavelet = options.tpOpen.size() - expList.size(); + const size_t sizeWavelet = options.tpOpen.size() - expList.size(); + std::vector temp; - for (size_t i = 0; i < sizeWavelet; i++) { - temp.push_back (options.tpOpen.at (i + expList.size())); + for (size_t i = 0; i < sizeWavelet; ++i) { + temp.push_back(options.tpOpen[i + expList.size()]); } - wavelet->updateToolState (temp); - retinex->updateToolState (temp); + wavelet->updateToolState(temp); + retinex->updateToolState(temp); } } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 3981457e6..a2642dad7 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -3030,18 +3030,32 @@ void Wavelet::writeOptions(std::vector &tpOpen) tpOpen.push_back (expfinal->get_expanded ()); } -void Wavelet::updateToolState(std::vector &tpOpen) +void Wavelet::updateToolState(const std::vector& tpOpen) { - if(tpOpen.size() >= 9) { - expsettings->set_expanded(tpOpen.at(0)); - expcontrast->set_expanded(tpOpen.at(1)); - expchroma->set_expanded(tpOpen.at(2)); - exptoning->set_expanded(tpOpen.at(3)); - expnoise->set_expanded(tpOpen.at(4)); - expedge->set_expanded(tpOpen.at(5)); - expgamut->set_expanded(tpOpen.at(6)); - expresid->set_expanded(tpOpen.at(7)); - expfinal->set_expanded(tpOpen.at(8)); + if (tpOpen.empty()) { + expsettings->set_expanded(false); + expcontrast->set_expanded(false); + expchroma->set_expanded(false); + exptoning->set_expanded(false); + expnoise->set_expanded(false); + expedge->set_expanded(false); + expgamut->set_expanded(false); + expresid->set_expanded(false); + expfinal->set_expanded(false); + + return; + } + + if (tpOpen.size() >= 9) { + expsettings->set_expanded(tpOpen[0]); + expcontrast->set_expanded(tpOpen[1]); + expchroma->set_expanded(tpOpen[2]); + exptoning->set_expanded(tpOpen[3]); + expnoise->set_expanded(tpOpen[4]); + expedge->set_expanded(tpOpen[5]); + expgamut->set_expanded(tpOpen[6]); + expresid->set_expanded(tpOpen[7]); + expfinal->set_expanded(tpOpen[8]); } } diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 6551b58d4..d01e52749 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -20,12 +20,13 @@ #pragma once #include + #include "adjuster.h" -#include "toolpanel.h" -#include "curvelistener.h" -#include "thresholdadjuster.h" #include "colorprovider.h" +#include "curvelistener.h" #include "guiutils.h" +#include "thresholdadjuster.h" +#include "toolpanel.h" class CurveEditor; class CurveEditorGroup; @@ -43,21 +44,21 @@ class Wavelet final : public FoldableToolPanel { public: - Wavelet (); - ~Wavelet () override; + Wavelet(); + ~Wavelet() override; - bool wavComputed_ (); + bool wavComputed_(); void adjusterChanged(Adjuster* a, double newval) override; - void autoOpenCurve () override; - void curveChanged (CurveEditor* ce) override; - void read (const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; - void setAdjusterBehavior (bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); - void setBatchMode (bool batchMode) override; - void setDefaults (const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; - void setEditProvider (EditDataProvider *provider) override; - void updateToolState (std::vector &tpOpen); - void write (rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; - void writeOptions (std::vector &tpOpen); + void autoOpenCurve() override; + void curveChanged(CurveEditor* ce) override; + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void setAdjusterBehavior(bool multiplieradd, bool thresholdadd, bool threshold2add, bool thresadd, bool chroadd, bool chromaadd, bool contrastadd, bool skinadd, bool reschroadd, bool tmrsadd, bool resconadd, bool resconHadd, bool thradd, bool thrHadd, bool skyadd, bool edgradadd, bool edgvaladd, bool strengthadd, bool gammaadd, bool edgedetectadd, bool edgedetectthradd, bool edgedetectthr2add); + void setBatchMode(bool batchMode) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void setEditProvider(EditDataProvider *provider) override; + void updateToolState(const std::vector& tpOpen); + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void writeOptions(std::vector &tpOpen); void adjusterChanged(ThresholdAdjuster* a, double newBottom, double newTop) override; void adjusterChanged(ThresholdAdjuster* a, double newBottomLeft, double newTopLeft, double newBottomRight, double newTopRight) override; @@ -66,38 +67,38 @@ public: void adjusterChanged2(ThresholdAdjuster* a, int newBottomL, int newTopL, int newBottomR, int newTopR) override; private: - void foldAllButMe (GdkEventButton* event, MyExpander *expander); + void foldAllButMe(GdkEventButton* event, MyExpander *expander); - void colorForValue (double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; - void BAmethodChanged (); - void NPmethodChanged (); - void BackmethodChanged (); - void CHSLmethodChanged (); - void CHmethodChanged (); - void CLmethodChanged (); - void DirmethodChanged (); - void EDmethodChanged (); - void HSmethodChanged (); - void LmethodChanged (); - void MedgreinfChanged (); - void TMmethodChanged (); - void TilesmethodChanged (); - void avoidToggled (); - void cbenabToggled (); - void contrastMinusPressed (); - void contrastPlusPressed (); - void daubcoeffmethodChanged (); - void enabledChanged () override; - void linkedgToggled (); - void lipstToggled (); - void medianToggled (); - void medianlevToggled (); - void neutralPressed (); - void neutral_pressed (); - void neutralchPressed (); - void tmrToggled (); + void colorForValue(double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; + void BAmethodChanged(); + void NPmethodChanged(); + void BackmethodChanged(); + void CHSLmethodChanged(); + void CHmethodChanged(); + void CLmethodChanged(); + void DirmethodChanged(); + void EDmethodChanged(); + void HSmethodChanged(); + void LmethodChanged(); + void MedgreinfChanged(); + void TMmethodChanged(); + void TilesmethodChanged(); + void avoidToggled(); + void cbenabToggled(); + void contrastMinusPressed(); + void contrastPlusPressed(); + void daubcoeffmethodChanged(); + void enabledChanged() override; + void linkedgToggled(); + void lipstToggled(); + void medianToggled(); + void medianlevToggled(); + void neutralPressed(); + void neutral_pressed(); + void neutralchPressed(); + void tmrToggled(); void updatewavLabel (); - void wavChanged (double nlevel) override; + void wavChanged(double nlevel) override; void HSmethodUpdateUI(); void CHmethodUpdateUI(); @@ -113,13 +114,13 @@ private: // void MedgreinfUpdateUI(); // void DirmethodUpdateUI(); // void LmethodUpdateUI(); - void adjusterUpdateUI (Adjuster* a); - void enabledUpdateUI (); - void medianlevUpdateUI (); - void cbenabUpdateUI (); - void lipstUpdateUI (); + void adjusterUpdateUI(Adjuster* a); + void enabledUpdateUI(); + void medianlevUpdateUI(); + void cbenabUpdateUI(); + void lipstUpdateUI(); - void enableToggled(MyExpander *expander); + void enableToggled(MyExpander* expander); CurveEditorGroup* const curveEditorG; From 562b19bb5cf1d0d2cc99341bccf8f5fdad38ca3b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 12 Feb 2020 21:08:03 +0100 Subject: [PATCH 218/453] Silence -Wunused-macros warning in dcraw.cc, #3558 --- rtengine/dcraw.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 537bf1334..0858bdaaa 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -1,6 +1,7 @@ #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wsign-compare" +#pragma GCC diagnostic ignored "-Wunused-macros" #if (__GNUC__ >= 6) #pragma GCC diagnostic ignored "-Wmisleading-indentation" #endif From 30317f41332ee4a4a4b0924a5838915993bbdc4f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 12 Feb 2020 23:38:07 +0100 Subject: [PATCH 219/453] use std::fabs, hopefully fixes #5651 --- rtgui/cropwindow.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/cropwindow.cc b/rtgui/cropwindow.cc index 8e1dcfaf5..d87876cec 100644 --- a/rtgui/cropwindow.cc +++ b/rtgui/cropwindow.cc @@ -295,7 +295,7 @@ void CropWindow::flawnOver (bool isFlawnOver) void CropWindow::scroll (int state, GdkScrollDirection direction, int x, int y, double deltaX, double deltaY) { double delta = 0.0; - if (abs(deltaX) > abs(deltaY)) { + if (std::fabs(deltaX) > std::fabs(deltaY)) { delta = deltaX; } else { delta = deltaY; @@ -304,7 +304,7 @@ void CropWindow::scroll (int state, GdkScrollDirection direction, int x, int y, if (direction == GDK_SCROLL_SMOOTH) { scrollAccum += delta; //Only change zoom level if we've accumulated +/- 1.0 of deltas. This conditional handles the previous delta=0.0 case - if (abs(scrollAccum) < 1.0) { + if (std::fabs(scrollAccum) < 1.0) { return; } } From 06be849a31bd091b80e181254dd33f4608af5263 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 13 Feb 2020 16:07:30 +0100 Subject: [PATCH 220/453] Finally eliminate aehistograms cache folder, #4904 --- rtgui/cachemanager.cc | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/rtgui/cachemanager.cc b/rtgui/cachemanager.cc index c37964e23..93dafc1ba 100644 --- a/rtgui/cachemanager.cc +++ b/rtgui/cachemanager.cc @@ -39,7 +39,7 @@ namespace { constexpr int cacheDirMode = 0777; -constexpr const char* cacheDirs[] = { "profiles", "images", "aehistograms", "embprofiles", "data" }; +constexpr const char* cacheDirs[] = { "profiles", "images", "embprofiles", "data" }; } @@ -59,9 +59,7 @@ void CacheManager::init () auto error = g_mkdir_with_parents (baseDir.c_str(), cacheDirMode); for (const auto& cacheDir : cacheDirs) { - if (strncmp(cacheDir, "aehistograms", 12)) { // don't create aehistograms folder. - error |= g_mkdir_with_parents (Glib::build_filename (baseDir, cacheDir).c_str(), cacheDirMode); - } + error |= g_mkdir_with_parents (Glib::build_filename (baseDir, cacheDir).c_str(), cacheDirMode); } if (error != 0 && rtengine::settings->verbose) { @@ -187,7 +185,6 @@ void CacheManager::renameEntry (const std::string& oldfilename, const std::strin auto error = g_rename (getCacheFileName ("profiles", oldfilename, paramFileExtension, oldmd5).c_str (), getCacheFileName ("profiles", newfilename, paramFileExtension, newmd5).c_str ()); error |= g_rename (getCacheFileName ("images", oldfilename, ".rtti", oldmd5).c_str (), getCacheFileName ("images", newfilename, ".rtti", newmd5).c_str ()); - error |= g_rename (getCacheFileName ("aehistograms", oldfilename, "", oldmd5).c_str (), getCacheFileName ("aehistograms", newfilename, "", newmd5).c_str ()); error |= g_rename (getCacheFileName ("embprofiles", oldfilename, ".icc", oldmd5).c_str (), getCacheFileName ("embprofiles", newfilename, ".icc", newmd5).c_str ()); error |= g_rename (getCacheFileName ("data", oldfilename, ".txt", oldmd5).c_str (), getCacheFileName ("data", newfilename, ".txt", newmd5).c_str ()); @@ -241,7 +238,6 @@ void CacheManager::clearImages () const deleteDir ("data"); deleteDir ("images"); - deleteDir ("aehistograms"); deleteDir ("embprofiles"); } @@ -277,7 +273,6 @@ void CacheManager::deleteFiles (const Glib::ustring& fname, const std::string& m } auto error = g_remove (getCacheFileName ("images", fname, ".rtti", md5).c_str ()); - error |= g_remove (getCacheFileName ("aehistograms", fname, "", md5).c_str ()); error |= g_remove (getCacheFileName ("embprofiles", fname, ".icc", md5).c_str ()); if (purgeData) { From 67ca8e2c19af3896ab065a325fb4f3f66bd09ada Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 13 Feb 2020 16:34:45 +0100 Subject: [PATCH 221/453] further aehistograms cleanup --- rtengine/rtthumbnail.cc | 38 -------------------------------------- rtengine/rtthumbnail.h | 4 ---- rtgui/thumbnail.cc | 9 --------- 3 files changed, 51 deletions(-) diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index c956b9032..4507f2b40 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -2253,44 +2253,6 @@ bool Thumbnail::writeEmbProfile (const Glib::ustring& fname) return false; } -bool Thumbnail::readAEHistogram (const Glib::ustring& fname) -{ - - FILE* f = g_fopen(fname.c_str(), "rb"); - - if (!f) { - aeHistogram.reset(); - } else { - aeHistogram(65536 >> aeHistCompression); - const size_t histoBytes = (65536 >> aeHistCompression) * sizeof(aeHistogram[0]); - const size_t bytesRead = fread(&aeHistogram[0], 1, histoBytes, f); - fclose (f); - if (bytesRead != histoBytes) { - aeHistogram.reset(); - return false; - } - return true; - } - - return false; -} - -bool Thumbnail::writeAEHistogram (const Glib::ustring& fname) -{ - - if (aeHistogram) { - FILE* f = g_fopen (fname.c_str (), "wb"); - - if (f) { - fwrite (&aeHistogram[0], 1, (65536 >> aeHistCompression)*sizeof (aeHistogram[0]), f); - fclose (f); - return true; - } - } - - return false; -} - unsigned char* Thumbnail::getImage8Data() { if (thumbImg && thumbImg->getType() == rtengine::sImage8) { diff --git a/rtengine/rtthumbnail.h b/rtengine/rtthumbnail.h index c8d657a62..ccca1c582 100644 --- a/rtengine/rtthumbnail.h +++ b/rtengine/rtthumbnail.h @@ -113,10 +113,6 @@ public: bool readEmbProfile (const Glib::ustring& fname); bool writeEmbProfile (const Glib::ustring& fname); - bool readAEHistogram (const Glib::ustring& fname); - bool writeAEHistogram (const Glib::ustring& fname); - - bool isAeValid() { return aeValid; }; unsigned char* getImage8Data(); // accessor to the 8bit image if it is one, which should be the case for the "Inspector" mode. // Hombre: ... let's hope that proper template can make this cleaner diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 5295b9d61..87bc730eb 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -887,11 +887,6 @@ void Thumbnail::_loadThumbnail(bool firstTrial) } if ( cfs.thumbImgType == CacheImageData::FULL_THUMBNAIL ) { - if(!tpp->isAeValid()) { - // load aehistogram - tpp->readAEHistogram (getCacheFileName ("aehistograms", "")); - } - // load embedded profile tpp->readEmbProfile (getCacheFileName ("embprofiles", ".icc")); @@ -937,10 +932,6 @@ void Thumbnail::_saveThumbnail () // save thumbnail image tpp->writeImage (getCacheFileName ("images", "")); - if(!tpp->isAeValid()) { - // save aehistogram - tpp->writeAEHistogram (getCacheFileName ("aehistograms", "")); - } // save embedded profile tpp->writeEmbProfile (getCacheFileName ("embprofiles", ".icc")); From 1069c890f51cf7b3aa9235918fadc41405851b28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Fri, 14 Feb 2020 11:44:57 +0100 Subject: [PATCH 222/453] Incorporate FreeBSD fix from @mandree (#5651) plus a little hardening --- rtengine/imagedata.cc | 6 +++--- rtengine/procparams.cc | 3 ++- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/rtengine/imagedata.cc b/rtengine/imagedata.cc index 24cfefde9..a631a6c8d 100644 --- a/rtengine/imagedata.cc +++ b/rtengine/imagedata.cc @@ -502,11 +502,11 @@ FrameData::FrameData(rtexif::TagDirectory* frameRootDir_, rtexif::TagDirectory* } else if (!make.compare (0, 6, "PENTAX") || (!make.compare (0, 5, "RICOH") && !model.compare (0, 6, "PENTAX"))) { // ISO at max value supported, check manufacturer specific if (iso_speed == 65535 || iso_speed == 0) { - rtexif::Tag* baseIsoTag = mnote->getTag("ISO"); + const rtexif::Tag* const baseIsoTag = mnote->getTag("ISO"); if (baseIsoTag) { - std::string isoData = baseIsoTag->valueToString(); + const std::string isoData = baseIsoTag->valueToString(); if (isoData.size() > 1) { - iso_speed = stoi(isoData); + iso_speed = std::stoi(isoData); } } } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index f53b4c513..f6b139550 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -4606,8 +4606,9 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) Glib::ustring temp; assignFromKeyfile(keyFile, "Wavelet", "LevMethod", pedited, temp, pedited->wavelet.Lmethod); - if (!temp.empty()) { + try { wavelet.Lmethod = std::stoi(temp); + } catch (...) { } } else { assignFromKeyfile(keyFile, "Wavelet", "LevMethod", pedited, wavelet.Lmethod, pedited->wavelet.Lmethod); From 12b1d8f7671d64dd15cce0115550be8a483f50f5 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Sat, 15 Feb 2020 14:47:34 +0100 Subject: [PATCH 223/453] Polish translation updated by bwisn, closes #5653 --- rtdata/languages/Polish | 143 ++++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 71 deletions(-) diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index b4e1a2281..1bcc98456 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -9,6 +9,7 @@ #09 2014-10-16 DrSlony #10 2020-02-02 Bartłomiej Wiśniowski #11 2020-02-02 Bartłomiej Wiśniowski +#12 2020-02-15 Bartłomiej Wiśniowski ABOUT_TAB_BUILD;Wersja ABOUT_TAB_CREDITS;Zasługi @@ -40,6 +41,7 @@ DIRBROWSER_FOLDERS;Katalogi DYNPROFILEEDITOR_DELETE;Usuń DYNPROFILEEDITOR_EDIT;Edytuj DYNPROFILEEDITOR_IMGTYPE_ANY;Każdy +DYNPROFILEEDITOR_IMGTYPE_HDR;HDR DYNPROFILEEDITOR_IMGTYPE_STD;Standardowy DYNPROFILEEDITOR_MOVE_DOWN;Przesuń w dół DYNPROFILEEDITOR_MOVE_UP;Przesuń w górę @@ -146,6 +148,7 @@ FILEBROWSER_POPUPRANK2;Ocena 2 ** FILEBROWSER_POPUPRANK3;Ocena 3 *** FILEBROWSER_POPUPRANK4;Ocena 4 **** FILEBROWSER_POPUPRANK5;Ocena 5 ***** +FILEBROWSER_POPUPREMOVE;Usuń na zawsze FILEBROWSER_POPUPRENAME;Zmień nazwę FILEBROWSER_POPUPSELECTALL;Zaznacz wszystkie FILEBROWSER_POPUPTRASH;Przenieś do kosza @@ -218,6 +221,7 @@ GENERAL_PORTRAIT;Pionowo GENERAL_RESET;Resetuj GENERAL_SAVE;Zapisz GENERAL_SAVE_AS;Zapisz jako... +GENERAL_SLIDER;Suwak GENERAL_UNCHANGED;(Niezmienione) GENERAL_WARNING;Uwaga HISTOGRAM_TOOLTIP_B;Pokaż/Ukryj histogram błękitów. @@ -590,6 +594,8 @@ HISTORY_MSG_411;Retinex - Siła HISTORY_MSG_413;Retinex - Kontrast HISTORY_MSG_418;Retinex - Próg HISTORY_MSG_419;Retinex - Przestrzeń kolorów +HISTORY_MSG_421;Retinex - Gamma +HISTORY_MSG_422;Retinex - Gamma HISTORY_MSG_426;Retinex - Wyrównywanie odcieni HISTORY_MSG_429;Retinex - Iteracje HISTORY_MSG_432;Retinex - M - Podświetlenia @@ -652,13 +658,20 @@ ICCPROFCREATOR_ILL_INC;StdA 2856K ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) ICCPROFCREATOR_PRIM_BEST;BestRGB ICCPROFCREATOR_PRIM_BETA;BetaRGB +ICCPROFCREATOR_PRIM_BLUX;Niebieski X +ICCPROFCREATOR_PRIM_BLUY;Niebieski Y ICCPROFCREATOR_PRIM_BRUCE;BruceRGB +ICCPROFCREATOR_PRIM_GREX;Zielony X +ICCPROFCREATOR_PRIM_GREY;Zielony Y ICCPROFCREATOR_PRIM_PROPH;Prophoto ICCPROFCREATOR_PRIM_REC2020;Rec2020 +ICCPROFCREATOR_PRIM_REDX;Czerwony X +ICCPROFCREATOR_PRIM_REDY;Czerwony Y ICCPROFCREATOR_PRIM_SRGB;sRGB ICCPROFCREATOR_PROF_V2;ICC v2 ICCPROFCREATOR_PROF_V4;ICC v4 ICCPROFCREATOR_SAVEDIALOG_TITLE;Zapisz profil ICC jako... +ICCPROFCREATOR_SLOPE;Nachylenie IPTCPANEL_CATEGORY;Kategoria IPTCPANEL_CITY;Miasto IPTCPANEL_CITYHINT;Wprowadź nazwę miasta uwiecznionego na zdjęciu. @@ -834,12 +847,15 @@ PARTIALPASTE_SHADOWSHIGHLIGHTS;Cienie/Podświetlenia PARTIALPASTE_SHARPENEDGE;Krawędzie PARTIALPASTE_SHARPENING;Wyostrzanie PARTIALPASTE_SHARPENMICRO;Mikrokontrast +PARTIALPASTE_TM_FATTAL;Kompresja zakresu dynamiki PARTIALPASTE_VIBRANCE;Jaskrawość PARTIALPASTE_VIGNETTING;Korekcja winietowania PARTIALPASTE_WHITEBALANCE;Balans bieli PREFERENCES_ADD;Dodaj PREFERENCES_APPEARANCE;Wygląd +PREFERENCES_APPEARANCE_MAINFONT;Główny font PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora +PREFERENCES_APPEARANCE_PSEUDOHIDPI; Tryb pseudo-HiDPI PREFERENCES_APPEARANCE_THEME;Motyw graficzny PREFERENCES_APPLNEXTSTARTUP;wymaga ponownego uruchomienia PREFERENCES_AUTOMONPROFILE;Automatycznie użyj systemowego profilu monitora @@ -860,6 +876,7 @@ PREFERENCES_CHUNKSIZE_RAW_RCD;Demozaikowanie RCD PREFERENCES_CHUNKSIZE_RAW_XT;Demozaikowanie Xtrans PREFERENCES_CHUNKSIZE_RGB;Przetwarzanie RGB PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni +PREFERENCES_CLUTSCACHE;Cache HaldCLUT PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT PREFERENCES_CMMBPC;Kompensacja punktu czerni PREFERENCES_CROP_GUIDES_FRAME;Ramka @@ -974,6 +991,7 @@ PROFILEPANEL_MODE_TIP;Tryb wypełnienia parametrów przetwarzania.\n\nWduszone: PROFILEPANEL_MYPROFILES;Moje profile przetwarzania PROFILEPANEL_PASTEPPASTE;Parametry do wklejenia PROFILEPANEL_PCUSTOM;Własny +PROFILEPANEL_PDYNAMIC;Dynamika PROFILEPANEL_PFILE;Z pliku PROFILEPANEL_PINTERNAL;Neutralny PROFILEPANEL_PLASTSAVED;Ostatnio zapisany @@ -1099,6 +1117,9 @@ TP_BWMIX_VAL;L TP_CACORRECTION_BLUE;Niebieski TP_CACORRECTION_LABEL;Korekcja aberracji chromatycznej TP_CACORRECTION_RED;Czerwony +TP_CBDL_AFT;Po zmianie na Cz-B +TP_CBDL_BEF;Przed zmianą na Cz-B +TP_CBDL_METHOD;Gdzie TP_CHMIXER_BLUE;Niebieski TP_CHMIXER_GREEN;Zielony TP_CHMIXER_LABEL;Mieszacz kanałów @@ -1188,11 +1209,17 @@ TP_COLORTONING_LABREGION_CHANNEL_ALL;Wszystkie TP_COLORTONING_LABREGION_CHANNEL_B;Niebieski TP_COLORTONING_LABREGION_CHANNEL_G;Zielony TP_COLORTONING_LABREGION_CHANNEL_R;Czerwony +TP_COLORTONING_LABREGION_CHROMATICITYMASK;C +TP_COLORTONING_LABREGION_HUEMASK;H +TP_COLORTONING_LABREGION_LIGHTNESSMASK;L TP_COLORTONING_LABREGION_LIST_TITLE;Korekcja TP_COLORTONING_LABREGION_MASK;Maska +TP_COLORTONING_LABREGION_MASKBLUR;Rozmycie maski TP_COLORTONING_LABREGION_OFFSET;Przesunięcie +TP_COLORTONING_LABREGION_POWER;Moc TP_COLORTONING_LABREGION_SATURATION;Saturacja TP_COLORTONING_LABREGION_SHOWMASK;Pokaż maskę +TP_COLORTONING_LABREGION_SLOPE;Nachylenie TP_COLORTONING_LUMA;Luminancja TP_COLORTONING_LUMAMODE;Zachowaj luminancję TP_COLORTONING_LUMAMODE_TOOLTIP;Luminancja zostanie zachowana przy zmianie kolorów. @@ -1205,7 +1232,7 @@ TP_COLORTONING_OPACITY;Przezroczystość TP_COLORTONING_RGBCURVES;RGB - Krzywe TP_COLORTONING_RGBSLIDERS;RGB - Suwaki TP_COLORTONING_SA;Ochrona przed przesyceniem -TP_COLORTONING_SATURATEDOPACITY;Śiła +TP_COLORTONING_SATURATEDOPACITY;Siła TP_COLORTONING_SATURATIONTHRESHOLD;Próg TP_COLORTONING_SHADOWS;Cienie TP_COLORTONING_SPLITCO;Cienie/półcienie/podświetlenia @@ -1277,6 +1304,12 @@ TP_DIRPYRDENOISE_MEDIAN_METHOD_RGB;RGB TP_DIRPYRDENOISE_MEDIAN_METHOD_TOOLTIP;Przy użyciu metod "tylko luminancja" oraz "L*a*b*", filtrowanie mediana zostanie wykonane prosto po funkcji falki w procesie odszumiania.\nW trybie "RGB" filtrowanie to zostanie wykonana pod koniec calego procesu. TP_DIRPYRDENOISE_MEDIAN_PASSES;Liczba powtórzeń mediana TP_DIRPYRDENOISE_MEDIAN_TYPE;Rodzaj mediana +TP_DIRPYRDENOISE_TYPE_3X3;3×3 +TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 miękko +TP_DIRPYRDENOISE_TYPE_5X5;5×5 +TP_DIRPYRDENOISE_TYPE_5X5SOFT;5×5 miękko +TP_DIRPYRDENOISE_TYPE_7X7;7×7 +TP_DIRPYRDENOISE_TYPE_9X9;9×9 TP_DIRPYREQUALIZER_ALGO;Zakres odcieni skóry TP_DIRPYREQUALIZER_ALGO_TOOLTIP;- TP_DIRPYREQUALIZER_ARTIF;Usuń artefakty @@ -1327,6 +1360,10 @@ TP_EXPOSURE_TCMODE_STANDARD;Standardowa TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Ważona standardowa TP_EXPOS_BLACKPOINT_LABEL;Punkt czerni raw TP_EXPOS_WHITEPOINT_LABEL;Punkt bieli raw +TP_FILMNEGATIVE_BLUE;Proporcja niebieskiego +TP_FILMNEGATIVE_LABEL;Negatyw - klisza +TP_FILMNEGATIVE_PICK;Wybierz miejsce neutralne +TP_FILMNEGATIVE_RED;Proporcja czerwonego TP_FILMSIMULATION_LABEL;Symulacja Kliszy TP_FILMSIMULATION_STRENGTH;Siła TP_FILMSIMULATION_ZEROCLUTSFOUND;Ustaw folder HaldCLUT w Ustawieniach @@ -1390,7 +1427,9 @@ TP_ICM_TONECURVE;Użyj krzywą tonalną z DCP TP_ICM_TONECURVE_TOOLTIP;Włącz aby użyć krzywą tonalną znajdującą się w profilu DCP. Opcja ta jest tylko aktywna jeśli profil DCP zawiera krzywą tonalną. TP_ICM_WORKINGPROFILE;Profil roboczy TP_ICM_WORKING_TRC_CUSTOM;Własna +TP_ICM_WORKING_TRC_GAMMA;Gamma TP_ICM_WORKING_TRC_NONE;Żadna +TP_ICM_WORKING_TRC_SLOPE;Nachylenie TP_IMPULSEDENOISE_LABEL;Redukcja Szumów Impulsowych TP_IMPULSEDENOISE_THRESH;Próg TP_LABCURVE_AVOIDCOLORSHIFT;Zapobiegaj zmianom koloru @@ -1435,14 +1474,19 @@ TP_LENSGEOM_FILL;Auto-wypełnienie TP_LENSGEOM_LABEL;Obiektyw / Geometria TP_LENSGEOM_LIN;Liniowo TP_LENSGEOM_LOG;Logarytmicznie +TP_LENSPROFILE_CORRECTION_AUTOMATCH;Wybierz automatycznie TP_LENSPROFILE_CORRECTION_LCPFILE;Plik LCP +TP_LENSPROFILE_CORRECTION_MANUAL;Wybierz ręcznie TP_LENSPROFILE_LABEL;Profil korekcji obiektywu LCP TP_LENSPROFILE_MODE_HEADER;Profil obiektywu TP_LENSPROFILE_USE_CA;Aberracja chromatyczna TP_LENSPROFILE_USE_GEOMETRIC;Zniekształcenia geometryczne +TP_LENSPROFILE_USE_HEADER;Popraw TP_LENSPROFILE_USE_VIGNETTING;Winietowanie TP_LOCALCONTRAST_AMOUNT;Ilość +TP_LOCALCONTRAST_DARKNESS;Ciemne miejsca TP_LOCALCONTRAST_LABEL;Kontrast lokalny +TP_LOCALCONTRAST_LIGHTNESS;Jasne miejsca TP_LOCALCONTRAST_RADIUS;Promień TP_METADATA_EDIT;Zastosuj modyfikacje TP_METADATA_MODE;Tryb kopiowania metadanych @@ -1470,9 +1514,11 @@ TP_PREPROCESS_HOTPIXFILT_TOOLTIP;Łata gorące piksele (pojedyńcze świecące, TP_PREPROCESS_LABEL;Przetwarzanie początkowe TP_PREPROCESS_LINEDENOISE;Filtr zakłóceń liniowych TP_PREPROCESS_LINEDENOISE_DIRECTION;Kierunek +TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Oba TP_PREPROCESS_LINEDENOISE_DIRECTION_HORIZONTAL;Poziomo TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Pionowo TP_PREPROCESS_NO_FOUND;Nic nie znaleziono +TP_PRSHARPENING_LABEL;Wyostrzanie po zmianie rozmiaru TP_RAWCACORR_AUTO;Autokorekcja TP_RAWCACORR_AUTOIT;Iteracje TP_RAWCACORR_AVOIDCOLORSHIFT;Unikaj przesunięcia kolorów @@ -1550,6 +1596,8 @@ TP_RETINEX_CONTEDIT_LH;Odcień TP_RETINEX_CONTEDIT_MAP;Wyrównywanie TP_RETINEX_EQUAL;Wyrównywanie TP_RETINEX_GAIN;Wzmocnienie +TP_RETINEX_GAMMA;Gamma +TP_RETINEX_GAMMA_NONE;Żaden TP_RETINEX_HIGH;Wysoki TP_RETINEX_HIGHLIGHT;Próg podświetleń TP_RETINEX_LABEL;Retinex @@ -1595,6 +1643,7 @@ TP_SHARPENEDGE_LABEL;Krawędzie TP_SHARPENEDGE_PASSES;Powtórzenia TP_SHARPENEDGE_THREE;Tylko luminancja TP_SHARPENING_AMOUNT;Siła +TP_SHARPENING_BLUR;Promień rozmycia TP_SHARPENING_CONTRAST;Próg kontrastu TP_SHARPENING_EDRADIUS;Promień TP_SHARPENING_EDTOLERANCE;Tolerancja krawędzi @@ -1617,6 +1666,7 @@ TP_SHARPENMICRO_MATRIX;Matryca 3×3 zamiast 5×5 TP_SHARPENMICRO_UNIFORMITY;Jednolitość TP_SOFTLIGHT_STRENGTH;Siła TP_TM_FATTAL_AMOUNT;Ilość +TP_TM_FATTAL_LABEL;Kompresja zakresu dynamiki TP_TM_FATTAL_THRESHOLD;Detale TP_VIBRANCE_AVOIDCOLORSHIFT;Zapobiegaj przesunięcia kolorów TP_VIBRANCE_CURVEEDITOR_SKINTONES;HH @@ -1659,14 +1709,24 @@ TP_WAVELET_BACKGROUND;Tło TP_WAVELET_BACUR;Krzywa TP_WAVELET_BALCHRO;Balans chrominancji TP_WAVELET_BANONE;Żaden +TP_WAVELET_BASLI;Suwak +TP_WAVELET_BATYPE;Metoda balansu kontrastu +TP_WAVELET_CBENAB;Tonowanie i balans kolorów TP_WAVELET_CCURVE;Kontrast lokalny +TP_WAVELET_CH1;Cały zakres chrominancji +TP_WAVELET_CH2;Nasycone/pastelowe +TP_WAVELET_CH3;Połącz poziomy kontrastu TP_WAVELET_CHCU;Krzywa +TP_WAVELET_CHSL;Suwaki TP_WAVELET_COMPCONT;Kontrast +TP_WAVELET_COMPGAMMA;Kompresja - Gamma TP_WAVELET_CONTR;Gamut TP_WAVELET_CONTRA;Kontrast TP_WAVELET_CONTRAST_MINUS;Kontrast - TP_WAVELET_CONTRAST_PLUS;Kontrast + TP_WAVELET_CTYPE;Kontrola chrominancji +TP_WAVELET_CURVEEDITOR_CL;L +TP_WAVELET_CURVEEDITOR_HH;HH TP_WAVELET_DALL;We wszystkich kierunkach TP_WAVELET_DAUB2;D2 - niski TP_WAVELET_DAUB4;D4 - standard @@ -1681,18 +1741,23 @@ TP_WAVELET_EDGCONT;Kontrast lokalny TP_WAVELET_EDGE;Ostrość krawędzi TP_WAVELET_EDGEDETECTTHR;Niski próg (szum) TP_WAVELET_EDGEDETECTTHR2;Wysoki próg (wykrywanie) +TP_WAVELET_EDGTHRESH;Szczegółowość TP_WAVELET_EDRAD;Promień TP_WAVELET_EDSL;Suwaki progów +TP_WAVELET_EDTYPE;Metoda kontrastu lokalnego: TP_WAVELET_EDVAL;Siła +TP_WAVELET_FINEST;Najdokładniej TP_WAVELET_HS2;Cienie/Podświetlenia TP_WAVELET_HUESKIN;Odcień skóry TP_WAVELET_HUESKY;Odcień nieba +TP_WAVELET_LEVCH;Chrominancja TP_WAVELET_LEVF;Kontrast TP_WAVELET_LEVONE;Poziom 2 TP_WAVELET_LEVTHRE;Poziom 4 TP_WAVELET_LEVTWO;Poziom 3 TP_WAVELET_LEVZERO;Poziom 1 TP_WAVELET_LIPST;Usprawniony algorytm +TP_WAVELET_MEDGREINF;Pierwszy poziom TP_WAVELET_MEDI;Usuwaj artefakty niebieskiego nieba TP_WAVELET_MEDILEV;Wykrywanie krawędzi TP_WAVELET_NEUTRAL;Neutralny @@ -1701,12 +1766,15 @@ TP_WAVELET_NPHIGH;Wysoki TP_WAVELET_NPLOW;Niski TP_WAVELET_NPNONE;Brak TP_WAVELET_NPTYPE;Piksele sąsiadujące +TP_WAVELET_PASTEL;Chrominancja kolorów pastelowych TP_WAVELET_PROC;Proces TP_WAVELET_RE1;Wzmocniony TP_WAVELET_RE2;Niezmieniony TP_WAVELET_RE3;Zmniejszony +TP_WAVELET_RESCHRO;Chrominancja TP_WAVELET_RESCON;Cienie TP_WAVELET_RESCONH;Podświetlenia +TP_WAVELET_SAT;Chrominancja kolorów nasyconych TP_WAVELET_STREN;Siła TP_WAVELET_STRENGTH;Siła TP_WAVELET_SUPE;Ekstra @@ -1714,7 +1782,9 @@ TP_WAVELET_THR;Próg cieni TP_WAVELET_THRESHOLD;Poziom podświetleń TP_WAVELET_THRESHOLD2;Poziom cieni TP_WAVELET_THRH;Próg podświetleń +TP_WAVELET_TMSTRENGTH;Siła kompresji TP_WAVELET_TMTYPE;Metoda kompresji +TP_WAVELET_TON;Tonowanie TP_WBALANCE_AUTO;Auto TP_WBALANCE_CAMERA;Z aparatu TP_WBALANCE_CLOUDY;Pochmurnie @@ -1757,6 +1827,7 @@ TP_WBALANCE_SOLUX41;Solux 4100K TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Punktowy +TP_WBALANCE_TEMPBIAS;Kompensacja automatycznego balansu bieli (AWB) TP_WBALANCE_TEMPERATURE;Temperatura TP_WBALANCE_TUNGSTEN;Wolfram TP_WBALANCE_WATER1;Pod wodą 1 @@ -1783,7 +1854,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule !DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. -!DYNPROFILEEDITOR_IMGTYPE_HDR;HDR !DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift !DYNPROFILEEDITOR_NEW_RULE;New Dynamic Profile Rule !EXPORT_BYPASS;Processing steps to bypass @@ -1796,11 +1866,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILEBROWSER_DELETEDIALOG_ALL;Are you sure you want to permanently delete all %1 files in trash? !FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? !FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? -!FILEBROWSER_POPUPREMOVE;Delete permanently !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version !FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. -!GENERAL_SLIDER;Slider !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. !HISTORY_MSG_235;B&W - CM - Auto @@ -1862,8 +1930,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_416;Retinex !HISTORY_MSG_417;Retinex - Transmission median !HISTORY_MSG_420;Retinex - Histogram - HSL -!HISTORY_MSG_421;Retinex - Gamma -!HISTORY_MSG_422;Retinex - Gamma !HISTORY_MSG_423;Retinex - Gamma slope !HISTORY_MSG_424;Retinex - HL threshold !HISTORY_MSG_425;Retinex - Log base @@ -1946,15 +2012,8 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !ICCPROFCREATOR_PRIMARIES;Primaries: !ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 !ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 -!ICCPROFCREATOR_PRIM_BLUX;Blue X -!ICCPROFCREATOR_PRIM_BLUY;Blue Y -!ICCPROFCREATOR_PRIM_GREX;Green X -!ICCPROFCREATOR_PRIM_GREY;Green Y -!ICCPROFCREATOR_PRIM_REDX;Red X -!ICCPROFCREATOR_PRIM_REDY;Red Y !ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. !ICCPROFCREATOR_PRIM_WIDEG;Widegamut -!ICCPROFCREATOR_SLOPE;Slope !ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. !IPTCPANEL_COPYRIGHT;Copyright notice @@ -1992,17 +2051,13 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift !PARTIALPASTE_SOFTLIGHT;Soft light -!PARTIALPASTE_TM_FATTAL;Dynamic range compression !PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font !PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color -!PREFERENCES_APPEARANCE_MAINFONT;Main font -!PREFERENCES_APPEARANCE_PSEUDOHIDPI;Pseudo-HiDPI mode !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. !PREFERENCES_CHUNKSIZES;Tiles per thread !PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction -!PREFERENCES_CLUTSCACHE;HaldCLUT Cache !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs !PREFERENCES_CROP;Crop Editing !PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop @@ -2040,7 +2095,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PROFILEPANEL_PDYNAMIC;Dynamic !PROGRESSBAR_GREENEQUIL;Green equilibration... !PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... !PROGRESSBAR_LINEDENOISE;Line noise filter... @@ -2060,9 +2114,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. !TOOLBAR_TOOLTIP_COLORPICKER;Lockable Color Picker\n\nWhen the tool is active:\n- Add a picker: left-click.\n- Drag a picker: left-click and drag.\n- Delete a picker: right-click.\n- Delete all pickers: Ctrl+Shift+right-click.\n- Revert to hand tool: right-click outside any picker. -!TP_CBDL_AFT;After Black-and-White -!TP_CBDL_BEF;Before Black-and-White -!TP_CBDL_METHOD;Process located !TP_CBDL_METHOD_TOOLTIP;Choose whether the Contrast by Detail Levels tool is to be positioned after the Black-and-White tool, which makes it work in L*a*b* space, or before it, which makes it work in RGB space. !TP_COLORAPP_CAT02ADAPTATION_TOOLTIP;When setting manually, values above 65 are recommended. !TP_COLORAPP_FREE;Free temp+green + CAT02 + [output] @@ -2072,13 +2123,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_COLORTONING_LABGRID_VALUES;HL: a=%1 b=%2\nS: a=%3 b=%4 !TP_COLORTONING_LABREGIONS;Color correction regions !TP_COLORTONING_LABREGION_ABVALUES;a=%1 b=%2 -!TP_COLORTONING_LABREGION_CHROMATICITYMASK;C -!TP_COLORTONING_LABREGION_HUEMASK;H !TP_COLORTONING_LABREGION_LIGHTNESS;Lightness -!TP_COLORTONING_LABREGION_LIGHTNESSMASK;L -!TP_COLORTONING_LABREGION_MASKBLUR;Mask Blur -!TP_COLORTONING_LABREGION_POWER;Power -!TP_COLORTONING_LABREGION_SLOPE;Slope !TP_CROP_GTHARMMEANS;Harmonic Means !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 @@ -2096,22 +2141,12 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_DIRPYRDENOISE_MEDIAN_METHOD_WEIGHTED;Weighted L* (little) + a*b* (normal) !TP_DIRPYRDENOISE_MEDIAN_PASSES_TOOLTIP;Applying three median filter iterations with a 3×3 window size often leads to better results than using one median filter iteration with a 7×7 window size. !TP_DIRPYRDENOISE_MEDIAN_TYPE_TOOLTIP;Apply a median filter of the desired window size. The larger the window's size, the longer it takes.\n\n3×3 soft: treats 5 pixels in a 3×3 pixel window.\n3×3: treats 9 pixels in a 3×3 pixel window.\n5×5 soft: treats 13 pixels in a 5×5 pixel window.\n5×5: treats 25 pixels in a 5×5 pixel window.\n7×7: treats 49 pixels in a 7×7 pixel window.\n9×9: treats 81 pixels in a 9×9 pixel window.\n\nSometimes it is possible to achieve higher quality running several iterations with a smaller window size than one iteration with a larger one. -!TP_DIRPYRDENOISE_TYPE_3X3;3×3 -!TP_DIRPYRDENOISE_TYPE_3X3SOFT;3×3 soft -!TP_DIRPYRDENOISE_TYPE_5X5;5×5 -!TP_DIRPYRDENOISE_TYPE_5X5SOFT;5×5 soft -!TP_DIRPYRDENOISE_TYPE_7X7;7×7 -!TP_DIRPYRDENOISE_TYPE_9X9;9×9 !TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. !TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve !TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. !TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual -!TP_FILMNEGATIVE_BLUE;Blue ratio !TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) !TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards. -!TP_FILMNEGATIVE_LABEL;Film Negative -!TP_FILMNEGATIVE_PICK;Pick neutral spots -!TP_FILMNEGATIVE_RED;Red ratio !TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee is configured to look for Hald CLUT images, which are used for the Film Simulation tool, in a folder which is taking too long to load.\nGo to Preferences > Image Processing > Film Simulation\nto see which folder is being used. You should either point RawTherapee to a folder which contains only Hald CLUT images and nothing more, or to an empty folder if you don't want to use the Film Simulation tool.\n\nRead the Film Simulation article in RawPedia for more information.\n\nDo you want to cancel the scan now? !TP_ICM_APPLYBASELINEEXPOSUREOFFSET;Baseline exposure !TP_ICM_APPLYBASELINEEXPOSUREOFFSET_TOOLTIP;Employ the embedded DCP baseline exposure offset. The setting is only available if the selected DCP has one. @@ -2123,20 +2158,11 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. !TP_ICM_WORKING_TRC;Tone response curve: -!TP_ICM_WORKING_TRC_GAMMA;Gamma -!TP_ICM_WORKING_TRC_SLOPE;Slope !TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. -!TP_LENSPROFILE_CORRECTION_AUTOMATCH;Automatically selected -!TP_LENSPROFILE_CORRECTION_MANUAL;Manually selected !TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. -!TP_LENSPROFILE_USE_HEADER;Correct -!TP_LOCALCONTRAST_DARKNESS;Darkness level -!TP_LOCALCONTRAST_LIGHTNESS;Lightness level !TP_PDSHARPENING_LABEL;Capture Sharpening -!TP_PREPROCESS_LINEDENOISE_DIRECTION_BOTH;Both !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows !TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!TP_PRSHARPENING_LABEL;Post-Resize Sharpening !TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. !TP_RAWCACORR_AUTOIT_TOOLTIP;This setting is available if "Auto-correction" is checked.\nAuto-correction is conservative, meaning that it often does not correct all chromatic aberration.\nTo correct the remaining chromatic aberration, you can use up to five iterations of automatic chromatic aberration correction.\nEach iteration will reduce the remaining chromatic aberration from the last iteration at the cost of additional processing time. !TP_RAW_BORDER;Border @@ -2179,12 +2205,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. -!TP_RETINEX_GAMMA;Gamma !TP_RETINEX_GAMMA_FREE;Free !TP_RETINEX_GAMMA_HIGH;High !TP_RETINEX_GAMMA_LOW;Low !TP_RETINEX_GAMMA_MID;Middle -!TP_RETINEX_GAMMA_NONE;None !TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). !TP_RETINEX_GRAD;Transmission gradient !TP_RETINEX_GRADS;Strength gradient @@ -2219,31 +2243,21 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_VIEW_METHOD_TOOLTIP;Standard - Normal display.\nMask - Displays the mask.\nUnsharp mask - Displays the image with a high radius unsharp mask.\nTransmission - Auto/Fixed - Displays the file transmission-map, before any action on contrast and brightness.\n\nAttention: the mask does not correspond to reality, but is amplified to make it more visible. !TP_RETINEX_VIEW_TRAN;Transmission - Auto !TP_RETINEX_VIEW_TRAN2;Transmission - Fixed -!TP_SHARPENING_BLUR;Blur radius !TP_SHARPENING_ITERCHECK;Auto limit iterations !TP_SHARPENING_RADIUS_BOOST;Corner radius boost !TP_SOFTLIGHT_LABEL;Soft Light !TP_TM_FATTAL_ANCHOR;Anchor -!TP_TM_FATTAL_LABEL;Dynamic Range Compression !TP_WAVELET_B2;Residual !TP_WAVELET_BALANCE;Contrast balance d/v-h !TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. !TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. -!TP_WAVELET_BASLI;Slider -!TP_WAVELET_BATYPE;Contrast balance method -!TP_WAVELET_CBENAB;Toning and Color Balance !TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted -!TP_WAVELET_CH1;Whole chroma range -!TP_WAVELET_CH2;Saturated/pastel -!TP_WAVELET_CH3;Link contrast levels !TP_WAVELET_CHR;Chroma-contrast link strength !TP_WAVELET_CHRO;Saturated/pastel threshold !TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. !TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" -!TP_WAVELET_CHSL;Sliders !TP_WAVELET_CHTYPE;Chrominance method !TP_WAVELET_COLORT;Opacity Red-Green -!TP_WAVELET_COMPGAMMA;Compression gamma !TP_WAVELET_COMPGAMMA_TOOLTIP;Adjusting the gamma of the residual image allows you to equilibrate the data and histogram. !TP_WAVELET_COMPTM;Tone mapping !TP_WAVELET_CONTEDIT;'After' contrast curve @@ -2251,9 +2265,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). !TP_WAVELET_CURVEEDITOR_CH;Contrast levels=f(Hue) !TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. -!TP_WAVELET_CURVEEDITOR_CL;L !TP_WAVELET_CURVEEDITOR_CL_TOOLTIP;Applies a final contrast luminance curve at the end of the wavelet treatment. -!TP_WAVELET_CURVEEDITOR_HH;HH !TP_WAVELET_CURVEEDITOR_HH_TOOLTIP;Modifies the residual image's hue as a function of hue. !TP_WAVELET_DAUB;Edge performance !TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. @@ -2264,12 +2276,9 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. !TP_WAVELET_EDGESENSI;Edge sensitivity !TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. -!TP_WAVELET_EDGTHRESH;Detail !TP_WAVELET_EDGTHRESH_TOOLTIP;Change the repartition between the first levels and the others. The higher the threshold the more the action is centered on the first levels. Be careful with negative values, they increase the action of high levels and can introduce artifacts. !TP_WAVELET_EDRAD_TOOLTIP;This radius adjustment is very different from those in other sharpening tools. Its value is compared to each level through a complex function. In this sense, a value of zero still has an effect. -!TP_WAVELET_EDTYPE;Local contrast method !TP_WAVELET_FINAL;Final Touchup -!TP_WAVELET_FINEST;Finest !TP_WAVELET_HIGHLIGHT;Highlight luminance range !TP_WAVELET_HS1;Whole luminance range !TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. @@ -2278,7 +2287,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_ITER_TOOLTIP;Left: increase low levels and reduce high levels,\nRight: reduce low levels and increase high levels. !TP_WAVELET_LABEL;Wavelet Levels !TP_WAVELET_LARGEST;Coarsest -!TP_WAVELET_LEVCH;Chroma !TP_WAVELET_LEVDIR_ALL;All levels in all directions !TP_WAVELET_LEVDIR_INF;Below or equal the level !TP_WAVELET_LEVDIR_ONE;One level @@ -2288,7 +2296,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 !TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength !TP_WAVELET_LOWLIGHT;Shadow luminance range -!TP_WAVELET_MEDGREINF;First level !TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. !TP_WAVELET_NOISE;Denoise and Refine !TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. @@ -2296,10 +2303,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_OPACITYW;Contrast balance d/v-h curve !TP_WAVELET_OPACITYWL;Final local contrast !TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. -!TP_WAVELET_PASTEL;Pastel chroma -!TP_WAVELET_RESCHRO;Chroma !TP_WAVELET_RESID;Residual Image -!TP_WAVELET_SAT;Saturated chroma !TP_WAVELET_SETTINGS;Wavelet Settings !TP_WAVELET_SKIN;Skin targetting/protection !TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. @@ -2312,8 +2316,5 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_TILESIZE;Tiling method !TP_WAVELET_TILESLIT;Little tiles !TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. -!TP_WAVELET_TMSTRENGTH;Compression strength !TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. When the value is different from 0, the Strength and Gamma sliders of the Tone Mapping tool in the Exposure tab will become grayed out. -!TP_WAVELET_TON;Toning -!TP_WBALANCE_TEMPBIAS;AWB temperature bias !TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". From 2acf13a62a55d4b9c7fae29c9061ab8b242c6229 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Feb 2020 15:37:42 -0800 Subject: [PATCH 224/453] Update main.yml --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bab7397a6..d1f1578f8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: CMAKE_CXX_STANDARD: 11 PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' - RAW_THERAPEE_MINOR: '7' + RAW_THERAPEE_MINOR: '8' C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | # GITHUB_REF is the ref that triggered the build, like refs/heads/new-feature - the next line parses that to REF: the branch name only (new-feature) From 9d24423c770ed582f05557772d8a89011ffe24d6 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sat, 15 Feb 2020 15:56:20 -0800 Subject: [PATCH 225/453] mac: simplify bundle structure --- AboutThisBuild.txt.in | 4 ++++ UpdateInfo.cmake | 10 ++++++++++ tools/osx/Info.plist-bin.in | 10 ---------- tools/osx/Info.plist.in | 31 ++++++++++++++++++++++++++++++- tools/osx/executable_loader.in | 33 --------------------------------- tools/osx/macosx_bundle.sh | 33 +++++++++++++++++++++++++++------ tools/osx/rt-bin.entitlements | 8 -------- tools/osx/rt.entitlements | 34 +++++++++++++++++----------------- 8 files changed, 88 insertions(+), 75 deletions(-) delete mode 100644 tools/osx/Info.plist-bin.in delete mode 100644 tools/osx/executable_loader.in delete mode 100644 tools/osx/rt-bin.entitlements diff --git a/AboutThisBuild.txt.in b/AboutThisBuild.txt.in index f48d39b50..06f628187 100644 --- a/AboutThisBuild.txt.in +++ b/AboutThisBuild.txt.in @@ -13,3 +13,7 @@ Build flags: ${CXX_FLAGS} Link flags: ${LFLAGS} OpenMP support: ${OPTION_OMP} MMAP support: ${WITH_MYFILE_MMAP} +Build OS: ${BUILDINFO_OS} +Build date: ${BUILDINFO_DATE} ZULU +Build epoch: ${BUILDINFO_EPOCH} +Build UUID: ${BUILDINFO_UUID} diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index d1f532506..a4de8fe1a 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -64,6 +64,11 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() + execute_process(COMMAND uname -mrs OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND date -Ru OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND date +%s OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE) + message(STATUS "Git checkout information:") message(STATUS " Commit description: ${GIT_DESCRIBE}") message(STATUS " Branch: ${GIT_BRANCH}") @@ -72,6 +77,11 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS "Build information:") + message(STATUS " Build OS: ${BUILDINFO_OS}") + message(STATUS " Build date: ${BUILDINFO_DATE}") + message(STATUS " Epoch: ${BUILDINFO_EPOCH}") + message(STATUS " UUID: ${BUILDINFO_UUID}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") diff --git a/tools/osx/Info.plist-bin.in b/tools/osx/Info.plist-bin.in deleted file mode 100644 index 33abd4f7a..000000000 --- a/tools/osx/Info.plist-bin.in +++ /dev/null @@ -1,10 +0,0 @@ - - - - - CFBundleName - RawTherapee-bin - CFBundleIdentifier - com.rawtherapee.rawtherapee - - diff --git a/tools/osx/Info.plist.in b/tools/osx/Info.plist.in index eec1ab490..7e4918cc0 100644 --- a/tools/osx/Info.plist.in +++ b/tools/osx/Info.plist.in @@ -2,6 +2,35 @@ + LSEnvironment + + XDG_DATA_DIRS + /Applications/RawTherapee.app/Contents/Resources/share + DYLD_FALLBACK_LIBRARY_PATH + /Applications/RawTherapee.app/Contents/Frameworks + GTK_PATH + /Applications/RawTherapee.app/Contents/Frameworks + GTK_IM_MODULE_FILE + /Applications/RawTherapee.app/Contents/Resources/etc/gtk-3.0/gtk.immodules + XDG_DATA_HOME + /Applications/RawTherapee.app/Contents/Resources/share + GSETTINGS_SCHEMA_DIR + /Applications/RawTherapee.app/Contents/Resources/share/glib-2.0/schemas + GDK_PIXBUF_MODULE_FILE + /Applications/RawTherapee.app/Contents/Resources/etc/gtk-3.0/gdk-pixbuf.loaders + GDK_PIXBUF_MODULEDIR + /Applications/RawTherapee.app/Contents/Frameworks + FONTCONFIG_PATH + /Applications/RawTherapee.app/Contents/Resources/etc/fonts + LIBDIR + /Applications/RawTherapee.app/Contents/Frameworks + DATADIR + /Applications/RawTherapee.app/Contents/Resources + GDK_RENDERING + similar + GTK_OVERLAY_SCROLLING + 0 + CFBundleDevelopmentRegion English CFBundleDisplayName @@ -115,7 +144,7 @@ CFBundleIconFile rawtherapee.icns CFBundleIdentifier - com.rawtherapee.rawtherapee + com.rawtherapee.RawTherapee CFBundleInfoDictionaryVersion 6.0 CFBundleName diff --git a/tools/osx/executable_loader.in b/tools/osx/executable_loader.in deleted file mode 100644 index 5ee609043..000000000 --- a/tools/osx/executable_loader.in +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh - -# GIMP has this next line regarding raising the number-of-open-files limit: -ulimit -n 7000 - -cd "$(dirname "$0")" || exit 1 - -cwd="$(pwd)" -app="/Applications/RawTherapee.app" -lib="${app}/Contents/Frameworks" -resources="${app}/Contents/Resources" -etc="${resources}/etc" -export XDG_DATA_DIRS="${resources}/share" -export DYLD_FALLBACK_LIBRARY_PATH="${lib}" -export GTK_PATH="${lib}/gtk-3.0/3.0.0" -export XDG_DATA_HOME="${resources}/share" -export GSETTINGS_SCHEMA_DIR="${resources}/share/glib-2.0/schemas" -export GDK_PIXBUF_MODULE_FILE="${etc}/gtk-3.0/gdk-pixbuf.loaders" -export GDK_PIXBUF_MODULEDIR="${lib}" - -export RT_SETTINGS="${HOME}/Library/Application Support/RawTherapee/config" -export RT_CACHE="${HOME}/Library/Application Support/RawTherapee/cache" - -# Strip out system argument -case "$1" in - -psn_*) shift ;; -esac - -# Prevent crash when directory name contains special characters -AppleLocale=`defaults read -g AppleLocale` -export LANG=${AppleLocale%@*}.UTF-8 - -exec "${app}/Contents/MacOS/bin/rawtherapee-bin" "$@" diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 7a6bfe765..cb5338121 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -50,6 +50,22 @@ function ModifyInstallNames { done } +function ModifyInstallNames { + find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do + msg "Modifying install names: ${x}" + { + # id + if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then + echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'" + fi + GetDependencies "${x}" | while read -r y + do + echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" + done + } | bash -v + done +} + # Source check if [[ ! -d "${CMAKE_BUILD_TYPE}" ]]; then msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." @@ -132,9 +148,16 @@ echo "Bundle date: $(date -Ru) ZULU" >> Resources/AboutThisBuild.txt echo "Bundle epoch: $(date +%s)" >> Resources/AboutThisBuild.txt echo "Bundle UUID: $(uuidgen)" >> Resources/AboutThisBuild.txt +echo "\n--------\n" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "Bundle UUID: $(uuidgen)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt + msg "Copying release files:" ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" -ditto "Resources" "${RESOURCES}" +ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" @@ -152,6 +175,9 @@ CheckLink "${EXECUTABLE}" # dylib install names ModifyInstallNames +# dylib install names +ModifyInstallNames + # Copy libjpeg-turbo ("62") into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" @@ -193,11 +219,6 @@ ditto "${LIB}"/gtk-3.0/3*/immodules/*.{dylib,so} "${LIB}" rm -r "${LIB}"/gtk-3.0 rm -r "${LIB}"/gdk-pixbuf-2.0 -msg "Build glib database:" -mkdir -p ${RESOURCES}/share/glib-2.0 -ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas -"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" - # GTK+3 themes msg "Copy GTK+3 theme and icon resources:" ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Mac/gtk-3.0/gtk-keys.css diff --git a/tools/osx/rt-bin.entitlements b/tools/osx/rt-bin.entitlements deleted file mode 100644 index 9e5e269cb..000000000 --- a/tools/osx/rt-bin.entitlements +++ /dev/null @@ -1,8 +0,0 @@ - - - - -com.apple.security.inherit - - - \ No newline at end of file diff --git a/tools/osx/rt.entitlements b/tools/osx/rt.entitlements index 082661401..61422fae7 100644 --- a/tools/osx/rt.entitlements +++ b/tools/osx/rt.entitlements @@ -1,20 +1,20 @@ - - application-identifier - com.rawtherapee.rawtherapee - com.apple.security.temporary-exception.files.absolute-path.read-write - - "/" - - com.apple.security.cs.allow-dyld-environment-variables - - com.apple.security.files.user-selected.read-write - - com.apple.security.app-sandbox - - com.apple.security.files.downloads.read-write - - - + + application-identifier + com.rawtherapee.RawTherapee + com.apple.security.temporary-exception.files.absolute-path.read-write + + / + + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.files.user-selected.read-write + + com.apple.security.app-sandbox + + com.apple.security.files.downloads.read-write + + + \ No newline at end of file From debf97126b4243ac209eab2ec8c0725e8a08011d Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Feb 2020 18:02:14 -0800 Subject: [PATCH 226/453] revert AboutThisBuild.txt --- AboutThisBuild.txt.in | 4 ---- 1 file changed, 4 deletions(-) diff --git a/AboutThisBuild.txt.in b/AboutThisBuild.txt.in index 06f628187..f48d39b50 100644 --- a/AboutThisBuild.txt.in +++ b/AboutThisBuild.txt.in @@ -13,7 +13,3 @@ Build flags: ${CXX_FLAGS} Link flags: ${LFLAGS} OpenMP support: ${OPTION_OMP} MMAP support: ${WITH_MYFILE_MMAP} -Build OS: ${BUILDINFO_OS} -Build date: ${BUILDINFO_DATE} ZULU -Build epoch: ${BUILDINFO_EPOCH} -Build UUID: ${BUILDINFO_UUID} From ba388cc196c55cec5037c68eaa91aad68ea8ab90 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Feb 2020 18:04:24 -0800 Subject: [PATCH 227/453] revert UpdateInfo.cmake --- UpdateInfo.cmake | 10 ---------- 1 file changed, 10 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index a4de8fe1a..d1f532506 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -64,11 +64,6 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() - execute_process(COMMAND uname -mrs OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND date -Ru OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND date +%s OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) - execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE) - message(STATUS "Git checkout information:") message(STATUS " Commit description: ${GIT_DESCRIBE}") message(STATUS " Branch: ${GIT_BRANCH}") @@ -77,11 +72,6 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") - message(STATUS "Build information:") - message(STATUS " Build OS: ${BUILDINFO_OS}") - message(STATUS " Build date: ${BUILDINFO_DATE}") - message(STATUS " Epoch: ${BUILDINFO_EPOCH}") - message(STATUS " UUID: ${BUILDINFO_UUID}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") From 7b215e83a3c29eb002a0d06dcbc76afbe86e55fd Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sat, 15 Feb 2020 18:07:30 -0800 Subject: [PATCH 228/453] mac: bundle simplification --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 259a0d7a2..8503fe573 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,7 +168,7 @@ endif() if(NOT DEFINED DATADIR) if(BUILD_BUNDLE) if(APPLE) - set(DATADIR "../../Resources") + set(DATADIR "../Resources") else() set(DATADIR .) endif() @@ -180,7 +180,7 @@ endif() if(NOT DEFINED LIBDIR) if(BUILD_BUNDLE) if(APPLE) - set(LIBDIR "../../Frameworks") + set(LIBDIR "../Frameworks") else() set(LIBDIR .) endif() From 338c2aaccee9cbb099c778c83f2dc7c93b55fea2 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 06:08:12 -0800 Subject: [PATCH 229/453] mac:bundle simplification cont'd --- rtdata/options/options.osx | 5 +- tools/osx/macosx_bundle.sh | 343 +++++++++++++++++-------------------- 2 files changed, 156 insertions(+), 192 deletions(-) diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index 58e0a5604..bffd48495 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -9,6 +9,7 @@ # which can be useful if you want to keep the application and all the cache data in a single place, # an external HD for example MultiUser=true +UseSystemTheme=false [File Browser] # Image filename extensions to be looked for, and their corresponding search state (0/1 -> skip/include) @@ -38,5 +39,5 @@ CustomProfileBuilder= #ImgDefault=Neutral [GUI] -FontFamily=Helvetica Regular -CPFontFamily=Helvetica Regular +FontFamily=DroidSansMonoSlashed Regular +CPFontFamily=DroidSansMonoSlashed Regular diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index cb5338121..35b80a44c 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -16,95 +16,79 @@ fMagenta="$(tput setaf 5)" fRed="$(tput setaf 1)" function msg { - printf "\\n${fBold}-- %s${fNormal}\\n" "${@}" +printf "\\n${fBold}-- %s${fNormal}\\n" "${@}" } function msgError { - printf "\\n${fBold}Error:${fNormal}\\n%s\\n" "${@}" +printf "\\n${fBold}Error:${fNormal}\\n%s\\n" "${@}" } function GetDependencies { - otool -L "$1" | awk 'NR >= 2 && $1 !~ /^(\/usr\/lib|\/System|@executable_path|@rpath)\// { print $1 }' +otool -L "$1" | awk 'NR >= 2 && $1 !~ /^(\/usr\/lib|\/System|@executable_path|@rpath)\// { print $1 }' } function CheckLink { - GetDependencies "$1" | while read -r; do - local dest="${LIB}/$(basename "${REPLY}")" - test -f "${dest}" || { ditto --arch "${arch}" "${REPLY}" "${dest}"; CheckLink "${dest}"; } - done +GetDependencies "$1" | while read -r; do +local dest="${LIB}/$(basename "${REPLY}")" +test -f "${dest}" || { ditto --arch "${arch}" "${REPLY}" "${dest}"; CheckLink "${dest}"; } +done } function ModifyInstallNames { - find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do - msg "Modifying install names: ${x}" - { - # id - if [ ${x:(-6)} == ".dylib" ]; then - echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'" - fi - GetDependencies "${x}" | while read -r y - do - echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" - done - } | bash -v - done -} - -function ModifyInstallNames { - find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do - msg "Modifying install names: ${x}" - { - # id - if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then - echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'" - fi - GetDependencies "${x}" | while read -r y - do - echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" - done - } | bash -v - done +find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do +msg "Modifying install names: ${x}" +{ +# id +if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then +echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'" +fi +GetDependencies "${x}" | while read -r y +do +echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" +done +} | bash -v +done } # Source check if [[ ! -d "${CMAKE_BUILD_TYPE}" ]]; then - msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." - exit 1 +msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." +exit 1 fi # Update project version if [[ -x "$(which git)" && -d "${PROJECT_SOURCE_DIR}/.git" ]]; then - ### This section is copied from tools/generateReleaseInfo - # Get version description. - # Depending on whether you checked out a branch (dev) or a tag (release), - # "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. - gitDescribe="$(git describe --tags --always)" +### This section is copied from tools/generateReleaseInfo +# Get version description. +# Depending on whether you checked out a branch (dev) or a tag (release), +# "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. +gitDescribe="$(git describe --tags --always)" - # Apple requires a numeric version of the form n.n.n - # https://goo.gl/eWDQv6 +# Apple requires a numeric version of the form n.n.n +# https://goo.gl/eWDQv6 - # Get number of commits since tagging. This is what gitDescribe uses. - # Works when checking out branch, tag or commit. - gitCommitsSinceTag="$(git rev-list --count HEAD --not $(git tag --merged HEAD))" +# Get number of commits since tagging. This is what gitDescribe uses. +# Works when checking out branch, tag or commit. +gitCommitsSinceTag="$(git rev-list --count HEAD --not $(git tag --merged HEAD))" - # Create numeric version. - # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. - # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). - if [[ -z $gitCommitsSinceTag ]]; then - gitVersionNumericBS="0.0.0" - else - gitVersionNumericBS="${gitDescribe%%-*}" # Remove everything after first hyphen. - gitVersionNumericBS="${gitVersionNumericBS}.${gitCommitsSinceTag}" # Remove everything until after first hyphen: 5.0 - fi - ### Copy end. +# Create numeric version. +# This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. +# Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). +if [[ -z $gitCommitsSinceTag ]]; then +gitVersionNumericBS="0.0.0" +else +gitVersionNumericBS="${gitDescribe%%-*}" # Remove everything after first hyphen. +gitVersionNumericBS="${gitVersionNumericBS}.${gitCommitsSinceTag}" # Remove everything until after first hyphen: 5.0 +fi +### Copy end. - PROJECT_FULL_VERSION="$gitDescribe" - PROJECT_VERSION="$gitVersionNumericBS" +PROJECT_FULL_VERSION="$gitDescribe" +PROJECT_VERSION="$gitVersionNumericBS" fi MINIMUM_SYSTEM_VERSION="$(otool -l "${CMAKE_BUILD_TYPE}"/MacOS/rawtherapee | grep -A2 'LC_VERSION_MIN_MACOSX' | awk '$1 ~ /version/ { printf $2 }')" if [[ -z "${MINIMUM_SYSTEM_VERSION}" ]]; then - MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" +MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" fi arch=x86_64 @@ -122,7 +106,7 @@ __EOS__ LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" - + APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" RESOURCES="${CONTENTS}/Resources" @@ -137,16 +121,9 @@ rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" msg "Creating bundle container:" install -d "${RESOURCES}" \ - "${MACOS}" \ - "${LIB}" \ - "${ETC}" - -echo "\n--------\n" >> Resources/AboutThisBuild.txt -echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> Resources/AboutThisBuild.txt -echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> Resources/AboutThisBuild.txt -echo "Bundle date: $(date -Ru) ZULU" >> Resources/AboutThisBuild.txt -echo "Bundle epoch: $(date +%s)" >> Resources/AboutThisBuild.txt -echo "Bundle UUID: $(uuidgen)" >> Resources/AboutThisBuild.txt +"${MACOS}" \ +"${LIB}" \ +"${ETC}" echo "\n--------\n" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt @@ -175,9 +152,6 @@ CheckLink "${EXECUTABLE}" # dylib install names ModifyInstallNames -# dylib install names -ModifyInstallNames - # Copy libjpeg-turbo ("62") into the app bundle ditto ${LOCAL_PREFIX}/local/lib/libjpeg.62.dylib "${CONTENTS}/Frameworks/libjpeg.62.dylib" @@ -228,8 +202,8 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk- msg "Copy Adwaita icons" iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do - mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} - ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} +mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} +ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} done ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" @@ -240,47 +214,39 @@ msg "Build GTK3 databases:" "${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders "${LOCAL_PREFIX}"/local/bin/gtk-query-immodules-3.0 "${LIB}"/im-* > "${ETC}"/gtk-3.0/gtk.immodules sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" -sed -i "" -e "s|/opt/local/|/usr/|" "${ETC}/gtk-3.0/gtk.immodules" - -# Install names -ModifyInstallNames - -# fix @rpath in Frameworks -msg "Registering @rpath in Frameworks folder:" -for frameworklibs in ${CONTENTS}/Frameworks/* ; do - echo " install_name_tool -delete_rpath /opt/local/lib '${frameworklibs}'" | bash -v - echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v -done +sed -i "" -e "s|/opt/local/|/Applications/RawTherapee.app/Contents/Frameworks/|" "${ETC}/gtk-3.0/gtk.immodules" # Mime directory msg "Copying shared files from ${GTK_PREFIX}:" ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime +# Install names +ModifyInstallNames + msg "Installing required application bundle files:" PROJECT_SOURCE_DATA_DIR="${PROJECT_SOURCE_DIR}/tools/osx" ditto "${PROJECT_SOURCE_DIR}/build/Resources" "${RESOURCES}" -# Executable loader -# Note: executable is renamed to 'rawtherapee-bin'. -mkdir "${MACOS}/bin" -ditto "${MACOS}/rawtherapee" "${MACOS}/bin/rawtherapee-bin" -rm "${MACOS}/rawtherapee" -install -m 0755 "${PROJECT_SOURCE_DATA_DIR}/executable_loader.in" "${MACOS}/rawtherapee" +ditto "${PROJECT_SOURCE_DIR}/rtdata/fonts" "${ETC}/fonts" + # App bundle resources ditto "${PROJECT_SOURCE_DATA_DIR}/"{rawtherapee,profile}.icns "${RESOURCES}" ditto "${PROJECT_SOURCE_DATA_DIR}/PkgInfo" "${CONTENTS}" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist.in" "${CONTENTS}/Info.plist" -install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist-bin.in" "${CONTENTS}/MacOS/bin/Info.plist" sed -i "" -e "s|@version@|${PROJECT_FULL_VERSION}| s|@shortVersion@|${PROJECT_VERSION}| s|@arch@|${arch}|" \ - "${CONTENTS}/Info.plist" -plutil -convert xml1 "${CONTENTS}/Info.plist" -plutil -convert xml1 "${CONTENTS}/MacOS/bin/Info.plist" +"${CONTENTS}/Info.plist" +plutil -convert binary1 "${CONTENTS}/Info.plist" update-mime-database -V "${CONTENTS}/Resources/share/mime" +msg "Build glib database:" +mkdir -p ${RESOURCES}/share/glib-2.0 +ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas +"${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" + # Append an LC_RPATH msg "Registering @rpath into the executable:" -echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${MACOS}/bin/rawtherapee-bin'" | bash -v +echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v ModifyInstallNames @@ -288,121 +254,118 @@ ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder:" for frameworklibs in ${CONTENTS}/Frameworks/* ; do - echo " install_name_tool -delete_rpath /opt/local/lib '${frameworklibs}'" | bash -v - echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v +echo " install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib '${frameworklibs}'" | bash -v +echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v done # Sign the app msg "Codesigning:" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" if ! test -z "$CODESIGNID" ; then -install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/Entitlements.plist" -plutil -convert xml1 "${CONTENTS}/Entitlements.plist" -install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt-bin.entitlements" "${CONTENTS}/MacOS/bin/Entitlements.plist" -plutil -convert xml1 "${CONTENTS}/MacOS/bin/Entitlements.plist" -codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" -o runtime --timestamp --entitlements "${APP}/Contents/MacOS/bin/Entitlements.plist" "${APP}/Contents/MacOS/bin/rawtherapee-bin" +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/rt.entitlements" +plutil -convert binary1 "${CONTENTS}/rt.entitlements" +codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp --entitlements "${CONTENTS}/rt.entitlements" "${CONTENTS}/rt.entitlements" +codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp --entitlements "${CONTENTS}/rt.entitlements" "${EXECUTABLE}" +codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp --entitlements "${CONTENTS}/rt.entitlements" "${EXECUTABLE}-cli" for frameworklibs in ${CONTENTS}/Frameworks/* ; do - codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.rawtherapee-bin" -o runtime --timestamp "${frameworklibs}" +codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp "${frameworklibs}" done -codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --entitlements "${CONTENTS}/Entitlements.plist" "${APP}" +codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --entitlements "${CONTENTS}/rt.entitlements" "${APP}" spctl -a -vvvv "${APP}" fi # Notarize the app NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" if ! test -z "$NOTARY" ; then - msg "Notarizing the application:" - ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" - uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` - echo "Result= $uuid" # Display identifier string - sleep 15 - while : - do - fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status - status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` - if [ "$status1" = "success" ]; then - xcrun stapler staple *app # staple the ticket - xcrun stapler validate -v *app - echo "Notarization success" - break - elif [ "$status1" = "in" ]; then - echo "Notarization still in progress, sleeping for 15 seconds and trying again" - sleep 15 - else - echo "Notarization failed fullstatus below" - echo "$fullstatus" - exit 1 - fi - done +msg "Notarizing the application:" +ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" +uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` +echo "Result= $uuid" # Display identifier string +sleep 15 +while : +do +fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status +status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` +if [ "$status1" = "success" ]; then +xcrun stapler staple *app # staple the ticket +xcrun stapler validate -v *app +echo "Notarization success" +break +elif [ "$status1" = "in" ]; then +echo "Notarization still in progress, sleeping for 15 seconds and trying again" +sleep 15 +else +echo "Notarization failed fullstatus below" +echo "$fullstatus" +exit 1 +fi +done fi function CreateDmg { - local srcDir="$(mktemp -dt $$)" +local srcDir="$(mktemp -dt $$)" - msg "Preparing disk image sources at ${srcDir}:" - cp -R "${APP}" "${srcDir}" - ditto Resources/AboutThisBuild.txt "${srcDir}" - ln -s /Applications "${srcDir}" +msg "Preparing disk image sources at ${srcDir}:" +cp -R "${APP}" "${srcDir}" +ditto "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt "${srcDir}" +ln -s /Applications "${srcDir}" - # Web bookmarks - function CreateWebloc { - defaults write "${srcDir}/$1" URL "$2" - mv "${srcDir}/$1".{plist,webloc} - } - CreateWebloc 'Website' 'http://www.rawtherapee.com/' - CreateWebloc 'Manual' 'http://rawpedia.rawtherapee.com/' +# Web bookmarks +function CreateWebloc { +defaults write "${srcDir}/$1" URL "$2" +mv "${srcDir}/$1".{plist,webloc} +} +CreateWebloc 'Website' 'http://www.rawtherapee.com/' +CreateWebloc 'Manual' 'http://rawpedia.rawtherapee.com/' - # Disk image name - dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" - lower_build_type="$(tr '[:upper:]' '[:lower:]' <<< "$CMAKE_BUILD_TYPE")" - if [[ ${lower_build_type} != release ]]; then - dmg_name="${dmg_name}_${lower_build_type}" - fi +# Disk image name +dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" +lower_build_type="$(tr '[:upper:]' '[:lower:]' <<< "$CMAKE_BUILD_TYPE")" +if [[ ${lower_build_type} != release ]]; then +dmg_name="${dmg_name}_${lower_build_type}" +fi - msg "Creating disk image:" - hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" +msg "Creating disk image:" +hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" - # Sign disk image - if ! test -z "$CODESIGNID" ; then - codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" - fi +# Sign disk image +if ! test -z "$CODESIGNID" ; then +codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" +fi + +# Notarize the dmg +if ! test -z "$NOTARY" ; then +msg "Notarizing the dmg:" +zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" +uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` +echo "dmg Result= $uuid" # Display identifier string +sleep 15 +while : +do +fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status +status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` +if [ "$status1" = "success" ]; then +xcrun stapler staple "${dmg_name}.dmg" # staple the ticket +xcrun stapler validate -v "${dmg_name}.dmg" +echo "dmg Notarization success" +break +elif [ "$status1" = "in" ]; then +echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" +sleep 15 +else +echo "dmg Notarization failed fullstatus below" +echo "$fullstatus" +exit 1 +fi +done +fi - # Notarize the dmg - - if ! test -z "$NOTARY" ; then - msg "Notarizing the dmg:" - zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" - uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` - echo "dmg Result= $uuid" # Display identifier string - sleep 15 - while : - do - fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status - status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` - if [ "$status1" = "success" ]; then - xcrun stapler staple "${dmg_name}.dmg" # staple the ticket - xcrun stapler validate -v "${dmg_name}.dmg" - echo "dmg Notarization success" - break - elif [ "$status1" = "in" ]; then - echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" - sleep 15 - else - echo "dmg Notarization failed fullstatus below" - echo "$fullstatus" - exit 1 - fi - done - fi - # Zip disk image for redistribution - msg "Zipping disk image for redistribution:" - - zip "${dmg_name}.zip" "${dmg_name}.dmg" Resources/AboutThisBuild.txt - rm "${dmg_name}.dmg" - - msg "Removing disk image caches:" - rm -rf "${srcDir}" +msg "Zipping disk image for redistribution:" +zip "${dmg_name}.zip" "${dmg_name}.dmg" "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" +rm "${dmg_name}.dmg" +msg "Removing disk image caches:" +rm -rf "${srcDir}" } CreateDmg msg "Finishing build:" From 209f8a5921de4ee46470321654bcbb0442599fda Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 16 Feb 2020 11:33:16 -0800 Subject: [PATCH 230/453] mac: sets the Resources font folder Sets a directory of fonts to use by the app @ Contents/Resources/etc/fonts (https://developer.apple.com/documentation/bundleresources/information_property_list/atsapplicationfontspath?language=objc) --- tools/osx/Info.plist.in | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/osx/Info.plist.in b/tools/osx/Info.plist.in index 7e4918cc0..4874567e7 100644 --- a/tools/osx/Info.plist.in +++ b/tools/osx/Info.plist.in @@ -31,6 +31,8 @@ GTK_OVERLAY_SCROLLING 0 + ATSApplicationFontsPath + etc/fonts CFBundleDevelopmentRegion English CFBundleDisplayName From 8b1438f23d6c8e172e35cb764172dfa1149440ff Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 14:53:36 -0800 Subject: [PATCH 231/453] mac: also set RT_SETTINGS and RT_CACHE --- tools/osx/Info.plist.in | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/osx/Info.plist.in b/tools/osx/Info.plist.in index 4874567e7..8e68a165f 100644 --- a/tools/osx/Info.plist.in +++ b/tools/osx/Info.plist.in @@ -30,6 +30,10 @@ similar GTK_OVERLAY_SCROLLING 0 + RT_SETTINGS + ~/Library/Application Support/RawTherapee/config + RT_CACHE + ~/Library/Application Support/RawTherapee/cache ATSApplicationFontsPath etc/fonts From d8d96784a492d446ff714d06c1049aea80361ab9 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 20:21:07 -0800 Subject: [PATCH 232/453] mac: set config path in options.cc --- rtgui/options.cc | 6 +++++- tools/osx/Info.plist.in | 8 ++++---- tools/osx/macosx_bundle.sh | 1 + 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index dcb16e1ea..fe19bf42e 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2270,8 +2270,12 @@ void Options::load(bool lightweight) const gchar* path; Glib::ustring dPath; +#ifdef __APPLE__ + path = g_getenv("HOME") + "Library/Application Support/RawTherapee/config"; +#else path = g_getenv("RT_SETTINGS"); - +#endif + if (path != nullptr) { rtdir = Glib::ustring(path); diff --git a/tools/osx/Info.plist.in b/tools/osx/Info.plist.in index 8e68a165f..cc445c1b0 100644 --- a/tools/osx/Info.plist.in +++ b/tools/osx/Info.plist.in @@ -30,13 +30,13 @@ similar GTK_OVERLAY_SCROLLING 0 - RT_SETTINGS - ~/Library/Application Support/RawTherapee/config - RT_CACHE - ~/Library/Application Support/RawTherapee/cache ATSApplicationFontsPath etc/fonts + LSMultipleInstancesProhibited + + LSMinimumSystemVersion + @minimum_macos_version@ CFBundleDevelopmentRegion English CFBundleDisplayName diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 35b80a44c..81746ba4b 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -104,6 +104,7 @@ GTK_PREFIX: ${GTK_PREFIX} PWD: ${PWD} __EOS__ +minimum_macos_version=${MINIMUM_SYSTEM_VERSION} LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" From 12ea3db9cb05ec27ad96fd57ec02f56c8c2e97d3 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 22:36:17 -0800 Subject: [PATCH 233/453] mac:build pathname in options.cc --- rtgui/options.cc | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index fe19bf42e..7bcf0b466 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2271,7 +2271,16 @@ void Options::load(bool lightweight) Glib::ustring dPath; #ifdef __APPLE__ - path = g_getenv("HOME") + "Library/Application Support/RawTherapee/config"; + const gchar* homedir; + const gchar* configdir; + homedir = g_getenv("HOME"); + configdir = "Library/Application Support/RawTherapee/config"; + int bufferSize = strlen(homedir) + strlen(configdir) + 1; + gchar* concatString = new gchar[ bufferSize ]; + strcpy( concatString, homedir ); + strcat( concatString, configdir ); + path = concatString; + delete[] concatString; #else path = g_getenv("RT_SETTINGS"); #endif From 0770363c6fa1ef79364c33907f7687d4610cc78e Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 22:53:56 -0800 Subject: [PATCH 234/453] mac:also build cache dir in options.cc --- rtgui/options.cc | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 7bcf0b466..6a2522de0 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2274,12 +2274,14 @@ void Options::load(bool lightweight) const gchar* homedir; const gchar* configdir; homedir = g_getenv("HOME"); - configdir = "Library/Application Support/RawTherapee/config"; + std::cout << "homedir=" << homedir << "\n"; + configdir = "/../../../Application Support/RawTherapee/config"; int bufferSize = strlen(homedir) + strlen(configdir) + 1; gchar* concatString = new gchar[ bufferSize ]; strcpy( concatString, homedir ); strcat( concatString, configdir ); path = concatString; + std::cout << concatString << "\n"; delete[] concatString; #else path = g_getenv("RT_SETTINGS"); @@ -2326,8 +2328,23 @@ void Options::load(bool lightweight) } // Modify the path of the cache folder to the one provided in RT_CACHE environment variable +#ifdef __APPLE__ + const gchar* homedir; + const gchar* cachedir; + homedir = g_getenv("HOME"); // This returns the current container + std::cout << "homedir=" << homedir << "\n"; + configdir = "/../../../Application Support/RawTherapee/cache"; + int bufferSize = strlen(homedir) + strlen(cachedir) + 1; + gchar* concatString = new gchar[ bufferSize ]; + strcpy( concatString, homedir ); + strcat( concatString, cachedir ); + std::cout << path << "\n"; + path = concatString; + delete[] concatString; +#else path = g_getenv("RT_CACHE"); - +#endif + if (path != nullptr) { cacheBaseDir = Glib::ustring(path); From af624df79883d3d06290a3c659038b04f0e9afdd Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 23:03:48 -0800 Subject: [PATCH 235/453] mac:use another variable name for cache folder --- rtgui/options.cc | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 6a2522de0..efc718c20 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2271,9 +2271,10 @@ void Options::load(bool lightweight) Glib::ustring dPath; #ifdef __APPLE__ + // Build Application Support directory path for macOS. const gchar* homedir; const gchar* configdir; - homedir = g_getenv("HOME"); + homedir = g_getenv("HOME"); // This returns the current container std::cout << "homedir=" << homedir << "\n"; configdir = "/../../../Application Support/RawTherapee/config"; int bufferSize = strlen(homedir) + strlen(configdir) + 1; @@ -2327,20 +2328,17 @@ void Options::load(bool lightweight) rtdir = Glib::build_filename(argv0, "mysettings"); } - // Modify the path of the cache folder to the one provided in RT_CACHE environment variable + // Modify the path of the cache folder to the one provided in RT_CACHE environment variable. Build the cache folder name in macOS. #ifdef __APPLE__ - const gchar* homedir; const gchar* cachedir; - homedir = g_getenv("HOME"); // This returns the current container - std::cout << "homedir=" << homedir << "\n"; - configdir = "/../../../Application Support/RawTherapee/cache"; - int bufferSize = strlen(homedir) + strlen(cachedir) + 1; - gchar* concatString = new gchar[ bufferSize ]; - strcpy( concatString, homedir ); - strcat( concatString, cachedir ); + cachedir = "/../../../Application Support/RawTherapee/cache"; + int bufferSize2 = strlen(homedir) + strlen(cachedir) + 1; //reuse homedir from above. + gchar* concatString2 = new gchar[ bufferSize2 ]; + strcpy( concatString2, homedir ); + strcat( concatString2, cachedir ); std::cout << path << "\n"; - path = concatString; - delete[] concatString; + path = concatString2; + delete[] concatString2; #else path = g_getenv("RT_CACHE"); #endif From 910ce572b08ecc0cbfd6853ee694db7978ccd080 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 23:13:46 -0800 Subject: [PATCH 236/453] mac:reorder a cout --- rtgui/options.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index efc718c20..9bf1302ed 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2282,7 +2282,7 @@ void Options::load(bool lightweight) strcpy( concatString, homedir ); strcat( concatString, configdir ); path = concatString; - std::cout << concatString << "\n"; + std::cout << "config=" << path << "\n"; delete[] concatString; #else path = g_getenv("RT_SETTINGS"); @@ -2336,8 +2336,8 @@ void Options::load(bool lightweight) gchar* concatString2 = new gchar[ bufferSize2 ]; strcpy( concatString2, homedir ); strcat( concatString2, cachedir ); - std::cout << path << "\n"; path = concatString2; + std::cout << "cache=" << path << "\n"; delete[] concatString2; #else path = g_getenv("RT_CACHE"); From 4905b03372306dd19d16cfa5f9d126f982823ea2 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 23:47:44 -0800 Subject: [PATCH 237/453] mac: add some comments --- rtdata/options/options.osx | 1 + rtgui/options.cc | 6 +++--- tools/osx/Info.plist.in | 4 ++++ 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index bffd48495..9c1cb4c92 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -39,5 +39,6 @@ CustomProfileBuilder= #ImgDefault=Neutral [GUI] +# Set the included font as default FontFamily=DroidSansMonoSlashed Regular CPFontFamily=DroidSansMonoSlashed Regular diff --git a/rtgui/options.cc b/rtgui/options.cc index 9bf1302ed..7625e6620 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2274,9 +2274,9 @@ void Options::load(bool lightweight) // Build Application Support directory path for macOS. const gchar* homedir; const gchar* configdir; - homedir = g_getenv("HOME"); // This returns the current container + homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library std::cout << "homedir=" << homedir << "\n"; - configdir = "/../../../Application Support/RawTherapee/config"; + configdir = "/../../../Application Support/RawTherapee/config"; // Back out of containers and into App. Support int bufferSize = strlen(homedir) + strlen(configdir) + 1; gchar* concatString = new gchar[ bufferSize ]; strcpy( concatString, homedir ); @@ -2331,7 +2331,7 @@ void Options::load(bool lightweight) // Modify the path of the cache folder to the one provided in RT_CACHE environment variable. Build the cache folder name in macOS. #ifdef __APPLE__ const gchar* cachedir; - cachedir = "/../../../Application Support/RawTherapee/cache"; + cachedir = "/../../../Application Support/RawTherapee/cache"; // Back out of containers and into App. Support int bufferSize2 = strlen(homedir) + strlen(cachedir) + 1; //reuse homedir from above. gchar* concatString2 = new gchar[ bufferSize2 ]; strcpy( concatString2, homedir ); diff --git a/tools/osx/Info.plist.in b/tools/osx/Info.plist.in index cc445c1b0..ee11ba6d7 100644 --- a/tools/osx/Info.plist.in +++ b/tools/osx/Info.plist.in @@ -12,6 +12,8 @@ /Applications/RawTherapee.app/Contents/Frameworks GTK_IM_MODULE_FILE /Applications/RawTherapee.app/Contents/Resources/etc/gtk-3.0/gtk.immodules + GTK_MODULES + /Applications/RawTherapee.app/Contents/Frameworks/im-quartz.so XDG_DATA_HOME /Applications/RawTherapee.app/Contents/Resources/share GSETTINGS_SCHEMA_DIR @@ -30,6 +32,8 @@ similar GTK_OVERLAY_SCROLLING 0 + GDK_NATIVE_WINDOWS + 1 ATSApplicationFontsPath etc/fonts From 7a258d1a25a1af37637a63fbc67d06a221001ce7 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 16 Feb 2020 23:56:24 -0800 Subject: [PATCH 238/453] mac: remove cout outputs --- rtgui/options.cc | 3 --- 1 file changed, 3 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 7625e6620..d447bc980 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2275,14 +2275,12 @@ void Options::load(bool lightweight) const gchar* homedir; const gchar* configdir; homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library - std::cout << "homedir=" << homedir << "\n"; configdir = "/../../../Application Support/RawTherapee/config"; // Back out of containers and into App. Support int bufferSize = strlen(homedir) + strlen(configdir) + 1; gchar* concatString = new gchar[ bufferSize ]; strcpy( concatString, homedir ); strcat( concatString, configdir ); path = concatString; - std::cout << "config=" << path << "\n"; delete[] concatString; #else path = g_getenv("RT_SETTINGS"); @@ -2337,7 +2335,6 @@ void Options::load(bool lightweight) strcpy( concatString2, homedir ); strcat( concatString2, cachedir ); path = concatString2; - std::cout << "cache=" << path << "\n"; delete[] concatString2; #else path = g_getenv("RT_CACHE"); From c9f887281e952e9b4eae964f62ef42e2e72abc80 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 17 Feb 2020 06:55:18 -0800 Subject: [PATCH 239/453] mac: truncate homedir --- rtgui/options.cc | 37 +++++++++++++++++-------------------- tools/osx/macosx_bundle.sh | 26 +++++++++++++------------- 2 files changed, 30 insertions(+), 33 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index d447bc980..31b816a19 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2272,20 +2272,18 @@ void Options::load(bool lightweight) #ifdef __APPLE__ // Build Application Support directory path for macOS. - const gchar* homedir; - const gchar* configdir; - homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library - configdir = "/../../../Application Support/RawTherapee/config"; // Back out of containers and into App. Support - int bufferSize = strlen(homedir) + strlen(configdir) + 1; - gchar* concatString = new gchar[ bufferSize ]; - strcpy( concatString, homedir ); - strcat( concatString, configdir ); - path = concatString; - delete[] concatString; + const gchar* homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library + const gchar* configdir = "/Application Support/RawTherapee/config"; + gchar* homebuf = g_strnfill(789, 'a'); + gsize homelength = strlen(homedir); + g_stpcpy(homebuf, homedir); + homebuf[homelength-45] = '\0'; + configdir = "/Application Support/RawTherapee/config"; // Back out of containers and into App. Support + const gchar* pathconcat = g_strconcat(homebuf, configdir); + path = pathconcat; #else path = g_getenv("RT_SETTINGS"); #endif - if (path != nullptr) { rtdir = Glib::ustring(path); @@ -2294,6 +2292,8 @@ void Options::load(bool lightweight) throw Error(msg); } } else { + + #ifdef WIN32 WCHAR pathW[MAX_PATH] = {0}; @@ -2329,25 +2329,22 @@ void Options::load(bool lightweight) // Modify the path of the cache folder to the one provided in RT_CACHE environment variable. Build the cache folder name in macOS. #ifdef __APPLE__ const gchar* cachedir; - cachedir = "/../../../Application Support/RawTherapee/cache"; // Back out of containers and into App. Support - int bufferSize2 = strlen(homedir) + strlen(cachedir) + 1; //reuse homedir from above. - gchar* concatString2 = new gchar[ bufferSize2 ]; - strcpy( concatString2, homedir ); - strcat( concatString2, cachedir ); - path = concatString2; - delete[] concatString2; + cachedir = "/Application Support/RawTherapee/cache"; // Back out of containers and into App. Support + const gchar* pathconcat2 = g_strconcat(homebuf, cachedir); + path = pathconcat2; #else path = g_getenv("RT_CACHE"); #endif - if (path != nullptr) { cacheBaseDir = Glib::ustring(path); - + if (!Glib::path_is_absolute(cacheBaseDir)) { Glib::ustring msg = Glib::ustring::compose("Cache base dir %1 is not absolute", cacheBaseDir); throw Error(msg); } } + + // No environment variable provided, so falling back to the multi user mode, if enabled else if (options.multiUser) { #ifdef WIN32 diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 81746ba4b..4a9d8d41c 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -217,16 +217,16 @@ msg "Build GTK3 databases:" sed -i "" -e "s|${PWD}/RawTherapee.app/Contents/|/Applications/RawTherapee.app/Contents/|" "${ETC}/gtk-3.0/gdk-pixbuf.loaders" "${ETC}/gtk-3.0/gtk.immodules" sed -i "" -e "s|/opt/local/|/Applications/RawTherapee.app/Contents/Frameworks/|" "${ETC}/gtk-3.0/gtk.immodules" +# Install names +ModifyInstallNames + # Mime directory msg "Copying shared files from ${GTK_PREFIX}:" ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/mime -# Install names -ModifyInstallNames - msg "Installing required application bundle files:" PROJECT_SOURCE_DATA_DIR="${PROJECT_SOURCE_DIR}/tools/osx" -ditto "${PROJECT_SOURCE_DIR}/build/Resources" "${RESOURCES}" +ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" ditto "${PROJECT_SOURCE_DIR}/rtdata/fonts" "${ETC}/fonts" # App bundle resources @@ -260,19 +260,19 @@ echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Fra done # Sign the app -msg "Codesigning:" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" -if ! test -z "$CODESIGNID" ; then +if ! test -z "${CODESIGNID}" ; then +msg "Codesigning:" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/rt.entitlements" plutil -convert binary1 "${CONTENTS}/rt.entitlements" -codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp --entitlements "${CONTENTS}/rt.entitlements" "${CONTENTS}/rt.entitlements" -codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp --entitlements "${CONTENTS}/rt.entitlements" "${EXECUTABLE}" -codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp --entitlements "${CONTENTS}/rt.entitlements" "${EXECUTABLE}-cli" +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements '${CONTENTS}/rt.entitlements' '${CONTENTS}/rt.entitlements' +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements '${CONTENTS}/rt.entitlements' '${EXECUTABLE}' +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements '${CONTENTS}/rt.entitlements' '${EXECUTABLE}-cli' for frameworklibs in ${CONTENTS}/Frameworks/* ; do -codesign -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --timestamp "${frameworklibs}" +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp '${frameworklibs}' done -codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i "com.rawtherapee.RawTherapee" -o runtime --entitlements "${CONTENTS}/rt.entitlements" "${APP}" -spctl -a -vvvv "${APP}" +codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements '${CONTENTS}/rt.entitlements' '${APP}' +spctl -a -vvvv ${APP} fi # Notarize the app @@ -331,7 +331,7 @@ hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAM # Sign disk image if ! test -z "$CODESIGNID" ; then -codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" +codesign --deep --force -v -s ""${CODESIGNID}"" --timestamp "${dmg_name}.dmg" fi # Notarize the dmg From c6579a4efc285818db69fe053c0525f0a757d64a Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 17 Feb 2020 07:32:19 -0800 Subject: [PATCH 240/453] mac:fix a codesign stmnt --- tools/osx/macosx_bundle.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 4a9d8d41c..bdfbf2aee 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -254,7 +254,7 @@ ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder:" -for frameworklibs in ${CONTENTS}/Frameworks/* ; do +for frameworklibs in "${CONTENTS}"/Frameworks/* ; do echo " install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib '${frameworklibs}'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v done @@ -263,15 +263,15 @@ done CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" if ! test -z "${CODESIGNID}" ; then msg "Codesigning:" -install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/rt.entitlements" "${CONTENTS}/rt.entitlements" -plutil -convert binary1 "${CONTENTS}/rt.entitlements" -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements '${CONTENTS}/rt.entitlements' '${CONTENTS}/rt.entitlements' -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements '${CONTENTS}/rt.entitlements' '${EXECUTABLE}' -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements '${CONTENTS}/rt.entitlements' '${EXECUTABLE}-cli' -for frameworklibs in ${CONTENTS}/Frameworks/* ; do -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp '${frameworklibs}' +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CONTENTS}"/rt.entitlements +plutil -convert binary1 "${CONTENTS}"/rt.entitlements +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${CONTENTS}"/rt.entitlements +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}" +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}"-cli +for frameworklibs in "${LIB}" ; do +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp "${frameworklibs}" done -codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements '${CONTENTS}/rt.entitlements' '${APP}' +codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CONTENTS}/rt.entitlements" "${APP}" spctl -a -vvvv ${APP} fi From 18c360ed4d7ffec28ce342fc719c55eed4169fbe Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 17 Feb 2020 07:34:07 -0800 Subject: [PATCH 241/453] mac:fix a glob for frameworks codesign --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index bdfbf2aee..f08e45c48 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -268,7 +268,7 @@ plutil -convert binary1 "${CONTENTS}"/rt.entitlements codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${CONTENTS}"/rt.entitlements codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}" codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}"-cli -for frameworklibs in "${LIB}" ; do +for frameworklibs in "${LIB}"/* ; do codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp "${frameworklibs}" done codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CONTENTS}/rt.entitlements" "${APP}" From 38037aee8c2658f928daefb566c55184a4506e0f Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 17 Feb 2020 11:24:05 -0800 Subject: [PATCH 242/453] mac:use a std::string --- rtgui/options.cc | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 31b816a19..5b908d499 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2272,15 +2272,15 @@ void Options::load(bool lightweight) #ifdef __APPLE__ // Build Application Support directory path for macOS. - const gchar* homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library - const gchar* configdir = "/Application Support/RawTherapee/config"; - gchar* homebuf = g_strnfill(789, 'a'); - gsize homelength = strlen(homedir); - g_stpcpy(homebuf, homedir); + const char* homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library + std::string configdir = "/Application Support/RawTherapee/config"; + std::string homebuf{homedir}; + int homelength = strlen(homebuf.c_str()); homebuf[homelength-45] = '\0'; - configdir = "/Application Support/RawTherapee/config"; // Back out of containers and into App. Support - const gchar* pathconcat = g_strconcat(homebuf, configdir); - path = pathconcat; + configdir = "/Application Support/RawTherapee/config"; + std::string configpath = homebuf + configdir; + path = configpath.c_str(); + std::cout< Date: Mon, 17 Feb 2020 11:31:39 -0800 Subject: [PATCH 243/453] mac: use fewer variables --- rtgui/options.cc | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 5b908d499..3cd3adb8a 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2273,12 +2273,10 @@ void Options::load(bool lightweight) #ifdef __APPLE__ // Build Application Support directory path for macOS. const char* homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library - std::string configdir = "/Application Support/RawTherapee/config"; std::string homebuf{homedir}; int homelength = strlen(homebuf.c_str()); - homebuf[homelength-45] = '\0'; - configdir = "/Application Support/RawTherapee/config"; - std::string configpath = homebuf + configdir; + homebuf[homelength-44] = '\0'; + std::string configpath = homebuf + "/Application Support/RawTherapee/config"; path = configpath.c_str(); std::cout< Date: Mon, 17 Feb 2020 11:44:01 -0800 Subject: [PATCH 244/453] mac:use strcat() --- rtgui/options.cc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 3cd3adb8a..84cd4d857 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2276,8 +2276,9 @@ void Options::load(bool lightweight) std::string homebuf{homedir}; int homelength = strlen(homebuf.c_str()); homebuf[homelength-44] = '\0'; - std::string configpath = homebuf + "/Application Support/RawTherapee/config"; - path = configpath.c_str(); + std::string homeconfig{homebuf}; + std::strcat(homeconfig, "/Application Support/RawTherapee/config"); + path = homebuf.c_str(); std::cout< Date: Mon, 17 Feb 2020 11:47:09 -0800 Subject: [PATCH 245/453] mac:change a variable name --- rtgui/options.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 84cd4d857..93a898987 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2275,7 +2275,7 @@ void Options::load(bool lightweight) const char* homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library std::string homebuf{homedir}; int homelength = strlen(homebuf.c_str()); - homebuf[homelength-44] = '\0'; + homebuf[homelength-44] = '\0'; // Truncate path to just ${HOME}/Library std::string homeconfig{homebuf}; std::strcat(homeconfig, "/Application Support/RawTherapee/config"); path = homebuf.c_str(); @@ -2328,8 +2328,8 @@ void Options::load(bool lightweight) // Modify the path of the cache folder to the one provided in RT_CACHE environment variable. Build the cache folder name in macOS. #ifdef __APPLE__ std::string homecache{homebuf}; - std::strcat(homecache + "/Application Support/RawTherapee/cache"); - path = cachepath.c_str(); + std::strcat(homecache, "/Application Support/RawTherapee/cache"); + path = homecache.c_str(); std::cout< Date: Mon, 17 Feb 2020 11:55:56 -0800 Subject: [PATCH 246/453] mac:try a string pointer --- rtgui/options.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 93a898987..b09a16ae8 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2277,9 +2277,9 @@ void Options::load(bool lightweight) int homelength = strlen(homebuf.c_str()); homebuf[homelength-44] = '\0'; // Truncate path to just ${HOME}/Library std::string homeconfig{homebuf}; - std::strcat(homeconfig, "/Application Support/RawTherapee/config"); + std::strcat(&homeconfig[0], "/Application Support/RawTherapee/config"); path = homebuf.c_str(); - std::cout< Date: Mon, 17 Feb 2020 12:21:45 -0800 Subject: [PATCH 247/453] mac: spell font name correctly --- rtdata/options/options.osx | 4 ++-- rtgui/options.cc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index 9c1cb4c92..f5477d11d 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -40,5 +40,5 @@ CustomProfileBuilder= [GUI] # Set the included font as default -FontFamily=DroidSansMonoSlashed Regular -CPFontFamily=DroidSansMonoSlashed Regular +FontFamily=Droid Sans Mono Slashed Regular +CPFontFamily=Droid Sans Mono Slashed Regular diff --git a/rtgui/options.cc b/rtgui/options.cc index b09a16ae8..615485c42 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2278,7 +2278,7 @@ void Options::load(bool lightweight) homebuf[homelength-44] = '\0'; // Truncate path to just ${HOME}/Library std::string homeconfig{homebuf}; std::strcat(&homeconfig[0], "/Application Support/RawTherapee/config"); - path = homebuf.c_str(); + path = homeconfig.c_str(); std::cout<<"config="< Date: Mon, 17 Feb 2020 13:18:40 -0800 Subject: [PATCH 248/453] mac:options font name adjust. --- rtdata/options/options.osx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/options/options.osx b/rtdata/options/options.osx index f5477d11d..c83aea179 100644 --- a/rtdata/options/options.osx +++ b/rtdata/options/options.osx @@ -40,5 +40,5 @@ CustomProfileBuilder= [GUI] # Set the included font as default -FontFamily=Droid Sans Mono Slashed Regular -CPFontFamily=Droid Sans Mono Slashed Regular +FontFamily=Droid Sans Mono Slashed +CPFontFamily=Droid Sans Mono Slashed From b8fce85a2d8c4afce9e8b8ecafdf80a696f09a69 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 17 Feb 2020 13:40:39 -0800 Subject: [PATCH 249/453] mac:remove debug outputs --- rtgui/options.cc | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 615485c42..414eec521 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2275,11 +2275,11 @@ void Options::load(bool lightweight) const char* homedir = g_getenv("HOME"); // This returns the current container data dir in ~/Library std::string homebuf{homedir}; int homelength = strlen(homebuf.c_str()); - homebuf[homelength-44] = '\0'; // Truncate path to just ${HOME}/Library + homebuf[homelength-44] = '\0'; // Terminate string after ${HOME}/Library std::string homeconfig{homebuf}; std::strcat(&homeconfig[0], "/Application Support/RawTherapee/config"); path = homeconfig.c_str(); - std::cout<<"config="< Date: Mon, 17 Feb 2020 14:14:57 -0800 Subject: [PATCH 250/453] mac:lowercase bundle UUID --- rtgui/options.cc | 1 - tools/osx/macosx_bundle.sh | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 414eec521..d85317c9d 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2279,7 +2279,6 @@ void Options::load(bool lightweight) std::string homeconfig{homebuf}; std::strcat(&homeconfig[0], "/Application Support/RawTherapee/config"); path = homeconfig.c_str(); - delete(homedir); #else path = g_getenv("RT_SETTINGS"); #endif diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index f08e45c48..be76face3 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -131,7 +131,7 @@ echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TY echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -echo "Bundle UUID: $(uuidgen)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt msg "Copying release files:" ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" From b27c78916e5a432b7485537bf300cbce1d9849fb Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 14:30:46 -0800 Subject: [PATCH 251/453] mac:travis adjustment --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bab7397a6..45c877559 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: CMAKE_CXX_STANDARD: 11 PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' - RAW_THERAPEE_MINOR: '7' + RAW_THERAPEE_MINOR: '8' C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | # GITHUB_REF is the ref that triggered the build, like refs/heads/new-feature - the next line parses that to REF: the branch name only (new-feature) @@ -54,6 +54,7 @@ jobs: -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" .. make --jobs make install From 3041169499dc293e39dff4a5015d698640f7cc2c Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 14:49:17 -0800 Subject: [PATCH 252/453] UpdateInfo.cmake: remove an errant whitespace --- UpdateInfo.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 1c31cf44f..a4de8fe1a 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -63,7 +63,7 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() - + execute_process(COMMAND uname -mrs OUTPUT_VARIABLE BUILDINFO_OS OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date -Ru OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date +%s OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) From 2029bfdf14b0e25e4c202cba5e7f8b52e4cb9de5 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 14:50:24 -0800 Subject: [PATCH 253/453] mac: revert the travis yml for this PR --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d1f1578f8..bab7397a6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: CMAKE_CXX_STANDARD: 11 PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' - RAW_THERAPEE_MINOR: '8' + RAW_THERAPEE_MINOR: '7' C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include run: | # GITHUB_REF is the ref that triggered the build, like refs/heads/new-feature - the next line parses that to REF: the branch name only (new-feature) From 9047e89bd3b461d4c4f3593dbba382ed7523ce2d Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 14:55:01 -0800 Subject: [PATCH 254/453] options.cc: remove a whitespace --- rtgui/options.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index d85317c9d..71e77fa70 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2334,7 +2334,7 @@ void Options::load(bool lightweight) #endif if (path != nullptr) { cacheBaseDir = Glib::ustring(path); - + if (!Glib::path_is_absolute(cacheBaseDir)) { Glib::ustring msg = Glib::ustring::compose("Cache base dir %1 is not absolute", cacheBaseDir); throw Error(msg); From 6bc7e16d9b473302ba6236d1149f0072a52f1496 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 15:26:41 -0800 Subject: [PATCH 255/453] remove another whitespace --- rtgui/options.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index 71e77fa70..b0f8d714e 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2291,7 +2291,6 @@ void Options::load(bool lightweight) } } else { - #ifdef WIN32 WCHAR pathW[MAX_PATH] = {0}; From 007fe17e48d2dab6849968e012b04c8f20ef408c Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 15:27:59 -0800 Subject: [PATCH 256/453] another whitespace removed --- rtgui/options.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/rtgui/options.cc b/rtgui/options.cc index b0f8d714e..5e9d48cc5 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -2340,7 +2340,6 @@ void Options::load(bool lightweight) } } - // No environment variable provided, so falling back to the multi user mode, if enabled else if (options.multiUser) { #ifdef WIN32 From 85bffa10381450bee541283616e3572665f12314 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Mon, 17 Feb 2020 15:35:31 -0800 Subject: [PATCH 257/453] mac: use the LIB var to refer to frameworks dir. --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index be76face3..aa6228500 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -254,7 +254,7 @@ ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder:" -for frameworklibs in "${CONTENTS}"/Frameworks/* ; do +for frameworklibs in "${LIB}"/* ; do echo " install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib '${frameworklibs}'" | bash -v echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v done From 6e7943752f7983a29e83e8ef2aa99aac4f90684b Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 18 Feb 2020 13:29:42 +0100 Subject: [PATCH 258/453] Added Canon PowerShot S120 dual-illuminant DCP Closes #5637 --- rtdata/dcpprofiles/Canon PowerShot S120.dcp | Bin 0 -> 1102974 bytes rtengine/camconst.json | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 rtdata/dcpprofiles/Canon PowerShot S120.dcp diff --git a/rtdata/dcpprofiles/Canon PowerShot S120.dcp b/rtdata/dcpprofiles/Canon PowerShot S120.dcp new file mode 100644 index 0000000000000000000000000000000000000000..8bb089c293d86c32b47fdbec2edccbc0522cc371 GIT binary patch literal 1102974 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 z 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

    1iPn_JsTAnkz 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

    _9brUvm0+A>nv`cEvLa;=tI z^;9D4sL>U}{&R3E#Wf}xQYz2BwA#v(Tak#(q2_$k_o4|kMN^k?#+qL#<~9q)(k*;1 zm9qHG^_+g3II(VPMdEsQ=zU@B=aecASU9qtXKz^=FN$Mqu+>3>rJFv;w{BTtNGLI2 z69>q%+Du17Lk$Kmt|$E|F-On&%q@K?q?c}1|7k@IesEDbF~k{#!O@VC0rYR+84JO=M6o^XuC=w z7+jY*`IDY@Z)PYK@D6yQW=(B6ePPb?Zjy2QmNLC_1WdZ~><%wc7KB8i>tLQ=EmkYy zB4>82F@7s^l<-k8m}Sjg-?eb1xn(T$ym;>9*(i(I&u|oW&G%R0ijHsSC3=+o=LP45 z-)vt@dCuH&;Gnn`=#H!|^tL!$AZ&X$QqxO=L6r%jmA?)8vWFj9WhfrEwt~dI%?{$rW`}@E9 zb-B}vwF|yX$Ay2_v&|uG(O65YW}F9p3)A`)GhgKpJLEk~yOLb6z7N?ieb_|%iX5(+ zjB|L|E9Lg(P|Rn&1d66=OC5A2++tYQ6j zU;_KkeWH~G5#;vqY+C%%MfsCN|1aiV=RIc1*_*M5h)#lPosn{obHEfeYsGy-lvH8{ z#xW!nGc4 z{wAe5?;{JE@qYI+SGho5_8QjAI@z(x)~pD0*XMo2%|W?(EfVIeF{)}zR9uO_>NSa; zqxT0ZO_szUgZ04mG2N86Ik7m;T(K>(wX&W%0iWWDRes$-**!Xz{wd7oXR0e3{bJzF z{E*-1llT`iuzVHkiVu%Oow7vswVCMhTmyqvp`yhXOROPwD$Utk9Bs=u zS88zV&tUQVg9SDb3pkkC;Jq|9a5LdOaY94Ua-bK^Q6I9+(!L^#T11<8PW*3vwpq7E zYi?|TSgz;3u|2hRu);*f`MmobQ+P#BvX1?`}xFbY&m=32p1MW~lC@ zm<|g=Vsm<*FP4<4>|K1~y{WQYPv!dN2sG%!df;($Wi4lRH%7AO?^Q#YY7vb@-uteY zyb?XwTTW*EHqNh7n2;-36vkZSaa^q3Mm>4vhX?6JqVM+@yx|%i>b6}RV2$^DA@^+h z8qvQqwdlEqC{N^4cjDDuzU!BnqN_(BTGrLz={Aip<6O0|kp_)3 z!bKfdSB%e~Z%thf5jWNzr|I+2o4n34{h7F1H<{<(cwv}o357mJpZ5(F84sp&#*vJ< zgL;Y8wJq_Uv+sz8oy3YqHkinIZ(U^%k?_z9+qO^#VA&|~dq1_!X8%2hy)$~GHoGQ& z<~jDY#%h(EJS!BeC9dFcvhsDyEX-z{f8HCf?C#=^aK`y%wyyF(KNN0^^9bDBp~Y1GmWip3( z1-qGt?I&~-enxgUSf#<~>pesrlNmVJmj2Y<`eNRB3m6VbM*gZk;+4mA%x|BJht2wl z3uP8~d`N?7)BB3!$82!^DtnJ_JBSX;ycS?6|@<&M(O=%0*W)J z+jB}^sk$`<4-JV8>iJMycx!=l-sR6)Z4&LGJyGOGyye#vu^~MWS*z9LB+nF|y@T05_(pyB>%_q5^^))H3&a=B*YBBF%X>Kme=TWn=SG%% z#J~+J*%LoIY>({P$pM#-YLJt6OLnH-_1L$}Cs8#-{2(ht@;Q1z8}TB*0{O%bm@m{9 zUe1;XAvVI?WuO?`eAa(hh@HczTU$u}?_tj7#~RDmj>O~mxWCu)JM+n+#Zz;nut!(Y z;=LShWQk&L_PAm<$X(Xipx$`i<$svU74SoM_C1bI{Z=L~48fG^yo1|jl{LB_ijSPR zI0mjMonsIV!$0h?{61#*Adwh0)_bB=rmEg`Y5=gt>zaK_<%MVr=i1I6)mCb>Ee3fu zJWux^Y72*dDKHA-Ph;Y$2uf#YrgcIbN>}Ri1Wl&X-q{lijCN#E7wX3i9hVd{5+%P zbty454tJP`TReLuMX_fPxs~4P*M3QNdd6enF}{ngHDFjX4uMzrGY{23fk6!P@6ji+ zRduW*C*sv_&I%WNmOfn#hb3qIIw3bC-{cS+B8Ghb;>}Xuul|VJ#I?G5qGU}>_>m9% z^JDuAgR5NNY)F6b0YhZH6no@)(FeTd5&8E>8)(gw(fDIa5q!rQD{pJ?vo2A5LMLMas5L7?wH1s>H)P3sp0a!=im>A$g=%UEb)T<@SReN z(zXMw5jaH+mm?nxZ@StduA>@TzdTXp$o>dnEggElpLBdVy~)a%D?(>VOU{JBglA|$ z&tz$O?Figp4v(u`D%~)OM5mhEzt8qa|8ipf^>uR$J0oqTHij8%kL;vp(iubQgWB>A zn^^T5lX@7$AcZ@LHZjz! zV+}KLWTJSHXotb`=u5R|gb3$3`}S)zTJ|@RzLHyi?)Trgf|~)+Wu4z!Vms%;o&(R6 z6pbO5?H^*i@3&Mf*VtlDb=J?iwWNzz{V^;?jZ@AOrGYy_5wnwXhepv-k4ItH$2pP4 zev#CsO9X1N$2-7wk5tW(Snf}14C;PfTDvt0Hmpg;-+3eHRf}N{mv^zVby0U#EIe61 z7w>A1)d#2zFq<`SjsCEENex#mdn4^tXzxm234X7RJ4`URG9Dv3knb>hDx!7cFr+`d z2Iq37F`K=P;mo&J#$xOh>aelynpJ`SKi?5U3U6(5VAT+biA z89;S44!!5I|2)tHy{U=Pfp@NxV;x|2m3q?cG%&3U!0Cbn_*ifr$$GrKK|J;lb2XB4 ztzSvhFVSe=c9vS7^rML{(C|KQ55I|FIB-*gF}KFx*UccTV5}~lX%E|B{xH3kj4|CS zqzC5Ss2!C8(-XC%1{>V5r4BumFX+ncYP0rpOQm+?L)ql1Gc3oX!l{{|=r-2{w}|Kd z8l5CoFL6UWdnWs9I*Q-aBdVAajTN^iO8Z+-Gc4}!dv^<`#Ilw(t?(?FT!YD##nt_+ zvAU%iXf#1J;D{|M&eLz=Z8xcL6YBh1uqG)Em$uyw#ZbN%+t$mZl&<0Eo6nh7mr^O+ zlY4e6Im<`xO2fBC;yu@Pv0hD_{>5G~>y7uG?J&?X28R9E@0~sfn$6^u@Salm#su-d z7aS=<{%I?p0McDS;aQuJ`|*!#g+a0Gsq(*xYHJK-uK07s zMz!*>EhZhLw#nH+QsTe>6iLK44osD9{tSghG&%XrH%dj+R2-t=Tv9$QU7i<#!AsO= zll4jJ%-)WXmVbV~Dar;@1NFBW`S)f}EYk68`)k>;j~jxH@Xy~*6blPIvDPXD z|H$rQacltA33`njs3Fz-MGYZpH~;TBSpR-XS=%Ds|SU>6>?cyxpTo&|} zCg4OK>uY#J4hq|#*Gi^`#2 z9u1o+ddto{gtBO2M875@rPF5o?h=f}oa@_uoR3h2-g9?Su-n!TTQa?P7Xa@cDC!#*{l!sSu=lJ@@~|it=7o7MSu6Y;i}dKc0dZX zHAaq;()hk=wdR?)X1=5*M|I?MHJY3*mcFeH$6U_Y-|v4ct^6K=wn6k;4{m@Y%P8tG zbB{difr0y@@tAYx*I&m%kNwX!-8oNr>Wbf9ak%NpzUZf9?A;yDc?kO+PxEp2GQFqt zx%c01#({nGxY(>=FI9#;&y6jklc64c4sWU3G)75AaP1o?R8x1SYYN)6ypEduU0(mB zAme-mCU6d(REwUn&Gw+yf&e5wsXpi?hY{Kp*@W zK<N4b?-!=4-lvr925X%=?2x9sRJE2LVJ&!{#THIQ1n->7|b*eFKzGTDyxHoeu>m`KMj22h8d zc%B1`rN@O~NY!U8{k~k9+AM-PkZLrz@LoES5Q#3lKN{<_gxPcQn<810FE_vo_UF4) z5U;Y>f_=wW9Ph-to>>%n>c+z|m_5wXx#%?|0gKryDABA(6gBgHkh^zwS1CqNN5}gK z`RQ%1pw06{JY)^_C;A1(ccZuG#1xoE{>14%@pyWPzTSm8M$dRRf6*=#F5(-sobRN* zO2K)vhX|e(fJKEVNZWc8y}EkgYG?}1EiFX+M`x_`PeFX{OnCIPg9Cj_HOJ3LZIWhC zTPOv%IE81c8~gE z}4 zJ!*#)il{TEtH(G~^SydvJbc25q1Bs@adQ)J_YUtP>o(yHaaccHh~K`ZVBDTW`d%jE zSk?_(VGc=T9uCNUkBQ|8_{e%}S$TD%V%~91HA%&ykUBVH{Y|AM@Mzk|t&gQz!o`+BSY_XQ!;fpfH;#!Rv^h`@( zO?*&NYb+7GB?U=yYnS<&SfR0J3g&vz7d3YlLX48JA~jTu{OF0n>^~0h?^_zH=SFKe5vks8mBfEjg@l19Fe!rDd=tIvJ0uPN@Vh=!{J)_;G>@T^bqTohtqxhF0Fm0SlO}uJG zj*a~BW@!p^=e)w>rk?m|mVzVJS76u98Q%sGLu`5wmL9hFIfVY-$@yrr-5U2T$?4`9 zX!zX%OITM79n=D8p_b6$+4}n1Q0cmn4fg4=7oBM=s?~BwkV6;>$5$V%Q(}vdmw%sw z(=ykVxiz)Iu94J#zFD*MP@Ne#LX732c_u1Ve|wDhoq#ug21xY>2f=42y?y(LYa5Q93b34?X&!oiBVw#?zXM)g2j>J#r?!`l1L1WZWg ze5@Vk+TVS!n>`Hs2=;|GWnyuR1~*tU>*}t+{a)0%;B3w#Y(FeYlHsDuHQfI!(spQxNjZE|`}f2jTue^_&N z*_;gD2G3xAGzjDMc?X<%3(sEr{O7%Uc*%Kub#+G~`%78TM-dt8geK=TQ2G?(TQ7TT zq_?mC^c`5f+73pXeNS5zgy}sT;71Ixwdu~1>vim~*^-{nZzfBhY^`8H|C;};>xS3a zP3u}xf+wK@X`e=u=4D9NZ5aVd`z z;ZPPXMKz2NCr$jXDETn6-PN^^OqIFZVGed`8T)R%V` z_B}4xb^lKr!PoQlbDhdDE2kI*I+hQ9@Z_33rPy+7q` z5e!&kSNoHUsJGLu%lE-U_{+L8yEkfzQryh8>BuuI5jV>Hq%wzj?P$-_2$B zLM<@gh`dYbW@#w%{NxOJ)5s4-KOAKTRXuuHwwtZmWf+K*P5+*ccU51B+tj;BzuUJh zrP0ZeNGDEs(|(nd8yAhQ#LOFy^^@MEa7NZhO|6YwY0gUWO`M2NzP(i%${cHdojg02 zQ_}Hi?7bQCf8v!?!k(_@Dsn&;)WcTBbwyjwns4dSPm*=--s%zU;6kAm6?iMjInBlYq zR1`r`RJyxs7#bB70|UW8u@f;cn7!8?yIbtQz;49W@4Vmd&*S~)*@p)Yan0J-y5bD( z_qMQqzkDVTWgCL2k-#}X)hzs8Kwq|8`X3!WLf-&?oIW0hMu7tDIXBu!{~G5=Np*Dq z^${K1|B3U1g1yq-Yc^O!%$V_pW)jxga?Z!zK;@+~8sh-hNA#WfyIeKnwlA_~5r1#q zNj>Lr2uf!s;OJc+b(c51YkcWX8lR(H@|m+=7y9K*KdKI`5zQSjwGmFgSEq7@xoZo1 zIqL=%!80{z#@y0=l!=A#Bu62M9A{~qg#l~B7MwM?zYMU53grwhnplGPxfY8V|9a)z zccD^wi>VE#mik@V@K%(4t=r-d#IVklEp}#qKAO0Nw+)F zqt0U1Ej==IJ^RsjdI0y2pK^3N*pE&-M7-#=&AK(`n2Y)(BmU`L-R)_dugptE=2o5V z;xX!C<|Sj@a#>gZ2=NJh>E-=wvCgDrG-k8TX>8U=^<-H%x^d>PpkfPWq`^p1wD{6b zYq4akKg7_zGl4pJ{`2)!zH4kq3@+KqQpB&uvWf{4YgFbfaC@sL7%8Sam_%js1U zd{XtLFZJtAkUR80dE;Be0jU8jF||+uQgN<6;NgF43{}KcLTD)^# z`^X*G%LXn@U|iDVb@ix^JCZ&x)0fLG4MEo*{D(#F+(=*rLHd(#^7U*@i3HuT#*)KPxEkaLtyT3q!S zDUaV00$l?w)@FLkVJE`SjWO>(V6NQdbp-r}bM9HRR=)i%iabZ^;@TgSH*rQ`!hDs` z>8kuRkoj+B0-Q&@mv4RN{_Q6{uN|w2#SOK{-N;>A?}p-3PyYPstW{iFiLXQGr&lit zdA@DM@@8?^z^_@*tEDjP7L9Sm^m(sIP5!eH+qkGbZ@yF!ZHXxMcM*(p#b#@yI{fE9I7o7-u)$8Av8kzBq{}~? zp}C|*+lmTl!z#`aAJRW`X*0QAq95^+oMYMymFsu~pn)yV);AZq%qfUHn-({dXUk^&@A>@uVKUypoZleyri59nC+>tf=>0{+hU8>K&#!Ce$112mC5D!U;SqIeUeD<+u8`lox{4M#Nmazfydbz~wD?si zNj|CZ=bno_>iL=$X_d%XtHe0GsE^?WUTFL{4x#<&X;H%)x%8qdja!W0_W}`A%-u{- zv1$zG3A?Nv{yEPl>a3J@F5>+6zutMjg;amLHH?`jkJcU|g}${x$sR2h=uSz;UN~bZ zbH()HCbD-rXX8(`IBsVy&vNm@(&hBfbn=ulECO)XPK#Fg^W?_VHXOq^Z#}a~E;i#% zyt)=WlaI?YdA}s`@9N#{xt!`1fpa|D3zcf3I3@}om0Q{&%HjOiQ) z%kR_*-eV=~5;e$nqpw-`Eb;iX26@ZLQ+wqnKA)m)4||&fTY|*E@EBMZkn^eW6~#{U z63UI|Ue;aMehkCl7aDjCa}-tSh0*&IeE}+u6%A(vV{7ktWO}z1cVE$SW-E2X?iR|^ zB7I?eBpz?{t5olMc;QbC>IXf)V$r3Te8c0+)dmyrx*Kt!xnbDB8s{hHY)9hU5W8WQ zYUxOx_YPD4iE~L#rqp_!CACj^o|l_T`YqPj!`ac2O19FYCpPFHF>e?=k*eNs#!a5# zyyqrz?;sy^e#!Xjr^&B|Q9mJ9%bii0tZ5nmV{#t%EM6zSAh)-Iao+M+$d~^HBe5#) zr2bFjR>at}`@#D@)=*?|M=-A@&)DLYVzqe`stwR0bZdWcuxAV|lOKCw6TL>y zP=7neQ+%NYd2Ivc>dG-VO`=MqYpU*Cpw|(%(en)yZ&fP1|z7hy@rdD=`8?rbPjBA|7 z$u)k-J-m|o?*w1_?|>r;in1)llAS{Rh2i6G)p?@ftEL7!A%Y8Q^O@!TEmNfy3Fq3BAS zQ`5?c!nsQ@9yj5BeO#pIH6jrChHr)O!Tz5(Psk3Ik_#+Rhkdu{-#*gBJZsiD^Z+_LODa8W!*fax;tPhdvX$TC1O2Mb zPLk6td~kvHwZ=I`K5Rg(Y3A_hQl9+ktUq+zHFZ3t$bU9ayN25DA8tRBotIOmh51eF zuP&M|3dO|N@#ylsjR?;RhnhRrln;Z2tc%3SYTQM&og#*?Hh9;M-i2+0#kb-ZG#{mf zG9_7jA*SwaUA`k1(nVAb^&bM_G5kuJa9kOV=G63gIx|fKj0r_favTg_r3y0}>a{*5 zp6Obu7T=Vtfmp&IN!hNMqiud)5K}wlSB%NbYCPgGsx z&z!`0)Bo0WCNHN+5rvir<18X{TX)Gn+Zr`^&$fK$EOj_ygUOHS_gYX#Znwl4^_eFl z9?g`ayZAuM=k!+@@>FU~7jDy{$DOUR*Cu}qbk|~M#yL4AIuKL3^ImiKBsX*m#_+%K z$hc=D4o?Zi(`WQDZroKYbP31ENAWOeHbP9+MB*LKxl30kq3a)w&NVrYUK}ZIZ;!^( zcdWa5r-)h`qwtn9z81q$#bM5}hU99{yJM<&9T$ocdbhbeN)>WOFh0DYhvu$yv7&kq zc1N&B%1sw#^Z{v0J(Qdj4YlmZX_8sf*iIAKB_2pKi9x?f9mUA)&YWvUNVTG&QU1dS)}u&Kr> zn*i!PcKtWbyLSzjQubKFYD6Lq7`2yvF0_Wr0{XHAJ4>G1Y|#Hbwa_yf$R@GQXu#Zv zd{23~kq-*~YSG1RkzDztFZ8^3u8l8{4m?d>495!I`x{Hf3Jtx(tQqqzuUv%^&f0_j9+es?j$20I)FOHj znk9&*^m+X7jJ?Ci1hGROifR>caGIVZ;`Y&#s9PNNl%~2GT*XOBXGwb1}{?YjA*i&r3JQKycq7al^F8`h|joN#W zus@wC7oVGgqJRk0ezjZ*nl}~A`-kGoM^lT2E;BItv>&Q1DzI2m=8JLJ&X~Amr}>xi z7*rnoZ=4O@c9&e3H};JsS8+sB$v@2+gUD|m6Ejl^Tw#NZUs`mFZX~~OamMP}oVlz0 z<KFqO@mn1#^03vIftp*SBu26f936egD{o(*=<4- z(eyce86MJyw4bTi^E?dQFU7;O$V&W>>796*8fv>;#KBPR8CS<+b9k`mx-0@^-RXmz z875A)4nrT#0mrq86qBhLH6n%DY9r!ASKA;MT%-^0k!1045I^6Eu_)`2Cj2AlOL&Rr z_I$Dk%kV*}Sq!RA3KLEvd4|)-SL`%RB$+s4#I-0y_BR)iBOLK}P!v2^^Zc}$ij;Yg z@LNzWuMM`x=Jv#PXK$BXZ%l!yF>}+zJ5prj88Ce4hrt>{i}A(2*kA69#lcn0YiVQ9 zmOGgL%^OL38c5~aEHQcl_2H-2k%Gvj9lS09_xn0X6)86O$vM)R<&EX;md>zk%)9XQ2;WTTx zu=h;__J&~d1A5`*nTi#=!tjx?y?S-5_|b%ZVLNzk?>P!b6Yd;m(Wj=Khp4qA495jM zn1*O#Mg>;N&r4;6i&G zbc@8tGiKt4qaAwJjX<7BJCWrv1wI|A?Yr!v{BWBiO6&PUm3>TlznGp5Aud=>Kl+fW zF<5@;-#Ay9dqa0^9_u>BxyF_|y1p~%f5kXA8fPMTj<&&_>IrC2`bA1x;)Fizg*UYw zEuS#(#yaL_zZ;QqP@)g|v)<^@b%lKIk1qyUX|X(QznrKeJ`et1WhA*8VYI?A5s!uMWj z)C-B<=;`xjlw8Bn2ZPtpBW7-hyyl88OvZ2yvu3gE>_E?gFZ5hHu|rO#KH>Xa?1yWe zl@oJ9yhCC!)NJ2)X4 zhgXadWw$-}&PCx#dmB;B+XY$F`dMH%Lp0kt18$`}x9o9F4qy*AHxf0zCyTO^c4%Z2 zi4UgpMDC8s=yN3;^5*$s`(vJS`h~=W28qH+j%d)sANjp2i^}wGs>}0ixN)-jc5Bvy zq5sC&{#to)mARJGe`VjQx7Mw7u*Ox!Ij-t4UG^XwOkkYrnrBN@+?~*hao(T*S!#aT z3zNQTad$&gd4QP@2CdQ(D=7@+JBdI^+jzALflbEmpE)65?;xF_orYb^TzqRxEd7%aQlTHGr2M#qe3 zOdZlgxa{?yEM8Tr)s4$j&j))JRnZ$c;ruU#r4zE8(kPilnS>n++H_NEt`3k)oFsH?Jm zQIoIrzxjD-^@~IA&bGu&#<}5y;^O&JtkG;e_bC<$I*YzG)RsqpW4gcK9O(uHXgS=82qJ{(Y7Dv5bDc_kKir*ip*BrP*wxouW%-!+eYKP>tRoQFQ zWo=wuERV_!!i}DBXggak$7!j<&o~D>KQA|U;fL+3=yw@WDsMUJi>8e8`v*VeKLy@6 zvp5HUG z9j5SXe~8~9UYJfsA-Ol!szYMgFnbsi@0-$amv|L69Y3fCWR)~SyteQ{cyAZXc0Q=y zqmIGKKa>B7^Y2?dR43Cd(QzX2&s7@_U14VpN5;91mx0c_rwvjW+wJ{~C95G$_`+O0 z_+5~6C(8@Xzi4sz+EU5yvp3?i>0MQ}PuferfF)}B^_1U~&K&c@;+OQ*?OREXu?)bN zHSt(;y@|Yr_=J(f>(uMhNB$cTjFqk8(Wc#ac{h8vJDflKe(xza(S@Qr_qDc#G4kV| zA(+89|LvG0_gNQ&<)(3%ZkjGP@C<-GY6N z&KnI@L?g@WrJOh31N*5>Gj3}`5%Sy_)~v;UUxBF9VFq$MqOkCIjEGr9FT#FNXmo9r z7}vxOo`;D&EjuWBowP-FVw>{Lo)NAEcDS{f`bTGv31`mauI=`RfnAz7;^cuTFP&k( z%St_OMiifI|A}+6$*WaI(<~9lIQtB`W}atjja@CG%Y6%;9hrW<#lgdU(VUl`Uz6EKE9}8&N<$XNXa9czHIDA(swVBYBvhN zq?PpZ>bOH{u_6!!w()3t=#4AY@o>(3F8w_ng7ptsv(>L6SIT64x`bH37WHI{ zSJa)Tqv1Zhv3!GGNHP85U^<|!yu>O1Uu|Q#Tj?je&h{flCI-e+rpa$c`=Up^7}&g< zCm#mu&zxv@PCqPPs^@_{&7;x3Wo1#i&KbQAM8VHVvPOtB%A4 zny#Z}@?<1Fj)d`Yy%?*u#ps*}m`}PTO5W2a{ctETvNuIN$pP61{8_KA5{;_5vF~t3 zheRi7z`!u9*gol>IM_@#6iaS@V*f$d7?GFCV1a<$u%F)&W89PYF?MVFW%J9 z2|rjfx9{q#tK#N`UhKOQ+NJBdQa@zOGWw%6SgZ4?AdDRlM_<>ul5>xM|ErU)8tj%<+WBGkBI-v3mrJLs_+m&c za^5V5$kvs;QAAvnX`e-M&-3oM+%6i&hCY&KOmxP5h1|}F?jj_{5m&P~D|{R#HkV9c zJ;J^yC|^A5ITMiv`Ok;p&bEeBSd!%=$y_6+IhzN52s6Ayc8`QS0hgp~zs} zJGYrL98UVlUx^hzHGJYfah~mHtZu?M8%#=sTz#JE_XKOS$>;7hv5l&COB+03oORbs z%!e6JXN+;qb9yuM@i;Fye&Wm_bA_tIS@}qb6za7}aiSU$^MpT~lk;NtwTZARh``p_uf?0^lW=E!C^{E@5l^1lW52&YG8UZ_ z{$?{_yvzw_t2~!?F86}&?7zO!cYgL$FHEt-B*uAL)^62|@z%t7F()r@R>e25fgx)Q zgYPX>Klf|BkpYv^_`F){Q9lIOr53r6}1J1ozP&x3J-PG zn-KDbiB)?Op`JK91ZJ$C_uUUt-_Qi%cz^2T7EMr(xJyq)?(7^&>!^Qn#_w(ePX!v9zeskv<*5Qx1#k=xQ zfBHubEfHH2r^B(E6Ncut6JsP7dSZ|N=R8|3nyhZbIOj9YZU-)^ZdzMo7vo$xbB?Mt zJ(T-1&edN`Q5}0c3+2QY*4>+-deqSiH5uow2Y0L1_;@3BF?HVS+*Y02=>t9IY)h9_ zRgWhQrp_JqBWK&Ht;u!zNnJR3rG@&V2*7>wc)XnEs(v&m2*&YhZ zoCO6`s7iYK;9fcXF5i{t+SB7Hfc3_xkCo&BWp0?B;`Ld}Yk;!(H_+HQ`3N4qzo4|jRj{HURs`&XTUhN`zETjD$8e5v~@m5Y@%elgC) zl~$&M1Z>6aVg8b2)Jp2!x?bX@t zzUaw4%8x1cRN;@kvF3F&#?(Kpi=i*`mpReck@ZIUndt_@*3rn2=E)7O&Vt|3D45p& zEjK8hhQBMx4I5}B^iS-lDMh|VmBr$5#Y8-89z_q2ViA990zIfB5L2&IH0j0N2WPM2 z8h#aPUQQz3&<|Jc-4f6Ir=UOQ(fNZri{On8=r!x#IOlYmqaMdNPa~c=Xi6pZtFhLY zyn&pQg}JIJwQR8Mzw`XHiK@xzS=hulzj z@Ya-g4`sSaK1@C}@pIcxB&(hn`LpJXM|7K9)h+H2AND6cxOtIEMen(BZ^=t3xuL2& zA{Y+~c=tt@s~)OC@XMR$yh9cBjAy~P@-_~imi$&#drQsyj&X>{zo^>Z-5(FgQ}79P zQpGo;znc&7E-v+SR(BgC}y0m zeygEgG{zbQjI+nOWvaK;Y*5ZP-+!hMb&W3KjUPlJ^&|^*WIF|*kQ|BLM;_|ttfx=w zOAX8xRFS$+3p8jud%!u(r011FsNJr??4X{KNq#UkJ&VKE$f44?yg>A69*3_FCP?dV z`Qa!zMOn5nQsxOC*w3Oi&5}*hW^-?tl@J#)_r3J8ktg~GMI-rIKiT$xE6%Y`u^li^ z-uPf9it<^%#a)#f6GJ|Vdfe{ATZp>1Cu7}A#=rLz5y{=??c0$E9h)Kgo+PHlA_6CG zZ4~Q2jK|vxA*g+Ezp$g)tVJ#QnD$sAS{6@6&77GydZLrXJ?&&{3;Z|EHJ0Y9cQVeO znK$BZ8>vSz&Yzh#IY69%~KGOv}^~B|O+;KN-E^Te< zjYA8xnE!Z$yHa;f{BAhg-2fy21Ea-ZYDcr;DJyQG!;XDYRK?!+N(b0_)qus{s28He_w zo17Tyhwq%r0_`9X0q4r zb-+!s&2+^r?xzONS|Yt>4m`xU-0R)@rT&}Uv2jE^ns&P z+}*@r&gK;P(Fkv9qDDiRJYTMQ&6nh!Z5t6tK6~uOdPig#e~_TWu@~pe7O^hKgC_;SLJrNu{enQqAK!`L6eZ{7YOlX zo|LwF0{Y$OPOh!L`XxPclWY0H!f>y}<^&teK2Cj;3AxCrG6kc)O+)d>6~k8D3Bka} zWB!S=R9>RCe>)0~Mp0*D>L_)`Nn>EJnz((7GpaK`Eb)xET>Eudy1qxIqWyhhGg3UI zlLK7v^c?TO1v%0t74>GhtEw!HN=_Zz5cQL_oY4pAN^5rvWe=D&xPiRCs|TzHQ%g3? zL{3q8!uSFGIn)!FC+S0-!JV>ssGKv~8>K@v=$kuV{ubtg@tiZ~{#h+2pYy>Q?)x0~ zZj-&}tN86B&#?D?dBtYNd|WK*)>q`>{@(bW7X$a8^Kwo4($0Mn4S(Cq@`!3)sPZ}r z@6R2VU%&$<-0|fc*dtrmxuMi70_g@>a#s@<)GZ3blyWQC`r0h&@q|L^uw1$xIsFCuz2sU{I77jP25w{zF+mHKUb{;)3*ZE>?z(yqAcE!k_?#Rr=uyLni zant?ZefJ&vJ8Es_D72ZLh`yc2s82TR1s21Mnahy1q@mu9poB{4)Kj<)1k*_xKMJrnk zt_~}awLZSoThc)Il*w~y`r=bAXVI?Za+BFUXwCbv#_`Ic$eg<3)HpbLp{7V{CqS#{a3D7=ZWyjQBa$GkfXyqah@6?spWU%C&H85 zjWFWp4#>~h|5myh45PH}vS+pzV)KcKS>tBmcEk(grUf9(yA9Sg4#3aL{xBb22PVYE z-oEeh&w1_;^FST&b|e-AB~s_vO5NnhXc#<9z^YnDRWoBPVdj{CX_G3^L3S$cA_1~_KC}$NIzb=K+RpP^F$+g$T3$mSXkl$NQC^bgj_=>% z;eI?quDaF(fd}F-zQZEfZIdUS#tu8^Ub(^O9UF#%bIBIl z57W=*g6BVRz8djZy(4-g8YPnh*lN7`XY^?1Lhhu371fmCmbj3XKp)U%Qm1;<03r6Q z@4iz~`Uz)j@JhhkSqAc~GcM@bihkLu4)Wl2u2^=BI%7GU|0lR1h;_AVH9xtbuRDAu zYGIh1AwPDe)>dQgvns8VjT}9(i#ypaC5PmAM=u=OPh61wbve`38{HR^t9I^_yeh&6 zfsyeD?^{c_r1@fwM?B2cErsI@Kk9-|f1yfGVR^+5H9*h8)q})@^L}t>5s&%xM+oO! zKdfav<8*FW1P_TEpyvfrIRc;XbQJy4U9_5bH z|Lt5ZtdLLkrN>zS_gw3C%P!>Y?%=#SaQ|s}WMeM`wIo)-?wQ=z$Qup+#3Rz*KuC>z zu$uE#&od3h>$bkE>6rhob`dLk`e6m1b?t|WV}}0d!_TWZ#*0^r{IP-0=@Vy&kYa!2 zuvaoF@)ny9`D2{m_qh=%etzO!fP06!Pm)C`XSUX??XTROBN`tFfFFCPhE}u1RC+t= z`M$WsI*F>;+>4Q)u+{K`{7&PGH5aJ$mfPN9IBLL&()?^Mxs?tB8=+Ws2607MrQ9s>^429iW+H&TGXAMX);#&)`+uN9eFDy z71Hk0&X{o|0Z(k($~B8!&^no%*=eKX_!L((Bv&fL?n1tN|b7lSx6Ur=kUFzp_Q()H}QZmbsLiUQF)P>V)QvqcT! zsh05!)IFdT*|P)S#l2^wZC%msqc3_9=cWWzwy-1La}{TmkJk4LEG^AN`fT1cZ?srZ+eKUt^+q0N zgUk1)iC!-3gIL37e_ADK*!ki~rv$_p7l}9H{K$t&z&P7$LQ?yq!SV!Li2f{WIMZ`@ z!ry1}ZIPw~;L(``Sj;;i9uj+Cur&cQh8z@0+XJyVF#+B$c8P;sgP?OsfLYh|!nPt1 zCB(l?2~86|X#vpk&N?=;sd!WBOCL{i)t~vQ@6Zc7^%ynK>YE_zp+CY-(R+1P?_ttn z_Nl}d{%=3HWWa0no*tu!t)?zz4sH8K22t#_Xc_f zZLw1J_H#$wBh+U6Jx1wc=#Bwf6OlM(tWvX~J65mad-2#x89vS(+U3;Z@Uc<)?{Y^S z=B%SD?3K?gJdm}PKD=3uN`KyozjjjpP3^3>nbAvKrZ2!HH{}uM5}DVD*AMViS}yRy z`FH&KLU+Z~!5a<+N$4|ToMOV>WY6P7WUn5e{P!+bI!eB?Lt7;^hxpZe{#>`(%F&(v z=$*>nKfFS$%niU)-$ZnrbDup(Alh=jU#%kf@rQ=LK8xqYvB|!M~L?$q;h)*0~J( zS&!JIZvXO*I~TrJ>pVu`+X;GuCd4XxH&MgqE&W4hrRr-BvqjG})aE*tt~c#Py|u^W zEuEgC2X`wkJ~9rXuRf}}GwwYh=c`9E{kAjC(5Qo-l9Cb4F?G^cn zA3blWM|!A^5?W=VY&sU=^bvtwENkne4T}%GXhMUCj zK<0CP)=odP!eOi*PV;Z?sBb7HF7bx@Lh3qpiI;*#d128x`u5Im2mckma2-p1fPTKi z8gvgulb`?cVIAsyQqR$h!sILbe6OV{yB+MY!+<_?nsoiwRkoO1K#kcwv-Nfz?UDb5 zdPj#H^l|l^Fvl<%4oCXy{r@_lF|{&w^lG86Avxp62mWr&s_W;mH?Q=9{Jq=nm8<<+ z@q_%kzBfvg?v>qe?FKbqx9XMsC2mMPPk$Mk0;O(|JI)=Y=ZkTkvSx(`3J=l$&Tp}@ zHQo~~_>KggIi{5aHxFB#x$^NblRix<(M@k0PJwj3S2i4nnazInl?q zibVTBROi|F(=bCgb@4}2C-Ur03=zjTlib~g+&7avxy+JUY9Z9Pv$|vP=ZG)nGCu8# zyoS|I4}$a8h=20)vGj6v`vs%0^By^UFBT}aW%gLZ_hrtPIr`!own(Q=k-gh^eOUTT zgrB4K``lLggYNFoFmF@}uTUzPyJHkTiz;3xl)0|%$j|0Eam!O&PP!vEk(yBll9YOm z9{AwJ_u|V$WdU=-Hyi3S_V2D7IzzA3A^eQ?)>1sSQXj7iwb7P56P1^G(?6DRTcwD3 zOMMVki+b8mH;P7lH&0b2$8-D=ao~g>3V!fx7^jO7)XeGllf34%M6q5Sh~GRXYZ@jC zTXJMN@^4AVpDXh31!I1jB;?FpE-q1H_0b?|s=Ub;*QgOUmmH$3!@I=ctWdn$M!$^n zyT#|>A(%jIiZgxIiJ+uFw5MLplOIW9oRuHW7Nuar)dnJwyZ*s7QxUgnuf@&IK3JSi z?VxSW!`85dEWh)wPT=4RV{uN9m-vSFl>A0qTjPW?%xT{&7mFPwju=`_ZIh;Ik+z8E z=LcvJ7kZhfmqJZ^mgsba?a^M>@A~j$lot=O~#}de^yZ4dSVxOcuN?o8!ny1 zMRf?8^1bd}-CQ(k7mAGL)DP@xCl(uq!LS>3@ID5JdoPKr8O+bZCQS%({OkRfH)<~x z-*!h}w==oTG5I1hgt~oE)FixADDIR+Qp1PZ2z3-u`ha|7o~3}ZXGO=lkuWl*wszff zq8(=*$8(bD|5PmcUf`K`O2MDr-`X3wKB2jywD4e+tD+- zm+i23jeT+K?7zOH*}vMO=;?f(aq_}yU$L0&l=gqm4s(WDRHLq5Kc1f~vj|<|1N29z zLA^e&YI4u$6xh|K{?bq%c@XcqCpSX?toMwKIvh4PE~^VA5kFSsw}4hcuk zx5?yl&tQPo-r&T@i_j4-xZZngrQ1j${gXFzd9UTqawgJwhA%s~im4BGK+Sj7_@S%V*f}2oeAhZPau;n!<)AX(>uhIF zvCAO~0Vcf1>-&ov2Qr}l77xXG4BP(m#LzC>)D*iFz@}z z5KHsY@Q3%y>LrUs%K-A?nLm%L$QDxqQ!pWtcUkp3(Qs8V@>6(MKHe<8zT!PbKA>mk z0?}y-HSO}KD|r2&2x2{0hxsa@ToGwk63~J%jGc2T21CT!5Ry=$RhSbeIaBINtfc zJ<5Oo{rA7rPJen-WCUlT0dw7ZRTpLSmLja+^I(^*N}Tf%wEa!Ji1G$X+2SqG@OgdH zD$4M|tFeR64R3uA^$sq>96m?)DivG&7ok0$+hyDk(-Y@o{x51JJw7iY66WF%^XGuM zCq;1Q+1SSKf8dW^oTOG+@9+FsA7tTom|6l~$x~}1iM5(!v}KOEKT9W?G4?^9=GO5_ zw3tYK+}P9fAjrNTCI?av`x5z*Kd*>(oT1kHn~30F*Tll#5vVtU{y2u$MeXGwXm*yq zpJT5I^z?@%x#CURpCP`{6NNb`FkG}vRR83Pnd($5+umJto8yLnwJGR*@C+ub;5mOo zzVQFV`Aew;Q&kbjFQJmwJ;W?j|Uumqk^j(Ded~S88hO%_*eBAx-->dx=CRTHCh0mj=yb*Ih zr9y(X@N zIedKZA#se{p!WPd51rgEW)gpTmiLQIoxNf@=R=*I@yzttBX%BRZ13`Ov?>t04VXi& zCc^Gcftb~iT3FW;aWlG5^iPlGE}c4NllBXd9f4Qcs}hI|08lb#xQQV{eOzj z)Z8*=JO`V;5Fykd_{ir^KW>WJ9jQCT`2TEtRs^+YkHR=?ZzYR|s}gXU|DJkmpE%E% z>neWz>I>V&z^=ri@@ExQ-ylY+xxZ!oUt`K@F<3**ny2I`e_SCB6~)5#7QbiUQW0`F z2DaDuo;EY&E zj@zW)$w+p*EW)e0qO~Rk_3v#GcRjef*^~_J)dF?t3@=!|`qz)XW2+U)8s?2xFUary z@J8vbFM^uCo2%7brP8v)7|k2{{B9hNj zdO0gQk1QmHG!f=CM=703=Ane|yY{My;&X2f>M{=7Cbd+O=cQu{WBzS>ZDqjjRD?5D zzvurFgG^G8!+73tdM4UeB;g?QO#O~mgqnGx*&ohq?S%L^?!R}DdV_NdMB!J?s`P5s4 zDiwX4UGSnRwL2!B5o4#gA-yqmD4w9*GN) z!mqDrt)Jj~GC%%xd1(n~v-d({>Vz%9yM?x>6j=(y-^I zrh3*K@n=IE{h(OmeGe83N@5ZF-~ZR!UfgdGi)wrqdc{CoyAl0=+UzX_ap@a~Rb-uM zRB42mPaZ)>{yyCb{Y78$TOY8-F5R_C+&bq?uR!`yempCVa|gPHdF|Mn55jz#Gxn@y z9r*o)XhVIr?~CYbc6NhMh7og^`)^(Mx8Szo=$(nf%xRl=niCEdVbuLZ`1!TayBZ!w zUB>NH**E3on9Z2Vc&^`fL5cpFi|Ty7WVB1Ukg^p0`P?aSsZu&(AsX=OpI+B0{oLo_ zGUKego1y#)oP+K>!;LsjeBCY`p8R{G)m@b+t5mr0uFM>3tZcoIj8%+nT?XBCHP z^;u(hPZSf$XijJF<~0W(CNGdR!_Ilj#JLGxXtjhs<9QcE$aGh@9-rZEE#z@1vJ>hY-gY?$y=R zzpAnsY3~#9u*plMb5Sm8@EO04DrqB^q931Mx8I~>8!p5Ue!ZP>refD^9;P$S&M{%i ziGg$A%s98}WUIV;m4+~$nac$O6w@ZDSk9c#tWGQC65qwCJbSv(YD)h=)?bG77g$;* zUh>}V#eOgs$HlzqoI|r#mu7Af^Q+Oni?w>^unb{U8i#MJMT7geh}QS%AJmNcrM`W| z=IXJ?mFOLLncB0}D~Zq_?3GUNZo01) znoqvC#^2#;pCzJVrw6|IvcKqYMc8(ux7t_w3hg#jY-c#ZjJhAU7S~l0v~IZifHgzM z_R8+=)ERiozUY7M!Ak3l^fhK?VgNtW`?Y83FYhRV5p&nwD`WKi!w+Hgf3bbpM*m4{ zfb1o+x%99 zahAND@tHpMq*(hm9-SFm(~tS0%?1rp7|)JPQ^oS&IF#}JitjmIB)i4Jk~M$J<4wf{ zrx@I7K@X8f_vNE9u|@p68b$4r$2dfwknil#IXmT^KSEG1m+#cH*RstzYOe+GUamh# zEPm+?qqVHB-Yya;?Kn>`WzQ9QO+0Gvj2PDH@2l5TO6xko?+@oQ8yYLYiW@cs@w2-$ zTCrc`gGqP(oo~!bX{(Q(l8H6^EPfV7>CHD4VI4o;{-rbZ+qxaXJjT}bhpE1bW)oU7 zo~mW_^o#oB!kqQV-;VE;rAM=<*UaAe;3=g>2E9%BHOu6!O2a)F$miK!*?*C8{^)F6 zWPYv@6Rrfsry-tkR?gZe3wE&&V6HH&Y^vynPy?Iir%j87N-T3gF=K)Q<>KLB`Vun_ zbl!YgRL+Sa<*(VGz=wcSR-X_lZQA4;YT0(DqeppXLj|&g{Q;?l?)W$e|n;E zCHna`SSb81x#H2$L`bSDVr#e)3^}K&cDROew2BiN9iw-Aa&txQ<4%9+1e9;`Q9OuG z4p;uwGausKN56Oi>kZbKKYPyA7q2ctt@G3>x)rAXcJCl;8Mjk!hw1AN+=T6~={@nX zm44rw9AtBrJ85TSeQ{D23iv!|^DSkfRVFcsiI`!*vmKT}Jy_1?OLLS5b7pf-NPVKZ zDaz%MX*kF@m-^07s>GyV6Z`s8-3BXts#EWadDzdqxzd<>hCj@`@1On@buMeMgJ;-q z{y9;lZ9FRTd_G^ePHfDH!*8D3R<*;$0P-gcIwT>navyP=nj2-DZI+MtCaX_GB9@a!C^LwR0W)V|CX5)r8mWUn==EGO>R}-Y!vhGz{1MP7d!I28?)~= zyCeq8BNmS_4A{C(gnf_2YsPt-NwBCKL>+OSZKGo*V&F9DkMUjjdiRgqaRc?gm~Y4K zyd>8fOb(qn{n0*OlH*4O-~=&OX@8%{^Ca#ZPiygfLsc>Jz9&YEqxVU#p5p3Acg*LG zvX^_5IJM9PoyQQPmA+quTRFjeGtc?-k78Z16UK3-dizHMWxT%!z8VvY=(kMCUF!=U z@|ylPKNq!}tiLiK6BA0PNq%{~{#9BLHt-!8XR%11IQ$?MGj68wZu+>*8A4^c5&w)q3E14%3;4!~u?A*)B!1B4c%dzS3eZ4OshqmMaH@M1uG?F4gKy|OY{!xtdvtjCvFAL5+oZmnw<7aok0c`yB9t|32RXRUG0mZ*~*WY5O2&I%lu&cz zf8)Hxz+L~$EE8tzkBm0&*0*4sw@a)a>gVbczZBs)np)2r!t%sVmXc8=0$ zc`Ek;?5SrYD%-EJ$Ku`BC~&f3?9AN2bNFp*Po?gN1UzSsPB5;eJRx4GQ6uJ)>|3I8 zn>hSn%y&NBEbc#|#wKGcjY$#{Ye%Ax=cHfIc%e%TMLQ?%{_Oe-$8oHI*O1es>ME`} z`y!cjVZzGh!fl=x^y}mC*S5L{DfNKvj0X9xZ{*DT?x^BKzD96`ygbAWrkNU89BwZ{ zV_fhki<-`3{e}9R6AFkIT4|au1{FEulMjDZ;C(TM7}`JWxDy{#sH6|}L&Meo>THj# z9ijg@BNGLe5>c31tgp4c2=<3KPd>j$w%W24c+eU=vr zH}Kr1^%53?Jn)u$TTS%_BK<4R?N`oB4gbpP_7JzWk66n8yme~2U~e-G67m{}-mRTb zJTM;4J=DUq+AO5=+*ZvG5smjb!6%Yfi#Uk(F;z+);M@ci(MtGDY8d zT_(!Tv5wt!T0h}$5nk@)dly-tFA6Av6XRBJCqtice*-SD_OnZzr8ix@65AgV3$k>8 z-py^RE(@K*g z;dsGW`~SubP3r}^CHJPGf;dMXxuaWiU?+}mCq9cRbobqM!kZX6u34tDk6DQ;#Bl2I z6kXkc3vi8JH(hO^yR0q1F@8=T+*4PaHwC?TwlC~#piA08U1!GaZdp$i%c&XgVeV0B zA(a1iQnPuUw+t^<@;wtUmgia9HD7rtDzN=_?&CCdodaa>n_4K;#^T@x^8xP z0lKjV(&&SS?mTmbiToTDH&mDXi_eod*Po@Yo2!mTEMxnsC7%_COHn8!J`bCnRxaI* z#vjJ#Z-twciidV@I3VP2;r7pr!#QygN@Md>A)Rl^1hb06=d09?rH9!y9#-I zS4(Q(lZR~HP~KACocerOczLyz>gn}~xZFMy$NH|2`&L@u`0-?jF13`WuO}ghoTvXi z&*!#o*42%R$06c8d`^vuHLr`&YCZd7kxz7G!&afiS>o2eOt*Z|9BKknQ}V(*U8;FL z(ul3$wh*1m;w0SU=YdWpy4C|Dag_D@#y^I-%wbW~hon~g?O)0f(4UU^hHl9v<(N|p z9{lFrYPVaNOud3q#sov7g-QUm&hmJ#^^?<-PZh+IG1+5~y&`$if3_KGu^L8-4S&xK zJoCdo8YoXVGri0Bd}v8EW&PwBL?qDr$>)JsQ9BZu=eb*&ep;*@AA$ztGQGRDPuzF( zhqE5_9{*h*VFxzE7e`IT<-+m*@*R3z zJv*q}xkevw_I6IZU#Ykr<{9R>y`oH2`~u=}o7j3f1S%G_60n;2MoH&!$|I`;WDx&x zhvPM>Z~Kru4WIi^YrC=MSu=loXIh^fwzt=}(2*xlr60@SkSpIk93*0A?~5 zFS6Jt99+3SxRSeI50?s;AFeQ+m|JXOy;qr-b~sa>w#fpK zep#5)sgCr_Y9c+#ve5k6Q)%_N35br&Kkg5hxtKW5o0+KF zpcjdI#JSHSGu_SsQMkt(L+?&E-8GA7v}BIas<46XWn>IGuov3M=ao{vEEfL|pRdzT zDS9$J)_LFkI<`X@bTFQMKGrJoVkJK#0pHli=;}6EN$H!2fvoky<^(CD%Mx*f_29ar z=E?!DL_{*q3>SlyTh!t2bDBT@Sx3cSRt&a|r(S*Srb^H|a+s+ByVbb5;*%Qme;T1B zW2fz<@$w|sBxG( zlC?*xe?*(3yFWGV&%Kex&o#%2`P5Q~?a7@XD?Fx-N3q*gt@PaqFJ@N7`Syu2T@5R1 ztRc=3c3mnA9P)8@8RvKZ=vB1eN1doS?74kCql-W9kJ)AHdzh@$jiNSeEn;hImZ~ds zio|BdWWD_sx|Z2dXv@3LTj{0iLJfx}%rQ#x8tXQlq#hS@j2yd9$^z;aFv|%Er$L2qvD@qGu^(++X)#kEqM8B;~nj5@vPI#jc}n z%E=$}2WQ`-dhA$btOtEY*autvdw>$yKNffV*ozp{K^ayYfqU9)jPPl!*mMd;7uLnG z&3=l)Wcr28CXaW`RZ(%s9m|=M6gDXl!`nHblIOPgbdty$Xbb;aS=bn)C;ly%gj7B5 zw%oN40BhL3#O)55c`J-1Zd!(z+>4vwYhXQe)SHDy)wj`*eFf ztx-svEf4go`1mRe;lz1cm%0`Do$axKwZOxmO!yzh1y9#f3pC7?6UaEod?mEK1ZakLA)cXO621E(jUxHoxj#|o4c{kZ$yKNn5R zQCdGL_=$9Y+06#Cm*}ZT{qfdYe(veH*X<5=N^3zN9yKZ-7df6Im|Aonm@N!?b8JX zT4OeGo>ADV!fXTgl!@~#(>uC*r|nTfoL{tGuUp(Z5Rdk=j~9`v+rVAR=frvGF?(Hg zrzq@WOg{9|NH;Mp8kc$Z&9P~%>$NHdtG==xA6!SLJ40;;-hBgZy-|kOi^o>Ru@aAf zU%A?e9{2nno76}pASDq|%)J-9a#22+#=(|%_xumz6|en~C>+XIXEsc^FeU`C71?;> z)=jy>`uZSu5L%=+SAGoe#Ea}~B%J;ulIpo&>4|LI?Q~T*-?nG&#`)dI&E&D$!aacf zpUL6EkbB>j-N+SbT2o|Go2M&xLlzY|$?r|PFwHv+eNsA!#Zmkn>Q?n#svWdXS3S}i zQ;Bo8=G80SAG5~urJNUk->UP9aKIJfeCBY5PXA;epKlKOe>2m)D2T)l#)|BJy6SxP zMPU+S^2XB*bl&Hq(VQ{)PVM)K`b`XWeP_S!+9mcb;_#DoU*zO+CCZLoZ;Z+3r*2Vx zdPMQhFs+$@l+3GA8BZ`(!G@2Kx4*}2HuL@ zIC`)1Y HRifr3;w#^a9wSYadX{l$eS$fE7h`3_u1IpvS>tc*uk2EXpyM~jfwWG_ zDa8-DmBhA5Go_iMC&u2%M$3AC#WgP%d>qX9Q|+c0o#y}zbAU&?_lT`lc9_lhKQm~S z7!_oPB|LBSAG?UBjp%L1d$#z6p}50dla!Q>okRUaAI@&fsjKzBb;`TB`*c&Ndyq|> zFHh6zMyJ_8L!5Qr(sfH-Q(G*VIq-o|y2<2+Bp;$zf|0(?^nN6|@(h3d^I19jCkl-i zEBZ{hpxkZ}gUtW>a+)&bRIgYxWlVOlTdiENjibK+{g(&LRSKuYV-$OyChA$BO zWvqx#3{!?}PsB2w&(@=ymF5ZbBjZfd^}=|i8-@+ z5^=r{XCL`(72`b4n1*rg_PU93o_+h|(d03L(I2p#fHXy(3*4Bso5dI zA9%npgZw42Lez3~!EWB;a?T8qS%*AuKF6k~!^DL|dkhcce67e-SPyhS_t0GK*Y^^y z4!Teqn>^0UzCu|Wh=1l#Kc_NZB-mz>KUj4>=sIGv?)4^XG$78?2KLnrOS6TVIFEVs zL|MGr5f;SxM%i{{)r%k)m2-YQWTxU|Lr*criY>;$$~4Z`RQ$V2>y1}dds9Q>EBpLE z`zkwQ=>5T%ywJ-~*+=g(!I=DgUOi=&E*@<;vkRBL39nlT$YZQ%bL@ebcOnso7>B#- z&WkO%Nhn}^m@-TeEr|1<@#ORODiu8zBqP;47stZ4h$UB&Fo$P5{K;xj%=h9)SN8Y3 zmx*fMW2p1V_^h{3-1tt7)fJ3;eshKK+913Nr@zd`>B7v-7uOjNW8-o}yrl=qc)yqA zMTwH%&dB2LR@TK`)O+iIQ|{z&_BRuER@ft=kp6w+hKQdt9B_6m^QArA#C=y+EU=;f zNLf4a#)Z~SDMvf>&! z=lp%juFONhp6;_UzCx#&!tw32V^%QdVN@AG0& zm+zg6SE;DEE)KEm3t7}%Bfg!Dhdb-L3~GsZ-b+Bo?(8Ei%@;{L&wGu?)z6F;Z<(`w zROMpg26s_sd@>Fa+p^gf!rhU2ewN%XaFE1@5auDo`PuB@q9$j5PncJqa2+B_^<&VS z^^xVGA;R@r7-IOhL?#UtEj9-N@$_(?I85A*^TFe3^qadeOoY#HhuuYTQQi#`H-nv# z+nZcg|6$_IEC+-p(A&M!P>~;MkIj4e^Jfeevr--KvXU{a>i|(Fz!f`Z5Pxd}5!WLK z#Vxt><#I-TEOTf2byc3ZZQ^ESeZp9L$Y<{>cYreS@dVr*z+7nCYcWpG8b-gl_e$=c zQwv|LH73uzV5VrbAPff4>?e#26mF9uFf^96$vcSE7b0;mB?m{6x{9vjqY*Wgv87u> zQEy)iuJ9e{Sn*zV>CU{al<$b{oct*x9%uMB*2>%?$1Y01rT65-gfErXh9u%U`%5GG zoxGh;dbP#-a0K?-}J!Zv3wSm@8qli7c862 zd#XbN@nIliCS%Bm&25FT&K_rY&O00S6(;O~bmg6E+}ubknBa;WFW&W+8;Stx_PerQ z-7D{rc3=&9r4>~@&o-kS#hlJo@Lk6|LHkz@x3__pEAz1$WpceG)LH7vTKh*>On#B|S#9vPD7;+79kelF+5!!Ac-AupnigsX(qDKs^Q*im%T%d# z;!s$@IC;xcy@LJH(|7nY$CarIlmELbIICLpMQxduh%Em8uPqFvLBo=u;`z*04VFv} zC&8ET_Q!aF}Wx$^^m52Pee9jwfD#I(w6vmG~~a%-lB!H z)-M`~yq8^#C#yHL3Bw)!&g#h4+FiNS6-XmDrb%acWixLapTT!_$RfF1<%Z^4*~gxI zTmHA$3FQ~~o_=g9>YR7L-ka<_{un5_20NmdF@F_Xpp$mF!jbu5*EY??hoV4)Qv>Iw zYo+?=_;hrnZq@(BjX4`uYmN17k<1>Q+o_wH?_KQ>Yt6aR?a3xdhECK(WnOV>o_hOW z`s)QTzU_Xeb_$}$^J3o1`3BN=pJ-GR#trFeA>#cPP@LjY+t`c$?^OUixZ~ zjI6=jH~D>AvX4o|MsUaHk7dk^J}&v# z$6^(8g9kkpOKt_+<6!=C#=nd7h5Lyc`P}XH?JOTL(if4u-z)US%RcQr;CnO&W_3== zsa;$!vW$ChOT^dzG4Jz3t#SJO^Vf^i(b#oRIP<8{zFs)HUgC zQEJ9#9nnY%VQn%eH3tE@L6WO&G;HG7Bc1Ie-7}+RJ3mipk|}+*Wqjs6zRk2y65(-Z zI)}5@#hayx3*u2{8_$ovEG<06+0#Xy^YK@uj_(q2foJ>p(pS=U>Xf|Tdm3~6uhiTo z83PzIho;nH{hUnS$z0@mHpS-l0QhNujMmkx0yEJ)NV*B!9HNMK3vr-m>`YNncJr_lT=<f^{4dV48m`wK=XoB*cc<+~Su<=PH6FWg-sftk>e$^0vpC}~Q6E#+>qd=S)<v4I3RAf%CCB~oWrCX)mLG;)P%fb5g zN2E2g;}OmOt83f4(%qv8c(ykOz8ii>4}Z~{nEBz7NIiV|nuOl$-IXL5;-8{q>}S50 zV%8P6Hzi}ui2vq^{m_@SVHop}xn~B$usU_-o%mc94Mx(TL~QhCu5z{)zNE6h>dWtM z)f9FQqA}Z%J1GH`QlGzJFykF+SJG3O@OZ!}J{7d`JC_{jRPpSc6|2CaK3n zVd;4KM0*8FWXU6g=fAN$Q;HiE0~;frlXDxScf|SZ2*$AmiZnJf4l~V}D;nRGZt*;~ zW_~s7{ckC#G6AQTafbD|2}U(wzvv&%B7Hlfarb1rW(?_h)d*Vdj2sxseY!7zE4>a6 z@Z4%+Ea(HDjD~LieReSG13iPGZV4+7JDEnD-2p1k7eER z(Czm?Y+M_Ij&a zNbfddh~g!_*r%6=I)>AQdYm6TI4gYVnI;;p41wcPYMC}Hl*(_XpfBI;|2@y!`ft__ zYherh6mnOtY}FW<*g^G+JSfLaD$n6gC@ZGlu<}W5-Z>bd-`VflKSBDWqJ9+5_Ps?J z(l03*Uk%yca9t)@vQD|*lyTtne(ASeEY2BF+sgl%v@9_WQZLqMUjItF*T$opCF5a6 zW9+<>fa>fA{xR-?Ztatx$J{bwzzBSGpidXi^P3r#7&I^iOGYye6nf!oDs?MaFD%*` zj^N+P*qzGVpWHrBj z4fLizPrtpmUVtGzfRK+{-Hu90)S&oxZ9c~NSgCvDQETX4KF(OIlBbOE$Ig@VVbAX? z@^<*)_V+y8|CJ|>mHVUMI{UGMrig!?sgbCp;AldoWJ%wZxh7TnNYaL_TASv!XvsWH zf9X0+)L1)gW^d|C2cZfXNaDP_8S}ADGo%gl<_rBn zPUqB3Qqja1jC_}kJ*pFuy?-pSKV~Cw=}T$$%sBL@O|D>KJydA8_t%#@4yyJr{Y70C z-mS$Khagy;L~T*>tIa2&_2guv5a;q&fiTFShY9bv@~{k;J!Ri9mzaA@!-qWjrLH3n z;lM2Ftt8{g0rpfk&%^ir^lE&Vi%R_kaOV56aX=pGzMTX2+N}4v%VYK~k9T1V9(T*f zR-F^#{&MbCnvX6<&G2emC}Qa!ec32dih4mkrG1l;`nrLvz3UIN>yu%cT0Lueq)c+ z$DQ-gGmJB9u1Z(aWAT;R9g`RTlE!R{!$P&qS12kP|Z6 z6tyCffX(cCxAaBRvScJMZp=}!M|>^?J6V^7na}1snhN`3<`uq6(4{8-ri+}dyjX>G zyOS~ECHsEn>o`ZH7e})^a`@KcV|)T4UGrc#Wi?dX@pL+vM;*Tfc=#{9)q3Qk;&T)R z*9ynJrTOU7qB9Ck1mRJW$@mqUCtdpC2j_VDY`Tq*2aoZAej@#;A9ok$jJz>scRq5a z6p1BGx!*dHykBe)Q;r0|n0maoI}ebOzNJzJt}4#qn|EoqGd_EGu>a$@O5eU7w+~Aj;$x7; z?|B{gK(b#Mi;4WKf2}r(u2BEGJR82P+T)gf0=hq==V{q+#Q7xR@PHh09PJUmISEP3 z6|d;WqM^j>p5 zUa}EsMe$h0XR)BxGMHsYLt(zH`FAqryrI^*hB57=70TNM;r>|uy+3NhHJKbm7v4vf zqohRYt-ZQS9>ra6`R`;`T%Ew30=J$*33NteY%aE4nk630b4Ge6_O<@*6Ss=p5kUQr z>lG#9-s~WRmZiY{2CJ-z(pKjvq;ej#;r$9}7VGXqOS7@OsZJVF7=!T1+35M=h4hO2 zmdVWF+Z5<=2Ra^I$QR$Wpc}r~C!i_0L#sVTBV=PD?lxy#qxQjRY72q2@Pi}F8`ShX zW!#vts0dx+Q*kndIose(xJO;UJ@>dP+G9Vm&!oa&SRS6ZYLTMQdrF;0-R48^r}xzF zH@QIm4%GP`jZyiWt@m4se&oE>Vvi+eQ#=kg3xaIQoNZiBtkCy`wg&lEZI?+a!#rTZ zuU9s_s$IX5wIOHv=XTc=8xA>PHFI^Rlu+?K-Wj)pskyO#z4#g94vS0KxY4&nd>#~p z2Q^Y*zU`)ZDC^dQ2Nm^niQWcFF9GzdRz1J`}@#24i^oTd6tcfJ@zYwm&t- z%8Btf7?n+3i{5y!DgkM0*avPs0XeMW#;_+`WF3m-R>|;6VVzh$4bjU};L2M2m*)!H zA#Xf~J%pkzyP?FSVSWvIk4~#V6Yc1j5G99<}S$eJft-}4O_;Fk3;eh7bKW> z|EIyry@^`e$#D#a5ql;Uh4YZ?9E5lCnGfH0!(BgL7>pz@$fpiKA=#Dzy#^#t8dt z90-e(jB=xJg5OhecZJlHbNrqTjNun6q$bZ|5Hg(4*Z!@vbYvVZ4q~ic(gZsSDxw>_t6N1fHLtO}x&s=k&r!jdZ?fQs!oK@NI{KQ^aAm)_>V#tyt><`_lmfQQo zk-IMco7c^Fpwp&*w?Vt1tmCXsXuQJha4nK}>S@3d#!Y(bu5lI&PM3M=Tb~&931M>KmAcdlyeUFyZWw@E-ixu7J9m!qiAD=w_kDC`FSz-4_7qmN_jpvK> zaU$Lcefh4vzqDQY9p!|7BUrOx!Fs+`paTD&jTN#yKBL50vlf5pCU(yQJ#8 zd*<+y+S|u%u%-`n)!N?Itnjcy1LELva+&Ia)(N|I&rT`z zO@S4kSNCrcek@Ic=Vr!g6MsxNn8Ej%eKzB%@OeP47Hc$$w21{D}rkN4j8JkD)TbN)$Qb9^3}7oUW7R2qyAanCcd0!B5G;I^N<*4GE9wH%9% z{N3s`+K$p_`nkks!c(keZ5E1VrToA5ErTg*XVV24SoxVdk>`C8dW4@REXcu| zz@M^d_;`rgq^9&V{L>0gqdeg?BZ2<2a{1nm?)({%=(o{V8m4lDJ9V1=_dM$lJ*G8n zXoI^0$#D&nfSZs#$hFM)Rq0GViW7Odemx5Cl8}lTolF{X5uM(Bs;0!)vs0tjtmAWt> z1}*AkV|SBQ(w0VX7<@MiM?RWJ4{kBPV$2Cm2$BYtvqwbT-GhT?N{2an`dW)#POQxj z&~G%zhx5?-N2H%O(^3C*HjJH~NV|Vz;^hIx&sKHNiM3{62sKY?wZ+va>L)ei`~7+V z?p&fC%!WL8{sYt^=Aq5<(K^B$x7sluZ$b@+YzuVUnt|{I)Gs?p<@lcZAs5Hs z{TpiNvX5G!HpZuJjCi419O)Ne{coxgdqk5@RlZnlo)d!!6Ug&fQLg?Q5eI8y`Ull|qTa!tv)Lqi&OWU#W%1sa zHa!dD{JTjhx)g}_S?HENRvPgy^S8omY*`Q}t)lk%E%u5t4W>%x_-xN|PV_x$iDdR) zZgQKt4LdeVQ&+LaJSh)>u6w06BeKyqkoEP$GU=#I26q0*#k7s3QqG7}`0+UnW)Jp3 z5WSC?tLHV@CjF?LfRntt$I0uY@9H?**i5gYE<2I06K8<~*@4i)VuHk%Id+pA6oN7aU z*Hts^k$w}gco@%ZOf~J?ZIeE`{L1&oRfibFnU$a`c};igM#5&G7PgnEtsh&g&YQ;T(zzP3xCD~fpzxB5uhI=TL+;YpwLLvGp| zoda?C8F}*mWNM$B4#K7EO!U52qzzpbg3uoH!t>gpHA<%!qlrbb`_@0}Vw z-fHK}kAe&N!?RR+a_drhn;yu(k?1b+p_g$u{F!>5_0_Tgd5l>>nRqkIU9MEoAL%#! zh=Y^m*uoU}^I0F)QH$vm^XDU35PxUM9>n&jIt#<^7RdFo5>R=YyFBhw30D2inpm2$7CYj)3XZBU$v!Li*cr? z#`8RQvaz<~C^IzUdz5fRPkYJB9IXSg5SVMJJz+y1PwITW@K~%}9O@5)z%0BzT&j(! z6^Q5WGqL^5HLV_XhWpN-{%!4Qa$!UW8V;ndaScN`j$TOpp3$>IJ47}yi9j#*YzJ+3 zkgsqbYUo;eExD%3W+99-CG=A1y+Afv7KbR}qiMfY-g_m1wGsVR!YX9#!6e+;#rJyL zKl1R~$rwc5_=$dREE#q*(i4WRt zUjxwP7x!geHIpaL3Bt>wOq9JFAO~55KpK?^$=6o)YfC?-_uLack}OZF8-c-^4D4}R zAkS$W1rOrv2 zq~^l>P7?C+i22oaqE9~e;>TyA`Tfq~T8~7mr%uGzzCFd)ehJw0ojKUg{sNq{Tad$D zhx2iDmjvu%E;07&aM7FnmPQd72yp2v#+7m|Zvpb@b~58eX%6ou=R$2wD_2~L&4TvGd+h^Pe^^kLCT~p( zc`|ibSJutK{O^Nh{Uq)xuFgb*zs~aAULp9#zkP3qT)F)R_GW)jAAb81`N!pO=rJ#C zP_S2CcqtOyi0$~^7iHVK(U`g_1D&gXmQ!oQVJ`FO>6Hyd@~3#@JnmI(h^ z%*6EJtT5G3xn_)HU>tDqUwWY!4=s1^kO7VJak+i|b4d|3u2HfbpGcE_S}3**M8j$)E^JOUWECsr5< zht3HQ>zL;*k%anLJasEMzkfJhsBXoPPo9o~2G+v1e;oHf>Gx6TCPveP-e3p!WCHGCIZNEUlSLC^{;PUAk~+kTHRI#3mD=VzA{<4*uV{>>W`|v8L(zCn1g6TV_fgV>`THQJTDR-Weut>vlX{HZ^d zg^SJAviq?B)a}UKx|>1rRdVoN9HfV4vzc z(MyW&IJkyw$`-yY;F}Qm#6}`^}2`lDZ zev?vBeA`2Kx8RmXl#=!?4d_&%g|m6R)< z+&7BD$+Pv4ujj$t%ox}tFPhA6puD&Yc_i6ZW-MI?R)xNuH z4UU+?co2KDFRN>%Kr^%sW`ARJ9c_w_Il7i)A^)C6>pH>}anz>%S*N>4CzKu$i@ALU?I+lsczZc3zC&)wKPEAD1J#y33Q24jYMDFf|upLdAu z>d*4dUXkpXXTU9~vAEhg8fO=0kXzeDcIaLcPEiP+ znu3a-j-t!PaI7a6#I3;~G4*XQj_yt5-0_>-m!1OV>IB^U=q*QCcw=Yxc<9gAtv+LvZ4lwh~>Wdi0WG5W{zuzvM{3SG3}!Mu9&ug{4uKmvP(aI^j^oE zqpL2mYC{0}kKj&6m&x)L-UB->Wx`_gDtRn52}4pd@qO)K+1Z|cOuaHOZuc#@oj!dD znS0cXuO{w)iaFBWjeU}*U?*{QcD0?X*1`to1R zQ!6+8y%-C>5fh}>P28}sUJRbheWMDSuF~pu4uQH@uAu! zc^KlDYYmC1B?`H#)kxv)-s@H(emuRWXJw#=b8qpAXFG+OM}2n=6D?jw;avs2<|`#p z>JY_RBpufdPZW=;M5&49wNS71l|ltK}M9d zC|XC~itF?>_AwUwGJ?>LJ&Zlp9mR#Oewf*WJU{8TJfoF2I&_K063gAPcepzy%#Fj@ zn9*{Akt=L&#^U1j@0vj~UE$U<2G%{zrFR!RVDKay1AZw|kw*xYdio=~)m)SM(WywD zQWfXo&9$^+E}9~1G&yxm_Gxmx%s5lchX0Odnt2vH&o`(Yx#g^Odn^8YB?}+N8q2u` z{_x~E9}pWP@0`ro&pyoPezW8`&ja!JEq&w@H^~E{f)TtZ6Lnr4m3uUx-n(fgx_)^o zN6PdHtj1ceUmc;N?{>k73=C8mimiJh@o+Nt*8B7n^V&wixHEMXuMH9v>@WJwO~=p8 zqr@SzNSJ>~!-N!5@w90q^c>S*Gr?Lcc@%-?+for1XeY+L4Tn^bg8asoLjOl7>dvJ9 zotavsjt$1rPDwc6GC<_p2H@iH1Zr!y7pK4YVDnb)e|FOoSNuFNl67CfqBrum!EPvD z8izY~kIG-?xL_^!F$_P6nAM`cSUPvue{>f1eqb z+wLDKCb>o6?bS3qc9FyoDT4mMX;|ObRLo`$Gk}_O>D$MMYAwQ0cTx%xCyo$h8-h{! zItdP)2Z+Hv0+F;Nk)C!vsf*%=C)_Rnvb>8J;_i+6$?>?jyQ8Sr#shnp3wCzvAe{Y( z=eaoQ%e4_+g4acJg zX=w1(Q1p2bhMptS@Y$@h*nK(-`=(GwW>`io|D1NW;!qA%W$f(~(Y)E!Tqxo?NoIO&! zIPZc}uJpP-XevH0aK;Vp*p#dsCl32^x1wtdwQW0#(l74lNNxJvy-MVb*MsqMEWJ_d zOjRvPO2Ph)RdH^$=wW&Ha#Kv2$oyIPUVe3g8O+%$dmj|3QFSn9KQ#-Z4o}raa;IP= zadut%O}mIZoSMWrx}ddueU?9VPhg+Hag=C`j4@=_k$ zG8~5WlDaA-K-o>%GX@ z;@HX{)>ic3USCTT^$oz8;hg0xXdvEC^F>rgay#}KidVC};KG{jwD~|0FYiR0PY`FnRn0YCZO!4&{`@qRrFJLt?nL5j z<0Wf*_Vub%pVIou{ok{v$9~Lmv=&N=0q|c^|&Dq zTF70G*-5zj`;KhWlzF~;BCPLxmKA?r#M&lcR%TOi($5QX$;0dOz(@=*;`!v+-Ya{E zu{kbic{~o2)AGfnAw}q%@-#>Iiq6&_o&a$6xmMhjE50e@JuC&hw=Tr=8v(r z*Q&D@rQo|^Rh;cqBUE-8Q<#$frl%TXl4)iJBkmA6Jx(sKFf_*@;vB!WsdkP#V-#^7 zGk&J_VJknZEn__xQ=)B4y+@4Cf`{P+tpV@E(KqN3*8RKIsghm>vGnUHY9UV}*R(lf z@&n)g^72(7c)B+O1uZS)I-SU=@L_%J8Z7r45{}x{$vOHrOWr**oPLk#Xfk!0e2ARG zNyPa;i@EZ;wPAS9xZ(SAkvzdS40^=5e2!zTCF91b&GOZ0 zLDVuy!j@rWvig-jLX#6Q<--;E;Xq&brc$FStFB1x;)TR5tT|%`i`S3cP&_c6d*vY_ zq^k?|aBqC=sktKNxD)KG=_P%9oyd%H#(*j0jg_t!+jh9&z8SrOZP`T)H z7{(K4>uZv{etHkMQ^~1uk#9T;<-CeBZ}%YiDE))ZK1jyL?TPYJ z_JhZ=$G5ll99gIJ#}n?qO^n(v>)!g{{SwyjbAQQq&T-%BB6m4*jYMU(8!NY3*m?>HD=-z%)h<%lEB2S*(ik50Lwb-xHqS~*WNzr?dw=?8KC zxXD!Rkb0kUsDktLes5G=iF0cU?f}koP`MK4U&Ogl?*k@RTA0I+IDZcur3sQ;sDZnU?aQq7EYgZF(=CnX8W<5CPx0lxHAI_KS zQnxEHU#p?UX(H!Imt2-=|I;*U>BzjIXs0&%Sr~f!OW({BI&G0(I2ZBSC-eq-8{-JAZyd5x6%l^Q5wYZ5#Wu)X#^-$E9GpI1buD$TTF1$&jmd2dp#_D)s^*1RVdWXVCT zS{;OmJX^~`Tgra6{y0oug!E~7@@rEcc*_aUe|uBj_09v;>Lg(2&VIs;vy9p7?N`%f zh#?c5(5p>6Ia-@VVZH-q*u~-U@=B4m$^nfnW2mcnPeiqG#`FX9eA=cH$s0WJBaGa@ z8X9>Tbq2!YY^&gGcT26dBhK%LbM}^fsxabwnmDU&dZ>b%n4=kaG9wIjnaJJw?1;1d zW=oT@O3vJgvq?aV$^4&wm@p;_TgJ~bxv3w3yB9MNwY|i|Y+@i(A(?Qman@wgf*^cg zZDMlplgY1F!5Gh;v;XTRstsP8L6~RY?(|-&Xy(=bzD>uW8KYJI_6o;x_AM=iqpI~u zV#~ZP#xziMq<zH!lmXQTE8-jP~=ZH)6~fM+EWyZfbNxq~yAx{w^QP z|I=RN8w9d;wyuJ+`o6FFCG%$=%N%qVaZ_bXoJW!i_wW80s<1}ph$YUm+6_<@wsC=u zIA_&Tsm7Gk>ytRw_V!mjeCCJwqqDH{`E-^1i&~}^GO@~XooZ9xKm-P5;`ItewIL=5 zR)5&%pZG|1=V&l?u+Kc-ueLgMP$)jJx7qG;8?{SR81i4H!{Pb>_4T^p7@VGtVZYSs zu6wz^bB}plgt@vueOaIMV+|N-r#`oeyASE9aMUwbe;OT%G~R=4cIvCw(tkPSb25xS z&oD6|uh;eo`Mx)EwQbo;`&XL?mo#I!bA~s*pG-jAep-3xV|R>imH?w~U464{$je*JHnlgSqxF{5K4W(+iQg*BRH^ z_>enjC5|5O!lp2*Dma%N&Qs?R=WE1yZKI#6R>XNHasF1aS{0|qx|=xnKjEY5-_!*c zi1X-<*{XLXzBsdov%(omR3onX;X9~*eXLCN@(KIW=QGjd?KRb^rhzyTkcoCqe^iw= zLHPYM1Cgf;)aOpZW&#WDaJ?vvFeQc?2V@kfz({xxz1grNx3d79gbktgs zuAaklzK~kOuBB7dPalTjWUn-6G&9w|VmR|nO2v=v1?p#wLQ&&5Io@;q)z)8v(dlC{ za{3%q{n;0Y40@%+qz};6oaKjeB9UB~E^?c8-dIkYOI>%%r6KOn@jUn6)=u9&`4dAIQL(ijeT?Ws#euEhuP~a+^QL_ znqS8SpNMl}?L^g!Rle9noP7%BsBRze!wlm5PmN8gyB8P(&t>B9#3L%#Z}iag&&0sR zPgFGr(-;1G22Sp*qwbN#^UOYTv-$1S{h90jP-WoCz2WMfoNaY_m=3FF*6NnpFv#)r z8_n@k*Gpu4{wEDrzDKLQ=wsEm8@+dX6MrcbePdIRu_8si^;!tJkxQ>$JxN{fP%w6L zN3z%X-KuFxfk@zvP~)|owXMhc;f030jpCMaiSWY0Bh>p?wqB0^=!RB|&j=m*;_PZ_ zp(^E0?keJ(9b>5aJ)d5s#QB?FN7dI-KU|WC`N#pPk<6VAkPq}Kbe!tQy#W06r9VNT zw`v4y!{6W7pFfqOD)kIT-9_}OSyQA+Ily<^m|q{bP1XHVD7xKEN2aHudQudIwCHsF zO1h+4ZxM#~>}h0)d#aE0+YRYJubSBBs`vFmQ5cqrg&{Xp`<91b^T8BcpFCT&J|P%q zA0>lr@^T0EG+b^l$0}p~`H?<}Wr>KhHjp0&c;WuR1UTw1mLsRSQO7v@iRK+JA%`WlisrP`DLd5o6+X2$gXG5c74s>B~BPVfxJ_tdOE9e{Xu z@-%+BXomg{#4*lcA2gq)F=KstXEyn4+t+EjE(*cDff=ayplFVt2}Os?)ywE*3sN3PlqeE7X2LzHIakv1Wl4EVhOs z#V)YS%~lf1b9(L!3^&Kjcws^WYn@u>O=aehl)u3gax_5b7Qt)sH)*6v}u8xtE_ zu`p4%Cw73MAdS)?(ka~~CW?w;qgbejE%#n)V~gG0-7WSvecthnar~Ws&K?Zlk?UUj zT35^nWBuGXgI<&U&l$xt&h~fy&j+OLJ8LYWKAvy#qLT0^XOwf!f1=5ik`GH=u)lXK zy)o)&ee&pWtc}5;xqY>N_PRmWJO=N6+G(FWaYvU&oF~sq)_(2iiDhxosQo=pYZmT> zwQZtdy?mcGWurITlqk%yxS;)MJRNUGGjI4l)*gH0jrjaXOqlgiTZg>AXWT>iRL|LEyzs^{0&fO3R#JEPKPDDFPR80s zq0Z#a$6#`^AnhgTjE?NJ%cB-)zmIppDej|nHO1O>pIlJiD;lAzFKerpxzb}i3JE4Z zwQbm|K5~x2nZ1paDs$-@dp!~vS2`=ZS&#XTqCdo3L*?xh;^cE?;&fM2rLB(#G_2q1 zzP3?b5L>(cbT~X}*(t{>xMO<|H4dhYQH;vzX+quSU(5R`K^@sotq!8jT07<9q-l6C zH2^o7)lyD0b;QO8z8GEhSo>m%9Y##`!Q56GwU#%mU`R|=`lU8nS1}pSx#L_M)WmrF z?}<2B$1(Qta(-ZktyL&V5%B#^>mQ`2r z=M2D}ns2MVbW(KL*TjCIE_sV#im2g^=UGvRo;y`(bi^GQt-0&35UJ!0^gzRPkvP98 zQ`s8ffdNgKLyqStqtZQahxJCK%$3T9;q>rb7lDcsRw*r<+;N$FE!Rp5l~zYxarAR2 z=C4jx)+M-LMe7hG1o|rDS^wW^!#!?;;fmJ-C;DvoW8lDw%HnP0X>wzeDk>~Q-b@e_s?SmkREz0Yp=`dSP3olZEDhyELfF0DmwP>sy+|9m! zJm(wjdnw0>v6;bh9$qqD(WSq@NA9Y+Z1PbwpWHBp7}(vH(v*G|+>yXDuc?r$l#pL@ zjr)|U37eItwdk|cKML`=2bDr+PwY7ti4C@8%FOwm=*k`U&!blqAAe7*R%gJW+?_V5a@y$oZmz$VkIJF3t-m@}Zb#gpDJz|_6KQ-E9Vv0Z71q>CO$RVGr|So0?q90sDuH+Cn>>|x&i>n!@Ez{x z-i^4UtRsr~LJtK0ipITzca+W%{<!b zaeki{oVU(Igk^Q{>>z6)BVvU+RTgJzPDgk08$ZmvtSmS5!StrYv*sQ%5@)8Pl_nJK zM_VG9yY=P6L*eb%A8Q%Esl;IYZ(SGA_oeZ}m*nIup_ZDvz486K<1xE4ITXr6BeO75 z`0kFwhdy<+?Kjw9aUQYd@}xHG262+?Wh%U{q^#(``)*%wB-GOW6I&-3}xo!C*srefCsZ%lBY7V7}= zC_iyVYQljX$=>yU|?X?w-0g;!Yu|f~ZZbb>ScSElsR1ESM{yG*LWiPmN#VFl(%j z5}xF(d{2$R_YHo+&z9Oa#PC?{(TKN(GthQ>6#9DXQlbY;N1kpJ`gttV3^DM+!eLQ( z@Hrd}d-%YoC3g^smL?b$fen5C<)^f7{ML9-lqrrEQH$xUgK_(DrZBf9pRVRjqo%is zU;h(_ngs*3y*k_C<{QpE)_&4%wRfQ(5Ve5zwNhGba>3huaTq;cqwKiuf~P5Q^a$`) zw)b)6te4uJgBB>kOI@*s_vy65yOj&g-C$RlJVdYiO43$0_&uT~ZNpmPu$epNGS821 z)kO^a=TMh>%sJ&o*mM~3e);IVLgS`*;^Lwh zc+&r&z4S(_r%}lEh%_lM3_;WD#8vJo2IF&_5YkBO~1Gf?v(c{gKriWRMVQR4_bXoB-a{Xu@X zy_%Z3@yo^1hW_*|kHbuz`J%XqKVlkCE8f~$Y+me39z-lP%I_&F*{gQo=Xj#UDoq1w zWjrEx^~L^NJR9kS8$mG`gEW&XT>_CuEc^e)d1IT8#&52gqWKYOVOiQsqX*V#e2ZQK zEoZ0}XQvRCO^=~?D|ORk2lkls#%VEH9Em3iY;1~nMRYUPL1u2>aL@2X~-aI@>^T~Fy%1BS31^-(gOr%FAFAS+hO}S&;rkr&XoyR;9~Iw!*nL&(HFzn>2kp zcp&*DJvg4Mg5zrsbbA;}+)0*6{Xo7K%ZTl`B0#Lg;^eZ=M)QyjhDV&g6$Xik}B(;KhCFdfh&)Oy*~5Xit5cqv@JK zCGNOeL|K} zKrHwwSFlbFy+#j|MK|Tn^Xya4kdx+cSRS3=hGU1wd&=4&bsxK7(?06E4qhd(sko_yBN0|!>qTX1orobcWQSqrJ*f6iMrK0poURQl8$G?!5ey)Z3|f3M{rnULU( zihM6zblS?-b9hfpO27}p>T=pXA2^dUsGfTwp8aC2+x4%u(s6Os+3!F7CF6u*@#Yq} z$<-5Z$aKB%DG9*qDhd3YayS>Fk3f6sxyb<0rjYXtau=6WuOoik^G1Dg>kJ}K89D6q zfH`^PV@iWjm%EHtguM}s8&qfTHPV)yeKCWY58wnQ&08i;|U9%)$s@J$$_yR__6Mn5nkIhtnE`jccXj87i|3Zi10Uis z`;o6`n(2pxU%VF<1_*cVJ+@KT&i8Pfu%iCzz5 z87Cod>O}6k+>vfiJ)io~CZ?x7u`?(9pS&^e+gP0Q;|}N@`FI(Z#SHSNp7HNmvmj19 zcsmU@KhqDzptG2|#|Lg-xf8$kNGT<5*61U3B+Aw*59;`%!&CaF979@5(O-x_su4=9Bl_rkSSeEe_(Lx<5raJFNzr^d^~sW`U!13`7|2=5 z)g%a;x)}7`720M=s%BQMY0O3Q8_$&Nj(F8lPkDXf(uZ z{ij{&e6M@S!h$sPp?<}$_=-wN{S+kCrG9CIt8%(x(trAdx{)iCy{nkZn^6BYn2ONp z(fBit=cjB$ zE*drS_%2M?E_!iSp8a&Cz z{~u*+P$d7m6;_JL zsYw`nAAEmGTz2m}g z3w5oo(i8c~1@VUc?~3OMc#v>g9A#a<{yXcFu}?%2`=qHg6Oo$vO!VO#WnxSEnVq>O zI&$WE8;NKWbXHW142I3(MC7^b5hmnf&K;73i@lZ#?@|xkZIg_aUv0$%0~hF>rrFYQl zCNB8toV5^$>jcQN9|lK-A}zkMm3T(Z%N-(#9} zUzkst3(23&t#(6v?45OVNvtl;fC2MoMA!4ejQsy+{O?*;KPzT5N`=>VdgZh@ zBmV45#)k5E)aidlcrHuAxG&5(hG)ggf<$;QU&ZU37p?E|?tL4N@4GIF6^wHR^UsbZ zS4B4K==l$c$?SJiSoy`F`gM9Sf4M6 zcd(1tyTBRdCz23!?ie&XT~R_kqW_KaujGz0jd4EliMpn((`2K%2VlYHzP++#T=pqU zVH_%CM@sjiU3kLhkxurqhu;PS@w1T1aQX6g9`^Bhfps7G%ycmx^4VcWds%KpUqZ&y z^=cD2FMSS1^SN=SINN8nsr=!r80SXaamIi7 z&r`z0nsap4)yjpFVpABgCzq&cU-P&)z!}w`68boZL*l{(>UeBtEmuhq<9~*s^Z9tR zGTSdoiv!W0?`**1ePT^Cv43TJ2m6dZR%dfZ5J111u&e!>~#Ysm+tro01_-{DVL=h+I zaCXbTtLu_IqL7@h8aLw+>Pzk4wZsJ<;Cs<=lW5zXT0qO$V_L2kbM*gmY3W;JS|GZf z3&2MH`*#-Y6rJ}?$I>`@z8pOw&XQaFSFfgt&IRGA=Zsm+lW=RnKCvW^d$Eg&u$ehm zd&i8mYs;8_&hwwGIdY6wHg3ISf0Xn}UVOhFL!a^88Tw5wAAAZ~d}k*ZoRwE?cEO&{ zUkB`v$>-MoOJ&f8Je2Zz_3~8N`BM&h^RtND?kl(bo{zVDt`%S@-}IRSeg2z6 z2WaHTUbC=-aV}`9FW(+XhY91;I757J6E^)T9OypR1TF!hkdO0sNjGIXlEH8H=C%Z+&Tz zFRE@Q&)^aN#>u&&6LC*N_j3-sb%ChZi#zjF{(I`p7r$y#Gt-4StMN-kT%JGdvgn7~ zew#?=?BcIqz_{OM#EY?RaAwZeJMdCulsIAfa@HYtsXxEU8Fz+JFX)Sv*s;P5@7?~r z2k$xWm4}_PQIByhzENLo{A52)^IcnG-Bk6gd+NVh>z#SIeBWaizB8WN*PfSap03An zK97G;EQ=%aI4ffw9+fBe9m~Ni#&$r1Oxfwe{Qu6?L8D+9TxAZ7`S)5|*vKap>Fdqd z>WndwIl1Y0%GeH`s4pL^P5sY{&F8GH99=C1I*i+W>)NtSQ4;F0&g{_mhgg!G2u*dy zcjN;Rwt<>SjPImVWg4N z(?qZDk*LC-8PqLSWRV*l9YtN-Rq?_xBN&l`_@% zn_m-~(_Im_fL?N573D)`C%oa^ymC@Cd2fd^I`3nhFOG}lAG!D3@^4+YQ0KZ7cG=M3 zJrWn%O>KOAKMZ(}e5>9^O}k%)^?V246*f@K{}f{mW4P?s2RZS;derChh|y=|ebYQN zkoSS*+N`Sa0%XShychMaz7HpVeO6a@#$&lfYH%h(#mPm$|pq~jRR zt=7OuMuerJ8e^M(rL$~!JsEo$+tK%Quc<^6!<> z=lZy-7&tHt^S$GN2w$PB48-nQyc4}Mgz?H5xb!X#^Q&$ZnHiqYgfoYqz9-rdf4k5& z0kctCmUeQ&t0&aPFKQ;go^nPc@6C@*8p;o&xu?*J_$P0iIs9Edot%wL%oTR^MyR@F z`_YAcMAM>i>b_lN7{*vl>E20=J70|5jG>!eE%kKPdOYJ9Ua{nb6s_`blFx$zPDo#$ z93=63dbw_svqI;iC4ct(%_Z`{hS?}&oVy)Mk-hRW(Uv)OzVMc-ho)ou-<;6XOx_-q ziW#geuT}0R^EV~q7|&s))vctRRT7plwoQ_2$jHHoc*EFcXTK6Y>_v7ko`X%wguPBY zDssNmdBIj8Ia|$P-M+0(wutTjmxo0C^Dj|i+^fj{>Y{$DokUaOc7wL^tnRZBmHtp$ zkLPxMA5YOI*&iz;HBauQiB+7b8WS(nEu>JiN%Fv;#`J(#_Ee0W-~!z){BQ4RBxMUH z%-Y4i_(LbzkGrJ5J%y(nDl@seZ+`P%J@Z;a>Zu0fSU*1@-)f_yno_bKH*Qg%aI%~F zHmwZVj8%S~p}Ku-G3GLcQx58?j~&)yI%BK%qLNCWB6Rs|{`{_tGR(ngJ}>_)WtS22 zk;HcaJql#cu-OP_oa>k`koNTT{(A@4tq?1dYo?dIDtanaTh8 z&g9PSBwKe(LId`Lom}h5YBi|Aqr=)_?+4+}S(;eW9t@zNcpQr;4HEUEKWnTy;nMo`2^X;~TV9hni%gIdgK%uy9pp>wZkW&YJCcjM~+<3_BQS-zxO3 z3NHTdj(ak;hx)qvdK56%wTNw?x*b@K)_iU|@r(RfEe8kr91(s|c5J{n^K)70yGPC# zHXC`&&jU}dkp7xX>KRa5YI%l?y`1)+FNPTID+k?6L8EGXA2*pwed?rcWsZHeyq7%q zjyhfqIKv5REW2K2Pu!Gq67O$f<7ImHwc_k($Qe;II1ZiK(|f{hvl!HxxHHE8QO|jz z?Sx2F=KE4}VzkIT7lsFGnA4j0i@EE9pvN92d#|r3-At{O$@B?26D*Q~eejxmkd&(F zqTXEYq_}IFXue5AhjYI}U78PePeje`E-OcdZU<&90$qGr7qNdqxQak zs$AUM1I_3Dt7jhgsJGf;0P{0H>sqhV)!obXV=MoLMMhbwdDk**Vw@dZT-7VXim{$& zHT2|AwV*s7J6U6wRBoeAN?(q9>>cJzsHRrExCoB?y7`00vh&S(Xu+;n@k9JVSA8lLB8<6@-F<`j4`&KC7-<=eW+$YQQIaA=Ucdms^; zcqWhU)RjT(>oc0OznWM<9`~e|I?wHJhl}F=Xlg7m=664A7e+Iqkj8wzs?`!Px;z|F zTGkS8GsTb-!5H0_o+-Uj#fCV4WCzig@L&S(yBV+|w#qypN^E%IjfvcOiFrw41+_Is zU*itNe>HuS+_Bq-@wdDwv@tGdcbs^w(K_<>Zzp`_d6>Fku(Y1wifY^!gs)p7qwP4~ zu=sZ_T5-3D`l?eleljO7*|$jTm$o0zSgUuauvG2#^(3+wAFJYU)w_N%e(9)CCsH5yT$K!K>ADzft{yg8Mz***CNHok6w6T9E0Ne;bH-2urY085c_R` zh@eO0dNl^glaGtu-&{~IFb*CTHRZY$&KSIc?^SU>`S_D7ROXqo?;B;;Eb_dlA@aZd z;M%0gs!fw@T)7jEpyV}btHAweeug_)k*~fyd=j>d^Zl4qwe03j3}l>p7C5S9^YUTC zc=|pYtPX3n92Yt3>k!gP{q4R8XZdU~sH%F)hjHfj=4wp`GkTsp?qB<+=`lSZAoOS~7FpB1}0Q5(aKHA8nH$_)c?eI@rJ_jih(+zC2x z|9;`#I&rxAbd0zXgT?gZeSX*r9sY3N{VrG-yLe&0A9>JO&SFFnbqs8yDc>J2&XS|o zoP06u?LtvKnRB^~v3Sz|gD|!t#;g^4nL1tM6otIG1+gfev|ldZPV?2ufA=Y|4z8+C z<7`ARw^y0GO?C6wj~XYbEfZd(Zdr5^PkEPFE}5rd(@yB~e8&CsRdpQlaf0#888%u? ze!L9#*mJG%?V`HtFT#92FCA7-eb#3l-n0KT%K0EyOv{2Z&wt(eXXRVl43zVCmZj{F z&EBN`cPEa0lOq>@O@y-As?y)5O*%8B^KyfGuSk2HBtyc}K*=di1Qh9)tGd z3&luch%7$w9jG=>7!X4@f|%9XO}#|*re26yLZ5W+aU!VD6Pr@V-w(DC>$`a1=agui z3Y;wt*LK61Pcitt=#UWYUC}2p4sIz8WbJLlFV!IaaQ|^xz#Z1aZvX0w7EcLL(LWm- zuJdp2d{Dg~u^-Eh(7&LKq89j^L^+?cnvfo)?&`k9zpNnn$dgHYfRL_oC_`{fAsdG~Xw$4By&vw1R2jur1 zsl>prUdmq~ryod0XV!IgaVc_U>muw4pMW_=0YC*>BEhFQ?d3 z_b-&((l7Ppj+epEJ;eQcS!G$0}9roDe*lIpd#_& zg9o-Wh(@En3&k&Tlv<39LYvG8k?!sRlT+l-`MQX0F760;PJZYrFENL6p$j4k^GlM& zr`9ge=@o-#$P>O1E-0BDi*_EDMEfru(8-L!FSD!iKm$*#&;M6nG{GfFT^gE=+$-$s zM;}*bN0C!z8#JCVOmtvzukHu4N_+?u97EnkNwe`C18SsfF*4E3Lr z3((M5T_zUdDQEsIYPC~q$hp|Un%wtZb#>T_Stw)tZEil1DfiPc;XTjcfkQGRG!-M5 zmwbD#m&UQl(BYlfdi5-M`EVlA81t>oePnaiUxIhE$*!@|BO?k$$?Tnv_mPiog`y&{ zB^hSzE*^PevRO?Vh<} zVTUNVn-+_xi_X-iiiDl%7ID7uG?d+qM2qcPM4Yt8qr50=Jy|4PEw@3=_Gq*_xL@cJ z^WT!%M7DaTMA!vu+}s<3Hj$O(w*ga;_mupO?T=*EAY#&V|HT!AZJMuk&d5R%iMS>s~P9454+X;s#~y%agOv^tXgl*gFfTD=6hA8Z_O(t&8-9Jt_ZI5;@MKKn_kWvQSsmm}KP$$0%eK4n_FeK+80WH6 zTG{Vr1S}cniXB$VT=G^wF;_dsq|1XF=uOXjWqZy`2A%Ok&wPHq>EmVe3LhjiIBP>ksvo&;yvwf}6?ImpHkgSauQ?O*uB(PV48kMkpYy(NWgYIVUb3!U{`jOk ze=h))*>~rB+9F*K2I4()#i=>j^8NNeRN-BDNr{p7>9Y_f;^7xIRhrHBMYx82<*3o} z&{}U~1apob*H0de=iZHTjoCSR(&e%-LL=V3Davw3|J8J%m-x$=oK<)L5SXai`c3h>>n9FN0 zx`=%Zs+4N;i~sZX+IZ}Wnii4=E#rLa-44~e?p!Qkoab~}sO}F>L1WHF-nR=^9n7K; z&Dh2`O;mG;FFwJquXE_BM%1S#1@pP@iAL(RGt@NZ`Sff2T~5gjK*3Lb78fqd(7-_a zVVpm<+bg%*2hj_T^WNnvWJYcf%6PW(YG+EX%s>p}zthw$NTwS2@ zyj@nebY;L6lrnC!Up`Wwch8}3Jn>*X4yt37G@N0awN;j>H72kxU_2W&i&K-SqcxDv zFQP5gpC|lqojLh}yMfv^!Joc!oEv{^rY;y0fDT_cC$XrcTIy0?mOaa^<@coS_dqzZ z-l)`}RGxWF-vrim{T6MMGd+Uwh_%O(Lkr~(#yo=m9`k2OGI&7%nlV>bt~x{7P4Pwh zEA$`Hv6jt$vrZ!(Oh0&pytRegja@M?`_Na8UFQV1%xILgY%hyWIpEf!C^W6xKw3Su z!KcdP#gu;+#V0JW{C6bQ-a030rd^C2_2JVv_Kw8vmaR}X9P_2OJ9ic{64h!UeyGW3 zJ6BuPs*gYF^Lr}I7^Dt(?T?wv$>W=}R@)IHF_Cp$wK>(*fr|rifwPW{nwRoTY!I4p zc69muDcK_`7$ux(4E8LR(^`ZejeYlepOw-)DHy$&XP)(&BOmPM&$35I%88Sw*Z4u_ z8*!B}-tx=D=_n%}zT=fCa@KizA>E5XgAT)GW`Z;N5*K>;MsI2A;E4O$DC}z9TF&cc zi(}oRkiMvfbUJH^`tA62p9f-MiuqsuBF+ph6d$*n;wJggbI-d9<@s2wUB}NW;gnK- zYYe&&-?(SmY;DCe)I<)XAH&f}VtDgO2vz@|INvQ+yS1~%493~DPs>uh_Omf?6ZaI! zZAzE-U53sViA@Uqp-yD%${San{^<}7{i{;SF8TimtMfwdYnmCpPco>M?OCv zJ5`Nb=#N0=ibP){^*w#uyjVYv>#3(+&=168#%kWaI%-7SAk5_5*J0mhxr@3)tvOE) zoOM;!s6fscYvy}Z6&Z9O1U1>840yFso*o;5VAdgHLYK%MYlASOm~)06nQ|Dl)J`;J zU*A1iCXs7Wphvu1lBcY8*aH^TsoS~ALI!fqrt>fwN#8Uw{)Z#Byp2Mh+FkmswM7kA z)^#Tu%Tax&z|D?Yjt$Di;5X(dWqvL(kfLy$8SKNN5tNuHJ{%v1xTDcneW_g8-D@0b zU#B+go2gn=V}|3~>8~@ns;E2Jiu195^TxhPyVR>)tl_~p_kGd6wAr{+m~P|_>qooN zy>YXNPvow%;D_3A0=Z(BI3HMkMD;&TOf};?ymYnNYo;H1Fo*0lNK?(b`{OI0TlaER z*L?KHXP*CEUc=N@+5jx!ecEG47qv+)wH8@3dt7X&9*GZvE#o$_QUx_CG#JUu509ST zmnHGkZsp9gz~{KUIG&t8_S#j36idJN)Q;l!=q+9&jqQVR_b|O{e`ZT-zX0s+PVC3a zG`Y!O28i^8{h*oh0QnSiSbGfCxJk1Hu25Keobs6{KNd~J`0mm8)XY$>w6H_tO;I>8 zR8Q)^or3BcqpySEFkOA&a?U=Y{&}ypPPoyyJ4dRZx4e*U&Imbie*gj{6>h zgY2&_%)KBRpAN+@&Oj@U*UGzbp=iT%Zj-V_&Z6$+w+qDBtj&|PtCEXm%=)~`e5t)Y z10}ZHT|G*X#l-ygHm9cdgAi#>?Ah}%G05sNO?o9wgP}k19NovtF2?pS`AuwprM@z? ziZx!>ipIG^&17YL3s@va4$iRm1~CTscQlFz+ACn zlAfx^Jw;{CG=`+sS8qnq_nEokde;i-F}GmUV6Lbmp2&!)A@E@gcXl{09RfnJoin0{ z`-(hi5{6E}OGk5G2>&=J zu9sER%$Pt?u=cx&I)QhG67v~=x^VP`9o=9Pz z_{cI*eQxQGwT$Pxped@s1MVyNJT9)Ex+Eb0>v)F4&+Do^hX!Kymw0q3sIDgd3Pd{V zitan!$y3+J`)97`w)v_Yt_I@^^T3!ZrSj^*5VT<)4$&0J?Po&&!`f-Q*2-TwVc5<6 zgh=L%c=(TaGB}7=4h75eS+4Ch#WknOVqF^j$4je3`5+_)f&VXtAf zRVxGZg5k%yB6jX(xwd8qCUFn-Hh-C1Q#ll)n1}ONOWbWrKl)Ay*#9U|_CHAtMSc2{ zHVKk-O~Y`s9rMWo7wMQ1f*P#Dvvy9A5jlaF#yOHfz45Yds4q+x#Np{x$T7XW>E}TH zJzIR3!W{1VTKL~3=kh}g zjMg3&9gooacsF;t`O8G8wKEWEp8Rz^^$_OP`L7#EXwT)5rA5lYwagMt)RGss|3$1zY6bx#j+Uf@2 z3eWA3M_*)GRsa^Uzl&&iL2hbBt~t+eYRDdW`)D9;um`#HZM9sO7=$SHAcs!RlfP_( zVa^_8nVKj+YeMjYv*p_@eWm^2P+VjlZf#*JuQ8qbO86z$3g`vFx=lczY$bg}I zX8czi>?NnzabLmTU(vObw6qAMA8b4xY;7&;_3(w>3gYlvH?=#%SBhB| zr=W=@j{KQ8p`4zAwD0ujxj0%xw6n!5?rP5+?=Mz*a%RHbGvmb?5&f9+r~hZ4^5xww z_16?@bY+~a52UDj8(E_w=Aok>OoM^|A1VKIeF~j4n!d2j*VJwtvue z=|vr24bRor3psMb=s>LGeRp|bl2qRReQ#I;_wbUpHW3HQ9>lPdxx5!o-39I|Jwk`d z+3q1Y#C*G=au0cQYAAA;hi^A&EqexpaW9&HmT?VbW$rV-4kTW^Vhwq$W*C-qC8xlo zf~;001O@#4=5;@biq`|sGnoBm-50{Ba0ceBBmb!3JyAqFfED>i1DakI%dWX$WOwQd zxgHnqCOKn6Nephe?HAVXSxfJa!Pxf&Lb+lG{Z8ce<}MN$hBoMMCl-2j6GS5Yr#6(t zVO^rN*n7naRp#@(9$+Az#Mr@e8}V$>9mK>hZipC3UCMEhBF=%j?9cz*51RcbPzS_Y zLtbX?t*);wO0q`w2G$ilp328Lws^?%oOrrWHqZ5jV4U;&X2~(L0@3}**0x70o)njECwz!2v1JA1^Xy`iw;Iq&FN$UY+Y zKP*kC&jyjvEdUGs=vV8sMtuI|gF0*C5HTiCylU(PN5-mZ_F`c-ow{e#7kXAUPk7aG z#*e4mg)8a8{F);sd?SYSag3Pt!VYPnv2fl%PD+Rk-W$^Y$lOvSez&4uA>Zp|#zG0T zMh5?u_w%|5%_w`U=}ZpDr^cdkt~0lVi+OrM$Y5O&(S48Db~Ok#tSe%EtQC4&g3*q-qTp+`s5LJH9hfWfEK|jV z^iX6nhWGk~2(OedBpK49ZMCyVqxSx}p{zH)ScnTFLs7=_9QS^lDCB+Gm$Pw${83`h zaDV7K(!)Ayq&V2d2e;;v42Z(a2LIwWTG(uq20O-~)f~=^7xb3#&J*x< zD9>l$8{t2HGA>l3E_7~@C>urZP80SfgJz4Dp44m$qp#UHFEJsAm{q>BsrN^S3iJjT zA4>kzoi3tsAbag7`oOkoD587=P%$kY?SB4H>XMuLcrnl3*Bi>^xvZZHW zyNk7N?NIqy9Aez6i^3b^^YXp8=h9GHe?TN^p7|HQQQ?7=NYPG#;dbIe^(%_$mFSH= zow$*gdz5ReCq4S`?i(GVoM_|)HJr7FrJizZqCa*qhnL#l*RI{{kLjz4_1ZT_>q<_? zInEpm0;_9nWdPdp>wjw-J^w)LVeeCJTG4pDaS#gj#v?!{*4RTg7`IN5hr8o|u?zF< zd-nBbr+qf=_lq7q%;%dHHPuXd5{kauaYqgAswsRJip#7?#+UWb+@W6A-~9ixR$I;T zHS~~4WuCnL!?>%JKgPQWL+S6K8yb3|=I0pH9y(jQw7x6eIkKml z+d(lJGYvl)#GqYShSKkvJ+i0=?&)?^G34B18adIEGOCE0%&RY0*G(wxD26Yyrhg!x zdkzq}AMK!bn|>m)o*0$uhNQRA=#(%}qqd>GEPb#3x2{{ha=rFxDYZ12&wJ&+D|vgw z8p~b&FFpkcwiu(w9FmY^>_5~SF@Nv$1^0~4mve@_ioJH{+L{^HSE^6Od(}VhX zhi5a-3>dCi`aS@svzWu5PSadZC%-(KF^r4Rd>tMHd;V-2r#YIY)GZsei|6@3p2n5> zwMWmgChWacGx#uhBD`lawFfoU8$;2M_vZJkjq!|;)DepcsuPUtcY*64G11b86$J8&n$Qj^6 zBXiO0yB(S=qh6m)C(+y14TgnLFnYF96J0j~4*VPbH_kV+3bf@#Hh8#(^PlC9OKxqp z#z<4v{|o(wW?S2$VI{u58k?LXW* zRH=+DCqr<1e>^(v|EWni69lJD@!0HlPtz*PAKgY%leYeLP3{06EHsYAympS7!b2Xo zL~i)Y&DO@x#<(EsJoRH88Yw%vPQ{@_>Tu>BP}UuzZW4R*K7CsV13_K8h4hrzVIeLC z*dTIMG%CK05LKJnV?J?vcL$h?ORd~6q+2Au{M@G*Q!O0reEzMU+vIH08m?z9$|c_? z>t;z{4rfY+#Bi2B8yei#mUv0dzGfB~pWW>R^Zu;m;+txYk!RPLGj^XHLo{o{{PBJ~ z^Y#lT&7uALyZEzZ!;&@8eFE^bCv&y;63s;B5CeUFJ$0)lFFcT%it+fYE!9jR$7k>; z?p>Z-*H||VrX~{m=!Ne!tzZ4sq2zm%RRxVUQO9U2NuHswz0Tc%y)Hhm_RwJs zzaX(KCJYS4r8C4Ay=V=yL%|sCL_XlfhM3nfkY4xnrCs?}ldb2AS^2T_yk4idw$uw= zJ7O@;qYgepfZ@60Tjdn@&G;HOJx)b>|c1P?{G$5Kac~3EGx-Hglp1*Zlh^SU> zgXh#2I^v%#UYpxPms*i=elvyc3s)?Ti9o*`Ur0|ZOeYz9zH6i5I@oeAkhmLDP zk@%IplI1Ym>lFrD&YkMMHN!~OClUFs{pl<@dKX~Cf&HUy*@Mqm#BkZJ61rJZOY0nv#?i%I8H0mrJAnsyzPZ93p zf~C3CelbfDTRu3`vn2-i2PKGs`#f;fIs%iAs~X$+^cSXf@&D$HFZ$cGQ|8&gn0fVT z)l(%|zSj8CEFQ<&SQ&|DHsplGq2A+b#_xxEVN8X1%rG3JnMeLn7oJt;&h8qs$Mnsq zLGDddrlvwCf9Sp>-?{l(O%b*9PIJd$-J?WvUY~ow({TuUaaA+>3H|2I6Bo4Xv&Mk4 z`acij(7Lb|wU?N;nO8pyY6&yW`Sti-e7@WRR|j#K76JztsWtdA7InuB;Wtd#^zlB;)DWB?KSOh7#A2fGeBWKhZNtrf^4dc`D}7kMi|O z;!dLnAm76uHTDoEY4A=n`H&BiFR?Z@YpXfX*9*1}Igc&2R?5fIlVU3|!~1l_(hO<> zuzv2@I!=5wq_%2Ja{uizMf-7{xLhX!ty*u>^wOap%b0)nuy&VsXq}U}yGbDyZu+qj zBU@`MV=dPuHPXoPuniK4O}+2^%-F4h7YZN6VQ|Vw&G41Cu_Xy*xcGCcFv3Jm&2Y z?8}QxLy^w&e7BgM@jOf0$CKyPY8D*mDbXQ=`06{epyM8b-zvQw8zf`6dl0^sle=o@ z%(Lsy-YXHkessjFRx@xtHW8jvL?R~mft3T5Qp0UJ9L>?*GIKrB~ z1aWxyD$}U@Y8!NoB;LmTlktF~o~X#**}SK@W{ig)27ib{gQ7%DQ`XGWL>vl+uh7KN zyJR#!mx7%KG?(=KaV?C!zsC(t7v7b1JmN56-%rhmxdAxu&Y0J1h)vV!TRSrjYkfOW zCm;x;*e^exF%%m)!$atK_^G<-RyoEKbcG4nazy3Vy#ihDR_B-+A{ajG&P6#A!8~34SM;SiwWFh zco9#(=8(pwia#2%Uub^iv8JrRA1C!Whgn_~?IQv(oS6G=9du#u$n(tk%v{+APr2g; z=f;_thvm1q0SsOGzPdg!% zdsvs60mjQXQxbkr^h}wj9R6j8oW{|3a;J~j{(#=cq0!juHDBoQ-PdWx-O4s0qRi}} z85@ah)3oAaPoC}aQ1(Qgnnr2#NnihOoCEG3&|Yz}!5ly43Xigqubk~SJx7n)=L?M5 z+S(w7aj0GL$9Rr|Cw0%_r~_!PIZ(k5Av@#HNzH2Gx_G#dq=BJs#aPSR*Iq%Js!Re^*Fa&29=bLTkV>$9R!VCjP*D{7J~w!mNR!^fM{f#JI|u%8>szfceM=RHk&eP`~8BC*+9 zqxn^PDt&jkd)-kPB^ut#6A#Yw3kCKT1^EWdpk)?qOq#goT?u`V>VX z`p`jB%f&0zj3bBQfMtL__H3|eRRE4@}#OYhVm@+ZJ1@WuAdEt zwBs56^vgJ^yC)X-@|rv<#i4aed+oE7qtzo@~;b8|nx1YV@PGJf-P% z!4IuCTk!GvpxHdfAF-U@w)CopgW&!9{p$IfWP8gJX-SiC=Bg4685r~Zj$zNUs; zF+I4MXFey#VQM~o&)M59e>@j6T8HALFYn)Nxfozd|C4miWODMbg|iex>Sml;ycCCd z|Ga)q|3_j}i+B29H0xydGXW@nPL9dhC|tTX6872DU7;phW{D0ucsWzUDH09(7is=j zOvU?mk;sWmHl8%g9s&31ZQ6UK(%-@stJCPcwMrxY@XlK7MSN+MB_hhj9^TZ}TXCgG zJnc*0y3|l~t<^{K^TTxN-2WTrGY=0@otE1BQ;A`VxL@-7H9f(ZA6_hoFsfVE1~V(h zVdu0j#(REvV3rwuHoseGytevcEZ^~>ZW)>zhkenfWgLz^EzlHo@7^xpn*Qgh|l z|Hsu^M^&}G-@_JmVHb9HU~%CE{4K?)2k}>L&J9-g=p5*BWkxzb~ zXB0B)4n*yh)E%u8h1y>#<4K|&E(Jz$->=pMWm#jceKdTthUgup&w%@&JC(QQyJI=1tPAflJSmGh?^lKMB z>a)&Hhv7qeo$OvaZ}#U%VoQ z@MF1+x|{}n$Xy?Yns1NkMjrRWQG04VjeDiD*y4|*0rUq+tO>(B-h-S$f2!OO!>$G* zVq_e=bi;AlFqpmsZ+^dfAe zO+W~-t4^G!cm~B|OmG$^ETji_N8+5lR$>;lpq|+i!(3|~YTk3l(Tphg?Fqx3k1q6# zj>O=lR`h>%LbV2w*z2a@tkE8QJR&*6Xo{|bZE&@36w0hm>lSaLHdI0szTdpB{k_W) zfA-RAZ`C&8chL$d^lW}tVk;lUQCqTh0KQkX(UoUC9u@Pq4wY&2d8P4P3se}-ny$b= z8J#hmKKAtWm{n18@1O-rsQct>a7Am-j6N*2h~_V+(Zw>Jl{-<_t8=h!MzkMp6>%TF zN!OJP@keVf;x@ex>L!fjeaG2(Q{THfuVsPMhm1w<50&tU-U8R3$I`FQ2oKo{8e%{l zszXB%w~_jwmek#yZiBK}5ip?!&c+bpw?0O~j^Afc_##~OiNfzPdYoNZiSK0*7|!=@ z^tLtlstdyiKHmbHN&&ITx@Q5(f9{gOE^Whjhmf ze0!9xJ9^F*#y$M$ec8z5iXHXm7y2UNZn|#3m1)e+slWZdKmS(`nvE+_mUXbey2%MR z@v))uXX>?57v6xVr`2rzSzPz4>c{P z8&93seVpTeYu8feROk=?PV679gl_Zi08IWAi-+EBy3SFouS;X;@t&gF(}XyU7o36K z%hdTjp{__f{@dz`F8C6E*X8tBce$gRKu%>zjvsu7lE2jN5OSgdGK2Q>`nn?$^5 z<&vs!GGkuKm@oFKh=UHk*c2H7`?J591N&nBt}rM|zw0d8`r&N%5Exn4$86>RZ&L&D zmR?fduY041(*&A5Es7g=-Je{UJ0+4v$3i>kQ&wV&N~lqgLCCSweHK?h!FmA%H) z@s8&V_t1I$osmWpuO;K;IA6g?TN^W%JQaf3MQd1j&885e=4%vIW73D%9GR&D@u z&MOf!bt`{H;L-Sa+^v;KZgwO#&x+95&+)_0cJ#>#4$y6}_QSmQ?0qj@t&1r3MJ>l*cp2Bl z-mBiQ7#oNmPIIv-%M+$I{SkA&0H0lbQQ+*0{LAw+`8@y3n>zm$=QdGim0@|~u$?tm zLS=Jhlhruvw~I%o?v)hJ+vCtLHV%gm4f8hU9n^(L_{D9_j~RGsxX&FMM# zgy-!pGyN+1J6v*zMQ+XzeMUKVTzt%aTE`i`U6tG^Qswi5K0h6iFx!x;2kV6I>Cl6?t>7(|#@ z>Q}!DrgtbYEl&1&{}sV7=j`*(KzqIWhd^wlhr)vemimIn{_yEX9pn7*`u4kgVX`^` zzZVbJH(ctCF*`YT3>>Mq8B4zidLrCNZ>wLN?}W>s{9YZrQyKiI6C;QO}w7`;a; zO2x7x`Fe~A4wfpLzLQ@zDjLVmmlI9i`k=rh8r_>T6zd-Oq4U&e6!+*VnkNKcZD=$O znrOv9w?Hgmp0;A%XtD890KI(aTiSSxNbN}7xx105vURA~(99S2ydw~3W-LBF<$Jd( z4279(#liO;Seh7uF;<3RGVwo&fkE(%IHOo|<`Oz10GU-sYy3OAA<>vP<8O0ynTakK z6v)_i9)y{_sLwN$e9pAZa0zfk1M01Nl^#cWUk`HP-H=kYSTk`*EH+=a`zy|MdhAyo z)-p%pK;mq31}Z-T%@D|18?7rUqxPAhQ8Z_iFjjVkT4KPIIMix4N2%1-2^S{E;fB*X z<=jr={4W`o6?v2yt_#Z2A!`fW;js`>niKt z=bgo{A0F5`D;jHFju6(zyl`$JeQLbiL<7$F^qOc`ubL%>@XXT5@ zVaDYkcnzzI?ake>j(EXs`epF>=7Iw?{m{FEpbi21^TWtzTewiuWDk9%#@hZB=e-GA zl@3~SwB+p7w@Wu={1P*CV=b0@@{d09k{Ntbc<*1ZQuZvh#BxXCx8Lnn4)v$^0dwQf zt{0U`51mlu5`85WeNnn(QLB7(EXqBpE4-*#tvw!tTGzUWR;8}+ok*R5a?a6X-82Om9yGCKPQd4eg7l`k5qj0dmNahp< zksm{^3fErJ)iMNTTcVINeXxAcA{4o+qcCY{Z+Se9xSivX`2D#J=4ui;#vr|>&0lf$ zzqnFaPj7@5I%;^jwN$okH$z?4dMQkv#d@Vf=V@#u!^c|Kc^N&N>q$^79C~6Ut zhdcb+Z)NT)CyaRzi+zn7i_M#z(a9Gyu+h$>EjTI)azGCet19+?zvIeT&1?`$9&SXMHG^nG?Swa`Qys@Nc8^ERqo*4o_-<{FE$a{ zxS#lH=7`@$9bXe;^oE}51haZNDC$zjAl*cmFjg&Ar`u+B|+qi;e!%k(XANV%1&d{-^u92bXu(I1s03n#cm z#38I^eG&4-2`k^lqLtcHtl;@Yxaf@zBk6%&`I|V$oYbIZG&V1&Dw7W} zr#iqrS+l-$eCvxe(788Ib zcOUEb71Y))SfXv_>VbepAsG6$2_or>>iNze2IQEU(n~Jb#|_&%I%-@RM57&X)&H$i zMji=O29T?zj-sASgG$Pub7quEjmO0EkMvI)n&VnNdl5a-72~Ux5c4@ZxL8@lxjCWy zEaG;2+ljM(obZa=^O>Q;M8*zcjAO}fvUC%-IAjdS(OV zy#gOB-x7u+YG-L*=7rlAL(qJ9UD>qM18(%qbXagv)Enf6$}aduei%xK16 zan=m9R4lfeqnP=#XQS8p^inhQm`CoCa$TR?$sE>4;;^CT2BjruScdEi9ga5?KSP|b zhIm)UqTXUgHD{RCVZP@%MO?{s#{NZ|msN@sBAs~S2C;~4y;Q6r5B)s*isjyK6Sc@i zJx5&S&F4qO5gQL&dqf`1#0R3N#1n-)t82XfEs}qFp*C|5^HVit753a7a@P4^eiJ#Q zt`D((Q5e&>z3l7h1MA0;XzAHg9?tZ^ui=rfXgNSOTjvAEpa@(F8XzCjTiZhujzc!x zrH`E#nx=)~XVn(6%{mWc?FoiQh=I(aCg;PFK+LXsT%@w+)?g@cYzwtwz#vD?i2TuT z?gB~<*})A4k+JEmWBL5xX#jaT_7{F?uF zoKLJCtR(F-$F~UyFj;U>pYhTRA*=`2ITh=j2brVNMV=L(w$cHp5uX?`obY)b|=~4rBHT2Cm+r^yKV2xq$n&c59Kh z#0i^su-3jgOe|^PjI}*ko8R&fz6JD8&!-={bBZu!oQ<@^`Lx_1Ca!YDgL5%BKkJ}4 ze9;Z#ykl_A?TQeMJn*w-3>?3{6N3kP;>{lNilu>c`9a@C=5LQ58_K3pUPxpwBh|=A zp1m%{#OBY!d;DuXx^o%&uLE4S>#3iS2^g7iTb4;}&PgA#A-@lwWvDoZ+HptQIEX>jT9X0d&<|+$~W}p@O!z0u!xv;lP9A^?M}|EYc#$&>+zKS8^qts3oIq+$0OIC86T`C|(CmjlwSLZtR;G3s z${tbiwk=}P02@>Z^@rd6Y2qsT()p4a=y})lz3pRfNR2A<|T z|7s$srV}O~qOMj%Cow+G3D-5O!H0|%#h;yEC1WwG5&eC5CpwOZ#qlvIV*5N7*znxA zlA0l2q`4x=E(Y^{<%{=A+)(z4{?Xr0i(+ecv?CXI)_}Vr=dL>%bAH#X%6p;Lc_81N zzE{xQAJ;kaXZN0jPZP?hu0+~>ujR()rD zA@it>dWaZ zZLwvMKW6}~=yz|8!*=93XSI>?wH5T#Up~{Xmi*Jz7J4rqY^!>a0Z{=ko-qELi208w>Y^}v67Z(JTP)B%g zta##0&19<>6lX0Fx4qoZhP7c^WurJag#J0~T?CHE7pZ#g^AGemu69%eP=|ju=&h$F2s})Kk;>|_(@#o?bHxd zu-Pgecsik6&0v&`KOn|Dc0|U`K-e9=Aq;Cd5=Rq&Q&tt_=Hd3(RfQPew3f2m4;$hu ziHB%BL{8{LoO7%{3cbh6jz_I9OZ9`c=V)m}4v~&|&y!oVrBPEi7;`Ye# zf9LbUg0qSjd8S(886rP_QoIx=tk5&g4eE+(KF;hh^L+l6~MBbr7wF)5rV?XZl4k;!;z0xCgS=@hDYvTj!3bw^2xlTq({}^FSlFC>$ur6xZu| zVEy4pRJ^`f*sOF%)rS!%@ZKP{TT}PxP&igPEEY@rT(Dwb7?!r0CB`x5jLZ!|`>J!q zI^q=*2NElpzgoEMal}cU&j;on6&;8xm`nbWgSMP}{L>DBy#gRFbd=q9Q9FWn;*F?D z(*L{_tT;;!u?vv{9jx%{kRO^)j*$U2Ht1vKgNX*iWnN8spIvdqpxAWnz={!A(eUp$ zPsyIFab%nyG0wLuZ!qy>oGtdnqvE}4hcApV#~;SImC0-U>gE5ppG#kcD9tZWZ-MvV zk5(%b(}7NyF@!kGoV`lpO-^W2$Qr!EMWs9SuWIUu<*ximIntb-kL-0!ji@Esu#ehy zN(=&1+KMeL=(Bb|8sE+i6eGU55ii4jW?yq*7{~qmPZZi!v=}C5MQ)+|NNTBe3&=uc*d4EV?8djytD|i3u)vPMpe$%A>@M-%eOo5`xzcCx{Zx z0q5HU!|7zK=;-T+$coH2!gh&a!4A|zCZ5>wo7l9>4qL|sV9AB=4L)-)XWYwtl;`uDaO6-d3{Ivhzk1O>T|+&h+8dQ-WzN`ngdWEY^va%3E(n|u zgK3dBlp9}|@3GHpX#ZJRbdC22wMY8=Q$?6MP;2WsdqH^(L_2ETmvf9lqk}EQfhX>W zV4R2aYcIaCw{YcM1PXmyi+dq%n0+f8ONJSW{tH}C*Nc3u-BrcucTTwVBm}W)BVqW0 zI@rX6Jlbj|?l*SC+YUhpDO@AA{jx_?L+Vu(y%jqR>~PvX00YMKksB6U<0$XJVq%bb zr_6xKOn;P~T_ykAv&4fKKR7t=lx17{HqDGnH9^<@XMOFQhxc}SFj}GVSr{y@J2jhHe zY^i=-Ehiis#Cg-GN=i|X6X%?<7~H0X@}754PxfIiEE%9Yx#^6CDtW#=rzzzxxZtN* z4E=>el^fI(_CJ> zB~H5g9r{&xQeC3LmU>#PtK5 zgFk7mcPn#5bH;h%UXA`a{g_;-7qrILQ9t85&qL0qHea2ouU5#KQHjC!($)G4IW9Og zItDF&@6~V0b;We{qAwpP)+a1;gEw(o=Pe)T>vSL{mbG@#{4e_I%qzNEMWN00ic0t% zcf8~IJSDuUa>JW-?zaehcvVTc?@yo2cj5Rk>!ZGa7??4fpSq5yp=>(kgg$kM4chIm z%=CAJ?Z#kguY6KQnmQnt{_+uK;lk~t9m@9%#F>^4ME?XEbozHcrw^22JRde(U@z&x zY&p`!0(S@clUut-ju<~31s{E}-Tk7Bu(QC)#{%Y@ zjB|QoqKWl$N9yx)R`_7CN$^M~`XJF0?b}8Zqx(+yGawd6ejhUV%KrbHLV6Y4xoqMy zpI&$)=)K$OgUO^+o*Nh0(^y6~H3_FtqK!o8Hs*@|7Zq*~YvRhYgm)=32mj zXY&4*3&`o7ifxDekg!KcrK3MP z4|K#B#<|x01sczj#8C}k?=)(ore{khJR(QNJgZQ%Y%g_^jT!UpH#9HUL-<<2S?bB} znz->UsAx)_!s$9%IocJkOQJEhN_*{#9&T7{84b@D1GWG9jrP151%GQZZKIaN6;qFO z`3@WH+6nG>%Q~fCjHk9^19$Y}xiQHh&b;o~{vb`2@s>zD7YBdW z08NIoBigYqZMJf@Wzq*Bn;wgkk865Oq{nf7 z3~T0xns)3x+HqD`NiDAp?d*z+C!*nfvc7h3EjM(U!Wq_%4%(61i4|dwZusy4+H1`B z3PwjEtHCJkv(E0&?24pc`(&-fYkKi~jDUB|X^`S*)q+L1kZE^P|KbuUA0 zb)I7r`h+6Vcc;nm5C`;ToUIP|E05>d!Ot=Xy=o2+#ly(4suzf)ZbjmoZU%V}^v=gvfjI+?mT-UnpcfQcB!-fNv^&*Zer6Oi-V1A}&dlM$UKVM-tB z=U#M^aYrV@Me}!@@1||jdLJ@};SAn`zuRg*eKSKY@l>4+&uDtFFRJ-QKlI18nhE60 zej>Irad{g}wW*G9-yVmx+P0dXTOHA>OB`Hkbk$7$<_OEJu_$daP$T9z;YoYy%~l+% zDL>E|EwkB2n(m+}Y3PDRJ&18#6|K=!=YBpAjVf6SG}T@+ujWj!y3;z1cCH&{$S8~( zx>Gag68*W@(-?mLkmm9qVkwtK!pG#erd5#}@;C?iG3u0N?NwJiI~R^ut_L*Vzd9o) zI1IMGT{N2wov`mm2n@5k=*RSTz$9|Z$4p69eEQfSr#5xOUUv~zr>yZ+2B1mLT+uk2 z{DlI4nB8wAd)1qUHShdjo9HQPot}i-oVOT;0vb&7L7V62Wv`U+*tOIHLp$G- znjsSq!gGI7QBCRGc>?rz#{IRQ^&1XpKTu~Woqhh7)B0*t-);Qy00RaDD{Z9J{OUy^ej~uy8~b zT+-LuM=vwtkk30j)fb&(p6^F2oKl#^r-HC-0{N0BZPA=P=a}2AMdT1`@;3Z& zZb+J__QL|ZUHlMR`?GjwITam}i9fDASYE0)2`4gr@TFs-49Fahp>@1*VeCd3wrCtC zt!A!SW2?MYOsq?Pd$@F~q`N|GpO&-!j`OL=V(p?$=BTSlK(*hd+Pja;(0LK@&&E$R zUt9C6z8!}(Q8P`RldI^LO%IY5Zu+(Cy;R{0EB5YA{n=TL=t>Myt!0n&xtAQFpqr2L$mvV^pZ+a}}RuiTuA0D!Y_LDfbq$s5p=MUH8qp>(?sZzik@8GW} zc;{?U9_ie0Brpnp1|L+;B@z>HmUGhmr+djes2`KIz>ye;PMCI|0lJyCA8 z6||gnP3b&CROoMk=*B(>Y_LJ3&Yc3>_Cig+yCTVCBJzo$L1pIF$ zZ_Uw;{ofCRpNZnS;2c{ zOfB(vqnRB*{dvx0A75QoxW3pMQ-}vkSy@fV))4=b5|7@FCW^u10P3u=PS5gD!lx2n z=R;lP3yYLtIv-p*POfzI?MmhmFXT3jr6$-h<@H`q+;nBnx%(sKbxlt!-a|k1;0hvz z9?%ELUwFBzf#|T_0|#_b7?j;n%<-j9w0k6G=kyV8s4Ep<7XhpAKH~8MSLEHJ2JyjG zqN}+xES`p-%H+yo;A01*P|qc5+#99BRr;VA2B1sdbIQRpc8F>1i_FDalxrTgFjG7+ z++>t;(~!9RUVLW#W)-$4ZnnW|*0h5hwRK#l!pF`5qwm$#?P)&=kK^o+@-R&|=h=7+ zJ8y$1G(Z*i@%Z3kg~#=FVSV?>i1e9^*;Tffe(%6J+9v!J=Qbgw+Oxf#U`#y!w;7YP zVOJgSMquHfoedzk0g;IM;}X}1By`z`!Ce{QnszP7_lN5qmN zALlwnn|s0m8=F$A`Q$TA-6amV!W>WbU8FZ{Ta-K=DtaI6u6>kd^mhAr-*6f{_HFcMT5`YqD?tx z)cM37X$?o=?dFUtPsj;hK26+gMJ~L~A1*^XiAi}b`0|FcMm1d-XhW@C@(K6X&(XR@ zy5VGy3%dS!tb1z2KKXVh{CGfJ6Z+*@o48^_mF4&`jrZFm`@i;cjKyPZ19A!4lJjmc zV!HOqdIv-epf08Usb*}712Ril8-5getFAsse-V#0)mAH~&jrKv7d?g7om3`g6N{2f z{@SR|iWuXMV;b^&?du7Xp}tsmhV?jIg|+m^{$od+XV^#)!!z#>@g94Poy0+UjONba zOnhIwm_W~+T`j3S+jg<=n(K*?tRIhuWQq{ZXP9iFd~O#YYTD!Jx7Y~?9mPt)ZOahA|4U%(7-tk;gga?``upL zpX~cpSSDgvzg}U@UR<KHs|{m|Edy#k5}Z zO*kKjyY|DBmy>+^*@I(KcD!clWD~fymP1>|KEFXxc5t~8TGH8?O|-4 zth7P<9I(JA0rJ!X&FvxwL^Gb6tlCP$c9|JGj~EoQGP-YLJbno z#;&!v-hg@qtl7Py=||tn4}~uA==;=8>^tg%y!yod--;KVh#x-6+2XZxOGHLLZv@0M zCmgUzth+{hEc@6G3lE4A#-#o)>NY2qh?vb@2ssu@KdA@eA@5Ve<;)fHzl)5j^g#EG z#gli{@0b1m!uCr1T_3!dNX^C%50p`xh!SQ=Z(Sll^4#n&c>PZEZhVb|qg)<$Bx`TY3En^>zQ{ z5hPg2<%hc+!$}Ml~eiMnc$~^)Vc7YP>qo8;d-$CKU!LI_5;Dxz7#UJ}XzrHEWbe-O(0C!tO&5u1=z+#5bL& zaxnl~$-&>(#Zx4`Vg1CjJ%7*=QGcT^ytl<;cAI=rk$d|&xyHwn?}(J{^njSe`1h$S zZ}4}i(JLOhxHj@bzBkG@j)$+asWd(0jX}&C2WnhopW9p;#8VG#wp`u92X5qKHMd_Y zM@IQ@HW!bP&iiE5H$K?Qd#Hi`R%x3+9KI=g2#3?;=stchZ55AP zx>R@D!UJYJqm&kVv2_tKPE}%HRDZc?`BwfI?fSP~?xFebv>hKhqWcZvMT>{2kH{06 z^PAkO)&tZU8h12$!hN39Lmk^X2(_vvqM~zGwR4LId~1=2mdiS;k$$1r+<-b=(Op#U zXF<3_y{YMO-PNGo|LP*po4bD>bzu`?Og<7<<}y&d@!l7fZ|GrRr&S$W`r-xGcLoeo z@2AnX>jP`02BTEZA&eXKtV*koRnd^RIBMVRlYP~W)M&N1OfL5CW@=#s{kT_BmuW;L z)stGwTddg!Yj|I-v+_k1o^^h+RN3f_FE)OoMsefqa&0ELjl4(dSge-kiFI^R% zA}N0QqsPj4Tw6RxUhWux0$n^Re2I{gF4CJmEe@A`P36~i#5fb9U%NWr#}{7sO>EmT zqhGpuz2QH^gXwK&}MPYKH?sIG5#5&{;~JQ zbZV=X1x_hCLmWlJ_5bR5>WUg>QuFo_eTOHsEXwOe&9K+hm%CS`XyB0$^rn7->+Lsc zb7ww_tMt`fdR2W!oZ8LfiAb`QY5@5`6Za(|^3Qg)T%Iqg@@Mwjwo*-~Os>t`MBGW8 zt6FcQ?pz>w?%jjcg~UI5TG7{4SgIX(4(uA5NG>N-@L9xlq2Kq-PU_K{{Cr*NHnRwm|B!rd;ExUd?ER)}kwb|cP^VK*HDi^m zxHtf@& z?w6(&JzDOG)NP3f8$P3`d3Qh5`^*@A?om`SB@96|lJGd$u;>f1*$e(8V!+HY^{Wqc zhTkRP>$ux$xfpU8?$Mj0=@B)bocjIes3A}Zj^MeoHg+S{f8SLthBL0p;s_c{p`Ub$bnA*r! z*UIZ(0&qH)oa^t4rOlW?Gzq1~b)Q5zhPdW-t%x~nH$+~q;s@hO)F}$H7Bh&qoWJp3 zt@|IkMrE#Om%vyZ+KWdeuBb4Ld++BO(|xTq z=Yx*)-!a;0S(Hld#iu-aQ@)!~blk!Z!+$5@*1n!a1xSqUR~JM7k0VSx~$}?R_o}CRqN=tG{jt;XXcBbRQhh)_fvbP`63~l zx^}mktFJ2hVT~jGkAo|zC#VgwaSWet$$fc*`2Wtv^q3ARk~67;YTSW(-BowWyOXJ7 zLp|P}%`;@U1$h(veRFCpmpXF3*7Lb6Y%)hy{U;E4j7f#x=CbB5_W1dk&ZBmVubaFO zm(G2Xm#o|Qi?cSDB&_+d71a;AAdPPVrV_ zKl`2`z0M}0_u5~o^S4N(a(@o2c}ndzJsgh?(f=qv zQ!RWELi{bynIXyQw@X1-&6vC$HdXa=3dENn#x1v-+ASymZLJfb%d4qAdE$?k)XK;$ zcrJ@}(I0_(GAH+l{FLX9S8Wql#Mv3Sv7Ryi512C^P*ZUIXktYFIQJs1w z$pP~I%0SGkK@H3fUh)xj56TRA&NLw^#VQ!7Efe9eG+z3-guu5Cf2RLJnUq4_gBf)o zo34}fe8RBXf!}l6W|bis%v-`M*2SUcXs*ua6*xHW4$W% zuUhoFT~$q1zfKNdL;63qZzyZdwBXjvLM=ejoclM@>bf^@G zunF`~m=P~!6n(^;=~L{zP%i&Td~`H5rO&RDaVb&Qkj8bnTv<{z8b|rQ?5TWM&iO&i zf=Ye70eX3!Jb>7v+^hCmWR=CCxOp-WHsy%TctI=@y$|26t14gJ_Qdymdi6EfYBHqA z1y%{k*bq7q8#oUwnna)a4oK9`zr&h^$%sa05M}OJGpSn2X z6OnFVE;l@;C!SRzF55fF_F>F%JbC5}iIiUae+(k&VOk|cjyymwi+Mbw5|+zGlw{+*eJHq9BGIG?3roD;7Kl0;mAKr*IFU62&S$J%~eK^!fT3t}_jWLYOc9Iob z^3ksyJ#B9|%hDCu^z=x?k3X)m#B@En^4zO5-&>|-t%SKY5$j!oWrLDs7&4j~S#M(G z<=%^_%kPqx)tRV#fM?F)1M=6;WK=oDy)j?P^eM@>af|!2 z(rFnjlQ8QI&xC51W$Dl)Y-OzKb-W{;_Atk6NZ)7Nmo0+nNzy6_2{E_j9**>ec zr&#tarH&M}j|RK$l4+Hw&(^+&%Ta;rM$K=@=k1mtod5RA*(>sHwS~yzxpBz!q70dxigV?89=16z-$$g-kAvr` z@j1Cnor7+F=t(r`95sYzqx(^fzjM^}Q(9H>8K`Cu+uCxh!S>WCXuu z|9rr8StmLP=bqDtV%%-%$k=aTzS?E?UD>rO_bhYo{qA>Vb8S4n6j9fA-*wrwCvhb^ zsdZ1iV&sLh|4o0@jC?u2dJw{^GKZO*C8x2U?7W0Nse6~nfZ1;N9Gir>o8n}sme|O7 z$*{DqFB5I3!TTT?3*Q$bZn+b-W&R&t@&Ai+-jepJE#usZ=ktfwbJWZWB`EksPWq}e zbwT;NSi@M&%ZOK(Ha!X}o~74rIj9foZ_u+yu>V!1jwfsI~T?eS`eb%EQ*FE2N zQYX$>g%X}WFNd{IcWzB1ubg_J`|GI-KP>*=ncwSbb=Beh0_@|@OdnrKb&X5KXs%lw z{UvV)rcj%J=k1A4GVbskl;?Vr?Q0o1W;Xip`z)&WOm3<%3oZEU%4a^1<-RAwmd~rx zgi`t2Fqv3u&N|=Slv~Y`Q1qEPc(&K%5Z^?+c}887+ZW_{Px99c-*Nx%tEZPqoG0gBO2CHLJh?^}jkT*8Pu7fM9mCMf zk)9^yHp}1C?tbpibAR79SvdJh;pe zUHFX6LK=$^wVl!AEcvSciSwC)73#9EEKKKf-!fn-mjAm{y`bd^)b2=OSn4dUUEmB_%+d%#b-%rCh_0h{!c*M`_ zJL|0WuDl$Vxn7bzPTk#g39fMc;m~09LG^{G#?QmPi<%mr3RkYDHEFJ%vQNPiu07|~ zR)?>i1Lrz?r#vdE)0@vmd)9y!A3w-pH)dit*Ol5okVB6rBb)2#4KK>dca!jipT9Nt zh}=^t38R@8UCP@p)6OTL759Adq8;+#9r6sW&;zkmmOO39{AxD6M6=h*CG|rQ*pdCQ zAsMpDHR?=Oq4!*~owATUL;EEO_%rOJ+_l9On^~KDU-C@eV;%j}D+%Li$hB4VG&SVPDmZf8E-YD1 ze3J$ru76ziRNL2Ef^4qm?4P6-^4u87{J&V5sJC5H(T98H@{BI3enbjpFt4j#y{Wn{ zehyYLe^$b)s}bd9V?>ig6y=sl4`n85HRBoekeI6-$?#|0VchMktY5^~w%~p!IV8uN zWbMMw*Ezpk7Oyp_^4!n0=-sZVt=7Edh)KLpKdibh zx6E-y=LLV~bs`b6IaDs8pjObDnwy^|-?BV1)_AQ$6q7?CrZRe>?ie4``j%kcZ z%R+khY|Y1Q#v%IF9raIUHjEn64`qc^4>#U`?pznI&sIAttMCuwGktBEdhTi(HQ#u) zWF)JR-xgyD*XzG|sAH}#z_4aC6E7KS0 zbJ){ZnkN_gl9zNl9zB(N^1CUqYJ6UPSvA!k4Vt(9DOBTHgsiReIc+rCN5;*dHw_Q4}sP3auoa5e`U$1A;*y!Wv z#Q5w=t5^h)+;!6fS@lV`vfMq-J$br5*`&Da%Hw`)j1&TpRY0EPAQ;M$EzS z_Pi5oH&bh$n1v|DP~nFI4=_IBnJ zof0uKHdBtM6N}}1H?tMykcAOAdziWbo2gf66oOm55^&5fO&Sx+e{fAaiu7w`ee!#9 z#>8Xufc-MAvnS4PpeB6EGg&mr71_6Vx0*FnHRNCW9!$hP#eLNYtf@PtvnQ4{L4E$s z87&IfYx_@}3rEy0dTf)0ri`;oj%|^cSAvs_bKD8{q6T+LQJ#CU`sLw8dG5z?kFgE( zZ(p<~J|Fd2Gc2uMv*=)GHZmBWluGZ_wa?aL9oIQuFQ|)CSHXho)*TP19W&Fgp6e>p zHmH--#qj5z+`D1E+AU)Nelec$r$W`TTB$H)JU2|RP^Y|_OC4686%9<(79HlGCG+;H zbK0t{w$5Tq5>dHNP4%YpOeFAbi)ivrb{~+8lYwxsD7>{23 zzcL4JmCfn<+VcakKn*kH)bFAH)4lJ}c%6(Y4n*8N&N^4Dk{$N?A(DB**yHPD3H#gK ze#AlPykEMpZ~1U~JPsauDI=G=qE&JZ{7G6Em{?gn3_dgD>cAJg%^3nl%N9hqRNShMX6Ux|JVESU2atrH03yEF}7dL z1{7I)<)a4czN&Yd6@9SH#sR*YMo%ggT{ycQTe&to^hCYuzY5@b+nkf?ujDk$=eqyJ zTs1dqG2$7|_G?$FNpTA>iSK*IZnMLH#6ZJ$ z{EgXusoW%PmwmSO*}LVWCc)Hgqh|QUY#B-H?aEN<$fae-KP!Fl@lhOn$E=m!&%ALs zlX_Nedu0VjPt5p9FXJxHWh}9LJBG4 zn4+dr^YNuaBA(`VDH=2)8-jc9ySZUeTHboB;5uk_nYwlID%9qB&6gYM2bVNV;5yey zuNo)O*PHSDmAgspV!HqVU3pg2UZmQU%!6MK)`r)@)N94ZW1DGlCwW9?w# zGY4&#si!{S$nHGg!(fR zKK$Jm-F@7&=#)toVj1Vfh0BXfXOy51<2+hjQ*{4GDaP@AKeZsa=yk{A_*lGiNDSCU{jnt+3}h``UZ$wbwep*funDR4!W`!cBAjF6kDE&}}=4_+Ae>(n>kCA_tLt&fi;0 z(e=y5DaPkV#VRAAN(^#L(x8hE2$0W@8Rwk|O?u#Yy-1U23Umg|ig%7;H zZhW_uBgS~)Z4z_Br$YHdwinD3EBnz;T4}HJ>$wSC8RxTeHz_$b|1Zwsp7ksC1;B7yB0NqMO2P~3_Hbv%Cc{8hkE2ihA=c#_)tfc) z#;YI6=ys}9-o48Uy@{p%-@Ks;^;GKh*o1BDQ^ri$r)(N>7KS{}(+%^L2M6vE)8+3t zE?Zgj;{@{m%X=r1luYA8i00WFrkGp9IzVkEo za!n=kPZkXL=gD3#ngABWT6(H>(u)u5Bj(mP5GJj%dW~-Po!g$1@Ak*BXV-D1=z;?(5>@2Isd_2H25#h zPv^>WhR;SR--Z6Ig5=W^(r}VEz!CcGmeoka7`~^+YmbySPa#%M40KSNL2|(t&M|pz zuRiJ^=WD4OIgPn@vZVtMG^M|2w#; z;!u=@U3|WFtD4gO{9>%+|9kW7LwR>jI+`*MY|579UH|4&qlviphplp*p>vVX@3F4Q zQh8guS-8Xg;?34HdA2>Vw{`TT{T3vrai?v>0=X+*65>D#2o?e+<2^>|3tc}r%nm^ zW8TxsC3-$VB$u^j=ND4gFcQ9U+-5E1tm&>W zqZW6&Q$OU-r@gR`bJqWxH&*Umq6~kz8V4BXKlb;OS4WEx&Kz>g?x}Jo_&N?V&P6Ik zF>;dXo}#Xg6XRD{;+yrD4_v8!C4a=V1&#Gk0kfC35s^+-02aCft+zZB9dT=HW@4kGE_gy~zLHu*fJUNHFw&o_}o~6ggX1~Z~8$uqG%3bza>4EQo+|Qjq zT2}9IL*SM~h)Q4C__!zFTsVVBK<}RQ zIsK9Tl}<%IwG>9Ycq4WHWsf%8p`Nnqj#R#8JpNG!#W!AWyjvinY&DFmA^Z*|nh-^;t_i*)Ut)+rf{Xz2wGp4VPzAhxzoPB>3!e zk`K=3&fWGz^m{x)9{$v;ebx42tyxIjvzQm)|*$#4nnG@D}(${!gW4XN73>+C9 z56>rta2t0v zy|-c!p;F0XnvTJmJ(c+z9<8@4_rn(AFykzYu2$@pcL3#_^M19fRh;ww6mBv7NpEaF=IGjpP$nDPa5_xwwtsg zl!S+IDC6_^U0oFoXBPeW`3t7?l^P4U_rP3Xz2m1mEHVZQta*o?yd_69i@`V>_U7@D z+}0-w(|9ku)9;eQriWuDF}JdFYvcwsgV7`)1(Sv>mQU8>g-@=_&lNM}9j7?!Cx5Ja zoe;TWya!%T-=@<`2YE|t?zM3j>1N7E+1S(tzSO@eSTRs8O?1T5&g7aVc9Nfuolb9Y zY8%yWDDPb~8P@{nLt6cxv|_~s^cb0d6NML~L&kPUWe?xH&N^xAJo-vsqSjNFnNqL( z(a=nz&e*Po^7J9pB6y*#lsCSw-lq&bFcbS2=U+C)#lO>cqAKgruOI3atCxx>V!g5C zM}=}-yB!vc^P<2~CGg$~a$Whm_t>dqeO-XLjGMM1LouG1h5>vYej-?D^db)SjQJRY zu}ay;*#G60gO7++K4uP)v!t^kvPz>cvyJKJ^|xjO6zl zbXK0^8%>RF_Rhi)c`|u@6NsrAq;HkA+vpFnC4_Ig=H zovSKs<$I4O;iF|dBz-M;@%Ql_fM0S!AiNVd;L zqq3OB`qj=;;`tq&Wo(apU!p{naR$WajpmU`>XdjG@OeYl zMCB889k%eg}KCA&)sV3AG1Mqp5ZS`P`fF$f(XbB=e~>y>KiB>JktqY?Qi4w$wyUK$GpGrQKu3 zpn5H8Da_g}U9370d&4Wo`6>PA)B196gK?hSt3|Pg!5TCwr_avWcE!hD?1s8IalcO0 zikI(Nj-)>1w`5*cVx`&iu}a1FX}gu5ACu6Kaj5Zlu`=8`5gqy5qj!XI{Y*UcjP3X4 zla$DN^mF*{&vy-0j!&jmGjm0zQG3O-Q5@bfSJbhrt88o>M_hq-VUqBco|BjbFbWTTQy3`WZs7A~5r+>jHopU+*d`Y77b)Ij31Fm05w zleN-0p5cW*dMORa>xg4rA)B^Pe&mpA&s^~@rnb^x3uDeR+|~4l+?tw;b?s9TJhoik zd64IP6yJ*rWwJ$JG-7!tzWF4}4&~u^b%}V_xO};wUNFX*lJ9E1Tdu_&frjL_FKe_> zF1k$(Ve)lnTQ8R#JUtNpI01K*`SNQASJ+Vx`AKfP{KU-(nbaiISbNEB|4oN$M|!5e zw3Q9rryy%}JQnusDM$R_-fK((^8Xsk*2&{xr%J@-4(FtgN5^3k_nX9L@zQi@BD(S( zRBxOm#q4rMX>#Rz(4^~O_B%>(u}Z>p#wof6xbm*#VJ3J02 z#00WV5WJ-kNh?dJk=0Ef=n( zE+ugZE^5hHR-X9D`gvTn`LeB}8^T)9M}BppJT%Lhdwle)$?%n}v<_%BGalVm+Q|_O z=>b8Wt?l4ma&g_s$Y!5d{LGkry*=8MasTw`1!*#$V=pHnu6UXBeg0IeqBhGualJI~ z3VZNFmFv1E^rQc4OV2pQd41m=#Z_<5BDaRmuWA+lr+v%Q&T_|?L? z%8ldk7{)W)vUe55gTLQ7TfQ3?p2;t>|FwQ0m?kl;Es9Vc8Z|%NCd2=xVLNj6% z4rxl%%~W`@mS~wUMLGPKy3vfM?cDy#)<((y>z7M!G*`xOzv0z?HSnHViouQq`11^( zF8m;WYDd3!-gnlAZpdffFwSv+l5R#zBh&#<{exYO%-UKo~L3EkEp1>@s15c>w6)f#)($aAS-(9waIm3xLkv)wjA zKC~(Z!`Q$3#(B%FA4H%kF_|X;Gh~})A=qI_j*;^?*(@WF{?**YTW>9IKjn+LMBGH04(!1@OXXm+iQJh|KrS?d$9>T5lDm!}I#ZzbU1v%gZuGDj>} zlZa}C*QL2dGjK|wcgBug((!lGp}gbXQ*e?rG1CEUBU0e%Gg2CG%N1pz{P+Dgh zjT`g?{lDkACjIEWJhX^lob%#E#k-jXSD5#1c_u0?sOjy^IQu@cQr`dNo+WD!XQ7cI zAdPyZ>=WOAl`k>BuH(6F(c-ean7fN8YcB-ju!D%BkGbIm7QeUuY^@pY+9F_J)~L>&ZT@ z-l$4#kc6|f%qj^>%OuEbd#2~#q$=L{OCGY0G;D58W8y*d0Z)%GcF^9Ot8p)gfMPoPP zteIX-epH2?K_59k?fpaAO|O^+JkMXe-$`@0?XN{I#@TYvbNSKjAow!QU9azzkMWN4W}K%ENtbuWroonRp4ru3 zULH;VVaD0=`AE6(AKvpk!&NW$lxGpkc{zeLL%-&-RYW4PS+mvfuPwVgOF$s+yRx%C zr31taN_kdye0d@{9;Nn)FYnEoS0ulY3AnD|9>L8MQuEX}yk?xcJvb_f+#72SVrzk1WN=E+v6fqlUL{LYl78>JiEuerL7SmmeHl1A$d)6a=` z*KC=zttEHgmm~s*(j}R?3J3ud!>fz~zi*=LmCoV!7H^l`*xPMglsf%>&vJ)gv zdaV|Wl%xzNoa4{=TJ9+|lc@P~hj`jEQz?&F^e)bl{5mz0wz4*~46Dq4rUi@gD2RI; zJR4tLotA$uqJH>&dR-lvCx2=fO#dIA=W}*){v+P2jI*J0M|ti1G-{@C#^huq*O^6( zlW{)1{Iz7*fcHP+TzcxfbRmgz9_9+yK}V$W+4TBgZRS=ZSNixZ0gag}l&Z@lV>tos znJZ-PIa1821T5wmF8dWJ8B#Z5nwH$!7v54m(>M&~chSG2qjctY6wfd3$G|C4#Z>ax zSwE-Vx0kx}XD(_^EO*WXsnY^~>~-YcoWGr9eu!G8JkNc8jgk(x_a=V8dd$#9iu>Y; z#+;8N8$KEMKMXI;2zCAD;QgKWd|QFn+`5#WNgw#kSKA0+i=4l&?v#ie@vrG-UK za9PTCYD*XC_E{ISA%}nT*qTzU>OQat{SPafC&q`zVm^Jc{%?N%?XW}cwZIh->|uAT z=`Am}@I*-zvAeW)Qb*QB4_s5=u;YOA;|lev3(4`bStM;LmfV^1gC5fhik!J#>4 z1Vcr!*NHfw3%MEVwu-^z0F2@MWx>bgqQ%NscrgcdEL$YzwTQ-Z1I`)KGsL^pqH|86 z=i~jA;(cl}J5YOevHNCm>cIevC`qE`{9f^bmoM(!6PIaDtY$4%G5ay|Faf+NH;jT3RKdMdsIv==RIurKV!+GEZmy^42&5#JZp z{S1ANJ=9$@Cr_iemVUMga|Pq}-*@_A!B7E>b~JF z-q};??D_O0ZI^)1@uG@@xHj4i(Zox`rfwDuhPYrT@9eifABj!Uop4xBzwbYFrD5hy z=*7RkqtHR>+t39^jo8PT*OI>1@kaDJdRY!k6s~X|c93D^{A{yktNuabV3^$|ulV2x z-B|LST#x)e?ydzr9lqo+KQErC9_W=sy>8A>PCr!dw@5<{`-N&Y#zI4WpMU!h|Bvb{ zWD!>o*{?0?Xf51UC*l{+VPhXx!PtyDj(namI6+7wzVw&hkz@Bo!Y5)0*8F?Ue^?_- z)RT*4MPAeAox%-bIZtiL&uLg7bfFi@Hs%@MEjqzqdMuK8&w4y76xw`^LXjzVWMb)C zy(ApF-MItxaEY*CaxlV2BxA}_KcSj75Id?SAwRdfu*QaaBC*_FWfCb~?cFy%6-{Xud*4yurhf8nAvaY*GY--&-!N4y9e#0x*&mR}>)NiX5j74SKn_G8B7oMa= z(@pg6ZvMh*A$PnIc+H%oJHO=>zrN7+=Tpr z^eJQ9dTyjw*BI9OJZ~=FRtT5k6XT zH^e9v>nFVwp7dax&Dh&N|0nz#5lfF>#`(4pBAdkG1OMHuRi-%pHW~*Tu$Oscf?(FF zhd4K!zS;m4C&Ey3XENGMexq9O4DT}?l@b8d2|>Q{Bq zV`|8cH-CU%4Noda1sMd(D&2(@**JW!=SK?gEo{ z?Ruw+YIRx=f_P3oC!JC+-j|4!U*zvS>mqEwLcS#Pz#ONE!oLBWjq@B%&5IKjU*|qF ze|NP>meBMzb#NKaQRUl(pu{+gV%?bUFAB}msi#PM`^bT7!rnJA7|P!BP1#$)ATtK} ztkcqb43O;?gXQFJg+$cD!-yD6Gv*AjNo$PWLCqe<{AhVM>NLcljAy$<8c6(0&%Png#FwF{hA0?pPJyS}K>8&_;B`~h-iMoGeuFT~+?b4l zH8+K0uc@)1Vr{y+vvA%c5Yeo$E{^Id27l%L^%l+q6OE*2^bz~PnPA=a{!;s`o;bn2 z5^$T6d0^((;8Vh#MEDT01HTKOItVBlCrN z`!IS(yyaX!eYntQRVto$NJVyRq!3FUYa`~~uD7xT>!$4cm|N-&-y_`o8Hc5;Vcx7b zB}691;sW<;il06b-Uh^=+ESj?$$y2tyP~lL?MFbwN>r|kIJ2Ubmj5#N&cOV9;j zG<`!d_`R4P|E7xZ@xuz9lVgi6i?hqU5x{<|VGAEAn3}N%4<({u{nb*3PCjsZ5{;)9 z4-2j7rFHB7hd+;34(X3j56|)>-y`3Xx>y@6JZ2JqE?=M;+&u^hcGT@(_F282by_ih z#{h!~f;Nu533ElykEz0q@zm_8%iW50YlWZe>1MFjIyCf%a50@)6#3MY2)ZmZ{u6_d zbLnSM{9bUp9gP#L$wyABh0}~-I?s$%?WVZ7Jqn_loPh@2&~|ndR*fe=*;GWS^flSR8HWhVlAX zydBw0Dy-#z=sYK;o?M$Aj~i>bq~;FQjhnj}x+Qt-oesVdqu2+;y}`4fMu{dlkD-AMuLrU@$c z!8WbP5j`?TSVNAnXviA4{U$-@OiY(&xYb&{Ao0E{SjO6N_#GiXDF*jvkW=maQ|LQB z8o8axWB*YH@tIL5s7XDCscq4@R}`A?oVZLMfCi1Ckj?o>VFO!?t3@wd_SC;prsFt$ z>N*(n{M$HT-Q6(Qg(PF<6nmKM2xfL57jf1=`1;YGX9|4}k2b=$5?^}e(x2k~7hw&3 zl+ROV{!qb5VL%fv)Z$G2d-x(D?U4t5|B1#S)iQOJYi`uOh{5>nVdAC1E@<2-2Je2f zk?cP?BGEPmvwqH#`o40&@fy^ReRxbd743wrJ($-Di=`#Oo@gOOAm-LeL4PL<7rR!D z^V};%`o&MlpAqoq+?n-882drvES1YA?f-CtW=H?2e{4&@W9GEKuN{OX{H?mP zuBba~zA))%67DcpNJ(3S)>X*IIhKN~az*%+7mG&0DX6;Up-_|f&kn}c?r0U{U5vux zSM+a{8X&S2&*TYWsRuiw7qz&IjwVCip~815@_$-R)lH}1)!9gV`bwN(lrJ_g&UKh4 ze{Lq{sBSpUxsd<4$`1|Ng}{(_eq!nb>>NPt4r0hK>4mgtKO_u`!_CL_psnfylQl8; znDJKVL|=wMyaVReDG;P~p6IYD8aUfqsN2UKPD(VQ?*G$wT+gX->XDr52At;pmyd%G&)l5F+_ih? zeBp5jb#aKdf4j6rXuO3reh%@F&Bekx)@c`*6Ry=Q7b50GW8H^j>=|4Q>0VLjMErEX z_(m{dJV&Ndb7o&RWG6w9HBl& z%LKGE3dh5q)FS&FgYFg~@Tf-|mh?{t$ z$1C(?C!Y0}eg&4B5)r_8?DugRBp!%|+n5QMbl4BK$X&U0s6Y26eb9&ZW!;#T7(s8u z4xUlyz1)yG6wJw1Q5aGElCU(5eM&5SW7`iEKKycl-_|HJo%l*WYl9OO(__eO{4X&w z+!6cund5VUB>5_JE(b;8ayN2jZhFF}eHi4$ae~h(YU$r6e(}Hm{=*)aW7Q@4F-1Wb zcsK>#(G|LZZ#2+PB`!L0l&T6fE|Pek*iC(|&M{7avY)--JzL>2@7`vt-)`IPOI=ElW10@Y35xwJ*Fgn8(6;&f~DQ}9mI zb!l7JO7u-4R#1PGB~sX@q~;|dd+`)>lw+VNCAT)k4=3}Yp(BSmhBMAL<0J8eT57{K z1fi!feUR72!@|-9jcNyBa<5nzmyJf^t^hnZ6@|M4EHGsubv2(yU{{si=uZFQg8XnC zYu*QDAAB)f6^`u9-LQ9xFJ?!Dq1(iENI&9@j{%{ujIIY`J5My97J}KguLw=@i0LWZ zE$mRD9^&GPo;}D@KV7Ig)6W^>E3_DJ^{|k#i5lH~E5|vs$63AVloqWStHWiD^wHFJ zs+dUJFU;bY`7|xuek9|{h;(%cXLeqUvw6!Z!h|;DEmk9*bFYJt7sT1lL1GIfqlKaZBR+Q4(3+!*7Se_vir!o%)ek$s!q#W%Sp(zQSIlUNfDBadOmU?g%@ znA|22azcOP9i)bzcRa#tc7ajHAe?APJ<^fQF(;fphNjUtySW}tJ@Q9MOeE5^Cb$>u z4=dKww@OV>`qdv3sp*+`*#r?w0w7j|;?J>axM>*(DTv;*CSQb4Hi7WDL~S_H01q|= zprU6Wy47og;96AdEC@i2wmno&s3+5iJGB2dZ?t)LTEDD70|UnSWT(#hLR}#0*|WcP zan!xrO^s0MWqq1nPkoqLVoTREo-bFZkMllk_k(=;#V6Dq>TsUCjrHE(&uVXb>WvNH zZ1i~p!KhIzY!2~W``c4kaVQ$w)qHla6Yd&Bg`py4rkEBjm#?hd7&`CDpmt$HflXI^@`llpab?}epF zQUCKVJC*i9m`nal!2)`g1wI!XPf|;2C;i>| zp;ki;eHsJNXM6^7wo(hR%75B?g6jC`B-oc#)?<9X^{oEk9zSGnWu4qk&=2|Ii@Ae% zwjY$~ZqP$*WhpgspVYKkTEZT|mO6EVj;fyiC6AAF#W920>d*evz_v=k$0LK(XUn2- zjJ1K=4==T5eR3AQ>d8a0W5&o>Lfy(fLExd&^q zday8}I1r{CBJs!HLKyKS5av6=Vd`Qbm~kg4a|QinYugAnm_J)klWxPHBH@lkgY{3T z5nVvO(hq+)wa`FYvIkkGh{1YOBht`a<<^h;8UHH#(PP$meUg_aHH5gQIc}_eJGCRq z>k#v|udeUA+5<*&lF|9mUftnPYLPMK!*|Tm4g3~`=mx}OR(t9uEQ>(Wie$74v(?3! zgps43gx=+YbwYAN`s9g-4DO&C)hq};|H!#{(OUP3ebC7m_BN%h zbn!7k$gNH7+>32=c_V`nr^I92nGU+Otl0*$Un{+7uIobo;>a*^n}+q$tv?@vJM8W4 ze)rJbhz*9yAP)H@opj4$wYZlZgC)J2>QZY`r#C+emdQ1A=Vtj)=QaX{A734_FeZP- zgPK{b9vyp3f1KuvsBgHwy6y+(FKrJ6!G4J9nCWRhEI6e>H=`2uVD7`FRtbb*$Q8kS zt}pIzHkSB<^JMONd;jpm>UYO5@DV+-xBB9Fb&YB@e^=wP?v?U}<@w|K`IG4l$Nn^< z({O#Fn;Vw=OU8x=HS`@iyP5o-Oro?)<< znoNwyUY}AJjFX(HG>P=rdmYij>kB#9yVLZasXMC-l-_*G$ebu3Xb!{ieYK;=RubEA&GiYw?Agyhaxd#iuLj7n&J|!;>3` z_j(7R<#X~%XEYRd^6nmVf;~u~sd#)x0E)UrBWP+BaYIvj#MfudFy@xN`9W_u91KHs zp-BHN!Hata^qqIysec;bg`&klIQo2x{(h)8)~ECLY}Z8Z81Dn4(f}+!Vj{E~M9IV&<><>%aME&?bl4LyhL>(?cWB;5PF^-_`mi zL&A_UgY(KS`}B`Wf?<3(372o5(tDq$Rwri}_a;BmYvyRE4a2$D<$wB(%zK49Ih)v4 zU+h^Lh$ama@I17$c&dYjTF#sY%ofCUa@c=rx)uT2tm;; z_B1t5h%LiIP?ddOeP2Z!oE41rdsu5mZ5M-NYDH4(uz5XO@q}9-77{P66P>OO-bycN z#^1kbO=z}z^S%m1!v0LoDm^7uc?yY~iVPo8ICXqY2q4c9?tirc&Z!UMAzJeT;OLv)18lTq- zQ>g#O{x_ocTYV$yVrA=jXT7Z@3fwcjz#0ADg687IT-J)@OKdmpBOYQ7tS2TQJ!iBi zTn&Vsc>?Bj^bwD8k1uD@=VyFHRvM=X|k^p&7SY^`_5al>`y=N?bK>GpfL!ISy<+>1DU)+_K_-Ou*Y8P?&pP5JCLQ8KBBKx_6?n~Hi%tN(@JaN9^^&pRdVP7lW4 zUEvtiC{L|f5QtjzQy(1J2Os_XsM#D0JF9HOXacB*>W6NHlT_B@IeVPtR4L8_x-QVy zzV8lC-hk39!;(Fp0PN3a)dPaVi-K{ z#2_!*S-NB!fk}2TFh~lN0$6)LB=(*2!&|!7Is$8nTa7!xa_D?0-cN|YyTwC@uMmP?{9Iwqd17!xKp`KgZ!`(J!$%`S4+J zaX9;{mSjRMap?V6>WkKuZ2o94uU;%R71x)x_tW4sXNT*@){$P^3P9uW^gec~ChZyM zj|N>L(7wY*@gZm5!4E>=FyW@SBhDB7_5`EV^}S-rZ2B19q~_^QK^*_y3tjhU__?KO zgRLHzMjY_(z?(wZW;c}7<^Azy0vu1cQDd0#ojeCx4ZVuKcw?nkYt;pF`Udz`j&rl& z)Acw1x#P+T>N&T2t6O}|4M$sXeo=Tsw|^z`#s*?L{Wj=B$~8ElPlnxxdSdgt5eOr8 z5fRx-^dkm1nRn&s96RwEd(%dblh7b4c=9Y#~1q=()i~Z zEM(q@pI1lP#`?B~E*2+7*Ov@$2jccI?r}9Vl~zOsz*o*QjPqfvu_xQC< zbv(x%y8<=P09Lqn)7MDCwOf;eYE5Yncw9|_77yD`VA^@*@_+$`RT(O^}V zM5K-=5Qlcuz-tZnmZyj%buS=q5 z=x3EMo<}sez6L^@o~}5!gLSpv8^QYyJ%%g-(eG|2*f#P-of$r;>A%hDCg;lzoh!## zs%WA2Cikh$+7t}koUa@3$PL5HIS09YOjqk5`IF4aKa^d1t6J3bKAQ|j`ocI=i9~zy zC(S+%6S)V}YmmcVP&5tV!70c$WBJJ2h;H`P|*LLOkN9#WnVQa|iAeEwj1L zuBO-6Qc;|!(xChx{qpqJ#9Mutx4A=YR_&drapIlJo-TP{HE9Lw_QJODC^t5eGNnLN zxNslpiIH?AE&$ag#ln>5_FAML?mUQwvh|6m{Xj2V`lmQJpB2}$Hug0l?|*RX5q`0-u_kg`7$iZ0EZ|vy64>svE+M&pv1>`e3bguvLal3?|!Ej`NG) z-@0E-J#dJ9bf*ccb(>$hp@MUw6MgsSW-wQ;KE_%?vsa(Ze<%Mk`;^xm#1hv2Q;FkM zA3BmAtenwMujyOe0P*!!diPbKuGaCnqHvm=1Zpq5zOq_;vQUe^<%#H9yjLtgMx1I2 zdGEuHi+5&daP1s-`dn^{6*e05C+B19h)-e!V;fY;y6$OJsmiB7Jn0yZSzT*LK4tWz zu#UrUT@|U{b3gbP)BE_~6LCRLA4GUESL{C_>R)@}--1X4Bp(n@{_?=<1N2D=$`fCX z@C2TOqTwT*XlTxPibDv(pPmxMU@z?d7lhI`ig+!9dZB+fAKko5Y_Z!N)#hpOU_hE^ zywDYvSz62pHWK@Do>j=5wJ+NXROhT+QPn_$?F9pclAAuLu=K_JX)cz{R!2j%w zpUApNtv!&unX`NQI9=W+H{2q=QJ%0?=fPZk=43L^W}ki$zgr*nCiB~N7L$nwZ2Ojs zH%)BCgqrlI%pf;7Rx9>ULNLRadwfUdi?5yqp?fO(6oYl5ZZCUb_J)ny?-vE;`HA$2 z@SSy1oDrwNVAdWNJ?@GF7~2oN^us#%QH-?E;QT%IhTZ;%CF7}w&-1*y>Mt>RnLqMc z#bM68XJYmbAN(tdL9?=AaoJx_w2p+!fpy}{_wJ~e&-qr$R&m*V z54gV$Mfin6an5^BSj2^3O3Tw?yLw)@O8k1n$@AjLI-XcMG6-Yi&x(!PyJG=+fPwWS zadkacys8@n*Polk)XUB=eon3G-acZrny$E)sKK2T+w|)s`UrD>pg#TRecy1-{-bi7 z8|~2OT#YY`_T^ag!d)aGTp$9=nBhfIDUUM(G zJLcF~jI*H+LToa6T(J?KJ)sUixqN?*c#35owK(TMZ%JLDIU1&PW_2U;(N2j`H}8$a}P)4*M*|} z6c0q{LeX(}j_B;`iFZRoFk<3Cu`#**FWv;fZ`^5d-+B*f?`Yxdd{69f+zrOrTHGoB zD0VyUf`fU)l5&2DQ`S18%Ni}NPk1AqxJu8Z(Hhv)-zoN;PY-e8+Gp(+tIqwQpXam6 zaW;+HbF7qc{>eCBa@=yv<(V7CSdbgw(M-4GfEyA|QNyjfyMD(84PG(MHSO-`$GJw} zDC>>2^=gPE|IIZR=j{BJ;#P7)x)Qfco z{OCq)mOrz^=1l@|c4Y$I>|Z8^KM&xXj@ZnST(SQhdND-M)8yn{@eT3v{)KVa-7!yG zbj}YKia9^%w?(Y7#s@Z>qnC^6;<}TbNWB|{@wP#t{EoVa^mZ)WJYC!#;*R0e{VDWIoYU`1vx#To?d9}S+egmO z0Tao431@|ew0LLJfu6k1a9gKEzZKo3gm@RQbHU>Z6X_H^hC0skMSR~$YIpJ_F2+=j zvtPqFtG%^7FlWpE_b0{ zJjedJ@k}xItPeUYjX`dyt7!S#6Ca5oZuny*Iv8?yo;_Zyb60VtpF2Jf=j^zqhq#%) zW20K+#6*r0Eet%dlNjBq4QXOXD^D~TKppMEJ>sAi9yrh4T7B?q@j`z$+{xGC`{9<- z?e;F{wMC2JMK)6A3nw&~$+_t%C#gDf$QstB+S9|NhV=OB)WsJmj~A-5$ThIv?NF&t zxqiW3wVrj|Z^k+7U5?dJ#(DA(_TA=ni?;1^LkQ#C;M!Z=NzRe4GR|HfBJ}+RMqtx( z^1TKx*Bk#1g*oS>dynnYZy_er`W5?>?WKBwvqkU8rZM!_ z>yU`x1`Wkb`umK{;C#1kXK_zP02cpb&HTec^vn#vMDoUzYNNzDE%;q<-ZwXLta$ki zc|lj$NB6Q8V=H{{Xj2S!26Pcm^z_1(dgL>On24j>cpxl*`gA+K=_iu^sXi5st9O3r zv#z^i2))rY!<&mv2R(3~d-!4Vrih`3Jditz7;eiPal&eMYA*yqDtIftUhj$w-Yfn3 zcawU@I-|~P;*YWJl2aEazSCMH_na+h?mA)G@jy)Y6D5UOd%|>;54zQbI^5z|HyW!KdBR+j|ATnjG&Kqi_26^gsH^+0&psHN=yK0T|Eo96ZZN z?DUEF!7avlXmzouKC#|B?$~d5s&7K?-O|p{Xze5Ev-)wbCoK|#A8plRygPnBpeO8- zEqW8i&>QsL^}MB*$9tfD5q(GQcM~(sJ?IxrkG!u-#I!eVI6f!{y1DPgEtg!-VI}!1 zJqAfvxs!5Wk``-b#!I`JJEF@k4LO8G z@6#&9+2YYpRa0tXzF?foHV3L|u&x_!nSuck6;{*txWVoWeWj-x=|-?eILSCGe-7#F z=!vlR8GFFqcXfrALJ`Y;(5-(p{eF*NggvKEy=xQwaYybXPDsMhqdoN(zR?%yNFoNf zj?k|$2t;_xM8uqR)km>++fQAE6LaGA5tae4{Sc2!CX4jVtpX6`#{J}gZ2f^x{&-Xn zhjTmD>u-MWL%(~mXqS_%*LC(qD0{$`W9R5=CV5e_HX4hYJL~O+dBAIBB-*aF)H|w) z+k6ejx)Fo*R#V)OM{Mz7*&_YM8}6ujDg=S^4aL$FcSsY0v1Q#{@sF7s_Hd@SP5nvi zROXBu+h9bew%@~%K~`uUjI+l!?m5b9R2hu3%s7|#8K_Fw&3c1zuF+=pQG4Qn7Z~S? z{BOsEf8m(OI2X=qp)(XiaV8>}eXOPK+ZbY3&yq0lsDo|`Io>7Xl89X<=z6m+9(9<0 zns%AGxbgt_H{*P2%4S{R1Y%sN3Fu)^psQvUfIY9ND>CT3ZVz=!nmESeZN@|0f?NK$ zn;(aR!(Qq(zVySx2eCN4wOqHiA30sb_VsN}>8z<2_hJlZ=bLhL4aRsNXh$S_&lKH3 zb9Y3uPca)YOJ`x^4g>EnT-w=Q|H#fAB_$y!uXkUsIpT&KYu0u7DdHCsS4^Wvh{x=& zV%SnAEF}l7-`TO!ftNEdyify=7R#kYwWi|$b8>AjNqYKj8e+J&?{?#yWU|u{>p83H z>SQK~^tO6zHn~!q{l|__o0xL9i*cSkKvK1R#eR_UzTr+<)rnnh7+jK!qWkBpYOtq& z$~eF94Yb1ha2PYr)w?BG#crw(PAuj2yK_{w=xwu zKRTGmp7(@R1#@y9cU_#<-L@*@&*-0&fS_L$R@%4zNFt83Xksl@{}=w~GnKveM>Ewi z`in*#BK{oNLbaOuQIj6U!YQD+YS})cskS*G*}(HUJ`0f#pA?4WDhTs2Bu8GfdGFrtM^PA)@M33 z**wTWb(NOA_ke#J`$}=1ecWFi$T+uRoQLO>t8VZ-uj6^%5uK^(xYG?gd7g*c4Nxt# zBQDA~+rA#8n!}uDNWAXAj7h57t3y$pe68Z(Fx8{B!MI8sN%eVws#87YjWJ2Muxg#E zUTz@1<*^5xvtRX$^Y&+E^q%%RrP^v7z+F9RhTOWZ3M`=y-Q#$4`t@BkMqz9xa^L=` zq5Av=dJ=J$e$DN=>Vc(xn9Vq2xT$(vZ(mfD#o%c7D(Xi2ywHgKV1W9Ts%*Fi?kSvK z4?3=D{+D%WXZpsrSgmSCjQ2gc86TQg)s5)N^TVF%XxBaZPgPyf$}AYww?>O@=eXax zojyZ_|HO9ZXCQ?*#?SsvQg`w(a;SsZ<9@ExrNd+teG9<4_qU}G^GPT<;)luee@JE3 zr(jQG59DuMAepzKw$=U#mEtUYo}>QDn&;LA@^53SsW(1mP9`_tmEE@gkE-tgifY-q z76lX)0Wm8oBIbk{VP<2_3I-I(IZI9wXUItqR7AjpsDKevRG8C!P|N{Q0Yx#Vt76XS zU-y3XS3PdktLjIM6ZYxey~EmT8QY=;XjToaG%H8rlc+@mUj{BNA<($&qCY*phx&6< zs_|aAFBy46QAz!FGLYrLyuR-qg1t6xW&vjDtU{8Ij0%@V~ALD(<1!!;p4Y+>R zxO}QDE%QT-z}CF-(jgoAbJPc1355#2z?#l|^QN7T{e;hrYiKF@H`*(I3l=+8(SF=X zp|{sCJEIlkTi`*n^@`ZbAT!#K;7*r3@3XVorsUSol??VOarqE4=vUj(xS<3U``4ROR-Ff#sG70Gf0t1#bbzX}wlODYdCS|o)8e{D)^pAhO5Ef^2J8N?qJkwf z@FetklcU+;a8uIg-`dXBoAyb}e%et(LNs+!(UaV}WJ`H{z|*33*|<5umLBbmqT%IM z#%;Ac>GEOd%bMsKmu>VXJ=okPS=adVY+!cg!RD)m86T?lruWByBl4PHdruo1mFaEyX_=u$=&8!ZhG^vmA zq;aS<_7 zXG+w6!rYP;(bs!6)a#%Q%g4YSEOcU{%by9}1@k(W+{zvl}!@!s%(0yh^o?8}4vm zHXi3xC8ZvUxROhcP>NkyS+yg>8Fk-aI-Ffn70}y} zrcDW=Mz4&j7dz}I68Y-wJAqXnoNejrQa|dUlU)^TZ$tZgAqQ;fp=dkSnsy_nruK&v zr{GKb8hOx{OGd&g-PM#h$c^HIjtH{Y6_g7+#D>y)8P zQHYpr4zL8bbF&rN*IlW4T^Q+|EmGVpaixCcp)_#75yg(%F0`~fgf@F0Q9LnmCRc0B zgH-NNjNlHmXhR_Rt0yYb76U8p=TEu+cq#03ZOL^Kbhh2C6dT&xkV~;Q9eD4faM)`_ zH-Q~ls3=f$cLM(NhAY|VeN(8-SVcQ0IMcMNi-fxDvK|@H78-D*CF*XrBdUwbU~dUs)8Ly&pxp78NT>gTm>i5pu?^HHyRIpsng1No5Bf zDUvWNLFms;ov0*Sx$aNBvoYV&wyW?0^-F^d>qt1LBcy_7C=0U>$p`xjZI~ymx)nm> z`e_Q5ZQY3O2hp9oPZg5aj9Dy$DD_mV5ZXdlJv0P!5En)W=hi!s|FS@m4^a~e%^fIT#UDM3 zuZs4Y>`8N@4;h3#S7dr)rh5}~pzF6Q`dqg|Oy@=}`tK^suG`W(H7Bxbd@d=nvZ3~V zwq*HgtJEUPiW;*l5tH?v2`R5d2ZB3`An$wI`J|-P7 zqvW%-wcj}Zt%Gz|oDaRvf_}>92+4$-zNF#}tX*6eNieju-p$4AgZ}cWh?(F3&c}Xk z6Qmf}0leaWpyhCDx5DC#oUHFe)4Ma56}FRQl#+wLulTI6MUBJ>`HrkfL$EZEm9A4{gD= z@H4}FHw$h2d}tWz|8Bpw3uj+?)7sA9RCL%OY`fw~X}?10m_f507ZS3O^G z|BEC2v;nRzqn{+Jj}xtW;z;KA?4-}2n;8YnR^$f_>Hv;n`)VuNU7Jn~2i)j-AmVbi zpJIS9v>n_UzoBK;N%{f!7Jc+n-W19txm%G(!-ts1YDv02_9J^6U>d(>SG|SZG!A0l zHg8lc(~hHY;C$$E_^jg69XVZni@Ax*pA|h;%Sh!U_^!pSfwuZ76V&&6(epOzXyk`8 zf_Jb7{dg8i!*&-6uTi`HvNnXaZIuae&z&jyY7n_ttrXNIg2$j;Ak}YQDioc@Y((*Wp8gVQPR zxX{wpp8~pq^YPwAK}*e#&LOYN+x9>(wD85bL5?~3t1#fE53N;-peuXZvDIyTNRk^) zwl7uKaPCdtRKsb!-e2LcGV+gcm{Xc~N3c2TPGdfY(&8=$1)FwmqzDP2x?br*A3NBV z2T{srnNa%0m6jX~AU0!@aQ8IoEvAUQ-lG$Hp#%Qi8(hOvY1nA= z>F)WG$uV1#VAMt1&2ntzpL0w#q*o8GrEms3l3}96Xq_*aqPOzOqlZMP*^kPTpqr!f zq)G+*I_wIt`Z+auc|r8k92yW8jtjfq2awTE z%mapB61*^L`Fu|#t;l~Um{j;d^Axi`YrYG)$T`$|pf47##@-b8(u?K@8t}9STLJrr zA4Wg@`9M|*>~5kD>aiOJGvWSP3Pm2Occecf%&lLu3n#A|9a(I#CoNyLj#9On1uJ#L zpN~Q*p2~!=sE7B^4WUbGcL*Dx0sTNTh)$^P6z;>$uA>4-t=%EXtec*c2TbSigK=~m zTGHOPg6NZOl1YbKs8=0vX=P`5ttRH**V3BH(DJiMmP}ladPOPXb zTv@R@7WX9l@KWU_h2fGonxzd+#?hL>`_Zw~6Z{Nuy$pnRH8QIEg_&7{Wr7Sd*6nM7 zYcdNIG%7G-hVq2~Uhe>DEuwv}4MI&AP$h6GlDI{hW}G`f(3e z%oyh06TVIlpa^~FHP8Gk99!m38R*v>n%SORDfOc@m|a|Qs~Zb4_M?LvA}L{=9>lO<`ZkPbTi*MUn_DF6$kV~q>`TWMf>+;R5$pfVhm<=-0v~J4TB?E54+M_(uO1r; zP3L~$=$%R1GW8q4ifFB)8}`?PK;&Ge=BTSImJ17jV^P68`2x%J(q{DF%)a7GrbDyt zGV0`Sa8_%#n5d6Ko#$EWxrz2BU8RdZp)S~n`BTSK$)kKk!T-Bap2H+)7)2BGbfhbVs8)8C*kW884U$*kKG(M!8H*38Lz)= zlOZT;qn-!9z2MGa;g%UN=7{c)Iu2B!n z&6>sn9|h1a;B#`GShAe&{zP~dYZNg|zQUg_?ZGVWk44}#L#ua66rIs9^j9~^ks4cmnr};ve{nhs-Q>}2|h^&S8cY)`31`ke$XVNvm=j_{ye$bn0x-}N{ znUR%KJ2jdn%<9K=bV8{HzBkfuFrRD?LU+OQ@M3RY zzV*F~He*)Z>SHf{MvNydXK?2RLN{=A9GQ88GcdOoKM#FWJwNC&pYF@=&6d$>to|0b`#2w7e8?(KCUuA^zlz``7ki z5gXSHvz)kBZnhUEZ%BK?Tx6}*-ujq@X0;>Zea8whz*yQo2dDIOZOR($Mq0qw-&xQ=r!rmW#qwy1 zzP8Uq@0}ZIxVF~yu)fnx8r{!_N?zgas~*T}w}eul7I-s0PZIN%g#D)rtQ|5;v_vdn z^aY#`Z@~BN6OXwQXeishJT*6X@&P%094ey@zZ5)tqKy90g}$dpF&_k< zaZ*c0zhgJ^?0dMczTy2RB=D!x*U`8pa12KIaO*Ci^sEXT2+LOTgQz7xE5ID+5D9O< ze78pwI8t1P@H%zOCfk5VH&2uIS``4@0Py2o|HAg(^QYB)um?Qqm|Lzt#eKtF(Ed34 z6^~h%tI_BS?qoVU{i&uRn$*W;vk|B*8JB@;?q?F4h?-d1UeqV2MKKTL3*|U#zsK0J z&vm|Zw0ATG|Ln>7tyxQ2z#fMdre!_J76^X9e@`?iZCn<+BVQoqM(znm(@%V=7@$nVaBJ}~Tm&%2Zh*P>}q zAN<=pTlnBX;0Z?F*l;U}kIe+XatpWz7Xe_|g0y-$1fY!VG^tKUUV6RRVV~2Kn0O?VgGyi#$k%m|@9rJz5Q1uDggc+gwMH;HNmzT}CXe$Yg$? zGcA0F{=$F%{og$7?3;hdz~x^Ok@E z9(z)@rMIZvBcAjp$Vh&ujhL$uM=P**4gcKZ`3gCO7|5vhST$F+mC>3JGP+T^pNC-9 zaNqzLb)3AFTiT({q#>h2vr~B22GpB>N1S8Rj$0iFpb_vt`n|F!d1v8Ob3x(~^4*5s>g(f~~#-*m3MBNp|`7-CPHdB0I|@Zx|sZ;BCrRue;ewt>U{ zM=!n~_uKmfaD2&sv0}dnQutu6?yqBelF&b~#OsEZv59)9H_wN@yj?D984^m<;2-p- zC$b^35K0`6-`*#f`40;rkI~@k%X4Et)i5)Q^;)?zTL~@)!-??i2ff%SzYwyViP>GZ zDCYMJF*4pidR`ivWD!c&!g1bzZ)WWmgo5(`x^I`ZuqkH9BX@!;2mWNon?P#29(!ws zA@f}0OM5e*;T64F&;*upRa+T)uXm*ra-AvTfsD>vDkfL-2D5s}DbO~<#0hxFe(zfI z*PZ#jf^7CC!S?W(h6T)TYCOG0%=UJx0UP&MPQ!54lB{0}HG7lkbYJiRW)=%;15@ev zAZVb>mkD!=lBpEyJ&&9P;e8@q!ust}Z{VyF$O!vkt6q}u{c0SU4+dvc`y%0oQ|y17 zy)Z)^(Hr~;TcX&@?om`23of#hboLY2RSi7fVGr_I8E{gX z@J0O#OW5oTaCkOBJ42_Ot(QlT{5^C7=M}Sr^N7NwELMYiFiuWpsZl1ERWUmVuJ-@k&yN=j zrf%1vfv$qs>_W3txUhpt5pN8gzD%k!DUZ4#-UuHdpB9l-KnpN${MzZO;>C(wGQ^Dc z_BnP!ljA1Jf_=Km3xp*-vuHf*W8LPwkZ%ZGHYsB0PVWW3LuuqU2j{f8GmH05A-knG z%T~H<#^xj%Y5{)EiIdsI-iZ|M1RmoJ3t7m+cnXIfU%Fj`BU z@oyI?KNm9hyV2MpXrrctC`LSWB%Mq-c}8}lPg~Guzagi53k#FFH+D3#dw455TX-}I z*VRf$R~7e*)Q;^Kc8v_-HzRe9dNkETnr_58VHdtxqkW?^ur;b%*^}xP>-gt^4pMd!xOP^6_s=S6*jx z_hr&7HSoSpxyFKTr4w(Ddtvca_BA|}zT$js_PEMAK`-xjJMcRCUt{^#66vxMK6lA= zmTjFt?x-0)eSd@5>BiG-+%HpCG%zczILbrp)V1~w8>i#j`Yz$4&J)=!pEuD&(Gzw{nmAw<6%!v@q7Q*ZyZS*z;(Np z&=15jA(P`cds$DDVdwC|Y@Ro{h0ehyol>K@e0Uu_>w^1TV#h}wWV96iME}4%-o3eu z9(IGD^qS1=78g@4V#1hDL-~!1J1M>=_YWi!3RYZOf#d9RMy zRD`^8@=9gC^F{_O$NSvA`I`mkr_*J;zx?(mX8AaU#^8=<@_WOqv9}{M@Vwlgvjr;> zNv@9AZ1W?g^g5nW@w@(MXl9|u<0ux-PCuZD>88X|F!ssIOZ9AcA362MGn&8e8VfN) zJoqk}){Z>G0>Dvrt`6LBpUc?%?cfSSEbZmFlP$r#<}So_7i~7PUMsvv2Y1up>l<0T zl`Cz(2Ysk@o0+MxBc1syqo7Gq>}`lWx#!F2z@4eoJmuTOR|j|f zK_9O4w}cV~f`e3LHSg225V-OfVAW>vhU$FE#d`OIiTqDx4t>@IU#|5K?pl&fTk!fr z34QoX(@dHT|1X+q^7C=&^aSrYEU-QQI3ksz;Ky$J|78zGCR1N_ci@XU?;nM>4WToa~~{m}?7oqw#x{ zoQ|?Kqrzzq_VWbYeQa7q5dF)+YyPQ#-BuB4BlO-oVuxx5G*c1KRppVE&u)ZfARBNy(~WMXbEYf{*(Rt zC09>xpzb)Q_OZWsyTBIm!S}q8bB~84)Kh2t-kHt{u2)@6VX)hY+}%74c8B-NT?a^i`E#@0U#b@mbw!zcWkMMB0zL<1&BF zUc8GZN35^_qncQ-o?K6rc3BKoXhbs0pMn)@O|KQRi%mZ@??b_m;Htb{i zh+Xw6(VLsRlbzcb_+RcEe>R_0|MHUVtqH%KrJy3>E zj_4)6%5I@->|2X(%3{yVdaBg}xAvunJf@}^_-MqXm#g``fA_NiVt^qf{P>R&T8wz( zkH%∓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�uX}Y9U>$ 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

    ?{Zp9iitv(C&6f<$`+9^k!W6( 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%0Dt&Y_k>@tp4y#U1cn>9FF&D% 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Ð*&$J!j> z&8x+@(dMcjzx%Jqv(C3L{#H*f-y%Ojjwg)2hzH%8GmTu z#~)ZE@_bZS%#SqrU!I@6`N6h(t0H~W$^~D(q_KWRe<-g*y+%nXY{ilvn77*S=sa`0)_MVM6{1#`ZKFuVn1^4sjOE?z#!RTOT?z;I?RL-S5 z&Z_?0)7g)qYY+mTb@RDN>i3k-)?dYw+cc|OiLckkaZ|=$P~sOe3%Je3MM^x=w}iXj zIai724!_RbayzTU(#7{U16pG@zhj{98*ciq(@N}Suf}WN7vpo7n+|XIO^nZp9Y^su z_J}-tOrFjgFBZph&&bXE-<9Hc9`nkM|4UjV&7Zk%wiCaqpUCsqzm|NFmB{nH1>5=0 zRCm^V&!{&`c!`$CbBFHcyuk>O=gIr~@uyq;FVBh38ri%W73r7H&iEF3mfia24<>T1 zIQl(})qMC9`J_Xn8qKo1+`r)to&&GX;N^!z zo*(8;;D_aiJZGx)=e0YEJimQu$Uo{M^4zPkmXj7+D!=RBxS_q^E2~kfB6WG;jN5$o4k1GO^XxN+kRq!5REcHZP-@t9ouU3BVryhaaT>aZhoKhOc9nZX?#GN(r zxDO?q5`PZkxy~&MlsNH68J9gLONrOszt7F5{9ZFxn>)ScmW~p6o;=|jcWBlBjpt}} z$_a=(ckJDPZ@)t1IjFcN|Fyfge$E^|ls8=-r2HJm3*-3CoBfrz_P}`l_G^)6XT#xq z=UF1p^Nf4(FG%OA`Fr=6wd42FI=30OsA}NK`-wb%J*mkHLqwhps!nio9RHW+f+3&S zC4W_gxL-xO?i=Y@^h{$HE&hWMGsvf-FUMXFZNhvyTaUD^Vn^Nljwi7` z=zgq`y>0ppKkxe^`D;7wOTrgiEub39!YN!P_g?uti#JIQKnGso)lj64w}eJ)Ur5+*6eI$mhK0d>!MJ_)Mpt z9RDyziJSJe;1?Vbc^<9Zo?k2#dDj2XjW?Mh@~ppx>Y0l~o@ce`$9tBEJRiHL!++>2 z#_D?~+wk8ui9AifSu zui9A0W^_}P7T%$_QJu&}d{L3A^rU=mP!c<+zl!unlm}KD7qL3q|G;^-7o5l3VSfhv z!g$(KB(?d>I?ZdsvT1?Xcd8Bd(6@=SNyv*zGL@UG`d0aDV>VfFXDS~k@t&jp9G7=p ziDhk1aT^Q7xv#=KgDYMpS6nhHP zAzJEu*({M~n=7xmJ+y{u{@(t1W!&NOBF}+eGPr)E``COv(k+0CqFS0}-1sGd8@op2 zSxdhim!NW3dHvtGQP}b=tKV0Z^aM%srP~?S!cJBC%7pZq^J3ZEJyoSoeo)PWK`y%^ zO-1^yJ?-PZm9y>UsYrDL{9s>D%i7TR_oABi1H1ZgeS&@}Ki_fM0xqcgYbCz^Y!BB; z@4gayER%71lggF2$BA&R*O6i+u344H>90Po!~^#iaJ*HH607K4_t$WZaiXk>@jk zL0q_*$n(1VK3t~70p&CN%k!%7FIhhoRcR+0&(|(Tu_xcEO2_PV!^nM+?9?`D(ulP( z^s7l`2X|MK>g7<6dIrxfSgIx+AK{Oi#~-o{2i2wBLPO9vychRyQls+o*BH#^UNt;d zV)Wk1`HsJ%#6vQjx%D1bmH63;Ag-|$uf%6MpXTn3FHquz`q`Xya+VS|o-gLMbQI^l zXLE0H*A2uqM(@uxT+-86#lGadNSqpnqp8Sq{uzBve@UhCd(XIm%inWFi4Q(A<)npTOrF(w4|gzLjLCa8x^naHWhn3Y z;vB%OX(z_yje{e(X}`r-!Of26IJ+3-J+E{#xzQWNSkYxz0XI2Hj1|t=MO@SHqsn`{ zz87#-9mRcj2ZKzmKq{^`Y#I}|&avWpqrF)aXP_g_gWp;Ob8_0_Hglfi;lXKi6~}YJ z=sjFLtr4294>}{|JZnUrSJIl+yUam(-PB6Kj@tUa@i}&F0UKcQi!?2raam(E>zDr* zR-`>Ks+xX#)l&yNoc=9UJEJiFI- z<#u%!dCp=~x!G?-o@0-ev7e|9sQG8Ngu1dF_c$rBj>!b$SDQ&EfUf^Lo|jIKXT2ni z2q*2W{zFEy3o3tNT$L-vZED5F^=d+ylLu5Ue^K0Kf1p-2 zYjjTJxiKn%9d}&hdGN<9Hh7=Nb2Kk!TWN_rw+*<&Zk;LeTs5_V{qsnS75nS%v*!22 zSW&U{9y@S{$n)odD{KYzH#EPy-u*N-Nk!y&D-*^_Lq(o%v~^~8_7HhqU%H-MeM02f z!jxev2Z%hMukFRUeGz%C+WA_sZlK6>Xz5+~6w;Ax{`~M=8j|(D#IgM^&*~8&Y_H0X z7{Ae(v_;ymhtGV$sbj8~yE#oUVbvE5ZcDn5gAXcn_kG4ysxK)&Hcr7>d_pVIx$u72 zTCw2LNAh+Jz$lH|@)eUl;mTF&YwCJS@hDH^xnEkYVk-H1H$OvF?Qun`1*J+HRO_Pn zxr|q0oAs*|6%8WK_pgsvSY(Sl!@0BK+GdgGEnY9=_p8LXQDS;hZut6?@@E~rhRH{) z6?txD5pn*ZvB>lM^^=SjUlR8wlQ%s!Zfp?Oa;%x5WD)5|G(XP?Rcp!W!y?Za_d_Hr z`ing4G@O)F$B8_L?Mjj)>x(=WS;kA6>tvdLcAAR6WTw8z^POD_7*{Qk=ae62k`>Ya z%kzWnN7yaB8fbs)jHv;M#sGm{PVv66N&)lPQm}YyL4w&!Hcn=|x&3zFLynd9ReuGe+tu*-U-S&Cj;%Za-$)xB}%p>A};PsB0q6r?kwOhbu*%FX?(PRf!_cZ=^?=XkU@% zX>H<}!8MV}pVbS_W%Sa+l{hj{&NxmGdG@?`jv3=3^1N|l9P?$J$g{SpALGA7nHe&VRK$5uC8iTIjQZ`GuUDF6Gixu3vEr(u zmt-2%3N>Hty=_BFaJy?s`G2*cNLtU%X~a5 z@|4d5%k>|a=^l)gp$n&tcff&n*bKm6+-4QWBJaKD=;l4X6EnCtJ+m-gKQD(5jX_1@v+V?Vg1*)Sccwm-!q2!{2+%vo0CS@Gi} zqp{?^@_X$<&M`;S%au6h-Zf@GjmR^{zF^drh&c_jNlnab-C0^7M)_niA zk{ire>QQLMO@p>ejQ+0%>|dU{{(PgDd9MK%iRXJ=T#W;kf5hGOuCSLBNb=L0LfI%|K)kjjg|^6>ldh*;tYJxkUY+O0q-9!=;A(#scL!# zIn@oaogJ9et2OBM$OGNB$1xMlpTJC=`Vg|NGC}Ph;nrp!xGCzG-*>C9oofFqueE_? z)je$Q5QI5;y-_svE}bEU!e_}SG*P{JGw0vmOELA67&qnyErkTk>|}%jiI|k9M2)wH#4i}i<~b`JEm}0CGx!SW;b>zy?66>^|0g> zOLmFl+5PeWMLuaKG++PxJ%JIri#%VS)fbqI1R+E2W4D6~eDTlzvP4PaM+l1PRwB>mO!XA{n?;^41_m)99Yvl?cej#s3;ti8XWR;tc&)gKnhGa4 z_8Z3-{<(^Js?qXk@L_(uxPrN)m)E(jh^duaCcPc1!~XD|FD=y%T zi6Q5hfdlhcg%8@MhgU;>)i2ZgR3A9hxPW4l_t`(4l zD6Io;hob$Ob4t#0_MJgxN798L-c-44^v_CAa(Ky$hY{(3HS@XrLK%Mc5$8Swm%BI< zEyjwG1=UoeEXL%u=UyQ>MT`|uac^NlzrW_6b!)0XT~Co`O)bhDc#7Pv?|g}g`@eax zr$$dj)&J$|W<2i7HgpiG9tw2MV<8>-RryUT=hQJ`X}8}t%d;tT2R zsGgzP`1yLsPAbIrzaDr#$OvX-`53p4bPu&wVDR-k6utF=;p6?dbSnp1$n%9i4Y1rR@@$;jh)J_Vp520*Fp#_jo8Mik`GRU;MQ)qC zqi}Vjh@S;NWoj4^*WY*~-$?pB&G#QWr_Bzf-pyuwL7uO;NjhN7_m^se*Fk3}h9$B@_ ztgYwplQf8YTXn?3x?F6@BOjmweGFQXgQe8#G`MgU9FJ$AkAV!H6WNhh4-h^Au;@xypGNxW9LRHIrrYsfCW9nmDuI$cii<5dA{ZJ2ku)%o-ZC# zkuLndJjUhVcNlv2|9JL~#ZMm*?>h8`>HB}UMO=;Cg8Dj}c}tXZU{{g`X)_M_nXBL) ziaZ#JOu?(K8&i+Xl+{)RI833=E#k@WW) zIHtdI9^PLh&3BJa%(1Jv82QZwn=f_7hm0Id803b}FGiuy!EAimn$mRGq1Bs~LB;sK&LckxI<_zkyW}c`(v-hx~fd z6{Gr1!rq@hWB9v3B_2KKD;m2}9+$2=&V7cLW&t z&28F>>V+cDTmEXYe1^!gZ9=}{YfEvx(QVTZMMA#F^V)%1quiW^Yg~E>n%doOR_){ihu02U5*a^;hP> z`)u4Uaz&@`j<|Ip3nv@NBT7CPdz>@TKs}Fk+7etImI0$U8TJ?~L*==%nB2h&LmPME zgQ3&p3or^ ziw=`-GT~V*3L$Jdp~S&yJb9!XQ{thCmtg1{s>JWQmg4S?AUve|Lu*U1gM2od@%)fN z+>rY!aby_jI<5Cr-ajxfg&8r?7x(EN8_g*SLmO}0CEW7JZ-rmE40i~-kBn9Pq}t5p z>(Sl1D6VlXO8i-IL$PIyqw<~|v+X8_Q%_IxJ^%8YwBZ;tcXAfa9BtO2vSsde%fX6k z4ru?>kNMO;2dbn$K1w5zc^jUM(5Wu?I;(_<49h}3?HNzMdCBaw&%~gUwD#-T0@VvL zup85Q7(${$(qs0ELiMvZQ57PBB`y!!5+KkT# zpR+%O(yCBAC;ZYT7MIEE`vu|g8_!_ZU4OhJ{LL#2VeLo{lW^gNIcO72ni+(PYdshX zQ>yPHd|0QC!h}2uo3F>cC{tM8kSTFvhkc5{-KbBQuBTo|muII@A6WDKBgeDb>K&B0 z$|=R@WIH>&qwD|joM#ZrT$q;uoe8A3J9`^rG9(KrqzQAm&YS`9zc`)r1kzm@=X05u zuIhrEilfZBD;ZeOm$Vw5q%xU>=@?FHza{f7GW(Lwg7qRzvp0{Kw)SasZtj6cFB+Mq z{;A~SLG_|@+Q6LR!;0fHwo`TRi`HrfOnp$beh97JU9 zrisI^Z4P*&k?>oa z2*rvb>Tw}l)lyFp_k+$(36Gs)Cf9d%!7swcX1KGKHdL2OxYc7dh2LP(=q3Cw&yQD} zWvp`2;QP!LUwbZP3Zv5zO0n9cVG5(4m5yVRo$yps%IHhdu}V(02c?Ud(JRg(_Zn#- zt}$m8tw}>7Y3GIZb7R^aPQ}jN?r3u|lv!n-g2_}T_WpAmqcSEL3!`OVI^{EQO^HbU zOZ9lSOPQ822?&n%M(X_uUx(sSO-!DX@JH|medmB$%5)q>u24uZT*5;ML(`Lj23I5dx0c_&KA z;SD2!Ax&ibr0ct@$`~O&48I9~nOVt<*iAL{^uE(ZJYcR{1t>Z6>srh-Yuz_ zY=m%up*m;t%1()ck6dBzY_-Esy8bWEGcR6b=3I=2)ok)`d@-J31E@D-tUb0bdni$l zON7H{M|6w{k+1_2@vaN`ymnY18N4(B8~&0%#4jC5jzc^K*1O=^`<9Z#FL7XglD~^- zONn%G9Qi*|FYtVANt(qObfzBmuk}MDyQ+mB4TwQ+TDP5ErNV695Uu>%G_2~#47eEq zHF__1Quq8jy_u`MZ;mS#(7JyFVUG;CqQ?Nz?I$ehGl12lx`Oe9e>RTg zyhxX>89zNF;k^6U!HDp`Jg>K?U}i5ojk&*%pv(CYOq<47TrDPFp4oAdriNHZs88@! zoA<^;_QWEKG=zJ^{wP{_>@@B=lBY;c2Zi>%7%)pIPU)^z6bF-6(+tu9KI^4u*EiXwG(6k1R%_<&i_iXihSidBIyZ{x4%l@yJylfz)J{jlQo^5bYn@AYN> zEJf78qtGHeC|*YquN$J|^M%(#dALC!deHT5OTWlBZ1RU5;nF%IMenwLNapU^4O;memLU`^{KlW!P`L_}_UA~JOvE_&o zPxLs-1xb!zK3)HpXN6uhb8O%VB%USj0NDs8J}nBXr;_*R8+S>(XB65$wnx*Ri&J`h zJAql$k6E~Iio#?F=}am}^Z8n`qP<%r0{or9c6g~cPx$m2>YoZ|$6lC6{_VQ1n2@5! z9=&rMYShCLU^bRbTXq~LNlU8kyOjO$E&`_yxWl<%J{wv$AsRV@Gdw#0tX4DuTH6m#vlfRAnhwRb_>B zbp2nR$6Zs$&W{1`nMwXQj&m97&>+P7kuOYbq-2**5H!fYAiAn*O5l(n*ptVeWadgm z9OW4MSCclK#YIJtZXi4_lRk{B75kU=xu(1mPPq?d&zS~7PG@1qQ)aOHrck|7fip&W zn6dKSf!Lwvf(@2d>@+%e-k(MD=>iW{mwtA%mn+8J^Jljv1;RGhjr_pE*s>8pxI*)3 zpkE~0;1z_08$97;cak0SBnUqhv?iDp!#akN&T|FLZN{hAdHX_WtrkSRU?9IK-Td$PHz0hmlYqz&HBKIu*UR)j}dtzy&EeUy9-`LTjsx6>1*bUm-w zlD$tk_-5X;f5);7p|n>c{9&^i7d6}g+XU3wtVd7}vcH-li~L^O53|Rm z3&$0elv@f3wMWmU*NXY8>3P~Zpyvo3Hp1B*tF}A9v9BTPa>5-4k2_$%N>g^#d3VaW zJ75H3!T$c}4qMXSXlm!q?p{XyLproaHwt7+KX_m<W%x^V^T&6bX77-f z!HXja#W2d7}SLVe4A@L)yh3eXpHn zM>qt*xS1b1XZKwlpd70X_uSb`>SbF@*W2n_vzCS4SVQ=esvY}`dOEidesDIB&8B%~ zH{tvlMQmMn(n2BpYnC>bonVJm)2LQ6D~szcKa9$tP?(+m#-(lBiwG0f|BUBfN5-M$ zRvVNi*`QTcAk(+E0}i-QU)HXc%y#N^^H@UOVn=34_LPxc)L&aX89ct|aA)#SGPlFJ z6TKB`hU7UJLY{@OL5h~!sE3;)4{lkx;vD%R>D1W4D@m0-ndFRo(h7UmrWYH2opf+1 z{yPX`**HxXoP9vLG#Yc*>9l_7G|e8J9oDmNNi%y5^@+_Nu%C5!;)+r)M|9oh%x-<` zMt(BRsC4sWm({vsdpz|ZEcR!u8>vTjIqC1j1+bG3d0{DeDP?*1ur8!0DXu2}fj2~`q1G$tHY^z2H0=A_RyI5kS)KHeGj zZ)}kjBv+_yr+(Qo@-AHWKyi`c%B**!U4w55vnka7Xh~kl>aE$EO)kidCcVw3&TPl0 zuCO}jh?L>X6kITC!*KSZju+O^-^{k;!R!qK(#9qam4-3> z*sLf&$QSuxaI2o|>+ybQs~rgEPhHs9Z9dSF1>u%Y7q*wVCltp6QMR=YtKUSPyo>!Y zd*DPicN}^A9i;wxCv$eSiw%}VxZ`t|LbjxQKOU>onq#dmx2s_%Zs#~+P;5B2*lr8h zREz)cyzzq(TxHhSYG;F-n-R7sxNp@B`0)^ydvv`qY z+Bf=JueQafeJYZ}8sw8eT%}(KF#cfV1Xc10ide)M_1x)%YSLEfnBY_7?%{;Fr12=d zvr;b4al&qiEqte@%b&EN8ddV{QH*>i->}yi#h=NSr&3#Sn{ppv=C<(A9--Jk+LHQd z56=v%#rJiOk0(_E=4GB6?0{B1xxwpBDKVAAKab zlSsM;$+j4I*;8UFcSJDh9e29jQ?l}=3$*KPAv1q#yj0T_hU#{(ZJA;Gf!236UF@*A z`w`>wPOjM6U<;Q#U1O7SSAevD_~>IsOUIC>uoLy~(|<=4Zb;9!#ewA~ie6J}pB`j~ zRH3JQ6KVdn?dE_#pZCg#=g2UXd=^^D66B=~o{+sIpU8%Kxy~7HWIT370W(U$%6u_< ztp^_D=qSF@IxTv#3=3MD$j4IM`18&(Oq_GV*msc(g-<*%INMpWVu(9@==ZWq?XP6q zX*%B^{jYfyE1B8~(hT@cJ!l(}nWcZNQ4mQ!1u-gkopbwVUmL$np*i#w`4U>i8*4u& zeM)URl+0gkypeKT1p}#n+~Ap!v$;F)aX$rrCz96MD z=!Ci{hClE_!yVFFY%^9-eaa8ppLwBL+g8G7l0H%(>F;N3VKC2=_O+yE?pw{Yv!^`n zYcHIaNwD+?X~KW-BF)24ET#EwM>@scw-51ru>Eb*mjOS_xw;Cm`nbcq)obV_-u?F>V~bPai?-^H4%n7uR7kIbY8khPf#vOWr-txRri%@Q#^3Dq_`hFLVAUAYrV$P z`uy8u>7Y>Rubt=)uWPfU5&L{;&qDmPTPdAEx;>p@z0mZ1r!>3F3mvV!kayKl>OED4 zdKK!`eeEqx3L_6|iW_qWAC+31cZIeA)e}n2NDC{dC!6+A4ev6g4@n#2*eKG!TcVH_ zyg7m;8)+?KcvI@U(wa1gTrsP!x{0@sEi&8wS17absZjHGVJEYxA@a+<<3v_L; zeDXR(PavK0EE_aZuB+mP1JWlRAy39^=zO3(QD@TS_PT?!hHjV@ZVT1;Mr9JWo`ZFsqCmy`;#GGlh()FuImvp8lHbj1vp3QK>(50T>V^mC*_j5(m5>HegQa3TC-)&K( z48x<;P58$S(4<~0#~$CM_ESmMlj>U@zZ`4QU|@^#8;AcBH%5Yfm*$5d+h>ip8+Oos zj`B%;Z7`7Zro$;#n`GLcVPYYkO>)4-2}iJ;|Ad~T-9G8l5tQ!K{(oeBcRZE<|9%Kr z(a@s3)7~jv_i0O8du#7SIQHHY%FHg=p`xO5ziyO-oMP$8oy6&hz!0*Tr?9THP=^x(DwJ;_Q04;_3~;%7)|4Q!jBooylpME4fMsSE>uy zqW1BAZX*prSCS8JDs<&^ib%hkbn#}MKf)a(KeLnk_QI4%PQRJvf)|iR;p`;tR8QjF zr+c&W^z+z(2P<4rb@W}0xRwY1+!cV&aw4(@DkSG1-3(MICJ^)+!t z{%;%D&N#}=CqFZr`V9)xqdCn0R~)BU(PMcU=aWkMJMlI!*m#LEyF&W)OGwkX)phO! z;jcEv2G)%axW$UZmDrs$saw}@Dc#+0>x&dd9e!|Xi`*y)D) zDHA0XGu;qFdkr(%K+;-?xMLsFjMfn&Nqm17DCHA}!_`R=wPYta_Hl;)CnJg70DH7@ zx53<>E|PF7OWbPO^3Qqx;7R|pN!J>$-(+L^TdMCRTI1S?k8tlm z{GfxSIOW@otBkY9!VtPUpG@a+wJBE~Z3DBCE!?VV$}c=@aB-{)H&ciB$0(P){wt7M zXh=G(gt@|wIIjI_S1fvAgLaoQxsAltk$K4mhSM2WK>G;2!bo#7xs;1fqWu`cxo}Yx zmngVmTVLYPn^VUrQV(<%Y2Tjs@rN5(PkA|UXC*99m2B45vuEf{71o zA#w4T&6KpET$m#r9L<#rB)eC+pl>hIW3E~#Q5sIXINcm5-diZ~pgdxrz70l9UM_K5 zN?O^i%(1?~M{@p^1-vZ()$cx~7XhU(b6h=W1;wL5XjZm?Zd+?K*W@FIIG)c(S)*LB z5&onRWZqLsT#dargU|NxBn{e`-o~7Rkt3+FfkD$OxSbDOptXUtp5ORzIV$8UVr)pK zB$7Kx_vR#uv7gLHgyN%&1v6R0O`-?@Dx%gU(F6Jv*o`NJfd#3Ohug<{i>6C~!u=c-3K&D{(n6765a zo#{yPZ#l-2UUa9}Qax_gI#bEvE6(toXNMex6_P-jtDQWXzSp@cC4FPv zdJ}AXiJz^b6pwxNxK?8wknAqS0m~`e-9!hJy`Zy{xQ?r&dhC<|Hdu1efy<(tf`~uK zzxZ-in<+kNAidq$q1=p6S6rw0hR}@(+<4|nH3Q1Q%`&+v@()|4+v0|^jC)Kv5=RG8 z{CxKoS3qZV+90z1tGHm&K>yj*7KXFFaAF z_dR0RS(4g^I2!5u6;#(-;z92-)Qai`c|#?y9q9a1jeYZ$@sc>&_l*gnI!x_U$y;kT zNT}YvFlCmc-(pvUr`f@->mo_jSZ9o$PujA>mr8yGI-+=vB|a6ekf=^1&W+lG2<>7f z*}BXcRgQb`c!QT@Umhpyo0bGB6-AbH(L_wR1Hqf>@Ux{V+{4I5ir8Zut8 zhyIRbG=umqYl>v6hAS4P)BTb;L-Le(;MU)=g7Lt)l6Ea~&hsshKWTyF7Uf||1_uzC zy+YEvj}-#Fcf-cdQZm%;AOa%(_0MU35m>Hz7>QCVOtL+S&nL)_Hd~?a#X0DQ*x{$W zHKIPg!O9eSjBO@9noxgIZ7R7jvc5++1oT1)|v|`)%aBGMw6x18`ZH(eN+7S;B#oJm3&Tx|w zsdiCASgA2?Gx?C5A{$`K9WErp75en~eyn`X>8I1*VlMgNr=Ph>dLA%{VxEhwB<^Xh z2&%jS@1UW6H%ad*y7#tA5j}>^`C{Vg-b^~q6$2!~ zX5u;iZG-d}1IglXbpIwuk@sk{B!=o;=N?t$rBuC>9;MI?Rb$EmIkK=uh!#M9~h08IdDH3FZ)=gHVcYGSUj&?YA z$QtMFmBHb-J*LzW=1+goee8gWRZ>Lit8>W@NNY4-ih;kixS(~87^!Z9h{x?X$s z-AS?ZuYOz|?e#~~+34XglY2@vB@_CNXFBcVp3Wd{_$bm?-|xX~A-*eZs)6YK4dpbq zI>VLxbN;quj{iU{Bva45u9pw81mGmqWbDa`W>C#&*NTJ6G!Gu8w9N0&t+&i!K;%E9$9;F zcBF?ewM>eV+v2gZ<|`w@Zbw$K%whR|nN zdzHTvst59yQ%v~qJy%Gv^TKyh zw9)>=Z4V&Lgg!P1&HT=NpgW~}p*2FLC`#U&I>FiCFm#PnCAtQr|InWFyE`gN7QVB_ z(TN8z{jjRUH;a79>3w+etgEE*&ps%<`L~YLkM?<1f3rYMkQIFPnNeIraRJpy&VQtQ zBGnF;H(Enj7>7rm#JhIg8diFjFj%d7mybD;CRkb(*qR;q*!(2G&kgu2X>{BE_qZccaXF^wm*y%(oV2Y4mVMZdHvPYGF9+^JzRkaR%8wEm%RJA&U6h?hIM3Y>NT)q|z*QThnGTt9R@Eyd8x zUnry<-u>lLtUsg7ncee2Py>B8FKKZ#x;}VJv16}~y4-!@q3K9}3uDC|+?vN;=s-2n z{tx?e->FtI{|3c2NyE5dcSu_!O^SHGaa`Ui(kZ4|R@c5pT*F%r`0kNnY|RWVg!T+Z zu9M=M!91>VsRu@rZPIHoH`9%{7Paard>VtKtk0uVu@z$t4 zuopRbr;!w6jW)B1^P2efuhDmKsHH8`^3tJgCB^DEOT^oqBCSu-xQVpH8><*}dqRCi z^0S|6Bd|}A{H=~NR5pd8pf{c81b4(a(0)I~BszsYnA;%;t$R`|Avp>it)rwFVuSaU z$1!ga)l+_vKGESw)ZFwV9t9~{bf-U9`QqL+`o8Z;#LwA2Fs6H|>*7>YP4Y&O55<|+ z&p?;-?D|@gHu|G%gwc#}Je~i?K3Q;4Bt1b1)wf+z@THu1G0ATnrkSQ@;+Qg>C&h*S ze$*2p&ce0iL%1LenBj^|I@U)eo>E#R?(kDX#0M z!fAL>jjq)J1UhcwmYD8ApI!grTw$dFtDOO8-e!&5o@??}r=37RiZ#M=j>xRHB%`a6 z6b)Vf%KE3CL#vkW@9)w4yAv|%vq_;oVkvK`DWG^3^|n%H@lopMaoUV>XNAdp7k!$) zwWk{Ci;?`8iKk#pxnBK`f&8lrF-V|%WOdtKyuy@7*m+URFs>_~;~I*6hv<&m-+{Lx z9{!6I14KBr<-c7DM2(RR-i4|2(!EDeL2;TjQ{}(!^d~M=Defw%@Iw=P!R1iQld8;T zYWrX%eZO=bsqkl$y)boz6tQaRe7ilK*ic~&!#28nwXFvpP`o-NX(Zp_sXMAhT0>^F zj2B4jW|OuxipDSDyWDrdXVR01lnv#dC^%v6h{L!yM1^;qWQ+D=&5<-QMrIjhiSDgP z3-)Bgl>0jlqM~R&W}iBW*;Dsm8=dX{_PbyD=}zs|d<4_3O3}&4m=Am%g=9KQ4lJ85 zNJz#7%Bh3&zwy>T&f*Yh=gkQ2#K!;4$M{%^Y1WTo5vfI_(P2ZpozqzAysI#LNayzS zL{@5ck+hI(aAVs@Hrx3OYAKd8&K}Iv=sV)9V2knF`w?GU930-+V4Zm{Hf9ZJHB#O& zBfdM+?Hh)RS1C?T(qj+9j?uZb!N@b+*tF0<;v%&{hl|}<8`UFF*kXgtZhCAe^}4rG z4dlw8?#%n850w8(u_>51iYJh6%w@{cF7{!eq{}g${K@1m1KACl|4jXEjUin}u+DGY zkv7R1rJu*M4C;5i-E4(h-s9NV-Na9CXo+3@hOxFg9BF>d0(P7Gu|D)~n!D2+jZ?a? z`Xozid4CYk8dTY@+XwNOe04))2!AGO4@$fa{)4lk)BVe<+td7TA3IdeImhcQPC)n= zJFJ=6kv(0Wfv7ol_@O?N6@JadQ8VhbxE)~5v@iV9p5hxlKc=yv7?%R+ZZHdDo~N#1 z4D|_0Hb=1qzC~D`WCtguPwVu(hQZ26BFG1(1F>(w4*C?p`8d%(!V$}(}QW<@xmj@2e#CEv%xeQQbt-NA?g8a zlA#AWl19m};vn{$_T`P%5_fZAFmt6k;e1A(%ewTkD?)j-5-0{#-3(# zx15GL#fx6|W0}`d;>9&^Kw3j2BV{Srta8AoiZE96JrtqA4rp&4%6yj6EFtydyF3bI znh3;5s!J}f3TGFN1>iby`Kr1{u>-X08bQ7J*~#(j#7rM_nnoH!my(#)4lhijI>kku z4EFw@2R2S|!YloAEOe>$GO$IAUN$?n)*L2u*IyhQ!G_-5i~2~be{eoNI*V_0DxYSV?GYBgoNbv| zf=?gp(PLpG8{YOI22jnYY<3|F*L{KP@1&g+_L{ZlYhX(|`9ABK*g>_oq$TBmUIYKI zFS6&@piEj9PCwWP4bt{icffp;x6I?}b%YXkw5nnS)1E7XBWXUec2}7t<(wA>Ibg$* z3(UP;I{Hf-FfJ*LU2#iT4YANGalq$&k*spc31lvEgzLxStZYmecB(lc zIXZ|X@-%}?Gf|Nz1KF%|q;IM3O!{QO%!u}lo~Js)WI-r<5$T5;hAuE^jAH34eQ-FQ z=87UtF%ODoz+7<0Hl3ZO9@d)*7nn~t$1di$!v8bP(znlJ8kd}5eUCJMdkM^UxFZVJ zy5OvHA-lDL{9F)mvwyt8a-UnEsn`iSZE{)0!+qG8OLbEDf1)1!%Mx|=W%4cfSK1-E zIgoV-e1=88>F+h;7Hi+-1J3odhkxfk%xHK$-crxtQe%6eckNG9(hN+7Q#awR$9Jso zqBC6AMK~&Zk2AEZpVq0JP&fZ6CZDs1a#(BO@cdE~mXHqhi7!m?av|Qmp!4khgxO8G z1ic@WXWqZg78_^d0pYK*@*=wtl!~-H4*2;dg{4-U!tVDDSg<#mNj}9Q=)5D`S{-A< z(of(uae5b=^kuv2!f2n!85Wz|nT6kR+97g*&Rk~}VG)E1eOI`ga$p~6#_5FpD_Z@w(ZApuEmvCAmox3MB;P(T`*KI4S~ z-DV7HCeCyH(ZW;WMPF=S52?ifq50W!99w1&+2qcG(W-k0cCm+5hMF)a;VS+l(>#*? zFLr_MQ&rM&YchS!mNlNk+I9|z&%Vp*#$=$Aodc@g^DN#f37ZB{-MIb?)AC4wZdWJV zJsZb#jbbo?_|j(+5!;@fkx+k2eN#tocKU57R5YpHx7~s5x=kExO9{`udsw@_ff$@f zIn2$qEOr8&^HSoR|GR`u@8}1IQ=Yi3u#j;Vs0V989G=DtS%sB5`sI2dIB7l$K8PFqzdF3Ll(sUb zc~4MG_o&9*O7^z@XEe}!%OK@W!pwwbn9;0Jr!V7$4!cQLn(F?I7v>AgZ?)zQ8`(jx zVX;uLxD}@mV27EUiBRSK72`?Ys&L8_!P>GKk2LLZtYV08;Z+$r&Lu7N&3ZynpKGXf zut!w5mSBHKhW6*}F?za!@YE~^6>Z56FRNwV;b*WfmVD0Uhs>Zn8GW5-F7xbFR#`^+ zusg|rYUMILyI4%7I*8-AWY)^#1d2!}Xv>Nd?6zV!im6VtKKlp@XgH4ORqj|Z(3Nc_ zKIV-SH*3w?#}>{$3a?>acvrESMbK!`&|VXr`DtGuobFSOW9s$@KRjHB-E|FD zjP0Rc)k7FZ_v}^bA3N0Q2%E0tp!%;pRQ9wMYIHJjo#xwBa=$X`r71Z7%n{?JRIz27 zPLbBJ6Fzsn&4QHU;70l-o@ZpNTsI0UslIma!5Jpa4aemRZs3QhH>`i6KAD)0q<{&-;VF0XFzDd#7OiTZwB@w8gv?E`r81WzNOI7AC9Q zgzA`9+~60s@bBp;9Dn~67bn@F_t@P+VMaB0e>+(8UMAQYmP5IUV#1>m;l}Z6C>?GO z({3XLV_YnqewJ0ZYNgsZN-t+{jWMo=w4pNPM?fI$M3FapIg9oZi|2J?q}q53&ira4_W6g1v+=O)Y~ujxGt={RK{*W7|BG{0`&3q`LbD(o)mZN7 z3%P&mh?883=`WWG<_rH|k|E{$9h`+4t=8O7s%J(u9ufMkQ08I*NLRhn;9bJ2mE~x6&5rhPmI}OZ4Q_qOpA3`;os4;e z(Y?8(X@s!va4zndIbd)@FQHR;Ce*2KA-wJ&R1Zr<+!>nb^=u=Y9Gi&La%V)2`^_G` ziG$v7>Mad;%kIyN#_2*gd~0F}9Y%Pg!%5BauiqFNcbT0$S&54G*7&$>s4%vq4r>mP zPd~O(Xd=JiNV#FvVSnLHpVr(}%8@q(L)SOrjUb#gmk6fEd9=(|&7+dw>Z`f< zT1@ftni0afp;@r%L-DOyZ{d$)Dozb{M*g>sLc4%O?A_vm@BwPV(u1UfK>d=eEx(xk z_h_08rrqbD*G!0ygu!^K$GP5Rrc=YvpYF27>v=Zg&M_Pw>4U^e8Ek5JAo^DM;?&0| zrt&@j+rRo#uQ8CVcq8IGa-bVaS0WC1!q9NiIu=JWp)L0F+Nn$>M#Q=3?QAw{n}~D5 zQ)l)iQ^a}C2+wti|QYEN6k_`_tOFuM*P45e6T;2?x8`GfYQ zQcS!aE+~#_&CS|Qwdqc&LYRXxckeIFd9+U#p4@K5*?CcaWPG9!J@y+m)!V`;GEDHU zuEvNZc6eFmE$lyDjysg2t$HsNx(~gMC{uf6H*ON@AM&_Kz2oBU3x#`X7qHL75uHC7 z2^aQcVX2D~LX}1c?{iWS9_x&!I=zK8O^LYl#|0_r9Rv&Y1cZiAt+`M|=;joIc+ye{ zeEprpy^RDP?TIH|&soXpF#OS{{fou7*x7<(IOE_0-Ak9)7M}DXmXju9)@inK#SuA% zXHSPS-Oi*JO?awgyR+xEBF>g-i&?)DBF?*ON3%~&BF+Ym)0s}Rh%+DI&U70@oV^U1 zS?4r!JUjpIoVoU?YNj`%68aX_=(5j5xK6vf)7nXC$H7~uIq(NwnN%O>m?-GZY|RZa zrJDS)3&Q+BWlsAC#V1EE2^*ib;<~unqEPXy5M}%gJ?d;>JMyH^R9{Ve8+M49cT7mj zE62VHJ3!(glyAQdcW-+*YFh{%S`0~22cT}f&~@|$%q(@py@&GzOK&>Q)lTqRIYn6c zClwdEQ6K%(P~nfoX)HQQ{U@vLLO@^w{t|!RE(dMFBrgWj4tc<)T2U}#F+ zo%%48Zzi}1#|JQ!l{z4z=YC=FoC~-#p61xX*9czeS=ce%8T=q)VcM!RR3CAH)NF#_ z|KT+Be~^An)c|3BX#x_BNeA|0XCaODzK8pJpm~S7PU{9IwdRJ?%!q^70_LK=ekrZzb&g-o23-Oh$IGG#m z4tC+aV86wvJVkQ$-)F$Jz|32CX9zZ2^7ns9;k5{G?w zE_BuTh;t>RvpKy~$l39fbhqqiuQ*S*dY}|r-`ZhbZL$zEq6kwM?W$ah5S-pzLP3=S z&42p~Ni)u(d9f4P2006PJ=0-m>5Ml&b_?HoCy~aA3qmxP3md*Az_Gs@I@C*qJ5@0h zpSa`M{t?2j8_Lq;rnL9PktfA$?q||?{7rF)Q4TAlxz@*B{IPQ32{xgVcy5cEU0J~o z2RXJA%B|RS>P5HUykz`gHuB3sxxKz7f|a$}E4Tl94=%CjB3y1PL`N-aTnP3RjDst& z`5gJ`fPA6C_yZKEzc9AbOF{ME5BkhD_*nf*xZU$NHf7NK!R^io`F`QoN%?RpU~Dg344~27U2X3VVn)=Zzi~4z4KO~fcS@td%M9udV!#SHxd)< zX`bAClCbh`D9TQFkWSeEVKMF4TZVbk+*c=|s71eHwin`JRfWRIeyI57g~XlpY&vlf zY;Pu=;=WJVN<-Ss{pN$;d@*yo?S@YeeDU((dG_1H1xGymFnUQ83#0tL1<&{0-C2yM zz1;3N?f^TunEFoi{K@eZtnTjtxjn(fmc5(0TWdPW`YKx^|6s7NHntQQ z6nog~+z_(kUf`)Q#nr*}LU!jmIM>na-6Pcko%i(^PQ58VE46~DA3tJNUt1KIv@Q^a zzQC|(TWmk^O}O#lE|zH9A-(XiU^cM``SCQ{bmXegX4XXv+hmXUinD^#qD+h;owJ*J z5`;93WX#l|8qNG;Ldv8B7?CEZQGvUV7Z#0bcj~Rh?iU=X7uJn-p9<`j2`ijJ(VF%r zzbrNqB6W`8V3r5oxeO9I5ubz-ar_n6b`n(21z=f74oi63g5^PygQF|#0jd(#cRINISnyL7`DVK;oSj*Dhq$3&dV-nlW=XQF@j zZn~XmR9VUKJXvhSeqIrA9(Ps3{Hy;LXTG?ruwf#PiGQu|YDSn~W?zJ7k=7V`{Jt>p z-UH}PqQ3B2#e&6AZ=mpq;t;M~!6LtpXh%J!>b4yU9?c~_KqcxKT51(+Z>mJOwJkDO ztAe%KH{sf7iv!zhg!XZl(bL6_dSG{iQFYlU9BYqhk~|@9TnbdE&OGXCk}zyg00_JCT#FRzZ0s0d!aAsKYC%~?s}Hg)*FSyN1$Q&g#8Gl zo_Jdye4SOyei8>j&b67$n8i zWIDHhpCY%QWtOyCfrsWB>|IK8q22WhwmUt?$!F9PEbmzGGqsHBV}yAJ<$}^j1xPQo z#R8X)!jD(ykwd+h@6lyKPpWwyX=6`$M82RlI04sM?nH$o;Sg~+mu+!GhQo2;vr0Hl zR#43|&rMi*GZY<0y5Q@)-9mA52&UbkxpC)3f_0A&)Y08Snay1y{- zRUnL$h;MdUN5SJ&0DjE!!mt_2LKWqDt$n>Qk_I&og*Uuz^ERzk&zH9^oA2<3GlBE_gfqI=&3Eg=x8RK}GkAcpGO6 zm2V$}y*JZfO}#MVk)=Xvb38Uvt=ll*ypYg43JEl~cf~GNSb2@K>6IMu>Q;cTpdk#> zXeZ36vKL%(Lup=}e8?s<;p@i`tfM`Fv>|hZ9Q_b{-|7yn-lK)jvyWksCvi7S>M4Ao z*mx!B*oC}kE0}x>Kin`R|mTtVt%;jz(uB@y~Z! z$e-&)DDpKm;@SSMe?HP)Pk1?$$F5ISH2W7WRPN2AooQ=)+3;4FW_b}FDpFJ)&@K2o zt^|p}G((j)xZr$D1?F_69`wW^1zjHAfkr6Jh`#Gspq`SC@6=;Wb5kf#iBCs@Iqjsl zR|#jw#N*OWTbM5v1c%HRw4?dR8)K4%M}4DUv6XsZDaQrl%MrBCTsD@xP@df)%9w;p0j=^??2gW7q3UPFv z4=wV9`7#xuZ5!&3)9y*~(l2Zq-EZ?plLlYEN9;y7Z>*tw{B++!7ESXrT~~X9>pq@4u=KlE&8!DbqX@kYtkK8)pvzPi8Z8=l<|eMow&E`K1zQjYT@ zr5RJ-W{Q~q7v~{=^@L&hJhI+f;qZ_Mp-)X7R`0h){l0gCcAs4IXrj5?k6jD)-zr3$ zEA@-5M;2tD6tdPfn7XxZ!4i9hS2RChV4_jLwaUOzst@`f{2=_Ab_$agQ62BmHDUR4 z(n)_tdoK~`!bjU!JfnHvPoG1DgFm8RxR`ce96bbEzer?9JHRbvzpyPi9K0Frfh=1l z1aA*R#~f#PfhLvv?E}Hyx_N>k{z=r4w>~{P@Y@FavpfY^DpgKjmu<}QKZ33|NlcVnpu*5@(>eW zeC2%E1nRe(Iun2+;p5ph+Qn`;!_qHz`1kbPYO%j%yYR*I{cEvTnHx?`dn5X4wt5D3 z?HBLI|KegylbYm^oQv;N4F`{^Lu?>p(T7(4GYuT^aE&N@=EW zctM}xSD;LN{8_Qu1q-%j;0oX(e>dTU_ zzn264HkkGdzw_7}-w<@4P5V^Y$*iPRFy7zyM#I=} zcAIof>&W+R-{Zp~wEVGZk}ukRmNKI{AGqiE!R`8bwt%#xTF&R<5KVTWi-57Fd@ z&|ZJb^RUlrr>-s)&-O}{uE--k^OomT(<@NBi01tZ18}?H5gMXxaFgu+;=DO;q~LE* ziHS6mbA9F+VL8?0kCU(H?a{j6hW#zlJe6YGaK(b%uZm$t^D3Jc-w<9k7NGVJ)#z>{ z2>dV^x{tTRK4UMT)6t8#`;_*U_iq<4;XKr+KRfBq3}J3VHY_t8@E~f4;Lt4-51-S1 z^8QZ3=sjt8M6+wJLREzK=1G_{fp)YfePzarPT?cXsc4;j#3H&UV1}w2-0ce4?2tJ8 zBK?bBHD}nwhcP(0k7n|!qS>2UCvfU6X}i=MVVl&$@#DA;y85~>?a9Z{W4JHQ|JcJU z?vf7gSzk3xFc+(3Vk*-G=O+*VAYRgZAfm;+Qz3%USKCUMO(|S5MU7d{)`w2-*L|S#Q}C z!Eow3Y+h@P*ll^jkIvO-Tq;Gk;O|12XC<%JA;hJxpj?B^^NkrIN!T3>kNj$=dT z1Va|*2g5l7*vZ>R0ha)bNNdgJWcj0va3j47UMJTF)5$JSRlVG$!3)NO;VQ*sIPNCS z6~ax)^d$^l(a!1R0G#Qm$d&aY{${ct^qj(t8AW|IvLgo@a8J{15%K@k`Cm575JHC5 zV=npRzdMSAJDqAVDU9~2z9$Hp!LM*Dk9PO`4+;*uNl);#Ei!K!2^#_`h+mU-acAiX z8{6C=9!3W|j8POeyu6P6?P&(u_&L)VTtu&N!V0?rW|qSfUyT#4`K2;R#U+}1a)#CG za3uVec7q5RDUMkF2{MD*nN{weELf|o=eqPuKF>& z`{)OQYmNMJnq`s_o`ct(<=0ORfCAZyoFSh&-50KeZ3h(~)WaLE3ESas6}YqaJ+YeX z{?BMPXEgQ92~XGhA>3^x=tkS+0Ez`Z5D+=l-T=g6gVg&z$~m_t7K zrB1Xk=hjz@Bc2nV8;b;?^gW(w+Tx>@o^YqOnlwnsCj@?H3#5;+#?l_zE;raE>vD8E z=735*l?m@|A&KV8_nke)?%XQ|BR-k&t}e{bqX3QHoG`D~PPVc-pZfpKh&g4-Cce(W zohD~Q+?~cuRI+gRIMwhQ#xUlZ2IqWNII0a`tGXrQ>MYV0(eBE&&qzew7*DD>YcUlr zfwU{VaZO8!85qYPjkufFIe+7KeT;z5H6NsVSMw{ThGKM-FP3}W<9qib9>+94G~N^V z2+~sdMc9t&c7Pvf8-Q4{4J*xML4LlNMfQSC8Bo6C4NbBW(g$+}>J)1e{?n``au;bo zOG=kKYU_9*Hvk^Nu4vA}qqpgrsl)^w#h#`+1u zg0T(wFwKT$2fs7sLV5?pgJGI~fuvVo<3qX~0)`x8b=#gorGjQ);;fjgcLm};J0Se? zQkJl~6zabm;j28E1$4fSxo)&C(S9HsH?k1TwBymUzB4ICd)6$!2;S5 zo*Avge%{N3m9q;TFZ;p!FH3_(0@a!8Yj|Daz+6wW<5Nr@@r!g45v}5hPX|i)gWuz^ zv)+q1P8q+YCK`Uk?a+8Shi?@gfw4R2Y(GomBh^B&%#`M^uf_A;YQ%4M&<~2^L;0UK z1F@KV?}=gC`0?aF8ifFa)UV{X1^B{&>~Sw<^GoUeEFqlRmrUYs6Q}rW!gJ^@1HRt` z;({ivrdf6ReE1v}7@7pYz+8u4I>G_>)B;HVvR+o=Oz{F~aQqkNz2652@85jJhR?L~ z5}U>8YM|jEkBrJO4PCHlL{B)B<%$nduTmbHT z0M$sBfAK+pi8FN=VzG^QTKkN*Pp9ZvcCKM5F+!%vzn=F<`vQpcOV_QMl+_gleiH^(!IHB4YQ?L^epPz zF2A*$eO~K^y?VYFG-(O@O?@l%* zzyHJ&bdb7G->N%*l)sNRGig7wTQ~lqX(=Qf-LSE)3x8zZbr`;MgUq%oueYEOuTQ&U z_!xa&z3pW*n|h#dP;dU;?HrW1_C)4}f&7T6S@5K~aZsZH-{3;rkIFu1N*~VmbV@}( zTe`O%CGwR?iSn3gS;uC6heDj(_Au+pbl*hE?XsTzSjE~;(UPH5dVKnp<%jzM;5vp7L7v~PkRr#ztZ8+C{ zPSA3VlN}t^nj6^38Mk}-%9dFC!9v4Gr?^LbjW*TUvWlDvY@FeVoJd}_Yw;aut@Fa7q!O9`;2Y4O`tLJ? zCo)~CpNzKk!PzIIK|k#>zFPTW$!10VV9#9mCA4T*bmKe5WXrMo_Bn&!D@~Q#H8I*0 zZ=90b`K=|)Eg(j2$Ea^-wXP9zd!`^|9Th|5w#zjqc0@NwZlB-c&0f)Wy<}_vBGQA| zL^`LDMgA~v7sqx}za{*bKZ;rvvH`^56W-q+c7ab>5&fIm7WtuG_X$(G>xvKO{BW|@ zU3RlC^&&`rT=VLEHfp9FzNY%2X5SgM+20!DoBjU5`B!}#zD*wu?!sdyEP9+I>ldNI z1^y_7$6mH@gbFlSEy z9)(LtpH7hDkR9aAx6-~Sw73PAkN&#XMt9S`pKW8{%KmP_-xr+I$_t*B<39y(!9i9f!te#s6~ zes);qkJJM>%xd+~{8N@r!rhC8Wp3RE{4Ya1gQqoTwui=@4y zEvIDKG;8;W`0`#Fo|T!De#i5p9(Z`MNcPa{6U=FLr}fVVGNa-eEPLq<)h{1po1I>u z(`8@e{`xD+O@EBCLVw)+IE|0*Q6~R4s`d2ekM_SVx2sLlc@GH_?LEc3e!mNHJ6`)G z|0Ok3ZYR7}W9Qx`%WdV9QEXjSg4_;vGGhulBF?MKJz4$FF!}R?fe|ckhlq2Hbt0=; zDdKFkJe3`NDE3<$*JQEZSH*toin4rmp7=Ie^1IQ6ci6>C#Pv&eVwc2P_Rkz{2BpTe0 z>(m2v$d*|@P~~n|gRTWtAGFOXxrxp-qCUw4o8bW_zOIWrb|^ z+ON1h)*BDPKFa*3)}m;kFZy{a@}Xzmpdrnlcvn{P3U{B#KmVf3G5oJ}cjfj;^%7o| zS1h+}r+wyUt>xwR^>b>h>SM0letbrsg^d=^^9j-^zT7CD=khB{SWH*ZZ#1UZu*p)< zZ>$asWPMCTzcKt!0`mzwE`Oha=~=9YS)km`(!R*L<%;L|ePuqoN%>6+wgwjk*1b@~ zIdxD8D~%Cz?QQwh>`9GS-*`0aE$ebb%)7e|f5P0~iS-TbUeDNRZ*hKOI?gd0;$v)i z&;R;oW79Ug@e6g%D#8hapPZK^YPaFKgZQL6X2=$Xx8|A@NbflCl5F=B1Z^>={?+R?GU6I`G9od$Zgyzfb^|G$aA*n?dAONzy{n%fNGjeYKb^!OWfEQ+JkC&&ygkmY~U5q zZ!`pjGW&<3-?*!LlF25Eb)-#~GngICCbYahtTLVH5cf=row+oT^fb4GogYxo!nj(ty;y+@4y69tk-xIv?OJi~uKHnx=|bLb$anesznU4x zcj)y>Ztu`7;oBxu$nEW~Kk>UR-IUuFOO)Bib5xI_<6huu@kliR(|cV?c$&dKfF zpY+(*#&o%zGN=cu9hM}wJGJk_rk2Lb?PF($upu>3ayy^$qp7n+oL|~5W*?r5{&}6# zc2@I1#Ceey^`i%h=Q(4RH`CZ7o@c8!LF^mNhPQm4k$sQTeuQ|oCzKyyPXC9q|4R?{ z+*rifN!ywYu@G@Kx#P+fUJ-F#+scF;4*Fl5*Yr~6ANN(~z7BN4@gA3CQ+ud!I~KV> z<=918S7TMqf|i60=qsM* zz_`UMaEjRWOUc`B`=6u$jW^7xY_t@Hw^<4eGID2|4@xyzmbIXZGpmD}USzfjp z*Pm*VQSUFxR+zWp4yw6h#I)P8(Ti2N!tzr9u--cqj{c+fL{*I^UlP{lCUv$1o2X#HBbzQ{SYkL7dgZLj>Uh`kSu{>3QSDdKMWokG< zO(j=Wv0a_ZKI%eTG#6x9GBwU%5A`f+OJw=0)VRULUhqkJCwp~Xjccy+gVwdN{8G|B zZh24B>F)gHk+t&omu-#Z`TWOn`(59Q{H40va@%rKDX(&&NN(>QRm~5aBl_f#jbHec zy65H3+Zq1lFW=9Q+baE3*h6Wu+?I~kVn>Tk%I)zv9oa+ASh+o^gFZ`$JR!GjEc&r~ zrD9xHx@tJH>muSDq&ATaj}dV`$8&7xaS`XG`qP*%@e;Ru{iO(u!d;JSr+Bkt2H*+LU7?)<(0 z+>?yvD>wa-zvn@78-C4sF~<0^G>C6-6z{$_=Mwp~A4Q)GolAU5y_k=D?pnehyLD0g z%x#|X2kXVW&(ZxOKU-b&$+ttA`M6f1Pu@_W!lnd^G4ryjw(L30Cbj&#hQ@bd3RPmR z{au50V2wqbi+>Gd*B^-fxhi`EdzCHXEO|7V+0}_SPpKKo8l)o5aZ|dpP@3^dYZa#JPj?3xB(}i1W!4cldrMM4b8T6#h5uCbqo(`TAV`IPDI$*bg60;QM6%?>v8| zX_M@onL0O?_ybdVX2>dEXmC^OsNQ}nT^66N$(>y60mEBN_Mt;tZn+KZm(FOCDcNeu z&+w9>fqa2kll=XC8@KVV|GtvjZ-%<@$*u0o?d);K`Hd;p5|4s z3s(8#|L}7jh&XT6eZjw)E8;9kFXBt@ia48E$MgLuc4&G1POSt!;k}4+w_XeQ)@=^T zpa1tfw`;DK{hF@M8Eey?qrqv}_@kQKmI1CX$~h_9FrY2xSW3IluIFVjsXE-yeZFW| z@=dmaUf=Tm^XK*8$MkEEzvp<%)x3d{c=sjMTk^jr-jzS!2XDFCoPHKtFpzo zqKj54Z#4Ow{CU~%%lvL#(O2w$Udq4wES}*GbuajZ(W0;LnE#Cry)XKTHpYr<`X13I zCk#?&zDvZIx#*P+!&VXJjMuuXe~gIpg=t+_hJsk%P*?22a{h1TImxI4d!Z)YiK_}V zSWj;e=f7_iSY&H2`Dg2SqmJK3`B}@qH!t@A|D~&#r|3y9@Y7d`I6D8*)O;Mi}U(^Pi5XlZMdD~j?hc?ll^I{!IgfdJf)SZ%q&)ubEJN~b9-Oe+-GgM zRX=GT$?k%TxvO&@==V;F{v^BAQ^dKgmL~tw^SS)}*RGwyuQRYOHjK7xhu(p2#bm(Ne+k86l$xOmA~zUcq*>m7|e z&)JCBTK>GjmkblJot1TuuN^01+pk>(zr#U1!>1C<`0=g9GyFqR!uP)=p5gKRiulW! zBDSlYFY(=o=d}gTui+W|?VV!$tdNF@JEM<=lNvwZoU`spR~MQVOC#$ zzLCA$zJ2G5EcLyG-2N}l`?Rmf_T;N@{$Y+-l(Z$Z^)+bxQW`_z(Ge2ASu}y5AJf^MkcYe6)*ro~Kl4@o^gB zc^*EgE5C4(c%FNu_vd#Ir$@`@{9-nSUm=J%M;A`xw+%Qgf4=|365gM*R9aq>z-{8~ z^+jJ{$Q|S-uM=^0)O6xiszc6cl?eh`smTfXtd$5wQ2(3wEU@p@%LAQWTUfO+W_wgjAKlCiHWPW~k4w1f*&@$#-Ztkr>bqlfN^o5LEh5u@BN;6|uB=Zwg+p|_rDfxF1_g{p$Wx)0)<+-c&1!aK#`n$N66--5v3 zV*FNlTHho+TAYXVZ|9rbeJ9QpAxrv64wj1ZaNn-GC8k|Pp6B4GNNbMw4R$?PzZ z=S=tWl9SZ0*T7-ikZTglB_hw#Uza5o%S4`A9LbPq<%>M~`VD0E<%>N3W9KKSrSrZG z|MqX5k1lfOu1mDo6D^&g_<31%eu56$rX|I7^E;?w({f$7Ty@$ zURN?`ZDV$a6V)25ewn-p|DoY|Ly?PQE!D>xKEKl*UQ$2smIfQg{*m0^OO>x|2Mk>}W!0`pQ3_a-F<$;`&tBG0Q% z1u@g8pS0ooPuEg1dI2KOr~Iv%59>vq?_XQPl&uwccKtJ+saJ_SPf3Yla;!z3^=G9> zmQW4r|MMI_eJO`yT5MHo(!lLvsnQ*(!~W8yJkl{!lOMZu*iYr|X!lqy>71s+YIUVP zz%Dl=1AQB@DZTxmux!C}&iRSg^xf{1O=NzDztG@&XEre14JtJJw}|s(=FctG{9Rr0 zd^hOBY4E|47{>Iy$aAYHIn1@+BG2{DN|{AZlQs7YeqX~JUn9oMdJ7xD-Y80Q{bG|2 z7_>p;`Ec`os2Cyg{A$k_+#?^(hG(>Nn}B-yZv(#fZ76m;6~}OFQhV50i#)scc)~oJ zEb=^S#R=wIh{$u3au4Qdw8-lg#|Lzwz(!tbcSM$2`|!4^iJmjZbi4i~c%n`Zrg^_uDGT8mz-UKTG=KJ6}m! zjnQF8)_9>{>|myf_S!>B4#4Qra;A>^g;(^q(AJa5411~J*|m8z6ICzrtbUrqcn`R& z;aqa4oH_A9Ld+3)W2Lq{n{eWA;#lS_is+)^0eoS z*1vm`LbV(7CtBp${!>S0VUEbNcJ~^|B3F^;g+W!4y`&4*@R`#(ot3P;AoBdcBbza6 zBJwP;4wMAb8TW>J{^mL0(P!0xOImF6w$8ZX5NgusqBh&~l`EthE=r~y)@EmflGkEr ze`fDCZMG+!7dv);1LKmR&E{=7fPd~DWY(qq*6^I;oyzQRtk&>+Zb&gR?ZIsgeqa8a zDS9vRyz7h>XiKj74$f~{;oX274Q?{c0Fh5bo?H13LbZp;b3oVxoGll5{%6%R==+L1 zC#26u`)eZ4uSTvxM5@U1N=Hk4Bn`2KXSC$^!=$}9Z`kNiUDRFVd3kT@6&@gt;jHO% zVVfm#`~6A|^Ln6&J)_%kyt9|)bNp=gbDnF&__=S3VwKZ9k>|PRn-<=DCi2{MULsTR zQJgDUZ`>*g9{9gJ-)16J6K?#%XwqY?zqv|M>h=dm3aA$=s|7Qu^fv~vq*tr6luzf}H}n~RgTF3oc(#EN zY!0e5_?pig7~VOn;XJneW}F`;^1SJl6UqlCYrf~%*M2A_@4SZRx^nC&7~KdB&J9Y$ z=?UWAB*{M=hEg$>`w*Llx$ng>ti4gdv3}y(H{YcQn*?zTPhXgU8H>bx(If|ZJg*RW zJ~Z+?v(!(-eWThIE~UC$!`~fzzd7eQNF2{+O0!iKkHqoZd}RyO;eYiC`W*;lp3ph< zhWp!SPn4L4|1ZxE?u43bIQJZ$Tgi*fr8%>4)Jt4wLi+00b}^ggy`bJA^4m*JU|f1W zCyfr$`@VRSQPw_%8|7KPJkY|J7EiHW>5IaW&bS=@1W%|geCW&wY*trjc%GLq9XSt* zHTYx5D$<$eG&~>?#5y2eI{Q>`p!zHL@XK;qxt^Jdu3ru zoES4-J;;-`kT{0*6H0JlusBzAj;cVRuE=w%9}h5Ko;Zd>%b%h9dy(57jyG_Nyb>BX z`JEj`o+~1r(L@VzEB?j$XHEM4Ta%6J)PgI8$n)-%xvK5&M4nw9w^ptCBhDM$2FaOy z#UjsU=qdR@{h|$@|Mz%4TNE$(rhN;qN$<;~l3|!56=)aef@T)M%$EsVl1`!XE%^~aTk zTd)rk!7=hvVDH9jc)nc5!NxvHgKZ99 z!^1w|8ti$x3N22AXr5){fS0(gCC(KO%RgW{d1Ev@IhtrB@2Y>=bUZY0hdZ_l?< zeQYMq8_mN^nWmRTo^OwAEU6;x>W0t!o976(uFT#^moS4g1U6RgWrlw(MoB9d%-)&C zSi}`$qMs|0-alm$vM#}|pAx$^w8T8`i+D=?-W%cuBY9*I_MV`#VO?jy{`7gwIP8t; zf(`g(aSm?^eX+yA8L#LaHdyEnf6}vTMCURZIKPx0iAJ?&G+1ZxDLB`pXs|(rn)(ip zYdF_o%5h*pqz0e){Sfj2bZ&+IZKvaJvAQ%^gYSH-!;7`zzR$c$n;lB}Fb&Umps60a ziu^GfaK@FUY_nvM!*iD#u@nC7Afd?e>Wp(HA4&W0|MUF)_d4dRfnehi0xmz6MzACE!vRamyp1D4Yk zBDJglpIU6f>_83Y>cM*K z?QQ-VykT53w%uKkXXX4B?2UMl!>nyhS)*U#x>ow?I_{1a`D{B-isvTcJuP>hk$4N@ z_0_4`oa&6obCzG0N?$7SygI6*>eEPZJVzY%mE5Tk$Mf~h7A6sA|CeW3t3aluTLG4u zDG+opis7HBaN{Ov8ReHSW$if>PIbYhd0Kc{sKP&V9%qcHA$g>!;3y&e`froS8>bLV zl{?3*6|XpGc2<>4}o?a%>7;M6t`=Y0GzvnCNw24vzj z_0L<{=irZDiUxPHyo7Ikh-bQ9alHZuNc*S(-}?R(-fhD)_|dfY`13wkgR>ueM`e7V z2FGvFW=G_b?kL@VHM23>f_l0d@N8qMC%>ofL3r@`Mr@b9UZ^JAJNz1Ss1Epo@ZnKY z&~KYJo)9k9J0rRGlQcXCKN_ILm5>H$!}v6No})TO=e-*6!ixT?8KmXbfIr{1D11rh zY#Ols?$Z40?*Gg4=*!2La*KR0;p7)n6vW7j3el&pBVvlunHJ4eFu3cC;HbOIq8o)6 zz0MWmXXxOBv=9$!=xmNjSL~D*AkdRMlafcF+%X@MCz8+67E>hB843``g84d3{hEu9 zD@mL93u*m(NYl2-M(=m3Q!*dSgG(_1W+4ql@hU4PNK-2&CYz!EL%$ zp{<-el<1zqp(o&yBx1wOhDeI>*8E+US^Fh>JJ8ssdlt!Fs$Rb)KUKmuy0NPMTdBW} zaOp^GRS5CifCnWcsJuxZt^s3CJL7G1&aVOgJwHqTBr)?{bFpx^9Nv~*O#h|@IC`42 zLl+)q?r$r=)K#QuHaUZFnN)!J-Cbe1^*U31B_DZow!Np(7iNKBKAKC&I|nUbKPC^~ ztH~$kWe+G8l|BCRS zM)M`pT8j8ulWf)LhaULVaF5p(RqP@qeiKeuIJFb()At{ z%{)Ari)pLfu&PH66E`3isqd9opnaV=vN8uf4|&iT|F?`J@GR*gdBIoO7!m(uWAZ*9 z>f3LJDn&LNst@4awm#Swm!;w4+Rm}qGA>PnXMLXrNou@?pIaLj!)RTUhM(+3o3Np4 zxQ3qrWB21SPu`*QEF(!zaQnhTnrF|9p!aGu#Ts<|)h%x*8+v2uU7k0S&UU-|K!aOqmz@XGurX3G-{sn0Pv)oqB|{bn;g-1I}fmM^p02li4$Ec4Q;KpFG?zNhaR5Jb(#Bm5gE88R(I& z*;(NuGdnI#!`tSYx{!BH(C{{BYCCMrkJ5~dZ`s|^bxXL0w=wGn;r@>h4R0}DMkAE! zCJnsJRTyCe^%XYoc0EK23H3HNC459W19#~RcLQ%*%%#})i8Rs)f3@rg`4=y=BWyn? zfH_27ZJh`&eAz`(L;h?AgfA;tRW#MDx)Zj#`=#(kHND4#>#H0JEU8zn58<@|LEN(8 z4(LmGy}UCgJd|S~;lFt{wk%^t^f(QjjpQ$oyNF`B46KPE&(VO{W}q7h^8DFZ7bT~WKS8S^tQ14T`gxRTY0i5Q!K3-;u7w`?G@Iw~DnZOAWm zmN64!n2rn@H``O^GfS@0d7s}@H-EF8`6uEurUv;TY@j<+*!(24>AQ{A4P{FF63~cn zn&Wpb~CYdAdHyNGdJ7pmbfz4uL~zU+{O!=}R?GZwc=^Njv&#r-$T zwGn=rF}C&U7smY_Y1Gs8M_d14jt=!k7s5>{&oW=gU#x+{g1tkSt)`@fPS`$Zs)_Mx z(myAx9yCL>ZLkN16Yg%osu~}3!zjWNElpHaL&&p~aJ%yrTu(ZmI-YR1trs|3(&#cG z{5Q`wnua?Q73lByT9VuQBnn8c)ulW{lJGJOzM0Ml+c{s7 zOJ~r0y11g?NpH!sUMJCF8~NnTX(1^qN<&-PryH(sCaG9M`wlvPz36ji$*rHM*hux< zu*%Vr9$Be$F3lS$9!n%6l2S29`vA^|x=R{2PJ?L|I_qSgAh|X=QNv+%VTt60IvUOB zJHHJ4Br%zTKRe_K^J0>3Z499!&X!AkCNz_%VvH936m;bbZJCsZ2jQYuuIa zq6-U|Kka-qe4=_bvz*3l!#Hervja1Uaz}#*Cl^kWJa6l*;V><&nX2bk(oLc3JueW9Sewc{BLMQmOlNK&DOTq+4>c>0N zQ}s@nggYs&STf5>bzpN6WEE~O`xBXn%Yt8PBfw!W$w);0;#a}JQl!DZF6$BCLT8Qo8(p3RJk80+< znbpxMI=HTR$A9(rQ}sF$%6TsFvE2_ATM>QGZnGq3$pzT-m2T_m0jm z%_BU@)rPZr?1;sLTOXRO&KP2kC4_%ugs2k_*<%&qzj;2r^*6J1dL+&V+2eW}DI<&_ z9a_?SU_%c|tVTz}>ahZgTg)w}S4Y9xhcu1ftx%2L7L6X%!>8WNscyX>4X6S-(;B12 zxp$1gHqsV|;0?Kf{bI0*ykNsZ$8lvHVz8ZbDML?~a^~7GsF#vAqS10Ls96kZi#rWZSb$RB21%xG+W^x5i6ax`%+RceGDRaSE!fV|MxJ*;hM5pz$|eP29q9~oIcLDRh6f?-lQVYZvs~80 zAS_BFZQElTxbAI&F~`ys%NM$E>rH}THqH${9Q`?!buc`rA7VwLaL)I4FvhJRef+98 z?*97_^dIGkC*xANrzVHdyp(i7e`aule2zdtwY}K7vmCE=1pVk)8sE?3HVg{Zy!&07 z=5vqh12l7~Ff5l#AWg)vbkE%W8QiG_RF@!}*C&BnN*cpc39qUR;o6_~*1Y2-86I4R zd0v_^IrE@1S2)K*!{_N9KHRx7I`>NV^RG^D;a$i#hp^%APu!&(Ijjf=;)wd>c54mR ziFv1HzU+sbuK&&RwN;a_?79oKUbchVt^nrROwtj_CO^pEpCn6Ok+%i;WsGU^*rbX) zM!U|FL!HuE)jf&4M8}bT=*|pPm;uF>q$#%ct{zuHy0Uzc18luUaayFYP$zf9-qa=B zA8k)W^>>28R>rlP;fV`sC+s=t#|0#K;+MBGvR57B45oSE+zuCP@})B}bau^nn=2d_ zWpN|?$s?ZnqZ;LLTsy4;I7&T*vc;D;5)MYf7SbqaTFO=bqJ8{9ntumh=j^`)U;;g3 z&ahH$@*RK8JkY_Qh}%8bPcsh~c;|4I{=S$?_jn+Y%W3PQ8LPEV!nwM(lp~<)w*)%r zcEKGx3D1j&<2DX*gEe7;%|+bZ3VII0x~H3}r!g|P5;k;=RbMRF4>!Whf?D;Eg?r&c z_-~%$y3a)TO7UCcst0=d6(`?ml@yH*k1vl$N>~X_f>M{_S*By=DA993s5&Nu|2guU!Zu{5Q`> z_Rhd?BU|((uk`!#BAHT7fkV^nQL?BD^MXFJ!xQq}`WY;#TRZb7|(jA>Plx~4Azi-;}m_)n)a|SE-Ii@7;xji)4ns9&NF@(!nM;OU1#b$kq$TF zCJ%5&qL~XE!JPs00;&*xn9 zT@gU|{Z>1!`~aO3Bz$gOJol&67SRpYhwfLOA#w)?b$t<%SMhA*Vx0jGF3A2wIkk{%FyTaddVLjC%8VA!OFFT zxRVm@_80+VPeLJI7ZEC#`Z9<-ryR%h7tsnY-_QJtWyy{mq>6QQNPGPWxYRInuSOT<@?bmi}o`Lj{E(2JGSY0qHVk9Di_&$I91sEhv$C9=6KS| z7W4Ppp^1Jxb7Tc+p$)P}#+?DoVA6dVm2Z#s+mB0H@1`-iMuxMmcS`CSyJE4H9QRs| zlgyv(iW$V)$xlrsW$vyx5lK2Tb4pD*(EHty@`EvvhfNmK_>8$iex`xuCVlCwz^%)a zXEAwc{IHnxEUU<~xW19Gt{vsUSo)32O$y4%OMP2=@?vQ5t6+Wtd9LL;VtJd{g>9O8 z!MwK%9;^rFlXT|J)kEUmn!K54KQp9Cms#uUj-})Uvbg;QW`d(D2J^lc zb~=OU9^`o{@^l>6))osD6#xAf5uL7c1V^ZR- z|M2{I=X{J=Mmi9tVNP57dPHaeKP;|XC&=t}&U?1p~`57ke@Z&T7zBizhJi~V`W z0s0CbH2Pq~_M>;Y3*oeR9_-Cp8w?~o{Anh8On*PdH{h4Or9pkIapTu<7goIcEa`H1;7O)vp$kVf*18I$3C!aLR zuO)w!WADymxJ7vmX19Vg*V18eNr_=E73l0!ghdoPcW&l@=07X3q@O#|dN`os?t41F ze#Ign76kj`-^-7cP(&)QFa%$! z3nd0xD4>e!#rE}3Vo3q%=$4OV<(W$CA)WJzD>K+z_mp@?dYI3KtYA0ky2G7%9j0&H z#ZI9;SCc*t@bhtDedoH9o`eGmoP62sygN40_+RlYgf*ox|C!GC?|mH2I$L-liZp*h zx1_QI61FoGsclbD6VB1t4z+|dFIqs=oWuz-pK^$I|zh;Xj`r=sw zw*Soz9OR9Ugg1_BB5irm1AhpAuWv2goJP4Z;%)lou2KbQS9B+A+PIJO)_NC=B3a{-Hsr=rwxo}*kdNes)en|&zyKp z71GHM#syDK_dg{T81T=xtiSz94NRv*)B2^s<=kH_#nnV+p?mC9DN>=`#NOuOm|gJK=274fNBEQ{S1=_2dNDTu>YwjHF zm3Fp~MkRSrKY}x9{&$tyB$L1VdRM%APQI>ty|8Vf5;jf9SDN(Bn^OMP!DpOwWFK!F zr*|V@1fFin4!SR!}09EW=d3&J{TL9%`T>Kelu1<`gj-F7mJnfs#G9bc84w5OEKFc z@^n94%{HSkZ&0W}@Sr-jJVJ@*#}w$Yq_I?yMKSUL1xA{+kQ(1m;r z#3@j;x|_7`T6a{F-lLsWAL&inpXQMUOWl|uQmb{I$ciQH?vx4A{)L`29!Q75X^J!} z)f20Rx#R4D+0q}IJ+YH|2n?f^N`1F^U^nTjB&KbY&Zn5MCG|4Cf3{t^Kg1P#D89TN zyIZOxf7_%7u9&*pUiyx-`hHOzYWVb{Quk-p2w(PJpT~&iDWs!KW1O|e%j`2KxcsbAgjYMKIGu4?vZ4<+*K6ma$^V;xLsuAuR0x8xx^ zf_UzITY=xx-?FyhO1QqI_0;G)JBG${s~^PqB^~KwTBp=KNq2XKzH}eu0@qlO?(xPp z((zN>vCM_`m7NWwrWWoP5$}M+U;U)dY~As4f+I#okCL7l;sGwt87&W+NcAE-FtrE8 zpdV&R{Zl+JtQDQ(Te3jvzMJO%i*9KDexPEdS zt7s4K$-+k3@x3F)*Eo>QjI;Fp6Y^gjY==1aaOn&3qhBleuMcm6%SjZsvB4P=@_seW zMthnMejcZoxos_6+BhIkm%Nk5^kYqDI--894Bd~;W$XL9;mkuB+>h>L3mx3hmeyUb z-EOQUoka>Sqd26=A=aB>5~Ilq>^l_2E}5c4nS%mu3)5J^UWvuDAHP1nfK|pT(Y2cc zBxzUJ-V~o$k^Z?sQ5C!6DUDUCoeewphSmP2#Iqd^aNqKWHPLcM1Ys|arc#NHJECWk z2JhFl(m8}PM>!z$RyV1SwmWW(c0kra@?Ue znsmtwW=QQw=VpP7{9l9SN;gw)?9O+jQD(eMI`J*dU0-RPRc(+SC~-yp9A{j}*)AQS z=R#Us^qDL7Nqbq-dozT*P!kl=bsqL8U1p7#h+ydf@}r+O;lDh)Y)r>BxedA-k*-=v z7P`shco<=i8m;$8G;zSwpY}NQs0X{g4fQLLu3fIa8Ed=71#Q!1_!zOB{kqqUen&al z9d%}Vog+Q$1Uaq;c(P9@M`1*3;>y?nHh2~FAOz97zbuN~<4bjbd*r8iErV@L+8)I% zX@1^*fz={!^pFk?Sn70}Rh*)Ept%DE9jam5XH(orG5t8pAMDTqB^J_req38m`m<08 z;Ujt0SGJP2r#;HuI|_`e>@3|u_q3w@`#r7RQUmg~%Sxo$kkt@r5Pjw+`VMW@j+5SR zO?r6b7Z4dQkq(~Yj$V#V(5{#+eYDse>=I{;E3%M2idG_ihcjv|7fb7plOMgEBmC-C zO9d_J`185<7U+?Z=+uKGHX9_d)Oae|f(1it2KwZP0a+ zJ#HnWBbaL9-$U(TTlx%r%^k4!qdlsfIA0^hY$*eBb_ zE2&h0<`h@>?N*|W#<_OCt88x@C2pTr;9KmA%E7lzt~oU z<7j@qXr(93lv502N!+@%lFpZrH~nnV;jHTtB`Q5aqGAy|l;lF?y^Oo!c^{7%#l#K=w+3BU0VSNBHtob~oia zcV3a9;=~Hpn0l9r$H)RcvBL@9RML7drI0;Dze_2_DjOGGWw#Df!f&1eX3OuhhNK53>!+al^;>rG z3MH<-kz?QYpDa)7=2^-GC(hB81{Wz|PkF74_06T%Te#zbGhv!r2CsI<)<8KN`gfLQ zU8H=}Km{%j?VzX{SlG>_JK*>ury|H*+z?$f4o)K~eh}Y#r)|?ZagVo7swW$aKW#edJL-zaRU& zw-fAhWY~RYJloWld@mczvH7=@6&^Zc>pIGH^jX9XTi{B5P;#`ca%8RYsCTSXPMXVy z*j+T9W8TZLbXP2EnW2P74dD-`*`0rs=tX;x7eTp{S1;MgR^*KkOIqt?|FDtNua!(%z9%o$vPb^$fIt1M z9l}pGmSQ$@dj)ETYDtI9pr6HLfP*MFt2y84hqd}b?6Xsj0iR&Q6S4~dk!{(9bl zH3)Xc5f_^447}NnD?Fe>@nOE!A@+PLPuL!kBWZOwo52$%KKq-+vNzXxVKwcEI%g%b z_o#k8iTKx(onkBQQSa6h;xIpxomN6#>UDA?ughgUPI=)>7X^MUDrEC~z0i;5t|>d! zY&O*g-WMxy)3ZQb#VW6#oMX!=Uzc;2{6`Fm*?YH@nA_I@(~NJiaipz&wN{42 z=8st`ioss{*g>Kw4bmycHXP_8R|-(ffD8vWN-x+sOm=>_EL zBC$t!dL@>x3_&dEf*o%B6@@Ru@%|}!)_8n@gL5c8k0B3n<6k&+D2V)9$tNhWG3#X? z2sTTG@o6nsy&B3revx5#bVv5fDSs3b&&{s%VDFJe+FNru9&H}Pt|#AzPEgv{iEWtP6&vBpk&Q$K>A#LytCx(IJ}pNPa}&t4%OE zT$CfLJ|2&a58?bJ8j}N3F=R;qPSV`6F(dme?$7W+pFeVhbi9aBCA9DEL*6cz&*K(xTeVVwR?9gAeDlJ` zQwr3y&Vge~$_;)}p!Cg2CN6DL&; zL)3Td!ceG98k@oW)xo1e(O-w+wDjKU@0LMmq^rQevpv)Wx`C+rDMxvZq58o`f9SuH zW6AAqq$}tLj^>SmMuzHGXJ1&-IA0ptU2Q=A9gnDXAj#~j9zwN%!~i)KRgF|<=y_p~ zQjQ4$)6@&vds0o3-meZD)YF=J;L8~~-Z$T)9!cx+TSqy9ZD*-(jdek<<+OjR=%yY? zzwMwJJES*z%zc0@+Pm2zZSY8L`@((LDYe0r5&dxC?hcIB|8Jf@dVC!7+~y#HddYC6 zV2HZN|0uT3m*Mopc(rMHJdV&FaOcz)>Z#vO;#nSPZl7(<=l3{^_B4i_PY>afW~va@ zN)8vv6uz0^Ie1T&!_;Lu-!8QP25ZSP=&^*i9h8B4R5z)wn#gzhoQ#&9G=@FK^5q-i zu$KB%&&?mj8#a$bX{a3A=Z)ZJ#D_sib9L_W;r#D!A^7Mfr#;Sa-s|BZ^rJba{pboAI4Y=?rV0 zEtYkc@*@Vy(dMBIW(7>*=YO$5yS6suQ!lf2^_e*Kf7$q@9ou=YQwxHZ6W5 zX+}MPAv6yE+&`*5ZxMrDv<4mP*@X9eb^@DDlV8}IiTpS6eSUL8jtd?e`J;JxI7Rbe zqaPmp#>qTPJ17uad6<8>`~r?nQXu(hG(R}|94=68=I7NIURqm#3ew#jLz>S8IT`Tw zqg<1B2!F=w1dM1OanwGL@AM!J%}!I@Fx#Jhy)F{A`3gKX^y8ywu3>54A*3AOSJjgr zO*!qsSNZWRE*!%8C*;T1?jUce9RL%WZ;ze`rtsyI2kS|5@{Eni z`~}j?Xwp#zc6kDCPV>_dEsDpw#qpaHY;otUEmp3N6yLsa<1d?@N8)`2`tFP3jb~j( zBIPF?cjfRsdzHeyme!Xk#k_N2DVkGm(YJ4%wO6S zhAdE@v41k}mL3A{Xh+nxPT@zpAA%2gQhO{s$)7!U5dZ9ULX5>3{@W_jXH_}jgqx+`?}EiC)yhX zJKyHru2LPJJV3t}+~zAcIl!3mUBNpl_zlnOa8^NU#GM;_yS7#oAILD-THv3C?82*E z_W$9zTJNy>3&k7{c?C{Sn!zt0R*HbD3cP%Ch(GoG4u(@c?faxW{=>jWm`L0jPr1hr z+VUJuU&$vWxt3qP<|S-sFB~KM;k({@jO~V$TfX>~QlDMw*(gSSgRiyd+Y?5w=Nca)t%ZHxo*()0K>VM%a!;eeT{biUiwSTvy; z#-FAsyy3G5wE0BOdpdy+E(pVsyG{taf1JNQG?Z#K&PY5S&#%-E!V0R-e)yThmzf6O zM{ieH2q*dZcl_X&O1_)}&+_x!d@+>r>06-YqwBpeqn#VLe#N{E)p0sBqde03a^B#& z61RH0p>XeAJ|f2z3*VDA__s&=rSnvSUPKz~>KD9MoeYbeT_Ag1!{5!Z#sh^jY_~t= zSDoLDEE*es&l}@r{!o`@-$cK!RD0^}!>0s4#Tx?!Hg`VHpU->?H>!>HT=SWKTlX0Q zX>a@3td(H;rVjA|)F)uwRale!75(yP|GV2ju#mjNWBRQvKXeer6g@^;Z3iTO(H9b$ z-NXUnU-tYb?^baUiM0ROoAi?JQCf)YTO1JZ=qCSmXBH|W9Y}NVJa4k{B#Qpf^>NvJ z`N|~ZM>>)Z$_c)9N*wM-IDt7F&3C;TiDONuzo&N?zv*c>T2n9boC`sG()z;~`;RMj zrv~sjlY()W`Vv0hJIFs>5C~_g-@KIv@_ym|aJxxo$DBg=U8Hl;b&m&PrXJ-paITc zl)jr^aD!@nl-vI?(S~=IcxrG~fD_+%H07%4dS5RO-pE3%p_rWX=ilCO(pZ%#YqFovA*psWM3?SQ^R?I+wBFr5CKC{X>UKYiBQ!k59ZXx*kP~LzF6W!PO@x#*|J^R~e7Jz0v&S2eQ{DI(w+?AI`DNw6Km6ja!9x|+d`W*_ z4PM-04__ZG@;t462k+-4@@!_cjo*4yX;)2!Ju!`0^G$Sy#b&e6 zqNg6aAfMt=!`;G~sXAuYIpNm1KYZnlG*n%3 zMoQXi-s)x&T(n)Ws{Sr-y74&5saAKk&1L@Du4trFu6Yg3?b}*MkdKN7Y!0OGrv1ZV z*WDY^x+q?!BvkY4Uv7l)UC2AHVeExJ4&v9*d4dLI9%j;l&v@as7U0wQ8Rbm zm3o~T?s+;{#@jR}&m6*S687@XssF735Abp4OKHE`fako<<?v$Ph@zN^M9$~`uoxJD>FeHV^(3giwoqx-L7>{7}x&YmQ^ zUwaP6Us63nI!G|+nUBbHM_g@WKz=Tn_(J^;!OE6`^RAN!+313~;W~n)O){pQAz#8@ zANlh-@mOU{`Ma`5{3pafLiN7Uy-N92Z6h(y+zTfTsd#<;qnc-Lp`Xp4Oc!|`9+k## zNELbJxOjf(C6VXxMUi~xp(4*ct{mY%y%c$FcPo%@Px?p=9DZKl!G}AFJg3fb;pZ(8 zc}|-i$om`=d48KpI_I+g<+<7>hWxW$;4wH* z{93ZsSPP9F-9-wmiG@Sg2-Qhf5u>0!#?5BJ`E%#cmh#%YvnL7bBJ$xzS|MG>4Hk?p zWWq4V8G3o$gyLqWu%7y#S~O`RywN!UH)}U6VRePih4Gj*&K)P!wfxXgvB)ExJ-roA z_(P;s<#*B>AIxv^duzir{8%Iw^Z)pXJog{Z@h_}Jo_!W(@%Hf|&+DbB{Kau1&ygFB z^GyxBH2=2o`7rW>5P2Sz>CN|~ntlW4IaA#Ek#t_C0oT6?!^;k!W z8?T$k2+^TB?3rpgdL>2()70M(NV(!R#X&;A1xXwXHDDHv!7=9(X-MSMci{2Se&*JaXX+A9p%R^Xz<^YCie8$g_=p6(6x& zKUqm&9 z2FyAu`D;}o&vnu$eqd*c1?YOsZY|+%%K!2l;dh=_t$u+uIrbPmdW+VAo)E@7`-bdg zRO{D?7Jjd(f!-zZ^&TB4T$x!(+6@k9`_xTPPPv9)iY*tI>=v4Po<}X!ClaqL7oJ!Z zAj97o)}u{@tn*no@|k+oZch@n)}MmGMmHqR9wNj`Q=mgVWL=jUlJ`?08V&Hoz+bI| z?2mDHKzok`KID-dDDvECZ5`hzN#waEyM|BcF7oW4uH=>4BG0)^O88+8BG0MI3i+UY zBF`7XPVw_XM4l(dgz_76MV@a-1>fBL1zIGKx8qY*=-KNVK6jSEe5q3KU!cvV9F*bh$7tbacU|@s@!V3KEu@^# zV>2ml?BrJSsDJGF7PYtikZd)YH=an4qhy#0c8=rJwc_ zrUhKXf~iy|9_k|et~igy-cA_EZ5O&!6j1()`kcou6N=hq!`#&sW{qbGpKVXWtP%C? z9iJeK{wD?Ibbf!{rvZXTw`#(H}fx6i984WjO0%p5qW-<+(8Ju_`f`#9b3(N&Uy*?5qks`%oRQ#{)SF% zWbhv4FPOP%vj_cT=v164+?uJ&7E;f%W3%(Z=gWHR5Dz&Pce^aO-_T(_zROY3`GVj( zq7K>C)IV*WBXr2BL6dswZ+V*_l&dRomG*k;eGdzn<<}4%?ua?deS{3d3)tSz899ay zf~P?tX&6v_xpJ#;eoZ!d|8~XoxJAN&Kc~^`81XEbBAkgx#Z@}X_tRjspbklb4V?o$ z6V+Q-TYOx@k4Jb%p>T@Gb3f~5!sT%y&yn4=1d~*e=a^RS_~5f5&tbc&cqem_=Q&4; z`9Z@(o}JHU@kjTFJS+Bk^5>}j(!l@84kLN95|QVkant#-!y?b8zK8MGD0k9uPx8+0 zLh6@BHHS)kr^Rk1*FY!mMB4(7OeV;m?PK4@b1wCjK(`D{_RrX1eUvwsc-= zV!2RF`ige_Swpvz>4$BpY#?-7x>jdg1QQ zbnI+T9yh0E3)gO?V$xX;oS1Da%t=W?W6IGls2L(yMu5hBlAR6n6n$^Y`4X4zEubh-+hn?2Pjtpzvo zpy~9>9xc2QgrF~VNV6wDCeLC)o~%VRY#Qg%XF>~_li%%;W60^(g01ZzEO{!2t>T4n z>%m7%r(8N4eMfja{28qNp`6L}^MZx{EhHWzZKlR&goQc9&`u&>>6ADjYMdGdtDTWC zB~hDPLdbbbSINZxJb9&o=sTi81^9$c;$ z_VqLtQhUZ|I5DUjLLSy)EVoH86iSrhoNV%^wcz+hcWCh6`;-{(R>Hs~rI?|x$I%+45D@wV#vkml?Omq8&Zj;2HW`NOsuEn=euvQu z8QL8FChVN^2bWjM@jR_wC}!)halb{^#ehu4?K_KHsn`$C0(c(mQQs^XJnSe3K=11Fp}zycU}eyU;Wb1v6ma^+IR}F zRY_?7T8VK^R>ICd$8qcl#TY3og_pZypi4EvLdK~ zU0m-@HE%C$+bGTtU;FC{W^+Yu>py+q1DlECHv38yzhkTzOQ^OL^KVJ}rh!l8_gud5 zLUF8iSRcoCm~5xHelX0R4}~~xQ!d)^|E%4mxjuY=3%~#NHVyup=h=f=3-y~yFv->) z?@D}yanjq^L%jq>R=n^+_5$Cjju4^!Mi?6V0iUi@FSK0u+y}#NxI9CSZ8iGm3SNAK zigLCd)q3a3X1~N5>X(SH`z^fhbr)^osgLW@3t^A?GL*Cj>}^smBu?hAdIt3+KqXk$ zW?`b5JdSPBgpckg@!Z}8XR0HFK{O}4drLKP?Sn$gNym|2tVD;7&cd9Nq*Fjz7y)lK z3PY?S;QG}IuSb~+ZJfpVVZ_aGLeQgN%`-Y5=`9#F7sqgYT^nHs-BkUyVE)E)>(T! z&$EW24Mp!jYdD^bdTACpZfF6+cs#S4(z9s5KaH@mvnyDwMdoK~@!xUY;fxQ0`Ql=T z=z}@@F?WTI8kb;ISIh;9DHYVZWrCHn2dsXUBV^T`fq7HCU|;MBVKAOECSLT0$hL#R z{f-I1MqvKIO)r6Kh=qLK5Aq(b6UsZrLQPu$Z0|Wk$h=E!nAlhfeLhjnSHcYh-hgr* z7~Ne+-b6WbhJVQ9UzBr&RTJ5EmvYu^s~}%KP+!sI%0(g>NI9#`JwlbrgUB}6;v|3S%76U^+qI`qx3L25;=c6Rdj|x|b)|6S=6;xe zyiVw5Qw!+~p7Rze6*)>DfgPT`CYb3I1zEpqT62^}A1K~aSpG&WxmGE7t8%U};U)A_ux zg*^d-a27-H#Y7>rEe>tXxK{u7`WGLrd)=^}Y5%n9ti|vX22I@DoeGSPa=RM+U78@VtAGA^be8)drVz-pX^$+X$XNG&_g zYA=jSpqw}RJ|mrmQ_ii=uMscosi5G0y&Ik>jG=zx_}yqy^lvQD?x6=M$2t$iJ(G50 z7w{p@qJF(3gSYxaZQG}8s-*ZB^&###NziDqOT6cA&f)s%g8z;RxU>QD6<-|?4*pXL zhl??Ptn{|fuZ)AO199E`r(03UxGKo=cZM20j z?l66MqA)rj9zM+Qgg-)j(PR?R&sp5L`7?wCCQ5%p12V80F zabS@a&bXs?{x|1AgEWLplS=5k9_PdE4;NNFErq>2)*UC`5sppgAywZQY!0dyb-z#o zZ{4s4*~h%d?O-k3xa$n-SDO`)UKP+f2lLiSG>Xp6&x5aM&qv+A2{G$aVdFwq*lK%2 zNIH22%rM5QaJVRZe02(Ew_#prdZI8N{jewY_ZYe~On7lR5j=`K!9CYiP5d-LYM0wv<(&R|v#lMA8@Emqf2kKk?<~*~9wh-f43oiH^ zG#C*nBwsAYyt4g}GyajFn_CPL8)WOIU8J^E0OcIaVc2C^lvY;_zj5!b>s+0pmA?7# z{;CT&#(ovdU**6I4_C5=7W2{$uWL{ z{o*t5*cszGziq-pn^RaX;02%hEfCUrpM=3?Sl2VlO33{sSYhMI?n zdd|-&WYiG)Onfy)gY=eBU%g>h0Y68B+V+dgr&hLD52g6oL(CJ9J5fC?)`)$1m@>CC z*~s?aOl^ClnHQV=i!%S4bF_6|;jZ$1n0RnML;rsU)LdK@o|XjcepIjo;LktlQ;nh);P z?(j1=K$vQD5!Qb9fW7zZg+0YN(8b&fYGdXIZ9OxA>);JFHsgesqj6@viVT$d8wt%W zDexl?W4SAuLQmy0kUz{Hj=WY99@(81Kkv0+cgVnTCqzBMAcL&iN8{&hPeaJ19@K{% zT)Bo=*VEV|B4Y$eZwVLg?|(#@6z-uu#PnJgzrmjRkoI#1@>?%aAL8*?pZS9|Ulz!A z_tuB7X`K&TLSNHTI*V0L$2y?>Scj;!lbwuqadaQnP92J52Y1B%8>b+M8yC$sNH8}U z_1~O3HVhWbd%T8i0_HLuNEVFBpTI}-53%V#1pUZ6&~<_$$F)n*f_t@a^(UU8^lT6c zd@H~epKCw1dI)Y#0MexVkt*hpph4^1M6V}ZKhGu^zPu$M|H{TD+mpmYezUh$D z2m6xT$|Jl(ipXkyXdnssbW+q4aCdy(w|G%EyK0iMhkz2c>*|4u90OZK+RYo=V?DPX|)NwX**oIiFdBL6?n;Jt| z7t8^Ey9aAF*T%5@(YI|!9XTeOO&g9myu0yy@XR?@`4>K;Q2)(Y{>@Tw>+>5%|JV;O zEk}4c?jv+T-dUu5iH+hF9_#I!6W}RO#Fzsf9vdpqe1mx z;(|5yqoqRkzO^u?y%(&tA1FN3sf1m{Uf_1UtMIz54C2GQLD}*vx$i5$JKX0SdGtQ{ z-cSHp^Ds9$@(Nin@*=2Wy>Y*hxn$|!92kfBvIZEtE-B9hLn*E=Had~y!m}dJg>ikz z8`V>y-Z=9TzpjbyX+-MI;>`wAAEG=yj9Yzy`f9!NtC@>Ml=Gv(ETqn&KBR118r+={ z0w63L+zV4itRDWAD$yyO}lV*jGrG2ME%C+9Ghg|3!%ui-;X@@KJN{N zsAXR(*(=}O;U%)Y^reg)G9Pod{~zahDiUGmMP=63$Qj-i76_#OA4tQsUc%EfVbO|D z5V;fUy&t*>)02UAor|-7(QchjSh6EN1i~leJYuyYd-k3` zM5ETo$YR$RVGkeFyG<%tbuV9NMdnfSYuMo(WDtZpFZnv#6MJY(MD3kZ%l;Vc3gyWE zZ+kwNIZ4R6*oD0@70;^dl7*ZlN~{&0Np+Ph7xo9WK{B4D&VSfnI6Sr$bTr(-Nu`~z zyrCHimwAB8nOZW_tq~?wVE)<6Y@&zfCQUJ3FwriCtZc4@!PC8gZT2UNtSVqK?sMLd z?IK+wN?^ey8H`J@C1-!gVPz23QQFQRLVg~!`1)dRfeB>wKj-1;Vt>dCHYZ08Wx>Xk6nv}HO7>)Z9^>#m`*tl(Nbd% zzB&M}&{qtbX~M2~69Pw2pZsRVe#Y9(fvEHU3}d}5u%;0C54<&s?X=GyE+gl7rEzTW zDXeEf?YU?I>#B+8z{qx2oE7_FCHB!n-S(Mb+a6+GA?m+5uf8=|crH<6Rrfl>+&B<^ z_EKiI=eoenQSAiD^xv@TC+^jsA>?VqN4PiJ9c@ZGd9S?4PqoLe5Oep1 zxRqp}{vCL81lP_7CXtco&%Idey;f>LR;yQlPK!6ZGww&0NlPFj7VF5?Ymh0yau~D< zYc;2IA@6MRVBB0^SoXagS^oiZ`Skt4r^g4ri!=)Yo&-YZ;w}81D9ZWGkUWm$QO=Xw zUUSPGDd%B%7X12Sl(Ui7T7L8d%DMKZCm*zya(+12iyw%yfd=ApZJ5?B{(wp-Tt>F< z+pXhOCk4TD)UB!u`0%MX6B{{ysA6~*y-Nd@6o-+gghcka-sL*$g659pO0as^TAm28&K@{e!w!}D+jRvi- z9pkj}PUA@J!&i`teIk6{YZ2F{PeB8pcL|sN@IPMNhm|T`;HmeR?>4ppvM?8|@oG6g zt-c1=Cf<R& zUE_HDupFrL#hS^r$9VmpnWC?_t*u68Z>Rown+{9V6O+X2e>~Qc?;ELqHnwyp_wOCW z9*tPLn&?6_8X}<$&kc=7?;}=O;gEI4A96EylLc!+Apq;=pMTpyI^-+*9QecNS=)%t zi~v~B*B_v6Bk`^DgG)X9LEdf^X}=2NJ?uTSCv*upfPT*CE9NXMpHDVV#J;wzeh|(6 zLvn9n9o}m{u>UcIbe@BC4=vbBLHv*IBR#88CW|ksvZnr+Q|Ft&cWLg#1}}7nu;UJV zZcTf3;doEbNSw~^tNRW|(IUamT@$8{rS%2QGqz*P=uKMuG0sKarO6Z^!0Q#eh`GgCl&=LRcA9{`EpQ-R7 zx2n=;-pt{ms1wzG@w54JqTUrTo{S$%eU_}g+wQr}RBFbaUZ4RTU~d!(yw_``ftffP6UgD1vz zI7yLgJc7OZu~yc)C683$te(l3H`8?YJeiC2U%#XL(RQ;4gE48BgXqUAGKuF}tiucR zhiAP~i3-+jUk&pAAI_4M>inh>O_nV7fQPyn+@dGl*xhq*AMev)?oyKq+wAELw{0W2 zhkhMcd#n!(*$~Td>)XIm8*84oBy&Q_2RP=6Gt=#IxXXpFV9s~U+qNQ{iT_imjS7Ur zr%d^KmUl%~%ibR3W0%y3`sZ?ez300!d6IoW)b2}$kUE^lq*x;u zTCXH;@@V|Lg9|3sYBYY1JDEhrev1?D`P1nFdGAU0lync|lK?LoKOd;LOwQh*@w5L3 z$S=o>b@N3bTY6vL4yot+a+;pJUg*d?Xh3UwsV}>^Y-j?LyQNU z&`sX`Nn!G`-4m+Z!7i`YI%snpDU}a~$!R$gRXL+O>D_`#e zvo*6hcyRBlkWGjMICu+Dfz5TIa}=B zMSfs!XvOb(S{OzW$5YPA70EAL&Sxx3_gDP4D47qpPUSZ`RrJqVVnbP!^(-gf0oj4?)Z6%tH+Agd4N zdTs3_7~b}R=Y50VOi4!}71zZ6y@SAQV;r#{`TzFMo1ba$b0j)!OF8zC`pI$e z7MkqKEbMFiCWkvMbZ2YM`he2ULaw?&m0i{72b&JpaG}8}tp0Yat5Nad=c@e{KYQ%b zdwlsnEux;dK%Lmv+!uA%Rp!Lmq*m0H$AC=ox+3ah0dq*Nnbaqn@3$r1eJ_dE9d);m z2WKef!JS-4dJg40z%Y;`=~2J2_GmQucKNt?e;7$8jfvE6JikGRYX|B#?5*lZ*llXh zAqO6iA;#2i%pLTIEXTgcioe$bctrMgrt5CEl16fO7hQMHJkmt!Eq%p%G}6BjyCZb3 zLz2>77==9n6hHe+`5P%bLHCzjHh&>sF_%+u{cchX(K+HI>c2U^*U{h~H)^wv9-dIW zy@-2tL6Z%adt<%jWzJZ&C#(O(2O`#8;pR4WWh1@)VQum!&VRfrE5+B;d2^aSISP5Z`hFF?bIhv{yLw8?vsnxS8ZEK3J=j| z-{q)H38X~Z~XnW zxPGBA##Wg<8IVY0x!@st$b-|=Z_E`u$?03vZ}e6VB*VK=&Oc8cBE1$+&R5Ehk*QCq z-zZBxO(uS)dm2yno+Aavg2mrk8J$hoX1Xt`SDjDZ?x3982A7g@%wJHjs+6L}JU)dU z^SF?tV$7`2C!c4LBP|}H4)wY~f&(dMwSmzj$nC$J$M)>W>s-=i{@HE`mAEU+Q z;oht6*J3Vhye6B+V-JPA2CnLtI{R4{p9|CX@_QOPiJY??O8Kc-pTys_b9Xy3%!xkx z3bpjehS;0p^^{3N$%0JkljRv!q>`gP`BdL&MBj$`mfI zOv>@xQ1Q7wmM$h$#V195?b+!(!?0?dhP}%^4gjDXRCUD(i%fK-@Fw; zZuO-8Il3v9I6R@8Q#za^N!UAH@%p{Srx1A?<*Yp+jrer@*N0dolc(b-=TXJ6WXuD~ znOGknOY11-hj|es!=7^9fqBtMlm5%uKCe4(@LZcU#JZU223I%_8*SEaD6T2CmT@O0 zYO!ssAN=Tik6SrGiyr~mz613Y-+D-}_J{h4Ei)&P zFFk22_iXMAa;q1OnZpVflC@(g=Y|D#BykVr-0jhBvb~gY-rz1H(W@xu?>~dcUTf+% z416O<@H@(R@tebBjSsc$Qn!PIv7(%#I9~#tG+-8Q7^*Jf@XAh4g6O^d0;P;Lrx8GA=VSFFRc9!lr z|B9MMMrP8r$xodH#A6KQ?C80Mj3}d=C**7=XCo-*OZm>^VhZJ~)KNz62hr!Cexnz; z`7COT}y6i?7>E9N9`b=g~axS!U)l*`rCV^_KRLwt@Q?-H*evK`^!$oJmT zPSj~vj`2eez7RPp*%k817St#E=iTOOjLXH}wTk)4KfwKG#d~;vr!xubMdONLCF*3v z`fTy~%@SQQJwHv&~yLOJ)Gxq|FGMLFNzyMfqf(S82xubW7aHuWKs)K-vZm~*Ol zpV6ajh^jy3tlMZ#obWtHaXlK>aw-lJRwP!aN`~H*qdGO9RDrh9(~hi4~)Uyzc&4NkKa8+wnf&9_$hbVM7H7o z`11KpPeq+xc#OBIsuSPOZlw!+YOgX;AKy~XpSP!Lz2@Q<{1=Ye@b7+YyzWM7!#lM) zkr8_Ic~`%uJ4uvL8}5U#_q!+>R}_XBkXQ@qEACA)AcZ}cy&;X6;IoQ)bQ`K(=(^F;S;{MhLI;hrDI7@E9Km2uPHHarJTQ?=uL)HQqCth6_V;hInRrI!>5j> zoL6+a!hbnIIoCE8@OpTTs`z`one4~E-@B9k?L^RYA8FGhC4QDlZ#KTt6Fl0T=fZvZ zvcGWsqdhH)o9H-@^~d*cQe>WMUFzPWucf9vCWk?rlG$$aC1JEGoZx1QJNLgR|Z z_ho$iPin(aW+(Y`{izMd6zA|=3~4Ok^{Ip>zBHE5SaO>WF`@f!-)Fz(dmf^Gct+A6 z{+loL!xvgQ6QyS{;`={RrB1qgQybpAN{@7$NPY6Qmi}a$A>}L#Fd@zAl(W$sb5fv1 z<7exu7G%M28sp8VHY49BP+zTDYecr1P+xs)sXmFteHsNf-&Z|J`gzKEp{EiV=1MuM zJ3Qrc9#GDUqD%Q%*PX=sGxCn`lBEv+;e4pq8*a`8ZMOEHC*03G!WCrnVS5GR%$qTx z+(K!8wg>jXJ21A9yJ}B4uW)J4w|_!8&r{OkPn%HA4KAj9=EAGu>tFMc@<}i0^KMkd zUjCF1joA`Z{CUeM)P~3JImF-GNMngp`p0?i6VyML#hv5LJMexQc=u5GNJ3iwY6FN<)zd=>)trTOQR^~vJG?i zftaVM_`UH@40&DnuYYzoy}`M@>c!eE^MtVHPTUbgJ+^w057_iy$jx7Bz^?8c2&Ls` zxfP4mM86Tg^)go!@Ika;-$m72;rY9w{>SJU7k}-Vs2@)J%{5P_YrUtkuDrqZ^Wu9r zGH)cWWScJPgVTUlUrl{Q`j6SX%B~aQ^+$25_!|?bA70|KgEu-)IX{`~#pfTPoFm)= z`QT#8`Idb+Z##i<_8xbbABB7Piq9(@afC1FK{>C~Im}nCrJTLiAK*P+QoCKZDuAEy z@3U{!K2JWa_+QS^4!jh5M2N3rv4WTUn@1|xPU1&9QqHsI>+=y&DChQ@ zJMu}wLGgFle(A)!?V^5o@+@V3St#|xEqEPdrnHo z=K4RNoO@1==PnMSoOiws;l9tL_WZVfD|aM-a%N_Y;yMkYoU`6Pls9dsYz-~GS+(%) z;_v#Kvy$IwPT##dn_2CFHN|?|%TNtAH(3Vtb)5X4YAtp`raxGfsc;Vj%GtyFfqX6d zS>%~=>Abvk_ybXYC=Hk2Hmwx((#>n+!NI)vyHd^#mdC%!6?O0DFAE3RoD+5P#3*@d z3+1dfWUE}rqMXgXkCLZqB#8IyouVW+#k^1jpWrLWh3B?V&I^<~6}k?foRgn9PE;FA zIrlsnYUQ0yZFuJC&XU<>l&y_?zC^%zaf;WuJ@KIAk~QVroR%wDU`{z_$Ja@w)>Fe{07r}4(Or<#&& z_B7sz`F2>MGowo6+}i1ZL=XECDAq55d(|1;=NHA#Xr5xpw3uazS}EIt*_@Ih>Z+K< z%$K3`Ir#pO7vr#ma(?G}gsJ~GekBpGMTa0DCheh;uuvaiGf=R3)R(t5JDF~361W~G(d0}Zy?z#lqxv6qY-)177TXFbdAN@A40fkJOI>&KAt zM*yhVYqOd6e$`?>DH6IG*1SWdiy0a7HY65U;Lo7;-lo~3(8q#lqJ(~<#&;g6Xwy|P8-p%2@bBw4EXp0!SO0?jv+v%&IS zFstKn@w()5e`xagcirbV4Dx5uST4FZ1ChI_-*~Za4!r$BIlt9k3y&XD&dzh4VBt8* z`TZ&E<>X1(=3So;>31pHk1;*KCW`7a^HQ0h>(ri~+-I4a+bQSYEuEOF*vnDDw(xYD zL<4(qD73$Eoy2Y;<^1vNK_&xxR4T6TDh!r9hW~Q@y{H|x=z2GtJMRHXmrhxc#vZK8 zcp3B=c2i<+r_TN<@&onh!bMZTzsTNhxODCf1mbRl$Tn#eq8rwROUN*3Q|_V-a>xqxzZ3!e<* zj#AE}KQ4eBmX!1JHaqA(mva8OVHXsj{#j7-gG`(ctN84e;rM?89I^8$xKm;JDJ zg5vsFLocQ*f^uH&x=2#`##Oxjx8I0(oFunxRb_u}^Z@z&?UD^=y0SxmU{0)_HWQWG zjg6V=2fH*jFfk=PSP8yn;?QX3Qja!~bAw+2lXBsSsEcksVq|k`Mb1rH9iZQe5>bDd z+6y)>zASRy;A;$p!*WF3P&N+2mQv1(KgNhs`420kY>NjTE9fWcZ%6Ua=H1sc{_FTI=0g`Kh?3qY!h<|6p*chp>ae=-t)-;^S+}fGd z7#aw3-1C_&uGF5d`aETNSyIk9H#$Mki|Zoub>I7d*6(7GbDYTtX#AQl>YB|{U`1KB z$oaX~3NS576?LaCd%)N4lxW+FFsC^^IYHDP?nOhI9*yf9?UI3ALH90h80WyieKf}S zyiyLSGpG%pymSQ;Dk$5s&)4DcX==lrc4JKv_H|Tnt2V0vFYN!U(A~G4goZ;@-?tbD zBhBbNU*F!7T)}-x#XUo`TI9!ZCWS&D`*K0P(URKp%Bx-E_D+=ZIGwdj=zhw1hLW+Q z{o?;}=8Df-EkFGY3X|PoV+So}xTFp8x_U$ZWH+Yk!!{U&XJfIInT*EApK$L8<~H~? zGDD7i1BGq3bLtGegBwM*+I5CF|EWgQZ|9DOZ81fnHh(w|#-6w&a^4c;iP%`1ef8>SqaH@~g$&= z=j0}cz}(uapJy^kI?WK|>;+4=9Ah5tZicrpGSGfg#|+||K~KdG%AR$EXVEVJFwf!l zPD3c{|4?MEKHLf#jH^VpSp$}WgC`Mn@`ycPd+eg9!)FJ=3deIIXY=jRU^eZHsBb<$ zgEOX%i=2h0`Ec)Wtf=ef;kw5h`RM z)4w*%bz;YPQ2RXgQk8vQL|LtQqsj`q>32WdsTnfMs2-CkgIAW6ZO}#srm2MLfOXaK z`aSe#N4L8q-@b@)cATp&|K(3P8=uu<&g`I^WsXZT=U!TwiRc@?95}_LQvOXuYdV_rY-6=G(Gi!vMXBPpMD!EFmLM58B18l-hn=! z0-?5H9(*mY5SiOd-wE#r@gm#S?E$zp$QAXy?$OZoSGuUHGS9&D^kk89=!tx=_?jT< zqmwFOc+F8!FM9a^hNnl0oU<`!Atf}N{w+TIggPcv)USP%*^o?JXQRD6yspNQFlxg= z6V=&WXDF)_EiG0L`ujX_WH{tV`T|j}w{q`5q4Gl@~;|dCtcnYZ2vqphoK2*!{Pr)AS@um1%X&xw@t#)C5?4_zr|^#C0!*@FLaw(&i|c=oskkJq>YEKX+* zsZ>H9uGKG}zsvlrtOTVeUa+C9Gn^P!1-1n;Xk2RyBQ{pSw-R6YmN^-W?^VH}z5$Ty zvJPyvRl-c1Me=)sH*l+Xn1Omz*+DSrohxdscgLY}VY;YCtK`6n9j8PcaHSY$-^GhM zqxvT12Stl|pkEWbb~q&Jp?yArNz4J5j<0zG&vVjFgoxUVbYf3nPYA_z*RfsMFC7C! zosiv=Eiu7a;&{C}Uz2qR_kn4sO<(q6qfBK~`zo{E5*bXz>%*#2z+(#L9ic9PT*l~@ zA26uT?K&pcyGl7vaLAKCh^CxZ+#Dp=Pp6z$ZMH1D?Mpegdr*D38EY#Qf3Ls&#y!I< z=DN;Ri0kDFexHsro>)J%xvvMT`o=MBzbc^S626w>3uf!SO0bWR!78a5?5?VW&zK7( z^%w{T7gmA)M}KhGX$7wLD`7Uiw^CsdtSaP1-DUg^kh|rI`c@Op_95w_ex(`-0hnK; zxIgRt39v_do`bsG-YhtNAzIXnTjXGzcSzK&lgeRW^#M`ay{(74MIoY&y4nc91i?S} zvs?PT!Wn1*q8`)K3L`LoN^yM^_Q#6O_JO&m7dd{1_H$&Sj+y@mv~caKxW1|>6h5xT z*;}a3&OXA}-S>l8sJBN2%Sjo|hebU*>zKSWQYPx57g`E~le|PdX7fgQ#1?na9-!jR z#4E-w;`P5d3)(zWH?<7HvEQstZWL2A@*1pu;12$4l9-Rf%VA%H7dTk*jIq2N66~-S zc}*kZYhD4y8+~CK=>WS6Dxf~cA7*ve2E$jCu*4Z-p)W&V(iL8O|2>QtXo|=c^};3zsLx-vmtTk8USL8yiO^~QBjgiB)p#iW6uWL3JW4)grEJl4seifeQ`@j;^ZE6*u zzE}oJQLD7O2&U+7m!tkxu?dFZye)-36yeS6!TM%}HjJMjZ%L)sm6aCBzwVXcY(aee zX)y(bI7@K_>eExQ2tHL#kQxxN@SVs5$C!(b*2%0TC+ zI}}X`WCq(_fwgvC&^hb~Q>A$7UrLyzBe1?0=N_F4Y-D~d zD2HO4V`N+Oi?%wgcoQF3jn_TTVPEPcGMs0Q_9+X4NIctLhg!SGSO~#fuZ^fJYi*e~ z{(i6-^~u4P3jbidVUN0=`&_sIWUvjj*4VjLyT+jnqP|+%j?3GEeGpOmh0iVQIt%9p zp#GclZs8&G$&LpVf2?Wk?NXUI{J+ltNxpt>wlw4Ze+)Dgc{LhA#Z6@q%L+zy^@lff3$ zaU*9!f|m@oqgETK3=*98q2SZ^C6VkMLk1g*f7+axp+BQWO&Otg6UwCC^Bq!H;GB? z7$Y*&biT;^tcesEPBFO3)SnC&86N+3o5`3LDl%LW^pY8jYZC>-TRPvF$?=$*jJmQx z35@dmuum+;5A|K(S{Iz(fm-^z8?+sii99`veln5AWg^e!r>B_VFMULYWn{Fkb`vbVqMsZn<5A?HjO1<&KVwO+p?x;#|_!;55nA@=G{d%nL@_@085S z%7=^IGU)VmoTP8yWmq!X7yjHbl;}7Wz~(iW8$a1V(&20&MAZjE2s2DF-yv80E?2qF zmVCx@ScM<680##VqI6pPE}Q7YNS0ns6u-;AAIl|63u46Ya^FAAl1aM`!v?(n#fUBp z8FUafp>F@YFSD&ARJ2J`TT8}C3+H6w^{F+}m^U8+#P4s8$tou3j~_VV^&$E@nYojE zMV`wBx-s^(GH}7`C+;p|`rMU?b{JvsTe9aG<=N}N_lX(ks}&5xwzs}sEv9z;f?SO1JJKqZ)Tpd)%;9gK?oYxsHA1trdJr8NK zaVEzKnS8v;1?b$@4`w8ulFw+D3xh0iF4_*ce7H}p$TPjMO74!ma239Bgw8E_=!(-K zPuGS!@^t37$Wz0uUe35b+GF-*} z!1p#pPl$hf8rBTL9*M9;uG>EaR&ZY6JF!;Yeau-n(jDiBukX%jnWjPvo|X5ivEaOZ zq=K!5A51Zy#;rM*2Huz>xM18Wu7`34{8))S(B|*tHangczwb`<9$YEbZYzA|(XYPT z)K9S@&#NtgTv2_L_wH4Z~<7mch6eIN?;^PJ5ba6XWL`jxXC z$Bx2zPm1ejwsY}Ey+wu#HAA_ue5^CW>rq*R%YNVtg{YmKHt`d}_W+05P2(D08oLKd zQUA@k>)4TyUJ(H$%Fgg{S^%T8EfUl)E;;F6BWay-7#_J|ztGauiEtw!uyPBSwGUMc)} zT?9AYGZr*4@5JW)ac+1`9CWtzhyFU}IPYii;DI#@Hx}e`J3GX}PJEv=^+nv2x!8pW z_0OVmF2*!MwAGcZ*SVULVWO>`>{QQ{)dY*S+F?@z*Y!l8Xsi83HgI1;aeguW?E8B+ zIVN{#@IG58hxPZF1ek%7C z>v|PDW0@lE4faDVMm?wI52ycTAI|4Q|9?G*-)rkA&YvCj{xvU|wM(3l`Zs4w^JTCX zYkgee_QQsSDa_1t>?^q%=igOmGL}btVTFkcG}ldjy1s*f3SDx ztZQ-|%qQva181wN>2twBSO@dj9eU@@=Kkpr2pc|lfK8DL7q%l1RyN^GE~7(S&yKhc zanK89VGYsKd)Rk&mp9C9yvXJE41tw#GLXs2xHT_BVaPIH@JqPKt&)Y~+z)?{Xg=nC zVLuI5{9L7JEu6n3Onla_g-=}HeZk`MJ+9+-E_5&MP2)Xmzi*rb{g&d{BrpHSt#$N= z7}N`mUvW1vK01lof51J?t-l|nqrNe^id+2#=Qp8NjV$9dFoq=xy}pt&!2O=9s4s^+ z=j6IrPlb@&w8*swGYm2#hyrE zSq$Uv2Fu$yL$?4E<}seJI3IC_LDLUP_Pob__N)smeXlifc%T;ydFcY-o0iFS@wqS{ z0OuVW)yPNB@rLn+*uzAp7x(SBH_kM0gUsJnoceoj7%|En3>L5BEY`?iU$Z+jXZdgr z9eu##u?HL-dzh=i&-ff`WERCIadQ{p+~z^vFy?nQw-@vK22{#m&{&>xw8b8uO4zqY zxq@3&8-l&z1EB5rO>Q*K<5t7~%3tcaop*!bFlslwI<70ufsIG~xT%V}W{m3z)XUkc zT(4^Zq92HvS;T$7XJtNKzdDxVq|H81ggV!r<_Rj;k8yg2Zb7QL7aYg>{8U#R zc^p0`U7TFu__z?cHTJ!^fwf*i%S+{vf){*X+~8Djo7_U%8-8SAJkwi;E5tMU_tx$J z#Y4HTxOOly^MG6JY`9ooADB{&zoX}J&Ku94Wai#ro3ovBDDcNQlvq=}&6BgmxBHQY)P2y5`p3a+ z&RpgQ?@-5XS-{`jxD7s_RtX8`ZBA_#XHx$U=Sg$XmpB1GXFtx$J<2?rhkem-?%TBk z{g}NiZqOjbp4&Fn66Y4|FJ6KEq{vS)IvV>2qiwr57)qAwc>;d|X8_elS&iQB2@%TJ z)8M?u1PAPmox2+Q1S;<=L= z)_&f+?*eRo{ns%6VJ|L}*C>e%aGZG~KKb0|bM;EdN_ z&*d&Z!bP@c-?!&(Cms;l%1TtY&zYej+tr?h-9B*}T^1y*>LF!c0K zt2%veSc850?QUGQnuYakr%WafNaz@ysKP}J-#lZKCatczWqRu`22d^qGnZ;AUy;_>Ixy)xrKBPY8~5g@0!3Wa7KX@Vn&-PN#Y?op3*V zsi_lPgSB-h z$pR%`?9+@rhkIYMTDrv-uAaoTQ|EB2KA0akc$O!GHjTDwd+P`D%&}Lw&e@51_5mHnZU@)Wg(D&I^vz1{6iJ`ThvQ;#L62c2jc7! zU(j8UCtvazXRe`MyE;JLW2+wss1H<(l>Bz~fpXN7VttvgP2O-5^=@A+7VkZnl?N$7Y zwTX0qQK;=YTT8E7?t$s3|MnaD%jU!740q^u&=o>;O~H783|g6prI(x7@OVol+SLDX8Vvd)aNv@R^S~FTkHw*9nBn zitD!zv8AukpQC==^Emqi&!MiPUZ0b}J~H=(`>0DM7P6JoWzdZJO;ZK?g!O`tsBa8= z#J>EB^G}dfTHY7-Chke}K&_#wDxKd8d!eCzvO{0mJkbd(QU82DTxvaiFHA+9*St__ z+a8}?sQ>1CIR*Qn^l=6IFjr`(!@1?v-p~_!ZoDZv4F@*LAYI!HmQ~dPn=6Ac4sLK_ z)lXRXQ3hqDICr>Elhq#X11bjYaN2bUdw(;|u64$FlxG?CVjRxhu5*We+ZVDwYJ9+8 zxCiV`-@*p}!S97P=H&eFU=QNwt*FE^1=C>c6M`|dswb#EI?PT${!`HAU)3eDttWA> ze!Ca28L4bsY9NGTAKkWX`7Ap(1bguNLSt?X8~qNSU8px|J!5}g4unF~2cCXsKPLvj z71Ui2sa`a-RAo9t@A| zhcyRq4%C%Y*lvY=q0oPtHa0@!XK#3py@jvacVmY`z%ZX{>>o{Ei0tkO7P+_BAC_qUQtTf%{5iY$m@nLY zGKeI8|Z)Ot4jxV}*kU9qD^10@^iNT1&$E$E#lC|I8!j=KFOArSJ`K59zF8@C(Zl(wsQcg9EH(1?24mEQ zOLt4nG4`LJ&>2qB#Qyl)Ks`y-MY(zrI9t3KEh0%od9 z9dUkZ;5tw6{@Gia=8SWA)V(3eZ-6wje;{b#Szz%E{4P%j1XcX(m9`+gW*q=M6@0jv z(pT6UPzUw1*~_Hw6a2sc_3y!(rSG2lf(h!YxqGEYKjI!Y>fwjIq*o8gL>um~-cR}l zXT^fz{yPEEFpLcpY{wS`O9vqXg`VG%EWMZL1iP30?|iHFp9s9o*awfoU7tc%7e0A)BbOGm;>(;Y>(ATEDc88F4&Flc|8|pUD0~!x} zXaDT+fk(*vXNj_O&> z%Qj=_&HlddILQ-gu3AWS#-X3r@P@*BqolqI1F(O94|tBUmM+6y4hqh{A1{!O#oidY zs7GJ7lQ!YnP~mSE58EaEZRiI>P@fC)klvn-c8&V+MPI2!y-c+2my?2|_c4}N_=@k^ zq0*iQu;voA%lL34vlC#s6r1%AS#Ba1ncp&O^U3)$%Ru>ER8z zd9K(myFZ(G&Ks6v|J9>QXS16yZXJws!P@)nXYb9GL4>0ll)sK( zusR_=uwknQ&h}K1P7`oudWi>Ab?z?p{OSV*{m^f3){^QQqwRQkf}5nT^eFDd{(9jF z62VAnz10`i;2w+JqhZn~7~8Z?!9LPC6QpHExTaq14aN6tq|Ufs`)0Kdbo{tLnu^a^ z1?Tfu?W7u?v3CgS>_t1Jel~t!ihAogH|ah+Ls7&JImSLx(|a-)j=J-l0IA7uFR(#< zac;1*48L>7(7#W%J}9lge%Kng9)2xVOFN*h@o_s?NB&af-^ zz}~-!wq57}nFl&Z3tN2P1p125w`$TC-|-y8#1nKkYDo`w!1>x(yZ)uRpLDPa_VM%c zgxaYlQZ+SvhFsw`x+Q;^l*dQk3HCPQ)JK?XMxp|NS5CsgF7-e=%t>_ z-aucy=ZYItWuIqf+`##AeXuuESDpm}oOSNw4!X*f?DCZu7dPQEWAlAh*<#C=d7( z^^Oh0{IZ-~xYwcAUaEN#?fE$N#M4!k?m6oNX9N!z`%Ocdf<7el3DzA5eWXjXeBen3 zPnhO4NV+Wt`<)NKnRJsZq^;;DB#b9SS&We$$33yb>ph|GOptE6?gLUK?Eimnnlua< znk@E)^?T<_k7G}!hPCM9SX=4TSE&199}Kyj^vw>eYj413bDX{OPagV1SB#lX?~!`+ z#r>QTZz!MSE^Wef#&9Y2-SY8~9?9GXYQ=64bvRO5>aq*&9R6R<0h_Kt+IF0+6zmFm zMQ`8?u7kH=zN2;T{_F>g@s>1TKN^!6Y!2=*|H5bD$k5%a%>)^29f`f{dWNwXOR+~9 zo-6lcL3C`rB1cBZfOfX*}3q_5Zbz<~W85VK2D z`hR4dc|29$*T>C7NlGe8g+{3~i@T1L=6N18m*%8G<~b=sNP~F_MMxR%*_%j(N}>S` zic~5ZR2rUj&;I_=@5x`E*Lj_L-SfWduD$l!Yp;DBzpqpeJfl5B%d8iUt+_|>9$7uJ z{ z$7&IrPLK!0qHX&dC2_w>J)lb;XSkf3$sKF+fQ=ilrsN6b0;F+2DEjS~7ggLs)RXai zt3d}Exg{8@yeoEwo_9ZS3(>x$%ADcxM`^RnIi65o?hLL4UCin+*CdTK^zJ{@%zk5h zXzzY)!G!^~E!^ai!TXxsA* z%zPWXA`WFS^q*jXJ#7K3tw1hb|vC4jtSW7Z|Zildk6MI?4JKO4n`8F+I9p?Ft@2VqzrE3 z{O|jDM;Llviu;PSrfLMw_leQt658G2Q=21%wNK{)F*m!Y51!f4V+%K7ya$Xmae^Q7 zoVaDn(4Sa2fr{EOt_kZ&T4J1_a$+#2+#B;?n3I}6HIA#a^AzH3lfo>{s=*UX24Nf$ zUc{B-`rT2$m{9pHH!2qGZ7p(JP{$ddy=^<-4A;*#bG2CaVuCdfzE9h@@=$N6E5b8O zr+0Fem`^hOjLe&*&2FgsKpp-Ttf{INd4zK07EHE@b0uA1d zFzi7J=;B!S{H!B%bAJl4VXhE@xwZE_)wnCo_&qn_{KaAnHwNv&x0e&Fub9i#V2`V# zm4E@6kl{?(BslIT!uPdC?ywBPE#QK>8 z978wPaKmb`wsI@x70-)T$2E`3{p&fU2rulr<_@yYUU7

    uI*#WiOm=`rmVS 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 Date: Tue, 18 Feb 2020 16:20:16 +0100 Subject: [PATCH 259/453] Polish translation updated by bwisn, closes #5655 --- rtdata/languages/Polish | 207 ++++++++++++++++++++-------------------- 1 file changed, 104 insertions(+), 103 deletions(-) diff --git a/rtdata/languages/Polish b/rtdata/languages/Polish index 1bcc98456..06a5136d6 100644 --- a/rtdata/languages/Polish +++ b/rtdata/languages/Polish @@ -10,13 +10,19 @@ #10 2020-02-02 Bartłomiej Wiśniowski #11 2020-02-02 Bartłomiej Wiśniowski #12 2020-02-15 Bartłomiej Wiśniowski +#13 2020-02-17 Bartłomiej Wiśniowski ABOUT_TAB_BUILD;Wersja ABOUT_TAB_CREDITS;Zasługi ABOUT_TAB_LICENSE;Licencja ABOUT_TAB_RELEASENOTES;Notatki eksploatacyjne ABOUT_TAB_SPLASH;Ekran powitalny +ADJUSTER_RESET_TO_DEFAULT;Klik - przywróć wartość domyślną.\nCtrl+klik - przywróć wartość początkową. BATCH_PROCESSING;Przetwarzanie wsadowe +CURVEEDITOR_AXIS_IN;We: +CURVEEDITOR_AXIS_LEFT_TAN;Lw: +CURVEEDITOR_AXIS_OUT;Wy: +CURVEEDITOR_AXIS_RIGHT_TAN;Pw: CURVEEDITOR_CATMULLROM;Elastyczny CURVEEDITOR_CURVE;Krzywa CURVEEDITOR_CURVES;Krzywe @@ -38,6 +44,7 @@ CURVEEDITOR_TOOLTIPPASTE;Wstaw krzywą ze schowka CURVEEDITOR_TOOLTIPSAVE;Zapisz krzywą CURVEEDITOR_TYPE;Typ: DIRBROWSER_FOLDERS;Katalogi +DONT_SHOW_AGAIN;Nie pokazuj tej wiadomości ponownie. DYNPROFILEEDITOR_DELETE;Usuń DYNPROFILEEDITOR_EDIT;Edytuj DYNPROFILEEDITOR_IMGTYPE_ANY;Każdy @@ -175,6 +182,7 @@ FILEBROWSER_SHOWDIRHINT;Wyłącza wyszstkie filtry.\nSkrót: d FILEBROWSER_SHOWEDITEDHINT;Pokazuje edytowane zdjęcia.\nSkrót: 7 FILEBROWSER_SHOWEDITEDNOTHINT;Pokazuje nieedytowane zdjęcia.\nSkrót: 6 FILEBROWSER_SHOWEXIFINFO;Pokaż dane Exif.\n\nSkróty:\ni - Tryb wielu zakładek,\nAlt-i - Tryb jednej zakładki. +FILEBROWSER_SHOWNOTTRASHHINT;Pokazuj tylko obrazy które nie znajdują się w koszu. FILEBROWSER_SHOWRANK1HINT;Pokazuje zdjęcia ocenione na 1 gwiazdkę.\nSkrót: 1 FILEBROWSER_SHOWRANK2HINT;Pokazuje zdjęcia ocenione na 2 gwiazdki.\nSkrót: 2 FILEBROWSER_SHOWRANK3HINT;Pokazuje zdjęcia ocenione na 3 gwiazdki.\nSkrót: 3 @@ -608,7 +616,11 @@ HISTORY_MSG_440;CbDL - Metoda HISTORY_MSG_442;Retinex - Skala HISTORY_MSG_449;PS - Adaptacja ISO HISTORY_MSG_452;PS - Pokaż ruch +HISTORY_MSG_453;PS - Pokaż tylko maskę +HISTORY_MSG_465;PS - Promień rozmycia +HISTORY_MSG_468;PS - Wypełnij dziury HISTORY_MSG_471;PS - Korekcja ruchu +HISTORY_MSG_472;PS - Miękkie przejścia HISTORY_MSG_474;PS - Wyrównaj HISTORY_MSG_475;PS - Wyrównaj kanał HISTORY_MSG_485;Korekcja obiektywu @@ -619,6 +631,10 @@ HISTORY_MSG_490;DRC - Ilość HISTORY_MSG_491;Balans bieli HISTORY_MSG_492;Krzywe RGB HISTORY_MSG_CLAMPOOG;Ucinaj kolory spoza zakresu +HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Korekcja koloru +HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Korekcja koloru +HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Kanał +HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturacja HISTORY_MSG_DEHAZE_DEPTH;Usuwanie mgły - Głębia HISTORY_MSG_DEHAZE_ENABLED;Usuwanie mgły HISTORY_MSG_DEHAZE_LUMINANCE;Usuwanie mgły - Tylko luminancja @@ -637,6 +653,14 @@ HISTORY_MSG_PDSHARPEN_CONTRAST;CS - Próg kontrastu HISTORY_MSG_PDSHARPEN_ITERATIONS;CS - Iteracje HISTORY_MSG_PDSHARPEN_RADIUS;CS - Promień HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Próg kontrastu +HISTORY_MSG_RAWCACORR_AUTOIT;Korekcja aberracji chromatycznej - Iteracje +HISTORY_MSG_RAWCACORR_COLORSHIFT;Korekcja aberracji chromatycznej - Unikaj przesunięcia kolorów +HISTORY_MSG_SHARPENING_BLUR;Wyostrzanie - Promień rozmycia +HISTORY_MSG_SHARPENING_CONTRAST;Wyostrzanie - Próg kontrastu +HISTORY_MSG_SH_COLORSPACE;S/H - Przestrzeń kolorów +HISTORY_MSG_SOFTLIGHT_ENABLED;Miękkie światło +HISTORY_MSG_SOFTLIGHT_STRENGTH;Miękkie światło - Siła +HISTORY_MSG_TRANS_Method;Geometria - Metoda HISTORY_NEWSNAPSHOT;Nowa migawka HISTORY_NEWSNAPSHOT_TOOLTIP;Skrót: Alt-s HISTORY_SNAPSHOT;Migawka @@ -655,6 +679,8 @@ ICCPROFCREATOR_ILL_65;D65 ICCPROFCREATOR_ILL_80;D80 ICCPROFCREATOR_ILL_DEF;Domyślne ICCPROFCREATOR_ILL_INC;StdA 2856K +ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 +ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 ICCPROFCREATOR_PRIM_ADOBE;Adobe RGB (1998) ICCPROFCREATOR_PRIM_BEST;BestRGB ICCPROFCREATOR_PRIM_BETA;BetaRGB @@ -668,21 +694,28 @@ ICCPROFCREATOR_PRIM_REC2020;Rec2020 ICCPROFCREATOR_PRIM_REDX;Czerwony X ICCPROFCREATOR_PRIM_REDY;Czerwony Y ICCPROFCREATOR_PRIM_SRGB;sRGB +ICCPROFCREATOR_PRIM_WIDEG;Szeroka gama ICCPROFCREATOR_PROF_V2;ICC v2 ICCPROFCREATOR_PROF_V4;ICC v4 ICCPROFCREATOR_SAVEDIALOG_TITLE;Zapisz profil ICC jako... ICCPROFCREATOR_SLOPE;Nachylenie +ICCPROFCREATOR_TRC_PRESET;Krzywa odpowiedzi tonalnej: IPTCPANEL_CATEGORY;Kategoria IPTCPANEL_CITY;Miasto IPTCPANEL_CITYHINT;Wprowadź nazwę miasta uwiecznionego na zdjęciu. IPTCPANEL_COPYHINT;Kopiuje ustawienia IPTC do schowka +IPTCPANEL_COPYRIGHT;Informacja o prawach autorskich +IPTCPANEL_COPYRIGHTHINT;Wprowadź informację o aktualnym posiadaczu praw autorskich np. ©2008 Jane Doe. IPTCPANEL_COUNTRY;Kraj +IPTCPANEL_COUNTRYHINT;Wprowadź nazwę kraju uwiecznionego na tym obrazie. IPTCPANEL_CREATOR;Twórca +IPTCPANEL_CREATORHINT;Wprowadź nazwę twórcy obrazu. IPTCPANEL_CREDIT;Zasługa IPTCPANEL_CREDITHINT;Identyfikuje dostawcę zdjęcia, niekoniecznie właściciela lub autora (Credit). IPTCPANEL_DATECREATED;Data utworzenia IPTCPANEL_DATECREATEDHINT;Wprowadź datę zrobienia zdjęcia. IPTCPANEL_DESCRIPTION;Opis +IPTCPANEL_DESCRIPTIONWRITER;Twórca opisu IPTCPANEL_EMBEDDED;Osadzony IPTCPANEL_EMBEDDEDHINT;Resetuje dane IPTC do domyślnych ustawień osadzonych w orginalnym zdjęciu IPTCPANEL_HEADLINE;Nagłówek @@ -695,6 +728,8 @@ IPTCPANEL_RESETHINT;Resetuje do domyślnych ustawień profilu IPTCPANEL_SOURCE;Źródło IPTCPANEL_SUPPCATEGORIES;Dodatkowe kategorie IPTCPANEL_TITLE;Tytuł +IPTCPANEL_TRANSREFERENCE;Numer pracy +IPTCPANEL_TRANSREFERENCEHINT;!IPTCPANEL_TRANSREFERENCEHINT;Wprowadź numer pracy, który umożliwi śledzenie obrazu. MAIN_BUTTON_FULLSCREEN;Pełen ekran MAIN_BUTTON_ICCPROFCREATOR;Kreator profili ICC MAIN_BUTTON_NAVNEXT_TOOLTIP;Przejdź do następnego zdjęcia względem zdjęcia otwartego w Edytorze.\nSkrót: Shift-F4\n\nAby przejść do następnego zdjęcia względem miniaturki wybranej w Nawigatorze Zdjęć:\nSkrót: F4 @@ -729,6 +764,7 @@ MAIN_MSG_OPERATIONCANCELLED;Operację anulowano MAIN_MSG_PATHDOESNTEXIST;Ścieżka\n\n%1\n\nnie istnieje. Wybierz przawidłową ścieżkę w Ustawieniach. MAIN_MSG_QOVERWRITE;Zastąpić? MAIN_MSG_SETPATHFIRST;Aby użyć tej funkcji należy wpierw wybrać odpowiednią ścieżkę docelową w Ustawieniach! +MAIN_MSG_TOOMANYOPENEDITORS;Za duża liczba otwartych edytorów.\nZamknij edytor aby kontynuować. MAIN_MSG_WRITEFAILED;Zapis nie powiódł się:\n\n"%1"\n\nUpewnij się, że folder istnieje oraz że można do niego zapisywać. MAIN_TAB_ADVANCED;Zaawansowane MAIN_TAB_ADVANCED_TOOLTIP;Skrót: Alt-a @@ -847,12 +883,15 @@ PARTIALPASTE_SHADOWSHIGHLIGHTS;Cienie/Podświetlenia PARTIALPASTE_SHARPENEDGE;Krawędzie PARTIALPASTE_SHARPENING;Wyostrzanie PARTIALPASTE_SHARPENMICRO;Mikrokontrast +PARTIALPASTE_SOFTLIGHT;Miękkie światło PARTIALPASTE_TM_FATTAL;Kompresja zakresu dynamiki PARTIALPASTE_VIBRANCE;Jaskrawość PARTIALPASTE_VIGNETTING;Korekcja winietowania PARTIALPASTE_WHITEBALANCE;Balans bieli PREFERENCES_ADD;Dodaj PREFERENCES_APPEARANCE;Wygląd +PREFERENCES_APPEARANCE_COLORPICKERFONT;Czcionka narzędzia do wybierania kolorów +PREFERENCES_APPEARANCE_CROPMASKCOLOR;Kolor maski kadrowania PREFERENCES_APPEARANCE_MAINFONT;Główny font PREFERENCES_APPEARANCE_NAVGUIDECOLOR;Kolor ramki Nawigatora PREFERENCES_APPEARANCE_PSEUDOHIDPI; Tryb pseudo-HiDPI @@ -871,7 +910,9 @@ PREFERENCES_CACHECLEAR_ONLYPROFILES;Usuń wszystkie profile przetwarzania z pami PREFERENCES_CACHEMAXENTRIES;Maksymalna liczba wpisów w pamięci podręcznej PREFERENCES_CACHEOPTS;Opcje pamięci podręcznej PREFERENCES_CACHETHUMBHEIGHT;Maksymalna wysokość miniatury +PREFERENCES_CHUNKSIZES;Liczba kafelków na wątek PREFERENCES_CHUNKSIZE_RAW_AMAZE;Demozaikowanie AMaZE +PREFERENCES_CHUNKSIZE_RAW_CA;Korekcja aberracji chromatycznej PREFERENCES_CHUNKSIZE_RAW_RCD;Demozaikowanie RCD PREFERENCES_CHUNKSIZE_RAW_XT;Demozaikowanie Xtrans PREFERENCES_CHUNKSIZE_RGB;Przetwarzanie RGB @@ -879,9 +920,13 @@ PREFERENCES_CLIPPINGIND;Pokazywanie obciętych prześwietleń/cieni PREFERENCES_CLUTSCACHE;Cache HaldCLUT PREFERENCES_CLUTSDIR;Folder obrazów HaldCLUT PREFERENCES_CMMBPC;Kompensacja punktu czerni +PREFERENCES_CROP;Kadrowanie +PREFERENCES_CROP_AUTO_FIT;Automatycznie przybliż aby dopasować do skadrowanego obrazu +PREFERENCES_CROP_GUIDES;Zawsze pokazuj ramkę kadrowania PREFERENCES_CROP_GUIDES_FRAME;Ramka PREFERENCES_CROP_GUIDES_FULL;Oryginał PREFERENCES_CROP_GUIDES_NONE;Brak +PREFERENCES_CURVEBBOXPOS;Położenie przycisków kopiuj oraz wklej krzywą PREFERENCES_CURVEBBOXPOS_ABOVE;Powyżej PREFERENCES_CURVEBBOXPOS_BELOW;Poniżej PREFERENCES_CURVEBBOXPOS_LEFT;Z lewej @@ -904,9 +949,11 @@ PREFERENCES_DIRLAST;Ostatnio odwiedzony katalog PREFERENCES_DIROTHER;Inny PREFERENCES_DIRSELECTDLG;Wybierz katalog z obrazami po uruchomieniu... PREFERENCES_DIRSOFTWARE;Katalog instalacyjny +PREFERENCES_EDITORCMDLINE;Własny wiersz poleceń PREFERENCES_EDITORLAYOUT;Układ edytora PREFERENCES_EXTERNALEDITOR;Zewnętrzny edytor PREFERENCES_FBROWSEROPTS;Opcje przeglądarki plików +PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Zwiń paski w przeglądarce plików PREFERENCES_FLATFIELDFOUND;Znaleziono PREFERENCES_FLATFIELDSDIR;Katalog z pustymi polami PREFERENCES_FLATFIELDSHOTS;kadry @@ -928,6 +975,7 @@ PREFERENCES_INTENT_SATURATION;Nasyceniowy PREFERENCES_INTERNALTHUMBIFUNTOUCHED;Pokaż osadzoną miniaturę JPEG jeśli plik raw jest nieedytowany PREFERENCES_LANG;Język PREFERENCES_LANGAUTODETECT;Użyj języka systemowego +PREFERENCES_MAXRECENTFOLDERS;Maksymalna liczba ostatnio otwieranych folderów PREFERENCES_MENUGROUPEXTPROGS;Grupuj "Otwórz za pomocą" PREFERENCES_MENUGROUPFILEOPERATIONS;Grupuj operacje plików PREFERENCES_MENUGROUPLABEL;Grupuj operacje etykiet @@ -936,30 +984,39 @@ PREFERENCES_MENUGROUPRANK;Grupuj operacje oceny PREFERENCES_MENUOPTIONS;Opcje menu PREFERENCES_MONITOR;Monitor PREFERENCES_MONPROFILE;Domyślny profil kolorów +PREFERENCES_MONPROFILE_WARNOSX;Z powodu ograniczeń MacOS, dostępna jest tylko paleta sRGB. PREFERENCES_MULTITAB;Tryb wielu zakładek PREFERENCES_MULTITABDUALMON;Tryb wielu zakładek (na drugim monitorze jeśli dostępny) PREFERENCES_NAVIGATIONFRAME;Nawigacja PREFERENCES_OVERLAY_FILENAMES;Nakładaj nazwy pliku na miniatury +PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Nakładaj nazwy plików na miniaturki w przeglądarce PREFERENCES_OVERWRITEOUTPUTFILE;Nadpisuj istniejące pliki PREFERENCES_PANFACTORLABEL;Współczynnik PREFERENCES_PARSEDEXT;Przetwarzane rozszerzenia PREFERENCES_PARSEDEXTADD;Dodaj rozszerzenie PREFERENCES_PARSEDEXTADDHINT;Proszę wprowadzić rozszerzenie i zatwierdzić przyciskiem, by dodać do listy PREFERENCES_PARSEDEXTDELHINT;Skasuje wybrane rozszerzenie z listy +PREFERENCES_PARSEDEXTDOWNHINT;Przenieś wybrane rozszerzenie w dół. +PREFERENCES_PARSEDEXTUPHINT;Przenieś wybrane rozszerzenie w górę. +PREFERENCES_PERFORMANCE_MEASURE;Zmierz PREFERENCES_PERFORMANCE_THREADS;Wątki PREFERENCES_PREVDEMO;Metoda demozaikowania podglądu PREFERENCES_PREVDEMO_FAST;Szybka +PREFERENCES_PREVDEMO_LABEL;Metoda demozaikowania podczas podglądu przy powiększeniu mniejszym niż 100%: +PREFERENCES_PREVDEMO_SIDECAR;Tak jak w PP3 PREFERENCES_PROFILEHANDLING;Obsługa profili PREFERENCES_PROFILELOADPR;Priorytet wczytywania profilu PREFERENCES_PROFILEPRCACHE;Profil w pamięci podręcznej PREFERENCES_PROFILEPRFILE;Profil przy pliku wejściowym PREFERENCES_PROFILESAVECACHE;Zapisz parametry przetwarzania w pamięci podręcznej PREFERENCES_PROFILESAVEINPUT;Zapisz parametry przetwarzania obok pliku wejściowego +PREFERENCES_PROFILESAVELOCATION;Miejsce zapisywania profilu przetwarzania PREFERENCES_PROFILE_NONE;Żaden PREFERENCES_PROPERTY;Własność PREFERENCES_PRTPROFILE;Profil kolorów PREFERENCES_PSPATH;Katalog w którym zainstalowany jest Adobe Photoshop PREFERENCES_SELECTLANG;Wybierz język +PREFERENCES_SERIALIZE_TIFF_READ;Ustawienia odczytu TIFF PREFERENCES_SET;Ustaw PREFERENCES_SHOWBASICEXIF;Pokaż podstawowe dane Exif PREFERENCES_SHOWDATETIME;Pokaż datę i czas @@ -978,6 +1035,7 @@ PREFERENCES_TAB_GENERAL;Ogólne PREFERENCES_TAB_IMPROC;Przetwarzanie obrazu PREFERENCES_TAB_PERFORMANCE;Wydajność PREFERENCES_TAB_SOUND;Dźwięki +PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show PREFERENCES_TP_LABEL;Panel narzędzi: PREFERENCES_TP_VSCROLLBAR;Ukry pionowy pasek przesuwania PREFERENCES_USEBUNDLEDPROFILES;Użyj załączone profile przetwarzania @@ -1002,7 +1060,10 @@ PROFILEPANEL_TOOLTIPLOAD;Ładuj profil z pliku.\nCtrl+klik aby wybrać pa PROFILEPANEL_TOOLTIPPASTE;Wklej profil ze schowka.\nCtrl+klik aby wybrać parametry do wklejenia. PROFILEPANEL_TOOLTIPSAVE;Zapisz aktualny profil.\nCtrl+klik aby wybrać parametry do zapisania. PROGRESSBAR_DECODING;Dekodowanie... +PROGRESSBAR_GREENEQUIL;Równoważenie koloru zielonego... PROGRESSBAR_HLREC;Rekonstrukcja podświetleń... +PROGRESSBAR_HOTDEADPIXELFILTER;Filtr gorących/martwych pikseli.. +PROGRESSBAR_LINEDENOISE;Liniowy filtr szumu... PROGRESSBAR_LOADING;Wczytywanie obrazu... PROGRESSBAR_LOADINGTHUMBS;Wczytywanie miniatur... PROGRESSBAR_LOADJPEG;Ładowanie pliku JPEG... @@ -1011,6 +1072,7 @@ PROGRESSBAR_LOADTIFF;Ładowanie pliku TIFF... PROGRESSBAR_NOIMAGES;Nie znaleziono żadnych obrazów PROGRESSBAR_PROCESSING;Przetwarzanie obrazu... PROGRESSBAR_PROCESSING_PROFILESAVED;Zapisano profil przetwarzania +PROGRESSBAR_RAWCACORR;Korekcja aberracji chromatycznej... PROGRESSBAR_READY;Gotowe PROGRESSBAR_SAVEJPEG;Zapisywanie pliku JPEG... PROGRESSBAR_SAVEPNG;Zapisywanie pliku PNG... @@ -1029,8 +1091,18 @@ QUEUE_FORMAT_TITLE;Format pliku QUEUE_LOCATION_FOLDER;Zapisz do katalogu QUEUE_LOCATION_TEMPLATE;Użyj schemat QUEUE_LOCATION_TEMPLATE_TOOLTIP;Dozwolone są następujące kody formatujące:\n%f, %d1, %d2, ..., %p1, %p2, ..., %r, %s1, %s2, ...\n\nKody formatujące odnoszą się do różnych elementów ścieżki zdjęcia, atrybutów zdjęcia oraz do arbitralnego ciągu numerycznego operacji wsadowej.\n\nPrzykładowo, jeśli zdjęcie obrabiane ma następującą ścieżkę:\n/home/andrzej/zdjecia/2010-10-31/dsc0042.nef\nznaczenie kodów formatujących jest następujące:\n%d4 = home\n%d3 = andrzej\n%d2 = zdjecia\n%d1 = 2010-10-31\n%f = dsc0042\n%p1 = /home/tom/photos/2010-10-31/\n%p2 = /home/andrzej/zdjecia/\n%p3 = /home/andrzej/\n%p4 = /home/\n\n%r zostanie zastąpione oceną zdjęcia. Jeśli zdjęcie nie posiada oceny, %r zostanie zastąpione liczbą '0'. Jeśli zdjęcie leży w śmietniku, %r zostanie zastąpione znakiem 'x'.\n\n%s1, %s2, etc. zostanie zastąpione ciągniem numerycznym dopełnionym od jednej do dziewięciu cyfr. Ciąg ten zostanie rozpocznięty od "1" za każdym razem gdy kolejka przetwarzania zostanie uruchomiona, i liczba jest zwiększona o "1" dla każdego zapisanego obrazu.\n\nJeśli chcesz zapisać obraz wyjściowy obok obrazu wejściowego, napisz:\n%p1/%f\n\nJeśli chcesz zapisać obraz wyjściowy w folderze o nazwie "wywolane" znajdującego się w katalogu zawierającym otwarty obraz, napisz:\n%p1/wywolane/%f\n\nJeśli chcesz zapisać obraz wyjściowy w folderze o nazwie "/home/andrzej/zdjecia/wywolane/2010-10-31", napisz:\n%p2/wywolane/%d1/%f +QUEUE_LOCATION_TITLE;Lokalizacja wyjściowa +SAMPLEFORMAT_0;Nieznany typ pliku +SAMPLEFORMAT_1;8-bit bez znaku +SAMPLEFORMAT_2;16-bit bez znaku +SAMPLEFORMAT_4;24-bit LogLuv +SAMPLEFORMAT_8;32-bit LogLuv +SAMPLEFORMAT_16;16-bit zmiennoprzecinkowy +SAMPLEFORMAT_32;24-bit zmiennoprzecinkowy +SAMPLEFORMAT_64;32-bit zmiennoprzecinkowy SAVEDLG_AUTOSUFFIX;Automatycznie dodaj przyrostek, jeżeli plik już istnieje SAVEDLG_FILEFORMAT;Format pliku +SAVEDLG_FILEFORMAT_FLOAT; zmiennoprzecinkowy SAVEDLG_FORCEFORMATOPTS;Wymuś opcje zapisu SAVEDLG_JPEGQUAL;Jakość JPEG SAVEDLG_PUTTOQUEUE;Umieść w kolejce przetwarzania @@ -1271,6 +1343,7 @@ TP_DEHAZE_LABEL;Usuwanie mgły TP_DEHAZE_LUMINANCE;Tylko luminancja TP_DEHAZE_SHOW_DEPTH_MAP;Pokaż mapę głębokości TP_DEHAZE_STRENGTH;Siła +TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatycznie TP_DIRPYRDENOISE_CHROMINANCE_BLUEYELLOW;Chrominancja - Błękit-żółć TP_DIRPYRDENOISE_CHROMINANCE_CURVE;Krzywa chrominancji TP_DIRPYRDENOISE_CHROMINANCE_FRAME;Chrominancja @@ -1355,6 +1428,7 @@ TP_EXPOSURE_TCMODE_FILMLIKE;Klisza TP_EXPOSURE_TCMODE_LABEL1;Tryb krzywej 1 TP_EXPOSURE_TCMODE_LABEL2;Tryb krzywej 2 TP_EXPOSURE_TCMODE_LUMINANCE;Luminancja +TP_EXPOSURE_TCMODE_PERCEPTUAL;Percepcyjny TP_EXPOSURE_TCMODE_SATANDVALBLENDING;Mieszanie nasycenia i mocy światła białego TP_EXPOSURE_TCMODE_STANDARD;Standardowa TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Ważona standardowa @@ -1426,10 +1500,12 @@ TP_ICM_SAVEREFERENCE_TOOLTIP;Zapisz liniowy obraz TIFF zanim profil wejściowy z TP_ICM_TONECURVE;Użyj krzywą tonalną z DCP TP_ICM_TONECURVE_TOOLTIP;Włącz aby użyć krzywą tonalną znajdującą się w profilu DCP. Opcja ta jest tylko aktywna jeśli profil DCP zawiera krzywą tonalną. TP_ICM_WORKINGPROFILE;Profil roboczy +TP_ICM_WORKING_TRC;Krzywa odpowiedzi tonalnej: TP_ICM_WORKING_TRC_CUSTOM;Własna TP_ICM_WORKING_TRC_GAMMA;Gamma TP_ICM_WORKING_TRC_NONE;Żadna TP_ICM_WORKING_TRC_SLOPE;Nachylenie +TP_ICM_WORKING_TRC_TOOLTIP;Tylko dla wbudowanych profili. TP_IMPULSEDENOISE_LABEL;Redukcja Szumów Impulsowych TP_IMPULSEDENOISE_THRESH;Próg TP_LABCURVE_AVOIDCOLORSHIFT;Zapobiegaj zmianom koloru @@ -1563,11 +1639,23 @@ TP_RAW_LMMSE;LMMSE TP_RAW_LMMSEITERATIONS;Ilość kroków udoskonalenia LMMSE TP_RAW_LMMSE_TOOLTIP;Aby zmniejszyć ilość artefaktów i poprawić stosunek sygnału do szumów, można wykorzystać następujące ustawienia:\n1: Gamma\n2-4: Średnia mediana\n5-6: Rafinowanie TP_RAW_MONO;Mono +TP_RAW_PIXELSHIFTBLUR;Maska rozmycia ruchu +TP_RAW_PIXELSHIFTDMETHOD;Metoda demozaikowania ruchu TP_RAW_PIXELSHIFTEPERISO;Czułość +TP_RAW_PIXELSHIFTEQUALBRIGHT;Wyrównaj jasność klatek +TP_RAW_PIXELSHIFTHOLEFILL;Wypełnij dziury w masce ruchu +TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Wypełnia dziury w masce ruchu +TP_RAW_PIXELSHIFTMEDIAN;Użyj mediany dla poruszonych fragmentów TP_RAW_PIXELSHIFTMM_AUTO;Automatyczny TP_RAW_PIXELSHIFTMM_CUSTOM;Własny TP_RAW_PIXELSHIFTMM_OFF;Wyłączony +TP_RAW_PIXELSHIFTMOTIONMETHOD;Korekcja ruchu +TP_RAW_PIXELSHIFTNONGREENCROSS;Szukaj ruchu w kanale niebieskim/czerwonym +TP_RAW_PIXELSHIFTSHOWMOTION;Pokaż maskę ruchu +TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Pokaż tylko maskę ruchu +TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Pokaż samą maskę ruchu (bez obrazu). TP_RAW_PIXELSHIFTSIGMA;Promień rozmycia +TP_RAW_PIXELSHIFTSMOOTH;Miękkie przejścia TP_RAW_RCD;RCD TP_RAW_RCDVNG4;RCD+VNG4 TP_RAW_SENSOR_BAYER_LABEL;Matryca z filtrem Bayera @@ -1576,6 +1664,7 @@ TP_RAW_SENSOR_XTRANS_LABEL;Matryca z filtrem X-Trans TP_RAW_VNG4;VNG4 TP_RAW_XTRANS;X-Trans TP_RAW_XTRANSFAST;Szybki X-Trans +TP_RESIZE_ALLOW_UPSCALING;Zezwól na zwiększenie rozdzielczości TP_RESIZE_APPLIESTO;Dotyczy: TP_RESIZE_CROPPEDAREA;Obszaru kadrowanego TP_RESIZE_FITBOX;Wymiary obwodu @@ -1594,12 +1683,21 @@ TP_RETINEX_CONTEDIT_HSL;Histogram HSL TP_RETINEX_CONTEDIT_LAB;Histogram L*a*b* TP_RETINEX_CONTEDIT_LH;Odcień TP_RETINEX_CONTEDIT_MAP;Wyrównywanie +TP_RETINEX_CURVEEDITOR_CD;L=f(L) +TP_RETINEX_CURVEEDITOR_LH;Siła=f(H) +TP_RETINEX_CURVEEDITOR_MAP;L=f(L) TP_RETINEX_EQUAL;Wyrównywanie TP_RETINEX_GAIN;Wzmocnienie TP_RETINEX_GAMMA;Gamma +TP_RETINEX_GAMMA_FREE;Wolna +TP_RETINEX_GAMMA_HIGH;Wysoka +TP_RETINEX_GAMMA_LOW;Niska +TP_RETINEX_GAMMA_MID;Średnia TP_RETINEX_GAMMA_NONE;Żaden TP_RETINEX_HIGH;Wysoki TP_RETINEX_HIGHLIGHT;Próg podświetleń +TP_RETINEX_HSLSPACE_LIN;HSL-Liniowa +TP_RETINEX_HSLSPACE_LOG;HSL-Logarytmiczna TP_RETINEX_LABEL;Retinex TP_RETINEX_LABEL_MASK;Maska TP_RETINEX_LABSPACE;L*a*b* @@ -1746,7 +1844,10 @@ TP_WAVELET_EDRAD;Promień TP_WAVELET_EDSL;Suwaki progów TP_WAVELET_EDTYPE;Metoda kontrastu lokalnego: TP_WAVELET_EDVAL;Siła +TP_WAVELET_FINAL;Ostateczny retusz TP_WAVELET_FINEST;Najdokładniej +TP_WAVELET_HIGHLIGHT;Zakres luminancji podświetleń +TP_WAVELET_HS1;Zakres luminancji TP_WAVELET_HS2;Cienie/Podświetlenia TP_WAVELET_HUESKIN;Odcień skóry TP_WAVELET_HUESKY;Odcień nieba @@ -1756,7 +1857,9 @@ TP_WAVELET_LEVONE;Poziom 2 TP_WAVELET_LEVTHRE;Poziom 4 TP_WAVELET_LEVTWO;Poziom 3 TP_WAVELET_LEVZERO;Poziom 1 +TP_WAVELET_LINKEDG;Połącz z siłą 'Ostrość krawędzi' TP_WAVELET_LIPST;Usprawniony algorytm +TP_WAVELET_LOWLIGHT;Zakres luminancji cieni TP_WAVELET_MEDGREINF;Pierwszy poziom TP_WAVELET_MEDI;Usuwaj artefakty niebieskiego nieba TP_WAVELET_MEDILEV;Wykrywanie krawędzi @@ -1775,6 +1878,7 @@ TP_WAVELET_RESCHRO;Chrominancja TP_WAVELET_RESCON;Cienie TP_WAVELET_RESCONH;Podświetlenia TP_WAVELET_SAT;Chrominancja kolorów nasyconych +TP_WAVELET_SKY;Odcień nieba - wybór/ochrona TP_WAVELET_STREN;Siła TP_WAVELET_STRENGTH;Siła TP_WAVELET_SUPE;Ekstra @@ -1845,13 +1949,7 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - ! Untranslated keys follow; remove the ! prefix after an entry is translated. !!!!!!!!!!!!!!!!!!!!!!!!! -!ADJUSTER_RESET_TO_DEFAULT;Click - reset to default value.\nCtrl+click - reset to initial value. -!CURVEEDITOR_AXIS_IN;I: -!CURVEEDITOR_AXIS_LEFT_TAN;LT: -!CURVEEDITOR_AXIS_OUT;O: -!CURVEEDITOR_AXIS_RIGHT_TAN;RT: !CURVEEDITOR_EDITPOINT_HINT;Enable edition of node in/out values.\n\nRight-click on a node to select it.\nRight-click on empty space to de-select the node. -!DONT_SHOW_AGAIN;Don't show this message again. !DYNPROFILEEDITOR_EDIT_RULE;Edit Dynamic Profile Rule !DYNPROFILEEDITOR_ENTRY_TOOLTIP;The matching is case insensitive.\nUse the "re:" prefix to enter\na regular expression. !DYNPROFILEEDITOR_IMGTYPE_PS;Pixel Shift @@ -1867,7 +1965,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !FILEBROWSER_DELETEDIALOG_SELECTED;Are you sure you want to permanently delete the selected %1 files? !FILEBROWSER_DELETEDIALOG_SELECTEDINCLPROC;Are you sure you want to permanently delete the selected %1 files, including a queue-processed version? !FILEBROWSER_POPUPREMOVEINCLPROC;Delete permanently, including queue-processed version -!FILEBROWSER_SHOWNOTTRASHHINT;Show only images not in trash. !FILEBROWSER_SHOWORIGINALHINT;Show only original images.\n\nWhen several images exist with the same filename but different extensions, the one considered original is the one whose extension is nearest the top of the parsed extensions list in Preferences > File Browser > Parsed Extensions. !GIMP_PLUGIN_INFO;Welcome to the RawTherapee GIMP plugin!\nOnce you are done editing, simply close the main RawTherapee window and the image will be automatically imported in GIMP. !HISTOGRAM_TOOLTIP_MODE;Toggle between linear, log-linear and log-log scaling of the histogram. @@ -1943,14 +2040,10 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_443;Output black point compensation !HISTORY_MSG_444;WB - Temp bias !HISTORY_MSG_445;Raw sub-image -!HISTORY_MSG_453;PS - Show mask only !HISTORY_MSG_457;PS - Check red/blue !HISTORY_MSG_462;PS - Check green !HISTORY_MSG_464;PS - Blur motion mask -!HISTORY_MSG_465;PS - Blur radius -!HISTORY_MSG_468;PS - Fill holes !HISTORY_MSG_469;PS - Median -!HISTORY_MSG_472;PS - Smooth transitions !HISTORY_MSG_473;PS - Use LMMSE !HISTORY_MSG_476;CAM02 - Temp out !HISTORY_MSG_477;CAM02 - Green out @@ -1964,9 +2057,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_488;Dynamic Range Compression !HISTORY_MSG_493;L*a*b* Adjustments !HISTORY_MSG_494;Capture Sharpening -!HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction -!HISTORY_MSG_COLORTONING_LABREGION_CHANNEL;CT - Channel !HISTORY_MSG_COLORTONING_LABREGION_CHROMATICITYMASK;CT - region C mask !HISTORY_MSG_COLORTONING_LABREGION_HUEMASK;CT - H mask !HISTORY_MSG_COLORTONING_LABREGION_LIGHTNESS;CT - Lightness @@ -1975,7 +2065,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_COLORTONING_LABREGION_MASKBLUR;CT - region mask blur !HISTORY_MSG_COLORTONING_LABREGION_OFFSET;CT - region offset !HISTORY_MSG_COLORTONING_LABREGION_POWER;CT - region power -!HISTORY_MSG_COLORTONING_LABREGION_SATURATION;CT - Saturation !HISTORY_MSG_COLORTONING_LABREGION_SHOWMASK;CT - region show mask !HISTORY_MSG_COLORTONING_LABREGION_SLOPE;CT - region slope !HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold @@ -1994,36 +2083,19 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion !HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction !HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -!HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations -!HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift !HISTORY_MSG_RAW_BORDER;Raw border !HISTORY_MSG_RESIZE_ALLOWUPSCALING;Resize - Allow upscaling -!HISTORY_MSG_SHARPENING_BLUR;Sharpening - Blur radius -!HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold -!HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace -!HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light -!HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength !HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor -!HISTORY_MSG_TRANS_Method;Geometry - Method !ICCPROFCREATOR_DESCRIPTION_ADDPARAM;Append gamma and slope values to the description !ICCPROFCREATOR_DESCRIPTION_TOOLTIP;Leave empty to set the default description. !ICCPROFCREATOR_ILL;Illuminant: !ICCPROFCREATOR_ILL_TOOLTIP;You can only set the illuminant for ICC v4 profiles. !ICCPROFCREATOR_PRIMARIES;Primaries: -!ICCPROFCREATOR_PRIM_ACESP0;ACES AP0 -!ICCPROFCREATOR_PRIM_ACESP1;ACES AP1 !ICCPROFCREATOR_PRIM_TOOLTIP;You can only set custom primaries for ICC v4 profiles. -!ICCPROFCREATOR_PRIM_WIDEG;Widegamut -!ICCPROFCREATOR_TRC_PRESET;Tone response curve: !IPTCPANEL_CATEGORYHINT;Identifies the subject of the image in the opinion of the provider. -!IPTCPANEL_COPYRIGHT;Copyright notice -!IPTCPANEL_COPYRIGHTHINT;Enter a Notice on the current owner of the Copyright for this image, such as ©2008 Jane Doe. -!IPTCPANEL_COUNTRYHINT;Enter the name of the country pictured in this image. -!IPTCPANEL_CREATORHINT;Enter the name of the person that created this image. !IPTCPANEL_CREATORJOBTITLE;Creator's job title !IPTCPANEL_CREATORJOBTITLEHINT;Enter the Job Title of the person listed in the Creator field. !IPTCPANEL_DESCRIPTIONHINT;Enter a "caption" describing the who, what, and why of what is happening in this image, this might include names of people, and/or their role in the action that is taking place within the image. -!IPTCPANEL_DESCRIPTIONWRITER;Description writer !IPTCPANEL_DESCRIPTIONWRITERHINT;Enter the name of the person involved in writing, editing or correcting the description of the image. !IPTCPANEL_HEADLINEHINT;Enter a brief publishable synopsis or summary of the contents of the image. !IPTCPANEL_INSTRUCTIONSHINT;Enter information about embargoes, or other restrictions not covered by the Copyright field. @@ -2032,9 +2104,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !IPTCPANEL_SOURCEHINT;Enter or edit the name of a person or party who has a role in the content supply chain, such as a person or entity from whom you received this image from. !IPTCPANEL_SUPPCATEGORIESHINT;Further refines the subject of the image. !IPTCPANEL_TITLEHINT;Enter a short verbal and human readable name for the image, this may be the file name. -!IPTCPANEL_TRANSREFERENCE;Job ID -!IPTCPANEL_TRANSREFERENCEHINT;Enter a number or identifier needed for workflow control or tracking. -!MAIN_MSG_TOOMANYOPENEDITORS;Too many open editors.\nPlease close an editor to continue. !MAIN_TOOLTIP_BACKCOLOR3;Background color of the preview: middle grey\nShortcut: 9 !MAIN_TOOLTIP_PREVIEWSHARPMASK;Preview the sharpening contrast mask.\nShortcut: p\n\nOnly works when sharpening is enabled and zoom >= 100%. !OPTIONS_BUNDLED_MISSING;The bundled profile "%1" could not be found!\n\nYour installation could be damaged.\n\nDefault internal values will be used instead. @@ -2050,66 +2119,30 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !PARTIALPASTE_RAW_BORDER;Raw border !PARTIALPASTE_RAW_IMAGENUM;Sub-image !PARTIALPASTE_RAW_PIXELSHIFT;Pixel Shift -!PARTIALPASTE_SOFTLIGHT;Soft light -!PREFERENCES_APPEARANCE_COLORPICKERFONT;Color picker font -!PREFERENCES_APPEARANCE_CROPMASKCOLOR;Crop mask color !PREFERENCES_AUTOSAVE_TP_OPEN;Save tool collapsed/expanded state on exit !PREFERENCES_CACHECLEAR_ALLBUTPROFILES;Clear all cached files except for cached processing profiles: !PREFERENCES_CACHECLEAR_SAFETY;Only files in the cache are cleared. Processing profiles stored alongside the source images are not touched. -!PREFERENCES_CHUNKSIZES;Tiles per thread -!PREFERENCES_CHUNKSIZE_RAW_CA;Raw CA correction !PREFERENCES_CLUTSCACHE_LABEL;Maximum number of cached CLUTs -!PREFERENCES_CROP;Crop Editing -!PREFERENCES_CROP_AUTO_FIT;Automatically zoom to fit the crop -!PREFERENCES_CROP_GUIDES;Guides shown when not editing the crop -!PREFERENCES_CURVEBBOXPOS;Position of curve copy & paste buttons -!PREFERENCES_EDITORCMDLINE;Custom command line -!PREFERENCES_FILEBROWSERTOOLBARSINGLEROW;Compact toolbars in File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT;Same thumbnail height between the Filmstrip and the File Browser !PREFERENCES_FSTRIP_SAME_THUMB_HEIGHT_HINT;Having separate thumbnail size will require more processing time each time you'll switch between the single Editor tab and the File Browser. !PREFERENCES_INSPECT_MAXBUFFERS_TOOLTIP;Set the maximum number of images stored in cache when hovering over them in the File Browser; systems with little RAM (2GB) should keep this value set to 1 or 2. -!PREFERENCES_MAXRECENTFOLDERS;Maximum number of recent folders !PREFERENCES_MONINTENT;Default rendering intent -!PREFERENCES_MONPROFILE_WARNOSX;Due to MacOS limitations, only sRGB is supported. -!PREFERENCES_OVERLAY_FILENAMES_FILMSTRIP;Overlay filenames on thumbnails in the editor pannel -!PREFERENCES_PARSEDEXTDOWNHINT;Move selected extension down in the list. -!PREFERENCES_PARSEDEXTUPHINT;Move selected extension up in the list. -!PREFERENCES_PERFORMANCE_MEASURE;Measure !PREFERENCES_PERFORMANCE_MEASURE_HINT;Logs processing times in console !PREFERENCES_PERFORMANCE_THREADS_LABEL;Maximum number of threads for Noise Reduction and Wavelet Levels (0 = Automatic) -!PREFERENCES_PREVDEMO_LABEL;Demosaicing method used for the preview at <100% zoom: -!PREFERENCES_PREVDEMO_SIDECAR;As in PP3 !PREFERENCES_PRINTER;Printer (Soft-Proofing) !PREFERENCES_PROFILESAVEBOTH;Save processing profile both to the cache and next to the input file -!PREFERENCES_PROFILESAVELOCATION;Processing profile saving location !PREFERENCES_PRTINTENT;Rendering intent !PREFERENCES_REMEMBERZOOMPAN;Remember zoom % and pan offset !PREFERENCES_REMEMBERZOOMPAN_TOOLTIP;Remember the zoom % and pan offset of the current image when opening a new image.\n\nThis option only works in "Single Editor Tab Mode" and when "Demosaicing method used for the preview at <100% zoom" is set to "As in PP3". !PREFERENCES_SAVE_TP_OPEN_NOW;Save tool collapsed/expanded state now -!PREFERENCES_SERIALIZE_TIFF_READ;TIFF Read Settings !PREFERENCES_SERIALIZE_TIFF_READ_LABEL;Serialize reading of TIFF files !PREFERENCES_SERIALIZE_TIFF_READ_TOOLTIP;Enabling this option when working with folders containing uncompressed TIFF files can increase performance of thumbnail generation. !PREFERENCES_SHOWFILMSTRIPTOOLBAR;Show Filmstrip toolbar !PREFERENCES_TAB_DYNAMICPROFILE;Dynamic Profile Rules !PREFERENCES_THUMBNAIL_INSPECTOR_JPEG;Embedded JPEG preview -!PREFERENCES_THUMBNAIL_INSPECTOR_MODE;Image to show !PREFERENCES_THUMBNAIL_INSPECTOR_RAW;Neutral raw rendering !PREFERENCES_THUMBNAIL_INSPECTOR_RAW_IF_NO_JPEG_FULLSIZE;Embedded JPEG if fullsize, neutral raw otherwise -!PROGRESSBAR_GREENEQUIL;Green equilibration... -!PROGRESSBAR_HOTDEADPIXELFILTER;Hot/dead pixel filter... -!PROGRESSBAR_LINEDENOISE;Line noise filter... -!PROGRESSBAR_RAWCACORR;Raw CA correction... -!QUEUE_LOCATION_TITLE;Output Location !QUEUE_STARTSTOP_TOOLTIP;Start or stop processing the images in the queue.\n\nShortcut: Ctrl+s -!SAMPLEFORMAT_0;Unknown data format -!SAMPLEFORMAT_1;8-bit unsigned -!SAMPLEFORMAT_2;16-bit unsigned -!SAMPLEFORMAT_4;24-bit LogLuv -!SAMPLEFORMAT_8;32-bit LogLuv -!SAMPLEFORMAT_16;16-bit floating-point -!SAMPLEFORMAT_32;24-bit floating-point -!SAMPLEFORMAT_64;32-bit floating-point -!SAVEDLG_FILEFORMAT_FLOAT; floating-point !SAVEDLG_SUBSAMP_TOOLTIP;Best compression:\nJ:a:b 4:2:0\nh/v 2/2\nChroma halved horizontally and vertically.\n\nBalanced:\nJ:a:b 4:2:2\nh/v 2/1\nChroma halved horizontally.\n\nBest quality:\nJ:a:b 4:4:4\nh/v 1/1\nNo chroma subsampling. !SOFTPROOF_GAMUTCHECK_TOOLTIP;Highlight pixels with out-of-gamut colors with respect to:\n- the printer profile, if one is set and soft-proofing is enabled,\n- the output profile, if a printer profile is not set and soft-proofing is enabled,\n- the monitor profile, if soft-proofing is disabled. !SOFTPROOF_TOOLTIP;Soft-proofing simulates the appearance of the image:\n- when printed, if a printer profile is set in Preferences > Color Management,\n- when viewed on a display that uses the current output profile, if a printer profile is not set. @@ -2128,7 +2161,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_CROP_GTTRIANGLE1;Golden Triangles 1 !TP_CROP_GTTRIANGLE2;Golden Triangles 2 !TP_DIRPYRDENOISE_CHROMINANCE_AMZ;Auto multi-zones -!TP_DIRPYRDENOISE_CHROMINANCE_AUTOGLOBAL;Automatic global !TP_DIRPYRDENOISE_CHROMINANCE_CURVE_TOOLTIP;Increase (multiply) the value of all chrominance sliders.\nThis curve lets you adjust the strength of chromatic noise reduction as a function of chromaticity, for instance to increase the action in areas of low saturation and to decrease it in those of high saturation. !TP_DIRPYRDENOISE_CHROMINANCE_METHODADVANCED_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. !TP_DIRPYRDENOISE_CHROMINANCE_METHOD_TOOLTIP;Manual\nActs on the full image.\nYou control the noise reduction settings manually.\n\nAutomatic global\nActs on the full image.\n9 zones are used to calculate a global chrominance noise reduction setting.\n\nAutomatic multi-zones\nNo preview - works only during saving, but using the "Preview" method by matching the tile size and center to the preview size and center you can get an idea of the expected results.\nThe image is divided into tiles (about 10 to 70 depending on image size) and each tile receives its own chrominance noise reduction settings.\n\nPreview\nActs on the whole image.\nThe part of the image visible in the preview is used to calculate global chrominance noise reduction settings. @@ -2144,7 +2176,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_DISTORTION_AUTO_TIP;Automatically corrects lens distortion in raw files by matching it against the embedded JPEG image if one exists and has had its lens disortion auto-corrected by the camera. !TP_EXPOSURE_HISTMATCHING;Auto-Matched Tone Curve !TP_EXPOSURE_HISTMATCHING_TOOLTIP;Automatically adjust sliders and curves (except exposure compensation) to match the look of the embedded JPEG thumbnail. -!TP_EXPOSURE_TCMODE_PERCEPTUAL;Perceptual !TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) !TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards. !TP_FILMSIMULATION_SLOWPARSEDIR;RawTherapee is configured to look for Hald CLUT images, which are used for the Film Simulation tool, in a folder which is taking too long to load.\nGo to Preferences > Image Processing > Film Simulation\nto see which folder is being used. You should either point RawTherapee to a folder which contains only Hald CLUT images and nothing more, or to an empty folder if you don't want to use the Film Simulation tool.\n\nRead the Film Simulation article in RawPedia for more information.\n\nDo you want to cancel the scan now? @@ -2157,8 +2188,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_ICM_PROFILEINTENT;Rendering Intent !TP_ICM_SAVEREFERENCE;Save Reference Image !TP_ICM_SAVEREFERENCE_APPLYWB_TOOLTIP;Generally, apply the white balance when saving images to create ICC profiles, and do not apply the white balance to create DCP profiles. -!TP_ICM_WORKING_TRC;Tone response curve: -!TP_ICM_WORKING_TRC_TOOLTIP;Only for built-in profiles. !TP_LENSPROFILE_LENS_WARNING;Warning: the crop factor used for lens profiling is larger than the crop factor of the camera, the results might be wrong. !TP_PDSHARPENING_LABEL;Capture Sharpening !TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows @@ -2173,42 +2202,22 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RAW_IMAGENUM_TOOLTIP;Some raw files consist of several sub-images (Pentax/Sony Pixel Shift, Pentax 3-in-1 HDR, Canon Dual Pixel, Fuji EXR).\n\nWhen using any demosaicing method other than Pixel Shift, this selects which sub-image is used.\n\nWhen using the Pixel Shift demosaicing method on a Pixel Shift raw, all sub-images are used, and this selects which sub-image should be used for moving parts. !TP_RAW_NONE;None (Shows sensor pattern) !TP_RAW_PIXELSHIFT;Pixel Shift -!TP_RAW_PIXELSHIFTBLUR;Blur motion mask -!TP_RAW_PIXELSHIFTDMETHOD;Demosaic method for motion !TP_RAW_PIXELSHIFTEPERISO_TOOLTIP;The default value of 0 should work fine for base ISO.\nHigher values increase sensitivity of motion detection.\nChange in small steps and watch the motion mask while changing.\nIncrease sensitivity for underexposed or high ISO images. -!TP_RAW_PIXELSHIFTEQUALBRIGHT;Equalize brightness of frames !TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL;Equalize per channel !TP_RAW_PIXELSHIFTEQUALBRIGHTCHANNEL_TOOLTIP;Enabled: Equalize the RGB channels individually.\nDisabled: Use same equalization factor for all channels. !TP_RAW_PIXELSHIFTEQUALBRIGHT_TOOLTIP;Equalize the brightness of the frames to the brightness of the selected frame.\nIf there are overexposed areas in the frames select the brightest frame to avoid magenta color cast in overexposed areas or enable motion correction. !TP_RAW_PIXELSHIFTGREEN;Check green channel for motion -!TP_RAW_PIXELSHIFTHOLEFILL;Fill holes in motion mask -!TP_RAW_PIXELSHIFTHOLEFILL_TOOLTIP;Fill holes in motion mask -!TP_RAW_PIXELSHIFTMEDIAN;Use median for moving parts !TP_RAW_PIXELSHIFTMEDIAN_TOOLTIP;Use median of all frames instead of selected frame for regions with motion.\nRemoves objects which are at different places in all frames.\nGives motion effect on slow moving (overlapping) objects. -!TP_RAW_PIXELSHIFTMOTIONMETHOD;Motion Correction -!TP_RAW_PIXELSHIFTNONGREENCROSS;Check red/blue channels for motion -!TP_RAW_PIXELSHIFTSHOWMOTION;Show motion mask -!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY;Show only motion mask -!TP_RAW_PIXELSHIFTSHOWMOTIONMASKONLY_TOOLTIP;Shows the motion mask without the image. !TP_RAW_PIXELSHIFTSHOWMOTION_TOOLTIP;Overlays the image with a green mask showing the regions with motion. !TP_RAW_PIXELSHIFTSIGMA_TOOLTIP;The default radius of 1.0 usually fits well for base ISO.\nIncrease the value for high ISO shots, 5.0 is a good starting point.\nWatch the motion mask while changing the value. -!TP_RAW_PIXELSHIFTSMOOTH;Smooth transitions !TP_RAW_PIXELSHIFTSMOOTH_TOOLTIP;Smooth transitions between areas with motion and areas without.\nSet to 0 to disable transition smoothing.\nSet to 1 to either get the AMaZE/LMMSE result of the selected frame (depending on whether "Use LMMSE" is selected), or the median of all four frames if "Use median" is selected. -!TP_RESIZE_ALLOW_UPSCALING;Allow Upscaling -!TP_RETINEX_CURVEEDITOR_CD;L=f(L) !TP_RETINEX_CURVEEDITOR_CD_TOOLTIP;Luminance according to luminance L=f(L)\nCorrect raw data to reduce halos and artifacts. -!TP_RETINEX_CURVEEDITOR_LH;Strength=f(H) !TP_RETINEX_CURVEEDITOR_LH_TOOLTIP;Strength according to hue Strength=f(H)\nThis curve also acts on chroma when using the "Highlight" retinex method. -!TP_RETINEX_CURVEEDITOR_MAP;L=f(L) !TP_RETINEX_CURVEEDITOR_MAP_TOOLTIP;This curve can be applied alone or with a Gaussian mask or wavelet mask.\nBeware of artifacts! !TP_RETINEX_FREEGAMMA;Free gamma !TP_RETINEX_GAINOFFS;Gain and Offset (brightness) !TP_RETINEX_GAINTRANSMISSION;Gain transmission !TP_RETINEX_GAINTRANSMISSION_TOOLTIP;Amplify or reduce the transmission map to achieve the desired luminance.\nThe x-axis is the transmission.\nThe y-axis is the gain. -!TP_RETINEX_GAMMA_FREE;Free -!TP_RETINEX_GAMMA_HIGH;High -!TP_RETINEX_GAMMA_LOW;Low -!TP_RETINEX_GAMMA_MID;Middle !TP_RETINEX_GAMMA_TOOLTIP;Restore tones by applying gamma before and after Retinex. Different from Retinex curves or others curves (Lab, Exposure, etc.). !TP_RETINEX_GRAD;Transmission gradient !TP_RETINEX_GRADS;Strength gradient @@ -2216,8 +2225,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_RETINEX_GRAD_TOOLTIP;If slider at 0, all iterations are identical.\nIf > 0 Variance and Threshold are reduced when iterations increase, and conversely. !TP_RETINEX_HIGHLIG;Highlight !TP_RETINEX_HIGHLIGHT_TOOLTIP;Increase action of High algorithm.\nMay require you to re-adjust "Neighboring pixels" and to increase the "White-point correction" in the Raw tab -> Raw White Points tool. -!TP_RETINEX_HSLSPACE_LIN;HSL-Linear -!TP_RETINEX_HSLSPACE_LOG;HSL-Logarithmic !TP_RETINEX_ITER;Iterations (Tone-mapping) !TP_RETINEX_ITERF;Tone mapping !TP_RETINEX_ITER_TOOLTIP;Simulate a tone-mapping operator.\nHigh values increase the processing time. @@ -2278,9 +2285,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. !TP_WAVELET_EDGTHRESH_TOOLTIP;Change the repartition between the first levels and the others. The higher the threshold the more the action is centered on the first levels. Be careful with negative values, they increase the action of high levels and can introduce artifacts. !TP_WAVELET_EDRAD_TOOLTIP;This radius adjustment is very different from those in other sharpening tools. Its value is compared to each level through a complex function. In this sense, a value of zero still has an effect. -!TP_WAVELET_FINAL;Final Touchup -!TP_WAVELET_HIGHLIGHT;Highlight luminance range -!TP_WAVELET_HS1;Whole luminance range !TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. !TP_WAVELET_HUESKY_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. !TP_WAVELET_ITER;Delta balance levels @@ -2294,8 +2298,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_LEVELS;Wavelet levels !TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. !TP_WAVELET_LEVLABEL;Preview maximum possible levels = %1 -!TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength -!TP_WAVELET_LOWLIGHT;Shadow luminance range !TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. !TP_WAVELET_NOISE;Denoise and Refine !TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. @@ -2307,7 +2309,6 @@ ZOOMPANEL_ZOOMOUT;Oddal\nSkrót: - !TP_WAVELET_SETTINGS;Wavelet Settings !TP_WAVELET_SKIN;Skin targetting/protection !TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. -!TP_WAVELET_SKY;Sky targetting/protection !TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. !TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). !TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. From 4ea92d3e93712125f7ffc5bd23d132e3646a142a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 18 Feb 2020 18:06:21 +0100 Subject: [PATCH 260/453] Fix broken camonst.json --- rtengine/camconst.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 3deab9c38..f58167478 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1221,7 +1221,7 @@ Camera constants: { // Quality A, changes for raw crop which is wrong (larger) in dcraw "make_model": "Canon PowerShot S120", - "dcraw_matrix": [ 6961, -1685, -695, -4625, 12945, 1836, -1114, 2152, 5518 ] // ColorMatrix2 using illuminant D65 from Adobe DNG Converter 12.2 + "dcraw_matrix": [ 6961, -1685, -695, -4625, 12945, 1836, -1114, 2152, 5518 ], // ColorMatrix2 using illuminant D65 from Adobe DNG Converter 12.2 "raw_crop": [ 120, 30, 4024, 3030 ], "masked_areas": [ 32, 2, 3028, 80 ], "ranges": { "white": 4050 } From e7a4ae3c9fa987d625b537573fd811a9cb5d2fb8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 18 Feb 2020 18:07:45 +0100 Subject: [PATCH 261/453] Fix segfault on close of RT when RT was started with a filename as argument --- rtgui/rtwindow.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtgui/rtwindow.cc b/rtgui/rtwindow.cc index 8cfeb8ec0..fc315e1b7 100644 --- a/rtgui/rtwindow.cc +++ b/rtgui/rtwindow.cc @@ -99,6 +99,8 @@ RTWindow::RTWindow () , bpanel (nullptr) , splash (nullptr) , btn_fullscreen (nullptr) + , iFullscreen (nullptr) + , iFullscreen_exit (nullptr) , epanel (nullptr) , fpanel (nullptr) { From 020051fd4bcb582c5edcd03ce1851374b876ab13 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 18 Feb 2020 20:02:51 +0100 Subject: [PATCH 262/453] Better formatting of generateRtexifUpdates No functional changes. --- tools/generateRtexifUpdates | 87 ++++++++++++++++++++++++++++++++----- 1 file changed, 75 insertions(+), 12 deletions(-) diff --git a/tools/generateRtexifUpdates b/tools/generateRtexifUpdates index 72a97862e..b4ace209d 100755 --- a/tools/generateRtexifUpdates +++ b/tools/generateRtexifUpdates @@ -32,7 +32,10 @@ echo #------------------------------------------------------------------------------ # Canon printf '%s\n' "Saving ${tmpdir}/canon_lenses" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='LensType']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -canon:all) | sort -fuV > "${tmpdir}/canon_lenses" +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='LensType']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -canon:all) | sort -fuV > "${tmpdir}/canon_lenses" #In :10.1 Sigma 50mm f/2.8 EX #Out: {10, "Sigma 50mm f/2.8 EX"}, @@ -55,7 +58,11 @@ sed -r -i \ # replace with '] = "' # append '";' printf '%s\n' "Saving ${tmpdir}/canon_cameras" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='CanonModelID']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -canon:all) | sort -fuV > "${tmpdir}/canon_cameras" +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='CanonModelID']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -canon:all) | sort -fuV > "${tmpdir}/canon_cameras" + sed -r -i \ -e 's/^/ choices[/' \ -e 's/\t/] = "/' \ @@ -65,28 +72,84 @@ sed -r -i \ #------------------------------------------------------------------------------ # Nikon LensIDs are composite tags printf '%s\n' "Saving ${tmpdir}/nikon" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='LensID']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -composite:all) > "${tmpdir}/nikon" -sed -r -i -e '/^... /d' -e 's/^/ {"/' -e 's/([A-F0-9]+)[A-F0-9.]*\t/\1", "/' -e 's/$/"},/' -e 's|(.* ")(.*) F([0-9]+)|\1\2 f/\3|' -e 's| F/([0-9]+)| f/\1|' "${tmpdir}/nikon" + +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='LensID']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -composite:all) > "${tmpdir}/nikon" + +sed -r -i \ + -e '/^... /d' \ + -e 's/^/ {"/' \ + -e 's/([A-F0-9]+)[A-F0-9.]*\t/\1", "/' \ + -e 's/$/"},/' \ + -e 's|(.* ")(.*) F([0-9]+)|\1\2 f/\3|' \ + -e 's| F/([0-9]+)| f/\1|' \ + "${tmpdir}/nikon" #------------------------------------------------------------------------------ # Olympus printf '%s\n' "Saving ${tmpdir}/olympus" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='LensType']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -olympus:all) | sort -fuV > "${tmpdir}/olympus" -sed -r -i -e '/0 00 00\tNone/d' -e 's/^/ lenses["0/' -e 's/\t/"] = "/' -e 's/$/";/' -e 's| F([0-9]+)| f/\1|g' "${tmpdir}/olympus" + +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='LensType']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -olympus:all) | sort -fuV > "${tmpdir}/olympus" + +sed -r -i \ + -e '/0 00 00\tNone/d' \ + -e 's/^/ lenses["0/' \ + -e 's/\t/"] = "/' \ + -e 's/$/";/' \ + -e 's| F([0-9]+)| f/\1|g' \ + "${tmpdir}/olympus" #------------------------------------------------------------------------------ # Pentax printf '%s\n' "Saving ${tmpdir}/pentax" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='LensType']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -pentax:all) | sort -fuV > "${tmpdir}/pentax" -sed -r -i -e 's/^/ choices.insert (p_t (256 * /' -e 's/([0-9]+) ([0-9]+)([0-9.]*)/\1 + \2/' -e 's/\t/, "/' -e 's/$/"));/' -e 's| F([0-9]+)| f/\1|' "${tmpdir}/pentax" + +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='LensType']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -pentax:all) | sort -fuV > "${tmpdir}/pentax" + +sed -r -i \ + -e 's/^/ choices.insert (p_t (256 * /' \ + -e 's/([0-9]+) ([0-9]+)([0-9.]*)/\1 + \2/' \ + -e 's/\t/, "/' \ + -e 's/$/"));/' \ + -e 's| F([0-9]+)| f/\1|' \ + "${tmpdir}/pentax" #------------------------------------------------------------------------------ # Sony printf '%s\n' "Saving ${tmpdir}/sony" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='LensType']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -sony:all) | sort -fuV > "${tmpdir}/sony" + +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='LensType']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -sony:all) | sort -fuV > "${tmpdir}/sony" + # Sony has more lenses under the LensType2 tag printf '%s\n' "Saving ${tmpdir}/sony-lenstype2" -xmlstarlet sel -T -t -m "taginfo/table/tag[@name='LensType2']/values/key" -v "concat(@id,' ',val)" -n < <("$et" -listx -sony:all) | sort -fuV > "${tmpdir}/sony-lenstype2" -sed -r -i -e 's/^/ {/' -e 's/([0-9]+)[0-9.]*\t/\1, "/' -e 's/$/"},/' -e 's| F([0-9]+)| f/\1|g' "${tmpdir}/sony" -sed -r -i -e '/255\tTamron Lens (255)/d' -e 's/([0-9]+)[0-9.]*\t/\1, "/' -e 's/^/ choices.insert (p_t (/' -e 's/$/"));/' -e 's| F([0-9]+)| f/\1|g' "${tmpdir}/sony-lenstype2" + +xmlstarlet sel -T -t \ + -m "taginfo/table/tag[@name='LensType2']/values/key" \ + -v "concat(@id,' ',val)" \ + -n < <("$et" -listx -sony:all) | sort -fuV > "${tmpdir}/sony-lenstype2" + +sed -r -i \ + -e 's/^/ {/' \ + -e 's/([0-9]+)[0-9.]*\t/\1, "/' \ + -e 's/$/"},/' \ + -e 's| F([0-9]+)| f/\1|g' \ + "${tmpdir}/sony" + +sed -r -i \ + -e '/255\tTamron Lens (255)/d' \ + -e 's/([0-9]+)[0-9.]*\t/\1, "/' \ + -e 's/^/ choices.insert (p_t (/' \ + -e 's/$/"));/' \ + -e 's| F([0-9]+)| f/\1|g' \ + "${tmpdir}/sony-lenstype2" From 533db7aa17d50c331b1c00b533bf83ac41a64dff Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Wed, 19 Feb 2020 12:03:11 -0800 Subject: [PATCH 263/453] mac bundle: fix -cli codesigning --- tools/osx/macosx_bundle.sh | 53 +++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 27 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index be76face3..23c5df2b9 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -40,11 +40,11 @@ msg "Modifying install names: ${x}" { # id if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then -echo " install_name_tool -id '@rpath/$(basename "${x}")' '${x}'" +install_name_tool -id @rpath/$(basename ${x}) ${x} fi GetDependencies "${x}" | while read -r y do -echo " install_name_tool -change '${y}' '@rpath/$(basename "${y}")' '${x}'" +install_name_tool -change ${y} @rpath/$(basename ${y}) ${x} done } | bash -v done @@ -107,6 +107,8 @@ __EOS__ minimum_macos_version=${MINIMUM_SYSTEM_VERSION} LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" +CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" +NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" @@ -118,7 +120,7 @@ EXECUTABLE="${MACOS}/rawtherapee" GDK_PREFIX="${LOCAL_PREFIX}/local/" msg "Removing old files:" -rm -rf "${APP}" "${PROJECT_NAME}_*.dmg" "*zip" +rm -rf "${APP}" *.dmg *.zip msg "Creating bundle container:" install -d "${RESOURCES}" \ @@ -133,8 +135,10 @@ echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutT echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -msg "Copying release files:" +msg "Copying binary executable files." ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" + +msg "Copying Resources directory." ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" # Copy the Lensfun database into the app bundle @@ -147,7 +151,7 @@ ditto ${LOCAL_PREFIX}/local/lib/liblensfun.2.dylib "${CONTENTS}/Frameworks/lible # Copy libomp to Frameworks ditto ${LOCAL_PREFIX}/local/lib/libomp.dylib "${CONTENTS}/Frameworks" -msg "Copying dependencies from ${GTK_PREFIX}:" +msg "Copying dependencies from ${GTK_PREFIX}." CheckLink "${EXECUTABLE}" # dylib install names @@ -238,7 +242,7 @@ s|@shortVersion@|${PROJECT_VERSION}| s|@arch@|${arch}|" \ "${CONTENTS}/Info.plist" plutil -convert binary1 "${CONTENTS}/Info.plist" -update-mime-database -V "${CONTENTS}/Resources/share/mime" +update-mime-database -V "${RESOURCES}/share/mime" msg "Build glib database:" mkdir -p ${RESOURCES}/share/glib-2.0 @@ -246,37 +250,34 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas "${LOCAL_PREFIX}/local/bin/glib-compile-schemas" "${RESOURCES}/share/glib-2.0/schemas" # Append an LC_RPATH -msg "Registering @rpath into the executable:" -echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}'" | bash -v -echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${EXECUTABLE}-cli'" | bash -v +msg "Registering @rpath into the main executable." +install_name_tool -add_rpath ${LIB} ${EXECUTABLE} ModifyInstallNames # fix @rpath in Frameworks -msg "Registering @rpath in Frameworks folder:" -for frameworklibs in "${CONTENTS}"/Frameworks/* ; do -echo " install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib '${frameworklibs}'" | bash -v -echo " install_name_tool -add_rpath /Applications/RawTherapee.app/Contents/Frameworks '${frameworklibs}'" | bash -v +msg "Registering @rpath in Frameworks folder." +for frameworklibs in "${LIB}"/*{dylib,so} ; do +install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib ${frameworklibs} +install_name_tool -add_rpath "${LIB}" ${frameworklibs} done +install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABLE}"-cli +install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli -# Sign the app -CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" +# Codesign the app if ! test -z "${CODESIGNID}" ; then -msg "Codesigning:" -install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CONTENTS}"/rt.entitlements -plutil -convert binary1 "${CONTENTS}"/rt.entitlements -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${CONTENTS}"/rt.entitlements -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}" -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp --entitlements "${CONTENTS}"/rt.entitlements "${EXECUTABLE}"-cli +msg "Codesigning Application." +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements +plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements +mv "${EXECUTABLE}"-cli "${LIB}" for frameworklibs in "${LIB}"/* ; do -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --timestamp "${frameworklibs}" +codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}" done -codesign --deep --preserve-metadata=identifier,entitlements,runtime --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CONTENTS}/rt.entitlements" "${APP}" +codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" spctl -a -vvvv ${APP} fi # Notarize the app -NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" if ! test -z "$NOTARY" ; then msg "Notarizing the application:" ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" @@ -308,7 +309,6 @@ local srcDir="$(mktemp -dt $$)" msg "Preparing disk image sources at ${srcDir}:" cp -R "${APP}" "${srcDir}" -ditto "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt "${srcDir}" ln -s /Applications "${srcDir}" # Web bookmarks @@ -331,7 +331,7 @@ hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAM # Sign disk image if ! test -z "$CODESIGNID" ; then -codesign --deep --force -v -s ""${CODESIGNID}"" --timestamp "${dmg_name}.dmg" +codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" fi # Notarize the dmg @@ -363,7 +363,6 @@ fi # Zip disk image for redistribution msg "Zipping disk image for redistribution:" -zip "${dmg_name}.zip" "${dmg_name}.dmg" "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" rm "${dmg_name}.dmg" msg "Removing disk image caches:" rm -rf "${srcDir}" From 3bbdd89c8f6edb32b06f330ad7fb8c1f15abab55 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Wed, 19 Feb 2020 14:40:42 -0800 Subject: [PATCH 264/453] mac: fix -cli and add a linker flag --- CMakeLists.txt | 7 +++++-- cmake/modules/FindMacIntegration.cmake | 2 +- tools/osx/macosx_bundle.sh | 12 ++++++++---- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8503fe573..05efc3a3b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,14 +113,14 @@ endif() if(APPLE) if(CMAKE_CXX_COMPILER MATCHES "g\\+\\+-mp-4.[5-8]" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "g\\+\\+-mp-4.[5-8]") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /usr/lib/libstdc++.6.dylib") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /usr/lib/libstdc++.6.dylib -Wl,-headerpad_max_install_names -mtune=generic") message(STATUS "CMAKE_CXX_COMPILER is MacPorts GCC.\n CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") endif() # Set minimum system version set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -headerpad_max_install_names") + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-headerpad_max_install_names -mtune=generic") endif() option(USE_EXPERIMENTAL_LANG_VERSIONS "Build with -std=c++0x" OFF) @@ -270,6 +270,9 @@ if(APPLE) elseif(NOT DEFINED LOCAL_PREFIX) set(LOCAL_PREFIX "/usr") endif() + if("${FANCY_DMG}") + set(FANCY_DMG ON CACHE BOOL "Use the andreyvit/create-dmg script to make a fancy .dmg") + endif() endif() # Enforce absolute paths for non-bundle builds: diff --git a/cmake/modules/FindMacIntegration.cmake b/cmake/modules/FindMacIntegration.cmake index a67c31baa..a6729ad7f 100644 --- a/cmake/modules/FindMacIntegration.cmake +++ b/cmake/modules/FindMacIntegration.cmake @@ -24,7 +24,7 @@ mark_as_advanced(MACINTEGRATION_LIBRARY) # handle the QUIETLY and REQUIRED arguments and set MACINTEGRATION_FOUND to TRUE if # all listed variables are TRUE include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(MACINTEGRATION DEFAULT_MSG MACINTEGRATION_LIBRARY MACINTEGRATION_INCLUDE_DIR) +find_package_handle_standard_args(MacIntegration DEFAULT_MSG MACINTEGRATION_LIBRARY MACINTEGRATION_INCLUDE_DIR) if(MACINTEGRATION_FOUND) set(MacIntegration_LIBRARIES ${MACINTEGRATION_LIBRARY}) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 23c5df2b9..6beefd83f 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -40,11 +40,11 @@ msg "Modifying install names: ${x}" { # id if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then -install_name_tool -id @rpath/$(basename ${x}) ${x} +install_name_tool -id /Applications/"${LIB}"/$(basename ${x}) ${x} fi GetDependencies "${x}" | while read -r y do -install_name_tool -change ${y} @rpath/$(basename ${y}) ${x} +install_name_tool -change ${y} /Applications/"${LIB}"/$(basename ${y}) ${x} done } | bash -v done @@ -109,6 +109,8 @@ LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" +FANCY_DMG="$(cmake .. -LA -N | grep "FANCY_DMG" | cut -d "=" -f2)" +echo ${FANCY_DMG} || echo "Building plain .dmg" APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" @@ -251,7 +253,7 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas # Append an LC_RPATH msg "Registering @rpath into the main executable." -install_name_tool -add_rpath ${LIB} ${EXECUTABLE} +install_name_tool -add_rpath /Applications/"${LIB}" ${EXECUTABLE} ModifyInstallNames @@ -259,7 +261,7 @@ ModifyInstallNames msg "Registering @rpath in Frameworks folder." for frameworklibs in "${LIB}"/*{dylib,so} ; do install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib ${frameworklibs} -install_name_tool -add_rpath "${LIB}" ${frameworklibs} +install_name_tool -add_rpath /Applications/"${LIB}" ${frameworklibs} done install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABLE}"-cli install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli @@ -370,3 +372,5 @@ rm -rf "${srcDir}" CreateDmg msg "Finishing build:" echo "Script complete." +# +# TODO filter out the benign errors From a78c4b99df54ff9a12b31e9b3f6796ebee665806 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Wed, 19 Feb 2020 15:51:50 -0800 Subject: [PATCH 265/453] mac:send an absolute path to config.h.in via CMakeLists.txt --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 05efc3a3b..1947d2c1b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,7 +168,7 @@ endif() if(NOT DEFINED DATADIR) if(BUILD_BUNDLE) if(APPLE) - set(DATADIR "../Resources") + set(DATADIR "/Applications/RawTherapee.app/Contents/Resources") else() set(DATADIR .) endif() @@ -180,7 +180,7 @@ endif() if(NOT DEFINED LIBDIR) if(BUILD_BUNDLE) if(APPLE) - set(LIBDIR "../Frameworks") + set(LIBDIR "/Applications/RawTherapee.app/Contents/Frameworks") else() set(LIBDIR .) endif() From 9bc078c5bb88addb87ee40bb93478ac0bd29c582 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Thu, 20 Feb 2020 01:17:49 -0800 Subject: [PATCH 266/453] mac:export non-relative paths to config.h --- CMakeLists.txt | 4 ++-- rtengine/CMakeLists.txt | 4 ++++ rtgui/config.h.in | 9 +++++++++ tools/osx/macosx_bundle.sh | 24 +++++++++++------------- 4 files changed, 26 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1947d2c1b..5cef1fc97 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -168,7 +168,7 @@ endif() if(NOT DEFINED DATADIR) if(BUILD_BUNDLE) if(APPLE) - set(DATADIR "/Applications/RawTherapee.app/Contents/Resources") + set(DATADIR "../Resources/share") else() set(DATADIR .) endif() @@ -180,7 +180,7 @@ endif() if(NOT DEFINED LIBDIR) if(BUILD_BUNDLE) if(APPLE) - set(LIBDIR "/Applications/RawTherapee.app/Contents/Frameworks") + set(LIBDIR "../Frameworks") else() set(LIBDIR .) endif() diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 5f59da371..3ac8a8071 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -195,4 +195,8 @@ target_link_libraries(rtengine rtexif ${KLT_LIBRARIES} ) +if(APPLE) +install(FILES ${CAMCONSTSFILE} DESTINATION "${CMAKE_INSTALL_PREFIX}/RawTherapee.app/Contents/Resources" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) +else() install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) +endif() diff --git a/rtgui/config.h.in b/rtgui/config.h.in index 95217b689..570f263b8 100644 --- a/rtgui/config.h.in +++ b/rtgui/config.h.in @@ -22,10 +22,19 @@ #cmakedefine BUILD_BUNDLE #cmakedefine HAVE_UNALIGNED_MALLOC + +#ifdef __APPLE__ +#define DATA_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources/share" +#define DOC_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources" +#define CREDITS_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources" +#define LICENCE_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources" +#define LENSFUN_DB_PATH "${LENSFUNDBDIR}" +#else #define DATA_SEARCH_PATH "${DATADIR}" #define DOC_SEARCH_PATH "${DOCDIR}" #define CREDITS_SEARCH_PATH "${CREDITSDIR}" #define LICENCE_SEARCH_PATH "${LICENCEDIR}" #define LENSFUN_DB_PATH "${LENSFUNDBDIR}" +#endif #endif diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 6beefd83f..44908cb4d 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -110,7 +110,7 @@ EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" FANCY_DMG="$(cmake .. -LA -N | grep "FANCY_DMG" | cut -d "=" -f2)" -echo ${FANCY_DMG} || echo "Building plain .dmg" +echo ${FANCY_DMG} APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" @@ -125,17 +125,14 @@ msg "Removing old files:" rm -rf "${APP}" *.dmg *.zip msg "Creating bundle container:" -install -d "${RESOURCES}" \ -"${MACOS}" \ -"${LIB}" \ -"${ETC}" +install -d "${APP}" "${RESOURCES}" "${MACOS}" "${LIB}" "${ETC}" -echo "\n--------\n" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt -echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}"/Resources/AboutThisBuild.txt +echo "\n--------\n" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" +echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" +echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}/${RESOURCES}/AboutThisBuild.txt" +echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" +echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" +echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" msg "Copying binary executable files." ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" @@ -318,8 +315,8 @@ function CreateWebloc { defaults write "${srcDir}/$1" URL "$2" mv "${srcDir}/$1".{plist,webloc} } -CreateWebloc 'Website' 'http://www.rawtherapee.com/' -CreateWebloc 'Manual' 'http://rawpedia.rawtherapee.com/' +CreateWebloc 'Website' 'https://www.rawtherapee.com/' +CreateWebloc 'Manual' 'https://rawpedia.rawtherapee.com/' # Disk image name dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" @@ -374,3 +371,4 @@ msg "Finishing build:" echo "Script complete." # # TODO filter out the benign errors +# Build a fancy dmg From d21f051f437e6437bd784a3eb0e4f4b9edcc9e08 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Thu, 20 Feb 2020 01:56:00 -0800 Subject: [PATCH 267/453] mac:sync build directories locations --- CMakeLists.txt | 36 ++++++++++++++++++++++++++++++------ tools/osx/macosx_bundle.sh | 20 ++++++++++++-------- 2 files changed, 42 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5cef1fc97..a9f96a4d6 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -200,7 +200,11 @@ endif() if(NOT DEFINED DOCDIR) if(BUILD_BUNDLE) - set(DOCDIR "${DATADIR}/share/doc") + if(APPLE) + set(DOCDIR "${DATADIR}/doc") + else() + set(DOCDIR "${DATADIR}/share/doc") + endif() else() set(DOCDIR "${CMAKE_INSTALL_PREFIX}/share/doc/rawtherapee") endif() @@ -208,7 +212,11 @@ endif() if(NOT DEFINED CREDITSDIR) if(BUILD_BUNDLE) - set(CREDITSDIR "${DATADIR}") + if(APPLE) + set(CREDITSDIR "${DATADIR}") + else() + set(CREDITSDIR "${DATADIR}") + endif() else() set(CREDITSDIR "${CMAKE_INSTALL_PREFIX}/share/doc/rawtherapee") endif() @@ -216,7 +224,11 @@ endif() if(NOT DEFINED LICENCEDIR) if(BUILD_BUNDLE) - set(LICENCEDIR "${DATADIR}") + if(APPLE) + set(LICENCEDIR "${CREDITSDIR}") + else() + set(LICENCEDIR "${DATADIR}") + endif() else() set(LICENCEDIR "${CMAKE_INSTALL_PREFIX}/share/doc/rawtherapee") endif() @@ -225,7 +237,11 @@ endif() if(NOT DEFINED DESKTOPDIR) if(UNIX) if(BUILD_BUNDLE) - set(DESKTOPDIR "${DATADIR}/share/applications") + if(APPLE) + set(DESKTOPDIR "${DATADIR}/applications") + else() + set(DESKTOPDIR "${DATADIR}/share/applications") + endif() else() set(DESKTOPDIR "${CMAKE_INSTALL_PREFIX}/share/applications") endif() @@ -235,7 +251,11 @@ endif() if(NOT DEFINED ICONSDIR) if(UNIX) if(BUILD_BUNDLE) - set(ICONSDIR "${DATADIR}/share/icons") + if(APPLE) + set(ICONSDIR "${DATADIR}/icons") + else() + set(ICONSDIR "${DATADIR}/share/icons") + endif() else() set(ICONSDIR "${CMAKE_INSTALL_PREFIX}/share/icons") endif() @@ -245,7 +265,11 @@ endif() if(NOT DEFINED APPDATADIR) if(UNIX) if(BUILD_BUNDLE) - set(APPDATADIR "${DATADIR}/share/metainfo") + if(APPLE) + set(APPDATADIR "${DATADIR}/share/metainfo") + else() + set(APPDATADIR "${DATADIR}/share/metainfo") + endif() else() set(APPDATADIR "${CMAKE_INSTALL_PREFIX}/share/metainfo") endif() diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 44908cb4d..1d184899f 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -12,7 +12,7 @@ fNormal="$(tput sgr0)" fBold="$(tput bold)" # Colors depend upon the user's terminal emulator color scheme - what is readable for you may be not readable for someone else. -fMagenta="$(tput setaf 5)" +fMagenta="$(tput setaf 3)" fRed="$(tput setaf 1)" function msg { @@ -125,11 +125,16 @@ msg "Removing old files:" rm -rf "${APP}" *.dmg *.zip msg "Creating bundle container:" -install -d "${APP}" "${RESOURCES}" "${MACOS}" "${LIB}" "${ETC}" +cd "${CMAKE_INSTALL_PREEFIX}" +install -d "${APP}" +install -d "${RESOURCES}" +install -d "${MACOS}" +install -d "${LIB}" +install -d "${ETC}" echo "\n--------\n" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" -echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}/${RESOURCES}/AboutThisBuild.txt" +echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" @@ -250,15 +255,15 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/glib-2.0/schemas # Append an LC_RPATH msg "Registering @rpath into the main executable." -install_name_tool -add_rpath /Applications/"${LIB}" ${EXECUTABLE} +install_name_tool -add_rpath /Applications/"${LIB}" "${EXECUTABLE}" ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder." for frameworklibs in "${LIB}"/*{dylib,so} ; do -install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib ${frameworklibs} -install_name_tool -add_rpath /Applications/"${LIB}" ${frameworklibs} +install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib "${frameworklibs}" +install_name_tool -add_rpath /Applications/"${LIB}" "${frameworklibs}" done install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABLE}"-cli install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli @@ -370,5 +375,4 @@ CreateDmg msg "Finishing build:" echo "Script complete." # -# TODO filter out the benign errors -# Build a fancy dmg +# TODO filter out the benign errors; Build a fancy dmg From 4e4faafb08cea176173e86f1403d16968e36c9af Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Thu, 20 Feb 2020 03:14:46 -0800 Subject: [PATCH 268/453] mac:fix destination of comconst.json --- CMakeLists.txt | 10 +++++++--- rtengine/CMakeLists.txt | 4 ++-- tools/osx/macosx_bundle.sh | 6 ++---- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a9f96a4d6..403314b07 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,7 +150,7 @@ endif() if(NOT DEFINED BUNDLE_BASE_INSTALL_DIR) if(APPLE) - set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}/MacOS") + set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BUILD_TYPE}") else() set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}") endif() @@ -266,7 +266,7 @@ if(NOT DEFINED APPDATADIR) if(UNIX) if(BUILD_BUNDLE) if(APPLE) - set(APPDATADIR "${DATADIR}/share/metainfo") + set(APPDATADIR "${DATADIR}/metainfo") else() set(APPDATADIR "${DATADIR}/share/metainfo") endif() @@ -561,7 +561,11 @@ install(FILES RELEASE_NOTES.txt DESTINATION "${CREDITSDIR}" OPTIONAL) # The standard location for man pages in Linux is /usr/share/man # Use "manpath" to see the search paths for man pages on your system. if(BUILD_BUNDLE) - install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${DATADIR}/share/man/man1") + if(APPLE) + install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${DATADIR}/man/man1") + else() + install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${DATADIR}/share/man/man1") + endif() else() install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") endif() diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 3ac8a8071..8d13f0d6e 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -196,7 +196,7 @@ target_link_libraries(rtengine rtexif ) if(APPLE) -install(FILES ${CAMCONSTSFILE} DESTINATION "${CMAKE_INSTALL_PREFIX}/RawTherapee.app/Contents/Resources" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) + install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) else() -install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) + install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) endif() diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 1d184899f..884979aba 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -12,7 +12,7 @@ fNormal="$(tput sgr0)" fBold="$(tput bold)" # Colors depend upon the user's terminal emulator color scheme - what is readable for you may be not readable for someone else. -fMagenta="$(tput setaf 3)" +fMagenta="$(tput setaf 5)" fRed="$(tput setaf 1)" function msg { @@ -125,8 +125,6 @@ msg "Removing old files:" rm -rf "${APP}" *.dmg *.zip msg "Creating bundle container:" -cd "${CMAKE_INSTALL_PREEFIX}" -install -d "${APP}" install -d "${RESOURCES}" install -d "${MACOS}" install -d "${LIB}" @@ -278,7 +276,7 @@ for frameworklibs in "${LIB}"/* ; do codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}" done codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" -spctl -a -vvvv ${APP} +spctl -a -vvvv "${APP}" fi # Notarize the app From 4dbbc405391770d43c8fa7caf9ce25b7d1bbede0 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Thu, 20 Feb 2020 11:43:11 -0800 Subject: [PATCH 269/453] mac:config.h.in use macos extention --- CMakeLists.txt | 15 ++++++++++----- UpdateInfo.cmake | 6 +++++- rtgui/config.h.in | 8 ++++---- tools/osx/macosx_bundle.sh | 15 ++++++++------- 4 files changed, 27 insertions(+), 17 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 403314b07..00604052e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -150,15 +150,20 @@ endif() if(NOT DEFINED BUNDLE_BASE_INSTALL_DIR) if(APPLE) - set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BUILD_TYPE}") + set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BUILD_TYPE}/MacOS") else() set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}") endif() endif() if(BUILD_BUNDLE) - set(BINDIR .) - set(CMAKE_INSTALL_PREFIX "${BUNDLE_BASE_INSTALL_DIR}") + if(APPLE) + set(BINDIR "${BUNDLE_BASE_INSTALL_DIR}") + set(CMAKE_INSTALL_PREFIX ".") + else() + set(BINDIR .) + set(CMAKE_INSTALL_PREFIX "${BUNDLE_BASE_INSTALL_DIR}") + endif() endif() if(NOT DEFINED BINDIR) @@ -168,7 +173,7 @@ endif() if(NOT DEFINED DATADIR) if(BUILD_BUNDLE) if(APPLE) - set(DATADIR "../Resources/share") + set(DATADIR "${CMAKE_BUILD_TYPE}/Resources/share") else() set(DATADIR .) endif() @@ -180,7 +185,7 @@ endif() if(NOT DEFINED LIBDIR) if(BUILD_BUNDLE) if(APPLE) - set(LIBDIR "../Frameworks") + set(LIBDIR "${CMAKE_BUILD_TYPE}/Frameworks") else() set(LIBDIR .) endif() diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index d1f532506..ce194bfe9 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -107,4 +107,8 @@ endif(WIN32) # build version.h from template configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") # build AboutThisBuild.txt from template -configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") +if(APPLE) + configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") +else() + configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") +endif() diff --git a/rtgui/config.h.in b/rtgui/config.h.in index 570f263b8..558c25f76 100644 --- a/rtgui/config.h.in +++ b/rtgui/config.h.in @@ -24,10 +24,10 @@ #cmakedefine HAVE_UNALIGNED_MALLOC #ifdef __APPLE__ -#define DATA_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources/share" -#define DOC_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources" -#define CREDITS_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources" -#define LICENCE_SEARCH_PATH "/Applications/RawTherapee.com/Contents/Resources" +#define DATA_SEARCH_PATH "/Applications/RawTherapee.app/Contents/Resources/share" +#define DOC_SEARCH_PATH "/Applications/RawTherapee.app/Contents/Resources" +#define CREDITS_SEARCH_PATH "/Applications/RawTherapee.app/Contents/Resources" +#define LICENCE_SEARCH_PATH "/Applications/RawTherapee.app/Contents/Resources" #define LENSFUN_DB_PATH "${LENSFUNDBDIR}" #else #define DATA_SEARCH_PATH "${DATADIR}" diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 884979aba..da44ed51e 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -130,19 +130,20 @@ install -d "${MACOS}" install -d "${LIB}" install -d "${ETC}" -echo "\n--------\n" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" -echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" -echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" -echo "Bundle date: $(date -Ru) ZULU" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" -echo "Bundle epoch: $(date +%s)" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" -echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${CMAKE_BUILD_TYPE}/Resources/AboutThisBuild.txt" - msg "Copying binary executable files." ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" msg "Copying Resources directory." +mv "${CMAKE_BUILD_TYPE}/Resources/share/AboutThisBuild.txt" ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" +echo "\n--------\n" >> "${RESOURCES}/AboutThisBuild.txt" +echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${RESOURCES}/AboutThisBuild.txt" +echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${RESOURCES}/AboutThisBuild.txt" +echo "Bundle date: $(date -Ru) ZULU" >> "${RESOURCES}/AboutThisBuild.txt" +echo "Bundle epoch: $(date +%s)" >> "${RESOURCES}/AboutThisBuild.txt" +echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${RESOURCES}/AboutThisBuild.txt" + # Copy the Lensfun database into the app bundle mkdir -p "${RESOURCES}/share/lensfun" ditto ${LOCAL_PREFIX}/local/share/lensfun/version_2/* "${RESOURCES}/share/lensfun" From e53113ca6d28f77a498cf68d9bb6451f2f44343e Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Thu, 20 Feb 2020 12:01:11 -0800 Subject: [PATCH 270/453] mac:add a destination --- tools/osx/macosx_bundle.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index da44ed51e..6ceff6592 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -134,7 +134,7 @@ msg "Copying binary executable files." ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" msg "Copying Resources directory." -mv "${CMAKE_BUILD_TYPE}/Resources/share/AboutThisBuild.txt" +mv "${CMAKE_BUILD_TYPE}/Resources/share/AboutThisBuild.txt" "${RESOURCES}" ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" echo "\n--------\n" >> "${RESOURCES}/AboutThisBuild.txt" From e81d09aa567ddc065805e737141de9a576ecb461 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sat, 22 Feb 2020 15:37:25 -0800 Subject: [PATCH 271/453] mac:build a fancy .dmg --- tools/osx/macosx_bundle.sh | 38 +++++++++++++++++++++++++++++--------- 1 file changed, 29 insertions(+), 9 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 6ceff6592..e68d2659c 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -110,7 +110,9 @@ EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" FANCY_DMG="$(cmake .. -LA -N | grep "FANCY_DMG" | cut -d "=" -f2)" -echo ${FANCY_DMG} +if [[ -n ${FANCY_DMG} ]] ; then +echo "Fancy .dmg build is ON." +fi APP="${PROJECT_NAME}.app" CONTENTS="${APP}/Contents" @@ -134,13 +136,13 @@ msg "Copying binary executable files." ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" msg "Copying Resources directory." -mv "${CMAKE_BUILD_TYPE}/Resources/share/AboutThisBuild.txt" "${RESOURCES}" +mv AboutThisBuild.txt "${RESOURCES}" ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" echo "\n--------\n" >> "${RESOURCES}/AboutThisBuild.txt" echo "Bundle system: $(sysctl -n machdep.cpu.brand_string)" >> "${RESOURCES}/AboutThisBuild.txt" echo "Bundle OS: $(sw_vers -productName) $(sw_vers -productVersion) $(sw_vers -buildVersion) $(uname -mrs)" >> "${RESOURCES}/AboutThisBuild.txt" -echo "Bundle date: $(date -Ru) ZULU" >> "${RESOURCES}/AboutThisBuild.txt" +echo "Bundle date: $(date -Ru) UTC" >> "${RESOURCES}/AboutThisBuild.txt" echo "Bundle epoch: $(date +%s)" >> "${RESOURCES}/AboutThisBuild.txt" echo "Bundle UUID: $(uuidgen|tr 'A-Z' 'a-z')" >> "${RESOURCES}/AboutThisBuild.txt" @@ -268,7 +270,7 @@ install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABL install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli # Codesign the app -if ! test -z "${CODESIGNID}" ; then +if [ -n "${CODESIGNID}" ] ; then msg "Codesigning Application." install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements @@ -281,7 +283,7 @@ spctl -a -vvvv "${APP}" fi # Notarize the app -if ! test -z "$NOTARY" ; then +if [ -n "$NOTARY" ] ; then msg "Notarizing the application:" ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` @@ -312,6 +314,7 @@ local srcDir="$(mktemp -dt $$)" msg "Preparing disk image sources at ${srcDir}:" cp -R "${APP}" "${srcDir}" +cp "${RESOURCES}"/share/LICENSE.txt "${srcDir}" ln -s /Applications "${srcDir}" # Web bookmarks @@ -319,8 +322,10 @@ function CreateWebloc { defaults write "${srcDir}/$1" URL "$2" mv "${srcDir}/$1".{plist,webloc} } -CreateWebloc 'Website' 'https://www.rawtherapee.com/' -CreateWebloc 'Manual' 'https://rawpedia.rawtherapee.com/' +CreateWebloc 'Website' 'https://www.rawtherapee.com/' +CreateWebloc 'Documentation' 'https://rawpedia.rawtherapee.com/' +CreateWebloc 'Forum' 'https://discuss.pixls.us/c/software/rawtherapee' +CreateWebloc 'Report Bug' 'https://github.com/Beep6581/RawTherapee/issues/new' # Disk image name dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" @@ -330,10 +335,25 @@ dmg_name="${dmg_name}_${lower_build_type}" fi msg "Creating disk image:" +if [ ! -z ${FANCY_DMG} ] ; then +echo "Building Fancy .dmg" +cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg.icns" "${srcDir}/.VolumeIcon.icns" +cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg-bkgd.png" "${srcDir}/.background/background.png" +SetFile -c incC "${srcDir}/.VolumeIcon.icns" +create-dmg ${dmg_name}.dmg "${srcDir}" \ +--volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" \ +--volicon "${srcDir}/.VolumeIcon.icns" \ +--sandbox-safe \ +--no-internet-enable \ +--eula LICENSE.txt \ +--hdiutil-verbose \ +--rez /Library/Developer/CommandLineTools/usr/bin/Rez +else hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" +fi # Sign disk image -if ! test -z "$CODESIGNID" ; then +if [ -n "$CODESIGNID" ] ; then codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" fi @@ -374,4 +394,4 @@ CreateDmg msg "Finishing build:" echo "Script complete." # -# TODO filter out the benign errors; Build a fancy dmg +# TODO filter out the benign errors From fc4db9a5021f586b0b48f634995091bb9b5e1454 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sat, 22 Feb 2020 15:38:51 -0800 Subject: [PATCH 272/453] mac:images for fancy .dmg --- tools/osx/rtdmg-bkgd.png | Bin 0 -> 375796 bytes tools/osx/rtdmg.icns | Bin 0 -> 1323996 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tools/osx/rtdmg-bkgd.png create mode 100644 tools/osx/rtdmg.icns diff --git a/tools/osx/rtdmg-bkgd.png b/tools/osx/rtdmg-bkgd.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd9b9d422d2ed51bbba349527d9b79e8f6e2199 GIT binary patch literal 375796 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

    jK#c%<}?7QpRr{ob%S61!21RR3X(itku@*NdYy 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%0A$j>lQ3Y=!HOhzQ)OtY=4N9`)Mjbpp2qU!- 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∨XGdTttfN2ffjl^@q8a~ujS&Z8SW+jvH>e3G?&3jc>c{2>h$1(Z!mgC9QS z3Vf&DrA2QP7ej!dA!6WvbtF zziDmCpNy>uzfqr>Zy7M?BOYX(nQ zRKXP{VC~DY;7>hFT5J83fBR(diPHww3?Q1NogX?F)1@6?a86x!!)kB|?qDMAaZbb} zsBqH5H8MxI_alzr=H|UG>(9u?7mdh;8U1syt)JdW{;#I3TMEDkVb{Z#z40*OR~l|A z1FrEm;{4BP4vgYC9eVyY9GHfs!D@UOlc#r1{F6*W=bNpsT)mMssWkQ{&Z=gk+VPxG z8t;QN*xAkMysM*vZx_SDIruc#Q=Q`2d32_9u5r`(#Orit-4X&JFhXQpJNzbmq+3EO z9W-Ht7-0b36D&Ug6i+*G(*zkMav?X@8NE0Egmn}g97c}92#s;YF)tz2O?OtzIZFYi zp-tucsE(b=Z)5~XX~S>iPiRs~r7M1M3;_a?Vy6hN1s1#!F=N0*K#vorTqBf}$CUOM z5%O0~v{L%nQQZ8Bp8=5zh{O?mcto*Md>69W??Ujz;tGcFF)&8l&oZy9tTyFwYkhWA zXGMPalF%(~DObu@^*wu>weyVZU&$p$W<4lo0{xRuKRNu}-~HX;R<1c7ez>DR8PJ7p z#(<5HHmaf1jK`|KAP#bMV`gIN0e>u;Ske&hbc2}<%81DCiGjdR`;hJ@xishME4~Sl zQvk{1ohX02{ij1@OrGE#ftj< zIrDl9|9|T_g>QS=httB{FSE`_nd! zz&jIGXn$6^Pt#u!FD9Go;pdY@5lq2-eq~il^;5c}|TU=?r4!Uu@KZPMmh8eR6yF4dN)6 zQkGXjYfn=J&H%`5fFFZP|GS$0z1HN)`0fEXB_o05x2zjj6HKMNy9L*GN&~-@urUGxUMJlc11p3y zItqaF*1YSu?Yw~)e>?k1QGwqM7g#h=VwB|GO~0S?HvO1VcMOhjA=sp;)xXP=@+bHS zo0tKs^XJ`EHN}op>2>@OQfMJq&_Om*GV9->t?|jr2>yc)KIpotqkcx@=#!hZeIsOo z2p%+ajX!zG+lDODr6X`CMEM)}QkCat4*@ka@iw&Z0>AI=A%ks(BK z*`@!@-OGnhb6xLmfBoyjN4a(wJcUfCjsmwlG4)4@Tb{WZ8sz4F03LLM@uEKAz=vE_ z8Dr^THagxt{NU}kdm3S_Eo)nNl_QYZ=`W48^-4Cv-HhR*GU&zGeZ35T3x^-ZyuEp2 z9g%x{Ez`vg30~g}q2!(lYdwZt>lr-CiZV_egK6gTE-X$NxK)mN7mnrK0#4EjSSj*^ zGfvuLn1H@)3M=@1P4HQcHC*l5w>aAS&m4q3wz92 zeZQL}ox$Ciu^}u;-6+}1i@pPmesg5n4hB93i+_&QS~gH-`)2yB2;~ni7?<2K;w{gq zg%el0LeHi2iE-LX4V^q+6WrbQ3jlKKY~LC7C%2<>dWEW3O)jXCLmCZe!Bb+*>Wi(N%&^>fAfMf zLZT8P@&T>A?>+%WK;lgKo9@1q{QyS7cHqDJ7k|;6_XG@OU)uPU9}YO9@Gf3lecy*) zo;3e#%!=|Jw>OT25okuq3;+g>C&e$H3!Uy??;QbRwX%AOk7BH_%R6CB8M?mLDFF1~ z%Z1RfZiicS)qM~6*tGdbN;eNK17YD#-37h1eMb&&CjefJp8;gFiIxiUz^Ef- zk>9j4JZQ7Z6Fc|=cKGP?Cx`#}{p9)d2Zv{Ozc^g@^0UL;Oq1Wu{Qw+T4qe>5ueX!G zaQ*vm-$J_u?89pcAmGBHxpeH{UVk;SQLO?hRy$95)oJSdVtVZLY%E-&LF^uLF|}>? zTMiqKh2pC^TL03v?4M8%aq0)2-X3T=Vsni2;z`=+TN5|$?XL-3iZ^Yym6m{zR%PBg zUCJM&PT7=>&{m}#cmsmVX&anAu3fdV8?ydr8}jn3laDgxshzcdCZhb>+V289{Woy? z%YYpH`*4G>3DESvV}Tq-Jj(u@PX9;7KFCzo)l46bvM&&r{K!$yrpfc%y?_HJE$ao5 z=RxIwM#N1IKdqo62TcFp%bftOr39FUY5HF}MuCfc=2O7l84E`KFXFv)#gS*7(O##Z z)2RrIc_$!*@16MR{K9oaifv%Ub2>St2zI9L+F9Xe1SH%CbSi`rMrd&NLraxu!Uzo0 z?3AI=6Q;nil&yb#l6TBViMj^hP(W%|)M)t~rw&tq{%>+}+8M@9oU+u$(MahaST}IHsXQUQ{YmGI^ox?xhp||pGGPLmW zbd_)NZ(a~$bB4P3VZ>`>87pb!70n@CzXgzxf+j4RM2i2LZ?cae%9_x%_u!ovL0{!e zy)OfDZUuZZdj$S6Cj`(>A>6s0GkDVD0h;4S3#D$B0=^Jb-ne(*evB)d9Pw28D*u(T zG{R$dd&`?Vrk*yIFPa0-C95d6=ZA07+AloLvQR|xrA+wj^0^TEeOC9S%&610{J zHax?qU4{&5jzMO^i1BD<$~*qH>^m}qsTb|=(WCn@s24KrUEONi)Bl$doi?el1&97- zHp`_{t9&c1Vy!kBpwK?`s_pV?uiAt1U&f<5sB@^=wXGu$o#Vhrp@`7?-u4_xu)dG21o zffp&E7l54yg#)!Z^Q2AqM^Qg<8(`j#hCv$Usm}qY5&IPIJAvWs0r1tUpRCtYe@%BC z>x2>{%4?RN34Nc$|H!PU>@abch6sc zt?_V!Gt#L5h*C0bO~&;|T;eHhBmRr|!kuYu;crH9%cHL8mk1c4F;mn_2rW9%Wo>)b z^8b*J?)WUPFZ#Xn&O4nAFzr2p3vO7I6JAQ4LBpZjMLvuMVSeB!)?QbGZE7|x*;BloIN`gAH%`vRV`p7gDZJ}_pu^*vI0EkX23A21X?2C zp63=oO8^1ti3qv6{`F$k`rmlVhQNgjtaAL#zxr1(jNZ!Tzx$>0SHJwFsP2<+{{hD+ zS`MYEH8U;oI-OvtrTYf7uaxk33#MFW)eIpA#hymO?xMO!+og3SHgy5~Vbp3;CqI`W*vd(hPigr~f4Vgn=2k zpzQiXXX4ax+FGam(=PW89?K0iV8spXTjh97Hmh&tw5Nky@Y_2h z|G~YX?rgyHu|4eg)7E?xNQZMBu=W2Bwzw4Y@|%$hpKkBhBL|Nk1IkjX835M+WBBT@ zOD>NQFfw~fe*QSifupiH8*%=A|yp!mnCZcI8P<?PDg9!EQFVnPAG_C9fN^?Ix!(X%9KCI`oGwU zV&%)|(9t`hw$ne56bxbJ7#-mw{#mZC^-&yQFJ%TmIy=^nE(wq2YF10A$=me*j5Nl` zQC6GbzR3nbm)6+)<{tijqBql%9mP`0TmGZ`MsdwDg#6KqMj!4$FT=;w_foRCM&4~5;?w)@zn>X`FKTp& zX9Q6~_&i3NCns$4R;e?p?sT>#EA~&e{RGO27r}#Hc*RjzZ)LOJ*N;MT{AMD4b0^c{ zLH#$^zdHPPzsR={e)v)8dUWqchljbWDPT+ZQ}1ZX4~>+8BbVY6)b=}Z@)ExO@GLJ{ znif3f3E%t^w?cPGiwN8TJb|CE?O6&=r`wV)niHSm?($9jr+%)c4L->7i-;R9G4gzx zI{PJFzI^y9qxZe`@%2jk3n>3ZyBV8RPuiC@?5T{LWgZH9mIPY%FlF`jMYsCwzLVs& z>UPZ}%*2B%Qc*4e-hP@_mrNA7v>kr>V2_y)7sQbGt4!mH|4yVS&tf6 zp$USYzxUIu*T0hc64IoC58v-+6W=fY>7VL%Bcif4|CC|fp16(@DpSiFO!&=!VkA}J zB#kdDqF+6$Zw7;-*6LvIZe?Vv#oWqW`Z(~D+?W4RW&*~o))D@uPF$({;LhE{lNd2q zW3=>6082&zx{=w7`?qe@C~&&NtkJRksu%4HGJMN>@osG|i4wLc6}(OCKJEC?^rEy? zE1ggnK~AxEWE%{^MriE) zV8D*6Fg?DkH-f?M*mDz4A&@GA%V@*O|pf^jnR*d%BA8oi%q!yu)FH$VIN&kygu`|g@4kwF|B6?}QOCK`#D zT3fv6EqUI_p~x@mr57mv%wm|5f0Cb(>M{_F>em|XgN)=D0wWle$wsZt2n3OGT#Hh8 zm`~@L>hB27+HAs~GiDGLe{~QqD^4ZpQ&th`RM892bM+Uiz4>QeQ-}fF3*!9mDGr<)0H@gTM_;C~d1|nu z!1>(;a6LV+NYbeB7M$P3G~}`i;N15;wwVo)m0Q)g^j${-m=T-@=1<0P?A@2n_|7C}B30p~)HkZpKTR zOBuNuSuz4X$TT&@WRzdQ3txPWoyiZ4BkaL&oefBN2^eKo2F|-_`Ic=n3><;`hkyHT z3-?~~t000Hd|-@*;JBD6T6pHGd`6xIB1_Swd`WXDXXBq3jl}?PUb~7h#qLJFpfq(o zim@BGk_KP!mhhF=g%}GLpV_pyjITA-8eYZzL)8-YWds#R zw?B*8(=Yq5`nNx)!nc(e|z}VuYTD&g@^Hup4B|otem?c(5Koce~#kkCa=A})M{(uMZ|fo_P68M z*>bJ<5pwfR@^cD+vJP3#odT#o?|aw#RVE+4CY4*L?IdPlX($PA_OoD|sT!B_KvAsg&WuDq0c2JYO=S^J;{zqAN8Wi}{= z!o!D*hUbUZlEzJZT=8W8EgOje!APJOOJefv8oH&HgkQO8p9z99%8ma)?l|a##g_Jo zxVrV6Hwl8NG5(gb$%7xASFWWkUSTNbyAke5kimDjg=zIoJVh5g`V)Ul;r7=_4rb~^ zTUy3*X3)}}W~Qe`HF|UbYO7U)tzBO9kyA8G(Kg zq5hM+*QKG~O9$BIP8-y;@x402TIdJ?9j?mj%=6g60B@bDLQsdyZ#t@{-{5OHQX{_= ze$wX%rLJ-2ZhCP#@)!dZ4g^OWdYrc>jJj@}k)&yB>61}$P-Oq&U;fL(-)DsG{`rp1 zo19V(I|B!v5ab+b;)oMFny*Iq^P3T%qAPHcW`xa@sfqIEH^2E!%k;03C#BdCe8LI4 zu8ZfXJV8|BrT7xR%C!_)i>$-uxo+X6WUw0|ZI$2;Q#%T!7700G&ZH6>m&*)H| zwvCicU5vB*;IqHwgYeLV-)3eQ5$eJcK#iot<3X1;z{SnML;*n1RZ%s>bWLrX@|QTA6{ z!y6b%KRJc;7!udB1QF$bEzbwpY&ZTVfzeLPDs(0xN#JLMN$m@N*Ye#0vq0Jb1K?ru zyc#?!ZQv;5HbII>+09H@`U&1_e7w4)x$csq(5LHAw6`1obdQ<`hYz%Z{)bBPi;F5 z^I2|^{47fW`k+2zU?5l6Jv*b2=i|)W9VG#}f){!th%B zqHFo5{9sPX+!W*}?x%YCIp7)rfu9=y0X>TG()WZT5q#5#jHCSFS=OPDRDFK?_XeK- zIpM&$0dT^LKgBnFL!;98JcozVAdh&mbN^YaR*klXKpO6yH1M9S$#ZW!NCQv58356^ z=~UBsJarx&Y)%FgHeurYbWTp%D!V)>V&R_Bk1O7Jm!Q2l>2m+LsrBZUba%5Gf4&*N zfmCP^sPHim?nPml*4OF5D3B5M+i$&9Bj7i`{&f`3z0y#;&3Dm_9?IoX1V1{Xb|MWn zgC!-Ik&ZY*a|uv_XqBbPI5;S~-~INt8R=X<{P@Q|>4$ubmI*L)%429;yxsCoct?c6 zQ8;|UMl|HXb*3VT;3NF4%RkL#Fh&Ayqk;1G;g(cG6w;DC@RdGw7r4?sf;ISUKulp< z-evry!CcHKiWmZJH?)J?x^de@(wSlDa!~mcdRnezm?uGQ2BOax79)t0Y4TX@V%BsW z-?ZPrs8Bs=E5|mH5_z96bX^KPaMV~!J{NKizR&+&yBFi+)qDrw;WvlN->fNp{BjwR z9Isz9Tg31RC-a|jXGP;Hf5?bJ!oM{-PbTGGic_eIQNkA~;}{1fqp#%2T2_Azi!wKZ z@+gWLD>)ZZ_tvwh|m^Kc~~CEUC8?kp?PZH6%j3Jq}OOFuZf}bKfB& z;(j(jz8n+&X^xIQ3_q@1&azQ!c)>Oki4upu@>eg6K5e2iNqJxG5^MD(Z5u5ywu&wE z1g5y+wE@)z%Q5^`T772qLl;7Qk&C4K%-(4y_Ip_FVMv-86DA#6N*)sPyOAmXFF()j zjP`PeBiC61e1k8~_~ONh)B{|A;)K1(rOkblKGDt+7`I?) zHtDik2Rf4|FsmV-HUL1uF>z;7oxi?_1EaiN6n7r>-5k)!G`77G_l}=w%NHYqpP91C z>nZ0B0Ji|z1K?|bjth?amI2X-Go6M&ra+QDoqj3EcEr4k6E0o{&&%L0>{;bMkrn92 zm*tW4PIhs3A3#Qm6f4};`DX)JArn?*6e(`{uzMArL|H`0SYyn=-j2K-IU}^3?f*JE zrqRAc$;yvV6oz)LWr$FlV@`x2rwlD`ibvFJGALi7O}rv+{Q32-eia;-4)4A9v*I%1 zLBFyRmIQt=CQb7-{Mh4HeKdecjgw5~a>;*OkDKSw7IFmcMp z_;6ky9nw<<%0|AbOT6|;VUC}n)4Iz$m?{hW;}5R7;JRq`CkDWm`KIob+xPOx;*SqE z9^_C=M&ggRQ9e2?6ZweHm29Ll`hT1)Uti_PF<$E5P7_>ytoJneLClk%+qwV*CcCvmI&oxSs2k4);ULr5Fk2 zxrB()0%XXoEH=LvZ8HKSvn*?LAK0YXTIquG7oLEtlj6$zpi*~!oa?0hR=y4DW*(#%wE_vAl&~E_@ z8o}wa_D%`XSlE1fC!&$NKz8NmG|#i~JJ5444h*x-x$&oQVBetj%70RqpAoP*6?el@ zz=J5|>thI{F+WSA{$8FR1;$_`v38whg6F9dQT#gOK5hMp8{q)Hoq7a#-uH3ECt!MS z{8_^2$ez-t-0x+yXxjN%!U=`RLy>&W*R=BG#8H4Rg&reOv~i~2f4JT6|5bK{JKyg} z-=ioHZj6`NAwB1xhepbr5|n2J2f>ne&ij$A2{%nj0srCs_gkEw{`99Ud(%;rfxlow z9$XN>wYipwpH|6qsB%g-&ov_uzNUQTuCy^07M*4bjA)xnDVAPvy`yU7mCXnK~exSyKyn^Uxc3fx9%P8=i2t`xf}n%MKd7VP<&;Z ztYg4D!OOIXP;)QS@?7-w(cgglVW9cu&IKcV1x;1Z{n4+Rdw$5L5>7ispD=}t|E{NO z;`i0O`@tvZo-G|AuiuwosBLLudldYkG@O}=&{6{+ulm@u=iYJ*E_BVuyRT;FKTdyr zAzum1X1W@2;U}m1!v4C}S@T!{(=HfZ++^REGk>b!1E4+W6JTqcZ%@lc>R*Plc@GNr zLzpp?*Gjwc5(kHqBxZvicE3vkLYmVYS8}|RYadXEGfoL6bYQ;gxldXioCK%=zr8a9 z;0krl+SETw{F^9kSM$QrO+WC-k1*QuF}koHvIBrT){a{X_b`%;5TEzb$UBb zqd=QH^O?2q=<(r|O)*gVW);+DXASb)JACeO!{phrCeoCAGC$nQ&i`k*2lzn@E1yu7 ze|aamAZxZl9WnW?CZ01xbR*?&p7AR?h1R+XjD6_RUk+{3$d^I=a>~%Ql{B5HNqEaD zUuodt4=#Sj5R2V=kA%iwJ}0j6!CyQ{lU=%r4Q!swn2U)+4?ebiCQWJF_$s~M)ol&w zvONLd^TRXP7&Q!2ZrVwFN#`$m_3_5GZowRlGQr#;Yx(oiba|6c>5AX;TT6opH@&Z& zt&=1hd@>zgFbF^T;Qhm+>=C#a-agI#AJ+j-mgwQitEAH&r)Pp~k4!i=Tu~cOr=h2;grt0YkcW^R zXT(#N%&f^*`GtmY(xZhjP}-hnBOcoDH2G!5IBw%c`4a`-pryb|N0uUO9#dCFZ_c_SBx(3zq#Q9D(9pMye9>Gb z-TW3E>Q$*-c0@VLV@CbTg}0R6)1bO8V&D$y2)di7V|18=k30ZjAN6fg@{huu1DtSR8W`U3pXH%O_$UqeavF3S zW;&jpG>vrDvV0V1zXza3MZzxIoJDAJI`0xB)7F=eG8L~A>CEHy{>lZNE-(a_j_Jou zy1j4{wtDlzCcQ3uJC}#txqIjE`fIPZ!&(Nok?(|`tmCH_RuC=0K=D&(pM3mrmHR76 zcOhTvQ=VBnALTro*PI*}+MT_p?B(vBexEjd9D(MzVCK$4e9DWsjXxc=fj%Q(jzVsW zs}hQToEeI`C|cJSn`#dd>`IEmsL&^@xWQf$}Tk zD1YxGay`BGlArk1wfz|7UHrqlwv*5^GX`5WCy&6konR7|XN?Me`MV@3JK?1-TtNam z>A>-OZf=w+MKx~fYT|@XeYPB-eH6{4k>9i-VKo|dVbW3Xdne6Y<1DO&ogXjwA2Ril!$ zjp98XBM>Hi1M}z2AO7%gBUAnDwMDo(_45ez`}ydM&TZ=T z%Pa|);^(Sx5-v~p{W`jgLUX?Svs^giUVA452#hgm>W8M_@?>M z?|TZaCeBNZ5A-mI9)MU3{KC|E-wDTqdnAM0~{w0 z>7hiUbnA%BnvW4U1rvMTt{$*rY>wDtT`-@(+ru;SJXV2wTj@TXk%ZFU zit_hfu>4u&Uk1TvAANYZol^t$Eja4QJ&Vy@hw!**2g)#R{GLMF?~?yk*p{2WDR${5 z{R^Hl9l7}}1sI6$B=k?tEF%AsF{utbO{I@xvA!>Mf)i%s4 z(9s}p5r9VPmsx;l*EZ0|;-}6^Ne_0M2454Lm9B$wg!Q=DOz3@t3BN8no$n~%wvI>O zfE_$Kqp-ar$bOPF^1t~{{`KLd+}3t<1wI@;`rYq(uGsXx5vy5%`9$vsYQhH|?~H&~ zGPNvEH`aZTOG#YeOMs2gBN;k^_QiT0Man5_OKYT$r^(OMJA;OkuROW|4t%cUm0x+(o%vxx;=36yxUBD2 zAt#+_e^dN*41~so-h@kU`2%dv%Ofr@@+%MG4`2)=P|0n`G^(p)ZG2GPIIHPs%_-mGlpQ12goHA1uXrxFwlHU^VTa0?L zkx=t!+B~(fr&&L)i=Ue|+&Vz__7kUVXy;Yvd7t*Y__k&cCOve*xxsNXJQ6u+wY|dR z&-91l+xil}{Km~OJPH@~D)B9HUtT=t%tmpgC1Gv*4OxGRBQ)UMq&M1^ex4v1xm@vt ze$O!=v<>YXZp&Z{puz=SIsKL)(103zHTvL_FI;(c2`)G+vuWF-{KZXvKCbmmmg{b1 zwoZGo?thUH0GdE$zrc{rK8~|a-j3J4zHJN~x;*{VDVVyvZ@#|r%VU-!7SN0Tru}`q z#XQTv>9`kQTmL5~Pa5@-!8(Z_nQ9>AdG7uM4xAeRe*%+U0HTp`8k)v9Phrb_^Ub|n z4SYEry1hM0(RZ!EMXp}52jHxOv)Xq$7J&WK=-JIZgP@&@;K+}Yo}eRC_D<(?wm-eJ zFq03V;9mW=fAGV@dw=~evi5g!qe4Kj*2#lfGtUv`uaNLhVqU_)~ z^-Elc>1dp=qnJCo&IsFHf!^gGdOghmnA&d{;mNyEyqN>D0ava@&_ys-h$p`An{aHN z3<2R$#!WjolMar$u(#)>Bkm_n^UDa{QpOXbsI3Yp1IyY%ocBEbpW6_ijGv%4nQcz)-@s8cfNX5@iUC!;7|$ z1o-a2qs(eB8VK&A3ytm(n6_xwIj7u5rJ-D#D?jFC!t&IvXZ8Wiv{im>Vhkll);>;~ znf41E`2BCo;uzNV4QAj6#^@Z+DBL8d!87%O7kl1LT6xulvK*o~_8PNCiCpOPQhyMc7@MUNSTd46l=U;xjb-{!zFMZX<>9`gMh zm_{}YPs7vz$7!TX8*d@$81o)^`t;*8@^`nW2{-zO?^UC!QH(kiA+>kHjMO#>(GI6W z2_HAsxbP9S1jY#NffG;I+63gHo?ra+U$?XV?w|fKqtaz)>%brU`d7tc7ypB-72du5 zO)uGzPiYJuZiEinD1V#%#9I=$b?dXk=U;r@Gv~q|L_w|*>ROXFg0)<56b`{*Cx6Qu z1&@AwaXR3vqpaq#AaTf<(dobvwnkLeV&N)W@a^3kZ&QxCAUez2@+|49AQF#mqcFUn zI9}u^8R-VsC^h*B8zmvF^1=h3JUY!UJU`*H1aqZJ8R2=9u=L}k@uPHX1XJ$P9DE#O z3$DHLZ}=8p9@hY|nx%N#6Lx!L@nT z)8C}+Oj6>ycO#TC?xwszD0}o%{@SRgnFOPF^q`d+{P5MkW#>rgxS^#pI9s|JFAGJ% z7&Ws=a11PbHv=HQ*I$1vr+QvH{5t*nllMPp0WaOiO^)00!jax%sT<-O!#jz zQvaKLNQA=v@VCF|r)niK3Us?zuZ~UHdocoDdiloTW{wY;4xSO)p1ZY7Lbz`eomS)aKqEU{3+H6+h7O&6pk%U7@YGQR?nmBYvbb|2AWZmE-MInqr*i7saHII~aIDWgKO1i|;F;C5 zHtGn%Tj}&aO-JYy*B-r&M2NK$#jn#4sC%KOV}kLkfJ-ME0kagtb`i+dLB&m{^8_=U z*!!gYGD`keA?9!Y_HPUS;jez#Cn5HAM)0>H2;R&c-28cmY=VuLVw;DxcuN3wVvpO^3TIXZXB{yq23^+3;=3*g6W`aFxE48_kq; z?@d5g=;TbTk1&+~@LyhNpE{{R4(#43k8rR7+(#9^yy3)eWo+GpjROsLc_OZ%x&1En z2fib;gu}rx9{kK$P$Kn*zG;tyIs?#Nh-aC-arus~6TXqp(BApxPV2aIZuxlNEgs9G zG$w3cUhrr}8)YeO?}k_NEDr))u>2{{LbG%;(=zENjrPL$8-9ydZ)<5O^|d9Kr&mh* z{(VR6RvR0d2j`ZgkIn=fv81i*ccWw*>c+3I}9D2%)q-%i{di;sQ zPkRS&4*`%Uhpuk3ip(=eTL>^S(=~q3xCSH1=mR`VZ{H?+t__+%EkX1C!19^N(;~ zudx0I=y~)DIG|x_l=$f9T|XXoHM0OuF1-Bm@kn4g;+-hAQTk>8oDMJpFb#UrR|o=cfn>1WIr6o-ftOuQVqk!f)~~eDFRaG=_*g2_5+v zg`0Iy2C#5QI|4{K2}I$0g-H3MN4Y)4qpLWQ{yD{-wCEHz^mjTxVK=w@;U0wqPTrh! z!YK{m#RYc53Fb)W7A{N~!3RO>=yY}|s z&3prbVKMDOdOTAuiWdFC#^FnOlK@ZC8b@(6TF{H9m$mJbSwE21+6So$m5yuxeXoXi(*&K!14u_c@XCdCvB)k-NPwoKG(w zkEu3f{lS|WXvtrH`0Jm&SAN;c!|9h`xc-eFohMvq)TuuMKY_~3g$KR^a4cB(c4~uk z(&ggOe)(@NS0(j6vUlPPy3XA{g99hM@1K$A9P|_iG(J6f_2%{5H%LeOB1_ku08#!Y z^U^11Xy#)lI0~*OMTfG8AWUOFsf~^7Sk)f|mdW%e8cYS03rWdEyBtKR)b|xx1w+; zBWbFXHh#%sU3e6l&NRDS)<+tQfUh_nxzQ2=k8wOH$=ZLBrIwa+hh%wA!|xL-U#HwB zFrW)MeI#L)Zm#5`1ka-=;ey{+AJ01cTyF6kuz!wqUQItiB?C;mn-d$?;-_4>WAgRZ zcgtdf*G$=W<=rG35>(i?M30)9B=ersh zn;+!*?l<3h`|yvMJrGwIaNwofh@TlQL3M$xF`aU^9N&@GfS-M4^l#I&Jac_$z8`(( z&RO|5@>VC}XC^B3^W?y#NGdB8tqrnuxS4vwKqzVP~uQkG{D zE}HX{hO$!zaNLx=uz459P5jVb+=)Y1kO+2RCR8tCu zk8NM*jzTTG5qhT7-OAT*GK7Ac)0$86(iRs@sk111IPxdI73}Zu>?Gt*^i9IS<$d!{ z`}j^w-;?%8P;l*wA{I=-UlY?c0Ss)qQ!TF2VzK>z2;yiBjOE7Dr&rsc*Li6f$D1UiO=NE2NF(qr>i67+{B3lII976?;QPgk| zNaNre+@6C6{Lnw~^4gc1fT!dLyxv5(@n_P3<(EI>W!~WtUfPpCf8&zg6YWDUp7X;o z<)A#1sOhF0(tw?OlnbsZp`@K95Mf;N-UO<2Xqdb_L7lXYCOPJ}$3fA~8u%C#aO3fm z1#Zg;XoavDNc-=M?`g&X5${>Xfzs-20Jj=+5 zA*UFj_y1|{+_vm2t}LCTQnDl@&M+_yZj6V^)#d8LWj{h+_pA0h^iB7u3l}za*+31< z$-n?1gb=AzX3uX%%zv-_YiFh;B-&M8F>+^|)+uI0tcd^2n-)X1Xe-8$WJ8qKPqWGL z`}{e>F55ZsXI{|f^b=S!=9mwZd3=F^@@(ecdh0En$@yaMTiqP2LeqNOp?qTD{!ktD zOPQ<3Sa*L`deZj?7Jf|`fBXlq$*;r4(Ty7NIF6hFSkrg@0TAd7zypBv03-}X2I3me z>`ITdLh`*$i_)p(+d3j18SPx*Pd?Em;I+NK|Mfra{qEjx_P*Amd^p_izPY*gg%-N+b)EMa-Sov| z=g6N^=QtR6IXb1B;3Ets)hOwn1T zoGJQw>HuC&$>L3Mt{eq>BOqBmqNQFsI9;7Qx}d`@%4D<_Gd2+8#X;~7MKnqFsot9k zw5Se#aCMs$$5;Dne#%e>76jUg4sT2p+djpvrJd60$M-}Jjn-K45Bu(_-8>RV+hPy0 z!HKpa`{Lx`-Spm!Nj9hN!I8e;d46LAz4$n@!N-|cygAcD@J35=XzNx`o=w297AXv7 z1K@TbOW1q-f`{}V$(tjM5ub&i-J;vSpl8r$d$Geoa!EU{en{IiC_FBX&<8Db3E@rN zwhEijDZV$4f(4-4dLn*wxDO)>K9zBaXaDk8kQb3j%y?S6RXX}@;)E=88DsS^H}&b# zz`n+kF~v69DG{X6DNOv1iMwOW`h65C-yI}Bs7-6zeBC z{r}o)Ki&J~Km4b?KfL|+-Zx*}@G0Hz^fkXjEfnADn&bD+jl1UA1mH}#CQZyDY}+hr z=tnMgV2}P3hNB;g+i#B&Fk(mSjjgUSk3mzZ{eJ9Ip@c|jYT^*a*6FO6d3zr5x=vgh6m`pAx3 z`e>s!OOnSW8*t@}3^+QBj&fV|Zz*#dl%ua*sta6v+3=o@p1~8$GWK91O*t_-J@#Z< z#wu9WK>4n~s*nH%1dpc_u4BnXGX0t(-i!mvqc=9uMlKDwt!f)M`KC?UGi7*Oul20* zpg!KMPlXm-Ez*8>|HVz)Ge*6s6jkmm$sP6B$E$j=G5u(}5IOsmq=T@9CcKPG0{z2} z_EAroHi3m@NH!Zn7JvHZ!w>)LdT66Ju?6ZMc8yUr##imD;7RN=U}1vq1uyKdUk zgHz+K{~5E$XR(h2Iy=6WvfTqD)E%FSKyLs}h326v>L4V|Mj(Mfd|A8M+d9I`k-s+# znt*qhY%^3DDcg$UG&8xFz&Lb*zn;e;rqh5-ZWdmj>ScjZ$mE1Kj*H11$D4@^ZEUiG zkbT_E&6$8#Uww7&mwHdY@8ACI-fi6wC{cbr@J+oP@Q#icI1+tYmjw9aul36gWZ`sh z7U*&tq?d&Q#}KE7&DeuZY~)OWzat?2*oiFcv@G#bp0xQTlT+6?YOe3I5W|CBWEu~p z3FIk91~PN>f_+}}#mC}}v!|Ze?NAIa>0E2~BB*i#r@v_f^@-6TCbxO9U-Yy;ju>8e z_@RqBrxhbJcG_mq&@SKguR4NlRylaa{^+6}dD(D)8S?ac)y)DxThZzGXl}lSecWYF zn`wg>&5KOZZkJ;0ao)wF9R~+!;*m*S=rr!<5QEEfOgiFZXX(y}hLkW~JKgu~H6I~gD zm=t+C%-bsRc-9zUTp$sXAM=&Ino5?YyKXX91QqY2N+MKCf;R5XwXwlkE%zU3ESJ3)ttA zHpLkTWH2%~>i}J5fNlc3q!(x~$ob?Y^xhPlA#3j8`PHv~z4y*P z|7Pzy9xYPfo%dV{;K!Q+zm{Y8$+ht+V4MTL1RS>QfN$!i?nu{panYQn9(mq}z#@nP zn>K3^vGY^jN7kZ87HN)t5yw$94r{{;w<~nLg`;)g$3YH*Q+-RQ-%f(pUuWHBrFpi7RMon4L~-7qrGfR;Nz6MHzLwAY#IHRG=1g% zlQp9~oBqXC0y?nMm}4hADudpejhXim;b0N2!(MpAx`Z4xQsl)=a=g&6@zKT;dd3Yl z6VQQ;<7~?qZ?2gCY*Q^bFD>~0AoHspDgb)03Y-cVj6P!8Lfhb>4Bzph9^2%{&A(cFC)bF;`8$>IWlo=oz*ne> z(V^$`jL{`+*c0$g;Fe8O$`eZ`k47I$zfVJ|Z7lK(mT@!#;qJTtq36fi1$`!%k{uov zf!+W-EMjNVGZ-^C6WfDo@xQG{<*w<8fLl5Va7|AG==(VScuLL)SaNkxI0|;$b@7A< z8YUw*7G2ccy_v*zP^!nVA8K-Qr17Ob^zoct;mMKT;#M@-Ni(UD6(Bp)&Hm3|e z#s;FnE*L@wKY=vzc7^D$TC90rq@|Nm&rHgK7cVeUArv! z0MLv7z~l%0?+w5Yf^UntV#(lSkXCPbq_zLH&IDXzQfXrHr7OM?h>+WwC?Bi*d6h4R z>`W9UPz_8hCJ{UK1Kk0Qb68JjJ61Vb9Q!@hf1^|LFV463MHV*1k&sRxjZPd6Y4jyc zIWl<_=x3jOw)cuI2jJ}g_|7|H6MztmL7aYE^X8^Ghv;}pX9?z6gHdtDf7+-kCP$N= zN4K~W{8$d@DLEq70*dP5Ldd^7LnWI-WdCU}9h%~Lr(7#SNLw#Wyx^gaC}TtQl+t;lBuC%`Y;q_% zM#1bGWjK;fUxF`v7o1tZ6RWuGB+Ctu!){v6&r}DgP;Be_C5K_YOy!S13k{PG2QAv%^n*dX zhy@;w+?nXO13LlHWm4L~PX*Lbp1=a+iLRJ{E!5*EaJbwsME<>h`NQ(vfbd$;@INrx zL3m>@kEm=+h||P{epKAmO@`>)XJOY{3HL9_`N;9e31`G*6c&-h)RX20In%;~{RDW4^z-#s;X=$Ak2qQCv-m@w{)2}flITC% zCfHl8Gqba z4h~?II>wX(wkqMa!ZXupJ4@)`GWE`X3)ZT|76J<#_<)z5q4g%|nl^1N95oMYk{es2=^_&#?-wY@(SDoIPMe%y>f=bA|E}1gpQ@&3jR{ zd?;s43mshrkaP?%ZP6;<;SmtXczXoaW;q3cV9G#ckdn7I(SYV2fOXLQG)KowAa=x> zSlI!Om%)rP1Pc$7kcq_N7+(!&$oAFJv>UzF47lD&)in9W_q zd}j7Y^2ei1f|CsdvIOf1&v@&`LpBARDd3C&JeRol!89l%8H3a&(V`wKXdeq2PAf6a z3w+`5UEl~vkeu09mWgvCaOCMYdM3tnrY%iBDIXl!Kyj8Qi+45+c9uifreCHUig$&y zZi!=uh_RP)j?%md&_Nc}wnH_EdHWn;EZ;1Q;|5B~aNHR$#&XK9xIzaF?Z^U-Y|1!$ z;EmG6+;|H+#un`*?;~k&)31)l;Dh{ZI5PfuvCTTruh@m|*Z~a~@cYT^tH`QtFt6-k zjGK41)9splxO@WHLJj0bkNDuN;S%pEC?WcoJ6v7>XP%fKWZ@6_cy(}cvR!As;Nw07 zY{JIKqitt}UG;n*h_`rttWR~%vytP-f3_P8@gL?@8FMH4(B<@OFMZ;BlBN;VF+Y$2 zuGF(puKclAeQ`tW*;>@ORH_4)_)MG?oej;{QH8nVM@Arv)gudN#`_ScgP7G}tg@3# zgZeoJHD>`d;19Lf+|YIYJO;QWj7f)M%)&q=lm3dF9*Y!?fO-c_vSng1AvO7!aM0mo zncN)tAQMN6gJn`8Z!1h*%5c2!#!)hnac#MVNS^0}k@XM%^}p?1d;SHVX}~E_XFl0M zx;h^(NGedVbZkzqZrQObGySSh>53m`nbWWwRovH>T{6xo!`1}wL@tlC@d;k)ShS6! z>PU0M#G;x_61-mA#J64uXz)h*Sb(9gI>|qBkWDyfPRn8&`e_6G;e}s<={s=Zlt0*K z%p{KPb)MJa-uD_@$%2l4t_yhL7TS9D_!V}O`E<#myNU_8`5pMqvAN0!Q% z9|U7PF(B_VJhGKO1E*!~P)QK2H_@`0fK3_8F3>->h0LT$dEz?GT_!rP@#Y3Lev_BJ zSk5%eI^@%D!}dYHHF+#__dm`|FgH9dl?GRy>E}tBUE$@IulS3R%wb)gG>O|MyU>rV z)z{FDCCEl&Fk`U7*IdwjP3T>MWcjQl^Ha7JU$*6Vgvr9B>;HZYa9RARtBuIIRekNE zvJ(%EK!AL3j;4H21X%ntaF>n19OzqvKLX_pw^lrPoRoR8X;Hd$>s#L_ zxaE+TbUHN-4Uf{{WN|umK|(f@90x}oavf%xavV7U+9k{hpFF(T1pM+>zuJ4{rI*GL zw&*xAzc@dhf&@-8!;Wn@sYo3+ON}E%^m;*+?z$*M-)S*+EY7RidkRAwb!=GkQeW}H z@L=Y&>diChNK+mjUsJYjmFq@D^iYS~)GhK^@@Qa_@RP#MMNwHY3M zI#WGlRvAf8$vA1tgom5|hJp>%t}=|CVI(C(&fo1+LA@a_bmzs!QA8XWg9BstNa+i@ zmd*{Ij1|INZOV9$e}XNsPU*+^*%yp!FSM#-vq-pm#EX_BXBa(crIWcJeFUm_l4D%Y zANOFyHe@qSIiq1({~!FLr^m*KP19Hm=bIvR)Xp5B-^{nfqklL<13fkqqc5~mh0FMs zLinM>7Q)G~%9SUu$)TKXB#;KP1p4VnmnQzAn}omC&3l9`ebUW>jsL)A1ko3M3{Z77 z(3;_EIMV?(!}gs1-=!oLmIBjh+bDo=t?!{dWXqSVrm<53m|WIf8`U~$MCu_dtJBZD975vQU@{VA>^jEd0@6Q}QwgaN!9q1$7rip7Wx zhskWsaK3CVqI1oQOdla~#G`a>nqonU-SFbS+2Eje*dcP2$7*y^4sNvB7^bbXU;OSf z)nN~E(81=2#bCinbiCw;fc4ZN7an91Ggc_e;%&Xs6}@AFH=MKEuEh|VA#+?lVxdJp z_Rn*ls5M-enh7inouDO!>l<0)9rEo9Rlj7b9NMc>rrifKpMYC2Vf51OoU9N9Wtv8O7krMo(Qn7(Pkbxd=37G@!|Gpj9u3yyJz)9 zP;Q9ySl77u`sYc~acrha#}GIQ>vz z&A%WpR^jb|yIicy%`IHxV$h50rs7XEzF$!KjYWzQISTh_L`}-4uRX0rpVQqJ{E5~J zy4KCjP@KYp21l<)41HZMM-(^$p6~r?ZU7=5C*nmt1&VP3{0Qjw!Zc$h@u(Tj1)9iU zl7FSg19K{VaVjPn3!E1~Ee_O0$L4wYu~2i@Gz<8+G{E98Xz__G0CZKcl0e!gPfj9aSXTbzl`WKptb@U+@p6EcZ zX;CoiB7e*NViWxWHS!6JMf#618$HOUPyGIY8PmV?6*RdI0Q`|f8GQy1G_)O)D6cXZ zTWsPZgBuEiL1>q@Np9+}6I8j^;kshZ1aO2;U*TKizkF5_8#qJ2_dlSaKiO2g_~J{t zdGH(A#@riU@+_zR5l_(KzyGE1|5P+zNY;@S{X6ny95mGcaCPy=w+=8XRi_^bf!+W- z5^U!(w7iU((jvJ6R2UV(xZ*;lhQdZfj!JYh9keStM{Ghk85L&)Q>}3V&tHY1p-?5 z2(*KI7E>H2WzY}1#tnh!BjB)tJ8wjbUg${^0}=8`$4+=dLz;T%`9&XT*WDYk(pHYF zpf_%!Nt(?GA?>Qr@rH3NjlLGg>P=|Vl!CSK5U%w z(0%XT=x=npe8t#?G>7r$WwnAa@iDIl*@n4ttP6Ut|%ty^@0t0(o?EM2vLw zP{$8jf@`I}cW>YjejcIq^YSVXB31QuV_VTAVM=TS9GHc#&E8^Kl>S$1(e~s^p-@ zu2|*Ki45e$F7%PNo|z_!UTi@Zd}&|owJgzc%^Tg&W?=}uF_pdO5Ye!SG&-(*7l@2}FONczuxg8Y#z1h4tc zHU2GSv0F6Zfr9$lPoc+7LTs}wqUCh|%X*0zj~#Q=PXIG8u(jBX%!v_LJ*Uk3I*T7h65r<=Ro3AV5y%*RMD}Jo0|Btjpe3#Y*L6B=@1uR~sx?=R zxDA*5Z9VSB7Xp>s4oobL5Fm~`qA!)GZ| zmIx4NTZ7q<4&l(Z#8dB*Pd!2vypU3+AG#xty6BIMsdIVcDz@&(RZM-b3J%C4AS3c< z!xpdVIb94ttuPiaDNqKjb&rCPSK2Za!$ZBt0CvoL#)GmWh=%dBw1-mU>sNzyQa#x7=`vEe?tcQ7tt{GFtS;$v^ z`qRCS^hjZBLLTXwR}p7Dx31-Xcj3aJHW^2{mRXM9bnJGxr`Ei1C3&mt#{ zae}wdrQY(U+--!+V6x?(_|qqmNnK5cwwB$eH$)|d2A+(IEn8N0-zP8iiouN^G>idc z^2?cxsH{H3Wswnr#3@%CtlrZGfQ9{ypZ!Psnp?N@S##+~pP`rg0-n}8JFd&;yeHrE zmEI2$Ot7umLtcH)4bNKhFL1!a{ZHeROzhaiIr5M1T>I1wWv3nqf!+W-5^N8|ltB%~ z3}6PY7yZJ0taJKDx<%hNz8oApbzAHEoh!Po&!pkb+AqHN!cLn>jML-{z)iiE`!~P& z&E7x$=l`%q36qCB`Waj6)8nC~-ff#aKJBhFatYXou3dpT_nqhyuws)NrO>d+B_^cZ#Dvh- zwxiSS77cN1h|biTU-i*TdE_p7&@pW!Mql#qhhBwbmteY?3w`tun-BXYR%su2f*$>Tf zvk=U0+R0737cc20QHtMx|GmB6>$TwA?*lJ-6Bu&@%4eJJ+`IP_k0sqyKE4u?y2#@< z<2#dvro&@Gpf>=I3CJ_VWZcT?|9lwnw(`iDe5Zx?t_w=j0smFOlmL1yU3onid zX9GmAH_r2bgB!6Qij&801dRUm$qA8p<3)?9PpcRVrQgQom)JTWm;s4*LGrWu_uec zAQ}A}+bDA=yo~*{FLDw?yG}=cY=)+$kwrdjA2-qsOl`AtSNg~&<_CZ5LAHpOcDheg z1RXL6mA~dmS3SG((McU4vTE8gRIru>EqzRRoeS`WM*_)ig(?R={K?yI|MT8gH@@;F z;Ca39>zW=v=3NbZ`SY{SK9@iGSpMcCKaG^PW7dAA54l%_vf<12?FV&b9*Ndn z2ITOIgj^!PZ`KWhEBoK$L14WoJsznor6Q04%pe|zQQKz%I18|M=lb>ATB$EhkyRF9uK_k$)yW?-hp$|4nHPy z4dj`COvK2l&dd&53~@Bo(XX9I)lTo;sxo##eos^qQXXlo783x>HVU*(xJob8Mx~ZICS+N4~)s94asT z=AH5xcgTP)Schk=xAHPR)7O;O0AK8)oU~*8OS`Zst&SYZxctC|QB1bSHq3Tse57Bo z0b7v+-LlbCp8j&5DVes}W@ue)RFv8T>rxhbViUEoIatMx4d>8riQ>)Njh?hW^tM^{ zviL@3c-OjPQ?Nn?`~)5|e)ms*@{5Cb5`d$Bo^s%2LcISYz9uh6f`>B!zMQEv`r%XA zZTT$@bhd)8|8Ew3>X>w0}h8TyC zu<)te9FrGEj}GeNOpqDJ5Pmxkm0ORT15TBYg(CHFq|~jQ6*{m9nk8mYkzC{riQ9aU z8|Q{xf@$HEEck5~a%QkhrI&>knrU-*X{XB+!W*X7kDpbj4=m z*mmrj!Mw9Q+&D+bJRn|pX}9XaZ=1;L$M|C*WC6r}WM-VZKP8_y{h{hDtgvyZ4_4@l zU5e3XjAmK-5n0IfxFVwvo71*MHg)=8Gj=A>-x<%y`AQ!FiwyJ-Y>Rl(F6>FUDwld5 zS=QqJrF_|+cm&Wyn}5R(Zs+lnITNs{>C|IGpsW^;O=b()Mu0iRKqh9!;7RfWf69sX zkFH#~cYNoL(kIX8TK`2&wAbahuKZMY*7Eot!OlgKEt9M|h)hT(D3h2=1g00C%VwMj zOq_BiaenaDa`f7f%n6T7@?O+%5a?5|JQ6BHh9|$Xo5h=I__H7;kM1~s(geSKPU(@8 zND9eM*;Oz0*nX2tj@b_M;lM3-@=`X$%>_$xanfECs1O}#FpX@=SoqOf?N2)g3WFCB zEIR0f-ffn=#b(t&jpeO${8#?(=k z*jOnOIZ7ZecFA@?CTYdUppL~A z9{R|#p;3swEbkDmhauoIg(GqCWwR@ltGT*}dp9q`VvWSfdEFhYLHi7E3u zoqDmGGGb&Kt6`9Nu?{`-4RyrEm2zw-`eK`D#N(DtJ#O2SHN?;UC^9^zmG?IVWY4;f z(3|;SJEsn8Kqni7^aH%mrft`Clc4S=xvi%PetYN6;s4Rgi+(TqPjpt`w)jt!W}zRu zEDRhAKTQ}NU^R z5yyW}{Hi9&1+Mio!MO>Ln90V(V-$bXnstY=Jskc1U$AKaz!E$D1t=GlK zQLwxcyKLrdldwn`dX4Mc*!cRlYd1F9*3v%nPQKWi*Ed(JLZ?QJ_K64Vu>qa7R%vXY zj2F!;r;Nqpc1&ItkBkAz7hWmhXxB2P-R>jGRyJpjuxYD(wCEKN?TKFN5v^m@p~rR5 zO$@*eIYIz1Wv~31Sazc8DBh(6@|FbihB$iP^LhT&{WoHn`7ZgY6X$`7Fqk zMJKf6*CBI?a%ii(*gzc`lSkHqRjGr9I_T&lV)~2NysAq*<*(>n0=%tMF9-TuPYC>P zy}|HLs{dTPUuo0L{Z5<>7!6lKfwQFe$XZ5uhsTUSZvY-Mpr?q-jLc~+Vt$+v$YmI4 zj&v44v+nScCg{GL!I5qZd`6S#6)pVxJk!s!|5xaH>ppJH{#t8N~q&?NX;Q=DQ$40QGELdUJi5$IkOkMCogWdcr0~=;J^(>&2)85l~%_rKN%|aHm*vgSA?O5|7 zn?O6V31FE;78__bsK`4gvcQ7&z>^T&wr>^&1KUo!(q7u3ADf13YSuU+!j}RRyAQ?7 z_+uQnT}mT^pXrc21G3Pah1_Fj(k}Rhm{`2ApDeuCR{6shx{OC~MIYt0kEjPv+Q-69 z9(kq{7StgVJ=o7@hJXI^pQC>7!w*0F;?Ey^@V~_KPojBGv>)qW$Dbe+?M3DBhdBd~ zvjI6^vW))s_z_s<{^J+j63;+@?*cH$xirAQ&piQ3DqO#QRp6ye#dK@D$^N~p$ z=b&oyBbP}|-8$H*PKOXj3r%dHK78mObAD_-kXggVF8i{jigI}Q#VHbpp8*}G3T@hf z1LSC&MLr>IU3kST76;lL8$ypx0{T)%+rSf9^at&}eEBDq15N1Q!C$mvV6CnlkmlzUoCs`Zwdu3%_)Md-P>| zK<_akTM5+D=HN^|0ecDPryRZn^8C_%;_xP>ELdeez@PE4jWsnJ-H}Tv7{LQ>(Suz0 z!2&ziV-h|Byzs!AKwHxm_^>zgI5@zU{t2$|Q$`+{q~X<({juH)a7RxEysf&oCHoK3 z_fJZHDVAH=0Emu_0Dh3b(f_bddMeXM*8_^nNVcF)&z=j}_H zFt2Okys7#(G%5ebv(G>Ocl!9o0h5i1rirc>2TljAM``j}PSHF3 zqHhq)FA^eyg(at~N9Fvl$qYZ=AxN-8S2=c6-iv(fL}w;^W+23htK%xgJCh4-(VHVv zzw>^@Wv4Us=5wpx>(NI7e0(71t}r++;Pg0qLZH3K4PV+j7VY8GahBW(T?6$TA?Jfe z@P`+yYBkIW*?L&0nLq^64x9xbp$T{}Hv-Ub z#Q%!oEba?Ev;;N;ia3CHNe3jiG$C2!EngG(lD-Caw7-9HFyk$~Dm$bu^olz)0*yc; z00MGF_8s;wfkcZt&-GK5&B2k%SkMV~=E6_@E8&3 z4Zvdr^ASaDEx=QT7kZ_~y#m*-U%obu-o4nfA<)f%dN|bMxYV++e9EoZLgLZCMQKN8TVsL4XV z9`rc^&*osTb93M-urc85edSl2G5aPyxD*>)ixtR4?w8T0qm_ku3!C3 zvPPr1?o;V`4mubxWg}wv!+&Od6aO+2b=U1pq6N?0w+^hj^U+}`7JD~LG`SchnEHSg z1PKX~Ttz`vZ$lKtBB_i3_G+j8VSwuva8LN>!LK+Q^$gvtOj_$HGaH>$fu%hnLfr80 zpN>KDCpPa^9~`#_WHf#6VSE)dgf9)FR1Omb^&HNOpMDi>;Nyv1n<(yaGz{g{L*kaA5c&#~A zw+(_ic3CXZT zRqTbD#w=j((m-`(|I5FXI2%1Bet)1@Wi^~L;J4*IDuBkBhD^fpeR7L&C(MxXsfifq zjg`Zjjfmo0yVdXYLD2^#RkTmxv>)pUTS- z*5@xIUWZ@Ur0V@zN)nU0AFxT&5Q+mfPbU=~UUT z29!aGbOCZhCxR9$6l$y#46j-x?+a8s3rkAd%8 zPG0l?KLj1~gT?8UAy_Tjode|vOZUQz#L^O|DVdTk5+4~YanSx<-{R&AD~;%8olmi7 zM5@?pu8hF6lmKgLQS>0VuaKLwh^&s10g8X1Ey;!$pPd)E$w1RJUvqrEfjxVd_>{q+_ z1AD|@35#KpOMMkopUrTQILWEZJB!60dxux-E)^+tV?dP zRa|lOA04BKiJT*cH^y4)lgRW)@A+{Srlp$){M0(ET7Vn#g)nPeIcS_%o=$4KfR&K- z1mzLO{Cx0*B(wN$XW(wslVGm1sB^cIh$rSu^{vJL_FZMi`QN#;h94HT3ib|3xedj- z%Ko;I(e1_Znra0SoeS%g8f33ClBJ`Zi}VRj&3o#ZTe>`;HlKf4LC6JW&K{?e zzdGQ%iNSmYYwfO(x#OaDg?PM_VA&8se@FbD?D$mCvOb--v$?vxRkdAlJG+JE*-Br#&w&aOz|L} zqf1A@AD#0rI`Kc^3yHw|6}3I$5WHYGFCG1NarR~G|4#k4`L85i4nuE`0NN8B0}Z3* zrwnc|(#xl!sG(3R2M%|%;T1(f{k$EgrJ;<6O^N+7g{SgXK?ey5<)w>)go*LeT>AaG zLqbAMag>+WQjwRZ*Yb3G@A$zE35hK^C}~0!MVn+;dZZt7pdg%#3!`DhA=bsD6oU~M zOJV!NAxB$z#v_xWqQGvZG-~GCNa@ly^`n(`2P!m0B894_aEt7u12cQMH|M>(4>x~B z_w(+N*U}3rhoDGWI=EaEco!E3=<8Rw_^9w9phS3iRiOeS{^!#N0ja+*@a^#Q`^PRf zDoGs!a%6y}#Oul|*-kZyPU~`rNbJ3k$!EU|kM%8qVTyR?ge*ONxj@y)_y&5S9-?~% z<2T6E*{5mmULCA84Po1S^(ZY7+2}8^R&2VqmG-tzYcn>`w8zvQgA5E3mU>l5)IT&G7w1UuVzDYzWPCmG85JFD9;86N!E+$so5|y*3fBeUpvxZvXLm!NOe1cl!AK-OBm)K58yDZgIQy=tz;vn&H?tPlp z%*!r;?2J_2tE(e%y!0`VkYgN?UVx#HkY6h0OMThQ0+jz5K|v}&{eS)cOtSH2^!yKu zlppeOmvMF3nE$$=y>!|1+`W{*&SVmaiaOi7;__Y+hJZL11&>Iya3ZugZfmB{WRMIu z3UjDe+8X+30+07sG_r6cA~2gQ3L2(D3MRPsi^{uV(7i^m3Y5rK%Qn}tz*}a=OC%+`~-|}Ax{C}4~Z;upZ=G{^md)MobI7*{H z+!M((4?H%wo_>}Ik==SH5g}BeZ{-F@ROZe<_fJbmGEUv}ZcVc~g zknYrVyG~kEZF(}b!tvqmiC0KSf6rcj>GP)S@1V=_Ty>Y$~dt+-VBpS^t-G z_$^z~s$uD!@sAKB-K}Kw9DeHWq~z6BeC|&YId5WqdhDdWyJsMbw1Mse3!glG>QHxyuyxDvk5}_HC302S`Q7Mv7E4X zJl;c=;S#gRn=6ZB9#+9|JDLk@IygX(T2>1qN!af*)*Kd%~vBx8FmL9k6PC+ z^+z6l{}Wr}{7Jlwb??4e*1YJePrK-oVgus~uhMf8mlLpCG%eb1&=&h%cwlt3n$`35 z=lJ5xtFQz}jSl~P2x_hNNv;Y}F|Z@?U*^CMms%H>c<%lE_vV^>b^?u!cD@0nljAHO zKDcCvx41rw7`mF>=l{@cy#<6I0H&q0A;AoSyoXnonEo9}bG`q;E~3-++uRbEemJpV z)p#HPZFc?1ZJ=Uum{U;ZR3|{O-@hLYmA=;+oMi?Nj!M_7SAL3Q((T=(2b3lQ`S}`1`_pQ0 zLGsuup}yq_GBw@_IdQS-H-?lTt`<#bbd$OJ4%ui^>Q1%$$B);ztGvm7nH~+IYR+4) zkd&XY&?YjD*ojY+x9}wAX55VSP$8dxOLUoYw`iM!Z~bHK(Witv){9U4_uEBA&Y+ z_CubguDh?hx(R`AuG!V?2c=84eCqKXz;}khM=j96t0?lPqLi}f2dOEFq5`JdhLSW8 z>%}L2><>@us{?00%%KTr-zx{P5(oSUN6ph5sk@(kj%`lA>GHN!VMX$?vvRDToIrxX zMMOk?+--1}er_Sz9^{?zjb?-r;h6iSXiPGOg%?5u?KE*oJ*^AS-xA3xl>JDOA&3a8 z77{j^U#a-jei%#jE<%ghCSj7>t-i$Vz^P~!o8JH{bgzH;MZccTOuX4URF|@%$Xv=Pt%pq) z06wncY(Y$UL=TZUCi-A%APFjg`dDQ#DwyQUYtcJ~rJb;LCp>CG`3^|Eby=-PRtot} z=tebpG<)$7)|lbSi&ziATO;fsK!FF#gAg(3t;!8)ax z1ar>)vfb>@zgyW8o9C|4_U2ND`D}jSgx>luqq`82kyYP|rZw`ldR~o(JZ#fFzz9Na z2IyRY_0JMNC}AJUVk`;qa_%PWpWCfVug1e zMDqd>?gR12)Z~j!EAfOBH}64P%*zx%M?)J|m1@7fx7B(!Ds{515BLIo?zQ?&*@c~` z?ZiT2V)Cn(Rl<=xFt#rtg;h1y!adZQH+8|>OQ@D43+Ku=b%F5i-{IO>{11QA@%!)o7M({%M>q$gb*U7F?u_$|z5}k>pYv8v+hu zH2gA0;Q)$q9E-V~5l2+WxK4&2ilt^+Q~z4bvv#XibznJxnl-&c8@Y)KL?QoD+$LQ2 z&86`0SFKuh6LLHh5qPfCowhb&Q;2g*r|iZ9xqF6kDcaW>5$#>H?aw6Y+th325ppq% zHxH(*C$!$QX`}2UfA|&w;pE(I74;Vf!gl`&n@vYV$jp5C3!Lv=xpjW>Vtl*Yc|14_ zxjTId$|Z4%pcm(>YWK3AeoV==eA;#7LV6M@yh;fjfnPbYAL4|Tm9R<~Lk~9YhDDwR ze%OpW@pb&Y&+_hAUGaBD*@nAh3Z7woUDKE_D*oUu@w0U()6r?dZ=8P8X}>`1#J(#Y zY$z47_d(S2P(ifbw<*W+MHKl4NlWnmt50-o)Anlk)gEnmFEJ=kXqLd z314R>=;bWl2uJ;V75$c1SgF4cnW^kdt)w}op)VANW$#zV5<*99^?D~Z28oLT+z;*z zo3-n%q{DTK=qvX`?opP!EGWusfVb!@FsQysg!tlz(_L0I+37&EOQ&B&`^p=V3(gQd zA9~71)!=?D^T3@Sz->jHzrjRGL)p$W zk9#{4n?oFcsQrQj&^Vl{-62?v8ZjE?!yEVLg$*!yq7wuVXI7e?S15DLb=S-)NrPro z%BPoL$7K`u8PaSUkLw>NA^-$tCk)WPsS{k>9KcVhL?Aq7KUc5zxes9zg34hNSQK`G z%;!HH%BJ6k^OI3GX?NN2?kKowJkd(72;!C{6Z~NKx)kneXV;b^;d2*qo4awF+a-Nh zBz-5(aFv4O{P*Dg;AOk(G-+9r?;M}nimIxf{XXIBhtz#={qP(4`_>+2+O{4pIz|O$ z$$Pf4<%-eo4!cu>c3g=mnFbUoG)BH}ixm~f3Te-fd;HJ6jr|VZ>@o~%K=h$Vz%-Na2flF9 z?n*|&ZUQb88EJMIo0dLU|NFEN*-zxLVTz$IxHwkkKR{(@!jRq{y^Kiyo+x1u!NDd< zS1?zL->bLs8;;{M3FDVG6iyv{ll)E88yrZ`B3^<60_y%_+@{_X8%MZ6f8PyNUNDJ8 zn(B71kq=)KF3w5~7Z;atsSm|rwul>EBn+{l9-aPhQNp79)u?Z$w7Wz@d zKg$kZ^GnxC=hBIT`LcfYriQug$OV^BRe@lrPdj0W1^5D7n@}~-3knct5os2u&OT}(t z;!WQ5U(*F*XEt82Q%Ds=Dg`2b z9Mn7)tLj}c=8I_G2Ktq?q(8s?jG&x6&d1cxLAkFUD#)GkewiAe7`Od70=aEy%BUF-5}@ zBeIF`ZbSN<+Zb4Vj{{~#g zrJOece$q#k*-#hMES8hVk?1a=M1!uu?4G33;Xi9P3h-JA7Z_I<+8o5=k&k5f?yvwe zypg_h9ISQWSt4owQiOX=-7&3ED_h&&_h~B^Pk588hL(OPU?_4CtJErwZY?cz@n>5i zH9tOSmWqgW=c=1)!lJcc6THdcL>orT5I@k4G=?iH6jzVjx{aYU;wH6D_5CO|#?wQc>{2{E=M8ot2PGNfCeBAE z;vb89mL@VvLsXz1RSy%V&#K!J7i(VW*AWD@sXn4((_M%_|D!+G<5^@v@d4d?k|p-` z7MCcY!CjS#SRKbUCPv>IOM}){Qob#m`XGbt;4x7JBXlBuJ7aO1T zERo(~X_~@cuFo1}TAt~xxb2aUM8N4^2m8Lq=hvbke}^_Po4+DHf4wm~_T!`f1jIpi zCHie#o)dbpF>j5upNTbT`+n&!;8O3jC}6hT^SO|v2N&Y|MiCwe1P|r8RZ9F`<~ZHx zuoSMfV6VD9{VXzA)i>&bw8Q5DBu=HHQyiW_e9uj~_0Ym`n)J;m2%rm*uaoLOwl*_S zV`xgs#uFwG-?Ly39dJR8RKQ4+rAQ!LMdDBjKGIh4jz8vu{s=?*5z5(=q3Y=ENPW3_ z$7B~xMBPbEsnKBbwHjL=*Aux4Nqq(0dR9<}bv)`hZG@!$DGlSKFmIl*|KC4oP8==# z*A}0r)Ld<#B0feL7wO9F6qbFk)oi>vbjz6fJKXFSG*F&Z3nV*Culy4yz#tMG;|g<1 z;I)LzyN*pw%kNc6bdjWeirl`DY|*O#w*;mr{4`17ja`6w+$lmGqeIUrpTB5 zhj(LlVCAbWGdbX}2-;-6=}>nbYCl_Rh6axIcP7$J{&qgbEk9d@q;`d6j$(Hd_r_eJ z*pKd`HSm+>@0R4k{`JQ=Qv*NJ+VH-DP(YDQ#I~tL<=%kVBNmyi=mIH3q-3?IDnwjd zu;3$HyA+9{6x-f}=I+@jIlF0Tw>Be*&*rnwr`}hqNZOaWB!&~`Bv`)`Z(}iRTlTxp zPuxQ8J1%f=-cZ+Y)DEjCeTJ!&$Bm-xB1=NrN}ZNx|AzH)TL+?nilYV;{zc7dWe#Qj z9P=A8)On}Y;HH1+AMVMA<;Q^Tdh>@aq=B;sf| zh$a#lNcgf?U;!P>@u=hMUN4T@lbz6*=vt3^^U`)i-6S)>o20x&VuvcnLytU9hB1Cs zxf*BRc{$2$0MBiQ2+x%$SMpUJRw zC}?;>UNmr+xTB-U(;}-;uw~%VF@Ne}NPM-kC1mL&At)03`1cD}@ z1V!Q{Dxk7^58ajedYt!D0&VrkYr0cs(jTS%C-Co$=$3_=s2W?nPOe!Rz|2LTT%ZNh~3yUq`R_BZC zE~#77=)WFsrZ%rx58&s6%Tz4T8J8U9o@V)2Lw|hH`$O@@%^2o3v_K3b z7RAmAGdzMjr*kCt?{}%E?+fc$#6f60!)(sCP3RP%SU>9{+*kDgQH3tyWz>Esj`Qw% zjumse!^l$PyPIWaG-lRih5tz=XSDr}KU%(KQ*c%vh&S9+?snpRzo}BdRs0f-NP-8R zA0gGEr#ub*0}b{pp!xnDdHCj?=uRcH@JMeWaUS(gI;Ms-^A6dtC zJbui#=PQ_zFg6US%dIuZDN2Y>onVsc%Xv+1rW z6h~E+D!}3(^oINm5=0qz~97PrjNCf`USkZ%?!Pt@RM z<>1p?%twI_fK{vgFixYl=Tr=VL8$dWkcvm1Xc_Z z-UUZd7mgoCW_jdf+VnBRaMQWGqOwF&8YW(sr^kEl#Um98Ym{|`6MBIrUa^oku$~Cf z4Pg}z^IF5C3OUGI5fK>YV;Fq8aW;deM{5xjK1h{&cTibs0+ z!w*y@6juL&;l3 zDyD|6`r1$aS#@HshGDV}x9cZP3br4b(+wwvv!I&Nt@hcvcySOig6gwFEgYZ@t;A%P z{pS&-vUe2n(X-VWES~sufL9@O5T+IgK^a{lb4CJmLhW~?11mHzOFw*W6WOvBSUsAY z84Y|1^sqNpSlmF@nhYj0fr(?{E924z3?87$Q+SXeFHpp??A8Rm6Z?J3ST|lM4_k`o zv~}|-UA3K_n#M^$U>G<;?=I9rb4%b`2)1oWPw3CE3F{#Z{VUK%GN7X=H9fx~LAs_p z2y^G%>ez_r40I-%;8IO>w^Us+K>}FZ6IOOO=@og}EGXq_V{4$6Cmc?ETcff`Tn0H) zm&Te|OJ0`Pl+VsoE;bEPP*85l-5ktHF__JsK}{4JwuXm~#6&oWhcyYZC_8D!*E{Al zhUTA_mZH0*c{k7_S%qU|-?j624d57#kqo7K@RPgPJ?;$l$X7s}_|hXdV`%uOG||{@t6%7e-q; ztAq;T50+F{zD_-gDN?7qIzldWq&ai+6+uG=gPM?#(qRMyaouT15NE==epo##;fv8Mr~$>n4*75s;WQNnBty~A zB76$PjdLyKu~vNQ&_HVRKP$e1xPlBGCHj4i+nL=x!I(AU9@6+F@KW@NM6U&Edi8=u z_IWLn%jA0xForuK2z?O`~CXJ*>rwd4@-5a>HFkVRnRTCG>@CFA@s za_o)#0;r8wI;(i5LDq>_oH)lZPmB!t`1lt4H=*riX~X=+{C-S}2)gvwB|hd}rfHBb z3r6JvLk}H_o@!vzv~F-El?D=o`D^SgvL;50Sa`eE4Ap15<_4!3JWkP-H(i++cFAGI zwR{}@xa7l0o=b7|?tfS&v{bi1Cz*Xk8sr$sV&}6FqhBo?3g65tOD&X8gIZF6#!PkA zD<@AZ210?uI8=TNpWIR0MCq3tRwzDW@XNi>9>mdhssKh>==BmeS$h*@vJ>9?Mr(1* zDf>1HSxZ-!_!mWlze|z5r}#-pu)IhDAIFawMydOQQ;(xn)3hVB$i;C4xX;v}!hPd! zCHZCfPL`V?hJcC1laN4`w=+$C0|8N6cPPkv9YcS~G-cE9zf@vcewi3)-TWRf>!r&m(b=xBhU9$RR+vy5P+tB;of z2hZF|!Bo9j0b;>Q29F1X<*IxRp{Hkga|$N&3R!z`Fnj5XWlvc;sZB@Qys5ldqQ?<* z3-ZAkUZSJfLfoYD^{WYfzl=XDe__0W^|?}SjffxPWK$mZv1aI~YJtT-A_ps(S2lsS zm{^Koh3gq)v{GLk5I`R}ToYI$+ty|^Hg>nH-Eb;Bo_dkUNP)!r8nTi{yyi0%@zHY* zCfmacEVyA5iB_riih|XfTK?V^tQ1OGegVk%>`NYW=+2C=D9K!4P83tHDjSk;Nt(US z@8fo^_`4OH*RvM~pLwh04>yPVaUR)XY+}gkN(w_XbYh7z&jwrNS|mcTTx@rczjG8J zh%ivXV`?{aW4g;PkeQ%kxAC5%1V(u38g{VVp%_hfdi^kd;apNjeS$)vjss*1>^;k{ zYWbC!;m*V-m3T}jl`$p})l-vDNOo@|GM{KLT;whS-N-rS{IX}m*6~u}IncVl>jEOJ zP!)ttH2R(oeNs7s9!bX``OJB2JGkltT@A8nL%e-1l~8_g(b?>k*5VFoo@t`1C6n0? zaFmf7$;O=g=j*@gJce~<+-{vu?UwVYu1nrju=sX7L{Qk}Dw29g49yjKuhn&L%B|*6 z>+{Ah{16w7y1mEox~EFZ`S!a$z;0Up!(iRA?Ke3T8#!P`8?2W=SD)B}tp=lFU78j< z1d7H=h<0O5|6BitB8n){iTQ&sODg*5r^jQmNWkRfjYH#)5zJzAH~SL7slJnvv0r0I zHvD{BR|GA;Xz-xgY25o)Zv~JI9RC{k&*Lyrnc?PRlf?RsLZ?rx*F4ZbfDV$9#~Ne` zf8VL}s7zJAIW9P+1yt65rh z+JAUy2T>_Y=N*!U4`vJyYtb0?E2Cv%BsMfj1_jfb2luC=wJ)TrL)-Ic+emd)|1=l4 zE-~6DUEquaeK-n3GsU>eYKDCNi2~H34@rtPu}ve|MF~=CBH@};#mw`NqJ$?lz`6~^ z!!YVCR_gZP*lYE+k-EQL1FH;zsUG=kzT*1O+DT=*S&@_Cgs{TA6tW#0DL<`^_YC}p zRdBK#PFKgo34J9|1Vy9 zAVO(*?58bfGUzqa3@x6p>L9gm)2Ex!W#o@%t(*%sP(a7De*Dii8+VH>Pb1r`8i8j5 z`9a;CUI$!3g(ogOBanJZUs700AcQt0{b1UOMqaM>z=mFQZsO4&didc|$kFDw)rAoC z!{EOG#z9s9KL(Ig&ex{6P~P72HYwshR(PEw#{Q7kM5AgF zqvC|k(F(WJQAV{@xVmz{=$4jCLUF+7OYGeptA3SDfh1=v?}r&Q*Grmj*ma(WP(CTa z&DUo8$v-82pUl=8tlyv<6-c=IpAfWNqxb2HI$O5mOTpM>>>P^56S&s9N4PVAJ3;Pv zF=AA1eX;|x4>cEAR6CU}M3!lZtIo?*Qa&^F>jh;K-pTsjHL61(5pnYIFeX7ixQDhT zMG&&W3MSq#M!c%GT~HP7dT9lSKbhKHMI_7kINYWkK&ZsOPI`g6R zc?AgOEX{Xc8O`twO%{$$_ZZ4RBCw5}{AvT!l4|PM+-2YAe^v&mVW<4e{Sd6-059pxuQPg%hg!w zV0Y2dWntW*z-IKG&mbY{o69c&P39*U8a>Z{#qZvZw&%9emxiVCkiJt z_2V^gDK3xj&4)ER{8zw~4|;Xn`*S&XmxVy+ezG~Gb@Hv)D(a&VAj3=v3j@kEq z35kV5-$JyIT__;dm07OUA7{ft=17~j&?E-wPwuo8?`+s!)%5W-`D*VAe<63frs8LF zE1TP)80dRJ1#ymAeMMn5*e@H`t7EWhAErmnvQuO^u`-^(>UX&IOuDQ=Hxl=vB*kCt zc6I2lcPbDcxKGBtY4=Mm=s}-Arv*W5o)n@Z9cs5*1Y z2+~R?T}Y`NVTAy*ySRWBS&s#+UF3H86v>X;Np-lgrYk{jf`MNQAW%g&znf)B0(HHi zDo=)zn!7A5Xt1SAXt5@P$jr7jlgZ4Ta!vM*g#d^9rb!0dhXA#} z{e})5%xdCtISfY$Q($ESUn>VT%`!WBt|^Q^0A*zq*p{O>9IctR9vTeS$!Koh zKqm-72I7lSctM1`e;yD|Ga*rZRcqOlU6R!3;=V?fSTPEt^V=h^4o6_-RA)w?M?2q+ zie5&6-zd2xDqA0s!xb|2V$@DNSF@kW1wL%MP-82wo=}l-bNs9CK7_D zhLc=?*c zXq=Cp+x2$bZR_5tA(lc8GD2?YDzo;p1N^WBXULH>WmyCDB5wtbu21XM=IC7d4leY# z8K7x`(Y?9}W8(PZpOj00Me*`n4m9m|iJeA_ilW_BS{vJ&+3{p%N zpl9#z=HZCzFVfM+Hv)(n%p?D3j^6@0%&o^^(^9g$quh!N!@nsi2%t7{A4VMDY`xv= zc7?N}ia4@~;z|3pfOrSZ&|v*ccB!Tq2okvJii=SOT=_)@S#$R_Xdw*;roQj2-@drO z9W6`>C?n|YNMu7ToAsuYNV8L8m+wn;!}TilU=;F7 ze!fTrBVFl9Em?aoHCM;ce1=!eptU$Tyy|FAyI7KSd~TMISf8tV4C;#wWFvaLrpeWN@ zjnT4(8c2mX6djWZ&Rheg9an-pUqkRv{WWd-tc)^e(5S#eh3a4J=#gE_XON*tYruc> z1mFS)Q9W{*%*~Fj>$coi2hpYgsSsR9q6}%oK;kwFPt!1R#A-PZnAOzXF8n$AmyDYn zwxoOw|Jj?MZ*G5dtKVIUjXG+9k9M15fUpx3wRfJ8O{kJ3FZ6AJxXJk{uGPBl5|}7- zUEkW`xXpg8!F&gD&)oEpFS^&{TA@m`Rhsb~)2^=78x(rj02UQdILh&5>it8>l= zP1qRebG5o_3%VFWTj)XbX^#ZA-8IpAqTFb*P{%(46|yzDZ!+%vwHci72IzjB_9oG{ z+SK6?1;cMR<%|s_BQrl8pA(U4%vwy!?>1TWv(GU>dYT$cNwAGACC1wj+{^SUFMG$l zJfANxDyR2LK5Qw<7i_i^Tl~jXWj?WKAOt%TPbNaO>)DglQ`uJ^j5FtYX+^!T#HV)! zH_g=5we0je+iFo_{&Y?#^m4Dols~Z6@9{vE-Fb;j!2l`h?Uu0&F_yes3kY#Nq>?rN z&{`taOPrxKV&H9$}zyi zh(Lj^s;pij(RX?t!%c9LpcL1l4BbSbwUkf4mt_gsv3e0^R<>1TXf+0%n5F2F$f$IZ zZ3TVBb9)A%2;S-)eChI`WHw_>GY8Fx5=iLICXr+ZH8RO>4==$<=H~8H4B9`q8HZ}9 zT@}!Hbll5O20bSX?{)WDhli+?W}J#cOf&PD(&;{i6Ja(D8R3?XdcwbS7RO`w31{`G z0LAL$wC%$ug50~<>GDk|&W~R{)*PZMQ@x-ZH)zYP?B02p=2XR#Co1o5PEhgh$y&;C3RE)&m$17Zr_u!3Km3k+EBpk~885K6=ya{}L;-zJXeFH)m@f=l5zvg`H2+*0 z#ud~^gBlz5ha7+BD_j`Uv(?5ZJ4#sFMNk2))uVt~Sskcpa-M_1Y=l2f$+-(U1l?*S zaQ?CpWZ(aWu41FWhiw)aG^}_&H1^v;MGD3j{c2sXHN>)B0ripjdl4N~@8aU7MI$Vn z!kDAa#FZZw&w7PMTEbHqx7sK?+jT4Hh~aHFxKkE%~Y)1Tdx0U-#*=fw@s%P(ekM zKg!9NqwRP=pdaP$XNQ~3v02eX!QOfijHyBjd@43vXpCH&xLB=XdSPPL33k#Yt z#=y+@*oeZ;PxK6|^r6@UzoLZrz2G8}LRBm897~)-l;OL%jJ;6)Qt;MwDb9C}+p`O!{=j}#h!C!-{(kBDFyMqt5HUv zxX4f>MBu1n3`Gqt>dIdf!zqhLKn)rd-LmVSDT8_@j0Fm>`lo#bgoan)ytP@NbMH0$ z-b~r)p|4c+F9}N$;#c-#Mkzl!0^iVCeq7&$rvJ4cH>$w{Z0PLKJZSTD^G=NJiYTt4 zpT8Tb6ShxFFxl@}AKsS!8MPJvC1%jGOY{&JJm| z@2ZryLZ>Z{EygD%+qu<7F5|US4Jm4#1 zmAF|Tb8o#|oDGq3rTJ)lZz6R375s2gD{*Apl_#x>Ptadd98?msQZcU-aCyNeo~0#K zM-d9UwDOv@4ZVQ|?H*1r!1}Pc*t#L0lUtl`2tJC~vQn8*oyWUbEIfqSgJ5YaknLVY zk!bSCCI`qax?7UDw|SY=A0l%(+ZcSGZiR?_6l#-WkJ{$tIBkZTQO&Qrj-B&TmzpaQ zeU44ltoHg$K=&FtgpVEWm-lDHeu#@GDb*#1Y=EPAQ%EL3zmJya_D@TBy|9s}aZUkG z_-9(vbt`}X>aH(xIVgVoXH{GN8+wA?o@?L+;QHWrc!6PqqGqeE|PId+F zcib&v9cM=+7i$WC(_#F&Dj03VH4ALE8-t`d?xRTi+KDPums09J+}5hh>2ni}SzmF_ zWD&!S{&1-!Tu*)J-F5c(Z^gOyDA2%T62N|?7&Uia5ERmWc#uR^&6U`hPSL7F+}hOF z`s+Y$qw@O$ZQW%u$_c$&Tsc6aPa;PvVf;p3W-xgv=)+smcnl+i>UTV?;k&Ki_PIsl zd+gHH`NIf#Ts4jPQB&@5MXJM>{9RYaI)BE9l>w#gKOfi6f}x}Nvw@Fo?|7f(rXKAdomau3m+q~U!0DQSv|=wh!K66H?Im0WrHK0+ zwYRk2`fgW|aNZDSWhx>md*|S<{TdMobZb%%0NO5TtVFA&cz$pBIv_?IuwjD>;~D*1@jXA$yHAnD7~4^wzAyy$VXDnE?H|K=O3uT{sL zL1+Yc6Tri4=VdwT0lG?$OUOmsP$2^)P!LxHJ+bjHjv(syKHqzRI`QEV*VpqJ0^!SS zzv0kv*okk&WV_n~AhlOVgA(*(x?{jVIoQ-Nhqu)|0ku&ARx##V)XtY3-^WJP>axjd8pnBKwd%CO` zzxuFh%7kE+MvQmL62G7ngeZ{;ftKI=KG0-ibj_BpCOTVCf`XM)!P}&Z{5?!(WZ{NN zOPcnGi`c~FvR!aReFGUaqc>|kmIaY6XV>Sl0|;Ojp>Fanp<}1Aq_^!>|=m{f+dtaCKn5C@dHSad|mJk42oK5*^mxH`Kc} zJGC*giuXkYs7yYfNs56hL56%3paIqokxc4EE2CzDp6w^TJd(Aiaoy<%?BRbh3V#@7 z=1Tn3oMrlRx;p>Uv)gT&neIuBIt?hkrQHiA{2(!y2z&yfLX@EDKXtF}^fFi9(PUDS zQYm?$xWvzTQs@`$BN>6d(-+qGXV!<`EU^LYk5KX=2boip)6+F5^2tgq*YFJu+Ssz^ zEZ^IPG`2L_Wqy{ptx5Vm7l+!yVN&kWr|oo>ESE=Dz{B>Ax>q{Z)jO9f_Fhr!ip=qmbifXijz|?X^xfHXS`}*r{RJjHR)~KTy|jscuV{nty*h$_Lj_7D>(Spr$rJJ zk@9bT&nl2H!?qCr>tm-ZxRB|q+K9A%OJ009#f75sEO|k?s2xcYSgOg;CsLMW-`Nc;NSDF9?J6rzPrkCRf-&qSe6i&Rml*Z16Fzv;(05Ydpp?(hclcirh%o{C2GxKgIaU=Jk|>FPYkVp z##h4*K}Fo%D+9qCb$>?-?t_ohvuC13d)Kzrwqt5m0UN-seH3;KrJr2Yj6BMHJSAM8; z;YN#q3vLp#v$^5tx0bxP8|CeQ!t=+L51I13Q9wxwPQ->fEMeNVTG2kKd5JnjPZyg& zaKZotQ0UQ0;s(^vrzbbl9}$ic58I8)@x+@i9gUnQz1REWa%xJO z^|C&r&jL{q-wRi*S3Hv@rq%B4U%|#?_U?;?X=S`Zn)o4(xRvq0FvLGyF$pH;2itEd z_jvZ(FsWy^k?;;){%};mphZH*7u%+xjHZoopnON%nH1OOJGKLem6Ws$XS(>U3sLis z2^);#`6&6{*+UKz{P>rfi}# zcxXVQIW27a{s1m(hbWlbrgvOXp#(<3S6aC%P79TTcPMRjD1%c)1s`P-!DZD=nrWfQ zYj8ih?r}L{j&8Jph8aJWU+@$I;J$Ho z^q(FwYQnmaZYCBH)5<;n04aLJF)y~ZFW~K8ETs5r*A1&V)^o`_qlsecD7~X+mt51R zgyk_9N)z}BSId8RmG^lM+gs~!m3=?mBCu|N!YraGFBZ6%{!8dZ*gx4ABD3ytkun=k z6kZ^sgWa{Gm=i#7Gb*g)e*wxsHNVVhq8O4ETOTUNu*ONED`fEV1UOQ)C&9+A$!l7q zMJsg7E5PBUJb1&-CG{;1?tx;f&Ru0gP&>^-1@w82uyN|p021oJa1B9e+ICM*hf@j<>TzKF zx#>lX9pWPzhm4~IUC}QKjEo`LYP!%94P;=(L=;pf3OpN%2o$>zlD0_uCOo#Z)gW1=!G?ff+nm$;v=of(swMFM#YpJwM^B=+&9oU6@vq9eiw zkKB z#uY!;I9264$i!RrK#uafw z7HH^F$Sw{~GLe~GJM^=VqmC!V@9RO;DUDCxgO>1%i%UKs;8~MJ#ug4kvfI&#$8d51 zFVP(DgmGMh{Av#YiQ?#8(DKG>G&J~K#q9@Vr_M*%jXt^r#;r>%40sXHxqG_hqX#|$ zgpA}Zm*9v8$4@!9z!1obK8t`kc(!0Zs&g2XlaCCwvi_PTb!5$-1%VcWl!-oNaLhsy zzJv2u8hL`7#S%Ey12hTHZ2_k~KQ}*l=ucy0dV0h2oVLy|S7irg^k=&1S8#b70K6

    TU$7`UPuDY`hB+j49e{@3=X>M`OyDL7- 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%0D;wW!&k_fB3W6 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 z

    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

    ;-?pVneCe-pzOPOG07L-2(?@;gs`H%$Gt2nu!g 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 yfR27tNB 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%0DvJ>wA3L_4C=nhdx%@l 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

    <8oS*ZJ>OF;?36 z!0SXczxu%*-ez9dx21}Y-y_DKb#3{g-Ks;lEI14+9Z7#^@4-DRXf6-UfH0j(e4C?G zd-0$dG;W^!*p*<+r#p51>`-2MIS`R^$gdrDo_C_Ya~b8C^A}g};4PupIL-;iz7M%Y zzX+(_l94~+8!w*}1%p4XD7esG;iVc)GYUL0`C%8u&xlC;$t6DOz8;F9Ibj%1zW1M= zy%f(}gOSyl*dnHV6#lXRsL{TZe(Iy>TT40e4?i6I*IUs-oYb3Y{;00#si<)9#HUw& zXc2c;94GzKAX*2rxGswQ6RBQHnvX1-j*6}l7j#qe#oPhy6j#5HW`Oe6nPY$RWP2%U zh{gS~@e98*o_Oj*JP{rHhL5B>>NnNW=kIvRAABIKkclhS&AZDN(c13ZMtjNZD&IIw z3|*?T-I!Cw|MOO!R;K6SuHakVkcN)57XO>4ysq-&-UC7r>|hTgGZ{D33MGCN`L!um z(wrLtRni-Lm@nn+Z<2SLeuwitFCL~Gh`+?fpYbG$2fg*fYg_X9mgezIbayK|NH8?( zI$w9%7ddoKSen1(!Xmpb-{~rHx!=lsrb5_ z?&sldRNw5bIMYssIix)jDO45Psb}ZEfo4|qqO<)0aXv;7Cw8=wVsD)TI#!b|V$M&# zfHV}+NlxfSe(DM1Bs4dJ__Wua@d|q}43CR3KItBJ`DTy4F1A>bf0gSy6Q`u*6t+#Q zSy9eWqzZe=Jr}@F!Kxk6!Pvxm2zeMrpr-Kqmm@gl))DNc75)Ats&);kLKqs5# zUA`^h9g92>=0}VU+dI5)lsl^DlHc##C!XHh9n(iR;K?Xu#iDKQ(4pKjAhVOA{5ARM zmN=nxa97386lc^ecS3r*9*UmprI`4}5lmlQaeE4B_wZS+= zd6DT(c`!s(kxzf41Nm)lP3fR;NwLEZOFK+T{L6JJZDDZeEQULMS=n+z^rZbvz>Wt;uHVwe-3s2hZBw9cjBru-UlY)ojK zOA8P2kf(tt4W>Q3uF6M(2bR67kf_j{toy-ZJSC`h zwL<{iSy#ojXr(n-Y0+L`Paev{1*g$GK}B)l8)@v%TH|Y32gROI=6G<|0-crHDSjR| z!)Dq`{To{N?|d^XA7_exT|V>W3Fc^+X^NjWUh>*pOBi^X!t>n&9^r3|K=M*)1YYM| zN7EdYndDQetK!Fu&S1wDGrY_w<&VwI!e*%%2KCJ49TwWaT-6LCyPW5fK9g50$`r3l z;<>h?Ezb5Z#iL!3yt0cOD)*T{UKh>(kk|G;{U84K+<5%nnyckgek3N3{N_EpL_HAq zXr0%r-pKD~2EaL7j9;?#{6eiiUJW8v%;Ig_D1hz(T9@4#$9cC_(vT2)VcQ@H@7G1#Pg!VZn%4scn$3f_`VotJX$Hiyo73Q>*a)Zreah@*7E22 z65=-76EFJ-@6BzHyv2t6JTG~ZE%{LENH%#?%`&w_VSED@4jN;b=Sgh3`<#oa zjL`7Z6g;Vpk5@Lqk4>hytA3Mr=x&B;8&hH%R`a^i=J0(%->01YOp67k!3+l4`Fy33 z6*P^^;JH7YJ9=0n>VO&Ej7#F(kDtQ&VP>SGh~}PJr{SMzinP9=Tq*4|SYK1 z#Q$d0n4o^T7ay2@2AAB8adVkB|EG2a{+exl6XL9c{KNu(Y^QbZH-8mBP~wkG>S9#P zWc-`hAM2vU7`=WjSKRbN1MxI!iy7Z2_~LC0oohc<^63UX*{f+J=q zcv-*=)QoUPg?us>GWaE!KxMZX!qt+we3KdE_so!_5yOjqpTx1DCsFV?l(PvI*gE_q zR!k4zRh=zK$4$?&$%}VQu!PP=Gvsx2k6V=iWbo=T;VY6cxe`x*sPG=6{|j zKfZm6AslT_!eWsJUnMoh>VCu&NRjcc$4&8p{1h9WOL$$j8Qx}^2Y;ftuAV*Gs3i+36B zi#pO+KRB$$<&{3rpu6njKUMxj)d$TNhzX|y=*abinv4|5=0_;5b0 z#2qFzq+>WTjh}L(n68p|YgSA6sP@kIYDKK1VO#iqVoDi4As?*vL7q2Tg76<={53G- zbI9irMc$3OJxuwLrPffD+9GMNDR*!*gWI4p__f@KSEm}{W{MRyDIMWUT8_g%&jOo1 z?c#S;j9@v+5>vtrxMDo*y9P_>)~w;pE~YS^W`!{;m-BwZ%^+>G#G8UeTyLHkri`}4 z;PWEBzo!}Y(Rvv^n8(wvnxb#ONrd*8%{%y*LaU=0{N_*Rhm6T9ciaStu9Nu^b5qQ% zBY&vQ1imBQ6o2*^V(*;se5)OK$JE=d^NdY8Jn6R=cGEf!%<9a0RFkKRxFsD%eiPdN z@J4tl%@$nqOqgBljj4->XCD1P=sn6C+h}G@r;ByMB7HAp?r=cs_ZPyI77uK!CSQZ= zcR{w%9kMQt7@4iYRhGJf^`qFbt{1nhmm%yK&HFw&nD?JeTrT2u59&IGhm&U^I-c%X z?DWmw7?BDK*cj?QWgU!$<<1}O^d-2NAW>6(ALHDid{Nz?T z*G1N7J>8uTH#ET-BTK3^bmi_|#)vs$PO(83ZuH0qzU#~&HtWn+9WX+_MJ6QfA|rTo7Va5vxhxPJjbuE zONHyym)w#e#?72$L44i|UnpxmB54tOyoM0mT;15>^@ zV0vP-@b?w*t*LLGzdc=O{O5vy#82~jBMA43WVpS|5x2(I3YGJScTPU=CG3STr<7vX z%??OZrk?mNdvpjVf6lFU!hV`(8+(an4|jVhWWBS-*ssK_5FQB6HdtcbEPI$;ydl8e z0yXdKuUZH zDb9W{kf$#XLNa-RB-%sxy>EdS=R#aHhv9sHFZqT(iV^sD6fYSbNK8>WLsZBsof3fE z6hB+O9LHY|3&2=9htu~@amvRD?#$v!`!0pI<_tb%s2B0@WGEd( zKSPX{OUW`skC?&Lk9eZBoilEao54NQJTaf{Y|H60_?8S0SQa=#r%N9`XP7;%)Hy@c zuP2XI*ubir3&eq4xH#GxONiY%QL8hL|6)lz)wUehjyXzPmAKKHcG_d8L3?gSIaiM| z@&xVf$Zuu2;o%_42jf-wi{ozSClSNvXIJh;jAS+Put>+M^MMtv#5j>ac|>n+yvr4T zDVDH$)R)_Sbb+oKamm*9=ZPjXpPbGIB?~RSm%N&bNRR40VF0(^Prje746EycBOwEqJKQ|(%c1`)9Vr|9qw>QdPI()_Ga9eyr@ zG=Q&(S^7tZn{A}IYIDg8p)!Qy56vm^mtxvK9lj;O5jvlwaB0@zwW}SmeTfX+TXcB* zF9*1j&!{i`%!^oxl}N|$(P0Spr&wv;24`e<9l|qz5fh7an^Ap-a9ujv3_8-^HfRX{ zy+(p3q|3U&-wJ6Dtl+ZL1+~v!2t!jWvFiV~&irt$P)YyKx!djWv0Jh5cOb>Ig*01m zsvyJ>^P#@K80*3=2sPJfR`qEy=Krb@k_I@y>oIW}Rc{OPh%45_DA$g)=3hl%5O0^NE|X&jHUYUJH}d?68j3S!?P$LF{jXS)>JwTlrD&oqQHs zcRONiPNT59k>&xWQ4T2kB5b~L3L{z^u~hk+pu??ULOG+s*6+f9@3&^46KYd_2s5A2 zokr^%dhe&OM3p@Kv#AEOvq>1V)&di}sqePANqC-ajt;~SahlL1yy;_(n~Y|Q^lTC| zPM?HZhzvFzn}j)!iSt1IuTLsX!cB^=?J1v6>DnY5k2QsM9MuZ?Hwg<=O!441&1fIp zBsd=-zQINpq|Iy+jB4mSPjf-?))L|E3TvdCY`dR3m#r33GMzDWt35`}*eXmP>`dGd z;!O=aAoO*Vp`7kS@BYR@#xp6Z&4}f7@suFUk>YTz7=G`>!Zh+rcAY_*1Y4<)(fA*? zQi3cmSD_>E6t(_H@NSH!Ade@`AKjHBO??Ct+8a)Vto#rzG@r0T$5oU=j*S$i?xV9d)CnDzMhT- z$!j!6J4bFn@t76m#eCxhdF5vpL>(i3+O_-gFnWe@m&F*U@lO7-&>0$f5~SW}mfsoV zj6;+s%Ad6tf~CX;{wzV%H&x*Uy|2fJ5fgwO!px0SAIqZISbh5l7MT=pbaTX{l>Wje zWzt#iC%u|tfbeKN&8yEPU#G5)Fy%bG2jt(Z{WMgV-_wEaeJ89QKSI!#5U(zZ-o0L< z1m%C^`S|DrdFg1OtAiLT=-hZRYpgJX@_?bV&XeqPg$W7tyq*&G^`M@RMeo;Y^4zIh z))S82vV*;=49_p<3Agm@&_qnPcK&*T;9-javz=*HpPq28(FPNJoiS{Zp0IW;<7@TxOr;iUlvI7xqK1eDzTBOD=N2`JJcAyZgCdexd`6PezpQQgXp4(f|)^ zDK7uJ*BNPaZb(z^mM7=Quz}V&eDFCjjo*7#a;6U$xj#v|Dp2yT{P!&2A#?OhRBn3r@PNE%zJaoW>fPe_Zx;T*bu){{3`5f0X${=R4@ zdvsp$EDyPWM#ZQV|K7q(KlH${QDV&Kz{DJPHmc=q` z&G1JO%{_Y`C&R(dG^dy1O;3t9YPM4xL>`@zea`4YdX%VE(t=XYD598Rq5~2XkgwJ* z(HGX&D1UWzL12b2zEVHsKHdE$lMW#LGtH>K)^?rys#vgtmHsGOOZ}9ahRkxRKhntC z>8CivToP$UXEQO18+Wt3{(eYWOT50_TbaHaacEPhKHGl-+yBo8n#9|DFnkr8V&(&v z{Sy50TEaYDd*hHof`~)&nbvl1EF4OGi2QkM(RG?{DWUw)eHPQ2?*+H#w4Z)VV;!?S zX*#we3V%&z`2%P+BlRW!hD>A=#U42PgY>KS#I8O{YO34 zjaYCO=zL~gdTeN(D^eCnF=wY98%%rZevA}HXX&w@?$ooU+VsWVdaS}pMtT_;^xx>R z-7duHzD#raigcMz5dGVeoUzYMm&r36F^|sVi+gq1oSP0xm#+pPX|+AHJR=wxGO;&` z&gv7PYi`?3t2}H+DaBM1hVS(`xp@Qu2RIxM;%`@245Wo^*!vrq9$1 zSoq!v_wSu$8-BUNeytRB@6WQv5c2UA5KBwXh6OEl#m_-9IGEcortAVoXBqaz+pz!E z`1p4jZspjpT6!imw1>6RY}jzA6BZDQ^KO_8+i2;CU5n_xli9GnrVgksbV0G14cli) zT8wct_j8X8b8;j-KY9AjryDWeNO{KLw(GpmMqmRTgu-{FJw&->EPo~WXo->d;d?QA ztO&uS_x5O9UdUdNwn(ZkM$gUiRWLG$?}7ONP|YqZG&`H z)g_2#gb^pD^Le)KY#=r^QCxld9Mk_mK5_E*R+lF+ooxX$&y<)Qw-VUzDt}mZCmoeW zJnKJ^{8+~waU>v?A;b^YsvQx(h2|}`^Me)5WO-*C&1MetMUj}i^G~B#vz<58$VY$A zD~k1~^Ta{o4{ouJV!QM`u;eD`FzNg5*=|@mpFEEjqS*SGG&eFw2D={7toXV!7LFi~ z<)&yh*_viA1e3=5R5W`(k@%3Lb35S_%@)zwB9^%z(m9&tQ_ZGc*%i&QXr`V<%r|0w zIMC0mraHYUdCyJ#L)d*S3C@+aUFX4?b?oTt2#OW$@iO}!`?n(k*N9PhbNwA=cqbe~ zDaI;Sxy?GP3Wovp!`5HC!7M7mut6q}Px+OwQ5XK2^pHI|X7}M<<#oTgoK!{h@T)iDvzku+v+7NmoywuNJeZ z7BmBs&f?Wui`n2f>TAD~V)MXacKek(1{{)Mb)RB3MxXrm6j!KEE@m#IZDy4BbvRti z&gnVh8)-Es#22$>xfEMBxj_3#G5fpU2~Tgiz_fb_n?!Y*D)Oo)O(|issK%pl%N0$l zOW4B%Vzz8>!!_iw7nDzo?B>?y+&KE`BP;k34dbQuIQsBCn_&_SXJ2B3-hIo~zmLLc z>VxaOYG5u0qM)rOCeO%gR{Ag!8>lC~Z!FD~UK@#iHDbuOJZDoYBe0u#0h(_0%xqc& zMwwCkET=it@!>d8Ey4Alk6622;TSWB^1+D@S&&T_)>%4WtnmX@-4Ke~lndR-yT`QG z(fdWrjb5sE*^1&29Hukm7I8%aRtDqjS7NztxXp%*48$U1C!|cd#s2>B!&%zT#Zzyx z<`+KLVNP+~wi|5hGcP=EmO_?(on8Csfl>A{sOev4dDLSZ+0hv;{JM{bHk3FSJnz9Vdl~}EcT>3@yah&+93|L z_lP+=rHR$p#p2;mx?j)#V9%Oju)vt=OB24cjfOE$DidQz(N|_vAB~<}CFr&A3o}|5 z4ci@5udZoi-U9WzDQ2=>{fTLek3t&h&lX?$z&3_PBGABrX6?OaIV!}}Povl)`7J9n ziGTscdvmnkuzvyJxJYqz&ehjUcS$J3#A#6uc*Q~=1;Kca6S^3`WIA@#_jygeuw5_M z(pi3RF_vQ8;pc2acOQhdNMYjrj5Yo9#9xZ(6Q9?!J6*`9+uIpFhwIsxNu+&Yc9|kL+9}6w@=w|Iz#do()sZ6DSLFDV*Hylr;I*-qxW*cF4Bj+ ze#+Qg;tRcZBL;pQJ3)FR`DBka`?)rTmwB@t*Oxmqu*)>wlTMay+7%iDg~zhdno= zIhBhgI1~Jvr9F=&jS}hIjau05b+PbxDM9b4&Fp|Y2KA&#SliIV#*K@?Z)XR5k^N-T z!=mx~F=>4k|6o`0A~BibV9O!j*;4gzSYDLc5#Nvs=+hut52U<)@oBlnUEQf)sl|9B~G?jR=4gbz&C*$GEJyAuEUJu|d*fRm#e zR;IsaRUIUlOj_Pq^Xu8c*Aiqt@ouxuH~TAzx|2S$HO(HyV_MmW&|J*eF2;=+|JXFs z9DL{`A>H0z){T7G)2WA2o$`luADV?BdmM14^*4+7lYuNXVuWq~%`_jR<2CVQVhdW> zje<1f?sdW!wHDSTr^CJ1hh95{lE7gpC1vjzm)#q@a6UG0L zKbi8)By`Ae#-6et?1gtchMBsc`r&u>OFstlr?}Fy{Ki^UBdNYfv#2z`v7$erSYPG_ zj<0N*W-!(fOFh=;3){CV0NYo3;9v4*)|>p=oBGo1*UybCV5>LAKlOz2;zl;23wa#R z5fkU!C)WD`&84UF{e$KwcCCW^WFjAU2YzI|F4D};?!IV0=p)O2L4J3tEq+h`z^?Ui zMC3VQQY`(zqPEhVPtW+k+DA-7&jG26>Hhe?um9&C9GL!w4SQRGaH=`?dDp-i2Pq&P zDZ%zd4eT`e!+yssMcUr)JDd=u_L{}_qdBc~?@Sb4vFCe> z@WhVljpnb||Hsu=M^(Lb(W;c)VvF6~7|e~0En=hCiQS0O=Wq@Uhi+69M6oIH{I(#1 zV0WO{g^gWre((KrdEXe{7-!s}Uhig~wbzV@qzQC$D&IOYAHT5_dMc} z=+!b2Cye}2v$#ZTUPK;LqX6zZON5&5#qG|47-sWOc&Q^XW@r#%{U3;!#bHR9q(i`! zVlj9v`N9i>AsQEp)4Kz)eNzbPt++4rfBo=<8OB%SJ@LiS2b%COoN04UENkio^OSI0 z_Pr|>-XiZqAAx<9?uxC4R4BU=iEF#=2>Tf3wLW8At8_=umlHj{N5k;qMe%l(8**$z z%boK?O}_Z!eimL$UC`_IIdLc}2fO;a@{G=j4xc5=rVuwAe@+bUN-Y9=t;BZcMDOLN zp-}f-RQH^~{!_RTtHStd=fr}ynaIdccQNJoC8 z6k9(B<7^*d;u{o^!90R7T|;pFs9reP`lDXkP%Qd+TG*fWfo0P$+_E|?rq1@l>pI~` ziO&`@tI$8Zas(<=$`&uK(@WqFv%OcI5{ELWJN_IA-+NiYH{BJQmr>|ZIbE1>mNc%- zU;m%`+~I7ZnAP$ewzYAA+ss69WX4%+VqJ}@lPEs;(`%!_t^0wc51iI}(t0e)bHhPaxFN?$K(cC5P+AWgrMbX192vI2s!bug5+6MG; zx*0D9Ee^rVVjY?r#EZ-8f^h0YFjn=A6VvwlV~2ML{@TY1QxjhlF5o>p6eIF9%&hJg z2IKG1Vr(}JvdHZ-9~UhizEdIeZaAFwMTu%f%#u35-l%$%2;l6i*%66x`f#x%(+&B3 z%kvng*}I9MS@~Glg&A#C-9(Mgd00dYCFh!}DC=+*G=0XXLRZm#P7bQ_tzG-vRc!Q? zD7wi$wyB$l&(Xt^od1#Y-Ne}6*%-ixwE_E|k1< z2mS5bg}U?zI{fy<*cR@hY|TM<-SmU)VK;HG zP7*%uW&NzeJ%cojiRfbd!)Ei0@x)EO=7+?NA z&!{_8q)t1Jaeata3?3q``{ZNnQdbz~4Hi>m9tMQF!Qtd!G2tUMcKrE`{W4hWH_Jg~ zazxekLxjyliFdu!2(CO-v~|+cKg|<;(}s#e$FdQ@Jc&h1Ekxh9Sr|ngU1tM`AoBLp ze|zD}R*0?}(vj1hd>YCIFJzxYyZOF2;z?@#{-c;W!w-KNK}@WA2ow4e9~o>R{^^pi zh`wNzP7M(aXYWPMr2zVD3=-|;$0IT@5dRF!#lOU8Y?>T|Z7l|f2c09(yQ&T^M)nhi z)WB|3bQtQ~M}*xBA`TynWtV%2e`WsY$=zGffS%&_P+yF@8iL{z-9^Sh=C1EzhV)os zDT0}_9mBBpOBZ2KM*qXhVaPe&S!59#oV6t!q3TXz^I=!~BsVeZY&-FmGw#b}<fLVF|2Q-;c6yx;k!LX5`83$QvG0&T7qnPT{I`gF|@}6=u4Augge5M zkMCl5>|QJ%$a`yf3mrq_(T_9v0sm{Tx*E-$dk}_yx`YMBbGjR5#`T$^_)tWp}7Fl;l!5f z{;>Ee3t^z*cVO~Ii+!I8@I9aYp-bOdoN1bmPt}G)EO{uk!&EFPrN|D+OgTyJi^kqfom?y8o z1ruBSz{h7{Dw)k!!B*e#Qx1kzBYwDNj{f3biOcl;&)qUdU!f{j|IE&QQrTADw!vw9 zr*{Ml=IIToWmG!*;!Dy3{kEnV(9UG$Q2nL)wI;`rMV_{9{wlpil~ni+<$GtbUO#_w zGD=$pqVmkGdd;)FsQxz)rS?1Zqt3-+3~Rxs{Vw|BAEKd6=6ko*U0*zh8r&VhxY|Um zPp=dTH>(i54AAI39tNRCgHWX3_tH0eOD@WTP<;IDqd(K$7qNT8VEDyPKiZSt0IR}r z^jv`cM-2_qx<{aJYmnamICa<`B2c+xNGf#mOrW}d1V(7&t7n3)#^(9HW#pi``{}cHIxS<3NfDf5VO@a zm3gxZ@G@G3CtYeO`HRoN^n)5aJx+@UwUpm>IcN~bJxagYO7m$FLmqMN zlC>4v(RzfjCND{;qZAFy#-Z)Z94fA>jPT3AIO?lIo77i)CmhGbSbxN2i&cmAoqw$lbO7H2M zU)axW|JqEs{yhY;AO!hk&6RprgYY0a6ipwtP&VB6$J4c8xOvh{F|EhhMTBF+&X&sY z^EIYwGsY6Q?o2-jyU)vpRikB(2cZzUf zr3XgtTA_4(aUKoNs^D~Rr84tbK2CBkc*Sd#qPmes&j1bj3wxzmW-iuTq(|jfd&MZ^ z43gV;W6Pb@N~*mA&n-TPsf|SyB8l$2O*@z7UkUKc&ts-p?b5eO58i@Zne~5 z8f{ZPO^yKUL-6bFHf7I;5ZH~Q??%jaWhCqObiQjpr#L7rFZsjTARPU_IwSYwmi(@k@yg|?myz3n{&fin zO06{)(NpUIk^et7jp1?u{YlRNL17+i5m0)Q^NNtkAxm$>-wQ#$NkEpL77PE>5ugX_bangIr|R? zz^iUa%6iT$`o84N>`PMCcqU_9SKi@9$x6w;y;x_)oH^%Yr4R3O%UZ$s_b^$h_%a%$ zzk<nR8tz2bz7-jhjn|lAMV=RQ5tX0gx?l_tVz4W z`*|FvUFlz0|E}_3S1KB+=_R-FuCgH@8RJz!n3Hu^$uvwP&acB8qkGD|OYtyu2*#eV z_mp2e=e)HcDAL?h>Js0pz9@-dDyC;(pmE3cus;D-VdZjDH)2+Bx@?ntcCDuSMfi$$iDx*d3iR zVo?0+z9R0>pEWubUVR=YYu~w|W4G9H=X@*jmolf>EsQ5OW7zM%%9L3*pd+3Z^QVGr zr@Dq4)7|mZvXU$cyMp+94}^|3kQ2Nv!H)cgm|BK%CEv{j`}y~XGnA*Q7UDyFExi(q zFpls`FR zMzZ4D<0!gFtxE-CDg5bKcQ=q(V#e}qOfm*M4niYx2w&As#J1-;jGJOidO3YKUj*an z3S$}nF&d7%!$+KrWik6Y>AFNmz&ByJ+2}3g$H)jZ!Rk}yn-}4@*hlE$Z6Lv!tVz2;!|2k>lH;4+_4M@z=a5Vm4CKL8kkHtBn|8FxnE5RSjmQurL z+)@^t^Fi#QC}vdfbA94ScG1Xh)KaEVzX zOH0`@kUmt1$K&%YrP)4LEIJ!k?mnOP?IAahyNh4cb0&W4B}2S#<1P0DmAmzo3$t$G zmh+f%dDpSqm^+~G0Wv+|D(-VHPm)K$Ek7;h^(vZFM?J)s3=V&gw zwK#zlD+AHb-CQ=zPDPA52o?R!5yd~h4?Si%FJDPAmmSLDsY?#Qw-e@a zKD|u}?u4SPG?&Y*i9Ngs!=OU`UY>I|`Z@QyZZ7xi4#Ih2sa5Zr%Zg$C2%tvs;$w3; zoSv4ut40$KGMB?Dcu@}(gRyVTS)i`s+aVlQ&C=5qh>9~^1pR4bYP_#Up13%b4iczLb;T?E#1!>qFtrOS-l zsKx#M*2+`ln|U|k*p55+E7sDb`*mD8pvJ|THgXr4XrHSvbM|EupoI zv@<_}7FooL+u6tgS5lEy5`^?FHd4^rz?yyti~HEfdjk^T*)jweY$J6a=@~qjI>urA z_kN4UYS!UkD;v3F7-zMW;n+RNMrQHnP`oPww{2{smOr=J0g>o6%SKM%o3JH53aPd> zvU`9JdLHJxW@jVoUuS+|b_^^R@Yf9XM7@GotXgOz_vLtC<+V7xw(p>al2EPMjYdI_tn%LaPB@sJ$Q+|OmjL3ZNmT<7uw6ofkzNx z6$t-ads(L-h28=|sLs#2QTx#-T!*H4_EJ-G4`MQd(YwH2+BAGJ9u@`6A*CrM7xwpGA!dd!`ItVMyfPLCI%Y^L*FmZnX#y57B z)tT9S@+G}U>O0G@qCHR=5Vx=6EbsM=$Bv=Fu&V7WUGt-{e*x=nEoXT`OV3+3`gHSi zABRwkrZzIWrn8)((?O#TXFis*G`tyrCY(DK)o_+ghxnn(mq^U6?kp2?ys43oM%8N0 z^34h@eHUV=XLFYJ#317b$0CaU7>_HfaDOs))kgd?shMrKBp#Lq&hj(&P7Agr;AXE) zGN&@RS69oQ^O^d)WW}=M@Zmhz;FYti{pc9p?_r)rzN;L3;V7DZqc+XcT@KrQ1Wse9 zC$FrMIaBCe#JT8bceRWzI)s#G>^)worDd&yc+^9K3;jK1N3#R)+Mb+ugoGXZ;dP(N^0CA*D}M?J+K#m7|g^x0U9 zGofeZZk231JqGQG#f3zuK$v$;Lv68j8f}cu;#^|uZ zm^=n=mE1Hk5J_Fav0ST?pShE9m=u8~o+{bnp%3bAh(x@HN?v2Oa!61VHLEJQ`lbeL zj#E4Btdbh)lrLS2!7E3V%rsNcizyb7+j$P;1IpU*%!YQBJ2sOan;D0$MZ4t9(QYV8 zD1Xj#f}Q2SkNaRITk*Q@>zH4XcD2OD#pL)NU*jbQ+@aq!vpPPn^pXm9dEcmQ8(Y_ly2vP8 z9ZhUMKr2HhL?Dr~VNrdp+#DE&sfoTw&(z4ihV&}G?FYq8BNvnVG^qx?b{A^o)Cu(Y zA0CLXi5mH`2C@1bK?t(cNb@@Zn0#D^cLO!jTIUb*H^C_Bt&s;>F)N{YD4KQGNS`A< zs5CJQWu5qWj5lWPqGxV9jlASy2!gH_P}h8D>AmbNtb@RF_$~&ogp4_+Y$c06YhAYQp*YL;;_8L1Ebq$ zq^VyF=RP&sSZU?<_ffb(j%BT-VREBle4+Qsv zg=xFw)iJx#oBP4L>s_S%qj-Fo?1p85Zu0!rIP~Uz@MExtj53ME0%oJ!v{uWTzR~oO z;*1pUDHCc$q1O>LrY+S-7Ztsca=5RL(8wi!!|?SQagQ0i501njA8E1V63?VEcXZTg z+-04K-mgR1FZwJWRZI8zLD)Uo?ANWuuD}MDuvIsy^ zsgkxYebIheAfBeEWTQtun7WeqbF50ff8dRZ&eZX;wlpM;RXZdYeOXVc^A4{_2|**) zkgeo(|2PwhTdW(+{xD1Q4*#w$DtW0oIjG#nblIhn_Vg}VWfF+TkAmJPe_#-++GxHxyaT+G>OSRL*MSL~GQ zz2cy1OdaucXL*V5z^qpE(S7MEtzSfATt^S)NxRD;FW%v9)Y=G@{N6DVTew?M^;NUq zBOcS+lerFR*=u?jy`$*izgR6B6VJKEo}|K4m7EwH41H%W)E}ji=f+Vh)ZQC?j(bQO z(;yt-T=PhH$kNXN7}nYsQ{TGFuOB#}C)qFt5nVT`nc34(-W(T<>71u$#0yUgpT#iT(YSU=od z#?x279eJE1guCo-=ZVH6!pNm|mrHi3(TbTJxt8uSCq|8Kj^Xe>>@HWO7`L zL8^n?_9q%!ZZWIq{Vq8zHwx{z!}_?vMPB!a#38*0{F=JSF_saCJwm^Qk?vCSEetX7 zYHYjWF3k^w!rhNrk6d@zn|(pR4rVM(beE6Kg5kVWi%W;x^l9>6ejLsvhcz%J!{iS7ddv37XOau&|#U2^e30O zbWbo0m$=B`$35{Yl)GDcJPt46IeUe|wyLXqQ^OODNYG=k|(Q`&xmOgly2bsy@{ zwr!DqF_C!38niFbK^8eiU@f%_4mP`_-Slu~sHzZ4e~Cq1!q{`E;XTzw4*e5?`fr(E zW6xT2DHv_@$=x?{k;nJxP>Y%l{Ss#x>BU)uv!tbmll;4r`29351g+U6uj~py$6oXn z3)v~Vc>5!;h7U}CI!f2welR7k=$yBs++Z>xjVad%A#mb7`+U}_3kcm)FXO*@cebA{BJ2#WA2Agn7?F!h+{ZttuMx6PV{zaj`7g8HIWq>DyzlT)J#0PhmLqfOG6+ z>1Or`^@s^(t&@T4!eRP^87sM)WL5G%gN}IMc$IB3Z%!!Avwqbzb&%i3g<$JgHIfn> zq-IbsJnHkVeA_M^y6Ui~n0u~M+oWd)a_IN6wyfSN&$A{MtkI&~xGmCSSODAx(tCdC zW;u3&Kld=+*sk9sYiRuN?V>k)$8M5Wsr%57lW^?!M){Lxe~CK4gu;z-YFi)d?eB-G zsT*ZQdc(Xi^oJ^Lqg);11Bo?5EGQSv}; zZQUg2?9xEx7(}k>78!4%L7l-mG@Ilk)9QL+H0%5Yvz@ZuaP9(@hCrO)_rjm&KP;@= zIe++RE$`Qih5_}|ikK$naNn|Mrwhi;pDEv(MM686o)7(OWkH_^c>bVfLo;8_92<^t zX>PEpyF?l-2*d78HsfW_n+JH^<`g@yq*0xb@vuaXP; z`Qz?)EjHF(B`2<-#}zrv)1p?&9S41}f3-J$O&(|SE9E$IA5?$lgMHOk z$~xqNt%~=>c*B))^c63(nCFKqqm@$I(hGH(`lDful`?F-7X5Gg!=vF!IV_j|{$Rch z7wuV#G}!t*0H5Bhlk=x)u#MV=|K9T-CR^kt-j|#WIyCO;Bx}_3#AKfTf8W7+TSm#B z?ve1J_9uJ%75^xy|pW0l8%- z?_2vJJw%JYYwTnb@|-Wh3mtpdNuO`56|d-}Si??^n8dwJkT>}ycG5S=8)oF44=}Wo z?~S-~cu6gKZ97?GG4W68uAj8BlPT1k_5wZn``O9eZME>`erG}Nh4L(O-%b+m!k!hf z|5;|B@%(*OuaHZ~ogRH50Lwn|o|tRkNPdoW&`$ZG3;l40lt1T8dO-~T$?txIGv*&K zm%;7AVMi{puP-b$vLhC$SHhmoe+rK>jfn%h40Da6txu@wg zL58S^@${swqhyNgbVG+01=P`JPm|AD>WJ}s;LNER^5>Eu^3Xic%VCDRzb6n8)SVU2 zpDtfK4}hw*8mO&DU;%psf5N&ZX;#Z3B8S@-E8 z>--F1=9CM}x_6hBQ$x_BDQh*o$7hl=buQi&FCX@&S79(>I+CwoG(_sjl}Ju?gOi!1 zJX{t8+20*aeMZXp+?NJrQ;*qhjLc zxDm3KA$d$I+0WRHkW+U0;1l~}^IaokHR@I#Y}I0Q5~W5GN*nZs`ygB*0H~A!TRv0f(M*+{bVe86tNpUs3q(xL&%NYLf-fq zO4(n{_E7x+q*-bB% zg(-bywO}8_vHraO&{w9l^ufjY8UzpOC;K1tMl1GkYd!kOg@e4||BwFr7yHRJ`RwI4 zljp2-lWwdbe(Z_$ue(WQw-zC-R0yltM}BkU`#jeZ16vQ0?dOpP9j;-H`2y)xT??ye z{@7DGUJhnGZ!xbt&-_fkUrLPxFX(DH!>-{^W#|h299vKmWco{a#6ELkS9OwZTRIzi;r>?U_U1N_ z=lOYyr!&qxZY=#Oa{dc*#@Gl>av!zmwx2)KyG`Z(`&!&S>5O;hn@S~L3(Z;nee#-0 zlQb=MUU$as$4%wrebnr;|6Fg@Og0MFVg~)r_HS+`Z&J70)qwf4#m!_hCoKk&W1Kay zxeVLD``d;%WNvd=pMAQ*dYCb&g?`^v!)TGs{ zC#y|hzvtl!$1(NfNuk9XKkD^nno5V!S}dksX4}zbQVh|ebRTs||GDRXX7-XV&9s<* zy1agH#_a=&_~n6+EGPU#l48xDo7)a2+_T%SRP3k1@8P^m%Pbr>= zvhrCcq{Z+v@vuE7oiHJ}MET2_e9_1Sj$cZYIDQW*@bmAPDB6!AdBz^US_FA>waeC5$?lai5*wzpAJ5t}*l7__?#byOKSsI##P^9F2V#)lf7$9BT#yR$Man^{A>ccN32yAnoi$c{`$)H$YB-m@P24|has zU#$}Nfx6X#9cVnvN3kRR@O|tKthnH(oZE6}#H(RX$Riv-g@ZhM$kI zPX6~D9Qf2q-?-EZ7LA;t-rrgO`m-0>^m9gJgF1Q*GcZ%8aZa54_w=aeUU=9{N#7vtLvB3SK`@Eop45c=W6=n^iNxu?+p7B9ra7tm)5-GjBWj<=p(LZG4`A@ zR`+n$YuvQxa+EcsUzk46LW|Eq&gih}klwtq7TWdBXkmLsU+19)->GMOo^V}XK_Q2_ zoilurp6TP6%cJ6bXuIZ%{ye#;eWRS<_@tt8*PFUa3nylfR91$u?_T$iUIxEvDC>Au zlbv^A;-9+84Gr&1t6liIw4w6BpFGywomf4tsWLf|Jc#8xaXO=g62L!yd5xV|cBZE? zk^lUL#ZDYw*IQZ3nYBjkorst=Sb4+ut|IGXdYd7N^=A$2s3Yz+!cuwEOv~M}3kL18 zRKj?-FD)R>{D1%V|8x^Cg1wOaz?a%UW_I7<&g_aW2CkzvHZB?3)4o`6m^Hb58nX8K z;(D1g?t3fP;pU42gUL%TK8tJ{a;02daG^^c))0HBl1o11MFo8decdj({6}DcykDQfCv=-LQy|AE)EBq!@u+Tr(Vj;Dnack;ieP%sZ7r3C^`={BT z{fJ#8lLzZ)efod;wRXNP@LnHy+I2F2z8lB`cz@#bt^rzDQ@0-AfBkeb&VxfNscZG? zrhm!)xzvi-+RMKBr#!c%LwSY^HtTggv?xfSA6m&aeOM>f5c+f-SQn@tI8lrHJ6!Q< zM3BDCSb9g(NAbVsJiS48v5UR-3~OiRI`tRx5(DrknKO9NP;rc2u>Y!XKl@{Zm_9WC zA=I+99Y0RYYD?YyT^Br^J6Twf2l$?TGDgRyiUZ7YyvN>SdY+9?Q)?sI)6K5sRMGdl zA2K!cli4v*K<$T<54cZ%JW3Q-;Xfy*$L;hGv4URW+6nG>mfcf)BHw&7_mU$Iwh^~? zQG>S99gpXmikimEm8D0=pM6!tt59!rnM@DN)xXicpEr69=3f5MOEf9=!X0v`48m^H zN6-t68o9&CsF0rYUU**39oysdaNxUqu97>dS7hE>p%(Lg)9?B|J?ZJK?Mgo3xUKAE z61BMcj=pg0HL7`QQAV!D>d)4A>aWE|`e+@rorG@g#QOO8!khXCmi4{ zLVte#?>WE8bQ9CkIY+GJTfb8+7H{P2P7UnP;a=ie4;?m>57x5GS2(|;AMFblxNi>> z12`|g+DxCQ)L?ObIs3Y5?4K8eiN4K)5V((e`Oy&~?Q9?}jC98p<47@=c>L57cT7Ws zXkQY5{cAkXH!)PaA0L1LGg(q7AXPvySx5_~#)8j`G9oa20uh zj$(I|FKl8|nEi9L@aE5Aq)vtWxcStD5!3LXHv7;t(ea}=aE>L@Cid7(RhO<&vg zqR$uhJpRlIuhLMYvR_K)pZTb(shIgzOP-7hozEMK^JQ8zrY66`LSvErn)$=t<=;W= zh9ogGHWa4b^l-VKB8ChM#mg3~1G5i{3)e%Co>q>w2G;y~XJ=m+e z;nMj`aX2>^b@JSB?|Zh0pht3omOexW6*0C7xfSd)=Bm$#Fz%?0I;yaxLXI%0NA1D~ z6&!a;(RNJ`QWD4?3&|Eolc?kA=7~KU)5K?Tkpk&=;Z>L_^!&cmO{Ye{ai93Zy-H!8 zCv`fp;;NM&h(2NE=TNaT&=+q{dZMFEpa^?Qu1hBKx$pak)-!zIL~h*oAzCrJ$Qy0% zdBSI+TC^F*-8`A$`)U%|rVV$mcobmH&*c7B$4y3`Bx3^fS1pCy)4f0IzPd|$V0cfRQ7 zO3g3(*sz2`@wSX!*2Fgqvo4BA`*7%MxngI@6>*FB#^=k#H|pLH<2QsMHJTYAR<}jc z-%zA&Wv(r zSFaG!|AH5qX}!>zd856kv#Cz(Z|Y}X@xQ&$UuWW4mwd&DJ6<@fDX%+ze&Uf33!>q` zxnRSHr@}KS3Y`PUt$F&KnwLnpEau#&eI<@hh{RA!H`E?bDt@IzV0|ZgpuK)4p45-P z7BdgnM|~8d+{3YlT$(L?%fw`ICwzvgG0O3)Xuc{8ZI*hH*Y%xV7NJnFSFpMKO@!7D z#j|uRR(<{~wlib1xsMmtEiDyGF6a>b!wZKFJQ2Tr$Xo30jm*aPgm!5lZ0Nh;xbT{= znL{kimiw2NMPk}Ye}ogS=yvv;=<7!uF2oy8N^->5v%a{P?~S+BrHHQV3mx^w`E~T7 z*>oQaoa2M^li4EbfHy9Xhg5d{l-O%R&t&>+`!7ust)_e9<0~Ibdv#JYA?`Gh|2!-E zun;@E@tQnL!(E5P2W$FLoB3ktvLtcmmJfX9`oZ9Sl6b4*e7do`9yYJa7qM(e9Q{=3 ztJazN-|4Z4<9nSl;fENwnSSGG>;V@262Vc?2tVY8j`n}V{UUm_r@F&u=|3^wI11xW zdEndL3YM+7du?=^+4LS2Et}{f@Yj$Y#DgnYZhI1rdBZgr6k5qLx+`@vd{+`0SF(IL zH4KAur~{#X*|bq8HhX$wg~>M&OOAl{gE!>ecjD}F9UArZL16zE!f0R+ek}80mSTxm z*M{C5;l$?J-xD=E1mF;NxVszO63s3Aq2@i_G3~lAW={Ct&AteUxhkp!v!{CQiyIMF z#G#8mIJL|V`+r>)+iDR*E%U>$z{_G0&-Rnq7b+KuS~I+{DBK^% zSLKSY^L=oAv_JIAbAWMEl~Jb^!ayXVIlTKZj$LA@Rxu8)2rmcJ`RLd~B3*bF1ft>nlTvnP9d z%)oL-88r&sm~&cG!E!({eIecwQ;Yd2&d&XSm&Y0*~oiMu7du-1FSrhhwzQ&fFGMUL>?uxK(CYDvyd(dPKJ+=;-SZ=i5jkV6?j#jB``Kd_)^Tp`Z zWnS4b>_HsNuW=vNotf#8u^9SSjeA#3EEi0O!IBQF4;4);lRh$+hdpI;m62txb0m%} zV7;?2u#Dn9dBQwzbeLJe^5DoYjP36O_tiheQ085>D)qse`DG&iPB6ZxeNn&idy&Du zs8xM>>6g3~Y2+eKi}S;tfR`dIf?nUeW1VZh6uuDwxI+He$zCtT+c=)A`ck+Z z@ft~|gaDJJArTxWYuw6$F?TZGMZHFF3L9!c;)i$(jwf8Vgp1H%lqoHLZgH)t6 zQ^Bs9p=I5v2l0M_8b9|LShfy0Kp!u9SUjm@>3J#%R-DaR$5gc3{$wBAwZwPa{)v7) z6Y)vsg+=Foisa}$Xr01$$oq@P`j>zOsXh?aAH;|0@%Ud4an9?F&>tgrdltD_i7!NH z`xs_w`yO_P6yI^}`LSk<6yQmW{Ge^g`_XUK~G_g_&OTxY+$pET?{F zqn?^>pSNP`m^942>j}-VH{#-l=;Z0%RKLyc_epu^tReW(vMi6_8@6#@eyJh<^bv}7AtuKpd zQTxd455(5w%fe(j_4T};QwlGOJyrMOO&K|OnU_T$WjAwNLvUvIWfAF+faaq^@zn3K z&<%=5()uvGa=t9C{)@$kSn7!HpBA&81!F(GR7Olm7t3qvP?tN8fkRS7lRAOS)eOf- z(+H6f?~m5xOKW&>VabHY;V+L{`%8md(o|{8pfl`pR;Sf3*vYGvnXXR zSK<5x@u_tVR#Ds8vFAmRXeiOn&>a(JTol^dr?F@dB&my6{pN0VLvi)_1;^s!CEx>l`Ec-r+4Wlag(}=C>VVh z4Tku@d~KF6IClt#$v>~MCQXd&auAwKKUAE2Tpac~fJka}E-gAL+Ez^FEEWK9^N85< zhZ)Dbw{`y=5uFb0g@q~K%YjElpQXEz#d~Qq;i%Z$H6GDJL(pK-QBmJG7GFkkCp7M; zcu^Kb&!;e8)KO9LJp#TH$;}W)MK$W?O~{%4Z@sl`>@Qw#@kNuc2<{hMMXhU`Syn~D z&u@#++*Cs{!z=UEI&rfB_d)}sF#EZksQiU{Ctdk-er9n%cpS{5M$84B&KwYVTXOM| zv-3Z*6yezK3~_09>=>6K9zWM(HTQjAhqEvB%*M-5a$_o`h>wl3F!D6D^Xm=>B_=834)KL{=S1H^~d z3Dl?Ss8tIPvLqH6t%9*FJ3xH-9fiHD4>`92gl;JFVJn8B;_Cp>B%VGH%-*{BH9%Z! z7mOnp!Z5NzphzsBx78tLnV1BMjqE!f_(Y&4@2&At_9;Bu|K8iB`zMR>$5p6PFADo} z$BOSA=p*Yu52?@8Xul%Q=>Ox%%zvg9C)(!IJB?WPYEL1H&cZK;9-ucp#i&&|h-=C{ zh^a<=pr*LTau59Nq7ggPr!kcC>CqY*vA#03mh>je3ilKzeKO#2#}nHe)uKV)G-iiu zFu=q^wC%&pZqB0T&pC^^2ae$%9I@%5S0-BE|yJLZXi zh)4vGi{74}Pt6F!sC&T(-aC)JYQb;&#Qw78SUWMK zjt??hgroB|J8>$S@5zgBzO{DZj+G~HFaq7q*ol92dB4_2QcGwjZqnoMZl5S*)8Ehh zGjXObQTTq#OHb!}bjMhRV10b*CUAU$fdsMPKp7Es5sA%2XQn3#(x9o?~O znw4nLikWg-JfJybB_@RFq36$Xkh7JzS1%iR56Rb=Ge%V2n@N8Hz5#Y4#lw~9*vZ|f zY8FJ27ky5sy-FO>Uwkk+frrc>H>Z!^kH}*f+shZTueK3(EvTJm&(!x$bMg5E?>4>Z zT~;&^6Sf^d1J=iwZjD5L?8C8&LG*ew6|Ky7;}0`{wwRiVw(DXMox@(_N(1rrNhEa9 zoHK7V5K;bNsJJ-7KZRRQ+haX=g3*N%6n5$rKu0< zr-!4fc|&0sOCK*6YBL=h3LA1W{5Ts_&S)sCjJRv46@^-*4aHV^9FDpch0ywqMCxt& z6@^gG((n1!8Uv|GT*}F1iwk%S*!H z-8B?eZb9hGI$c(Y*-`X{P>%@07wY2I_6^3;t^SDEACBs^Ly*T==kwMGJS(9FZn78J zjf}(_))NjSWZsFvpZ23^_;np9`px}k4F4L@&&fK;>z+EbRKyEcJw*f zb+i0AFCN~VIY32txXA_ApY@~ms{p!32}I*2m$E0t9Ypf7AjGwQ zojqVw628sVaS!z=+qdmr)E^U!iy*{K< z7Jd-Z4=oPR2ky?GC!a6zmqfj@VLG<7^v42uRR6c%NsK!gfGsI$`g?tk!Pg{+Jz0i6 z{O}=st)oM`b{YC(Ba#tXnf^QT()Ew(Clap>Mnvm0y;Fw-+`1hCb>azqwnGfsWrSi= zjpKT=s*zY8!n0j-RKN0aDD2jUBl^~1y-&UltH(y*oOP=H?Ark3w2H*oX9x9H1~Z43 zn9h#C6#Z-F(H}0PH;wH9efn@M*2P4_V`Q>^%r`Y|tc}6hNlE&jd3>)Bi-7qmy+scd zYTk??_A*&N_cguWT9(%j9%%eozsBtn%$;4xCwZ%X6H|o1udZ+oeWll&FF-xw>Sx7E zy`(fJ-Os>mrzc+RsGuBgrQjTWkPNp~Q@YG$KKxF4 zD>Q4Y94t76xPCt9{Gz>bct{oo5Z^EU-BW4fmVvtL*@pG#r>yWv!$G@1xK!$|MBC6e zi9TAllKUx<>8Wrys)PB%zDlDZ2k5hFeGq~x%Cz~o7BBNbL^pX<$3E`MWEEFyRu9jjMab1yV7-2Ceioy6!%DPGP^21 z@B9#cEDDD|cTq;!vQ~RXQ%BiFsar~(40Xh_qB<+@Bgoe^kHz2`ot558iGSB1cllOx zMcYV?%&=Ij+g)4H-6CfBs{A>(DxRb?|92T5JgA3_9IsS0yoiMr-B1!bR%zP05HmKo zW7Vp$%BQ9I7;ul;xhvz97W9IcI*eZH3D(NMgd99M>Is95w#tQr%&i@)h1u^FirY^; z5?*=1G;zC9bLDC5Iqid%a97+fpF+1JKMXzPsZ98siB0s_y|!PYY`LBe(;tCwwbm%% z%TA!zP#tO>@>DWU9>zxY3aM|^N_>|T`U!+U(_XEZamJKALos8KO8Hf?8zy|$0+T$H zR;}Z3n7a6)U+#(>^=cPhhU4>Wccsy+aQrNcK#g;5%B$hL`v)U&5N^snTY7`}L}6gA zs}dMXtkpgmrZ%pM8S%YLE7pW}E=tWHFI;XHi(xt!WePofc30qgFv3L{XsE`pyK(sI zyiBPbzWs4q|#?2oCH!p;VIl5u${`I^(!9=p^67!(nLj z;FxmaeH`+l!_m?7nDTd7G$wn}Q)d2AWkTZ!{9YG{s;7=9?f-_L_RJ{M=x{_)u_hfF z8jUe=hn4RW1Msp{3}V_JRy0R_k!#3%n~|zy4W2i{dad*G0KypvJ8`<Wv7n1*F0Z56t9$LiXLe>#MB17QCg|9(PwKQby=^KiaoRN>N~v% zn!QqHuSkQ#;9zo(UMR_-N6~}4Uaj|YrO%gx@TB)k^rC0VneZfR92189)1E5U>b*#} z2*-kjPm~uK)bsU}?&1XE~3QcDEv^hoc6m-Xq2CBxjVr)E93qQS9k` z9Y7BngBK5#3&fnRUXQ`+r4JR&96!Wn$HJ`afnr8nsN&u@82Ua?w(TMZ%qt$JI$l@4 ze$wJdbLw_B6e=f!HMq8k{y}ZRlw`h@52-=^FJ4zU`GaDy^#(?UGAG61|5SC}K~-K| z7f0+}qGFFV_J(4K2n!TMV;4lQfMO>!X)2=L2A6*6Nbdr66cQ{^wxZauH#91OHO3Zu z|JFO^n~8rt*JqF!&pn>9_gcU8v~05F1@!HyM(&*_WvP?TA|;>MC5xYx-A_A>gn_Ir zd%P^uS)D{b-T`0t`cURX7Q`5r5EO>ikwE`ra54$Qs;CCi?_4>IhecqZc~fcE<_O}= zbXaWCLPA>#E)OG%U|$P~CeP;;YiK3yTZrN0129__hurba<>&dOXt$N;T}3l-U%v-^ z%Mws?x~XW-??B=4MD*+5R3^D^fzioL)HXGdH@2H$Q$f~NyCyP5nT;iqjC0H)F?o`X zPJ2_JGHWa!V(81dUFMx)2I>c(^5_rU&L){Z9q(gVP?R1O`#R#;&`IGo4%h8{CLb`!{rNz|4 zD59>ly>(xiboCH!Sj3`@XCL{x;16c@#vyxsZ;73_7f)Iz;8Xrj(#Nrw`(z@9KIkRa z3wJ`y=#v`TOQNwAdDiqSjJVE26>qg$? zpGU)F@;Gt$r;M4oLkCt=TYQ>lEIk9TL1p*}fQA{*zz`5L`Zv-z1`n?ARBZ+T)Od+Mk0 zES(0MXcMu!oP_iD((%&FM4T=qK%Z-`_3JS*`AaNJ?q*`uo-xvKdNg9Ivv6b07@2S+ z5?ya(V~o`p*~2~O-NhWdc|KHJwGn7aZ@I(yZnAS9&#)YSomF?qGYH4E!{3kd>gN`+ z;%yb~7AO&O!dx`zS5ViQwNN7q8I*sKtT5^jT*pg%r}O02lcloOT3lbAK{7ST?Osih zCI*!VFs2@*k&TRk?6(R`^IPysX6HZRUxAZH57@rmA4lT-6$ zZ^Ogzd`VqG<~&h&AA(^>JU)iamA9?;!-jtC>A4Ovx9x8jS(mlr8}>4DRuNP^lJIVj zy)3=44f!U?*h#H>r(Ffm%%G>W%^X>FDi`|BsqoLTlMa2d$XH6lCKEey57Lkskd8Oi zvt^$)8DoMn&@5^;QS6D(MP#DXdbaeSU*=#8SxXIP%hH$8xEr61JC(LFh>ZHqi8(M! zpCUHCI!qm%0lzjAng2+iSIjNq;OE*=|3pm@^v``}?c2icodiCAlL z{4dU7PVp)HMxA7%N%m4(a~!>oFqbNGuGlrJK&NJbICjxd#)Tb4np+SO{Fca6%W`a? z?ydAU7y1W}U`HH#^s79jQK{g=FZ7bF^pU$A%MkOL8L`iO<>jD*aAckFWv;KBZg&6` zr*!zJ@ezA{&f$j9WJG&Q>5Jdcv}+8kY`vs!=x&%ai>0P$m4uAjffLVTVNmW#UcnZ$ zJ|Bl0y*%ZF8-1ob;-N|Q5YIc=untYY@a`VcJTe14mn7mbT49(gY;(?6_ZEsc{aW2e+170f_E6vQ&zoRb`+76ZQSb38n%?1iIjG(hf{9~;rSvn`;V#r~{G*lU=IQWc zk1V`MD_wXOSxetgyER(zM-rM-XIW{fmHV%__p#SdW2hDTlVtx`h2zqbAo+422Iq^z zG4n)_n4DzRE&W;}3h9k~Mh|pc1YWmPOTD`~U?#H`^ynXa6N#|!NF46FR=&_*upuiN z#&ORo{TrCy53$Qa-flz;bcOwf> zyF-D&i#E!hefijOPCF9=w<|wX*lnPa9KPk z59e~2-xD7u*K)GqcY@#P;4sm2&%~6MTR6GCL&-DqSo2d5J~`#(%z z?~xjA5Bl^QABe=&vOp;5`K>OcW`K1iFQXutaGyS}W6TG?sh0kWbhuzn4b2s`)V_{n zZ~S|m%-7L=^7(N-oQ)NzYvC(1!t!CTTmgsnep1yjAIB1?rLSHiQ?fT>=V5BY)~=Uv zeK#ZVF9p7oDrG}a9uCmY@_YS2(X+@y#t9; zwe0f@c*LBSmRd2%;#%b%gk5#CGWlL4vxb83$tY0#?N}S>NI&6#Kr!Y#zcD!YyZLNt zO55ED)6?IpY&{zhqYIj4dm=E;}UYQzMc~6 z9&MD9U32k%uo6Q*sbul?9E`A|mbEHSs5(RhYk*sS43@=J+?!IB7^Dc1y{ogK-p{Ox z_aQQ^Q#MwyK7OM-ME)qxLMD3>x=|sr%$FYX7Am}dpFoCrGRM;}R4dL~lW?5%#s%}WqPxfbR1Y;i8)?O0WCCWg{$AQd zD|)G9y2q2VCos6AVfii&eHjX@q%rcE!;{EZ&%pmOCr;&s8bohPo_c})QjKsPq7f;42Fq(Vu z&DptlzJ}RmP9C!K?;L!hCcM0^mw5T-ke8@HwV|IJtCs^uY8^+8SSNo(X2WPYwZzT} z*-Bl<$p9sG>Z`?IOBQBR8*JBwYzosX)ICdo!Kxs6c$swwVsU?#=pSP@guG^&+ zAHMI#GnnyvmDIZF@V|^eqgN`~@uLpmn*+a_&+bE4N>G~|jI>Z-!Q&P3*ZyqWS1M57 z&_!O(&IVI2(Ywf%zUeG9r)DWB!c%T~XTfwdb)-{$#pO#TmU_^4zrtVc2WP@DhyV9S zZ$yOK1_JIeVvQYFc4$-Vf8*#TWtvMVwLUIUp=-Bcwb=zlaO6aT|I zrHrLV@8mYF`L#+(B^$x>xf)@omGVFpk3#l_o)s%)_)lakF~jnQbfw(B!W!Wb4gL;R zO3TD(Y$Frc)K4krmPEnTHjpefr3|HaGbxQ;yvyV^oYUdBXCOQ)6{6+)s<=S3AE^+7 z5FJ@GT-%2!SlX8H4odGsD}!ZH zY@5maN#=+hS}BRO8PwY|XJ~-C+;Y!AvW~j_8(z}w9l0^o=Do69Ew>cZ=IJpr`j)?J z<+yD&=G>dKUK%E*p~q4c3_Lc-*gpKfAEUyV^&7;OKK+RYRnWggKk1xQtY*&d=(ho~ z>0=7Ikw5k>GeCsg-wF#gB69+yzgse@H!^3mAV3~8O@b@W`Hori)Ng0rQ)3MbBLc*Y z`mr7CQ}pxUya4Ghn%;A0^}WQ8pn+Tai@8J#L#DVM@fFmKkFpl zi+t0w)D7NPCu^w1izDm7Z@a%7f6Q!(r|kP@`O7Q5KiehJ%89XP$H~U#a~e1@-mG^v?4Uy#n49jF<~~&s#oPCS&;`=IE7p z%jYLan9g;z=ApL?>X(E+FOpMX;3N1-W(NE6%AP(lgFN#4^a4nCAGyg|)b`!vcDDAB z-H~zlpvNr9FW!<)-p_JsQ7j*LORiT8wrBDzao$^8y`z!xA`lM`dW--1C^Q;R#`P|5 zG9k&FhzmkvKQCEDw$dT4y&88fxx@FLct>74WR)~3=bh1$y6yq1Bt2AzC+hFVS$BB4 z9Os#{^E3rBiD!sAxsf%g^dNVdB_r6sO?#|>dxfp|lMAcyE|hZiB^cHV^K*-3?|f!o%%una;WBZ)nT)_>>U%q`WL9r7G*`%po$eye zHA$G)lIv%-ix~Zygv(ZH=+AbM#UIGL_g9mbu~K$K^Ul4CXM=q!WrHz&yWIEd(erM4 zC=s^Q2JhkTsXUi}7;g<4`MAg;>hUHDa|AZJNX=cY4+iwzt)svGO)Tu415wA*MaIxW z8e2?HsI!Yq9m2Y7LuSa@x=6Ae>xlEni221uu4tm5zms{g<6R_YFZ=MUDI0%UA^BaR z@S3>~Bi^kLU-rspGjC{5gOy@W?#kjTL9na0Qmm*|xXk<7fA1-Ub1Y?FUMk$^Pbspu zk`oT8c$}v|_%GHnPCu1CTJC+#ev!X2Q?Q8VwA|%WrPrtwT*^?w*l?z-KAH?$&f!?r z0midt_R^Huj^_4cpe5mwRt1+{^W^$OX7^C5;A*}=7L;#-1;@78Mn{=5jw~+jSy8VY z#r!B)l_AU!x#cMLc-B>vbNrJWrR|*r-1*83tSyexdjrSQj7*!RPI8b;{Y0LPZ!K_= z3jy&ks?>09IZ5HcIDF!Hcv!lVoX}&vf*y^6OeYyUAr{3F2*Xq-xyZYq5A{Pn@lMk6 zRy2;SWOlO7NgmQyt~tp2EPszFxgC+MwP?)GRkh@Ku&?oCq@x5=zmr0?>a7uuGJ)*9 z!o|$fA6XnsNO(>==y{Y?T zDL37OyT!~w>^)7kl_VljkJ&B5W=P(EM0{kOs_XihQk;{3TAl~$wx1={-N??VWM13P zv&1|v9{MfF3LiB~5{JcO0q-3z+-J#L-rWwzYT$W&mRSEv2F#z#zZ_;G1@u1G?-z)G zMK+SQJ{E7*GRxb?Mmm3t!TQr&OV`*)<=Plrp}+JYKM(!Ds;YMoYF68bB7mNziXdF( z=TmyoFzc*E$yys}sHI24le)q6Hqw^0MhAKwi>}zqZo?=vbfaG7s=ZX4A+I`7i$h1| zOZGDzRCAeW$j^4ib?qa=>%%7f* zAV+#8pkO%9v42@ePwHMb^Da;_e!NU-5Rb1X_+H;quG2H#(m;a`b1h}S=U8UHbDv7E zlxu#%@Y+(gl6!HV`&TztE3qq%LDfjswaTpI8JQBVsV%8|U?oR6hF#gmZ1LJk zn)BWQ?fI+OcY`nNL1iNrz|DY)}vX;)|6eBt*f7^Keq#3F1JF`ZARkBO3Gb zeR|2SYGK)Gf<#2}%r=m@r44MPiu2hnovba^Cof&rp`4jan~Ln^;&UDRlv-5q^PAH; zBq#j;IR9@}fAbJ}`Z~L=T-OCQO literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON D5300.dcp b/rtdata/dcpprofiles/NIKON D5300.dcp new file mode 100644 index 0000000000000000000000000000000000000000..2c7566c8cd78547ff598f94a97d9f333d3082f19 GIT binary patch literal 65350 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

    +BJ270IlF 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON D610.dcp b/rtdata/dcpprofiles/NIKON D610.dcp new file mode 100644 index 0000000000000000000000000000000000000000..a5a05ca34feb3ac6947d7572c59fc7da8f5bb2d6 GIT binary patch literal 65350 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON D7100.dcp b/rtdata/dcpprofiles/NIKON D7100.dcp new file mode 100644 index 0000000000000000000000000000000000000000..332157fc96dd4ff99242aa420804b9e507ca8610 GIT binary patch literal 65350 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

    dKMxfEE@9hVkA8>7aMFM z&}C;a>JBvFv!=y@we;=R86m#Xn|U<80DIK~MV*F0cswKz@n3t2XfpFFdSt`ar<3Tr zi~9`kI6o6Ri0>|bIQtDA`5x_&)zI{Yy1P#5|= zpsq0ZbpST39fkeY6LFO#2mpJTHJS*|W5rNcv2WzuR&3?k5`B?8$!@*H4Yv~PrIz@r z;VALXgZ;>~=UP@eS(ME1o3@1KN>yZgkQKSl5vp9YUtcH)Iz0oL5fL>+xQf&08qe96H~&pl#d67M2z z`PiIcE&iRK1_P%;oVmDN1YF@+?_v>|$eTp@#(1Q=7o*D2QXK6RgZAOYNSUxyxYvlp z!}`UjMxwY9T5&PZeKTBgru+z^=CD;^>JW_6Lb3>!0-9I=WOgQc8BgqR1U02S$I|CsY9`jG4kEyS z44f15Ma7&$SV=Fx)6b0}>GNUuybOZLMmurx_7Q}hr#HY%C7zQJ)ae7y62rWN$@s&l z|AhONp<0}~P9Ock6qFkKidCmd5HTzR+Wx*`>83*TR%ByKFSY1Fo)0GEq4ykbQDBt? zZ~Fp#IO`$)d`yE$nE7hUge!7WTt5O zH;|l+Y&_7LEW&bmZgQco??3arN5^5J=Wu^qwau(H&X&#k2#1U^#5$7E8sA$4_dEn! zGXHA24-`j&527DAJh9!4#UJHC&;#zTyd&}Ya+1OyWPIMg}j6*AP zaAxZg@ljA5*Eky{+S%gr^gzt9&tmU+yg1!I0PUYuA7^v3F+!KALm7K0GwY2Jo20|Q zTP1p?n~5$B4`I9~waVjWi@WMWsN`ABGJBnvz3>RW4xmT%lcT6lhR`w$kvv5iiIkz$(qUy8A-(IGQNB z@f@DVJID&BSh0Ot3NnTiWB1hvF{&y7zP*aE{za&Gm=ud2DP$kq3=sP=SsyJcBvZ*p z7{3e04d(*rj<}0zEUB(e$;Q7}_ov8mDaRxwco7JPXDg>ul8h zx>hKL1RLeI_juy=Ks(r_8E0pQG+f=d&Z@Ai0Y-YRwSAD~_;t zq=e`3g~CyL7@LwFC7*=tV^(=JP&aX4+>k;0+eMH;6~>X5i>jo{puBAZ(+Vr zuE=1XPZ3JbW{IH(Qn0jTF?t2_yO@>8eUf*;fe9j{PaJ;FE<%2J6m|046So#(&o-?{ zj*WojlmZ-^8YJe9qVMcy9!@*>iiQm|)EVVs&<`JRp0(q?t21G@#6!&58G*{MkoGHtiCZzQbyc7!XSulitN?F@ zEAh|E4dRHd09Dkc7LK+Tf2@jdz?>fWGu~pl)qcF9mbk=M_mv-%ek2R~9FGRivydj|idoh%sMOEGfU0zH;$9@izsx|N&PhV0 z4u?C>4^nQ7aI)26gK-)zrG*P;_Gt1ir68h8D>~;g+e?vx%R#|nNpT2D?8z4Y&pe;} z%~OQN1*6g2R7`qgC5|Kq;haVFaW*O5Af`-Xy@Eb^ZP0o#acUYG>{ejTlAU67VH)Nw zV|G54UAyRneFTXCbxwqUYOvWbZvS?604fommaeQ!2j6Kep)#wy-cz9C0 zJxE5kNJg565aLw~*}qBX*zAya!@j`hqlr8V6^Td9BOq9-ElbG}Qw@2>tP_vhKhlKV zI1O5b@NRP{Q4Gip!SBH_IG{=tdK2ht=G=JlD^7fMqGw@947Lmj6TO>-z<|99-*Z7? zMr<%zk$d%gv5ly@N1yMi>f`*f*CtW(PYhz2Q}eXz24UnGjlz5vsQh+`X**(YX@mkj zH7fC}OFRa%_q}33h?v+R8FOS;Oqxgk+VOOFvac|E@Ihg>DFjeMrc+Ppm2^a zR=D00RZWZGb&Yl2qff;3*TpcS{-9^SmtyzmB6vB6E{%a)b3opdt&N*04 zZ~V*OPlftc2JXA^_Z|93G>cEg-CnWSXna@fQzgM>Vk{0xH^h{{c$h!pxh?Rb=y)jx znuakjb*m7mGow&)Hww*n9u;>QN1$YPBtB>lixDltQ14ARD*Bd)H7hhYu__Gpr{#(J zPnomxNW;2zrudc`jPCBC=+Ztztm_XtL0=;~`_XWrc z9Z>Fzt9ft4)YZB8aVij>UVRjMXS41a5CTQUCvoakCI&3hz--4yQL{Ji)!K=(^`bc%^!{Bb zx@-E@ zazuM)>aVCnQjEs~`;ioHVDJrL7c=%R7QLGJ6gE;ZLxRx7_?)|Ba`}RO=my@xN zb(U}U-wUHwY4C0AiyvFRiDxHMQG2&PYQ=vSTfQg5`8xd%Zr?^V9xKG;xB7{bJ%md+w`KS z!8!QP0X4ELPl;P$A&Ap?W8+F$9G*>mNF_Nc(+`S-Ma)C2>w%}!3Prz^KrG%(zyG=% zabsX0Cihff^w4ZEJ0lR=QamxRMyBwz48$1va6hG{i`5a-_K>SNI3Z1x>=jo&i z4n?|(7k(NvuBpJ=Ag!=S)1b_p87o}t##L%?#$SQnBTtG}F4W0*D)GSnj_BMy8t$w? zxlDU2LX6^YeV8YG4qwFxFKR^wc%y^wcVV-UebJHho*n-t`juZa&W$?4*`=vMeyG2cH3 zKciIGbFW;CUl52D%aw4SP%7%3AZOJ{fmvpSBAqqbtO*JbY9vk0-+_{;ja}2}3HiM)>fjY6V@5Hl%p;$PVxp*UA z3WI+_V9WFT62FJyZ4CKZ4>~k8{D2FGGc2g$92eT~M~lSmf@}VAx^uUH48Cf9A1Y_m_F5!5hS)xf<-G zZt7bdH}Tz4!|$BlO1aH+RL4nL!xX zlR8QDb+Mo*5ItLxy;*indDWnAFwA&rGhpmCTLZV=Ar=(IAZcZP)D!g^rBVS6i9=*}f4!JBQ9129jURSJ| ze^yNE5QvZ+u9%xw&d*GZ7T>4)r~TqkQ}WN2aF2MFEw0*;tHbYQ_km<#@X`+l9+9c_ zB~~=2uX#ll$1OQZm~-Fj5~f7@wn#C@zz;@+9On~}qEQ`cx;P&~^`k`HMt;~qKEobF z3DX8-#pt=hT@xj?w(`SkzW?-+D6yo4A1;k#R@yUiGy3=;v$VSYd6j)v(er}_+jz!k z?%7W4+^E464YMbjbrCP=hpol6;;8Xpae?=v%;5@rXf{dI;Olo>hx`6qBTAcSp#8v% zj}oQG<)2Sl#GK6=A)@>1P*^gD!s11WSeis1Vkh>7ol3-m-l2HI@u}KG`S#urJWY4S zmc)~yPf9R(p00Q>uR_>Y(93y)XPB`S;_&A{^yll#i%*L7LzpQ^Uu~qG5C?+;Fyab% z^^W^RGIJj;-lzArDoeO2x&O1L89g{rth-L1poTd(CnLp*f5@wwM*rAIt*CR5o=rXr zVtc6gw8Ix4n~?SNC{%oy@5}xt8x4CHaJrte4x?oUw7xC+1D7MYw9^pPh4CHHv0%jkl&l2DHTElfX=j?W|ig%HG z?tLvPJj6OOI;=jEF}Ng51WqIqbs_Ty+oX!H67KsP+qPW`gw>B=I6PthvBN>((T(~y zL+U~g9~L9o*GeLD>9XGu;l4Kz7K2o%@;W4{$n)_VMxVGS7Uk57o*A#gO_MCKpKHR` zH7ZOx6fXj5`NM1;^<^9r(=pV_@;x>00!1UGFK(5%lEvyLPW@5iuq*Gm>3-sFDLwcB zWQM;E5GT{AIe)~ya|oGi`^kW}QNdUhENYTPdfr%t$qPfp4WUMwN`>Hwp~Cg58jBaG zVADe*vTmpmWJi9ElSZU}R^!sb>gz^9>jvV?J`J)Ly1@HIEs^s#6r-qxo|0cryge2A ze~gHthRwvf{h_$CS%JqDJ;d^oP-w3xaO@uwF|mMJGp=HLx}+EIOzbUzn9N zjDOdMhC$+6C-$W1G21XZKnx>GY0NJb(mw==WBt@vv(OEi)F3f&ff@_mGspR6uvofO zjq-NPAm|?=YPeFLd#(C72i^KD=a1FEoWA3<39sdw{~OyK-jO%drEP8O*NB+!wgw`$g zi2a^qp&Ta*rMH(zx*Uul)bY(O4iOLzLt+}96U2l8VJ z$%<^q{^Vc&zSd4+e;4|B>5cq;!AUeABlFf4&i|#Z;@l=5X2;Qk6>VNN!}6=iu3gQtXXzVZm^d1lYz`hfAK<=I6p7N zC~)?6ZPA_iT&h+|Xj`=uDU(C7L_^+MLSON^9eXBR_nhs=iN?ARgzI^?)hC3! zYBIrY*@$&($cW=}Exltdxd%1mk(^6p8_q8bglCls$46>}{BHmnb|OP*W4KtqfsBr= zZaB6lT#R`}JvlYc^Dl)6A7AD&4{}H1BOh_^iyy9Ubw|f%3Xyn%zUG$hsDH;=$UDgy zwRXb=w{7APSu~UQeFY8LCI0>3jk>SdU(O^yhy82Q`EF2b^AK6o{N}cC$C3(vk>0`w zVeMHfo9!#cdir36&W#?H0FfF-j_E-1_of60?JXbl^LNA5bAcl40ojE7Y}eZaiEA8l zCH)lty?6h_K% zLVc7!^V10#&-KKbdmdy8IpNMXJ#m8Cy5K-3EbpQ(=93%xWtkH!!u7=uYLssGc0%bw z1Cc$;6P{lj;rZ1-94B|bR=Fc4HfkVtGPg&gcEs{v17RD-yV^WQggn$2f&0mXZsUmC zQTpQ31y9s|;DFg?24XH*0wUW16I>gJ$xZ3?b8*0_#fHLm2$^8B9k4CdP~4v3h479J zxLVBq=@zmyUfRRtoT2zYZ=imOJ^bDqit9;Ua8cSLp>spgrre8OYJ0R@)=(7O^TLCU z_GoWwnaMOgL#?U=b0_KcXh^O?*sC7eOsJc;Ec9p{{LNL zjs7)wkN&@Z{`X%Oj6eH8RxY&1<0sBY?Qvi3w#goK&p4wAneh6~_NbTVjO*Ta|wXu8Rf}U^1Unecp^FDUFt14?m0cO-JIdF3*k zB)paG7P%4^v!$`Ln{ zIi`-UWyAfB=*REv4X%^B_}_7MvWt*w{M?PAzs`6(D@^WZYy+=9&gfB~k*&Abpy_XCG#eT! zcL=wE@h@kb3=Wn%R@mV7cW2Bf4V2H+w1xQM48LrDxixHY=z}v}r1>&)#1<8=oiS+; zvm}yjvGSQSzUZmt;1pZLKXk_H6TWiEHd{2h?~FIE1LW}rw)l3>8B14%$jf4w@BF|S zopx&F7p6A2#-FcY7$LWPyBoV7J43CCl6xfVW*!UQe@3i)c=~QAUpZraT7rDyg*C2y za>lf=De?jrYi#51)UscZ#Q$m`myw5o@p=lAMb#j{7$PnwU)cuIpFhb7Ytn5OdgT%fM;Yr z__Sy&8{8vzfi;tgjfV2x_YOF@oj&|uhVqY74tT%U1xd%7%1(>OJWw(7Vq6<}aj89~ z2hsaExr;omxjp1K7o0lQTfVZ_4(Ykf2zDJLkA1ZdPsm``o*6ES_4|-`p6CA>W94&? z_X78rpGb}UX3M>(^?~Qod6VULPxc_aHusmHY4RG6J=oVm0VnI}@}HG^@TeQ}kG!YJ zN%QyM?;r*4nNF3Jv-e=i82XtPSjayn?!m2zJYSufBA1WYgH!ZTR=G`)FLv33_T(Dv z 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 CiGS+= literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON D800.dcp b/rtdata/dcpprofiles/NIKON D800.dcp new file mode 100644 index 0000000000000000000000000000000000000000..5f0ebba8c15c2bdc7fea753cdd128f0e35a3def3 GIT binary patch literal 65350 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­vd}GZZK2*|_(3C=a1KZ^sqN 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON D850.dcp b/rtdata/dcpprofiles/NIKON D850.dcp new file mode 100644 index 0000000000000000000000000000000000000000..806e1e9bb7ed9086baeb92d15b4d147228aa8bbd GIT binary patch literal 65350 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 h2%+)$+(5BcG%@+1mQr~;w?LoIv`~1KAd8g(z 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON Z 50.dcp b/rtdata/dcpprofiles/NIKON Z 50.dcp new file mode 100644 index 0000000000000000000000000000000000000000..beca667a73a76ef894b17f0fc83f77f5cdc0fec1 GIT binary patch literal 65350 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 Y{(WqR58w00{qN`K{`XYZ{_y?(0ng`HT>t<8 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON Z 6.dcp b/rtdata/dcpprofiles/NIKON Z 6.dcp new file mode 100644 index 0000000000000000000000000000000000000000..eeb45a6b82fda30ae8ea94315136012d663eb451 GIT binary patch literal 65350 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 Y?fC)T{eAm?J`Vr6|NXqP_50`l0i+`>b^rhX literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/NIKON Z 7.dcp b/rtdata/dcpprofiles/NIKON Z 7.dcp new file mode 100644 index 0000000000000000000000000000000000000000..19fb7bba6e7197efd6a8b1ba396896e4387edc82 GIT binary patch literal 65350 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/PENTAX K-50.dcp b/rtdata/dcpprofiles/PENTAX K-50.dcp new file mode 100644 index 0000000000000000000000000000000000000000..3205c757982490b50e1c1835c8d559f432a54a2b GIT binary patch literal 65350 zcmZ6z1yogC_dSe=ih&r|iQV17+*l}fx7aNqeS_N_bazM@sGyW^&z2Ujee6!`#Mb|Q ze16{;uODMD&S7)8oIB6jYt1#+T4&CjCDSd<%*?FKY|72eTClUz?Ax}ynOReIJj=d& z{oi@}24-e!${U)ogIR0#z4rgk+p+U6|M#~W*e}19TbMOuYrEO`xANv@DLu^0yx95o z|2uCiHZ%Ld&Mnw$!hV^V{baBI_dWmpn_ujGTC!s*TeqqB?;1|B^LGDt{)?TbR{Zz+ zfB)v+uSGK#EVEzLbMDZwBg{U+%&b*^Gqanwe*gaW=*V95@A2+~|9(C;{lA}2wf*n- z`Nx0jZP>;9`??Rk|2wv2*Zl9#s`~$a-}~o($7QeoJ5C(--|v%}|94#f{lE36jsN>O zyz_s@|Gl;~>{`3C@Bi<*&CJB?YQ>o3chyw=QHHfSA{^82GFh2qnC2wHskYXpXCX2i zY#_qRFQ1AJ@0a0Qv>)z>+nL5Km*L$|Ka5w*HQ7#(q3=l{mISFxuWe-LGE#`b14m3l z9!T*jT!8vhk4^qTQaIh=LzUQ%Thm^Ons+>W{4U~px=IjH?u#C8v$@&l#rWju1FNum zTw6CWJV$w>f3pVE#!rlg%SPlT^;PfsnEV(}O+_{4XiH{Qu`?wB_$ zT{_V-%jHP@<^%pHEBa%q3@O8XFfiaVCt5E-gDal+FylJ6Y^(_17rWzA*jcV}s1SD> z?#JXFH#i4Qfcrc4qfg#DF0Z!`eZIRRFQ+j*S|UVW;)OGgHk3cl56L%tU^}fRtuXo_ zkA;gq7mUIjIpSvq~4Bvmh{=?bdOKO)eMF!Cc5iSh(!oXrVdTtS6 zT&IIrpitmrQxRSq=J4c-0&$ssxIxNr`nm!eXZqok6^B;G6gYQXh^1Fg;;6d<)3yuo z{?{QS4p!jD69HN*Pe6XD95zAJzdKr1 zd1LOedamPEZ)~phg{0e0F2;(7b=&yx{&JTq^6fm5y@`p`urYO4m$tNjrBc`3Q2(BR-_A+{Kolc;bFVgrRp zwpmFYr)m)0R|vD#t4Y^v4VoPlz$W7L0%+7Q7m<|Y;?O*oBfSw;sQ>iCzI(q}{$8(|X?pRdl zjUXp)ZpfJZpkIBk@SkW-ROyEO{rS+IKE};xw;zEkh4`=~k*l2S4$7|K8S&!2we>_% zln;E$26Gjky-=0p0gJTu+(8F#M6KVCig&X(pJkr7%kIIXFcl|H*pJ-;516Tsa2aP@ zp#8@Sfzped^Vogx+~$k-2TySOR{0|NozGu5zqz-baFaC<ncov^cy=gm%#y zaxF!N!yQD}yE1^}&DLY_X+J2kLWp&~9?N$7;i@>C+-hpTv{rt2-Fux}^8jA_xtb%z15Nmdrpoj-MXFi;}Oy(|r_Qiv}LU?D-;AUR;MfC|G zu21gH)k%4ThnkeXaSrVtPW*@-EAm7T1f~$jbOSc*6=9Y9Fgc!R z#DH!h^eD(C_gDHuTkVJLt@6mk`~Gn7@k5PGAz42!0M>o{aA;@|kt7Ge`J50hl8eds zR{==k2{G`1iF_X%h?UH?Bgb=O^twPyJu5(m_8jTq5{PyC1z5eXn0%QUh%3zn=>IO4 zj9VXomh5vnW*#89*9~}imxpuD^du%pi#{EAi0`?Z6jZBFxzZPOB_Zn)6>vBC;FV1m zGPkE3UT!`ZvHm$`bYk&^*=mF;06DXzc)ZgWXRM>_zWYg#ev5|#BYqYC=EV4}6kuly zu_1R*!e_mT6Ix`^j1RrbA5uTf{Gw=;Nx|8X7T505!(OqLDJ$O#U86gNFD5r z&;A#RgTAsot?+{IT&78F62N%-Z=5C4JQ6v_A06@;wo6LL>-Yd1au%TpJwvXA1%ld& zVBY>bnYc6vT`&1z(DO?q>q!uNWPbP(`VSGT4Tf^GAI>khMl`v>sCy`cYUFjY@Mkc3 zgbI;8^E!DjI0Q}(LVV|6BO~lWu>6|<$5Q?w9S4Ts@F4*Tmt7)d{{&;!S^?T7)RJFa zg2Daf!!NUhG|LP`CBr|#hQ(5UkqN=mXvf-An3L)?p&_M z!7*~27{*8J7jIOrkfCN1!>eU$q{mB9|5*Two0si`9i`ZRQh>6{ckKq`NbtIp57C3~ zb`?t{a0uj~S*J&Ki4GF9(*NzBtF~Su@L~H4(r-o>+Q1J3f?pD4L>OY;3qfwYB(~?mFeyz4 z)3BFh=c6#pU(fJ&drm|b!tlXH2&wB+a#$CJGqnN?fB1mxY8VCyv#V2EZ;^?;Lot1d z0R22KkxS=;G2uBMEpsZ!$8Uj9Yx(#QmQVT?`6ID2AN5x=$<4h6_{Z^36%tFD?bKmr zcOEwM2qyB!8oWyKg;uH~tzN3(I-c2cj)FXOQsZEq59Za1$f(w8IMw z)hPi!p1Fz#yJT1w^*7(>JKz~Pu_qJ@3q(*#SsELY*I(=v={`L$|My#Iv~;yKH%=^$H=~rfcAO#uqOy1(0s{)d*ld{Ki%TvCmPX^BP~Y znyx1EG-{ab@`W%&M0lgsm{aMC;=rB6E?tEpS00Kz7m}?%lt`Yy$IV1rGABq5_se_; zWZlS}S90uS*Y>}>PS))+X{L-o1;g2I=npbEHWDk{nGZSgo0#p1g8Lv5F12l7-^wx? zN%#Da^0a|HCyd6DFh4|XFt<0Ji^l!Ae()BU+o$}DMr;E=41u|QS)&-#(zJYz} z!)T;BGd>z*X5TL`8XNivk=OheacdlnK6eF(JM)$7m=uMfkpjFQ`jNQzjs#^mTbjKh ztMbD!w~YV=Hjl`>FQM3ck&pZh*U9?F!Ke!5V^oV;@+l|~v)1!bkzyigz5TIpARn>; z$H|6jJ=TBaVbH`>Vz{7%=?pu+7)zXF8e~PVJ>Dad+<2fy*j659FAgKKGt_uHfrnk^ zg2@oZwKCa#Q7Z#TO{f~52J-OXoQ^~b)mXoVhk;@RDV(Lo=^VCRv+57d&0q1L@LEQi zEm9&Y=x>}Y9n9=kr$wW0p$OF@&FvRu#9*L@2-C$4?YnJ>#i_xJdu+F`KmH;XOCI>) z*k=oS{@gfBi|~V=T_gJlMI6r0_d_>!z9=e=#eF}lueY#oqmF|jPlzvDEbL#f*T31v zVhVfDi}z!pW;wv;>E`y&X2in#x&TuX&Fnds7+3@dFrm#)QnfA`g$@GPT=-1hHjY9l z+oy)5?@0RY2n;guG0UZnB&fnbrF@)fevf2t34z%{KCVr@LPA>xp+i4D=5MMZJyQH} z+mer0y^Bb{c?RsN=fN`J7&$sshjhk$of>A4ZnrdObB~9Fp($kFEDhx6cvyNdfgEkF z!Qe6;952NZ(`PlNRPrEk$u!~EYU?;F^Ank6BE;rzL6LwlcFNiZ>-kKSl#|8Y+;S~Hyewp!R{lqKW!eU>v6S=h_p zCnJjajRCJL>?`V%F~`vlB4)$Umy^-!C*!ZTEbKcOk})$&h$itC_V;=wqjsYZ$6;Z= zDZ6j<;PHLafbxkMtJ*<|tG(=upSQPwT71!o?rcTJmB2={))M%z)%c zeAvybCO2aAQ0(Jl-;XjfPp(5wDjz3in}|JMgWc!(uq-JiIdUzorSajWJ4N37i}}gF zac1vGVkaEH5r*@<=4STiEK;FnIDgDDv-cFGVmR{~AyXRIpW#x`i1}wZ^S3WAreb9< z^BYeZ*sm;1#SWH(JKC7rD}v$lTtnYbp+<3Q;%E-2P?60c>PBi=>UY{o?u* z+-f95=)(r~^Twq>dP0Dh=mz$k)+Xc1HUX?BG_beXkpyW6hW`mO`;c{s@Tlfvh?SZB z!Kn#&%6!EwmtQ2Zc|1bEa_YrD$j!1?)HP)L_t;mGIyeTSn5}wv*ONI@qwttv-bweK zjG7Pu`zt(r>iU{&9UTVca~`(ut|Ot-La@389|3WXh__o1=CQbzbonj`FAG5BUOwh@ zyGh)MKl0Q0=qmk(JiKSXrWcH7dY>nR;hg)458;&>GJ2p6FQfcm?pRIc?9ssXsNY|4 z@PfrhvezdahZ)X&5wcjiCqTfZl! z1yQ)!fsbR60;T6u>&D>cG=i~zIO+$MGmXUow7Y+7}Rn4i>P2VaT}S1$fpe-$A83+FTQ z?~%xjIVc+{M$O^-q<3`=_N^16sNq8*uE{}>P7K+SN5ol?gU~`TiX$GA8I5vq`-K>L zFFhfO<=OD*D#7+&Pe}*iaX8GEz+h8H_>yB7!1Au=*3Zd?9Y^uuhy=BD&&kbES>WGg z{66Xh33_@MMr$cTySyYP)Q9lNPKqO2UXsR4!*bat#kbur$+f5q6h=ugZ{SNZpjA2o z%BAQN{(?N@r6T#Q6lDd^$s=hBu5@METyhl(#3@=YTAx&1t zq9xdn1XGnjm1eEZ!So5rk zeBB?5AxuL_ET|;iK1X4Vs}AQ~E69z=2yCm<;d9G!Vp$t2b)7r*@#_;59aNbOGG zST`lww@)QAHfO^=Q;9WQ(nur0G3*@ac|XZ@0&P6i%2 z2)`ON3}@0w)xC7=o6T~+Bk3gQ?E%~|X%MhR`XD(T-R8kQ;@+Vo2$4~iln`lv(FvIFF!XBdnd_1Ni>LWa!^!3xI3$59*bq z|6_`jUQ7$quOUsQP`ICvAbQXSlJ3ai2h(Cc4BAXa^ftlfwiKmXwv#XCi=cLs!76(< zv08TuwvFYm{q9U+&lDgjN{+?0?j*rBALYXo@U`+L*p`dwrxoav$s-*jPoQ?05(^#+ z36IN0$0tfWT_q-AcaGtfrwYsE5|UA$g?kOv2=tJW7A=n8r@tC*gJtB6?ICpStU+;{ zj95*`!1h25Iy{q+#IdQEX0AmC4@u`=?~Jq)#b^>|k)CCf+%Ce-S&#>_|_GMuv~8F2D= zB$>o;KA2{}+?RpGn&B+VHJ~m#{LlKB_lCc4emJB7860~Wv7ur#e_~F~uR9IDArg3f zY(!dSQLHSL!0cR8(!GGgmvvHX9nz944lrRvy%Z0xw;^Aq6r;+Y>0((O$nT0%P!E)2 zp}s5GGQJQ4O615`VoP58=VQ}41yY{%C5cyZ@%W-7aXAq8 zQX%c&NV0w9anzqwVM)OlQosKwlyev#T|S=d(;q>b8%(F*O(X?whv2YHgGE-8N&V&w zgx%Jl>(VKt|DsfQEYc!i^;BY5o(z*oi=hMTh>@3okwbKFE43q|X)Gp(>F|6Mh|9oe z4EV)t*c)Wl@d%9Bs>kXuka^5+_*d!?8w66Qss*Zc;Q`wFSG{a@c7t!z+z9C|8W(M`ZZ9M2U{`i_mqx95bx~F}Ju7&tAxJ z>qInub}Yb5tpbUGa?`2@*KE3snASdkBGF0+#yekUI4V+zMi0e6E8y=owyhjK;}j4A1E2I2aKDiy}Sx zIK70`gfL|GHsJ1qS6KNe7#GwA%wJ|h9x!`8^3{NQwPVQyhV$G#MpWx;i50{7%t#}e z4I1@l-GBGrIF}qBWO|rYf}QbVWKZmGigqu-Y$8E+K^N2Jiqn|&K!Q2y<|ebt6oVB~ zoCtbb9C?UC;Q$$qbuKSXU1vgGjSQ+Wk;QLb6ydh391}*YC?2)(6zx^8~FfGPlZDrTd{RFPXsF2rcwH*o1#`#HVtnfG5 zjm#>P8mt_4$Ih!J1D8Ft2#I@dcQqsxcIgCKFq}sP8Zm*p z`DeW?TmRoUczUrp7c{dJi&I!!>~792YEz2wjuNJ)|2ECuTY|;!B)B;GvuTLmX>5v= zqFnXLMAuRbm?p!9gAYtutvGCX!8k^nb+Q6BXj@ z69u3+Zpy9AN0Ctp8kK6wZ=MG?7Vo}KiZJ_(l_D)hV`V3Kdh!Ak-24+~YMWZ&cX z+*N~!Z35H5prd$Dpuy`I`%I~BhcR@T7EuvSrm$9-$YcJ2JGI30pfnX{Cg@;ioMq}2 zoeb#_9S(k*WU35H0MC}iruyL~>%3TW4ANtwcVE-}pHav#GvI+&7gNag2<+Zxfcxv# zCWp77FkUm@%~ea2b!0H6O*5iujqj;@4ClHNMw}A&!#IZXgTekxLr~Z?XE+~tW5ltO z9saCG4f6jB=XImkaw8v>VoHV>>+i4SyoyRObeRNGYgTi^ZA-D!Op5AWD>$dgCCEH1 zMTh;1xj+^-kF1rUsO3B^;}(aZ&E$ADY8JQI+k_i=auhWq+~E2mY}}z>K6WB!z5Wz7 zwNql_=F!}ctO9tPR$_kNq1?mQdFbY>g6;7BTyD2qoa~@ROn@zSfbo!X#cF)(-IWus z%tq7}4a%Ok=MGFihU|t~+5o)@I^%Qyp~v&A7#1Q(>uKF|M*P z*XdL;ZvD{VXRn5wb!r0My6LfJ;%`$MX3v?A^l;tv#dP^q6jm=c!1MAulVNrQCYKsu z=ljAmqb!uwD~!lr@!0fbQ!sYN8lf*wG~H!5k80zOrz0#)V;RnNT7T>^xtp3XoO{jp zhjd^2KkNN8f8*?RG>Q|c%P{bW7}XKcT#5%f-ylKVvnVd^aVc~xj|f{5$@OSn3X9WH zwC@+rMSnYuxt=mK3JT#Sa1`xX>`Oio$R%yz(B`%rv(k;6`SW5t2vERYsNuy{X;~_mAwU~c-FL!I^5m;ShHf*+&>wGv9nx#4@7Hr|hjZOo{{6qWv4cxAK z$w+e4V+z)ACr&c{O!fG6Z#j4LL@c!946JUwn0s_H3Uf0IIN&><+uc6`vpO5`$!!id zJS-H)HAe8%Gr8{lfiVPjxWdHof34pUB$J{FGF5;DJ~~fa!+5D!ucO5{EExD zjddmXZIq$imQwC{!D)1zEyulMl(X4Iv5)cO*(JqX^cNHK1qw_*Sjg?zTMRRICG%T( z-1zcS7(Yk_Jx*{DO$rfvSB0xzj&Tb|=c6`Ajn8pMIJ^0|NSm&~-N6UBZL3e9_j?UW z-lTCg{Nt$c*TSLM0d8>q5lrf&!__fKTvmgFh>p==!|r%);=VMLbf$VL>=|=145~Dgy?c2;ml%L}A(w1I7&w;;#J)$3hn)E*|seMmUAy z<~<`m&oOX49t5G|Vt?3X@&4d^zQP|)cc*h>m_0X|5rEYnHgioG&O1?l!)8- zoZJ1q2s<~Z!0Yss^PhSOw>zq_FXw1No-Y*NQSd1f;7r2M>4#N474ug4TIrHc=*0Z5UlQGrY>h>vU z@KBGUFBRNNQvyD)Jg#qbDR(+77V-ZWn9e}C4-rvVH{XbdNyXgQQdY+~ZN$t&gg2WH?J%{dk+T|DW}& zn7?tBS+%9NlPmD!lo)F+*wDUrDnJAhyxHE4HrFxCr?S4ERqd$9qjI?YmSWBw8``#E zInqwc5ZvB|Ui?rBfl`iMZQIhKq7vvG6)3&iny%P-8XH4FmP8d%c@ zb4~aZ#OiP>tfSa6#yTN+2J@kuckJ6JIlMX`WR7Qc*C9E90fP#dk=qo!R_=5N1Tm6>O{}DW2Zyl%6zYT zugBb{Awg*W+aE0!UgvHxoL_kbpvlAnZWP0L`{w|ZM^$qZyX!ISL;zd|pZc@T`}8-? zP8Ngd^lg=ROU3xIbts)mE3s55f!1{xjZjy@Z=Mvb%ZAY@Un|g*^>w)=4x=rGRv_}0 z3={hfqg_Xqyhm^N8>8b8cb=$|`~x}N0l zp+W@*vjJ52sTfc6YDE0#OPe+?g2O@$5>tEAiC+p3-%^X%&bIU!fE!u(^i&7O@tx_JlLukr$~@7_4zyQ!8XQ0B;gsHvYMZBEkEa2GeQjx^ zG6Bs$8gR(2H61iI7NM?2H0W+kc{Wj4|H6o&R#sGO8;;bi{s^*aPDif}VZ8_bSk|*C z&CCl#;L-r3G;2g}GMvMz1E82u_Xp3Z3j*<^_8WJyg&rH42O@Ivi$Cid<^}%cH@2;t zPFoJG!qajwRQqSqrAMl;CqRPurn9L-a1}1EmBRVTY}%=N6|xv-w(c^A-q=-%_<9+9 zzt5)mvI;nsv7R>7YXG`#9gbH z3Y=m(&2{CFRiQ@Y40{^vR*d&X4L+&u=tAaC;+AMJDRDBL(L5iwEp({*FoCX9<-jId z2jA)A=)0Cj5i?Ma$HAkiP5D9e&(>qz^AR-hWE#FtFkr>pVRZe2WISN{!N_B{y5>$hZbgsVNSL`4v*?Z$-Q7`hX!DfWlw59 zE|A6R01U40M$aE-{JBRUTH09Ak<6aclLK)ftQ}2b`qOErKsXL)`DfiO@o${{JFKIP zzE`onCNT#7bfPT}oPj1vg1zH5)4a?x7_~==6yp|}vE&RkvA)1Ai?`Aq`BlhoB}Zud zRyy}ZC2l{Gv)aT~8uhvYTk;hsYPFT_Eh$HtK?(O^Tj-YUWpLWWdMVCtqBqW$UCS;z~z@dIMeeYF-@nKph(pJzAeLl*j=@6+}N8zKTb< z)QEi=d+O~Qg8>cw@#LHxoijNSeWd>AIC2W>KMX@9^AFl16KT68te->>0MVTB^d;+Q zsbv1ayx~|{*v<&&{eiGc=toB|oPFv85iA%@OJ->CGd2)CJCCCN?^Q57_#5Z=@t*YU z*)zD#`ZZIV@MzBitY0KWg4}Nc8ho}I5j-hYee$DWVb!o*BE#lBVyfs|jVFWT*sK#% z?;U3lV4*m&yu8fC!L=UZsA$!W-7Hf(R)NHH-PBUpZMXWn{x-zOe{s=N@{j60u#@$bNglVTu3MyItIW=vY0l_3PN^e08Tt!K!1Pohs&%$ zIJwND3$`1uvLukzhwT60>^>_9h92{%foYeXLU$bBSWPHLq@eotM<6KCp;#%SArTo! zSjx1@FbNgSIRL{QJzhA8Xc4Ogmu@pacaTqAoMO@IxdGK}d}v*1B*yMFLLK2j2W|<& zu9rs4g&XxB7mVh6{4ubpGnG#cz}jd2F#ocfx;q=7*&2YwRy%3?8ZAtB1F*$$8(q9u zjqYm#G3n@L>hN6w?ouG4v5_vWkfCs15S$h|QPEBXV&?yi^Wa+sx?tKd6c>x(>=Z~N zw;jhwF^hwh!SuC(M8}UyHSdK)Sa}8a6UberK(bE|8?ajOEdv zH|y#CuL)SgdMm|NS~}i07O8U$7*nO9&fTKmcf){o;R-tJRT!RcH{za;jJ~L2b=Y@C zxVTE_^)`Vh;`!tCFF(47{r-k|0BjfX>DUK4bkGK1+GTG#Th8Kht3V_Mc+jqfXsq|M0W_4rxO_)Tj zs*}-~X`b88C(xr^SCo8XQ3X-?LoABbvV<%^)Q$EQ^%SRT#q#1NS>Zn%nZWsF-AC9YN_pYe@M<6G2BDN z?mN>mclhJ@Z#mtuPKR&5{IT&mVZizzj5hb8mNTSy@G%Gv-n!A2=cKUu|Jidh%OKk8WH{0fiJ_SgPB(OmMA=#i z+BS}+hrdT6xrG#7edFlGz$iQ@mSWrG1Ul^t%T-x_|J*^zwEd)LRP>XhVAuib#QIxS z+>*oRUMhX-6pi0O%!iCir|s;ck>;pG2ipvKzCH?d<|rdfO(AD={X4Iz+tYw^}Qo@Q!-5Zs;VZ+&8@lPm!1 zN?D##5JC6IjF`7e&w9~9soGzUVk-l7UJIlp2emLeZoqn9Bel7y#_|*mCusIUk85vG{ zv%F^_)9Z5EN7GG=?+j)2&_@1ow7Z=@$P88!%u1x6ru$>l8yVaCDYQJ=9|_TNq&!Ha zC$9OU(;NlNU!>CqpZ#(1vjVBYOxpLIKMZL~H1a!0wI}@%vQh;BcaZKH%`}6?Y7Bai zNq;i__3#+OA}O7AKcz>{m8?FLe}L{|{BAbWLOVJq(aU34&vv91`48i0%^?+*GL0^N zN;I{;sl>#8bhvB`r)4ZpQo1u;t}d8*%vM0g^6r+a0_bYB93F=mmwv3Ler%5iIT~4A zSVPM?Gv4~lh@B!Ot=}t!jgnn!q>P?swT{z$0+9P!Oe<|A7|HNj(O5`hWX#uY4MgTf zA&nMEAYiewjurk~`%191;BUT>^+`b=EBq10bpEW7da9k_kKN-XC~Or-_q;aZpDPj^ zn-@xBwMNK2r67GG>B(+J%xEve^+PcTP+%miKo}*s4$+{>)29e4+YoJz1GIqZV5J|OE!fHg@hZ|Y` ztfI3QNpY&oh%?*ebYzwUN$dQPlp>)Y+ek3_BRikqMd5bIe!*jPk+9v4F`48VMQ z0d?Cf#=^IM=Yu_Z3u(545&nT<9BHGVFIpHeo!yVwQ?!&6vs|h`g7Z~I>ay8@XY7Bc zehZ=(ezIEGGb!Fa45LFr^r#Taa8wgT+p@f2Zf7~m(_(3$Nrzr1Q7oI-zZRU;sD*iG@&%6Md!6iqfdKiQ94wG>J4c$CWh7P&!})^c`EJsOO1pr zYP?^PLNgYy`W2hC$S+EyRS_zj)@iV=CXQ~suY`3sEehhJspVi+pE;~$@hE~$@K#{& z6lUiyL+Gn=R&TG?p|2{CQg)5rtMynk*ht&C%V2t{hvg$JZFgRZ{$2)LC{WSrky6~T zFydFPoc4^6pm~T97amCHGjj=QSg+&&nIC=NCdR}Zf8;F?(_JS8U>bi(BkQdaC(|)T8HDcxF`vs4iZ+k z?61R=smxd3m4V0f|E2W?T467P^H?^|kguf&)1=tU{M45K6^(5zg_6~^6O?kA#(YAP zY6GH^BsBM(7>$>*eCL{wrtAe?W4U2h5glQp!|f(4CT^0`iJTT?dMU!cv)Hji z3quswKvR@caXstomIL7^2#?Z)e z*5knTc8psbO=tKmWi`gs+wt@})9~KiRidtM0xeBbVHWGZEZGuI8}wD7_Jay{uEo;) zFeRS*sxh-Tnto`YL|10_>M4=bVz&adVhuL9h0y^QSiPOqzTdhB)7KN^_$bw4{K^38 z%6!Fla~&oPHc+pYGNej%IP+6O)j}zTn=`I>LrK5Bk)T?_G>cjpt=}d=Mgta4?}(}D zt{876Oq*IIp~o6ZP#7=FUN7P8ZD#PxLMtW^C+wUvoc(o>o4(`r+xo^lZ^m!<~cSi*Y>zOIO z!uEKa3acL}(CB&;{kBAffxDF$Q5j9|v6_I(YbB;1j;0qiO6+u1L6I9pIcrw;eaq~- zQzZSZSD<>I8q1F44bhsk#|cyh@|mu``v&q^&C zRO)E>bt&}c*ylW=rp=c~anwPF?V*fs*D{=$@3U7+>AblTR+rTyzPE@PYQ#u9s)uB) zn0o#YW6&WzY%KifJl3ma$+*q`+WG(5^S-;I>8r&Wi1)Gk@pc-u8_j&bIR~NEUK*U_Ma9H2z8C0}7#`FDk$wpuAeVu%{DUm6<1W_4$c1f{S(kTfqk|9}|fRyuSY%%eM>it(|54k3O%)HaLtA$sY+bM&Rx znU?=ftNY78drogmpIlQyw3fxlHSMWyl@i(P-bfO9(@&X7^klQX8?FzhOQo#-@5TBL z4^5`snIEnFM}kd@9O$~PN}L%lMHIJ$E_%o~DyxatJX%k`Ww4&3A5tWz@1!~p1-fpO z;i{E8jbuD_Vz~@6y9sH3HZ!XjF2@@O8O>pHPqSm>c)3hPX%m*uHdo-$W-V3J$l()9a+HYHcu7kG1)+SGoMhkl=a|^F;Md%tUg)9^3CmfYIaG+dd`{F{Y6W=v0N%e zr$Upa8v3d^`=89u)SgsQRTA?LOV#+%Sx&>*wU0c><{#!t=++tuT6fgIlqaB1H%Sn} zIONzuFM9C{)8=nzu<(>CjbpsbV~Q5S8=kcIx)>uCXc6e(MVB!A&oTVBA7F7UQ;bVJ zSzh$#>%acG5d&{EMYp*=I`7#WYx6Oj{rz4U6-}4p2eaKL z9hFqqpWTz~3Zy5f==`rTv|!xgN-s6@jZAkL&SGepidMMF&^SPem@FlI(v|%mrmKWn zD5xu|A*<)9Q1M7gbGJy5#O8T|_KInkIqMm0$nyPNd@5tJpUpO?G2wtGjk1&ARjwM< z$6RRUZN@8D{0^PvMng}FG5)a%dwgB!Io9)HwpESdWA4-|nsJN+TBhYW(*eG04pH`Z zAETWth3mCR4*480jOWU^+w43oM2xPT9&$t3O#1hGVqBm9ldFXsONKGNCu&YF^_D}; zYFnGvbfoF#a>%MB7(1pfJ#(AInl4h*J{d`!b7d%F+I9YXJ4%8Xk1CQv?&3(Ryk$(U zli|_96?7HDB!4HHF&?pno|np4Uch31zB9FqX12$2dEX8`G~$2^yHs+_dFDs0V`LCM zl_M*LX>@)v{VEZ!|U zJ@U5ElfA`o=pe_JPFrb77cr)%GrssgcHZ{nR%$;;jGaA|f7$bo2@|*pC)r$=g&1Eq z^0~B1L#-`^(xvyP(kXs?b%Ai$TkEUL@IhkE^s+4nN zv(9$Dei-c<#eEvIA07BYxF5{sdT(&W6+1SY*8ME&mvF|tQXU|z<4Um)6>JtVM* z>9-dSTfAYG)0)1i-iP6by^xvQi;nYffprrv)CP{CZ~MC8pB&HEzUObjwdMboEjE6}>CNgc%5BqKk{<7yAD~i#c z^|=R4XM5oIQpCQMAZjOzgE2p{l^_Mhc}^5@|^Kv zh#Q=1KxSU%V`_DUiPF@#opLpwhb{`yU+#=eX;e~Rx}&Y zj!N8kXwY&SE@ii)Tk7~|^wk-m*W1t@%h|IoemWzqS1WqR7B<#$v!4&ll*$dSrrrGmf60kA*BQ z+geM2{t8^E72~y~1X*v|<3)-HmCwY;C_OecitVj2Ebiv~dS86EkdMX8|8HKVH?_R# zi~CA8tC;=JByQ=0ilJ<_=&>zV?dpX*HrLiIVkLL5nJ0?*JRE7R;kLha$HHztaC&-x z^B?VwXMvt5tuS%=$L#qJmhLERcZH+o?&zK73i{;{S0i?ZyT%z~M!w+|E%X4tWG@nb zf8adUcw+j-J&3XR$gMYcv6#ObZ9Bc?1nfBz2g-LLtA8Cgq=zq_$#&s}^*zpw?dA3U zyD%^G3fI)1j}NzYVe;L3+?51A9$(mtnuwcRukLL2@x@+bU%$z9I3_^rZEmcu<~pZ) zAb<cyT_Kv?|X%jTF`&gJ1>-`BgU*5t}&uLo`v zpox1|?sJ+qhJ9hrwz#o?d&1(yP`)=>i+J3C2rm@cc*1R`k^8`W&z2Yav14o$H@>?! zq}|+*8<@cPU-8C*Vi(kWN#w>B`C#>BXAGVb&xIBH;`173cxfWJ+2uS`%ydRVZXl;G z<0D$`4E

    =XIRfYGW71U4yxAv)OY*TwRdB`eB9^u{rO27wj$$;r?MW>z6+4XB_nZ zQFWGKQFh(iM^Lf5Zm|;+!9r2ajoqTyjonIj3^NSf4MR(JH*;;gMX>|H!VUxlY!sDu zJ^%O1ji2W5@Bmy~*WN46^S6A39ZPMXI=JKW+%F@K-B0y^Ksm~$ODW8sbiuu+h_LQ< zEDILXEHqYx^iml!(51YFdMkHd2C#T7x_gZrpq%H)7R__Q%}Wl{zmT#QbEqfOMT|sC zOQx&lh~TMWR8}8i$;4`yK2uD3(N#>BW?y>BV$`%uX08n)xTQNl{;(4pPjleAq%qs3 zl!iPPJAB+G!iTOS@F|&m`IOtMJ)BtnNrgPh=WMYv_Jn+9vn4jR(|x)BntY%dc`N-a zaIbfFVGywg&g?UTFmaslvBd&w-AxexLrvJd!xCGxjj?&*Y{7=S$j9ipAD}o>h@v}p z_G%-nY8)p_w6(@Bkr6H)86+H7V1tu=jq&MVXF>d&&VgEEte!YTXo<4H)I<~5Y4s7> zn~8hT&lE>7Qn39-zUl%qXo~+4T8G-=$t${d{*ynK8{A=qpS)3DMy#Y-@~2Pmg26H3 z>0H0ae9}GeP00aK4(06eng7i^9bj)$#LPFi;ms&9;@0P~xulKVN%__hyL7f~G3kkV zNHD^Wd?j<8VSh-1zrQ2ch4D@}8!myJnm?CiG3T2Kd%RqPwlMl#G}a+*4fS1I>31`N*g}*K`0b?lFRRd=O3aUp zWwsD*&MY4_#0FRC-m+QTPu}ykHJav-*SOnK`J^Um7!9(3j_wNi3tfs&zBxLNpDbT} zm;U`9bCjjMFWM2*a26nkvmB+sAekrk1EL|Ay_8*a|GN52E~y)IVc=rVh3UnPc5_+yOL zw#N!F@wrI5?Y4w+fss^~Ruv+3u|0}NL;K(7S>5mpTYex2IzR1k{#O&5btVAXFGSEZ zY-B@j`k{elg7;3;vuj6uQ4}CXd-NODoqpETV-oCm`I3nhXofS_5jKs_SnEem=>Ks< z4tefAliw@9M2e|hAFv_S?pSr)302eXGM`*G9Q;NepE*~Vlc_5PQtv+9R?dDzx-HR&_cCCr8dzhdrcG-w?=-6^SwPU+R}m4`qEUNJm`b0>5EVOc~VoSWokwf8tofX9v_? zb;lu50=wYpfU`mDn0jx6w>$+YhE2 z7lLT=tnJwOjg@u@#(p|Wy+mJFs&63Xg%Oje_!IlPGyqi@LoIQ;#{ zd}+qM?zuB|U2J4F&wOyW)di3K*0ZA*z0s+Q8|JNg!)`cxVMVhW&WN9}s_z~UnYyF+ zp9id7owVVkTW$-x&00yb-$--oh2N{#2l7wMadt;=-%IQ&^pA-g7Uij;AgJ~x_qOG4V>izC8UFu&MtNWwZ?z`*?{hy}Q z1YnffEjF68E`7M# z@>u)9zBGz0zUBbkU|)>x7RinWk;Zmx$9cDbT`RjPj{@IFdDqJC%-tXY6TBVpVeeP= z#!LpqE2O^-`^*LuhGKaeX$G2G*vUyD*f&FpJsX=@OGyy*q@A!no0ueqfmjvhjHf+6 zuut^-n>}`c(eei7_>Vt6kp^JT?0PnZX7Af~xWiiVh6RXxP<+e-(aJAb*E*U7Pw~W} z15cTqD(SOGFL=n{F*6Nxht3=?^zZhFT_?}q+LvC?diRJ$E}+@sZ*QpjK4tDA>Yrcp z#pIONtXEeT7+R8kYkecDr9P<3tzZ1Zl42EQMyy?Z<;rwY-Qen$CruR$&r^LVx=f>siW_IdEEIyv1T(0^f>$5W&CRZGgGyDS^ zzKFg*-R-Z>H?XCU3c5-Vin zYi4&Y2%E0DVo&r-c6?SKF3oYrpQ$fc@iTwq2YO(?@QnRA?1y}sslAAJ%KB9K;9iRt z1oo7r&+>-P|6-`|j0t6)m^zj8$89gz5f=|wl=$IduXn6G$sN501Y*$HCN_?=&pp#Z zP~i8S?IE3`nqLI=UTiD&XbLK?e*U+m}*SD3`b<4n)5Y%axL-6jF3d(U3}lwy=+ zJQ_~dG4UDd>wbtuV#qD_s|(E^`b806h_iwB9I%4?oOcS!*@ph4fhDiO1j4tm?cYCQc9S5a$6lbFUf*YSm9Z$xr5xg9HEZi1gPt>7akBe8 zRwIeRb-MF*Kfc4f`bJ^`@mwbNzQYuQ!x8$<6WgEOX6pTAXtnUh-jF-Y+&vVZy7{8N z%RTmJY6z}n`{8v%4Ljc}7_(9Xkn-d)i{2Q7!ZpG8x%nk4RwbU#avAg^-m|dSAjsTe zaQtHv^Nk52Z*&q~*nMQ3+XE1@GmU0c?^w4Jez5$VhF+~t*)tz+>eHk`P4hlmS?mF2 zvm~U(US-S4OXU6G0w%tav-n77{M-5(+Ta{!f~+S0=q|j zKGy-Hi4D^7S@G26c$@7L`(VS*H|xs2+Lnu$Wo)C_?Z&nzf&& zJb7_GqPPUlJ{Pbzc{y-fMSiq1`RvenqvaU9niX zEEQ~jB~xA&jeSj-`1WrF`*&yr){e`@q>p8+AwCp_BeO8rrjY%k9R%mC>7>2RX8v7B z<1`={Tl=N4b;Et27k7bl2?^{=!2dM75%fOClE>T~^T=B`<)kk=K%OwuYf*Ss;mUrH zp2289Bs???nav4D@{mPB>()6|-k;{bi^4m^+3JTMyLzn@2Pw{HzWB0TvLaZ_7sEZy zhkdBd$3S9({;TfIy6fiR=Q`4$qwzgaj$xy0ki9&F>24BXat!E2cto7$3wBWhoR3tPZr8AP#-iB<^6nE>4^(8yNko{VqbP8KNfR$ zr^2PTA3Jj*8l$&lfv@vr4muH7_$CK$ditW$^%R5XOUvycGNE9EAjsm_f#{d7g(${5TT>&7;gIpa&Vtiy8~dvgQ( z+dz!9sA%jmThC=5TsncJAwhBAz&IA?U)%8DlxBaz}f@yurS^-uuvxLHCtpN|FjF(*JZ5EGadFlNQ)58nA?|Be7Nq8 z6NwAi$lECx_`(w#w#;EQACu9zmY8UHYHU%bWUOl@CZKc%Q~H~TIhO*VT{wefd``fw z=OM(>Qe(AWO!_;dkFPv$d{P5i1i_FV4Z&+T8A@+C8YPfkc(TU%UIHD zPb>(|Mr^`rcC&~yO@SHcdwwIcyy}c>(y$hs+{)h5oGx^80^WDu&2Hq0anm{mE^+&r zA!%u}=u8~brpn%s_D17$bcZ;*`E+J;tI7}^L$mX7N~|@u7}F@uXZ01BMPmV$k&Z_x z{U`dH=ivac1z6xGT-VHj2F-5#c|AT&&VnW7v`^ZfLTzmZOec}{zUeM9%F&fD*}NwmtBsUdDrs`+4<=*btU=5}QG#CdbJXOIW~=UsP~9yW zW_uLb5}Jixj*ICK=jU-N@QRoNbE3&?;ek;?)gyO zAw}2kz47BYX`yMRxqC%}w$+C$bP0698P!bfy&9P?+2V%v>g%)@-%Ll&3J>s_r=`+i z>G)mZ1@nBb^6L@QCrb21Lv(xjitnlD`#1nQR!)=42Bacyc?i;Hu95elbEf9K3{M8` zlW(p_!jn5uxZiMGe)Cu&mUNB7l$cZUO9t_nh9rbcJSM-jHx|D>r()RX-Ew`3^I@$_ zb>q*bT z>KIy3Q3>+e}De}9Cr5&Ww|t|91m#*`Pj3UT+^ilJLZTXxvnDLQ(uTo zIya*7H00j0d<@?s#q}k+@&JGOSxA2{$jeyXek~j21uj@!=q+zqn+4AxH)x(um(QD@ ziLVtNc>1kI?wFYYZ)0!FZdDL0mS^A~u{Fnh8z?A5rQ?2&APinSUdYZ!!-lL-%=4cq zJhMzitvCV+ljaG$R|=GDVvwV;P}qJt3EIB#7^l#|8^ZOS3Yo1Tj+s)K~CApuy@l#92Ql>{sDJ#>AV zi=_u&$n%GJ!K5t*ueasP2MlpX%erjx968AcEG0kY(+u>JPnBoJNHJcXibWS($}8qc zh^LSQ&qtpZFDEUoZS4i5{~B2CMm@`2i{d-P+5XT6`H8-AgpiKzaY>Urprr((G{m^F zs#QMaKoLsl9(28=BrMS=K=T19`VH+PC~nKcK+RS0uaKwjl?z_Yoi4}%veB37 zyBV{W2wF8+aNR???st0x!88jh4hPB%Iox31KH`onw52&zm!_ zY_<&STClKz?$fUmqY!Z_T$oOIg!1SMnBW&F9N3kN+scVJaWqosr=I}Pi4?pw2^Tzz zW1*#$4)wYaVRpADWQJs7ZK%J{mF;g6XDG zoK_=t{FcoE?ia!Bq6Gb%_XuIv3s8NOcrQ0k3Lhus!)&rMb_Cc6Dlh4N9OeqU$F4$H z*IZO>Cr#js5Wy!P2m0Nqc9SOyC&&wbez7my=9UO2Te5M1&Wb@{RYLX@`dl7@KSS;d zMqlY&uL#HOO?ASL?exrFj>cs6Qm{RehOmq{(j2}Ly39&J%DyD*d;U_`Sd@TtI+MGU zKNFIwW1(~@9doiC3H!c9(%q0r9KU-)^Gq3n=4Mkb?wWAdH5l{9=3t?fAiU@kfUjmb zc(^E6m>~DTopn-JdRU59 zy;PVET`5#{r(8@o36Yn^3%{Sy+`KUka~8}Os@^-mb9=`)S4{R6c3zR=tc=+AwcbK< zYAN)llMbN5UwE~u7%M9z81Eb=j6PF{zGtP_IX_O=*sTC7mpJ3x;B3KSNIpVHt0q2C zA$SJlVdYKYUR}K}G@Z!9rhmP#?nr~MbY&hEE%Jlb>pz0^qg<%|69oBMWxn8B4(exx zk*26OhkG`wYc-@m%{>_&u>*PLPpaos z(onIfKc83^OZRIA(mwU(ckV}`OJyb=d3NW!zlNdaZ5E0(I`e;6FjhKeqxMg)#AzP{6Txt~W1aAHqbCM#%|h$=>%x{}ZU}40fSq5Fa4_2$30>34Qynji zpCv_Hb_#~A_7${AciPyNhzApFgimE6eESxMOW&P^g3AurO*zSb&u3Y;5@Fm30dCYo z^sOxsx+s<5m8uv8PX%FpX)%USowB05N*F%42#-vqSm9SASo|tLxV|&7FW-@Gw*b$H z-%^$RTX?;&02LcO@N0VyzGPhiCX$b)bI=ez6a_f4!XF!+jOC$~`Eb<_Mw8Aou2P(b z--$AKEY{#J2js%>RTSD}^Z2vZS@`ti0@O@3d6QlSCZA7)wvr}aa3~e+Rw?-1Wgg!( zCJ`3tX~?;)!9lgmfg>5nvYN@KBu1ipawe_}nZn~T!iZa&h3brP{K>~4;Bgj|x2bU1 zVSoI&M0bhGK>p7lAJPwGA$&*=p5Eqx`O7n5a8Q9yC5^G@MLME%J_vtFBkA%_8g8`K z2phgRqT+ip3U+YeLz)<`923b$pCarI5FztH9K=8Jg{E-Q)sE~KXXg=bh1in0`dP3jUXha9Bir$;+L&`kz9abtG?EYF}P(u@Lzm zUCF;Qg8ytOgev))vgc0YiSvsPv%?2A1`GI|1x5I=gKB4u75rLyA?9U<;FqN?k2WYk z3A?^3zy}@LiJn*X7CMs|LI5=9L>a_HLLg>{V=@zl8KZXjQ0x&qPc4p-tX7s zpOpQH8%@5ip=#WwkbEMuGojdTA}_o^+@o1^XCE8RH&SnAM|B!zF73<9COKowi95d2)*} zZ>by7Jr;5QoMJQ+FX;EF_1s>y1mkA<;-7@Q++%hLLJR_N?ZzoS)w39?ox*Uj%#?f5 zJ5uTyiG8K}C zRDO)Yx(UAgXKMkX72{ww%a61CTnyirh#YfYt~xynxr!+WcJb!V-=$*w%Tx?#_28p^ zC1AqXbadga{1l6YN^3gCevv7KDO4O>B!94$@9NcPqB9zqW7)m+o!pr*VPm_S1?`??1U#QBA7GP(_4`xsBqo|~txkp0+f?XSM)1!< z0#3Y6gK=soANwf=i4N&-SP{s_8L~eb`i?< zt>q6S<;WoZ!?hlI{3o%b3g~<`bvwZ4)|XtWFRNP2S=Wb>R*x`_d zk;{|$rJxwRqnz7nWgLGofS%|6>CmZ+vPQ}`ZFWaQzZ95$x8)^N{l1?_>3+WQxC(=gZhmB_vioDgKiD``H4)98#F)m zOVsDG8|64bdKdARle`a|)y9<9T^VY{Rj!ty;vVrd{GIu(H|4M~p*Uv-aBmv{$8NY2 z|C+o!N)z9_}MS z`1^QBBhGSlO9!ajiG$(ngWTNR9(vTz-FV_C|GtHof9@UobuojCcwRyt`q6y%qMk8v z269kF=eP>D;pMlfH{eKf{Z&r`8&a>BpYqPQjHY%8cvNxPE4 zza1*VT)MNfDGsZ;m!OE|f~#*`<1KPJ&jSN7c2o`TIj)3wq+vLB?=g?4E5x#ukqA?% z<7bG2RN5^DEAk(6y^~q!^EMXNb`Qw^n1(==I7G5)-v4(Z`OM-l#^n~b>u~`q-^bzJ z=&St8u}JK_8Hd0@|8n)QVaTQXXrFx=Tr+%vd`zr5q>z@^8#$uGx+{(-dHv; z7J-=w{L^+1{QVIPVQ3WZ8BX<91@)oqg8Aw(&SSK#7&k9#xqN0WEHr%))Aovo8|R|cBM>818oAovY>d$eMex5L z_|3Kq|i4wVn~eQrf>`%T+fHRNdQAakoQf& zAL~@yxXnuPrRDgNE?mNQhuER7gAeAs7V`pg(iN`mIEOucNyIm74adGMq(@8=@ja7e zcoa@Cx0Ld12V&!QC;woY7k}I@0^7NWcJ#>jFSjTx`rv?b_Nlz9jLxA{njd^C=^jf8+3je~3;+r>+5*74eh5 zoSY1`#y}{uRz9+O0#siH;o+mN{P^Qo%%qAfzp0tK+eM*rY%r!Vd88k=%}+FH;kDtd0%h@81)jQppWl zE_(4?PkZWP5rbIl%qQg8f|*fGAvp1;^>*k=^Sl3^&vSoT^XFDRc=Oy2TB%mN?v*!I zW!k|c$$x1QQKl4+yK~y(+!`6D4D=ND{bFeFZ zD3$X%(whjUoUvhOE>9*cRb??TIrk*D_k+*$k zk{$AjO}OTCFLXUj4EZuKe-rHqEz*`1uJz$_hL8tWMtW!#%MYv|uBnwROurOx*=ApS zwIwdP#|{2wOCX-@CRTaKORm@u0<9_u+;@KCfzdL2^>YH5S}NW?4TmQE-b*Z%D(Exw#lY#tE5c2%=0 zZ#A~X!zy#w_LK0-OK30F6icXgmhv5p_I-&v>gzsw>hsP$DV`5WdpC0*U*zmbKc^j5 zRUGDd-H1)Ni}ZPPKMtXpzGf%db;YFIOxXi(X&+G1u|WQuJfj19(;kYY$$Zy$Hz=OA zLBtZy7w0KYST`RqXf=t5e@Ia3uYG>K!T zJBM^lofInuFY&`oWk*;YR;aMH@PX}m(nij0u)E;6dc2)s)!aY+4O(ZXuq~M+lx2wWnc4i$ zYdT}s8X>1g0>4O_$ye=0G*guEIcfG7O&ZY;xBU3R5u}NGU;^E0H~wh69hP@9L*)+% z46lNIQnen|v+X26suD{@-&Wr+gE?amNF_?$iFk?d$odogUB% zv%{rhoB3E`aF%W&kICKreCauNboyb7)5A>os8%=JCw=nsXU@Fc$_*ns)4qw&Q2y-) zvDgpWz*sMX-#+0=vt!!*w4joQ-EqMZZiSbJ>-c017jW94lcLnZzilE$`wwf>oNDE# z$uqv@tqnAe{^SkR!x{XGJOe4;dGAISY$FZs{%N16k4OH?p629Ze9v1SN}+et7~&nz z`Q{7>JWm-A!{|QOzfE4(u?8@iTg5{ri}7xw0m>=2d`j9MrF;X7@0!II{ia%Bo*|0g z#_`spH0Q6Por1(Vm~h`7uT70mN;%%4wf1B+icKji7S8n zi@daZX>Vzej29Tv&c`Tg7!1kcGszc^GAm>btt6kdGxnrg;__u}=;nZc{}x9xTWsOcyEVV-Csx=Ec)}LLpJ?(E#7OJ?-UiqAY~*w3 zF50}w1|E}7@@4K$=n+PKlj9QZ(oXL68U=e$#ox zd-5TEF~g}NIeZm)hbuOkV&Iirz9mkKO}@sE&CcOtsXyj^&k%{f(|JK}F=T5E&~`hK zcU|XzwI1j3Q$LDZkdJ96c~!b)2l5p1YADY$APtf`x6v2jO{M`JHHvx0L%P?#l8>vi zIWHsK^6l}4cs$?~*EF$%kF_B_>FD#2Xj@dM8PV>#U3_{ETUc%}#&(@;{B0;btMw+( zn!AOcAkDvjtr=2k^mwlu)<{&cL;(4@Y)9JQ_Q;Os#t3sI9{J80@BSrE-Qe#+pr13o z+t7W-zY3>T5J!h}>Q8Lj1@+&=W+4C6^RYd+Tb2_R?6ZZNd>9`{HA?0)8*CXgjW;Pf zVar%h#C;k{>rqK$1oV;S`TE;m4W;w4rX9KM^6PV3i z$(Jm$!TRCmP%Bx@4}P)6y|d(tJGh#c%&{R&b;md-*VGEdDdaH`$hX+(lJIiB6Hc4j zVQv>Lw5m8^;8;5h7;{A!`b3JAf-QO|Js_X56jwIWeyi6_LfKC0mDZ5&3PzR(1me`tykR;*veH(QZMINgvm0E@W7 z4m*rjH-!7Tx!h(B`AXCb@z8ZMvd zX1@)RgUs>#Jmc?X+n|E>Hy!`0%^Qx|ke;YxzHxs~oUrzsl)OIl{d~NIg~YwNMte)0 zy1ELWyy!Z4E^MPYhqTl8s75+><7;{7$c4>aV0T|e@J!v?y> z4}>n%PrVv!jcGbR1kFu!#@?_Zc0gZ#r=0SETb5X~XA&Pt{o4tF7BG3dheFS({@+_RIfu@=E+jR{)s?c=j7X_pK6Ld*B>=gH(3PMu_gpy|8$+Ck(m z??PT4^UZt(J@ZlHjM3%Aaz1k-F(2}bX=XE@m!1*f^Gst5ojiqmQZDg+pb?n*Xl|2b zi-{E52z3>15oUw?{}^IK-UzNi`S6Heh6t)3%WJpT&~7MWq;;Oc?>X6E(gRbRD4NAP z#nXAY#RBoeHTh`|8yG&ef@A3dUSmg|myI3cEWWc((52_infCDZ-l8rM?KX#(ED)jQkumMB(d2)~KUd;uj5#+oxzZPk ztrmHpyl3;={lxq*rF%+6mG2=vZKKE(-nGN{2rCh6Cz`+{q6cxq$b+)U2VgKgk7#t_@5cIUPO$t$$M2>uTSaMknVcV1xvHOWXm^giuX&o#rYipl&W z)eSZj&(Ddoc-k-8O?Sr{I``&qhZq~wC3cMSv+^Z;Db-(ILH5LpUcvpEsZTshgrNV~?&d6+6+=;?(% zSuU7qtjcYFdLnqaEBYT-?Ew(VY0b}akZ&KIha-g}S~qx%l!f4rPv z5+X%G@j$+fSPt7qkZ(w%KVPtwW|EOk(2(@w@mCzNX^J!MH}&V8){+OPl$Z?agZQ?4 z64-5Vf%y1f?y!Y)m-Q}4BUW(#TVmK!e&7GZU_NXW@gj(cl&(IQ|Ktwn>_K~Klm~M? zdZ(rjbBAT~Ag)nN`%EbApBo18Fir9Ssd=ERZ4mb%9?8{G53Cw9m@ASG>pJo7y6O$) zZWeZU{LmA=-5v|o`Np_2)e{fy-536l2hsOf$2c!Jq|EIS=>4UB$e=sjcxU1|EGAFT z%7fkc5}IYLC*9q!>~1_oQG{F59B|ySD|b0f-z%4PsKqJr1u{D<&=S*bzhA;Ks>@f? z`TO%vlMt}X4y}tNcsk*=5OSW*o)Y3~yniAbBLDs0g``)%{ZKd_U<;QrM`*|&2=B;; zw`hqJFPduw5Vgky?}xf#k*r?$e9{uI@;sL_Z&f& z5f6uYp)r@Tg&|kONbnG$I3hzxp))q8AMHe#n=F_yF~0i{AIUyOs39$$Kh0mlZUze@ z*AS=2jXdG+J%r`P#C1`U;O7#t5HAx`&QH426{f<~2=Lmzg+WQi-#$lj_%te@N@@ z?jhV-Z;NObXJ}3E6YTP=ssH1G(EGtc?~zvMP3*SCX)<96`HQ;~hbK!nT=+pd)prZ7 zD9e!vf8Uv*FZo_luZ0O3!_6>SaKq=xVZwnGrg%%+8qCT=h2S$LI4HQIi$kce!N(XD zI&_|#3l*Ma8DZ%~4@{!JzjezHwaY!h?s*B0e@v13qNCqx{Kyr;=g!WUWoM5A%a#gG zZcdo-#~%CUXbZE|s4k{Ee%H!*f;+v-Cg17v>}kT=8^mZi?|`uiBZa~$Vo4D*P+>?f z!JJrVK6}LIlk!>aLbvD^R7@F((deI>X=9v*e+SNVt;VnhZx zVe!2#!am}3DbW1mUbp^&3FRl6$Wfsg%MTc&8%?2?$I-Z{3EtV zSx+p%x>-W8jty?oevobE>OvnqYfRisUL(6%!c99Xe7-@9qmgRDed@=YSmh4ipECrr zcNQ3Pkr-2xW(ZzGEU;bM1DC_63%i#PZ-hJ;P9qlyi#5z~%CTddS2iDzKc7zC84G)K z`MzGh^BV1bX(66W%^bNe`MWQW2l@H)f%5)(u28BYzr5c4azFAqiFF+ix#?*6rMa$1 zq4RFhsKyd^;@S?HCC0NWC$s|(5UY)J?Wz-7v<2E@(2ICqUC(JiMdnIg7J6qA4lopeEJcH;>>K-Dy!Nj;I+w3o|mw3#ckZ|E~4gH=`)eCuY;tHAl4D zf~4p{&q0-`)*_M25plW1%zU+=Jf3<=)X*P2&eLOIW}ivR6zQk2`#y`8(-1^qWq zkY~}EoO9a+`BH6pe=iZTA&)mAHp5mo?6|U1{*t`^7jF@> zRJ2|GMUCp?m82yN*ORv$wS_tD!0x zC+5=EZF2O59&y$M@_7!jj>M5l(m~OCt6G;1wFnQa{8xnfQ~|4{)RQDn-LJ%IlvsP9 zQRV=1y#|PFJ@B)O7^5u|*e2Rfl73o@;s5qz>wP>h?T#3!2Zyj|f70sCru^^xXcj+HFM(a)V=Mc$byDaFvG{G~hbrUKLxp!b1toLXnt`3Itm z^ysoZv^Tnt_)`-l@PAIcsl!&7Mem{}`9o#pr|>zBxOT5x$!B#Cy%dQ(sZagzQ+ttg zT7=P0$p1Kd51e1pF2ODC#H`tifCJR`y-uv}IyEHDw8I|qHvTuxuYS#B4rhI^jQDkr zBImHq(`csjfPR0`3)zEKZ;V|^GjgWGp5FC_da4MUjaIRD`QDHZbij;Zx-2lp8wnN; z_@`|phchp_ zqh?XAG9_mivsfm=IMV%pY#YjMO6*C?LpxL~da+I(_9))kG0tu$9GS@3AG?T^Y0|}+ zeWTrxuddsZ4$PJH8{v<=>ZG&L@?hP+_#vHU5Xzst*lO~9SJGMSlHkj9Q~VIOo$7%# z0c^dKA9fcw(2O96b=vQT!9&ED(GtQ^X8K_y-HWrb!&vJlU%aDdTkpAyeTt=>=EV4# zv_71?z`k(xl0c&Q6n3*~Ew-nCaW&&XIJM zbSMZDi6>}sCX=bE2jS&t>e1+DGY^Fzq}z~|T057i-wH&)BVx<{%40>LfykQYfMllv zmVY1+(|jE;?S3Ki9TfUBuk)1YjlQuM>_Hv&*IdNQxz|wWOFG=^22AcIvwg zDrSPaKjQWhQ!Fd>AtwEK zXT)`hW^D@2xc-AUrF9Xk#YqZhI~TMp3uoEWX%<61^QeU~_Uj`tMO=tkXCKBET%>cJ zp6!wCq3l*7?WgkkpB5{WotD|7Gu1i4*#YeKC=qn-bmRoCR=>_XGeQwYED<*T8klw{A2tplO)JHj{FT?o zhd_z?Xor8@V_8>%;Y9qCTcfJkQPSaBl4cK0_t?n~LC`c6Ltpk zle2Zi^E^^S+~YfCteEm2A_rrVYbpCwNN3e0((#K*Sn_5%!`IUMy0Dl%?L=Cw+pd_V zTFm5hU#+FP^3&xa) zTdNqOjNdRFgJ7J~qgm9uSIoaS2&I%mFpZb&rGl6*>k2nf&BZ#F)Z!>j8%8@ zL-|if^!BP_ro?R7WhRB<@F%Ref!N?bXr5j4i240=hns~H)|ozJ2gbP3zC2=0Z-2nl z4-n_lp7wR>*RrBQdfvMbgVd*nZKND$7I77plIM4L8ufho65D9oeP*~^3MfdBLZSyIEGO<|+(&k|ka`7|>0EC7z>br* zX4M+XL)Ou*aPop&zTu3SRgKJ9B1PaP7j)j+$j1F3F8h6A0(5RB+B|F7>PuX;%H;d_!S+XB~6P3zQENr^}(U&XMsK@P+EG z)e)U_W|YK2{}as{WSw>9ER98u4l#=)opqv1V{nIRa>JdSb&^$M5cfia6(c(9BsoW8 z1m$~UZz<_aeHw)c_B5wAQquW2mApAOiTTq@N$1u1NEA?<_l7CzjL(k1{F7p|j#JdB zZ3!p8yBJFGopffag(Hb-$-%0fbn^Gfkf%$#hvW)6cNId>Rv^K%eF{1wEQ8RSa*~6c z6?6hR1;8zcYMTS?tb2kl4i1#!&ZWPs`~+#peTa*);4d3SJ&ASwDb6K-*lx;y)qJU5 zTK|X5q&)xcKxcGs`pq8tI>RZ@8J)v_v!FUDVyUiNx$`%((WZV(xC`9I{$@ovG%p)V zOx>?-%vZ~SJetIpzTL*Gs)^k-mFE4Inplql(kujZX=*%A+Li#RuG=(eZ7%mGW-mg2-%@lO*k$>*3rw0PJD(E~J;)5H+A(zZo&|&$W zIQWkjR*zKBk(#=fOx7ITSbl+w=1 zJtdI;@r8O|JF~v!0OLwO+TYpEeo*ht$IBne_nKHcohLeNejT1?%b%ZFuaO)phl$|5 z_6r-nNlso*>cy@5!n#_Np?)PXre=O&FM~@kZ@&ate?PN+xkVUY>WHlspIO|E0-SS~ zqSE>^v#uu}P>d7GXMJWm%DD(Bpgp9|Kd}?jvvK@7)xVyf*vws-D1T0ST^D^~V&8Nm zeRYHHhZfeSHWgakJdhF9!r}*{;HZixWJg<=!ubSjo#ut~*)8m9W-N{@^v0B~Ei7el z6qHu`KwQ_%?2={JvE7$;Yc;bQ=R;s|#1FP1&8+fhAWV(?X+J?T({=HqJ1qbUjx@8s z)$}#I0M zJGz?o{@n}13`h>}JR&IIonhl;rEYmUM?ft($|6iADjr**k z(?v|8T*Nr?KKs>&;|aYFy^HU&frI3jOS3v(;XczEOuI)-B?v0J&z=k}fs-%k81w!g zSAQ8+Ro8z1!*+KEc3>B_$e37I7ubRz*om#6(w&>y)TR+cOe|7iuPLFT2#R2LcVc__ zANTk7ytsV4U)<~904|+-t+~#5o@0DQg{W$mjSWXU$ziMzdfhT{>AV-pqbfwTq3K9_ z>nx?{>IWiANR*0+I-*Q(3VcMVyF|Z&3ldOX2<*X2iA{OVk&M&)Eh_DYD zD69qlw6757uZCm$q)=RMRUytkWj#M846B+|i2FU5GczC@nno331$9AbU8o_eUm>0~ z^T&z&N2O7pTI${g%0&X)Z7Pl z8JQx)`Xt_wLBIZKrWoXN9C6ggIJV3Z_31sSxy2s?$7hLm@9DD)Qen@sEaB7TFuETO zKmr*KrTY7k79R+`&@9m%dojQ(h<&Im@pyeAUabknvCJ%CT^frB`dY0Ev&5-&QD{cZ z)5o$b(Q{k`94##&rBEb2%o6GAgYi8v48||A#F>0%7gOtB{5DIhH1x-# zi4idPlqIG-;Pcla5|_SYi8bu2Jh&H$u-RJ7mlJ%o0D?!z{Cj!hqjd;-!-d z!bLPjG|v#Ht+;;;SYb9ol;%`E7*Q7?24))}oQi zB1L#eI$o`ycA+#Hw!I$2=5gK7qattoiG+KvfL`5y;&RjQdeAWv)$>_`Nq6Mnl7}{9TlYr`>%B4G$WN&sEs|8s{Y#F-mPXNHiX*c%Of;y|BwCyxCuZX} z4YCGmL_0TE7#9A0KMx9ADiZgfgB(mff9Y~DSrj49(iP7VSBk}V^U+D=29^10vB*o} zK6Sv6_121v@me%_?tu~e*NKJn8=j!Az<#W?ICdikcZ4@`vNniHnT2@rA`H83685Jv z&@htOJsUQQ#>FQwD&G&2;EjN?vHmuq0rTsuV!}{7*+!hv2}F0(a9lUD5gva2@M#`_ zj5Ri*vXd`0p%Lh~%|-;3dEvW5B$9U7h-V4pnGDsS(%wc``n%!wLk(x9HX=L71=^4( zjH=iwJje}GBL80J*ez{E7vEyUk6^Y?ULBp$M5yxe7(1D?RXl;*U-}#-$zXNmW^IfKJaqtCnmql zgbDkt6Ne8F+diaY@-LpDas~>w#wXEfpbFia4;IZ0j^ov0=GL_vB3@2PL(-N&dSHhL z_45NbvM2~HD~5`w)D-j_6U+?Vp`unYYs+S2It(5rEbhf&(W4M--!V)~HI2scV`|tQ z;@2BQ!p@$&m}|pC(fd&Jo)m_(Z^J}+oe(stAC83PdZPDK@+U8ZBe92`xX2s{Kfeg% z4b~H5#{0r&S|o0c)Dz+*Ik&YnI6g*CG*9PyP^-bq(R!jU`@RM{so@`?C#FYn?ld?W zTlNnY^&{B>x%&4yf2H=?eeFd!@C>qRSPTZFoyRZcD~+*ELS+53$V_uX!r%kAy1M{p zc>awJJc?KJp$zHf2_K&fSnbuKgP9j}+MLEht6XS;yb(1};sCvG1!tLAe7+D>9ka>J z^~JJB=aJee6HX)ivDCH%IwR9D)|x&G=Q8@yPvGYsW*#M9K}Ka7W*#LEt}R=NgQSn)TEkFudv^^fQzKFB zPAE1SUWc=882TLy!%WBP*f}x;du_t8VgGfs<>z?<5hyIY4zqIJ&vhc1Gjbh!&8Wk? z5Q%xWuHzhgAj7HoA94LUo)>z+*dz)iCD-AU!dYmOXw1pIj+x{=1Ye9s(c{Zlli-SX zJa_%K-k4KyGq=R(5*G0c(%vce^nw)^pmAYc==0C`!LjF1OOnrS{bBsNPlZUQr)$!i z(FQuJ^KpJWvn6V6H+bM$FL|JGHZuwPOaOWeua zGYCWb&voHw9)=bz!||_qJ&af$f5(KGmkJUBqbVZt9m$1{oeTXF?ebD#X!5) z6@wbY{I$-(QR&*xJR@XZEcTqeC`v7Av&YAE8ZN%ZD!zh&>Nxs zhg^t_J?Sm^Jxn{hVjpIOnvB}L(8&_He3JrB&;8qHbkK&=V6Jw=GYkLrW8OW5zp zX&8&y>0`C;Q|LQR`Fov^TuO1 zYE4f>^iQo-+98;+esc)>q3t&`mHeC#7?ge2Hvg4`Su@pmuK!)D(4-9Tbg^^ZENZyR2S21}k=a)6O~R2G<)g zXsh|A?HA{Qz(cWElKro?Wioqa6aVIYjs57MT)b6|w`7=l{OhbN*j`*Gk2|ssO7VGNUABiQ?dT2G@u9pzAIR zW#@1O{hT->Y-Oe_WB#lyXPT)?7bvJH#ib#$lm^sOSsBNny6#+Ma1`s}2Y;{gg!LztZRr&#Hg&=2z$1!I-z%tll==bx z{ffh#OBhy%z4zgJm2)K*5Nz%N8=FLB$LDica+GI4qc~;c%pzRoyu4pbv@*IZA5F}B zFvD7-bh4Kib(p=Z!x75O8CtBZPA}*DaK(CDF4E_#ptm4QIXdMObPv$8lOC#s?#RUQ zTby0Z3RPkkAIJBXL3mmxR7u}KR@;YQOf6F@88=eNZVkbtyC*2{@pdpqtSMQT4^(i42)?p__;%^+~>ZrV_+;UIH{HK zdzk~nY@>xt_KXJ$8bIP+Wg_!N) z1HEcR%EY2GSa{19@5UD>e}WZkVvXVP=8V$WF%PMMDjfVNl{AmjXz(%s9-E}H>1!r- zwGP7WmQs0?cbu$I=CPJ3O7r}~uxAgad#s|=Y_}hoDNH~m96xApCVcTnggb!c;}6N+hrMMKtEmR+PuR_|B<_L1S}8S#;h5ca>OdT&XCBeB6+9 zfVKN(MX_Juf;Q@S)Txk)BeR?ub@|&5yRoQ&?7Q*?^Q~N9TvyN)N2&pr8ejdw~7o(*U34nddlx61Ch`=RzE6ZzO%<;9z19N=D2BkHYUSebz7 z>M(fwy;YoQ$I|0Q28G*OWiMwvf7Ik-y1Z3pb_z#E5cg}>w@UVRzCZmmSnc&zspS3q z(=Cd5-*1(HV^z4fI~uv+ZpCwcV3% zca(#j%F%qRJC2mJlLPye!JB8HMswOokFF)u?f#Fm*-B1cSo}YRB2HasA>S69MYStF z@JVPc$1N>H5odCr3Y$r7&wLz?rQd8oGnrIRBCjSnMCY2ydo%M;-zpGQK}}`pg)F3c z2O(xnQ~BNW1cFl7i<{n5wirb|Wo`&+j%X^!Z`zNWrD|pcHI;S$O-5^;@6PKqm0NDJ zclRO;=53qGhc#l+_Cq)tw{9vstkYmWnRuOe?bI+FKfXtzs!dbb|3L@@S(-W>_(g zv-fj99)m_Vm9}+UP|VN!-n^!=xdHuT{S*G$H~#rEUjAx&hdDFMhIlnvJ}tkFRd<<7 zb#}O{tXl!|8SW_EFjP*By$o-%R6O$sNlTAQm`dh;LfQa%?)U|=i0Gr}*k9^&IFGgT z0y%%^D}#>}Q77()E}eP3xd0C?bAML#k=snp;MVv6L=EpFYv0O4&#*xFRO=(>_RPlI zGeHQssVhfBo`A~}o~gCEa^A`#*il1`lZSMrXV88Wb_m7R1YPOcYA@yw4nr4>u1tQB z0IdjzUzo1EMW68ozVFV3>dJ`K8XPr`M8|Ml*`-D}&aKqobEK}^$@k#%4N-UyqbpaI zk(ISQ8eWOIa>ft#k#@#lPl~S8{og#$J{CU@>dGxzFJ@oIVeK(pS$m!bemlf7k4#sN zt>cFJ4hd*-T2}^@JLCTDL{z%;l5KfEU!^blzvmRk1q?1DeHXUTNGixAnI zQ?HyUeVd#|E;Y?J&QFy$UKhe)g9qGSO_rhU@=;O5Uj31Y@`bzdf10aL-wkDP?>y-4 z^1=3WA#Z;^h2_*!J-z_h`B^q(e}4?`3mNr=zI$q-7UvkqKAke~`Y!c;8x3S_{gdcE zitOA82D176G+bUzuXHa1*=^}Tymt@5o8|_xZ>xRim!QV8+6FSaP7?GoLt)7KWbK%E zd@K$_=&$keWNI|N+zLk-ukV>eBJpJedhmPN^b3Rj*GRmsVIcE{g`j#3&co^&(6bzf zP7R~ctg(T-mFJI>En<-0!a(X!i}$o$EcxdKaz66`FLt8uy0d}27(~52`H=5>7|1~@ znSs`mdsbfqG9@_E>y?O9j}g*{eGC8pzjao*u9e$L^YLZ63+jg~mzm=fbO?3D!7NL8 ztbQ&!-{vgo(jvKLU=B8tSJ3|WLU}}!N&c}X;wI0R`V-R8g?<&i^>gJCofEjr8U6Np zb7ZS7$8f~J7j^5*mK77y5aZ#8cgC~iB$vZDNZn3xsfoOO^&oDv48TVl6M1X&0dzHI z*79f*+2}wj?5Mwa)67IxIi^6|4aS6@#`1ORB&_?xp2k~aX?-jn#=N&XKR1@6HnGpo z{#&P~#`5WW4O}OOLp(EXf_xeLvsXXd@T(&4lS_>W)5alJ6d!z$a=0F6~(- zXMR5l`(*mH%~r{$mPcT5!yV5)Et9_W4&iQNPpFNTNS~McF?xa*Iq;U!i!7Z08|KTO zv5>`sQ}FSC59%bF%Ykmm*mRG1s1=K3#oIk-(29A9mUuGuvjOD)gEQlOPGim-j8q0J-5IEFK_U#dc@8s`%?`tN9<&x=5 zhSz&tGpVzPY&zD@d-(P3^~rKmhvVWvGr6KP2&eZ&z*UcYoDx7)=WN1@JH%J z4cZ!-$-4)9VRMHJ=c#6LCG`gL-$diHv6&qB(-Vt-#bEt>Gx?db!lVXqSZ8h~z0__P z)h-?@M$D33=6GP*!#Fr?{zrC?rMC9Q-|xYjS$0yHa1hzOT(I!yc6r>5Y!B`){(m;g z>6Pp!P$L(*ZJqQW$8ievLLVNilA}*1!~7UMeqC3{Yh#lzqnsL*y31sXONkg+MIZI{ zC9;}z0tQiUzj?Zq?AelBWNIHTZn2aL&v4y1bH7o!Sf1csxYxlSUTYRhXY#^-#WT~n z{bD(iecY920-$|pA$KT|xbv7bNuGuLq>8{Y`s9D_Cf}^IG-?7##%_h8OpDuaC}R$kk+|m%H~C&%RvhnZ54p9YmrDj zZXqW%P$B)j2EB7Et%7%y%D3qTgO47FD>9+|Wkfxnrl z^kBW*^&kn&f07^Qx<)op?ST=sosD0wlm?R%vABww!!OI_m%0hq%-M>s<1)FWJPrZx zyl`ygQaL{*7P+sfjR;#JQ=Q0Ue(8fdzpdm^%V?NAV}?qQmAp403i*%y07ENT)L(<~ z?19XwZzWr{k3``;6;3_0l-^{%n%)V(qVtyW;~(x1Hv{n~+fw%X9*T(TK{$AfYxqSC zQ5lTrBbIXamk_)z4?$}}_AP$!YnRn{!taTx9*h~Kq3EAM-ddv|{JI#1$)_yk6VAX7 z7l-4FVkt}5cUjCn|NJ6Ld4U?|Mn#b*x?m~Gs82kVuc5|!v3x@=e#3g?q|3$9I-S0O zMbUrV=l`uY4*Bku`X^Ix_l+}l_S-HEXYa*qYUd)}ZIs`>C*fHk^TKo2$)IC<@ad=< zj_+74vuqNP5$#U?`3kwsC;=Aqxpiu`To&^^Tz!it8tq#u8`g@$adR(B(=3sXU&mk@ zJ)h=fR^*mMW71F`cTYd!e z?)YOzA4@sTr7`# z4Z*+LgOU1Sv5aUK0=*?<<9=E!cXSWN+8Jt;S1p#K^n(yTG87))7t0dUKvZ@M!>Qkk zWxt&PXxum)!)jPc!ziA|zmc6%$5PhTa{luu0>R4{OLdh$?*55D=}LYse24y|9!~eI zh3wG64`W!L|972l#o0>xL3_!Br0#3?7P;^R*@pD~^j>8x{~X=}1I}OyOxDO|&WX58 z_Q#h_E2W=h0=j~ljkIMl*(e_K+fs{mXNhzh69>O{9>{dJk{-j@U!lh&#m!P$4vj$< z&N4UUFP8ne4?FMl#<~%U<>K+oKA7bL*Gm@CYnldI`|_Ufu#of2B3XCQr!(6^+FLW@ zfb;&mL3}n{sf|40kJW80qz>m!Z~T}kQ;&NlXHxN;kN^H-F2yzO&*K9T`qNxK`4)nv zZGzC~hq>(ADTK4uAZ+0E?}@?iJR6M0zs%*_4MCWg5CXe@&1F{&v(0y@v8lR+TzHoA z+1a7UsbwMGer3)D>%tEf=CVKQBXjF8`XS9_59+$d@QgoUt)*P&>yN1NNUY<2@|^SB z%AK4s{NEpE{=YNgt+vVOsYysU=S=Uw2B~u1gMS05E%#d^^OqzdbOAk(fh**XnF-X) zxFLVbQt3V^9-a@~c+Rqt7dZo+n(7Yo`HN+HlUOv_=z$@PE#x)oh#u&9!lr|{%-I%= zg73`XUa?3%rHAe$>werdlQ;Ks7DRsLE(bF?zBrO>S06-=F_Q{epf{WQqJ2X%*}D~W z5Z8TC|Fx+!7#~i(J6RIfOy$EhVOU9?TgU}d`8Aw-az7Q>4yJO|SvBsyS0P(5m0f@E zyq*~VL#?T7O~%(!hd>PA_1IOxNFv+iGq2s_*{`ZkUY0bKFS!r(Eel4?d{eo+T_84u zGykH{R6bou4XOoeoBC$bi8WF2c{TdSERqNBtI+3n=wJ7FKXN-~vQIW<)8F|i56*0m zd%NvH^$g}|c3dN$v`NHOp23UfEtf_u67Zrk8Espvq%rFkFP_K0t+J4N`o!Ux2W#|> zi}=}5M>obD^Q}##Cwsr%uc@UOu~2^Xj>hYF<`m9dAm5+h40^67T=&nH0i0Xjp{eLu9pJXw1O@8|b^$QnCO8c;{NDw*~9=y}rWX9xzH(ksYoOT!R+YZw4M zUJv!5mR=hGJ6>O=e%^OmARh2~bmt(<)eXYRG5p!}Jipuuf)0Nta_9>TVE)*9y9%a>pwD_iREJEYy=~{n zeBQUe=sl_NX_mZuGz#w;vcK1TmaL+7<>v$y@h9Y7)t}IaOBW)_-KW(j5!j9>f5Oaw=kCJf5_i$?Ta!q zW4U!sC}J~wk;Lo56gA!~^h5X}W10MmGlB1ZIACrp>&|1{9pw)*{_G3(v+s>lVF$0L zuudFwhwnLFw_hFvN5=q|@cS1lfhg$`2y3;mthgMA*Xsgt?WBo(u_h1~TT-{@v_Q7> z3BZLNAy~h5o>UzRK-)3w+2)$c5C8i-8;Ab2&by{q$~vrX3xb#}*UL=)7Ob_qvKM`5 zo($d+i=Z^-W__6@M^Ia($Not7hQ@N*t7ybuWQNnN8S=GWG=48~!>t+9Wie}?)i2zz ze#|uKQmMgnTlTK)r%LTW4IJutpwWzE28zc*1#xkz8RI0sG_h z=l3#_!xDL(Go&}OrICzdU!p1J`kxyaNvD-zctX$M>&8Yh=RBX+H{Mv^!bpxE914xS z4?eavl0U=L*xr!+SREtzo;o<=C|~$?HIl7YhoE;~KdkR=B-dSL4W3CK1g~G~Glyu3 zKQ?zWk{bGLQ!D&2ql=N;(w1k&6)Ge>n<}?+hPIS@MBmmkWqev7XQ2Uq-RC#%9rd!m|w zfpkv}!&3IT$4_Q|qhlC~rg=e`Z6Gg&gkn&U7mipN$Q7J#hfnZ^qqTv2NH6oxJo>F{ z4CG{<(JjYO1Lwb53VM=tkM~_ZH0V(AqslJ1+~2O<=GKYsNByp z{IM}|dx{1|^a16Bj*{w5%!sh34x!6P*)1v(eV&pLFl2|aZ{ONJKt0!xaIam3`9pmrl$y%qvkhg?hk=J_i4K)`> zi#f}$HC#rr=1m#SzIT`5^8F(270g5O9z9$>V=Wg_j~Y1R;d1vj>Lj*$;fCdKnMz&K zmfKz^UOQaw2nc~0Ys)E{hRer1yBi$kbHVE$2ZPat43~rSo1YpNj6d`Qy*MyjIz0(O z?NoZCkBpRe4+SA~z7HHqCdj6ff>7Z}&e1@9d9g(h5*xF}-e{_n*8=gh#^3k(fA8lX z+2iDeT~T;$N@mUOQ8M>CdHF|~m20CX$J%P(R*yW3uY=_f-k*D|n3bqIP>yt=)+~eh zLCyM0{icy{Z0riZy?q(g7s1b(zKOGaq}`YZ#B(mQc4i+rv^*U5TQJk*kFFfNku?J~ zdmC@)$|()P;ZNN{{54&aYW8UP47MNBTRtHt z)2tC^9RIn`CpQ@&FZJLVC*6x0=n3*4u74%h|3~6jIYS!=V`|&}yUtDlx-#^406M>P zLd>%s()K6Mo>!c3RKKfyO6}RP9D26z>By#U15l924ElNhNfnWbj zUdPpGZRCQg0L0FBg58|f()v#TeDs}AUeZcdklU8m!wJ^{T1ji3xq6XtlsV!xL&aPs#)jcqNTEepikU}lgzwU!#{ zTdwXR3oEy^Z0XE1%2G#MecxKnCc9wwG)H>l+eq^m>K})azcZ|j9Cv_>yLOIbDYTKl zGXt@)nj<_XwULJl$t8ZqtYU*Ua$$KOY)c*Rt8qiwn0+k&;pC|`Y$#9hx^x6HO~*8s zebWPBqDNib%y#l>aUc#+4;_&#q$M>|HR#8WbL=P6vI61$joz;R`}6O23V6 zSkv7Jp0BG(+Z$xOOmt)(+)t(0(;W?WIN(r=D&_T54>ZiSM|Jym%I;qtQ0m&_%cqx0 z2%p`#7IwIu_)Mukn4XVgyW!yQMERHc@$R*Dv#xrqG~;}&{_I_t|KgG2NX@*6+=*qc zA1T*g^wFM*Azff+Z z`(w!A&Da+ELh06rjEF~@(Ba4nB{N!ulunzNvGqck-z)%TiYge^#azTo>{tBvKKGv5OpfPgT^a82*E;v?d5kkn z?uF#nyhuK*)Lg*cTec%k&)=`uzNLprmn@t7WTl(C7dj<6px&AU#iF@49`tfRMpBIO zJec~>WA@mdsZnxk`rsVw$(xE$daw4uy$g15O$k>_^Vmb0V~6$A!~f_q<;-pW>GH@sNDtc+z2I~J=CfJyKwqoq|&FS9}L5GvY(()oVlK{-)+%h zUzFl-)DJf1wmd^cE1s;~=AX7f+=3WIJBb>cPUPxT#VD;p{87tg2l}p#Ri;1i$K+>Z zb{&jW8V^%p%53tEiei;NZYtPlx8dNaSVdNjgtv)`V}k(p*lo#}NK`KMX2#DL zTO87fR|L;274+v9wTo9=+3T}yW`}t*FDS#V2B6n*zQ3M6RX*{v*f)z_oB!O;bL$x? zztrC773qX8Hzz75KaoQ<+zBV7f#PTCgF}3l*M*K&CMrH?@8^hDZH6f;da-VrOpaUi z0m^+>UliAKMBR72m7W#!A@RApIH`w{O4eVaaPn??cT@hIOTQ#}YlCgODy!Z6P}-a< z!FOGi=j46b9YD(~6bSlq-OFU)%@^IH4EWWOD1=JioBM*HKN zfgS4T^jDrO_D9XjyJ0zNpt8z?{p_W?FDHxVKS{7 zYIoOEVY(L?P1p6cxph=nXyl06tBtfp^uT(P37MQVOZ$|w)Hrg49?mw^w(rhd0~ZHe zezI8GWGJtvIAE^nQmy_36#`l~AU<=M_V+ycu%3}Gq_<3)yhep{!wV8iR(4ybuBS$loA3ah!V&RKgx`!h_1Gj*L1IO~MAUIhD# zy#DX~+}xQAK6*3^8#&`t!;NS#hP7W?<|2REi1HBui0i=~h#&bx;{))7Ea~dwS(nTV zz{V+L9M|+hG<&wOmd@zWIDq_6GF^Am^Uwa5rA+`1(YvVFMPl~$0A$nqX+hR=>8bz} zT_RtS=fZBxg|U6$j3!UQFm(vuv-HrVJ`BPo{;t<#COo<8i_h)Cn%bnGwwI zIaGYrAYzmXCaLtlmsc3H7^%W9e$S0iXM?Mp3;DF5KenHXfj@u$*w%mF&t>;?#Y^@H z!v{D6)q05u510qNfQ*P!Jw%5CL73v~jD}}>h<410R`GY9``uGaTpEN?H~EZo*A-u; z1;Mtl3;Zkk3bPSG*vT`yXYc^=hWw%z&SYVn9wcm;=}<|oT;|!q!h-Mg&Q&hBzjUzp z7#)brUan{pI#8Tj6bQ`Zd?CG`FmDxz)HOWgkI@x6CDf3zJ|FMWL-eGVWU#L*HlOVx zKJwnErsnlP9nqb8>1b*KJwLP)4xA5o#c*D4)<&%5^BzS8?i#;VV)Zr^R#IoRF}S5z zHC=_T1*}DvwG$SRKSPKuzKP^HU6F&WK5KO z!_T;FX$#t%K z(H-x;t`ac~*z;je;M=#=LZ9>DUM3zee`_ID&>KFO9`E{2i^Yda%&VO1fhfN@q7&bz zN9cX-e`Stnf5jgStf(K2G7>dE(A&-HC#Q@=$P0hmTKjjsk+x>P*z<^b)eX+*<+V>N zHDER}&x1|+q==66%5)#^f|f(~idoIWa5>Qh%E4r@I4Bf->eB0ylq?2x4n-u-;K$nS z6|b}S8IcRIq-w9&%|2qUIn3q!H$_~mPQBqpo(<3L6RqPpubx7-OyNGE*DnNT(s>qO zF8PpzV2GyVT!$o!U+hypnC*eAj(fzCZ9(L4c;G{1yjb@r5c=##O&k*|;w%DjfoGFr zEu+PXdjSY~OU}{)jYzT%!1?B$DD4#~>emWD3osMcKSG>JQsMe;a%tQm#F%L+M6fqL zuPQ=(=lTrlOsGa=DK<$otvps@Grl^PKU;;tppS;Q`L@+i*_&`9v-| zy@b*9q%Wc#Eh3gWrOSoFXjue4ccJd?V}bBI%sl5r@*ivqL{+_Tg!Z5pcSnI3zatEp z2bit(p+IE34@ENjrI+}#rR-aJ(Q{EPvq<#*uEqoEK)fr9gzIWGYWz!WT=Q zuZ5s&%BhhHJ zi2ROE4@4Aun~|Iqw#m6KvU4=leQ{4qy(g}fMWUVopZChU!k)US#W$%%Uv^i#9u$F* zyU1W&e^*r4Q9IFvtnANsh1bn6$TI4NPu&x_oP~}f?`ZI)d%}|Xxa*_5@afqdF_~FN zhYxbjwdI!BN}bm^GGT|^ye{-_ah>VEemuWYh&sWz>dteH&Q)>MFbKC#d86H?D`HU) z_ZFUcf}JnZN6#$!IX+lD@3QE*GypmD(tbU2S=ilBA%1}`Mn_x`Q`meBL#ePdq0XOkoUg^_#Ox}*Pec7N@7p;M zcv*!3(x0p!DPrRJOyvc^BR5|(xDp1a(Yxf@@^Y8_^6^S;gh^I25VB^`G;WVQ6GFC_e#8q491f0K6tX^g&3M0gk0f^J5!#E%1_ku zQs1d+`CN3I5{NSP-1fUZ7iN3OJiFtEeugi^;d;~$?DNNRotNUsdKFr`s4)B6OA*dJ z`7LK&Kb2SFYCnIN8&h+z{IMAA5`g~fFO0~1EE*4@7Jfk>I_lmK*M2Zpiv3eNo9p80 zbgnBkJpc5s5H5ApoJU7+##$kst3t50@3{@wqvoD)k{<0=)aJ}}cSm-;8irTc=Qp440hMocLnmg@eDC6k zN&TxE`W(~X{7X;d)TwT0xsS7AYW}U8S2sL;n*ID_vPEiDH=NJ8>NB!+zNb|)v^yFG zU#^>MRLwBijyh1zsx~kBSKMC6jMFK8c(MDJC@5CRz$Co@0MvLj!MQ%kP5&0>c~H*Ou7^u8=n?bQv;JP^Kz73NJ0Hgd>Nj$q)HEF8bQJq~l4+S# z)9~K)BRDg}4IM3N8t(0P7|tWu@2FSPFmT5~d>`zA&nYzwyHfj6+KKE1`r=cYreggc z`h#9oH|*@5f(CcJ5PqY&;j*cF$)fXyLz5bYv2&AAMTXS7K{X8DO;5ryvRPKvsbLse zXAkawqpwg+PknF#>eIv0>uoi|k#(6T*jWXOf2tYQ35|uuNd>-cnxcuybwfe)g^ zh7;)f&Kp5bKZs7^INIwmr+(!}F?`lBS>`~etF55#TP_hPNskI8?yFD!g79z5O$>zC9$j(sn_h!o7e8jJ#+ z_rfEFdGeVdX!z%ys9hro{ncuGeeg~U-=2u|YeMm~=$)wbIUbJGFbzHWPTX{fLl$Q? zMv3plnNG2&eK{PX3~!2Fz0|nKx$pYES40}MA^kg2Th{T6_}DS-oUb&MB=Bha9p|e*?Yqc@<&+y$=n1ys`6Gh1eIE zj_P}Su;p}x__E?8{xtE!-K!PieK51X&-d?|FoI>&#AbIYr-k z{t?ty2Qd?{g0<@*9G(=6k**bDdiDV(-WQF_UVPU$M-z5`qg896I z(?zj<2J`L$(B{rb@!>V|si~)b{q&@G)awL->A}1|K3&+hIEH$$oPVUJi=s|PkZ-Am zb=M5BtkwY>eW6CKQ--i^nu6WyLeZu?Lj;)a!NeD#7}qIN#NUtObHjY@CG_xU~pgT&OSIm`!BF|IC9%s@7|e)N+48z5fG zOjy03mO?jBj4wz>ix4$(z66SrUcMV!R&pom{(^%GCqYt{XRrI zbxp?ArJUD3;NNXFv##=)*`y5>Q>f9c( z&ax1sajq8a7alng_T)lBiDVLAqVCjaQ8iRkwt4Wm*b=$)7=Zag}G&pjd$;Ji@$ z9FT%7ZjlIXV=nHLBqHr{Bo1%16g3LS8fl}!b+@IWl-jqb`SeFDTp`l`$6*ZC;Nh!P z!e9w?78j`Do3d6UtO#PSFN*J^_2Mdf{-4LuL$PRsP_w=sL-tukyG>#e{R+1GqF|b` zS-cjWXhpx<#Ohl``_}HvF^@)ZuWh1)=i|Loqv>^CBA&BnpvSrOf7khNTx)U7<^rDY zq)ua83sLa$Job^r`Kx79@p|n!^o$^*;7mhN{;3GZxhJ=6TTk@yr>}~dRO^zOVwipb zF1(?p<;ySJZIKUcZT3bZ-l2EfGpJZjhQ|B*(Cs8qL7l`3hYB1~wA3D|5knuwqHJc- zb_vIo!Y@z?jA!2W_-6-zSHA!2yHoEpKzmwn2^2? zUA9M|oo78^F(3)|4@F^jX=C<+_+Gme1-rv7gh}scMAweSt*&jwXbm-x1EZlD)KTP_ zgkr@!`T_5B7HcQ4-(nZdJgn{_dR+h<_t1|ys+R~nL%-vBGECm;ipi6GaN#|F)~uhf z=Io|pRPx53^ zT%gnaA}Tt&;c?eZJVzD7v&5YqY*QHRI**7*PfRN`z^7^FkmBu)!arRgxaU+-pRIac zW$?$e2y^J&EzL_X2=FU}E$3%Vb2}I;4Jv@9Fa*P0I*fl;bO<}o4P{2yhSbG?c=y<$8+I#<_sF=z@>`k%eJv-#JVhx{g055 zv8Zve2=Vk&j#?OtNtfwA6Z8_=#loT04|tIEeVp3O|E}|v^NaK5Wt3trnU;NPrQ}^( zd*7Mz2GLp%^n08BB*1HI<^sRSvxT$@Vq_O{J9z_`TNtRU*1=j>GwSx3m_w`T5w!VRPqm+R*M% z`0W~p9Gy(Yn&;?{A%X zSW}_Y`&EuwM_o9_n5jH`a0Swl-k%3%ir(+bI7p4e(y{B5b;jIJ_j{p{t%FjpybPmy z`vL_%$_o23Ok=;hes-8r)V&N@JoC?Ao2a~ZEJb*g8hf4{P&|fR!u^X8sIHTyOgeJ` zJ*LplTjzi>_w-r3-%5}Foj9cvYxo{J<8bwUh%)VHE;>Aj!=A_9%BzK$*j+Oom2OVT zEBfnKHI7H^XB!pE`iIb_Nj#dpuu{Ui?n4Q`{&njdrFJTH+Rb=|TscKC4dL3fkH?W{ znw!e`9_tg2eV>LZXRVkIsUMGtGy5uDgF=zDARe#0yD7Uy1>*w!4u66>D5cvt`woxC z#`&$3bL^2^%!!A|*(Qq1W*=047*8I1eWg;@3rURv^NEdxjE{ zS&l8~zF0lAKq>Pp$M_QVzf!L#9Yr}k{_G1hzpspSyMhGv=AIkARNhpT;n@TYx_5Y^ zw5odvuhU}Sx%H8vqkkU#*2Lj%(N$%8_X4=| z5MSl}j%eIV;<<%JyxeM$XmBPT-ou=gm=ZEepTy()M_a{#XUfrJAIw>{Sy49$#N4q7 zD2!XHbRgp{Zfyd(MK4#T*6~G`m<0IEu~fcN>zZ{X0hvV;m1pn0F^anIb9oJvckE}I z*Gu?o-}pyIQ63px$L|X+u-|!JN!)P_;jI5^sjn(i-c@1@`{xE(50nY433AqOZ@T(k z(T}c#mW;l$Db?g;RV7A*2cYh&dh+_XO0-=R0y(Cc^!cX(-!_M1(8$)Zw^cdXyGLPg zSt}WEs1)TfvGC7rEGwoKquIMSG`UtwhP*DoQ`>lK`ut7VK1_?faq;Mt^-6hgA`78h zpNaMFE6cKubAOBHY@k9}JN+YadjN<6c1Ye@YI zwm1O;SbroHK2|als2?^-pvU;G;z|ALMc)MczI;P@^dk(nFC^f}$O`2f^?2i&C!)Ch zWo5*eAo@)bacNVD(u#V6jFdz~4J%fj^dpCutTFo?15>eGD2;QX8K-GK{^M26 z)z=@enzEOxTczVlPGttD=42HtPh*=mMQcjLF}R+Ny-Qve`KvGU0vV`k`Mjw5KCw2_ zGf-aTWznL)lq0h=1I6ZXHzgf44lX*O|Rg|lTg&`Jd^XQT|skc;#*lP zWXugZI)e*xo%IQ`V%RnR!cA>`TVob7`>e+?>DINc-9& z9cJN8`SNq+8Ldx8Vc*6yYa^~wW%)+he#X*is^2fnKoi?f*`P?eh)WsB+EJei)N?s% zlZlt94S3W!4EO!h(dcx2_UtU*%wGMBJ~g9F>rfo*@cuY=yFHT0kFTPrst+Q~$Fus8 ztC%=KXOmXbdFR7xFy072)y(-kzwR0asBV1k=n7h%zlKoNfxCR>!_~>xkn0tJ{7Qi= zvAv4;1L6_Q3+A^AF5~$w`A>oZ8GnS#I-D|q~s&Y{UEa4m7+ zi77{L=R^wn`%R}sND+qKOA+&VBERmk7rpE1IXLngKAW)sit^>PmZB$X$n*LnJRSWv zS}}7=92Qo~K!v>}Eq1B4Cx1?XO&9LHAAvwI#X5L)VsBe%`PXH__fHGjUJOOE53=w@ zE9EdA)$_l08ftj9U=25E`8K7);)OZ$)kFWX?fdKVg*MKtopBb1Om8?>S;SY3&S8{~ zFB*Qgk{_0z!$~p2mp}92FE4*lu2v9^l?C(Ajq~X1V8CmKaN6PmrkpckyI%}zMxMtE zUuh0n#M9uUGxpyxID0adRmYu1b!mBrWJGY})e_a0RFm-!;pm=6(6n9xd_MQ({OZJm zr|Xf_XceXSL6u@@)(^R{_PSkYTd*F5ZRgRl!!{IdSMB~MCwffSj5yUO2D(n;tH(K5 zq|e%&nZ)o%nfR!qJfEk>vv9D+U||A2man|#RdHsv%g1eH!!P!)M}s#B=;J<$qfW)b z`I|)Cem$H|KaIvR)%ZR?GnCt;(VhP?5vT49=1FrCUQSAa_uxUCrM_+0-XyFI>cw-7 zjQF6Lys=+fu;wQ9CG6ATyQM2t9uqUz5ho_jHD#4%vM4{Un| z^6O2<(ZJUaZ@L><-n$f*dCD4C9mC|TpD?(e`gbFe=o5GXaq6pe-IUG^uHr?EG{NAW z#gn&6F;*OyvUVvhm=Y{Aib4 z=%1F3`B!y6em3*QreLb}@cS-1@y{WNxL!9JCnM!`bypp)yO>}(Q|YekfKR4I!%*9v zXB?t1Dj*s|4o_sQdJ$-#`Msgoj&JT5G4ftC&b0iRl~+hVtU9V?#BjbIufAbiy!5!e zI7M2%bK2LPYSEwHMal2g@BKQ`pZk4iTe1(Wq`yjc4`MgF1L*loUWpbaMs+=iS<+xU z3XNrFE5b#3lE|JZJXZe@N*f2ldU7@`mlWfGdVD@l^H}A2F)YQL-CCB9HWr?(4 z*EjQ&2eG)lvLcS;a9Z2}tiBwMdk<5Y*liD9NGpHWGLDHK6rxpy2{ZmOva!x1Jv4{D zj|}4ew0vBUhOGFpFE1_5g}byz_j`GOC%+Ta~gGvbL-G^FnC>`PS-pmewGf*LB6UvYgI>emNxyh9hd6=)yFmRy?Gv2cQ|WEpW`5& z*njsMtLg{v=fMSd;OT|e14B8z-!^pZDt(b#6gPS8z~Pqip-f8TaD)k|;ZvBS$fXnr98lfU1}CpY)v;)NjWF51Ds@V!`7AV%l$?X0waH)5p$Ese~l zSyCZ7jSGd<;A~F1ybU)m$`4hL$jeq+F!Q2#?B0=FApY~Q{NT4WR&E)+5!-TuaPqc4 zOO9vZ!5iuA?|9Q+>+5{aK%BK($5{EomN*7t&Z8BK8=ZuR^gz^|vXoQhNp%zprrQiR z`sh5`P#mZAzc1h#Jwpb%DBI@LJQkKjAtz6{D$VBb(q9o6c2E7MgUB7@MRVy}3|)8f>Cyst?Fqz+-CJmDmXDSD z<>e{K=74*-7^Iwnya9=95SoKsGXmf?E`qCvZa_a{02(_4)3ZZ1e7+BWUr#^s*91TAi>5$j0xjo>bopy8E03wi60TjQb=V>Z4mqw|I9F^- z`EVcjFW?U8c}^S-LJsF~a*DJ%^@34n+#D{v5`m=-!3eRM#bIKuEZiuj`s|tfCQDw! zC(8DFcYBm}T`{Y(^`2*3`LH>WL6M_aLZ zi@sgUupX%>nk^lO+X~jGl#CAg+3m7f$`RKS5F~EY%Oh@#DO1gLQ4sDGEM%to1~D4j zZsjhtYaN4{p9d=kb}omzL?LErFxEPVy>K`Jj>qIr^mgW0X);eV7rXzl6Mxw)4U9(! zF2p#oe3=PD28W>I$r-G*$B17Sg~)s9$dZ;~u6HtE&LBsQ{lSPPgWmV2_=fngSG|p> zw^Dg+FM?@)Ee8vpis?TzoEO#W?6yW6-Oh3Ru~_$O`oPILh2!0Mwo{H(@N(vttF|YP z!JOGkc;oLx)W50cg_#>OKUP0vq%>X47IIdPcud$Fgq?maY_>EOTUE=w)MYM%4@cvL zGPAojp3U19QQ|uWi*w@4Y2rd3>Z0+?bKQM_H2je!k)P^WGJj~&Uzv~BVX?n-4=mhMmRMdRCo%KnuEoGs-n9F}ocX2p7aI;LBQMyA%l?SO z#daa6@y3xiJR>kMA_Pywl(?$r_K^y)6w(}6tTmyov-((-9N5HP8nbrF7Fs!tqklJQ zZ8Km=XILK&dh>YRe9N(gfP8* z7IqrFaUs{l+ApMq&@-_|vlx~g&qR?tYfZ1M=fm(!eBXLr*Pxp z3|MMDmpn^i$Hp1h(cd4j&hb2=b6A%mt>OJ6m??%+6V*?4dk3+5MGAtX=RDielg(6j z_uCzS@`sB#`EU|!o(EuX12JtXC&4s9`FCgMFtl1CqKlQwRy>RA)c1?(8-%`9otgDn zJi2ewIy}vZ=Gp2AwhhM7Lyk=QDh8Vpf?;Dlo!Qr;P@`4|4*oKYTcab<^IPTO#ZTp> z@evSo7T<+V;jI>0pB)X@e!!k9pBn+?DD|$G%;FG}cz_0U4WG=06-F#CF~B8e5+C+8 z;kA67t!7N(^Kv8Z$qVt{aSktA#X4`K1@cwSN>6V-&CI}rn%?+H&-cgn8DilmCxsy# z-!KE6I{JuHX5#Ks>6m&%J@LL#JnET_lG$%rRWW?rC>=r7l)ttnmY+#ew0gta+>>bi zE~Fy9pFifz59h=;DeyU{e3=u$y#G8ItvZQkwa1%BFD2oaZvZ~YUc%q@BqBz7ytBt< zF}5%P&uU8Z>EXy^Wj{TU2XnK*fnQ8nkDcOQcUw1&*`39J(f+~RQ*4JPv8cGEteN>! z_;R=Mvu5e}CAN~ee>5&$306+fWFE7RLM{6c)T=UyReDQPb6Pc^8WY*iT)c=82ABp+ zV5mHpGm8wUx5bX{Sf;BMmvy|2Hc4;v?0x?9^vT_{5(ltkN)|m$c0# zLG-?$+Rtep{BY2~S?;MgAYWYTZ^L-tSqdi9^26)+Fg}=(f(PP71Z*?VJ6HW8&F7C& z19{^oF|;(F>m_>g+cRRkcTy+1w>F)8Djyj1M{M#`vKG@ey9ii4Z1e3?&m2F#B^QmbIJT0M?`6-0{zuDqY^ zV>y3klr+)u+F!I~{((riW{La#ku6*O6oEfm%4Wngw!`>g~ zPJZ)fOisl?gBQx}+_>t?RJ>@ctoNDAnY%v)-IO_)(`X&z#9Q(nq%5|%-gFeZz~(m} zSTFKrP8L2}OOK2MovEd3 za&l*~&d}C<1LPZ;#X39U@hmj}xw9tGV@DhYi`Vf}3mX>x6pJQyfyfv$l7Y&AyQ#b+ z$8IAz&KQHfssjXX8cF9D(a6=leanfFoH-~Oqh z@LDl~OKL>o#6$ItuMcOdu@M;SF7MN9`REhF@xAu>wx0~=;JfM}OZPnWk6|1tAA!V8 zSd>4M#wSMnzAqG$qlVH$b@!iN%Yz&{oK?!Smlpr7v;S~fXulU)_Wn4}4RPQF%7@!+W_LvXe{svMDeY!*mZC;Zv7L8UK6c3O!IS^ zAqeLEWd&*!V0DdWP&aX$$Ah<&P0?VlGNvDhLwHm3c7XD6 z4D#SBcXG~KUm2|FcEp5VRgb&VK)(AvCfG|G{kpC-f7_yr6?T0chtj6rmVP>D2ot0+?_T}=e5<^_ZE5PCgw!Z66#hPet2QTMV>@q{ zxliG`R*9%x;_<$hRYAn$}6jC(49fG=r_}*W>$8Uwm_UI+7028SL*%wlL>#c<@s^km1Dl3nM*LSaS&MTb z|C?{YKz3O#k5a8Lm~R|Nb2l+(H2&|NgKz(ScUD=vZ0152XY*NZi=13sb@zv+l`7Tw zvQnk658qvI=ec6VSfkBY6>-7SiWC+k1V8ASCoFgU^1 zKmNCFBQP-d$<~e8Jt4mh41Tfu|M{B#Jm)w2I&IiBneBHh{`Y4nWNYL9t(*QaFo-Gs z_x^vL^UuE}3v5=I&7L=H`jD}shYvR}xH`zdz^I>rLH_eUfBv}=yXT*4Mcuz27h3)M zv1RLjukHW*yFZcr0RP-)*W=%-Y5RY#i+=w5dAtAJr+)kI$H@c#{d|Gpzt`peyKj2a ze?R`#?ceMF`}3`4KM(sBe}89oVgCg9=W+G+O#b?ZP>4$fm{``D?^zOpMs7m%zu16Z zcQqKdR*10dc}ITm&mbJL5My?a34GmMj^ha|WDK?F`&F|Rg2ao15{M^)prqA}p;d~h+H@i^F**UjjrL zs8M^Vj*oU1z)P=2_y+^(XCuJ=VhxI?7?Qb(04;uLVR@o6*`0F1wOMW$f61JVbaR2f zmphiF^{0zVPoTvm56tS;f(EW~!pH;e^>FrE`F!%#h!E&A1u)lb#)B4Nc(Fr>ieMjD z4i3XOQxUQmmQy96cyvvKKW{|nuptCPJj58$a5~E02f=EQ1ge!Etg_b!!lIoks;{@T zY8d2?@^V+CY)CEKyWAIgsT2z%BlPb|JyAJUhPH18^Hz;@*ziz>eLJN509z$Kd&u$d zOA5arMGF0L1;P$h@h9$!v1*DE8*jhmI}{0#w^N1wwM{AJrvSM()fnBs1C>JvtNkqY zo_8ddTmediI&7NXkOs_hhK;cfmt>XvF3B{E!eAJTPVP ze9DXO4`;Mks>YKsG5pOIPVoP(hG297?<6{er*#^He!IpG`s#qh<~pGC6~888AI48{ z!@OAysNpv|v~+QYvcpe)>GET+Hm{F!d&>eyMn%9fK>!bFbFQ6#BsMP*!o5Q`ZtAN@ zy!tJK(Sx3x(kBuPl0~SR*qu9E6@l*?#fT~F!1cNqjx8nLG~JfNB=M^r%v zzVAB?Ce_LDY2#}C@p>gZlN1>9PQ}0XlflMciNyDDeCMsMNIt7V?1OWB2e}v@#%f@z zui>YE6ry>#77nB8_>wmQtpB0IdTlwsznKt{OFDQ>j^@Y43NgDzi>arM^5O*|oG#Fy z=S6FN*+CJ^o~z-!l;bb>2yyPA8uuPAk77p; z9cDa;)dGJh$20pX*!^jlfU=;4qg992N_yl@LpU)^d)q zvG`IWglNnb?wmRnja@~!(RvH#*ESYChl=5)ThB$?#K7#17>`!0;I6KX2B(tX)Fc~j z!jveqnd}PsK9zg&E&@AWyCTDQ6!&3TIJ|?TC>vzV)y0J%+**dslVafg$sdM~Wf*E{ zYPG4GH*SdKm>IK4-|n3o7W7x3hyMe;L7)cxs}&eG(1JhvT?sx*iOk4FeANv(rkztk zRV(1THIU(bTMe47^5HdmToHdzi#C!lUN&C>tyYJt(LVe;_8u{Os6+mRV|=m!doP~Q zq2JA^{GfRf^ext6)9H?U%@zrgx@n;(`K@36UW^l0H28h9As_rfgi%ejIQ7|>uLu?5 zhPxI?SL}E`#|2Fn=}>e=%EvrDjt7OhdN^O1w~fm=8jnX_0?alQa>ptXuxx-3gX83! z^TtFh;e|+Ur{;#+C*s*^5jJP2xwX9$;qy&|>ZK~~rh5YHg2dQiE9WMkiAS4h5}db? zaKgMeM8A~a?)Bqb;l5Z@`ntkw{~qqwg=om8O0o0wa;|}vy+@u)vCUu@=Vu&-8%h~o zeSD5~Cjv36w;W#|?LiAeU%btcW6+IGR=wwV!h4C4evF+GoP!!Ywp#Fm-pX-}y-tDq$MenDIcyN8#p=-$c%yex z^jpj@f7Xw`r;?&Ztb^^2mVD$Uc80IhA=mhpzL%vGeLLx(^GepI-gAZDV=a~?hUgte zxZ>+OEn4(w%q!oCF~5-x!Ny&9%N!9}&8?4f>~|$6A8``KN&(7?eYmg_$tdq2MDM=A z+#S;tGzb&o&iF7cd3FkthKb<+F^v1b_Sc>fp~dx3t{^rUbJvLRphGa1@%$uqd=bMX z)sJgjn*~{-V$9XP~!umck zblEUH+_BT712!guYckVS&E}dpuPrK0HjXuvWuVsfN#ciT-CR z6`mdTr*v7u{yoR>NTb5UPYF~miHNeyDT>PhK%%g*4Z zW0Sb5N9p);LI_!YG8bu{0h>l5U}_2%(mVr>Dt0DzO6K;3r{kiD7^fE|ay?(9VQ-um z$8X1QZK_kTXtD(EN5i-pyA+JLE`k2CFK6m{5()=bG~TG@QjHR^t(_Fy;$vKcpRwqh zCPiNN72Lo%QCPV^hSt-Eaz93gA^e#P7b}`@uLcAm4v+F_5G2YPfnSIt^l!qFf(#j`4`K(4e2Mu=YT~eU!qQH3FH-YO^k%>VE1-RHaox5U~h5V-i zTpF6ijnB)%f^|Y1?v}&p|779nHHNuO4!7$~7G5qAVb1R??zScijjKdR8lA~Czj+F4 zmWy%db_zH5TqZizh!J%R@r0PG~FREBdQi_&oUmjqp&`*5Ze$%yoHMTJtpv`g9F7{s}AgIj9IP4io_23Z!vOQcc_o^r~EWdpOXV4TXv>4%;8Et*1M|>_0H4vlI z`b^FtAqRb&#mKyo%&i`rja9$IxEB-4IZZf)St1F3DnhshrRkW|+7;a z6D9I@obn z8cdfR#As(VzJ_S(#rc2xlw;pBxJ4QHxU)`xeDhq+=WPL&<_T~*|1=jAR*3f|Lg-KB zbK{;BBKfcoleXk@Kd%*H>TMy)U*vIn_Z9-22(jyPxb)Nlm?VhMIX{!T>6ef0oyEBN zHH8~#ei|N1F+Tl{=k`p?#pwnT{5l!IDZgdmy))~zZu@grtuj&aM*`mkI_|eo8v3)E z@W*u#x6k1u=604MH)ki8ZXXY8mRsg^n$0QOMWfkL8CH4?0OJ#4tO<$WtmmD^j~8N0Gz{WiR_CDW1_@pWy|@uQve4?L1g=+9 zTmd@^o~&T!W}c9n=9dE5eODMB*vqx=o`{ymrC4OWk~{AZgDvJVREVZ>JHLm+^MVYy zeTQ+g-vpz4zZ^w*J-G_T2@GkkfJbRZ&ezQsYvL8?lxfI)8SD+)@k%US)`CkJ=!t1X zN{kC{%K7hg$E(>Y%)Qc>yZT6nvPu=Y>}o{X{A|1DE_#VdJnzsLs}4 zS+p7pD~qvcEbAQ$)b((7bdTr!YtEwYOaY3fo#d=WokyfffXzlJoJHMvbgK|xL|h8@ zeLyjij9HC0Cx!EEUW_R$Z;$Pq%w5o)M-0m+MtzdFWku(p`Xt0=K|D7<_ACT5Md&>) zhTA&j4BiKe&}&%)m*_9l0rCsQIDf#C8*FkK`vyob zd#{EY;*x{s{t^tZlyPfYokC@2SF}wMa1*bjB0JU--Wubzd%bC?_rYQ}R@y@C)?A%||*FfJg>zA##_#19`;-tbTf;YLg+?xCFrVi-^I-#C}l zG~tpn-H_k6KF<4AsJX5_<)~mdn~czL6$>ix_pT~KY+sAr4b60!vS1$ zLI4&FXIxgdzT6##^R#3IB#uXp%gnb(|RFzG* zZdcvWaeRH8=ZiOTg-`Fn(N}cW`!dYmj+Ch>Y{L-1^dLJliV5 zo8VpCHT^xD{4GLP@h&cH&Ry8~ig9hXE$4IMHZ(&eXg_}kSHAluj-QcWuEkdFK+o$) zTjmOr_Zzs&kylXg$Q3c=tGVq4m6&fY#l6atjR{g4F$TV4dV`dN{7Q9)~6^3 zaFZ*O(Xo*VpM<@*&2JKr>Ziiea8vH2O)NGHW%#^dxV?PtT-k_Q*!)9+t|jK&rDxaC z%G(vzzk6_n`>z6nq|glN#;v$o3D*KCQulP?&ULzsfVnc5jBLj_C0)ef>oT~nZOz&E zpNGpPITkuK<9aFyKNxrVQPYsKNXo|t2L)zuKXAKM4!pl9@M8ZvOg))__AW|HDtwB| zZYc<1IA0xBjX#-**dbG4Yxz~oH;IE6i^D^q7qK%l3bQq8e2YJW-dn>l&`5(%KGzY! zaPA(i!N+IMaEsxbH$sbwkrz?u;fst+HPU}y`Mba5lNu2xa7JQf%~fb}~ej=nmHcjEh)>o3CmgXx&Q zw+73nusUsS7DC_NL*X+q?l;SYyysn9)=DsJTpp5I-iCgpD?ZuhVqM`4g_ssH7zM=RQ{82F2FuX!XBZN9Uc$@%a?E<=hq$rD_`vdK`!jCH zXjghip0=RjwI&Gr>liBaNps^Ci-R-ffdnSqwC=n905l#N2U>589TE1Ec zgI-A(I$wqM@+sgYamdJ4!OMOmW}8K$g}E9VM-7Dq!+Ebtjhtb-5YBKu*+7G=X&$)A zaQ<~jgPMF>;LZW8(P1vn`)$hloF#v-&k-^*&V+XHOPV7#H_0;{Et_py7k7`IwF zSuK56jdw;8^sCcZ4eoLexaj9U*=$b{ zcpJvo1q4hwVqbuSGzH@GjSG$!Q0uXO9(*NsoiyJ{2mz_!N$v8;$-&DrClK3e6eLmyDSf)7^Y>7{j^iK{X27 zq+8u!IDcY&$;SxwNSd?oVg0g+blqf9}7rsXor# z-QD%REgxb`ssPIa-Sx*u*P`zhA%b6O^&6MgqKutiqdBF1YT-ldC==oGT8Z8y^Z{mw z8CO_yOuwe%ePoT7pfk5mZ#$|Q9~eh>#cHcQruAJIhccY)*XpO9yafZMVY&FN(z}@5 zzaR20o($8V%e=MvJce`KKn(`Z9Q1d;<2nsy99XX}VK^r;K7==&@pr$UrasP_TX*Jz zC)L7^)fKnTbm60qJVN z+VOkVJitfRUxcqV{a;Ts*jhQUlv*{^BNJFpy5Ba&mqy;l4|-!i;tq`>q6ZTYb8#c1uQz}>a&`EGti z*jJ;#(JjV&v7`V^rYmu8OlN-lnH*HdC=qz2D{sFr6Uj|faDpknyI(5au^KGFxhEez zH3`l0Rp33$`S74POzx=0G;uF}#_(ud+NH*3cQd{x!`Y-rjaQs>T?;+2j^?xmU8{?zR3vmQ-(S;klV+0Jh$ zeh8IRf&<;Q@LwzMLp{?KmxpfPt=+3(-c*V;{2KmF$Gd1nQgjPk#s9Irg>8pqxG`!q z9~5{U*%opv$XLf)dS5{^#y{>DxQU)?KQaII+(x8aK6QO z{t<@L_orOSeGYp~BN1QT&6(sZdp`(D*R ztK-nmUyVzbqIk>uQLy~TxX^;gzc}Bu(ZIsUjSpftx6RVPpp z!tJYAZ?1qv=L+6GsT}Qt6nJe?$vY*Lpp^0NohvK(8BNY$^>HPf=Tz~%3kuMU@oaxo zReWwm4(`oUK^R=cU$@M}kTex+rB(c~cPZG<^p)-NtN60FiTH9rjWu5@dEtmS{HbF5 z>Pr61$tYwG*WiU=CBJ%OIOejv+IsY9K9J$um+3SfG0}V#!};9?EsE{Z`D}*soB>)y zCC2{UFJGs{%w8${S%!0qDO%h)7yoyE<(m39m-qe5OQN1(?PcaGQ2*q$$DiX^gbetP3kedQ7?9}kQ*`_!!KA|mH0+Km1DX`*2z)15+j`G3*{+>)PS7Tw_%eh$B@_tbj|r1Cb6D( zonb?A?s^&XNr3?~8q$HUCEyruY_hx|H5hjW&QVJ2o!XFk-73I1=0ET-YDgxxb1?L% z3c=?Z(9@Bbcv8di!}bQ$>23;6Gwo!;X9GG>&Tx)ZW5H1aI@Tx-6)iMKd-R9z?-+$6 zyEI5C{>_{92uJ%18aOO`#s@H*pE7Pg&ZB~_WH=XuYth=Gn$P+N=iN+anO*gFe*xRS z(){*coH+1A;j>Z+byj!s+j9mLrAk)2cPE3d1-Lm*g)d3n=-8titY&%m;h(N#Jtz|w zTB{L_t|UL30vA@BeYEdFMRAG9yRC-aw=rzB~yHShP|{c5(~(6$ksVe#CzL<{+F z1N!H6`Nj7C%Re{TG=M78Uf}*60Zx?;rQc0oQ&Sag^5aDQ4bc8tba@(c`=qE3=1)Oy$YsJ#?Z^!9LO)JaOA>h+HR7GPmEi56*7tv zLsM`zQjLtABdP9SB1Rc9U1abG`lE}5y`u&TUJj$M=aGoMtHJ7|q14GG3?HUy(L1)+ zU!0$&Yw-*^NWt}NyGMslY-BG)>)8GBHzB-8Fx>6CtxwNGY?}nKC-FN6$ zUr%w7PN6sR7;X;*7(a6sDPFvReTfj^dGl!4r?=o3hwNOmfF9Po1sIRf`}!j4`Q!~u zj!DpS{u1&W{u&EcxgzV}Qqn(o0qbE>v~gWV%e&UW_dD|=IW4DoKOVz3PlneWS5WJy zhv?2Y;ld6pC{13CW!)5r2v|-odv72uLV=T)mQg2%3M?{L!YF?!rQ9z?lRzcPjx3?u zXU||-I~DdAEhc5xLfnw3P^(!;k+*VS{aJ;&Z#LB68{@0DG2hFY`Bbtm1r4vVzBqd> z>Bl7EGRM3D?dOokv{)QZ(%_E$EDG_6#87sYeY`S*8kvTnnNW-4hbEC9i{}^bnGfXX z5W388zP(cii_|fc!El~8jA^oChyLB4xl4yxPFA#|yEh8g>M+^RnoiqzqKULV&J9)`oQl@1a zt=~^AC2wJI#1*Ie9-u)zSj@A2#3AA!H6HTkpEo=}j!tD=^}R0~uYfKwpk=zf1SizU~*`m9NC%6Z=S1a|Tz( zsIXhHhjw)-gjW*lqlLTa8lQt%taskG*Ou;I%z(9*8p~Jips^!TP})R;w$|Hd)UyN_ zvfepk%ogfV7lX-msB8YhS1HLu0RSIfwk;T$qrhmK#TQ#r%A zE%UCeF0}cJ^G2rq-7lH(ci%Wg2VdGo1IKt^CA(*1kNxzNba;BNKF+v(fL!9=;^b=q znqP9JBX2$+p7EIj){Dq!*C)6zuNU`HLTP@V@Z-D~i*HM5SoTL$rAsh)wVe9Bdyf>x z5zSF4$lm@fF55}bW3Q6VZG43#<7DVqtEB5M>(HNh2c6C;sfFbe^h}k*zPFNIPrr{v zixr5QqoA*nn`n4f0pn?MQuVCFKGxrT?JlEJlP=&^wG!#It~90k45qG8!7)@qmOl$H z?V1Y1mW!#AItMf7t1+ath&XWu!p^9fS4luAH&_;C8lFvK7n&8DBVK|o_(qZrB4OGT(KKVh1MN9UPrLhn4 zf^@i@w1;f^dqQ?whYN3Ybn~nhiGAEKYOR!Z9oInHy1pMNtBH($+P=pJ#w|B`sV0%( zXH0%A#H^m~)T`tR-mo6<@@y|MH2sQ2)nZVd57Epo(3MHx7U4%?$4_XI?uvJv0%+*9 z_n5AbBDh5$eein&HRE_iivwxc+ZX8AQ4Z7c05WO#4BnUJ*jwyRwSVs8#U2Hks{E+M zhnslAI5+=3zGSwl5-S8sT#NOl6Z0?NT|?%nGxeg^WoHm3QemaWg90iF@QL*u4}Q53 z&CbE{V@xM?(9w+{8La+Mqx`jo7CR&}j#PuS2h|j5n1BdY_gXYj(TXq8sAAf*bA*C^ z^ou}W=DSeNm(x4H5ae6yaKzu0ycy12PwU`ncl0mLM<%-A<3>4YuDfHOUI();3i=bx z&c+|iW8>{Z!cYaeFyEK-fG-VTvG(CeeVlDQJ?L^qEi#`AP`%QhtPVZJ;aftin;$~= z57)t)=^cOiL{O6v&!Nj?p2FeL);YkCCgc^Fje4s`#8#bU4e^nOfx+e zLx$Oqsg~&ByNnD!iH#PDzimusKSFj>=G)tW0CR4>k6e z2UDO|5;l0M(WF}t4g3)c&*mC*cL*TkQ<2cII6H97k7RkF5WLaAafUDLX&eOgCM_nP z_a>Rz4^>rKq%QNKx%0hYH;s8SK6%jDDIVCDQ9o{b?eZie<}vVTn-kJTD%B-BTtg2 z5+i+U8X4L!j%d3CySHW1Ij1|Q9_Nat8CfL0cMIKryJFe&9C8Y{ftVaA);G*0vzu3O z(w6lp=W-}DrxI%!Z~ys7Hho-Kj_r&ux~n`zxx!McThDs!&(JdLkZ#^r;%bEs!`lat=?pnKu&&_lRWBOj!T2-g1(_)dprg#o zRxGZMGew6{zs2WabzOi7+40nB_67W4^>g#6RI)6&gzpLwPE5<9edEe8aFZBE9_G=U zoO0|QDM46hA+1?gj+@^l*dZpWn^*?t99OtX&(Jgbi!j{H`V^nDWZ9z>RvnqY$nz`> zWPS+BmSNWvc?8D>PAJ)ILDx{tF@-Zxi=_5l=)9d~@jCWFEuqcO; zAE#q-p%Q*Ir)a|6lh_0mw#>?)D?Q>-Q=meUK9!PEqTs+Z&}Fld>ANZnZl~0^^C*$V zrLeeVIB)Wer)?em5&I8syeXEnS>9-C&TyU{O<&wR@Z68(>S>WQGgOD=%&YWeT{t=2 zV}1>p4%uFz^k^pQ^?x(p-Lqiodq;+XgKls&2_Pxs4APgl;lK@l8e_)JBCq;556BOv zuCdu@c1eIKtCHw@2J?;t3US^$lN#?TMD8vTzHd2AGY9cdjbrsjd!kS6301$vc#?CD zE({_(DUe{f&|1*E>JoTTQj)^0gU(xgoB~MJj+e!s0EcAp4NhsQ{ME^sl zX%ORr-ZQP_Te}=GIT(diYNkh*W>R~fFqpSz{dHg(oqrvKjXsPoQYF(Qfj^?UXs|OV zk>;>Df?13UDyxVi`AknJ*qO);iXjV@Q@vRq*E~6rTHe$^ZlOc-HQ_XGs|rV>bT~IE zlp1$cz=8S3R#*np?$1&jiF3oTxB&9-lS4iI|Bth;Fqljq#-ox1P`6B=!)7PpBW0T4 z(+ry1JQZT5na&%MPx;2_jH6;cx*=zXU!Q>m7nvX9TM0dWl7Y5D2|g>z$U8j)q9Lvr zT2(=VE~lek1=CPUtLW{LG<>s_B4OJV(yU9tv0qX=KT$;knw*4-PKLUtmud2b1hnkS z^7isetaggUu0lBuk1wHac~R)NLV+#k&rpXa;W+n3fqs4TbkjT(Ud+37WnUf*b__zE zIpZ{LpQ7>tf6UEMp{-{cHLdjlW;37Mp_BBqzZX=uSS>A!r=!gGRb#8cyRv9HIE48? z8UNE^K?L1=rN#x77ERlQQfJ0XC7LondCwryFs)`{st%sc{uK08j)T+O&}XnO^$KfLQBDvW|_ztNlXEYnx2N zpT}awU=i9xW>acS430h$K|GMB`9aZm$a`z}9f{!@j!O?B8B;7yCVuv*ejhe0=e=~`G4n8u44@LmG1Tbm<9zeJmU<70!`_nuxIGD^k>#jD28=l|t5Vw=jSZec7qro#^G=S6)##~^hUn*-VwN}4$_uwb>cFgc#)Z-_>My9nWZ zGRSa36w{K#xafbH3hzf?HOnE>bBpNx+HfpoyoYvV3AyKoBB4%#pz@2fvRw$yF>n1P zr!pF4AB1HuU6D7YjK04MK*~-j*0#P#`XqmhVm_j)f@0d}?S~o6Bif<=8EWL`iwVzV zXtSn}ZYKI*qn#W#7v@sWGH-ajW@pdPO#1!J3olt+6>OA30mHm-{DT5NyC#tHa!-tK zRAT0WXj&rn0QZIY&a=ZPB*&d`Cd_ZJCWs`T-H^b%TZ5+iQN$!StYw~}<43({l~RXc ztR@uxcB5C-S`5}{PCNzzpmto8YzEgzMmx*+Y zaRL*We?$8`lg2KOKxds8)gk%xoB4dQyRi9`s3KZ%I22C75@e*ECx7O1i)VUP!;>Xc zvo8o|JY4ZCvV>Z-2}DwJDHar;C+@aC(p{toSFu{9+z%(2hWNojPqz1b5$3@1-Ss?b z^UDVhU&>JZ_7r6e@PXA1IeI-yrDdDEar%KA**6pELIlHktpcStVra=LPh>D($EQ!> zw2JeD#}Xx?xL}$S=z+NvtR^q=BhO#%XknwmWT_YVZ+FLQ#z%R3xKa8wH|9f8zJse4?HPxAjLCr4+RrPg9QperWZR`DZ?7QP~n-EZZx? zyRqriRpkTzz6`f#pQM^g%=5fN&Som&=(UMA+MJiedRZhXc6(u>CG+JvhET6!=F4UC zL?825FUI_eTEZE2HXL(@%vFVB-4)dSiyOj! zt1z{vnhqtqp|}UD6}?n6*uahXE7kSlJk?r5l^?aJ*-&4%+V8!Z?24mMED>M~9O)RV zky^A8Vy(55v<%xJ?n1m-=}ukyvsn`6dFBm+sLw2xEBr(#HjkmzGsDrzM2sSn6dE=# z43_T9*ReK>#(W8ZSyKtF9Xw6TbAoZ!QGyQx3+d9aAas2oL0U{9RV@lc_c^W@Hot(r zS_j|`>)#Fh^C*2Os~NgW@#%>UmvnYed8FkT}=?6P>u zo#ca{b8NjkivGBHW9e`?rn-dEx>sJ<9?0e_A_8dfA~x^YOo7ply=h;*CsrL`vn@;9 z$$F?K0`4pD{Ii-?#dzQao4Md_%c*~F57@C<-L8o%nZ~+f_%IdP z1@-vqhI0)6VLueqUFe2~%v0y_P)VyQbr{O@-2dk1ho5Fr>f1;}ItlP5Z8KdDi-hvC z02N)G=tt*B%yD2|#3gbn+!KMfFNJu$-IESRhr@T92xFRuQ0FsYSaC-L^OLc(u{0E` znC4O!pF&poAuM*7mt?~!+87axSG^=?CC;JG(jeStbDa~X=Tf^Pfmr)Of_r^(=%@?x z|IByAlY~<=B81IerMTiemrlPf`@x2JKYEQ#rm04L$T}c}q9~rq*7#z;bty))iKg6C zAH`&A$t1?}4F25aU^|1Zvi{YKNxu8|Pi3-E3I0$NcXfews|UVC*r z#V?3p9zr43BsL&NGBujAp984@<~Jn$-)9rqh|ik+;p0jAAqQ*OglJ` zN^#HqF?y;i=1)3FRs;N*$AkG2*T+-%K|iej;tJok(ZpTwMfD;nP8z}_2Y*ql}IbPZj6?gjVGa%4rz=^@K4qa2y0 zGfG0Q-h1MDl^lY1F68Xui7@6HX*pL+X11O%TgSZ9=^`3_*8@M9kMzHBZoW}Mg)=>1 z#p;}8Eo8Kx;s250|6iOFoy_R*^ayO*F2Hx|iPYd%I3mjgNXl4DL9%c*cOpc3i7k!& z6^7QVPc)4YP`hnmur*-V?od-DABvSst8J(BrP#Kin0sCX>5y=GxgZ3pK4QeLilbCP zFqR9&2;G-Nr=x?g=@!c^xhE<6LLfYu?{Rozw*DT#&Uy(BzE7ZKmH`OA#`x{mu{6ik z9|`?kaeY!04Y})wWzn&by#Hg6l~9!P1C%(rYNMU!eDI?~=3uNDher)7>%%u8GN^EsJ?x2A9ke^efm4M;Z5`A8?5N zjPPO}U^&cooS?lQJu!v#9;SsZq!W1J9K+wc+=VjCJkjld9FK~Gn3=39w>wU%ECp9242>ZcNr>#-E4bov{#jzm!_dWHZPtheWpD zLraT8@vBUT=zAhcof-<00U~U=tR<%`7Q{yrel1N zY{2R|WiuMF+6UJfuz4#tQ;J;g!@L^;>^wS(rmyjVxRC&l66R3xN*{2I1?Vtw3steT zSrY-gCmtsmTQ_XV=BvN5GkP(rb=g|^&6Ac*_Q6ngPj+GeeKhjHRrb9il7p#Xg*W8y zT+j?5bXdh^obI~d*0f-HHP;&h&%5B#K$c_Md*jYY7Zi;0BW;Zr#(BA5lGcl6r+G2$ znyt6EQJRdc*SVnlhKi~-dqK^);IN^L-cDul*~G;`HXm1T0+}r~(ufF8SPv1@i*xaztz^b> z%bVG3Uh=0Cb-Crq=Go;qVc+vFptW1RfP-Aw;E zb{IW7XlZ0Po8QekgwwColyr+}KyMu3l&7S|#%>tU&k=6XGHS=TG2PmOP~8+$BgTzQ zb~}KwZzpKaO*g2D9AI_GkxbYu`_~WqVc@Wv%GkV#X`lVjGOfz8$Q>ce?eXTta=O;d z1Ez|7xPNsX-8<%ip#^)9={%jLrg<=~)e&Ju9Id+MfeU{eF>(7WGJofR0}jsY?@i37 z9~Pci$mUH_1CP-9CTz|kSdLByHqybKo~Wyq)Wi8X{n0Nm^n=d;0k-5#e~D()sg z;}ysGFx~?TFS+3B-T>Y*%MEfv7qsk|$9Fr;>cgkbXl+-+=j5v4KlM0DJep9CQ_Ne@ z(g_hGdeHB)>};8Q7z5jnr!MVenDX%eZW=G7y;E3@e7>K(-Wy2MUJg!d5A)4C$iJAK z{~hh zU+V^|c3aV;doMaR(H-<^V#_|h|OeKzOYAiSU+mE*aOnRM=()0 znAWI0@ZQC#UYzfEFpb8wW_g?Wxc(c@C+x}#j@SetgXQP#g6;ZC+x;Pu3vj&AS^e=5 zzBuJ6V6S&`{^cBRIG+$8W%ww5_;Kb}=L86`+s-Gm+H!CJdq28(@K?_=?Q!r4q=#hl zU28P(?sFW~9Ut)PJF1zN`zV}znh@uq#C0u;)$t}&9mx7)p95&t-h!-FGTpo9e%#{w z(;62A+W+2*=6eUz-B$|i>az!%*9>8rz7hw+cH>X_AUd#tdB%_LLZ`fbq?)cqqas_} zyJ1d=W0|k>fGwUVy3)HoYz|v#i)D-3(|7i_97=!MVo_WR+If@l82P)9_1b`HbZ(I4 z?8d@}Z+W*N?l|z!4vP-5zlAc|9d~xxvp)GNf8E|4u6OJae(ndqKiVBmfsR;L{DsfU zbBD=YN8DRtOz#$Ypyc-n#^Lv(;cO;!Qe$B~oOiX!h0n1tnCS#)GJ7Qk2C-WAJ;Qu< zxmAQiAjFe|7&w2xq^pts@Y~Dky5h>h7T~DRnbcR^9MI9p6`OE@mhWmo74UE`#6+6QutXv7(e6ag!qaQejW2= z_w0BCTZ8WK%b6e6{F5VgpL@pNXPW8_lY{V=zU3{xG7drQfF*a|^H!|is@=XHNzLB! zbDnEpm}`&Ina}u*3O3)Mut&#d_xO2?^Xy$^5AU)Heq*T)k*@nuDJkLum%71J=YWLY z8GL1_8{XVFfUa+&dGmhmFrVXyYR4@8-XAwCpY4cGlT!GAp{zG)dI+QD@!ZyG5ZAyf3Rid*!}Hp3 zTyi+>uV(%_*(b~ug`(SiAudR-qpTnppO=X+`F=L62M3{J9_t64JTM_P02K|zxV;`Y z+`%91**ry<>mnC&%Dkh4F9T@LA@27|J>HN-f4)W~Tv-XPnzSbVnuTl@BWAAo~{=q&laF?KQ zY?9*RUFxS%uA-;kN9bngg?+cI(Z9ny;c+|i&RAbWZRg{{7foUjm{{Wc2Pff`%mcH` z&*OWZukd=U2R_uEh41|k;nO+~7)4rO(Bv@T9?d$cew!oEFi5bbyQ=ls9G$deg6>rE z6kA&$aiOD7=H`i)^qrbL%R*>RJ>xE|=P)p7hw!zB6xz`jaM)|HFlr3_4)h)!Yu+pP zP;B2DV1-9xHwh^dr8FPANP0+9p|61yKIYc2NH{1|8%kkIea;u{&I*%uOQHTjj3YD7 z2u}3((yndeMtb;ursfxqOCPOqFWi`Qqu%mlVnH;Go6j1yN1?Zs1Ush8W||OH*6b!tqw#%Wa0Ec* zIO#~K*W*0OpL&wimu??r&||GH5=n2f?${Uku@rCo^d>Li$xubhDj6(2C3tW0S&_Ar z-XnMNnEx0g#05(6E7=-}iF!hpnNn=-ZVfAwnZm9CQj9x)5ocVc3g3oF5t4BcW70

    E{a-cIZF2hj4*@PF;{a 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/SONY ILCE-7RM4.dcp b/rtdata/dcpprofiles/SONY ILCE-7RM4.dcp new file mode 100644 index 0000000000000000000000000000000000000000..e473fa4968a4bb0cf7bf17e466e162c77cc682df GIT binary patch literal 65358 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 Wzk92EzYh5K=V<+V?Kk}U_x}&TIpX#J literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/SONY ILCE-9.dcp b/rtdata/dcpprofiles/SONY ILCE-9.dcp new file mode 100644 index 0000000000000000000000000000000000000000..c073158120918ae484fc3a38606495d193112e37 GIT binary patch literal 65350 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⪼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 Date: Tue, 10 Mar 2020 14:41:29 +0100 Subject: [PATCH 362/453] camconst.json : added FUJIFILM X-PRO3 --- rtengine/camconst.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index d50e050dd..507c782b3 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1375,7 +1375,7 @@ Camera constants: }, { // Quality C, only raw crop - "make_model": [ "FUJIFILM X-T3", "FUJIFILM X-T30" ], + "make_model": [ "FUJIFILM X-T3", "FUJIFILM X-T30", "FUJIFILM X-PRO3" ], "dcraw_matrix": [ 13426,-6334,-1177,-4244,12136,2371,-580,1303,5980 ], // DNG_v11, standard_v2 d65 "raw_crop": [ 0, 5, 6252, 4176] }, From 5732500e2fd0b4c7c8b8744c511435ad1eacbba3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 10 Mar 2020 16:42:47 +0100 Subject: [PATCH 363/453] Do not use Standard light A if D65 does not exist --- rtengine/dcraw.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 7f6e2ee31..ac47c67a6 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -6898,7 +6898,7 @@ it under the terms of the one of two licenses as you choose: break; case 50778: case 50779: - if( get2() == 21 ) + if( get2() != 17 ) // 17 is Standard light A cm_D65 = (tag-50778); break; case 50829: /* ActiveArea */ From 6490c7d945bb110fcf000d6571e691d3987b735c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 10 Mar 2020 20:40:46 +0100 Subject: [PATCH 364/453] camconst.json : added some dcraw_matrices from ART --- rtengine/camconst.json | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 507c782b3..27066897b 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1242,6 +1242,7 @@ Camera constants: { // Quality C, only raw crop "make_model": "Canon PowerShot SX70 HS", + "dcraw_matrix" : [18285, -8907, -1951, -1845, 10688, 1323, 364, 1101, 5139], // taken from ART "raw_crop": [ 96, 17, 5248, 3932 ] }, @@ -1270,6 +1271,7 @@ Camera constants: { // Quality C "make_model": "FUJIFILM GFX 100", + "dcraw_matrix" : [16212, -8423, -1583, -4336, 12583, 1937, -195, 726, 6199], // taken from ART "raw_crop": [ 0, 2, 11664, 8734 ] }, @@ -1350,6 +1352,7 @@ Camera constants: { // Quality C "make_model": [ "FUJIFILM X-T100" ], + "dcraw_matrix" : [11673, -4760, -1041, -3988, 12058, 2166, -771, 1417, 5568], // taken from ART "ranges": { "white": 16100 } }, @@ -1774,6 +1777,7 @@ Camera constants: { // Quality C, only raw crop "make_model": "OLYMPUS TG-6", + "dcraw_matrix" : [10899, -3832, -1082, -2112, 10736, 1575, -267, 1452, 5269], // taken from ART "raw_crop": [ 0, 0, -24, 0 ] // 24 pixels at right are garbage }, From 1693d66abc1e6ad4ca30925a465b995f143ac0a7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 10 Mar 2020 21:07:34 +0100 Subject: [PATCH 365/453] camconst.json : added some dcraw_matrices from ART --- rtengine/camconst.json | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 27066897b..e97d1635c 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1395,6 +1395,11 @@ Camera constants: "ranges": { "white": 4040 } }, + { // Quality B, Matrix from ART + "make_model" : "LEICA D-LUX 7", + "dcraw_matrix" : [11577, -4230, -1106, -3967, 12211, 1957, -758, 1762, 5610] + }, + { // Quality B, Matrix from Adobe's dcp D65 instead of the internal in Leica's DNG "make_model": "LEICA Q (Typ 116)", "dcraw_matrix": [ 10068,-4043,-1068,-5319,14268,1044,-765,1701,6522 ], // DCP D65 @@ -1417,6 +1422,11 @@ Camera constants: "raw_crop": [ 0, 0, 0, -18 ] // 18 rows at bottom are garbage }, + { // Quality B, Matrix from ART + "make_model" : "LEICA V-LUX 5", + "dcraw_matrix" : [9803, -4185, -992, -4066, 12578, 1628, -838, 1824, 5288] + }, + { // Quality C "make_model": "LG mobile LG-H815", "dcraw_matrix": [ 5859,547,-1250,-6484,15547,547,-2422,5625,3906 ], // DNG D65 From a801d768ea6590a3eeb74cf035280f89db9278f7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 10 Mar 2020 22:13:48 +0100 Subject: [PATCH 366/453] fixed lookup of camera matrices for DNG files always prefer our matrices in camconst.json over the embedded ones if available, patch taken from ART --- rtengine/dcraw.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index ac47c67a6..8085e12b6 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -9077,9 +9077,6 @@ void CLASS adobe_coeff (const char *make, const char *model) if (RT_blacklevel_from_constant == ThreeValBool::X || is_pentax_dng) { RT_blacklevel_from_constant = ThreeValBool::T; } - if (RT_matrix_from_constant == ThreeValBool::X) { - RT_matrix_from_constant = ThreeValBool::T; - } // -- RT -------------------------------------------------------------------- for (i=0; i < sizeof table / sizeof *table; i++) @@ -9097,6 +9094,9 @@ void CLASS adobe_coeff (const char *make, const char *model) black <<= 2; tiff_bps += 2; } + if (RT_matrix_from_constant == ThreeValBool::X) { + RT_matrix_from_constant = ThreeValBool::T; + } { /* Check for RawTherapee table overrides and extensions */ int black_level, white_level; short trans[12]; @@ -10541,7 +10541,7 @@ dng_skip: * files. See #4129 */) { memcpy (rgb_cam, cmatrix, sizeof cmatrix); // raw_color = 0; - RT_matrix_from_constant = ThreeValBool::F; + RT_matrix_from_constant = ThreeValBool::X; } if(!strncmp(make, "Panasonic", 9) && !strncmp(model, "DMC-LX100",9)) adobe_coeff (make, model); From 4e03c3e4b0813c7123d22d0fc572d26d30118a3a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 11 Mar 2020 13:49:42 +0100 Subject: [PATCH 367/453] raw crop for FUJIFILM X-T4 --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index e97d1635c..150d5d455 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1383,6 +1383,11 @@ Camera constants: "raw_crop": [ 0, 5, 6252, 4176] }, + { // Quality C, only raw crop + "make_model": [ "FUJIFILM X-T4" ], + "raw_crop": [ 0, 5, 6252, 4140] + }, + { // Quality B "make_model": "FUJIFILM X30", "dcraw_matrix": [ 12328,-5256,-1144,-4469,12927,1675,-87,1291,4351 ], // DNG_v8.7 D65 From 5bf4da1a84c33c85c5a26041315d58568ed8ff6a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 15 Mar 2020 12:40:35 +0100 Subject: [PATCH 368/453] raw crop for FUJIFILM X100V --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 150d5d455..44e01ea99 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1295,6 +1295,11 @@ Camera constants: "ranges": { "white": 16100 } }, + { // Quality C + "make_model": [ "FUJIFILM X100V" ], + "raw_crop": [ 0, 5, 6252, 4140 ] + }, + { // Quality C "make_model": "Fujifilm X10", "ranges": { "white": 3788 } From fb023e7ba88e8d15dc0ea28cfb73e34736cc6f2d Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Sun, 15 Mar 2020 17:01:40 +0100 Subject: [PATCH 369/453] Removed channel compensation adjusters --- rtdata/languages/default | 3 -- rtengine/procparams.cc | 13 ++------ rtengine/procparams.h | 2 -- rtengine/rawimagesource.cc | 7 ----- rtgui/paramsedited.cc | 14 +-------- rtgui/paramsedited.h | 2 -- rtgui/partialpastedlg.cc | 2 -- rtgui/preprocesswb.cc | 63 +------------------------------------- rtgui/preprocesswb.h | 7 +---- 9 files changed, 5 insertions(+), 108 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index de394ac15..a6abadaa6 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -778,7 +778,6 @@ HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter HISTORY_MSG_PREPROCWB_MODE;Preprocess WB Mode -HISTORY_MSG_PREPROCWB_MULTS;Preprocess WB Comp. HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift @@ -1845,12 +1844,10 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical TP_PREPROCESS_NO_FOUND;None found TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter -TP_PREPROCWB_BLUE;Blue compensation TP_PREPROCWB_LABEL;Preprocess White Balance TP_PREPROCWB_MODE;Mode TP_PREPROCWB_MODE_AUTO;Auto TP_PREPROCWB_MODE_CAMERA;Camera -TP_PREPROCWB_RED;Red compensation TP_PRSHARPENING_LABEL;Post-Resize Sharpening TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. TP_RAWCACORR_AUTO;Auto-correction diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index b7d122f83..97dfc2fe7 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2765,18 +2765,13 @@ Glib::ustring RAWParams::XTransSensor::getMethodString(Method method) RAWParams::PreprocessWB::PreprocessWB() : - mode(Mode::AUTO), - red(1.0), - blue(1.0) + mode(Mode::AUTO) { } bool RAWParams::PreprocessWB::operator ==(const PreprocessWB& other) const { - return - mode == other.mode - && red == other.red - && blue == other.blue; + return mode == other.mode; } bool RAWParams::PreprocessWB::operator !=(const PreprocessWB& other) const @@ -3757,8 +3752,6 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo // Preprocess WB saveToKeyfile(!pedited || pedited->raw.preprocessWB.mode, "RAW Preprocess WB", "Mode", toUnderlying(raw.preprocessWB.mode), keyFile); - saveToKeyfile(!pedited || pedited->raw.preprocessWB.red, "RAW Preprocess WB", "RedMult", raw.preprocessWB.red, keyFile); - saveToKeyfile(!pedited || pedited->raw.preprocessWB.blue, "RAW Preprocess WB", "BlueMult", raw.preprocessWB.blue, keyFile); // EXIF change list if (!pedited || pedited->exif) { @@ -5351,8 +5344,6 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) pedited->raw.preprocessWB.mode = true; } } - assignFromKeyfile(keyFile, "RAW Preprocess WB", "Red" , pedited, raw.preprocessWB.red, pedited->raw.preprocessWB.red); - assignFromKeyfile(keyFile, "RAW Preprocess WB", "Blue" , pedited, raw.preprocessWB.blue, pedited->raw.preprocessWB.blue); } if (keyFile.has_group("MetaData")) { diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 50d48733a..a737d5776 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1527,8 +1527,6 @@ struct RAWParams { }; Mode mode; - double red; - double blue; PreprocessWB(); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 7f7fd1543..a37e94c62 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -1237,13 +1237,6 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le // Auto WB gives us better demosaicing and CA auto-correct performance for strange white balance settings (such as UniWB) ri->get_colorsCoeff( ref_pre_mul, scale_mul, c_black, raw.preprocessWB.mode == RAWParams::PreprocessWB::Mode::AUTO); - // Apply custom compensation factors as specified in params - const auto ppwb = raw.preprocessWB; - ref_pre_mul[0] *= ppwb.red; - ref_pre_mul[2] *= ppwb.blue; - scale_mul[0] *= ppwb.red; - scale_mul[2] *= ppwb.blue; - refwb_red = ri->get_pre_mul(0) / ref_pre_mul[0]; refwb_green = ri->get_pre_mul(1) / ref_pre_mul[1]; refwb_blue = ri->get_pre_mul(2) / ref_pre_mul[2]; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index fdc3cbe52..c7ab5f1c5 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -609,8 +609,6 @@ void ParamsEdited::set(bool v) filmNegative.greenExp = v; filmNegative.blueRatio = v; raw.preprocessWB.mode = v; - raw.preprocessWB.red = v; - raw.preprocessWB.blue = v; exif = v; iptc = v; @@ -1199,8 +1197,6 @@ void ParamsEdited::initFrom(const std::vector& filmNegative.greenExp = filmNegative.greenExp && p.filmNegative.greenExp == other.filmNegative.greenExp; filmNegative.blueRatio = filmNegative.blueRatio && p.filmNegative.blueRatio == other.filmNegative.blueRatio; raw.preprocessWB.mode = raw.preprocessWB.mode && p.raw.preprocessWB.mode == other.raw.preprocessWB.mode; - raw.preprocessWB.red = raw.preprocessWB.red && p.raw.preprocessWB.red == other.raw.preprocessWB.red; - raw.preprocessWB.blue = raw.preprocessWB.blue && p.raw.preprocessWB.blue == other.raw.preprocessWB.blue; // How the hell can we handle that??? // exif = exif && p.exif==other.exif @@ -3350,14 +3346,6 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.raw.preprocessWB.mode = mods.raw.preprocessWB.mode; } - if (raw.preprocessWB.red) { - toEdit.raw.preprocessWB.red = mods.raw.preprocessWB.red; - } - - if (raw.preprocessWB.blue) { - toEdit.raw.preprocessWB.blue = mods.raw.preprocessWB.blue; - } - // Exif changes are added to the existing ones if (exif) { for (procparams::ExifPairs::const_iterator i = mods.exif.begin(); i != mods.exif.end(); ++i) { @@ -3414,5 +3402,5 @@ bool CaptureSharpeningParamsEdited::isUnchanged() const bool RAWParamsEdited::PreprocessWBParamsEdited::isUnchanged() const { - return mode && red && blue; + return mode; } \ No newline at end of file diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index c63119e25..8b4cf1241 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -701,8 +701,6 @@ struct RAWParamsEdited { struct PreprocessWBParamsEdited { bool mode; - bool red; - bool blue; bool isUnchanged() const; }; diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index f74d40e4e..8c49323c5 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -1008,8 +1008,6 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param if (!raw_preprocwb->get_active ()) { filterPE.raw.preprocessWB.mode = falsePE.raw.preprocessWB.mode; - filterPE.raw.preprocessWB.red = falsePE.raw.preprocessWB.red; - filterPE.raw.preprocessWB.blue = falsePE.raw.preprocessWB.blue; } if (dstPE) { diff --git a/rtgui/preprocesswb.cc b/rtgui/preprocesswb.cc index 1f54f7672..170371318 100644 --- a/rtgui/preprocesswb.cc +++ b/rtgui/preprocesswb.cc @@ -32,10 +32,7 @@ using namespace rtengine::procparams; PreprocessWB::PreprocessWB() : FoldableToolPanel(this, "preprocesswb", M("TP_PREPROCWB_LABEL")), evPreprocessWBMode(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_PREPROCWB_MODE")), - evPreprocessWBMults(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_PREPROCWB_MULTS")), - mode(Gtk::manage(new MyComboBoxText())), - red(Gtk::manage(new Adjuster(M("TP_PREPROCWB_RED"), 0.05, 20.0, 0.01, 1))), - blue(Gtk::manage(new Adjuster(M("TP_PREPROCWB_BLUE"), 0.05, 20.0, 0.01, 1))) + mode(Gtk::manage(new MyComboBoxText())) { Gtk::HBox *hb = Gtk::manage(new Gtk::HBox()); hb->pack_start(*Gtk::manage(new Gtk::Label(M("TP_PREPROCWB_MODE") + ": ")), Gtk::PACK_SHRINK, 0); @@ -48,41 +45,16 @@ PreprocessWB::PreprocessWB() : mode->set_active(0); mode->signal_changed().connect(sigc::mem_fun(*this, &PreprocessWB::modeChanged)); - red->setAdjusterListener(this); - blue->setAdjusterListener(this); - - red->setLogScale(8, 1, true); - blue->setLogScale(8, 1, true); - - if (red->delay < options.adjusterMaxDelay) { - red->delay = options.adjusterMaxDelay; - } - - if (blue->delay < options.adjusterMaxDelay) { - blue->delay = options.adjusterMaxDelay; - } - mode->show(); - red->show(); - blue->show(); pack_start(*hb, Gtk::PACK_SHRINK, 4); - pack_start(*red, Gtk::PACK_SHRINK, 4); - pack_start(*blue, Gtk::PACK_SHRINK, 4); } void PreprocessWB::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) { disableListener(); - if (pedited) { - red->setEditedState(pedited->raw.preprocessWB.red ? Edited : UnEdited); - blue->setEditedState(pedited->raw.preprocessWB.blue ? Edited : UnEdited); - } - mode->set_active(int(pp->raw.preprocessWB.mode)); - red->setValue(pp->raw.preprocessWB.red); - blue->setValue(pp->raw.preprocessWB.blue); enableListener(); } @@ -93,25 +65,12 @@ void PreprocessWB::write(rtengine::procparams::ProcParams* pp, ParamsEdited* ped pp->raw.preprocessWB.mode = RAWParams::PreprocessWB::Mode(mode->get_active_row_number()); } - pp->raw.preprocessWB.red = red->getValue(); - pp->raw.preprocessWB.blue = blue->getValue(); - if (pedited) { pedited->raw.preprocessWB.mode = mode->get_active_row_number() != 2; // UNCHANGED entry, see setBatchMode - pedited->raw.preprocessWB.red = red->getEditedState(); - pedited->raw.preprocessWB.blue = blue->getEditedState(); } } -void PreprocessWB::adjusterChanged(Adjuster* a, double newval) -{ - if (listener) { - listener->panelChanged(evPreprocessWBMults, Glib::ustring::compose( - "R/G=%1 ; B/G=%2", red->getValue(), blue->getValue())); - } -} - void PreprocessWB::setBatchMode(bool batchMode) { ToolPanel::setBatchMode(batchMode); @@ -119,35 +78,15 @@ void PreprocessWB::setBatchMode(bool batchMode) if (batchMode) { mode->append(M("GENERAL_UNCHANGED")); mode->set_active_text(M("GENERAL_UNCHANGED")); - red->showEditedCB(); - blue->showEditedCB(); } } void PreprocessWB::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) { - red->setDefault(defParams->raw.preprocessWB.red); - blue->setDefault(defParams->raw.preprocessWB.blue); - - if (pedited) { - red->setDefaultEditedState(pedited->raw.preprocessWB.red ? Edited : UnEdited); - blue->setDefaultEditedState(pedited->raw.preprocessWB.blue ? Edited : UnEdited); - } else { - red->setDefaultEditedState(Irrelevant); - blue->setDefaultEditedState(Irrelevant); - } -} - -void PreprocessWB::setAdjusterBehavior(bool add) -{ - red->setAddMode(add); - blue->setAddMode(add); } void PreprocessWB::trimValues(rtengine::procparams::ProcParams* pp) { - red->trimValue(pp->raw.preprocessWB.red); - blue->trimValue(pp->raw.preprocessWB.blue); } void PreprocessWB::modeChanged() diff --git a/rtgui/preprocesswb.h b/rtgui/preprocesswb.h index 2aabf13d8..343d2e9e9 100644 --- a/rtgui/preprocesswb.h +++ b/rtgui/preprocesswb.h @@ -25,18 +25,14 @@ class PreprocessWB final: public ToolParamBlock, - public AdjusterListener, public FoldableToolPanel { private: - const rtengine::ProcEvent evPreprocessWBMode, evPreprocessWBMults; + const rtengine::ProcEvent evPreprocessWBMode; MyComboBoxText* mode; - Adjuster* red; - Adjuster* blue; - public: PreprocessWB(); @@ -45,7 +41,6 @@ public: void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; void setBatchMode(bool batchMode) override; void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; - void adjusterChanged(Adjuster* a, double newval) override; void setAdjusterBehavior(bool add); void trimValues(rtengine::procparams::ProcParams* pp) override; void modeChanged(); From b1901997a794799bda406fea385fd3d9442b16ae Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 15 Mar 2020 17:50:03 +0100 Subject: [PATCH 370/453] Fix wrong white level scaling on 14-bit Panasonic RW2 files --- rtengine/dcraw.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 8085e12b6..b8d5b9895 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -9093,6 +9093,8 @@ void CLASS adobe_coeff (const char *make, const char *model) if (load_raw == &CLASS sony_arw2_load_raw) { // RT: arw2 scale fix black <<= 2; tiff_bps += 2; + } else if (load_raw == &CLASS panasonic_load_raw) { + tiff_bps = RT_pana_info.bpp; } if (RT_matrix_from_constant == ThreeValBool::X) { RT_matrix_from_constant = ThreeValBool::T; From 97b8918d5c2cd4755efbbe09f4b7642f13f417d3 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 16 Mar 2020 15:48:38 +0100 Subject: [PATCH 371/453] =?UTF-8?q?Added=20standard=20observer=2010=C2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- rtengine/colortemp.cc | 100 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 100 insertions(+) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 4d5cb42f2..0f85feba0 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -69,6 +69,106 @@ static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desm {0.000001251141, 0.00000045181, 0.000000} }; + +static const double cie_colour_match_jd10[97][3] = {//350nm to 830nm 5 nm J.Desmis 10° Standard Observer. +{0.000000000000, 0.000000000000, 0.000000000000}, +{0.000000000000, 0.000000000000, 0.000000000000}, +{0.000000122200, 0.000000013398, 0.000000535027}, +{0.000000919270, 0.000000100650, 0.000004028300}, +{0.000005958600, 0.000000651100, 0.000026143700}, +{0.000033266000, 0.000003625000, 0.000146220000}, +{0.000159952000, 0.000017364000, 0.000704776000}, +{0.000662440000, 0.000071560000, 0.002927800000}, +{0.002361600000, 0.000253400000, 0.010482200000}, +{0.007242300000, 0.000768500000, 0.032344000000}, +{0.019109700000, 0.002004400000, 0.086010900000}, +{0.043400000000, 0.004509000000, 0.197120000000}, +{0.084736000000, 0.008756000000, 0.389366000000}, +{0.140638000000, 0.014456000000, 0.656760000000}, +{0.204492000000, 0.021391000000, 0.972542000000}, +{0.264737000000, 0.029497000000, 1.282500000000}, +{0.314679000000, 0.038676000000, 1.553480000000}, +{0.357719000000, 0.049602000000, 1.798500000000}, +{0.383734000000, 0.062077000000, 1.967280000000}, +{0.386726000000, 0.074704000000, 2.027300000000}, +{0.370702000000, 0.089456000000, 1.994800000000}, +{0.342957000000, 0.106256000000, 1.900700000000}, +{0.302273000000, 0.128201000000, 1.745370000000}, +{0.254085000000, 0.152761000000, 1.554900000000}, +{0.195618000000, 0.185190000000, 1.317560000000}, +{0.132349000000, 0.219940000000, 1.030200000000}, +{0.080507000000, 0.253589000000, 0.772125000000}, +{0.041072000000, 0.297665000000, 0.570060000000}, +{0.016172000000, 0.339133000000, 0.415254000000}, +{0.005132000000, 0.395379000000, 0.302356000000}, +{0.003816000000, 0.460777000000, 0.218502000000}, +{0.015444000000, 0.531360000000, 0.159249000000}, +{0.037465000000, 0.606741000000, 0.112044000000}, +{0.071358000000, 0.685660000000, 0.082248000000}, +{0.117749000000, 0.761757000000, 0.060709000000}, +{0.172953000000, 0.823330000000, 0.043050000000}, +{0.236491000000, 0.875211000000, 0.030451000000}, +{0.304213000000, 0.923810000000, 0.020584000000}, +{0.376772000000, 0.961988000000, 0.013676000000}, +{0.451584000000, 0.982200000000, 0.007918000000}, +{0.529826000000, 0.991761000000, 0.003988000000}, +{0.616053000000, 0.999110000000, 0.001091000000}, +{0.793832000000, 0.982380000000, 0.000000000000}, +{0.878655000000, 0.955552000000, 0.000000000000}, +{0.951162000000, 0.915175000000, 0.000000000000}, +{1.014160000000, 0.868934000000, 0.000000000000}, +{1.074300000000, 0.825623000000, 0.000000000000}, +{1.118520000000, 0.777405000000, 0.000000000000}, +{1.134300000000, 0.720353000000, 0.000000000000}, +{1.123990000000, 0.658341000000, 0.000000000000}, +{1.089100000000, 0.593878000000, 0.000000000000}, +{1.030480000000, 0.527963000000, 0.000000000000}, +{0.950740000000, 0.461834000000, 0.000000000000}, +{0.856297000000, 0.398057000000, 0.000000000000}, +{0.754930000000, 0.339554000000, 0.000000000000}, +{0.647467000000, 0.283493000000, 0.000000000000}, +{0.535110000000, 0.228254000000, 0.000000000000}, +{0.431567000000, 0.179828000000, 0.000000000000}, +{0.343690000000, 0.140211000000, 0.000000000000}, +{0.268329000000, 0.107633000000, 0.000000000000}, +{0.204300000000, 0.081187000000, 0.000000000000}, +{0.152568000000, 0.060281000000, 0.000000000000}, +{0.112210000000, 0.044096000000, 0.000000000000}, +{0.081260600000, 0.031800400000, 0.000000000000}, +{0.057930000000, 0.022601700000, 0.000000000000}, +{0.040850800000, 0.015905100000, 0.000000000000}, +{0.028623000000, 0.011130300000, 0.000000000000}, +{0.019941300000, 0.007748800000, 0.000000000000}, +{0.013842000000, 0.005375100000, 0.000000000000}, +{0.009576880000, 0.003717740000, 0.000000000000}, +{0.006605200000, 0.002564560000, 0.000000000000}, +{0.004552630000, 0.001768470000, 0.000000000000}, +{0.003144700000, 0.001222390000, 0.000000000000}, +{0.002174960000, 0.000846190000, 0.000000000000}, +{0.001505700000, 0.000586440000, 0.000000000000}, +{0.001044760000, 0.000407410000, 0.000000000000}, +{0.000727450000, 0.000284041000, 0.000000000000}, +{0.000508258000, 0.000198730000, 0.000000000000}, +{0.000356380000, 0.000139550000, 0.000000000000}, +{0.000250969000, 0.000098428000, 0.000000000000}, +{0.000177730000, 0.000069819000, 0.000000000000}, +{0.000126390000, 0.000049737000, 0.000000000000}, +{0.000090151000, 0.000035540500, 0.000000000000}, +{0.000064525800, 0.000025486000, 0.000000000000}, +{0.000046339000, 0.000018338400, 0.000000000000}, +{0.000033411700, 0.000013249000, 0.000000000000}, +{0.000024209000, 0.000009619600, 0.000000000000}, +{0.000017611500, 0.000007012800, 0.000000000000}, +{0.000012855000, 0.000005129800, 0.000000000000}, +{0.000009413630, 0.000003764730, 0.000000000000}, +{0.000006913000, 0.000002770810, 0.000000000000}, +{0.000005093470, 0.000002046130, 0.000000000000}, +{0.000003767100, 0.000001516770, 0.000000000000}, +{0.000002795310, 0.000001128090, 0.000000000000}, +{0.000002082000, 0.000000842160, 0.000000000000}, +{0.000001553140, 0.000000629700, 0.000000000000} +}; + ColorTemp::ColorTemp (double t, double g, double e, const std::string &m) : temp(t), green(g), equal(e), method(m) { clip (temp, green, equal); From 8a972bef9ef8760e8045ebee95f78ec0706d50c5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 16 Mar 2020 17:58:35 +0100 Subject: [PATCH 372/453] Itcwb - Use standard observer 10 by default - create option itcwb_stdobserver10 --- rtengine/colortemp.cc | 22 ++++++++++++++++++++-- rtengine/rawimagesource.cc | 3 ++- rtengine/settings.h | 3 ++- rtgui/options.cc | 8 +++++++- 4 files changed, 31 insertions(+), 5 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 0f85feba0..5061e9021 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -33,7 +33,7 @@ namespace rtengine { -static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 2° Standard Observer. +static const double cie_colour_match_jd2[97][3] = {//350nm to 830nm 5 nm J.Desmis 2° Standard Observer. {0.0000000, 0.000000, 0.000000}, {0.0000000, 0.000000, 0.000000}, {0.0001299, 0.0003917, 0.0006061}, {0.0002321, 0.000006965, 0.001086}, {0.0004149, 0.00001239, 0.001946}, {0.0007416, 0.00002202, 0.003846}, {0.001368, 0.000039, 0.006450001}, {0.002236, 0.000064, 0.01054999}, {0.004243, 0.000120, 0.02005001}, @@ -70,7 +70,7 @@ static const double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desm }; -static const double cie_colour_match_jd10[97][3] = {//350nm to 830nm 5 nm J.Desmis 10° Standard Observer. +static double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 10° Standard Observer. {0.000000000000, 0.000000000000, 0.000000000000}, {0.000000000000, 0.000000000000, 0.000000000000}, {0.000000122200, 0.000000013398, 0.000000535027}, @@ -169,6 +169,8 @@ static const double cie_colour_match_jd10[97][3] = {//350nm to 830nm 5 nm J.De {0.000001553140, 0.000000629700, 0.000000000000} }; + + ColorTemp::ColorTemp (double t, double g, double e, const std::string &m) : temp(t), green(g), equal(e), method(m) { clip (temp, green, equal); @@ -3757,6 +3759,22 @@ void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float Refxyz[i].Zref = 0.f; } + if (settings->verbose) { + if (settings->itcwb_stdobserver10 == false) { + printf("Use standard observer 2°\n"); + } else { + printf("Use standard observer 10°\n"); + } + } + + if (settings->itcwb_stdobserver10 == false) { + for (int i = 0; i < 97; i++) { + cie_colour_match_jd[i][0] = cie_colour_match_jd2[i][0]; + cie_colour_match_jd[i][1] = cie_colour_match_jd2[i][1];; + cie_colour_match_jd[i][2] = cie_colour_match_jd2[i][2]; + } + } + if (separated) { const double tempw = Txyz[repref].Tem; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index f08609f5e..392c81de1 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4459,7 +4459,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double You can used it in images :flowers, landscape, portrait, skin, where illuminants are "normal" (daylight, blackbody) You must avoid when illuminant is non standard (fluorescent, LED...) and also, when the subject is lost in the image (some target to generate profiles). - You can change 4 parameters in option.cc + You can change parameters in option.cc Itcwb_thres : 34 by default ==> number of color used in final algorithm - between 10 and max 55 Itcwb_sort : false by default, can improve algorithm if true, ==> sort value in something near chroma order, instead of histogram number Itcwb_greenrange : 0 amplitude of green variation - between 0 to 2 @@ -4467,6 +4467,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Itcwb_forceextra : false - if true force algorithm "extra" ("extra" is used when camera wbsettings are wrong) to all images Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good + itcwb_stdobserver10 : true by default - use standard observer 10°, false = standard observer 2° */ // BENCHFUN diff --git a/rtengine/settings.h b/rtengine/settings.h index 38e66c8ac..4d3131695 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -7,8 +7,8 @@ * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * * RawTherapee is distributed in the hope that it will be useful, +itcw * * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. @@ -88,6 +88,7 @@ public: bool itcwb_forceextra; int itcwb_sizereference; int itcwb_delta; + bool itcwb_stdobserver10; enum class ThumbnailInspectorMode { diff --git a/rtgui/options.cc b/rtgui/options.cc index 3cf0a9497..4a21fd8c0 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -597,7 +597,8 @@ void Options::setDefaults() rtSettings.itcwb_forceextra = true; rtSettings.itcwb_sizereference = 3;//between 1 and 5 rtSettings.itcwb_delta = 1;//between 0 and 5 - + rtSettings.itcwb_stdobserver10 = true; + rtSettings.protectred = 60; rtSettings.protectredh = 0.3; rtSettings.CRI_color = 0; @@ -1513,6 +1514,10 @@ void Options::readFromFile(Glib::ustring fname) rtSettings.itcwb_forceextra = keyFile.get_boolean("Color Management", "Itcwb_forceextra"); } + if (keyFile.has_key("Color Management", "Itcwb_stdobserver10")) { + rtSettings.itcwb_stdobserver10 = keyFile.get_boolean("Color Management", "Itcwb_stdobserver10"); + } + if (keyFile.has_key("Color Management", "Itcwb_greenrange")) { rtSettings.itcwb_greenrange = keyFile.get_integer("Color Management", "Itcwb_greenrange"); } @@ -2201,6 +2206,7 @@ void Options::saveToFile(Glib::ustring fname) keyFile.set_boolean("Color Management", "Itcwb_forceextra", rtSettings.itcwb_forceextra); keyFile.set_integer("Color Management", "Itcwb_sizereference", rtSettings.itcwb_sizereference); keyFile.set_integer("Color Management", "Itcwb_delta", rtSettings.itcwb_delta); + keyFile.set_boolean("Color Management", "Itcwb_stdobserver10", rtSettings.itcwb_stdobserver10); //keyFile.set_double ("Color Management", "Colortoningab", rtSettings.colortoningab); //keyFile.set_double ("Color Management", "Decaction", rtSettings.decaction); From d285dbade50f82bd9123a72e2a419f2ccfabbfe6 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 17 Mar 2020 09:24:52 +0100 Subject: [PATCH 373/453] Suppress tabulations in cie_colour_match_jd --- rtengine/colortemp.cc | 192 +++++++++++++++++++++--------------------- 1 file changed, 96 insertions(+), 96 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 5061e9021..585f02d20 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -71,102 +71,102 @@ static const double cie_colour_match_jd2[97][3] = {//350nm to 830nm 5 nm J.Des static double cie_colour_match_jd[97][3] = {//350nm to 830nm 5 nm J.Desmis 10° Standard Observer. -{0.000000000000, 0.000000000000, 0.000000000000}, -{0.000000000000, 0.000000000000, 0.000000000000}, -{0.000000122200, 0.000000013398, 0.000000535027}, -{0.000000919270, 0.000000100650, 0.000004028300}, -{0.000005958600, 0.000000651100, 0.000026143700}, -{0.000033266000, 0.000003625000, 0.000146220000}, -{0.000159952000, 0.000017364000, 0.000704776000}, -{0.000662440000, 0.000071560000, 0.002927800000}, -{0.002361600000, 0.000253400000, 0.010482200000}, -{0.007242300000, 0.000768500000, 0.032344000000}, -{0.019109700000, 0.002004400000, 0.086010900000}, -{0.043400000000, 0.004509000000, 0.197120000000}, -{0.084736000000, 0.008756000000, 0.389366000000}, -{0.140638000000, 0.014456000000, 0.656760000000}, -{0.204492000000, 0.021391000000, 0.972542000000}, -{0.264737000000, 0.029497000000, 1.282500000000}, -{0.314679000000, 0.038676000000, 1.553480000000}, -{0.357719000000, 0.049602000000, 1.798500000000}, -{0.383734000000, 0.062077000000, 1.967280000000}, -{0.386726000000, 0.074704000000, 2.027300000000}, -{0.370702000000, 0.089456000000, 1.994800000000}, -{0.342957000000, 0.106256000000, 1.900700000000}, -{0.302273000000, 0.128201000000, 1.745370000000}, -{0.254085000000, 0.152761000000, 1.554900000000}, -{0.195618000000, 0.185190000000, 1.317560000000}, -{0.132349000000, 0.219940000000, 1.030200000000}, -{0.080507000000, 0.253589000000, 0.772125000000}, -{0.041072000000, 0.297665000000, 0.570060000000}, -{0.016172000000, 0.339133000000, 0.415254000000}, -{0.005132000000, 0.395379000000, 0.302356000000}, -{0.003816000000, 0.460777000000, 0.218502000000}, -{0.015444000000, 0.531360000000, 0.159249000000}, -{0.037465000000, 0.606741000000, 0.112044000000}, -{0.071358000000, 0.685660000000, 0.082248000000}, -{0.117749000000, 0.761757000000, 0.060709000000}, -{0.172953000000, 0.823330000000, 0.043050000000}, -{0.236491000000, 0.875211000000, 0.030451000000}, -{0.304213000000, 0.923810000000, 0.020584000000}, -{0.376772000000, 0.961988000000, 0.013676000000}, -{0.451584000000, 0.982200000000, 0.007918000000}, -{0.529826000000, 0.991761000000, 0.003988000000}, -{0.616053000000, 0.999110000000, 0.001091000000}, -{0.793832000000, 0.982380000000, 0.000000000000}, -{0.878655000000, 0.955552000000, 0.000000000000}, -{0.951162000000, 0.915175000000, 0.000000000000}, -{1.014160000000, 0.868934000000, 0.000000000000}, -{1.074300000000, 0.825623000000, 0.000000000000}, -{1.118520000000, 0.777405000000, 0.000000000000}, -{1.134300000000, 0.720353000000, 0.000000000000}, -{1.123990000000, 0.658341000000, 0.000000000000}, -{1.089100000000, 0.593878000000, 0.000000000000}, -{1.030480000000, 0.527963000000, 0.000000000000}, -{0.950740000000, 0.461834000000, 0.000000000000}, -{0.856297000000, 0.398057000000, 0.000000000000}, -{0.754930000000, 0.339554000000, 0.000000000000}, -{0.647467000000, 0.283493000000, 0.000000000000}, -{0.535110000000, 0.228254000000, 0.000000000000}, -{0.431567000000, 0.179828000000, 0.000000000000}, -{0.343690000000, 0.140211000000, 0.000000000000}, -{0.268329000000, 0.107633000000, 0.000000000000}, -{0.204300000000, 0.081187000000, 0.000000000000}, -{0.152568000000, 0.060281000000, 0.000000000000}, -{0.112210000000, 0.044096000000, 0.000000000000}, -{0.081260600000, 0.031800400000, 0.000000000000}, -{0.057930000000, 0.022601700000, 0.000000000000}, -{0.040850800000, 0.015905100000, 0.000000000000}, -{0.028623000000, 0.011130300000, 0.000000000000}, -{0.019941300000, 0.007748800000, 0.000000000000}, -{0.013842000000, 0.005375100000, 0.000000000000}, -{0.009576880000, 0.003717740000, 0.000000000000}, -{0.006605200000, 0.002564560000, 0.000000000000}, -{0.004552630000, 0.001768470000, 0.000000000000}, -{0.003144700000, 0.001222390000, 0.000000000000}, -{0.002174960000, 0.000846190000, 0.000000000000}, -{0.001505700000, 0.000586440000, 0.000000000000}, -{0.001044760000, 0.000407410000, 0.000000000000}, -{0.000727450000, 0.000284041000, 0.000000000000}, -{0.000508258000, 0.000198730000, 0.000000000000}, -{0.000356380000, 0.000139550000, 0.000000000000}, -{0.000250969000, 0.000098428000, 0.000000000000}, -{0.000177730000, 0.000069819000, 0.000000000000}, -{0.000126390000, 0.000049737000, 0.000000000000}, -{0.000090151000, 0.000035540500, 0.000000000000}, -{0.000064525800, 0.000025486000, 0.000000000000}, -{0.000046339000, 0.000018338400, 0.000000000000}, -{0.000033411700, 0.000013249000, 0.000000000000}, -{0.000024209000, 0.000009619600, 0.000000000000}, -{0.000017611500, 0.000007012800, 0.000000000000}, -{0.000012855000, 0.000005129800, 0.000000000000}, -{0.000009413630, 0.000003764730, 0.000000000000}, -{0.000006913000, 0.000002770810, 0.000000000000}, -{0.000005093470, 0.000002046130, 0.000000000000}, -{0.000003767100, 0.000001516770, 0.000000000000}, -{0.000002795310, 0.000001128090, 0.000000000000}, -{0.000002082000, 0.000000842160, 0.000000000000}, -{0.000001553140, 0.000000629700, 0.000000000000} +{0.000000000000, 0.000000000000, 0.000000000000}, +{0.000000000000, 0.000000000000, 0.000000000000}, +{0.000000122200, 0.000000013398, 0.000000535027}, +{0.000000919270, 0.000000100650, 0.000004028300}, +{0.000005958600, 0.000000651100, 0.000026143700}, +{0.000033266000, 0.000003625000, 0.000146220000}, +{0.000159952000, 0.000017364000, 0.000704776000}, +{0.000662440000, 0.000071560000, 0.002927800000}, +{0.002361600000, 0.000253400000, 0.010482200000}, +{0.007242300000, 0.000768500000, 0.032344000000}, +{0.019109700000, 0.002004400000, 0.086010900000}, +{0.043400000000, 0.004509000000, 0.197120000000}, +{0.084736000000, 0.008756000000, 0.389366000000}, +{0.140638000000, 0.014456000000, 0.656760000000}, +{0.204492000000, 0.021391000000, 0.972542000000}, +{0.264737000000, 0.029497000000, 1.282500000000}, +{0.314679000000, 0.038676000000, 1.553480000000}, +{0.357719000000, 0.049602000000, 1.798500000000}, +{0.383734000000, 0.062077000000, 1.967280000000}, +{0.386726000000, 0.074704000000, 2.027300000000}, +{0.370702000000, 0.089456000000, 1.994800000000}, +{0.342957000000, 0.106256000000, 1.900700000000}, +{0.302273000000, 0.128201000000, 1.745370000000}, +{0.254085000000, 0.152761000000, 1.554900000000}, +{0.195618000000, 0.185190000000, 1.317560000000}, +{0.132349000000, 0.219940000000, 1.030200000000}, +{0.080507000000, 0.253589000000, 0.772125000000}, +{0.041072000000, 0.297665000000, 0.570060000000}, +{0.016172000000, 0.339133000000, 0.415254000000}, +{0.005132000000, 0.395379000000, 0.302356000000}, +{0.003816000000, 0.460777000000, 0.218502000000}, +{0.015444000000, 0.531360000000, 0.159249000000}, +{0.037465000000, 0.606741000000, 0.112044000000}, +{0.071358000000, 0.685660000000, 0.082248000000}, +{0.117749000000, 0.761757000000, 0.060709000000}, +{0.172953000000, 0.823330000000, 0.043050000000}, +{0.236491000000, 0.875211000000, 0.030451000000}, +{0.304213000000, 0.923810000000, 0.020584000000}, +{0.376772000000, 0.961988000000, 0.013676000000}, +{0.451584000000, 0.982200000000, 0.007918000000}, +{0.529826000000, 0.991761000000, 0.003988000000}, +{0.616053000000, 0.999110000000, 0.001091000000}, +{0.793832000000, 0.982380000000, 0.000000000000}, +{0.878655000000, 0.955552000000, 0.000000000000}, +{0.951162000000, 0.915175000000, 0.000000000000}, +{1.014160000000, 0.868934000000, 0.000000000000}, +{1.074300000000, 0.825623000000, 0.000000000000}, +{1.118520000000, 0.777405000000, 0.000000000000}, +{1.134300000000, 0.720353000000, 0.000000000000}, +{1.123990000000, 0.658341000000, 0.000000000000}, +{1.089100000000, 0.593878000000, 0.000000000000}, +{1.030480000000, 0.527963000000, 0.000000000000}, +{0.950740000000, 0.461834000000, 0.000000000000}, +{0.856297000000, 0.398057000000, 0.000000000000}, +{0.754930000000, 0.339554000000, 0.000000000000}, +{0.647467000000, 0.283493000000, 0.000000000000}, +{0.535110000000, 0.228254000000, 0.000000000000}, +{0.431567000000, 0.179828000000, 0.000000000000}, +{0.343690000000, 0.140211000000, 0.000000000000}, +{0.268329000000, 0.107633000000, 0.000000000000}, +{0.204300000000, 0.081187000000, 0.000000000000}, +{0.152568000000, 0.060281000000, 0.000000000000}, +{0.112210000000, 0.044096000000, 0.000000000000}, +{0.081260600000, 0.031800400000, 0.000000000000}, +{0.057930000000, 0.022601700000, 0.000000000000}, +{0.040850800000, 0.015905100000, 0.000000000000}, +{0.028623000000, 0.011130300000, 0.000000000000}, +{0.019941300000, 0.007748800000, 0.000000000000}, +{0.013842000000, 0.005375100000, 0.000000000000}, +{0.009576880000, 0.003717740000, 0.000000000000}, +{0.006605200000, 0.002564560000, 0.000000000000}, +{0.004552630000, 0.001768470000, 0.000000000000}, +{0.003144700000, 0.001222390000, 0.000000000000}, +{0.002174960000, 0.000846190000, 0.000000000000}, +{0.001505700000, 0.000586440000, 0.000000000000}, +{0.001044760000, 0.000407410000, 0.000000000000}, +{0.000727450000, 0.000284041000, 0.000000000000}, +{0.000508258000, 0.000198730000, 0.000000000000}, +{0.000356380000, 0.000139550000, 0.000000000000}, +{0.000250969000, 0.000098428000, 0.000000000000}, +{0.000177730000, 0.000069819000, 0.000000000000}, +{0.000126390000, 0.000049737000, 0.000000000000}, +{0.000090151000, 0.000035540500, 0.000000000000}, +{0.000064525800, 0.000025486000, 0.000000000000}, +{0.000046339000, 0.000018338400, 0.000000000000}, +{0.000033411700, 0.000013249000, 0.000000000000}, +{0.000024209000, 0.000009619600, 0.000000000000}, +{0.000017611500, 0.000007012800, 0.000000000000}, +{0.000012855000, 0.000005129800, 0.000000000000}, +{0.000009413630, 0.000003764730, 0.000000000000}, +{0.000006913000, 0.000002770810, 0.000000000000}, +{0.000005093470, 0.000002046130, 0.000000000000}, +{0.000003767100, 0.000001516770, 0.000000000000}, +{0.000002795310, 0.000001128090, 0.000000000000}, +{0.000002082000, 0.000000842160, 0.000000000000}, +{0.000001553140, 0.000000629700, 0.000000000000} }; From a45823995a62a39761ed1fd280320706cdd06ec8 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 18 Mar 2020 09:00:26 +0100 Subject: [PATCH 374/453] Itcwb increases precision in color sampling 5 instead of 9 - option itcwb_precis --- rtengine/rawimagesource.cc | 30 ++++++++++++++++++++++++------ rtengine/settings.h | 1 + rtgui/options.cc | 7 ++++++- 3 files changed, 31 insertions(+), 7 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 392c81de1..232747439 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -5322,8 +5322,17 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int { // BENCHFUN //used by auto WB local to calculate red, green, blue in local region - const int bfw = W / 9 + ((W % 9) > 0 ? 1 : 0);//10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfh = H / 9 + ((H % 9) > 0 ? 1 : 0); + int precision = 5; + if (settings->itcwb_precis == 5) { + precision = 5; + } else if (settings->itcwb_precis < 5) { + precision = 3; + } else if (settings->itcwb_precis > 5) { + precision = 9; + } + + const int bfw = W / precision + ((W % precision) > 0 ? 1 : 0);// 5 arbitrary value can be change to 3 or 9 ; + const int bfh = H / precision + ((H % precision) > 0 ? 1 : 0); if (! greenloc) { greenloc(bfw, bfh); @@ -5373,9 +5382,9 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int #pragma omp parallel for #endif for (int i = 0; i < bfh; ++i) { - const int ii = i * 9; + const int ii = i * precision; if (ii < H) { - for (int j = 0, jj = 0; j < bfw; ++j, jj += 9) { + for (int j = 0, jj = 0; j < bfw; ++j, jj += precision) { redloc[i][j] = red[ii][jj] * multip; greenloc[i][j] = green[ii][jj] * multip; blueloc[i][j] = blue[ii][jj] * multip; @@ -5575,8 +5584,17 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref if (wbpar.method == "autitcgreen") { bool twotimes = false; - const int bfw = W / 9 + ((W % 9) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfh = H / 9 + ((H % 9) > 0 ? 1 : 0); + int precision = 5; + if (settings->itcwb_precis == 5) { + precision = 5; + } else if (settings->itcwb_precis < 5) { + precision = 3; + } else if (settings->itcwb_precis > 5) { + precision = 9; + } + + const int bfw = W / precision + ((W % precision) > 0 ? 1 : 0);// 5 arbitrary value can be change to 3 or 9 ; + const int bfh = H / precision + ((H % precision) > 0 ? 1 : 0); WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); } diff --git a/rtengine/settings.h b/rtengine/settings.h index 4d3131695..529336cbc 100644 --- a/rtengine/settings.h +++ b/rtengine/settings.h @@ -89,6 +89,7 @@ public: int itcwb_sizereference; int itcwb_delta; bool itcwb_stdobserver10; + int itcwb_precis; enum class ThumbnailInspectorMode { diff --git a/rtgui/options.cc b/rtgui/options.cc index 4a21fd8c0..7ae6c24aa 100644 --- a/rtgui/options.cc +++ b/rtgui/options.cc @@ -598,7 +598,8 @@ void Options::setDefaults() rtSettings.itcwb_sizereference = 3;//between 1 and 5 rtSettings.itcwb_delta = 1;//between 0 and 5 rtSettings.itcwb_stdobserver10 = true; - + rtSettings.itcwb_precis = 5;//3 or 5 or 9 + rtSettings.protectred = 60; rtSettings.protectredh = 0.3; rtSettings.CRI_color = 0; @@ -1534,6 +1535,9 @@ void Options::readFromFile(Glib::ustring fname) rtSettings.itcwb_delta = keyFile.get_integer("Color Management", "Itcwb_delta"); } + if (keyFile.has_key("Color Management", "Itcwb_precis")) { + rtSettings.itcwb_precis = keyFile.get_integer("Color Management", "Itcwb_precis"); + } //if (keyFile.has_key ("Color Management", "Colortoningab")) rtSettings.colortoningab = keyFile.get_double("Color Management", "Colortoningab"); //if (keyFile.has_key ("Color Management", "Decaction")) rtSettings.decaction = keyFile.get_double("Color Management", "Decaction"); @@ -2207,6 +2211,7 @@ void Options::saveToFile(Glib::ustring fname) keyFile.set_integer("Color Management", "Itcwb_sizereference", rtSettings.itcwb_sizereference); keyFile.set_integer("Color Management", "Itcwb_delta", rtSettings.itcwb_delta); keyFile.set_boolean("Color Management", "Itcwb_stdobserver10", rtSettings.itcwb_stdobserver10); + keyFile.set_integer("Color Management", "Itcwb_precis", rtSettings.itcwb_precis); //keyFile.set_double ("Color Management", "Colortoningab", rtSettings.colortoningab); //keyFile.set_double ("Color Management", "Decaction", rtSettings.decaction); From fe17a7add2c6ec1c44e8fbbbf6dfa4fc54dfdb65 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 18 Mar 2020 09:37:34 +0100 Subject: [PATCH 375/453] Improve comment code algorithm Itcwb --- rtengine/colortemp.cc | 4 +++- rtengine/rawimagesource.cc | 32 ++++++++++++-------------------- 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 585f02d20..2780fcc84 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -3391,6 +3391,7 @@ this values are often called xBar yBar zBar and are characteristics of a color / values cie_colour_match[][3] = 2° Standard Observer x2, y2, z2 E.g. for 380nm: x2=0.001368 y2=0.000039 z2=0.006451 round in J.Walker to 0.0014 0.0000 0.0065 above I have increase precision used by J.Walker and pass to 350nm to 830nm +And also add 10° standard observer */ void ColorTemp::spectrum_to_xyz_daylight(double _m1, double _m2, double &x, double &y, double &z) @@ -3449,6 +3450,7 @@ void ColorTemp::spectrum_to_xyz_preset(const double* spec_intens, double &x, dou values cie_colour_match[][3] = 2° Standard Observer x2, y2, z2 E.g. for 380nm: x2=0.001368 y2=0.000039 z2=0.006451 round in J.Walker to 0.0014 0.0000 0.0065 above I have increased the precision used by J.Walker and pass from 350nm to 830nm + And also add standard observer 10° */ for (i = 0, lambda = 350.; lambda < 830.1; i++, lambda += 5.) { double Me = get_spectral_color(lambda, spec_intens); @@ -3623,7 +3625,7 @@ void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float double ZZ; } WbTxyz; //probbaly can be "passed" with rawimagesource.cc but I don't know how to do. - constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after + constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values - same table as in Rawimagesource.cc x wb and y wb are calculated after {2001., 1.273842, 0.145295}, {2101., 1.244008, 0.167533}, {2201., 1.217338, 0.190697}, diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 232747439..75088a07c 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4412,12 +4412,13 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Copyright (c) Jacques Desmis 6 - 2018 jdesmis@gmail.com Copyright (c) Ingo Weyrich 3 - 2020 (heckflosse67@gmx.de) - This algorithm try to find temperature correlation between 20 to 201 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. + This algorithm try to find temperature correlation between 20 to 201 color between 201 spectral color and about 20 to 55 color found in the image between 192, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. I have test many many algorithms to find the first one that work :) Probably (sure) there are improvement to do... - I have create a table temperature with temp and white point with 100 values between 2000K and 12000K we can obviously change these values, more...with different steps + I have create a table temperature with temp and white point with 118 values between 2000K and 12000K we can obviously change these values, more...with different steps + I have create a table for tint (green)with 134 values between 0.4 to 4. I have create or recuparate and transformed 201 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is large enough. I think this value of 201 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized Of course we can increase this number :) @@ -4425,8 +4426,8 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double 1) for the current raw file we create a table for each temp of RGB multipliers 2) then, I choose the "camera temp" to initialize calculation (why not) 3) for this temp, I calculated XYZ values for the 201 spectral datas - 4) then I create for the image an "histogram", but for xyY (Cie 1931 color space) - 5) for each pixel (in fact to accelerate only 1/10 for and 1/10 for y), I determine for each couple xy, the number of occurences + 4) then I create for the image an "histogram", but for xyY (CIE 1931 color space or CIE 1964 (default)) + 5) for each pixel (in fact to accelerate only 1/5 for and 1/5 for y), I determine for each couple xy, the number of occurences, can be change by Itcwb_precis to 3 or 9 6) I sort this result in ascending order 7) in option we can sort in another manner to take into account chroma : chromax = x - white point x, chromay = y - white point y 8) then I compare this result, with spectral datas found above in 3) with deltaE (limited to chroma) @@ -4445,10 +4446,9 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double 20) between these green limits, we make slightly vary temp (settings in options) and recalculated RGB multipliers 21) with this multipliers for the RGB color find in histogram we recalculate xyY 22) we re-adjust references color for these xyY from 20) - 23) we add if chroma image is very low, k colors to degrad correlation - 24) then find all Student correlation for each couple green / temp - 25) sort these Student values, and choose the minimum - 26) then for the 3 better couple "temp / green" choose the one where green is nearest from 1. + 23) then find all Student correlation for each couple green / temp + 24) sort these Student values, and choose the minimum + 25) then for the 3 better couple "temp / green" choose the one where green is nearest from 1. Some variables or function are not used, keep in case of I have test with cat02 but result are not stable enough ! why ??, therefore cat02 neutralized @@ -4468,6 +4468,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good itcwb_stdobserver10 : true by default - use standard observer 10°, false = standard observer 2° + itcwb_precis : 5 by default - can be set to 3 or 9 - 3 best sampling but more time...9 "old" settings - but low differences in times with 3 instead of 9 about twice time 160ms instead of 80ms for a big raw file */ // BENCHFUN @@ -4660,7 +4661,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //I don't know how to pass this structure to Colortemp ! // X and Z values calculate for each temp between 2000K to 12000K, so no result after 12000K ! //of course we can change the step between each temp if need - constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after + constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after, Xwb and Ywb calculated with a spreadsheet {2001., 1.273842, 0.145295}, {2101., 1.244008, 0.167533}, {2201., 1.217338, 0.190697}, @@ -4781,7 +4782,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {12001., 0.960440, 1.601019} }; const int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point - constexpr int Nc = 201 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values + constexpr int Nc = 201 + 1;//201 number of reference spectral colors, I think it is enough to retrieve good values array2D Tx(N_t, Nc); array2D Ty(N_t, Nc); array2D Tz(N_t, Nc); @@ -5196,15 +5197,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY } - //degrade correllation with color high chroma, but not too much...seems not good, but keep in case of?? - //I suppress this old behavior replace by tint += 0.02 - /* if (estimchrom < 0.025f) {//very smal value of chroma for image - //enable strong values - good_spectral[0] = true;//blue - good_spectral[11] = true;//green - good_spectral[62] = true;//red - } -*/ int kkg = -1; for (int i = 0; i < Nc ; ++i) { if (good_spectral[i]) { @@ -5301,7 +5293,7 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D if (wbpar.method == "autitcgreen") { bool extra = false; - if (greenref > 0.5 && greenref < 1.3) {// 0/77 and 1.3 arbitraties values + if (greenref > 0.5 && greenref < 1.3) {// 0.5 and 1.3 arbitraties values greenitc = greenref; if (settings->itcwb_forceextra) { From d63fb77c8c44113d20075900c6e0bb6d29c565c2 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 19 Mar 2020 10:02:28 +0100 Subject: [PATCH 376/453] Fixed crash wavelet clarity softradius --- rtengine/dcrop.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 243ea1b62..640d78b0e 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1028,7 +1028,7 @@ void Crop::update(int todo) array2D ble(labnCrop->W, labnCrop->H); array2D guid(labnCrop->W, labnCrop->H); Imagefloat *tmpImage = nullptr; - tmpImage = new Imagefloat(labnCrop->W, labnCrop->W); + tmpImage = new Imagefloat(labnCrop->W, labnCrop->H); #ifdef _OPENMP #pragma omp parallel for From 1f4613cd3b3b396e00a93a3a36b7d1bcdae167f8 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 22 Mar 2020 10:37:21 +0100 Subject: [PATCH 377/453] GUI for TM wavelet --- rtdata/languages/default | 10 +++- rtengine/curves.cc | 35 ++++++++++++++ rtengine/curves.h | 24 ++++++++++ rtengine/dcrop.cc | 3 +- rtengine/improccoordinator.cc | 18 ++++++- rtengine/improccoordinator.h | 1 + rtengine/procparams.cc | 28 +++++++++++ rtengine/procparams.h | 6 +++ rtengine/simpleprocess.cc | 3 +- rtgui/paramsedited.cc | 24 ++++++++++ rtgui/paramsedited.h | 4 ++ rtgui/wavelet.cc | 90 +++++++++++++++++++++++++++++++++-- rtgui/wavelet.h | 12 ++++- 13 files changed, 248 insertions(+), 10 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index fe6ddaa7c..e957a5e2a 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -802,6 +802,10 @@ HISTORY_MSG_WAVSIGMA;Sigma HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method +HISTORY_MSG_THRESWAV;Balance threshold +HISTORY_MSG_SOFTWAV;Soft radius +HISTORY_MSG_TMSHAPE;Compression by level +HISTORY_MSG_WAVTM;Tone mapping wavelet HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2267,6 +2271,7 @@ TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are tr TP_WAVELET_SKY;Sky targetting/protection TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. TP_WAVELET_SOFTRAD;Soft Radius +TP_WAVELET_SOFWAV;Soft Radius TP_WAVELET_STREN;Strength TP_WAVELET_STRENGTH;Strength TP_WAVELET_SUPE;Extra @@ -2275,17 +2280,20 @@ TP_WAVELET_THRESHOLD;Highlight levels TP_WAVELET_THRESHOLD2;Shadow levels TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. +TP_WAVELET_THRESWAV;Balance Threshold TP_WAVELET_THRH;Highlights threshold TP_WAVELET_TILESBIG;Big tiles TP_WAVELET_TILESFULL;Full image TP_WAVELET_TILESIZE;Tiling method TP_WAVELET_TILESLIT;Little tiles TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. +TP_WAVELET_TM;Tone mapping wavelet TP_WAVELET_TMEDGS;Edge stopping TP_WAVELET_TMSCALE;Scale TP_WAVELET_TMSTRENGTH;Compression strength TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. -TP_WAVELET_TMTYPE;Compression method +TP_WAVELET_TMEDGS;Edge stopping +TP_WAVELET_TMURVE;(un)Compression by Level TP_WAVELET_TON;Toning TP_WAVELET_USH;None TP_WAVELET_USHARP;Clarity method diff --git a/rtengine/curves.cc b/rtengine/curves.cc index a2b5d1d2b..a3e327dbf 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -1209,6 +1209,41 @@ void WavCurve::Set(const std::vector &curvePoints) } } +WavtmCurve::WavtmCurve() {} + +void WavtmCurve::Reset() +{ + luttmCurve.reset(); +} + +void WavtmCurve::Set(const Curve &pCurve) +{ + if (pCurve.isIdentity()) { + Reset(); // raise this value if the quality suffers from this number of samples + return; + } + + luttmCurve(501); // raise this value if the quality suffers from this number of samples + + for (int i = 0; i < 501; i++) { + luttmCurve[i] = pCurve.getVal(double(i) / 500.); + } +} + +void WavtmCurve::Set(const std::vector &curvePoints) +{ + if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) { + FlatCurve tcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2); + tcurve.setIdentityValue(0.); + Set(tcurve); + } else { + Reset(); + } + +} + + + WavOpacityCurveRG::WavOpacityCurveRG() {} diff --git a/rtengine/curves.h b/rtengine/curves.h index c5bb0c18f..380bad9d6 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -627,6 +627,30 @@ public: } }; +class WavtmCurve +{ +private: + LUTf luttmCurve; // 0xffff range + void Set(const Curve &pCurve); +public: + virtual ~WavtmCurve() {}; + WavtmCurve(); + + void Reset(); + // void Set(const std::vector &curvePoints, bool &opautili); + void Set(const std::vector &curvePoints); + float operator[](float index) const + { + return luttmCurve[index]; + } + + operator bool (void) const + { + return luttmCurve; + } +}; + + class WavOpacityCurveRG { private: diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 640d78b0e..c2de5e0c5 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -967,13 +967,14 @@ void Crop::update(int todo) } WavCurve wavCLVCurve; + WavtmCurve wavtmCurve; WavOpacityCurveRG waOpacityCurveRG; WavOpacityCurveBY waOpacityCurveBY; WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; LUTf wavclCurve; - params.wavelet.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + params.wavelet.getCurves(wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); LabImage *unshar = nullptr; Glib::ustring provis; LabImage *provradius = nullptr; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 9bef5b502..682b26410 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -867,7 +867,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if ((params->wavelet.enabled)) { WaveletParams WaveParams = params->wavelet; - WaveParams.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + WaveParams.getCurves(wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); int kall = 0; LabImage *unshar = nullptr; Glib::ustring provis; @@ -885,8 +885,10 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } if (WaveParams.softrad > 0.f) { + printf("s1\n"); provradius = new LabImage(pW, pH); provradius->CopyFrom(nprevl); + printf("s2\n"); } @@ -922,10 +924,14 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) WaveParams.expnoise = pronois; if (WaveParams.softrad > 0.f) { + printf("s3\n"); + array2D ble(pW, pH); array2D guid(pW, pH); Imagefloat *tmpImage = nullptr; tmpImage = new Imagefloat(pW, pH); + printf("s4\n"); + #ifdef _OPENMP #pragma omp parallel for #endif @@ -948,6 +954,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) tmpImage->b(ir, jr) = Z; ble[ir][jr] = Y / 32768.f; } + printf("s5\n"); + double epsilmax = 0.0001; double epsilmin = 0.00001; double aepsil = (epsilmax - epsilmin) / 90.f; @@ -957,6 +965,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) float blur = 10.f / scale * (0.0001f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); + printf("s6\n"); @@ -973,7 +982,10 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) Color::XYZ2Lab(X, Y, Z, L, a, b); nprevl->L[ir][jr] = L; } + printf("s7\n"); + delete tmpImage; + printf("s8\n"); } @@ -1063,8 +1075,12 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } */ if (WaveParams.softrad > 0.f) { + printf("s9\n"); + delete provradius; provradius = NULL; + printf("s10\n"); + } diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index 454294beb..c797986e5 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -139,6 +139,7 @@ protected: NoiseCurve noiseLCurve; NoiseCurve noiseCCurve; WavCurve wavCLVCurve; + WavtmCurve wavtmCurve; WavOpacityCurveRG waOpacityCurveRG; WavOpacityCurveBY waOpacityCurveBY; WavOpacityCurveW waOpacityCurveW; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index e795d9bd9..cf5a693f8 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2164,6 +2164,17 @@ WaveletParams::WaveletParams() : 0.35, 0.35 }, + tmcurve{ + static_cast(FCT_MinMaxCPoints), + 0.0, + 0.75, + 0.35, + 0.35, + 1.0, + 0.75, + 0.35, + 0.35 + }, opacityCurveRG{ static_cast(FCT_MinMaxCPoints), 0.0, @@ -2252,6 +2263,7 @@ WaveletParams::WaveletParams() : c{}, ch{}, expedge(false), + exptm(false), expresid(false), expfinal(false), exptoning(false), @@ -2300,6 +2312,8 @@ WaveletParams::WaveletParams() : thrH(70), radius(40), skinprotect(0.0), + threswav(1.4), + softwav(1.0), hueskin(-5, 25, 170, 120, false), hueskin2(-260, -250, -130, -140, false), hllev(50, 75, 100, 98, false), @@ -2318,6 +2332,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const { return ccwcurve == other.ccwcurve + && tmcurve == other.tmcurve && opacityCurveRG == other.opacityCurveRG && opacityCurveBY == other.opacityCurveBY && opacityCurveW == other.opacityCurveW @@ -2359,6 +2374,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const return true; }() && expedge == other.expedge + && exptm == other.exptm && expresid == other.expresid && expfinal == other.expfinal && expclari == other.expclari @@ -2407,6 +2423,8 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && thrH == other.thrH && radius == other.radius && skinprotect == other.skinprotect + && threswav == other.threswav + && softwav == other.softwav && hueskin == other.hueskin && hueskin2 == other.hueskin2 && hllev == other.hllev @@ -2427,6 +2445,7 @@ bool WaveletParams::operator !=(const WaveletParams& other) const void WaveletParams::getCurves( WavCurve& cCurve, + WavtmCurve& tCurve, WavOpacityCurveRG& opacityCurveLUTRG, WavOpacityCurveBY& opacityCurveLUTBY, WavOpacityCurveW& opacityCurveLUTW, @@ -2434,6 +2453,7 @@ void WaveletParams::getCurves( ) const { cCurve.Set(this->ccwcurve); + tCurve.Set(this->tmcurve); opacityCurveLUTRG.Set(this->opacityCurveRG); opacityCurveLUTBY.Set(this->opacityCurveBY); opacityCurveLUTW.Set(this->opacityCurveW); @@ -3494,6 +3514,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.expcontrast, "Wavelet", "Expcontrast", wavelet.expcontrast, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expchroma, "Wavelet", "Expchroma", wavelet.expchroma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expedge, "Wavelet", "Expedge", wavelet.expedge, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.exptm, "Wavelet", "Exptm", wavelet.exptm, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expresid, "Wavelet", "Expresid", wavelet.expresid, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expfinal, "Wavelet", "Expfinal", wavelet.expfinal, keyFile); saveToKeyfile(!pedited || pedited->wavelet.exptoning, "Wavelet", "Exptoning", wavelet.exptoning, keyFile); @@ -3541,6 +3562,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.TMmethod, "Wavelet", "TMMethod", wavelet.TMmethod, keyFile); saveToKeyfile(!pedited || pedited->wavelet.chro, "Wavelet", "ChromaLink", wavelet.chro, keyFile); saveToKeyfile(!pedited || pedited->wavelet.ccwcurve, "Wavelet", "ContrastCurve", wavelet.ccwcurve, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.tmcurve, "Wavelet", "TMCurve", wavelet.tmcurve, keyFile); saveToKeyfile(!pedited || pedited->wavelet.pastlev, "Wavelet", "Pastlev", wavelet.pastlev.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.satlev, "Wavelet", "Satlev", wavelet.satlev.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.opacityCurveRG, "Wavelet", "OpacityCurveRG", wavelet.opacityCurveRG, keyFile); @@ -3556,6 +3578,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.cbenab, "Wavelet", "CBenab", wavelet.cbenab, keyFile); saveToKeyfile(!pedited || pedited->wavelet.lipst, "Wavelet", "Lipst", wavelet.lipst, keyFile); saveToKeyfile(!pedited || pedited->wavelet.skinprotect, "Wavelet", "Skinprotect", wavelet.skinprotect, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.threswav, "Wavelet", "Threswav", wavelet.threswav, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.softwav, "Wavelet", "Softwav", wavelet.softwav, keyFile); saveToKeyfile(!pedited || pedited->wavelet.hueskin, "Wavelet", "Hueskin", wavelet.hueskin.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgrad, "Wavelet", "Edgrad", wavelet.edgrad, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgval, "Wavelet", "Edgval", wavelet.edgval, keyFile); @@ -4710,6 +4734,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "ThresholdResidHighLight", pedited, wavelet.thrH, pedited->wavelet.thrH); assignFromKeyfile(keyFile, "Wavelet", "Residualradius", pedited, wavelet.radius, pedited->wavelet.radius); assignFromKeyfile(keyFile, "Wavelet", "ContrastCurve", pedited, wavelet.ccwcurve, pedited->wavelet.ccwcurve); + assignFromKeyfile(keyFile, "Wavelet", "TMCurve", pedited, wavelet.tmcurve, pedited->wavelet.tmcurve); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveRG", pedited, wavelet.opacityCurveRG, pedited->wavelet.opacityCurveRG); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveBY", pedited, wavelet.opacityCurveBY, pedited->wavelet.opacityCurveBY); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveW", pedited, wavelet.opacityCurveW, pedited->wavelet.opacityCurveW); @@ -4851,6 +4876,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } assignFromKeyfile(keyFile, "Wavelet", "Skinprotect", pedited, wavelet.skinprotect, pedited->wavelet.skinprotect); + assignFromKeyfile(keyFile, "Wavelet", "Threswav", pedited, wavelet.threswav, pedited->wavelet.threswav); + assignFromKeyfile(keyFile, "Wavelet", "Softwav", pedited, wavelet.softwav, pedited->wavelet.softwav); assignFromKeyfile(keyFile, "Wavelet", "Expcontrast", pedited, wavelet.expcontrast, pedited->wavelet.expcontrast); assignFromKeyfile(keyFile, "Wavelet", "Expchroma", pedited, wavelet.expchroma, pedited->wavelet.expchroma); @@ -4881,6 +4908,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } assignFromKeyfile(keyFile, "Wavelet", "Expedge", pedited, wavelet.expedge, pedited->wavelet.expedge); + assignFromKeyfile(keyFile, "Wavelet", "Exptm", pedited, wavelet.exptm, pedited->wavelet.exptm); assignFromKeyfile(keyFile, "Wavelet", "Expresid", pedited, wavelet.expresid, pedited->wavelet.expresid); assignFromKeyfile(keyFile, "Wavelet", "Expfinal", pedited, wavelet.expfinal, pedited->wavelet.expfinal); assignFromKeyfile(keyFile, "Wavelet", "Exptoning", pedited, wavelet.exptoning, pedited->wavelet.exptoning); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index aabe1e7ae..9bfdaab13 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -40,6 +40,7 @@ class OpacityCurve; class RetinexgaintransmissionCurve; class RetinextransmissionCurve; class WavCurve; +class WavtmCurve; class WavOpacityCurveBY; class WavOpacityCurveRG; class WavOpacityCurveW; @@ -1185,6 +1186,7 @@ private: struct WaveletParams { std::vector ccwcurve; + std::vector tmcurve; std::vector opacityCurveRG; std::vector opacityCurveBY; std::vector opacityCurveW; @@ -1220,6 +1222,7 @@ struct WaveletParams { int c[9]; int ch[9]; bool expedge; + bool exptm; bool expresid; bool expfinal; bool exptoning; @@ -1269,6 +1272,8 @@ struct WaveletParams { int thrH; int radius; double skinprotect; + double threswav; + double softwav; Threshold hueskin; Threshold hueskin2; Threshold hllev; @@ -1288,6 +1293,7 @@ struct WaveletParams { void getCurves( WavCurve& cCurve, + WavtmCurve& tCurve, WavOpacityCurveRG& opacityCurveLUTRG, WavOpacityCurveBY& opacityCurveLUTBY, diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 6b9d86baf..e519d5a56 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1120,6 +1120,7 @@ private: bool wavcontlutili = false; WaveletParams WaveParams = params.wavelet; WavCurve wavCLVCurve; + WavtmCurve wavtmCurve; WavOpacityCurveRG waOpacityCurveRG; WavOpacityCurveBY waOpacityCurveBY; WavOpacityCurveW waOpacityCurveW; @@ -1143,7 +1144,7 @@ private: provradius->CopyFrom(labView); } - params.wavelet.getCurves(wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + params.wavelet.getCurves(wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); CurveFactory::curveWavContL(wavcontlutili, params.wavelet.wavclCurve, wavclCurve,/* hist16C, dummy,*/ 1); diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 48ba4c341..f954a171a 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -541,11 +541,14 @@ void ParamsEdited::set(bool v) wavelet.hllev = v; wavelet.bllev = v; wavelet.edgcont = v; + wavelet.threswav = v; + wavelet.softwav = v; wavelet.level0noise = v; wavelet.level1noise = v; wavelet.level2noise = v; wavelet.level3noise = v; wavelet.ccwcurve = v; + wavelet.tmcurve = v; wavelet.opacityCurveRG = v; wavelet.opacityCurveBY = v; wavelet.opacityCurveW = v; @@ -565,6 +568,7 @@ void ParamsEdited::set(bool v) wavelet.expcontrast = v; wavelet.expchroma = v; wavelet.expedge = v; + wavelet.exptm = v; wavelet.expresid = v; wavelet.exptoning = v; wavelet.expnoise = v; @@ -1136,6 +1140,8 @@ void ParamsEdited::initFrom(const std::vector& wavelet.hllev = wavelet.hllev && p.wavelet.hllev == other.wavelet.hllev; wavelet.bllev = wavelet.bllev && p.wavelet.bllev == other.wavelet.bllev; wavelet.edgcont = wavelet.edgcont && p.wavelet.edgcont == other.wavelet.edgcont; + wavelet.threswav = wavelet.threswav && p.wavelet.threswav == other.wavelet.threswav; + wavelet.softwav = wavelet.softwav && p.wavelet.softwav == other.wavelet.softwav; wavelet.level0noise = wavelet.level0noise && p.wavelet.level0noise == other.wavelet.level0noise; wavelet.level1noise = wavelet.level1noise && p.wavelet.level1noise == other.wavelet.level1noise; wavelet.level2noise = wavelet.level2noise && p.wavelet.level2noise == other.wavelet.level2noise; @@ -1143,6 +1149,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.pastlev = wavelet.pastlev && p.wavelet.pastlev == other.wavelet.pastlev; wavelet.satlev = wavelet.satlev && p.wavelet.satlev == other.wavelet.satlev; wavelet.ccwcurve = wavelet.ccwcurve && p.wavelet.ccwcurve == other.wavelet.ccwcurve; + wavelet.tmcurve = wavelet.tmcurve && p.wavelet.tmcurve == other.wavelet.tmcurve; wavelet.opacityCurveRG = wavelet.opacityCurveRG && p.wavelet.opacityCurveRG == other.wavelet.opacityCurveRG; wavelet.opacityCurveBY = wavelet.opacityCurveBY && p.wavelet.opacityCurveBY == other.wavelet.opacityCurveBY; wavelet.opacityCurveW = wavelet.opacityCurveW && p.wavelet.opacityCurveW == other.wavelet.opacityCurveW; @@ -1155,6 +1162,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.expcontrast = wavelet.expcontrast && p.wavelet.expcontrast == other.wavelet.expcontrast; wavelet.expchroma = wavelet.expchroma && p.wavelet.expchroma == other.wavelet.expchroma; wavelet.expedge = wavelet.expedge && p.wavelet.expedge == other.wavelet.expedge; + wavelet.exptm = wavelet.exptm && p.wavelet.exptm == other.wavelet.exptm; wavelet.expresid = wavelet.expresid && p.wavelet.expresid == other.wavelet.expresid; wavelet.expfinal = wavelet.expfinal && p.wavelet.expfinal == other.wavelet.expfinal; wavelet.exptoning = wavelet.exptoning && p.wavelet.exptoning == other.wavelet.exptoning; @@ -3037,6 +3045,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.edgcont = mods.wavelet.edgcont; } + if (wavelet.threswav) { + toEdit.wavelet.threswav = mods.wavelet.threswav; + } + + if (wavelet.softwav) { + toEdit.wavelet.softwav = mods.wavelet.softwav; + } + if (wavelet.level0noise) { toEdit.wavelet.level0noise = mods.wavelet.level0noise; } @@ -3065,6 +3081,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.ccwcurve = mods.wavelet.ccwcurve; } + if (wavelet.tmcurve) { + toEdit.wavelet.tmcurve = mods.wavelet.tmcurve; + } + if (wavelet.opacityCurveRG) { toEdit.wavelet.opacityCurveRG = mods.wavelet.opacityCurveRG; } @@ -3106,6 +3126,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.expedge = mods.wavelet.expedge; } + if (wavelet.exptm) { + toEdit.wavelet.exptm = mods.wavelet.exptm; + } + if (wavelet.expresid) { toEdit.wavelet.expresid = mods.wavelet.expresid; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d2707ec11..619521c05 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -557,11 +557,14 @@ struct WaveletParamsEdited { bool hllev; bool bllev; bool edgcont; + bool threswav; + bool softwav; bool level0noise; bool level1noise; bool level2noise; bool level3noise; bool ccwcurve; + bool tmcurve; bool opacityCurveBY; bool opacityCurveRG; bool opacityCurveW; @@ -584,6 +587,7 @@ struct WaveletParamsEdited { bool expcontrast; bool expchroma; bool expedge; + bool exptm; bool expresid; bool expfinal; bool exptoning; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 7d9a65f2a..a65e3c789 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -63,6 +63,7 @@ Wavelet::Wavelet() : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"), true, true), curveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CONTEDIT"))), CCWcurveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CCURVE"))), + curveEditortm(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_TMURVE"))), curveEditorRES(new CurveEditorGroup(options.lastWaveletCurvesDir)), curveEditorGAM(new CurveEditorGroup(options.lastWaveletCurvesDir)), separatorNeutral(Gtk::manage(new Gtk::HSeparator())), @@ -126,6 +127,8 @@ Wavelet::Wavelet() : mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), + threswav(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESWAV"), 0.9, 2., 0.01, 1.4))), + softwav(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFWAV"), -10.0, 1000.0, 0.5, 1.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), @@ -159,6 +162,7 @@ Wavelet::Wavelet() : expsettings(Gtk::manage(new MyExpander(false, M("TP_WAVELET_SETTINGS")))), exptoning(Gtk::manage(new MyExpander(true, M("TP_WAVELET_TON")))), expclari(Gtk::manage(new MyExpander(true, M("TP_WAVELET_CLARI")))), + exptm(Gtk::manage(new MyExpander(true, M("TP_WAVELET_TM")))), neutrHBox(Gtk::manage(new Gtk::HBox())), usharpHBox(Gtk::manage(new Gtk::HBox())) { @@ -175,6 +179,10 @@ Wavelet::Wavelet() : EvWavscale = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSCALE"); EvWavradius = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVRADIUS"); EvWavsigma = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSIGMA"); + EvWavenatm = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVTM"); + EvWavthreswav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_THRESWAV"); + EvWavsoftwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SOFTWAV"); + EvWavtmshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_TMSHAPE"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -193,6 +201,9 @@ Wavelet::Wavelet() : expedge->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expedge)); enableEdgeConn = expedge->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), expedge)); + exptm->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), exptm)); + enabletmConn = exptm->signal_enabled_toggled().connect(sigc::bind(sigc::mem_fun(this, &Wavelet::enableToggled), exptm)); + expgamut->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expgamut)); expresid->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expresid)); @@ -623,6 +634,31 @@ Wavelet::Wavelet() : edgBox->pack_start(*ctboxES); +//TM Wavelet + ToolParamBlock* const tmBox = Gtk::manage(new ToolParamBlock()); + + curveEditortm->setCurveListener(this); + + tmshape = static_cast(curveEditortm->addCurve(CT_Flat, "", nullptr, false, false)); + + tmshape->setIdentityValue(0.); + tmshape->setResetCurve(FlatCurveType(default_params.tmcurve.at(0)), default_params.tmcurve); + tmshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_CC_TOOLTIP")); + + curveEditortm->curveListComplete(); + curveEditortm->show(); + + tmBox->pack_start(*curveEditortm, Gtk::PACK_SHRINK, 4); + + + threswav->setAdjusterListener(this); + tmBox->pack_start(*threswav); + + softwav->setLogScale(10, -10); + softwav->setAdjusterListener(this); + tmBox->pack_start(*softwav); + + // Gamut ToolParamBlock* const conBox = Gtk::manage(new ToolParamBlock()); @@ -939,6 +975,10 @@ Wavelet::Wavelet() : expedge->setLevel(2); pack_start(*expedge); + exptm->add(*tmBox, false); + exptm->setLevel(2); + pack_start(*exptm); + expclari->add(*clariBox, false); expclari->setLevel(2); pack_start(*expclari); @@ -959,6 +999,7 @@ Wavelet::~Wavelet() delete opaCurveEditorG; delete opacityCurveEditorG; + delete curveEditortm; delete CCWcurveEditorG; delete curveEditorRES; delete curveEditorGAM; @@ -1177,6 +1218,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) Lmethod->set_active(selectedLevel == -1 ? 4 : selectedLevel); ccshape->setCurve(pp->wavelet.ccwcurve); + tmshape->setCurve(pp->wavelet.tmcurve); opacityShapeRG->setCurve(pp->wavelet.opacityCurveRG); opacityShapeBY->setCurve(pp->wavelet.opacityCurveBY); opacityShape->setCurve(pp->wavelet.opacityCurveW); @@ -1187,6 +1229,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) expcontrast->setEnabled(pp->wavelet.expcontrast); expchroma->setEnabled(pp->wavelet.expchroma); expedge->setEnabled(pp->wavelet.expedge); + exptm->setEnabled(pp->wavelet.exptm); expresid->setEnabled(pp->wavelet.expresid); expfinal->setEnabled(pp->wavelet.expfinal); exptoning->setEnabled(pp->wavelet.exptoning); @@ -1266,6 +1309,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) pastlev->setValue(pp->wavelet.pastlev); satlev->setValue(pp->wavelet.satlev); edgcont->setValue(pp->wavelet.edgcont); + threswav->setValue(pp->wavelet.threswav); + softwav->setValue(pp->wavelet.softwav); greenlow->setValue(pp->wavelet.greenlow); bluelow->setValue(pp->wavelet.bluelow); @@ -1363,9 +1408,11 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) set_inconsistent(multiImage && !pedited->wavelet.enabled); ccshape->setUnChanged(!pedited->wavelet.ccwcurve); + tmshape->setUnChanged(!pedited->wavelet.tmcurve); expcontrast->set_inconsistent(!pedited->wavelet.expcontrast); expchroma->set_inconsistent(!pedited->wavelet.expchroma); expedge->set_inconsistent(!pedited->wavelet.expedge); + exptm->set_inconsistent(!pedited->wavelet.exptm); expresid->set_inconsistent(!pedited->wavelet.expresid); expfinal->set_inconsistent(!pedited->wavelet.expfinal); expclari->set_inconsistent(!pedited->wavelet.expclari); @@ -1437,6 +1484,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) satlev->setEditedState(pedited->wavelet.satlev ? Edited : UnEdited); strength->setEditedState(pedited->wavelet.strength ? Edited : UnEdited); edgcont->setEditedState(pedited->wavelet.edgcont ? Edited : UnEdited); + threswav->setEditedState(pedited->wavelet.threswav ? Edited : UnEdited); + softwav->setEditedState(pedited->wavelet.softwav ? Edited : UnEdited); level0noise->setEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -1542,6 +1591,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) void Wavelet::setEditProvider(EditDataProvider *provider) { ccshape->setEditProvider(provider); + tmshape->setEditProvider(provider); opacityShapeRG->setEditProvider(provider); opacityShapeBY->setEditProvider(provider); opacityShape->setEditProvider(provider); @@ -1554,6 +1604,7 @@ void Wavelet::setEditProvider(EditDataProvider *provider) void Wavelet::autoOpenCurve() { ccshape->openIfNonlinear(); + tmshape->openIfNonlinear(); //opacityShapeRG->openIfNonlinear(); //opacityShapeBY->openIfNonlinear(); } @@ -1604,11 +1655,14 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.hllev = hllev->getValue (); pp->wavelet.bllev = bllev->getValue (); pp->wavelet.edgcont = edgcont->getValue (); + pp->wavelet.threswav = threswav->getValue(); + pp->wavelet.softwav = softwav->getValue(); pp->wavelet.level0noise = level0noise->getValue (); pp->wavelet.level1noise = level1noise->getValue (); pp->wavelet.level2noise = level2noise->getValue (); pp->wavelet.level3noise = level3noise->getValue (); pp->wavelet.ccwcurve = ccshape->getCurve(); + pp->wavelet.tmcurve = tmshape->getCurve(); pp->wavelet.opacityCurveRG = opacityShapeRG->getCurve(); pp->wavelet.opacityCurveBY = opacityShapeBY->getCurve(); pp->wavelet.opacityCurveW = opacityShape->getCurve(); @@ -1633,6 +1687,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.expcontrast = expcontrast->getEnabled(); pp->wavelet.expchroma = expchroma->getEnabled(); pp->wavelet.expedge = expedge->getEnabled(); + pp->wavelet.exptm = exptm->getEnabled(); pp->wavelet.expresid = expresid->getEnabled(); pp->wavelet.expfinal = expfinal->getEnabled(); pp->wavelet.exptoning = exptoning->getEnabled(); @@ -1707,7 +1762,10 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.skinprotect = skinprotect->getEditedState(); pedited->wavelet.hllev = hllev->getEditedState(); pedited->wavelet.ccwcurve = !ccshape->isUnChanged(); + pedited->wavelet.tmcurve = !tmshape->isUnChanged(); pedited->wavelet.edgcont = edgcont->getEditedState(); + pedited->wavelet.threswav = threswav->getEditedState(); + pedited->wavelet.softwav = softwav->getEditedState(); pedited->wavelet.level0noise = level0noise->getEditedState(); pedited->wavelet.level1noise = level1noise->getEditedState(); pedited->wavelet.level2noise = level2noise->getEditedState(); @@ -1738,6 +1796,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); pedited->wavelet.expedge = !expedge->get_inconsistent(); + pedited->wavelet.exptm = !exptm->get_inconsistent(); pedited->wavelet.expresid = !expresid->get_inconsistent(); pedited->wavelet.expfinal = !expfinal->get_inconsistent(); pedited->wavelet.exptoning = !exptoning->get_inconsistent(); @@ -1879,6 +1938,8 @@ void Wavelet::curveChanged(CurveEditor* ce) if (listener && getEnabled()) { if (ce == ccshape) { listener->panelChanged(EvWavCCCurve, M("HISTORY_CUSTOMCURVE")); + } else if (ce == tmshape) { + listener->panelChanged(EvWavtmshape, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeRG) { listener->panelChanged(EvWavColor, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeBY) { @@ -1945,6 +2006,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit pastlev->setDefault (defParams->wavelet.pastlev); satlev->setDefault (defParams->wavelet.satlev); edgcont->setDefault (defParams->wavelet.edgcont); + threswav->setDefault(defParams->wavelet.threswav); + softwav->setDefault(defParams->wavelet.softwav); level0noise->setDefault (defParams->wavelet.level0noise); level1noise->setDefault (defParams->wavelet.level1noise); level2noise->setDefault (defParams->wavelet.level2noise); @@ -2008,6 +2071,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit pastlev->setDefaultEditedState(pedited->wavelet.pastlev ? Edited : UnEdited); satlev->setDefaultEditedState(pedited->wavelet.satlev ? Edited : UnEdited); edgcont->setDefaultEditedState(pedited->wavelet.edgcont ? Edited : UnEdited); + threswav->setDefaultEditedState(pedited->wavelet.threswav ? Edited : UnEdited); + softwav->setDefaultEditedState(pedited->wavelet.softwav ? Edited : UnEdited); strength->setDefaultEditedState(pedited->wavelet.strength ? Edited : UnEdited); balance->setDefaultEditedState(pedited->wavelet.balance ? Edited : UnEdited); iter->setDefaultEditedState(pedited->wavelet.iter ? Edited : UnEdited); @@ -2057,6 +2122,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit hllev->setDefaultEditedState(Irrelevant); bllev->setDefaultEditedState(Irrelevant); edgcont->setDefaultEditedState(Irrelevant); + threswav->setDefaultEditedState(Irrelevant); + softwav->setDefaultEditedState(Irrelevant); level0noise->setDefaultEditedState(Irrelevant); level1noise->setDefaultEditedState(Irrelevant); level2noise->setDefaultEditedState(Irrelevant); @@ -2550,6 +2617,7 @@ void Wavelet::setBatchMode(bool batchMode) opacityCurveEditorG->setBatchMode(batchMode); opacityCurveEditorW->setBatchMode(batchMode); opacityCurveEditorWL->setBatchMode(batchMode); + curveEditortm->setBatchMode(batchMode); curveEditorRES->setBatchMode(batchMode); curveEditorGAM->setBatchMode(batchMode); sigma->showEditedCB(); @@ -2587,6 +2655,8 @@ void Wavelet::setBatchMode(bool batchMode) pastlev->showEditedCB(); satlev->showEditedCB(); edgcont->showEditedCB(); + threswav->showEditedCB(); + softwav->showEditedCB(); strength->showEditedCB(); balance->showEditedCB(); iter->showEditedCB(); @@ -2749,6 +2819,10 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavgreenlow, greenlow->getTextValue()); } else if (a == bluelow) { listener->panelChanged(EvWavbluelow, bluelow->getTextValue()); + } else if (a == threswav) { + listener->panelChanged(EvWavthreswav, threswav->getTextValue()); + } else if (a == softwav) { + listener->panelChanged(EvWavsoftwav, softwav->getTextValue()); } if ((a == correction[0] || a == correction[1] || a == correction[2] || a == correction[3] || a == correction[4] || a == correction[5] || a == correction[6] || a == correction[7] || a == correction[8])) { @@ -3270,6 +3344,7 @@ void Wavelet::foldAllButMe(GdkEventButton* event, MyExpander *expander) exptoning->set_expanded(exptoning == expander); expnoise->set_expanded(expnoise == expander); expedge->set_expanded(expedge == expander); + exptm->set_expanded(exptm == expander); expgamut->set_expanded(expgamut == expander); expresid->set_expanded(expresid == expander); expfinal->set_expanded(expfinal == expander); @@ -3292,6 +3367,8 @@ void Wavelet::enableToggled(MyExpander *expander) event = EvWavenanoise; } else if (expander == expedge) { event = EvWavenaedge; + } else if (expander == exptm) { + event = EvWavenatm; } else if (expander == expresid) { event = EvWavenares; } else if (expander == expfinal) { @@ -3354,6 +3431,7 @@ void Wavelet::writeOptions(std::vector &tpOpen) tpOpen.push_back(exptoning->get_expanded()); tpOpen.push_back(expnoise->get_expanded()); tpOpen.push_back(expedge->get_expanded()); + tpOpen.push_back(exptm->get_expanded()); tpOpen.push_back(expgamut->get_expanded()); tpOpen.push_back(expresid->get_expanded()); tpOpen.push_back(expfinal->get_expanded()); @@ -3369,6 +3447,7 @@ void Wavelet::updateToolState(const std::vector& tpOpen) exptoning->set_expanded(false); expnoise->set_expanded(false); expedge->set_expanded(false); + exptm->set_expanded(false); expgamut->set_expanded(false); expresid->set_expanded(false); expfinal->set_expanded(false); @@ -3376,17 +3455,18 @@ void Wavelet::updateToolState(const std::vector& tpOpen) return; } - if (tpOpen.size() >= 10) { + if (tpOpen.size() >= 11) { expsettings->set_expanded(tpOpen[0]); expcontrast->set_expanded(tpOpen[1]); expchroma->set_expanded(tpOpen[2]); exptoning->set_expanded(tpOpen[3]); expnoise->set_expanded(tpOpen[4]); expedge->set_expanded(tpOpen[5]); - expgamut->set_expanded(tpOpen[6]); - expresid->set_expanded(tpOpen[7]); - expfinal->set_expanded(tpOpen[8]); - expclari->set_expanded(tpOpen.at(9)); + exptm->set_expanded(tpOpen[6]); + expgamut->set_expanded(tpOpen[7]); + expresid->set_expanded(tpOpen[8]); + expfinal->set_expanded(tpOpen[9]); + expclari->set_expanded(tpOpen[10]); } } diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index d3b66657e..356241fa0 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -79,6 +79,10 @@ private: rtengine::ProcEvent EvWavscale; rtengine::ProcEvent EvWavradius; rtengine::ProcEvent EvWavsigma; + rtengine::ProcEvent EvWavenatm; + rtengine::ProcEvent EvWavthreswav; + rtengine::ProcEvent EvWavsoftwav; + rtengine::ProcEvent EvWavtmshape; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -140,6 +144,7 @@ private: CurveEditorGroup* const curveEditorG; CurveEditorGroup* const CCWcurveEditorG; + CurveEditorGroup* const curveEditortm; CurveEditorGroup* const curveEditorRES; CurveEditorGroup* const curveEditorGAM; Gtk::HSeparator* const separatorNeutral; @@ -158,6 +163,7 @@ private: DiagonalCurveEditor* clshape; FlatCurveEditor* ccshape; + FlatCurveEditor* tmshape; Gtk::CheckButton* const median; Gtk::CheckButton* const medianlev; Gtk::CheckButton* const linkedg; @@ -194,6 +200,7 @@ private: Adjuster* const strength; Adjuster* const balance; Adjuster* const iter; + Adjuster* greenlow; Adjuster* bluelow; Adjuster* greenmed; @@ -224,6 +231,8 @@ private: Adjuster* const mergeC; Adjuster* const softrad; Adjuster* const softradend; + Adjuster* const threswav; + Adjuster* const softwav; MyComboBoxText* const Lmethod; sigc::connection Lmethodconn; @@ -275,11 +284,12 @@ private: MyExpander* const expsettings; MyExpander* const exptoning; MyExpander* const expclari; + MyExpander* const exptm; Gtk::HBox* const neutrHBox; Gtk::HBox* const usharpHBox; - sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn, enableclariConn; + sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enabletmConn, enableFinalConn, enableclariConn; sigc::connection enableNoiseConn, enableResidConn, enableToningConn; sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn, showmaskConn; sigc::connection neutralPressedConn; From 0ffa61748d9acb2abdb97605cd0a05a7dd2e2c14 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 22 Mar 2020 15:31:36 +0100 Subject: [PATCH 378/453] Prepare ipwavelet and periph to TM --- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 4 ++-- rtengine/improcfun.h | 3 ++- rtengine/ipwavelet.cc | 2 +- rtengine/simpleprocess.cc | 4 ++-- 5 files changed, 9 insertions(+), 8 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index c2de5e0c5..8c3f4f140 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1003,7 +1003,7 @@ void Crop::update(int todo) unshar = new LabImage(labnCrop->W, labnCrop->H); provis = params.wavelet.CLmethod; params.wavelet.CLmethod = "all"; - parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); unshar->CopyFrom(labnCrop); params.wavelet.CLmethod = provis; @@ -1016,7 +1016,7 @@ void Crop::update(int todo) WaveParams.expnoise = false; } - parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = procont; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 682b26410..1ad3a0be1 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -898,7 +898,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) unshar = new LabImage(pW, pH); provis = params->wavelet.CLmethod; params->wavelet.CLmethod = "all"; - ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); unshar->CopyFrom(nprevl); @@ -912,7 +912,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) WaveParams.expnoise = false; } - ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index a06670b72..bb7588513 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -53,6 +53,7 @@ class OpacityCurve; class PipetteBuffer; class ToneCurve; class WavCurve; +class WavtmCurve; class WavOpacityCurveBY; class WavOpacityCurveRG; class WavOpacityCurveW; @@ -200,7 +201,7 @@ public: int pitch, int scale, const int luma, const int chroma/*, LUTf & Lcurve, LUTf & abcurve*/); void Tile_calc(int tilesize, int overlap, int kall, int imwidth, int imheight, int &numtiles_W, int &numtiles_H, int &tilewidth, int &tileheight, int &tileWskip, int &tileHskip); - void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); + void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavtmCurve & wavtmCurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 758a9147b..4207eb6d9 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -133,7 +133,7 @@ struct cont_params { int wavNestedLevels = 1; -void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) +void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavtmCurve & wavtmCurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) { diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index e519d5a56..f5bfd81df 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1152,7 +1152,7 @@ private: unshar = new LabImage(fw, fh); provis = params.wavelet.CLmethod; params.wavelet.CLmethod = "all"; - ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); unshar->CopyFrom(labView); params.wavelet.CLmethod = provis; @@ -1164,7 +1164,7 @@ private: WaveParams.expnoise = false; } - ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavtmCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = procont; From 5bba83f5213d9092697cf5fd4655e05471bd0eed Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 23 Mar 2020 10:32:29 +0100 Subject: [PATCH 379/453] Prepare 2 - to TM wavelet --- rtengine/improcfun.h | 2 + rtengine/ipwavelet.cc | 193 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 195 insertions(+) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index bb7588513..caad76a4f 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -188,6 +188,7 @@ public: void EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterates, int skip, struct cont_params& cp, int W_L, int H_L, float max0, float min0); void CompressDR(float *Source, int W_L, int H_L, float Compression, float DetailBoost); + void Compresslevels2(float **Source, int W_L, int H_L, float compression, float detailattenuator, float thres, float mean, float maxp, float meanN, float maxN, float madL); void ContrastResid(float * WavCoeffs_L0, struct cont_params &cp, int W_L, int H_L, float max0, float min0); void EPDToneMap(LabImage *lab, unsigned int Iterates = 0, int skip = 1); @@ -225,6 +226,7 @@ public: void Sigma(float * HH_Coeffs, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg); void calckoe(float ** WavCoeffs_LL, const cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr); + void softproc2(const LabImage* bufcolorig, const LabImage* bufcolfin, float rad, int bfh, int bfw, double epsilmax, double epsilmin, float thres, int sk, bool multiThread, int flag); void Median_Denoise(float **src, float **dst, int width, int height, Median medianType, int iterations, int numThreads, float **buffer = nullptr); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 4207eb6d9..ff8efb543 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -32,6 +32,7 @@ #include "EdgePreservingDecomposition.h" #include "iccstore.h" #include "improcfun.h" +#include "imagefloat.h" #include "labimage.h" #include "LUT.h" #include "median.h" @@ -845,6 +846,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } +//here TM wavelet....big memory + + //init for edge and denoise float vari[4]; @@ -3481,4 +3485,193 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } } } + +void ImProcFunctions::softproc2(const LabImage* bufcolorig, const LabImage* bufcolfin, float rad, int bfh, int bfw, double epsilmax, double epsilmin, float thres, int sk, bool multiThread, int flag) +{ + if (flag == 0) { + if (rad > 0.f) { + array2D ble(bfw, bfh); + array2D guid(bfw, bfh); + Imagefloat *tmpImage = nullptr; + tmpImage = new Imagefloat(bfw, bfh); + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < bfh; ir++) + for (int jr = 0; jr < bfw; jr++) { + + float X, Y, Z; + float L = bufcolorig->L[ir][jr]; + float a = bufcolorig->a[ir][jr]; + float b = bufcolorig->b[ir][jr]; + Color::Lab2XYZ(L, a, b, X, Y, Z); + + guid[ir][jr] = Y / 32768.f; + float La = bufcolfin->L[ir][jr]; + float aa = bufcolfin->a[ir][jr]; + float ba = bufcolfin->b[ir][jr]; + Color::Lab2XYZ(La, aa, ba, X, Y, Z); + tmpImage->r(ir, jr) = X; + tmpImage->g(ir, jr) = Y; + tmpImage->b(ir, jr) = Z; + + ble[ir][jr] = Y / 32768.f; + } + + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * 0.1 * rad + bepsil; + + float blur = 10.f / sk * (thres + 0.8f * rad); + rtengine::guidedFilter(guid, ble, ble, blur, epsil, multiThread, 4); + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < bfh; ir++) + for (int jr = 0; jr < bfw; jr++) { + float X = tmpImage->r(ir, jr); + float Y = 32768.f * ble[ir][jr]; + float Z = tmpImage->b(ir, jr); + float L, a, b; + Color::XYZ2Lab(X, Y, Z, L, a, b); + bufcolfin->L[ir][jr] = L; + } + + delete tmpImage; + } + } else if (flag == 1) { + if (rad > 0.f) { + array2D ble(bfw, bfh); + array2D blechro(bfw, bfh); + array2D hue(bfw, bfh); + array2D guid(bfw, bfh); + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < bfh; ir++) + for (int jr = 0; jr < bfw; jr++) { +// hue[ir][jr] = xatan2f(bufcolfin->b[ir][jr], bufcolfin->a[ir][jr]); +// float chromah = sqrt(SQR(bufcolfin->b[ir][jr]) + SQR(bufcolfin->a[ir][jr])); + + ble[ir][jr] = (bufcolfin->L[ir][jr]) / 32768.f; +// blechro[ir][jr] = chromah / 32768.f; + guid[ir][jr] = bufcolorig->L[ir][jr] / 32768.f; + } + + double aepsil = (epsilmax - epsilmin) / 90.f; + double bepsil = epsilmax - 100.f * aepsil; + double epsil = aepsil * 0.1 * rad + bepsil; + + if (rad != 0.f) { + float blur = rad; + blur = blur < 0.f ? -1.f / blur : 1.f + blur; + // int r1 = max(int(4 / sk * blur + 0.5), 1); + int r2 = max(int(25 / sk * blur + 0.5), 1); + + if (rad < 0.f) { + epsil = 0.0001; + } + + rtengine::guidedFilter(guid, ble, ble, r2, epsil, multiThread); +// rtengine::guidedFilter(guid, blechro, blechro, r1, 0.5 * epsil, multiThread); + } + + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int ir = 0; ir < bfh; ir++) + for (int jr = 0; jr < bfw; jr++) { + // float2 sincosval = xsincosf(hue[ir][jr]); + + bufcolfin->L[ir][jr] = 32768.f * ble[ir][jr]; + // bufcolfin->a[ir][jr] = 32768.f * sincosval.y * blechro[ir][jr]; + // bufcolfin->b[ir][jr] = 32768.f * sincosval.x * blechro[ir][jr]; + } + } + + } +} + + +void ImProcFunctions::Compresslevels2(float **Source, int W_L, int H_L, float compression, float detailattenuator, float thres, float mean, float maxp, float meanN, float maxN, float madL) +{ + //J.Desmis 12-2019 + + float exponent; + + // printf("maxp=%f maxn=%f\n", maxp, maxn); + if (detailattenuator > 0.f && detailattenuator < 0.05f) { + float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; //0.69315 = log(2) + exponent = 1.2f * xlogf(-betemp); + exponent /= 20.f; + } else if (detailattenuator >= 0.05f && detailattenuator < 0.25f) { + float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; + exponent = 1.2f * xlogf(-betemp); + exponent /= (-75.f * detailattenuator + 23.75f); + } else if (detailattenuator >= 0.25f) { + float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; + exponent = 1.2f * xlogf(-betemp); + exponent /= (-2.f * detailattenuator + 5.5f); + } else { + exponent = (compression - 1.0f) / 20.f; + } + + exponent += 1.f; + + + float ap = (thres - 1.f) / (maxp - mean); + float bp = 1.f - ap * mean; + + float a0 = (1.33f * thres - 1.f) / (1.f - mean); + float b0 = 1.f - a0 * mean; + + float apn = (thres - 1.f) / (maxN - meanN); + float bpn = 1.f - apn * meanN; + + float a0n = (1.33f * thres - 1.f) / (1.f - meanN); + float b0n = 1.f - a0n * meanN; + + +#ifdef _OPENMP + #pragma omp parallel for +#endif + + for (int y = 0; y < H_L; y++) { + for (int x = 0; x < W_L; x++) { + float expone = 1.f; + + if (Source[y][x] >= 0.f) { + + if (Source[y][x] > mean) { + expone = 1.f + (exponent - 1.f) * (ap * Source[y][x] + bp); + } else { + expone = 1.f + (exponent - 1.f) * (a0 * Source[y][x] + b0); + } + + Source[y][x] = xexpf(xlogf(Source[y][x] + 0.05f * madL) * expone); + } else if (Source[y][x] < 0.f) { + if (-Source[y][x] > mean) { + expone = 1.f + (exponent - 1.f) * (apn * -Source[y][x] + bpn); + } else { + expone = 1.f + (exponent - 1.f) * (a0n * -Source[y][x] + b0n); + } + + Source[y][x] = -xexpf(xlogf(-Source[y][x] + 0.05f * madL) * expone); + } + } + } + +} + } From e0d36fb41bd7855cee7f7a4b456ffca710798ea8 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 23 Mar 2020 18:10:59 +0100 Subject: [PATCH 380/453] First algo TM wavelet --- rtengine/ipwavelet.cc | 136 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 135 insertions(+), 1 deletion(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index ff8efb543..9d5237273 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -124,6 +124,7 @@ struct cont_params { bool finena; bool toningena; bool noiseena; + bool tmena; int maxilev; float edgsens; float edgampl; @@ -204,6 +205,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.finena = params->wavelet.expfinal; cp.toningena = params->wavelet.exptoning; cp.noiseena = params->wavelet.expnoise; + cp.tmena = params->wavelet.exptm; if (params->wavelet.Backmethod == "black") { cp.backm = 0; @@ -846,7 +848,139 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } -//here TM wavelet....big memory + //here TM wavelet + if(cp.tmena ){ + float mean2[10]; + float meanN2[10]; + float sigma2[10]; + float sigmaN2[10]; + float MaxP2[10]; + float MaxN2[10]; + //calculate mean, amx, etc. + Evaluate2(*Ldecomp, mean2, meanN2, sigma2, sigmaN2, MaxP2, MaxN2); + + int leve = levwavL; + int dir = 3; + int WW = labco->W; + int HH = labco->H; + float ****templevel = nullptr; + templevel = new float***[dir]; + + //allocate memory for 3 DIR n levels, HH, WW + for (int d = 0; d < dir; d++) { + templevel[d] = new float**[leve]; + + for (int k = 0; k < leve; k++) { + templevel[d][k] = new float*[HH]; + + for (int i = 0; i < HH; i++) { + templevel[d][k][i] = new float[WW]; + } + } + } + +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic,16) +#endif + //fill templevel with decomp for each level, each dir,X Y + for (int dir = 1; dir < 4; dir++) { + for (int level = 0; level < levwavL; ++level) { + int W_L = Ldecomp->level_W(level); + int H_L = Ldecomp->level_H(level); + float **wav_L = Ldecomp->level_coeffs(level); + madL[level][dir - 1] = Mad(wav_L[dir], W_L * H_L);//evaluate noise by level + + for (int y = 0; y < H_L; y++) { + for (int x = 0; x < W_L; x++) { + float val = wav_L[dir][y * W_L + x]; + templevel[dir - 1][level][y][x] = val; + } + } + } + } + + + float thres = params->wavelet.threswav; + + bool wavcurvecomp = false;//not enable if 0.75 + + if (wavtmCurve) { + for (int i = 0; i < 500; i++) { + if (wavtmCurve[i] != 0.75) { + wavcurvecomp = true; + } + } + } + + //for each level, dir calculate templevel with compression + for (int dir = 1; dir < 4; dir++) { + for (int level = 0; level < levwavL; ++level) { + int W_L = Ldecomp->level_W(level); + int H_L = Ldecomp->level_H(level); + + if (wavtmCurve && wavcurvecomp) { + float klev = (wavtmCurve[level * 55.5f] - 0.75f); + + if (klev < 0.f) { + klev *= 2.6666f;//compression increase contraste + } else { + klev *= 4.f;//dilatation reduce contraste - detailattenuator + } + + float compression = expf(-klev); + float detailattenuator = klev; + + if (klev < 0.0f) { + detailattenuator = 0.0f; + } + Compresslevels2(templevel[dir - 1][level], W_L, H_L, compression, detailattenuator, thres, mean2[level], MaxP2[level], meanN2[level], MaxN2[level], madL[level][dir - 1]); + } + } + } + + //retrieve decomp +#ifdef _OPENMP + #pragma omp parallel for schedule(dynamic,16) +#endif + + for (int dir = 1; dir < 4; dir++) { + for (int level = 0; level < levwavL ; ++level) { + int W_L = Ldecomp->level_W(level); + int H_L = Ldecomp->level_H(level); + float **wav_L = Ldecomp->level_coeffs(level); + + for (int y = 0; y < H_L; y++) { + for (int x = 0; x < W_L; x++) { + wav_L[dir][y * W_L + x] = templevel[dir - 1][level][y][x]; + } + } + } + } + + + //free memory + for (int i = 0; i < dir; i++) { + for (int j = 0; j < leve; j++) { + for (int l = 0; l < HH; l++) { + delete [] templevel[i][j][l]; + } + } + } + + for (int i = 0; i < dir; i++) { + for (int j = 0; j < leve; j++) { + delete [] templevel[i][j]; + } + } + + for (int i = 0; i < dir; i++) { + delete [] templevel[i]; + } + + delete [] templevel; + + } + // end TM wavelet //init for edge and denoise From 6d154bcdae6890a77a0374119464ee91ce533325 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 24 Mar 2020 11:29:50 +0100 Subject: [PATCH 381/453] Wavelet - Give possibility to use old algo SH residual image --- rtdata/languages/default | 2 ++ rtengine/ipwavelet.cc | 48 +++++++++++++++++++++++++++++++++++++++- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 +++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 42 +++++++++++++++++++++++++++++++++-- rtgui/wavelet.h | 7 ++++-- 8 files changed, 106 insertions(+), 5 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index fe6ddaa7c..3229e1015 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -802,6 +802,7 @@ HISTORY_MSG_WAVSIGMA;Sigma HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method +HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2243,6 +2244,7 @@ TP_WAVELET_NPLOW;Low TP_WAVELET_NPNONE;None TP_WAVELET_NPTYPE;Neighboring pixels TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. +TP_WAVELET_OLDSH;Old algorithm using negatives values TP_WAVELET_OPACITY;Opacity Blue-Yellow TP_WAVELET_OPACITYW;Contrast balance d/v-h curve TP_WAVELET_OPACITYWL;Final local contrast diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 758a9147b..54d103b7b 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -63,6 +63,7 @@ struct cont_params { float conresH; float radius; float chrores; + bool oldsh; float hueres; float sky; float b_l, t_l, b_r, t_r; @@ -387,6 +388,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.conresH = waparams.resconH; cp.radius = waparams.radius; cp.chrores = waparams.reschro; + cp.oldsh = waparams.oldsh; //cp.hueres=waparams.reshue; cp.hueres = 2.f; cp.th = float(waparams.thr); @@ -1689,7 +1691,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } - if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step + if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena && !cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step LabImage *temp = nullptr; temp = new LabImage(W_L, H_L); #ifdef _OPENMP @@ -1721,6 +1723,50 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } + if((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena && cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step +#ifdef _OPENMP + #pragma omp for nowait +#endif + + for (int i = 0; i < W_L * H_L; i++) { + float LL = WavCoeffs_L0[i]; + float LL100 = LL / 327.68f; + float tran = 5.f;//transition + //shadow + float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? + + if(cp.th > (100.f - tran)) { + tran = 100.f - cp.th; + } + + if(LL100 < cp.th) { + float aalp = (1.f - alp) / cp.th; //no changes for LL100 = cp.th + float kk = aalp * LL100 + alp; + WavCoeffs_L0[i] *= (1.f + kk * cp.conres / 200.f); + } else if(LL100 < cp.th + tran) { + float ath = -cp.conres / tran; + float bth = cp.conres - ath * cp.th; + WavCoeffs_L0[i] *= (1.f + (LL100 * ath + bth) / 200.f); + } + + //highlight + tran = 5.f; + + if(cp.thH < (tran)) { + tran = cp.thH; + } + + if(LL100 > cp.thH) { + WavCoeffs_L0[i] *= (1.f + cp.conresH / 200.f); + } else if(LL100 > (cp.thH - tran)) { + float athH = cp.conresH / tran; + float bthH = cp.conresH - athH * cp.thH; + WavCoeffs_L0[i] *= (1.f + (LL100 * athH + bthH) / 200.f); + } + } + } + + #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index e795d9bd9..879423961 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2243,6 +2243,7 @@ WaveletParams::WaveletParams() : lipst(false), avoid(false), showmask(false), + oldsh(true), tmr(false), strength(100), balance(0), @@ -2343,6 +2344,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && lipst == other.lipst && avoid == other.avoid && showmask == other.showmask + && oldsh == other.oldsh && tmr == other.tmr && strength == other.strength && balance == other.balance @@ -3562,6 +3564,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.edgthresh, "Wavelet", "ThrEdg", wavelet.edgthresh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.avoid, "Wavelet", "AvoidColorShift", wavelet.avoid, keyFile); saveToKeyfile(!pedited || pedited->wavelet.showmask, "Wavelet", "Showmask", wavelet.showmask, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.oldsh, "Wavelet", "Oldsh", wavelet.oldsh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmr, "Wavelet", "TMr", wavelet.tmr, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigma, "Wavelet", "Sigma", wavelet.sigma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.rescon, "Wavelet", "ResidualcontShadow", wavelet.rescon, keyFile); @@ -4654,6 +4657,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Lipst", pedited, wavelet.lipst, pedited->wavelet.lipst); assignFromKeyfile(keyFile, "Wavelet", "AvoidColorShift", pedited, wavelet.avoid, pedited->wavelet.avoid); assignFromKeyfile(keyFile, "Wavelet", "Showmask", pedited, wavelet.showmask, pedited->wavelet.showmask); + assignFromKeyfile(keyFile, "Wavelet", "Oldsh", pedited, wavelet.oldsh, pedited->wavelet.oldsh); assignFromKeyfile(keyFile, "Wavelet", "TMr", pedited, wavelet.tmr, pedited->wavelet.tmr); if (ppVersion < 331) { // wavelet.Lmethod was a string before version 331 diff --git a/rtengine/procparams.h b/rtengine/procparams.h index aabe1e7ae..2eb18781d 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1211,6 +1211,7 @@ struct WaveletParams { bool lipst; bool avoid; bool showmask; + bool oldsh; bool tmr; int strength; int balance; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 48ba4c341..66a302f55 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -494,6 +494,7 @@ void ParamsEdited::set(bool v) wavelet.ushamethod = v; wavelet.avoid = v; wavelet.showmask = v; + wavelet.oldsh = v; wavelet.tmr = v; wavelet.Lmethod = v; wavelet.CLmethod = v; @@ -1090,6 +1091,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.ushamethod = wavelet.ushamethod && p.wavelet.ushamethod == other.wavelet.ushamethod; wavelet.avoid = wavelet.avoid && p.wavelet.avoid == other.wavelet.avoid; wavelet.showmask = wavelet.showmask && p.wavelet.showmask == other.wavelet.showmask; + wavelet.oldsh = wavelet.oldsh && p.wavelet.oldsh == other.wavelet.oldsh; wavelet.tmr = wavelet.tmr && p.wavelet.tmr == other.wavelet.tmr; wavelet.Lmethod = wavelet.Lmethod && p.wavelet.Lmethod == other.wavelet.Lmethod; wavelet.CLmethod = wavelet.CLmethod && p.wavelet.CLmethod == other.wavelet.CLmethod; @@ -2945,6 +2947,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.showmask = mods.wavelet.showmask; } + if (wavelet.oldsh) { + toEdit.wavelet.oldsh = mods.wavelet.oldsh; + } + if (wavelet.tmr) { toEdit.wavelet.tmr = mods.wavelet.tmr; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d2707ec11..9e50031fb 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -508,6 +508,7 @@ struct WaveletParamsEdited { bool ushamethod; bool avoid; bool showmask; + bool oldsh; bool tmr; bool c[9]; bool ch[9]; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 7d9a65f2a..e314ee018 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -79,10 +79,11 @@ Wavelet::Wavelet() : avoid(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_AVOID")))), tmr(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_BALCHRO")))), showmask(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_SHOWMASK")))), + oldsh(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_OLDSH")))), neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), sigma(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMA"), 0.2, 2.5, 0.01, 1.))), - rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), 0, 100, 1, 0))), - resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), 0, 100, 1, 0))), + rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), + resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), @@ -175,6 +176,7 @@ Wavelet::Wavelet() : EvWavscale = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSCALE"); EvWavradius = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVRADIUS"); EvWavsigma = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSIGMA"); + EvWavoldsh = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOLDSH"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -675,6 +677,9 @@ Wavelet::Wavelet() : // Residual Image ToolParamBlock* const resBox = Gtk::manage(new ToolParamBlock()); + oldsh->set_active(true); + oldshConn = oldsh->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::oldshToggled)); + resBox->pack_start(*oldsh); rescon->setAdjusterListener(this); resBox->pack_start(*rescon, Gtk::PACK_SHRINK); @@ -1200,6 +1205,9 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) showmaskConn.block(true); showmask->set_active(pp->wavelet.showmask); showmaskConn.block(false); + oldshConn.block(true); + oldsh->set_active(pp->wavelet.oldsh); + oldshConn.block(false); tmrConn.block(true); tmr->set_active(pp->wavelet.tmr); tmrConn.block(false); @@ -1230,6 +1238,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) lastlipst = pp->wavelet.lipst; lastavoid = pp->wavelet.avoid; lastshowmask = pp->wavelet.showmask; + lastoldsh = pp->wavelet.oldsh; lasttmr = pp->wavelet.tmr; sigma->setValue(pp->wavelet.sigma); rescon->setValue(pp->wavelet.rescon); @@ -1380,6 +1389,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) clshape->setUnChanged(!pedited->wavelet.wavclCurve); avoid->set_inconsistent(!pedited->wavelet.avoid); showmask->set_inconsistent(!pedited->wavelet.showmask); + oldsh->set_inconsistent(!pedited->wavelet.oldsh); tmr->set_inconsistent(!pedited->wavelet.tmr); edgthresh->setEditedState(pedited->wavelet.edgthresh ? Edited : UnEdited); rescon->setEditedState(pedited->wavelet.rescon ? Edited : UnEdited); @@ -1564,6 +1574,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.enabled = getEnabled(); pp->wavelet.avoid = avoid->get_active(); pp->wavelet.showmask = showmask->get_active(); + pp->wavelet.oldsh = oldsh->get_active(); pp->wavelet.tmr = tmr->get_active(); pp->wavelet.sigma = sigma->getValue(); pp->wavelet.rescon = rescon->getValue(); @@ -1654,6 +1665,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.enabled = !get_inconsistent(); pedited->wavelet.avoid = !avoid->get_inconsistent(); pedited->wavelet.showmask = !showmask->get_inconsistent(); + pedited->wavelet.oldsh = !oldsh->get_inconsistent(); pedited->wavelet.tmr = !tmr->get_inconsistent(); pedited->wavelet.median = !median->get_inconsistent(); pedited->wavelet.medianlev = !medianlev->get_inconsistent(); @@ -3120,6 +3132,32 @@ void Wavelet::showmaskToggled() } } +void Wavelet::oldshToggled() +{ + if (multiImage) { + if (oldsh->get_inconsistent()) { + oldsh->set_inconsistent(false); + oldshConn.block(true); + oldsh->set_active(false); + oldshConn.block(false); + } else if (lastoldsh) { + oldsh->set_inconsistent(true); + } + + lastoldsh = oldsh->get_active(); + } + + if (listener && (multiImage || getEnabled())) { + if (oldsh->get_inconsistent()) { + listener->panelChanged(EvWavoldsh, M("GENERAL_UNCHANGED")); + } else if (oldsh->get_active()) { + listener->panelChanged(EvWavoldsh, M("GENERAL_ENABLED")); + } else { + listener->panelChanged(EvWavoldsh, M("GENERAL_DISABLED")); + } + } +} + void Wavelet::tmrToggled() { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index d3b66657e..7aede083f 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -79,6 +79,7 @@ private: rtengine::ProcEvent EvWavscale; rtengine::ProcEvent EvWavradius; rtengine::ProcEvent EvWavsigma; + rtengine::ProcEvent EvWavoldsh; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -98,6 +99,7 @@ private: void TilesmethodChanged(); void avoidToggled(); void showmaskToggled (); + void oldshToggled (); void cbenabToggled(); void contrastMinusPressed(); void contrastPlusPressed(); @@ -166,6 +168,7 @@ private: Gtk::CheckButton* const avoid; Gtk::CheckButton* const tmr; Gtk::CheckButton* const showmask; + Gtk::CheckButton* const oldsh; Gtk::Button* const neutralchButton; Adjuster* correction[9]; @@ -281,13 +284,13 @@ private: sigc::connection enableChromaConn, enableContrastConn, enableEdgeConn, enableFinalConn, enableclariConn; sigc::connection enableNoiseConn, enableResidConn, enableToningConn; - sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn, showmaskConn; + sigc::connection medianConn, avoidConn, tmrConn, medianlevConn, linkedgConn, lipstConn, cbenabConn, neutralconn, showmaskConn, oldshConn; sigc::connection neutralPressedConn; sigc::connection contrastPlusPressedConn; sigc::connection contrastMinusPressedConn; sigc::connection neutralchPressedConn; - bool lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab, lastshowmask; + bool lastmedian, lastmedianlev, lastlinkedg, lastavoid, lastlipst, lasttmr, lastcbenab, lastshowmask, lastoldsh; int nextnlevel; IdleRegister idle_register; From 60c341c236b0f20f298d0785eab2fe0b62268521 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 24 Mar 2020 11:30:31 +0100 Subject: [PATCH 382/453] Wavelet - more --- rtengine/ipwavelet.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 54d103b7b..a899f5a9a 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1722,6 +1722,9 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } +#ifdef _OPENMP + #pragma omp barrier +#endif if((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena && cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step #ifdef _OPENMP From 2bb747b55fd7acf320852ef08db8275d3efb10d7 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 24 Mar 2020 13:46:28 +0100 Subject: [PATCH 383/453] Wvalet - hide radius when old algo --- rtgui/wavelet.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index e314ee018..63eb7743e 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -3134,6 +3134,12 @@ void Wavelet::showmaskToggled() void Wavelet::oldshToggled() { + if (oldsh->get_active()) { + radius->hide(); + } else { + radius->show(); + } + if (multiImage) { if (oldsh->get_inconsistent()) { oldsh->set_inconsistent(false); From cdf8d8ec7f3741af1299b9d524a97bb69858404c Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 25 Mar 2020 07:15:27 +0100 Subject: [PATCH 384/453] Wavelet - added offset to contrast levels --- rtdata/languages/default | 2 ++ rtengine/ipwavelet.cc | 21 +++++++++++---------- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 8 +++++++- rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 14 ++++++++++++++ rtgui/wavelet.h | 2 ++ 8 files changed, 42 insertions(+), 11 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 3229e1015..f8cf543d6 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -803,6 +803,7 @@ HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method HISTORY_MSG_WAVOLDSH;Old algorithm +HISTORY_MSG_WAVOFFSET;Offset HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2293,6 +2294,7 @@ TP_WAVELET_USH;None TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. +TP_WAVELET_WAVOFFSET;Offset TP_WBALANCE_AUTO;Auto TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_AUTOOLD;Auto RGB grey diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index a899f5a9a..9177db0cc 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1691,7 +1691,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } - if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena && !cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step + if ((cp.conres >= 0.f || cp.conresH >= 0.f) && cp.resena && !cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step LabImage *temp = nullptr; temp = new LabImage(W_L, H_L); #ifdef _OPENMP @@ -2894,13 +2894,14 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz const float skinprot = params->wavelet.skinprotect; const float skinprotneg = -skinprot; const float factorHard = (1.f - skinprotneg / 100.f); + const float offs = params->wavelet.offset; //to adjust increase contrast with local contrast //for each pixel and each level float beta; float mea[9]; - float rap = mean[level] - 2.f * cp.sigm * sigma[level]; + float rap = offs * mean[level] - 2.f * cp.sigm * sigma[level]; if (rap > 0.f) { mea[0] = rap; @@ -2908,7 +2909,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz mea[0] = mean[level] / 6.f; } - rap = mean[level] - cp.sigm * sigma[level]; + rap = offs * mean[level] - cp.sigm * sigma[level]; if (rap > 0.f) { mea[1] = rap; @@ -2916,13 +2917,13 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz mea[1] = mean[level] / 2.f; } - mea[2] = mean[level]; // 50% data - mea[3] = mean[level] + cp.sigm * sigma[level] / 2.f; - mea[4] = mean[level] + cp.sigm * sigma[level]; //66% - mea[5] = mean[level] + cp.sigm * 1.2f * sigma[level]; - mea[6] = mean[level] + cp.sigm * 1.5f * sigma[level]; // - mea[7] = mean[level] + cp.sigm * 2.f * sigma[level]; //95% - mea[8] = mean[level] + cp.sigm * 2.5f * sigma[level]; //99% + mea[2] = offs * mean[level]; // 50% data + mea[3] = offs * mean[level] + cp.sigm * sigma[level] / 2.f; + mea[4] = offs * mean[level] + cp.sigm * sigma[level]; //66% + mea[5] = offs * mean[level] + cp.sigm * 1.2f * sigma[level]; + mea[6] = offs * mean[level] + cp.sigm * 1.5f * sigma[level]; // + mea[7] = offs * mean[level] + cp.sigm * 2.f * sigma[level]; //95% + mea[8] = offs * mean[level] + cp.sigm * 2.5f * sigma[level]; //99% bool useChromAndHue = (skinprot != 0.f || cp.HSmet); float modchro; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 879423961..96d2302c8 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2274,6 +2274,7 @@ WaveletParams::WaveletParams() : Dirmethod("all"), HSmethod("with"), sigma(1.0), + offset(1.0), rescon(0), resconH(0), reschro(0), @@ -2382,6 +2383,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && Dirmethod == other.Dirmethod && HSmethod == other.HSmethod && sigma == other.sigma + && offset == other.offset && rescon == other.rescon && resconH == other.resconH && reschro == other.reschro @@ -3567,6 +3569,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.oldsh, "Wavelet", "Oldsh", wavelet.oldsh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmr, "Wavelet", "TMr", wavelet.tmr, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigma, "Wavelet", "Sigma", wavelet.sigma, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.offset, "Wavelet", "Offset", wavelet.offset, keyFile); saveToKeyfile(!pedited || pedited->wavelet.rescon, "Wavelet", "ResidualcontShadow", wavelet.rescon, keyFile); saveToKeyfile(!pedited || pedited->wavelet.resconH, "Wavelet", "ResidualcontHighlight", wavelet.resconH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thr, "Wavelet", "ThresholdResidShadow", wavelet.thr, keyFile); @@ -4687,6 +4690,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "HSMethod", pedited, wavelet.HSmethod, pedited->wavelet.HSmethod); assignFromKeyfile(keyFile, "Wavelet", "DirMethod", pedited, wavelet.Dirmethod, pedited->wavelet.Dirmethod); assignFromKeyfile(keyFile, "Wavelet", "Sigma", pedited, wavelet.sigma, pedited->wavelet.sigma); + assignFromKeyfile(keyFile, "Wavelet", "Offset", pedited, wavelet.offset, pedited->wavelet.offset); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontShadow", pedited, wavelet.rescon, pedited->wavelet.rescon); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontHighlight", pedited, wavelet.resconH, pedited->wavelet.resconH); assignFromKeyfile(keyFile, "Wavelet", "Residualchroma", pedited, wavelet.reschro, pedited->wavelet.reschro); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 2eb18781d..feee0391a 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1243,6 +1243,7 @@ struct WaveletParams { Glib::ustring Dirmethod; Glib::ustring HSmethod; double sigma; + double offset; int rescon; int resconH; int reschro; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 66a302f55..d80d98361 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -510,7 +510,8 @@ void ParamsEdited::set(bool v) wavelet.HSmethod = v; wavelet.Dirmethod = v; wavelet.sigma = v; - wavelet.rescon = v; + wavelet.sigma = v; + wavelet.offset = v; wavelet.resconH = v; wavelet.reschro = v; wavelet.tmrs = v; @@ -1107,6 +1108,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.HSmethod = wavelet.HSmethod && p.wavelet.HSmethod == other.wavelet.HSmethod; wavelet.Dirmethod = wavelet.Dirmethod && p.wavelet.Dirmethod == other.wavelet.Dirmethod; wavelet.sigma = wavelet.sigma && p.wavelet.sigma == other.wavelet.sigma; + wavelet.offset = wavelet.offset && p.wavelet.offset == other.wavelet.offset; wavelet.rescon = wavelet.rescon && p.wavelet.rescon == other.wavelet.rescon; wavelet.resconH = wavelet.resconH && p.wavelet.resconH == other.wavelet.resconH; wavelet.reschro = wavelet.reschro && p.wavelet.reschro == other.wavelet.reschro; @@ -3168,6 +3170,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.sigma = mods.wavelet.sigma; } + if (wavelet.offset) { + toEdit.wavelet.offset = mods.wavelet.offset; + } + if (wavelet.resconH) { toEdit.wavelet.resconH = dontforceSet && options.baBehav[ADDSET_WA_RESCONH] ? toEdit.wavelet.resconH + mods.wavelet.resconH : mods.wavelet.resconH; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 9e50031fb..8cd8e25f0 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -526,6 +526,7 @@ struct WaveletParamsEdited { bool daubcoeffmethod; bool Dirmethod; bool sigma; + bool offset; bool rescon; bool resconH; bool reschro; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 63eb7743e..956c52738 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -82,6 +82,7 @@ Wavelet::Wavelet() : oldsh(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_OLDSH")))), neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), sigma(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMA"), 0.2, 2.5, 0.01, 1.))), + offset(Gtk::manage(new Adjuster(M("TP_WAVELET_WAVOFFSET"), 0.33, 1.66, 0.01, 1., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))), rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), @@ -177,6 +178,7 @@ Wavelet::Wavelet() : EvWavradius = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVRADIUS"); EvWavsigma = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSIGMA"); EvWavoldsh = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOLDSH"); + EvWavoffset = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOFFSET"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -331,6 +333,8 @@ Wavelet::Wavelet() : sigma->setAdjusterListener(this); levBox->pack_start(*sigma, Gtk::PACK_SHRINK); + offset->setAdjusterListener(this); + levBox->pack_start(*offset, Gtk::PACK_SHRINK); levBox->pack_start(*sup); sup->setAdjusterListener(this); @@ -1241,6 +1245,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) lastoldsh = pp->wavelet.oldsh; lasttmr = pp->wavelet.tmr; sigma->setValue(pp->wavelet.sigma); + offset->setValue(pp->wavelet.offset); rescon->setValue(pp->wavelet.rescon); resconH->setValue(pp->wavelet.resconH); reschro->setValue(pp->wavelet.reschro); @@ -1394,6 +1399,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) edgthresh->setEditedState(pedited->wavelet.edgthresh ? Edited : UnEdited); rescon->setEditedState(pedited->wavelet.rescon ? Edited : UnEdited); sigma->setEditedState(pedited->wavelet.sigma ? Edited : UnEdited); + offset->setEditedState(pedited->wavelet.offset ? Edited : UnEdited); resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited); reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited); tmrs->setEditedState(pedited->wavelet.tmrs ? Edited : UnEdited); @@ -1577,6 +1583,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.oldsh = oldsh->get_active(); pp->wavelet.tmr = tmr->get_active(); pp->wavelet.sigma = sigma->getValue(); + pp->wavelet.offset = offset->getValue(); pp->wavelet.rescon = rescon->getValue(); pp->wavelet.resconH = resconH->getValue(); pp->wavelet.reschro = reschro->getValue(); @@ -1689,6 +1696,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.Dirmethod = Dirmethod->get_active_text() != M("GENERAL_UNCHANGED"); pedited->wavelet.edgthresh = edgthresh->getEditedState(); pedited->wavelet.sigma = sigma->getEditedState(); + pedited->wavelet.offset = offset->getEditedState(); pedited->wavelet.rescon = rescon->getEditedState(); pedited->wavelet.resconH = resconH->getEditedState(); pedited->wavelet.reschro = reschro->getEditedState(); @@ -1924,6 +1932,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit balance->setDefault(defParams->wavelet.balance); iter->setDefault(defParams->wavelet.iter); sigma->setDefault(defParams->wavelet.sigma); + offset->setDefault(defParams->wavelet.offset); rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); @@ -1986,6 +1995,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit softradend->setDefaultEditedState(pedited->wavelet.softradend ? Edited : UnEdited); sigma->setDefault(defParams->wavelet.sigma); + offset->setDefault(defParams->wavelet.offset); rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); @@ -2037,6 +2047,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit } } else { sigma->setDefaultEditedState(Irrelevant); + offset->setDefaultEditedState(Irrelevant); rescon->setDefaultEditedState(Irrelevant); resconH->setDefaultEditedState(Irrelevant); reschro->setDefaultEditedState(Irrelevant); @@ -2565,6 +2576,7 @@ void Wavelet::setBatchMode(bool batchMode) curveEditorRES->setBatchMode(batchMode); curveEditorGAM->setBatchMode(batchMode); sigma->showEditedCB(); + offset->showEditedCB(); rescon->showEditedCB(); resconH->showEditedCB(); reschro->showEditedCB(); @@ -2648,6 +2660,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavrescon, rescon->getTextValue()); } else if (a == sigma) { listener->panelChanged(EvWavsigma, sigma->getTextValue()); + } else if (a == offset) { + listener->panelChanged(EvWavoffset, offset->getTextValue()); } else if (a == resconH) { listener->panelChanged(EvWavresconH, resconH->getTextValue()); } else if (a == reschro) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 7aede083f..94b88fd5c 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -80,6 +80,7 @@ private: rtengine::ProcEvent EvWavradius; rtengine::ProcEvent EvWavsigma; rtengine::ProcEvent EvWavoldsh; + rtengine::ProcEvent EvWavoffset; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -174,6 +175,7 @@ private: Adjuster* correction[9]; Adjuster* correctionch[9]; Adjuster* const sigma; + Adjuster* const offset; Adjuster* const rescon; Adjuster* const resconH; Adjuster* const reschro; From ea56e57ec2bcb2be47a36fd62e8fb26e33429544 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 26 Mar 2020 07:19:54 +0100 Subject: [PATCH 385/453] First version blur by level --- rtdata/languages/default | 4 ++-- rtengine/improcfun.h | 4 ++-- rtengine/ipwavelet.cc | 51 +++++++++++++++++++++++++++++++++------- rtgui/wavelet.cc | 18 +++++++------- rtgui/wavelet.h | 2 +- 5 files changed, 57 insertions(+), 22 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 313f7055a..bf260961f 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -806,7 +806,7 @@ HISTORY_MSG_THRESWAV;Balance threshold HISTORY_MSG_SOFTWAV;Soft radius HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_MSG_WAVOFFSET;Offset -HISTORY_MSG_TMSHAPE;Compression by level +HISTORY_MSG_BLSHAPE;Blur by level HISTORY_MSG_WAVBL;Blur levels HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s @@ -2141,6 +2141,7 @@ TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider al TP_WAVELET_BANONE;None TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method +TP_WAVELET_BLCURVE;Blur by levels TP_WAVELET_CBENAB;Toning and Color Balance TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted TP_WAVELET_CCURVE;Local contrast @@ -2297,7 +2298,6 @@ TP_WAVELET_TMSCALE;Scale TP_WAVELET_TMSTRENGTH;Compression strength TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. TP_WAVELET_TMEDGS;Edge stopping -TP_WAVELET_TMURVE;(un)Compression by Level TP_WAVELET_TON;Toning TP_WAVELET_USH;None TP_WAVELET_USHARP;Clarity method diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index d896342d5..424084b8c 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -207,8 +207,8 @@ public: void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, const Wavblcurve & wavblcurve, struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); - void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const WavOpacityCurveW & waOpacityCurveW, - struct cont_params &cp, const bool useChannelA); + void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, + struct cont_params &cp, const bool useChannelA, int skip); void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, const cont_params &cp, FlatCurve* hhcurve, bool hhutili); void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 456a3bd1e..4600f14ec 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -59,6 +59,7 @@ struct cont_params { float sigm; int chrom; int chro; + float chrwav; int contrast; float th; float thH; @@ -209,6 +210,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.toningena = params->wavelet.exptoning; cp.noiseena = params->wavelet.expnoise; cp.blena = params->wavelet.expbl; + cp.chrwav = 0.01f * params->wavelet.chrwav; if (params->wavelet.Backmethod == "black") { cp.backm = 0; @@ -1061,7 +1063,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { - WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); + WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip); adecomp->reconstruct(labco->data + datalen, cp.strength); } } @@ -1080,7 +1082,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, waOpacityCurveW, cp, false); + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); } } @@ -1100,8 +1102,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, waOpacityCurveW, cp, false); + WaveletcontAllAB(labco, varhue, varchro, *adecomp,wavblcurve, waOpacityCurveW, cp, true, skip); + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); adecomp->reconstruct(labco->data + datalen, cp.strength); @@ -2085,9 +2087,9 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { bef[co] = WavCoeffs_L[dir][co]; } - klev = 0.25f * (wavblcurve[lvl * 55.5f]); + klev = (wavblcurve[lvl * 55.5f]); - klev *= 50.f / skip; + klev *= lvl * 50.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { @@ -2173,8 +2175,8 @@ void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoef } -void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_ab, const WavOpacityCurveW & waOpacityCurveW, - struct cont_params &cp, const bool useChannelA) +void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_ab, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, + struct cont_params &cp, const bool useChannelA, int skip) { int maxlvl = WaveletCoeffs_ab.maxlevel(); @@ -2297,6 +2299,16 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float } } + bool wavcurvecomp = false;//not enable if 0.75 + + if (wavblcurve) { + for (int i = 0; i < 500; i++) { + if (wavblcurve[i] != 0.) { + wavcurvecomp = true; + } + } + } + #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) #endif @@ -2309,6 +2321,29 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); + + if(wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { + float * bef = new float[Wlvl_ab * Hlvl_ab]; + float * aft = new float[Wlvl_ab * Hlvl_ab]; + float klev; + for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { + bef[co] = WavCoeffs_ab[dir][co]; + } + klev = (wavblcurve[lvl * 55.5f]); + + klev *= cp.chrwav * lvl * 100.f / skip; + + boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); + + for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { + WavCoeffs_ab[dir][co] = aft[co]; + } + + delete bef; + delete aft; + } + + } } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 1bea8a3fa..d5c5e55e8 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -63,7 +63,7 @@ Wavelet::Wavelet() : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"), true, true), curveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CONTEDIT"))), CCWcurveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CCURVE"))), - curveEditortm(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_TMURVE"))), + curveEditorbl(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_BLCURVE"))), curveEditorRES(new CurveEditorGroup(options.lastWaveletCurvesDir)), curveEditorGAM(new CurveEditorGroup(options.lastWaveletCurvesDir)), separatorNeutral(Gtk::manage(new Gtk::HSeparator())), @@ -186,7 +186,7 @@ Wavelet::Wavelet() : EvWavoldsh = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOLDSH"); EvWavoffset = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOFFSET"); EvWavsoftwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SOFTWAV"); - EvWavblshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_blshape"); + EvWavblshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLSHAPE"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -643,18 +643,18 @@ Wavelet::Wavelet() : //Blur Wavelet ToolParamBlock* const blBox = Gtk::manage(new ToolParamBlock()); - curveEditortm->setCurveListener(this); + curveEditorbl->setCurveListener(this); - blshape = static_cast(curveEditortm->addCurve(CT_Flat, "", nullptr, false, false)); + blshape = static_cast(curveEditorbl->addCurve(CT_Flat, "", nullptr, false, false)); blshape->setIdentityValue(0.); blshape->setResetCurve(FlatCurveType(default_params.blcurve.at(0)), default_params.blcurve); blshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_CC_TOOLTIP")); - curveEditortm->curveListComplete(); - curveEditortm->show(); + curveEditorbl->curveListComplete(); + curveEditorbl->show(); - blBox->pack_start(*curveEditortm, Gtk::PACK_SHRINK, 4); + blBox->pack_start(*curveEditorbl, Gtk::PACK_SHRINK, 4); chrwav->setAdjusterListener(this); @@ -1008,7 +1008,7 @@ Wavelet::~Wavelet() delete opaCurveEditorG; delete opacityCurveEditorG; - delete curveEditortm; + delete curveEditorbl; delete CCWcurveEditorG; delete curveEditorRES; delete curveEditorGAM; @@ -2640,7 +2640,7 @@ void Wavelet::setBatchMode(bool batchMode) opacityCurveEditorG->setBatchMode(batchMode); opacityCurveEditorW->setBatchMode(batchMode); opacityCurveEditorWL->setBatchMode(batchMode); - curveEditortm->setBatchMode(batchMode); + curveEditorbl->setBatchMode(batchMode); curveEditorRES->setBatchMode(batchMode); curveEditorGAM->setBatchMode(batchMode); sigma->showEditedCB(); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 15ad773fc..0d9081660 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -147,7 +147,7 @@ private: CurveEditorGroup* const curveEditorG; CurveEditorGroup* const CCWcurveEditorG; - CurveEditorGroup* const curveEditortm; + CurveEditorGroup* const curveEditorbl; CurveEditorGroup* const curveEditorRES; CurveEditorGroup* const curveEditorGAM; Gtk::HSeparator* const separatorNeutral; From c836376766dd210eafb38584f36bbfc62fa39503 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 26 Mar 2020 09:34:38 +0100 Subject: [PATCH 386/453] Blur residual luma and chroma --- rtdata/languages/default | 6 ++++ rtengine/ipwavelet.cc | 74 +++++++++++++++++++++++++++++++--------- rtengine/procparams.cc | 8 +++++ rtengine/procparams.h | 2 ++ rtgui/paramsedited.cc | 12 +++++++ rtgui/paramsedited.h | 2 ++ rtgui/wavelet.cc | 36 ++++++++++++++++++- rtgui/wavelet.h | 5 +++ 8 files changed, 128 insertions(+), 17 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index bf260961f..282327ba5 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -808,6 +808,8 @@ HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_MSG_WAVOFFSET;Offset HISTORY_MSG_BLSHAPE;Blur by level HISTORY_MSG_WAVBL;Blur levels +HISTORY_MSG_BLURWAV;Blur luminance +HISTORY_MSG_BLURCWAV;Blur chroma HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2142,6 +2144,7 @@ TP_WAVELET_BANONE;None TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method TP_WAVELET_BLCURVE;Blur by levels +TP_WAVELET_BLURFRAME;Blur TP_WAVELET_CBENAB;Toning and Color Balance TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted TP_WAVELET_CCURVE;Local contrast @@ -2262,6 +2265,8 @@ TP_WAVELET_RADIUS;Radius Shadows - Highlight TP_WAVELET_RE1;Reinforced TP_WAVELET_RE2;Unchanged TP_WAVELET_RE3;Reduced +TP_WAVELET_RESBLUR;Blur Luminance +TP_WAVELET_RESBLURC;Blur Chroma TP_WAVELET_RESCHRO;Intensity TP_WAVELET_RESCON;Shadows TP_WAVELET_RESCONH;Highlights @@ -2299,6 +2304,7 @@ TP_WAVELET_TMSTRENGTH;Compression strength TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. TP_WAVELET_TMEDGS;Edge stopping TP_WAVELET_TON;Toning +TP_WAVELET_TMTYPE;Compression method TP_WAVELET_USH;None TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 4600f14ec..461bdc7ac 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -65,6 +65,8 @@ struct cont_params { float thH; float conres; float conresH; + float blurres; + float blurcres; float radius; float chrores; bool oldsh; @@ -396,6 +398,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.radius = waparams.radius; cp.chrores = waparams.reschro; cp.oldsh = waparams.oldsh; + cp.blurres = waparams.resblur; + cp.blurcres = waparams.resblurc; //cp.hueres=waparams.reshue; cp.hueres = 2.f; cp.th = float(waparams.thr); @@ -1910,7 +1914,25 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } +//Blur luma + if(cp.blurres != 0.f && cp.resena) { + float rad = cp.blurres / skip; + float * bef = new float[W_L * H_L]; + float * aft = new float[W_L * H_L]; + for (int i = 0; i < H_L * W_L; i++) { + bef[i] = WavCoeffs_L0[i]; + } + boxblur(bef, aft, rad, W_L, H_L, false); + + for (int i = 0; i < H_L * W_L; i++) { + WavCoeffs_L0[i] = aft[i]; + } + + delete bef; + delete aft; + } +// #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif @@ -2054,15 +2076,15 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * // end } - bool wavcurvecomp = false;//not enable if 0.75 + bool wavcurvecomp = false;//not enable if 0.75 - if (wavblcurve) { - for (int i = 0; i < 500; i++) { - if (wavblcurve[i] != 0.) { - wavcurvecomp = true; - } - } - } + if (wavblcurve) { + for (int i = 0; i < 500; i++) { + if (wavblcurve[i] != 0.) { + wavcurvecomp = true; + } + } + } #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) @@ -2298,16 +2320,36 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float } } } + +//Blur chroma + if(cp.blurcres != 0.f && cp.resena) { + float rad = cp.blurcres / skip; + float * bef = new float[W_L * H_L]; + float * aft = new float[W_L * H_L]; - bool wavcurvecomp = false;//not enable if 0.75 + for (int i = 0; i < H_L * W_L; i++) { + bef[i] = WavCoeffs_ab0[i]; + } + boxblur(bef, aft, rad, W_L, H_L, false); - if (wavblcurve) { - for (int i = 0; i < 500; i++) { - if (wavblcurve[i] != 0.) { - wavcurvecomp = true; - } - } - } + for (int i = 0; i < H_L * W_L; i++) { + WavCoeffs_ab0[i] = aft[i]; + } + + delete bef; + delete aft; + } + + + bool wavcurvecomp = false;//not enable if 0.75 + + if (wavblcurve) { + for (int i = 0; i < 500; i++) { + if (wavblcurve[i] != 0.) { + wavcurvecomp = true; + } + } + } #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 0c76e3003..574e4f3a2 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2291,6 +2291,8 @@ WaveletParams::WaveletParams() : rescon(0), resconH(0), reschro(0), + resblur(0), + resblurc(0), tmrs(0), edgs(1.4), scale(1.), @@ -2404,6 +2406,8 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && rescon == other.rescon && resconH == other.resconH && reschro == other.reschro + && resblur == other.resblur + && resblurc == other.resblurc && tmrs == other.tmrs && edgs == other.edgs && scale == other.scale @@ -3601,6 +3605,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.thrH, "Wavelet", "ThresholdResidHighLight", wavelet.thrH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.radius, "Wavelet", "Residualradius", wavelet.radius, keyFile); saveToKeyfile(!pedited || pedited->wavelet.reschro, "Wavelet", "Residualchroma", wavelet.reschro, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.resblur, "Wavelet", "Residualblur", wavelet.resblur, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.resblurc, "Wavelet", "Residualblurc", wavelet.resblurc, keyFile); saveToKeyfile(!pedited || pedited->wavelet.tmrs, "Wavelet", "ResidualTM", wavelet.tmrs, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgs, "Wavelet", "ResidualEDGS", wavelet.edgs, keyFile); saveToKeyfile(!pedited || pedited->wavelet.scale, "Wavelet", "ResidualSCALE", wavelet.scale, keyFile); @@ -4719,6 +4725,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "ResidualcontShadow", pedited, wavelet.rescon, pedited->wavelet.rescon); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontHighlight", pedited, wavelet.resconH, pedited->wavelet.resconH); assignFromKeyfile(keyFile, "Wavelet", "Residualchroma", pedited, wavelet.reschro, pedited->wavelet.reschro); + assignFromKeyfile(keyFile, "Wavelet", "Residualblur", pedited, wavelet.resblur, pedited->wavelet.resblur); + assignFromKeyfile(keyFile, "Wavelet", "Residualblurc", pedited, wavelet.resblurc, pedited->wavelet.resblurc); assignFromKeyfile(keyFile, "Wavelet", "ResidualTM", pedited, wavelet.tmrs, pedited->wavelet.tmrs); assignFromKeyfile(keyFile, "Wavelet", "ResidualEDGS", pedited, wavelet.edgs, pedited->wavelet.edgs); assignFromKeyfile(keyFile, "Wavelet", "ResidualSCALE", pedited, wavelet.scale, pedited->wavelet.scale); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index e78c8fc47..62ca88690 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1250,6 +1250,8 @@ struct WaveletParams { int rescon; int resconH; int reschro; + int resblur; + int resblurc; double tmrs; double edgs; double scale; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index b568d3b52..4dc81fc5f 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -514,6 +514,8 @@ void ParamsEdited::set(bool v) wavelet.offset = v; wavelet.resconH = v; wavelet.reschro = v; + wavelet.resblur = v; + wavelet.resblurc = v; wavelet.tmrs = v; wavelet.edgs = v; wavelet.scale = v; @@ -1116,6 +1118,8 @@ void ParamsEdited::initFrom(const std::vector& wavelet.rescon = wavelet.rescon && p.wavelet.rescon == other.wavelet.rescon; wavelet.resconH = wavelet.resconH && p.wavelet.resconH == other.wavelet.resconH; wavelet.reschro = wavelet.reschro && p.wavelet.reschro == other.wavelet.reschro; + wavelet.resblur = wavelet.resblur && p.wavelet.resblur == other.wavelet.resblur; + wavelet.resblurc = wavelet.resblurc && p.wavelet.resblurc == other.wavelet.resblurc; wavelet.tmrs = wavelet.tmrs && p.wavelet.tmrs == other.wavelet.tmrs; wavelet.edgs = wavelet.edgs && p.wavelet.edgs == other.wavelet.edgs; wavelet.scale = wavelet.scale && p.wavelet.scale == other.wavelet.scale; @@ -3198,6 +3202,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.offset = mods.wavelet.offset; } + if (wavelet.resblur) { + toEdit.wavelet.resblur = mods.wavelet.resblur; + } + + if (wavelet.resblurc) { + toEdit.wavelet.resblurc = mods.wavelet.resblurc; + } + if (wavelet.resconH) { toEdit.wavelet.resconH = dontforceSet && options.baBehav[ADDSET_WA_RESCONH] ? toEdit.wavelet.resconH + mods.wavelet.resconH : mods.wavelet.resconH; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 8e02ba58f..de688d856 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -530,6 +530,8 @@ struct WaveletParamsEdited { bool rescon; bool resconH; bool reschro; + bool resblur; + bool resblurc; bool tmrs; bool edgs; bool scale; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index d5c5e55e8..cc53a45a2 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -87,6 +87,8 @@ Wavelet::Wavelet() : rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), + resblur(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLUR"), 0, 100, 1, 0))), + resblurc(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLURC"), 0, 100, 1, 0))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))), @@ -149,6 +151,7 @@ Wavelet::Wavelet() : chanMixerHLFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_HIGHLIGHT")))), chanMixerMidFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_MIDTONES")))), chanMixerShadowsFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_SHADOWS")))), + blurFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_BLURFRAME")))), chromaFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROMAFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), @@ -187,6 +190,8 @@ Wavelet::Wavelet() : EvWavoffset = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOFFSET"); EvWavsoftwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SOFTWAV"); EvWavblshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLSHAPE"); + EvWavresblur = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURWAV"); + EvWavresblurc = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURCWAV"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -662,7 +667,7 @@ Wavelet::Wavelet() : softwav->setLogScale(10, -10); softwav->setAdjusterListener(this); - blBox->pack_start(*softwav); +// blBox->pack_start(*softwav); // Gamut @@ -741,6 +746,14 @@ Wavelet::Wavelet() : resBox->pack_start(*contrast); //keep the possibility to reinstall reschro->setAdjusterListener(this); + resblur->setAdjusterListener(this); + resblurc->setAdjusterListener(this); + + blurFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const blurBox = Gtk::manage(new ToolParamBlock()); + blurBox->pack_start(*resblur); + blurBox->pack_start(*resblurc); + blurFrame->add(*blurBox); chromaFrame->set_label_align(0.025, 0.5); ToolParamBlock* const chromaBox = Gtk::manage(new ToolParamBlock()); @@ -796,6 +809,7 @@ Wavelet::Wavelet() : const std::vector milestones3 = makeWholeHueRange(); curveEditorRES->setCurveListener(this); + resBox->pack_start(*blurFrame); resBox->pack_start(*chromaFrame); hhshape = static_cast(curveEditorRES->addCurve(CT_Flat, M("TP_WAVELET_CURVEEDITOR_HH"))); @@ -1292,6 +1306,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) rescon->setValue(pp->wavelet.rescon); resconH->setValue(pp->wavelet.resconH); reschro->setValue(pp->wavelet.reschro); + resblur->setValue(pp->wavelet.resblur); + resblurc->setValue(pp->wavelet.resblurc); tmrs->setValue(pp->wavelet.tmrs); edgs->setValue(pp->wavelet.edgs); scale->setValue(pp->wavelet.scale); @@ -1449,6 +1465,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) offset->setEditedState(pedited->wavelet.offset ? Edited : UnEdited); resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited); reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited); + resblur->setEditedState(pedited->wavelet.resblur ? Edited : UnEdited); + resblurc->setEditedState(pedited->wavelet.resblurc ? Edited : UnEdited); tmrs->setEditedState(pedited->wavelet.tmrs ? Edited : UnEdited); edgs->setEditedState(pedited->wavelet.edgs ? Edited : UnEdited); scale->setEditedState(pedited->wavelet.scale ? Edited : UnEdited); @@ -1638,6 +1656,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.rescon = rescon->getValue(); pp->wavelet.resconH = resconH->getValue(); pp->wavelet.reschro = reschro->getValue(); + pp->wavelet.resblur = resblur->getValue(); + pp->wavelet.resblurc = resblurc->getValue(); pp->wavelet.tmrs = tmrs->getValue(); pp->wavelet.edgs = edgs->getValue(); pp->wavelet.scale = scale->getValue(); @@ -1755,6 +1775,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.rescon = rescon->getEditedState(); pedited->wavelet.resconH = resconH->getEditedState(); pedited->wavelet.reschro = reschro->getEditedState(); + pedited->wavelet.resblur = resblur->getEditedState(); + pedited->wavelet.resblurc = resblurc->getEditedState(); pedited->wavelet.tmrs = tmrs->getEditedState(); pedited->wavelet.edgs = edgs->getEditedState(); pedited->wavelet.scale = scale->getEditedState(); @@ -1997,6 +2019,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); + resblur->setDefault(defParams->wavelet.resblur); + resblurc->setDefault(defParams->wavelet.resblurc); tmrs->setDefault(defParams->wavelet.tmrs); edgs->setDefault(defParams->wavelet.edgs); scale->setDefault(defParams->wavelet.scale); @@ -2062,6 +2086,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); + resblur->setDefault(defParams->wavelet.resblur); + resblurc->setDefault(defParams->wavelet.resblurc); tmrs->setDefault(defParams->wavelet.tmrs); edgs->setDefault(defParams->wavelet.edgs); scale->setDefault(defParams->wavelet.scale); @@ -2116,6 +2142,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit rescon->setDefaultEditedState(Irrelevant); resconH->setDefaultEditedState(Irrelevant); reschro->setDefaultEditedState(Irrelevant); + resblur->setDefaultEditedState(Irrelevant); + resblurc->setDefaultEditedState(Irrelevant); tmrs->setDefaultEditedState(Irrelevant); edgs->setDefaultEditedState(Irrelevant); scale->setDefaultEditedState(Irrelevant); @@ -2648,6 +2676,8 @@ void Wavelet::setBatchMode(bool batchMode) rescon->showEditedCB(); resconH->showEditedCB(); reschro->showEditedCB(); + resblur->showEditedCB(); + resblurc->showEditedCB(); tmrs->showEditedCB(); edgs->showEditedCB(); scale->showEditedCB(); @@ -2736,6 +2766,10 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavresconH, resconH->getTextValue()); } else if (a == reschro) { listener->panelChanged(EvWavreschro, reschro->getTextValue()); + } else if (a == resblur) { + listener->panelChanged(EvWavresblur, resblur->getTextValue()); + } else if (a == resblurc) { + listener->panelChanged(EvWavresblurc, resblurc->getTextValue()); } else if (a == tmrs) { adjusterUpdateUI(a); listener->panelChanged(EvWavtmrs, tmrs->getTextValue()); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 0d9081660..15ac97a84 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -85,6 +85,8 @@ private: rtengine::ProcEvent EvWavoffset; rtengine::ProcEvent EvWavsoftwav; rtengine::ProcEvent EvWavblshape; + rtengine::ProcEvent EvWavresblur; + rtengine::ProcEvent EvWavresblurc; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -185,6 +187,8 @@ private: Adjuster* const rescon; Adjuster* const resconH; Adjuster* const reschro; + Adjuster* const resblur; + Adjuster* const resblurc; Adjuster* const tmrs; Adjuster* const edgs; Adjuster* const scale; @@ -273,6 +277,7 @@ private: Gtk::Frame* const chanMixerHLFrame; Gtk::Frame* const chanMixerMidFrame; Gtk::Frame* const chanMixerShadowsFrame; + Gtk::Frame* const blurFrame; Gtk::Frame* const chromaFrame; Gtk::Label* const wavLabels; From ac83695645396b9e185e9c5a4272c80cb8b7f2ba Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 27 Mar 2020 09:27:43 +0100 Subject: [PATCH 387/453] Suppress warning and add tooltips --- rtdata/languages/default | 2 ++ rtengine/improccoordinator.cc | 10 ---------- rtgui/wavelet.cc | 4 +++- 3 files changed, 5 insertions(+), 11 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 282327ba5..cac1f6f12 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2276,6 +2276,7 @@ TP_WAVELET_SETTINGS;Wavelet Settings TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_SIGMA;Sigma +TP_WAVELET_SIGMA_TOOLTIP;Sigma acts on the relative amplitude of the signal width. The higher it is, the more the effect will be maximum and the more the unsightly effects will appear.\nLow values are recommended for creating tone-mapping in conjonction with usage Shadows/Highlights below TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. TP_WAVELET_SKY;Sky targetting/protection @@ -2310,6 +2311,7 @@ TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. TP_WAVELET_WAVOFFSET;Offset +TP_WAVELET_OFFSET_TOOLTIP;Offset acts on mean of signal.\nHigh values will favor action on the contrast of the highlights.\nLow values will favor action on the contrast of shadows TP_WBALANCE_AUTO;Auto TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_AUTOOLD;Auto RGB grey diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 45f9f2e56..6374cb837 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -885,10 +885,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } if (WaveParams.softrad > 0.f) { - printf("s1\n"); provradius = new LabImage(pW, pH); provradius->CopyFrom(nprevl); - printf("s2\n"); } @@ -924,13 +922,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) WaveParams.expnoise = pronois; if (WaveParams.softrad > 0.f) { - printf("s3\n"); array2D ble(pW, pH); array2D guid(pW, pH); Imagefloat *tmpImage = nullptr; tmpImage = new Imagefloat(pW, pH); - printf("s4\n"); #ifdef _OPENMP #pragma omp parallel for @@ -954,7 +950,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) tmpImage->b(ir, jr) = Z; ble[ir][jr] = Y / 32768.f; } - printf("s5\n"); double epsilmax = 0.0001; double epsilmin = 0.00001; @@ -965,7 +960,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) float blur = 10.f / scale * (0.0001f + 0.8f * WaveParams.softrad); // rtengine::guidedFilter(guid, ble, ble, blur, 0.001, multiTh); rtengine::guidedFilter(guid, ble, ble, blur, epsil, false); - printf("s6\n"); @@ -982,10 +976,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) Color::XYZ2Lab(X, Y, Z, L, a, b); nprevl->L[ir][jr] = L; } - printf("s7\n"); delete tmpImage; - printf("s8\n"); } @@ -1075,11 +1067,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } */ if (WaveParams.softrad > 0.f) { - printf("s9\n"); delete provradius; provradius = NULL; - printf("s10\n"); } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index cc53a45a2..336aad4d5 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -82,7 +82,7 @@ Wavelet::Wavelet() : showmask(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_SHOWMASK")))), oldsh(Gtk::manage(new Gtk::CheckButton(M("TP_WAVELET_OLDSH")))), neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), - sigma(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMA"), 0.2, 2.5, 0.01, 1.))), + sigma(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMA"), 0.05, 2.5, 0.01, 1.))), offset(Gtk::manage(new Adjuster(M("TP_WAVELET_WAVOFFSET"), 0.33, 1.66, 0.01, 1., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))), rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), @@ -351,6 +351,8 @@ Wavelet::Wavelet() : levBox->pack_start(*sigma, Gtk::PACK_SHRINK); offset->setAdjusterListener(this); levBox->pack_start(*offset, Gtk::PACK_SHRINK); + sigma->set_tooltip_text(M("TP_WAVELET_SIGMA_TOOLTIP")); + offset->set_tooltip_text(M("TP_WAVELET_OFFSET_TOOLTIP")); levBox->pack_start(*sup); sup->setAdjusterListener(this); From 95d40e72192096d90efbfa550e85d87603158b6f Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 27 Mar 2020 13:31:46 +0100 Subject: [PATCH 388/453] Clean code ipwavelet --- rtengine/ipwavelet.cc | 155 +----------------------------------------- 1 file changed, 1 insertion(+), 154 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 461bdc7ac..ede980ee6 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -17,7 +17,7 @@ // // You should have received a copy of the GNU General Public License // along with this program. If not, see . -// * 2014 - 2019 Jacques Desmis +// * 2014 - 2019 2020 - Jacques Desmis // * 2014 Ingo Weyrich // @@ -369,7 +369,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } -// if(settings->verbose) printf("Wav mul 0=%f 1=%f 2=%f 3=%f 4=%f 5=%f 6=%f 7=%f 8=%f 9=%f\n",cp.mul[0],cp.mul[1],cp.mul[2],cp.mul[3],cp.mul[4],cp.mul[5],cp.mul[6],cp.mul[7],cp.mul[8],cp.mul[9]); for (int sc = 0; sc < 9; sc++) { //reduce strength if zoom < 100% for chroma and tuning if (sc == 0) { if (scaleskip[sc] < 1.f) { @@ -425,13 +424,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.numlevS = params->wavelet.threshold2; int maxlevS = 9 - cp.numlevH; cp.numlevS = rtengine::min(cp.numlevS, maxlevS); - //printf("levHigh=%d levShad=%d\n",cp.numlevH,cp.numlevS); //highlight cp.b_lhl = static_cast(params->wavelet.hllev.getBottomLeft()); cp.t_lhl = static_cast(params->wavelet.hllev.getTopLeft()); cp.b_rhl = static_cast(params->wavelet.hllev.getBottomRight()); cp.t_rhl = static_cast(params->wavelet.hllev.getTopRight()); - //printf("BL=%f TL=%f BR=%f TR=%f\n",cp.b_lhl,cp.t_lhl,cp.b_rhl,cp.t_rhl); //pastel cp.b_lpast = static_cast(params->wavelet.pastlev.getBottomLeft()); cp.t_lpast = static_cast(params->wavelet.pastlev.getTopLeft()); @@ -458,7 +455,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.lev3n = static_cast(params->wavelet.level3noise.getTop()); cp.detectedge = params->wavelet.medianlev; - //printf("low=%f mean=%f sd=%f max=%f\n",cp.edg_low,cp.edg_mean,cp.edg_sd,cp.edg_max); int minwin = rtengine::min(imwidth, imheight); int maxlevelcrop = 9; @@ -487,7 +483,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const maxlevelcrop = 5; } - // printf("minwin=%d maxcrop=%d\n",minwin, maxlevelcrop); int levwav = params->wavelet.thres; @@ -567,7 +562,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const levwav = rtengine::min(maxlev2, levwav); - //printf("levwav = %d\n",levwav); #ifdef _OPENMP int numthreads = 1; int maxnumberofthreadsforwavelet = 0; @@ -594,7 +588,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const maxnumberofthreadsforwavelet = 8; } - //printf("maxNRT=%d\n",maxnumberofthreadsforwavelet); if ((maxnumberofthreadsforwavelet == 6 || maxnumberofthreadsforwavelet == 8) && levwav == 10) { maxnumberofthreadsforwavelet -= 2; } @@ -604,7 +597,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } - //printf("maxthre=%d\n",maxnumberofthreadsforwavelet); // Calculate number of tiles. If less than omp_get_max_threads(), then limit num_threads to number of tiles @@ -857,141 +849,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (cp.val > 0 || ref || contr) { //edge Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } -/* - //here TM wavelet - if(cp.tmena ){ - float mean2[10]; - float meanN2[10]; - float sigma2[10]; - float sigmaN2[10]; - float MaxP2[10]; - float MaxN2[10]; - //calculate mean, amx, etc. - Evaluate2(*Ldecomp, mean2, meanN2, sigma2, sigmaN2, MaxP2, MaxN2); - - int leve = levwavL; - int dir = 3; - int WW = labco->W; - int HH = labco->H; - float ****templevel = nullptr; - templevel = new float***[dir]; - - //allocate memory for 3 DIR n levels, HH, WW - for (int d = 0; d < dir; d++) { - templevel[d] = new float**[leve]; - - for (int k = 0; k < leve; k++) { - templevel[d][k] = new float*[HH]; - - for (int i = 0; i < HH; i++) { - templevel[d][k][i] = new float[WW]; - } - } - } - -#ifdef _OPENMP - #pragma omp parallel for schedule(dynamic,16) -#endif - //fill templevel with decomp for each level, each dir,X Y - for (int dir = 1; dir < 4; dir++) { - for (int level = 0; level < levwavL; ++level) { - int W_L = Ldecomp->level_W(level); - int H_L = Ldecomp->level_H(level); - float **wav_L = Ldecomp->level_coeffs(level); - madL[level][dir - 1] = Mad(wav_L[dir], W_L * H_L);//evaluate noise by level - - for (int y = 0; y < H_L; y++) { - for (int x = 0; x < W_L; x++) { - float val = wav_L[dir][y * W_L + x]; - templevel[dir - 1][level][y][x] = val; - } - } - } - } - - - float thres = params->wavelet.threswav; - - bool wavcurvecomp = false;//not enable if 0.75 - - if (wavtmCurve) { - for (int i = 0; i < 500; i++) { - if (wavtmCurve[i] != 0.75) { - wavcurvecomp = true; - } - } - } - - //for each level, dir calculate templevel with compression - for (int dir = 1; dir < 4; dir++) { - for (int level = 0; level < levwavL; ++level) { - int W_L = Ldecomp->level_W(level); - int H_L = Ldecomp->level_H(level); - - if (wavtmCurve && wavcurvecomp) { - float klev = (wavtmCurve[level * 55.5f] - 0.75f); - - if (klev < 0.f) { - klev *= 2.6666f;//compression increase contraste - } else { - klev *= 4.f;//dilatation reduce contraste - detailattenuator - } - - float compression = expf(-klev); - float detailattenuator = klev; - - if (klev < 0.0f) { - detailattenuator = 0.0f; - } - Compresslevels2(templevel[dir - 1][level], W_L, H_L, compression, detailattenuator, thres, mean2[level], MaxP2[level], meanN2[level], MaxN2[level], madL[level][dir - 1]); - } - } - } - - //retrieve decomp -#ifdef _OPENMP - #pragma omp parallel for schedule(dynamic,16) -#endif - - for (int dir = 1; dir < 4; dir++) { - for (int level = 0; level < levwavL ; ++level) { - int W_L = Ldecomp->level_W(level); - int H_L = Ldecomp->level_H(level); - float **wav_L = Ldecomp->level_coeffs(level); - - for (int y = 0; y < H_L; y++) { - for (int x = 0; x < W_L; x++) { - wav_L[dir][y * W_L + x] = templevel[dir - 1][level][y][x]; - } - } - } - } - - - //free memory - for (int i = 0; i < dir; i++) { - for (int j = 0; j < leve; j++) { - for (int l = 0; l < HH; l++) { - delete [] templevel[i][j][l]; - } - } - } - - for (int i = 0; i < dir; i++) { - for (int j = 0; j < leve; j++) { - delete [] templevel[i][j]; - } - } - - for (int i = 0; i < dir; i++) { - delete [] templevel[i]; - } - - delete [] templevel; - - } - // end TM wavelet -*/ //init for edge and denoise float vari[4]; @@ -1055,14 +912,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (!hhutili) { //always a or b int levwava = levwav; - // printf("Levwava before: %d\n",levwava); if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels while (levwava > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwava - 1] == 0.f)) || (cp.CHmet != 2 && (levwava == 10 || (!cp.curv || cp.mulC[levwava - 1] == 0.f))))) && (!cp.opaRG || levwava == 10 || (cp.opaRG && cp.mulopaRG[levwava - 1] == 0.f)) && ((levwava == 10 || (cp.CHSLmet == 1 && cp.mulC[levwava - 1] == 0.f)))) { levwava--; } } - //printf("Levwava after: %d\n",levwava); if (levwava > 0) { const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); @@ -1074,14 +929,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int levwavb = levwav; - //printf("Levwavb before: %d\n",levwavb); if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels while (levwavb > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavb - 1] == 0.f)) || (cp.CHmet != 2 && (levwavb == 10 || (!cp.curv || cp.mulC[levwavb - 1] == 0.f))))) && (!cp.opaBY || levwavb == 10 || (cp.opaBY && cp.mulopaBY[levwavb - 1] == 0.f)) && ((levwavb == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavb - 1] == 0.f)))) { levwavb--; } } - // printf("Levwavb after: %d\n",levwavb); if (levwavb > 0) { const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); @@ -1093,14 +946,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } else {// a and b int levwavab = levwav; - // printf("Levwavab before: %d\n",levwavab); if (cp.chrores == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels while (levwavab > 0 && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavab - 1] == 0.f)) || (cp.CHmet != 2 && (levwavab == 10 || (!cp.curv || cp.mulC[levwavab - 1] == 0.f))))) && (!cp.opaRG || levwavab == 10 || (cp.opaRG && cp.mulopaRG[levwavab - 1] == 0.f)) && ((levwavab == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavab - 1] == 0.f)))) { levwavab--; } } - // printf("Levwavab after: %d\n",levwavab); if (levwavab > 0) { const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); @@ -1758,7 +1609,6 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } - // printf("MAXmax0=%f MINmin0=%f\n",max0,min0); //tone mapping if (cp.tonemap && cp.contmet == 2 && cp.resena) { @@ -2400,7 +2250,6 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const cont_params& cp, floa { int borderL = 2; -// printf("cpedth=%f\n",cp.eddetthr); if (cp.eddetthr < 30.f) { borderL = 1; @@ -3571,7 +3420,6 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } if (cp.bam && cp.diag) { -//printf("OK Chroma\n"); if (cp.opaW && cp.BAmet == 2) { int iteration = cp.ite; int itplus = 7 + iteration; @@ -3901,7 +3749,6 @@ void ImProcFunctions::Compresslevels2(float **Source, int W_L, int H_L, float co float exponent; - // printf("maxp=%f maxn=%f\n", maxp, maxn); if (detailattenuator > 0.f && detailattenuator < 0.05f) { float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; //0.69315 = log(2) exponent = 1.2f * xlogf(-betemp); From d10ff9e816f6ad38d3fe7b6712576ca3ef627976 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 27 Mar 2020 16:21:17 +0100 Subject: [PATCH 389/453] Wavelet Improvment to GUI Residual --- rtdata/languages/default | 4 +++- rtgui/wavelet.cc | 48 ++++++++++++++++++++++++++-------------- rtgui/wavelet.h | 2 ++ 3 files changed, 37 insertions(+), 17 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index cac1f6f12..5c29a9bd0 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2168,6 +2168,7 @@ TP_WAVELET_COMPGAMMA;Compression gamma TP_WAVELET_COMPGAMMA_TOOLTIP;Adjusting the gamma of the residual image allows you to equilibrate the data and histogram. TP_WAVELET_COMPTM;Tone mapping TP_WAVELET_CONTEDIT;'After' contrast curve +TP_WAVELET_CONTFRAME;Contrast - Compression TP_WAVELET_CONTR;Gamut TP_WAVELET_CONTRA;Contrast TP_WAVELET_CONTRAST_MINUS;Contrast - @@ -2254,7 +2255,7 @@ TP_WAVELET_NPLOW;Low TP_WAVELET_NPNONE;None TP_WAVELET_NPTYPE;Neighboring pixels TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight of its neighbors. If less difference, edges are reinforced. -TP_WAVELET_OLDSH;Old algorithm using negatives values +TP_WAVELET_OLDSH;Algorithm using negatives values TP_WAVELET_OPACITY;Opacity Blue-Yellow TP_WAVELET_OPACITYW;Contrast balance d/v-h curve TP_WAVELET_OPACITYWL;Final local contrast @@ -2274,6 +2275,7 @@ TP_WAVELET_RESID;Residual Image TP_WAVELET_SAT;Saturated chroma TP_WAVELET_SETTINGS;Wavelet Settings TP_WAVELET_SHA;Sharp mask +TP_WAVELET_SHFRAME;Shadows/Highlights TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_SIGMA;Sigma TP_WAVELET_SIGMA_TOOLTIP;Sigma acts on the relative amplitude of the signal width. The higher it is, the more the effect will be maximum and the more the unsightly effects will appear.\nLow values are recommended for creating tone-mapping in conjonction with usage Shadows/Highlights below diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 336aad4d5..5ad6fda55 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -151,6 +151,8 @@ Wavelet::Wavelet() : chanMixerHLFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_HIGHLIGHT")))), chanMixerMidFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_MIDTONES")))), chanMixerShadowsFrame(Gtk::manage(new Gtk::Frame(M("TP_COLORTONING_SHADOWS")))), + shFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_SHFRAME")))), + contFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CONTFRAME")))), blurFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_BLURFRAME")))), chromaFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROMAFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), @@ -726,26 +728,33 @@ Wavelet::Wavelet() : ToolParamBlock* const resBox = Gtk::manage(new ToolParamBlock()); oldsh->set_active(true); oldshConn = oldsh->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::oldshToggled)); - resBox->pack_start(*oldsh); + rescon->setAdjusterListener(this); - resBox->pack_start(*rescon, Gtk::PACK_SHRINK); - resBox->pack_start(*thr); thr->setAdjusterListener(this); resconH->setAdjusterListener(this); - resBox->pack_start(*resconH, Gtk::PACK_SHRINK); thrH->setAdjusterListener(this); - resBox->pack_start(*thrH, Gtk::PACK_SHRINK); radius->setAdjusterListener(this); - resBox->pack_start(*radius, Gtk::PACK_SHRINK); + radius->hide(); + + shFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const shBox = Gtk::manage(new ToolParamBlock()); + shBox->pack_start(*oldsh); + shBox->pack_start(*rescon, Gtk::PACK_SHRINK); + shBox->pack_start(*thr); + shBox->pack_start(*resconH, Gtk::PACK_SHRINK); + shBox->pack_start(*thrH, Gtk::PACK_SHRINK); + shBox->pack_start(*radius, Gtk::PACK_SHRINK); + shFrame->add(*shBox); + resBox->pack_start(*shFrame); + contrast->set_tooltip_text(M("TP_WAVELET_CONTRA_TOOLTIP")); contrast->setAdjusterListener(this); - resBox->pack_start(*contrast); //keep the possibility to reinstall reschro->setAdjusterListener(this); resblur->setAdjusterListener(this); @@ -768,36 +777,42 @@ Wavelet::Wavelet() : Gtk::HBox* const ctboxTM = Gtk::manage(new Gtk::HBox()); ctboxTM->pack_start(*labmTM, Gtk::PACK_SHRINK, 1); - Gtk::HSeparator* const separatorR0 = Gtk::manage(new Gtk::HSeparator()); - resBox->pack_start(*separatorR0, Gtk::PACK_SHRINK, 2); +// Gtk::HSeparator* const separatorR0 = Gtk::manage(new Gtk::HSeparator()); +// resBox->pack_start(*separatorR0, Gtk::PACK_SHRINK, 2); TMmethod->append(M("TP_WAVELET_COMPCONT")); TMmethod->append(M("TP_WAVELET_COMPTM")); TMmethodconn = TMmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::TMmethodChanged)); ctboxTM->pack_start(*TMmethod); - resBox->pack_start(*ctboxTM); tmrs->set_tooltip_text(M("TP_WAVELET_TMSTRENGTH_TOOLTIP")); - resBox->pack_start(*tmrs); tmrs->setAdjusterListener(this); gamma->set_tooltip_text(M("TP_WAVELET_COMPGAMMA_TOOLTIP")); - resBox->pack_start(*gamma); gamma->setAdjusterListener(this); //edgs->set_tooltip_text(M("TP_WAVELET_TMEDGS_TOOLTIP")); - resBox->pack_start(*edgs); edgs->setAdjusterListener(this); //scale->set_tooltip_text(M("TP_WAVELET_TMSCALE_TOOLTIP")); - resBox->pack_start(*scale); scale->setAdjusterListener(this); - Gtk::HSeparator* const separatorR1 = Gtk::manage(new Gtk::HSeparator()); - resBox->pack_start(*separatorR1, Gtk::PACK_SHRINK, 2); + contFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const contBox = Gtk::manage(new ToolParamBlock()); + contBox->pack_start(*contrast); //keep the possibility to reinstall + contBox->pack_start(*ctboxTM); + contBox->pack_start(*tmrs); + contBox->pack_start(*gamma); + contBox->pack_start(*edgs); + contBox->pack_start(*scale); + contFrame->add(*contBox); + resBox->pack_start(*contFrame); + +// Gtk::HSeparator* const separatorR1 = Gtk::manage(new Gtk::HSeparator()); +// resBox->pack_start(*separatorR1, Gtk::PACK_SHRINK, 2); hueskin2->set_tooltip_markup(M("TP_WAVELET_HUESKY_TOOLTIP")); hueskin2->setBgGradient(milestones); @@ -1577,6 +1592,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) //BackmethodUpdateUI(); CLmethodUpdateUI(); lipstUpdateUI(); + oldshToggled(); //TilesmethodUpdateUI(); //daubcoeffmethodUpdateUI(); //DirmethodUpdateUI(); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 15ac97a84..635d8c7a7 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -277,6 +277,8 @@ private: Gtk::Frame* const chanMixerHLFrame; Gtk::Frame* const chanMixerMidFrame; Gtk::Frame* const chanMixerShadowsFrame; + Gtk::Frame* const shFrame; + Gtk::Frame* const contFrame; Gtk::Frame* const blurFrame; Gtk::Frame* const chromaFrame; From a61463447ab90b6602f89050125030870ef75865 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 28 Mar 2020 08:35:00 +0100 Subject: [PATCH 390/453] Improvment to Blur levels --- rtdata/languages/default | 6 +++--- rtengine/ipwavelet.cc | 16 +++++++++------- rtengine/procparams.cc | 8 ++++---- rtengine/procparams.h | 2 +- rtgui/paramsedited.cc | 8 ++++---- rtgui/paramsedited.h | 2 +- rtgui/wavelet.cc | 29 ++++++++++++++--------------- rtgui/wavelet.h | 4 ++-- 8 files changed, 38 insertions(+), 37 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5c29a9bd0..a46f09a88 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -803,7 +803,7 @@ HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method HISTORY_MSG_THRESWAV;Balance threshold -HISTORY_MSG_SOFTWAV;Soft radius +HISTORY_MSG_BLUWAV;Maximum blur HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_MSG_WAVOFFSET;Offset HISTORY_MSG_BLSHAPE;Blur by level @@ -2145,6 +2145,7 @@ TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method TP_WAVELET_BLCURVE;Blur by levels TP_WAVELET_BLURFRAME;Blur +TP_WAVELET_BLUWAV;Maximum Blur TP_WAVELET_CBENAB;Toning and Color Balance TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted TP_WAVELET_CCURVE;Local contrast @@ -2284,7 +2285,6 @@ TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are tr TP_WAVELET_SKY;Sky targetting/protection TP_WAVELET_SKY_TOOLTIP;At -100 sky-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 sky-tones are protected while all other tones are affected. TP_WAVELET_SOFTRAD;Soft Radius -TP_WAVELET_SOFWAV;Soft Radius TP_WAVELET_STREN;Strength TP_WAVELET_STRENGTH;Strength TP_WAVELET_SUPE;Extra @@ -2313,7 +2313,7 @@ TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. TP_WAVELET_WAVOFFSET;Offset -TP_WAVELET_OFFSET_TOOLTIP;Offset acts on mean of signal.\nHigh values will favor action on the contrast of the highlights.\nLow values will favor action on the contrast of shadows +TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\n High values will amplify the contrast increase of the highlights, while low values will amplify the contrast increase of the shadows. TP_WBALANCE_AUTO;Auto TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_AUTOOLD;Auto RGB grey diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index ede980ee6..99b915c65 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -67,6 +67,7 @@ struct cont_params { float conresH; float blurres; float blurcres; + float bluwav; float radius; float chrores; bool oldsh; @@ -399,6 +400,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.oldsh = waparams.oldsh; cp.blurres = waparams.resblur; cp.blurcres = waparams.resblurc; + cp.bluwav = 0.01f * waparams.bluwav; //cp.hueres=waparams.reshue; cp.hueres = 2.f; cp.th = float(waparams.thr); @@ -1766,7 +1768,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //Blur luma if(cp.blurres != 0.f && cp.resena) { - float rad = cp.blurres / skip; + float rad = 0.7f * cp.blurres / skip; float * bef = new float[W_L * H_L]; float * aft = new float[W_L * H_L]; @@ -1951,7 +1953,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); //blur levels float klev = 1.f; - if(wavblcurve && wavcurvecomp && cp.blena) { + if(wavblcurve && wavcurvecomp && cp.blena && cp.bluwav > 0.f) { float * bef = new float[Wlvl_L * Hlvl_L]; float * aft = new float[Wlvl_L * Hlvl_L]; @@ -1961,7 +1963,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } klev = (wavblcurve[lvl * 55.5f]); - klev *= lvl * 50.f / skip; + klev *= cp.bluwav * lvl * 15.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { @@ -2173,7 +2175,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float //Blur chroma if(cp.blurcres != 0.f && cp.resena) { - float rad = cp.blurcres / skip; + float rad = 0.7f * cp.blurcres / skip; float * bef = new float[W_L * H_L]; float * aft = new float[W_L * H_L]; @@ -2204,7 +2206,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) #endif - + for (int dir = 1; dir < 4; dir++) { for (int lvl = 0; lvl < maxlvl; lvl++) { @@ -2214,7 +2216,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); - if(wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { + if(wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f && cp.bluwav > 0.f) { float * bef = new float[Wlvl_ab * Hlvl_ab]; float * aft = new float[Wlvl_ab * Hlvl_ab]; float klev; @@ -2223,7 +2225,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float } klev = (wavblcurve[lvl * 55.5f]); - klev *= cp.chrwav * lvl * 100.f / skip; + klev *= cp.bluwav * cp.chrwav * lvl * 25.f / skip; boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 574e4f3a2..20ae540f5 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2318,7 +2318,7 @@ WaveletParams::WaveletParams() : radius(40), skinprotect(0.0), chrwav(0.), - softwav(1.0), + bluwav(50.0), hueskin(-5, 25, 170, 120, false), hueskin2(-260, -250, -130, -140, false), hllev(50, 75, 100, 98, false), @@ -2433,7 +2433,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && radius == other.radius && skinprotect == other.skinprotect && chrwav == other.chrwav - && softwav == other.softwav + && bluwav == other.bluwav && hueskin == other.hueskin && hueskin2 == other.hueskin2 && hllev == other.hllev @@ -3588,7 +3588,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.lipst, "Wavelet", "Lipst", wavelet.lipst, keyFile); saveToKeyfile(!pedited || pedited->wavelet.skinprotect, "Wavelet", "Skinprotect", wavelet.skinprotect, keyFile); saveToKeyfile(!pedited || pedited->wavelet.chrwav, "Wavelet", "chrwav", wavelet.chrwav, keyFile); - saveToKeyfile(!pedited || pedited->wavelet.softwav, "Wavelet", "Softwav", wavelet.softwav, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.bluwav, "Wavelet", "bluwav", wavelet.bluwav, keyFile); saveToKeyfile(!pedited || pedited->wavelet.hueskin, "Wavelet", "Hueskin", wavelet.hueskin.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgrad, "Wavelet", "Edgrad", wavelet.edgrad, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgval, "Wavelet", "Edgval", wavelet.edgval, keyFile); @@ -4894,7 +4894,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Skinprotect", pedited, wavelet.skinprotect, pedited->wavelet.skinprotect); assignFromKeyfile(keyFile, "Wavelet", "chrwav", pedited, wavelet.chrwav, pedited->wavelet.chrwav); - assignFromKeyfile(keyFile, "Wavelet", "Softwav", pedited, wavelet.softwav, pedited->wavelet.softwav); + assignFromKeyfile(keyFile, "Wavelet", "bluwav", pedited, wavelet.bluwav, pedited->wavelet.bluwav); assignFromKeyfile(keyFile, "Wavelet", "Expcontrast", pedited, wavelet.expcontrast, pedited->wavelet.expcontrast); assignFromKeyfile(keyFile, "Wavelet", "Expchroma", pedited, wavelet.expchroma, pedited->wavelet.expchroma); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 62ca88690..8ca3e5c29 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1277,7 +1277,7 @@ struct WaveletParams { int radius; double skinprotect; double chrwav; - double softwav; + double bluwav; Threshold hueskin; Threshold hueskin2; Threshold hllev; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 4dc81fc5f..b3c2b64d7 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -546,7 +546,7 @@ void ParamsEdited::set(bool v) wavelet.bllev = v; wavelet.edgcont = v; wavelet.chrwav = v; - wavelet.softwav = v; + wavelet.bluwav = v; wavelet.level0noise = v; wavelet.level1noise = v; wavelet.level2noise = v; @@ -1149,7 +1149,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.bllev = wavelet.bllev && p.wavelet.bllev == other.wavelet.bllev; wavelet.edgcont = wavelet.edgcont && p.wavelet.edgcont == other.wavelet.edgcont; wavelet.chrwav = wavelet.chrwav && p.wavelet.chrwav == other.wavelet.chrwav; - wavelet.softwav = wavelet.softwav && p.wavelet.softwav == other.wavelet.softwav; + wavelet.bluwav = wavelet.bluwav && p.wavelet.bluwav == other.wavelet.bluwav; wavelet.level0noise = wavelet.level0noise && p.wavelet.level0noise == other.wavelet.level0noise; wavelet.level1noise = wavelet.level1noise && p.wavelet.level1noise == other.wavelet.level1noise; wavelet.level2noise = wavelet.level2noise && p.wavelet.level2noise == other.wavelet.level2noise; @@ -3061,8 +3061,8 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.chrwav = mods.wavelet.chrwav; } - if (wavelet.softwav) { - toEdit.wavelet.softwav = mods.wavelet.softwav; + if (wavelet.bluwav) { + toEdit.wavelet.bluwav = mods.wavelet.bluwav; } if (wavelet.level0noise) { diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index de688d856..43254b015 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -562,7 +562,7 @@ struct WaveletParamsEdited { bool bllev; bool edgcont; bool chrwav; - bool softwav; + bool bluwav; bool level0noise; bool level1noise; bool level2noise; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 5ad6fda55..be7c74015 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -89,6 +89,7 @@ Wavelet::Wavelet() : reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), resblur(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLUR"), 0, 100, 1, 0))), resblurc(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLURC"), 0, 100, 1, 0))), + bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.0, 100.0, 0.5, 50.))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))), @@ -132,7 +133,6 @@ Wavelet::Wavelet() : softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), chrwav(Gtk::manage(new Adjuster(M("TP_WAVELET_CHRWAV"), 0., 100., 0., 0.))), - softwav(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFWAV"), -10.0, 1000.0, 0.5, 1.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), @@ -190,7 +190,7 @@ Wavelet::Wavelet() : EvWavchrwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_chrwav"); EvWavoldsh = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOLDSH"); EvWavoffset = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOFFSET"); - EvWavsoftwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SOFTWAV"); + EvWavbluwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLUWAV"); EvWavblshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLSHAPE"); EvWavresblur = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURWAV"); EvWavresblurc = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURCWAV"); @@ -663,15 +663,14 @@ Wavelet::Wavelet() : curveEditorbl->curveListComplete(); curveEditorbl->show(); + blBox->pack_start(*bluwav); + bluwav->setAdjusterListener(this); blBox->pack_start(*curveEditorbl, Gtk::PACK_SHRINK, 4); chrwav->setAdjusterListener(this); blBox->pack_start(*chrwav); - softwav->setLogScale(10, -10); - softwav->setAdjusterListener(this); -// blBox->pack_start(*softwav); // Gamut @@ -1357,7 +1356,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) satlev->setValue(pp->wavelet.satlev); edgcont->setValue(pp->wavelet.edgcont); chrwav->setValue(pp->wavelet.chrwav); - softwav->setValue(pp->wavelet.softwav); + bluwav->setValue(pp->wavelet.bluwav); greenlow->setValue(pp->wavelet.greenlow); bluelow->setValue(pp->wavelet.bluelow); @@ -1536,7 +1535,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) strength->setEditedState(pedited->wavelet.strength ? Edited : UnEdited); edgcont->setEditedState(pedited->wavelet.edgcont ? Edited : UnEdited); chrwav->setEditedState(pedited->wavelet.chrwav ? Edited : UnEdited); - softwav->setEditedState(pedited->wavelet.softwav ? Edited : UnEdited); + bluwav->setEditedState(pedited->wavelet.bluwav ? Edited : UnEdited); level0noise->setEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -1712,7 +1711,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.bllev = bllev->getValue (); pp->wavelet.edgcont = edgcont->getValue (); pp->wavelet.chrwav = chrwav->getValue(); - pp->wavelet.softwav = softwav->getValue(); + pp->wavelet.bluwav = bluwav->getValue(); pp->wavelet.level0noise = level0noise->getValue (); pp->wavelet.level1noise = level1noise->getValue (); pp->wavelet.level2noise = level2noise->getValue (); @@ -1825,7 +1824,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.blcurve = !blshape->isUnChanged(); pedited->wavelet.edgcont = edgcont->getEditedState(); pedited->wavelet.chrwav = chrwav->getEditedState(); - pedited->wavelet.softwav = softwav->getEditedState(); + pedited->wavelet.bluwav = bluwav->getEditedState(); pedited->wavelet.level0noise = level0noise->getEditedState(); pedited->wavelet.level1noise = level1noise->getEditedState(); pedited->wavelet.level2noise = level2noise->getEditedState(); @@ -2070,7 +2069,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit satlev->setDefault (defParams->wavelet.satlev); edgcont->setDefault (defParams->wavelet.edgcont); chrwav->setDefault(defParams->wavelet.chrwav); - softwav->setDefault(defParams->wavelet.softwav); + bluwav->setDefault(defParams->wavelet.bluwav); level0noise->setDefault (defParams->wavelet.level0noise); level1noise->setDefault (defParams->wavelet.level1noise); level2noise->setDefault (defParams->wavelet.level2noise); @@ -2138,7 +2137,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit satlev->setDefaultEditedState(pedited->wavelet.satlev ? Edited : UnEdited); edgcont->setDefaultEditedState(pedited->wavelet.edgcont ? Edited : UnEdited); chrwav->setDefaultEditedState(pedited->wavelet.chrwav ? Edited : UnEdited); - softwav->setDefaultEditedState(pedited->wavelet.softwav ? Edited : UnEdited); + bluwav->setDefaultEditedState(pedited->wavelet.bluwav ? Edited : UnEdited); strength->setDefaultEditedState(pedited->wavelet.strength ? Edited : UnEdited); balance->setDefaultEditedState(pedited->wavelet.balance ? Edited : UnEdited); iter->setDefaultEditedState(pedited->wavelet.iter ? Edited : UnEdited); @@ -2192,7 +2191,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit bllev->setDefaultEditedState(Irrelevant); edgcont->setDefaultEditedState(Irrelevant); chrwav->setDefaultEditedState(Irrelevant); - softwav->setDefaultEditedState(Irrelevant); + bluwav->setDefaultEditedState(Irrelevant); level0noise->setDefaultEditedState(Irrelevant); level1noise->setDefaultEditedState(Irrelevant); level2noise->setDefaultEditedState(Irrelevant); @@ -2728,7 +2727,7 @@ void Wavelet::setBatchMode(bool batchMode) satlev->showEditedCB(); edgcont->showEditedCB(); chrwav->showEditedCB(); - softwav->showEditedCB(); + bluwav->showEditedCB(); strength->showEditedCB(); balance->showEditedCB(); iter->showEditedCB(); @@ -2899,8 +2898,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavbluelow, bluelow->getTextValue()); } else if (a == chrwav) { listener->panelChanged(EvWavchrwav, chrwav->getTextValue()); - } else if (a == softwav) { - listener->panelChanged(EvWavsoftwav, softwav->getTextValue()); + } else if (a == bluwav) { + listener->panelChanged(EvWavbluwav, bluwav->getTextValue()); } if ((a == correction[0] || a == correction[1] || a == correction[2] || a == correction[3] || a == correction[4] || a == correction[5] || a == correction[6] || a == correction[7] || a == correction[8])) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 635d8c7a7..67a45b5ac 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -83,7 +83,7 @@ private: rtengine::ProcEvent EvWavchrwav; rtengine::ProcEvent EvWavoldsh; rtengine::ProcEvent EvWavoffset; - rtengine::ProcEvent EvWavsoftwav; + rtengine::ProcEvent EvWavbluwav; rtengine::ProcEvent EvWavblshape; rtengine::ProcEvent EvWavresblur; rtengine::ProcEvent EvWavresblurc; @@ -189,6 +189,7 @@ private: Adjuster* const reschro; Adjuster* const resblur; Adjuster* const resblurc; + Adjuster* const bluwav; Adjuster* const tmrs; Adjuster* const edgs; Adjuster* const scale; @@ -241,7 +242,6 @@ private: Adjuster* const softrad; Adjuster* const softradend; Adjuster* const chrwav; - Adjuster* const softwav; MyComboBoxText* const Lmethod; sigc::connection Lmethodconn; From fcc6306f9ea54dfadb5da6309f3b3d4aaf7e5666 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 28 Mar 2020 14:28:08 +0100 Subject: [PATCH 391/453] dcraw_matrix for FUJIFILM X100V --- rtengine/camconst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 44e01ea99..73699b632 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1297,6 +1297,7 @@ Camera constants: { // Quality C "make_model": [ "FUJIFILM X100V" ], + "dcraw_matrix": [ 13426,-6334,-1177,-4244,12136,2371,-580,1303,5980 ], // DNG_v12.2 D65 "raw_crop": [ 0, 5, 6252, 4140 ] }, From 15204fa9bd4cee1a77e1b408245bbb08912f38ac Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 28 Mar 2020 16:34:10 +0100 Subject: [PATCH 392/453] dcraw_matrix for FUJIFILM X-T4 --- rtengine/camconst.json | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 73699b632..8bed22437 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1296,7 +1296,7 @@ Camera constants: }, { // Quality C - "make_model": [ "FUJIFILM X100V" ], + "make_model": [ "FUJIFILM X100V", "FUJIFILM X-T4" ], "dcraw_matrix": [ 13426,-6334,-1177,-4244,12136,2371,-580,1303,5980 ], // DNG_v12.2 D65 "raw_crop": [ 0, 5, 6252, 4140 ] }, @@ -1389,11 +1389,6 @@ Camera constants: "raw_crop": [ 0, 5, 6252, 4176] }, - { // Quality C, only raw crop - "make_model": [ "FUJIFILM X-T4" ], - "raw_crop": [ 0, 5, 6252, 4140] - }, - { // Quality B "make_model": "FUJIFILM X30", "dcraw_matrix": [ 12328,-5256,-1144,-4469,12927,1675,-87,1291,4351 ], // DNG_v8.7 D65 From 7d333198937102dbf6c7e437ecf9368b9d28eedd Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 29 Mar 2020 08:00:48 +0200 Subject: [PATCH 393/453] small change to blur - change label and tooltip --- rtdata/languages/default | 6 +++--- rtengine/ipwavelet.cc | 15 +++++++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index a46f09a88..d4fb356e0 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2278,8 +2278,8 @@ TP_WAVELET_SETTINGS;Wavelet Settings TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHFRAME;Shadows/Highlights TP_WAVELET_SHOWMASK;Show wavelet 'mask' -TP_WAVELET_SIGMA;Sigma -TP_WAVELET_SIGMA_TOOLTIP;Sigma acts on the relative amplitude of the signal width. The higher it is, the more the effect will be maximum and the more the unsightly effects will appear.\nLow values are recommended for creating tone-mapping in conjonction with usage Shadows/Highlights below +TP_WAVELET_SIGMA;Effects +TP_WAVELET_SIGMA_TOOLTIP;This slider controls how wide the range of contrast values are that receive the maximum effect from the tool.\n The higher it is, the more contrast values will be strongly modified and the higher the risk to generate artifacts. The lower it is, the more pinpoint will the effect be applied to a certain range of contrast values TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. TP_WAVELET_SKY;Sky targetting/protection @@ -2313,7 +2313,7 @@ TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. TP_WAVELET_WAVOFFSET;Offset -TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\n High values will amplify the contrast increase of the highlights, while low values will amplify the contrast increase of the shadows. +TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\n High values will amplify the contrast enhancement of the highlights, while low values will amplify the contrast enhancement of the shadows. Along with a low Max. effect value will help you selecting the contrasts that will be enhanced TP_WBALANCE_AUTO;Auto TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_AUTOOLD;Auto RGB grey diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 99b915c65..125808336 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1951,7 +1951,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); - //blur levels + //blur level float klev = 1.f; if(wavblcurve && wavcurvecomp && cp.blena && cp.bluwav > 0.f) { @@ -1962,8 +1962,11 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * bef[co] = WavCoeffs_L[dir][co]; } klev = (wavblcurve[lvl * 55.5f]); - - klev *= cp.bluwav * lvl * 15.f / skip; + float lvr = lvl; + if(lvr == 0) { + lvr = 1; + } + klev *= cp.bluwav * lvr * 10.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { @@ -2224,8 +2227,12 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float bef[co] = WavCoeffs_ab[dir][co]; } klev = (wavblcurve[lvl * 55.5f]); + float lvr = lvl; + if(lvr == 0) { + lvr = 1; + } - klev *= cp.bluwav * cp.chrwav * lvl * 25.f / skip; + klev *= cp.bluwav * cp.chrwav * lvr * 20.f / skip; boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); From 3f6ab0622227249f2c7b030d418a7f766f2dbfd4 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 29 Mar 2020 10:29:40 +0200 Subject: [PATCH 394/453] Change threshold from 5 to 32.7 in aver and sigma --- rtengine/ipwavelet.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 125808336..8c15f51c5 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -851,7 +851,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (cp.val > 0 || ref || contr) { //edge Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } - + //init for edge and denoise float vari[4]; @@ -1234,7 +1234,7 @@ void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averag int countP = 0, countN = 0; double averaP = 0.0, averaN = 0.0; // use double precision for large summations - constexpr float thres = 5.f;//different fom zero to take into account only data large enough + constexpr float thres = 32.7f;//different fom zero to take into account only data large enough 32.7 = 0.1 in range 0..100 very low value max = 0.f; min = RT_INFINITY_F; #ifdef _OPENMP @@ -1286,7 +1286,7 @@ void ImProcFunctions::Sigma(float * RESTRICT DataList, int datalen, float avera { int countP = 0, countN = 0; double variP = 0.0, variN = 0.0; // use double precision for large summations - float thres = 5.f;//different fom zero to take into account only data large enough + float thres = 32.7f;//different fom zero to take into account only data large enough 32.7 = 0.1 in range 0..100 #ifdef _OPENMP #pragma omp parallel for reduction(+:variP,variN,countP,countN) num_threads(wavNestedLevels) if(wavNestedLevels>1) @@ -2580,6 +2580,10 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz scaleskip[sc] = scales[sc] / skip; } + if (settings->verbose) { + printf("level=%i mean=%f sigma=%f maxp=%f\n", level, mean[level], sigma[level], MaxP[level]); + } + constexpr float t_r = 40.f; constexpr float t_l = 10.f; constexpr float b_r = 75.f; From bdb7409d11a77b164f3a42e7fb18fdb93436094d Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 29 Mar 2020 13:29:37 +0200 Subject: [PATCH 395/453] Change extra slider in GUI --- rtgui/wavelet.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index be7c74015..2e444ff3d 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -348,6 +348,10 @@ Wavelet::Wavelet() : correction[i]->setAdjusterListener(this); levBox->pack_start(*correction[i]); } + levBox->pack_start(*sup); + sup->setAdjusterListener(this); + Gtk::HSeparator* const separatorcont = Gtk::manage(new Gtk::HSeparator()); + levBox->pack_start(*separatorcont); sigma->setAdjusterListener(this); levBox->pack_start(*sigma, Gtk::PACK_SHRINK); @@ -356,8 +360,6 @@ Wavelet::Wavelet() : sigma->set_tooltip_text(M("TP_WAVELET_SIGMA_TOOLTIP")); offset->set_tooltip_text(M("TP_WAVELET_OFFSET_TOOLTIP")); - levBox->pack_start(*sup); - sup->setAdjusterListener(this); wavLabels->show(); levBox->pack_start(*wavLabels); From bae1897b444b805a27be94745ff01fdbfed21014 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 29 Mar 2020 17:42:48 +0200 Subject: [PATCH 396/453] Fix segfault when using Colour Toning/Lab blending on very dark images --- rtengine/improcfun.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rtengine/improcfun.cc b/rtengine/improcfun.cc index 9fe16769c..aa5515e79 100644 --- a/rtengine/improcfun.cc +++ b/rtengine/improcfun.cc @@ -1989,8 +1989,8 @@ void ImProcFunctions::moyeqt (Imagefloat* working, float &moyS, float &eqty) { BENCHFUN - int tHh = working->getHeight(); - int tWw = working->getWidth(); + const int height = working->getHeight(); + const int width = working->getWidth(); double moy = 0.0; double sqrs = 0.0; @@ -1998,17 +1998,17 @@ void ImProcFunctions::moyeqt (Imagefloat* working, float &moyS, float &eqty) #pragma omp parallel for reduction(+:moy,sqrs) schedule(dynamic,16) #endif - for (int i = 0; i < tHh; i++) { - for (int j = 0; j < tWw; j++) { - double s = Color::rgb2s (CLIP (working->r (i, j)), CLIP (working->g (i, j)), CLIP (working->b (i, j))); + for (int i = 0; i < height; i++) { + for (int j = 0; j < width; j++) { + const double s = Color::rgb2s(CLIP(working->r (i, j)), CLIP(working->g (i, j)), CLIP(working->b (i, j))); moy += s; sqrs += SQR(s); } } - moy /= (tHh * tWw); - sqrs /= (tHh * tWw); - eqty = sqrt (sqrs - SQR (moy)); + moy /= (height * width); + sqrs /= (height * width); + eqty = std::sqrt(std::max(sqrs - SQR(moy), 0.0)); moyS = moy; } From 0fa2ca79c2c347bd92d47d7174fd824c4f00a8de Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 30 Mar 2020 08:54:26 +0200 Subject: [PATCH 397/453] Improvment contrast to prevent texture and noise --- rtdata/languages/default | 3 ++ rtengine/ipwavelet.cc | 67 ++++++++++++++++++++++++++++------------ rtengine/procparams.cc | 4 +++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 ++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 15 +++++++++ rtgui/wavelet.h | 2 ++ 8 files changed, 80 insertions(+), 19 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index d4fb356e0..4a419e736 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -806,6 +806,7 @@ HISTORY_MSG_THRESWAV;Balance threshold HISTORY_MSG_BLUWAV;Maximum blur HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_MSG_WAVOFFSET;Offset +HISTORY_MSG_WAVLOWTHR;Threshold low contrast HISTORY_MSG_BLSHAPE;Blur by level HISTORY_MSG_WAVBL;Blur levels HISTORY_MSG_BLURWAV;Blur luminance @@ -2242,6 +2243,7 @@ TP_WAVELET_LEVZERO;Level 1 TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength TP_WAVELET_LIPST;Enhanced algoritm TP_WAVELET_LOWLIGHT;Shadow luminance range +TP_WAVELET_LOWTHR_TOOLTIP;Prevents amplification of fine textures and noise TP_WAVELET_MEDGREINF;First level TP_WAVELET_MEDI;Reduce artifacts in blue sky TP_WAVELET_MEDILEV;Edge detection @@ -2312,6 +2314,7 @@ TP_WAVELET_USH;None TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. +TP_WAVELET_WAVLOWTHR;Low contrast threshold TP_WAVELET_WAVOFFSET;Offset TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\n High values will amplify the contrast enhancement of the highlights, while low values will amplify the contrast enhancement of the shadows. Along with a low Max. effect value will help you selecting the contrasts that will be enhanced TP_WBALANCE_AUTO;Auto diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 8c15f51c5..d5b642aaa 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -3002,39 +3002,66 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz const float skinprotneg = -skinprot; const float factorHard = (1.f - skinprotneg / 100.f); const float offs = params->wavelet.offset; + const float lowthr = params->wavelet.lowthr; //to adjust increase contrast with local contrast //for each pixel and each level float beta; - float mea[9]; - float rap = offs * mean[level] - 2.f * cp.sigm * sigma[level]; + float mea[10]; + float rap = 0.f; + float sig = 1.f; + if(cp.sigm < 1.f) { + sig = cp.sigm; + } + if(cp.sigm <= 1.f) { + rap = offs * mean[level] - sig * sigma[level]; + } + if (rap > 0.f) { mea[0] = rap; } else { mea[0] = mean[level] / 6.f; } - rap = offs * mean[level] - cp.sigm * sigma[level]; + rap = 0.f; + if(cp.sigm <= 1.f) { + rap = offs * mean[level] - 0.5f * sig * sigma[level]; + } if (rap > 0.f) { mea[1] = rap; } else { - mea[1] = mean[level] / 2.f; + mea[1] = mean[level] / 4.f; + } + + rap = 0.f; + if(cp.sigm <= 1.f) { + rap = offs * mean[level] - 0.2f * sig * sigma[level]; } - mea[2] = offs * mean[level]; // 50% data - mea[3] = offs * mean[level] + cp.sigm * sigma[level] / 2.f; - mea[4] = offs * mean[level] + cp.sigm * sigma[level]; //66% - mea[5] = offs * mean[level] + cp.sigm * 1.2f * sigma[level]; - mea[6] = offs * mean[level] + cp.sigm * 1.5f * sigma[level]; // - mea[7] = offs * mean[level] + cp.sigm * 2.f * sigma[level]; //95% - mea[8] = offs * mean[level] + cp.sigm * 2.5f * sigma[level]; //99% + if (rap > 0.f) { + mea[2] = rap; + } else { + mea[2] = mean[level] / 2.f; + } + + mea[3] = offs * mean[level]; // 50% data + mea[4] = offs * mean[level] + cp.sigm * sigma[level] / 2.f; + mea[5] = offs * mean[level] + cp.sigm * sigma[level]; //66% + mea[6] = offs * mean[level] + cp.sigm * 1.2f * sigma[level]; + mea[7] = offs * mean[level] + cp.sigm * 1.5f * sigma[level]; // + mea[8] = offs * mean[level] + cp.sigm * 2.f * sigma[level]; //95% + mea[9] = offs * mean[level] + cp.sigm * 2.5f * sigma[level]; //99% bool useChromAndHue = (skinprot != 0.f || cp.HSmet); float modchro; + float red0 = 0.005f * (110.f - lowthr); + float red1 = 0.008f * (110.f - lowthr); + float red2 = 0.011f * (110.f - lowthr); + for (int i = 0; i < W_L * H_L; i++) { float kLlev = 1.f; @@ -3046,22 +3073,24 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz //reduction amplification: max action between mean / 2 and mean + sigma // arbitrary coefficient, we can add a slider !! if (WavCL < mea[0]) { - beta = 0.6f; //preserve very low contrast (sky...) + beta = 0.4f * red0;//preserve very low contrast (sky...) } else if (WavCL < mea[1]) { - beta = 0.8f; + beta = 0.5f * red1; } else if (WavCL < mea[2]) { - beta = 1.f; //standard + beta = 0.7f * red2; } else if (WavCL < mea[3]) { - beta = 1.f; + beta = 1.f; //standard } else if (WavCL < mea[4]) { - beta = 0.8f; //+sigma + beta = 1.f; } else if (WavCL < mea[5]) { - beta = 0.6f; + beta = 0.8f; //+sigma } else if (WavCL < mea[6]) { - beta = 0.4f; + beta = 0.6f; } else if (WavCL < mea[7]) { - beta = 0.2f; // + 2 sigma + beta = 0.4f; } else if (WavCL < mea[8]) { + beta = 0.2f; // + 2 sigma + } else if (WavCL < mea[9]) { beta = 0.1f; } else { beta = 0.0f; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 20ae540f5..66f2a4c19 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2288,6 +2288,7 @@ WaveletParams::WaveletParams() : HSmethod("with"), sigma(1.0), offset(1.0), + lowthr(40.0), rescon(0), resconH(0), reschro(0), @@ -2403,6 +2404,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && HSmethod == other.HSmethod && sigma == other.sigma && offset == other.offset + && lowthr == other.lowthr && rescon == other.rescon && resconH == other.resconH && reschro == other.reschro @@ -3599,6 +3601,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.tmr, "Wavelet", "TMr", wavelet.tmr, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigma, "Wavelet", "Sigma", wavelet.sigma, keyFile); saveToKeyfile(!pedited || pedited->wavelet.offset, "Wavelet", "Offset", wavelet.offset, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.lowthr, "Wavelet", "Lowthr", wavelet.lowthr, keyFile); saveToKeyfile(!pedited || pedited->wavelet.rescon, "Wavelet", "ResidualcontShadow", wavelet.rescon, keyFile); saveToKeyfile(!pedited || pedited->wavelet.resconH, "Wavelet", "ResidualcontHighlight", wavelet.resconH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thr, "Wavelet", "ThresholdResidShadow", wavelet.thr, keyFile); @@ -4722,6 +4725,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "DirMethod", pedited, wavelet.Dirmethod, pedited->wavelet.Dirmethod); assignFromKeyfile(keyFile, "Wavelet", "Sigma", pedited, wavelet.sigma, pedited->wavelet.sigma); assignFromKeyfile(keyFile, "Wavelet", "Offset", pedited, wavelet.offset, pedited->wavelet.offset); + assignFromKeyfile(keyFile, "Wavelet", "Lowthr", pedited, wavelet.lowthr, pedited->wavelet.lowthr); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontShadow", pedited, wavelet.rescon, pedited->wavelet.rescon); assignFromKeyfile(keyFile, "Wavelet", "ResidualcontHighlight", pedited, wavelet.resconH, pedited->wavelet.resconH); assignFromKeyfile(keyFile, "Wavelet", "Residualchroma", pedited, wavelet.reschro, pedited->wavelet.reschro); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 8ca3e5c29..6dd5198ff 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1247,6 +1247,7 @@ struct WaveletParams { Glib::ustring HSmethod; double sigma; double offset; + double lowthr; int rescon; int resconH; int reschro; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index b3c2b64d7..0b06b9d92 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -512,6 +512,7 @@ void ParamsEdited::set(bool v) wavelet.sigma = v; wavelet.sigma = v; wavelet.offset = v; + wavelet.lowthr = v; wavelet.resconH = v; wavelet.reschro = v; wavelet.resblur = v; @@ -1115,6 +1116,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.Dirmethod = wavelet.Dirmethod && p.wavelet.Dirmethod == other.wavelet.Dirmethod; wavelet.sigma = wavelet.sigma && p.wavelet.sigma == other.wavelet.sigma; wavelet.offset = wavelet.offset && p.wavelet.offset == other.wavelet.offset; + wavelet.lowthr = wavelet.lowthr && p.wavelet.lowthr == other.wavelet.lowthr; wavelet.rescon = wavelet.rescon && p.wavelet.rescon == other.wavelet.rescon; wavelet.resconH = wavelet.resconH && p.wavelet.resconH == other.wavelet.resconH; wavelet.reschro = wavelet.reschro && p.wavelet.reschro == other.wavelet.reschro; @@ -3202,6 +3204,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.offset = mods.wavelet.offset; } + if (wavelet.lowthr) { + toEdit.wavelet.lowthr = mods.wavelet.lowthr; + } + if (wavelet.resblur) { toEdit.wavelet.resblur = mods.wavelet.resblur; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 43254b015..0b315583d 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -527,6 +527,7 @@ struct WaveletParamsEdited { bool Dirmethod; bool sigma; bool offset; + bool lowthr; bool rescon; bool resconH; bool reschro; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 2e444ff3d..b23143c6c 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -84,6 +84,7 @@ Wavelet::Wavelet() : neutralchButton(Gtk::manage(new Gtk::Button(M("TP_WAVELET_NEUTRAL")))), sigma(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMA"), 0.05, 2.5, 0.01, 1.))), offset(Gtk::manage(new Adjuster(M("TP_WAVELET_WAVOFFSET"), 0.33, 1.66, 0.01, 1., Gtk::manage(new RTImage("circle-black-small.png")), Gtk::manage(new RTImage("circle-white-small.png"))))), + lowthr(Gtk::manage(new Adjuster(M("TP_WAVELET_WAVLOWTHR"), 20., 100., 0.5, 40.))), rescon(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCON"), -100, 100, 1, 0))), resconH(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCONH"), -100, 100, 1, 0))), reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), @@ -190,6 +191,7 @@ Wavelet::Wavelet() : EvWavchrwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_chrwav"); EvWavoldsh = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOLDSH"); EvWavoffset = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVOFFSET"); + EvWavlowthr = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVLOWTHR"); EvWavbluwav = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLUWAV"); EvWavblshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLSHAPE"); EvWavresblur = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURWAV"); @@ -359,6 +361,9 @@ Wavelet::Wavelet() : levBox->pack_start(*offset, Gtk::PACK_SHRINK); sigma->set_tooltip_text(M("TP_WAVELET_SIGMA_TOOLTIP")); offset->set_tooltip_text(M("TP_WAVELET_OFFSET_TOOLTIP")); + lowthr->setAdjusterListener(this); + lowthr->set_tooltip_text(M("TP_WAVELET_LOWTHR_TOOLTIP")); + levBox->pack_start(*lowthr, Gtk::PACK_SHRINK); wavLabels->show(); levBox->pack_start(*wavLabels); @@ -1321,6 +1326,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) lasttmr = pp->wavelet.tmr; sigma->setValue(pp->wavelet.sigma); offset->setValue(pp->wavelet.offset); + lowthr->setValue(pp->wavelet.lowthr); rescon->setValue(pp->wavelet.rescon); resconH->setValue(pp->wavelet.resconH); reschro->setValue(pp->wavelet.reschro); @@ -1481,6 +1487,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) rescon->setEditedState(pedited->wavelet.rescon ? Edited : UnEdited); sigma->setEditedState(pedited->wavelet.sigma ? Edited : UnEdited); offset->setEditedState(pedited->wavelet.offset ? Edited : UnEdited); + lowthr->setEditedState(pedited->wavelet.lowthr ? Edited : UnEdited); resconH->setEditedState(pedited->wavelet.resconH ? Edited : UnEdited); reschro->setEditedState(pedited->wavelet.reschro ? Edited : UnEdited); resblur->setEditedState(pedited->wavelet.resblur ? Edited : UnEdited); @@ -1672,6 +1679,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.tmr = tmr->get_active(); pp->wavelet.sigma = sigma->getValue(); pp->wavelet.offset = offset->getValue(); + pp->wavelet.lowthr = lowthr->getValue(); pp->wavelet.rescon = rescon->getValue(); pp->wavelet.resconH = resconH->getValue(); pp->wavelet.reschro = reschro->getValue(); @@ -1791,6 +1799,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.edgthresh = edgthresh->getEditedState(); pedited->wavelet.sigma = sigma->getEditedState(); pedited->wavelet.offset = offset->getEditedState(); + pedited->wavelet.lowthr = lowthr->getEditedState(); pedited->wavelet.rescon = rescon->getEditedState(); pedited->wavelet.resconH = resconH->getEditedState(); pedited->wavelet.reschro = reschro->getEditedState(); @@ -2035,6 +2044,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit iter->setDefault(defParams->wavelet.iter); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); + lowthr->setDefault(defParams->wavelet.lowthr); rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); @@ -2102,6 +2112,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); + lowthr->setDefault(defParams->wavelet.lowthr); rescon->setDefault(defParams->wavelet.rescon); resconH->setDefault(defParams->wavelet.resconH); reschro->setDefault(defParams->wavelet.reschro); @@ -2158,6 +2169,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit } else { sigma->setDefaultEditedState(Irrelevant); offset->setDefaultEditedState(Irrelevant); + lowthr->setDefaultEditedState(Irrelevant); rescon->setDefaultEditedState(Irrelevant); resconH->setDefaultEditedState(Irrelevant); reschro->setDefaultEditedState(Irrelevant); @@ -2692,6 +2704,7 @@ void Wavelet::setBatchMode(bool batchMode) curveEditorGAM->setBatchMode(batchMode); sigma->showEditedCB(); offset->showEditedCB(); + lowthr->showEditedCB(); rescon->showEditedCB(); resconH->showEditedCB(); reschro->showEditedCB(); @@ -2781,6 +2794,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavsigma, sigma->getTextValue()); } else if (a == offset) { listener->panelChanged(EvWavoffset, offset->getTextValue()); + } else if (a == lowthr) { + listener->panelChanged(EvWavlowthr, lowthr->getTextValue()); } else if (a == resconH) { listener->panelChanged(EvWavresconH, resconH->getTextValue()); } else if (a == reschro) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 67a45b5ac..609d3226c 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -83,6 +83,7 @@ private: rtengine::ProcEvent EvWavchrwav; rtengine::ProcEvent EvWavoldsh; rtengine::ProcEvent EvWavoffset; + rtengine::ProcEvent EvWavlowthr; rtengine::ProcEvent EvWavbluwav; rtengine::ProcEvent EvWavblshape; rtengine::ProcEvent EvWavresblur; @@ -184,6 +185,7 @@ private: Adjuster* correctionch[9]; Adjuster* const sigma; Adjuster* const offset; + Adjuster* const lowthr; Adjuster* const rescon; Adjuster* const resconH; Adjuster* const reschro; From 5102c82c11a5f2d46972602857dc89bff78ca3e3 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 31 Mar 2020 10:04:16 +0200 Subject: [PATCH 398/453] Improve blur with effect --- rtdata/languages/default | 4 +- rtengine/improcfun.h | 4 +- rtengine/ipwavelet.cc | 205 +++++++++++++++++++++++++++------------ rtgui/wavelet.cc | 2 +- 4 files changed, 150 insertions(+), 65 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 4a419e736..ec2e32d95 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -803,7 +803,7 @@ HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method HISTORY_MSG_THRESWAV;Balance threshold -HISTORY_MSG_BLUWAV;Maximum blur +HISTORY_MSG_BLUWAV;Effects HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_MSG_WAVOFFSET;Offset HISTORY_MSG_WAVLOWTHR;Threshold low contrast @@ -2146,7 +2146,7 @@ TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method TP_WAVELET_BLCURVE;Blur by levels TP_WAVELET_BLURFRAME;Blur -TP_WAVELET_BLUWAV;Maximum Blur +TP_WAVELET_BLUWAV;Effects TP_WAVELET_CBENAB;Toning and Color Balance TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted TP_WAVELET_CCURVE;Local contrast diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 424084b8c..affa33640 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -208,7 +208,7 @@ public: struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, - struct cont_params &cp, const bool useChannelA, int skip); + struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab); void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, const cont_params &cp, FlatCurve* hhcurve, bool hhutili); void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, @@ -222,6 +222,8 @@ public: void Eval2(float ** WavCoeffs_L, int level, int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); + void calceffect(int level, float *mean, float *sigma, float *mea, float effect, float offs); + void Aver(float * HH_Coeffs, int datalen, float &averagePlus, float &averageNeg, float &max, float &min); void Sigma(float * HH_Coeffs, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg); void calckoe(float ** WavCoeffs_LL, const cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index d5b642aaa..e7f6083e6 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -400,7 +400,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.oldsh = waparams.oldsh; cp.blurres = waparams.resblur; cp.blurcres = waparams.resblurc; - cp.bluwav = 0.01f * waparams.bluwav; + cp.bluwav = waparams.bluwav; //cp.hueres=waparams.reshue; cp.hueres = 2.f; cp.th = float(waparams.thr); @@ -643,6 +643,13 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float MaxP[10]; float MaxN[10]; + float meanab[10]; + float meanNab[10]; + float sigmaab[10]; + float sigmaNab[10]; + float MaxPab[10]; + float MaxNab[10]; + array2D varchro(tilewidth, tileheight); float** varhue = new float*[tileheight]; @@ -924,7 +931,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { - WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip); + Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); adecomp->reconstruct(labco->data + datalen, cp.strength); } } @@ -941,7 +949,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip); + Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); } } @@ -959,8 +968,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - WaveletcontAllAB(labco, varhue, varchro, *adecomp,wavblcurve, waOpacityCurveW, cp, true, skip); - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip); + Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *adecomp,wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); + Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); adecomp->reconstruct(labco->data + datalen, cp.strength); @@ -1227,6 +1238,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } + void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averagePlus, float &averageNeg, float &max, float &min) { @@ -1333,6 +1345,56 @@ void ImProcFunctions::Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, } } + +void ImProcFunctions::calceffect(int level, float *mean, float *sigma, float *mea, float effect, float offs) +{ + float rap = 0.f; + float sig = 1.f; + if(effect < 1.f) { + sig = effect; + } + + if(effect <= 1.f) { + rap = offs * mean[level] - sig * sigma[level]; + } + + if (rap > 0.f) { + mea[0] = rap; + } else { + mea[0] = mean[level] / 6.f; + } + + rap = 0.f; + if(effect <= 1.f) { + rap = offs * mean[level] - 0.5f * sig * sigma[level]; + } + + if (rap > 0.f) { + mea[1] = rap; + } else { + mea[1] = mean[level] / 4.f; + } + + rap = 0.f; + if(effect <= 1.f) { + rap = offs * mean[level] - 0.2f * sig * sigma[level]; + } + + if (rap > 0.f) { + mea[2] = rap; + } else { + mea[2] = mean[level] / 2.f; + } + + mea[3] = offs * mean[level]; // 50% data + mea[4] = offs * mean[level] + effect * sigma[level] / 2.f; + mea[5] = offs * mean[level] + effect * sigma[level]; //66% + mea[6] = offs * mean[level] + effect * 1.2f * sigma[level]; + mea[7] = offs * mean[level] + effect * 1.5f * sigma[level]; // + mea[8] = offs * mean[level] + effect * 2.f * sigma[level]; //95% + mea[9] = offs * mean[level] + effect * 2.5f * sigma[level]; //99% +} + void ImProcFunctions::Eval2(float ** WavCoeffs_L, int level, int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN) { @@ -1953,20 +2015,53 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); //blur level float klev = 1.f; - if(wavblcurve && wavcurvecomp && cp.blena && cp.bluwav > 0.f) { + if(wavblcurve && wavcurvecomp && cp.blena) { + float mea[10]; + float effect = cp.bluwav; + float beta = 0.f; + float offs = 1.f; + + calceffect(lvl, mean, sigma, mea, effect, offs); float * bef = new float[Wlvl_L * Hlvl_L]; float * aft = new float[Wlvl_L * Hlvl_L]; for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { - bef[co] = WavCoeffs_L[dir][co]; + bef[co] = WavCoeffs_L[dir][co]; + float WavCL = std::fabs(WavCoeffs_L[dir][co]); + + if (WavCL < mea[0]) { + beta = 0.05f; + } else if (WavCL < mea[1]) { + beta = 0.2f; + } else if (WavCL < mea[2]) { + beta = 0.7f; + } else if (WavCL < mea[3]) { + beta = 1.f; //standard + } else if (WavCL < mea[4]) { + beta = 1.f; + } else if (WavCL < mea[5]) { + beta = 0.8f; //+sigma + } else if (WavCL < mea[6]) { + beta = 0.6f; + } else if (WavCL < mea[7]) { + beta = 0.4f; + } else if (WavCL < mea[8]) { + beta = 0.2f; // + 2 sigma + } else if (WavCL < mea[9]) { + beta = 0.1f; + } else { + beta = 0.0f; + } + + } klev = (wavblcurve[lvl * 55.5f]); float lvr = lvl; if(lvr == 0) { lvr = 1; } - klev *= cp.bluwav * lvr * 10.f / skip; + klev *= beta * lvr * 100.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { @@ -2053,7 +2148,7 @@ void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoef } void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_ab, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, - struct cont_params &cp, const bool useChannelA, int skip) + struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab) { int maxlvl = WaveletCoeffs_ab.maxlevel(); @@ -2219,20 +2314,54 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); - if(wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f && cp.bluwav > 0.f) { + if(wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { + float mea[10]; + float effect = cp.bluwav; + float beta = 0.f; + float offs = 1.f; + + calceffect(lvl, meanab, sigmaab, mea, effect, offs); + float * bef = new float[Wlvl_ab * Hlvl_ab]; float * aft = new float[Wlvl_ab * Hlvl_ab]; float klev; for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { bef[co] = WavCoeffs_ab[dir][co]; + float WavCab = std::fabs(WavCoeffs_ab[dir][co]); + + if (WavCab < mea[0]) { + beta = 0.05f; + } else if (WavCab < mea[1]) { + beta = 0.2f; + } else if (WavCab < mea[2]) { + beta = 0.7f; + } else if (WavCab < mea[3]) { + beta = 1.f; //standard + } else if (WavCab < mea[4]) { + beta = 1.f; + } else if (WavCab < mea[5]) { + beta = 0.8f; //+sigma + } else if (WavCab < mea[6]) { + beta = 0.6f; + } else if (WavCab < mea[7]) { + beta = 0.4f; + } else if (WavCab < mea[8]) { + beta = 0.2f; // + 2 sigma + } else if (WavCab < mea[9]) { + beta = 0.1f; + } else { + beta = 0.0f; + } + + } klev = (wavblcurve[lvl * 55.5f]); float lvr = lvl; if(lvr == 0) { lvr = 1; } - - klev *= cp.bluwav * cp.chrwav * lvr * 20.f / skip; + + klev *= beta * cp.chrwav * lvr * 200.f / skip; boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); @@ -3003,57 +3132,11 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz const float factorHard = (1.f - skinprotneg / 100.f); const float offs = params->wavelet.offset; const float lowthr = params->wavelet.lowthr; - - //to adjust increase contrast with local contrast - - //for each pixel and each level - float beta; float mea[10]; - float rap = 0.f; - float sig = 1.f; - if(cp.sigm < 1.f) { - sig = cp.sigm; - } + float effect = cp.sigm; + float beta; - if(cp.sigm <= 1.f) { - rap = offs * mean[level] - sig * sigma[level]; - } - - if (rap > 0.f) { - mea[0] = rap; - } else { - mea[0] = mean[level] / 6.f; - } - - rap = 0.f; - if(cp.sigm <= 1.f) { - rap = offs * mean[level] - 0.5f * sig * sigma[level]; - } - - if (rap > 0.f) { - mea[1] = rap; - } else { - mea[1] = mean[level] / 4.f; - } - - rap = 0.f; - if(cp.sigm <= 1.f) { - rap = offs * mean[level] - 0.2f * sig * sigma[level]; - } - - if (rap > 0.f) { - mea[2] = rap; - } else { - mea[2] = mean[level] / 2.f; - } - - mea[3] = offs * mean[level]; // 50% data - mea[4] = offs * mean[level] + cp.sigm * sigma[level] / 2.f; - mea[5] = offs * mean[level] + cp.sigm * sigma[level]; //66% - mea[6] = offs * mean[level] + cp.sigm * 1.2f * sigma[level]; - mea[7] = offs * mean[level] + cp.sigm * 1.5f * sigma[level]; // - mea[8] = offs * mean[level] + cp.sigm * 2.f * sigma[level]; //95% - mea[9] = offs * mean[level] + cp.sigm * 2.5f * sigma[level]; //99% + calceffect(level, mean, sigma, mea, effect, offs); bool useChromAndHue = (skinprot != 0.f || cp.HSmet); float modchro; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index b23143c6c..afedf750c 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -90,7 +90,7 @@ Wavelet::Wavelet() : reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), resblur(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLUR"), 0, 100, 1, 0))), resblurc(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLURC"), 0, 100, 1, 0))), - bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.0, 100.0, 0.5, 50.))), + bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.05, 2.5, 0.01, 1.))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))), From b8749f708cfdc4bdb2b177a455b2025f0b3e241c Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 31 Mar 2020 14:24:17 +0200 Subject: [PATCH 399/453] Added effect to edge sharpness --- rtdata/languages/default | 3 +++ rtengine/ipwavelet.cc | 44 +++++++++++++++++++++++++++++++++++++++- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 ++++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 19 +++++++++++++++-- rtgui/wavelet.h | 2 ++ 8 files changed, 77 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index ec2e32d95..ad98e3e71 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -811,6 +811,7 @@ HISTORY_MSG_BLSHAPE;Blur by level HISTORY_MSG_WAVBL;Blur levels HISTORY_MSG_BLURWAV;Blur luminance HISTORY_MSG_BLURCWAV;Blur chroma +HISTORY_MSG_EDGEFFECT;Edge Effect HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2205,6 +2206,8 @@ TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) TP_WAVELET_EDGEDETECTTHR_TOOLTIP;This adjuster lets you target edge detection for example to avoid applying edge sharpness to fine details, such as noise in the sky. TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. +TP_WAVELET_EDEFFECT;Effect +TP_WAVELET_EDEFFECT_TOOLTIP;This slider controls how wide the range of contrast values are that receive the maximum effect from the tool.\nMaximum value (2.5) disabled the tool TP_WAVELET_EDGESENSI;Edge sensitivity TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. TP_WAVELET_EDGTHRESH;Detail diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index e7f6083e6..53f685826 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -82,6 +82,7 @@ struct cont_params { float b_lpast, t_lpast, b_rpast, t_rpast; float b_lsat, t_lsat, b_rsat, t_rsat; int rad; + float eff; int val; int til; int numlevH, numlevS; @@ -392,6 +393,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.rad = waparams.edgrad; cp.val = waparams.edgval; cp.til = waparams.edgthresh; + cp.eff = waparams.edgeffect; cp.conres = waparams.rescon; cp.conresH = waparams.resconH; @@ -2721,7 +2723,47 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz constexpr float aedstr = (eddstrength - 1.f) / 90.f; constexpr float bedstr = 1.f - 10.f * aedstr; + float mea[10]; + float beta = 1.f; + if(cp.eff < 2.5f) { + float effect = cp.eff; + float offs = 1.f; + + calceffect(level, mean, sigma, mea, effect, offs); + for (int co = 0; co < H_L * W_L; co++) { + float WavCL = std::fabs(WavCoeffs_L[dir][co]); + + if (WavCL < mea[0]) { + beta = 0.05f; + } else if (WavCL < mea[1]) { + beta = 0.2f; + } else if (WavCL < mea[2]) { + beta = 0.7f; + } else if (WavCL < mea[3]) { + beta = 1.f; //standard + } else if (WavCL < mea[4]) { + beta = 1.f; + } else if (WavCL < mea[5]) { + beta = 0.8f; //+sigma + } else if (WavCL < mea[6]) { + beta = 0.6f; + } else if (WavCL < mea[7]) { + beta = 0.4f; + } else if (WavCL < mea[8]) { + beta = 0.2f; // + 2 sigma + } else if (WavCL < mea[9]) { + beta = 0.1f; + } else { + beta = 0.0f; + } + + } + } + + if (cp.val > 0 && cp.edgeena) { + + float * koe = nullptr; float maxkoe = 0.f; @@ -2810,7 +2852,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float atten01234 = 0.80f; value *= (atten01234 * scaleskip[1]); //for zoom < 100% reduce strength...I choose level 1...but!! } - + value *= beta; float edge = 1.f; float lim0 = 20.f; //arbitrary limit for low radius and level between 2 or 3 to 30 maxi float lev = float (level); diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 66f2a4c19..ae5b6b465 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2312,6 +2312,7 @@ WaveletParams::WaveletParams() : edgeampli(10), contrast(0), edgrad(15), + edgeffect(1.0), edgval(0), edgthresh(10), thr(30), @@ -2428,6 +2429,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && edgeampli == other.edgeampli && contrast == other.contrast && edgrad == other.edgrad + && edgeffect == other.edgeffect && edgval == other.edgval && edgthresh == other.edgthresh && thr == other.thr @@ -3593,6 +3595,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.bluwav, "Wavelet", "bluwav", wavelet.bluwav, keyFile); saveToKeyfile(!pedited || pedited->wavelet.hueskin, "Wavelet", "Hueskin", wavelet.hueskin.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgrad, "Wavelet", "Edgrad", wavelet.edgrad, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.edgeffect, "Wavelet", "Edgeffect", wavelet.edgeffect, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgval, "Wavelet", "Edgval", wavelet.edgval, keyFile); saveToKeyfile(!pedited || pedited->wavelet.edgthresh, "Wavelet", "ThrEdg", wavelet.edgthresh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.avoid, "Wavelet", "AvoidColorShift", wavelet.avoid, keyFile); @@ -4749,6 +4752,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "ChromaLink", pedited, wavelet.chro, pedited->wavelet.chro); assignFromKeyfile(keyFile, "Wavelet", "Contrast", pedited, wavelet.contrast, pedited->wavelet.contrast); assignFromKeyfile(keyFile, "Wavelet", "Edgrad", pedited, wavelet.edgrad, pedited->wavelet.edgrad); + assignFromKeyfile(keyFile, "Wavelet", "Edgeffect", pedited, wavelet.edgeffect, pedited->wavelet.edgeffect); assignFromKeyfile(keyFile, "Wavelet", "Edgval", pedited, wavelet.edgval, pedited->wavelet.edgval); assignFromKeyfile(keyFile, "Wavelet", "ThrEdg", pedited, wavelet.edgthresh, pedited->wavelet.edgthresh); assignFromKeyfile(keyFile, "Wavelet", "ThresholdResidShadow", pedited, wavelet.thr, pedited->wavelet.thr); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 6dd5198ff..7174dfb3c 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1271,6 +1271,7 @@ struct WaveletParams { int edgeampli; int contrast; int edgrad; + double edgeffect; int edgval; int edgthresh; int thr; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 0b06b9d92..87c405d42 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -535,6 +535,7 @@ void ParamsEdited::set(bool v) wavelet.chro = v; wavelet.contrast = v; wavelet.edgrad = v; + wavelet.edgeffect = v; wavelet.edgval = v; wavelet.edgthresh = v; wavelet.thr = v; @@ -1140,6 +1141,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.chro = wavelet.chro && p.wavelet.chro == other.wavelet.chro; wavelet.contrast = wavelet.contrast && p.wavelet.contrast == other.wavelet.contrast; wavelet.edgrad = wavelet.edgrad && p.wavelet.edgrad == other.wavelet.edgrad; + wavelet.edgeffect = wavelet.edgeffect && p.wavelet.edgeffect == other.wavelet.edgeffect; wavelet.edgval = wavelet.edgval && p.wavelet.edgval == other.wavelet.edgval; wavelet.edgthresh = wavelet.edgthresh && p.wavelet.edgthresh == other.wavelet.edgthresh; wavelet.thr = wavelet.thr && p.wavelet.thr == other.wavelet.thr; @@ -3212,6 +3214,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.resblur = mods.wavelet.resblur; } + if (wavelet.edgeffect) { + toEdit.wavelet.edgeffect = mods.wavelet.edgeffect; + } + if (wavelet.resblurc) { toEdit.wavelet.resblurc = mods.wavelet.resblurc; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 0b315583d..f117163dd 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -551,6 +551,7 @@ struct WaveletParamsEdited { bool chroma; bool contrast; bool edgrad; + bool edgeffect; bool edgval; bool edgthresh; bool thr; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index afedf750c..89e05346a 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -90,7 +90,7 @@ Wavelet::Wavelet() : reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), resblur(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLUR"), 0, 100, 1, 0))), resblurc(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLURC"), 0, 100, 1, 0))), - bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.05, 2.5, 0.01, 1.))), + bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.05, 2.5, 0.5, 50.))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))), @@ -106,6 +106,7 @@ Wavelet::Wavelet() : radius(Gtk::manage(new Adjuster(M("TP_WAVELET_RADIUS"), 0, 100, 1, 40))), skinprotect(Gtk::manage(new Adjuster(M("TP_WAVELET_SKIN"), -100, 100, 1, 0.))), edgrad(Gtk::manage(new Adjuster(M("TP_WAVELET_EDRAD"), 0, 100, 1, 15))), + edgeffect(Gtk::manage(new Adjuster(M("TP_WAVELET_EDEFFECT"), 0.05, 2.5, 0.01, 1.))), edgval(Gtk::manage(new Adjuster(M("TP_WAVELET_EDVAL"), 0, 100, 1, 0))), edgthresh(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGTHRESH"), -50, 100, 1, 10))), strength(Gtk::manage(new Adjuster(M("TP_WAVELET_STRENGTH"), 0, 100, 1, 100))), @@ -196,7 +197,7 @@ Wavelet::Wavelet() : EvWavblshape = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLSHAPE"); EvWavresblur = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURWAV"); EvWavresblurc = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURCWAV"); - + EvWavedgeffect = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_EDGEFFECT"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); expcontrast->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expcontrast)); @@ -546,10 +547,14 @@ Wavelet::Wavelet() : // Edge Sharpness ToolParamBlock* const edgBox = Gtk::manage(new ToolParamBlock()); + edgeffect->setAdjusterListener(this); + edgBox->pack_start(*edgeffect); + edgeffect->set_tooltip_markup(M("TP_WAVELET_EDEFFECT_TOOLTIP")); edgval->setAdjusterListener(this); edgBox->pack_start(*edgval); + edgrad->setAdjusterListener(this); edgBox->pack_start(*edgrad); edgrad->set_tooltip_markup(M("TP_WAVELET_EDRAD_TOOLTIP")); @@ -1343,6 +1348,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) chro->setValue(pp->wavelet.chro); contrast->setValue(pp->wavelet.contrast); edgrad->setValue(pp->wavelet.edgrad); + edgeffect->setValue(pp->wavelet.edgeffect); edgval->setValue(pp->wavelet.edgval); edgthresh->setValue(pp->wavelet.edgthresh); thr->setValue(pp->wavelet.thr); @@ -1530,6 +1536,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) lipst->set_inconsistent(!pedited->wavelet.lipst); contrast->setEditedState(pedited->wavelet.contrast ? Edited : UnEdited); edgrad->setEditedState(pedited->wavelet.edgrad ? Edited : UnEdited); + edgeffect->setEditedState(pedited->wavelet.edgeffect ? Edited : UnEdited); edgval->setEditedState(pedited->wavelet.edgval ? Edited : UnEdited); thr->setEditedState(pedited->wavelet.thr ? Edited : UnEdited); thrH->setEditedState(pedited->wavelet.thrH ? Edited : UnEdited); @@ -1702,6 +1709,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.lipst = lipst->get_active(); pp->wavelet.contrast = contrast->getValue(); pp->wavelet.edgrad = edgrad->getValue(); + pp->wavelet.edgeffect = edgeffect->getValue(); pp->wavelet.edgval = edgval->getValue(); pp->wavelet.edgthresh = edgthresh->getValue(); pp->wavelet.thr = thr->getValue(); @@ -1823,6 +1831,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.chro = chro->getEditedState(); pedited->wavelet.contrast = contrast->getEditedState(); pedited->wavelet.edgrad = edgrad->getEditedState(); + pedited->wavelet.edgeffect = edgeffect->getEditedState(); pedited->wavelet.edgval = edgval->getEditedState(); pedited->wavelet.thr = thr->getEditedState(); pedited->wavelet.thrH = thrH->getEditedState(); @@ -2068,6 +2077,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit chro->setDefault(defParams->wavelet.chro); contrast->setDefault(defParams->wavelet.contrast); edgrad->setDefault(defParams->wavelet.edgrad); + edgeffect->setDefault(defParams->wavelet.edgeffect); edgval->setDefault(defParams->wavelet.edgval); edgthresh->setDefault(defParams->wavelet.edgthresh); thr->setDefault(defParams->wavelet.thr); @@ -2136,6 +2146,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit chro->setDefaultEditedState(pedited->wavelet.chro ? Edited : UnEdited); contrast->setDefaultEditedState(pedited->wavelet.contrast ? Edited : UnEdited); edgrad->setDefaultEditedState(pedited->wavelet.edgrad ? Edited : UnEdited); + edgeffect->setDefaultEditedState(pedited->wavelet.edgeffect ? Edited : UnEdited); edgval->setDefaultEditedState(pedited->wavelet.edgval ? Edited : UnEdited); edgthresh->setDefault(defParams->wavelet.edgthresh); thr->setDefaultEditedState(pedited->wavelet.thr ? Edited : UnEdited); @@ -2193,6 +2204,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit chro->setDefaultEditedState(Irrelevant); contrast->setDefaultEditedState(Irrelevant); edgrad->setDefaultEditedState(Irrelevant); + edgeffect->setDefaultEditedState(Irrelevant); edgval->setDefaultEditedState(Irrelevant); edgthresh->setDefaultEditedState(Irrelevant); thr->setDefaultEditedState(Irrelevant); @@ -2728,6 +2740,7 @@ void Wavelet::setBatchMode(bool batchMode) chro->showEditedCB(); contrast->showEditedCB(); edgrad->showEditedCB(); + edgeffect->showEditedCB(); edgval->showEditedCB(); edgthresh->showEditedCB(); thr->showEditedCB(); @@ -2856,6 +2869,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavedgeampli, edgeampli->getTextValue()); } else if (a == edgrad) { listener->panelChanged(EvWavedgrad, edgrad->getTextValue()); + } else if (a == edgeffect) { + listener->panelChanged(EvWavedgeffect, edgeffect->getTextValue()); } else if (a == edgval) { listener->panelChanged(EvWavedgval, edgval->getTextValue()); } else if (a == thres) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 609d3226c..b73339973 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -88,6 +88,7 @@ private: rtengine::ProcEvent EvWavblshape; rtengine::ProcEvent EvWavresblur; rtengine::ProcEvent EvWavresblurc; + rtengine::ProcEvent EvWavedgeffect; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -207,6 +208,7 @@ private: Adjuster* const radius; Adjuster* const skinprotect; Adjuster* const edgrad; + Adjuster* const edgeffect; Adjuster* const edgval; Adjuster* const edgthresh; Adjuster* const strength; From 29596bb45747f50f54655e5fd42e6c00bb0bde07 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 1 Apr 2020 10:16:24 +0200 Subject: [PATCH 400/453] change reset value slider bluwav to 1 --- rtgui/wavelet.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 89e05346a..5d2de1a02 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -90,7 +90,7 @@ Wavelet::Wavelet() : reschro(Gtk::manage(new Adjuster(M("TP_WAVELET_RESCHRO"), -100, 100, 1, 0))), resblur(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLUR"), 0, 100, 1, 0))), resblurc(Gtk::manage(new Adjuster(M("TP_WAVELET_RESBLURC"), 0, 100, 1, 0))), - bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.05, 2.5, 0.5, 50.))), + bluwav(Gtk::manage(new Adjuster(M("TP_WAVELET_BLUWAV"), 0.05, 2.5, 0.5, 1.))), tmrs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSTRENGTH"), -1.0, 2.0, 0.01, 0.0))), edgs(Gtk::manage(new Adjuster(M("TP_WAVELET_TMEDGS"), 0.1, 4.0, 0.01, 1.4))), scale(Gtk::manage(new Adjuster(M("TP_WAVELET_TMSCALE"), 0.1, 10.0, 0.01, 1.0))), From ed57e3163efb47e6ae9d699640fd7590a93cf853 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 2 Apr 2020 09:10:33 +0200 Subject: [PATCH 401/453] Prepare ftblockdn to chroma denoise --- rtdata/languages/default | 8 +- rtengine/FTblockDN.cc | 285 +++++++++++++++++++++++++++++++-------- rtengine/improcfun.h | 23 +++- rtengine/ipwavelet.cc | 2 +- 4 files changed, 248 insertions(+), 70 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index ad98e3e71..2a90be072 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -803,7 +803,7 @@ HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method HISTORY_MSG_THRESWAV;Balance threshold -HISTORY_MSG_BLUWAV;Effects +HISTORY_MSG_BLUWAV;Damper HISTORY_MSG_WAVOLDSH;Old algorithm HISTORY_MSG_WAVOFFSET;Offset HISTORY_MSG_WAVLOWTHR;Threshold low contrast @@ -2147,7 +2147,7 @@ TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method TP_WAVELET_BLCURVE;Blur by levels TP_WAVELET_BLURFRAME;Blur -TP_WAVELET_BLUWAV;Effects +TP_WAVELET_BLUWAV;Damper TP_WAVELET_CBENAB;Toning and Color Balance TP_WAVELET_CB_TOOLTIP;For strong values product color-toning by combining it or not with levels decomposition 'toning'\nFor low values you can change the white balance of the background (sky, ...) without changing that of the front plane, generally more contrasted TP_WAVELET_CCURVE;Local contrast @@ -2206,7 +2206,7 @@ TP_WAVELET_EDGEDETECTTHR;Threshold low (noise) TP_WAVELET_EDGEDETECTTHR2;Threshold high (detection) TP_WAVELET_EDGEDETECTTHR_TOOLTIP;This adjuster lets you target edge detection for example to avoid applying edge sharpness to fine details, such as noise in the sky. TP_WAVELET_EDGEDETECT_TOOLTIP;Moving the slider to the right increases edge sensitivity. This affects local contrast, edge settings and noise. -TP_WAVELET_EDEFFECT;Effect +TP_WAVELET_EDEFFECT;Damper TP_WAVELET_EDEFFECT_TOOLTIP;This slider controls how wide the range of contrast values are that receive the maximum effect from the tool.\nMaximum value (2.5) disabled the tool TP_WAVELET_EDGESENSI;Edge sensitivity TP_WAVELET_EDGREINF_TOOLTIP;Reinforce or reduce the action of the first level, do the opposite to the second level, and leave the rest unchanged. @@ -2283,7 +2283,7 @@ TP_WAVELET_SETTINGS;Wavelet Settings TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHFRAME;Shadows/Highlights TP_WAVELET_SHOWMASK;Show wavelet 'mask' -TP_WAVELET_SIGMA;Effects +TP_WAVELET_SIGMA;Damper TP_WAVELET_SIGMA_TOOLTIP;This slider controls how wide the range of contrast values are that receive the maximum effect from the tool.\n The higher it is, the more contrast values will be strongly modified and the higher the risk to generate artifacts. The lower it is, the more pinpoint will the effect be applied to a certain range of contrast values TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 9120fe0ad..34e7351b8 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -63,8 +63,8 @@ namespace rtengine { -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% /* Structure of the algorithm: @@ -483,7 +483,6 @@ enum nrquality {QUALITY_STANDARD, QUALITY_HIGH}; void ImProcFunctions::RGB_denoise(int kall, Imagefloat * src, Imagefloat * dst, Imagefloat * calclum, float * ch_M, float *max_r, float *max_b, bool isRAW, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, const NoiseCurve & noiseLCurve, const NoiseCurve & noiseCCurve, float &nresi, float &highresi) { BENCHFUN - //#ifdef _DEBUG MyTime t1e, t2e; t1e.set(); @@ -1183,6 +1182,7 @@ BENCHFUN } else { madL[lvl][dir - 1] = SQR(MadRgb(WavCoeffs_L[dir], Wlvl_L * Hlvl_L)); } + } } } @@ -1200,16 +1200,16 @@ BENCHFUN if (!memoryAllocationFailed) { if (nrQuality == QUALITY_STANDARD) { - if (!WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, noisevarab_r, useNoiseCCurve, autoch, denoiseMethodRgb)) { //enhance mode + if (!WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, nullptr, 0, noisevarab_r, useNoiseCCurve, autoch, denoiseMethodRgb, denoiseNestedLevels)) { //enhance mode memoryAllocationFailed = true; } } else { /*if (nrQuality==QUALITY_HIGH)*/ - if (!WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, noisevarab_r, useNoiseCCurve, autoch, denoiseMethodRgb)) { //enhance mode + if (!WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, nullptr, 0, noisevarab_r, useNoiseCCurve, autoch, denoiseMethodRgb, denoiseNestedLevels)) { //enhance mode memoryAllocationFailed = true; } if (!memoryAllocationFailed) { - if (!WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, noisevarab_r, useNoiseCCurve, autoch, denoiseMethodRgb)) { + if (!WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, nullptr, 0, noisevarab_r, useNoiseCCurve, autoch, denoiseMethodRgb, denoiseNestedLevels)) { memoryAllocationFailed = true; } } @@ -1237,16 +1237,16 @@ BENCHFUN if (!memoryAllocationFailed) { if (nrQuality == QUALITY_STANDARD) { - if (!WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, noisevarab_b, useNoiseCCurve, autoch, denoiseMethodRgb)) { //enhance mode + if (!WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, nullptr, 0, noisevarab_b, useNoiseCCurve, autoch, denoiseMethodRgb, denoiseNestedLevels)) { //enhance mode memoryAllocationFailed = true; } } else { /*if (nrQuality==QUALITY_HIGH)*/ - if (!WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, noisevarab_b, useNoiseCCurve, autoch, denoiseMethodRgb)) { //enhance mode + if (!WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, nullptr, 0, noisevarab_b, useNoiseCCurve, autoch, denoiseMethodRgb, denoiseNestedLevels)) { //enhance mode memoryAllocationFailed = true; } if (!memoryAllocationFailed) { - if (!WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, noisevarab_b, useNoiseCCurve, autoch, denoiseMethodRgb)) { + if (!WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, nullptr, 0, noisevarab_b, useNoiseCCurve, autoch, denoiseMethodRgb, denoiseNestedLevels)) { memoryAllocationFailed = true; } } @@ -1273,16 +1273,16 @@ BENCHFUN int edge = 0; if (nrQuality == QUALITY_STANDARD) { - if (!WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, nullptr, edge)) { //enhance mode + if (!WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, nullptr, edge, denoiseNestedLevels)) { //enhance mode memoryAllocationFailed = true; } } else { /*if (nrQuality==QUALITY_HIGH)*/ - if (!WaveletDenoiseAll_BiShrinkL(*Ldecomp, noisevarlum, madL)) { //enhance mode + if (!WaveletDenoiseAll_BiShrinkL(*Ldecomp, noisevarlum, madL, nullptr, edge, denoiseNestedLevels)) { //enhance mode memoryAllocationFailed = true; } if (!memoryAllocationFailed) { - if (!WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, nullptr, edge)) { + if (!WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, nullptr, edge, denoiseNestedLevels)) { memoryAllocationFailed = true; } } @@ -1354,9 +1354,11 @@ BENCHFUN #else int subThread = 0; #endif +// float blurbuffer[TS * TS] ALIGNED64; float *Lblox = LbloxArray[subThread]; float *fLblox = fLbloxArray[subThread]; float pBuf[width + TS + 2 * blkrad * offset] ALIGNED16; +// float nbrwt[TS * TS] ALIGNED64; #ifdef _OPENMP #pragma omp for #endif @@ -1432,6 +1434,7 @@ BENCHFUN for (int hblk = 0; hblk < numblox_W; ++hblk) { RGBtile_denoise(fLblox, hblk, noisevar_Ldetail); + // RGBtile_denoise(fLblox, hblk, noisevar_Ldetail, nbrwt, blurbuffer); }//end of horizontal block loop //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -1448,8 +1451,14 @@ BENCHFUN //add row of blocks to output image tile RGBoutput_tile_row(Lblox, Ldetail, tilemask_out, height, width, topproc); + //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + }//end of vertical block loop + + //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + } + //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% #ifdef _OPENMP #pragma omp parallel for num_threads(denoiseNestedLevels) if (denoiseNestedLevels>1) @@ -2036,6 +2045,13 @@ BENCHFUN }//end of main RGB_denoise + +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +//void ImProcFunctions::RGBtile_denoise(float * fLblox, int hblproc, float noisevar_Ldetail, float * nbrwt, float * blurbuffer) //for DCT void ImProcFunctions::RGBtile_denoise(float* fLblox, int hblproc, float noisevar_Ldetail) //for DCT { float nbrwt[TS * TS] ALIGNED64; @@ -2062,6 +2078,10 @@ void ImProcFunctions::RGBtile_denoise(float* fLblox, int hblproc, float noisevar } + +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + void ImProcFunctions::RGBoutput_tile_row(float *bloxrow_L, float ** Ldetail, float ** tilemask_out, int height, int width, int top) { const int numblox_W = ceil((static_cast(width)) / (offset)); @@ -2189,11 +2209,19 @@ void ImProcFunctions::Noise_residualAB(const wavelet_decomposition &WaveletCoeff chmaxresid = maxresid; } -bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3]) +bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge, int denoiseNestedLevels) { int maxlvl = min(WaveletCoeffs_L.maxlevel(), 5); const float eps = 0.01f; + if (edge == 1 || edge == 3) { + maxlvl = 4; //for refine denoise edge wavelet + } + + if (edge == 2) { + maxlvl = 7; //for locallab denoise + } + int maxWL = 0, maxHL = 0; for (int lvl = 0; lvl < maxlvl; ++lvl) { @@ -2204,6 +2232,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W if (WaveletCoeffs_L.level_H(lvl) > maxHL) { maxHL = WaveletCoeffs_L.level_H(lvl); } + } bool memoryAllocationFailed = false; @@ -2234,14 +2263,52 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); if (lvl == maxlvl - 1) { - int edge = 0; - ShrinkAllL(WaveletCoeffs_L, buffer, lvl, dir, noisevarlum, madL[lvl], nullptr, edge); - } else { + // int edge = 0; + ShrinkAllL(WaveletCoeffs_L, buffer, lvl, dir, noisevarlum, madL[lvl], vari, edge); + } else { //simple wavelet shrinkage float * sfave = buffer[0] + 32; float * sfaved = buffer[2] + 96; float mad_Lr = madL[lvl][dir - 1]; + /* + if ((edge == 1 || edge == 2 || edge == 3) && vari) { + noisevarlum = blurBuffer; // we need one buffer, but fortunately we don't have to allocate a new one because we can use blurBuffer + + for (int i = 0; i < Wlvl_L * Hlvl_L; ++i) { + noisevarlum[i] = vari[lvl]; + } + } + */ + float *nvl = nullptr; + nvl = new float[Hlvl_L * Wlvl_L]; + + for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { + nvl[i] = 0.f; + } + if ((edge == 1 || edge == 2 || edge == 3) && vari) { + // nvl = blurBuffer; // we need one buffer, but fortunately we don't have to allocate a new one because we can use blurBuffer + if ((edge == 1 || edge == 3)) { + for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { + nvl[i] = vari[lvl]; + } + } + + if (edge == 2) { + for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { + nvl[i] = vari[lvl] * SQR(noisevarlum[i]); + } + } + + } + + else { + for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { + nvl[i] = noisevarlum[i]; + } + + } + float levelFactor = mad_Lr * 5.f / (lvl + 1); #ifdef __SSE2__ @@ -2253,14 +2320,14 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W int coeffloc_L; for (coeffloc_L = 0; coeffloc_L < Hlvl_L * Wlvl_L - 3; coeffloc_L += 4) { - mad_Lv = LVFU(noisevarlum[coeffloc_L]) * levelFactorv; + mad_Lv = LVFU(nvl[coeffloc_L]) * levelFactorv; mag_Lv = SQRV(LVFU(WavCoeffs_L[dir][coeffloc_L])); STVFU(sfave[coeffloc_L], mag_Lv / (mag_Lv + mad_Lv * xexpf(-mag_Lv / (mad_Lv * ninev)) + epsv)); } for (; coeffloc_L < Hlvl_L * Wlvl_L; ++coeffloc_L) { float mag_L = SQR(WavCoeffs_L[dir][coeffloc_L]); - sfave[coeffloc_L] = mag_L / (mag_L + levelFactor * noisevarlum[coeffloc_L] * xexpf(-mag_L / (9.f * levelFactor * noisevarlum[coeffloc_L])) + eps); + sfave[coeffloc_L] = mag_L / (mag_L + levelFactor * nvl[coeffloc_L] * xexpf(-mag_L / (9.f * levelFactor * nvl[coeffloc_L])) + eps); } #else @@ -2270,12 +2337,13 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W int coeffloc_L = i * Wlvl_L + j; float mag_L = SQR(WavCoeffs_L[dir][coeffloc_L]); - sfave[coeffloc_L] = mag_L / (mag_L + levelFactor * noisevarlum[coeffloc_L] * xexpf(-mag_L / (9.f * levelFactor * noisevarlum[coeffloc_L])) + eps); + sfave[coeffloc_L] = mag_L / (mag_L + levelFactor * nvl[coeffloc_L] * xexpf(-mag_L / (9.f * levelFactor * nvl[coeffloc_L])) + eps); } } #endif boxblur(sfave, sfaved, lvl + 2, Wlvl_L, Hlvl_L, false); //increase smoothness by locally averaging shrinkage + #ifdef __SSE2__ vfloat sfavev; vfloat sf_Lv; @@ -2306,7 +2374,9 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W } #endif + delete [] nvl; } + } } } @@ -2321,11 +2391,20 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W return (!memoryAllocationFailed); } -bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, - float *noisevarchrom, float madL[8][3], float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb) + +bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels) + { int maxlvl = WaveletCoeffs_L.maxlevel(); + if (local == 2) { + maxlvl = 7; //for local denoise + } + + if (local == 3) { + maxlvl = 4; //for shape detection + } + if (autoch && noisevar_ab <= 0.001f) { noisevar_ab = 0.02f; } @@ -2393,14 +2472,36 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition & float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); if (lvl == maxlvl - 1) { - ShrinkAllAB(WaveletCoeffs_L, WaveletCoeffs_ab, buffer, lvl, dir, noisevarchrom, noisevar_ab, useNoiseCCurve, autoch, denoiseMethodRgb, madL[lvl], madab[lvl], true); + ShrinkAllAB(WaveletCoeffs_L, WaveletCoeffs_ab, buffer, lvl, dir, noisevarchrom, noisevar_ab, useNoiseCCurve, autoch, denoiseMethodRgb, madL[lvl], nullptr, 0, madab[lvl], true); } else { //simple wavelet shrinkage + float noisevarfc; float mad_Lr = madL[lvl][dir - 1]; - float mad_abr = useNoiseCCurve ? noisevar_ab * madab[lvl][dir - 1] : SQR(noisevar_ab) * madab[lvl][dir - 1]; + float *nvc = nullptr; + nvc = new float[Hlvl_ab * Wlvl_ab]; - if (noisevar_ab > 0.001f) { + if ((local == 2 || local == 3) && variC && useNoiseCCurve) { + noisevarfc = variC[lvl]; + + for (int p = 0; p < Hlvl_ab * Wlvl_ab; p++) { + nvc[p] = 10.f * sqrt(variC[lvl]) * SQR(1.f + 4.f * noisevarchrom[p]); + } + + } else { + noisevarfc = noisevar_ab; + + for (int p = 0; p < Hlvl_ab * Wlvl_ab; p++) { + nvc[p] = noisevarchrom[p]; + } + + } + + + // float mad_abr = useNoiseCCurve ? noisevar_ab * madab[lvl][dir - 1] : SQR(noisevar_ab) * madab[lvl][dir - 1]; + float mad_abr = useNoiseCCurve ? noisevarfc * madab[lvl][dir - 1] : SQR(noisevarfc) * madab[lvl][dir - 1]; + + if (noisevarfc > 0.001f) { #ifdef __SSE2__ vfloat onev = F2V(1.f); @@ -2412,7 +2513,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition & int coeffloc_ab; for (coeffloc_ab = 0; coeffloc_ab < Hlvl_ab * Wlvl_ab - 3; coeffloc_ab += 4) { - mad_abv = LVFU(noisevarchrom[coeffloc_ab]) * mad_abrv; + mad_abv = LVFU(nvc[coeffloc_ab]) * mad_abrv; tempabv = LVFU(WavCoeffs_ab[dir][coeffloc_ab]); mag_Lv = LVFU(WavCoeffs_L[dir][coeffloc_ab]); @@ -2425,7 +2526,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition & for (; coeffloc_ab < Hlvl_ab * Wlvl_ab; ++coeffloc_ab) { float mag_L = SQR(WavCoeffs_L[dir][coeffloc_ab ]); float mag_ab = SQR(WavCoeffs_ab[dir][coeffloc_ab]); - WavCoeffs_ab[dir][coeffloc_ab] *= SQR(1.f - xexpf(-(mag_ab / (noisevarchrom[coeffloc_ab] * mad_abr)) - (mag_L / (9.f * mad_Lr)))/*satfactor_a*/); + WavCoeffs_ab[dir][coeffloc_ab] *= SQR(1.f - xexpf(-(mag_ab / (nvc[coeffloc_ab] * mad_abr)) - (mag_L / (9.f * mad_Lr)))/*satfactor_a*/); }//now chrominance coefficients are denoised #else @@ -2437,7 +2538,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition & float mag_L = SQR(WavCoeffs_L[dir][coeffloc_ab ]); float mag_ab = SQR(WavCoeffs_ab[dir][coeffloc_ab]); - WavCoeffs_ab[dir][coeffloc_ab] *= SQR(1.f - xexpf(-(mag_ab / (noisevarchrom[coeffloc_ab] * mad_abr)) - (mag_L / (9.f * mad_Lr)))/*satfactor_a*/); + WavCoeffs_ab[dir][coeffloc_ab] *= SQR(1.f - xexpf(-(mag_ab / (nvc[coeffloc_ab] * mad_abr)) - (mag_L / (9.f * mad_Lr)))/*satfactor_a*/); } }//now chrominance coefficients are denoised @@ -2445,9 +2546,12 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition & #endif } + delete [] nvc; + } } } + } for (int i = 2; i >= 0; i--) { @@ -2459,16 +2563,20 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition & } -bool ImProcFunctions::WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge)//mod JD +bool ImProcFunctions::WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge, int denoiseNestedLevels)//mod JD { int maxlvl = min(WaveletCoeffs_L.maxlevel(), 5); - if (edge == 1) { + if (edge == 1 || edge == 3) { maxlvl = 4; //for refine denoise edge wavelet } + if (edge == 2) { + maxlvl = 7; //for locallab denoise + } + int maxWL = 0, maxHL = 0; for (int lvl = 0; lvl < maxlvl; ++lvl) { @@ -2517,11 +2625,20 @@ bool ImProcFunctions::WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoe bool ImProcFunctions::WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, - float *noisevarchrom, float madL[8][3], float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb)//mod JD + float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels)//mod JD { int maxlvl = WaveletCoeffs_L.maxlevel(); + + if (local == 2) { + maxlvl = 7; //for local denoise + } + + if (local == 3) { + maxlvl = 4; //for shape detection + } + int maxWL = 0, maxHL = 0; for (int lvl = 0; lvl < maxlvl; ++lvl) { @@ -2555,7 +2672,7 @@ bool ImProcFunctions::WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCo for (int lvl = 0; lvl < maxlvl; ++lvl) { for (int dir = 1; dir < 4; ++dir) { - ShrinkAllAB(WaveletCoeffs_L, WaveletCoeffs_ab, buffer, lvl, dir, noisevarchrom, noisevar_ab, useNoiseCCurve, autoch, denoiseMethodRgb, madL[lvl]); + ShrinkAllAB(WaveletCoeffs_L, WaveletCoeffs_ab, buffer, lvl, dir, noisevarchrom, noisevar_ab, useNoiseCCurve, autoch, denoiseMethodRgb, madL[lvl], variC, local, nullptr, 0); } } } @@ -2569,8 +2686,6 @@ bool ImProcFunctions::WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCo return (!memoryAllocationFailed); } -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, float **buffer, int level, int dir, @@ -2582,7 +2697,7 @@ void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, f float * sfave = buffer[0] + 32; float * sfaved = buffer[1] + 64; - float * blurBuffer = buffer[2] + 96; +// float * blurBuffer = buffer[2] + 96; const int W_L = WaveletCoeffs_L.level_W(level); const int H_L = WaveletCoeffs_L.level_H(level); @@ -2591,30 +2706,54 @@ void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, f const float mad_L = madL[dir - 1] ; const float levelFactor = mad_L * 5.f / static_cast(level + 1); - if (edge == 1 && vari) { - noisevarlum = blurBuffer; // we need one buffer, but fortunately we don't have to allocate a new one because we can use blurBuffer + float *nvl = nullptr; + nvl = new float[ H_L * W_L]; - for (int i = 0; i < W_L * H_L; ++i) { - noisevarlum[i] = vari[level]; - } + for (int i = 0; i < W_L * H_L; ++i) { + nvl[i] = 0.f; } + if ((edge == 1 || edge == 2 || edge == 3) && vari) { + // nvl = blurBuffer; // we need one buffer, but fortunately we don't have to allocate a new one because we can use blurBuffer + if ((edge == 1 || edge == 3)) { + for (int i = 0; i < W_L * H_L; ++i) { + nvl[i] = vari[level]; //* SQR(1.f + 4.f * noisevarchrom[p]); + } + } + + if (edge == 2) { + for (int i = 0; i < W_L * H_L; ++i) { + nvl[i] = vari[level] * SQR(noisevarlum[i]); + } + } + + } + + else { + for (int i = 0; i < W_L * H_L; ++i) { + nvl[i] = noisevarlum[i]; + } + + } int i = 0; #ifdef __SSE2__ const vfloat levelFactorv = F2V(levelFactor); const vfloat ninev = F2V(9.f); const vfloat epsv = F2V(eps); - for (; i < W_L * H_L - 3; i += 4) { - const vfloat mad_Lv = LVFU(noisevarlum[i]) * levelFactorv; + + for (i = 0; i < W_L * H_L - 3; i += 4) { + // const vfloat mad_Lv = LVFU(noisevarlum[i]) * levelFactorv; + const vfloat mad_Lv = LVFU(nvl[i]) * levelFactorv; const vfloat magv = SQRV(LVFU(WavCoeffs_L[dir][i])); STVFU(sfave[i], magv / (magv + mad_Lv * xexpf(-magv / (ninev * mad_Lv)) + epsv)); } + #endif // few remaining pixels for (; i < W_L * H_L; ++i) { - const float mag = SQR(WavCoeffs_L[dir][i]); - sfave[i] = mag / (mag + levelFactor * noisevarlum[i] * xexpf(-mag / (9 * levelFactor * noisevarlum[i])) + eps); + float mag = SQR(WavCoeffs_L[dir][i]); + sfave[i] = mag / (mag + levelFactor * nvl[i] * xexpf(-mag / (9 * levelFactor * nvl[i])) + eps); } boxblur(sfave, sfaved, level + 2, W_L, H_L, false); //increase smoothness by locally averaging shrinkage @@ -2634,12 +2773,15 @@ void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, f //use smoothed shrinkage unless local shrinkage is much less WavCoeffs_L[dir][i] *= (SQR(sfaved[i]) + SQR(sf)) / (sfaved[i] + sf + eps); }//now luminance coefficients are denoised + + delete [] nvl; + } -void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float **buffer, int level, int dir, - float *noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, - bool denoiseMethodRgb, float * madL, float * madaab, bool madCalculated) +void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition & WaveletCoeffs_L, const wavelet_decomposition & WaveletCoeffs_ab, float **buffer, int level, int dir, + float * noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, + bool denoiseMethodRgb, float * madL, float * variC, int local, float * madaab, bool madCalculated) { //simple wavelet shrinkage @@ -2651,6 +2793,7 @@ void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, float * sfaveab = buffer[0] + 32; float * sfaveabd = buffer[1] + 64; + // float * blurBuffer = buffer[2] + 96; int W_ab = WaveletCoeffs_ab.level_W(level); int H_ab = WaveletCoeffs_ab.level_H(level); @@ -2670,9 +2813,30 @@ void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, madab = SQR(MadRgb(WavCoeffs_ab[dir], W_ab * H_ab)); } } + float noisevarfc; - if (noisevar_ab > 0.001f) { - madab = useNoiseCCurve ? madab : madab * noisevar_ab; + float *nvc = nullptr; + nvc = new float[ H_ab * W_ab]; + + if ((local == 2 || local == 3) && variC && useNoiseCCurve) { + noisevarfc = variC[level]; + for (int p = 0; p < H_ab * W_ab; p++) { + nvc[p] = 10.f * sqrt(variC[level]) * SQR(1.f + 4.f * noisevarchrom[p]); + } + + } else { + noisevarfc = noisevar_ab; + + for (int p = 0; p < H_ab * W_ab; p++) { + nvc[p] = noisevarchrom[p]; + } + + } + + // printf("varfc=%f nvc0=%f nvc1=%f nvc2=%f\n", noisevarfc, nvc[10], nvc[H_ab * W_ab /3], nvc[H_ab * W_ab /2]); + if (noisevarfc > 0.001f) {//noisevar_ab + //madab = useNoiseCCurve ? madab : madab * noisevar_ab; + madab = useNoiseCCurve ? madab : madab * noisevarfc; #ifdef __SSE2__ vfloat onev = F2V(1.f); vfloat mad_abrv = F2V(madab); @@ -2680,10 +2844,11 @@ void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, vfloat rmadLm9v = onev / F2V(mad_L * 9.f); vfloat mad_abv ; vfloat mag_Lv, mag_abv; + int coeffloc_ab; for (coeffloc_ab = 0; coeffloc_ab < H_ab * W_ab - 3; coeffloc_ab += 4) { - mad_abv = LVFU(noisevarchrom[coeffloc_ab]) * mad_abrv; + mad_abv = LVFU(nvc[coeffloc_ab]) * mad_abrv; mag_Lv = LVFU(WavCoeffs_L[dir][coeffloc_ab]); mag_abv = SQRV(LVFU(WavCoeffs_ab[dir][coeffloc_ab])); @@ -2695,7 +2860,7 @@ void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, for (; coeffloc_ab < H_ab * W_ab; ++coeffloc_ab) { float mag_L = SQR(WavCoeffs_L[dir][coeffloc_ab]); float mag_ab = SQR(WavCoeffs_ab[dir][coeffloc_ab]); - sfaveab[coeffloc_ab] = (1.f - xexpf(-(mag_ab / (noisevarchrom[coeffloc_ab] * madab)) - (mag_L / (9.f * mad_L)))); + sfaveab[coeffloc_ab] = (1.f - xexpf(-(mag_ab / (nvc[coeffloc_ab] * madab)) - (mag_L / (9.f * mad_L)))); }//now chrominance coefficients are denoised #else @@ -2705,13 +2870,14 @@ void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, int coeffloc_ab = i * W_ab + j; float mag_L = SQR(WavCoeffs_L[dir][coeffloc_ab]); float mag_ab = SQR(WavCoeffs_ab[dir][coeffloc_ab]); - sfaveab[coeffloc_ab] = (1.f - xexpf(-(mag_ab / (noisevarchrom[coeffloc_ab] * madab)) - (mag_L / (9.f * mad_L)))); + sfaveab[coeffloc_ab] = (1.f - xexpf(-(mag_ab / (nvc[coeffloc_ab] * madab)) - (mag_L / (9.f * mad_L)))); } }//now chrominance coefficients are denoised #endif - boxblur(sfaveab, sfaveabd, level + 2, W_ab, H_ab, false); //increase smoothness by locally averaging shrinkage + +// boxblur(sfaveab, sfaveabd, blurBuffer, level + 2, level + 2, W_ab, H_ab); //increase smoothness by locally averaging shrinkage #ifdef __SSE2__ vfloat epsv = F2V(eps); vfloat sfabv; @@ -2749,12 +2915,13 @@ void ImProcFunctions::ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, #endif } + delete [] nvc; } void ImProcFunctions::ShrinkAll_info(float ** WavCoeffs_a, float ** WavCoeffs_b, - int W_ab, int H_ab, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, - float &maxredaut, float &maxblueaut, float &minredaut, float &minblueaut, int schoice, int lvl, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, - float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb) + int W_ab, int H_ab, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float & chaut, int &Nb, float & redaut, float & blueaut, + float & maxredaut, float & maxblueaut, float & minredaut, float & minblueaut, int schoice, int lvl, float & chromina, float & sigma, float & lumema, float & sigma_L, float & redyel, float & skinc, float & nsknc, + float & maxchred, float & maxchblue, float & minchred, float & minchblue, int &nb, float & chau, float & chred, float & chblue, bool denoiseMethodRgb) { //simple wavelet shrinkage @@ -2869,9 +3036,9 @@ void ImProcFunctions::ShrinkAll_info(float ** WavCoeffs_a, float ** WavCoeffs_b, } -void ImProcFunctions::WaveletDenoiseAll_info(int levwav, const wavelet_decomposition &WaveletCoeffs_a, - const wavelet_decomposition &WaveletCoeffs_b, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float &maxblueaut, float &minredaut, float &minblueaut, int schoice, - float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb) +void ImProcFunctions::WaveletDenoiseAll_info(int levwav, const wavelet_decomposition & WaveletCoeffs_a, + const wavelet_decomposition & WaveletCoeffs_b, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float & chaut, int &Nb, float & redaut, float & blueaut, float & maxredaut, float & maxblueaut, float & minredaut, float & minblueaut, int schoice, + float & chromina, float & sigma, float & lumema, float & sigma_L, float & redyel, float & skinc, float & nsknc, float & maxchred, float & maxchblue, float & minchred, float & minchblue, int &nb, float & chau, float & chred, float & chblue, bool denoiseMethodRgb) { int maxlvl = levwav; @@ -2914,7 +3081,7 @@ void ImProcFunctions::RGB_denoise_infoGamCurve(const procparams::DirPyrDenoisePa } } -void ImProcFunctions::calcautodn_info(float &chaut, float &delta, int Nb, int levaut, float maxmax, float lumema, float chromina, int mode, int lissage, float redyel, float skinc, float nsknc) +void ImProcFunctions::calcautodn_info(float & chaut, float & delta, int Nb, int levaut, float maxmax, float lumema, float chromina, int mode, int lissage, float redyel, float skinc, float nsknc) { float reducdelta = 1.f; diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index affa33640..3513efd92 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -238,18 +238,29 @@ public: void RGB_denoise_info(Imagefloat * src, Imagefloat * provicalc, bool isRAW, const LUTf &gamcurve, float gam, float gamthresh, float gamslope, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float & maxblueaut, float &minredaut, float & minblueaut, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, bool multiThread = false); void RGBtile_denoise(float * fLblox, int hblproc, float noisevar_Ldetail); //for DCT void RGBoutput_tile_row(float *bloxrow_L, float ** Ldetail, float ** tilemask_out, int height, int width, int top); - bool WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge); - bool WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb); +// bool WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge); +// bool WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb); void WaveletDenoiseAll_info(int levwav, const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float &maxblueaut, float &minredaut, float & minblueaut, int schoice, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb); - bool WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3]); - bool WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float noisevar_ab, - const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb); + bool WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge, int denoiseNestedLevels); + bool WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels); + bool WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels); + + bool WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge, int denoiseNestedLevels); +// bool WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3]); +// bool WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float noisevar_ab, +// const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb); + void ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, float **buffer, int level, int dir, float *noisevarlum, float * madL, float * vari, int edge); void ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float **buffer, int level, int dir, - float *noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, float * madL, float * madaab = nullptr, bool madCalculated = false); + float *noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, float * madL, float * variC, int local, float * madaab = nullptr, bool madCalculated = false); + + +// void ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, float **buffer, int level, int dir, float *noisevarlum, float * madL, float * vari, int edge); +// void ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float **buffer, int level, int dir, +// float *noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, float * madL, float * madaab = nullptr, bool madCalculated = false); void ShrinkAll_info(float ** WavCoeffs_a, float ** WavCoeffs_b, int W_ab, int H_ab, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float &maxblueaut, float &minredaut, float &minblueaut, int schoice, int lvl, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 53f685826..848451090 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -877,7 +877,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[3] = rtengine::max(0.0001f, vari[3]); float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL - WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge); + WaveletDenoiseAllL (*Ldecomp, noisevarlum, madL, vari, edge, 1); } //Flat curve for Contrast=f(H) in levels From 61c6b19533f4a2207371d7ec8169fc0b7405cd21 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 2 Apr 2020 12:32:29 +0200 Subject: [PATCH 402/453] GUI for wavelt denoise chroma --- rtdata/languages/default | 7 ++++++ rtengine/procparams.cc | 12 ++++++++++ rtengine/procparams.h | 3 +++ rtgui/paramsedited.cc | 18 +++++++++++++++ rtgui/paramsedited.h | 3 +++ rtgui/wavelet.cc | 48 ++++++++++++++++++++++++++++++++++++++++ rtgui/wavelet.h | 7 ++++++ 7 files changed, 98 insertions(+) diff --git a/rtdata/languages/default b/rtdata/languages/default index 2a90be072..94f1e691c 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -791,6 +791,9 @@ HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength HISTORY_MSG_TEMPOUT;CAM02 automatic temperature HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor HISTORY_MSG_TRANS_Method;Geometry - Method +HISTORY_MSG_WAVBALCHROM;Balance chroma +HISTORY_MSG_WAVCHROMFI;Chroma fine +HISTORY_MSG_WAVCHROMCO;Chroma coarse HISTORY_MSG_WAVCLARI;Clarity HISTORY_MSG_WAVEDGS;Edge stopping HISTORY_MSG_WAVMERGEC;Merge C @@ -2142,6 +2145,7 @@ TP_WAVELET_BALANCE;Contrast balance d/v-h TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. TP_WAVELET_BALCHRO;Chroma balance TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. +TP_WAVELET_BALCHROM;Chroma balance TP_WAVELET_BANONE;None TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method @@ -2157,7 +2161,10 @@ TP_WAVELET_CH3;Link contrast levels TP_WAVELET_CHCU;Curve TP_WAVELET_CHR;Chroma-contrast link strength TP_WAVELET_CHRO;Saturated/pastel threshold +TP_WAVELET_CHROFRAME;Denoise Chroma TP_WAVELET_CHROMAFRAME;Chroma +TP_WAVELET_CHROMCO;Chroma Coarse +TP_WAVELET_CHROMFI;Chroma Fine TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" TP_WAVELET_CHRWAV;Blur chroma diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index ae5b6b465..270e28a6a 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2248,6 +2248,9 @@ WaveletParams::WaveletParams() : bluemed(0), greenhigh(0), bluehigh(0), + balchrom(0.), + chromfi(0.), + chromco(0.), mergeL(40.), mergeC(20.), softrad(0.), @@ -2358,6 +2361,9 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && bluemed == other.bluemed && greenhigh == other.greenhigh && bluehigh == other.bluehigh + && balchrom == other.balchrom + && chromfi == other.chromfi + && chromco == other.chromco && mergeL == other.mergeL && mergeC == other.mergeC && softrad == other.softrad @@ -3520,6 +3526,9 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.bluehigh, "Wavelet", "CBbluehigh", wavelet.bluehigh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.bluemed, "Wavelet", "CBbluemed", wavelet.bluemed, keyFile); saveToKeyfile(!pedited || pedited->wavelet.bluelow, "Wavelet", "CBbluelow", wavelet.bluelow, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.balchrom, "Wavelet", "Balchrom", wavelet.balchrom, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.chromfi, "Wavelet", "Chromfine", wavelet.chromfi, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.chromco, "Wavelet", "Chromcoarse", wavelet.chromco, keyFile); saveToKeyfile(!pedited || pedited->wavelet.mergeL, "Wavelet", "MergeL", wavelet.mergeL, keyFile); saveToKeyfile(!pedited || pedited->wavelet.mergeC, "Wavelet", "MergeC", wavelet.mergeC, keyFile); saveToKeyfile(!pedited || pedited->wavelet.softrad, "Wavelet", "Softrad", wavelet.softrad, keyFile); @@ -4690,6 +4699,9 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "CBbluehigh", pedited, wavelet.bluehigh, pedited->wavelet.bluehigh); assignFromKeyfile(keyFile, "Wavelet", "CBbluemed", pedited, wavelet.bluemed, pedited->wavelet.bluemed); assignFromKeyfile(keyFile, "Wavelet", "CBbluelow", pedited, wavelet.bluelow, pedited->wavelet.bluelow); + assignFromKeyfile(keyFile, "Wavelet", "Balchrom", pedited, wavelet.balchrom, pedited->wavelet.balchrom); + assignFromKeyfile(keyFile, "Wavelet", "Chromfine", pedited, wavelet.chromfi, pedited->wavelet.chromfi); + assignFromKeyfile(keyFile, "Wavelet", "Chromcoarse", pedited, wavelet.chromco, pedited->wavelet.chromco); assignFromKeyfile(keyFile, "Wavelet", "MergeL", pedited, wavelet.mergeL, pedited->wavelet.mergeL); assignFromKeyfile(keyFile, "Wavelet", "MergeC", pedited, wavelet.mergeC, pedited->wavelet.mergeC); assignFromKeyfile(keyFile, "Wavelet", "Softrad", pedited, wavelet.softrad, pedited->wavelet.softrad); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 7174dfb3c..a6147ccc5 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1205,6 +1205,9 @@ struct WaveletParams { int bluemed; int greenhigh; int bluehigh; + double balchrom; + double chromfi; + double chromco; double mergeL; double mergeC; double softrad; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 87c405d42..0685e1471 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -486,6 +486,9 @@ void ParamsEdited::set(bool v) wavelet.bluemed = v; wavelet.bluelow = v; wavelet.lipst = v; + wavelet.balchrom = v; + wavelet.chromfi = v; + wavelet.chromco = v; wavelet.mergeL = v; wavelet.mergeC = v; wavelet.softrad = v; @@ -1093,6 +1096,9 @@ void ParamsEdited::initFrom(const std::vector& wavelet.bluelow = wavelet.bluelow && p.wavelet.bluelow == other.wavelet.bluelow; wavelet.lipst = wavelet.lipst && p.wavelet.lipst == other.wavelet.lipst; wavelet.bluehigh = wavelet.bluehigh && p.wavelet.bluehigh == other.wavelet.bluehigh; + wavelet.balchrom = wavelet.balchrom && p.wavelet.balchrom == other.wavelet.balchrom; + wavelet.chromfi = wavelet.chromfi && p.wavelet.chromfi == other.wavelet.chromfi; + wavelet.chromco = wavelet.chromco && p.wavelet.chromco == other.wavelet.chromco; wavelet.mergeL = wavelet.mergeL && p.wavelet.mergeL == other.wavelet.mergeL; wavelet.mergeC = wavelet.mergeC && p.wavelet.mergeC == other.wavelet.mergeC; wavelet.softrad = wavelet.softrad && p.wavelet.softrad == other.wavelet.softrad; @@ -2929,6 +2935,18 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.bluelow = mods.wavelet.bluelow; } + if (wavelet.balchrom) { + toEdit.wavelet.balchrom = mods.wavelet.balchrom; + } + + if (wavelet.chromfi) { + toEdit.wavelet.chromfi = mods.wavelet.chromfi; + } + + if (wavelet.chromco) { + toEdit.wavelet.chromco = mods.wavelet.chromco; + } + if (wavelet.mergeL) { toEdit.wavelet.mergeL = mods.wavelet.mergeL; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index f117163dd..4465d15b4 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -586,6 +586,9 @@ struct WaveletParamsEdited { bool bluemed; bool greenhigh; bool bluehigh; + bool balchrom; + bool chromfi; + bool chromco; bool mergeL; bool mergeC; bool softrad; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 5d2de1a02..836cdfe1f 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -130,6 +130,9 @@ Wavelet::Wavelet() : edgedetectthr2(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR2"), -10, 100, 1, 0))), edgesensi(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGESENSI"), 0, 100, 1, 60))), edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), + balchrom(Gtk::manage(new Adjuster(M("TP_WAVELET_BALCHROM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-red-small.png"))))), + chromfi(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMFI"), 0, 100, 1, 0))), + chromco(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMCO"), 0, 100, 1, 0))), mergeL(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEL"), -50, 100, 1, 40))), mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), @@ -157,6 +160,7 @@ Wavelet::Wavelet() : contFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CONTFRAME")))), blurFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_BLURFRAME")))), chromaFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROMAFRAME")))), + chroFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), @@ -179,6 +183,9 @@ Wavelet::Wavelet() : auto m = ProcEventMapper::getInstance(); EvWavenaclari = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCLARI"); EvWavushamet = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVUSHAMET"); + EvWavbalchrom = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVBALCHROM"); + EvWavchromfi = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCHROMFI"); + EvWavchromco = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCHROMCO"); EvWavmergeL = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVMERGEL"); EvWavmergeC = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVMERGEC"); EvWavsoftrad = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVSOFTRAD"); @@ -523,6 +530,22 @@ Wavelet::Wavelet() : noiseBox->pack_start(*level2noise, Gtk::PACK_SHRINK, 0); noiseBox->pack_start(*level3noise, Gtk::PACK_SHRINK, 0); + balchrom->setAdjusterListener(this); +// noiseBox->pack_start(*balchrom, Gtk::PACK_SHRINK, 0); + chromfi->setAdjusterListener(this); +// noiseBox->pack_start(*chromfi, Gtk::PACK_SHRINK, 0); + chromco->setAdjusterListener(this); +// noiseBox->pack_start(*chromco, Gtk::PACK_SHRINK, 0); + + chroFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const chroBox = Gtk::manage(new ToolParamBlock()); + chroBox->pack_start(*balchrom); + chroBox->pack_start(*chromfi); + chroBox->pack_start(*chromco); + chroFrame->add(*chroBox); + noiseBox->pack_start(*chroFrame); + + //Clarity mergeL->setAdjusterListener(this); mergeC->setAdjusterListener(this); @@ -1383,6 +1406,9 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) softrad->setValue(pp->wavelet.softrad); softradend->setValue(pp->wavelet.softradend); + balchrom->setValue(pp->wavelet.balchrom); + chromfi->setValue(pp->wavelet.chromfi); + chromco->setValue(pp->wavelet.chromco); level0noise->setValue(pp->wavelet.level0noise); level1noise->setValue(pp->wavelet.level1noise); level2noise->setValue(pp->wavelet.level2noise); @@ -1528,6 +1554,10 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) softrad->setEditedState(pedited->wavelet.softrad ? Edited : UnEdited); softradend->setEditedState(pedited->wavelet.softradend ? Edited : UnEdited); + balchrom->setEditedState(pedited->wavelet.balchrom ? Edited : UnEdited); + chromfi->setEditedState(pedited->wavelet.chromfi ? Edited : UnEdited); + chromco->setEditedState(pedited->wavelet.chromco ? Edited : UnEdited); + median->set_inconsistent(!pedited->wavelet.median); medianlev->set_inconsistent(!pedited->wavelet.medianlev); linkedg->set_inconsistent(!pedited->wavelet.linkedg); @@ -1746,6 +1776,9 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.satlev = satlev->getValue (); pp->wavelet.strength = (int) strength->getValue(); pp->wavelet.balance = (int) balance->getValue(); + pp->wavelet.balchrom = balchrom->getValue(); + pp->wavelet.chromfi = chromfi->getValue(); + pp->wavelet.chromco = chromco->getValue(); pp->wavelet.greenlow = greenlow->getValue(); pp->wavelet.bluelow = bluelow->getValue(); @@ -1865,6 +1898,9 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.bluemed = bluemed->getEditedState(); pedited->wavelet.greenhigh = greenhigh->getEditedState(); pedited->wavelet.bluehigh = bluehigh->getEditedState(); + pedited->wavelet.balchrom = balchrom->getEditedState(); + pedited->wavelet.chromfi = chromfi->getEditedState(); + pedited->wavelet.chromco = chromco->getEditedState(); pedited->wavelet.mergeL = mergeL->getEditedState(); pedited->wavelet.mergeC = mergeC->getEditedState(); pedited->wavelet.softrad = softrad->getEditedState(); @@ -2096,6 +2132,9 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit level1noise->setDefault (defParams->wavelet.level1noise); level2noise->setDefault (defParams->wavelet.level2noise); level3noise->setDefault (defParams->wavelet.level3noise); + balchrom->setDefault(defParams->wavelet.balchrom); + chromfi->setDefault(defParams->wavelet.chromfi); + chromco->setDefault(defParams->wavelet.chromco); greenlow->setDefault(defParams->wavelet.greenlow); bluelow->setDefault(defParams->wavelet.bluelow); @@ -2119,6 +2158,9 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit mergeC->setDefaultEditedState(pedited->wavelet.mergeC ? Edited : UnEdited); softrad->setDefaultEditedState(pedited->wavelet.softrad ? Edited : UnEdited); softradend->setDefaultEditedState(pedited->wavelet.softradend ? Edited : UnEdited); + balchrom->setDefaultEditedState(pedited->wavelet.balchrom ? Edited : UnEdited); + chromfi->setDefaultEditedState(pedited->wavelet.chromfi ? Edited : UnEdited); + chromco->setDefaultEditedState(pedited->wavelet.chromco ? Edited : UnEdited); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); @@ -2912,6 +2954,12 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); } else if (a == bluehigh) { listener->panelChanged(EvWavbluehigh, bluehigh->getTextValue()); + } else if (a == balchrom) { + listener->panelChanged(EvWavbalchrom, balchrom->getTextValue()); + } else if (a == chromfi) { + listener->panelChanged(EvWavchromfi, chromfi->getTextValue()); + } else if (a == chromco) { + listener->panelChanged(EvWavchromco, chromco->getTextValue()); } else if (a == mergeL) { listener->panelChanged(EvWavmergeL, mergeL->getTextValue()); } else if (a == mergeC) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index b73339973..07d2432ac 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -70,6 +70,9 @@ public: private: rtengine::ProcEvent EvWavenaclari; rtengine::ProcEvent EvWavushamet; + rtengine::ProcEvent EvWavbalchrom; + rtengine::ProcEvent EvWavchromfi; + rtengine::ProcEvent EvWavchromco; rtengine::ProcEvent EvWavmergeL; rtengine::ProcEvent EvWavmergeC; rtengine::ProcEvent EvWavsoftrad; @@ -241,6 +244,9 @@ private: Adjuster* const edgedetectthr2; Adjuster* const edgesensi; Adjuster* const edgeampli; + Adjuster* const balchrom; + Adjuster* const chromfi; + Adjuster* const chromco; Adjuster* const mergeL; Adjuster* const mergeC; Adjuster* const softrad; @@ -285,6 +291,7 @@ private: Gtk::Frame* const contFrame; Gtk::Frame* const blurFrame; Gtk::Frame* const chromaFrame; + Gtk::Frame* const chroFrame; Gtk::Label* const wavLabels; Gtk::Label* const labmC; From 8886402e93461cf1ddf1d144298399b1f2eba7f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Thu, 2 Apr 2020 13:23:57 +0200 Subject: [PATCH 403/453] Fix Clang-10 warnings --- rtengine/iccstore.cc | 2 +- rtengine/ipwavelet.cc | 16 ++++++++-------- rtgui/editorpanel.cc | 2 +- rtgui/preferences.cc | 4 ++-- rtgui/profilestorecombobox.cc | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/rtengine/iccstore.cc b/rtengine/iccstore.cc index 9d7024bff..6b2be1713 100644 --- a/rtengine/iccstore.cc +++ b/rtengine/iccstore.cc @@ -635,7 +635,7 @@ public: MyMutex::MyLock lock(mutex); - for (const auto profile : fileProfiles) { + for (const auto& profile : fileProfiles) { if ( ( type == ICCStore::ProfileType::MONITOR diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 53f685826..fa82db28b 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1845,8 +1845,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * WavCoeffs_L0[i] = aft[i]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } // #ifdef _OPENMP @@ -2070,8 +2070,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * WavCoeffs_L[dir][co] = aft[co]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } } } @@ -2288,8 +2288,8 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float WavCoeffs_ab0[i] = aft[i]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } @@ -2371,8 +2371,8 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float WavCoeffs_ab[dir][co] = aft[co]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } diff --git a/rtgui/editorpanel.cc b/rtgui/editorpanel.cc index 6a0d41878..1a82c4a94 100644 --- a/rtgui/editorpanel.cc +++ b/rtgui/editorpanel.cc @@ -172,7 +172,7 @@ private: const std::vector profiles = rtengine::ICCStore::getInstance()->getProfiles (rtengine::ICCStore::ProfileType::MONITOR); - for (const auto profile : profiles) { + for (const auto& profile : profiles) { profileBox.append (profile); } diff --git a/rtgui/preferences.cc b/rtgui/preferences.cc index 083444342..5268948cc 100644 --- a/rtgui/preferences.cc +++ b/rtgui/preferences.cc @@ -778,7 +778,7 @@ Gtk::Widget* Preferences::getColorManPanel () const std::vector profiles = rtengine::ICCStore::getInstance ()->getProfiles (rtengine::ICCStore::ProfileType::MONITOR); - for (const auto profile : profiles) { + for (const auto& profile : profiles) { if (profile.find("file:") != 0) { std::string fileis_RTv4 = profile.substr(0, 4); @@ -847,7 +847,7 @@ Gtk::Widget* Preferences::getColorManPanel () const std::vector prtprofiles = rtengine::ICCStore::getInstance ()->getProfiles (rtengine::ICCStore::ProfileType::PRINTER); - for (const auto prtprofile : prtprofiles) { + for (const auto& prtprofile : prtprofiles) { prtProfile->append (prtprofile); } diff --git a/rtgui/profilestorecombobox.cc b/rtgui/profilestorecombobox.cc index bb294189f..a6085e7a9 100644 --- a/rtgui/profilestorecombobox.cc +++ b/rtgui/profilestorecombobox.cc @@ -182,7 +182,7 @@ Gtk::TreeIter ProfileStoreComboBox::findRowFromEntry (const ProfileStoreEntry *p Gtk::TreeIter ProfileStoreComboBox::findRowFromFullPath_ (Gtk::TreeModel::Children childs, int parentFolderId, const Glib::ustring &name) const { - for (const auto iter : childs) { + for (const auto& iter : childs) { const Gtk::TreeModel::Row row = *iter; // Hombre: is there a smarter way of knowing if this row has childs? const ProfileStoreEntry *pse = row[methodColumns.profileStoreEntry]; @@ -309,7 +309,7 @@ Gtk::TreeIter ProfileStoreComboBox::getRowFromLabel (const Glib::ustring &name) const Gtk::TreeModel::Children childs = refTreeModel->children(); if (!name.empty()) { - for (const auto iter : childs) { + for (const auto& iter : childs) { const Gtk::TreeModel::Row currRow = *iter; const ProfileStoreEntry *pse = currRow[methodColumns.profileStoreEntry]; From ac0d54ef3e79c390211ba7a78bd6f7696959fe32 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 3 Apr 2020 07:37:16 +0200 Subject: [PATCH 404/453] Display pyramid mea[] --- rtengine/ipwavelet.cc | 609 ++++++++++++++++++++++++++++++------------ rtgui/wavelet.cc | 2 +- 2 files changed, 433 insertions(+), 178 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 848451090..2b741a89b 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -138,6 +138,9 @@ struct cont_params { float edgampl; int neigh; bool lipp; + float balchrom; + float chromfi; + float chromco; }; int wavNestedLevels = 1; @@ -196,6 +199,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.BAmethod != "none") { cp.bam = true; + if (params->wavelet.BAmethod == "sli") { cp.BAmet = 1; } else if (params->wavelet.BAmethod == "cur") { @@ -260,7 +264,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const DaubLen = 8; } else if (params->wavelet.daubcoeffmethod == "10_") { DaubLen = 12; - } else /* if (params->wavelet.daubcoeffmethod == "14_") */{ + } else { /* if (params->wavelet.daubcoeffmethod == "14_") */ DaubLen = 16; } @@ -394,6 +398,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.val = waparams.edgval; cp.til = waparams.edgthresh; cp.eff = waparams.edgeffect; + cp.balchrom = waparams.balchrom; + cp.chromfi = waparams.chromfi; + cp.chromco = waparams.chromco; cp.conres = waparams.rescon; cp.conresH = waparams.resconH; @@ -860,7 +867,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (cp.val > 0 || ref || contr) { //edge Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); } - + //init for edge and denoise float vari[4]; @@ -877,7 +884,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[3] = rtengine::max(0.0001f, vari[3]); float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL - WaveletDenoiseAllL (*Ldecomp, noisevarlum, madL, vari, edge, 1); + WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge, 1); } //Flat curve for Contrast=f(H) in levels @@ -906,6 +913,213 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } + + /* + float variC[7]; + float variCb[7]; + + float noisecfr = cp.chromfi; + float noiseccr = cp.chromco; + + if (cp.balchrom > 0.f) { + noisecfr = cp.chromfi * ((100.f + cp.balchrom) / 10.f); + noiseccr = cp.chromco + ((100.f + cp.balchrom) / 10.f); + } + + float noisecfb = cp.chromfi; + float noiseccb = cp.chromco; + + if (cp.balchrom < 0.f) { + noisecfb = cp.chromfi * ((100.f - cp.balchrom) / 10.f); + noiseccb = cp.chromco * ((100.f - cp.balchrom) / 10.f); + } + + + if (noisecfr < 0.f) { + noisecfr = 0.0001f; + } + + if (noiseccr < 0.f) { + noiseccr = 0.0001f; + } + + if (noisecfb < 0.f) { + noisecfb = 0.0001f; + } + + if (noiseccb < 0.f) { + noiseccb = 0.0001f; + } + + int edge = 2; + variC[0] = SQR(noisecfr); + variC[1] = SQR(noisecfr); + variC[2] = SQR(noisecfr); + + variC[3] = SQR(noisecfr); + variC[4] = SQR(noisecfr); + variC[5] = SQR(noiseccr); + variC[6] = SQR(noiseccr); + + variCb[0] = SQR(noisecfb); + variCb[1] = SQR(noisecfb); + variCb[2] = SQR(noisecfb); + + variCb[3] = SQR(noisecfb); + variCb[4] = SQR(noisecfb); + variCb[5] = SQR(noiseccb); + variCb[6] = SQR(noiseccb); + + float k1 = 0.f; + float k2 = 0.f; + float k3 = 0.f; + + if (cp.chromfi) { + k1 = 0.f; + k2 = 0.f; + k3 = 0.f; + } else if (cp.chromfi < 0.3f) { + k1 = 0.1f; + k2 = 0.0f; + k3 = 0.f; + } else if (cp.chromfi < 0.5f) { + k1 = 0.2f; + k2 = 0.1f; + k3 = 0.f; + } else if (cp.chromfi < 0.8f) { + k1 = 0.3f; + k2 = 0.25f; + k3 = 0.f; + } else if (cp.chromfi < 1.f) { + k1 = 0.4f; + k2 = 0.25f; + k3 = 0.1f; + } else if (cp.chromfi < 2.f) { + k1 = 0.5f; + k2 = 0.3f; + k3 = 0.15f; + } else if (cp.chromfi < 3.f) { + k1 = 0.6f; + k2 = 0.45f; + k3 = 0.3f; + } else if (cp.chromfi < 4.f) { + k1 = 0.7f; + k2 = 0.5f; + k3 = 0.4f; + } else if (cp.chromfi < 5.f) { + k1 = 0.8f; + k2 = 0.6f; + k3 = 0.5f; + } else if (cp.chromfi < 10.f) { + k1 = 0.85f; + k2 = 0.7f; + k3 = 0.6f; + } else if (cp.chromfi < 20.f) { + k1 = 0.9f; + k2 = 0.8f; + k3 = 0.7f; + } else if (cp.chromfi < 50.f) { + k1 = 1.f; + k2 = 1.f; + k3 = 0.9f; + + } else { + k1 = 1.f; + k2 = 1.f; + k3 = 1.f; + } + + float minic = 0.0001f; + variC[0] = max(minic, variC[0]); + variC[1] = max(minic, k1 * variC[1]); + variC[2] = max(minic, k2 * variC[2]); + variC[3] = max(minic, k3 * variC[3]); + + variCb[0] = max(minic, variCb[0]); + variCb[1] = max(minic, k1 * variCb[1]); + variCb[2] = max(minic, k2 * variCb[2]); + variCb[3] = max(minic, k3 * variCb[3]); + + float k4 = 0.f; + float k5 = 0.f; + float k6 = 0.f; + + if (cp.chromco == 0.01f) { + k4 = 0.f; + k5 = 0.0f; + } else if (cp.chromco < 0.2f) { + k4 = 0.1f; + k5 = 0.0f; + } else if (cp.chromco < 0.5f) { + k4 = 0.15f; + k5 = 0.0f; + } else if (cp.chromco < 1.f) { + k4 = 0.15f; + k5 = 0.1f; + } else if (cp.chromco < 3.f) { + k4 = 0.3f; + k5 = 0.15f; + } else if (cp.chromco < 4.f) { + k4 = 0.6f; + k5 = 0.4f; + } else if (cp.chromco < 6.f) { + k4 = 0.8f; + k5 = 0.6f; + } else { + k4 = 1.f; + k5 = 1.f; + } + + variC[4] = max(0.0001f, k4 * variC[4]); + variC[5] = max(0.0001f, k5 * variC[5]); + variCb[4] = max(0.0001f, k4 * variCb[4]); + variCb[5] = max(0.0001f, k5 * variCb[5]); + + if (cp.chromco < 4.f) { + k6 = 0.f; + } else if (cp.chromco < 5.f) { + k6 = 0.4f; + } else if (cp.chromco < 6.f) { + k6 = 0.7f; + } else { + k6 = 1.f; + } + + variC[6] = max(0.0001f, k6 * variC[6]); + variCb[6] = max(0.0001f, k6 * variCb[6]); + float nvch = 0.6f;//high value + float nvcl = 0.1f;//low value + + if (cp.chromco > 100.f) { + nvch = 0.8f; + nvcl = 0.4f; + } + + float seuil = 4000.f;//low + float seuil2 = 15000.f;//high + //ac and bc for transition + float ac = (nvch - nvcl) / (seuil - seuil2); + float bc = nvch - seuil * ac; + int GW = labco->W; + int GH = labco->H; + float* noisevarchrom = new float[GH * GW]; + //noisevarchrom in function chroma + int GW2 = (GW + 1) / 2; + float noisevarab_r = 100.f; //SQR(lp.noisecc / 10.0); + for (int ir = 0; ir < GH; ir++) + for (int jr = 0; jr < GW; jr++) { + float cN = sqrt(SQR(labco->a[ir][jr]) + SQR(labco->b[ir][jr])); + + if (cN < seuil) { + noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = nvch; + } else if (cN < seuil2) { + noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = ac * cN + bc; + } else { + noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = nvcl; + } + } + */ + //Flat curve for H=f(H) in residual image FlatCurve* hhCurve = new FlatCurve(params->wavelet.hhcurve); //curve H=f(H) bool hhutili = false; @@ -971,7 +1185,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *adecomp,wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); + WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); @@ -983,6 +1197,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } + // delete[] noisevarchrom; + if (hhCurve) { delete hhCurve; } @@ -1248,7 +1464,7 @@ void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averag int countP = 0, countN = 0; double averaP = 0.0, averaN = 0.0; // use double precision for large summations - constexpr float thres = 32.7f;//different fom zero to take into account only data large enough 32.7 = 0.1 in range 0..100 very low value + constexpr float thres = 32.7f;//different fom zero to take into account only data large enough 32.7 = 0.1 in range 0..100 very low value max = 0.f; min = RT_INFINITY_F; #ifdef _OPENMP @@ -1350,51 +1566,54 @@ void ImProcFunctions::Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, void ImProcFunctions::calceffect(int level, float *mean, float *sigma, float *mea, float effect, float offs) { - float rap = 0.f; - float sig = 1.f; - if(effect < 1.f) { - sig = effect; - } + float rap = 0.f; + float sig = 1.f; - if(effect <= 1.f) { - rap = offs * mean[level] - sig * sigma[level]; - } - - if (rap > 0.f) { - mea[0] = rap; - } else { - mea[0] = mean[level] / 6.f; - } + if (effect < 1.f) { + sig = effect; + } - rap = 0.f; - if(effect <= 1.f) { - rap = offs * mean[level] - 0.5f * sig * sigma[level]; - } + if (effect <= 1.f) { + rap = offs * mean[level] - sig * sigma[level]; + } - if (rap > 0.f) { - mea[1] = rap; - } else { - mea[1] = mean[level] / 4.f; - } + if (rap > 0.f) { + mea[0] = rap; + } else { + mea[0] = mean[level] / 6.f; + } - rap = 0.f; - if(effect <= 1.f) { - rap = offs * mean[level] - 0.2f * sig * sigma[level]; - } - - if (rap > 0.f) { - mea[2] = rap; - } else { - mea[2] = mean[level] / 2.f; - } - - mea[3] = offs * mean[level]; // 50% data - mea[4] = offs * mean[level] + effect * sigma[level] / 2.f; - mea[5] = offs * mean[level] + effect * sigma[level]; //66% - mea[6] = offs * mean[level] + effect * 1.2f * sigma[level]; - mea[7] = offs * mean[level] + effect * 1.5f * sigma[level]; // - mea[8] = offs * mean[level] + effect * 2.f * sigma[level]; //95% - mea[9] = offs * mean[level] + effect * 2.5f * sigma[level]; //99% + rap = 0.f; + + if (effect <= 1.f) { + rap = offs * mean[level] - 0.5f * sig * sigma[level]; + } + + if (rap > 0.f) { + mea[1] = rap; + } else { + mea[1] = mean[level] / 4.f; + } + + rap = 0.f; + + if (effect <= 1.f) { + rap = offs * mean[level] - 0.2f * sig * sigma[level]; + } + + if (rap > 0.f) { + mea[2] = rap; + } else { + mea[2] = mean[level] / 2.f; + } + + mea[3] = offs * mean[level]; // 50% data + mea[4] = offs * mean[level] + effect * sigma[level] / 2.f; + mea[5] = offs * mean[level] + effect * sigma[level]; //66% + mea[6] = offs * mean[level] + effect * 1.2f * sigma[level]; + mea[7] = offs * mean[level] + effect * 1.5f * sigma[level]; // + mea[8] = offs * mean[level] + effect * 2.f * sigma[level]; //95% + mea[9] = offs * mean[level] + effect * 2.5f * sigma[level]; //99% } void ImProcFunctions::Eval2(float ** WavCoeffs_L, int level, @@ -1725,7 +1944,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif { - if(contrast != 0.f && cp.resena && max0 > 0.f) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step + if (contrast != 0.f && cp.resena && max0 > 0.f) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step { #ifdef _OPENMP @@ -1784,71 +2003,76 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } #ifdef _OPENMP - #pragma omp barrier + #pragma omp barrier #endif - if((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena && cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step + if ((cp.conres != 0.f || cp.conresH != 0.f) && cp.resena && cp.oldsh) { // cp.conres = 0.f and cp.comresH = 0.f means that all will be multiplied by 1.f, so we can skip this step #ifdef _OPENMP - #pragma omp for nowait + #pragma omp for nowait #endif - for (int i = 0; i < W_L * H_L; i++) { - float LL = WavCoeffs_L0[i]; - float LL100 = LL / 327.68f; - float tran = 5.f;//transition - //shadow - float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? + for (int i = 0; i < W_L * H_L; i++) { + float LL = WavCoeffs_L0[i]; + float LL100 = LL / 327.68f; + float tran = 5.f;//transition + //shadow + float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? - if(cp.th > (100.f - tran)) { - tran = 100.f - cp.th; - } + if (cp.th > (100.f - tran)) { + tran = 100.f - cp.th; + } - if(LL100 < cp.th) { - float aalp = (1.f - alp) / cp.th; //no changes for LL100 = cp.th - float kk = aalp * LL100 + alp; - WavCoeffs_L0[i] *= (1.f + kk * cp.conres / 200.f); - } else if(LL100 < cp.th + tran) { - float ath = -cp.conres / tran; - float bth = cp.conres - ath * cp.th; - WavCoeffs_L0[i] *= (1.f + (LL100 * ath + bth) / 200.f); - } + if (LL100 < cp.th) { + float aalp = (1.f - alp) / cp.th; //no changes for LL100 = cp.th + float kk = aalp * LL100 + alp; + WavCoeffs_L0[i] *= (1.f + kk * cp.conres / 200.f); + } else if (LL100 < cp.th + tran) { + float ath = -cp.conres / tran; + float bth = cp.conres - ath * cp.th; + WavCoeffs_L0[i] *= (1.f + (LL100 * ath + bth) / 200.f); + } - //highlight - tran = 5.f; + //highlight + tran = 5.f; - if(cp.thH < (tran)) { - tran = cp.thH; - } + if (cp.thH < (tran)) { + tran = cp.thH; + } - if(LL100 > cp.thH) { - WavCoeffs_L0[i] *= (1.f + cp.conresH / 200.f); - } else if(LL100 > (cp.thH - tran)) { - float athH = cp.conresH / tran; - float bthH = cp.conresH - athH * cp.thH; - WavCoeffs_L0[i] *= (1.f + (LL100 * athH + bthH) / 200.f); - } + if (LL100 > cp.thH) { + WavCoeffs_L0[i] *= (1.f + cp.conresH / 200.f); + } else if (LL100 > (cp.thH - tran)) { + float athH = cp.conresH / tran; + float bthH = cp.conresH - athH * cp.thH; + WavCoeffs_L0[i] *= (1.f + (LL100 * athH + bthH) / 200.f); } } + } //Blur luma - if(cp.blurres != 0.f && cp.resena) { + if (cp.blurres != 0.f && cp.resena) { float rad = 0.7f * cp.blurres / skip; float * bef = new float[W_L * H_L]; float * aft = new float[W_L * H_L]; for (int i = 0; i < H_L * W_L; i++) { - bef[i] = WavCoeffs_L0[i]; + bef[i] = WavCoeffs_L0[i]; } + boxblur(bef, aft, rad, W_L, H_L, false); for (int i = 0; i < H_L * W_L; i++) { WavCoeffs_L0[i] = aft[i]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } + // + int n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n32; + n0 = n1 = n2 = n3 = n4 = n5 = n6 = n7 = n8 = n9 = n10 = n32 = 0; + #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif @@ -1992,6 +2216,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * // end } + bool wavcurvecomp = false;//not enable if 0.75 if (wavblcurve) { @@ -2003,7 +2228,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } #ifdef _OPENMP - #pragma omp for schedule(dynamic) collapse(2) + // #pragma omp for schedule(dynamic) collapse(2) + #pragma omp for reduction(+:n0, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n32) schedule(dynamic) collapse(2) #endif for (int dir = 1; dir < 4; dir++) { @@ -2017,12 +2243,13 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); //blur level float klev = 1.f; - if(wavblcurve && wavcurvecomp && cp.blena) { + + if (wavblcurve && wavcurvecomp && cp.blena) { float mea[10]; float effect = cp.bluwav; float beta = 0.f; float offs = 1.f; - + calceffect(lvl, mean, sigma, mea, effect, offs); float * bef = new float[Wlvl_L * Hlvl_L]; @@ -2032,37 +2259,58 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * bef[co] = WavCoeffs_L[dir][co]; float WavCL = std::fabs(WavCoeffs_L[dir][co]); - if (WavCL < mea[0]) { - beta = 0.05f; - } else if (WavCL < mea[1]) { - beta = 0.2f; - } else if (WavCL < mea[2]) { - beta = 0.7f; - } else if (WavCL < mea[3]) { - beta = 1.f; //standard - } else if (WavCL < mea[4]) { - beta = 1.f; - } else if (WavCL < mea[5]) { - beta = 0.8f; //+sigma - } else if (WavCL < mea[6]) { - beta = 0.6f; - } else if (WavCL < mea[7]) { - beta = 0.4f; - } else if (WavCL < mea[8]) { - beta = 0.2f; // + 2 sigma - } else if (WavCL < mea[9]) { - beta = 0.1f; - } else { - beta = 0.0f; + if (WavCL < mea[0]) { + beta = 0.05f; + n0++; + + if (WavCL < 32.7) { + n32++; } - - + } else if (WavCL < mea[1]) { + beta = 0.2f; + n1++; + } else if (WavCL < mea[2]) { + beta = 0.7f; + n2++; + } else if (WavCL < mea[3]) { + beta = 1.f; //standard + n3++; + } else if (WavCL < mea[4]) { + beta = 1.f; + n4++; + } else if (WavCL < mea[5]) { + beta = 0.8f; //+sigma + n5++; + } else if (WavCL < mea[6]) { + beta = 0.6f; + n6++; + } else if (WavCL < mea[7]) { + beta = 0.4f; + n7++; + } else if (WavCL < mea[8]) { + beta = 0.2f; // + 2 sigma + n8++; + } else if (WavCL < mea[9]) { + beta = 0.1f; + n9++; + } else { + beta = 0.01f; + n10++; + } + + + } + + if (settings->verbose) { + printf("lvl=%i n0=%i n32=%i n1=%i n2=%i n3=%i n4=%i n5=%i n6=%i n7=%i n8=%i n9=%i n10=%i\n", lvl, n0, n0 - n32, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); } klev = (wavblcurve[lvl * 55.5f]); float lvr = lvl; - if(lvr == 0) { + + if (lvr == 0) { lvr = 1; } + klev *= beta * lvr * 100.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); @@ -2070,8 +2318,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * WavCoeffs_L[dir][co] = aft[co]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } } } @@ -2272,41 +2520,42 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float } } } - + //Blur chroma - if(cp.blurcres != 0.f && cp.resena) { - float rad = 0.7f * cp.blurcres / skip; - float * bef = new float[W_L * H_L]; - float * aft = new float[W_L * H_L]; + if (cp.blurcres != 0.f && cp.resena) { + float rad = 0.7f * cp.blurcres / skip; + float * bef = new float[W_L * H_L]; + float * aft = new float[W_L * H_L]; - for (int i = 0; i < H_L * W_L; i++) { - bef[i] = WavCoeffs_ab0[i]; - } - boxblur(bef, aft, rad, W_L, H_L, false); + for (int i = 0; i < H_L * W_L; i++) { + bef[i] = WavCoeffs_ab0[i]; + } - for (int i = 0; i < H_L * W_L; i++) { - WavCoeffs_ab0[i] = aft[i]; + boxblur(bef, aft, rad, W_L, H_L, false); + + for (int i = 0; i < H_L * W_L; i++) { + WavCoeffs_ab0[i] = aft[i]; + } + + delete[] bef; + delete[] aft; } - delete bef; - delete aft; - } + bool wavcurvecomp = false;//not enable if 0.75 - bool wavcurvecomp = false;//not enable if 0.75 - - if (wavblcurve) { - for (int i = 0; i < 500; i++) { - if (wavblcurve[i] != 0.) { - wavcurvecomp = true; + if (wavblcurve) { + for (int i = 0; i < 500; i++) { + if (wavblcurve[i] != 0.) { + wavcurvecomp = true; + } } } - } #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) #endif - + for (int dir = 1; dir < 4; dir++) { for (int lvl = 0; lvl < maxlvl; lvl++) { @@ -2316,63 +2565,66 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); - if(wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { + if (wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { float mea[10]; float effect = cp.bluwav; float beta = 0.f; float offs = 1.f; - + calceffect(lvl, meanab, sigmaab, mea, effect, offs); - + float * bef = new float[Wlvl_ab * Hlvl_ab]; float * aft = new float[Wlvl_ab * Hlvl_ab]; float klev; + for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { bef[co] = WavCoeffs_ab[dir][co]; - float WavCab = std::fabs(WavCoeffs_ab[dir][co]); + float WavCab = std::fabs(WavCoeffs_ab[dir][co]); + + if (WavCab < mea[0]) { + beta = 0.05f; + } else if (WavCab < mea[1]) { + beta = 0.2f; + } else if (WavCab < mea[2]) { + beta = 0.7f; + } else if (WavCab < mea[3]) { + beta = 1.f; //standard + } else if (WavCab < mea[4]) { + beta = 1.f; + } else if (WavCab < mea[5]) { + beta = 0.8f; //+sigma + } else if (WavCab < mea[6]) { + beta = 0.6f; + } else if (WavCab < mea[7]) { + beta = 0.4f; + } else if (WavCab < mea[8]) { + beta = 0.2f; // + 2 sigma + } else if (WavCab < mea[9]) { + beta = 0.1f; + } else { + beta = 0.0f; + } + - if (WavCab < mea[0]) { - beta = 0.05f; - } else if (WavCab < mea[1]) { - beta = 0.2f; - } else if (WavCab < mea[2]) { - beta = 0.7f; - } else if (WavCab < mea[3]) { - beta = 1.f; //standard - } else if (WavCab < mea[4]) { - beta = 1.f; - } else if (WavCab < mea[5]) { - beta = 0.8f; //+sigma - } else if (WavCab < mea[6]) { - beta = 0.6f; - } else if (WavCab < mea[7]) { - beta = 0.4f; - } else if (WavCab < mea[8]) { - beta = 0.2f; // + 2 sigma - } else if (WavCab < mea[9]) { - beta = 0.1f; - } else { - beta = 0.0f; - } - - } - klev = (wavblcurve[lvl * 55.5f]); + + klev = (wavblcurve[lvl * 55.5f]); float lvr = lvl; - if(lvr == 0) { + + if (lvr == 0) { lvr = 1; } klev *= beta * cp.chrwav * lvr * 200.f / skip; - + boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { WavCoeffs_ab[dir][co] = aft[co]; } - delete bef; - delete aft; + delete[] bef; + delete[] aft; } @@ -2725,11 +2977,13 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float mea[10]; float beta = 1.f; - if(cp.eff < 2.5f) { + + if (cp.eff < 2.5f) { float effect = cp.eff; float offs = 1.f; calceffect(level, mean, sigma, mea, effect, offs); + for (int co = 0; co < H_L * W_L; co++) { float WavCL = std::fabs(WavCoeffs_L[dir][co]); @@ -2756,14 +3010,14 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } else { beta = 0.0f; } - + } } if (cp.val > 0 && cp.edgeena) { - - + + float * koe = nullptr; float maxkoe = 0.f; @@ -2852,6 +3106,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float atten01234 = 0.80f; value *= (atten01234 * scaleskip[1]); //for zoom < 100% reduce strength...I choose level 1...but!! } + value *= beta; float edge = 1.f; float lim0 = 20.f; //arbitrary limit for low radius and level between 2 or 3 to 30 maxi @@ -2862,8 +3117,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz if (cp.reinforce != 2) { const float brepart = cp.reinforce == 1 - ? 3.f - : 0.5f; + ? 3.f + : 0.5f; const float arepart = -(brepart - 1.f) / (lim0 / 60.f); if (rad < lim0 / 60.f) { @@ -3186,7 +3441,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float red0 = 0.005f * (110.f - lowthr); float red1 = 0.008f * (110.f - lowthr); float red2 = 0.011f * (110.f - lowthr); - + for (int i = 0; i < W_L * H_L; i++) { float kLlev = 1.f; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 836cdfe1f..21507ce05 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -543,7 +543,7 @@ Wavelet::Wavelet() : chroBox->pack_start(*chromfi); chroBox->pack_start(*chromco); chroFrame->add(*chroBox); - noiseBox->pack_start(*chroFrame); +// noiseBox->pack_start(*chroFrame); //Clarity From d00ec5a1b24683f7f760e53850d99545c75a4686 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 4 Apr 2020 08:32:34 +0200 Subject: [PATCH 405/453] Change tooltip and history msg damper --- rtdata/languages/default | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 94f1e691c..b545b2b7d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -801,7 +801,7 @@ HISTORY_MSG_WAVMERGEL;Merge L HISTORY_MSG_WAVRADIUS;Radius Shadows-Highlight HISTORY_MSG_WAVSCALE;Scale HISTORY_MSG_WAVSHOWMASK;Show wavelet mask -HISTORY_MSG_WAVSIGMA;Sigma +HISTORY_MSG_WAVSIGMA;Damper HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final HISTORY_MSG_WAVUSHAMET;Clarity method @@ -2291,7 +2291,7 @@ TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHFRAME;Shadows/Highlights TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_SIGMA;Damper -TP_WAVELET_SIGMA_TOOLTIP;This slider controls how wide the range of contrast values are that receive the maximum effect from the tool.\n The higher it is, the more contrast values will be strongly modified and the higher the risk to generate artifacts. The lower it is, the more pinpoint will the effect be applied to a certain range of contrast values +TP_WAVELET_SIGMA_TOOLTIP;The effect of the contrast sliders is stronger in medium contrast details, and weaker in high and low contrast details.\n With this slider you can control how quickly the effect dampens towards the extreme contrasts.\n The higher the slider is set, the wider the range of contrasts which will get a strong change, and the higher the risk to generate artifacts.\n The lower it is, the more pinpoint will the effect be applied to a narrow range of contrast values. TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. TP_WAVELET_SKY;Sky targetting/protection From 7d8e0abd2f733415c35fd165aafd9daa219cca10 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 4 Apr 2020 15:37:22 +0200 Subject: [PATCH 406/453] Clean code and change default values --- rtengine/procparams.cc | 2 +- rtgui/wavelet.cc | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 270e28a6a..b398cc729 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2323,7 +2323,7 @@ WaveletParams::WaveletParams() : radius(40), skinprotect(0.0), chrwav(0.), - bluwav(50.0), + bluwav(1.0), hueskin(-5, 25, 170, 120, false), hueskin2(-260, -250, -130, -140, false), hllev(50, 75, 100, 98, false), diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 21507ce05..bc99d0d57 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -531,11 +531,8 @@ Wavelet::Wavelet() : noiseBox->pack_start(*level3noise, Gtk::PACK_SHRINK, 0); balchrom->setAdjusterListener(this); -// noiseBox->pack_start(*balchrom, Gtk::PACK_SHRINK, 0); chromfi->setAdjusterListener(this); -// noiseBox->pack_start(*chromfi, Gtk::PACK_SHRINK, 0); chromco->setAdjusterListener(this); -// noiseBox->pack_start(*chromco, Gtk::PACK_SHRINK, 0); chroFrame->set_label_align(0.025, 0.5); ToolParamBlock* const chroBox = Gtk::manage(new ToolParamBlock()); From d0e65ec93c3cf57afe0bfc2860a795fc13592fb4 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 5 Apr 2020 06:59:17 +0200 Subject: [PATCH 407/453] Change history_msg --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index b545b2b7d..515e35b43 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -814,7 +814,7 @@ HISTORY_MSG_BLSHAPE;Blur by level HISTORY_MSG_WAVBL;Blur levels HISTORY_MSG_BLURWAV;Blur luminance HISTORY_MSG_BLURCWAV;Blur chroma -HISTORY_MSG_EDGEFFECT;Edge Effect +HISTORY_MSG_EDGEFFECT;Edge Damper HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot From 2d52fbdcefdb886b60515962d26f013ef9adbe71 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 5 Apr 2020 10:28:45 +0200 Subject: [PATCH 408/453] Improve wavelet levels with denoise chroma --- rtdata/languages/default | 2 +- rtengine/ipwavelet.cc | 641 +++++++++++++++++++++------------------ rtgui/wavelet.cc | 16 +- 3 files changed, 352 insertions(+), 307 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 515e35b43..4a181324d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2307,7 +2307,7 @@ TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will b TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. TP_WAVELET_THRESWAV;Balance Threshold TP_WAVELET_THRH;Highlights threshold -TP_WAVELET_TILESBIG;Big tiles +TP_WAVELET_TILESBIG;Tiles TP_WAVELET_TILESFULL;Full image TP_WAVELET_TILESIZE;Tiling method TP_WAVELET_TILESLIT;Little tiles diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index e58ad3733..79302c452 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -399,8 +399,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.til = waparams.edgthresh; cp.eff = waparams.edgeffect; cp.balchrom = waparams.balchrom; - cp.chromfi = waparams.chromfi; - cp.chromco = waparams.chromco; + cp.chromfi = 0.1f * waparams.chromfi; + cp.chromco = 0.1f * waparams.chromco; cp.conres = waparams.rescon; cp.conresH = waparams.resconH; @@ -522,11 +522,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.Tilesmethod == "big") { realtile = 22; } - +/* if (params->wavelet.Tilesmethod == "lit") { realtile = 12; } - +*/ int tilesize = 128 * realtile; int overlap = (int) tilesize * 0.125f; int numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip; @@ -667,6 +667,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const varhue[i] = new float[tilewidth]; } + + #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) #endif @@ -825,21 +827,28 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } + if (cp.chromfi > 0.f || cp.chromco > 0.f) { + if (levwavL < 7) { + levwavL = 7; + } + } + if (levwavL < 4) { levwavL = 4; //to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! } if (levwavL > 0) { const std::unique_ptr Ldecomp(new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); + float madL[8][3]; if (!Ldecomp->memoryAllocationFailed) { - float madL[8][3]; + // float madL[8][3]; #ifdef _OPENMP #pragma omp parallel for schedule(dynamic) collapse(2) num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif - for (int lvl = 0; lvl < 4; lvl++) { + for (int lvl = 0; lvl < levwavL; lvl++) { for (int dir = 1; dir < 4; dir++) { int Wlvl_L = Ldecomp->level_W(lvl); int Hlvl_L = Ldecomp->level_H(lvl); @@ -908,301 +917,336 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const WaveletcontAllLfinal(*Ldecomp, cp, mean, sigma, MaxP, waOpacityCurveWL); //Evaluate2(*Ldecomp, cp, ind, mean, meanN, sigma, sigmaN, MaxP, MaxN, madL); + /* + Ldecomp->reconstruct(labco->data, cp.strength); + } + } + */ + + + float variC[7]; + float variCb[7]; + + float noisecfr = cp.chromfi; + float noiseccr = cp.chromco; + + if (cp.balchrom > 0.f) { + noisecfr = cp.chromfi * ((100.f + cp.balchrom) / 10.f); + noiseccr = cp.chromco + ((100.f + cp.balchrom) / 10.f); + } + + float noisecfb = cp.chromfi; + float noiseccb = cp.chromco; + + if (cp.balchrom < 0.f) { + noisecfb = cp.chromfi * ((100.f - cp.balchrom) / 10.f); + noiseccb = cp.chromco * ((100.f - cp.balchrom) / 10.f); + } + + + if (noisecfr < 0.f) { + noisecfr = 0.0001f; + } + + if (noiseccr < 0.f) { + noiseccr = 0.0001f; + } + + if (noisecfb < 0.f) { + noisecfb = 0.0001f; + } + + if (noiseccb < 0.f) { + noiseccb = 0.0001f; + } + + int edge = 2; + variC[0] = SQR(noisecfr); + variC[1] = SQR(noisecfr); + variC[2] = SQR(noisecfr); + + variC[3] = SQR(noisecfr); + variC[4] = SQR(noisecfr); + variC[5] = SQR(noiseccr); + variC[6] = SQR(noiseccr); + + variCb[0] = SQR(noisecfb); + variCb[1] = SQR(noisecfb); + variCb[2] = SQR(noisecfb); + + variCb[3] = SQR(noisecfb); + variCb[4] = SQR(noisecfb); + variCb[5] = SQR(noiseccb); + variCb[6] = SQR(noiseccb); + + float k1 = 0.f; + float k2 = 0.f; + float k3 = 0.f; + + if (cp.chromfi < 0.2f) { + k1 = 0.f; + k2 = 0.f; + k3 = 0.f; + } else if (cp.chromfi < 0.3f) { + k1 = 0.1f; + k2 = 0.0f; + k3 = 0.f; + } else if (cp.chromfi < 0.5f) { + k1 = 0.2f; + k2 = 0.1f; + k3 = 0.f; + } else if (cp.chromfi < 0.8f) { + k1 = 0.3f; + k2 = 0.25f; + k3 = 0.f; + } else if (cp.chromfi < 1.f) { + k1 = 0.4f; + k2 = 0.25f; + k3 = 0.1f; + } else if (cp.chromfi < 2.f) { + k1 = 0.5f; + k2 = 0.3f; + k3 = 0.15f; + } else if (cp.chromfi < 3.f) { + k1 = 0.6f; + k2 = 0.45f; + k3 = 0.3f; + } else if (cp.chromfi < 4.f) { + k1 = 0.7f; + k2 = 0.5f; + k3 = 0.4f; + } else if (cp.chromfi < 5.f) { + k1 = 0.8f; + k2 = 0.6f; + k3 = 0.5f; + } else if (cp.chromfi < 6.f) { + k1 = 0.85f; + k2 = 0.7f; + k3 = 0.6f; + } else if (cp.chromfi < 8.f) { + k1 = 0.9f; + k2 = 0.8f; + k3 = 0.7f; + } else if (cp.chromfi < 10.f) { + k1 = 1.f; + k2 = 1.f; + k3 = 0.9f; + + } else { + k1 = 1.f; + k2 = 1.f; + k3 = 1.f; + } + + float minic = 0.0001f; + variC[0] = max(minic, variC[0]); + variC[1] = max(minic, k1 * variC[1]); + variC[2] = max(minic, k2 * variC[2]); + variC[3] = max(minic, k3 * variC[3]); + + variCb[0] = max(minic, variCb[0]); + variCb[1] = max(minic, k1 * variCb[1]); + variCb[2] = max(minic, k2 * variCb[2]); + variCb[3] = max(minic, k3 * variCb[3]); + + float k4 = 0.f; + float k5 = 0.f; + float k6 = 0.f; + + if (cp.chromco == 0.01f) { + k4 = 0.f; + k5 = 0.0f; + } else if (cp.chromco < 0.2f) { + k4 = 0.1f; + k5 = 0.0f; + } else if (cp.chromco < 0.5f) { + k4 = 0.15f; + k5 = 0.0f; + } else if (cp.chromco < 1.f) { + k4 = 0.15f; + k5 = 0.1f; + } else if (cp.chromco < 3.f) { + k4 = 0.3f; + k5 = 0.15f; + } else if (cp.chromco < 4.f) { + k4 = 0.6f; + k5 = 0.4f; + } else if (cp.chromco < 6.f) { + k4 = 0.8f; + k5 = 0.6f; + } else { + k4 = 1.f; + k5 = 1.f; + } + + variC[4] = max(0.0001f, k4 * variC[4]); + variC[5] = max(0.0001f, k5 * variC[5]); + variCb[4] = max(0.0001f, k4 * variCb[4]); + variCb[5] = max(0.0001f, k5 * variCb[5]); + + if (cp.chromco < 4.f) { + k6 = 0.f; + } else if (cp.chromco < 5.f) { + k6 = 0.4f; + } else if (cp.chromco < 6.f) { + k6 = 0.7f; + } else { + k6 = 1.f; + } + + variC[6] = max(0.0001f, k6 * variC[6]); + variCb[6] = max(0.0001f, k6 * variCb[6]); +/* + for (int y = 0; y < 7; y++) { + printf("y=%i madL=%f varia=%f variab=%f\n", y, madL[y][1], variC[y], variCb[y]); + } +*/ + float nvch = 0.6f;//high value + float nvcl = 0.1f;//low value + + if (cp.chromco > 30.f) { + nvch = 0.8f; + nvcl = 0.4f; + } + + float seuil = 4000.f;//low + float seuil2 = 15000.f;//high + //ac and bc for transition + float ac = (nvch - nvcl) / (seuil - seuil2); + float bc = nvch - seuil * ac; + int GW = labco->W; + int GH = labco->H; + float* noisevarchrom = new float[GH * GW]; + //noisevarchrom in function chroma + int GW2 = (GW + 1) / 2; + float noisevarab_r = 100.f; + + for (int ir = 0; ir < GH; ir++) + for (int jr = 0; jr < GW; jr++) { + float cN = sqrt(SQR(labco->a[ir][jr]) + SQR(labco->b[ir][jr])); + + if (cN < seuil) { + noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = nvch; + } else if (cN < seuil2) { + noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = ac * cN + bc; + } else { + noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = nvcl; + } + } + + + //Flat curve for H=f(H) in residual image + FlatCurve* hhCurve = new FlatCurve(params->wavelet.hhcurve); //curve H=f(H) + bool hhutili = false; + + if (!hhCurve || hhCurve->isIdentity()) { + if (hhCurve) { + delete hhCurve; + hhCurve = nullptr; + } + } else { + hhutili = true; + } + + + if (!hhutili) { //always a or b + int levwava = levwav; + + if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels + while (levwava > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwava - 1] == 0.f)) || (cp.CHmet != 2 && (levwava == 10 || (!cp.curv || cp.mulC[levwava - 1] == 0.f))))) && (!cp.opaRG || levwava == 10 || (cp.opaRG && cp.mulopaRG[levwava - 1] == 0.f)) && ((levwava == 10 || (cp.CHSLmet == 1 && cp.mulC[levwava - 1] == 0.f)))) { + levwava--; + } + } + + if (cp.chromfi > 0.f || cp.chromco > 0.f) { + if (levwava < 7) { + levwava = 7; + } + } + + if (levwava > 0) { + const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); + + if (!adecomp->memoryAllocationFailed) { + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); + adecomp->reconstruct(labco->data + datalen, cp.strength); + } + } + + int levwavb = levwav; + + if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels + while (levwavb > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavb - 1] == 0.f)) || (cp.CHmet != 2 && (levwavb == 10 || (!cp.curv || cp.mulC[levwavb - 1] == 0.f))))) && (!cp.opaBY || levwavb == 10 || (cp.opaBY && cp.mulopaBY[levwavb - 1] == 0.f)) && ((levwavb == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavb - 1] == 0.f)))) { + levwavb--; + } + } + + if (cp.chromfi > 0.f || cp.chromco > 0.f) { + if (levwavb < 7) { + levwavb = 7; + } + } + + if (levwavb > 0) { + const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); + + if (!bdecomp->memoryAllocationFailed) { + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); + bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); + } + } + } else {// a and b + int levwavab = levwav; + + if (cp.chrores == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels + while (levwavab > 0 && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavab - 1] == 0.f)) || (cp.CHmet != 2 && (levwavab == 10 || (!cp.curv || cp.mulC[levwavab - 1] == 0.f))))) && (!cp.opaRG || levwavab == 10 || (cp.opaRG && cp.mulopaRG[levwavab - 1] == 0.f)) && ((levwavab == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavab - 1] == 0.f)))) { + levwavab--; + } + } + if (cp.chromfi > 0.f || cp.chromco > 0.f) { + if (levwavab < 7) { + levwavab = 7; + } + } + + if (levwavab > 0) { + const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); + const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); + + if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); + WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); + + adecomp->reconstruct(labco->data + datalen, cp.strength); + bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); + + } + } + } + + delete[] noisevarchrom; + + if (hhCurve) { + delete hhCurve; + } Ldecomp->reconstruct(labco->data, cp.strength); } } - - /* - float variC[7]; - float variCb[7]; - - float noisecfr = cp.chromfi; - float noiseccr = cp.chromco; - - if (cp.balchrom > 0.f) { - noisecfr = cp.chromfi * ((100.f + cp.balchrom) / 10.f); - noiseccr = cp.chromco + ((100.f + cp.balchrom) / 10.f); - } - - float noisecfb = cp.chromfi; - float noiseccb = cp.chromco; - - if (cp.balchrom < 0.f) { - noisecfb = cp.chromfi * ((100.f - cp.balchrom) / 10.f); - noiseccb = cp.chromco * ((100.f - cp.balchrom) / 10.f); - } - - - if (noisecfr < 0.f) { - noisecfr = 0.0001f; - } - - if (noiseccr < 0.f) { - noiseccr = 0.0001f; - } - - if (noisecfb < 0.f) { - noisecfb = 0.0001f; - } - - if (noiseccb < 0.f) { - noiseccb = 0.0001f; - } - - int edge = 2; - variC[0] = SQR(noisecfr); - variC[1] = SQR(noisecfr); - variC[2] = SQR(noisecfr); - - variC[3] = SQR(noisecfr); - variC[4] = SQR(noisecfr); - variC[5] = SQR(noiseccr); - variC[6] = SQR(noiseccr); - - variCb[0] = SQR(noisecfb); - variCb[1] = SQR(noisecfb); - variCb[2] = SQR(noisecfb); - - variCb[3] = SQR(noisecfb); - variCb[4] = SQR(noisecfb); - variCb[5] = SQR(noiseccb); - variCb[6] = SQR(noiseccb); - - float k1 = 0.f; - float k2 = 0.f; - float k3 = 0.f; - - if (cp.chromfi) { - k1 = 0.f; - k2 = 0.f; - k3 = 0.f; - } else if (cp.chromfi < 0.3f) { - k1 = 0.1f; - k2 = 0.0f; - k3 = 0.f; - } else if (cp.chromfi < 0.5f) { - k1 = 0.2f; - k2 = 0.1f; - k3 = 0.f; - } else if (cp.chromfi < 0.8f) { - k1 = 0.3f; - k2 = 0.25f; - k3 = 0.f; - } else if (cp.chromfi < 1.f) { - k1 = 0.4f; - k2 = 0.25f; - k3 = 0.1f; - } else if (cp.chromfi < 2.f) { - k1 = 0.5f; - k2 = 0.3f; - k3 = 0.15f; - } else if (cp.chromfi < 3.f) { - k1 = 0.6f; - k2 = 0.45f; - k3 = 0.3f; - } else if (cp.chromfi < 4.f) { - k1 = 0.7f; - k2 = 0.5f; - k3 = 0.4f; - } else if (cp.chromfi < 5.f) { - k1 = 0.8f; - k2 = 0.6f; - k3 = 0.5f; - } else if (cp.chromfi < 10.f) { - k1 = 0.85f; - k2 = 0.7f; - k3 = 0.6f; - } else if (cp.chromfi < 20.f) { - k1 = 0.9f; - k2 = 0.8f; - k3 = 0.7f; - } else if (cp.chromfi < 50.f) { - k1 = 1.f; - k2 = 1.f; - k3 = 0.9f; - - } else { - k1 = 1.f; - k2 = 1.f; - k3 = 1.f; - } - - float minic = 0.0001f; - variC[0] = max(minic, variC[0]); - variC[1] = max(minic, k1 * variC[1]); - variC[2] = max(minic, k2 * variC[2]); - variC[3] = max(minic, k3 * variC[3]); - - variCb[0] = max(minic, variCb[0]); - variCb[1] = max(minic, k1 * variCb[1]); - variCb[2] = max(minic, k2 * variCb[2]); - variCb[3] = max(minic, k3 * variCb[3]); - - float k4 = 0.f; - float k5 = 0.f; - float k6 = 0.f; - - if (cp.chromco == 0.01f) { - k4 = 0.f; - k5 = 0.0f; - } else if (cp.chromco < 0.2f) { - k4 = 0.1f; - k5 = 0.0f; - } else if (cp.chromco < 0.5f) { - k4 = 0.15f; - k5 = 0.0f; - } else if (cp.chromco < 1.f) { - k4 = 0.15f; - k5 = 0.1f; - } else if (cp.chromco < 3.f) { - k4 = 0.3f; - k5 = 0.15f; - } else if (cp.chromco < 4.f) { - k4 = 0.6f; - k5 = 0.4f; - } else if (cp.chromco < 6.f) { - k4 = 0.8f; - k5 = 0.6f; - } else { - k4 = 1.f; - k5 = 1.f; - } - - variC[4] = max(0.0001f, k4 * variC[4]); - variC[5] = max(0.0001f, k5 * variC[5]); - variCb[4] = max(0.0001f, k4 * variCb[4]); - variCb[5] = max(0.0001f, k5 * variCb[5]); - - if (cp.chromco < 4.f) { - k6 = 0.f; - } else if (cp.chromco < 5.f) { - k6 = 0.4f; - } else if (cp.chromco < 6.f) { - k6 = 0.7f; - } else { - k6 = 1.f; - } - - variC[6] = max(0.0001f, k6 * variC[6]); - variCb[6] = max(0.0001f, k6 * variCb[6]); - float nvch = 0.6f;//high value - float nvcl = 0.1f;//low value - - if (cp.chromco > 100.f) { - nvch = 0.8f; - nvcl = 0.4f; - } - - float seuil = 4000.f;//low - float seuil2 = 15000.f;//high - //ac and bc for transition - float ac = (nvch - nvcl) / (seuil - seuil2); - float bc = nvch - seuil * ac; - int GW = labco->W; - int GH = labco->H; - float* noisevarchrom = new float[GH * GW]; - //noisevarchrom in function chroma - int GW2 = (GW + 1) / 2; - float noisevarab_r = 100.f; //SQR(lp.noisecc / 10.0); - for (int ir = 0; ir < GH; ir++) - for (int jr = 0; jr < GW; jr++) { - float cN = sqrt(SQR(labco->a[ir][jr]) + SQR(labco->b[ir][jr])); - - if (cN < seuil) { - noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = nvch; - } else if (cN < seuil2) { - noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = ac * cN + bc; - } else { - noisevarchrom[(ir >> 1)*GW2 + (jr >> 1)] = nvcl; - } - } - */ - - //Flat curve for H=f(H) in residual image - FlatCurve* hhCurve = new FlatCurve(params->wavelet.hhcurve); //curve H=f(H) - bool hhutili = false; - - if (!hhCurve || hhCurve->isIdentity()) { - if (hhCurve) { - delete hhCurve; - hhCurve = nullptr; - } - } else { - hhutili = true; - } - - - if (!hhutili) { //always a or b - int levwava = levwav; - - if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels - while (levwava > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwava - 1] == 0.f)) || (cp.CHmet != 2 && (levwava == 10 || (!cp.curv || cp.mulC[levwava - 1] == 0.f))))) && (!cp.opaRG || levwava == 10 || (cp.opaRG && cp.mulopaRG[levwava - 1] == 0.f)) && ((levwava == 10 || (cp.CHSLmet == 1 && cp.mulC[levwava - 1] == 0.f)))) { - levwava--; - } - } - - if (levwava > 0) { - const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); - - if (!adecomp->memoryAllocationFailed) { - Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); - adecomp->reconstruct(labco->data + datalen, cp.strength); - } - } - - int levwavb = levwav; - - if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels - while (levwavb > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavb - 1] == 0.f)) || (cp.CHmet != 2 && (levwavb == 10 || (!cp.curv || cp.mulC[levwavb - 1] == 0.f))))) && (!cp.opaBY || levwavb == 10 || (cp.opaBY && cp.mulopaBY[levwavb - 1] == 0.f)) && ((levwavb == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavb - 1] == 0.f)))) { - levwavb--; - } - } - - if (levwavb > 0) { - const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); - - if (!bdecomp->memoryAllocationFailed) { - Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); - bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); - } - } - } else {// a and b - int levwavab = levwav; - - if (cp.chrores == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels - while (levwavab > 0 && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavab - 1] == 0.f)) || (cp.CHmet != 2 && (levwavab == 10 || (!cp.curv || cp.mulC[levwavab - 1] == 0.f))))) && (!cp.opaRG || levwavab == 10 || (cp.opaRG && cp.mulopaRG[levwavab - 1] == 0.f)) && ((levwavab == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavab - 1] == 0.f)))) { - levwavab--; - } - } - - if (levwavab > 0) { - const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); - const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); - - if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); - Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); - WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); - - adecomp->reconstruct(labco->data + datalen, cp.strength); - bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); - - } - } - } - - // delete[] noisevarchrom; - - if (hhCurve) { - delete hhCurve; - } - if (numtiles > 1 || (numtiles == 1 /*&& cp.avoi*/)) { //in all case since I add contrast curve //calculate mask for feathering output tile overlaps float Vmask[height + overlap] ALIGNED16; @@ -2304,6 +2348,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * if (settings->verbose) { printf("lvl=%i n0=%i n32=%i n1=%i n2=%i n3=%i n4=%i n5=%i n6=%i n7=%i n8=%i n9=%i n10=%i\n", lvl, n0, n0 - n32, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); } + klev = (wavblcurve[lvl * 55.5f]); float lvr = lvl; @@ -2537,8 +2582,8 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float WavCoeffs_ab0[i] = aft[i]; } - delete[] bef; - delete[] aft; + delete[] bef; + delete[] aft; } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index bc99d0d57..23e526474 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -131,8 +131,8 @@ Wavelet::Wavelet() : edgesensi(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGESENSI"), 0, 100, 1, 60))), edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), balchrom(Gtk::manage(new Adjuster(M("TP_WAVELET_BALCHROM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-red-small.png"))))), - chromfi(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMFI"), 0, 100, 1, 0))), - chromco(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMCO"), 0, 100, 1, 0))), + chromfi(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMFI"), 0.0, 150., 0.01, 0.))), + chromco(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMCO"), 0, 100., 0.01, 0.))), mergeL(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEL"), -50, 100, 1, 40))), mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), @@ -246,7 +246,7 @@ Wavelet::Wavelet() : Tilesmethod->append(M("TP_WAVELET_TILESFULL")); Tilesmethod->append(M("TP_WAVELET_TILESBIG")); - Tilesmethod->append(M("TP_WAVELET_TILESLIT")); +// Tilesmethod->append(M("TP_WAVELET_TILESLIT")); Tilesmethodconn = Tilesmethod->signal_changed().connect(sigc::mem_fun(*this, &Wavelet::TilesmethodChanged)); Tilesmethod->set_tooltip_text(M("TP_WAVELET_TILES_TOOLTIP")); Gtk::HBox* const tilesizeHBox = Gtk::manage(new Gtk::HBox()); @@ -540,7 +540,7 @@ Wavelet::Wavelet() : chroBox->pack_start(*chromfi); chroBox->pack_start(*chromco); chroFrame->add(*chroBox); -// noiseBox->pack_start(*chroFrame); + noiseBox->pack_start(*chroFrame); //Clarity @@ -1257,8 +1257,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) Tilesmethod->set_active(0); } else if (pp->wavelet.Tilesmethod == "big") { Tilesmethod->set_active(1); - } else if (pp->wavelet.Tilesmethod == "lit") { - Tilesmethod->set_active(2); +// } else if (pp->wavelet.Tilesmethod == "lit") { +// Tilesmethod->set_active(2); } //daubcoeffmethod->set_active (4); @@ -2015,8 +2015,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.Tilesmethod = "full"; } else if (Tilesmethod->get_active_row_number() == 1) { pp->wavelet.Tilesmethod = "big"; - } else if (Tilesmethod->get_active_row_number() == 2) { - pp->wavelet.Tilesmethod = "lit"; +// } else if (Tilesmethod->get_active_row_number() == 2) { +// pp->wavelet.Tilesmethod = "lit"; } if (daubcoeffmethod->get_active_row_number() == 0) { From 05250a24973fcc607c491dd7b334a9882effce66 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 5 Apr 2020 11:04:01 +0200 Subject: [PATCH 409/453] Change labels chroma --- rtdata/languages/default | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 4a181324d..ed9b06b04 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2143,7 +2143,7 @@ TP_WAVELET_BACKGROUND;Background TP_WAVELET_BACUR;Curve TP_WAVELET_BALANCE;Contrast balance d/v-h TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. -TP_WAVELET_BALCHRO;Chroma balance +TP_WAVELET_BALCHRO;Chrominance balance TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. TP_WAVELET_BALCHROM;Chroma balance TP_WAVELET_BANONE;None @@ -2163,8 +2163,8 @@ TP_WAVELET_CHR;Chroma-contrast link strength TP_WAVELET_CHRO;Saturated/pastel threshold TP_WAVELET_CHROFRAME;Denoise Chroma TP_WAVELET_CHROMAFRAME;Chroma -TP_WAVELET_CHROMCO;Chroma Coarse -TP_WAVELET_CHROMFI;Chroma Fine +TP_WAVELET_CHROMCO;Chrominance Coarse +TP_WAVELET_CHROMFI;Chrominance Fine TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold between saturated and pastel colors.\n1-x: saturated\nx-9: pastel\n\nIf the value exceeds the amount of wavelet levels you are using then it will be ignored. TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" TP_WAVELET_CHRWAV;Blur chroma From ca8399bc9008edd5fe9f970efe6ba64407179a6a Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 5 Apr 2020 11:13:18 +0200 Subject: [PATCH 410/453] change labels --- rtdata/languages/default | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index ed9b06b04..83262a3fc 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2145,7 +2145,7 @@ TP_WAVELET_BALANCE;Contrast balance d/v-h TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. TP_WAVELET_BALCHRO;Chrominance balance TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. -TP_WAVELET_BALCHROM;Chroma balance +TP_WAVELET_BALCHROM;Chrominance balance TP_WAVELET_BANONE;None TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method @@ -2161,7 +2161,7 @@ TP_WAVELET_CH3;Link contrast levels TP_WAVELET_CHCU;Curve TP_WAVELET_CHR;Chroma-contrast link strength TP_WAVELET_CHRO;Saturated/pastel threshold -TP_WAVELET_CHROFRAME;Denoise Chroma +TP_WAVELET_CHROFRAME;Denoise Chrominance TP_WAVELET_CHROMAFRAME;Chroma TP_WAVELET_CHROMCO;Chrominance Coarse TP_WAVELET_CHROMFI;Chrominance Fine From 15db8cdb57161d57af8307bf85aeda02ea69ddde Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sun, 5 Apr 2020 11:26:47 +0200 Subject: [PATCH 411/453] Guard accesses to `Crop::crop_ratios` (#5701) --- rtgui/crop.cc | 125 +++++++++++++++++++++++++++++++++++--------------- rtgui/crop.h | 11 ++--- 2 files changed, 92 insertions(+), 44 deletions(-) diff --git a/rtgui/crop.cc b/rtgui/crop.cc index d9d496523..f092f07a5 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -16,6 +16,8 @@ * You should have received a copy of the GNU General Public License * along with RawTherapee. If not, see . */ +#include + #include "crop.h" #include "options.h" @@ -46,39 +48,82 @@ inline void get_custom_ratio(int w, int h, double &rw, double &rh) } // namespace +class Crop::CropRatios final +{ +public: + CropRatios() : + ratios{ + {M("GENERAL_ASIMAGE"), 0.0}, + {M("GENERAL_CURRENT"), -1.0}, + {"3:2", 3.0 / 2.0}, // L1.5, P0.666... + {"4:3", 4.0 / 3.0}, // L1.333..., P0.75 + {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625 + {"16:10", 16.0 / 10.0}, // L1.6, P0.625 + {"1:1", 1.0 / 1.0}, // L1, P1 + {"2:1", 2.0 / 1.0}, // L2, P0.5 + {"3:1", 3.0 / 1.0}, // L3, P0.333... + {"4:1", 4.0 / 1.0}, // L4, P0.25 + {"5:1", 5.0 / 1.0}, // L5, P0.2 + {"6:1", 6.0 / 1.0}, // L6, P0.1666... + {"7:1", 7.0 / 1.0}, // L7, P0.142... + {"4:5", 4.0 / 5.0}, // L1.25, P0.8 + {"5:7", 5.0 / 7.0}, // L1.4, P0.714... + {"6:7", 6.0 / 7.0}, // L1.166..., P0.857... + {"6:17", 6.0 / 17.0}, // L2.833..., P0.352... + {"24:65 - XPAN", 24.0 / 65.0}, // L2.708..., P0.369... + {"1.414 - DIN EN ISO 216", 1.414}, // L1.414, P0.707... + {"3.5:5", 3.5 / 5.0}, // L1.428..., P0.7 + {"8.5:11 - US Letter", 8.5 / 11.0}, // L1.294..., P0.772... + {"9.5:12", 9.5 / 12.0}, // L1.263..., P0.791... + {"10:12", 10.0 / 12.0}, // L1.2, P0.833... + {"11:14", 11.0 / 14.0}, // L1.272..., P0.785... + {"11:17 - Tabloid", 11.0 / 17.0}, // L1.545..., P0.647... + {"13:19", 13.0 / 19.0}, // L1.461..., P0.684... + {"17:22", 17.0 / 22.0}, // L1.294..., P0.772... + {"45:35 - ePassport", 45.0 / 35.0}, // L1.285,... P0.777... + {"64:27", 64.0 / 27.0}, // L2.370..., P0.421... + } + { + } + + std::vector getLabels() const + { + std::vector res; + + res.reserve(ratios.size()); + + for (const auto& ratio : ratios) { + res.push_back(ratio.label); + } + + return res; + } + + double getValue(std::size_t index) const + { + return + index < ratios.size() + ? ratios[index].value + : ratios[0].value; + } + + void updateCurrentRatio(double value) + { + ratios[1].value = value; + } + +private: + struct CropRatio { + Glib::ustring label; + double value; + }; + + std::vector ratios; +}; + Crop::Crop(): FoldableToolPanel(this, "crop", M("TP_CROP_LABEL"), false, true), - crop_ratios{ - {M("GENERAL_ASIMAGE"), 0.0}, - {M("GENERAL_CURRENT"), -1.0}, - {"3:2", 3.0 / 2.0}, // L1.5, P0.666... - {"4:3", 4.0 / 3.0}, // L1.333..., P0.75 - {"16:9", 16.0 / 9.0}, // L1.777..., P0.5625 - {"16:10", 16.0 / 10.0}, // L1.6, P0.625 - {"1:1", 1.0 / 1.0}, // L1, P1 - {"2:1", 2.0 / 1.0}, // L2, P0.5 - {"3:1", 3.0 / 1.0}, // L3, P0.333... - {"4:1", 4.0 / 1.0}, // L4, P0.25 - {"5:1", 5.0 / 1.0}, // L5, P0.2 - {"6:1", 6.0 / 1.0}, // L6, P0.1666... - {"7:1", 7.0 / 1.0}, // L7, P0.142... - {"4:5", 4.0 / 5.0}, // L1.25, P0.8 - {"5:7", 5.0 / 7.0}, // L1.4, P0.714... - {"6:7", 6.0 / 7.0}, // L1.166..., P0.857... - {"6:17", 6.0 / 17.0}, // L2.833..., P0.352... - {"24:65 - XPAN", 24.0 / 65.0}, // L2.708..., P0.369... - {"1.414 - DIN EN ISO 216", 1.414}, // L1.414, P0.707... - {"3.5:5", 3.5 / 5.0}, // L1.428..., P0.7 - {"8.5:11 - US Letter", 8.5 / 11.0}, // L1.294..., P0.772... - {"9.5:12", 9.5 / 12.0}, // L1.263..., P0.791... - {"10:12", 10.0 / 12.0}, // L1.2, P0.833... - {"11:14", 11.0 / 14.0}, // L1.272..., P0.785... - {"11:17 - Tabloid", 11.0 / 17.0}, // L1.545..., P0.647... - {"13:19", 13.0 / 19.0}, // L1.461..., P0.684... - {"17:22", 17.0 / 22.0}, // L1.294..., P0.772... - {"45:35 - ePassport", 45.0 / 35.0}, // L1.285,... P0.777... - {"64:27", 64.0 / 27.0}, // L2.370..., P0.421... - }, + crop_ratios(new CropRatios), opt(0), wDirty(true), hDirty(true), @@ -229,8 +274,8 @@ Crop::Crop(): // ppigrid END // Populate the combobox - for (const auto& crop_ratio : crop_ratios) { - ratio->append (crop_ratio.label); + for (const auto& label : crop_ratios->getLabels()) { + ratio->append (label); } ratio->set_active (0); @@ -354,7 +399,10 @@ void Crop::read (const ProcParams* pp, const ParamsEdited* pedited) setDimensions (pp->crop.x + pp->crop.w, pp->crop.y + pp->crop.h); } - const bool flip_orientation = pp->crop.fixratio && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0; + const bool flip_orientation = + pp->crop.fixratio + && crop_ratios->getValue(ratio->get_active_row_number()) > 0 + && crop_ratios->getValue(ratio->get_active_row_number()) < 1.0; if (pp->crop.orientation == "Landscape") { orientation->set_active (flip_orientation ? 1 : 0); @@ -469,7 +517,10 @@ void Crop::write (ProcParams* pp, ParamsEdited* pedited) } // for historical reasons we store orientation different if ratio is written as 2:3 instead of 3:2, but in GUI 'landscape' is always long side horizontal regardless of the ratio is written short or long side first. - const bool flip_orientation = fixr->get_active() && crop_ratios[ratio->get_active_row_number()].value > 0 && crop_ratios[ratio->get_active_row_number()].value < 1.0; + const bool flip_orientation = + fixr->get_active() + && crop_ratios->getValue(ratio->get_active_row_number()) > 0 + && crop_ratios->getValue(ratio->get_active_row_number()) < 1.0; if (orientation->get_active_row_number() == 0) { pp->crop.orientation = flip_orientation ? "Portrait" : "Landscape"; @@ -1501,7 +1552,7 @@ double Crop::getRatio () const return r; } - r = crop_ratios[ratio->get_active_row_number()].value; + r = crop_ratios->getValue(ratio->get_active_row_number()); if (!r) { r = maxh <= maxw ? float(maxh)/float(maxw) : float(maxw)/float(maxh); } @@ -1539,5 +1590,5 @@ void Crop::updateCurrentRatio() double rw, rh; get_custom_ratio(w->get_value(), h->get_value(), rw, rh); customRatioLabel->set_text(Glib::ustring::compose("%1:%2", rw, rh)); - crop_ratios[1].value = double(w->get_value())/double(h->get_value()); + crop_ratios->updateCurrentRatio(static_cast(w->get_value()) / static_cast(h->get_value())); } diff --git a/rtgui/crop.h b/rtgui/crop.h index b9221a803..c6636b917 100644 --- a/rtgui/crop.h +++ b/rtgui/crop.h @@ -18,7 +18,7 @@ */ #pragma once -#include +#include #include @@ -91,16 +91,13 @@ public: void rotateCrop (int deg, bool hflip, bool vflip); private: - struct CropRatio { - Glib::ustring label; - double value; - }; - - std::vector crop_ratios; + class CropRatios; void adjustCropToRatio(); void updateCurrentRatio(); + const std::unique_ptr crop_ratios; + Gtk::CheckButton* fixr; MyComboBoxText* ratio; MyComboBoxText* orientation; From f4a28b730a3f629eda8463324fb43e31646838a6 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 5 Apr 2020 14:53:55 +0200 Subject: [PATCH 412/453] Disabled denoise chrom when denoise and refine disabled --- rtengine/ipwavelet.cc | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 79302c452..43c5733db 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1168,8 +1168,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { - WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); - WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + } Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); adecomp->reconstruct(labco->data + datalen, cp.strength); @@ -1194,8 +1196,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { - WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); - WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + } Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); @@ -1220,15 +1224,19 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); - WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + } Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); - WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); + if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); + WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); + } adecomp->reconstruct(labco->data + datalen, cp.strength); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); From 1e3870d8f71912838aca84389fff34328c85a45f Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 5 Apr 2020 15:53:05 +0200 Subject: [PATCH 413/453] Clean code improcfun.h --- rtengine/improcfun.h | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 3513efd92..d003df644 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -238,29 +238,22 @@ public: void RGB_denoise_info(Imagefloat * src, Imagefloat * provicalc, bool isRAW, const LUTf &gamcurve, float gam, float gamthresh, float gamslope, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float & maxblueaut, float &minredaut, float & minblueaut, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, bool multiThread = false); void RGBtile_denoise(float * fLblox, int hblproc, float noisevar_Ldetail); //for DCT void RGBoutput_tile_row(float *bloxrow_L, float ** Ldetail, float ** tilemask_out, int height, int width, int top); -// bool WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge); -// bool WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb); + void WaveletDenoiseAll_info(int levwav, const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float &maxblueaut, float &minredaut, float & minblueaut, int schoice, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb); bool WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge, int denoiseNestedLevels); bool WaveletDenoiseAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels); - bool WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels); bool WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3], float * vari, int edge, int denoiseNestedLevels); -// bool WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &WaveletCoeffs_L, float *noisevarlum, float madL[8][3]); -// bool WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float noisevar_ab, -// const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb); + bool WaveletDenoiseAll_BiShrinkAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float *noisevarchrom, float madL[8][3], float *variC, int local, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, int denoiseNestedLevels); void ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, float **buffer, int level, int dir, float *noisevarlum, float * madL, float * vari, int edge); void ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float **buffer, int level, int dir, float *noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, float * madL, float * variC, int local, float * madaab = nullptr, bool madCalculated = false); -// void ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, float **buffer, int level, int dir, float *noisevarlum, float * madL, float * vari, int edge); -// void ShrinkAllAB(const wavelet_decomposition &WaveletCoeffs_L, const wavelet_decomposition &WaveletCoeffs_ab, float **buffer, int level, int dir, -// float *noisevarchrom, float noisevar_ab, const bool useNoiseCCurve, bool autoch, bool denoiseMethodRgb, float * madL, float * madaab = nullptr, bool madCalculated = false); void ShrinkAll_info(float ** WavCoeffs_a, float ** WavCoeffs_b, int W_ab, int H_ab, float **noisevarlum, float **noisevarchrom, float **noisevarhue, float &chaut, int &Nb, float &redaut, float &blueaut, float &maxredaut, float &maxblueaut, float &minredaut, float &minblueaut, int schoice, int lvl, float &chromina, float &sigma, float &lumema, float &sigma_L, float &redyel, float &skinc, float &nsknc, float &maxchred, float &maxchblue, float &minchred, float &minchblue, int &nb, float &chau, float &chred, float &chblue, bool denoiseMethodRgb); From 31355ca70e2585d2b62268cc89f80697ea93aab9 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 6 Apr 2020 09:37:37 +0200 Subject: [PATCH 414/453] Added equalizer denoise luminance --- rtdata/languages/default | 6 +++-- rtengine/FTblockDN.cc | 6 ++--- rtengine/ipwavelet.cc | 56 +++++++++++++++++++++++++++++++++++++--- rtengine/procparams.cc | 4 +++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 +++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 12 +++++++++ rtgui/wavelet.h | 2 ++ 9 files changed, 85 insertions(+), 9 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 83262a3fc..c49205767 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -791,7 +791,8 @@ HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength HISTORY_MSG_TEMPOUT;CAM02 automatic temperature HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor HISTORY_MSG_TRANS_Method;Geometry - Method -HISTORY_MSG_WAVBALCHROM;Balance chroma +HISTORY_MSG_WAVBALCHROM;Equalizer chrominance +HISTORY_MSG_WAVBALLUM;Equalizer luminance HISTORY_MSG_WAVCHROMFI;Chroma fine HISTORY_MSG_WAVCHROMCO;Chroma coarse HISTORY_MSG_WAVCLARI;Clarity @@ -2145,7 +2146,8 @@ TP_WAVELET_BALANCE;Contrast balance d/v-h TP_WAVELET_BALANCE_TOOLTIP;Alters the balance between the wavelet directions: vertical-horizontal and diagonal.\nIf contrast, chroma or residual tone mapping are activated, the effect due to balance is amplified. TP_WAVELET_BALCHRO;Chrominance balance TP_WAVELET_BALCHRO_TOOLTIP;If enabled, the 'Contrast balance' curve or slider also modifies chroma balance. -TP_WAVELET_BALCHROM;Chrominance balance +TP_WAVELET_BALCHROM;Denoise Equalizer Blue-Red +TP_WAVELET_BALLUM;Denoise Equalizer White-Black TP_WAVELET_BANONE;None TP_WAVELET_BASLI;Slider TP_WAVELET_BATYPE;Contrast balance method diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 34e7351b8..894c72ce2 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -2214,7 +2214,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W int maxlvl = min(WaveletCoeffs_L.maxlevel(), 5); const float eps = 0.01f; - if (edge == 1 || edge == 3) { + if (edge == 1 || edge == 3 || edge == 4) { maxlvl = 4; //for refine denoise edge wavelet } @@ -2294,7 +2294,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W } } - if (edge == 2) { + if (edge == 2 || edge == 4) { for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { nvl[i] = vari[lvl] * SQR(noisevarlum[i]); } @@ -2721,7 +2721,7 @@ void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, f } } - if (edge == 2) { + if (edge == 2 || edge == 4) { for (int i = 0; i < W_L * H_L; ++i) { nvl[i] = vari[level] * SQR(noisevarlum[i]); } diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 43c5733db..a5dc1b7c6 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -138,6 +138,7 @@ struct cont_params { float edgampl; int neigh; bool lipp; + float ballum; float balchrom; float chromfi; float chromco; @@ -401,6 +402,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.balchrom = waparams.balchrom; cp.chromfi = 0.1f * waparams.chromfi; cp.chromco = 0.1f * waparams.chromco; + cp.ballum = waparams.ballum; cp.conres = waparams.rescon; cp.conresH = waparams.resconH; @@ -884,16 +886,62 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[1] = 8.f * SQR((cp.lev1n / 125.f) * (1.f + cp.lev1n / 25.f)); vari[2] = 8.f * SQR((cp.lev2n / 125.f) * (1.f + cp.lev2n / 25.f)); vari[3] = 8.f * SQR((cp.lev3n / 125.f) * (1.f + cp.lev3n / 25.f)); + float kr3 = 1.f; + if (cp.lev3n < 10.f) { + kr3 = 0.f; + } else if (cp.lev3n < 30.f) { + kr3 = 0.5f; + } else if (cp.lev3n < 70.f) { + kr3 = 0.7f; + } else { + kr3 = 1.f; + } if ((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { - int edge = 1; + int edge = 4; vari[0] = rtengine::max(0.0001f, vari[0]); vari[1] = rtengine::max(0.0001f, vari[1]); vari[2] = rtengine::max(0.0001f, vari[2]); - vari[3] = rtengine::max(0.0001f, vari[3]); - float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL + vari[3] = rtengine::max(0.0001f, kr3 * vari[3]); + // float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL + int GWL = labco->W; + int GHL = labco->H; + float* noisevarlum = new float[GHL * GWL]; + int GW2L = (GWL + 1) / 2; - WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge, 1); + float nvlh[13] = {1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 1.f, 0.7f, 0.5f}; //high value + float nvll[13] = {0.1f, 0.15f, 0.2f, 0.25f, 0.3f, 0.35f, 0.4f, 0.45f, 0.7f, 0.8f, 1.f, 1.f, 1.f}; //low value + + float seuillow = 3000.f;//low + float seuilhigh = 18000.f;//high + int i = 10 - cp.ballum; + float ac = (nvlh[i] - nvll[i]) / (seuillow - seuilhigh); + float bc = nvlh[i] - seuillow * ac; + +#ifdef _OPENMP + #pragma omp parallel for + +#endif + + for (int ir = 0; ir < GHL; ir++) + for (int jr = 0; jr < GWL; jr++) { + float lN = labco->L[ir][jr]; + + if (lN < seuillow) { + noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = nvlh[i]; + } else if (lN < seuilhigh) { + noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = ac * lN + bc; + } else { + noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = nvll[i]; + } + } + if (cp.lev3n < 0.5f) { + WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge, 1); + } else { + WaveletDenoiseAll_BiShrinkL(*Ldecomp, noisevarlum, madL, vari, edge, 1); + + WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge, 1); + } } //Flat curve for Contrast=f(H) in levels diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index b398cc729..b02f1970c 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2248,6 +2248,7 @@ WaveletParams::WaveletParams() : bluemed(0), greenhigh(0), bluehigh(0), + ballum(7.), balchrom(0.), chromfi(0.), chromco(0.), @@ -2361,6 +2362,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && bluemed == other.bluemed && greenhigh == other.greenhigh && bluehigh == other.bluehigh + && ballum == other.ballum && balchrom == other.balchrom && chromfi == other.chromfi && chromco == other.chromco @@ -3526,6 +3528,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.bluehigh, "Wavelet", "CBbluehigh", wavelet.bluehigh, keyFile); saveToKeyfile(!pedited || pedited->wavelet.bluemed, "Wavelet", "CBbluemed", wavelet.bluemed, keyFile); saveToKeyfile(!pedited || pedited->wavelet.bluelow, "Wavelet", "CBbluelow", wavelet.bluelow, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.ballum, "Wavelet", "Ballum", wavelet.ballum, keyFile); saveToKeyfile(!pedited || pedited->wavelet.balchrom, "Wavelet", "Balchrom", wavelet.balchrom, keyFile); saveToKeyfile(!pedited || pedited->wavelet.chromfi, "Wavelet", "Chromfine", wavelet.chromfi, keyFile); saveToKeyfile(!pedited || pedited->wavelet.chromco, "Wavelet", "Chromcoarse", wavelet.chromco, keyFile); @@ -4699,6 +4702,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "CBbluehigh", pedited, wavelet.bluehigh, pedited->wavelet.bluehigh); assignFromKeyfile(keyFile, "Wavelet", "CBbluemed", pedited, wavelet.bluemed, pedited->wavelet.bluemed); assignFromKeyfile(keyFile, "Wavelet", "CBbluelow", pedited, wavelet.bluelow, pedited->wavelet.bluelow); + assignFromKeyfile(keyFile, "Wavelet", "Ballum", pedited, wavelet.ballum, pedited->wavelet.ballum); assignFromKeyfile(keyFile, "Wavelet", "Balchrom", pedited, wavelet.balchrom, pedited->wavelet.balchrom); assignFromKeyfile(keyFile, "Wavelet", "Chromfine", pedited, wavelet.chromfi, pedited->wavelet.chromfi); assignFromKeyfile(keyFile, "Wavelet", "Chromcoarse", pedited, wavelet.chromco, pedited->wavelet.chromco); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index a6147ccc5..4e2b0c275 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1205,6 +1205,7 @@ struct WaveletParams { int bluemed; int greenhigh; int bluehigh; + double ballum; double balchrom; double chromfi; double chromco; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 0685e1471..0faee0fd3 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -486,6 +486,7 @@ void ParamsEdited::set(bool v) wavelet.bluemed = v; wavelet.bluelow = v; wavelet.lipst = v; + wavelet.ballum = v; wavelet.balchrom = v; wavelet.chromfi = v; wavelet.chromco = v; @@ -1096,6 +1097,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.bluelow = wavelet.bluelow && p.wavelet.bluelow == other.wavelet.bluelow; wavelet.lipst = wavelet.lipst && p.wavelet.lipst == other.wavelet.lipst; wavelet.bluehigh = wavelet.bluehigh && p.wavelet.bluehigh == other.wavelet.bluehigh; + wavelet.ballum = wavelet.ballum && p.wavelet.ballum == other.wavelet.ballum; wavelet.balchrom = wavelet.balchrom && p.wavelet.balchrom == other.wavelet.balchrom; wavelet.chromfi = wavelet.chromfi && p.wavelet.chromfi == other.wavelet.chromfi; wavelet.chromco = wavelet.chromco && p.wavelet.chromco == other.wavelet.chromco; @@ -2935,6 +2937,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.bluelow = mods.wavelet.bluelow; } + if (wavelet.ballum) { + toEdit.wavelet.ballum = mods.wavelet.ballum; + } + if (wavelet.balchrom) { toEdit.wavelet.balchrom = mods.wavelet.balchrom; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 4465d15b4..d1be2c57e 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -586,6 +586,7 @@ struct WaveletParamsEdited { bool bluemed; bool greenhigh; bool bluehigh; + bool ballum; bool balchrom; bool chromfi; bool chromco; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 23e526474..652774af4 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -130,6 +130,7 @@ Wavelet::Wavelet() : edgedetectthr2(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR2"), -10, 100, 1, 0))), edgesensi(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGESENSI"), 0, 100, 1, 60))), edgeampli(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEAMPLI"), 0, 100, 1, 10))), + ballum(Gtk::manage(new Adjuster(M("TP_WAVELET_BALLUM"), -2., 10., 0.5, 7., Gtk::manage(new RTImage("circle-white-small.png")), Gtk::manage(new RTImage("circle-black-small.png"))))), balchrom(Gtk::manage(new Adjuster(M("TP_WAVELET_BALCHROM"), -100., 100., 1., 0., Gtk::manage(new RTImage("circle-blue-small.png")), Gtk::manage(new RTImage("circle-red-small.png"))))), chromfi(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMFI"), 0.0, 150., 0.01, 0.))), chromco(Gtk::manage(new Adjuster(M("TP_WAVELET_CHROMCO"), 0, 100., 0.01, 0.))), @@ -183,6 +184,7 @@ Wavelet::Wavelet() : auto m = ProcEventMapper::getInstance(); EvWavenaclari = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCLARI"); EvWavushamet = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVUSHAMET"); + EvWavballum = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVBALLUM"); EvWavbalchrom = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVBALCHROM"); EvWavchromfi = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCHROMFI"); EvWavchromco = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVCHROMCO"); @@ -524,7 +526,9 @@ Wavelet::Wavelet() : level3noise->setAdjusterListener(this); level3noise->setUpdatePolicy(RTUP_DYNAMIC); + ballum->setAdjusterListener(this); + noiseBox->pack_start(*ballum); noiseBox->pack_start(*level0noise, Gtk::PACK_SHRINK, 0); noiseBox->pack_start(*level1noise, Gtk::PACK_SHRINK, 0); noiseBox->pack_start(*level2noise, Gtk::PACK_SHRINK, 0); @@ -1403,6 +1407,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) softrad->setValue(pp->wavelet.softrad); softradend->setValue(pp->wavelet.softradend); + ballum->setValue(pp->wavelet.ballum); balchrom->setValue(pp->wavelet.balchrom); chromfi->setValue(pp->wavelet.chromfi); chromco->setValue(pp->wavelet.chromco); @@ -1551,6 +1556,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) softrad->setEditedState(pedited->wavelet.softrad ? Edited : UnEdited); softradend->setEditedState(pedited->wavelet.softradend ? Edited : UnEdited); + ballum->setEditedState(pedited->wavelet.ballum ? Edited : UnEdited); balchrom->setEditedState(pedited->wavelet.balchrom ? Edited : UnEdited); chromfi->setEditedState(pedited->wavelet.chromfi ? Edited : UnEdited); chromco->setEditedState(pedited->wavelet.chromco ? Edited : UnEdited); @@ -1774,6 +1780,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.strength = (int) strength->getValue(); pp->wavelet.balance = (int) balance->getValue(); pp->wavelet.balchrom = balchrom->getValue(); + pp->wavelet.ballum = ballum->getValue(); pp->wavelet.chromfi = chromfi->getValue(); pp->wavelet.chromco = chromco->getValue(); @@ -1895,6 +1902,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.bluemed = bluemed->getEditedState(); pedited->wavelet.greenhigh = greenhigh->getEditedState(); pedited->wavelet.bluehigh = bluehigh->getEditedState(); + pedited->wavelet.ballum = ballum->getEditedState(); pedited->wavelet.balchrom = balchrom->getEditedState(); pedited->wavelet.chromfi = chromfi->getEditedState(); pedited->wavelet.chromco = chromco->getEditedState(); @@ -2129,6 +2137,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit level1noise->setDefault (defParams->wavelet.level1noise); level2noise->setDefault (defParams->wavelet.level2noise); level3noise->setDefault (defParams->wavelet.level3noise); + ballum->setDefault(defParams->wavelet.ballum); balchrom->setDefault(defParams->wavelet.balchrom); chromfi->setDefault(defParams->wavelet.chromfi); chromco->setDefault(defParams->wavelet.chromco); @@ -2155,6 +2164,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit mergeC->setDefaultEditedState(pedited->wavelet.mergeC ? Edited : UnEdited); softrad->setDefaultEditedState(pedited->wavelet.softrad ? Edited : UnEdited); softradend->setDefaultEditedState(pedited->wavelet.softradend ? Edited : UnEdited); + ballum->setDefaultEditedState(pedited->wavelet.ballum ? Edited : UnEdited); balchrom->setDefaultEditedState(pedited->wavelet.balchrom ? Edited : UnEdited); chromfi->setDefaultEditedState(pedited->wavelet.chromfi ? Edited : UnEdited); chromco->setDefaultEditedState(pedited->wavelet.chromco ? Edited : UnEdited); @@ -2951,6 +2961,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); } else if (a == bluehigh) { listener->panelChanged(EvWavbluehigh, bluehigh->getTextValue()); + } else if (a == ballum) { + listener->panelChanged(EvWavballum, ballum->getTextValue()); } else if (a == balchrom) { listener->panelChanged(EvWavbalchrom, balchrom->getTextValue()); } else if (a == chromfi) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 07d2432ac..d1b4bb7c3 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -70,6 +70,7 @@ public: private: rtengine::ProcEvent EvWavenaclari; rtengine::ProcEvent EvWavushamet; + rtengine::ProcEvent EvWavballum; rtengine::ProcEvent EvWavbalchrom; rtengine::ProcEvent EvWavchromfi; rtengine::ProcEvent EvWavchromco; @@ -244,6 +245,7 @@ private: Adjuster* const edgedetectthr2; Adjuster* const edgesensi; Adjuster* const edgeampli; + Adjuster* const ballum; Adjuster* const balchrom; Adjuster* const chromfi; Adjuster* const chromco; From 9f5e81b0262e50bf26dfdfc3524382d7b428557f Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 6 Apr 2020 09:42:46 +0200 Subject: [PATCH 415/453] Change tooltip offset --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index c49205767..64af97689 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2328,7 +2328,7 @@ TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\n TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. TP_WAVELET_WAVLOWTHR;Low contrast threshold TP_WAVELET_WAVOFFSET;Offset -TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\n High values will amplify the contrast enhancement of the highlights, while low values will amplify the contrast enhancement of the shadows. Along with a low Max. effect value will help you selecting the contrasts that will be enhanced +TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\nHigh values here will amplify the contrast change of the highlights, whereas low values will amplify the contrast change of the shadows.\nAlong with a low Damper value you will able to select the contrasts that will be enhanced. TP_WBALANCE_AUTO;Auto TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_AUTOOLD;Auto RGB grey From ded866f5afc1e009a51adc74ba604ebcd5f9b9df Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 6 Apr 2020 17:33:01 +0200 Subject: [PATCH 416/453] Optimize memory when denoise chroma is not used --- rtengine/ipwavelet.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index a5dc1b7c6..0d55791d6 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -838,7 +838,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (levwavL < 4) { levwavL = 4; //to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! } - + bool usechrom = cp.chromfi > 0.f || cp.chromco > 0.f; + if (levwavL > 0) { const std::unique_ptr Ldecomp(new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); float madL[8][3]; @@ -970,7 +971,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } */ - + if(!usechrom) { + Ldecomp->reconstruct(labco->data, cp.strength); + } float variC[7]; float variCb[7]; @@ -1298,8 +1301,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (hhCurve) { delete hhCurve; } - - Ldecomp->reconstruct(labco->data, cp.strength); + + if(usechrom) { + Ldecomp->reconstruct(labco->data, cp.strength); + } } } From abba1bf360502b13bd541b68bf4630c0e2835cce Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 7 Apr 2020 10:16:08 +0200 Subject: [PATCH 417/453] Improve enabled blur level and wavelet decomp level --- rtengine/ipwavelet.cc | 105 ++++++++++++++++++++++++++++-------------- rtgui/wavelet.cc | 2 +- 2 files changed, 71 insertions(+), 36 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 0d55791d6..860530be2 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -524,11 +524,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.Tilesmethod == "big") { realtile = 22; } -/* - if (params->wavelet.Tilesmethod == "lit") { - realtile = 12; - } -*/ + + /* + if (params->wavelet.Tilesmethod == "lit") { + realtile = 12; + } + */ int tilesize = 128 * realtile; int overlap = (int) tilesize * 0.125f; int numtiles_W, numtiles_H, tilewidth, tileheight, tileWskip, tileHskip; @@ -823,7 +824,25 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const ref0 = true; } - if (cp.contrast == 0.f && !cp.tonemap && cp.conres == 0.f && cp.conresH == 0.f && cp.val == 0 && !ref0 && params->wavelet.CLmethod == "all") { // no processing of residual L or edge=> we probably can reduce the number of levels + bool wavcurvecomp = false;//not enable if 0.75 + + if (wavblcurve) { + for (int i = 0; i < 500; i++) { + if (wavblcurve[i] != 0.) { + wavcurvecomp = true; + } + } + } + + bool exblurL = cp.blena && wavcurvecomp; + + if(exblurL) { + if(cp.mul[0] == 0.f) { + cp.mul[0] = 0.01f;//to enable WaveletcontAllL if no contrast is nead + } + } + + if (!exblurL && cp.contrast == 0.f && cp.blurres == 0.f && !cp.tonemap && cp.conres == 0.f && cp.conresH == 0.f && cp.val == 0 && !ref0 && params->wavelet.CLmethod == "all") { // no processing of residual L or edge=> we probably can reduce the number of levels while (levwavL > 0 && cp.mul[levwavL - 1] == 0.f) { // cp.mul[level] == 0.f means no changes to level levwavL--; } @@ -838,8 +857,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (levwavL < 4) { levwavL = 4; //to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! } + + // printf("wave L=%i\n", levwavL); bool usechrom = cp.chromfi > 0.f || cp.chromco > 0.f; - + if (levwavL > 0) { const std::unique_ptr Ldecomp(new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); float madL[8][3]; @@ -888,6 +909,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[2] = 8.f * SQR((cp.lev2n / 125.f) * (1.f + cp.lev2n / 25.f)); vari[3] = 8.f * SQR((cp.lev3n / 125.f) * (1.f + cp.lev3n / 25.f)); float kr3 = 1.f; + if (cp.lev3n < 10.f) { kr3 = 0.f; } else if (cp.lev3n < 30.f) { @@ -904,7 +926,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[1] = rtengine::max(0.0001f, vari[1]); vari[2] = rtengine::max(0.0001f, vari[2]); vari[3] = rtengine::max(0.0001f, kr3 * vari[3]); - // float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL + // float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL int GWL = labco->W; int GHL = labco->H; float* noisevarlum = new float[GHL * GWL]; @@ -920,22 +942,23 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float bc = nvlh[i] - seuillow * ac; #ifdef _OPENMP - #pragma omp parallel for + #pragma omp parallel for #endif - for (int ir = 0; ir < GHL; ir++) - for (int jr = 0; jr < GWL; jr++) { - float lN = labco->L[ir][jr]; + for (int ir = 0; ir < GHL; ir++) + for (int jr = 0; jr < GWL; jr++) { + float lN = labco->L[ir][jr]; + + if (lN < seuillow) { + noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = nvlh[i]; + } else if (lN < seuilhigh) { + noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = ac * lN + bc; + } else { + noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = nvll[i]; + } + } - if (lN < seuillow) { - noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = nvlh[i]; - } else if (lN < seuilhigh) { - noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = ac * lN + bc; - } else { - noisevarlum[(ir >> 1)*GW2L + (jr >> 1)] = nvll[i]; - } - } if (cp.lev3n < 0.5f) { WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge, 1); } else { @@ -965,13 +988,14 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } WaveletcontAllLfinal(*Ldecomp, cp, mean, sigma, MaxP, waOpacityCurveWL); + //Evaluate2(*Ldecomp, cp, ind, mean, meanN, sigma, sigmaN, MaxP, MaxN, madL); /* Ldecomp->reconstruct(labco->data, cp.strength); } } */ - if(!usechrom) { + if (!usechrom) { Ldecomp->reconstruct(labco->data, cp.strength); } @@ -1147,11 +1171,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const variC[6] = max(0.0001f, k6 * variC[6]); variCb[6] = max(0.0001f, k6 * variCb[6]); -/* - for (int y = 0; y < 7; y++) { - printf("y=%i madL=%f varia=%f variab=%f\n", y, madL[y][1], variC[y], variCb[y]); - } -*/ + /* + for (int y = 0; y < 7; y++) { + printf("y=%i madL=%f varia=%f variab=%f\n", y, madL[y][1], variC[y], variCb[y]); + } + */ float nvch = 0.6f;//high value float nvcl = 0.1f;//low value @@ -1199,11 +1223,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const hhutili = true; } + bool exblurab = cp.chrwav > 0.f && exblurL; if (!hhutili) { //always a or b int levwava = levwav; - if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels + if (!exblurab && cp.chrores == 0.f && cp.blurcres == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels while (levwava > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwava - 1] == 0.f)) || (cp.CHmet != 2 && (levwava == 10 || (!cp.curv || cp.mulC[levwava - 1] == 0.f))))) && (!cp.opaRG || levwava == 10 || (cp.opaRG && cp.mulopaRG[levwava - 1] == 0.f)) && ((levwava == 10 || (cp.CHSLmet == 1 && cp.mulC[levwava - 1] == 0.f)))) { levwava--; } @@ -1215,14 +1240,17 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } + // printf("wavea=%i\n", levwava); + if (levwava > 0) { const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { - if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } + Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); adecomp->reconstruct(labco->data + datalen, cp.strength); @@ -1231,7 +1259,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const int levwavb = levwav; - if (cp.chrores == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels + if (!exblurab && cp.chrores == 0.f && cp.blurcres == 0.f && params->wavelet.CLmethod == "all" && !cp.cbena) { // no processing of residual ab => we probably can reduce the number of levels while (levwavb > 0 && !cp.diag && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavb - 1] == 0.f)) || (cp.CHmet != 2 && (levwavb == 10 || (!cp.curv || cp.mulC[levwavb - 1] == 0.f))))) && (!cp.opaBY || levwavb == 10 || (cp.opaBY && cp.mulopaBY[levwavb - 1] == 0.f)) && ((levwavb == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavb - 1] == 0.f)))) { levwavb--; } @@ -1243,14 +1271,17 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } + // printf("waveb=%i\n", levwavb); + if (levwavb > 0) { const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { - if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); } + Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); @@ -1259,11 +1290,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } else {// a and b int levwavab = levwav; - if (cp.chrores == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels + if (!exblurab && cp.chrores == 0.f && cp.blurcres == 0.f && !hhutili && params->wavelet.CLmethod == "all") { // no processing of residual ab => we probably can reduce the number of levels while (levwavab > 0 && (((cp.CHmet == 2 && (cp.chro == 0.f || cp.mul[levwavab - 1] == 0.f)) || (cp.CHmet != 2 && (levwavab == 10 || (!cp.curv || cp.mulC[levwavab - 1] == 0.f))))) && (!cp.opaRG || levwavab == 10 || (cp.opaRG && cp.mulopaRG[levwavab - 1] == 0.f)) && ((levwavab == 10 || (cp.CHSLmet == 1 && cp.mulC[levwavab - 1] == 0.f)))) { levwavab--; } } + if (cp.chromfi > 0.f || cp.chromco > 0.f) { if (levwavab < 7) { levwavab = 7; @@ -1275,16 +1307,18 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } + Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - if(cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); } @@ -1301,8 +1335,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (hhCurve) { delete hhCurve; } - - if(usechrom) { + + if (usechrom) { Ldecomp->reconstruct(labco->data, cp.strength); } } @@ -2350,6 +2384,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float klev = 1.f; if (wavblcurve && wavcurvecomp && cp.blena) { + printf("Blur level L\n"); float mea[10]; float effect = cp.bluwav; float beta = 0.f; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 652774af4..af159d480 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -138,7 +138,7 @@ Wavelet::Wavelet() : mergeC(Gtk::manage(new Adjuster(M("TP_WAVELET_MERGEC"), -50, 100, 1, 20))), softrad(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), softradend(Gtk::manage(new Adjuster(M("TP_WAVELET_SOFTRAD"), 0.0, 100., 0.5, 0.))), - chrwav(Gtk::manage(new Adjuster(M("TP_WAVELET_CHRWAV"), 0., 100., 0., 0.))), + chrwav(Gtk::manage(new Adjuster(M("TP_WAVELET_CHRWAV"), 0., 100., 0.5, 0.))), Lmethod(Gtk::manage(new MyComboBoxText())), CHmethod(Gtk::manage(new MyComboBoxText())), CHSLmethod(Gtk::manage(new MyComboBoxText())), From cbac4e06913ecefbc096dd38c3ddb48a1359b4eb Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 7 Apr 2020 10:52:08 +0200 Subject: [PATCH 418/453] Fixed segmentation fault with blur levels --- rtengine/ipwavelet.cc | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 860530be2..703894e2d 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -836,9 +836,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const bool exblurL = cp.blena && wavcurvecomp; - if(exblurL) { - if(cp.mul[0] == 0.f) { - cp.mul[0] = 0.01f;//to enable WaveletcontAllL if no contrast is nead + if (exblurL) { + if (cp.mul[0] == 0.f) { + cp.mul[0] = 0.01f;//to always enable WaveletcontAllL if no contrast is nead } } @@ -858,7 +858,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const levwavL = 4; //to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! } - // printf("wave L=%i\n", levwavL); + if (settings->verbose) { + printf("Level decomp L=%i\n", levwavL); + } + bool usechrom = cp.chromfi > 0.f || cp.chromco > 0.f; if (levwavL > 0) { @@ -1240,7 +1243,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } - // printf("wavea=%i\n", levwava); + if (settings->verbose) { + printf("Leval decomp a=%i\n", levwava); + } if (levwava > 0) { const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); @@ -1271,7 +1276,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } - // printf("waveb=%i\n", levwavb); + if (settings->verbose) { + printf("Leval decomp b=%i\n", levwavb); + } + if (levwavb > 0) { const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); @@ -2384,7 +2392,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float klev = 1.f; if (wavblcurve && wavcurvecomp && cp.blena) { - printf("Blur level L\n"); + // printf("Blur level L\n"); float mea[10]; float effect = cp.bluwav; float beta = 0.f; @@ -2446,13 +2454,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } klev = (wavblcurve[lvl * 55.5f]); - float lvr = lvl; - if (lvr == 0) { - lvr = 1; - } - - klev *= beta * lvr * 100.f / skip; + klev *= beta * 100.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { @@ -2707,6 +2710,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); if (wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { + float mea[10]; float effect = cp.bluwav; float beta = 0.f; @@ -2750,13 +2754,8 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float } klev = (wavblcurve[lvl * 55.5f]); - float lvr = lvl; - if (lvr == 0) { - lvr = 1; - } - - klev *= beta * cp.chrwav * lvr * 200.f / skip; + klev *= beta * cp.chrwav * 100.f / skip; boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); From 4c0013b461c060cb83ab2b2602a0644c70dd309a Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 8 Apr 2020 07:42:17 +0200 Subject: [PATCH 419/453] Wavelet final - Change guidefilter parameters --- rtengine/ipwavelet.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 703894e2d..f415c9c8e 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -1576,10 +1576,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } - constexpr double epsilmax = 0.001; - constexpr double epsilmin = 0.0001; - constexpr double aepsil = (epsilmax - epsilmin) / 90.f; - constexpr double bepsil = epsilmax - 100.f * aepsil; + constexpr double epsilmax = 0.002; + constexpr double epsilmin = 0.0005; + constexpr double aepsil = 0.01f * (epsilmax - epsilmin); + constexpr double bepsil = epsilmin; const double epsil = aepsil * waparams.softradend + bepsil; const float blur = 10.f / scale * (0.001f + 0.8f * waparams.softradend); From c2fae0ce87cfed13e32eb43a518d3e5bdf08bcaa Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 10 Apr 2020 09:20:31 +0200 Subject: [PATCH 420/453] Change sensitivity sliders wavelet levels denoise --- rtengine/FTblockDN.cc | 2 +- rtengine/ipwavelet.cc | 53 +++++++++++++++++++++++-------------------- 2 files changed, 29 insertions(+), 26 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index 894c72ce2..ab06f92f2 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -549,7 +549,7 @@ BENCHFUN const float noisevarL = (useNoiseLCurve && (denoiseMethodRgb || !isRAW)) ? SQR(((noiseluma + 1.f) / 125.f) * (10.f + (noiseluma + 1.f) / 25.f)) : SQR((noiseluma / 125.f) * (1.f + noiseluma / 25.f)); const bool denoiseLuminance = (noisevarL > 0.00001f); - //printf("NL=%f \n",noisevarL); +// printf("NL=%f \n",noisevarL); if (useNoiseLCurve || useNoiseCCurve) { int hei = calclum->getHeight(); int wid = calclum->getWidth(); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index f415c9c8e..264b5df6d 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -907,10 +907,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //init for edge and denoise float vari[4]; - vari[0] = 8.f * SQR((cp.lev0n / 125.f) * (1.f + cp.lev0n / 25.f)); - vari[1] = 8.f * SQR((cp.lev1n / 125.f) * (1.f + cp.lev1n / 25.f)); - vari[2] = 8.f * SQR((cp.lev2n / 125.f) * (1.f + cp.lev2n / 25.f)); - vari[3] = 8.f * SQR((cp.lev3n / 125.f) * (1.f + cp.lev3n / 25.f)); + vari[0] = 0.8f * SQR((cp.lev0n / 125.f) * (1.f + cp.lev0n / 25.f)); + vari[1] = 0.8f * SQR((cp.lev1n / 125.f) * (1.f + cp.lev1n / 25.f)); + vari[2] = 0.8f * SQR((cp.lev2n / 125.f) * (1.f + cp.lev2n / 25.f)); + vari[3] = 0.8f * SQR((cp.lev3n / 125.f) * (1.f + cp.lev3n / 25.f)); float kr3 = 1.f; if (cp.lev3n < 10.f) { @@ -925,10 +925,13 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if ((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { int edge = 4; - vari[0] = rtengine::max(0.0001f, vari[0]); - vari[1] = rtengine::max(0.0001f, vari[1]); - vari[2] = rtengine::max(0.0001f, vari[2]); - vari[3] = rtengine::max(0.0001f, kr3 * vari[3]); + vari[0] = rtengine::max(0.000001f, vari[0]); + vari[1] = rtengine::max(0.000001f, vari[1]); + vari[2] = rtengine::max(0.000001f, vari[2]); + vari[3] = rtengine::max(0.000001f, kr3 * vari[3]); + if (settings->verbose) { + printf("LUM var0=%f var1=%f var2=%f var3=%f\n",vari[0], vari[1], vari[2], vari[3]); + } // float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL int GWL = labco->W; int GHL = labco->H; @@ -1023,15 +1026,15 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (noisecfr < 0.f) { - noisecfr = 0.0001f; + noisecfr = 0.00001f; } if (noiseccr < 0.f) { - noiseccr = 0.0001f; + noiseccr = 0.00001f; } if (noisecfb < 0.f) { - noisecfb = 0.0001f; + noisecfb = 0.00001f; } if (noiseccb < 0.f) { @@ -1062,7 +1065,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float k3 = 0.f; if (cp.chromfi < 0.2f) { - k1 = 0.f; + k1 = 0.05f; k2 = 0.f; k3 = 0.f; } else if (cp.chromfi < 0.3f) { @@ -1116,7 +1119,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const k3 = 1.f; } - float minic = 0.0001f; + float minic = 0.000001f; variC[0] = max(minic, variC[0]); variC[1] = max(minic, k1 * variC[1]); variC[2] = max(minic, k2 * variC[2]); @@ -1131,15 +1134,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float k5 = 0.f; float k6 = 0.f; - if (cp.chromco == 0.01f) { - k4 = 0.f; - k5 = 0.0f; - } else if (cp.chromco < 0.2f) { + if (cp.chromco < 0.2f) { k4 = 0.1f; - k5 = 0.0f; + k5 = 0.02f; } else if (cp.chromco < 0.5f) { k4 = 0.15f; - k5 = 0.0f; + k5 = 0.05f; } else if (cp.chromco < 1.f) { k4 = 0.15f; k5 = 0.1f; @@ -1157,10 +1157,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const k5 = 1.f; } - variC[4] = max(0.0001f, k4 * variC[4]); - variC[5] = max(0.0001f, k5 * variC[5]); - variCb[4] = max(0.0001f, k4 * variCb[4]); - variCb[5] = max(0.0001f, k5 * variCb[5]); + variC[4] = max(0.000001f, k4 * variC[4]); + variC[5] = max(0.000001f, k5 * variC[5]); + variCb[4] = max(0.000001f, k4 * variCb[4]); + variCb[5] = max(0.000001f, k5 * variCb[5]); if (cp.chromco < 4.f) { k6 = 0.f; @@ -1172,8 +1172,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const k6 = 1.f; } - variC[6] = max(0.0001f, k6 * variC[6]); - variCb[6] = max(0.0001f, k6 * variCb[6]); + variC[6] = max(0.00001f, k6 * variC[6]); + variCb[6] = max(0.00001f, k6 * variCb[6]); + if (settings->verbose) { + printf("CHRO var0=%f va1=%f va2=%f va3=%f va4=%f val5=%f va6=%f\n", variC[0], variC[1], variC[2], variC[3],variC[4],variC[5], variC[6]); + } /* for (int y = 0; y < 7; y++) { printf("y=%i madL=%f varia=%f variab=%f\n", y, madL[y][1], variC[y], variCb[y]); From 60bb7b520b2222d127a258a8305d1fedcacbd5d5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 12 Apr 2020 14:08:06 +0200 Subject: [PATCH 421/453] Wavelet - Fixed crash when blur residual high and zoom high --- rtdata/languages/default | 1 + rtengine/ipwavelet.cc | 64 +++++++++++++++++++++++----------------- rtgui/wavelet.cc | 2 ++ 3 files changed, 40 insertions(+), 27 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 64af97689..b200a2ad7 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2283,6 +2283,7 @@ TP_WAVELET_RE2;Unchanged TP_WAVELET_RE3;Reduced TP_WAVELET_RESBLUR;Blur Luminance TP_WAVELET_RESBLURC;Blur Chroma +TP_WAVELET_RESBLUR_TOOLTIP;Disabled if zoom > about 500% TP_WAVELET_RESCHRO;Intensity TP_WAVELET_RESCON;Shadows TP_WAVELET_RESCONH;Highlights diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 264b5df6d..948b76f2b 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -2201,22 +2201,27 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //Blur luma if (cp.blurres != 0.f && cp.resena) { - float rad = 0.7f * cp.blurres / skip; - float * bef = new float[W_L * H_L]; - float * aft = new float[W_L * H_L]; + int minWL = min(W_L, H_L); + float k = 0.5f; + //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); + if(minWL > 140) {//disabled if too low windows + float rad = k * cp.blurres / skip; + float * bef = new float[W_L * H_L]; + float * aft = new float[W_L * H_L]; + + for (int i = 0; i < H_L * W_L; i++) { + bef[i] = WavCoeffs_L0[i]; + } - for (int i = 0; i < H_L * W_L; i++) { - bef[i] = WavCoeffs_L0[i]; - } + boxblur(bef, aft, rad, W_L, H_L, false); - boxblur(bef, aft, rad, W_L, H_L, false); + for (int i = 0; i < H_L * W_L; i++) { + WavCoeffs_L0[i] = aft[i]; + } - for (int i = 0; i < H_L * W_L; i++) { - WavCoeffs_L0[i] = aft[i]; - } - - delete[] bef; - delete[] aft; + delete[] bef; + delete[] aft; + } } // @@ -2670,22 +2675,27 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float //Blur chroma if (cp.blurcres != 0.f && cp.resena) { - float rad = 0.7f * cp.blurcres / skip; - float * bef = new float[W_L * H_L]; - float * aft = new float[W_L * H_L]; + int minWL = min(W_L, H_L); + float k = 0.5f; + //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); + if(minWL > 140) {//disabled if too low windows + float rad = k * cp.blurcres / skip; + float * bef = new float[W_L * H_L]; + float * aft = new float[W_L * H_L]; - for (int i = 0; i < H_L * W_L; i++) { - bef[i] = WavCoeffs_ab0[i]; + for (int i = 0; i < H_L * W_L; i++) { + bef[i] = WavCoeffs_ab0[i]; + } + + boxblur(bef, aft, rad, W_L, H_L, false); + + for (int i = 0; i < H_L * W_L; i++) { + WavCoeffs_ab0[i] = aft[i]; + } + + delete[] bef; + delete[] aft; } - - boxblur(bef, aft, rad, W_L, H_L, false); - - for (int i = 0; i < H_L * W_L; i++) { - WavCoeffs_ab0[i] = aft[i]; - } - - delete[] bef; - delete[] aft; } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index af159d480..17689be50 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -800,6 +800,8 @@ Wavelet::Wavelet() : blurBox->pack_start(*resblur); blurBox->pack_start(*resblurc); blurFrame->add(*blurBox); + resblur->set_tooltip_text(M("TP_WAVELET_RESBLUR_TOOLTIP")); + resblurc->set_tooltip_text(M("TP_WAVELET_RESBLUR_TOOLTIP")); chromaFrame->set_label_align(0.025, 0.5); ToolParamBlock* const chromaBox = Gtk::manage(new ToolParamBlock()); From 71da91c85f5bf9986dfb1d0d32e1aeea19dbab16 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 13 Apr 2020 09:04:38 +0200 Subject: [PATCH 422/453] Wavelet levels - Added Damper to local contrast final --- rtdata/languages/default | 5 ++++- rtengine/ipwavelet.cc | 8 +++++--- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 ++++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 31 +++++++++++++++++++++++++++---- rtgui/wavelet.h | 3 +++ 8 files changed, 51 insertions(+), 8 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index b200a2ad7..a5cd7746e 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -816,6 +816,7 @@ HISTORY_MSG_WAVBL;Blur levels HISTORY_MSG_BLURWAV;Blur luminance HISTORY_MSG_BLURCWAV;Blur chroma HISTORY_MSG_EDGEFFECT;Edge Damper +HISTORY_MSG_SIGMAFIN;Final contrast Damper HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2227,6 +2228,7 @@ TP_WAVELET_EDSL;Threshold Sliders TP_WAVELET_EDTYPE;Local contrast method TP_WAVELET_EDVAL;Strength TP_WAVELET_FINAL;Final Touchup +TP_WAVELET_FINCFRAME;Final Local Contrast TP_WAVELET_FINEST;Finest TP_WAVELET_HIGHLIGHT;Highlight luminance range TP_WAVELET_HS1;Whole luminance range @@ -2273,7 +2275,7 @@ TP_WAVELET_NPTYPE_TOOLTIP;This algorithm uses the proximity of a pixel and eight TP_WAVELET_OLDSH;Algorithm using negatives values TP_WAVELET_OPACITY;Opacity Blue-Yellow TP_WAVELET_OPACITYW;Contrast balance d/v-h curve -TP_WAVELET_OPACITYWL;Final local contrast +TP_WAVELET_OPACITYWL;Local contrast TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. TP_WAVELET_PASTEL;Pastel chroma TP_WAVELET_PROC;Process @@ -2294,6 +2296,7 @@ TP_WAVELET_SHA;Sharp mask TP_WAVELET_SHFRAME;Shadows/Highlights TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_SIGMA;Damper +TP_WAVELET_SIGMAFIN;Damper TP_WAVELET_SIGMA_TOOLTIP;The effect of the contrast sliders is stronger in medium contrast details, and weaker in high and low contrast details.\n With this slider you can control how quickly the effect dampens towards the extreme contrasts.\n The higher the slider is set, the wider the range of contrasts which will get a strong change, and the higher the risk to generate artifacts.\n The lower it is, the more pinpoint will the effect be applied to a narrow range of contrast values. TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 948b76f2b..157fb6239 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -113,6 +113,7 @@ struct cont_params { int TMmeth; float tmstrength; float balan; + float sigmafin; int ite; int contmet; bool opaW; @@ -191,6 +192,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.ite = params->wavelet.iter; cp.tonemap = params->wavelet.tmrs != 0; cp.bam = false; + cp.sigmafin = params->wavelet.sigmafin; if (params->wavelet.TMmethod == "cont") { cp.contmet = 1; @@ -2955,11 +2957,11 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, if (cp.diagcurv && cp.finena && MaxP[level] > 0.f && mean[level] != 0.f && sigma[level] != 0.f) { //curve float insigma = 0.666f; //SD float logmax = log(MaxP[level]); //log Max - float rapX = (mean[level] + sigma[level]) / MaxP[level]; //rapport between sD / max + float rapX = (mean[level] + cp.sigmafin * sigma[level]) / MaxP[level]; //rapport between sD / max float inx = log(insigma); float iny = log(rapX); float rap = inx / iny; //koef - float asig = 0.166f / sigma[level]; + float asig = 0.166f / (sigma[level] * cp.sigmafin); float bsig = 0.5f - asig * mean[level]; float amean = 0.5f / mean[level]; @@ -2970,7 +2972,7 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, for (int i = 0; i < W_L * H_L; i++) { float absciss; - if (std::fabs(WavCoeffs_L[dir][i]) >= (mean[level] + sigma[level])) { //for max + if (std::fabs(WavCoeffs_L[dir][i]) >= (mean[level] + cp.sigmafin * sigma[level])) { //for max float valcour = xlogf(std::fabs(WavCoeffs_L[dir][i])); float valc = valcour - logmax; float vald = valc * rap; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index b02f1970c..0d8324d4e 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2263,6 +2263,7 @@ WaveletParams::WaveletParams() : tmr(false), strength(100), balance(0), + sigmafin(1.0), iter(0), expcontrast(false), expchroma(false), @@ -2377,6 +2378,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && tmr == other.tmr && strength == other.strength && balance == other.balance + && sigmafin == other.sigmafin && iter == other.iter && expcontrast == other.expcontrast && expchroma == other.expchroma @@ -3514,6 +3516,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.enabled, "Wavelet", "Enabled", wavelet.enabled, keyFile); saveToKeyfile(!pedited || pedited->wavelet.strength, "Wavelet", "Strength", wavelet.strength, keyFile); saveToKeyfile(!pedited || pedited->wavelet.balance, "Wavelet", "Balance", wavelet.balance, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.sigmafin, "Wavelet", "Sigmafin", wavelet.sigmafin, keyFile); saveToKeyfile(!pedited || pedited->wavelet.iter, "Wavelet", "Iter", wavelet.iter, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thres, "Wavelet", "MaxLev", wavelet.thres, keyFile); saveToKeyfile(!pedited || pedited->wavelet.Tilesmethod, "Wavelet", "TilesMethod", wavelet.Tilesmethod, keyFile); @@ -4691,6 +4694,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Enabled", pedited, wavelet.enabled, pedited->wavelet.enabled); assignFromKeyfile(keyFile, "Wavelet", "Strength", pedited, wavelet.strength, pedited->wavelet.strength); assignFromKeyfile(keyFile, "Wavelet", "Balance", pedited, wavelet.balance, pedited->wavelet.balance); + assignFromKeyfile(keyFile, "Wavelet", "Sigmafin", pedited, wavelet.sigmafin, pedited->wavelet.sigmafin); assignFromKeyfile(keyFile, "Wavelet", "Iter", pedited, wavelet.iter, pedited->wavelet.iter); assignFromKeyfile(keyFile, "Wavelet", "Median", pedited, wavelet.median, pedited->wavelet.median); assignFromKeyfile(keyFile, "Wavelet", "Medianlev", pedited, wavelet.medianlev, pedited->wavelet.medianlev); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 4e2b0c275..c26b02de4 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1221,6 +1221,7 @@ struct WaveletParams { bool tmr; int strength; int balance; + double sigmafin; int iter; bool expcontrast; bool expchroma; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 0faee0fd3..9eff3c4ce 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -475,6 +475,7 @@ void ParamsEdited::set(bool v) wavelet.strength = v; wavelet.balance = v; wavelet.iter = v; + wavelet.sigmafin = v; wavelet.median = v; wavelet.medianlev = v; wavelet.linkedg = v; @@ -1085,6 +1086,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.strength = wavelet.strength && p.wavelet.strength == other.wavelet.strength; wavelet.balance = wavelet.balance && p.wavelet.balance == other.wavelet.balance; wavelet.iter = wavelet.iter && p.wavelet.iter == other.wavelet.iter; + wavelet.sigmafin = wavelet.sigmafin && p.wavelet.sigmafin == other.wavelet.sigmafin; wavelet.median = wavelet.median && p.wavelet.median == other.wavelet.median; wavelet.medianlev = wavelet.medianlev && p.wavelet.medianlev == other.wavelet.medianlev; wavelet.linkedg = wavelet.linkedg && p.wavelet.linkedg == other.wavelet.linkedg; @@ -2893,6 +2895,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.balance = mods.wavelet.balance; } + if (wavelet.sigmafin) { + toEdit.wavelet.sigmafin = mods.wavelet.sigmafin; + } + if (wavelet.iter) { toEdit.wavelet.iter = mods.wavelet.iter; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d1be2c57e..351096a7e 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -499,6 +499,7 @@ struct WaveletParamsEdited { bool strength; bool balance; bool iter; + bool sigmafin; bool median; bool medianlev; bool linkedg; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 17689be50..c12e216cf 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -112,6 +112,7 @@ Wavelet::Wavelet() : strength(Gtk::manage(new Adjuster(M("TP_WAVELET_STRENGTH"), 0, 100, 1, 100))), balance(Gtk::manage(new Adjuster(M("TP_WAVELET_BALANCE"), -30, 100, 1, 0))), iter(Gtk::manage(new Adjuster(M("TP_WAVELET_ITER"), -3, 3, 1, 0))), + sigmafin(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), hueskin(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false))), hueskin2(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false))), hllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false))), @@ -162,6 +163,7 @@ Wavelet::Wavelet() : blurFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_BLURFRAME")))), chromaFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROMAFRAME")))), chroFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROFRAME")))), + fincFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_FINCFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), @@ -207,6 +209,8 @@ Wavelet::Wavelet() : EvWavresblur = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURWAV"); EvWavresblurc = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURCWAV"); EvWavedgeffect = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_EDGEFFECT"); + EvWavsigmafin = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMAFIN"); + expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); expcontrast->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expcontrast)); @@ -978,7 +982,7 @@ Wavelet::Wavelet() : iter->setAdjusterListener(this); iter->set_tooltip_text(M("TP_WAVELET_ITER_TOOLTIP")); - Gtk::HSeparator* const separatorbalend = Gtk::manage(new Gtk::HSeparator()); +// Gtk::HSeparator* const separatorbalend = Gtk::manage(new Gtk::HSeparator()); opacityCurveEditorWL->setCurveListener(this); @@ -986,6 +990,7 @@ Wavelet::Wavelet() : opacityShapeWL->setIdentityValue(0.); opacityShapeWL->setResetCurve(FlatCurveType(default_params.opacityCurveWL.at(0)), default_params.opacityCurveWL); opacityShapeWL->setTooltip(M("TP_WAVELET_OPACITYWL_TOOLTIP")); + sigmafin->setAdjusterListener(this); // This will add the reset button at the end of the curveType buttons opacityCurveEditorWL->curveListComplete(); @@ -1004,6 +1009,13 @@ Wavelet::Wavelet() : tmr->set_tooltip_text(M("TP_WAVELET_BALCHRO_TOOLTIP")); tmrConn = tmr->signal_toggled().connect(sigc::mem_fun(*this, &Wavelet::tmrToggled)); + fincFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const fincBox = Gtk::manage(new ToolParamBlock()); + fincBox->pack_start(*opacityCurveEditorWL, Gtk::PACK_SHRINK, 2); + fincBox->pack_start(*sigmafin); + fincFrame->add(*fincBox); + + ToolParamBlock* const finalBox = Gtk::manage(new ToolParamBlock()); finalBox->pack_start(*ctboxBA); @@ -1014,9 +1026,10 @@ Wavelet::Wavelet() : finalBox->pack_start(*iter); finalBox->pack_start(*tmr); - finalBox->pack_start(*separatorbalend, Gtk::PACK_SHRINK, 2); - finalBox->pack_start(*opacityCurveEditorWL, Gtk::PACK_SHRINK, 2); - +// finalBox->pack_start(*separatorbalend, Gtk::PACK_SHRINK, 2); +// finalBox->pack_start(*opacityCurveEditorWL, Gtk::PACK_SHRINK, 2); +// finalBox->pack_start(*sigmafin); + finalBox->pack_start(*fincFrame); finalBox->pack_start(*curveEditorG, Gtk::PACK_SHRINK, 4); finalBox->pack_start(*softradend); @@ -1420,6 +1433,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) strength->setValue(pp->wavelet.strength); balance->setValue(pp->wavelet.balance); iter->setValue(pp->wavelet.iter); + sigmafin->setValue(pp->wavelet.sigmafin); for (int i = 0; i < 9; i++) { correction[i]->setValue(pp->wavelet.c[i]); @@ -1537,6 +1551,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) thres->setEditedState(pedited->wavelet.thres ? Edited : UnEdited); balance->setEditedState(pedited->wavelet.balance ? Edited : UnEdited); iter->setEditedState(pedited->wavelet.iter ? Edited : UnEdited); + sigmafin->setEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); threshold->setEditedState(pedited->wavelet.threshold ? Edited : UnEdited); threshold2->setEditedState(pedited->wavelet.threshold2 ? Edited : UnEdited); edgedetect->setEditedState(pedited->wavelet.edgedetect ? Edited : UnEdited); @@ -1808,6 +1823,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.iter = (int) iter->getValue(); pp->wavelet.wavclCurve = clshape->getCurve(); + pp->wavelet.sigmafin = sigmafin->getValue(); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); @@ -1914,6 +1930,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.softradend = softradend->getEditedState(); pedited->wavelet.balance = balance->getEditedState(); pedited->wavelet.iter = iter->getEditedState(); + pedited->wavelet.sigmafin = sigmafin->getEditedState(); pedited->wavelet.wavclCurve = !clshape->isUnChanged(); pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); @@ -2094,6 +2111,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit strength->setDefault(defParams->wavelet.strength); balance->setDefault(defParams->wavelet.balance); iter->setDefault(defParams->wavelet.iter); + sigmafin->setDefault(defParams->wavelet.sigmafin); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); lowthr->setDefault(defParams->wavelet.lowthr); @@ -2216,6 +2234,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit strength->setDefaultEditedState(pedited->wavelet.strength ? Edited : UnEdited); balance->setDefaultEditedState(pedited->wavelet.balance ? Edited : UnEdited); iter->setDefaultEditedState(pedited->wavelet.iter ? Edited : UnEdited); + sigmafin->setDefaultEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); level0noise->setDefaultEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setDefaultEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setDefaultEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -2278,6 +2297,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit strength->setDefaultEditedState(Irrelevant); balance->setDefaultEditedState(Irrelevant); iter->setDefaultEditedState(Irrelevant); + sigmafin->setDefaultEditedState(Irrelevant); for (int i = 0; i < 9; i++) { correction[i]->setDefaultEditedState(Irrelevant); @@ -2810,6 +2830,7 @@ void Wavelet::setBatchMode(bool batchMode) strength->showEditedCB(); balance->showEditedCB(); iter->showEditedCB(); + sigmafin->showEditedCB(); level0noise->showEditedCB(); level1noise->showEditedCB(); level2noise->showEditedCB(); @@ -2959,6 +2980,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavbalance, balance->getTextValue()); } else if (a == iter) { listener->panelChanged(EvWaviter, iter->getTextValue()); + } else if (a == sigmafin) { + listener->panelChanged(EvWavsigmafin, sigmafin->getTextValue()); } else if (a == greenhigh) { listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); } else if (a == bluehigh) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index d1b4bb7c3..271aea5b2 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -93,6 +93,7 @@ private: rtengine::ProcEvent EvWavresblur; rtengine::ProcEvent EvWavresblurc; rtengine::ProcEvent EvWavedgeffect; + rtengine::ProcEvent EvWavsigmafin; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -218,6 +219,7 @@ private: Adjuster* const strength; Adjuster* const balance; Adjuster* const iter; + Adjuster* const sigmafin; Adjuster* greenlow; Adjuster* bluelow; @@ -294,6 +296,7 @@ private: Gtk::Frame* const blurFrame; Gtk::Frame* const chromaFrame; Gtk::Frame* const chroFrame; + Gtk::Frame* const fincFrame; Gtk::Label* const wavLabels; Gtk::Label* const labmC; From 9cc744b1f62aec5cc06378b0c4718add6fe9b1a3 Mon Sep 17 00:00:00 2001 From: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com> Date: Mon, 13 Apr 2020 11:40:28 +0200 Subject: [PATCH 423/453] Reset all options in crop. Fixes #5138 and #5045 --- rtgui/crop.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtgui/crop.cc b/rtgui/crop.cc index f092f07a5..48d1e09af 100644 --- a/rtgui/crop.cc +++ b/rtgui/crop.cc @@ -612,6 +612,11 @@ void Crop::doresetCrop () yDirty = true; wDirty = true; hDirty = true; + + // Reset ratio, ratio lock and orientation as well + ratio->set_active(0); + orientation->set_active(2); + fixr->set_active(true); int X = 0; int Y = 0; From 996ba0a9a30869bd25cbc3db32f5bdf2c992b64d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 13 Apr 2020 13:31:06 +0200 Subject: [PATCH 424/453] Partial decoding or wrong dimensions of X-T30 files, fixes #5709, code taken from ART --- rtengine/dcraw.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index b8d5b9895..29796ea67 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -10048,6 +10048,9 @@ canon_a5: } else if (!strncmp(model, "X-A3", 4) || !strncmp(model, "X-A5", 4)) { width = raw_width = 6016; height = raw_height = 4014; + } else if (!strcmp(model, "X-Pro3") || !strcmp(model, "X-T3") || !strcmp(model, "X-T30")) { + width = raw_width = 6384; + height = raw_height = 4182; } top_margin = (raw_height - height) >> 2 << 1; left_margin = (raw_width - width ) >> 2 << 1; From 22eee9787e4ea5c34d19407d66e1ecaf6197bd16 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Mon, 13 Apr 2020 17:20:56 +0200 Subject: [PATCH 425/453] Film negative stable multipliers (#5485) * Added new feature to calculate channel multipliers from crop area. This also saves the crop area channel medians to the processing profiles, in order to get a more consistent color balance when batch-applying the same profile to multiple pictures from the same film roll. * Fixed wrong initialization of array, and missing check for the result of `getFilmNegativeMedians()`. Moved `ImProcCoordinator::translateCoord()` from private member to anonymous namespace. Fixed some whitespace and formatting issues. * Fixed some formatting issues * Passed `ipf` parameter as const in `translateCoord`. Narrowed `using namespace` to single class `Coord2D`. * Added `scaleGain` entry to thumbnail metadata file, to make `scale_mul` multipliers available in thumbnail processing phase. This simplifies multiplier calculations, so that "faking" thumbnail multipliers in the main image processing is not necessary anymore. This way, output values are immune to slight variations of multipliers between successive shots taken with in-camera AWB turned on. Shifted multipliers so that the output channel medians are balanced when "Camera WB" is selected. This way, just computing multipliers from crop and setting "Camera WB" (which is the default) gives a pretty well balanced image as a starting point. * New channel scaling method, based on a film base color sample instead of crop area channel medians. Channels are scaled so that the converted film base values are equal to 1/512th of the output range (65k). This giver better black levels in the output, and more consistency when batch-processing multiple negatives. The output is now compensated for a known fixed WB value, so that the film base will appear grey when WB is set to 3500K, Green=1. Added PPVERSION 347 to preserve backwards compatibility: when a processing profile saved by RT 5.7 is loaded (PPVERSION=346), the new fields are initialized to the special value -1, which will instruct the main processing to follow the old channel scaling behaviour. The old channel scaling multipliers will then be converted to the new film base values so that the resulting image is the same, and the fields will be overwritten as soon as the PP is saved again. This will transparently upgrade the processing profile. When the new behaviour is used, but the film base values are still unset, they are estimated based on channel medians, excluding a 20% border around the image. This should give a better result out-of-the-box for pictures containing a large film holder. * Code cleanup from review * Run astyle on film neg source files * Fixed automated build failure caused by incompatible libraries on my dev PC. * Simplified `Thumbnail::processFilmNegative` method signature. There is no need to pass in `rmi`,`gmi`,`bmi` multipliers from the caller, i can do the same with my own internal multipliers. * Added `FilmNegListener` class to pass estimeted film base values to the GUI after first processing. Removed old `filmBaseValues` instance variable from RawImageSource. * Code cleanup * Forgot to set baseValues flag in `PartialPasteDlg::applyPaste` Fixed `filmBaseValuesLabel` not updating when reading zero baseValues. Normally not needed (the label is updated later by the listener), but when the user is browsing through pictures the listener won't fire, so the label must be updated to show values are unset. * Overwritten channel scaling multipliers by calling `get_colorsCoeff` with `forceAutoWB=false`. Initially, in `RawImageSource::load`, channels are auto-balanced by averaging the whole picture when computing multipliers. This can give different multipliers for multiple shots of the same camera, which will lead to inconsistent conversions when batch-processing multiple negatives. This commit re-sets `scale_mul`, `ref_pre_mul`, etc., in order to "undo" the auto-WB and use the normal camera multipliers. * Found an easier way to get stable overall multipliers, removed the (horrible) on-the-fly mutation of scaling instance variables. --- rtdata/languages/default | 4 + rtengine/filmnegativeproc.cc | 345 +++++++++++++++++++++++++--------- rtengine/filmnegativethumb.cc | 211 ++++++++++++++++----- rtengine/imagesource.h | 3 +- rtengine/improccoordinator.cc | 51 +++-- rtengine/improccoordinator.h | 7 + rtengine/procparams.cc | 33 +++- rtengine/procparams.h | 4 + rtengine/rawimagesource.h | 3 +- rtengine/rtengine.h | 10 + rtengine/rtthumbnail.cc | 10 +- rtengine/rtthumbnail.h | 3 +- rtengine/simpleprocess.cc | 7 +- rtgui/filmnegative.cc | 164 +++++++++++++--- rtgui/filmnegative.h | 16 +- rtgui/paramsedited.cc | 12 +- rtgui/paramsedited.h | 1 + rtgui/partialpastedlg.cc | 1 + rtgui/ppversion.h | 4 +- rtgui/toolpanelcoord.cc | 6 + rtgui/toolpanelcoord.h | 1 + 21 files changed, 705 insertions(+), 191 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 64af97689..f33608903 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -752,6 +752,7 @@ HISTORY_MSG_DEHAZE_STRENGTH;Dehaze - Strength HISTORY_MSG_DUALDEMOSAIC_AUTO_CONTRAST;Dual demosaic - Auto threshold HISTORY_MSG_DUALDEMOSAIC_CONTRAST;Dual demosaic - Contrast threshold HISTORY_MSG_FILMNEGATIVE_ENABLED;Film Negative +HISTORY_MSG_FILMNEGATIVE_FILMBASE;Film base color HISTORY_MSG_FILMNEGATIVE_VALUES;Film negative values HISTORY_MSG_HISTMATCHING;Auto-matched tone curve HISTORY_MSG_ICM_OUTPUT_PRIMARIES;Output - Primaries @@ -1693,6 +1694,9 @@ TP_EXPOSURE_TCMODE_WEIGHTEDSTD;Weighted Standard TP_EXPOS_BLACKPOINT_LABEL;Raw Black Points TP_EXPOS_WHITEPOINT_LABEL;Raw White Points TP_FILMNEGATIVE_BLUE;Blue ratio +TP_FILMNEGATIVE_FILMBASE_PICK;Pick film base color +TP_FILMNEGATIVE_FILMBASE_TOOLTIP;Pick a spot of unexposed film (eg. the border between frames), to get the actual film base color values, and save them in the processing profile.\nThis makes it easy to get a more consistent color balance when batch-processing multiple pictures from the same roll.\nAlso use this when the converted image is extremely dark, bright, or color-unbalanced. +TP_FILMNEGATIVE_FILMBASE_VALUES;Film base RGB: TP_FILMNEGATIVE_GREEN;Reference exponent (contrast) TP_FILMNEGATIVE_GUESS_TOOLTIP;Automatically set the red and blue ratios by picking two patches which had a neutral hue (no color) in the original scene. The patches should differ in brightness. Set the white balance afterwards. TP_FILMNEGATIVE_LABEL;Film Negative diff --git a/rtengine/filmnegativeproc.cc b/rtengine/filmnegativeproc.cc index c7de3c483..6d4fe1ad6 100644 --- a/rtengine/filmnegativeproc.cc +++ b/rtengine/filmnegativeproc.cc @@ -35,6 +35,9 @@ namespace { +using rtengine::ST_BAYER; +using rtengine::ST_FUJI_XTRANS; +using rtengine::settings; bool channelsAvg( const rtengine::RawImage* ri, @@ -43,17 +46,16 @@ bool channelsAvg( const float* cblacksom, rtengine::Coord spotPos, int spotSize, - const rtengine::procparams::FilmNegativeParams& params, std::array& avgs ) { avgs = {}; // Channel averages - if (ri->getSensorType() != rtengine::ST_BAYER && ri->getSensorType() != rtengine::ST_FUJI_XTRANS) { + if (ri->getSensorType() != ST_BAYER && ri->getSensorType() != ST_FUJI_XTRANS) { return false; } - if (rtengine::settings->verbose) { + if (settings->verbose) { printf("Spot coord: x=%d y=%d\n", spotPos.x, spotPos.y); } @@ -69,9 +71,10 @@ bool channelsAvg( } std::array pxCount = {}; // Per-channel sample counts + for (int c = x1; c < x2; ++c) { for (int r = y1; r < y2; ++r) { - const int ch = ri->getSensorType() == rtengine::ST_BAYER ? ri->FC(r,c) : ri->XTRANSFC(r,c); + const int ch = ri->getSensorType() == ST_BAYER ? ri->FC(r, c) : ri->XTRANSFC(r, c); ++pxCount[ch]; @@ -88,6 +91,112 @@ bool channelsAvg( return true; } +void calcMedians( + const rtengine::RawImage* ri, + float** data, + int x1, int y1, int x2, int y2, + std::array& meds +) +{ + + MyTime t1, t2, t3; + t1.set(); + + // Channel vectors to calculate medians + std::array, 3> cvs; + + // Sample one every 5 pixels, and push the value in the appropriate channel vector. + // Choose an odd step, not a multiple of the CFA size, to get a chance to visit each channel. + if (ri->getSensorType() == ST_BAYER) { + for (int row = y1; row < y2; row += 5) { + const int c0 = ri->FC(row, x1 + 0); + const int c1 = ri->FC(row, x1 + 5); + int col = x1; + + for (; col < x2 - 5; col += 10) { + cvs[c0].push_back(data[row][col]); + cvs[c1].push_back(data[row][col + 5]); + } + + if (col < x2) { + cvs[c0].push_back(data[row][col]); + } + } + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { + for (int row = y1; row < y2; row += 5) { + const std::array cs = { + ri->XTRANSFC(row, x1 + 0), + ri->XTRANSFC(row, x1 + 5), + ri->XTRANSFC(row, x1 + 10), + ri->XTRANSFC(row, x1 + 15), + ri->XTRANSFC(row, x1 + 20), + ri->XTRANSFC(row, x1 + 25) + }; + int col = x1; + + for (; col < x2 - 25; col += 30) { + for (int c = 0; c < 6; ++c) { + cvs[cs[c]].push_back(data[row][col + c * 5]); + } + } + + for (int c = 0; col < x2; col += 5, ++c) { + cvs[cs[c]].push_back(data[row][col]); + } + } + } + + t2.set(); + + if (settings->verbose) { + printf("Median vector fill loop time us: %d\n", t2.etime(t1)); + } + + t2.set(); + + for (int c = 0; c < 3; ++c) { + // Find median values for each channel + if (!cvs[c].empty()) { + rtengine::findMinMaxPercentile(cvs[c].data(), cvs[c].size(), 0.5f, meds[c], 0.5f, meds[c], true); + } + } + + t3.set(); + + if (settings->verbose) { + printf("Sample count: R=%zu, G=%zu, B=%zu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); + printf("Median calc time us: %d\n", t3.etime(t2)); + } + +} + +std::array calcWBMults( + const rtengine::ColorTemp& wb, + const rtengine::ImageMatrices& imatrices, + const rtengine::RawImage *ri, + const float ref_pre_mul[4]) +{ + std::array wb_mul; + double r, g, b; + wb.getMultipliers(r, g, b); + wb_mul[0] = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; + wb_mul[1] = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; + wb_mul[2] = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; + + for (int c = 0; c < 3; ++c) { + wb_mul[c] = ri->get_pre_mul(c) / wb_mul[c] / ref_pre_mul[c]; + } + + // Normalize max channel gain to 1.0 + float mg = rtengine::max(wb_mul[0], wb_mul[1], wb_mul[2]); + + for (int c = 0; c < 3; ++c) { + wb_mul[c] /= mg; + } + + return wb_mul; +} + } bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D spotB, int tran, const procparams::FilmNegativeParams ¤tParams, std::array& newExps) @@ -104,21 +213,29 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s std::array clearVals; std::array denseVals; + // Get channel averages in the two spots, sampling from the original ri->data buffer. + // NOTE: rawData values might be affected by CA corection, FlatField, etc, so: + // rawData[y][x] == (ri->data[y][x] - cblacksom[c]) * scale_mul[c] + // is not always true. To calculate exponents on the exact values, we should keep + // a copy of the rawData buffer after preprocessing. Worth the memory waste? + // Sample first spot transformPosition(spotA.x, spotA.y, tran, spot.x, spot.y); - if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, currentParams, clearVals)) { + + if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, clearVals)) { return false; } // Sample second spot transformPosition(spotB.x, spotB.y, tran, spot.x, spot.y); - if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, currentParams, denseVals)) { + + if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, denseVals)) { return false; } // Detect which one is the dense spot, based on green channel if (clearVals[1] < denseVals[1]) { - std::swap(clearVals, denseVals); + std::swap(clearVals, denseVals); } if (settings->verbose) { @@ -152,7 +269,32 @@ bool rtengine::RawImageSource::getFilmNegativeExponents(Coord2D spotA, Coord2D s return true; } -void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams ¶ms) +bool rtengine::RawImageSource::getRawSpotValues(Coord2D spotCoord, int spotSize, int tran, const procparams::FilmNegativeParams ¶ms, std::array& rawValues) +{ + Coord spot; + transformPosition(spotCoord.x, spotCoord.y, tran, spot.x, spot.y); + + if (settings->verbose) { + printf("Transformed coords: %d,%d\n", spot.x, spot.y); + } + + if (spotSize < 4) { + return false; + } + + // Calculate averages of raw unscaled channels + if (!channelsAvg(ri, W, H, cblacksom, spot, spotSize, rawValues)) { + return false; + } + + if (settings->verbose) { + printf("Raw spot values: R=%g, G=%g, B=%g\n", rawValues[0], rawValues[1], rawValues[2]); + } + + return true; +} + +void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativeParams ¶ms, std::array& filmBaseValues) { // BENCHFUNMICRO @@ -168,92 +310,114 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ static_cast(-params.blueRatio * params.greenExp) }; - MyTime t1, t2, t3,t4, t5; - - t1.set(); - - // Channel vectors to calculate medians - std::array, 3> cvs; - - // Sample one every 5 pixels, and push the value in the appropriate channel vector. - // Choose an odd step, not a multiple of the CFA size, to get a chance to visit each channel. - if (ri->getSensorType() == ST_BAYER) { - for (int row = 0; row < H; row += 5) { - const int c0 = ri->FC(row, 0); - const int c1 = ri->FC(row, 5); - int col = 0; - for (; col < W - 5; col += 10) { - cvs[c0].push_back(rawData[row][col]); - cvs[c1].push_back(rawData[row][col + 5]); - } - if (col < W) { - cvs[c0].push_back(rawData[row][col]); - } - } - } - else if (ri->getSensorType() == ST_FUJI_XTRANS) { - for (int row = 0; row < H; row += 5) { - const std::array cs = { - ri->XTRANSFC(row, 0), - ri->XTRANSFC(row, 5), - ri->XTRANSFC(row, 10), - ri->XTRANSFC(row, 15), - ri->XTRANSFC(row, 20), - ri->XTRANSFC(row, 25) - }; - int col = 0; - for (; col < W - 25; col += 30) { - for (int c = 0; c < 6; ++c) { - cvs[cs[c]].push_back(rawData[row][col + c * 5]); - } - } - for (int c = 0; col < W; col += 5, ++c) { - cvs[cs[c]].push_back(rawData[row][col]); - } - } - } - constexpr float MAX_OUT_VALUE = 65000.f; - t2.set(); + // Get multipliers for a known, fixed WB setting, that will be the starting point + // for balancing the converted image. + const std::array wb_mul = calcWBMults( + ColorTemp(3500., 1., 1., "Custom"), imatrices, ri, ref_pre_mul); - if (settings->verbose) { - printf("Median vector fill loop time us: %d\n", t2.etime(t1)); + + if (rtengine::settings->verbose) { + printf("Fixed WB mults: %g %g %g\n", wb_mul[0], wb_mul[1], wb_mul[2]); } - t2.set(); + // Compensation factor to restore the non-autoWB initialGain (see RawImageSource::load) + const float autoGainComp = camInitialGain / initialGain; - std::array medians; // Channel median values - std::array mults = { - 1.f, - 1.f, - 1.f - }; // Channel normalization multipliers + std::array mults; // Channel normalization multipliers + + // If film base values are set in params, use those + if (filmBaseValues[0] <= 0.f) { + // ...otherwise, the film negative tool might have just been enabled on this image, + // whithout any previous setting. So, estimate film base values from channel medians + + std::array medians; + + // Special value for backwards compatibility with profiles saved by RT 5.7 + const bool oldChannelScaling = filmBaseValues[0] == -1.f; + + // If using the old channel scaling method, get medians from the whole current image, + // reading values from the already-scaled rawData buffer. + if (oldChannelScaling) { + calcMedians(ri, rawData, 0, 0, W, H, medians); + } else { + // Cut 20% border from medians calculation. It will probably contain outlier values + // from the film holder, which will bias the median result. + const int bW = W * 20 / 100; + const int bH = H * 20 / 100; + calcMedians(ri, rawData, bW, bH, W - bW, H - bH, medians); + } + + // Un-scale rawData medians + for (int c = 0; c < 3; ++c) { + medians[c] /= scale_mul[c]; + } + + if (settings->verbose) { + printf("Channel medians: R=%g, G=%g, B=%g\n", medians[0], medians[1], medians[2]); + } + + for (int c = 0; c < 3; ++c) { + + // Estimate film base values, so that in the output data, each channel + // median will correspond to 1/24th of MAX. + filmBaseValues[c] = pow_F(24.f / 512.f, 1.f / exps[c]) * medians[c]; + + if (oldChannelScaling) { + // If using the old channel scaling method, apply WB multipliers here to undo their + // effect later, since fixed wb compensation was not used in previous version. + // Also, undo the effect of the autoGainComp factor (see below). + filmBaseValues[c] /= pow_F((wb_mul[c] / autoGainComp), 1.f / exps[c]);// / autoGainComp; + } - for (int c = 0; c < 3; ++c) { - // Find median values for each channel - if (!cvs[c].empty()) { - findMinMaxPercentile(cvs[c].data(), cvs[c].size(), 0.5f, medians[c], 0.5f, medians[c], true); - medians[c] = pow_F(rtengine::max(medians[c], 1.f), exps[c]); - // Determine the channel multiplier so that N times the median becomes 65k. This clips away - // the values in the dark border surrounding the negative (due to the film holder, for example), - // the reciprocal of which have blown up to stellar values. - mults[c] = MAX_OUT_VALUE / (medians[c] * 24.f); } } - t3.set(); + + // Calculate multipliers based on previously obtained film base input values. + + // Apply current scaling coefficients to raw, unscaled base values. + std::array fb = { + filmBaseValues[0] * scale_mul[0], + filmBaseValues[1] * scale_mul[1], + filmBaseValues[2] * scale_mul[2] + }; if (settings->verbose) { - printf("Sample count: %zu, %zu, %zu\n", cvs[0].size(), cvs[1].size(), cvs[2].size()); - printf("Medians: %g %g %g\n", static_cast(medians[0]), static_cast(medians[1]), static_cast(medians[2])); - printf("Computed multipliers: %g %g %g\n", static_cast(mults[0]), static_cast(mults[1]), static_cast(mults[2])); - printf("Median calc time us: %d\n", t3.etime(t2)); + printf("Input film base values: %g %g %g\n", fb[0], fb[1], fb[2]); } + for (int c = 0; c < 3; ++c) { + // Apply channel exponents, to obtain the corresponding base values in the output data + fb[c] = pow_F(rtengine::max(fb[c], 1.f), exps[c]); + + // Determine the channel multiplier so that the film base value is 1/512th of max. + mults[c] = (MAX_OUT_VALUE / 512.f) / fb[c]; + + // Un-apply the fixed WB multipliers, to reverse their effect later in the WB tool. + // This way, the output image will be adapted to this fixed WB setting + mults[c] /= wb_mul[c]; + + // Also compensate for the initialGain difference between the default scaling (forceAutoWB=true) + // and the non-autoWB scaling (see camInitialGain). + // This effectively restores camera scaling multipliers, and gives us stable multipliers + // (not depending on image content). + mults[c] *= autoGainComp; + + } + + if (settings->verbose) { + printf("Output film base values: %g %g %g\n", static_cast(fb[0]), static_cast(fb[1]), static_cast(fb[2])); + printf("Computed multipliers: %g %g %g\n", static_cast(mults[0]), static_cast(mults[1]), static_cast(mults[2])); + } + + constexpr float CLIP_VAL = 65535.f; - t3.set(); + MyTime t1, t2, t3; + + t1.set(); if (ri->getSensorType() == ST_BAYER) { #ifdef __SSE2__ @@ -264,6 +428,7 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) #endif + for (int row = 0; row < H; ++row) { int col = 0; // Avoid trouble with zeroes, minimum pixel value is 1. @@ -274,14 +439,18 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ #ifdef __SSE2__ const vfloat expsv = _mm_setr_ps(exps0, exps1, exps0, exps1); const vfloat multsv = _mm_setr_ps(mult0, mult1, mult0, mult1); + for (; col < W - 3; col += 4) { STVFU(rawData[row][col], vminf(multsv * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv), clipv)); } + #endif // __SSE2__ + for (; col < W - 1; col += 2) { rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), CLIP_VAL); rawData[row][col + 1] = rtengine::min(mult1 * pow_F(rtengine::max(rawData[row][col + 1], 1.f), exps1), CLIP_VAL); } + if (col < W) { rawData[row][col] = rtengine::min(mult0 * pow_F(rtengine::max(rawData[row][col], 1.f), exps0), CLIP_VAL); } @@ -295,6 +464,7 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ #ifdef _OPENMP #pragma omp parallel for schedule(dynamic, 16) #endif + for (int row = 0; row < H; row ++) { int col = 0; // Avoid trouble with zeroes, minimum pixel value is 1. @@ -321,30 +491,34 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ const vfloat multsv0 = _mm_setr_ps(multsc[0], multsc[1], multsc[2], multsc[3]); const vfloat multsv1 = _mm_setr_ps(multsc[4], multsc[5], multsc[0], multsc[1]); const vfloat multsv2 = _mm_setr_ps(multsc[2], multsc[3], multsc[4], multsc[5]); + for (; col < W - 11; col += 12) { STVFU(rawData[row][col], vminf(multsv0 * pow_F(vmaxf(LVFU(rawData[row][col]), onev), expsv0), clipv)); STVFU(rawData[row][col + 4], vminf(multsv1 * pow_F(vmaxf(LVFU(rawData[row][col + 4]), onev), expsv1), clipv)); STVFU(rawData[row][col + 8], vminf(multsv2 * pow_F(vmaxf(LVFU(rawData[row][col + 8]), onev), expsv2), clipv)); } + #endif // __SSE2__ + for (; col < W - 5; col += 6) { for (int c = 0; c < 6; ++c) { rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), CLIP_VAL); } } + for (int c = 0; col < W; col++, c++) { rawData[row][col + c] = rtengine::min(multsc[c] * pow_F(rtengine::max(rawData[row][col + c], 1.f), expsc[c]), CLIP_VAL); } } } - t4.set(); + t2.set(); if (settings->verbose) { - printf("Pow loop time us: %d\n", t4.etime(t3)); + printf("Pow loop time us: %d\n", t2.etime(t1)); } - t4.set(); + t2.set(); PixelsMap bitmapBads(W, H); @@ -354,6 +528,7 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ #ifdef _OPENMP #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) #endif + for (int i = 0; i < H; ++i) { for (int j = 0; j < W; ++j) { if (rawData[i][j] >= MAX_OUT_VALUE) { @@ -367,11 +542,11 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ interpolateBadPixelsBayer(bitmapBads, rawData); } - } - else if (ri->getSensorType() == ST_FUJI_XTRANS) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { #ifdef _OPENMP #pragma omp parallel for reduction(+:totBP) schedule(dynamic,16) #endif + for (int i = 0; i < H; ++i) { for (int j = 0; j < W; ++j) { if (rawData[i][j] >= MAX_OUT_VALUE) { @@ -386,10 +561,10 @@ void rtengine::RawImageSource::filmNegativeProcess(const procparams::FilmNegativ } } - t5.set(); + t3.set(); if (settings->verbose) { printf("Bad pixels count: %d\n", totBP); - printf("Bad pixels interpolation time us: %d\n", t5.etime(t4)); + printf("Bad pixels interpolation time us: %d\n", t3.etime(t2)); } } diff --git a/rtengine/filmnegativethumb.cc b/rtengine/filmnegativethumb.cc index 003fab8e0..57f2601f9 100644 --- a/rtengine/filmnegativethumb.cc +++ b/rtengine/filmnegativethumb.cc @@ -18,6 +18,7 @@ */ #include +#include "colortemp.h" #include "LUT.h" #include "rtengine.h" #include "rtthumbnail.h" @@ -29,70 +30,179 @@ #define BENCHMARK #include "StopWatch.h" +namespace +{ + +using rtengine::Imagefloat; +using rtengine::findMinMaxPercentile; + + +void calcMedians( + const Imagefloat* baseImg, + const int x1, const int y1, + const int x2, const int y2, + float &rmed, float &gmed, float &bmed +) +{ + // Channel vectors to calculate medians + std::vector rv, gv, bv; + + const int sz = std::max(0, (y2 - y1) * (x2 - x1)); + rv.reserve(sz); + gv.reserve(sz); + bv.reserve(sz); + + for (int i = y1; i < y2; i++) { + for (int j = x1; j < x2; j++) { + rv.push_back(baseImg->r(i, j)); + gv.push_back(baseImg->g(i, j)); + bv.push_back(baseImg->b(i, j)); + } + } + + // Calculate channel medians from whole image + findMinMaxPercentile(rv.data(), rv.size(), 0.5f, rmed, 0.5f, rmed, true); + findMinMaxPercentile(gv.data(), gv.size(), 0.5f, gmed, 0.5f, gmed, true); + findMinMaxPercentile(bv.data(), bv.size(), 0.5f, bmed, 0.5f, bmed, true); +} + +} + void rtengine::Thumbnail::processFilmNegative( const procparams::ProcParams ¶ms, const Imagefloat* baseImg, - const int rwidth, const int rheight, - float &rmi, float &gmi, float &bmi -) { + const int rwidth, const int rheight +) +{ // Channel exponents const float rexp = -params.filmNegative.redRatio * params.filmNegative.greenExp; const float gexp = -params.filmNegative.greenExp; const float bexp = -params.filmNegative.blueRatio * params.filmNegative.greenExp; - // Need to calculate channel averages, to fake the same conditions - // found in rawimagesource, where get_ColorsCoeff is called with - // forceAutoWB=true. - float rsum = 0.f, gsum = 0.f, bsum = 0.f; - - // Channel vectors to calculate medians - std::vector rv, gv, bv; - - for (int i = 0; i < rheight; i++) { - for (int j = 0; j < rwidth; j++) { - const float r = baseImg->r(i, j); - const float g = baseImg->g(i, j); - const float b = baseImg->b(i, j); - - rsum += r; - gsum += g; - bsum += b; - - rv.push_back(r); - gv.push_back(g); - bv.push_back(b); - } - } - - const float ravg = rsum / (rheight*rwidth); - const float gavg = gsum / (rheight*rwidth); - const float bavg = bsum / (rheight*rwidth); - - // Shifting current WB multipliers, based on channel averages. - rmi /= (gavg/ravg); - // gmi /= (gAvg/gAvg); green chosen as reference channel - bmi /= (gavg/bavg); - - float rmed, gmed, bmed; - findMinMaxPercentile(rv.data(), rv.size(), 0.5f, rmed, 0.5f, rmed, true); - findMinMaxPercentile(gv.data(), gv.size(), 0.5f, gmed, 0.5f, gmed, true); - findMinMaxPercentile(bv.data(), bv.size(), 0.5f, bmed, 0.5f, bmed, true); - - rmed = powf(rmed, rexp); - gmed = powf(gmed, gexp); - bmed = powf(bmed, bexp); + // Calculate output multipliers + float rmult, gmult, bmult; const float MAX_OUT_VALUE = 65000.f; - const float rmult = (MAX_OUT_VALUE / (rmed * 24)) ; - const float gmult = (MAX_OUT_VALUE / (gmed * 24)) ; - const float bmult = (MAX_OUT_VALUE / (bmed * 24)) ; + + // For backwards compatibility with profiles saved by RT 5.7 + const bool oldChannelScaling = params.filmNegative.redBase == -1.f; + + // If the film base values are not set in params, estimate multipliers from each channel's median value. + if (params.filmNegative.redBase <= 0.f) { + + // Channel medians + float rmed, gmed, bmed; + + if (oldChannelScaling) { + // If using the old method, calculate nedians on the whole image + calcMedians(baseImg, 0, 0, rwidth, rheight, rmed, gmed, bmed); + } else { + // The new method cuts out a 20% border from medians calculation. + const int bW = rwidth * 20 / 100; + const int bH = rheight * 20 / 100; + calcMedians(baseImg, bW, bH, rwidth - bW, rheight - bH, rmed, gmed, bmed); + } + + if (settings->verbose) { + printf("Thumbnail input channel medians: %g %g %g\n", rmed, gmed, bmed); + } + + // Calculate output medians + rmed = powf(rmed, rexp); + gmed = powf(gmed, gexp); + bmed = powf(bmed, bexp); + + // Calculate output multipliers so that the median value is 1/24 of the output range. + rmult = (MAX_OUT_VALUE / 24.f) / rmed; + gmult = (MAX_OUT_VALUE / 24.f) / gmed; + bmult = (MAX_OUT_VALUE / 24.f) / bmed; + + } else { + + // Read film-base values from params + float rbase = params.filmNegative.redBase; + float gbase = params.filmNegative.greenBase; + float bbase = params.filmNegative.blueBase; + + // Reconstruct scale_mul coefficients from thumbnail metadata: + // redMultiplier / camwbRed is pre_mul[0] + // pre_mul[0] * scaleGain is scale_mul[0] + // Apply channel scaling to raw (unscaled) input base values, to + // match with actual (scaled) data in baseImg + rbase *= (redMultiplier / camwbRed) * scaleGain; + gbase *= (greenMultiplier / camwbGreen) * scaleGain; + bbase *= (blueMultiplier / camwbBlue) * scaleGain; + + if (settings->verbose) { + printf("Thumbnail input film base values: %g %g %g\n", rbase, gbase, bbase); + } + + // Apply exponents to get output film base values + rbase = powf(rbase, rexp); + gbase = powf(gbase, gexp); + bbase = powf(bbase, bexp); + + if (settings->verbose) { + printf("Thumbnail output film base values: %g %g %g\n", rbase, gbase, bbase); + } + + // Calculate multipliers so that film base value is 1/512th of the output range. + rmult = (MAX_OUT_VALUE / 512.f) / rbase; + gmult = (MAX_OUT_VALUE / 512.f) / gbase; + bmult = (MAX_OUT_VALUE / 512.f) / bbase; + + } + + + if (oldChannelScaling) { + // Need to calculate channel averages, to fake the same conditions + // found in rawimagesource, where get_ColorsCoeff is called with + // forceAutoWB=true. + float rsum = 0.f, gsum = 0.f, bsum = 0.f; + + for (int i = 0; i < rheight; i++) { + for (int j = 0; j < rwidth; j++) { + rsum += baseImg->r(i, j); + gsum += baseImg->g(i, j); + bsum += baseImg->b(i, j); + } + } + + const float ravg = rsum / (rheight * rwidth); + const float gavg = gsum / (rheight * rwidth); + const float bavg = bsum / (rheight * rwidth); + + // Shifting current WB multipliers, based on channel averages. + rmult /= gavg / ravg; + // gmult /= gAvg / gAvg; green chosen as reference channel + bmult /= gavg / bavg; + + } else { + + // Get and un-apply multipliers to adapt the thumbnail to a known fixed WB setting, + // as in the main image processing. + + double r, g, b; + ColorTemp(3500., 1., 1., "Custom").getMultipliers(r, g, b); + //iColorMatrix is cam_rgb + const double rm = camwbRed / (iColorMatrix[0][0] * r + iColorMatrix[0][1] * g + iColorMatrix[0][2] * b); + const double gm = camwbGreen / (iColorMatrix[1][0] * r + iColorMatrix[1][1] * g + iColorMatrix[1][2] * b); + const double bm = camwbBlue / (iColorMatrix[2][0] * r + iColorMatrix[2][1] * g + iColorMatrix[2][2] * b); + + // Normalize max WB multiplier to 1.f + const double m = max(rm, gm, bm); + rmult /= rm / m; + gmult /= gm / m; + bmult /= bm / m; + } + if (settings->verbose) { - printf("Thumbnail channel medians: %g %g %g\n", static_cast(rmed), static_cast(gmed), static_cast(bmed)); printf("Thumbnail computed multipliers: %g %g %g\n", static_cast(rmult), static_cast(gmult), static_cast(bmult)); } + #ifdef __SSE2__ const vfloat clipv = F2V(MAXVALF); const vfloat rexpv = F2V(rexp); @@ -109,12 +219,15 @@ void rtengine::Thumbnail::processFilmNegative( float *bline = baseImg->b(i); int j = 0; #ifdef __SSE2__ - for (; j < rwidth - 3; j +=4) { + + for (; j < rwidth - 3; j += 4) { STVFU(rline[j], vminf(rmultv * pow_F(LVFU(rline[j]), rexpv), clipv)); STVFU(gline[j], vminf(gmultv * pow_F(LVFU(gline[j]), gexpv), clipv)); STVFU(bline[j], vminf(bmultv * pow_F(LVFU(bline[j]), bexpv), clipv)); } + #endif + for (; j < rwidth; ++j) { rline[j] = CLIP(rmult * pow_F(rline[j], rexp)); gline[j] = CLIP(gmult * pow_F(gline[j], gexp)); diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index d1008837d..ea049d37c 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -92,8 +92,9 @@ public: ~ImageSource () override {} virtual int load (const Glib::ustring &fname) = 0; virtual void preprocess (const procparams::RAWParams &raw, const procparams::LensProfParams &lensProf, const procparams::CoarseTransformParams& coarse, bool prepareDenoise = true) {}; - virtual void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms) {}; + virtual void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms, std::array& filmBaseValues) {}; virtual bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const procparams::FilmNegativeParams& currentParams, std::array& newExps) { return false; }; + virtual bool getRawSpotValues (Coord2D spot, int spotSize, int tran, const procparams::FilmNegativeParams ¶ms, std::array& rawValues) { return false; }; virtual void demosaic (const procparams::RAWParams &raw, bool autoContrast, double &contrastThreshold, bool cache = false) {}; virtual void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {}; virtual void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {}; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 6374cb837..f68616b96 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -44,6 +44,22 @@ #include #endif +namespace +{ +using rtengine::Coord2D; +Coord2D translateCoord(const rtengine::ImProcFunctions& ipf, int fw, int fh, int x, int y) { + + const std::vector points = {Coord2D(x, y)}; + + std::vector red; + std::vector green; + std::vector blue; + ipf.transCoord(fw, fh, points, red, green, blue); + + return green[0]; +} + +} namespace rtengine { @@ -300,7 +316,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ) && params->filmNegative.enabled ) { - imgsrc->filmNegativeProcess(params->filmNegative); + std::array filmBaseValues = { + static_cast(params->filmNegative.redBase), + static_cast(params->filmNegative.greenBase), + static_cast(params->filmNegative.blueBase) + }; + imgsrc->filmNegativeProcess(params->filmNegative, filmBaseValues); + if (filmNegListener && params->filmNegative.redBase <= 0.f) { + filmNegListener->filmBaseValuesChanged(filmBaseValues); + } } } @@ -1481,27 +1505,22 @@ bool ImProcCoordinator::getFilmNegativeExponents(int xA, int yA, int xB, int yB, { MyMutex::MyLock lock(mProcessing); - const auto xlate = - [this](int x, int y) -> Coord2D - { - const std::vector points = {Coord2D(x, y)}; - - std::vector red; - std::vector green; - std::vector blue; - ipf.transCoord(fw, fh, points, red, green, blue); - - return green[0]; - }; - const int tr = getCoarseBitMask(params->coarse); - const Coord2D p1 = xlate(xA, yA); - const Coord2D p2 = xlate(xB, yB); + const Coord2D p1 = translateCoord(ipf, fw, fh, xA, yA); + const Coord2D p2 = translateCoord(ipf, fw, fh, xB, yB); return imgsrc->getFilmNegativeExponents(p1, p2, tr, params->filmNegative, newExps); } +bool ImProcCoordinator::getRawSpotValues(int x, int y, int spotSize, std::array& rawValues) +{ + MyMutex::MyLock lock(mProcessing); + + return imgsrc->getRawSpotValues(translateCoord(ipf, fw, fh, x, y), spotSize, + getCoarseBitMask(params->coarse), params->filmNegative, rawValues); +} + void ImProcCoordinator::getAutoCrop(double ratio, int &x, int &y, int &w, int &h) { diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index d7d6052e9..e17d88183 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -175,6 +175,7 @@ protected: AutoRadiusListener *pdSharpenAutoRadiusListener; FrameCountListener *frameCountListener; ImageTypeListener *imageTypeListener; + FilmNegListener *filmNegListener; AutoColorTonListener* actListener; AutoChromaListener* adnListener; @@ -281,6 +282,7 @@ public: void getCamWB (double& temp, double& green) override; void getSpotWB (int x, int y, int rectSize, double& temp, double& green) override; bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, std::array& newExps) override; + bool getRawSpotValues(int x, int y, int spotSize, std::array& rawValues) override; void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) override; bool getHighQualComputed() override; void setHighQualComputed() override; @@ -389,6 +391,11 @@ public: imageTypeListener = itl; } + void setFilmNegListener (FilmNegListener* fnl) override + { + filmNegListener = fnl; + } + void saveInputICCReference (const Glib::ustring& fname, bool apply_wb) override; InitialImage* getInitialImage () override diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index b02f1970c..a198a6813 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2890,7 +2890,10 @@ FilmNegativeParams::FilmNegativeParams() : enabled(false), redRatio(1.36), greenExp(1.5), - blueRatio(0.86) + blueRatio(0.86), + redBase(0), + greenBase(0), + blueBase(0) { } @@ -2898,9 +2901,12 @@ bool FilmNegativeParams::operator ==(const FilmNegativeParams& other) const { return enabled == other.enabled - && redRatio == other.redRatio + && redRatio == other.redRatio && greenExp == other.greenExp - && blueRatio == other.blueRatio; + && blueRatio == other.blueRatio + && redBase == other.redBase + && greenBase == other.greenBase + && blueBase == other.blueBase; } bool FilmNegativeParams::operator !=(const FilmNegativeParams& other) const @@ -3789,6 +3795,9 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->filmNegative.redRatio, "Film Negative", "RedRatio", filmNegative.redRatio, keyFile); saveToKeyfile(!pedited || pedited->filmNegative.greenExp, "Film Negative", "GreenExponent", filmNegative.greenExp, keyFile); saveToKeyfile(!pedited || pedited->filmNegative.blueRatio, "Film Negative", "BlueRatio", filmNegative.blueRatio, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.baseValues, "Film Negative", "RedBase", filmNegative.redBase, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.baseValues, "Film Negative", "GreenBase", filmNegative.greenBase, keyFile); + saveToKeyfile(!pedited || pedited->filmNegative.baseValues, "Film Negative", "BlueBase", filmNegative.blueBase, keyFile); // EXIF change list if (!pedited || pedited->exif) { @@ -5386,6 +5395,24 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Film Negative", "RedRatio", pedited, filmNegative.redRatio, pedited->filmNegative.redRatio); assignFromKeyfile(keyFile, "Film Negative", "GreenExponent", pedited, filmNegative.greenExp, pedited->filmNegative.greenExp); assignFromKeyfile(keyFile, "Film Negative", "BlueRatio", pedited, filmNegative.blueRatio, pedited->filmNegative.blueRatio); + if (ppVersion >= 347) { + bool r, g, b; + assignFromKeyfile(keyFile, "Film Negative", "RedBase", pedited, filmNegative.redBase, r); + assignFromKeyfile(keyFile, "Film Negative", "GreenBase", pedited, filmNegative.greenBase, g); + assignFromKeyfile(keyFile, "Film Negative", "BlueBase", pedited, filmNegative.blueBase, b); + if (pedited) { + pedited->filmNegative.baseValues = r || g || b; + } + } else { + // Backwards compatibility with film negative in RT 5.7: use special film base value -1, + // to signal that the old channel scaling method should be used. + filmNegative.redBase = -1.f; + filmNegative.greenBase = -1.f; + filmNegative.blueBase = -1.f; + if (pedited) { + pedited->filmNegative.baseValues = true; + } + } } if (keyFile.has_group("MetaData")) { diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 4e2b0c275..f9710b01d 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1559,6 +1559,10 @@ struct FilmNegativeParams { double greenExp; double blueRatio; + double redBase; + double greenBase; + double blueBase; + FilmNegativeParams(); bool operator ==(const FilmNegativeParams& other) const; diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 71478fbed..770c18ae3 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -124,8 +124,9 @@ public: int load(const Glib::ustring &fname) override { return load(fname, false); } int load(const Glib::ustring &fname, bool firstFrameOnly); void preprocess (const procparams::RAWParams &raw, const procparams::LensProfParams &lensProf, const procparams::CoarseTransformParams& coarse, bool prepareDenoise = true) override; - void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms) override; + void filmNegativeProcess (const procparams::FilmNegativeParams ¶ms, std::array& filmBaseValues) override; bool getFilmNegativeExponents (Coord2D spotA, Coord2D spotB, int tran, const procparams::FilmNegativeParams ¤tParams, std::array& newExps) override; + bool getRawSpotValues(Coord2D spot, int spotSize, int tran, const procparams::FilmNegativeParams ¶ms, std::array& rawValues) override; void demosaic (const procparams::RAWParams &raw, bool autoContrast, double &contrastThreshold, bool cache = false) override; void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) override; void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) override; diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index e6074d50b..028cedec9 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -439,6 +439,13 @@ public: }; +class FilmNegListener +{ +public: + virtual ~FilmNegListener() = default; + virtual void filmBaseValuesChanged(std::array rgb) = 0; +}; + /** This class represents a detailed part of the image (looking through a kind of window). * It can be created and destroyed with the appropriate members of StagedImageProcessor. * Several crops can be assigned to the same image. */ @@ -524,6 +531,8 @@ public: virtual void getCamWB (double& temp, double& green) = 0; virtual void getSpotWB (int x, int y, int rectSize, double& temp, double& green) = 0; virtual bool getFilmNegativeExponents(int xA, int yA, int xB, int yB, std::array& newExps) = 0; + virtual bool getRawSpotValues (int x, int y, int spotSize, std::array& rawValues) = 0; + virtual void getAutoCrop (double ratio, int &x, int &y, int &w, int &h) = 0; virtual void saveInputICCReference (const Glib::ustring& fname, bool apply_wb) = 0; @@ -548,6 +557,7 @@ public: virtual void setRetinexListener (RetinexListener* l) = 0; virtual void setWaveletListener (WaveletListener* l) = 0; virtual void setImageTypeListener (ImageTypeListener* l) = 0; + virtual void setFilmNegListener (FilmNegListener* l) = 0; virtual void setMonitorProfile (const Glib::ustring& monitorProfile, RenderingIntent intent) = 0; virtual void getMonitorProfile (Glib::ustring& monitorProfile, RenderingIntent& intent) const = 0; diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index a063d965b..e8126be36 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -594,6 +594,8 @@ Thumbnail* Thumbnail::loadFromRaw (const Glib::ustring& fname, RawMetaDataLocati tpp->defGain = max (scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min (scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); tpp->defGain *= std::pow(2, ri->getBaselineExposure()); + tpp->scaleGain = scale_mul[0] / pre_mul[0]; // used to reconstruct scale_mul from filmnegativethumb.cc + tpp->gammaCorrected = true; unsigned filter = ri->get_filters(); @@ -1042,6 +1044,7 @@ Thumbnail::Thumbnail () : scaleForSave (8192), gammaCorrected (false), colorMatrix{}, + scaleGain (1.0), isRaw (true) { } @@ -1179,7 +1182,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT Imagefloat* baseImg = resizeTo (rwidth, rheight, interp, thumbImg); if (isRaw && params.filmNegative.enabled) { - processFilmNegative(params, baseImg, rwidth, rheight, rmi, gmi, bmi); + processFilmNegative(params, baseImg, rwidth, rheight); } if (params.coarse.rotate) { @@ -2122,6 +2125,10 @@ bool Thumbnail::readData (const Glib::ustring& fname) colorMatrix[i][j] = cm[ix++]; } } + + if (keyFile.has_key ("LiveThumbData", "ScaleGain")) { + scaleGain = keyFile.get_double ("LiveThumbData", "ScaleGain"); + } } return true; @@ -2173,6 +2180,7 @@ bool Thumbnail::writeData (const Glib::ustring& fname) keyFile.set_boolean ("LiveThumbData", "GammaCorrected", gammaCorrected); Glib::ArrayHandle cm ((double*)colorMatrix, 9, Glib::OWNERSHIP_NONE); keyFile.set_double_list ("LiveThumbData", "ColorMatrix", cm); + keyFile.set_double ("LiveThumbData", "ScaleGain", scaleGain); keyData = keyFile.to_data (); diff --git a/rtengine/rtthumbnail.h b/rtengine/rtthumbnail.h index ccca1c582..a0033d35f 100644 --- a/rtengine/rtthumbnail.h +++ b/rtengine/rtthumbnail.h @@ -75,8 +75,9 @@ class Thumbnail int scaleForSave; bool gammaCorrected; double colorMatrix[3][3]; + double scaleGain; - void processFilmNegative(const procparams::ProcParams& params, const Imagefloat* baseImg, int rwidth, int rheight, float &rmi, float &gmi, float &bmi); + void processFilmNegative(const procparams::ProcParams& params, const Imagefloat* baseImg, int rwidth, int rheight); public: diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 14df16550..14a594ac2 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -221,7 +221,12 @@ private: // After preprocess, run film negative processing if enabled if ((imgsrc->getSensorType() == ST_BAYER || (imgsrc->getSensorType() == ST_FUJI_XTRANS)) && params.filmNegative.enabled) { - imgsrc->filmNegativeProcess (params.filmNegative); + std::array filmBaseValues = { + static_cast(params.filmNegative.redBase), + static_cast(params.filmNegative.greenBase), + static_cast(params.filmNegative.blueBase) + }; + imgsrc->filmNegativeProcess (params.filmNegative, filmBaseValues); } if (pl) { diff --git a/rtgui/filmnegative.cc b/rtgui/filmnegative.cc index 90cedf148..1b105a3ec 100644 --- a/rtgui/filmnegative.cc +++ b/rtgui/filmnegative.cc @@ -44,6 +44,17 @@ Adjuster* createExponentAdjuster(AdjusterListener* listener, const Glib::ustring return adj; } +Glib::ustring formatBaseValues(const std::array& rgb) +{ + if (rgb[0] <= 0.f && rgb[1] <= 0.f && rgb[2] <= 0.f) { + return "- - -"; + } else { + return Glib::ustring::format(std::fixed, std::setprecision(1), rgb[0]) + " " + + Glib::ustring::format(std::fixed, std::setprecision(1), rgb[1]) + " " + + Glib::ustring::format(std::fixed, std::setprecision(1), rgb[2]); + } +} + } FilmNegative::FilmNegative() : @@ -51,12 +62,17 @@ FilmNegative::FilmNegative() : EditSubscriber(ET_OBJECTS), evFilmNegativeExponents(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_VALUES")), evFilmNegativeEnabled(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_ENABLED")), + evFilmBaseValues(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_FILMNEGATIVE_FILMBASE")), + filmBaseValues({0.f, 0.f, 0.f}), fnp(nullptr), greenExp(createExponentAdjuster(this, M("TP_FILMNEGATIVE_GREEN"), 0.3, 4, 1.5)), // master exponent (green channel) redRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_RED"), 0.3, 3, (2.04 / 1.5))), // ratio of red exponent to master exponent blueRatio(createExponentAdjuster(this, M("TP_FILMNEGATIVE_BLUE"), 0.3, 3, (1.29 / 1.5))), // ratio of blue exponent to master exponent spotgrid(Gtk::manage(new Gtk::Grid())), - spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))) + spotbutton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_PICK")))), + filmBaseLabel(Gtk::manage(new Gtk::Label(M("TP_FILMNEGATIVE_FILMBASE_VALUES"), Gtk::ALIGN_START))), + filmBaseValuesLabel(Gtk::manage(new Gtk::Label("- - -"))), + filmBaseSpotButton(Gtk::manage(new Gtk::ToggleButton(M("TP_FILMNEGATIVE_FILMBASE_PICK")))) { spotgrid->get_style_context()->add_class("grid-spacing"); setExpandAlignProperties(spotgrid, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); @@ -64,7 +80,10 @@ FilmNegative::FilmNegative() : setExpandAlignProperties(spotbutton, true, false, Gtk::ALIGN_FILL, Gtk::ALIGN_CENTER); spotbutton->get_style_context()->add_class("independent"); spotbutton->set_tooltip_text(M("TP_FILMNEGATIVE_GUESS_TOOLTIP")); - spotbutton->set_image (*Gtk::manage (new RTImage ("color-picker-small.png"))); + spotbutton->set_image(*Gtk::manage(new RTImage("color-picker-small.png"))); + + filmBaseSpotButton->set_tooltip_text(M("TP_FILMNEGATIVE_FILMBASE_TOOLTIP")); + setExpandAlignProperties(filmBaseValuesLabel, false, false, Gtk::ALIGN_START, Gtk::ALIGN_CENTER); // TODO make spot size configurable ? @@ -81,7 +100,7 @@ FilmNegative::FilmNegative() : // spotsize->set_active(0); // spotsize->append ("4"); - spotgrid->attach (*spotbutton, 0, 1, 1, 1); + spotgrid->attach(*spotbutton, 0, 1, 1, 1); // spotgrid->attach (*slab, 1, 0, 1, 1); // spotgrid->attach (*wbsizehelper, 2, 0, 1, 1); @@ -90,13 +109,26 @@ FilmNegative::FilmNegative() : pack_start(*blueRatio, Gtk::PACK_SHRINK, 0); pack_start(*spotgrid, Gtk::PACK_SHRINK, 0); + Gtk::HSeparator* const sep = Gtk::manage(new Gtk::HSeparator()); + sep->get_style_context()->add_class("grid-row-separator"); + pack_start(*sep, Gtk::PACK_SHRINK, 0); + + Gtk::Grid* const fbGrid = Gtk::manage(new Gtk::Grid()); + fbGrid->attach(*filmBaseLabel, 0, 0, 1, 1); + fbGrid->attach(*filmBaseValuesLabel, 1, 0, 1, 1); + pack_start(*fbGrid, Gtk::PACK_SHRINK, 0); + + pack_start(*filmBaseSpotButton, Gtk::PACK_SHRINK, 0); + spotbutton->signal_toggled().connect(sigc::mem_fun(*this, &FilmNegative::editToggled)); // spotsize->signal_changed().connect( sigc::mem_fun(*this, &WhiteBalance::spotSizeChanged) ); + filmBaseSpotButton->signal_toggled().connect(sigc::mem_fun(*this, &FilmNegative::baseSpotToggled)); + // Editing geometry; create the spot rectangle Rectangle* const spotRect = new Rectangle(); spotRect->filled = false; - + visibleGeometry.push_back(spotRect); // Stick a dummy rectangle over the whole image in mouseOverGeometry. @@ -134,6 +166,14 @@ void FilmNegative::read(const rtengine::procparams::ProcParams* pp, const Params greenExp->setValue(pp->filmNegative.greenExp); blueRatio->setValue(pp->filmNegative.blueRatio); + filmBaseValues[0] = pp->filmNegative.redBase; + filmBaseValues[1] = pp->filmNegative.greenBase; + filmBaseValues[2] = pp->filmNegative.blueBase; + + // If base values are not set in params, estimated values will be passed in later + // (after processing) via FilmNegListener + filmBaseValuesLabel->set_text(formatBaseValues(filmBaseValues)); + enableListener(); } @@ -142,14 +182,23 @@ void FilmNegative::write(rtengine::procparams::ProcParams* pp, ParamsEdited* ped pp->filmNegative.redRatio = redRatio->getValue(); pp->filmNegative.greenExp = greenExp->getValue(); pp->filmNegative.blueRatio = blueRatio->getValue(); + pp->filmNegative.enabled = getEnabled(); if (pedited) { pedited->filmNegative.redRatio = redRatio->getEditedState(); pedited->filmNegative.greenExp = greenExp->getEditedState(); pedited->filmNegative.blueRatio = blueRatio->getEditedState(); + pedited->filmNegative.baseValues = filmBaseValues[0] != pp->filmNegative.redBase + || filmBaseValues[1] != pp->filmNegative.greenBase + || filmBaseValues[2] != pp->filmNegative.blueBase; pedited->filmNegative.enabled = !get_inconsistent(); } + + pp->filmNegative.redBase = filmBaseValues[0]; + pp->filmNegative.greenBase = filmBaseValues[1]; + pp->filmNegative.blueBase = filmBaseValues[2]; + } void FilmNegative::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) @@ -172,8 +221,8 @@ void FilmNegative::setDefaults(const rtengine::procparams::ProcParams* defParams void FilmNegative::setBatchMode(bool batchMode) { if (batchMode) { - spotConn.disconnect(); removeIfThere(this, spotgrid, false); + removeIfThere(this, filmBaseSpotButton, false); ToolPanel::setBatchMode(batchMode); redRatio->showEditedCB(); greenExp->showEditedCB(); @@ -205,16 +254,20 @@ void FilmNegative::enabledChanged() if (listener) { if (get_inconsistent()) { listener->panelChanged(evFilmNegativeEnabled, M("GENERAL_UNCHANGED")); - } - else if (getEnabled()) { + } else if (getEnabled()) { listener->panelChanged(evFilmNegativeEnabled, M("GENERAL_ENABLED")); - } - else { + } else { listener->panelChanged(evFilmNegativeEnabled, M("GENERAL_DISABLED")); } } } +void FilmNegative::filmBaseValuesChanged(std::array rgb) +{ + filmBaseValues = rgb; + filmBaseValuesLabel->set_text(formatBaseValues(filmBaseValues)); +} + void FilmNegative::setFilmNegProvider(FilmNegProvider* provider) { fnp = provider; @@ -227,7 +280,7 @@ void FilmNegative::setEditProvider(EditDataProvider* provider) CursorShape FilmNegative::getCursor(int objectID) const { - return CSSpotWB; + return CSSpotWB; } bool FilmNegative::mouseOver(int modifierKey) @@ -246,31 +299,57 @@ bool FilmNegative::button1Pressed(int modifierKey) EditSubscriber::action = EditSubscriber::Action::NONE; if (listener) { - refSpotCoords.push_back(provider->posImage); + if (spotbutton->get_active()) { - if (refSpotCoords.size() == 2) { - // User has selected 2 reference gray spots. Calculating new exponents - // from channel values and updating parameters. + refSpotCoords.push_back(provider->posImage); - std::array newExps; - if (fnp->getFilmNegativeExponents(refSpotCoords[0], refSpotCoords[1], newExps)) { + if (refSpotCoords.size() == 2) { + // User has selected 2 reference gray spots. Calculating new exponents + // from channel values and updating parameters. + + std::array newExps; + + if (fnp->getFilmNegativeExponents(refSpotCoords[0], refSpotCoords[1], newExps)) { + disableListener(); + // Leaving green exponent unchanged, setting red and blue exponents based on + // the ratios between newly calculated exponents. + redRatio->setValue(newExps[0] / newExps[1]); + blueRatio->setValue(newExps[2] / newExps[1]); + enableListener(); + + if (listener && getEnabled()) { + listener->panelChanged( + evFilmNegativeExponents, + Glib::ustring::compose( + "Ref=%1\nR=%2\nB=%3", + greenExp->getValue(), + redRatio->getValue(), + blueRatio->getValue() + ) + ); + } + } + + switchOffEditMode(); + } + + } else if (filmBaseSpotButton->get_active()) { + + std::array newBaseLev; + + if (fnp->getRawSpotValues(provider->posImage, 32, newBaseLev)) { disableListener(); - // Leaving green exponent unchanged, setting red and blue exponents based on - // the ratios between newly calculated exponents. - redRatio->setValue(newExps[0] / newExps[1]); - blueRatio->setValue(newExps[2] / newExps[1]); + + filmBaseValues = newBaseLev; + enableListener(); + const Glib::ustring vs = formatBaseValues(filmBaseValues); + + filmBaseValuesLabel->set_text(vs); + if (listener && getEnabled()) { - listener->panelChanged( - evFilmNegativeExponents, - Glib::ustring::compose( - "Ref=%1\nR=%2\nB=%3", - greenExp->getValue(), - redRatio->getValue(), - blueRatio->getValue() - ) - ); + listener->panelChanged(evFilmBaseValues, vs); } } @@ -292,11 +371,38 @@ void FilmNegative::switchOffEditMode() refSpotCoords.clear(); unsubscribe(); spotbutton->set_active(false); + filmBaseSpotButton->set_active(false); } void FilmNegative::editToggled() { if (spotbutton->get_active()) { + + filmBaseSpotButton->set_active(false); + refSpotCoords.clear(); + + subscribe(); + + int w, h; + getEditProvider()->getImageSize(w, h); + + // Stick a dummy rectangle over the whole image in mouseOverGeometry. + // This is to make sure the getCursor() call is fired everywhere. + Rectangle* const imgRect = static_cast(mouseOverGeometry.at(0)); + imgRect->setXYWH(0, 0, w, h); + } else { + refSpotCoords.clear(); + unsubscribe(); + } +} + +void FilmNegative::baseSpotToggled() +{ + if (filmBaseSpotButton->get_active()) { + + spotbutton->set_active(false); + refSpotCoords.clear(); + subscribe(); int w, h; diff --git a/rtgui/filmnegative.h b/rtgui/filmnegative.h index bca155ceb..0810a8c57 100644 --- a/rtgui/filmnegative.h +++ b/rtgui/filmnegative.h @@ -33,13 +33,15 @@ public: virtual ~FilmNegProvider() = default; virtual bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array& newExps) = 0; + virtual bool getRawSpotValues(rtengine::Coord spot, int spotSize, std::array& rawValues) = 0; }; class FilmNegative final : public ToolParamBlock, public AdjusterListener, public FoldableToolPanel, - public EditSubscriber + public EditSubscriber, + public rtengine::FilmNegListener { public: FilmNegative(); @@ -53,6 +55,8 @@ public: void adjusterChanged(Adjuster* a, double newval) override; void enabledChanged() override; + void filmBaseValuesChanged(std::array rgb) override; + void setFilmNegProvider(FilmNegProvider* provider); void setEditProvider(EditDataProvider* provider) override; @@ -66,12 +70,16 @@ public: private: void editToggled(); + void baseSpotToggled(); const rtengine::ProcEvent evFilmNegativeExponents; const rtengine::ProcEvent evFilmNegativeEnabled; + const rtengine::ProcEvent evFilmBaseValues; std::vector refSpotCoords; + std::array filmBaseValues; + FilmNegProvider* fnp; Adjuster* const greenExp; @@ -80,5 +88,9 @@ private: Gtk::Grid* const spotgrid; Gtk::ToggleButton* const spotbutton; - sigc::connection spotConn; + + Gtk::Label* const filmBaseLabel; + Gtk::Label* const filmBaseValuesLabel; + Gtk::ToggleButton* const filmBaseSpotButton; + }; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 0faee0fd3..6a25a9d64 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -623,6 +623,7 @@ void ParamsEdited::set(bool v) filmNegative.redRatio = v; filmNegative.greenExp = v; filmNegative.blueRatio = v; + filmNegative.baseValues = v; exif = v; iptc = v; @@ -1225,6 +1226,9 @@ void ParamsEdited::initFrom(const std::vector& filmNegative.redRatio = filmNegative.redRatio && p.filmNegative.redRatio == other.filmNegative.redRatio; filmNegative.greenExp = filmNegative.greenExp && p.filmNegative.greenExp == other.filmNegative.greenExp; filmNegative.blueRatio = filmNegative.blueRatio && p.filmNegative.blueRatio == other.filmNegative.blueRatio; + filmNegative.baseValues = filmNegative.baseValues && p.filmNegative.redBase == other.filmNegative.redBase + && p.filmNegative.greenBase == other.filmNegative.greenBase + && p.filmNegative.blueBase == other.filmNegative.blueBase; // How the hell can we handle that??? // exif = exif && p.exif==other.exif @@ -3430,6 +3434,12 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.filmNegative.blueRatio = mods.filmNegative.blueRatio; } + if (filmNegative.baseValues) { + toEdit.filmNegative.redBase = mods.filmNegative.redBase; + toEdit.filmNegative.greenBase = mods.filmNegative.greenBase; + toEdit.filmNegative.blueBase = mods.filmNegative.blueBase; + } + // Exif changes are added to the existing ones if (exif) { for (procparams::ExifPairs::const_iterator i = mods.exif.begin(); i != mods.exif.end(); ++i) { @@ -3476,7 +3486,7 @@ bool RetinexParamsEdited::isUnchanged() const bool FilmNegativeParamsEdited::isUnchanged() const { - return enabled && redRatio && greenExp && blueRatio; + return enabled && redRatio && greenExp && blueRatio && baseValues; } bool CaptureSharpeningParamsEdited::isUnchanged() const diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index d1be2c57e..1feedd774 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -727,6 +727,7 @@ struct FilmNegativeParamsEdited { bool redRatio; bool greenExp; bool blueRatio; + bool baseValues; bool isUnchanged() const; }; diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 22f608ae4..b31852af2 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -986,6 +986,7 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.filmNegative.redRatio = falsePE.filmNegative.redRatio; filterPE.filmNegative.greenExp = falsePE.filmNegative.greenExp; filterPE.filmNegative.blueRatio = falsePE.filmNegative.blueRatio; + filterPE.filmNegative.baseValues = falsePE.filmNegative.baseValues; } if (!captureSharpening->get_active ()) { diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index 89f93ed44..6a670733b 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -1,11 +1,13 @@ #pragma once // This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes -#define PPVERSION 346 +#define PPVERSION 347 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* Log of version changes + 347 2019-11-17 + added special values in filmNegative for backwards compatibility with previous channel scaling method 346 2019-01-01 changed microcontrast uniformity 345 2018-10-21 diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 00ad96328..a9c3231d4 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -609,6 +609,7 @@ void ToolPanelCoordinator::initImage (rtengine::StagedImageProcessor* ipc_, bool ipc->setSizeListener (crop); ipc->setSizeListener (resize); ipc->setImageTypeListener (this); + ipc->setFilmNegListener (filmNegative); flatfield->setShortcutPath (Glib::path_get_dirname (ipc->getInitialImage()->getFileName())); icm->setRawMeta (raw, (const rtengine::FramesData*)pMetaData); @@ -1073,3 +1074,8 @@ bool ToolPanelCoordinator::getFilmNegativeExponents(rtengine::Coord spotA, rteng { return ipc && ipc->getFilmNegativeExponents(spotA.x, spotA.y, spotB.x, spotB.y, newExps); } + +bool ToolPanelCoordinator::getRawSpotValues(rtengine::Coord spot, int spotSize, std::array& rawValues) +{ + return ipc && ipc->getRawSpotValues(spot.x, spot.y, spotSize, rawValues); +} \ No newline at end of file diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 0fc1a9070..1b51bca31 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -297,6 +297,7 @@ public: // FilmNegProvider interface bool getFilmNegativeExponents(rtengine::Coord spotA, rtengine::Coord spotB, std::array& newExps) override; + bool getRawSpotValues(rtengine::Coord spot, int spotSize, std::array& rawValues) override; // rotatelistener interface void straightenRequested () override; From 25513c85bce07ebc0f2ff15f4688fa02cee5e31a Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 13 Apr 2020 17:52:56 +0200 Subject: [PATCH 426/453] Improve toning with meanab sigmaab and damper --- rtdata/languages/default | 1 + rtengine/improcfun.h | 2 +- rtengine/ipwavelet.cc | 92 ++++++++++++++++++++++++++++------------ rtengine/procparams.cc | 4 ++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 +++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 15 ++++++- rtgui/wavelet.h | 2 + 9 files changed, 96 insertions(+), 28 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index a5cd7746e..7dd47e154 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -817,6 +817,7 @@ HISTORY_MSG_BLURWAV;Blur luminance HISTORY_MSG_BLURCWAV;Blur chroma HISTORY_MSG_EDGEFFECT;Edge Damper HISTORY_MSG_SIGMAFIN;Final contrast Damper +HISTORY_MSG_SIGMATON;Toning Damper HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index d003df644..9d4a0235c 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -216,7 +216,7 @@ public: void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp, int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, - int W_ab, int H_ab, const bool useChannelA); + int W_ab, int H_ab, const bool useChannelA, float *meanab, float *sigmaab); void Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); void Eval2(float ** WavCoeffs_L, int level, diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 157fb6239..9d50dedff 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -114,6 +114,7 @@ struct cont_params { float tmstrength; float balan; float sigmafin; + float sigmaton; int ite; int contmet; bool opaW; @@ -193,6 +194,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.tonemap = params->wavelet.tmrs != 0; cp.bam = false; cp.sigmafin = params->wavelet.sigmafin; + cp.sigmaton = params->wavelet.sigmaton; if (params->wavelet.TMmethod == "cont") { cp.contmet = 1; @@ -931,9 +933,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const vari[1] = rtengine::max(0.000001f, vari[1]); vari[2] = rtengine::max(0.000001f, vari[2]); vari[3] = rtengine::max(0.000001f, kr3 * vari[3]); + if (settings->verbose) { - printf("LUM var0=%f var1=%f var2=%f var3=%f\n",vari[0], vari[1], vari[2], vari[3]); + printf("LUM var0=%f var1=%f var2=%f var3=%f\n", vari[0], vari[1], vari[2], vari[3]); } + // float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL int GWL = labco->W; int GHL = labco->H; @@ -1176,9 +1180,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const variC[6] = max(0.00001f, k6 * variC[6]); variCb[6] = max(0.00001f, k6 * variCb[6]); + if (settings->verbose) { - printf("CHRO var0=%f va1=%f va2=%f va3=%f va4=%f val5=%f va6=%f\n", variC[0], variC[1], variC[2], variC[3],variC[4],variC[5], variC[6]); + printf("CHRO var0=%f va1=%f va2=%f va3=%f va4=%f val5=%f va6=%f\n", variC[0], variC[1], variC[2], variC[3], variC[4], variC[5], variC[6]); } + /* for (int y = 0; y < 7; y++) { printf("y=%i madL=%f varia=%f variab=%f\n", y, madL[y][1], variC[y], variCb[y]); @@ -2203,27 +2209,28 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //Blur luma if (cp.blurres != 0.f && cp.resena) { - int minWL = min(W_L, H_L); - float k = 0.5f; - //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); - if(minWL > 140) {//disabled if too low windows - float rad = k * cp.blurres / skip; - float * bef = new float[W_L * H_L]; - float * aft = new float[W_L * H_L]; - - for (int i = 0; i < H_L * W_L; i++) { - bef[i] = WavCoeffs_L0[i]; - } + int minWL = min(W_L, H_L); + float k = 0.5f; - boxblur(bef, aft, rad, W_L, H_L, false); + //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); + if (minWL > 140) { //disabled if too low windows + float rad = k * cp.blurres / skip; + float * bef = new float[W_L * H_L]; + float * aft = new float[W_L * H_L]; - for (int i = 0; i < H_L * W_L; i++) { - WavCoeffs_L0[i] = aft[i]; - } - - delete[] bef; - delete[] aft; + for (int i = 0; i < H_L * W_L; i++) { + bef[i] = WavCoeffs_L0[i]; } + + boxblur(bef, aft, rad, W_L, H_L, false); + + for (int i = 0; i < H_L * W_L; i++) { + WavCoeffs_L0[i] = aft[i]; + } + + delete[] bef; + delete[] aft; + } } // @@ -2679,8 +2686,9 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float if (cp.blurcres != 0.f && cp.resena) { int minWL = min(W_L, H_L); float k = 0.5f; + //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); - if(minWL > 140) {//disabled if too low windows + if (minWL > 140) { //disabled if too low windows float rad = k * cp.blurcres / skip; float * bef = new float[W_L * H_L]; float * aft = new float[W_L * H_L]; @@ -2722,7 +2730,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float int Hlvl_ab = WaveletCoeffs_ab.level_H(lvl); float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); - ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA); + ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA, meanab, sigmaab); if (wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { @@ -3846,7 +3854,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, float **varchrom, float ** WavCoeffs_ab, float * WavCoeffs_ab0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, - int W_ab, int H_ab, const bool useChannelA) + int W_ab, int H_ab, const bool useChannelA, float *meanab, float *sigmaab) { float cpMul = cp.mul[level]; @@ -3981,15 +3989,47 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } if ((useOpacity && level < 9 && mulOpacity != 0.f) && cp.toningena) { //toning + float mea[10]; + float effect = cp.sigmaton; + float betaab = 0.f; + float offs = 1.f; - float beta = (1024.f + 20.f * mulOpacity) / 1024.f ; + calceffect(level, meanab, sigmaab, mea, effect, offs); + + for (int co = 0; co < W_ab * H_ab; co++) { + float WavCab = std::fabs(WavCoeffs_ab[dir][co]); + + if (WavCab < mea[0]) { + betaab = 0.05f; + } else if (WavCab < mea[1]) { + betaab = 0.2f; + } else if (WavCab < mea[2]) { + betaab = 0.7f; + } else if (WavCab < mea[3]) { + betaab = 1.f; //standard + } else if (WavCab < mea[4]) { + betaab = 1.f; + } else if (WavCab < mea[5]) { + betaab = 0.8f; //+sigma + } else if (WavCab < mea[6]) { + betaab = 0.6f; + } else if (WavCab < mea[7]) { + betaab = 0.4f; + } else if (WavCab < mea[8]) { + betaab = 0.2f; // + 2 sigma + } else if (WavCab < mea[9]) { + betaab = 0.1f; + } else { + betaab = 0.0f; + } + } + + float beta = (1024.f + 50.f * mulOpacity * betaab) / 1024.f ; - //float beta = (1000.f * mulOpacity); for (int i = 0; i < W_ab * H_ab; i++) { WavCoeffs_ab[dir][i] *= beta; } - // WavCoeffs_ab[dir][i] += beta; } if (waOpacityCurveW) { diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 0d8324d4e..bac9e86ff 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2264,6 +2264,7 @@ WaveletParams::WaveletParams() : strength(100), balance(0), sigmafin(1.0), + sigmaton(1.0), iter(0), expcontrast(false), expchroma(false), @@ -2379,6 +2380,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && strength == other.strength && balance == other.balance && sigmafin == other.sigmafin + && sigmaton == other.sigmaton && iter == other.iter && expcontrast == other.expcontrast && expchroma == other.expchroma @@ -3517,6 +3519,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.strength, "Wavelet", "Strength", wavelet.strength, keyFile); saveToKeyfile(!pedited || pedited->wavelet.balance, "Wavelet", "Balance", wavelet.balance, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmafin, "Wavelet", "Sigmafin", wavelet.sigmafin, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.sigmaton, "Wavelet", "Sigmaton", wavelet.sigmaton, keyFile); saveToKeyfile(!pedited || pedited->wavelet.iter, "Wavelet", "Iter", wavelet.iter, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thres, "Wavelet", "MaxLev", wavelet.thres, keyFile); saveToKeyfile(!pedited || pedited->wavelet.Tilesmethod, "Wavelet", "TilesMethod", wavelet.Tilesmethod, keyFile); @@ -4695,6 +4698,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Strength", pedited, wavelet.strength, pedited->wavelet.strength); assignFromKeyfile(keyFile, "Wavelet", "Balance", pedited, wavelet.balance, pedited->wavelet.balance); assignFromKeyfile(keyFile, "Wavelet", "Sigmafin", pedited, wavelet.sigmafin, pedited->wavelet.sigmafin); + assignFromKeyfile(keyFile, "Wavelet", "Sigmaton", pedited, wavelet.sigmaton, pedited->wavelet.sigmaton); assignFromKeyfile(keyFile, "Wavelet", "Iter", pedited, wavelet.iter, pedited->wavelet.iter); assignFromKeyfile(keyFile, "Wavelet", "Median", pedited, wavelet.median, pedited->wavelet.median); assignFromKeyfile(keyFile, "Wavelet", "Medianlev", pedited, wavelet.medianlev, pedited->wavelet.medianlev); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index c26b02de4..e5ac570af 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1222,6 +1222,7 @@ struct WaveletParams { int strength; int balance; double sigmafin; + double sigmaton; int iter; bool expcontrast; bool expchroma; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 9eff3c4ce..e83e74bc9 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -476,6 +476,7 @@ void ParamsEdited::set(bool v) wavelet.balance = v; wavelet.iter = v; wavelet.sigmafin = v; + wavelet.sigmaton = v; wavelet.median = v; wavelet.medianlev = v; wavelet.linkedg = v; @@ -1087,6 +1088,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.balance = wavelet.balance && p.wavelet.balance == other.wavelet.balance; wavelet.iter = wavelet.iter && p.wavelet.iter == other.wavelet.iter; wavelet.sigmafin = wavelet.sigmafin && p.wavelet.sigmafin == other.wavelet.sigmafin; + wavelet.sigmaton = wavelet.sigmaton && p.wavelet.sigmaton == other.wavelet.sigmaton; wavelet.median = wavelet.median && p.wavelet.median == other.wavelet.median; wavelet.medianlev = wavelet.medianlev && p.wavelet.medianlev == other.wavelet.medianlev; wavelet.linkedg = wavelet.linkedg && p.wavelet.linkedg == other.wavelet.linkedg; @@ -2899,6 +2901,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.sigmafin = mods.wavelet.sigmafin; } + if (wavelet.sigmaton) { + toEdit.wavelet.sigmaton = mods.wavelet.sigmaton; + } + if (wavelet.iter) { toEdit.wavelet.iter = mods.wavelet.iter; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 351096a7e..773f5592d 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -500,6 +500,7 @@ struct WaveletParamsEdited { bool balance; bool iter; bool sigmafin; + bool sigmaton; bool median; bool medianlev; bool linkedg; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index c12e216cf..db3687b3e 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -113,6 +113,7 @@ Wavelet::Wavelet() : balance(Gtk::manage(new Adjuster(M("TP_WAVELET_BALANCE"), -30, 100, 1, 0))), iter(Gtk::manage(new Adjuster(M("TP_WAVELET_ITER"), -3, 3, 1, 0))), sigmafin(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), + sigmaton(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), hueskin(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false))), hueskin2(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false))), hllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false))), @@ -210,6 +211,7 @@ Wavelet::Wavelet() : EvWavresblurc = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_BLURCWAV"); EvWavedgeffect = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_EDGEFFECT"); EvWavsigmafin = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMAFIN"); + EvWavsigmaton = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMATON"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -487,6 +489,7 @@ Wavelet::Wavelet() : // Toning ToolParamBlock* const tonBox = Gtk::manage(new ToolParamBlock()); + sigmaton->setAdjusterListener(this); opaCurveEditorG->setCurveListener(this); @@ -498,7 +501,7 @@ Wavelet::Wavelet() : opaCurveEditorG->curveListComplete(); opaCurveEditorG->show(); - + tonBox->pack_start(*sigmaton); tonBox->pack_start(*opaCurveEditorG, Gtk::PACK_SHRINK, 2); opacityCurveEditorG->setCurveListener(this); @@ -1434,6 +1437,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) balance->setValue(pp->wavelet.balance); iter->setValue(pp->wavelet.iter); sigmafin->setValue(pp->wavelet.sigmafin); + sigmaton->setValue(pp->wavelet.sigmaton); for (int i = 0; i < 9; i++) { correction[i]->setValue(pp->wavelet.c[i]); @@ -1552,6 +1556,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) balance->setEditedState(pedited->wavelet.balance ? Edited : UnEdited); iter->setEditedState(pedited->wavelet.iter ? Edited : UnEdited); sigmafin->setEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); + sigmaton->setEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); threshold->setEditedState(pedited->wavelet.threshold ? Edited : UnEdited); threshold2->setEditedState(pedited->wavelet.threshold2 ? Edited : UnEdited); edgedetect->setEditedState(pedited->wavelet.edgedetect ? Edited : UnEdited); @@ -1824,6 +1829,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.iter = (int) iter->getValue(); pp->wavelet.wavclCurve = clshape->getCurve(); pp->wavelet.sigmafin = sigmafin->getValue(); + pp->wavelet.sigmaton = sigmaton->getValue(); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); @@ -1931,6 +1937,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.balance = balance->getEditedState(); pedited->wavelet.iter = iter->getEditedState(); pedited->wavelet.sigmafin = sigmafin->getEditedState(); + pedited->wavelet.sigmaton = sigmaton->getEditedState(); pedited->wavelet.wavclCurve = !clshape->isUnChanged(); pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); @@ -2112,6 +2119,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit balance->setDefault(defParams->wavelet.balance); iter->setDefault(defParams->wavelet.iter); sigmafin->setDefault(defParams->wavelet.sigmafin); + sigmaton->setDefault(defParams->wavelet.sigmaton); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); lowthr->setDefault(defParams->wavelet.lowthr); @@ -2235,6 +2243,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit balance->setDefaultEditedState(pedited->wavelet.balance ? Edited : UnEdited); iter->setDefaultEditedState(pedited->wavelet.iter ? Edited : UnEdited); sigmafin->setDefaultEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); + sigmaton->setDefaultEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); level0noise->setDefaultEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setDefaultEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setDefaultEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -2298,6 +2307,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit balance->setDefaultEditedState(Irrelevant); iter->setDefaultEditedState(Irrelevant); sigmafin->setDefaultEditedState(Irrelevant); + sigmaton->setDefaultEditedState(Irrelevant); for (int i = 0; i < 9; i++) { correction[i]->setDefaultEditedState(Irrelevant); @@ -2831,6 +2841,7 @@ void Wavelet::setBatchMode(bool batchMode) balance->showEditedCB(); iter->showEditedCB(); sigmafin->showEditedCB(); + sigmaton->showEditedCB(); level0noise->showEditedCB(); level1noise->showEditedCB(); level2noise->showEditedCB(); @@ -2982,6 +2993,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWaviter, iter->getTextValue()); } else if (a == sigmafin) { listener->panelChanged(EvWavsigmafin, sigmafin->getTextValue()); + } else if (a == sigmaton) { + listener->panelChanged(EvWavsigmaton, sigmaton->getTextValue()); } else if (a == greenhigh) { listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); } else if (a == bluehigh) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 271aea5b2..e8154b680 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -94,6 +94,7 @@ private: rtengine::ProcEvent EvWavresblurc; rtengine::ProcEvent EvWavedgeffect; rtengine::ProcEvent EvWavsigmafin; + rtengine::ProcEvent EvWavsigmaton; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -220,6 +221,7 @@ private: Adjuster* const balance; Adjuster* const iter; Adjuster* const sigmafin; + Adjuster* const sigmaton; Adjuster* greenlow; Adjuster* bluelow; From 2c3c658171d2fa831b3355fa5db532fb70d18a7d Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Apr 2020 08:36:51 +0200 Subject: [PATCH 427/453] Wavelet - added meanab sigmaab damper to chroma -Fixed bug in toning --- rtdata/languages/default | 1 + rtengine/ipwavelet.cc | 50 ++++++++++++++++++++++++++++++++++++---- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 +++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 19 ++++++++++++++- rtgui/wavelet.h | 2 ++ 8 files changed, 78 insertions(+), 6 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5832406de..8d4472f04 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -819,6 +819,7 @@ HISTORY_MSG_BLURCWAV;Blur chroma HISTORY_MSG_EDGEFFECT;Edge Damper HISTORY_MSG_SIGMAFIN;Final contrast Damper HISTORY_MSG_SIGMATON;Toning Damper +HISTORY_MSG_SIGMACOL;Chroma Damper HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 9d50dedff..6fe88c209 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -115,6 +115,7 @@ struct cont_params { float balan; float sigmafin; float sigmaton; + float sigmacol; int ite; int contmet; bool opaW; @@ -195,6 +196,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.bam = false; cp.sigmafin = params->wavelet.sigmafin; cp.sigmaton = params->wavelet.sigmaton; + cp.sigmacol = params->wavelet.sigmacol; if (params->wavelet.TMmethod == "cont") { cp.contmet = 1; @@ -3866,6 +3868,11 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f //to adjust increase contrast with local contrast bool useSkinControl = (skinprot != 0.f); + + + + + float alphaC = (1024.f + 15.f * cpMul * cpChrom / 50.f) / 1024.f ; for (int i = 0; i < W_ab * H_ab; i++) { @@ -3903,7 +3910,41 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f const float factorHard = (1.f - skinprotneg / 100.f); bool useSkinControl = (skinprot != 0.f); + + float mea[10]; + float effect = cp.sigmacol; + float betaab = 0.f; + float offs = 1.f; + + calceffect(level, meanab, sigmaab, mea, effect, offs); + for (int i = 0; i < W_ab * H_ab; i++) { + float WavCab = std::fabs(WavCoeffs_ab[dir][i]); + + if (WavCab < mea[0]) { + betaab = 0.05f; + } else if (WavCab < mea[1]) { + betaab = 0.2f; + } else if (WavCab < mea[2]) { + betaab = 0.7f; + } else if (WavCab < mea[3]) { + betaab = 1.f; //standard + } else if (WavCab < mea[4]) { + betaab = 1.f; + } else if (WavCab < mea[5]) { + betaab = 0.8f; //+sigma + } else if (WavCab < mea[6]) { + betaab = 0.6f; + } else if (WavCab < mea[7]) { + betaab = 0.4f; + } else if (WavCab < mea[8]) { + betaab = 0.2f; // + 2 sigma + } else if (WavCab < mea[9]) { + betaab = 0.1f; + } else { + betaab = 0.0f; + } + int ii = i / W_ab; int jj = i - ii * W_ab; //WL and W_ab are identical @@ -3923,7 +3964,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } } - float beta = (1024.f + 20.f * cpMulC * scale) / 1024.f ; + float beta = (1024.f + 20.f * cpMulC * scale * betaab) / 1024.f ; if (beta < 0.02f) { beta = 0.02f; @@ -4022,12 +4063,11 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } else { betaab = 0.0f; } - } - float beta = (1024.f + 50.f * mulOpacity * betaab) / 1024.f ; - for (int i = 0; i < W_ab * H_ab; i++) { - WavCoeffs_ab[dir][i] *= beta; + float beta = (1024.f + 50.f * mulOpacity * betaab) / 1024.f ; + + WavCoeffs_ab[dir][co] *= beta; } } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 8306f9a55..7b6a8f123 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2265,6 +2265,7 @@ WaveletParams::WaveletParams() : balance(0), sigmafin(1.0), sigmaton(1.0), + sigmacol(1.0), iter(0), expcontrast(false), expchroma(false), @@ -2381,6 +2382,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && balance == other.balance && sigmafin == other.sigmafin && sigmaton == other.sigmaton + && sigmacol == other.sigmacol && iter == other.iter && expcontrast == other.expcontrast && expchroma == other.expchroma @@ -3526,6 +3528,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.balance, "Wavelet", "Balance", wavelet.balance, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmafin, "Wavelet", "Sigmafin", wavelet.sigmafin, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmaton, "Wavelet", "Sigmaton", wavelet.sigmaton, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.sigmacol, "Wavelet", "Sigmacol", wavelet.sigmacol, keyFile); saveToKeyfile(!pedited || pedited->wavelet.iter, "Wavelet", "Iter", wavelet.iter, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thres, "Wavelet", "MaxLev", wavelet.thres, keyFile); saveToKeyfile(!pedited || pedited->wavelet.Tilesmethod, "Wavelet", "TilesMethod", wavelet.Tilesmethod, keyFile); @@ -4708,6 +4711,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Balance", pedited, wavelet.balance, pedited->wavelet.balance); assignFromKeyfile(keyFile, "Wavelet", "Sigmafin", pedited, wavelet.sigmafin, pedited->wavelet.sigmafin); assignFromKeyfile(keyFile, "Wavelet", "Sigmaton", pedited, wavelet.sigmaton, pedited->wavelet.sigmaton); + assignFromKeyfile(keyFile, "Wavelet", "Sigmacol", pedited, wavelet.sigmacol, pedited->wavelet.sigmacol); assignFromKeyfile(keyFile, "Wavelet", "Iter", pedited, wavelet.iter, pedited->wavelet.iter); assignFromKeyfile(keyFile, "Wavelet", "Median", pedited, wavelet.median, pedited->wavelet.median); assignFromKeyfile(keyFile, "Wavelet", "Medianlev", pedited, wavelet.medianlev, pedited->wavelet.medianlev); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 38883110b..536f260bc 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1223,6 +1223,7 @@ struct WaveletParams { int balance; double sigmafin; double sigmaton; + double sigmacol; int iter; bool expcontrast; bool expchroma; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index f6cfb78f9..8a97681e4 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -477,6 +477,7 @@ void ParamsEdited::set(bool v) wavelet.iter = v; wavelet.sigmafin = v; wavelet.sigmaton = v; + wavelet.sigmacol = v; wavelet.median = v; wavelet.medianlev = v; wavelet.linkedg = v; @@ -1090,6 +1091,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.iter = wavelet.iter && p.wavelet.iter == other.wavelet.iter; wavelet.sigmafin = wavelet.sigmafin && p.wavelet.sigmafin == other.wavelet.sigmafin; wavelet.sigmaton = wavelet.sigmaton && p.wavelet.sigmaton == other.wavelet.sigmaton; + wavelet.sigmacol = wavelet.sigmacol && p.wavelet.sigmacol == other.wavelet.sigmacol; wavelet.median = wavelet.median && p.wavelet.median == other.wavelet.median; wavelet.medianlev = wavelet.medianlev && p.wavelet.medianlev == other.wavelet.medianlev; wavelet.linkedg = wavelet.linkedg && p.wavelet.linkedg == other.wavelet.linkedg; @@ -2909,6 +2911,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.sigmaton = mods.wavelet.sigmaton; } + if (wavelet.sigmacol) { + toEdit.wavelet.sigmacol = mods.wavelet.sigmacol; + } + if (wavelet.iter) { toEdit.wavelet.iter = mods.wavelet.iter; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index f602c04f1..c17ea52c7 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -501,6 +501,7 @@ struct WaveletParamsEdited { bool iter; bool sigmafin; bool sigmaton; + bool sigmacol; bool median; bool medianlev; bool linkedg; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index db3687b3e..475c6d866 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -114,6 +114,7 @@ Wavelet::Wavelet() : iter(Gtk::manage(new Adjuster(M("TP_WAVELET_ITER"), -3, 3, 1, 0))), sigmafin(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), sigmaton(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), + sigmacol(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), hueskin(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false))), hueskin2(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false))), hllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false))), @@ -212,6 +213,7 @@ Wavelet::Wavelet() : EvWavedgeffect = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_EDGEFFECT"); EvWavsigmafin = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMAFIN"); EvWavsigmaton = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMATON"); + EvWavsigmacol = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMACOL"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -456,8 +458,10 @@ Wavelet::Wavelet() : chBox->pack_start(*satlev); chro->set_tooltip_text(M("TP_WAVELET_CHR_TOOLTIP")); - chBox->pack_start(*chro); chro->setAdjusterListener(this); + sigmacol->setAdjusterListener(this); + chBox->pack_start(*chro); + chBox->pack_start(*sigmacol); Gtk::HBox* const buttonchBox = Gtk::manage(new Gtk::HBox(true, 10)); neutralchPressedConn = neutralchButton->signal_pressed().connect(sigc::mem_fun(*this, &Wavelet::neutralchPressed)); @@ -1438,6 +1442,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) iter->setValue(pp->wavelet.iter); sigmafin->setValue(pp->wavelet.sigmafin); sigmaton->setValue(pp->wavelet.sigmaton); + sigmacol->setValue(pp->wavelet.sigmacol); for (int i = 0; i < 9; i++) { correction[i]->setValue(pp->wavelet.c[i]); @@ -1557,6 +1562,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) iter->setEditedState(pedited->wavelet.iter ? Edited : UnEdited); sigmafin->setEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); sigmaton->setEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); + sigmacol->setEditedState(pedited->wavelet.sigmacol ? Edited : UnEdited); threshold->setEditedState(pedited->wavelet.threshold ? Edited : UnEdited); threshold2->setEditedState(pedited->wavelet.threshold2 ? Edited : UnEdited); edgedetect->setEditedState(pedited->wavelet.edgedetect ? Edited : UnEdited); @@ -1830,6 +1836,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.wavclCurve = clshape->getCurve(); pp->wavelet.sigmafin = sigmafin->getValue(); pp->wavelet.sigmaton = sigmaton->getValue(); + pp->wavelet.sigmacol = sigmacol->getValue(); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); @@ -1938,6 +1945,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.iter = iter->getEditedState(); pedited->wavelet.sigmafin = sigmafin->getEditedState(); pedited->wavelet.sigmaton = sigmaton->getEditedState(); + pedited->wavelet.sigmacol = sigmacol->getEditedState(); pedited->wavelet.wavclCurve = !clshape->isUnChanged(); pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); @@ -2120,6 +2128,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit iter->setDefault(defParams->wavelet.iter); sigmafin->setDefault(defParams->wavelet.sigmafin); sigmaton->setDefault(defParams->wavelet.sigmaton); + sigmacol->setDefault(defParams->wavelet.sigmacol); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); lowthr->setDefault(defParams->wavelet.lowthr); @@ -2244,6 +2253,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit iter->setDefaultEditedState(pedited->wavelet.iter ? Edited : UnEdited); sigmafin->setDefaultEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); sigmaton->setDefaultEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); + sigmacol->setDefaultEditedState(pedited->wavelet.sigmacol ? Edited : UnEdited); level0noise->setDefaultEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setDefaultEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setDefaultEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -2308,6 +2318,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit iter->setDefaultEditedState(Irrelevant); sigmafin->setDefaultEditedState(Irrelevant); sigmaton->setDefaultEditedState(Irrelevant); + sigmacol->setDefaultEditedState(Irrelevant); for (int i = 0; i < 9; i++) { correction[i]->setDefaultEditedState(Irrelevant); @@ -2403,6 +2414,7 @@ void Wavelet::CHmethodUpdateUI() if (!batchMode) { if (CHmethod->get_active_row_number() == 0) { CHSLmethod->show(); + sigmacol->show(); pastlev->hide(); satlev->hide(); chroma->hide(); @@ -2422,6 +2434,7 @@ void Wavelet::CHmethodUpdateUI() } } else if (CHmethod->get_active_row_number() == 1) { CHSLmethod->show(); + sigmacol->show(); pastlev->show(); satlev->show(); chroma->show(); @@ -2441,6 +2454,7 @@ void Wavelet::CHmethodUpdateUI() } } else { chro->show(); + sigmacol->hide(); pastlev->hide(); satlev->hide(); chroma->hide(); @@ -2842,6 +2856,7 @@ void Wavelet::setBatchMode(bool batchMode) iter->showEditedCB(); sigmafin->showEditedCB(); sigmaton->showEditedCB(); + sigmacol->showEditedCB(); level0noise->showEditedCB(); level1noise->showEditedCB(); level2noise->showEditedCB(); @@ -2995,6 +3010,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavsigmafin, sigmafin->getTextValue()); } else if (a == sigmaton) { listener->panelChanged(EvWavsigmaton, sigmaton->getTextValue()); + } else if (a == sigmacol) { + listener->panelChanged(EvWavsigmacol, sigmacol->getTextValue()); } else if (a == greenhigh) { listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); } else if (a == bluehigh) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index e8154b680..4a4947b2a 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -95,6 +95,7 @@ private: rtengine::ProcEvent EvWavedgeffect; rtengine::ProcEvent EvWavsigmafin; rtengine::ProcEvent EvWavsigmaton; + rtengine::ProcEvent EvWavsigmacol; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -222,6 +223,7 @@ private: Adjuster* const iter; Adjuster* const sigmafin; Adjuster* const sigmaton; + Adjuster* const sigmacol; Adjuster* greenlow; Adjuster* bluelow; From e3c802f6106a3679826f9c98c46238b42df218d5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Apr 2020 09:11:32 +0200 Subject: [PATCH 428/453] Wavelet levels - Fixed bad behavior edge sharpness with damper --- rtengine/ipwavelet.cc | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 6fe88c209..38c873824 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -3141,7 +3141,12 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz constexpr float bedstr = 1.f - 10.f * aedstr; float mea[10]; - float beta = 1.f; + // float beta = 1.f; + float * beta = new float[W_L * H_L]; + + for (int co = 0; co < H_L * W_L; co++) { + beta[co] = 1.f; + } if (cp.eff < 2.5f) { float effect = cp.eff; @@ -3153,27 +3158,27 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float WavCL = std::fabs(WavCoeffs_L[dir][co]); if (WavCL < mea[0]) { - beta = 0.05f; + beta[co] = 0.05f; } else if (WavCL < mea[1]) { - beta = 0.2f; + beta[co] = 0.2f; } else if (WavCL < mea[2]) { - beta = 0.7f; + beta[co] = 0.7f; } else if (WavCL < mea[3]) { - beta = 1.f; //standard + beta[co] = 1.f; //standard } else if (WavCL < mea[4]) { - beta = 1.f; + beta[co] = 1.f; } else if (WavCL < mea[5]) { - beta = 0.8f; //+sigma + beta[co] = 0.8f; //+sigma } else if (WavCL < mea[6]) { - beta = 0.6f; + beta[co] = 0.6f; } else if (WavCL < mea[7]) { - beta = 0.4f; + beta[co] = 0.4f; } else if (WavCL < mea[8]) { - beta = 0.2f; // + 2 sigma + beta[co] = 0.2f; // + 2 sigma } else if (WavCL < mea[9]) { - beta = 0.1f; + beta[co] = 0.1f; } else { - beta = 0.0f; + beta[co] = 0.0f; } } @@ -3272,7 +3277,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz value *= (atten01234 * scaleskip[1]); //for zoom < 100% reduce strength...I choose level 1...but!! } - value *= beta; + // value *= beta; float edge = 1.f; float lim0 = 20.f; //arbitrary limit for low radius and level between 2 or 3 to 30 maxi float lev = float (level); @@ -3432,7 +3437,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz edge = rtengine::max(edge, 1.f); } - WavCoeffs_L[dir][k] *= edge; + WavCoeffs_L[dir][k] *= (1.f + (edge - 1.f) * beta[k]); } } } else if (cp.EDmet == 1) { //threshold adjuster @@ -3549,7 +3554,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } } - WavCoeffs_L[dir][k] *= edge; + WavCoeffs_L[dir][k] *= (1.f + (edge - 1.f) * beta[k]); } } } @@ -3557,6 +3562,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz if (!lipschitz) { delete [] koe; } + + delete[] beta; } From cb700cc67642c2c1462bd2257f3125cf38f8a57b Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Apr 2020 09:38:05 +0200 Subject: [PATCH 429/453] Fixed bad behavior blur levels damper --- rtengine/ipwavelet.cc | 63 +++++++++++++++++++++++++------------------ 1 file changed, 37 insertions(+), 26 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 38c873824..92fe16f98 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -2414,8 +2414,11 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * // printf("Blur level L\n"); float mea[10]; float effect = cp.bluwav; - float beta = 0.f; float offs = 1.f; + float * beta = new float[Wlvl_L * Hlvl_L]; + for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { + beta[co] = 1.f; + } calceffect(lvl, mean, sigma, mea, effect, offs); @@ -2427,41 +2430,41 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float WavCL = std::fabs(WavCoeffs_L[dir][co]); if (WavCL < mea[0]) { - beta = 0.05f; + beta[co] = 0.05f; n0++; if (WavCL < 32.7) { n32++; } } else if (WavCL < mea[1]) { - beta = 0.2f; + beta[co] = 0.2f; n1++; } else if (WavCL < mea[2]) { - beta = 0.7f; + beta[co] = 0.7f; n2++; } else if (WavCL < mea[3]) { - beta = 1.f; //standard + beta[co] = 1.f; //standard n3++; } else if (WavCL < mea[4]) { - beta = 1.f; + beta[co] = 1.f; n4++; } else if (WavCL < mea[5]) { - beta = 0.8f; //+sigma + beta[co] = 0.8f; //+sigma n5++; } else if (WavCL < mea[6]) { - beta = 0.6f; + beta[co] = 0.6f; n6++; } else if (WavCL < mea[7]) { - beta = 0.4f; + beta[co] = 0.4f; n7++; } else if (WavCL < mea[8]) { - beta = 0.2f; // + 2 sigma + beta[co] = 0.2f; // + 2 sigma n8++; } else if (WavCL < mea[9]) { - beta = 0.1f; + beta[co] = 0.1f; n9++; } else { - beta = 0.01f; + beta[co] = 0.01f; n10++; } @@ -2474,15 +2477,18 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * klev = (wavblcurve[lvl * 55.5f]); - klev *= beta * 100.f / skip; + // klev *= beta * 100.f / skip; + klev *= 100.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { + aft[co] = bef[co] * (1.f - beta[co]) + aft[co] * beta[co]; WavCoeffs_L[dir][co] = aft[co]; } delete[] bef; delete[] aft; + delete[] beta; } } } @@ -2738,8 +2744,11 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float mea[10]; float effect = cp.bluwav; - float beta = 0.f; float offs = 1.f; + float * beta = new float[Wlvl_ab * Hlvl_ab]; + for (int co = 0; co < Wlvl_ab * Hlvl_ab; co++) { + beta[co] = 1.f; + } calceffect(lvl, meanab, sigmaab, mea, effect, offs); @@ -2752,27 +2761,27 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float WavCab = std::fabs(WavCoeffs_ab[dir][co]); if (WavCab < mea[0]) { - beta = 0.05f; + beta[co] = 0.05f; } else if (WavCab < mea[1]) { - beta = 0.2f; + beta[co] = 0.2f; } else if (WavCab < mea[2]) { - beta = 0.7f; + beta[co] = 0.7f; } else if (WavCab < mea[3]) { - beta = 1.f; //standard + beta[co] = 1.f; //standard } else if (WavCab < mea[4]) { - beta = 1.f; + beta[co] = 1.f; } else if (WavCab < mea[5]) { - beta = 0.8f; //+sigma + beta[co] = 0.8f; //+sigma } else if (WavCab < mea[6]) { - beta = 0.6f; + beta[co] = 0.6f; } else if (WavCab < mea[7]) { - beta = 0.4f; + beta[co] = 0.4f; } else if (WavCab < mea[8]) { - beta = 0.2f; // + 2 sigma + beta[co] = 0.2f; // + 2 sigma } else if (WavCab < mea[9]) { - beta = 0.1f; + beta[co] = 0.1f; } else { - beta = 0.0f; + beta[co] = 0.0f; } @@ -2780,16 +2789,18 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float klev = (wavblcurve[lvl * 55.5f]); - klev *= beta * cp.chrwav * 100.f / skip; + klev *= cp.chrwav * 100.f / skip; boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { + aft[co] = bef[co] * (1.f - beta[co]) + aft[co] * beta[co]; WavCoeffs_ab[dir][co] = aft[co]; } delete[] bef; delete[] aft; + delete[] beta; } From 62fd0a0401e779c896e4e1b1453dfdfe49b3dda2 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Apr 2020 10:18:10 +0200 Subject: [PATCH 430/453] Wavelet - Add colored left bar to toning curve --- rtgui/wavelet.cc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 475c6d866..1d4ad8315 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -502,6 +502,12 @@ Wavelet::Wavelet() : opacityShapeRG = static_cast(opaCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false)); opacityShapeRG->setIdentityValue(0.); opacityShapeRG->setResetCurve(FlatCurveType(default_params.opacityCurveRG.at(0)), default_params.opacityCurveRG); + //from green to magenta + std::vector mileston = { + GradientMilestone(0., 0., 1., 0.), + GradientMilestone(1., 1., 0., 1.) + }; + opacityShapeRG->setLeftBarBgGradient(mileston); opaCurveEditorG->curveListComplete(); opaCurveEditorG->show(); @@ -513,6 +519,12 @@ Wavelet::Wavelet() : opacityShapeBY = static_cast(opacityCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false)); opacityShapeBY->setIdentityValue(0.); opacityShapeBY->setResetCurve(FlatCurveType(default_params.opacityCurveBY.at(0)), default_params.opacityCurveBY); + //from blue to yellow + mileston = { + GradientMilestone(0., 0., 0., 1.), + GradientMilestone(1., 1., 1., 0.) + }; + opacityShapeBY->setLeftBarBgGradient(mileston); opacityCurveEditorG->curveListComplete(); opacityCurveEditorG->show(); From ad207e003caeba2dc5dae90e9968ede5cc7d3528 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Apr 2020 13:08:02 +0200 Subject: [PATCH 431/453] Wavelet Improve Chroma with link contrast levels --- rtengine/ipwavelet.cc | 46 ++++++++++++++++++++++++++++++++++++------- rtgui/wavelet.cc | 6 +++--- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 92fe16f98..f6055a3e1 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -2416,6 +2416,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float effect = cp.bluwav; float offs = 1.f; float * beta = new float[Wlvl_L * Hlvl_L]; + for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { beta[co] = 1.f; } @@ -2477,7 +2478,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * klev = (wavblcurve[lvl * 55.5f]); - // klev *= beta * 100.f / skip; + // klev *= beta * 100.f / skip; klev *= 100.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); @@ -2746,6 +2747,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float effect = cp.bluwav; float offs = 1.f; float * beta = new float[Wlvl_ab * Hlvl_ab]; + for (int co = 0; co < Wlvl_ab * Hlvl_ab; co++) { beta[co] = 1.f; } @@ -3887,13 +3889,43 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f //to adjust increase contrast with local contrast bool useSkinControl = (skinprot != 0.f); + float mea[10]; + float effect = cp.sigmacol; + float betaab = 1.f; + float offs = 1.f; + float alphaC = 1.f; - - - - float alphaC = (1024.f + 15.f * cpMul * cpChrom / 50.f) / 1024.f ; + calceffect(level, meanab, sigmaab, mea, effect, offs); for (int i = 0; i < W_ab * H_ab; i++) { + float WavCab = std::fabs(WavCoeffs_ab[dir][i]); + + if (WavCab < mea[0]) { + betaab = 0.05f; + } else if (WavCab < mea[1]) { + betaab = 0.2f; + } else if (WavCab < mea[2]) { + betaab = 0.7f; + } else if (WavCab < mea[3]) { + betaab = 1.f; //standard + } else if (WavCab < mea[4]) { + betaab = 1.f; + } else if (WavCab < mea[5]) { + betaab = 0.8f; //+sigma + } else if (WavCab < mea[6]) { + betaab = 0.6f; + } else if (WavCab < mea[7]) { + betaab = 0.4f; + } else if (WavCab < mea[8]) { + betaab = 0.2f; // + 2 sigma + } else if (WavCab < mea[9]) { + betaab = 0.1f; + } else { + betaab = 0.0f; + } + + float scale = 1.f; + if (useSkinControl) { int ii = i / W_ab; int jj = i - ii * W_ab; @@ -3901,7 +3933,6 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float modhue = varhue[ii][jj]; float modchro = varchrom[ii * 2][jj * 2]; // hue chroma skin with initial lab data - float scale = 1.f; if (skinprot > 0.f) { Color::SkinSatCbdl2(LL100, modhue, modchro, skinprot, scale, true, cp.b_l, cp.t_l, cp.t_r, cp.b_r, 0); //0 for skin and extand @@ -3910,9 +3941,10 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f scale = (scale == 1.f) ? factorHard : 1.f; } - alphaC = (1024.f + 15.f * cpMul * cpChrom * scale / 50.f) / 1024.f ; } + alphaC = (1024.f + 15.f * cpMul * cpChrom * betaab * scale / 50.f) / 1024.f ; + WavCoeffs_ab[dir][i] *= alphaC; } } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 1d4ad8315..d84277693 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -2426,7 +2426,7 @@ void Wavelet::CHmethodUpdateUI() if (!batchMode) { if (CHmethod->get_active_row_number() == 0) { CHSLmethod->show(); - sigmacol->show(); + // sigmacol->show(); pastlev->hide(); satlev->hide(); chroma->hide(); @@ -2446,7 +2446,7 @@ void Wavelet::CHmethodUpdateUI() } } else if (CHmethod->get_active_row_number() == 1) { CHSLmethod->show(); - sigmacol->show(); + // sigmacol->show(); pastlev->show(); satlev->show(); chroma->show(); @@ -2466,7 +2466,7 @@ void Wavelet::CHmethodUpdateUI() } } else { chro->show(); - sigmacol->hide(); + // sigmacol->hide(); pastlev->hide(); satlev->hide(); chroma->hide(); From feb2c7c77f78d59c9cf12c11c95d81097190b16f Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 14 Apr 2020 16:20:15 +0200 Subject: [PATCH 432/453] Improve GUI final Touchup --- rtdata/languages/default | 1 + rtgui/wavelet.cc | 24 +++++++++++++----------- rtgui/wavelet.h | 1 + 3 files changed, 15 insertions(+), 11 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 8d4472f04..10fb47e89 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2209,6 +2209,7 @@ TP_WAVELET_DAUB6;D6 - standard plus TP_WAVELET_DAUB10;D10 - medium TP_WAVELET_DAUB14;D14 - high TP_WAVELET_DAUB_TOOLTIP;Changes Daubechies coefficients:\nD4 = Standard,\nD14 = Often best performance, 10% more time-intensive.\n\nAffects edge detection as well as the general quality of the firsts levels. However the quality is not strictly related to this coefficient and can vary with images and uses. +TP_WAVELET_DIRFRAME;Directional contrast TP_WAVELET_DONE;Vertical TP_WAVELET_DTHR;Diagonal TP_WAVELET_DTWO;Horizontal diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index d84277693..1649b0afe 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -166,6 +166,7 @@ Wavelet::Wavelet() : chromaFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROMAFRAME")))), chroFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROFRAME")))), fincFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_FINCFRAME")))), + dirFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_DIRFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), @@ -1034,20 +1035,18 @@ Wavelet::Wavelet() : fincBox->pack_start(*sigmafin); fincFrame->add(*fincBox); + dirFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const dirBox = Gtk::manage(new ToolParamBlock()); + dirBox->pack_start(*ctboxBA); + dirBox->pack_start(*balance); + dirBox->pack_start(*opacityCurveEditorW, Gtk::PACK_SHRINK, 2); + dirBox->pack_start(*iter); + dirBox->pack_start(*tmr); + dirFrame->add(*dirBox); ToolParamBlock* const finalBox = Gtk::manage(new ToolParamBlock()); + finalBox->pack_start(*dirFrame); - finalBox->pack_start(*ctboxBA); - finalBox->pack_start(*balance); - - finalBox->pack_start(*opacityCurveEditorW, Gtk::PACK_SHRINK, 2); - - finalBox->pack_start(*iter); - - finalBox->pack_start(*tmr); -// finalBox->pack_start(*separatorbalend, Gtk::PACK_SHRINK, 2); -// finalBox->pack_start(*opacityCurveEditorWL, Gtk::PACK_SHRINK, 2); -// finalBox->pack_start(*sigmafin); finalBox->pack_start(*fincFrame); finalBox->pack_start(*curveEditorG, Gtk::PACK_SHRINK, 4); finalBox->pack_start(*softradend); @@ -2568,15 +2567,18 @@ void Wavelet::BAmethodUpdateUI() balance->hide(); opacityCurveEditorW->hide(); iter->hide(); + tmr->hide(); } else if (BAmethod->get_active_row_number() == 1) { //sli opacityCurveEditorW->hide(); balance->show(); iter->show(); + tmr->show(); } else if (BAmethod->get_active_row_number() == 2) { //CU opacityCurveEditorW->show(); balance->hide(); iter->show(); + tmr->show(); } } } diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 4a4947b2a..644d8f6b9 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -301,6 +301,7 @@ private: Gtk::Frame* const chromaFrame; Gtk::Frame* const chroFrame; Gtk::Frame* const fincFrame; + Gtk::Frame* const dirFrame; Gtk::Label* const wavLabels; Gtk::Label* const labmC; From b0f73d7cd3329d2fbcc5a5d6699bf4e6d4ca1eb9 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 15 Apr 2020 08:48:18 +0200 Subject: [PATCH 433/453] Wavelet - added damper to directionnal contrast --- rtdata/languages/default | 1 + rtengine/ipwavelet.cc | 53 +++++++++++++++++++++++++++++++++++++--- rtengine/procparams.cc | 4 +++ rtengine/procparams.h | 1 + rtgui/paramsedited.cc | 6 +++++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 14 +++++++++++ rtgui/wavelet.h | 2 ++ 8 files changed, 79 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 10fb47e89..21b3da555 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -820,6 +820,7 @@ HISTORY_MSG_EDGEFFECT;Edge Damper HISTORY_MSG_SIGMAFIN;Final contrast Damper HISTORY_MSG_SIGMATON;Toning Damper HISTORY_MSG_SIGMACOL;Chroma Damper +HISTORY_MSG_SIGMADIR;Dir Damper HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index f6055a3e1..f53ad083f 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -116,6 +116,7 @@ struct cont_params { float sigmafin; float sigmaton; float sigmacol; + float sigmadir; int ite; int contmet; bool opaW; @@ -197,6 +198,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.sigmafin = params->wavelet.sigmafin; cp.sigmaton = params->wavelet.sigmaton; cp.sigmacol = params->wavelet.sigmacol; + cp.sigmadir = params->wavelet.sigmadir; if (params->wavelet.TMmethod == "cont") { cp.contmet = 1; @@ -3768,7 +3770,52 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } if (cp.bam && cp.finena) { + float effect = cp.sigmadir; + float offs = 1.f; + float mea[10]; + float * beta = new float[W_L * H_L]; + + for (int co = 0; co < H_L * W_L; co++) { + beta[co] = 1.f; + } + + calceffect(level, mean, sigma, mea, effect, offs); + + + for (int co = 0; co < H_L * W_L; co++) { + float WavCL = std::fabs(WavCoeffs_L[dir][co]); + + if (WavCL < mea[0]) { + beta[co] = 0.05f; + } else if (WavCL < mea[1]) { + beta[co] = 0.2f; + } else if (WavCL < mea[2]) { + beta[co] = 0.7f; + } else if (WavCL < mea[3]) { + beta[co] = 1.f; //standard + } else if (WavCL < mea[4]) { + beta[co] = 1.f; + } else if (WavCL < mea[5]) { + beta[co] = 0.8f; //+sigma + } else if (WavCL < mea[6]) { + beta[co] = 0.6f; + } else if (WavCL < mea[7]) { + beta[co] = 0.4f; + } else if (WavCL < mea[8]) { + beta[co] = 0.2f; // + 2 sigma + } else if (WavCL < mea[9]) { + beta[co] = 0.1f; + } else { + beta[co] = 0.01f; + } + } + + if (cp.opaW && cp.BAmet == 2) { + + + + int iteration = cp.ite; int itplus = 7 + iteration; int itmoins = 7 - iteration; @@ -3804,7 +3851,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz kba = 1.f - k2; } - WavCoeffs_L[dir][i] *= (kba); + WavCoeffs_L[dir][i] *= (1.f + (kba -1.f) * beta[i]); } } } @@ -3863,11 +3910,11 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz kba = 1.f - bal / k2; } - WavCoeffs_L[dir][i] *= (kba); + WavCoeffs_L[dir][i] *= (1.f + (kba -1.f) * beta[i]); } } } - + delete[] beta; } // to see each level of wavelet ...level from 0 to 8 diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 7b6a8f123..110d9368f 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2266,6 +2266,7 @@ WaveletParams::WaveletParams() : sigmafin(1.0), sigmaton(1.0), sigmacol(1.0), + sigmadir(1.0), iter(0), expcontrast(false), expchroma(false), @@ -2383,6 +2384,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && sigmafin == other.sigmafin && sigmaton == other.sigmaton && sigmacol == other.sigmacol + && sigmadir == other.sigmadir && iter == other.iter && expcontrast == other.expcontrast && expchroma == other.expchroma @@ -3529,6 +3531,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.sigmafin, "Wavelet", "Sigmafin", wavelet.sigmafin, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmaton, "Wavelet", "Sigmaton", wavelet.sigmaton, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmacol, "Wavelet", "Sigmacol", wavelet.sigmacol, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.sigmadir, "Wavelet", "Sigmadir", wavelet.sigmadir, keyFile); saveToKeyfile(!pedited || pedited->wavelet.iter, "Wavelet", "Iter", wavelet.iter, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thres, "Wavelet", "MaxLev", wavelet.thres, keyFile); saveToKeyfile(!pedited || pedited->wavelet.Tilesmethod, "Wavelet", "TilesMethod", wavelet.Tilesmethod, keyFile); @@ -4712,6 +4715,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Sigmafin", pedited, wavelet.sigmafin, pedited->wavelet.sigmafin); assignFromKeyfile(keyFile, "Wavelet", "Sigmaton", pedited, wavelet.sigmaton, pedited->wavelet.sigmaton); assignFromKeyfile(keyFile, "Wavelet", "Sigmacol", pedited, wavelet.sigmacol, pedited->wavelet.sigmacol); + assignFromKeyfile(keyFile, "Wavelet", "Sigmadir", pedited, wavelet.sigmadir, pedited->wavelet.sigmadir); assignFromKeyfile(keyFile, "Wavelet", "Iter", pedited, wavelet.iter, pedited->wavelet.iter); assignFromKeyfile(keyFile, "Wavelet", "Median", pedited, wavelet.median, pedited->wavelet.median); assignFromKeyfile(keyFile, "Wavelet", "Medianlev", pedited, wavelet.medianlev, pedited->wavelet.medianlev); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 536f260bc..cd09c2e6d 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1224,6 +1224,7 @@ struct WaveletParams { double sigmafin; double sigmaton; double sigmacol; + double sigmadir; int iter; bool expcontrast; bool expchroma; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 8a97681e4..a367b3db4 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -478,6 +478,7 @@ void ParamsEdited::set(bool v) wavelet.sigmafin = v; wavelet.sigmaton = v; wavelet.sigmacol = v; + wavelet.sigmadir = v; wavelet.median = v; wavelet.medianlev = v; wavelet.linkedg = v; @@ -1092,6 +1093,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.sigmafin = wavelet.sigmafin && p.wavelet.sigmafin == other.wavelet.sigmafin; wavelet.sigmaton = wavelet.sigmaton && p.wavelet.sigmaton == other.wavelet.sigmaton; wavelet.sigmacol = wavelet.sigmacol && p.wavelet.sigmacol == other.wavelet.sigmacol; + wavelet.sigmadir = wavelet.sigmadir && p.wavelet.sigmadir == other.wavelet.sigmadir; wavelet.median = wavelet.median && p.wavelet.median == other.wavelet.median; wavelet.medianlev = wavelet.medianlev && p.wavelet.medianlev == other.wavelet.medianlev; wavelet.linkedg = wavelet.linkedg && p.wavelet.linkedg == other.wavelet.linkedg; @@ -2915,6 +2917,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.sigmacol = mods.wavelet.sigmacol; } + if (wavelet.sigmadir) { + toEdit.wavelet.sigmadir = mods.wavelet.sigmadir; + } + if (wavelet.iter) { toEdit.wavelet.iter = mods.wavelet.iter; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index c17ea52c7..2cb4aa943 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -502,6 +502,7 @@ struct WaveletParamsEdited { bool sigmafin; bool sigmaton; bool sigmacol; + bool sigmadir; bool median; bool medianlev; bool linkedg; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 1649b0afe..3805ed4c6 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -115,6 +115,7 @@ Wavelet::Wavelet() : sigmafin(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), sigmaton(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), sigmacol(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), + sigmadir(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), hueskin(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false))), hueskin2(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false))), hllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false))), @@ -215,6 +216,7 @@ Wavelet::Wavelet() : EvWavsigmafin = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMAFIN"); EvWavsigmaton = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMATON"); EvWavsigmacol = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMACOL"); + EvWavsigmadir = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMADIR"); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -1001,6 +1003,7 @@ Wavelet::Wavelet() : iter->setAdjusterListener(this); iter->set_tooltip_text(M("TP_WAVELET_ITER_TOOLTIP")); + sigmadir->setAdjusterListener(this); // Gtk::HSeparator* const separatorbalend = Gtk::manage(new Gtk::HSeparator()); @@ -1041,6 +1044,7 @@ Wavelet::Wavelet() : dirBox->pack_start(*balance); dirBox->pack_start(*opacityCurveEditorW, Gtk::PACK_SHRINK, 2); dirBox->pack_start(*iter); + dirBox->pack_start(*sigmadir); dirBox->pack_start(*tmr); dirFrame->add(*dirBox); @@ -1454,6 +1458,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) sigmafin->setValue(pp->wavelet.sigmafin); sigmaton->setValue(pp->wavelet.sigmaton); sigmacol->setValue(pp->wavelet.sigmacol); + sigmadir->setValue(pp->wavelet.sigmadir); for (int i = 0; i < 9; i++) { correction[i]->setValue(pp->wavelet.c[i]); @@ -1574,6 +1579,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) sigmafin->setEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); sigmaton->setEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); sigmacol->setEditedState(pedited->wavelet.sigmacol ? Edited : UnEdited); + sigmadir->setEditedState(pedited->wavelet.sigmadir ? Edited : UnEdited); threshold->setEditedState(pedited->wavelet.threshold ? Edited : UnEdited); threshold2->setEditedState(pedited->wavelet.threshold2 ? Edited : UnEdited); edgedetect->setEditedState(pedited->wavelet.edgedetect ? Edited : UnEdited); @@ -1848,6 +1854,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.sigmafin = sigmafin->getValue(); pp->wavelet.sigmaton = sigmaton->getValue(); pp->wavelet.sigmacol = sigmacol->getValue(); + pp->wavelet.sigmadir = sigmadir->getValue(); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); @@ -1957,6 +1964,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.sigmafin = sigmafin->getEditedState(); pedited->wavelet.sigmaton = sigmaton->getEditedState(); pedited->wavelet.sigmacol = sigmacol->getEditedState(); + pedited->wavelet.sigmadir = sigmadir->getEditedState(); pedited->wavelet.wavclCurve = !clshape->isUnChanged(); pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); @@ -2140,6 +2148,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigmafin->setDefault(defParams->wavelet.sigmafin); sigmaton->setDefault(defParams->wavelet.sigmaton); sigmacol->setDefault(defParams->wavelet.sigmacol); + sigmadir->setDefault(defParams->wavelet.sigmadir); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); lowthr->setDefault(defParams->wavelet.lowthr); @@ -2265,6 +2274,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigmafin->setDefaultEditedState(pedited->wavelet.sigmafin ? Edited : UnEdited); sigmaton->setDefaultEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); sigmacol->setDefaultEditedState(pedited->wavelet.sigmacol ? Edited : UnEdited); + sigmadir->setDefaultEditedState(pedited->wavelet.sigmadir ? Edited : UnEdited); level0noise->setDefaultEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setDefaultEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setDefaultEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -2330,6 +2340,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigmafin->setDefaultEditedState(Irrelevant); sigmaton->setDefaultEditedState(Irrelevant); sigmacol->setDefaultEditedState(Irrelevant); + sigmadir->setDefaultEditedState(Irrelevant); for (int i = 0; i < 9; i++) { correction[i]->setDefaultEditedState(Irrelevant); @@ -2871,6 +2882,7 @@ void Wavelet::setBatchMode(bool batchMode) sigmafin->showEditedCB(); sigmaton->showEditedCB(); sigmacol->showEditedCB(); + sigmadir->showEditedCB(); level0noise->showEditedCB(); level1noise->showEditedCB(); level2noise->showEditedCB(); @@ -3026,6 +3038,8 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavsigmaton, sigmaton->getTextValue()); } else if (a == sigmacol) { listener->panelChanged(EvWavsigmacol, sigmacol->getTextValue()); + } else if (a == sigmadir) { + listener->panelChanged(EvWavsigmadir, sigmadir->getTextValue()); } else if (a == greenhigh) { listener->panelChanged(EvWavgreenhigh, greenhigh->getTextValue()); } else if (a == bluehigh) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index 644d8f6b9..b235cde47 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -96,6 +96,7 @@ private: rtengine::ProcEvent EvWavsigmafin; rtengine::ProcEvent EvWavsigmaton; rtengine::ProcEvent EvWavsigmacol; + rtengine::ProcEvent EvWavsigmadir; void foldAllButMe(GdkEventButton* event, MyExpander *expander); @@ -224,6 +225,7 @@ private: Adjuster* const sigmafin; Adjuster* const sigmaton; Adjuster* const sigmacol; + Adjuster* const sigmadir; Adjuster* greenlow; Adjuster* bluelow; From a481b18e94cad95a380db0b19c43b6545191b717 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 15 Apr 2020 15:37:13 +0200 Subject: [PATCH 434/453] Save provisory work on toning --- rtdata/languages/default | 4 +++ rtengine/ipwavelet.cc | 75 ++++++++++++++++++++++++++++++++++++++-- rtengine/procparams.cc | 28 +++++++++++++++ rtengine/procparams.h | 10 +++++- rtgui/paramsedited.cc | 36 +++++++++++++++++++ rtgui/paramsedited.h | 7 ++++ rtgui/wavelet.cc | 58 +++++++++++++++++++++++++++++++ rtgui/wavelet.h | 12 ++++++- 8 files changed, 225 insertions(+), 5 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 21b3da555..5627dab4c 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -821,6 +821,8 @@ HISTORY_MSG_SIGMAFIN;Final contrast Damper HISTORY_MSG_SIGMATON;Toning Damper HISTORY_MSG_SIGMACOL;Chroma Damper HISTORY_MSG_SIGMADIR;Dir Damper +HISTORY_MSG_RANGEAB;Range ab +HISTORY_MSG_PROTAB;Protection HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2287,7 +2289,9 @@ TP_WAVELET_OPACITYWL;Local contrast TP_WAVELET_OPACITYWL_TOOLTIP;Modify the final local contrast at the end of the wavelet treatment.\n\nThe left side represents the smallest local contrast, progressing to the largest local contrast on the right. TP_WAVELET_PASTEL;Pastel chroma TP_WAVELET_PROC;Process +TP_WAVELET_PROTAB;Protection TP_WAVELET_RADIUS;Radius Shadows - Highlight +TP_WAVELET_RANGEAB;Range a and b % TP_WAVELET_RE1;Reinforced TP_WAVELET_RE2;Unchanged TP_WAVELET_RE3;Reduced diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index f53ad083f..5b170ff9b 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -146,6 +146,19 @@ struct cont_params { float balchrom; float chromfi; float chromco; + float factor; + float scaling; + float scaledirect; + float a_scale; + float a_base; + float b_scale; + float b_base; + float a_high; + float a_low; + float b_high; + float b_low; + float rangeab; + float protab; }; int wavNestedLevels = 1; @@ -318,6 +331,20 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.mulC[m] = waparams.ch[m]; } + cp.factor = WaveletParams::LABGRID_CORR_MAX * 3.276f; + cp.scaling = WaveletParams::LABGRID_CORR_SCALE; + cp.scaledirect = WaveletParams::LABGRIDL_DIRECT_SCALE; + cp.a_scale = (params->wavelet.labgridAHigh - params->wavelet.labgridALow) / cp.factor / cp.scaling; + cp.a_base = params->wavelet.labgridALow / cp.scaling; + cp.b_scale = (params->wavelet.labgridBHigh - params->wavelet.labgridBLow) / cp.factor / cp.scaling; + cp.b_base = params->wavelet.labgridBLow / cp.scaling; + cp.a_high = 3.276f * params->wavelet.labgridAHigh; + cp.a_low = 3.276f * params->wavelet.labgridALow; + cp.b_high = 3.276f * params->wavelet.labgridBHigh; + cp.b_low = 3.276f * params->wavelet.labgridBLow; + cp.rangeab = params->wavelet.rangeab; + cp.protab = params->wavelet.protab; + if (waOpacityCurveRG) { cp.opaRG = true; } @@ -3851,7 +3878,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz kba = 1.f - k2; } - WavCoeffs_L[dir][i] *= (1.f + (kba -1.f) * beta[i]); + WavCoeffs_L[dir][i] *= (1.f + (kba - 1.f) * beta[i]); } } } @@ -3910,10 +3937,11 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz kba = 1.f - bal / k2; } - WavCoeffs_L[dir][i] *= (1.f + (kba -1.f) * beta[i]); + WavCoeffs_L[dir][i] *= (1.f + (kba - 1.f) * beta[i]); } } } + delete[] beta; } @@ -4131,6 +4159,25 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float effect = cp.sigmaton; float betaab = 0.f; float offs = 1.f; + float protec = 0.01f * cp.protab; + // printf("rangeab=%f \n", 0.01f * cp.rangeab); + // printf("protab=%f \n", 0.01f * cp.protab); + float aref1 = cp.a_high; + float bref1 = cp.b_high; + float aref2 = cp.a_low; + float bref2 = cp.b_low; + // printf("a1=%f b1=%f a2=%f b2=%f\n", aref1, bref1, aref2, bref2); + + float arefplus1 = aref1 * (1.f + 0.1f * cp.rangeab); + float arefmoins1 = aref1 * (1.f - 0.1f * cp.rangeab); + float brefplus1 = bref1 * (1.f + 0.1f * cp.rangeab); + float brefmoins1 = bref1 * (1.f - 0.1f * cp.rangeab); + // printf("a1+=%f a1-=%f b+=%f b-=%f\n", arefplus1, arefmoins1, brefplus1, brefmoins1); + + float arefplus2 = aref2 * (1.f + 0.1f * cp.rangeab); + float arefmoins2 = aref2 * (1.f - 0.1f * cp.rangeab); + float brefplus2 = bref2 * (1.f + 0.1f * cp.rangeab); + float brefmoins2 = bref2 * (1.f - 0.1f * cp.rangeab); calceffect(level, meanab, sigmaab, mea, effect, offs); @@ -4161,8 +4208,30 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f betaab = 0.0f; } + float kreduc1 = 1.f; + float kreduc2 = 1.f; + int ii = co / W_ab; + int jj = co - ii * W_ab; + cp.protab = 0.f;// always disabled provisory... + if (cp.protab > 0.f) { - float beta = (1024.f + 50.f * mulOpacity * betaab) / 1024.f ; + if ((labco->a[ii * 2][jj * 2] > arefmoins1) && (labco->a[ii * 2][jj * 2] < arefplus1) + && (labco->b[ii * 2][jj * 2] > brefmoins1) && (labco->b[ii * 2][jj * 2] < brefplus1)) { + kreduc1 = protec; + // printf("p "); + } + + if ((labco->a[ii * 2][jj * 2] > arefmoins2) && (labco->a[ii * 2][jj * 2] < arefplus2) + && (labco->b[ii * 2][jj * 2] > brefmoins2) && (labco->b[ii * 2][jj * 2] < brefplus2)) { + kreduc2 = protec; + // printf("P "); + } + + + // printf("pa1=%f pa2=%f\n", kreduc1, kredu2); + } + + float beta = (1024.f + 50.f * mulOpacity * betaab * kreduc1 * kreduc2) / 1024.f ; WavCoeffs_ab[dir][co] *= beta; } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 110d9368f..e1765a5f0 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2148,6 +2148,10 @@ bool ColorManagementParams::operator !=(const ColorManagementParams& other) cons return !(*this == other); } +const double WaveletParams::LABGRID_CORR_MAX = 12800.f; +const double WaveletParams::LABGRID_CORR_SCALE = 3.276f; +const double WaveletParams::LABGRIDL_DIRECT_SCALE = 41950.; + WaveletParams::WaveletParams() : ccwcurve{ static_cast(FCT_MinMaxCPoints), @@ -2267,6 +2271,8 @@ WaveletParams::WaveletParams() : sigmaton(1.0), sigmacol(1.0), sigmadir(1.0), + rangeab(20.0), + protab(0.0), iter(0), expcontrast(false), expchroma(false), @@ -2279,6 +2285,10 @@ WaveletParams::WaveletParams() : exptoning(false), expnoise(false), expclari(false), + labgridALow(0.0), + labgridBLow(0.0), + labgridAHigh(0.0), + labgridBHigh(0.0), Lmethod(4), CLmethod("all"), Backmethod("grey"), @@ -2385,7 +2395,13 @@ bool WaveletParams::operator ==(const WaveletParams& other) const && sigmaton == other.sigmaton && sigmacol == other.sigmacol && sigmadir == other.sigmadir + && rangeab == other.rangeab + && protab == other.protab && iter == other.iter + && labgridALow == other.labgridALow + && labgridBLow == other.labgridBLow + && labgridAHigh == other.labgridAHigh + && labgridBHigh == other.labgridBHigh && expcontrast == other.expcontrast && expchroma == other.expchroma && [this, &other]() -> bool @@ -3532,6 +3548,8 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.sigmaton, "Wavelet", "Sigmaton", wavelet.sigmaton, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmacol, "Wavelet", "Sigmacol", wavelet.sigmacol, keyFile); saveToKeyfile(!pedited || pedited->wavelet.sigmadir, "Wavelet", "Sigmadir", wavelet.sigmadir, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.rangeab, "Wavelet", "Rangeab", wavelet.rangeab, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.protab, "Wavelet", "Protab", wavelet.protab, keyFile); saveToKeyfile(!pedited || pedited->wavelet.iter, "Wavelet", "Iter", wavelet.iter, keyFile); saveToKeyfile(!pedited || pedited->wavelet.thres, "Wavelet", "MaxLev", wavelet.thres, keyFile); saveToKeyfile(!pedited || pedited->wavelet.Tilesmethod, "Wavelet", "TilesMethod", wavelet.Tilesmethod, keyFile); @@ -3563,6 +3581,10 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.exptoning, "Wavelet", "Exptoning", wavelet.exptoning, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expnoise, "Wavelet", "Expnoise", wavelet.expnoise, keyFile); saveToKeyfile(!pedited || pedited->wavelet.expclari, "Wavelet", "Expclari", wavelet.expclari, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.labgridALow, "Wavelet", "LabGridALow", wavelet.labgridALow, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.labgridBLow, "Wavelet", "LabGridBLow", wavelet.labgridBLow, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.labgridAHigh, "Wavelet", "LabGridAHigh", wavelet.labgridAHigh, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.labgridBHigh, "Wavelet", "LabGridBHigh", wavelet.labgridBHigh, keyFile); for (int i = 0; i < 9; i++) { std::stringstream ss; @@ -4716,6 +4738,8 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Sigmaton", pedited, wavelet.sigmaton, pedited->wavelet.sigmaton); assignFromKeyfile(keyFile, "Wavelet", "Sigmacol", pedited, wavelet.sigmacol, pedited->wavelet.sigmacol); assignFromKeyfile(keyFile, "Wavelet", "Sigmadir", pedited, wavelet.sigmadir, pedited->wavelet.sigmadir); + assignFromKeyfile(keyFile, "Wavelet", "Rangeab", pedited, wavelet.rangeab, pedited->wavelet.rangeab); + assignFromKeyfile(keyFile, "Wavelet", "Protab", pedited, wavelet.protab, pedited->wavelet.protab); assignFromKeyfile(keyFile, "Wavelet", "Iter", pedited, wavelet.iter, pedited->wavelet.iter); assignFromKeyfile(keyFile, "Wavelet", "Median", pedited, wavelet.median, pedited->wavelet.median); assignFromKeyfile(keyFile, "Wavelet", "Medianlev", pedited, wavelet.medianlev, pedited->wavelet.medianlev); @@ -4740,6 +4764,10 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "Showmask", pedited, wavelet.showmask, pedited->wavelet.showmask); assignFromKeyfile(keyFile, "Wavelet", "Oldsh", pedited, wavelet.oldsh, pedited->wavelet.oldsh); assignFromKeyfile(keyFile, "Wavelet", "TMr", pedited, wavelet.tmr, pedited->wavelet.tmr); + assignFromKeyfile(keyFile, "Wavelet", "LabGridALow", pedited, wavelet.labgridALow, pedited->wavelet.labgridALow); + assignFromKeyfile(keyFile, "Wavelet", "LabGridBLow", pedited, wavelet.labgridBLow, pedited->wavelet.labgridBLow); + assignFromKeyfile(keyFile, "Wavelet", "LabGridAHigh", pedited, wavelet.labgridAHigh, pedited->wavelet.labgridAHigh); + assignFromKeyfile(keyFile, "Wavelet", "LabGridBHigh", pedited, wavelet.labgridBHigh, pedited->wavelet.labgridBHigh); if (ppVersion < 331) { // wavelet.Lmethod was a string before version 331 Glib::ustring temp; diff --git a/rtengine/procparams.h b/rtengine/procparams.h index cd09c2e6d..24995525d 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1225,6 +1225,8 @@ struct WaveletParams { double sigmaton; double sigmacol; double sigmadir; + double rangeab; + double protab; int iter; bool expcontrast; bool expchroma; @@ -1237,7 +1239,13 @@ struct WaveletParams { bool exptoning; bool expnoise; bool expclari; - + double labgridALow; + double labgridBLow; + double labgridAHigh; + double labgridBHigh; + static const double LABGRID_CORR_MAX; + static const double LABGRID_CORR_SCALE; + static const double LABGRIDL_DIRECT_SCALE; int Lmethod; Glib::ustring CLmethod; Glib::ustring Backmethod; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index a367b3db4..85119fe80 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -479,6 +479,8 @@ void ParamsEdited::set(bool v) wavelet.sigmaton = v; wavelet.sigmacol = v; wavelet.sigmadir = v; + wavelet.rangeab = v; + wavelet.protab = v; wavelet.median = v; wavelet.medianlev = v; wavelet.linkedg = v; @@ -586,6 +588,10 @@ void ParamsEdited::set(bool v) wavelet.expresid = v; wavelet.exptoning = v; wavelet.expnoise = v; + wavelet.labgridALow = v; + wavelet.labgridBLow = v; + wavelet.labgridAHigh = v; + wavelet.labgridBHigh = v; for (int i = 0; i < 9; i++) { wavelet.c[i] = v; @@ -1094,6 +1100,8 @@ void ParamsEdited::initFrom(const std::vector& wavelet.sigmaton = wavelet.sigmaton && p.wavelet.sigmaton == other.wavelet.sigmaton; wavelet.sigmacol = wavelet.sigmacol && p.wavelet.sigmacol == other.wavelet.sigmacol; wavelet.sigmadir = wavelet.sigmadir && p.wavelet.sigmadir == other.wavelet.sigmadir; + wavelet.rangeab = wavelet.rangeab && p.wavelet.rangeab == other.wavelet.rangeab; + wavelet.protab = wavelet.protab && p.wavelet.protab == other.wavelet.protab; wavelet.median = wavelet.median && p.wavelet.median == other.wavelet.median; wavelet.medianlev = wavelet.medianlev && p.wavelet.medianlev == other.wavelet.medianlev; wavelet.linkedg = wavelet.linkedg && p.wavelet.linkedg == other.wavelet.linkedg; @@ -1197,6 +1205,10 @@ void ParamsEdited::initFrom(const std::vector& wavelet.exptoning = wavelet.exptoning && p.wavelet.exptoning == other.wavelet.exptoning; wavelet.expnoise = wavelet.expnoise && p.wavelet.expnoise == other.wavelet.expnoise; wavelet.expclari = wavelet.expclari && p.wavelet.expclari == other.wavelet.expclari; + wavelet.labgridALow = wavelet.labgridALow && p.wavelet.labgridALow == other.wavelet.labgridALow; + wavelet.labgridBLow = wavelet.labgridBLow && p.wavelet.labgridBLow == other.wavelet.labgridBLow; + wavelet.labgridAHigh = wavelet.labgridAHigh && p.wavelet.labgridAHigh == other.wavelet.labgridAHigh; + wavelet.labgridBHigh = wavelet.labgridBHigh && p.wavelet.labgridBHigh == other.wavelet.labgridBHigh; for (int level = 0; level < 9; ++level) { wavelet.c[level] = wavelet.c[level] && p.wavelet.c[level] == other.wavelet.c[level]; @@ -2897,6 +2909,22 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.enabled = mods.wavelet.enabled; } + if (wavelet.labgridALow) { + toEdit.wavelet.labgridALow = mods.wavelet.labgridALow; + } + + if (wavelet.labgridBLow) { + toEdit.wavelet.labgridBLow = mods.wavelet.labgridBLow; + } + + if (wavelet.labgridAHigh) { + toEdit.wavelet.labgridAHigh = mods.wavelet.labgridAHigh; + } + + if (wavelet.labgridBHigh) { + toEdit.wavelet.labgridBHigh = mods.wavelet.labgridBHigh; + } + if (wavelet.strength) { toEdit.wavelet.strength = mods.wavelet.strength; } @@ -2921,6 +2949,14 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.sigmadir = mods.wavelet.sigmadir; } + if (wavelet.rangeab) { + toEdit.wavelet.rangeab = mods.wavelet.rangeab; + } + + if (wavelet.protab) { + toEdit.wavelet.protab = mods.wavelet.protab; + } + if (wavelet.iter) { toEdit.wavelet.iter = mods.wavelet.iter; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 2cb4aa943..68340309d 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -503,6 +503,8 @@ struct WaveletParamsEdited { bool sigmaton; bool sigmacol; bool sigmadir; + bool rangeab; + bool protab; bool median; bool medianlev; bool linkedg; @@ -607,6 +609,11 @@ struct WaveletParamsEdited { bool exptoning; bool expnoise; bool expclari; + bool labgridALow; + bool labgridBLow; + bool labgridAHigh; + bool labgridBHigh; + }; struct DirPyrEqualizerParamsEdited { diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 3805ed4c6..08c4d6f4c 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -27,6 +27,7 @@ #include "rtimage.h" #include "options.h" #include "eventmapper.h" +#include "labgrid.h" #include "../rtengine/color.h" using namespace rtengine; @@ -116,6 +117,8 @@ Wavelet::Wavelet() : sigmaton(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), sigmacol(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), sigmadir(Gtk::manage(new Adjuster(M("TP_WAVELET_SIGMAFIN"), 0.025, 2.5, 0.01, 1.))), + rangeab(Gtk::manage(new Adjuster(M("TP_WAVELET_RANGEAB"), 0., 100., 0.1, 20.))), + protab(Gtk::manage(new Adjuster(M("TP_WAVELET_PROTAB"), 0., 100., 0.5, 0.))), hueskin(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKIN"), -314., 314., -5., 25., 170., 120., 0, false))), hueskin2(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HUESKY"), -314., 314., -260., -250, -130., -140., 0, false))), hllev(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_HIGHLIGHT"), 0., 100., 50., 75., 100., 98., 0, false))), @@ -168,6 +171,7 @@ Wavelet::Wavelet() : chroFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_CHROFRAME")))), fincFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_FINCFRAME")))), dirFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_DIRFRAME")))), + tonFrame(Gtk::manage(new Gtk::Frame(M("TP_WAVELET_TONFRAME")))), wavLabels(Gtk::manage(new Gtk::Label("---", Gtk::ALIGN_CENTER))), labmC(Gtk::manage(new Gtk::Label(M("TP_WAVELET_CTYPE") + ":"))), labmNP(Gtk::manage(new Gtk::Label(M("TP_WAVELET_NPTYPE") + ":"))), @@ -217,6 +221,11 @@ Wavelet::Wavelet() : EvWavsigmaton = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMATON"); EvWavsigmacol = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMACOL"); EvWavsigmadir = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_SIGMADIR"); + EvWavLabGridValue = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVLABGRID_VALUE"); + EvWavrangeab = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_RANGEAB"); + EvWavprotab = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_PROTAB"); + + labgrid = Gtk::manage(new LabGrid(EvWavLabGridValue, M("TP_WAVELET_LABGRID_VALUES"))); expsettings->signal_button_release_event().connect_notify(sigc::bind(sigc::mem_fun(this, &Wavelet::foldAllButMe), expsettings)); @@ -497,6 +506,8 @@ Wavelet::Wavelet() : // Toning ToolParamBlock* const tonBox = Gtk::manage(new ToolParamBlock()); sigmaton->setAdjusterListener(this); + rangeab->setAdjusterListener(this); + protab->setAdjusterListener(this); opaCurveEditorG->setCurveListener(this); @@ -515,6 +526,15 @@ Wavelet::Wavelet() : opaCurveEditorG->curveListComplete(); opaCurveEditorG->show(); tonBox->pack_start(*sigmaton); + + tonFrame->set_label_align(0.025, 0.5); + ToolParamBlock* const ton2Box = Gtk::manage(new ToolParamBlock()); + ton2Box->pack_start(*labgrid, Gtk::PACK_EXPAND_WIDGET, 2); + ton2Box->pack_start(*rangeab); + ton2Box->pack_start(*protab); + tonFrame->add(*ton2Box); +// tonBox->pack_start(*tonFrame); + tonBox->pack_start(*opaCurveEditorG, Gtk::PACK_SHRINK, 2); opacityCurveEditorG->setCurveListener(this); @@ -1157,6 +1177,13 @@ void Wavelet::neutral_pressed() } } +void Wavelet::setListener(ToolPanelListener *tpl) +{ + ToolPanel::setListener(tpl); + labgrid->setListener(tpl); +} + + void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) { @@ -1443,6 +1470,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) mergeC->setValue(pp->wavelet.mergeC); softrad->setValue(pp->wavelet.softrad); softradend->setValue(pp->wavelet.softradend); + labgrid->setParams(pp->wavelet.labgridALow / WaveletParams::LABGRID_CORR_MAX, pp->wavelet.labgridBLow / WaveletParams::LABGRID_CORR_MAX, pp->wavelet.labgridAHigh / WaveletParams::LABGRID_CORR_MAX, pp->wavelet.labgridBHigh / WaveletParams::LABGRID_CORR_MAX, false); ballum->setValue(pp->wavelet.ballum); balchrom->setValue(pp->wavelet.balchrom); @@ -1459,6 +1487,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) sigmaton->setValue(pp->wavelet.sigmaton); sigmacol->setValue(pp->wavelet.sigmacol); sigmadir->setValue(pp->wavelet.sigmadir); + rangeab->setValue(pp->wavelet.rangeab); + protab->setValue(pp->wavelet.protab); for (int i = 0; i < 9; i++) { correction[i]->setValue(pp->wavelet.c[i]); @@ -1534,6 +1564,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) if (!pedited->wavelet.ushamethod) { ushamethod->set_active_text(M("GENERAL_UNCHANGED")); } + labgrid->setEdited(pedited->wavelet.labgridALow || pedited->wavelet.labgridBLow || pedited->wavelet.labgridAHigh || pedited->wavelet.labgridBHigh); set_inconsistent(multiImage && !pedited->wavelet.enabled); ccshape->setUnChanged(!pedited->wavelet.ccwcurve); @@ -1580,6 +1611,8 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) sigmaton->setEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); sigmacol->setEditedState(pedited->wavelet.sigmacol ? Edited : UnEdited); sigmadir->setEditedState(pedited->wavelet.sigmadir ? Edited : UnEdited); + rangeab->setEditedState(pedited->wavelet.rangeab ? Edited : UnEdited); + protab->setEditedState(pedited->wavelet.protab ? Edited : UnEdited); threshold->setEditedState(pedited->wavelet.threshold ? Edited : UnEdited); threshold2->setEditedState(pedited->wavelet.threshold2 ? Edited : UnEdited); edgedetect->setEditedState(pedited->wavelet.edgedetect ? Edited : UnEdited); @@ -1828,6 +1861,11 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.ballum = ballum->getValue(); pp->wavelet.chromfi = chromfi->getValue(); pp->wavelet.chromco = chromco->getValue(); + labgrid->getParams(pp->wavelet.labgridALow, pp->wavelet.labgridBLow, pp->wavelet.labgridAHigh, pp->wavelet.labgridBHigh); + pp->wavelet.labgridALow *= WaveletParams::LABGRID_CORR_MAX; + pp->wavelet.labgridAHigh *= WaveletParams::LABGRID_CORR_MAX; + pp->wavelet.labgridBLow *= WaveletParams::LABGRID_CORR_MAX; + pp->wavelet.labgridBHigh *= WaveletParams::LABGRID_CORR_MAX; pp->wavelet.greenlow = greenlow->getValue(); pp->wavelet.bluelow = bluelow->getValue(); @@ -1855,6 +1893,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.sigmaton = sigmaton->getValue(); pp->wavelet.sigmacol = sigmacol->getValue(); pp->wavelet.sigmadir = sigmadir->getValue(); + pp->wavelet.rangeab = rangeab->getValue(); + pp->wavelet.protab = protab->getValue(); for (int i = 0; i < 9; i++) { pp->wavelet.c[i] = (int) correction[i]->getValue(); @@ -1965,6 +2005,8 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.sigmaton = sigmaton->getEditedState(); pedited->wavelet.sigmacol = sigmacol->getEditedState(); pedited->wavelet.sigmadir = sigmadir->getEditedState(); + pedited->wavelet.rangeab = rangeab->getEditedState(); + pedited->wavelet.protab = protab->getEditedState(); pedited->wavelet.wavclCurve = !clshape->isUnChanged(); pedited->wavelet.expcontrast = !expcontrast->get_inconsistent(); pedited->wavelet.expchroma = !expchroma->get_inconsistent(); @@ -1975,6 +2017,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.exptoning = !exptoning->get_inconsistent(); pedited->wavelet.expnoise = !expnoise->get_inconsistent(); pedited->wavelet.expclari = !expclari->get_inconsistent(); + pedited->wavelet.labgridALow = pedited->wavelet.labgridBLow = pedited->wavelet.labgridAHigh = pedited->wavelet.labgridBHigh = labgrid->getEdited(); for (int i = 0; i < 9; i++) { pedited->wavelet.c[i] = correction[i]->getEditedState(); @@ -2150,6 +2193,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigmacol->setDefault(defParams->wavelet.sigmacol); sigmadir->setDefault(defParams->wavelet.sigmadir); sigma->setDefault(defParams->wavelet.sigma); + rangeab->setDefault(defParams->wavelet.rangeab); + protab->setDefault(defParams->wavelet.protab); offset->setDefault(defParams->wavelet.offset); lowthr->setDefault(defParams->wavelet.lowthr); rescon->setDefault(defParams->wavelet.rescon); @@ -2198,6 +2243,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit balchrom->setDefault(defParams->wavelet.balchrom); chromfi->setDefault(defParams->wavelet.chromfi); chromco->setDefault(defParams->wavelet.chromco); + labgrid->setDefault(defParams->wavelet.labgridALow / WaveletParams::LABGRID_CORR_MAX, defParams->wavelet.labgridBLow / WaveletParams::LABGRID_CORR_MAX, defParams->wavelet.labgridAHigh / WaveletParams::LABGRID_CORR_MAX, defParams->wavelet.labgridBHigh / WaveletParams::LABGRID_CORR_MAX); greenlow->setDefault(defParams->wavelet.greenlow); bluelow->setDefault(defParams->wavelet.bluelow); @@ -2225,6 +2271,7 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit balchrom->setDefaultEditedState(pedited->wavelet.balchrom ? Edited : UnEdited); chromfi->setDefaultEditedState(pedited->wavelet.chromfi ? Edited : UnEdited); chromco->setDefaultEditedState(pedited->wavelet.chromco ? Edited : UnEdited); + labgrid->setEdited((pedited->wavelet.labgridALow || pedited->wavelet.labgridBLow || pedited->wavelet.labgridAHigh || pedited->wavelet.labgridBHigh) ? Edited : UnEdited); sigma->setDefault(defParams->wavelet.sigma); offset->setDefault(defParams->wavelet.offset); @@ -2275,6 +2322,8 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigmaton->setDefaultEditedState(pedited->wavelet.sigmaton ? Edited : UnEdited); sigmacol->setDefaultEditedState(pedited->wavelet.sigmacol ? Edited : UnEdited); sigmadir->setDefaultEditedState(pedited->wavelet.sigmadir ? Edited : UnEdited); + rangeab->setDefaultEditedState(pedited->wavelet.rangeab ? Edited : UnEdited); + protab->setDefaultEditedState(pedited->wavelet.protab ? Edited : UnEdited); level0noise->setDefaultEditedState(pedited->wavelet.level0noise ? Edited : UnEdited); level1noise->setDefaultEditedState(pedited->wavelet.level1noise ? Edited : UnEdited); level2noise->setDefaultEditedState(pedited->wavelet.level2noise ? Edited : UnEdited); @@ -2341,6 +2390,9 @@ void Wavelet::setDefaults(const ProcParams* defParams, const ParamsEdited* pedit sigmaton->setDefaultEditedState(Irrelevant); sigmacol->setDefaultEditedState(Irrelevant); sigmadir->setDefaultEditedState(Irrelevant); + rangeab->setDefaultEditedState(Irrelevant); + protab->setDefaultEditedState(Irrelevant); + labgrid->setEdited(Edited); for (int i = 0; i < 9; i++) { correction[i]->setDefaultEditedState(Irrelevant); @@ -2883,6 +2935,8 @@ void Wavelet::setBatchMode(bool batchMode) sigmaton->showEditedCB(); sigmacol->showEditedCB(); sigmadir->showEditedCB(); + rangeab->showEditedCB(); + protab->showEditedCB(); level0noise->showEditedCB(); level1noise->showEditedCB(); level2noise->showEditedCB(); @@ -3036,6 +3090,10 @@ void Wavelet::adjusterChanged(Adjuster* a, double newval) listener->panelChanged(EvWavsigmafin, sigmafin->getTextValue()); } else if (a == sigmaton) { listener->panelChanged(EvWavsigmaton, sigmaton->getTextValue()); + } else if (a == rangeab) { + listener->panelChanged(EvWavrangeab, rangeab->getTextValue()); + } else if (a == protab) { + listener->panelChanged(EvWavprotab, protab->getTextValue()); } else if (a == sigmacol) { listener->panelChanged(EvWavsigmacol, sigmacol->getTextValue()); } else if (a == sigmadir) { diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index b235cde47..c9cd3dc4c 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -33,6 +33,7 @@ class CurveEditorGroup; class DiagonalCurveEditor; class EditDataProvider; class FlatCurveEditor; +class LabGrid; class Wavelet final : public ToolParamBlock, @@ -97,8 +98,14 @@ private: rtengine::ProcEvent EvWavsigmaton; rtengine::ProcEvent EvWavsigmacol; rtengine::ProcEvent EvWavsigmadir; + rtengine::ProcEvent EvWavLabGridValue; + rtengine::ProcEvent EvWavrangeab; + rtengine::ProcEvent EvWavprotab; + + LabGrid *labgrid; void foldAllButMe(GdkEventButton* event, MyExpander *expander); + void setListener(ToolPanelListener *tpl) override; void colorForValue(double valX, double valY, enum ColorCaller::ElemType elemType, int callerId, ColorCaller* caller) override; void BAmethodChanged(); @@ -226,7 +233,9 @@ private: Adjuster* const sigmaton; Adjuster* const sigmacol; Adjuster* const sigmadir; - + Adjuster* const rangeab; + Adjuster* const protab; + Adjuster* greenlow; Adjuster* bluelow; Adjuster* greenmed; @@ -304,6 +313,7 @@ private: Gtk::Frame* const chroFrame; Gtk::Frame* const fincFrame; Gtk::Frame* const dirFrame; + Gtk::Frame* const tonFrame; Gtk::Label* const wavLabels; Gtk::Label* const labmC; From c46eb298755bb58b468bfc95dac4530be9176ac7 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 16 Apr 2020 08:43:25 +0200 Subject: [PATCH 435/453] Improve toning level (disabled) - add information verbose --- rtdata/languages/default | 1 + rtengine/ipwavelet.cc | 59 ++++++++++++++++++++++++---------------- 2 files changed, 36 insertions(+), 24 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5627dab4c..5f8906b3d 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2337,6 +2337,7 @@ TP_WAVELET_TMSTRENGTH;Compression strength TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. TP_WAVELET_TMEDGS;Edge stopping TP_WAVELET_TON;Toning +TP_WAVELET_TONFRAME;Excluded Colors TP_WAVELET_TMTYPE;Compression method TP_WAVELET_USH;None TP_WAVELET_USHARP;Clarity method diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 5b170ff9b..8bc1d056a 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -918,6 +918,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float ** WavCoeffs_L = Ldecomp->level_coeffs(lvl); madL[lvl][dir - 1] = SQR(Mad(WavCoeffs_L[dir], Wlvl_L * Hlvl_L)); + + if (settings->verbose) { + printf("sqrt madL=%f lvl=%i dir=%i\n", sqrt(madL[lvl][dir - 1]), lvl, dir - 1); + } } } @@ -4159,25 +4163,22 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float effect = cp.sigmaton; float betaab = 0.f; float offs = 1.f; - float protec = 0.01f * cp.protab; - // printf("rangeab=%f \n", 0.01f * cp.rangeab); - // printf("protab=%f \n", 0.01f * cp.protab); + float protec = 0.01f * (100.f - cp.protab); float aref1 = cp.a_high; float bref1 = cp.b_high; float aref2 = cp.a_low; float bref2 = cp.b_low; - // printf("a1=%f b1=%f a2=%f b2=%f\n", aref1, bref1, aref2, bref2); - float arefplus1 = aref1 * (1.f + 0.1f * cp.rangeab); - float arefmoins1 = aref1 * (1.f - 0.1f * cp.rangeab); - float brefplus1 = bref1 * (1.f + 0.1f * cp.rangeab); - float brefmoins1 = bref1 * (1.f - 0.1f * cp.rangeab); - // printf("a1+=%f a1-=%f b+=%f b-=%f\n", arefplus1, arefmoins1, brefplus1, brefmoins1); + float kk = 100.f; + float arefplus1 = aref1 + cp.rangeab * kk; + float arefmoins1 = aref1 - cp.rangeab * kk; + float brefplus1 = bref1 + cp.rangeab * kk; + float brefmoins1 = bref1 - cp.rangeab * kk; - float arefplus2 = aref2 * (1.f + 0.1f * cp.rangeab); - float arefmoins2 = aref2 * (1.f - 0.1f * cp.rangeab); - float brefplus2 = bref2 * (1.f + 0.1f * cp.rangeab); - float brefmoins2 = bref2 * (1.f - 0.1f * cp.rangeab); + float arefplus2 = aref2 + cp.rangeab * kk; + float arefmoins2 = aref2 - cp.rangeab * kk; + float brefplus2 = bref2 + cp.rangeab * kk; + float brefmoins2 = bref2 - cp.rangeab * kk; calceffect(level, meanab, sigmaab, mea, effect, offs); @@ -4212,25 +4213,35 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float kreduc2 = 1.f; int ii = co / W_ab; int jj = co - ii * W_ab; + cp.protab = 0.f;// always disabled provisory... if (cp.protab > 0.f) { - - if ((labco->a[ii * 2][jj * 2] > arefmoins1) && (labco->a[ii * 2][jj * 2] < arefplus1) - && (labco->b[ii * 2][jj * 2] > brefmoins1) && (labco->b[ii * 2][jj * 2] < brefplus1)) { - kreduc1 = protec; - // printf("p "); + if (useChannelA) { + if ((labco->a[ii * 2][jj * 2] > arefmoins1) && (labco->a[ii * 2][jj * 2] < arefplus1)) { + kreduc1 = protec; + } + } else { + if ((labco->b[ii * 2][jj * 2] > brefmoins1) && (labco->b[ii * 2][jj * 2] < brefplus1)) { + kreduc1 = protec; + } } - if ((labco->a[ii * 2][jj * 2] > arefmoins2) && (labco->a[ii * 2][jj * 2] < arefplus2) - && (labco->b[ii * 2][jj * 2] > brefmoins2) && (labco->b[ii * 2][jj * 2] < brefplus2)) { - kreduc2 = protec; - // printf("P "); + if (useChannelA) { + if ((labco->a[ii * 2][jj * 2] > arefmoins2) && (labco->a[ii * 2][jj * 2] < arefplus2)) { + kreduc2 = protec; + } + } else { + if ((labco->b[ii * 2][jj * 2] > brefmoins2) && (labco->b[ii * 2][jj * 2] < brefplus2)) { + kreduc2 = protec; + } } - - // printf("pa1=%f pa2=%f\n", kreduc1, kredu2); } + + // printf("pa1=%f pa2=%f\n", kreduc1, kredu2); + + float beta = (1024.f + 50.f * mulOpacity * betaab * kreduc1 * kreduc2) / 1024.f ; WavCoeffs_ab[dir][co] *= beta; From a70691caf1227f75e76ac18a9fddb99d6bd8884a Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 16 Apr 2020 10:57:52 +0200 Subject: [PATCH 436/453] Enabled Toning excluded colors - to test --- rtengine/ipwavelet.cc | 28 +++++++++++++++++++++++----- rtgui/wavelet.cc | 2 +- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 8bc1d056a..3b00d8aaf 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -4214,25 +4214,43 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f int ii = co / W_ab; int jj = co - ii * W_ab; - cp.protab = 0.f;// always disabled provisory... + // cp.protab = 0.f;// always disabled provisory... if (cp.protab > 0.f) { if (useChannelA) { if ((labco->a[ii * 2][jj * 2] > arefmoins1) && (labco->a[ii * 2][jj * 2] < arefplus1)) { - kreduc1 = protec; + kreduc1 = 0.5f * protec; + + if ((labco->a[ii * 2][jj * 2] > 0.8f * arefmoins1) && (labco->a[ii * 2][jj * 2] < 0.8f * arefplus1)) { + kreduc1 = protec; + } } + } else { if ((labco->b[ii * 2][jj * 2] > brefmoins1) && (labco->b[ii * 2][jj * 2] < brefplus1)) { - kreduc1 = protec; + kreduc1 = 0.5f * protec; + + if ((labco->b[ii * 2][jj * 2] > 0.8f * brefmoins1) && (labco->b[ii * 2][jj * 2] < 0.8f * brefplus1)) { + kreduc1 = protec; + } } } if (useChannelA) { if ((labco->a[ii * 2][jj * 2] > arefmoins2) && (labco->a[ii * 2][jj * 2] < arefplus2)) { - kreduc2 = protec; + kreduc2 = 0.5f * protec; + + if ((labco->a[ii * 2][jj * 2] > 0.8f * arefmoins2) && (labco->a[ii * 2][jj * 2] < 0.8f * arefplus2)) { + kreduc2 = protec; + } + } } else { if ((labco->b[ii * 2][jj * 2] > brefmoins2) && (labco->b[ii * 2][jj * 2] < brefplus2)) { - kreduc2 = protec; + kreduc2 = 0.5f * protec; + + if ((labco->b[ii * 2][jj * 2] > brefmoins2) && (labco->b[ii * 2][jj * 2] < brefplus2)) { + kreduc2 = protec; + } } } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 08c4d6f4c..1f4714452 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -533,7 +533,7 @@ Wavelet::Wavelet() : ton2Box->pack_start(*rangeab); ton2Box->pack_start(*protab); tonFrame->add(*ton2Box); -// tonBox->pack_start(*tonFrame); + tonBox->pack_start(*tonFrame); tonBox->pack_start(*opaCurveEditorG, Gtk::PACK_SHRINK, 2); From d165a08e368c2ba174b08c1f4fd1df5472232273 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 20 Apr 2020 13:43:08 +0200 Subject: [PATCH 437/453] revert a801d76, fixes #5716 --- rtengine/dcraw.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 29796ea67..edb7dc317 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -9077,6 +9077,9 @@ void CLASS adobe_coeff (const char *make, const char *model) if (RT_blacklevel_from_constant == ThreeValBool::X || is_pentax_dng) { RT_blacklevel_from_constant = ThreeValBool::T; } + if (RT_matrix_from_constant == ThreeValBool::X) { + RT_matrix_from_constant = ThreeValBool::T; + } // -- RT -------------------------------------------------------------------- for (i=0; i < sizeof table / sizeof *table; i++) @@ -9096,9 +9099,6 @@ void CLASS adobe_coeff (const char *make, const char *model) } else if (load_raw == &CLASS panasonic_load_raw) { tiff_bps = RT_pana_info.bpp; } - if (RT_matrix_from_constant == ThreeValBool::X) { - RT_matrix_from_constant = ThreeValBool::T; - } { /* Check for RawTherapee table overrides and extensions */ int black_level, white_level; short trans[12]; @@ -10546,7 +10546,7 @@ dng_skip: * files. See #4129 */) { memcpy (rgb_cam, cmatrix, sizeof cmatrix); // raw_color = 0; - RT_matrix_from_constant = ThreeValBool::X; + RT_matrix_from_constant = ThreeValBool::F; } if(!strncmp(make, "Panasonic", 9) && !strncmp(model, "DMC-LX100",9)) adobe_coeff (make, model); From 687217a6afed3aa781d7bbcfdd45ca00dffef64f Mon Sep 17 00:00:00 2001 From: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com> Date: Thu, 23 Apr 2020 10:10:42 +0200 Subject: [PATCH 438/453] Brighten the diagonal line in curves, tone down the gridlines. Fixes #5687. --- rtdata/themes/RawTherapee-GTK3-20_.css | 2 +- rtgui/mydiagonalcurve.cc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/themes/RawTherapee-GTK3-20_.css b/rtdata/themes/RawTherapee-GTK3-20_.css index a5f52a769..bdadc00db 100644 --- a/rtdata/themes/RawTherapee-GTK3-20_.css +++ b/rtdata/themes/RawTherapee-GTK3-20_.css @@ -565,7 +565,7 @@ button.text-button.toggle:hover:checked { .drawingarea { border-radius: 0; background-color: #2A2A2A; - border: 0.0833333333333333em solid #1D1D1D; + border: 0.0833333333333333em solid #888888; } .drawingarea:disabled { background-color: #444; diff --git a/rtgui/mydiagonalcurve.cc b/rtgui/mydiagonalcurve.cc index ac7976b7e..ce6c6f3ec 100644 --- a/rtgui/mydiagonalcurve.cc +++ b/rtgui/mydiagonalcurve.cc @@ -323,7 +323,7 @@ void MyDiagonalCurve::draw (int handle) // draw the grid lines: cr->set_line_width (1.0 * s); c = style->get_border_color(state); - cr->set_source_rgb (c.get_red(), c.get_green(), c.get_blue()); + cr->set_source_rgba (c.get_red(), c.get_green(), c.get_blue(), 0.3); cr->set_antialias (Cairo::ANTIALIAS_NONE); for (int i = 0; i <= 10; i++) { From 1beb3c91b43209d7f0430707164a25ad4c78d28d Mon Sep 17 00:00:00 2001 From: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com> Date: Mon, 27 Apr 2020 18:13:47 +0200 Subject: [PATCH 439/453] Adjust white-point for Nikon COOLPIX P1000. Fixes #5734 --- rtengine/camconst.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 8bed22437..5fc7d4062 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1540,7 +1540,7 @@ Camera constants: { // Quality B "make_model": "NIKON COOLPIX P1000", "dcraw_matrix": [ 14294, -6116, -1333, -1628, 10219, 1637, -14, 1158, 5022 ], // ColorMatrix2 from Adobe DNG Converter 11.4 - "ranges": { "black": 200, "white": 4093 } + "ranges": { "black": 200, "white": 4087 } }, { // Quality B, no LENR samples From cec79084296570fb5b4a076d3f9a3c1fbad3ed04 Mon Sep 17 00:00:00 2001 From: Laurent Pinchart Date: Sun, 3 May 2020 17:06:16 +0300 Subject: [PATCH 440/453] rtexif: Fix conversion from RATIONAL to int, double or string RATIONAL tags are defined as a ratio of two LONG, themselves defined as 32-bit unsigned integers. The value is misinterpreted when converting to an int, double or string, as the numerator and the denominator are interpreted as signed values. The problem has been noticed with the ExposureTime tag generated by libtiff, which sets the denominator to 0xffffffff for exposure times lower than 1. Fix it. Signed-off-by: Laurent Pinchart --- rtexif/rtexif.cc | 26 ++++++++++++++++++-------- rtexif/rtexif.h | 22 +++++++++++++++------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/rtexif/rtexif.cc b/rtexif/rtexif.cc index 06604ade5..95b46c2b9 100644 --- a/rtexif/rtexif.cc +++ b/rtexif/rtexif.cc @@ -1510,8 +1510,6 @@ int Tag::toInt (int ofs, TagType astype) const return attrib->interpreter->toInt (this, ofs, astype); } - int a; - if (astype == INVALID) { astype = type; } @@ -1537,10 +1535,15 @@ int Tag::toInt (int ofs, TagType astype) const case LONG: return (int)sget4 (value + ofs, getOrder()); - case SRATIONAL: - case RATIONAL: - a = (int)sget4 (value + ofs + 4, getOrder()); + case SRATIONAL: { + int a = (int)sget4 (value + ofs + 4, getOrder()); return a == 0 ? 0 : (int)sget4 (value + ofs, getOrder()) / a; + } + + case RATIONAL: { + uint32_t a = (uint32_t)sget4 (value + ofs + 4, getOrder()); + return a == 0 ? 0 : (uint32_t)sget4 (value + ofs, getOrder()) / a; + } case FLOAT: return (int)toDouble (ofs); @@ -1589,10 +1592,14 @@ double Tag::toDouble (int ofs) const return (double) ((int)sget4 (value + ofs, getOrder())); case SRATIONAL: - case RATIONAL: ud = (int)sget4 (value + ofs, getOrder()); dd = (int)sget4 (value + ofs + 4, getOrder()); - return dd == 0. ? 0. : (double)ud / (double)dd; + return dd == 0. ? 0. : ud / dd; + + case RATIONAL: + ud = (uint32_t)sget4 (value + ofs, getOrder()); + dd = (uint32_t)sget4 (value + ofs + 4, getOrder()); + return dd == 0. ? 0. : ud / dd; case FLOAT: conv.i = sget4 (value + ofs, getOrder()); @@ -1735,10 +1742,13 @@ void Tag::toString (char* buffer, int ofs) const break; case SRATIONAL: - case RATIONAL: sprintf (b, "%d/%d", (int)sget4 (value + 8 * i + ofs, getOrder()), (int)sget4 (value + 8 * i + ofs + 4, getOrder())); break; + case RATIONAL: + sprintf (b, "%u/%u", (uint32_t)sget4 (value + 8 * i + ofs, getOrder()), (uint32_t)sget4 (value + 8 * i + ofs + 4, getOrder())); + break; + case FLOAT: sprintf (b, "%g", toDouble (8 * i + ofs)); break; diff --git a/rtexif/rtexif.h b/rtexif/rtexif.h index 1a956a4a5..5084f70de 100644 --- a/rtexif/rtexif.h +++ b/rtexif/rtexif.h @@ -434,13 +434,18 @@ public: case LONG: return (double) ((int)sget4 (t->getValue() + ofs, t->getOrder())); - case SRATIONAL: - case RATIONAL: { + case SRATIONAL: { const double dividend = (int)sget4 (t->getValue() + ofs, t->getOrder()); const double divisor = (int)sget4 (t->getValue() + ofs + 4, t->getOrder()); return divisor == 0. ? 0. : dividend / divisor; } + case RATIONAL: { + const double dividend = (uint32_t)sget4 (t->getValue() + ofs, t->getOrder()); + const double divisor = (uint32_t)sget4 (t->getValue() + ofs + 4, t->getOrder()); + return divisor == 0. ? 0. : dividend / divisor; + } + case FLOAT: return double (sget4 (t->getValue() + ofs, t->getOrder())); @@ -454,8 +459,6 @@ public: // Get the value as an int virtual int toInt (const Tag* t, int ofs = 0, TagType astype = INVALID) { - int a; - if (astype == INVALID || astype == AUTO) { astype = t->getType(); } @@ -480,10 +483,15 @@ public: case LONG: return (int)sget4 (t->getValue() + ofs, t->getOrder()); - case SRATIONAL: - case RATIONAL: - a = (int)sget4 (t->getValue() + ofs + 4, t->getOrder()); + case SRATIONAL: { + int a = (int)sget4 (t->getValue() + ofs + 4, t->getOrder()); return a == 0 ? 0 : (int)sget4 (t->getValue() + ofs, t->getOrder()) / a; + } + + case RATIONAL: { + uint32_t a = (uint32_t)sget4 (t->getValue() + ofs + 4, t->getOrder()); + return a == 0 ? 0 : (uint32_t)sget4 (t->getValue() + ofs, t->getOrder()) / a; + } case FLOAT: return (int)toDouble (t, ofs); From 988d3a1a0d0bff2d1ddeca461d9f4f09bdea6692 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 7 May 2020 15:26:10 +0200 Subject: [PATCH 441/453] Do not set math errno --- CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index e3ae3b7ff..532353a8b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -128,6 +128,9 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PROC_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=unused-label") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=delete-incomplete") +# Do net set math errno, as we never check its value. +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-math-errno") + # Special treatment for x87 and x86-32 SSE (see GitHub issue #4324) include(FindX87Math) if(HAVE_X87_MATH) From 8c851a1b3f389c2198ee5d85d3f0441d6f25d281 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 8 May 2020 14:02:40 +0200 Subject: [PATCH 442/453] Also tweak CMAKE_C_FLAGS, fixes #5742 --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 532353a8b..cbddde251 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -130,6 +130,7 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=delete-incomplete") # Do net set math errno, as we never check its value. set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-math-errno") +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-math-errno") # Special treatment for x87 and x86-32 SSE (see GitHub issue #4324) include(FindX87Math) From b5af6eec60f44112fe3e96f934d6b1abbca355a2 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 9 May 2020 19:57:39 +0200 Subject: [PATCH 443/453] Fixed crash when use extra --- rtengine/ipwavelet.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index f415c9c8e..39de7c938 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -866,7 +866,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (levwavL > 0) { const std::unique_ptr Ldecomp(new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); - float madL[8][3]; + float madL[10][3]; if (!Ldecomp->memoryAllocationFailed) { From 8581799a7a4e1adc6f4b93264bfa20cdd41f92c0 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Mon, 11 May 2020 22:33:43 +0200 Subject: [PATCH 444/453] make ipwavelets.cc cppcheck clean --- rtengine/improcfun.h | 4 - rtengine/ipwavelet.cc | 401 ++++++++---------------------------------- 2 files changed, 72 insertions(+), 333 deletions(-) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 9d4a0235c..b2df86112 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -188,7 +188,6 @@ public: void EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterates, int skip, struct cont_params& cp, int W_L, int H_L, float max0, float min0); void CompressDR(float *Source, int W_L, int H_L, float Compression, float DetailBoost); - void Compresslevels2(float **Source, int W_L, int H_L, float compression, float detailattenuator, float thres, float mean, float maxp, float meanN, float maxN, float madL); void ContrastResid(float * WavCoeffs_L0, struct cont_params &cp, int W_L, int H_L, float max0, float min0); void EPDToneMap(LabImage *lab, unsigned int Iterates = 0, int skip = 1); @@ -228,9 +227,6 @@ public: void Sigma(float * HH_Coeffs, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg); void calckoe(float ** WavCoeffs_LL, const cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr); - void softproc2(const LabImage* bufcolorig, const LabImage* bufcolfin, float rad, int bfh, int bfw, double epsilmax, double epsilmin, float thres, int sk, bool multiThread, int flag); - - void Median_Denoise(float **src, float **dst, int width, int height, Median medianType, int iterations, int numThreads, float **buffer = nullptr); void Median_Denoise(float **src, float **dst, float upperBound, int width, int height, Median medianType, int iterations, int numThreads, float **buffer = nullptr); void RGB_denoise(int kall, Imagefloat * src, Imagefloat * dst, Imagefloat * calclum, float * ch_M, float *max_r, float *max_b, bool isRAW, const procparams::DirPyrDenoiseParams & dnparams, const double expcomp, const NoiseCurve & noiseLCurve, const NoiseCurve & noiseCCurve, float &nresi, float &highresi); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index f67e82c77..445cfdd06 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -164,7 +164,7 @@ struct cont_params { int wavNestedLevels = 1; -void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) +void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) { @@ -540,11 +540,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const levwav = rtengine::min(maxlevelcrop, levwav); - // determine number of levels to process. - // for(levwav=rtengine::min(maxlevelcrop,levwav);levwav>0;levwav--) - // if(cp.mul[levwav-1]!=0.f || cp.curv) - // if(cp.mul[levwav-1]!=0.f) - // break; // I suppress this fonctionality ==> crash for level < 3 if (levwav < 1) { return; // nothing to do @@ -740,7 +735,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } #ifdef _OPENMP - #pragma omp parallel for num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int i = tiletop; i < tilebottom; i++) { @@ -799,7 +794,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } #ifdef _OPENMP - #pragma omp parallel for num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int i = 1; i < hei - 1; i++) { @@ -901,13 +896,13 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (levwavL > 0) { const std::unique_ptr Ldecomp(new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); - float madL[10][3]; if (!Ldecomp->memoryAllocationFailed) { + float madL[10][3]; // float madL[8][3]; #ifdef _OPENMP - #pragma omp parallel for schedule(dynamic) collapse(2) num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for schedule(dynamic) collapse(2) num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int lvl = 0; lvl < levwavL; lvl++) { @@ -1297,7 +1292,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } @@ -1331,7 +1326,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); } @@ -1361,18 +1356,18 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); + WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromfi > 0.f)) { + if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); } @@ -1434,7 +1429,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const bool highlight = params->toneCurve.hrenabled; #ifdef _OPENMP - #pragma omp parallel for schedule(dynamic,16) num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for schedule(dynamic,16) num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int i = tiletop; i < tilebottom; i++) { @@ -1661,7 +1656,7 @@ void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averag max = 0.f; min = RT_INFINITY_F; #ifdef _OPENMP - #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif { float lmax = 0.f, lmin = 0.f; @@ -1712,7 +1707,7 @@ void ImProcFunctions::Sigma(float * RESTRICT DataList, int datalen, float avera float thres = 32.7f;//different fom zero to take into account only data large enough 32.7 = 0.1 in range 0..100 #ifdef _OPENMP - #pragma omp parallel for reduction(+:variP,variN,countP,countN) num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for reduction(+:variP,variN,countP,countN) num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int i = 0; i < datalen; i++) { @@ -1819,7 +1814,7 @@ void ImProcFunctions::Eval2(float ** WavCoeffs_L, int level, float AvL, AvN, SL, SN, maxLP, maxLN; for (int dir = 1; dir < 4; dir++) { - Aver(WavCoeffs_L[dir], W_L * H_L, avLP[dir], avLN[dir], maxL[dir], minL[dir]); + Aver(WavCoeffs_L[dir], W_L * H_L, avLP[dir], avLN[dir], maxL[dir], minL[dir]); Sigma(WavCoeffs_L[dir], W_L * H_L, avLP[dir], avLN[dir], sigP[dir], sigN[dir]); } @@ -1956,7 +1951,7 @@ void ImProcFunctions::ContrastResid(float * WavCoeffs_L0, struct cont_params &cp -void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterates, int skip, struct cont_params& cp, int W_L, int H_L, float max0, float min0) +void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterates, int skip, struct cont_params& cp, int W_L, int H_L, float max0, float min0) { @@ -2041,7 +2036,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * if (contrast != 0.f || (cp.tonemap && cp.resena)) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step #ifdef _OPENMP - #pragma omp parallel for reduction(+:avedbl) num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for reduction(+:avedbl) num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int i = 0; i < W_L * H_L; i++) { @@ -2049,7 +2044,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } #ifdef _OPENMP - #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif { float lminL = FLT_MAX; @@ -2134,7 +2129,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * #ifdef _OPENMP - #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif { if (contrast != 0.f && cp.resena && max0 > 0.f) { // contrast = 0.f means that all will be multiplied by 1.f, so we can skip this step @@ -2209,13 +2204,13 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float LL100 = LL / 327.68f; float tran = 5.f;//transition //shadow - float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? if (cp.th > (100.f - tran)) { tran = 100.f - cp.th; } if (LL100 < cp.th) { + constexpr float alp = 3.f; //increase contrast sahdow in lowlights between 1 and ?? float aalp = (1.f - alp) / cp.th; //no changes for LL100 = cp.th float kk = aalp * LL100 + alp; WavCoeffs_L0[i] *= (1.f + kk * cp.conres / 200.f); @@ -2245,10 +2240,10 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //Blur luma if (cp.blurres != 0.f && cp.resena) { int minWL = min(W_L, H_L); - float k = 0.5f; //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); if (minWL > 140) { //disabled if too low windows + constexpr float k = 0.5f; float rad = k * cp.blurres / skip; float * bef = new float[W_L * H_L]; float * aft = new float[W_L * H_L]; @@ -2273,7 +2268,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * n0 = n1 = n2 = n3 = n4 = n5 = n6 = n7 = n8 = n9 = n10 = n32 = 0; #ifdef _OPENMP - #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif { //enabled Lipschitz..replace simple by complex edge detection @@ -2374,12 +2369,10 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * //if not no edge or reduction float bet = 1.f; - //if(cp.lip3) {//enhance algorithm if (alph > eddlipinfl && beta < 0.85f * eddlipinfl) { //0.85 arbitrary value ==> eliminate from edge if H V D too different bet = beta; } - //} float AmpLip = 1.f; if (alph > eddlipinfl) { @@ -2390,16 +2383,6 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * kampli = AmpLip / aamp; } - // comparison betwwen pixel and neighbours to do ==> I think 3 dir above is better - /* if(cp.lip3){ - koeLi[lvl*3][i*W_L + j] = (koeLi[lvl*3][i*W_L + j] + koeLi[lvl*3][(i-1)*W_L + j] + koeLi[lvl*3][(i+1)*W_L + j] - + koeLi[lvl*3][i*W_L + j+1] + koeLi[lvl*3][i*W_L + j-1] + koeLi[lvl*3][(i-1)*W_L + j-1] - + koeLi[lvl*3][(i-1)*W_L + j+1] +koeLi[lvl*3][(i+1)*W_L + j-1] +koeLi[lvl*3][(i+1)*W_L + j+1])/9.f; - } - */ - // apply to each direction Wavelet level : horizontal / vertiacle / diagonal - //interm += SQR(koeLi[lvl*3 + dir-1][i*W_L + j]); - interm *= kampli; if (interm < cp.eddetthr / eddlow) { @@ -2439,21 +2422,15 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); - ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); - //blur level - float klev = 1.f; + ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); if (wavblcurve && wavcurvecomp && cp.blena) { // printf("Blur level L\n"); float mea[10]; - float effect = cp.bluwav; - float offs = 1.f; + const float effect = cp.bluwav; + constexpr float offs = 1.f; float * beta = new float[Wlvl_L * Hlvl_L]; - for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { - beta[co] = 1.f; - } - calceffect(lvl, mean, sigma, mea, effect, offs); float * bef = new float[Wlvl_L * Hlvl_L]; @@ -2509,8 +2486,9 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * printf("lvl=%i n0=%i n32=%i n1=%i n2=%i n3=%i n4=%i n5=%i n6=%i n7=%i n8=%i n9=%i n10=%i\n", lvl, n0, n0 - n32, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); } - klev = (wavblcurve[lvl * 55.5f]); + float klev = (wavblcurve[lvl * 55.5f]); + //blur level // klev *= beta * 100.f / skip; klev *= 100.f / skip; boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); @@ -2545,7 +2523,7 @@ void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoef float * WavCoeffs_a0 = WaveletCoeffs_a.coeff0; float * WavCoeffs_b0 = WaveletCoeffs_b.coeff0; #ifdef _OPENMP - #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif { #ifdef __SSE2__ @@ -2611,7 +2589,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float * WavCoeffs_ab0 = WaveletCoeffs_ab.coeff0; #ifdef _OPENMP - #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif { if (cp.chrores != 0.f && cp.resena) { // cp.chrores == 0.f means all will be multiplied by 1.f, so we can skip the processing of residual @@ -2646,20 +2624,6 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float if ((modhue > cp.t_ry || modhue < cp.t_ly)) { scale = (100.f + cp.sky) / 100.1f; } - - /* else if((modhue >= cp.t_ry && modhue < cp.b_ry)) { - scale=(100.f+cp.sky)/100.1f; - float ar=(scale-1.f)/(cp.t_ry- cp.b_ry); - float br=scale-cp.t_ry*ar; - scale=ar*modhue+br; - } - else if((modhue > cp.b_ly && modhue < cp.t_ly)) { - scale=(100.f+cp.sky)/100.1f; - float al=(scale-1.f)/(-cp.b_ly + cp.t_ly); - float bl=scale-cp.t_ly*al; - scale=al*modhue+bl; - } - */ } WavCoeffs_ab0[i] *= (1.f + cp.chrores * (scale) / 100.f); @@ -2727,10 +2691,10 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float //Blur chroma if (cp.blurcres != 0.f && cp.resena) { int minWL = min(W_L, H_L); - float k = 0.5f; //printf("skip=%i WL=%i HL=%i min=%i\n", skip, W_L, H_L, minWL); if (minWL > 140) { //disabled if too low windows + constexpr float k = 0.5f; float rad = k * cp.blurcres / skip; float * bef = new float[W_L * H_L]; float * aft = new float[W_L * H_L]; @@ -2772,7 +2736,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float int Hlvl_ab = WaveletCoeffs_ab.level_H(lvl); float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); - ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA, meanab, sigmaab); + ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA, meanab, sigmaab); if (wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { @@ -2859,8 +2823,8 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const cont_params& cp, floa // I calculate coefficients with r size matrix 3x3 r=1 ; 5x5 r=2; 7x7 r=3 /* float k[2*r][2*r]; - for(int i=1;i<=(2*r+1);i++) { - for(int j=1;j<=(2*r+1);j++) { + for (int i=1;i<=(2*r+1);i++) { + for (int j=1;j<=(2*r+1);j++) { k[i][j]=(1.f/6.283*sigma*sigma)*exp(-SQR(i-r-1)+SQR(j-r-1)/2.f*SQR(sigma)); } } @@ -2908,9 +2872,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const cont_params& cp, floa else if (cp.eddetthr >= 75.f) { borderL = 2; - //if(cp.lip3 && level > 1) { if (level > 1) { // do not activate 5x5 if level 0 or 1 - for (int i = 2; i < H_L - 2; i++) { for (int j = 2; j < W_L - 2; j++) { // Gaussian 1.1 @@ -2958,21 +2920,6 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const cont_params& cp, floa } - - /* - // I suppress these 2 convolutions ==> lees good results==> probably because structure data different and also I compare to original value which have + and - - for(int i = borderL; i < H_L-borderL; i++ ) {//[-1 0 1] x==>j - for(int j = borderL; j < W_L-borderL; j++) { - tmC[i][j]=- WavCoeffs_LL[dir][(i)*W_L + j-1] + WavCoeffs_LL[dir][(i)*W_L + j+1]; - } - } - for(int i = borderL; i < H_L-borderL; i++ ) {//[1 0 -1] y==>i - for(int j = borderL; j < W_L-borderL; j++) { - tmC[i][j]= - WavCoeffs_LL[dir][(i-1)*W_L + j] + WavCoeffs_LL[dir][(i+1)*W_L + j]; - } - } - */ - float thr = 40.f; //avoid artifact eg. noise...to test float thr2 = 1.5f * edd; //edd can be modified in option ed_detect thr2 += cp.eddet / 30.f; //to test @@ -2988,9 +2935,6 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const cont_params& cp, floa for (int j = borderL; j < W_L - borderL; j++) { // my own algo : probably a little false, but simpler as Lipschitz ! // Thr2 = maximum of the function ==> Lipsitch says = probably edge -// float temp = WavCoeffs_LL[dir][i*W_L + j]; -// if(temp>=0.f && temp < thr) temp = thr; -// if(temp < 0.f && temp > -thr) temp = -thr; float temp = rtengine::max(std::fabs(WavCoeffs_LL[dir][i * W_L + j]), thr); koeLi[level * 3 + dir - 1][i * W_L + j] = rtengine::min(thr2, std::fabs(tmC[i][j] / temp)); // limit maxi @@ -3022,7 +2966,7 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, float amean = 0.5f / mean[level]; #ifdef _OPENMP - #pragma omp parallel for schedule(dynamic, W_L * 16) num_threads(wavNestedLevels) if(wavNestedLevels>1) + #pragma omp parallel for schedule(dynamic, W_L * 16) num_threads(wavNestedLevels) if (wavNestedLevels>1) #endif for (int i = 0; i < W_L * H_L; i++) { @@ -3186,9 +3130,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz constexpr float aedstr = (eddstrength - 1.f) / 90.f; constexpr float bedstr = 1.f - 10.f * aedstr; - float mea[10]; - // float beta = 1.f; - float * beta = new float[W_L * H_L]; + std::unique_ptr beta(new float[W_L * H_L]); for (int co = 0; co < H_L * W_L; co++) { beta[co] = 1.f; @@ -3197,6 +3139,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz if (cp.eff < 2.5f) { float effect = cp.eff; float offs = 1.f; + float mea[10]; calceffect(level, mean, sigma, mea, effect, offs); @@ -3388,7 +3331,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float edgePrecalc = 1.f + refin; //estimate edge "pseudo variance" if (cp.EDmet == 2 && MaxP[level] > 0.f) { //curve - // if(exa) {//curve + // if (exa) {//curve float insigma = 0.666f; //SD float logmax = log(MaxP[level]); //log Max float rapX = (mean[level] + sigma[level]) / MaxP[level]; //rapport between sD / max @@ -3608,8 +3551,9 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz if (!lipschitz) { delete [] koe; } - - delete[] beta; + if (!(cp.bam && cp.finena)) { + beta.reset(); + } } @@ -3649,7 +3593,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz const float lowthr = params->wavelet.lowthr; float mea[10]; float effect = cp.sigm; - float beta; + float lbeta; calceffect(level, mean, sigma, mea, effect, offs); @@ -3664,34 +3608,34 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float kLlev = 1.f; if (cpMul < 0.f) { - beta = 1.f; // disabled for negatives values "less contrast" + lbeta = 1.f; // disabled for negatives values "less contrast" } else { float WavCL = std::fabs(WavCoeffs_L[dir][i]); //reduction amplification: max action between mean / 2 and mean + sigma // arbitrary coefficient, we can add a slider !! if (WavCL < mea[0]) { - beta = 0.4f * red0;//preserve very low contrast (sky...) + lbeta = 0.4f * red0;//preserve very low contrast (sky...) } else if (WavCL < mea[1]) { - beta = 0.5f * red1; + lbeta = 0.5f * red1; } else if (WavCL < mea[2]) { - beta = 0.7f * red2; + lbeta = 0.7f * red2; } else if (WavCL < mea[3]) { - beta = 1.f; //standard + lbeta = 1.f; //standard } else if (WavCL < mea[4]) { - beta = 1.f; + lbeta = 1.f; } else if (WavCL < mea[5]) { - beta = 0.8f; //+sigma + lbeta = 0.8f; //+sigma } else if (WavCL < mea[6]) { - beta = 0.6f; + lbeta = 0.6f; } else if (WavCL < mea[7]) { - beta = 0.4f; + lbeta = 0.4f; } else if (WavCL < mea[8]) { - beta = 0.2f; // + 2 sigma + lbeta = 0.2f; // + 2 sigma } else if (WavCL < mea[9]) { - beta = 0.1f; + lbeta = 0.1f; } else { - beta = 0.0f; + lbeta = 0.0f; } } @@ -3751,7 +3695,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz //linear transition HL float diagacc = 1.f; - float alpha = (1024.f + 15.f * (float) cpMul * scale * scale2 * beta * diagacc) / 1024.f ; + float alpha = (1024.f + 15.f * (float) cpMul * scale * scale2 * lbeta * diagacc) / 1024.f ; if (cp.HSmet && cp.contena) { float aaal = (1.f - alpha) / ((cp.b_lhl - cp.t_lhl) * kH[level]); @@ -3801,18 +3745,12 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } if (cp.bam && cp.finena) { - float effect = cp.sigmadir; - float offs = 1.f; + const float effect = cp.sigmadir; + constexpr float offs = 1.f; float mea[10]; - float * beta = new float[W_L * H_L]; - - for (int co = 0; co < H_L * W_L; co++) { - beta[co] = 1.f; - } calceffect(level, mean, sigma, mea, effect, offs); - for (int co = 0; co < H_L * W_L; co++) { float WavCL = std::fabs(WavCoeffs_L[dir][co]); @@ -3841,12 +3779,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } } - if (cp.opaW && cp.BAmet == 2) { - - - - int iteration = cp.ite; int itplus = 7 + iteration; int itmoins = 7 - iteration; @@ -3857,7 +3790,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz it = itmoins; } else if (level == med) { it = 7; - } else { /*if(level > med)*/ + } else { /*if (level > med)*/ it = itplus; } @@ -3865,8 +3798,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz //float bal = cp.balan;//-100 +100 float kba = 1.f; - // if(dir <3) kba= 1.f + bal/600.f; - // if(dir==3) kba = 1.f - bal/300.f; + // if (dir <3) kba= 1.f + bal/600.f; + // if (dir==3) kba = 1.f - bal/300.f; for (int i = 0; i < W_L * H_L; i++) { int ii = i / W_L; int jj = i - ii * W_L; @@ -3898,7 +3831,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz it = itmoins; } else if (level == med) { it = 7; - } else { /*if(level > med)*/ + } else { /*if (level > med)*/ it = itplus; } @@ -3906,8 +3839,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float bal = cp.balan;//-100 +100 float kba = 1.f; - // if(dir <3) kba= 1.f + bal/600.f; - // if(dir==3) kba = 1.f - bal/300.f; + // if (dir <3) kba= 1.f + bal/600.f; + // if (dir==3) kba = 1.f - bal/300.f; for (int i = 0; i < W_L * H_L; i++) { int ii = i / W_L; int jj = i - ii * W_L; @@ -3945,8 +3878,6 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } } } - - delete[] beta; } // to see each level of wavelet ...level from 0 to 8 @@ -3970,9 +3901,8 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float mea[10]; float effect = cp.sigmacol; - float betaab = 1.f; + float betaab; float offs = 1.f; - float alphaC = 1.f; calceffect(level, meanab, sigmaab, mea, effect, offs); @@ -4022,7 +3952,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } - alphaC = (1024.f + 15.f * cpMul * cpChrom * betaab * scale / 50.f) / 1024.f ; + const float alphaC = (1024.f + 15.f * cpMul * cpChrom * betaab * scale / 50.f) / 1024.f ; WavCoeffs_ab[dir][i] *= alphaC; } @@ -4032,7 +3962,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float cpMulC = cp.mulC[level]; - // if( (cp.curv || cp.CHSLmet==1) && cp.CHmet!=2 && level < 9 && cpMulC != 0.f) { // cpMulC == 0.f means all will be multiplied by 1.f, so we can skip + // if ( (cp.curv || cp.CHSLmet==1) && cp.CHmet!=2 && level < 9 && cpMulC != 0.f) { // cpMulC == 0.f means all will be multiplied by 1.f, so we can skip if (cp.CHmet != 2 && level < 9 && cpMulC != 0.f && cp.chromena) { // cpMulC == 0.f means all will be multiplied by 1.f, so we can skip const float skinprot = params->wavelet.skinprotect; const float skinprotneg = -skinprot; @@ -4042,7 +3972,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float mea[10]; float effect = cp.sigmacol; - float betaab = 0.f; + float betaab; float offs = 1.f; calceffect(level, meanab, sigmaab, mea, effect, offs); @@ -4161,7 +4091,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f if ((useOpacity && level < 9 && mulOpacity != 0.f) && cp.toningena) { //toning float mea[10]; float effect = cp.sigmaton; - float betaab = 0.f; + float betaab; float offs = 1.f; float protec = 0.01f * (100.f - cp.protab); float aref1 = cp.a_high; @@ -4283,7 +4213,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f it = itmoins; } else if (level == med) { it = 7; - } else { /*if(level > med)*/ + } else { /*if (level > med)*/ it = itplus; } @@ -4291,8 +4221,8 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f //float bal = cp.balan;//-100 +100 float kba = 1.f; - // if(dir <3) kba= 1.f + bal/600.f; - // if(dir==3) kba = 1.f - bal/300.f; + // if (dir <3) kba= 1.f + bal/600.f; + // if (dir==3) kba = 1.f - bal/300.f; for (int i = 0; i < W_ab * H_ab; i++) { int ii = i / W_ab; int jj = i - ii * W_ab; @@ -4324,7 +4254,7 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f it = itmoins; } else if (level == med) { it = 7; - } else { /*if(level > med)*/ + } else { /*if (level > med)*/ it = itplus; } @@ -4332,8 +4262,8 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float bal = cp.balan;//-100 +100 float kba = 1.f; - // if(dir <3) kba= 1.f + bal/600.f; - // if(dir==3) kba = 1.f - bal/300.f; + // if (dir <3) kba= 1.f + bal/600.f; + // if (dir==3) kba = 1.f - bal/300.f; for (int i = 0; i < W_ab * H_ab; i++) { int ii = i / W_ab; int jj = i - ii * W_ab; @@ -4477,191 +4407,4 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } } -void ImProcFunctions::softproc2(const LabImage* bufcolorig, const LabImage* bufcolfin, float rad, int bfh, int bfw, double epsilmax, double epsilmin, float thres, int sk, bool multiThread, int flag) -{ - if (flag == 0) { - if (rad > 0.f) { - array2D ble(bfw, bfh); - array2D guid(bfw, bfh); - Imagefloat *tmpImage = nullptr; - tmpImage = new Imagefloat(bfw, bfh); - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < bfh; ir++) - for (int jr = 0; jr < bfw; jr++) { - - float X, Y, Z; - float L = bufcolorig->L[ir][jr]; - float a = bufcolorig->a[ir][jr]; - float b = bufcolorig->b[ir][jr]; - Color::Lab2XYZ(L, a, b, X, Y, Z); - - guid[ir][jr] = Y / 32768.f; - float La = bufcolfin->L[ir][jr]; - float aa = bufcolfin->a[ir][jr]; - float ba = bufcolfin->b[ir][jr]; - Color::Lab2XYZ(La, aa, ba, X, Y, Z); - tmpImage->r(ir, jr) = X; - tmpImage->g(ir, jr) = Y; - tmpImage->b(ir, jr) = Z; - - ble[ir][jr] = Y / 32768.f; - } - - double aepsil = (epsilmax - epsilmin) / 90.f; - double bepsil = epsilmax - 100.f * aepsil; - double epsil = aepsil * 0.1 * rad + bepsil; - - float blur = 10.f / sk * (thres + 0.8f * rad); - rtengine::guidedFilter(guid, ble, ble, blur, epsil, multiThread, 4); - - - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < bfh; ir++) - for (int jr = 0; jr < bfw; jr++) { - float X = tmpImage->r(ir, jr); - float Y = 32768.f * ble[ir][jr]; - float Z = tmpImage->b(ir, jr); - float L, a, b; - Color::XYZ2Lab(X, Y, Z, L, a, b); - bufcolfin->L[ir][jr] = L; - } - - delete tmpImage; - } - } else if (flag == 1) { - if (rad > 0.f) { - array2D ble(bfw, bfh); - array2D blechro(bfw, bfh); - array2D hue(bfw, bfh); - array2D guid(bfw, bfh); - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < bfh; ir++) - for (int jr = 0; jr < bfw; jr++) { -// hue[ir][jr] = xatan2f(bufcolfin->b[ir][jr], bufcolfin->a[ir][jr]); -// float chromah = sqrt(SQR(bufcolfin->b[ir][jr]) + SQR(bufcolfin->a[ir][jr])); - - ble[ir][jr] = (bufcolfin->L[ir][jr]) / 32768.f; -// blechro[ir][jr] = chromah / 32768.f; - guid[ir][jr] = bufcolorig->L[ir][jr] / 32768.f; - } - - double aepsil = (epsilmax - epsilmin) / 90.f; - double bepsil = epsilmax - 100.f * aepsil; - double epsil = aepsil * 0.1 * rad + bepsil; - - if (rad != 0.f) { - float blur = rad; - blur = blur < 0.f ? -1.f / blur : 1.f + blur; - // int r1 = max(int(4 / sk * blur + 0.5), 1); - int r2 = max(int(25 / sk * blur + 0.5), 1); - - if (rad < 0.f) { - epsil = 0.0001; - } - - rtengine::guidedFilter(guid, ble, ble, r2, epsil, multiThread); -// rtengine::guidedFilter(guid, blechro, blechro, r1, 0.5 * epsil, multiThread); - } - - - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int ir = 0; ir < bfh; ir++) - for (int jr = 0; jr < bfw; jr++) { - // float2 sincosval = xsincosf(hue[ir][jr]); - - bufcolfin->L[ir][jr] = 32768.f * ble[ir][jr]; - // bufcolfin->a[ir][jr] = 32768.f * sincosval.y * blechro[ir][jr]; - // bufcolfin->b[ir][jr] = 32768.f * sincosval.x * blechro[ir][jr]; - } - } - - } -} - - -void ImProcFunctions::Compresslevels2(float **Source, int W_L, int H_L, float compression, float detailattenuator, float thres, float mean, float maxp, float meanN, float maxN, float madL) -{ - //J.Desmis 12-2019 - - float exponent; - - if (detailattenuator > 0.f && detailattenuator < 0.05f) { - float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; //0.69315 = log(2) - exponent = 1.2f * xlogf(-betemp); - exponent /= 20.f; - } else if (detailattenuator >= 0.05f && detailattenuator < 0.25f) { - float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; - exponent = 1.2f * xlogf(-betemp); - exponent /= (-75.f * detailattenuator + 23.75f); - } else if (detailattenuator >= 0.25f) { - float betemp = expf(-(2.f - detailattenuator + 0.693147f)) - 1.f; - exponent = 1.2f * xlogf(-betemp); - exponent /= (-2.f * detailattenuator + 5.5f); - } else { - exponent = (compression - 1.0f) / 20.f; - } - - exponent += 1.f; - - - float ap = (thres - 1.f) / (maxp - mean); - float bp = 1.f - ap * mean; - - float a0 = (1.33f * thres - 1.f) / (1.f - mean); - float b0 = 1.f - a0 * mean; - - float apn = (thres - 1.f) / (maxN - meanN); - float bpn = 1.f - apn * meanN; - - float a0n = (1.33f * thres - 1.f) / (1.f - meanN); - float b0n = 1.f - a0n * meanN; - - -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int y = 0; y < H_L; y++) { - for (int x = 0; x < W_L; x++) { - float expone = 1.f; - - if (Source[y][x] >= 0.f) { - - if (Source[y][x] > mean) { - expone = 1.f + (exponent - 1.f) * (ap * Source[y][x] + bp); - } else { - expone = 1.f + (exponent - 1.f) * (a0 * Source[y][x] + b0); - } - - Source[y][x] = xexpf(xlogf(Source[y][x] + 0.05f * madL) * expone); - } else if (Source[y][x] < 0.f) { - if (-Source[y][x] > mean) { - expone = 1.f + (exponent - 1.f) * (apn * -Source[y][x] + bpn); - } else { - expone = 1.f + (exponent - 1.f) * (a0n * -Source[y][x] + b0n); - } - - Source[y][x] = -xexpf(xlogf(-Source[y][x] + 0.05f * madL) * expone); - } - } - } - -} - } From e25f5aa455198a7bbaa89bb33170f74e80c11af5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 12 May 2020 09:11:16 +0200 Subject: [PATCH 445/453] Rebuild wavtm with curve finerCoraser - language - various chnages to denoise --- rtdata/languages/default | 32 ++++++----- rtengine/curves.cc | 37 ++++++++++++ rtengine/curves.h | 26 +++++++++ rtengine/dcrop.cc | 8 ++- rtengine/improccoordinator.cc | 9 ++- rtengine/improccoordinator.h | 1 + rtengine/improcfun.h | 14 +++-- rtengine/ipwavelet.cc | 103 +++++++++++++++++++++++----------- rtengine/procparams.cc | 26 ++++++++- rtengine/procparams.h | 7 ++- rtengine/simpleprocess.cc | 10 +++- rtgui/paramsedited.cc | 6 ++ rtgui/paramsedited.h | 1 + rtgui/wavelet.cc | 44 ++++++++++++--- rtgui/wavelet.h | 3 + 15 files changed, 255 insertions(+), 72 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5f8906b3d..69b7449e3 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -567,10 +567,10 @@ HISTORY_MSG_314;W - Gamut - Reduce artifacts HISTORY_MSG_315;W - Residual - Contrast HISTORY_MSG_316;W - Gamut - Skin tar/prot HISTORY_MSG_317;W - Gamut - Skin hue -HISTORY_MSG_318;W - Contrast - Highlight levels -HISTORY_MSG_319;W - Contrast - Highlight range -HISTORY_MSG_320;W - Contrast - Shadow range -HISTORY_MSG_321;W - Contrast - Shadow levels +HISTORY_MSG_318;W - Contrast - Fine levels +HISTORY_MSG_319;W - Contrast - Fine range +HISTORY_MSG_320;W - Contrast - Coarse range +HISTORY_MSG_321;W - Contrast - Coarse levels HISTORY_MSG_322;W - Gamut - Avoid color shift HISTORY_MSG_323;W - ES - Local contrast HISTORY_MSG_324;W - Chroma - Pastel @@ -2193,6 +2193,7 @@ TP_WAVELET_CONTEDIT;'After' contrast curve TP_WAVELET_CONTFRAME;Contrast - Compression TP_WAVELET_CONTR;Gamut TP_WAVELET_CONTRA;Contrast +TP_WAVELET_CONTRASTEDIT;Finer - Coarser levels TP_WAVELET_CONTRAST_MINUS;Contrast - TP_WAVELET_CONTRAST_PLUS;Contrast + TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. @@ -2240,9 +2241,10 @@ TP_WAVELET_EDVAL;Strength TP_WAVELET_FINAL;Final Touchup TP_WAVELET_FINCFRAME;Final Local Contrast TP_WAVELET_FINEST;Finest -TP_WAVELET_HIGHLIGHT;Highlight luminance range +TP_WAVELET_HIGHLIGHT;Finer levels luminance range +TP_WAVELET_FINCOAR_TOOLTIP;The left (positive) part of the curve acts on the finer levels (increase).\nThe 2 points on the abscissa represent the respective action limits of finer and coarser levels 5 and 6 (default).\nThe right (negative) part of the curve acts on the coarser levels (increase).\nAvoid moving the left part of the curve with negative values. Avoid moving the right part of the curve with positives values TP_WAVELET_HS1;Whole luminance range -TP_WAVELET_HS2;Shadows/Highlights +TP_WAVELET_HS2;Selective luminance range TP_WAVELET_HUESKIN;Skin hue TP_WAVELET_HUESKIN_TOOLTIP;The bottom points set the beginning of the transition zone, and the upper points the end of it, where the effect is at its maximum.\n\nIf you need to move the area significantly, or if there are artifacts, then the white balance is incorrect. TP_WAVELET_HUESKY;Sky hue @@ -2252,8 +2254,8 @@ TP_WAVELET_ITER_TOOLTIP;Left: increase low levels and reduce high levels,\nRight TP_WAVELET_LABEL;Wavelet Levels TP_WAVELET_LARGEST;Coarsest TP_WAVELET_LEVCH;Chroma -TP_WAVELET_LEVDIR_ALL;All levels in all directions -TP_WAVELET_LEVDIR_INF;Below or equal the level +TP_WAVELET_LEVDIR_ALL;All levels, in all directions +TP_WAVELET_LEVDIR_INF;Finer details levels, with selected level TP_WAVELET_LEVDIR_ONE;One level TP_WAVELET_LEVDIR_SUP;Above the level TP_WAVELET_LEVELS;Wavelet levels @@ -2266,7 +2268,7 @@ TP_WAVELET_LEVTWO;Level 3 TP_WAVELET_LEVZERO;Level 1 TP_WAVELET_LINKEDG;Link with Edge Sharpness' Strength TP_WAVELET_LIPST;Enhanced algoritm -TP_WAVELET_LOWLIGHT;Shadow luminance range +TP_WAVELET_LOWLIGHT;Coarser levels luminance range TP_WAVELET_LOWTHR_TOOLTIP;Prevents amplification of fine textures and noise TP_WAVELET_MEDGREINF;First level TP_WAVELET_MEDI;Reduce artifacts in blue sky @@ -2277,6 +2279,7 @@ TP_WAVELET_MERGEL;Merge Luma TP_WAVELET_NEUTRAL;Neutral TP_WAVELET_NOIS;Denoise TP_WAVELET_NOISE;Denoise and Refine +TP_WAVELET_NOISE_TOOLTIP;If level 4 luminance denoise superior to 20, mode Agressive is used.\nIf chrominance coarse superior to 20, mode Agressive is used. TP_WAVELET_NPHIGH;High TP_WAVELET_NPLOW;Low TP_WAVELET_NPNONE;None @@ -2318,11 +2321,12 @@ TP_WAVELET_SOFTRAD;Soft Radius TP_WAVELET_STREN;Strength TP_WAVELET_STRENGTH;Strength TP_WAVELET_SUPE;Extra -TP_WAVELET_THR;Shadows threshold -TP_WAVELET_THRESHOLD;Highlight levels -TP_WAVELET_THRESHOLD2;Shadow levels -TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). -TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. +TP_WAVELET_THRESHOLD;Finer levels +TP_WAVELET_THRESHOLD2;Coarser levels +//TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). +//TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. +TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. : All levels from level 1 up to the chosen value will only be affected within the Finer levels luminance range.\nAll other levels will have the whole range of luminances affected, unless the Coarser levels setting limits it.\nThe chosen value in this slider becomes the minimum possible value of the Coarser levels. +TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). : Only levels between the chosen value and level 9/Extra will be affected by the Coarser levels luminance range.\nAll other levels will have the whole range of luminances affected, unless the Finer levels setting limits it.\nThe lower level possible that will be considered by the algorithm is limited by the Finer levels value. TP_WAVELET_THRESWAV;Balance Threshold TP_WAVELET_THRH;Highlights threshold TP_WAVELET_TILESBIG;Tiles diff --git a/rtengine/curves.cc b/rtengine/curves.cc index 14711c730..ebb23e754 100644 --- a/rtengine/curves.cc +++ b/rtengine/curves.cc @@ -1278,6 +1278,43 @@ void WavOpacityCurveRG::Set(const std::vector &curvePoints) } +WavOpacityCurveSH::WavOpacityCurveSH() {} + +void WavOpacityCurveSH::Reset() +{ + lutOpacityCurveSH.reset(); +} + +void WavOpacityCurveSH::Set(const Curve &pCurve) +{ + if (pCurve.isIdentity()) { + Reset(); // raise this value if the quality suffers from this number of samples + return; + } + + lutOpacityCurveSH(501); // raise this value if the quality suffers from this number of samples + + for (int i = 0; i < 501; i++) { + lutOpacityCurveSH[i] = pCurve.getVal(double(i) / 500.); + } +} + +void WavOpacityCurveSH::Set(const std::vector &curvePoints) +{ + if (!curvePoints.empty() && curvePoints[0] > FCT_Linear && curvePoints[0] < FCT_Unchanged) { + FlatCurve tcurve(curvePoints, false, CURVES_MIN_POLY_POINTS / 2); + tcurve.setIdentityValue(0.); + Set(tcurve); + } else { + Reset(); + } + +} + + + + + WavOpacityCurveBY::WavOpacityCurveBY() {} void WavOpacityCurveBY::Reset() diff --git a/rtengine/curves.h b/rtengine/curves.h index 03fa3e812..0fb58cc9e 100644 --- a/rtengine/curves.h +++ b/rtengine/curves.h @@ -673,6 +673,32 @@ public: return lutOpacityCurveRG; } }; + +class WavOpacityCurveSH +{ +private: + LUTf lutOpacityCurveSH; // 0xffff range + void Set(const Curve &pCurve); +public: + virtual ~WavOpacityCurveSH() {}; + WavOpacityCurveSH(); + + void Reset(); + // void Set(const std::vector &curvePoints, bool &opautili); + void Set(const std::vector &curvePoints); + float operator[](float index) const + { + return lutOpacityCurveSH[index]; + } + + operator bool (void) const + { + return lutOpacityCurveSH; + } +}; + + + class WavOpacityCurveBY { private: diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 11bf19edf..f58f2e4c9 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -969,12 +969,13 @@ void Crop::update(int todo) WavCurve wavCLVCurve; Wavblcurve wavblcurve; WavOpacityCurveRG waOpacityCurveRG; + WavOpacityCurveSH waOpacityCurveSH; WavOpacityCurveBY waOpacityCurveBY; WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; LUTf wavclCurve; - params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); LabImage *unshar = nullptr; Glib::ustring provis; LabImage *provradius = nullptr; @@ -1003,7 +1004,7 @@ void Crop::update(int todo) unshar = new LabImage(labnCrop->W, labnCrop->H); provis = params.wavelet.CLmethod; params.wavelet.CLmethod = "all"; - parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); unshar->CopyFrom(labnCrop); params.wavelet.CLmethod = provis; @@ -1016,7 +1017,8 @@ void Crop::update(int todo) WaveParams.expnoise = false; } - parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + // parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); + parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = procont; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index f68616b96..f7f8756d2 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -891,7 +891,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if ((params->wavelet.enabled)) { WaveletParams WaveParams = params->wavelet; - WaveParams.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); +// WaveParams.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + WaveParams.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); int kall = 0; LabImage *unshar = nullptr; Glib::ustring provis; @@ -920,7 +921,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) unshar = new LabImage(pW, pH); provis = params->wavelet.CLmethod; params->wavelet.CLmethod = "all"; - ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); +// ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); unshar->CopyFrom(nprevl); @@ -934,7 +936,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) WaveParams.expnoise = false; } - ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); +// ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); + ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { diff --git a/rtengine/improccoordinator.h b/rtengine/improccoordinator.h index e17d88183..e4858c76b 100644 --- a/rtengine/improccoordinator.h +++ b/rtengine/improccoordinator.h @@ -141,6 +141,7 @@ protected: WavCurve wavCLVCurve; Wavblcurve wavblcurve; WavOpacityCurveRG waOpacityCurveRG; + WavOpacityCurveSH waOpacityCurveSH; WavOpacityCurveBY waOpacityCurveBY; WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index b2df86112..f4a452dcc 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -55,6 +55,7 @@ class ToneCurve; class WavCurve; class Wavblcurve; class WavOpacityCurveBY; +class WavOpacityCurveSH; class WavOpacityCurveRG; class WavOpacityCurveW; class WavOpacityCurveWL; @@ -201,19 +202,22 @@ public: int pitch, int scale, const int luma, const int chroma/*, LUTf & Lcurve, LUTf & abcurve*/); void Tile_calc(int tilesize, int overlap, int kall, int imwidth, int imheight, int &numtiles_W, int &numtiles_H, int &tilewidth, int &tileheight, int &tileWskip, int &tileHskip); - void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); +// void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); + void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveSH & waOpacityCurveSH, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, const Wavblcurve & wavblcurve, - struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); +// struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); + struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili); void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab); void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, const cont_params &cp, FlatCurve* hhcurve, bool hhutili); void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, - int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp, - int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); + // int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); + int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili); + void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp, + int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, int W_ab, int H_ab, const bool useChannelA, float *meanab, float *sigmaab); void Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 445cfdd06..373ea6ef0 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -164,7 +164,8 @@ struct cont_params { int wavNestedLevels = 1; -void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) +//void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) +void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveSH & waOpacityCurveSH, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) { @@ -469,9 +470,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.t_lsl = static_cast(params->wavelet.bllev.getTopLeft()); cp.b_rsl = static_cast(params->wavelet.bllev.getBottomRight()); cp.t_rsl = static_cast(params->wavelet.bllev.getTopRight()); - cp.numlevS = params->wavelet.threshold2; - int maxlevS = 9 - cp.numlevH; - cp.numlevS = rtengine::min(cp.numlevS, maxlevS); +// cp.numlevS = params->wavelet.threshold2; +// int maxlevS = 9 - cp.numlevH; +// cp.numlevS = rtengine::min(cp.numlevS, maxlevS); + cp.numlevS = 9 - params->wavelet.threshold2; + int maxlevS = cp.numlevH; + cp.numlevS = rtengine::max(cp.numlevS, maxlevS); //highlight cp.b_lhl = static_cast(params->wavelet.hllev.getBottomLeft()); cp.t_lhl = static_cast(params->wavelet.hllev.getTopLeft()); @@ -958,7 +962,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } if ((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { - int edge = 4; + int edge = 1; vari[0] = rtengine::max(0.000001f, vari[0]); vari[1] = rtengine::max(0.000001f, vari[1]); vari[2] = rtengine::max(0.000001f, vari[2]); @@ -1001,7 +1005,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } } - if (cp.lev3n < 0.5f) { + if (cp.lev3n < 20.f) { WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge, 1); } else { WaveletDenoiseAll_BiShrinkL(*Ldecomp, noisevarlum, madL, vari, edge, 1); @@ -1023,7 +1027,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Chutili = true; } - WaveletcontAllL(labco, varhue, varchro, *Ldecomp, wavblcurve, cp, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); +// WaveletcontAllL(labco, varhue, varchro, *Ldecomp, wavblcurve, cp, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); + WaveletcontAllL(labco, varhue, varchro, *Ldecomp, wavblcurve, cp, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, waOpacityCurveSH, ChCurve, Chutili); if (cp.val > 0 || ref || contr || cp.diagcurv) { //edge Evaluate2(*Ldecomp, mean, meanN, sigma, sigmaN, MaxP, MaxN); @@ -1048,16 +1053,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float noiseccr = cp.chromco; if (cp.balchrom > 0.f) { - noisecfr = cp.chromfi * ((100.f + cp.balchrom) / 10.f); - noiseccr = cp.chromco + ((100.f + cp.balchrom) / 10.f); + noisecfr = cp.chromfi + 0.1f * cp.balchrom; + noiseccr = cp.chromco + 0.1f * cp.balchrom; } float noisecfb = cp.chromfi; float noiseccb = cp.chromco; if (cp.balchrom < 0.f) { - noisecfb = cp.chromfi * ((100.f - cp.balchrom) / 10.f); - noiseccb = cp.chromco * ((100.f - cp.balchrom) / 10.f); + noisecfb = cp.chromfi - 0.1f * cp.balchrom; + noiseccb = cp.chromco - 0.1f * cp.balchrom; } @@ -1292,7 +1297,11 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { +// if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { + if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f )) { + WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } @@ -1326,7 +1335,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { +// if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { + if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f )) { + WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); } @@ -1356,21 +1368,34 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { +// if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { + if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f)) { + WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); + } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } Evaluate2(*adecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); WaveletcontAllAB(labco, varhue, varchro, *adecomp, wavblcurve, waOpacityCurveW, cp, true, skip, meanab, sigmaab); - WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); - WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); - Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); + if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f)) { + WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ + WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + } +// WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); +// WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); + Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); +/* if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); } + */ + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); + WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); adecomp->reconstruct(labco->data + datalen, cp.strength); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); @@ -2022,7 +2047,8 @@ void ImProcFunctions::WaveletcontAllLfinal(const wavelet_decomposition &WaveletC void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, const Wavblcurve & wavblcurve, - struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) +// struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) + struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili) { const int maxlvl = WaveletCoeffs_L.maxlevel(); const int W_L = WaveletCoeffs_L.level_W(0); @@ -2422,7 +2448,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * float ** WavCoeffs_L = WaveletCoeffs_L.level_coeffs(lvl); - ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); +// ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); + ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, waOpacityCurveSH, ChCurve, Chutili); if (wavblcurve && wavcurvecomp && cp.blena) { // printf("Blur level L\n"); @@ -3106,7 +3133,8 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, } void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * labco, float ** varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, - int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) +// int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) + int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili) { assert(level >= 0); assert(maxlvl > level); @@ -3605,7 +3633,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float red2 = 0.011f * (110.f - lowthr); for (int i = 0; i < W_L * H_L; i++) { - float kLlev = 1.f; + float kLlevH = 1.f; + float kLlevS = 1.f; if (cpMul < 0.f) { lbeta = 1.f; // disabled for negatives values "less contrast" @@ -3697,7 +3726,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float diagacc = 1.f; float alpha = (1024.f + 15.f * (float) cpMul * scale * scale2 * lbeta * diagacc) / 1024.f ; - if (cp.HSmet && cp.contena) { + // if (cp.HSmet && cp.contena) { + if (cp.HSmet && cp.contena && waOpacityCurveSH) { float aaal = (1.f - alpha) / ((cp.b_lhl - cp.t_lhl) * kH[level]); float bbal = 1.f - aaal * cp.b_lhl * kH[level]; float aaar = (alpha - 1.f) / (cp.t_rhl - cp.b_rhl) * kH[level]; @@ -3708,35 +3738,40 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float aaarS = (alpha - 1.f) / (cp.t_rsl - cp.b_rsl); float bbbrS = 1.f - cp.b_rsl * aaarS; - if (level <= cp.numlevH) { //in function of levels +// if (level <= cp.numlevH) { //in function of levels + float klevred = 2.f * (waOpacityCurveSH[level * 55.5f] - 0.5f); + if(klevred > 0.f && level <= 6) {// level < 6 to avoid bad use of the curve if user put negative values positives if ((LL100 > cp.t_lhl * kH[level] && LL100 < cp.t_rhl * kH[level])) { - kLlev = alpha; + kLlevH = alpha; } else if ((LL100 > cp.b_lhl * kH[level] && LL100 <= cp.t_lhl * kH[level])) { - kLlev = aaal * LL100 + bbal; + kLlevH = aaal * LL100 + bbal; } else if ((LL100 > cp.t_rhl * kH[level] && LL100 <= cp.b_rhl * kH[level])) { - kLlev = aaar * LL100 + bbbr; + kLlevH = aaar * LL100 + bbbr; } else { - kLlev = 1.f; + kLlevH = 1.f; } + kLlevH = 1.f + (kLlevH - 1.f) * klevred; } - if (level >= (9 - cp.numlevS)) { + // if (level >= (9 - cp.numlevS)) { + if(klevred < 0.f && level >= 3) {//level > 3 to avoid bad use of the curve if user put positives values negatives if ((LL100 > cp.t_lsl && LL100 < cp.t_rsl)) { - kLlev = alpha; + kLlevS = alpha; } else if ((LL100 > cp.b_lsl && LL100 <= cp.t_lsl)) { - kLlev = aaalS * LL100 + bbalS; + kLlevS = aaalS * LL100 + bbalS; } else if ((LL100 > cp.t_rsl && LL100 <= cp.b_rsl)) { - kLlev = aaarS * LL100 + bbbrS; + kLlevS = aaarS * LL100 + bbbrS; } else { - kLlev = 1.f; + kLlevS = 1.f; } + kLlevS = 1.f - (kLlevS - 1.f) * klevred; } } else { - kLlev = alpha; + kLlevH = kLlevS = alpha; } - WavCoeffs_L[dir][i] *= (kLlev); + WavCoeffs_L[dir][i] *= (kLlevH * kLlevS); } } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index e1765a5f0..4df201503 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2191,6 +2191,25 @@ WaveletParams::WaveletParams() : 0.35, 0.35 }, + opacityCurveSH{ + static_cast(FCT_MinMaxCPoints), + 0.0, + 1., + 0.35, + 0.35, + 0.4, + 0.5, + 0.35, + 0.35, + 0.5, + 0.5, + 0.35, + 0.35, + 1., + 0., + 0.35, + 0.35 + }, opacityCurveBY{ static_cast(FCT_MinMaxCPoints), 0.0, @@ -2322,7 +2341,7 @@ WaveletParams::WaveletParams() : chroma(5), chro(0), threshold(5), - threshold2(4), + threshold2(5), edgedetect(90), edgedetectthr(20), edgedetectthr2(0), @@ -2359,6 +2378,7 @@ bool WaveletParams::operator ==(const WaveletParams& other) const ccwcurve == other.ccwcurve && blcurve == other.blcurve && opacityCurveRG == other.opacityCurveRG + && opacityCurveSH == other.opacityCurveSH && opacityCurveBY == other.opacityCurveBY && opacityCurveW == other.opacityCurveW && opacityCurveWL == other.opacityCurveWL @@ -2492,6 +2512,7 @@ void WaveletParams::getCurves( WavCurve& cCurve, Wavblcurve& tCurve, WavOpacityCurveRG& opacityCurveLUTRG, + WavOpacityCurveSH& opacityCurveLUTSH, WavOpacityCurveBY& opacityCurveLUTBY, WavOpacityCurveW& opacityCurveLUTW, WavOpacityCurveWL& opacityCurveLUTWL @@ -2500,6 +2521,7 @@ void WaveletParams::getCurves( cCurve.Set(this->ccwcurve); tCurve.Set(this->blcurve); opacityCurveLUTRG.Set(this->opacityCurveRG); + opacityCurveLUTSH.Set(this->opacityCurveSH); opacityCurveLUTBY.Set(this->opacityCurveBY); opacityCurveLUTW.Set(this->opacityCurveW); opacityCurveLUTWL.Set(this->opacityCurveWL); @@ -3631,6 +3653,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->wavelet.pastlev, "Wavelet", "Pastlev", wavelet.pastlev.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.satlev, "Wavelet", "Satlev", wavelet.satlev.toVector(), keyFile); saveToKeyfile(!pedited || pedited->wavelet.opacityCurveRG, "Wavelet", "OpacityCurveRG", wavelet.opacityCurveRG, keyFile); + saveToKeyfile(!pedited || pedited->wavelet.opacityCurveSH, "Wavelet", "Levalshc", wavelet.opacityCurveSH, keyFile); saveToKeyfile(!pedited || pedited->wavelet.opacityCurveBY, "Wavelet", "OpacityCurveBY", wavelet.opacityCurveBY, keyFile); saveToKeyfile(!pedited || pedited->wavelet.opacityCurveW, "Wavelet", "OpacityCurveW", wavelet.opacityCurveW, keyFile); saveToKeyfile(!pedited || pedited->wavelet.opacityCurveWL, "Wavelet", "OpacityCurveWL", wavelet.opacityCurveWL, keyFile); @@ -4830,6 +4853,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Wavelet", "ContrastCurve", pedited, wavelet.ccwcurve, pedited->wavelet.ccwcurve); assignFromKeyfile(keyFile, "Wavelet", "blcurve", pedited, wavelet.blcurve, pedited->wavelet.blcurve); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveRG", pedited, wavelet.opacityCurveRG, pedited->wavelet.opacityCurveRG); + assignFromKeyfile(keyFile, "Wavelet", "Levelshc", pedited, wavelet.opacityCurveSH, pedited->wavelet.opacityCurveSH); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveBY", pedited, wavelet.opacityCurveBY, pedited->wavelet.opacityCurveBY); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveW", pedited, wavelet.opacityCurveW, pedited->wavelet.opacityCurveW); assignFromKeyfile(keyFile, "Wavelet", "OpacityCurveWL", pedited, wavelet.opacityCurveWL, pedited->wavelet.opacityCurveWL); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 24995525d..8e3ff5b6c 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -42,6 +42,7 @@ class RetinextransmissionCurve; class WavCurve; class Wavblcurve; class WavOpacityCurveBY; +class WavOpacityCurveSH; class WavOpacityCurveRG; class WavOpacityCurveW; class WavOpacityCurveWL; @@ -1187,7 +1188,9 @@ private: struct WaveletParams { std::vector ccwcurve; std::vector blcurve; + std::vector levelshc; std::vector opacityCurveRG; + std::vector opacityCurveSH; std::vector opacityCurveBY; std::vector opacityCurveW; std::vector opacityCurveWL; @@ -1316,8 +1319,8 @@ struct WaveletParams { void getCurves( WavCurve& cCurve, Wavblcurve& tCurve, - WavOpacityCurveRG& - opacityCurveLUTRG, + WavOpacityCurveRG& opacityCurveLUTRG, + WavOpacityCurveSH& opacityCurveLUTSH, WavOpacityCurveBY& opacityCurveLUTBY, WavOpacityCurveW& opacityCurveLUTW, WavOpacityCurveWL& opacityCurveLUTWL diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 14a594ac2..92a3d7f29 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1127,6 +1127,7 @@ private: WavCurve wavCLVCurve; Wavblcurve wavblcurve; WavOpacityCurveRG waOpacityCurveRG; + WavOpacityCurveSH waOpacityCurveSH; WavOpacityCurveBY waOpacityCurveBY; WavOpacityCurveW waOpacityCurveW; WavOpacityCurveWL waOpacityCurveWL; @@ -1149,7 +1150,8 @@ private: provradius->CopyFrom(labView); } - params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); +// params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); + params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); CurveFactory::curveWavContL(wavcontlutili, params.wavelet.wavclCurve, wavclCurve,/* hist16C, dummy,*/ 1); @@ -1157,7 +1159,8 @@ private: unshar = new LabImage(fw, fh); provis = params.wavelet.CLmethod; params.wavelet.CLmethod = "all"; - ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); +// ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); unshar->CopyFrom(labView); params.wavelet.CLmethod = provis; @@ -1169,7 +1172,8 @@ private: WaveParams.expnoise = false; } - ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); +// ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); + ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = procont; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 85119fe80..b9f7d4791 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -565,6 +565,7 @@ void ParamsEdited::set(bool v) wavelet.level3noise = v; wavelet.ccwcurve = v; wavelet.blcurve = v; + wavelet.opacityCurveSH = v; wavelet.opacityCurveRG = v; wavelet.opacityCurveBY = v; wavelet.opacityCurveW = v; @@ -1187,6 +1188,7 @@ void ParamsEdited::initFrom(const std::vector& wavelet.satlev = wavelet.satlev && p.wavelet.satlev == other.wavelet.satlev; wavelet.ccwcurve = wavelet.ccwcurve && p.wavelet.ccwcurve == other.wavelet.ccwcurve; wavelet.blcurve = wavelet.blcurve && p.wavelet.blcurve == other.wavelet.blcurve; + wavelet.opacityCurveSH = wavelet.opacityCurveSH && p.wavelet.opacityCurveSH == other.wavelet.opacityCurveSH; wavelet.opacityCurveRG = wavelet.opacityCurveRG && p.wavelet.opacityCurveRG == other.wavelet.opacityCurveRG; wavelet.opacityCurveBY = wavelet.opacityCurveBY && p.wavelet.opacityCurveBY == other.wavelet.opacityCurveBY; wavelet.opacityCurveW = wavelet.opacityCurveW && p.wavelet.opacityCurveW == other.wavelet.opacityCurveW; @@ -3189,6 +3191,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.wavelet.blcurve = mods.wavelet.blcurve; } + if (wavelet.opacityCurveSH) { + toEdit.wavelet.opacityCurveSH = mods.wavelet.opacityCurveSH; + } + if (wavelet.opacityCurveRG) { toEdit.wavelet.opacityCurveRG = mods.wavelet.opacityCurveRG; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 68340309d..6655bbcda 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -577,6 +577,7 @@ struct WaveletParamsEdited { bool level3noise; bool ccwcurve; bool blcurve; + bool opacityCurveSH; bool opacityCurveBY; bool opacityCurveRG; bool opacityCurveW; diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 1f4714452..53c7ef90b 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -63,6 +63,7 @@ std::vector makeWholeHueRange() Wavelet::Wavelet() : FoldableToolPanel(this, "wavelet", M("TP_WAVELET_LABEL"), true, true), curveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CONTEDIT"))), + curveEditorC(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CONTRASTEDIT"))), CCWcurveEditorG(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_CCURVE"))), curveEditorbl(new CurveEditorGroup(options.lastWaveletCurvesDir, M("TP_WAVELET_BLCURVE"))), curveEditorRES(new CurveEditorGroup(options.lastWaveletCurvesDir)), @@ -131,7 +132,8 @@ Wavelet::Wavelet() : level2noise(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LEVTWO"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false))), level3noise(Gtk::manage(new ThresholdAdjuster(M("TP_WAVELET_LEVTHRE"), -30., 100., 0., M("TP_WAVELET_STREN"), 1., 0., 100., 0., M("TP_WAVELET_NOIS"), 1., nullptr, false))), threshold(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESHOLD"), 1, 9, 1, 5))), - threshold2(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESHOLD2"), 1, 9, 1, 4))), + // threshold2(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESHOLD2"), 1, 9, 1, 4))), + threshold2(Gtk::manage(new Adjuster(M("TP_WAVELET_THRESHOLD2"), 1, 9, 1, 5))), edgedetect(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECT"), 0, 100, 1, 90))), edgedetectthr(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR"), 0, 100, 1, 20))), edgedetectthr2(Gtk::manage(new Adjuster(M("TP_WAVELET_EDGEDETECTTHR2"), -10, 100, 1, 0))), @@ -224,6 +226,7 @@ Wavelet::Wavelet() : EvWavLabGridValue = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_WAVLABGRID_VALUE"); EvWavrangeab = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_RANGEAB"); EvWavprotab = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_PROTAB"); + EvWavlevelshc = m->newEvent(DIRPYREQUALIZER, "HISTORY_MSG_LEVELSHC"); labgrid = Gtk::manage(new LabGrid(EvWavLabGridValue, M("TP_WAVELET_LABGRID_VALUES"))); @@ -422,11 +425,25 @@ Wavelet::Wavelet() : threshold2->setAdjusterListener(this); threshold2->set_tooltip_text(M("TP_WAVELET_THRESHOLD2_TOOLTIP")); + const WaveletParams default_params; + + curveEditorC->setCurveListener(this); + curveEditorC->set_tooltip_text(M("TP_WAVELET_FINCOAR_TOOLTIP")); + + + opacityShapeSH = static_cast(curveEditorC->addCurve(CT_Flat, "", nullptr, false, false)); + opacityShapeSH->setIdentityValue(0.); + opacityShapeSH->setResetCurve(FlatCurveType(default_params.opacityCurveSH.at(0)), default_params.opacityCurveSH); + + curveEditorC->curveListComplete(); + curveEditorC->show(); + contrastSHVBox->pack_start(*HSmethod); contrastSHVBox->pack_start(*hllev); - contrastSHVBox->pack_start(*threshold); + // contrastSHVBox->pack_start(*threshold); contrastSHVBox->pack_start(*bllev); - contrastSHVBox->pack_start(*threshold2); +// contrastSHVBox->pack_start(*threshold2); + contrastSHVBox->pack_start(*curveEditorC); Gtk::Frame* const contrastSHFrame = Gtk::manage(new Gtk::Frame(M("TP_WAVELET_APPLYTO"))); contrastSHFrame->add(*contrastSHVBox); levBox->pack_start(*contrastSHFrame); @@ -511,7 +528,7 @@ Wavelet::Wavelet() : opaCurveEditorG->setCurveListener(this); - const WaveletParams default_params; +// const WaveletParams default_params; opacityShapeRG = static_cast(opaCurveEditorG->addCurve(CT_Flat, "", nullptr, false, false)); opacityShapeRG->setIdentityValue(0.); @@ -591,6 +608,7 @@ Wavelet::Wavelet() : chroBox->pack_start(*chromco); chroFrame->add(*chroBox); noiseBox->pack_start(*chroFrame); + noiseBox->set_tooltip_text(M("TP_WAVELET_NOISE_TOOLTIP")); //Clarity @@ -617,13 +635,13 @@ Wavelet::Wavelet() : // Edge Sharpness ToolParamBlock* const edgBox = Gtk::manage(new ToolParamBlock()); - edgeffect->setAdjusterListener(this); - edgBox->pack_start(*edgeffect); - edgeffect->set_tooltip_markup(M("TP_WAVELET_EDEFFECT_TOOLTIP")); edgval->setAdjusterListener(this); edgBox->pack_start(*edgval); + edgeffect->setAdjusterListener(this); + edgBox->pack_start(*edgeffect); + edgeffect->set_tooltip_markup(M("TP_WAVELET_EDEFFECT_TOOLTIP")); edgrad->setAdjusterListener(this); edgBox->pack_start(*edgrad); @@ -1033,6 +1051,7 @@ Wavelet::Wavelet() : opacityShapeWL->setIdentityValue(0.); opacityShapeWL->setResetCurve(FlatCurveType(default_params.opacityCurveWL.at(0)), default_params.opacityCurveWL); opacityShapeWL->setTooltip(M("TP_WAVELET_OPACITYWL_TOOLTIP")); + opacityShapeWL->setBottomBarBgGradient({{0., 0., 0., 0.}, {1., 1., 1., 1.}}); sigmafin->setAdjusterListener(this); // This will add the reset button at the end of the curveType buttons @@ -1130,6 +1149,7 @@ Wavelet::~Wavelet() idle_register.destroy(); delete opaCurveEditorG; + delete curveEditorC; delete opacityCurveEditorG; delete curveEditorbl; delete CCWcurveEditorG; @@ -1359,6 +1379,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) ccshape->setCurve(pp->wavelet.ccwcurve); blshape->setCurve(pp->wavelet.blcurve); opacityShapeRG->setCurve(pp->wavelet.opacityCurveRG); + opacityShapeSH->setCurve(pp->wavelet.opacityCurveSH); opacityShapeBY->setCurve(pp->wavelet.opacityCurveBY); opacityShape->setCurve(pp->wavelet.opacityCurveW); opacityShapeWL->setCurve(pp->wavelet.opacityCurveWL); @@ -1579,6 +1600,7 @@ void Wavelet::read(const ProcParams* pp, const ParamsEdited* pedited) exptoning->set_inconsistent(!pedited->wavelet.exptoning); expnoise->set_inconsistent(!pedited->wavelet.expnoise); opacityShapeRG->setCurve(pp->wavelet.opacityCurveRG); + opacityShapeSH->setCurve(pp->wavelet.opacityCurveSH); opacityShapeBY->setCurve(pp->wavelet.opacityCurveBY); opacityShape->setCurve(pp->wavelet.opacityCurveW); opacityShapeWL->setCurve(pp->wavelet.opacityCurveWL); @@ -1771,6 +1793,7 @@ void Wavelet::setEditProvider(EditDataProvider *provider) ccshape->setEditProvider(provider); blshape->setEditProvider(provider); opacityShapeRG->setEditProvider(provider); + opacityShapeSH->setEditProvider(provider); opacityShapeBY->setEditProvider(provider); opacityShape->setEditProvider(provider); opacityShapeWL->setEditProvider(provider); @@ -1848,6 +1871,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pp->wavelet.ccwcurve = ccshape->getCurve(); pp->wavelet.blcurve = blshape->getCurve(); pp->wavelet.opacityCurveRG = opacityShapeRG->getCurve(); + pp->wavelet.opacityCurveSH = opacityShapeSH->getCurve(); pp->wavelet.opacityCurveBY = opacityShapeBY->getCurve(); pp->wavelet.opacityCurveW = opacityShape->getCurve(); pp->wavelet.opacityCurveWL = opacityShapeWL->getCurve(); @@ -1976,6 +2000,7 @@ void Wavelet::write(ProcParams* pp, ParamsEdited* pedited) pedited->wavelet.level2noise = level2noise->getEditedState(); pedited->wavelet.level3noise = level3noise->getEditedState(); pedited->wavelet.opacityCurveRG = !opacityShapeRG->isUnChanged(); + pedited->wavelet.opacityCurveSH = !opacityShapeSH->isUnChanged(); pedited->wavelet.opacityCurveBY = !opacityShapeBY->isUnChanged(); pedited->wavelet.opacityCurveW = !opacityShape->isUnChanged(); pedited->wavelet.opacityCurveWL = !opacityShapeWL->isUnChanged(); @@ -2158,6 +2183,8 @@ void Wavelet::curveChanged(CurveEditor* ce) listener->panelChanged(EvWavblshape, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeRG) { listener->panelChanged(EvWavColor, M("HISTORY_CUSTOMCURVE")); + } else if (ce == opacityShapeSH) { + listener->panelChanged(EvWavlevelshc, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShapeBY) { listener->panelChanged(EvWavOpac, M("HISTORY_CUSTOMCURVE")); } else if (ce == opacityShape) { @@ -2465,11 +2492,13 @@ void Wavelet::HSmethodUpdateUI() bllev->hide(); threshold->hide(); threshold2->hide(); + curveEditorC->hide(); } else { //with hllev->show(); bllev->show(); threshold->show(); threshold2->show(); + curveEditorC->show(); } } } @@ -2880,6 +2909,7 @@ void Wavelet::setBatchMode(bool batchMode) Dirmethod->append(M("GENERAL_UNCHANGED")); CCWcurveEditorG->setBatchMode(batchMode); opaCurveEditorG->setBatchMode(batchMode); + curveEditorC->setBatchMode(batchMode); opacityCurveEditorG->setBatchMode(batchMode); opacityCurveEditorW->setBatchMode(batchMode); opacityCurveEditorWL->setBatchMode(batchMode); diff --git a/rtgui/wavelet.h b/rtgui/wavelet.h index c9cd3dc4c..c6a0a6b85 100644 --- a/rtgui/wavelet.h +++ b/rtgui/wavelet.h @@ -101,6 +101,7 @@ private: rtengine::ProcEvent EvWavLabGridValue; rtengine::ProcEvent EvWavrangeab; rtengine::ProcEvent EvWavprotab; + rtengine::ProcEvent EvWavlevelshc; LabGrid *labgrid; @@ -164,6 +165,8 @@ private: void enableToggled(MyExpander* expander); CurveEditorGroup* const curveEditorG; + CurveEditorGroup* const curveEditorC; + FlatCurveEditor* opacityShapeSH; CurveEditorGroup* const CCWcurveEditorG; CurveEditorGroup* const curveEditorbl; From c27cd841e412b138b36d010afd5616a1681e5207 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 12 May 2020 09:20:59 +0200 Subject: [PATCH 446/453] Forgotten label Residual --- rtdata/languages/default | 1 + 1 file changed, 1 insertion(+) diff --git a/rtdata/languages/default b/rtdata/languages/default index 69b7449e3..30d86c097 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2321,6 +2321,7 @@ TP_WAVELET_SOFTRAD;Soft Radius TP_WAVELET_STREN;Strength TP_WAVELET_STRENGTH;Strength TP_WAVELET_SUPE;Extra +TP_WAVELET_THR;Shadows threshold TP_WAVELET_THRESHOLD;Finer levels TP_WAVELET_THRESHOLD2;Coarser levels //TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). From 65f1b4c3d9a976d90f41853b915f79bf98ac2864 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Tue, 12 May 2020 05:17:53 -0700 Subject: [PATCH 447/453] Update macOS packaging for 10.15.4 Several smaller fixes to provide an improved handling of installing/using RT on macOS. * mac: update entitlements for 10.15.4 * mac: fix the CLI. Provides an un-codesigned rawtherapee-cli outside the app bundle for use on the terminal command line, using the app bundle's 3rd-party libraries. * How to install RawTherapee.app and rawtherapee-cli for macOS --- CMakeLists.txt | 9 ++++++++- tools/INSTALL.readme | 3 +++ tools/osx/macosx_bundle.sh | 36 +++++++++++++++++++++++------------- tools/osx/rt.entitlements | 31 ++++++++++++++----------------- 4 files changed, 48 insertions(+), 31 deletions(-) create mode 100644 tools/INSTALL.readme diff --git a/CMakeLists.txt b/CMakeLists.txt index cbddde251..7d66109e0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -669,7 +669,14 @@ if(WIN32) elseif(APPLE) set( ABOUT_COMMAND_WITH_ARGS - cmake -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/UpdateInfo.cmake -DSYSTEM:STRING=Apple -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} -DCOMPILER_INFO:STRING=${COMPILER_INFO} -DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX}) + cmake + -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} + -DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX} + -P ${PROJECT_SOURCE_DIR}/UpdateInfo.cmake + -DSYSTEM:STRING=Apple + -DCXX_FLAGS:STRING=${CXX_FLAGS} + -DLFLAGS:STRING=${LFLAGS} + -DCOMPILER_INFO:STRING=${COMPILER_INFO}) else() list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Linux -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} diff --git a/tools/INSTALL.readme b/tools/INSTALL.readme new file mode 100644 index 000000000..a4f19ec3c --- /dev/null +++ b/tools/INSTALL.readme @@ -0,0 +1,3 @@ +To install the RawTherapee application, open the .dmg and drag the RawTherapee app onto the /Applications folder. + +To use the optional rawtherapee-cli command line interface, move rawtherapee-cli into a folder in your $PATH and install the RawTherapee app as above. diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 9258810c0..bc1a2dc3b 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -236,6 +236,11 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" ditto "${LOCAL_PREFIX}/local/share/icons/hicolor" "${RESOURCES}/share/icons/hicolor" +# fix libfreetype install name +for lib in "${LIB}"/*; do + install_name_tool -change libfreetype.6.dylib "${LIB}"/libfreetype.6.dylib "${lib}" +done + # pixbuf loaders & immodules msg "Build GTK3 databases:" "${LOCAL_PREFIX}"/local/bin/gdk-pixbuf-query-loaders "${LIB}"/libpix*.so > "${ETC}"/gtk-3.0/gdk-pixbuf.loaders @@ -259,11 +264,11 @@ ditto "${PROJECT_SOURCE_DIR}/rtdata/fonts" "${ETC}/fonts" ditto "${PROJECT_SOURCE_DATA_DIR}/"{rawtherapee,profile}.icns "${RESOURCES}" ditto "${PROJECT_SOURCE_DATA_DIR}/PkgInfo" "${CONTENTS}" install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/Info.plist.in" "${CONTENTS}/Info.plist" +install -m 0644 "${PROJECT_SOURCE_DATA_DIR}/cliInfo.plist.in" "${LIB}/Info.plist" sed -i "" -e "s|@version@|${PROJECT_FULL_VERSION}| s|@shortVersion@|${PROJECT_VERSION}| s|@arch@|${arch}|" \ "${CONTENTS}/Info.plist" -plutil -convert binary1 "${CONTENTS}/Info.plist" update-mime-database -V "${RESOURCES}/share/mime" msg "Build glib database:" @@ -279,23 +284,25 @@ ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder." -for frameworklibs in "${LIB}"/*{dylib,so}; do +for frameworklibs in "${LIB}"/*{dylib,so,cli}; do install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib "${frameworklibs}" install_name_tool -add_rpath /Applications/"${LIB}" "${frameworklibs}" done install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABLE}"-cli -install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli +install_name_tool -add_rpath /Applications/"${LIB}" "${EXECUTABLE}"-cli +ditto "${EXECUTABLE}"-cli "${APP}"/.. # Codesign the app if [[ -n $CODESIGNID ]]; then msg "Codesigning Application." - install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements - plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements + iconv -f UTF-8 -t ASCII "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements > "${CMAKE_BUILD_TYPE}"/rt.entitlements + iconv -f UTF-8 -t ASCII "${PROJECT_SOURCE_DATA_DIR}"/rt-cli.entitlements > "${CMAKE_BUILD_TYPE}"/rt-cli.entitlements mv "${EXECUTABLE}"-cli "${LIB}" - for frameworklibs in "${LIB}"/*; do - codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}" + for frameworklibs in "${LIB}"/*{dylib,so}; do + codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${frameworklibs}" done - codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" + codesign --force -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt-cli.entitlements "${LIB}"/rawtherapee-cli + codesign --deep --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" spctl -a -vvvv "${APP}" fi @@ -345,7 +352,7 @@ function CreateDmg { CreateWebloc 'Report Bug' 'https://github.com/Beep6581/RawTherapee/issues/new' # Disk image name - dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" + dmg_name="${PROJECT_NAME}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" lower_build_type="$(tr '[:upper:]' '[:lower:]' <<< "$CMAKE_BUILD_TYPE")" if [[ $lower_build_type != release ]]; then dmg_name="${dmg_name}_${lower_build_type}" @@ -390,6 +397,7 @@ function CreateDmg { xcrun stapler staple "${dmg_name}.dmg" # staple the ticket xcrun stapler validate -v "${dmg_name}.dmg" echo "dmg Notarization success" + rm *dmg.zip break elif [[ $status1 = "in" ]]; then echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" @@ -404,10 +412,12 @@ function CreateDmg { # Zip disk image for redistribution msg "Zipping disk image for redistribution:" - zip "${dmg_name}.zip" "${dmg_name}.dmg" - rm "${dmg_name}.dmg" - msg "Removing disk image caches:" - rm -rf "${srcDir}" + mkdir "${PROJECT_NAME}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}_folder" + ditto {"${PROJECT_NAME}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}.dmg","rawtherapee-cli","${PROJECT_SOURCE_DATA_DIR}/INSTALL.readme.rtf"} "${PROJECT_NAME}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}_folder" + zip -r "${PROJECT_NAME}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}.zip" "${PROJECT_NAME}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}_folder/" + # rm "${dmg_name}.dmg" + # msg "Removing disk image caches:" + # rm -rf "${srcDir}" } CreateDmg msg "Finishing build:" diff --git a/tools/osx/rt.entitlements b/tools/osx/rt.entitlements index c571f1f41..8fc97c7da 100644 --- a/tools/osx/rt.entitlements +++ b/tools/osx/rt.entitlements @@ -1,19 +1,16 @@ + - - application-identifier - com.rawtherapee.RawTherapee - com.apple.security.temporary-exception.files.absolute-path.read-write - - / - - com.apple.security.cs.allow-dyld-environment-variables - - com.apple.security.files.user-selected.read-write - - com.apple.security.app-sandbox - - com.apple.security.files.downloads.read-write - - - \ No newline at end of file + + com.apple.application-identifier + com.rawtherapee.RawTherapee + com.apple.security.app-sandbox + + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.temporary-exception.files.absolute-path.read-write + + / + + + From 99fd6162f840dd389618c944ec457905ceafe01a Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 12 May 2020 16:28:17 +0200 Subject: [PATCH 448/453] Clean code --- rtdata/languages/default | 2 -- rtengine/dcrop.cc | 1 - rtengine/improccoordinator.cc | 3 --- rtengine/improcfun.h | 19 ++++++++----------- rtengine/ipwavelet.cc | 23 +++-------------------- rtengine/procparams.cc | 21 ++++++++++++--------- rtengine/simpleprocess.cc | 3 --- 7 files changed, 23 insertions(+), 49 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 30d86c097..f28fcbdc2 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2324,8 +2324,6 @@ TP_WAVELET_SUPE;Extra TP_WAVELET_THR;Shadows threshold TP_WAVELET_THRESHOLD;Finer levels TP_WAVELET_THRESHOLD2;Coarser levels -//TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). -//TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. TP_WAVELET_THRESHOLD_TOOLTIP;Only levels beyond the chosen value will be affected by the highlight luminance range. Other levels will be fully treated. The chosen value here limits the highest possible value of the shadow levels. : All levels from level 1 up to the chosen value will only be affected within the Finer levels luminance range.\nAll other levels will have the whole range of luminances affected, unless the Coarser levels setting limits it.\nThe chosen value in this slider becomes the minimum possible value of the Coarser levels. TP_WAVELET_THRESHOLD2_TOOLTIP;Only levels between 9 and 9 minus the value will be affected by the shadow luminance range. Other levels will be fully treated. The highest level possible is limited by the highlight level value (9 minus highlight level value). : Only levels between the chosen value and level 9/Extra will be affected by the Coarser levels luminance range.\nAll other levels will have the whole range of luminances affected, unless the Finer levels setting limits it.\nThe lower level possible that will be considered by the algorithm is limited by the Finer levels value. TP_WAVELET_THRESWAV;Balance Threshold diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index f58f2e4c9..8bf27b53d 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1017,7 +1017,6 @@ void Crop::update(int todo) WaveParams.expnoise = false; } - // parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); parent->ipf.ip_wavelet(labnCrop, labnCrop, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, parent->wavclCurve, skip); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index f7f8756d2..5261675a0 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -891,7 +891,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if ((params->wavelet.enabled)) { WaveletParams WaveParams = params->wavelet; -// WaveParams.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); WaveParams.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); int kall = 0; LabImage *unshar = nullptr; @@ -922,7 +921,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) provis = params->wavelet.CLmethod; params->wavelet.CLmethod = "all"; ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); -// ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); unshar->CopyFrom(nprevl); @@ -936,7 +934,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) WaveParams.expnoise = false; } -// ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); ipf.ip_wavelet(nprevl, nprevl, kall, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, scale); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index f4a452dcc..b7d7c41e5 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -202,28 +202,25 @@ public: int pitch, int scale, const int luma, const int chroma/*, LUTf & Lcurve, LUTf & abcurve*/); void Tile_calc(int tilesize, int overlap, int kall, int imwidth, int imheight, int &numtiles_W, int &numtiles_H, int &tilewidth, int &tileheight, int &tileWskip, int &tileHskip); -// void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveSH & waOpacityCurveSH, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, const Wavblcurve & wavblcurve, -// struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili); + struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili); void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, - struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab); + struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab); void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, - const cont_params &cp, FlatCurve* hhcurve, bool hhutili); + const cont_params &cp, FlatCurve* hhcurve, bool hhutili); void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, - // int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili); + int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili); void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp, - int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); + int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, - int W_ab, int H_ab, const bool useChannelA, float *meanab, float *sigmaab); + int W_ab, int H_ab, const bool useChannelA, float *meanab, float *sigmaab); void Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, - float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); + float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); void Eval2(float ** WavCoeffs_L, int level, - int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); + int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); void calceffect(int level, float *mean, float *sigma, float *mea, float effect, float offs); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 373ea6ef0..0fc947aea 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -164,7 +164,6 @@ struct cont_params { int wavNestedLevels = 1; -//void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const Wavblcurve & wavblcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveSH & waOpacityCurveSH, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) @@ -470,9 +469,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.t_lsl = static_cast(params->wavelet.bllev.getTopLeft()); cp.b_rsl = static_cast(params->wavelet.bllev.getBottomRight()); cp.t_rsl = static_cast(params->wavelet.bllev.getTopRight()); -// cp.numlevS = params->wavelet.threshold2; -// int maxlevS = 9 - cp.numlevH; -// cp.numlevS = rtengine::min(cp.numlevS, maxlevS); cp.numlevS = 9 - params->wavelet.threshold2; int maxlevS = cp.numlevH; cp.numlevS = rtengine::max(cp.numlevS, maxlevS); @@ -1027,7 +1023,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Chutili = true; } -// WaveletcontAllL(labco, varhue, varchro, *Ldecomp, wavblcurve, cp, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); WaveletcontAllL(labco, varhue, varchro, *Ldecomp, wavblcurve, cp, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, waOpacityCurveSH, ChCurve, Chutili); if (cp.val > 0 || ref || contr || cp.diagcurv) { //edge @@ -1297,7 +1292,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { -// if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f )) { WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ @@ -1335,7 +1329,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { -// if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f )) { WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ @@ -1368,7 +1361,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { -// if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { if (cp.noiseena && ((cp.chromfi > 0.f || cp.chromco > 0.f) && cp.chromco < 2.f)) { WaveletDenoiseAllAB(*Ldecomp, *adecomp, noisevarchrom, madL, variC, edge, noisevarab_r, true, false, false, 1); } else if (cp.chromfi > 0.f && cp.chromco >= 2.f){ @@ -1385,15 +1377,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); } -// WaveletDenoiseAll_BiShrinkAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); -// WaveletDenoiseAllAB(*Ldecomp, *bdecomp, noisevarchrom, madL, variCb, edge, noisevarab_r, true, false, false, 1); Evaluate2(*bdecomp, meanab, meanNab, sigmaab, sigmaNab, MaxPab, MaxNab); -/* - if (cp.noiseena && (cp.chromfi > 0.f || cp.chromco > 0.f)) { - WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); - WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); - } - */ + WaveletcontAllAB(labco, varhue, varchro, *bdecomp, wavblcurve, waOpacityCurveW, cp, false, skip, meanab, sigmaab); WaveletAandBAllAB(*adecomp, *bdecomp, cp, hhCurve, hhutili); @@ -2047,8 +2032,7 @@ void ImProcFunctions::WaveletcontAllLfinal(const wavelet_decomposition &WaveletC void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, const Wavblcurve & wavblcurve, -// struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) - struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili) + struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili) { const int maxlvl = WaveletCoeffs_L.maxlevel(); const int W_L = WaveletCoeffs_L.level_W(0); @@ -2606,7 +2590,7 @@ void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoef } void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_ab, const Wavblcurve & wavblcurve, const WavOpacityCurveW & waOpacityCurveW, - struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab) + struct cont_params &cp, const bool useChannelA, int skip, float *meanab, float *sigmaab) { int maxlvl = WaveletCoeffs_ab.maxlevel(); @@ -3133,7 +3117,6 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, } void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * labco, float ** varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, -// int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveSH & waOpacityCurveSH, FlatCurve* ChCurve, bool Chutili) { assert(level >= 0); diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 4df201503..0829ddbb0 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2170,15 +2170,18 @@ WaveletParams::WaveletParams() : }, blcurve{ static_cast(FCT_MinMaxCPoints), -0.0, 0.0, 0.0, 0.35, 0.5, 0., 0.35, 0.35, 1.0, 0.0, 0.35, 0.35 -/* 0.0, - 0.75, - 0.35, - 0.35, - 1.0, - 0.75, - 0.35, - 0.35*/ + 0.0, + 0.0, + 0.0, + 0.35, + 0.5, + 0., + 0.35, + 0.35, + 1.0, + 0.0, + 0.35, + 0.35 }, opacityCurveRG{ static_cast(FCT_MinMaxCPoints), diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 92a3d7f29..a53902737 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -1150,7 +1150,6 @@ private: provradius->CopyFrom(labView); } -// params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); params.wavelet.getCurves(wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL); CurveFactory::curveWavContL(wavcontlutili, params.wavelet.wavclCurve, wavclCurve,/* hist16C, dummy,*/ 1); @@ -1159,7 +1158,6 @@ private: unshar = new LabImage(fw, fh); provis = params.wavelet.CLmethod; params.wavelet.CLmethod = "all"; -// ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); unshar->CopyFrom(labView); params.wavelet.CLmethod = provis; @@ -1172,7 +1170,6 @@ private: WaveParams.expnoise = false; } -// ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, wavblcurve, waOpacityCurveRG, waOpacityCurveSH, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { From 5db57952ed0d445027196d8a64ffcd23fc2d6170 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 13 May 2020 14:27:08 +0200 Subject: [PATCH 449/453] Change label wavelet levels --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index f28fcbdc2..f10f98c6e 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2257,7 +2257,7 @@ TP_WAVELET_LEVCH;Chroma TP_WAVELET_LEVDIR_ALL;All levels, in all directions TP_WAVELET_LEVDIR_INF;Finer details levels, with selected level TP_WAVELET_LEVDIR_ONE;One level -TP_WAVELET_LEVDIR_SUP;Above the level +TP_WAVELET_LEVDIR_SUP;Coarser details levels, without selected level TP_WAVELET_LEVELS;Wavelet levels TP_WAVELET_LEVELS_TOOLTIP;Choose the number of detail levels the image is to be decomposed into. More levels require more RAM and require a longer processing time. TP_WAVELET_LEVF;Contrast From 464556b8743a80a1f53e3cff66400fabe367012a Mon Sep 17 00:00:00 2001 From: Thanatomanic <6567747+Thanatomanic@users.noreply.github.com> Date: Fri, 15 May 2020 09:58:14 +0200 Subject: [PATCH 450/453] Naming changes for itcwb GUI elements (#5735) Some naming changes for itcwb GUI elements --- rtdata/languages/default | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 9d9e841a2..a524ae1b8 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2356,9 +2356,9 @@ TP_WAVELET_WAVLOWTHR;Low contrast threshold TP_WAVELET_WAVOFFSET;Offset TP_WAVELET_OFFSET_TOOLTIP;Offset modifies the balance between shadows and highlights.\nHigh values here will amplify the contrast change of the highlights, whereas low values will amplify the contrast change of the shadows.\nAlong with a low Damper value you will able to select the contrasts that will be enhanced. TP_WBALANCE_AUTO;Auto -TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation -TP_WBALANCE_AUTOOLD;Auto RGB grey -TP_WBALANCE_AUTO_HEADER;Autos +TP_WBALANCE_AUTOITCGREEN;Temperature correlation +TP_WBALANCE_AUTOOLD;RGB grey +TP_WBALANCE_AUTO_HEADER;Automatic TP_WBALANCE_CAMERA;Camera TP_WBALANCE_CLOUDY;Cloudy TP_WBALANCE_CUSTOM;Custom @@ -2400,8 +2400,8 @@ TP_WBALANCE_SOLUX41;Solux 4100K TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. -TP_WBALANCE_STUDLABEL;Student Itcwb: %1 -TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic.\nStudent=1000 means the calculations were not restarted but results are probably goods, use previous results +TP_WBALANCE_STUDLABEL;Correlation factor: %1 +TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation.\nLower values are better, where <0.005 is excellent,\n<0.01 is good, and >0.5 is poor.\nLow values do not mean that the white balance is good:\nif the illuminant is non-standard the results can be erratic.\nA value of 1000 means previous calculations are used and\nthe resultsare probably good. TP_WBALANCE_TEMPBIAS;AWB temperature bias TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". TP_WBALANCE_TEMPERATURE;Temperature From 6cae1c55d4dcfb81c376902033f7e020e9d9226d Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 16 May 2020 11:15:25 +0200 Subject: [PATCH 451/453] Fixed crash in wavelet level blur when preview is too small --- rtdata/languages/default | 1 + rtengine/ipwavelet.cc | 246 ++++++++++++++++++++------------------- rtgui/wavelet.cc | 2 +- 3 files changed, 127 insertions(+), 122 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index a524ae1b8..c822e1ebe 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2204,6 +2204,7 @@ TP_WAVELET_CONTRAST_MINUS;Contrast - TP_WAVELET_CONTRAST_PLUS;Contrast + TP_WAVELET_CONTRA_TOOLTIP;Changes contrast of the residual image. TP_WAVELET_CTYPE;Chrominance control +TP_WAVELET_CURVEEDITOR_BL_TOOLTIP;Disabled if zoom > about 300% TP_WAVELET_CURVEEDITOR_CC_TOOLTIP;Modifies local contrast as a function of the original local contrast (abscissa).\nLow abscissa values represent small local contrast (real values about 10..20).\n50% abscissa represents average local contrast (real value about 100..300).\n66% abscissa represents standard deviation of local contrast (real value about 300..800).\n100% abscissa represents maximum local contrast (real value about 3000..8000). TP_WAVELET_CURVEEDITOR_CH;Contrast levels=f(Hue) TP_WAVELET_CURVEEDITOR_CH_TOOLTIP;Modifies each level's contrast as a function of hue.\nTake care not to overwrite changes made with the Gamut sub-tool's hue controls.\nThe curve will only have an effect when wavelet contrast level sliders are non-zero. diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 0fc947aea..47882fab8 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -2434,84 +2434,86 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * // ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, ChCurve, Chutili); ContAllL(koeLi, maxkoeLi, true, maxlvl, labco, varhue, varchrom, WavCoeffs_L, WavCoeffs_L0, lvl, dir, cp, Wlvl_L, Hlvl_L, skip, mean, sigma, MaxP, MaxN, wavCLVCcurve, waOpacityCurveW, waOpacityCurveSH, ChCurve, Chutili); + int minWL = min(Wlvl_L, Hlvl_L); - if (wavblcurve && wavcurvecomp && cp.blena) { - // printf("Blur level L\n"); - float mea[10]; - const float effect = cp.bluwav; - constexpr float offs = 1.f; - float * beta = new float[Wlvl_L * Hlvl_L]; + if(minWL > 180) { + if (wavblcurve && wavcurvecomp && cp.blena) { + // printf("Blur level L\n"); + float mea[10]; + const float effect = cp.bluwav; + constexpr float offs = 1.f; + float * beta = new float[Wlvl_L * Hlvl_L]; - calceffect(lvl, mean, sigma, mea, effect, offs); + calceffect(lvl, mean, sigma, mea, effect, offs); - float * bef = new float[Wlvl_L * Hlvl_L]; - float * aft = new float[Wlvl_L * Hlvl_L]; + float * bef = new float[Wlvl_L * Hlvl_L]; + float * aft = new float[Wlvl_L * Hlvl_L]; - for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { - bef[co] = WavCoeffs_L[dir][co]; - float WavCL = std::fabs(WavCoeffs_L[dir][co]); + for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { + bef[co] = WavCoeffs_L[dir][co]; + float WavCL = std::fabs(WavCoeffs_L[dir][co]); - if (WavCL < mea[0]) { - beta[co] = 0.05f; - n0++; + if (WavCL < mea[0]) { + beta[co] = 0.05f; + n0++; - if (WavCL < 32.7) { - n32++; + if (WavCL < 32.7) { + n32++; + } + } else if (WavCL < mea[1]) { + beta[co] = 0.2f; + n1++; + } else if (WavCL < mea[2]) { + beta[co] = 0.7f; + n2++; + } else if (WavCL < mea[3]) { + beta[co] = 1.f; //standard + n3++; + } else if (WavCL < mea[4]) { + beta[co] = 1.f; + n4++; + } else if (WavCL < mea[5]) { + beta[co] = 0.8f; //+sigma + n5++; + } else if (WavCL < mea[6]) { + beta[co] = 0.6f; + n6++; + } else if (WavCL < mea[7]) { + beta[co] = 0.4f; + n7++; + } else if (WavCL < mea[8]) { + beta[co] = 0.2f; // + 2 sigma + n8++; + } else if (WavCL < mea[9]) { + beta[co] = 0.1f; + n9++; + } else { + beta[co] = 0.01f; + n10++; } - } else if (WavCL < mea[1]) { - beta[co] = 0.2f; - n1++; - } else if (WavCL < mea[2]) { - beta[co] = 0.7f; - n2++; - } else if (WavCL < mea[3]) { - beta[co] = 1.f; //standard - n3++; - } else if (WavCL < mea[4]) { - beta[co] = 1.f; - n4++; - } else if (WavCL < mea[5]) { - beta[co] = 0.8f; //+sigma - n5++; - } else if (WavCL < mea[6]) { - beta[co] = 0.6f; - n6++; - } else if (WavCL < mea[7]) { - beta[co] = 0.4f; - n7++; - } else if (WavCL < mea[8]) { - beta[co] = 0.2f; // + 2 sigma - n8++; - } else if (WavCL < mea[9]) { - beta[co] = 0.1f; - n9++; - } else { - beta[co] = 0.01f; - n10++; + + } + if (settings->verbose) { + printf("lvl=%i n0=%i n32=%i n1=%i n2=%i n3=%i n4=%i n5=%i n6=%i n7=%i n8=%i n9=%i n10=%i\n", lvl, n0, n0 - n32, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); + } - } - - if (settings->verbose) { - printf("lvl=%i n0=%i n32=%i n1=%i n2=%i n3=%i n4=%i n5=%i n6=%i n7=%i n8=%i n9=%i n10=%i\n", lvl, n0, n0 - n32, n1, n2, n3, n4, n5, n6, n7, n8, n9, n10); - } - - float klev = (wavblcurve[lvl * 55.5f]); + float klev = (wavblcurve[lvl * 55.5f]); //blur level - // klev *= beta * 100.f / skip; - klev *= 100.f / skip; - boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); + klev *= 80.f / skip; + boxblur(bef, aft, klev, Wlvl_L, Hlvl_L, false); - for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { - aft[co] = bef[co] * (1.f - beta[co]) + aft[co] * beta[co]; - WavCoeffs_L[dir][co] = aft[co]; + for (int co = 0; co < Hlvl_L * Wlvl_L; co++) { + aft[co] = bef[co] * (1.f - beta[co]) + aft[co] * beta[co]; + WavCoeffs_L[dir][co] = aft[co]; + } + + delete[] bef; + delete[] aft; + delete[] beta; } - - delete[] bef; - delete[] aft; - delete[] beta; } } } @@ -2748,72 +2750,74 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float float ** WavCoeffs_ab = WaveletCoeffs_ab.level_coeffs(lvl); ContAllAB(labco, maxlvl, varhue, varchrom, WavCoeffs_ab, WavCoeffs_ab0, lvl, dir, waOpacityCurveW, cp, Wlvl_ab, Hlvl_ab, useChannelA, meanab, sigmaab); + int minWL = min(Wlvl_ab, Hlvl_ab); + + if(minWL > 180) { + if (wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { - if (wavblcurve && wavcurvecomp && cp.blena && cp.chrwav > 0.f) { + float mea[10]; + float effect = cp.bluwav; + float offs = 1.f; + float * beta = new float[Wlvl_ab * Hlvl_ab]; - float mea[10]; - float effect = cp.bluwav; - float offs = 1.f; - float * beta = new float[Wlvl_ab * Hlvl_ab]; - - for (int co = 0; co < Wlvl_ab * Hlvl_ab; co++) { - beta[co] = 1.f; - } - - calceffect(lvl, meanab, sigmaab, mea, effect, offs); - - float * bef = new float[Wlvl_ab * Hlvl_ab]; - float * aft = new float[Wlvl_ab * Hlvl_ab]; - float klev; - - for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { - bef[co] = WavCoeffs_ab[dir][co]; - float WavCab = std::fabs(WavCoeffs_ab[dir][co]); - - if (WavCab < mea[0]) { - beta[co] = 0.05f; - } else if (WavCab < mea[1]) { - beta[co] = 0.2f; - } else if (WavCab < mea[2]) { - beta[co] = 0.7f; - } else if (WavCab < mea[3]) { - beta[co] = 1.f; //standard - } else if (WavCab < mea[4]) { + for (int co = 0; co < Wlvl_ab * Hlvl_ab; co++) { beta[co] = 1.f; - } else if (WavCab < mea[5]) { - beta[co] = 0.8f; //+sigma - } else if (WavCab < mea[6]) { - beta[co] = 0.6f; - } else if (WavCab < mea[7]) { - beta[co] = 0.4f; - } else if (WavCab < mea[8]) { - beta[co] = 0.2f; // + 2 sigma - } else if (WavCab < mea[9]) { - beta[co] = 0.1f; - } else { - beta[co] = 0.0f; } + calceffect(lvl, meanab, sigmaab, mea, effect, offs); + float * bef = new float[Wlvl_ab * Hlvl_ab]; + float * aft = new float[Wlvl_ab * Hlvl_ab]; + float klev; + + for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { + bef[co] = WavCoeffs_ab[dir][co]; + float WavCab = std::fabs(WavCoeffs_ab[dir][co]); + + if (WavCab < mea[0]) { + beta[co] = 0.05f; + } else if (WavCab < mea[1]) { + beta[co] = 0.2f; + } else if (WavCab < mea[2]) { + beta[co] = 0.7f; + } else if (WavCab < mea[3]) { + beta[co] = 1.f; //standard + } else if (WavCab < mea[4]) { + beta[co] = 1.f; + } else if (WavCab < mea[5]) { + beta[co] = 0.8f; //+sigma + } else if (WavCab < mea[6]) { + beta[co] = 0.6f; + } else if (WavCab < mea[7]) { + beta[co] = 0.4f; + } else if (WavCab < mea[8]) { + beta[co] = 0.2f; // + 2 sigma + } else if (WavCab < mea[9]) { + beta[co] = 0.1f; + } else { + beta[co] = 0.0f; + } + + + } + + klev = (wavblcurve[lvl * 55.5f]); + + klev *= cp.chrwav * 80.f / skip; + + boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); + + for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { + aft[co] = bef[co] * (1.f - beta[co]) + aft[co] * beta[co]; + WavCoeffs_ab[dir][co] = aft[co]; + } + + delete[] bef; + delete[] aft; + delete[] beta; } - - klev = (wavblcurve[lvl * 55.5f]); - - klev *= cp.chrwav * 100.f / skip; - - boxblur(bef, aft, klev, Wlvl_ab, Hlvl_ab, false); - - for (int co = 0; co < Hlvl_ab * Wlvl_ab; co++) { - aft[co] = bef[co] * (1.f - beta[co]) + aft[co] * beta[co]; - WavCoeffs_ab[dir][co] = aft[co]; - } - - delete[] bef; - delete[] aft; - delete[] beta; } - } } diff --git a/rtgui/wavelet.cc b/rtgui/wavelet.cc index 53c7ef90b..2dc4aa05c 100644 --- a/rtgui/wavelet.cc +++ b/rtgui/wavelet.cc @@ -758,7 +758,7 @@ Wavelet::Wavelet() : blshape->setIdentityValue(0.); blshape->setResetCurve(FlatCurveType(default_params.blcurve.at(0)), default_params.blcurve); - blshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_CC_TOOLTIP")); + blshape->setTooltip(M("TP_WAVELET_CURVEEDITOR_BL_TOOLTIP")); curveEditorbl->curveListComplete(); curveEditorbl->show(); From 1d66bdc002b19982a760b14c74938518c5a239eb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Sun, 17 May 2020 09:55:41 +0200 Subject: [PATCH 452/453] Fix leak in `crxFreeImageData()` (by Danny Heijl), fixes #5758 --- rtengine/canon_cr3_decoder.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/canon_cr3_decoder.cc b/rtengine/canon_cr3_decoder.cc index d9a10900c..f9850189c 100644 --- a/rtengine/canon_cr3_decoder.cc +++ b/rtengine/canon_cr3_decoder.cc @@ -3042,11 +3042,11 @@ bool crxSetupImageData( void crxFreeImageData(CrxImage* img) { - CrxTile* tile = img->tiles; - const int nTiles = img->tileRows * img->tileCols; - if (img->tiles) { - for (std::int32_t curTile = 0; curTile < nTiles; curTile++, tile++) { + CrxTile* const tile = img->tiles; + const int nTiles = img->tileRows * img->tileCols; + + for (std::int32_t curTile = 0; curTile < nTiles; ++curTile) { if (tile[curTile].comps) { for (std::int32_t curPlane = 0; curPlane < img->nPlanes; ++curPlane) { crxFreeSubbandData(img, tile[curTile].comps + curPlane); From 90180a7d1f794397d03935fa5ab33447829ebaf0 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 17 May 2020 14:07:54 +0200 Subject: [PATCH 453/453] Improve denoise equalizer wavelet levels --- rtengine/FTblockDN.cc | 12 ++++++------ rtengine/ipwavelet.cc | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/rtengine/FTblockDN.cc b/rtengine/FTblockDN.cc index ab06f92f2..89e4c1b8d 100644 --- a/rtengine/FTblockDN.cc +++ b/rtengine/FTblockDN.cc @@ -2214,7 +2214,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W int maxlvl = min(WaveletCoeffs_L.maxlevel(), 5); const float eps = 0.01f; - if (edge == 1 || edge == 3 || edge == 4) { + if (edge == 1 || edge == 3 || edge == 4 || edge == 5) { maxlvl = 4; //for refine denoise edge wavelet } @@ -2286,7 +2286,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { nvl[i] = 0.f; } - if ((edge == 1 || edge == 2 || edge == 3) && vari) { + if ((edge == 1 || edge == 2 || edge == 3 || edge == 5) && vari) { // nvl = blurBuffer; // we need one buffer, but fortunately we don't have to allocate a new one because we can use blurBuffer if ((edge == 1 || edge == 3)) { for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { @@ -2294,7 +2294,7 @@ bool ImProcFunctions::WaveletDenoiseAll_BiShrinkL(const wavelet_decomposition &W } } - if (edge == 2 || edge == 4) { + if (edge == 2 || edge == 4 || edge == 5) { for (int i = 0; i < Hlvl_L * Wlvl_L; ++i) { nvl[i] = vari[lvl] * SQR(noisevarlum[i]); } @@ -2569,7 +2569,7 @@ bool ImProcFunctions::WaveletDenoiseAllL(const wavelet_decomposition &WaveletCoe int maxlvl = min(WaveletCoeffs_L.maxlevel(), 5); - if (edge == 1 || edge == 3) { + if (edge == 1 || edge == 3 || edge == 5) { maxlvl = 4; //for refine denoise edge wavelet } @@ -2713,7 +2713,7 @@ void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, f nvl[i] = 0.f; } - if ((edge == 1 || edge == 2 || edge == 3) && vari) { + if ((edge == 1 || edge == 2 || edge == 3 || edge == 5) && vari) { // nvl = blurBuffer; // we need one buffer, but fortunately we don't have to allocate a new one because we can use blurBuffer if ((edge == 1 || edge == 3)) { for (int i = 0; i < W_L * H_L; ++i) { @@ -2721,7 +2721,7 @@ void ImProcFunctions::ShrinkAllL(const wavelet_decomposition &WaveletCoeffs_L, f } } - if (edge == 2 || edge == 4) { + if (edge == 2 || edge == 4 || edge == 5) { for (int i = 0; i < W_L * H_L; ++i) { nvl[i] = vari[level] * SQR(noisevarlum[i]); } diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 47882fab8..47bd0f08a 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -958,7 +958,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } if ((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { - int edge = 1; + int edge = 5; vari[0] = rtengine::max(0.000001f, vari[0]); vari[1] = rtengine::max(0.000001f, vari[1]); vari[2] = rtengine::max(0.000001f, vari[2]);

    c@E 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 }(0BW}0r8nG1dv#JWTS3?K9HLuuw!oB(o2pn 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 literal 0 HcmV?d00001 From f719c2840e4bc67ca7b5da73410edc2c0924e26f Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sat, 22 Feb 2020 19:16:09 -0800 Subject: [PATCH 273/453] mac:make a dir --- tools/osx/macosx_bundle.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index e68d2659c..ced5821b0 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -136,7 +136,7 @@ msg "Copying binary executable files." ditto "${CMAKE_BUILD_TYPE}/MacOS" "${MACOS}" msg "Copying Resources directory." -mv AboutThisBuild.txt "${RESOURCES}" +cp AboutThisBuild.txt "${RESOURCES}" ditto "${CMAKE_BUILD_TYPE}/Resources" "${RESOURCES}" echo "\n--------\n" >> "${RESOURCES}/AboutThisBuild.txt" @@ -337,10 +337,11 @@ fi msg "Creating disk image:" if [ ! -z ${FANCY_DMG} ] ; then echo "Building Fancy .dmg" +mkdir "${srcDir}/.background" cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg.icns" "${srcDir}/.VolumeIcon.icns" cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg-bkgd.png" "${srcDir}/.background/background.png" SetFile -c incC "${srcDir}/.VolumeIcon.icns" -create-dmg ${dmg_name}.dmg "${srcDir}" \ +create-dmg "${dmg_name}.dmg" "${srcDir}" \ --volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" \ --volicon "${srcDir}/.VolumeIcon.icns" \ --sandbox-safe \ From 8329e28bb09992acbd5c05b60dc405d036a1912d Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 23 Feb 2020 12:13:46 -0800 Subject: [PATCH 274/453] Complete reverting UpdateInfo.cmake --- UpdateInfo.cmake | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index ce194bfe9..287acff01 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -65,13 +65,13 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) endif() message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") @@ -107,8 +107,4 @@ endif(WIN32) # build version.h from template configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") # build AboutThisBuild.txt from template -if(APPLE) - configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") -else() - configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") -endif() +configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") From f32602b550c806d306ea5a360eb13bc95f01706f Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 23 Feb 2020 12:15:49 -0800 Subject: [PATCH 275/453] mac:remove obsolete libiconv patches 1.14 and 1.15 keeping 1.16 --- tools/osx/libiconv_1.14_rt.patch | 30 ------------------------------ tools/osx/libiconv_1.15_rt.patch | 30 ------------------------------ 2 files changed, 60 deletions(-) delete mode 100644 tools/osx/libiconv_1.14_rt.patch delete mode 100644 tools/osx/libiconv_1.15_rt.patch diff --git a/tools/osx/libiconv_1.14_rt.patch b/tools/osx/libiconv_1.14_rt.patch deleted file mode 100644 index 7a01b1373..000000000 --- a/tools/osx/libiconv_1.14_rt.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/lib/iconv.c b/lib/iconv.c -index 3785296..24a0f07 100644 ---- a/lib/iconv.c -+++ b/lib/iconv.c -@@ -607,4 +607,25 @@ strong_alias (libiconv, iconv) - strong_alias (libiconv_close, iconv_close) - #endif - -+#undef iconv_open -+#undef iconv -+#undef iconv_close -+ -+LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode) -+{ -+ return libiconv_open(tocode, fromcode); -+} -+ -+LIBICONV_DLL_EXPORTED size_t iconv (iconv_t icd, -+ ICONV_CONST char * * inbuf, size_t *inbytesleft, -+ char * * outbuf, size_t *outbytesleft) -+{ -+ return libiconv(icd, inbuf, inbytesleft, outbuf, outbytesleft); -+} -+ -+LIBICONV_DLL_EXPORTED int iconv_close (iconv_t icd) -+{ -+ return libiconv_close(icd); -+} -+ - #endif diff --git a/tools/osx/libiconv_1.15_rt.patch b/tools/osx/libiconv_1.15_rt.patch deleted file mode 100644 index ca434154b..000000000 --- a/tools/osx/libiconv_1.15_rt.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/lib/iconv.c b/lib/iconv.c -index 31853a7..630a498 100644 ---- a/lib/iconv.c -+++ b/lib/iconv.c -@@ -611,4 +611,25 @@ strong_alias (libiconv, iconv) - strong_alias (libiconv_close, iconv_close) - #endif - -+#undef iconv_open -+#undef iconv -+#undef iconv_close -+ -+LIBICONV_DLL_EXPORTED iconv_t iconv_open (const char* tocode, const char* fromcode) -+{ -+ return libiconv_open(tocode, fromcode); -+} -+ -+LIBICONV_DLL_EXPORTED size_t iconv (iconv_t icd, -+ ICONV_CONST char * * inbuf, size_t *inbytesleft, -+ char * * outbuf, size_t *outbytesleft) -+{ -+ return libiconv(icd, inbuf, inbytesleft, outbuf, outbytesleft); -+} -+ -+LIBICONV_DLL_EXPORTED int iconv_close (iconv_t icd) -+{ -+ return libiconv_close(icd); -+} -+ - #endif From 1066546483626dc1fbe44f724921941ee1962a74 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 23 Feb 2020 12:30:01 -0800 Subject: [PATCH 276/453] revert a change. --- UpdateInfo.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 287acff01..d1f532506 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -65,13 +65,13 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) endif() message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") From 4bd6383c0776f28624ef2cd0b327b0b5fe1eca1d Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 23 Feb 2020 20:35:45 -0800 Subject: [PATCH 277/453] re-indent some scripts w/cmake_format and beautify_bash --- CMakeLists.txt | 345 +++++++++++++++++++++++++------------ UpdateInfo.cmake | 105 +++++++---- tools/osx/macosx_bundle.sh | 332 +++++++++++++++++------------------ 3 files changed, 476 insertions(+), 306 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 00604052e..5998ccb50 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,17 +7,22 @@ endif() # Must stay before the project() command: if(${CMAKE_EXTRA_GENERATOR} MATCHES "Eclipse CDT4") - set(CMAKE_CXX_COMPILER_ARG1 "-std=c++11" CACHE STRING "C++ version for eclipse" FORCE) + set(CMAKE_CXX_COMPILER_ARG1 + "-std=c++11" + CACHE STRING "C++ version for eclipse" FORCE) # Users building with Eclipse should set CMAKE_ECLIPSE_VERSION through the # command line to their current version of Eclipse: - #set(CMAKE_ECLIPSE_VERSION "4.6.0" CACHE STRING "Eclipse version" FORCE) + # set(CMAKE_ECLIPSE_VERSION "4.6.0" CACHE STRING "Eclipse version" FORCE) endif() project(RawTherapee) # The default target is Debug: if(CMAKE_BUILD_TYPE STREQUAL "") - set(CMAKE_BUILD_TYPE Debug CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel" FORCE) + set(CMAKE_BUILD_TYPE + Debug + CACHE STRING "One of: None Debug Release RelWithDebInfo MinSizeRel" + FORCE) endif() string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) @@ -26,11 +31,15 @@ string(TOUPPER ${CMAKE_BUILD_TYPE} UPPER_CMAKE_BUILD_TYPE) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") -if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.9") - message(FATAL_ERROR "Building RawTherapee requires using GCC version 4.9 or higher!") +if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION + VERSION_LESS "4.9") + message( + FATAL_ERROR + "Building RawTherapee requires using GCC version 4.9 or higher!") endif() -# We might want to build using the old C++ ABI, even when using a new GCC version: +# We might want to build using the old C++ ABI, even when using a new GCC +# version: if(USE_OLD_CXX_ABI) add_definitions(-D_GLIBCXX_USE_CXX11_ABI=0) endif() @@ -46,30 +55,50 @@ message(STATUS "CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/") -# Cache name suffix examples: "" = ~/.config/RawTherapee, "5" = ~/.config/RawTherapee-5, "_testing" = ~/.config/RawTherapee_testing -# Use "" for stable releases and "5-dev" for anything else. -set(CACHE_NAME_SUFFIX "" CACHE STRING "RawTherapee's cache folder suffix") +# Cache name suffix examples: "" = ~/.config/RawTherapee, "5" = +# ~/.config/RawTherapee-5, "_testing" = ~/.config/RawTherapee_testing Use "" for +# stable releases and "5-dev" for anything else. +set(CACHE_NAME_SUFFIX + "" + CACHE STRING "RawTherapee's cache folder suffix") -# By default we don't use a specific processor target, so PROC_TARGET_NUMBER is set to 0. -# Specify other values to optimize for specific processor architecture as listed in ProcessorTargets.cmake: -set(PROC_TARGET_NUMBER 0 CACHE STRING "Selected target processor from the list above (taken from ProcessorTargets.cmake)") +# By default we don't use a specific processor target, so PROC_TARGET_NUMBER is +# set to 0. Specify other values to optimize for specific processor architecture +# as listed in ProcessorTargets.cmake: +set(PROC_TARGET_NUMBER + 0 + CACHE + STRING + "Selected target processor from the list above (taken from ProcessorTargets.cmake)" +) # Set special compilation flags for rtengine which get added to CMAKE_CXX_FLAGS: -# Some Linux distros build with -O2 instead of -O3. We explicitly enable auto vectorization by using -ftree-vectorize -set(RTENGINE_CXX_FLAGS "-ftree-vectorize" CACHE STRING "Special compilation flags for RTEngine") +# Some Linux distros build with -O2 instead of -O3. We explicitly enable auto +# vectorization by using -ftree-vectorize +set(RTENGINE_CXX_FLAGS + "-ftree-vectorize" + CACHE STRING "Special compilation flags for RTEngine") # Loads the ProcessorTargets list: include(ProcessorTargets.cmake) -set(PROC_LABEL "undefined" CACHE STRING "Target processor label, unused if PROC_TARGET_NUMBER = 0 or 2") -set(PROC_FLAGS "" CACHE STRING "Target processor related build/link flags") +set(PROC_LABEL + "undefined" + CACHE STRING + "Target processor label, unused if PROC_TARGET_NUMBER = 0 or 2") +set(PROC_FLAGS + "" + CACHE STRING "Target processor related build/link flags") if((NOT (PROC_TARGET_NUMBER EQUAL 0)) AND (NOT (PROC_TARGET_NUMBER EQUAL 2))) set(PROC_LABEL ${PROC_TARGET_${PROC_TARGET_NUMBER}_LABEL}) endif() -if(NOT(PROC_TARGET_NUMBER EQUAL 0)) +if(NOT (PROC_TARGET_NUMBER EQUAL 0)) set(PROC_FLAGS ${PROC_TARGET_${PROC_TARGET_NUMBER}_FLAGS}) endif() if(UNIX AND PROC_LABEL STREQUAL "undefined") - execute_process(COMMAND uname -p OUTPUT_STRIP_TRAILING_WHITESPACE OUTPUT_VARIABLE cpu) + execute_process( + COMMAND uname -p + OUTPUT_STRIP_TRAILING_WHITESPACE + OUTPUT_VARIABLE cpu) if("${cpu}" STREQUAL "unknown") set(PROC_LABEL "${CMAKE_SYSTEM_PROCESSOR}") else() @@ -77,7 +106,8 @@ if(UNIX AND PROC_LABEL STREQUAL "undefined") endif() endif() -# If PROC_FORCED_LABEL exists, its value is loaded in PROC_LABEL to override the one from ProcessorTargets: +# If PROC_FORCED_LABEL exists, its value is loaded in PROC_LABEL to override the +# one from ProcessorTargets: if(DEFINED PROC_FORCED_LABEL) set(PROC_LABEL ${PROC_FORCED_LABEL}) endif() @@ -87,7 +117,8 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PROC_FLAGS}") set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PROC_FLAGS}") set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${PROC_FLAGS}") -# Stop compilation on typos such as std:swap (missing colon will be detected as unused label): +# Stop compilation on typos such as std:swap (missing colon will be detected as +# unused label): set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=unused-label") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror=delete-incomplete") @@ -106,21 +137,35 @@ endif() include(FindUnalignedMalloc) if(WIN32) - # Add additional paths. Look in the MinGW path first, then in the Gtkmm path. - # If you wish to build some dependent libraries, you have to install them in MinGW to use them: - set(CMAKE_PREFIX_PATH $ENV{MINGW_BASEPATH} $ENV{GTKMM_BASEPATH} CACHE STRING "Additional search paths") + # Add additional paths. Look in the MinGW path first, then in the Gtkmm + # path. If you wish to build some dependent libraries, you have to install + # them in MinGW to use them: + set(CMAKE_PREFIX_PATH + $ENV{MINGW_BASEPATH} $ENV{GTKMM_BASEPATH} + CACHE STRING "Additional search paths") endif() if(APPLE) - if(CMAKE_CXX_COMPILER MATCHES "g\\+\\+-mp-4.[5-8]" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "g\\+\\+-mp-4.[5-8]") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /usr/lib/libstdc++.6.dylib -Wl,-headerpad_max_install_names -mtune=generic") - message(STATUS "CMAKE_CXX_COMPILER is MacPorts GCC.\n CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}") + if(CMAKE_CXX_COMPILER MATCHES "g\\+\\+-mp-4.[5-8]" + OR CMAKE_CXX_COMPILER_ARG1 MATCHES "g\\+\\+-mp-4.[5-8]") + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} /usr/lib/libstdc++.6.dylib -Wl,-headerpad_max_install_names -mtune=generic" + ) + message( + STATUS + "CMAKE_CXX_COMPILER is MacPorts GCC.\n CMAKE_EXE_LINKER_FLAGS: ${CMAKE_EXE_LINKER_FLAGS}" + ) endif() # Set minimum system version - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,-headerpad_max_install_names -mtune=generic") + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}" + ) + set(CMAKE_C_FLAGS + "${CMAKE_C_FLAGS} -mmacosx-version-min=${CMAKE_OSX_DEPLOYMENT_TARGET}") + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} -Wl,-headerpad_max_install_names -mtune=generic" + ) endif() option(USE_EXPERIMENTAL_LANG_VERSIONS "Build with -std=c++0x" OFF) @@ -132,18 +177,33 @@ option(WITH_SAN "Build with run-time sanitizer" OFF) option(WITH_PROF "Build with profiling instrumentation" OFF) option(WITH_SYSTEM_KLT "Build using system KLT library." OFF) option(OPTION_OMP "Build with OpenMP support" ON) -option(STRICT_MUTEX "True (recommended): MyMutex will behave like POSIX Mutex; False: MyMutex will behave like POSIX RecMutex; Note: forced to ON for Debug builds" ON) -option(TRACE_MYRWMUTEX "Trace custom R/W Mutex (Debug builds only); redirecting std::out to a file is strongly recommended!" OFF) -option(AUTO_GDK_FLUSH "Use gdk_flush on all gdk_thread_leave other than the GUI thread; set it ON if you experience X Server warning/errors" OFF) -#option(TARGET32BIT "Build for 32-bit architecture when ON, otherwise 64-bit. Default is OFF" OFF) +option( + STRICT_MUTEX + "True (recommended): MyMutex will behave like POSIX Mutex; False: MyMutex will behave like POSIX RecMutex; Note: forced to ON for Debug builds" + ON) +option( + TRACE_MYRWMUTEX + "Trace custom R/W Mutex (Debug builds only); redirecting std::out to a file is strongly recommended!" + OFF) +option( + AUTO_GDK_FLUSH + "Use gdk_flush on all gdk_thread_leave other than the GUI thread; set it ON if you experience X Server warning/errors" + OFF) +# option(TARGET32BIT "Build for 32-bit architecture when ON, otherwise 64-bit. +# Default is OFF" OFF) option(ENABLE_TCMALLOC "Use the tcmalloc library if available" OFF) -set(TCMALLOC_LIB_DIR "" CACHE PATH "Custom path for the tcmalloc library") +set(TCMALLOC_LIB_DIR + "" + CACHE PATH "Custom path for the tcmalloc library") # Set installation directories: if(WIN32 OR APPLE) if(BUILD_BUNDLE) - message(STATUS "You have set BUILD_BUNDLE=ON but this is not necessary - the option is forced to ON for Windows and macOS.") + message( + STATUS + "You have set BUILD_BUNDLE=ON but this is not necessary - the option is forced to ON for Windows and macOS." + ) endif() set(BUILD_BUNDLE ON FORCE) endif() @@ -281,26 +341,35 @@ if(NOT DEFINED APPDATADIR) endif() endif() -if (NOT APPLE) - if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}") - set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}") +if(NOT APPLE) + if(DEFINED LENSFUNDBDIR AND NOT IS_ABSOLUTE "${LENSFUNDBDIR}") + set(LENSFUNDBDIR "${DATADIR}/${LENSFUNDBDIR}") endif() endif() if(APPLE) if("${CODESIGNID}") - set(CODESIGNID "${CODESIGNID}" CACHE STRING "Codesigning Identity") + set(CODESIGNID + "${CODESIGNID}" + CACHE STRING "Codesigning Identity") endif() if("${NOTARY}") - set(NOTARY "${NOTARY}" CACHE STRING "Notarization Identity") + set(NOTARY + "${NOTARY}" + CACHE STRING "Notarization Identity") endif() if("${LOCAL_PREFIX}") - set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory ie /usr or /opt") + set(LOCAL_PREFIX + "${LOCAL_PREFIX}" + CACHE STRING "macos/gtk parent directory ie /usr or /opt") elseif(NOT DEFINED LOCAL_PREFIX) set(LOCAL_PREFIX "/usr") endif() if("${FANCY_DMG}") - set(FANCY_DMG ON CACHE BOOL "Use the andreyvit/create-dmg script to make a fancy .dmg") + set(FANCY_DMG + ON + CACHE BOOL + "Use the andreyvit/create-dmg script to make a fancy .dmg") endif() endif() @@ -308,7 +377,10 @@ endif() if(NOT BUILD_BUNDLE) foreach(path BINDIR DATADIR LIBDIR DOCDIR CREDITSDIR LICENCEDIR) if(NOT (IS_ABSOLUTE "${${path}}")) - message(FATAL_ERROR "The ${path} path has to be absolute when using -DBUILD_BUNDLE=OFF") + message( + FATAL_ERROR + "The ${path} path has to be absolute when using -DBUILD_BUNDLE=OFF" + ) endif() endforeach() endif() @@ -337,11 +409,11 @@ endif() find_package(PkgConfig) if(WIN32) - pkg_check_modules (GTK REQUIRED gtk+-3.0>=3.22.24) - pkg_check_modules (GTKMM REQUIRED gtkmm-3.0>=3.22) + pkg_check_modules(GTK REQUIRED gtk+-3.0>=3.22.24) + pkg_check_modules(GTKMM REQUIRED gtkmm-3.0>=3.22) else() - pkg_check_modules (GTK REQUIRED gtk+-3.0>=3.16) - pkg_check_modules (GTKMM REQUIRED gtkmm-3.0>=3.16) + pkg_check_modules(GTK REQUIRED gtk+-3.0>=3.16) + pkg_check_modules(GTKMM REQUIRED gtkmm-3.0>=3.16) endif() if(GTK_VERSION VERSION_GREATER "3.24.1" AND GTK_VERSION VERSION_LESS "3.24.7") @@ -350,19 +422,26 @@ if(GTK_VERSION VERSION_GREATER "3.24.1" AND GTK_VERSION VERSION_LESS "3.24.7") else() set(CERTAINTY "likely to") endif() - message(WARNING "\nWarning! You are using GTK+ version " ${GTK_VERSION} " which is " ${CERTAINTY} " have an issue where combobox menu scroll-arrows are missing when a Gtk::ComboBox list does not fit vertically on the screen. As a result, users of your build will not be able to select items in the following comboboxes: Processing Profiles, Film Simulation, and the camera and lens profiles in Profiled Lens Correction.\nIt is recommended that you either downgrade GTK+ to <= 3.24.1 or upgrade to >= 3.24.7.") + message( + WARNING + "\nWarning! You are using GTK+ version " + ${GTK_VERSION} + " which is " + ${CERTAINTY} + " have an issue where combobox menu scroll-arrows are missing when a Gtk::ComboBox list does not fit vertically on the screen. As a result, users of your build will not be able to select items in the following comboboxes: Processing Profiles, Film Simulation, and the camera and lens profiles in Profiled Lens Correction.\nIt is recommended that you either downgrade GTK+ to <= 3.24.1 or upgrade to >= 3.24.7." + ) endif() -pkg_check_modules (GLIB2 REQUIRED glib-2.0>=2.44) -pkg_check_modules (GLIBMM REQUIRED glibmm-2.4>=2.44) -pkg_check_modules (CAIROMM REQUIRED cairomm-1.0) -pkg_check_modules (GIO REQUIRED gio-2.0>=2.44) -pkg_check_modules (GIOMM REQUIRED giomm-2.4>=2.44) -pkg_check_modules (GTHREAD REQUIRED gthread-2.0>=2.44) -pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.44) -pkg_check_modules (SIGC REQUIRED sigc++-2.0>=2.3.1) -pkg_check_modules (LENSFUN REQUIRED lensfun>=0.2) -pkg_check_modules (RSVG REQUIRED librsvg-2.0>=2.40) +pkg_check_modules(GLIB2 REQUIRED glib-2.0>=2.44) +pkg_check_modules(GLIBMM REQUIRED glibmm-2.4>=2.44) +pkg_check_modules(CAIROMM REQUIRED cairomm-1.0) +pkg_check_modules(GIO REQUIRED gio-2.0>=2.44) +pkg_check_modules(GIOMM REQUIRED giomm-2.4>=2.44) +pkg_check_modules(GTHREAD REQUIRED gthread-2.0>=2.44) +pkg_check_modules(GOBJECT REQUIRED gobject-2.0>=2.44) +pkg_check_modules(SIGC REQUIRED sigc++-2.0>=2.3.1) +pkg_check_modules(LENSFUN REQUIRED lensfun>=0.2) +pkg_check_modules(RSVG REQUIRED librsvg-2.0>=2.40) if(WIN32) add_definitions(-DWIN32) @@ -389,7 +468,7 @@ if(WITH_SYSTEM_KLT) endif() # Check for libcanberra-gtk3 (sound events on Linux): -if(UNIX AND(NOT APPLE)) +if(UNIX AND (NOT APPLE)) pkg_check_modules(CANBERRA-GTK REQUIRED libcanberra-gtk3) endif() @@ -400,9 +479,12 @@ endif() if(WITH_LTO) # Using LTO with older versions of binutils requires setting extra flags set(BINUTILS_VERSION_MININUM "2.29") - execute_process(COMMAND ar --version OUTPUT_VARIABLE BINUTILS_VERSION_DETECTED) - string(REGEX REPLACE ".* ([0-9.]+)\n.*" "\\1" BINUTILS_VERSION_DETECTED "${BINUTILS_VERSION_DETECTED}") - if("${BINUTILS_VERSION_DETECTED}" VERSION_LESS "${BINUTILS_VERSION_MININUM}") + execute_process(COMMAND ar --version + OUTPUT_VARIABLE BINUTILS_VERSION_DETECTED) + string(REGEX REPLACE ".* ([0-9.]+)\n.*" "\\1" BINUTILS_VERSION_DETECTED + "${BINUTILS_VERSION_DETECTED}") + if("${BINUTILS_VERSION_DETECTED}" VERSION_LESS + "${BINUTILS_VERSION_MININUM}") if(APPLE) if(!CMAKE_AR) set(CMAKE_AR "/opt/local/bin/ar") @@ -414,7 +496,15 @@ if(WITH_LTO) set(CMAKE_AR "/usr/bin/gcc-ar") set(CMAKE_RANLIB "/usr/bin/gcc-ranlib") endif() - message(STATUS "Binutils version detected as less than " ${BINUTILS_VERSION_MININUM} " - setting CMake parameters to enable LTO linking:\n CMAKE_AR=\"" ${CMAKE_AR} "\"\n CMAKE_RANLIB=\"" ${CMAKE_RANLIB} "\"") + message( + STATUS + "Binutils version detected as less than " + ${BINUTILS_VERSION_MININUM} + " - setting CMake parameters to enable LTO linking:\n CMAKE_AR=\"" + ${CMAKE_AR} + "\"\n CMAKE_RANLIB=\"" + ${CMAKE_RANLIB} + "\"") endif() set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -flto") @@ -425,7 +515,8 @@ endif() if(WITH_SAN) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=${WITH_SAN}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=${WITH_SAN}") - set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${WITH_SAN}") + set(CMAKE_EXE_LINKER_FLAGS + "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${WITH_SAN}") endif() if(WITH_PROF) @@ -434,11 +525,14 @@ if(WITH_PROF) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg") endif() -set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result -Wunused-macros") +set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} -Wall -Wuninitialized -Wcast-qual -Wno-deprecated-declarations -Wno-unused-result -Wunused-macros" +) if(OPTION_OMP) find_package(OpenMP) if(OPENMP_FOUND) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -Werror=unknown-pragmas") + set(CMAKE_CXX_FLAGS + "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS} -Werror=unknown-pragmas") endif() endif() @@ -452,13 +546,14 @@ if(OPENMP_FOUND) set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${_f}) endforeach() check_c_source_compiles( -"#include + "#include int main() { fftwf_init_threads(); fftwf_plan_with_nthreads(1); return 0; -}" _fftw3f_multithread) +}" + _fftw3f_multithread) if(_fftw3f_multithread) add_definitions(-DRT_FFTW3F_OMP) else() @@ -476,63 +571,83 @@ get_filename_component(ABS_BINARY_DIR "${CMAKE_BINARY_DIR}" ABSOLUTE) set(OUT_OF_SOURCE_BUILD TRUE) if(ABS_SOURCE_DIR STREQUAL ABS_BINARY_DIR) set(OUT_OF_SOURCE_BUILD FALSE) - message(WARNING "You are performing an in-source build. This is discouraged. For an explanation and the advantages of out-of-source builds, please refer to http://www.cmake.org/Wiki/CMake_FAQ#What_is_an_.22out-of-source.22_build.3F") + message( + WARNING + "You are performing an in-source build. This is discouraged. For an explanation and the advantages of out-of-source builds, please refer to http://www.cmake.org/Wiki/CMake_FAQ#What_is_an_.22out-of-source.22_build.3F" + ) endif() -# Remove files which could require manual work. -# We will remove this after some time to have a clean build system without file modifications in the source tree again. (?) -set(OOSB_FILES "${PROJECT_SOURCE_DIR}/rtdata/rawtherapee.desktop" "${PROJECT_SOURCE_DIR}/rtgui/version.h" "${PROJECT_SOURCE_DIR}/rtgui/config.h" "${PROJECT_SOURCE_DIR}/AboutThisBuild.txt") +# Remove files which could require manual work. We will remove this after some +# time to have a clean build system without file modifications in the source +# tree again. (?) +set(OOSB_FILES + "${PROJECT_SOURCE_DIR}/rtdata/rawtherapee.desktop" + "${PROJECT_SOURCE_DIR}/rtgui/version.h" + "${PROJECT_SOURCE_DIR}/rtgui/config.h" + "${PROJECT_SOURCE_DIR}/AboutThisBuild.txt") if(OUT_OF_SOURCE_BUILD) foreach(f ${OOSB_FILES}) file(REMOVE "${f}") endforeach() endif() -# Check for generated files in the source tree which should not be there when doing an out-of-source build. -# Without checking for this it might happen that old versions are used for the compilation: +# Check for generated files in the source tree which should not be there when +# doing an out-of-source build. Without checking for this it might happen that +# old versions are used for the compilation: if(OUT_OF_SOURCE_BUILD) foreach(f ${OOSB_FILES}) if(EXISTS "${f}") - message(SEND_ERROR "Generated \"${f}\" found inside the source tree. Please remove it as it is a relic of the old build system and prevents valid compilation now.") + message( + SEND_ERROR + "Generated \"${f}\" found inside the source tree. Please remove it as it is a relic of the old build system and prevents valid compilation now." + ) endif() endforeach() endif() -### Start generating AboutThisBuild.txt -# Set the platform bit-depth: +# Start generating AboutThisBuild.txt Set the platform bit-depth: if(CMAKE_SIZEOF_VOID_P EQUAL 4) set(PROC_BIT_DEPTH 32 bits) else() set(PROC_BIT_DEPTH 64 bits) endif() -# Get compiler name and version. -# Only CMake > 2.8.7 knows CMAKE_*_COMPILER_VERSION +# Get compiler name and version. Only CMake > 2.8.7 knows +# CMAKE_*_COMPILER_VERSION if(CMAKE_VERSION VERSION_GREATER 2.8.7) get_filename_component(COMPILER_INFO ${CMAKE_C_COMPILER} NAME_WE) set(COMPILER_INFO "${COMPILER_INFO} ${CMAKE_C_COMPILER_VERSION}") else() - execute_process(COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) + execute_process( + COMMAND gcc -dumpversion + OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) set(COMPILER_INFO "gcc ${GCC_VERSION}") endif() -# Get C++ and linker flags for rtengine (the GUI's C++ flags may have fewer flags): -set(CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} ${RTENGINE_CXX_FLAGS}") -set(LFLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}") +# Get C++ and linker flags for rtengine (the GUI's C++ flags may have fewer +# flags): +set(CXX_FLAGS + "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${UPPER_CMAKE_BUILD_TYPE}} ${RTENGINE_CXX_FLAGS}" +) +set(LFLAGS + "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}" +) -set(ABOUT_COMMAND_WITH_ARGS ${CMAKE_COMMAND} - -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} +set(ABOUT_COMMAND_WITH_ARGS + ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} -DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX} -DPROC_LABEL:STRING="${PROC_LABEL}" -DPROC_BIT_DEPTH:STRING="${PROC_BIT_DEPTH}" -DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DGTKMM_VERSION:STRING=${GTKMM_VERSION} - -DOPTION_OMP:STRING=${OPTION_OMP} + -DGTKMM_VERSION:STRING=${GTKMM_VERSION} -DOPTION_OMP:STRING=${OPTION_OMP} -DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP} -DLENSFUN_VERSION:STRING=${LENSFUN_VERSION}) if(WIN32) - list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Windows + list( + APPEND + ABOUT_COMMAND_WITH_ARGS + -DSYSTEM:STRING=Windows -DCXX_FLAGS:STRING="${CXX_FLAGS}" -DLFLAGS:STRING="${LFLAGS}" -DCOMPILER_INFO:STRING="${COMPILER_INFO}" @@ -540,39 +655,45 @@ if(WIN32) -DBIT_DEPTH:STRING="${CMAKE_SIZEOF_VOID_P}") elseif(APPLE) list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Apple - -DCXX_FLAGS:STRING=${CXX_FLAGS} - -DLFLAGS:STRING=${LFLAGS} - -DCOMPILER_INFO:STRING=${COMPILER_INFO}) + -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} + -DCOMPILER_INFO:STRING=${COMPILER_INFO}) else() list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Linux - -DCXX_FLAGS:STRING=${CXX_FLAGS} - -DLFLAGS:STRING=${LFLAGS} - -DCOMPILER_INFO:STRING=${COMPILER_INFO}) + -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} + -DCOMPILER_INFO:STRING=${COMPILER_INFO}) endif() list(APPEND ABOUT_COMMAND_WITH_ARGS -P "${PROJECT_SOURCE_DIR}/UpdateInfo.cmake") -add_custom_target(UpdateInfo ALL +add_custom_target( + UpdateInfo ALL COMMAND ${ABOUT_COMMAND_WITH_ARGS} COMMENT "Creating AboutThisBuild.txt and other version-dependent files") -### End generating AboutThisBuild.txt +# End generating AboutThisBuild.txt install(FILES AUTHORS.txt DESTINATION "${CREDITSDIR}") install(FILES LICENSE.txt DESTINATION "${LICENCEDIR}") -install(FILES "${CMAKE_BINARY_DIR}/AboutThisBuild.txt" DESTINATION "${CREDITSDIR}") -install(FILES RELEASE_NOTES.txt DESTINATION "${CREDITSDIR}" OPTIONAL) +install(FILES "${CMAKE_BINARY_DIR}/AboutThisBuild.txt" + DESTINATION "${CREDITSDIR}") +install( + FILES RELEASE_NOTES.txt + DESTINATION "${CREDITSDIR}" + OPTIONAL) -# The standard location for man pages in Linux is /usr/share/man -# Use "manpath" to see the search paths for man pages on your system. +# The standard location for man pages in Linux is /usr/share/man Use "manpath" +# to see the search paths for man pages on your system. if(BUILD_BUNDLE) if(APPLE) - install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${DATADIR}/man/man1") + install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" + DESTINATION "${DATADIR}/man/man1") else() - install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${DATADIR}/share/man/man1") + install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" + DESTINATION "${DATADIR}/share/man/man1") endif() else() - install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") + install(FILES "${PROJECT_SOURCE_DIR}/doc/manpage/rawtherapee.1" + DESTINATION "${CMAKE_INSTALL_PREFIX}/share/man/man1") endif() if(WIN32) @@ -580,7 +701,8 @@ if(WIN32) endif() if(UNIX) - install(FILES com.rawtherapee.RawTherapee.appdata.xml DESTINATION "${APPDATADIR}") + install(FILES com.rawtherapee.RawTherapee.appdata.xml + DESTINATION "${APPDATADIR}") endif() # check whether the used version of lensfun has lfDatabase::LoadDirectory @@ -608,26 +730,31 @@ int main() lfDatabase *db = 0; bool b = db->LoadDirectory(0); return 0; -}" LENSFUN_HAS_LOAD_DIRECTORY) +}" + LENSFUN_HAS_LOAD_DIRECTORY) set(TCMALLOC_LIB_DIR) if(ENABLE_TCMALLOC) if(TCMALLOC_LIB_DIR) - find_library(TCMALLOC_LIBRARIES tcmalloc PATHS ${TCMALLOC_LIB_DIR} NO_DEFAULT_PATH) + find_library(TCMALLOC_LIBRARIES tcmalloc PATHS ${TCMALLOC_LIB_DIR} + NO_DEFAULT_PATH) else() find_library(TCMALLOC_LIBRARIES tcmalloc) endif() if(TCMALLOC_LIBRARIES) message(STATUS "using tcmalloc library in ${TCMALLOC_LIBRARIES}") else() - set(TCMALLOC_LIBRARIES "" CACHE INTERNAL "" FORCE) + set(TCMALLOC_LIBRARIES + "" + CACHE INTERNAL "" FORCE) message(STATUS "tcmalloc not found") endif() else() - set(TCMALLOC_LIBRARIES "" CACHE INTERNAL "" FORCE) + set(TCMALLOC_LIBRARIES + "" + CACHE INTERNAL "" FORCE) endif() - add_subdirectory(rtexif) add_subdirectory(rtengine) add_subdirectory(rtgui) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 287acff01..b809fb2e5 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -1,13 +1,21 @@ # cmakefile executed within a makefile target -# If we find ReleaseInfo.cmake we use the info from there and don't need Git to be installed -find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) +# If we find ReleaseInfo.cmake we use the info from there and don't need Git to +# be installed +find_file( + REL_INFO_FILE ReleaseInfo.cmake + PATHS "${PROJECT_SOURCE_DIR}" + NO_DEFAULT_PATH) if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) # we look for the git command in this paths by order of preference if(WIN32) - find_program(GIT_CMD git.exe HINTS ENV Path PATH_SUFFIXES ../) + find_program( + GIT_CMD git.exe + HINTS ENV Path + PATH_SUFFIXES ../) elseif(APPLE) - find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") + find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" + "/usr/bin") find_program(GIT_CMD git) set(SHELL "/bin/bash") else(WIN32) # Linux @@ -22,46 +30,72 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS "git command found: ${GIT_CMD}") endif() - # Get version description. - # Depending on whether you checked out a branch (dev) or a tag (release), - # "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. - execute_process(COMMAND ${GIT_CMD} describe --tags --always OUTPUT_VARIABLE GIT_DESCRIBE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Get version description. Depending on whether you checked out a branch + # (dev) or a tag (release), "git describe" will return + # "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. + execute_process( + COMMAND ${GIT_CMD} describe --tags --always + OUTPUT_VARIABLE GIT_DESCRIBE + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # Get branch name. - # Will return empty if you checked out a commit or tag. Empty string handled later. - execute_process(COMMAND ${GIT_CMD} symbolic-ref --short -q HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Get branch name. Will return empty if you checked out a commit or tag. + # Empty string handled later. + execute_process( + COMMAND ${GIT_CMD} symbolic-ref --short -q HEAD + OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Get commit hash. - execute_process(COMMAND ${GIT_CMD} rev-parse --short --verify HEAD OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + execute_process( + COMMAND ${GIT_CMD} rev-parse --short --verify HEAD + OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Get commit date, YYYY-MM-DD. - execute_process(COMMAND ${GIT_CMD} show -s --format=%cd --date=format:%Y-%m-%d OUTPUT_VARIABLE GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + execute_process( + COMMAND ${GIT_CMD} show -s --format=%cd --date=format:%Y-%m-%d + OUTPUT_VARIABLE GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Get number of commits since tagging. This is what "GIT_DESCRIBE" uses. - # Works when checking out branch, tag or commit. - # Get a list of all tags in repo: - execute_process(COMMAND ${GIT_CMD} tag --merged HEAD OUTPUT_VARIABLE GIT_TAG WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Works when checking out branch, tag or commit. Get a list of all tags in + # repo: + execute_process( + COMMAND ${GIT_CMD} tag --merged HEAD + OUTPUT_VARIABLE GIT_TAG + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Replace newlines with semicolons so that it can be split: string(REPLACE "\n" ";" GIT_TAG_LIST "${GIT_TAG}") - execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not ${GIT_TAG_LIST} OUTPUT_VARIABLE GIT_COMMITS_SINCE_TAG OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + execute_process( + COMMAND ${GIT_CMD} rev-list --count HEAD --not ${GIT_TAG_LIST} + OUTPUT_VARIABLE GIT_COMMITS_SINCE_TAG OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # Get number of commits since branching. - # Works when checking out branch, tag or commit. - execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Get number of commits since branching. Works when checking out branch, tag + # or commit. + execute_process( + COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags + OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH + OUTPUT_STRIP_TRAILING_WHITESPACE + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # If user checked-out something which is not a branch, use the description as branch name. + # If user checked-out something which is not a branch, use the description + # as branch name. if(GIT_BRANCH STREQUAL "") set(GIT_BRANCH "${GIT_DESCRIBE}") endif() - # Create numeric version. - # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. - # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). + # Create numeric version. This version is nonsense, either don't use it at + # all or use it only where you have no other choice, e.g. Inno Setup's + # VersionInfoVersion. Strip everything after hyphen, e.g. "5.0-gtk2" -> + # "5.0", "5.1-rc1" -> "5.1" (ergo BS). if(GIT_COMMITS_SINCE_TAG STREQUAL "") set(GIT_NUMERIC_VERSION_BS "0.0.0") else() string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) - set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") + set(GIT_NUMERIC_VERSION_BS + "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() message(STATUS "Git checkout information:") @@ -75,7 +109,10 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") - message(STATUS "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"") + message( + STATUS + "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"" + ) else() message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") endif() @@ -87,7 +124,8 @@ endif(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) if(WIN32) if(BIT_DEPTH EQUAL 4) set(BUILD_BIT_DEPTH 32) - # 32 bits builds has to be installable on 64 bits system, to support WinXP/64. + # 32 bits builds has to be installable on 64 bits system, to support + # WinXP/64. set(ARCHITECTURE_ALLOWED "x86 x64 ia64") # installing in 32 bits mode even on 64 bits OS and architecture set(INSTALL_MODE "") @@ -95,16 +133,21 @@ if(WIN32) set(BUILD_BIT_DEPTH 64) # Restricting the 64 bits builds to 64 bits systems only set(ARCHITECTURE_ALLOWED "x64 ia64") - # installing in 64 bits mode for all 64 bits processors, even for itanium architecture + # installing in 64 bits mode for all 64 bits processors, even for + # itanium architecture set(INSTALL_MODE "x64 ia64") endif(BIT_DEPTH EQUAL 4) # set part of the output archive name set(SYSTEM_NAME "WinVista") - configure_file("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") + configure_file( + "${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" + "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") endif(WIN32) # build version.h from template -configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") +configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" + "${CMAKE_BINARY_DIR}/rtgui/version.h") # build AboutThisBuild.txt from template -configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") +configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" + "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index ced5821b0..64738d283 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -16,79 +16,79 @@ fMagenta="$(tput setaf 5)" fRed="$(tput setaf 1)" function msg { -printf "\\n${fBold}-- %s${fNormal}\\n" "${@}" + printf "\\n${fBold}-- %s${fNormal}\\n" "${@}" } function msgError { -printf "\\n${fBold}Error:${fNormal}\\n%s\\n" "${@}" + printf "\\n${fBold}Error:${fNormal}\\n%s\\n" "${@}" } function GetDependencies { -otool -L "$1" | awk 'NR >= 2 && $1 !~ /^(\/usr\/lib|\/System|@executable_path|@rpath)\// { print $1 }' + otool -L "$1" | awk 'NR >= 2 && $1 !~ /^(\/usr\/lib|\/System|@executable_path|@rpath)\// { print $1 }' } function CheckLink { -GetDependencies "$1" | while read -r; do -local dest="${LIB}/$(basename "${REPLY}")" -test -f "${dest}" || { ditto --arch "${arch}" "${REPLY}" "${dest}"; CheckLink "${dest}"; } -done + GetDependencies "$1" | while read -r; do + local dest="${LIB}/$(basename "${REPLY}")" + test -f "${dest}" || { ditto --arch "${arch}" "${REPLY}" "${dest}"; CheckLink "${dest}"; } + done } function ModifyInstallNames { -find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do -msg "Modifying install names: ${x}" -{ -# id -if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then -install_name_tool -id /Applications/"${LIB}"/$(basename ${x}) ${x} -fi -GetDependencies "${x}" | while read -r y -do -install_name_tool -change ${y} /Applications/"${LIB}"/$(basename ${y}) ${x} -done -} | bash -v -done + find -E "${CONTENTS}" -type f -regex '.*/(rawtherapee-cli|rawtherapee|.*\.(dylib|so))' | while read -r x; do + msg "Modifying install names: ${x}" + { + # id + if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then + install_name_tool -id /Applications/"${LIB}"/$(basename ${x}) ${x} + fi + GetDependencies "${x}" | while read -r y + do + install_name_tool -change ${y} /Applications/"${LIB}"/$(basename ${y}) ${x} + done + } | bash -v + done } # Source check if [[ ! -d "${CMAKE_BUILD_TYPE}" ]]; then -msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." -exit 1 + msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." + exit 1 fi # Update project version if [[ -x "$(which git)" && -d "${PROJECT_SOURCE_DIR}/.git" ]]; then -### This section is copied from tools/generateReleaseInfo -# Get version description. -# Depending on whether you checked out a branch (dev) or a tag (release), -# "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. -gitDescribe="$(git describe --tags --always)" - -# Apple requires a numeric version of the form n.n.n -# https://goo.gl/eWDQv6 - -# Get number of commits since tagging. This is what gitDescribe uses. -# Works when checking out branch, tag or commit. -gitCommitsSinceTag="$(git rev-list --count HEAD --not $(git tag --merged HEAD))" - -# Create numeric version. -# This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. -# Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). -if [[ -z $gitCommitsSinceTag ]]; then -gitVersionNumericBS="0.0.0" -else -gitVersionNumericBS="${gitDescribe%%-*}" # Remove everything after first hyphen. -gitVersionNumericBS="${gitVersionNumericBS}.${gitCommitsSinceTag}" # Remove everything until after first hyphen: 5.0 -fi -### Copy end. - -PROJECT_FULL_VERSION="$gitDescribe" -PROJECT_VERSION="$gitVersionNumericBS" + ### This section is copied from tools/generateReleaseInfo + # Get version description. + # Depending on whether you checked out a branch (dev) or a tag (release), + # "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. + gitDescribe="$(git describe --tags --always)" + + # Apple requires a numeric version of the form n.n.n + # https://goo.gl/eWDQv6 + + # Get number of commits since tagging. This is what gitDescribe uses. + # Works when checking out branch, tag or commit. + gitCommitsSinceTag="$(git rev-list --count HEAD --not $(git tag --merged HEAD))" + + # Create numeric version. + # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. + # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). + if [[ -z $gitCommitsSinceTag ]]; then + gitVersionNumericBS="0.0.0" + else + gitVersionNumericBS="${gitDescribe%%-*}" # Remove everything after first hyphen. + gitVersionNumericBS="${gitVersionNumericBS}.${gitCommitsSinceTag}" # Remove everything until after first hyphen: 5.0 + fi + ### Copy end. + + PROJECT_FULL_VERSION="$gitDescribe" + PROJECT_VERSION="$gitVersionNumericBS" fi MINIMUM_SYSTEM_VERSION="$(otool -l "${CMAKE_BUILD_TYPE}"/MacOS/rawtherapee | grep -A2 'LC_VERSION_MIN_MACOSX' | awk '$1 ~ /version/ { printf $2 }')" if [[ -z "${MINIMUM_SYSTEM_VERSION}" ]]; then -MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" + MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" fi arch=x86_64 @@ -111,7 +111,7 @@ CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" FANCY_DMG="$(cmake .. -LA -N | grep "FANCY_DMG" | cut -d "=" -f2)" if [[ -n ${FANCY_DMG} ]] ; then -echo "Fancy .dmg build is ON." + echo "Fancy .dmg build is ON." fi APP="${PROJECT_NAME}.app" @@ -212,8 +212,8 @@ ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/themes/Default/gtk-3.0/gtk- msg "Copy Adwaita icons" iconfolders=("16x16/actions" "16x16/devices" "16x16/mimetypes" "16x16/places" "16x16/status" "48x48/devices") for f in "${iconfolders[@]}"; do -mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} -ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} + mkdir -p ${RESOURCES}/share/icons/Adwaita/${f} + ditto ${LOCAL_PREFIX}/local/share/icons/Adwaita/${f}/* "${RESOURCES}"/share/icons/Adwaita/${f} done ditto {"${LOCAL_PREFIX}/local","${RESOURCES}"}/share/icons/Adwaita/index.theme "${LOCAL_PREFIX}/local/bin/gtk-update-icon-cache" "${RESOURCES}/share/icons/Adwaita" @@ -263,133 +263,133 @@ ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder." for frameworklibs in "${LIB}"/*{dylib,so} ; do -install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib "${frameworklibs}" -install_name_tool -add_rpath /Applications/"${LIB}" "${frameworklibs}" + install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib "${frameworklibs}" + install_name_tool -add_rpath /Applications/"${LIB}" "${frameworklibs}" done install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABLE}"-cli install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli # Codesign the app if [ -n "${CODESIGNID}" ] ; then -msg "Codesigning Application." -install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements -plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements -mv "${EXECUTABLE}"-cli "${LIB}" -for frameworklibs in "${LIB}"/* ; do -codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}" -done -codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" -spctl -a -vvvv "${APP}" + msg "Codesigning Application." + install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements + plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements + mv "${EXECUTABLE}"-cli "${LIB}" + for frameworklibs in "${LIB}"/* ; do + codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}" + done + codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" + spctl -a -vvvv "${APP}" fi # Notarize the app if [ -n "$NOTARY" ] ; then -msg "Notarizing the application:" -ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" -uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` -echo "Result= $uuid" # Display identifier string -sleep 15 -while : -do -fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status -status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` -if [ "$status1" = "success" ]; then -xcrun stapler staple *app # staple the ticket -xcrun stapler validate -v *app -echo "Notarization success" -break -elif [ "$status1" = "in" ]; then -echo "Notarization still in progress, sleeping for 15 seconds and trying again" -sleep 15 -else -echo "Notarization failed fullstatus below" -echo "$fullstatus" -exit 1 -fi -done + msg "Notarizing the application:" + ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + echo "Result= $uuid" # Display identifier string + sleep 15 + while : + do + fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status + status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` + if [ "$status1" = "success" ]; then + xcrun stapler staple *app # staple the ticket + xcrun stapler validate -v *app + echo "Notarization success" + break + elif [ "$status1" = "in" ]; then + echo "Notarization still in progress, sleeping for 15 seconds and trying again" + sleep 15 + else + echo "Notarization failed fullstatus below" + echo "$fullstatus" + exit 1 + fi + done fi function CreateDmg { -local srcDir="$(mktemp -dt $$)" - -msg "Preparing disk image sources at ${srcDir}:" -cp -R "${APP}" "${srcDir}" -cp "${RESOURCES}"/share/LICENSE.txt "${srcDir}" -ln -s /Applications "${srcDir}" - -# Web bookmarks -function CreateWebloc { -defaults write "${srcDir}/$1" URL "$2" -mv "${srcDir}/$1".{plist,webloc} -} -CreateWebloc 'Website' 'https://www.rawtherapee.com/' -CreateWebloc 'Documentation' 'https://rawpedia.rawtherapee.com/' -CreateWebloc 'Forum' 'https://discuss.pixls.us/c/software/rawtherapee' -CreateWebloc 'Report Bug' 'https://github.com/Beep6581/RawTherapee/issues/new' - -# Disk image name -dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" -lower_build_type="$(tr '[:upper:]' '[:lower:]' <<< "$CMAKE_BUILD_TYPE")" -if [[ ${lower_build_type} != release ]]; then -dmg_name="${dmg_name}_${lower_build_type}" -fi - -msg "Creating disk image:" -if [ ! -z ${FANCY_DMG} ] ; then -echo "Building Fancy .dmg" -mkdir "${srcDir}/.background" -cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg.icns" "${srcDir}/.VolumeIcon.icns" -cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg-bkgd.png" "${srcDir}/.background/background.png" -SetFile -c incC "${srcDir}/.VolumeIcon.icns" -create-dmg "${dmg_name}.dmg" "${srcDir}" \ ---volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" \ ---volicon "${srcDir}/.VolumeIcon.icns" \ ---sandbox-safe \ ---no-internet-enable \ ---eula LICENSE.txt \ ---hdiutil-verbose \ ---rez /Library/Developer/CommandLineTools/usr/bin/Rez -else -hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" -fi - -# Sign disk image -if [ -n "$CODESIGNID" ] ; then -codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" -fi - -# Notarize the dmg -if ! test -z "$NOTARY" ; then -msg "Notarizing the dmg:" -zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" -uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` -echo "dmg Result= $uuid" # Display identifier string -sleep 15 -while : -do -fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status -status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` -if [ "$status1" = "success" ]; then -xcrun stapler staple "${dmg_name}.dmg" # staple the ticket -xcrun stapler validate -v "${dmg_name}.dmg" -echo "dmg Notarization success" -break -elif [ "$status1" = "in" ]; then -echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" -sleep 15 -else -echo "dmg Notarization failed fullstatus below" -echo "$fullstatus" -exit 1 -fi -done -fi - -# Zip disk image for redistribution -msg "Zipping disk image for redistribution:" -rm "${dmg_name}.dmg" -msg "Removing disk image caches:" -rm -rf "${srcDir}" + local srcDir="$(mktemp -dt $$)" + + msg "Preparing disk image sources at ${srcDir}:" + cp -R "${APP}" "${srcDir}" + cp "${RESOURCES}"/share/LICENSE.txt "${srcDir}" + ln -s /Applications "${srcDir}" + + # Web bookmarks + function CreateWebloc { + defaults write "${srcDir}/$1" URL "$2" + mv "${srcDir}/$1".{plist,webloc} + } + CreateWebloc 'Website' 'https://www.rawtherapee.com/' + CreateWebloc 'Documentation' 'https://rawpedia.rawtherapee.com/' + CreateWebloc 'Forum' 'https://discuss.pixls.us/c/software/rawtherapee' + CreateWebloc 'Report Bug' 'https://github.com/Beep6581/RawTherapee/issues/new' + + # Disk image name + dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" + lower_build_type="$(tr '[:upper:]' '[:lower:]' <<< "$CMAKE_BUILD_TYPE")" + if [[ ${lower_build_type} != release ]]; then + dmg_name="${dmg_name}_${lower_build_type}" + fi + + msg "Creating disk image:" + if [ ! -z ${FANCY_DMG} ] ; then + echo "Building Fancy .dmg" + mkdir "${srcDir}/.background" + cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg.icns" "${srcDir}/.VolumeIcon.icns" + cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg-bkgd.png" "${srcDir}/.background/background.png" + SetFile -c incC "${srcDir}/.VolumeIcon.icns" + create-dmg "${dmg_name}.dmg" "${srcDir}" \ + --volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" \ + --volicon "${srcDir}/.VolumeIcon.icns" \ + --sandbox-safe \ + --no-internet-enable \ + --eula LICENSE.txt \ + --hdiutil-verbose \ + --rez /Library/Developer/CommandLineTools/usr/bin/Rez + else + hdiutil create -format UDBZ -fs HFS+ -srcdir "${srcDir}" -volname "${PROJECT_NAME}_${PROJECT_FULL_VERSION}" "${dmg_name}.dmg" + fi + + # Sign disk image + if [ -n "$CODESIGNID" ] ; then + codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" + fi + + # Notarize the dmg + if ! test -z "$NOTARY" ; then + msg "Notarizing the dmg:" + zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" + uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` + echo "dmg Result= $uuid" # Display identifier string + sleep 15 + while : + do + fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status + status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` + if [ "$status1" = "success" ]; then + xcrun stapler staple "${dmg_name}.dmg" # staple the ticket + xcrun stapler validate -v "${dmg_name}.dmg" + echo "dmg Notarization success" + break + elif [ "$status1" = "in" ]; then + echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" + sleep 15 + else + echo "dmg Notarization failed fullstatus below" + echo "$fullstatus" + exit 1 + fi + done + fi + + # Zip disk image for redistribution + msg "Zipping disk image for redistribution:" + rm "${dmg_name}.dmg" + msg "Removing disk image caches:" + rm -rf "${srcDir}" } CreateDmg msg "Finishing build:" From 7ddf243693d7a8789c01e3a7a31fd195330d3690 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Sun, 23 Feb 2020 20:40:15 -0800 Subject: [PATCH 278/453] don't reformat UpdateInfo.cmake --- UpdateInfo.cmake | 119 +++++++++++++++-------------------------------- 1 file changed, 38 insertions(+), 81 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 99235c736..287acff01 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -1,21 +1,13 @@ # cmakefile executed within a makefile target -# If we find ReleaseInfo.cmake we use the info from there and don't need Git to -# be installed -find_file( - REL_INFO_FILE ReleaseInfo.cmake - PATHS "${PROJECT_SOURCE_DIR}" - NO_DEFAULT_PATH) +# If we find ReleaseInfo.cmake we use the info from there and don't need Git to be installed +find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) # we look for the git command in this paths by order of preference if(WIN32) - find_program( - GIT_CMD git.exe - HINTS ENV Path - PATH_SUFFIXES ../) + find_program(GIT_CMD git.exe HINTS ENV Path PATH_SUFFIXES ../) elseif(APPLE) - find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" - "/usr/bin") + find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") find_program(GIT_CMD git) set(SHELL "/bin/bash") else(WIN32) # Linux @@ -30,89 +22,60 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS "git command found: ${GIT_CMD}") endif() - # Get version description. Depending on whether you checked out a branch - # (dev) or a tag (release), "git describe" will return - # "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. - execute_process( - COMMAND ${GIT_CMD} describe --tags --always - OUTPUT_VARIABLE GIT_DESCRIBE - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Get version description. + # Depending on whether you checked out a branch (dev) or a tag (release), + # "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. + execute_process(COMMAND ${GIT_CMD} describe --tags --always OUTPUT_VARIABLE GIT_DESCRIBE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # Get branch name. Will return empty if you checked out a commit or tag. - # Empty string handled later. - execute_process( - COMMAND ${GIT_CMD} symbolic-ref --short -q HEAD - OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Get branch name. + # Will return empty if you checked out a commit or tag. Empty string handled later. + execute_process(COMMAND ${GIT_CMD} symbolic-ref --short -q HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Get commit hash. - execute_process( - COMMAND ${GIT_CMD} rev-parse --short --verify HEAD - OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + execute_process(COMMAND ${GIT_CMD} rev-parse --short --verify HEAD OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Get commit date, YYYY-MM-DD. - execute_process( - COMMAND ${GIT_CMD} show -s --format=%cd --date=format:%Y-%m-%d - OUTPUT_VARIABLE GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + execute_process(COMMAND ${GIT_CMD} show -s --format=%cd --date=format:%Y-%m-%d OUTPUT_VARIABLE GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Get number of commits since tagging. This is what "GIT_DESCRIBE" uses. - # Works when checking out branch, tag or commit. Get a list of all tags in - # repo: - execute_process( - COMMAND ${GIT_CMD} tag --merged HEAD - OUTPUT_VARIABLE GIT_TAG - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Works when checking out branch, tag or commit. + # Get a list of all tags in repo: + execute_process(COMMAND ${GIT_CMD} tag --merged HEAD OUTPUT_VARIABLE GIT_TAG WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") # Replace newlines with semicolons so that it can be split: string(REPLACE "\n" ";" GIT_TAG_LIST "${GIT_TAG}") - execute_process( - COMMAND ${GIT_CMD} rev-list --count HEAD --not ${GIT_TAG_LIST} - OUTPUT_VARIABLE GIT_COMMITS_SINCE_TAG OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not ${GIT_TAG_LIST} OUTPUT_VARIABLE GIT_COMMITS_SINCE_TAG OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # Get number of commits since branching. Works when checking out branch, tag - # or commit. - execute_process( - COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags - OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH - OUTPUT_STRIP_TRAILING_WHITESPACE - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Get number of commits since branching. + # Works when checking out branch, tag or commit. + execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # If user checked-out something which is not a branch, use the description - # as branch name. + # If user checked-out something which is not a branch, use the description as branch name. if(GIT_BRANCH STREQUAL "") set(GIT_BRANCH "${GIT_DESCRIBE}") endif() - # Create numeric version. This version is nonsense, either don't use it at - # all or use it only where you have no other choice, e.g. Inno Setup's - # VersionInfoVersion. Strip everything after hyphen, e.g. "5.0-gtk2" -> - # "5.0", "5.1-rc1" -> "5.1" (ergo BS). + # Create numeric version. + # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. + # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). if(GIT_COMMITS_SINCE_TAG STREQUAL "") set(GIT_NUMERIC_VERSION_BS "0.0.0") else() string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) - set(GIT_NUMERIC_VERSION_BS - "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") + set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") endif() message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") - message( - STATUS - "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"" - ) + message(STATUS "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"") else() message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") endif() @@ -124,8 +87,7 @@ endif(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) if(WIN32) if(BIT_DEPTH EQUAL 4) set(BUILD_BIT_DEPTH 32) - # 32 bits builds has to be installable on 64 bits system, to support - # WinXP/64. + # 32 bits builds has to be installable on 64 bits system, to support WinXP/64. set(ARCHITECTURE_ALLOWED "x86 x64 ia64") # installing in 32 bits mode even on 64 bits OS and architecture set(INSTALL_MODE "") @@ -133,21 +95,16 @@ if(WIN32) set(BUILD_BIT_DEPTH 64) # Restricting the 64 bits builds to 64 bits systems only set(ARCHITECTURE_ALLOWED "x64 ia64") - # installing in 64 bits mode for all 64 bits processors, even for - # itanium architecture + # installing in 64 bits mode for all 64 bits processors, even for itanium architecture set(INSTALL_MODE "x64 ia64") endif(BIT_DEPTH EQUAL 4) # set part of the output archive name set(SYSTEM_NAME "WinVista") - configure_file( - "${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" - "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") + configure_file("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") endif(WIN32) # build version.h from template -configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" - "${CMAKE_BINARY_DIR}/rtgui/version.h") +configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") # build AboutThisBuild.txt from template -configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" - "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") +configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") From a0b5cffff55629f4b6a369ea44aee8fa44122d7d Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 23 Feb 2020 20:42:11 -0800 Subject: [PATCH 279/453] re-re-reverting UpdateInfo.cmake --- UpdateInfo.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 287acff01..d1f532506 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -65,13 +65,13 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) endif() message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") From 6ccaf4aa5b299d4328364bf7d38bd212e0ae7dbf Mon Sep 17 00:00:00 2001 From: Benitoite Date: Sun, 23 Feb 2020 21:29:00 -0800 Subject: [PATCH 280/453] Tabs to spaces. --- UpdateInfo.cmake | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index d1f532506..c6f9d6ee3 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -65,13 +65,13 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) endif() message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") From e5ad02dd7b8eb864572316d12467e998d6852f91 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 24 Feb 2020 06:17:43 -0800 Subject: [PATCH 281/453] mac:xml-beautify plists --- tools/osx/Info.plist.in | 9 ++++----- tools/osx/rt.entitlements | 33 ++++++++++++++++----------------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/tools/osx/Info.plist.in b/tools/osx/Info.plist.in index ee11ba6d7..6970ed4da 100644 --- a/tools/osx/Info.plist.in +++ b/tools/osx/Info.plist.in @@ -1,5 +1,4 @@ - LSEnvironment @@ -38,7 +37,7 @@ ATSApplicationFontsPath etc/fonts LSMultipleInstancesProhibited - + LSMinimumSystemVersion @minimum_macos_version@ CFBundleDevelopmentRegion @@ -60,7 +59,7 @@ CFBundleTypeRole Editor LSIsAppleDefaultForType - + LSItemContentTypes com.rawtherapee.pp3 @@ -172,7 +171,7 @@ @arch@ NSHighResolutionCapable - + NSHumanReadableCopyright Copyright © 2004-2010 Gábor Horváth, 2010-2017 RawTherapee Development Team UTExportedTypeDeclarations @@ -203,4 +202,4 @@ - + \ No newline at end of file diff --git a/tools/osx/rt.entitlements b/tools/osx/rt.entitlements index 61422fae7..c571f1f41 100644 --- a/tools/osx/rt.entitlements +++ b/tools/osx/rt.entitlements @@ -1,20 +1,19 @@ - - - application-identifier - com.rawtherapee.RawTherapee - com.apple.security.temporary-exception.files.absolute-path.read-write - - / - - com.apple.security.cs.allow-dyld-environment-variables - - com.apple.security.files.user-selected.read-write - - com.apple.security.app-sandbox - - com.apple.security.files.downloads.read-write - - + + application-identifier + com.rawtherapee.RawTherapee + com.apple.security.temporary-exception.files.absolute-path.read-write + + / + + com.apple.security.cs.allow-dyld-environment-variables + + com.apple.security.files.user-selected.read-write + + com.apple.security.app-sandbox + + com.apple.security.files.downloads.read-write + + \ No newline at end of file From c7b4f6fc679c17c9ed897ccae9ff6c1c7c8d13ad Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 24 Feb 2020 10:31:47 -0800 Subject: [PATCH 282/453] mac:use of bash [[ instead of bsd [ --- tools/osx/macosx_bundle.sh | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 64738d283..063dde984 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -39,7 +39,7 @@ function ModifyInstallNames { msg "Modifying install names: ${x}" { # id - if [ ${x:(-6)} == ".dylib" ] || [ f${x:(-3)} == ".so" ]; then + if [[ ${x:(-6)} == ".dylib" ]] || [[ f${x:(-3)} == ".so" ]]; then install_name_tool -id /Applications/"${LIB}"/$(basename ${x}) ${x} fi GetDependencies "${x}" | while read -r y @@ -51,13 +51,13 @@ function ModifyInstallNames { } # Source check -if [[ ! -d "${CMAKE_BUILD_TYPE}" ]]; then +if [[ ! -d ${CMAKE_BUILD_TYPE} ]]; then msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." exit 1 fi # Update project version -if [[ -x "$(which git)" && -d "${PROJECT_SOURCE_DIR}/.git" ]]; then +if [[ -x $(which git) && -d ${PROJECT_SOURCE_DIR}/.git ]]; then ### This section is copied from tools/generateReleaseInfo # Get version description. # Depending on whether you checked out a branch (dev) or a tag (release), @@ -87,7 +87,7 @@ if [[ -x "$(which git)" && -d "${PROJECT_SOURCE_DIR}/.git" ]]; then fi MINIMUM_SYSTEM_VERSION="$(otool -l "${CMAKE_BUILD_TYPE}"/MacOS/rawtherapee | grep -A2 'LC_VERSION_MIN_MACOSX' | awk '$1 ~ /version/ { printf $2 }')" -if [[ -z "${MINIMUM_SYSTEM_VERSION}" ]]; then +if [[ -z ${MINIMUM_SYSTEM_VERSION} ]]; then MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" fi @@ -110,7 +110,7 @@ EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" FANCY_DMG="$(cmake .. -LA -N | grep "FANCY_DMG" | cut -d "=" -f2)" -if [[ -n ${FANCY_DMG} ]] ; then +if [[ -n ${FANCY_DMG} ]]; then echo "Fancy .dmg build is ON." fi @@ -262,7 +262,7 @@ ModifyInstallNames # fix @rpath in Frameworks msg "Registering @rpath in Frameworks folder." -for frameworklibs in "${LIB}"/*{dylib,so} ; do +for frameworklibs in "${LIB}"/*{dylib,so}; do install_name_tool -delete_rpath ${LOCAL_PREFIX}/local/lib "${frameworklibs}" install_name_tool -add_rpath /Applications/"${LIB}" "${frameworklibs}" done @@ -270,12 +270,12 @@ install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABL install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli # Codesign the app -if [ -n "${CODESIGNID}" ] ; then +if [[ -n ${CODESIGNID} ]]; then msg "Codesigning Application." install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements mv "${EXECUTABLE}"-cli "${LIB}" - for frameworklibs in "${LIB}"/* ; do + for frameworklibs in "${LIB}"/*; do codesign -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee --force --verbose -o runtime --timestamp "${frameworklibs}" done codesign --timestamp --strict -v -s "${CODESIGNID}" -i com.rawtherapee.RawTherapee -o runtime --entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements "${APP}" @@ -283,7 +283,7 @@ if [ -n "${CODESIGNID}" ] ; then fi # Notarize the app -if [ -n "$NOTARY" ] ; then +if [[ -n $NOTARY ]]; then msg "Notarizing the application:" ditto -c -k --sequesterRsrc --keepParent "${APP}" "${APP}.zip" uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee.RawTherapee" ${NOTARY} --file "${APP}.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` @@ -293,12 +293,12 @@ if [ -n "$NOTARY" ] ; then do fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` - if [ "$status1" = "success" ]; then + if [[ $status1 = "success" ]]; then xcrun stapler staple *app # staple the ticket xcrun stapler validate -v *app echo "Notarization success" break - elif [ "$status1" = "in" ]; then + elif [[ $status1 = "in" ]]; then echo "Notarization still in progress, sleeping for 15 seconds and trying again" sleep 15 else @@ -335,7 +335,7 @@ function CreateDmg { fi msg "Creating disk image:" - if [ ! -z ${FANCY_DMG} ] ; then + if [[ ! -z ${FANCY_DMG} ]]; then echo "Building Fancy .dmg" mkdir "${srcDir}/.background" cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg.icns" "${srcDir}/.VolumeIcon.icns" @@ -354,12 +354,12 @@ function CreateDmg { fi # Sign disk image - if [ -n "$CODESIGNID" ] ; then + if [[ -n $CODESIGNID ]]; then codesign --deep --force -v -s "${CODESIGNID}" --timestamp "${dmg_name}.dmg" fi # Notarize the dmg - if ! test -z "$NOTARY" ; then + if ! test -z "$NOTARY"; then msg "Notarizing the dmg:" zip "${dmg_name}.dmg.zip" "${dmg_name}.dmg" uuid=`xcrun altool --notarize-app --primary-bundle-id "com.rawtherapee" ${NOTARY} --file "${dmg_name}.dmg.zip" 2>&1 | grep 'RequestUUID' | awk '{ print $3 }'` @@ -369,12 +369,12 @@ function CreateDmg { do fullstatus=`xcrun altool --notarization-info "$uuid" ${NOTARY} 2>&1` # get the status status1=`echo "$fullstatus" | grep 'Status\:' | awk '{ print $2 }'` - if [ "$status1" = "success" ]; then + if [[ $status1 = "success" ]]; then xcrun stapler staple "${dmg_name}.dmg" # staple the ticket xcrun stapler validate -v "${dmg_name}.dmg" echo "dmg Notarization success" break - elif [ "$status1" = "in" ]; then + elif [[ $status1 = "in" ]]; then echo "dmg Notarization still in progress, sleeping for 15 seconds and trying again" sleep 15 else From 7ccf6304792fd80ea9249a948046267ce2dfce50 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 24 Feb 2020 11:17:48 -0800 Subject: [PATCH 283/453] mac:use of Bash substring removal --- tools/osx/macosx_bundle.sh | 41 +++++++++++++++++++++++++++----------- 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 063dde984..2352133a9 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -51,13 +51,13 @@ function ModifyInstallNames { } # Source check -if [[ ! -d ${CMAKE_BUILD_TYPE} ]]; then +if [[ ! -d $CMAKE_BUILD_TYPE ]]; then msgError "${PWD}/${CMAKE_BUILD_TYPE} folder does not exist. Please execute 'make install' first." exit 1 fi # Update project version -if [[ -x $(which git) && -d ${PROJECT_SOURCE_DIR}/.git ]]; then +if [[ -x $(which git) && -d $PROJECT_SOURCE_DIR/.git ]]; then ### This section is copied from tools/generateReleaseInfo # Get version description. # Depending on whether you checked out a branch (dev) or a tag (release), @@ -87,7 +87,7 @@ if [[ -x $(which git) && -d ${PROJECT_SOURCE_DIR}/.git ]]; then fi MINIMUM_SYSTEM_VERSION="$(otool -l "${CMAKE_BUILD_TYPE}"/MacOS/rawtherapee | grep -A2 'LC_VERSION_MIN_MACOSX' | awk '$1 ~ /version/ { printf $2 }')" -if [[ -z ${MINIMUM_SYSTEM_VERSION} ]]; then +if [[ -z $MINIMUM_SYSTEM_VERSION ]]; then MINIMUM_SYSTEM_VERSION="$(sw_vers -productVersion | cut -d. -f-2)" fi @@ -105,12 +105,29 @@ PWD: ${PWD} __EOS__ minimum_macos_version=${MINIMUM_SYSTEM_VERSION} -LOCAL_PREFIX="$(cmake .. -LA -N | grep "LOCAL_PREFIX" | cut -d "=" -f2)" -EXPATLIB="$(cmake .. -LA -N | grep "pkgcfg_lib_EXPAT_expat" | cut -d "=" -f2)" -CODESIGNID="$(cmake .. -LA -N | grep "CODESIGNID" | cut -d "=" -f2)" -NOTARY="$(cmake .. -LA -N | grep "NOTARY" | cut -d "=" -f2)" -FANCY_DMG="$(cmake .. -LA -N | grep "FANCY_DMG" | cut -d "=" -f2)" -if [[ -n ${FANCY_DMG} ]]; then + +# Retreive cached values from cmake + +#In: LOCAL_PREFIX:STRING=/opt +#Out: /opt +LOCAL_PREFIX="$(cmake .. -L -N | grep LOCAL_PREFIX)"; LOCAL_PREFIX="${LOCAL_PREFIX#*=}" + +#In: pkgcfg_lib_EXPAT_expat:FILEPATH=/opt/local/lib/libexpat.dylib +#Out: /opt/local/lib/libexpat.dylib +EXPATLIB="$(cmake .. -LA -N | grep pkgcfg_lib_EXPAT_expat)"; pkgcfg_lib_EXPAT_expat="${pkgcfg_lib_EXPAT_expat#*=}" + +#In: CODESIGNID:STRING=Developer ID Application: Doctor Who (1234567890) +#Out: Developer ID Application: Doctor Who (1234567890) +CODESIGNID="$(cmake .. -L -N | grep CODESIGNID)"; CODESIGNID="${CODESIGNID#*=}" + +#In: NOTARY:STRING=--username drwho@bbc.com --password abcd-efgh-hijk-lmno +#Out: --username drwho@bbc.com --password abcd-efgh-hijk-lmno +NOTARY="$(cmake .. -L -N | grep NOTARY)"; NOTARY="${NOTARY#*=}" + +# In: FANCY_DMG:BOOL=ON +# Out: ON +FANCY_DMG="$(cmake .. -L -N | grep FANCY_DMG)"; FANCY_DMG="${FANCY_DMG#*=}" +if [[ -n $FANCY_DMG ]]; then echo "Fancy .dmg build is ON." fi @@ -270,7 +287,7 @@ install_name_tool -delete_rpath RawTherapee.app/Contents/Frameworks "${EXECUTABL install_name_tool -add_rpath @executable_path "${EXECUTABLE}"-cli # Codesign the app -if [[ -n ${CODESIGNID} ]]; then +if [[ -n $CODESIGNID ]]; then msg "Codesigning Application." install -m 0644 "${PROJECT_SOURCE_DATA_DIR}"/rt.entitlements "${CMAKE_BUILD_TYPE}"/rt.entitlements plutil -convert binary1 "${CMAKE_BUILD_TYPE}"/rt.entitlements @@ -330,12 +347,12 @@ function CreateDmg { # Disk image name dmg_name="${PROJECT_NAME// /_}_OSX_${MINIMUM_SYSTEM_VERSION}_${PROC_BIT_DEPTH}_${PROJECT_FULL_VERSION}" lower_build_type="$(tr '[:upper:]' '[:lower:]' <<< "$CMAKE_BUILD_TYPE")" - if [[ ${lower_build_type} != release ]]; then + if [[ $lower_build_type != release ]]; then dmg_name="${dmg_name}_${lower_build_type}" fi msg "Creating disk image:" - if [[ ! -z ${FANCY_DMG} ]]; then + if [[ ! -z $FANCY_DMG ]]; then echo "Building Fancy .dmg" mkdir "${srcDir}/.background" cp -R "${PROJECT_SOURCE_DATA_DIR}/rtdmg.icns" "${srcDir}/.VolumeIcon.icns" From 87136185ec985adbc3450ad54b670fdcf4bc2540 Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 24 Feb 2020 11:31:46 -0800 Subject: [PATCH 284/453] try git rm on UpdateInfo.cmake --- UpdateInfo.cmake | 110 ----------------------------------------------- 1 file changed, 110 deletions(-) delete mode 100644 UpdateInfo.cmake diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake deleted file mode 100644 index c6f9d6ee3..000000000 --- a/UpdateInfo.cmake +++ /dev/null @@ -1,110 +0,0 @@ -# cmakefile executed within a makefile target - -# If we find ReleaseInfo.cmake we use the info from there and don't need Git to be installed -find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) -if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) - # we look for the git command in this paths by order of preference - if(WIN32) - find_program(GIT_CMD git.exe HINTS ENV Path PATH_SUFFIXES ../) - elseif(APPLE) - find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") - find_program(GIT_CMD git) - set(SHELL "/bin/bash") - else(WIN32) # Linux - find_program(GIT_CMD git) - set(SHELL "/bin/bash") - endif(WIN32) - - # Fail if Git is not installed - if(GIT_CMD STREQUAL GIT_CMD-NOTFOUND) - message(FATAL_ERROR "git command not found!") - else() - message(STATUS "git command found: ${GIT_CMD}") - endif() - - # Get version description. - # Depending on whether you checked out a branch (dev) or a tag (release), - # "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. - execute_process(COMMAND ${GIT_CMD} describe --tags --always OUTPUT_VARIABLE GIT_DESCRIBE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - - # Get branch name. - # Will return empty if you checked out a commit or tag. Empty string handled later. - execute_process(COMMAND ${GIT_CMD} symbolic-ref --short -q HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - - # Get commit hash. - execute_process(COMMAND ${GIT_CMD} rev-parse --short --verify HEAD OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - - # Get commit date, YYYY-MM-DD. - execute_process(COMMAND ${GIT_CMD} show -s --format=%cd --date=format:%Y-%m-%d OUTPUT_VARIABLE GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - - # Get number of commits since tagging. This is what "GIT_DESCRIBE" uses. - # Works when checking out branch, tag or commit. - # Get a list of all tags in repo: - execute_process(COMMAND ${GIT_CMD} tag --merged HEAD OUTPUT_VARIABLE GIT_TAG WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - # Replace newlines with semicolons so that it can be split: - string(REPLACE "\n" ";" GIT_TAG_LIST "${GIT_TAG}") - execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not ${GIT_TAG_LIST} OUTPUT_VARIABLE GIT_COMMITS_SINCE_TAG OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - - # Get number of commits since branching. - # Works when checking out branch, tag or commit. - execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") - - # If user checked-out something which is not a branch, use the description as branch name. - if(GIT_BRANCH STREQUAL "") - set(GIT_BRANCH "${GIT_DESCRIBE}") - endif() - - # Create numeric version. - # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. - # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). - if(GIT_COMMITS_SINCE_TAG STREQUAL "") - set(GIT_NUMERIC_VERSION_BS "0.0.0") - else() - string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) - set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") - endif() - - message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") - - if(NOT DEFINED CACHE_NAME_SUFFIX) - set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") - message(STATUS "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"") - else() - message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") - endif() - -else(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) - include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake") -endif(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) - -if(WIN32) - if(BIT_DEPTH EQUAL 4) - set(BUILD_BIT_DEPTH 32) - # 32 bits builds has to be installable on 64 bits system, to support WinXP/64. - set(ARCHITECTURE_ALLOWED "x86 x64 ia64") - # installing in 32 bits mode even on 64 bits OS and architecture - set(INSTALL_MODE "") - elseif(BIT_DEPTH EQUAL 8) - set(BUILD_BIT_DEPTH 64) - # Restricting the 64 bits builds to 64 bits systems only - set(ARCHITECTURE_ALLOWED "x64 ia64") - # installing in 64 bits mode for all 64 bits processors, even for itanium architecture - set(INSTALL_MODE "x64 ia64") - endif(BIT_DEPTH EQUAL 4) - # set part of the output archive name - set(SYSTEM_NAME "WinVista") - - configure_file("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") -endif(WIN32) - -# build version.h from template -configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") -# build AboutThisBuild.txt from template -configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") From 52172a1b6a7150e5145efb8b4308799b54eb15ef Mon Sep 17 00:00:00 2001 From: Richard Barber Date: Mon, 24 Feb 2020 11:34:11 -0800 Subject: [PATCH 285/453] copy UpdateInfo.cmake from fresh clone --- UpdateInfo.cmake | 110 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 UpdateInfo.cmake diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake new file mode 100644 index 000000000..d1f532506 --- /dev/null +++ b/UpdateInfo.cmake @@ -0,0 +1,110 @@ +# cmakefile executed within a makefile target + +# If we find ReleaseInfo.cmake we use the info from there and don't need Git to be installed +find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) +if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) + # we look for the git command in this paths by order of preference + if(WIN32) + find_program(GIT_CMD git.exe HINTS ENV Path PATH_SUFFIXES ../) + elseif(APPLE) + find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") + find_program(GIT_CMD git) + set(SHELL "/bin/bash") + else(WIN32) # Linux + find_program(GIT_CMD git) + set(SHELL "/bin/bash") + endif(WIN32) + + # Fail if Git is not installed + if(GIT_CMD STREQUAL GIT_CMD-NOTFOUND) + message(FATAL_ERROR "git command not found!") + else() + message(STATUS "git command found: ${GIT_CMD}") + endif() + + # Get version description. + # Depending on whether you checked out a branch (dev) or a tag (release), + # "git describe" will return "5.0-gtk2-2-g12345678" or "5.0-gtk2", respectively. + execute_process(COMMAND ${GIT_CMD} describe --tags --always OUTPUT_VARIABLE GIT_DESCRIBE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + + # Get branch name. + # Will return empty if you checked out a commit or tag. Empty string handled later. + execute_process(COMMAND ${GIT_CMD} symbolic-ref --short -q HEAD OUTPUT_VARIABLE GIT_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + + # Get commit hash. + execute_process(COMMAND ${GIT_CMD} rev-parse --short --verify HEAD OUTPUT_VARIABLE GIT_COMMIT OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + + # Get commit date, YYYY-MM-DD. + execute_process(COMMAND ${GIT_CMD} show -s --format=%cd --date=format:%Y-%m-%d OUTPUT_VARIABLE GIT_COMMIT_DATE OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + + # Get number of commits since tagging. This is what "GIT_DESCRIBE" uses. + # Works when checking out branch, tag or commit. + # Get a list of all tags in repo: + execute_process(COMMAND ${GIT_CMD} tag --merged HEAD OUTPUT_VARIABLE GIT_TAG WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + # Replace newlines with semicolons so that it can be split: + string(REPLACE "\n" ";" GIT_TAG_LIST "${GIT_TAG}") + execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not ${GIT_TAG_LIST} OUTPUT_VARIABLE GIT_COMMITS_SINCE_TAG OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + + # Get number of commits since branching. + # Works when checking out branch, tag or commit. + execute_process(COMMAND ${GIT_CMD} rev-list --count HEAD --not --tags OUTPUT_VARIABLE GIT_COMMITS_SINCE_BRANCH OUTPUT_STRIP_TRAILING_WHITESPACE WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}") + + # If user checked-out something which is not a branch, use the description as branch name. + if(GIT_BRANCH STREQUAL "") + set(GIT_BRANCH "${GIT_DESCRIBE}") + endif() + + # Create numeric version. + # This version is nonsense, either don't use it at all or use it only where you have no other choice, e.g. Inno Setup's VersionInfoVersion. + # Strip everything after hyphen, e.g. "5.0-gtk2" -> "5.0", "5.1-rc1" -> "5.1" (ergo BS). + if(GIT_COMMITS_SINCE_TAG STREQUAL "") + set(GIT_NUMERIC_VERSION_BS "0.0.0") + else() + string(REGEX REPLACE "-.*" "" GIT_NUMERIC_VERSION_BS ${GIT_DESCRIBE}) + set(GIT_NUMERIC_VERSION_BS "${GIT_NUMERIC_VERSION_BS}.${GIT_COMMITS_SINCE_TAG}") + endif() + + message(STATUS "Git checkout information:") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + + if(NOT DEFINED CACHE_NAME_SUFFIX) + set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") + message(STATUS "CACHE_NAME_SUFFIX was not defined, it is now \"${CACHE_NAME_SUFFIX}\"") + else() + message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") + endif() + +else(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) + include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake") +endif(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) + +if(WIN32) + if(BIT_DEPTH EQUAL 4) + set(BUILD_BIT_DEPTH 32) + # 32 bits builds has to be installable on 64 bits system, to support WinXP/64. + set(ARCHITECTURE_ALLOWED "x86 x64 ia64") + # installing in 32 bits mode even on 64 bits OS and architecture + set(INSTALL_MODE "") + elseif(BIT_DEPTH EQUAL 8) + set(BUILD_BIT_DEPTH 64) + # Restricting the 64 bits builds to 64 bits systems only + set(ARCHITECTURE_ALLOWED "x64 ia64") + # installing in 64 bits mode for all 64 bits processors, even for itanium architecture + set(INSTALL_MODE "x64 ia64") + endif(BIT_DEPTH EQUAL 4) + # set part of the output archive name + set(SYSTEM_NAME "WinVista") + + configure_file("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") +endif(WIN32) + +# build version.h from template +configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") +# build AboutThisBuild.txt from template +configure_file("${PROJECT_SOURCE_DIR}/AboutThisBuild.txt.in" "${CMAKE_BINARY_DIR}/AboutThisBuild.txt") From d4fc4dc083b59165f5ae731099472406dc734105 Mon Sep 17 00:00:00 2001 From: rom9 <4711834+rom9@users.noreply.github.com> Date: Mon, 24 Feb 2020 21:00:51 +0100 Subject: [PATCH 286/453] Added new "Preprocess WB" parameter in the Raw toolpanel, just below "Raw White Points" tool. Allows to choose between "Camera" and "Auto" (average-based) raw channel multipliers, and to apply custom compesation factors. Fixes #5616 --- rtdata/languages/default | 9 +++ rtengine/procparams.cc | 40 ++++++++++ rtengine/procparams.h | 18 +++++ rtengine/rawimagesource.cc | 45 +++++++---- rtgui/CMakeLists.txt | 1 + rtgui/paramsedited.cc | 23 ++++++ rtgui/paramsedited.h | 10 +++ rtgui/partialpastedlg.cc | 13 +++ rtgui/partialpastedlg.h | 2 + rtgui/preprocesswb.cc | 158 +++++++++++++++++++++++++++++++++++++ rtgui/preprocesswb.h | 52 ++++++++++++ rtgui/toolpanelcoord.cc | 5 ++ rtgui/toolpanelcoord.h | 2 + 13 files changed, 361 insertions(+), 17 deletions(-) create mode 100644 rtgui/preprocesswb.cc create mode 100644 rtgui/preprocesswb.h diff --git a/rtdata/languages/default b/rtdata/languages/default index 922c50c51..0682cc902 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -776,6 +776,8 @@ HISTORY_MSG_PDSHARPEN_RADIUS_BOOST;CS - Corner radius boost HISTORY_MSG_PIXELSHIFT_DEMOSAIC;PS - Demosaic method for motion HISTORY_MSG_PREPROCESS_LINEDENOISE_DIRECTION;Line noise filter direction HISTORY_MSG_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +HISTORY_MSG_PREPROCWB_MODE;Preprocess WB Mode +HISTORY_MSG_PREPROCWB_MULTS;Preprocess WB Comp. HISTORY_MSG_PRSHARPEN_CONTRAST;PRS - Contrast threshold HISTORY_MSG_RAWCACORR_AUTOIT;Raw CA Correction - Iterations HISTORY_MSG_RAWCACORR_COLORSHIFT;Raw CA Correction - Avoid color shift @@ -1020,6 +1022,7 @@ PARTIALPASTE_PREPROCESS_GREENEQUIL;Green equilibration PARTIALPASTE_PREPROCESS_HOTPIXFILT;Hot pixel filter PARTIALPASTE_PREPROCESS_LINEDENOISE;Line noise filter PARTIALPASTE_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +PARTIALPASTE_PREPROCWB;Preprocess White Balance PARTIALPASTE_PRSHARPENING;Post-resize sharpening PARTIALPASTE_RAWCACORR_AUTO;CA auto-correction PARTIALPASTE_RAWCACORR_AVOIDCOLORSHIFT;CA avoid color shift @@ -1826,6 +1829,12 @@ TP_PREPROCESS_LINEDENOISE_DIRECTION_PDAF_LINES;Horizontal only on PDAF rows TP_PREPROCESS_LINEDENOISE_DIRECTION_VERTICAL;Vertical TP_PREPROCESS_NO_FOUND;None found TP_PREPROCESS_PDAFLINESFILTER;PDAF lines filter +TP_PREPROCWB_BLUE;Blue compensation +TP_PREPROCWB_LABEL;Preprocess White Balance +TP_PREPROCWB_MODE;Mode +TP_PREPROCWB_MODE_AUTO;Auto +TP_PREPROCWB_MODE_CAMERA;Camera +TP_PREPROCWB_RED;Red compensation TP_PRSHARPENING_LABEL;Post-Resize Sharpening TP_PRSHARPENING_TOOLTIP;Sharpens the image after resizing. Only works when the "Lanczos" resizing method is used. It is impossible to preview the effects of this tool. See RawPedia for usage instructions. TP_RAWCACORR_AUTO;Auto-correction diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index f6b139550..4cabe59af 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -2735,6 +2735,28 @@ Glib::ustring RAWParams::XTransSensor::getMethodString(Method method) return getMethodStrings()[toUnderlying(method)]; } + +RAWParams::PreprocessWB::PreprocessWB() : + mode(Mode::AUTO), + red(1.0), + blue(1.0) +{ +} + +bool RAWParams::PreprocessWB::operator ==(const PreprocessWB& other) const +{ + return + mode == other.mode + && red == other.red + && blue == other.blue; +} + +bool RAWParams::PreprocessWB::operator !=(const PreprocessWB& other) const +{ + return !(*this == other); +} + + RAWParams::RAWParams() : df_autoselect(false), ff_AutoSelect(false), @@ -2773,6 +2795,7 @@ bool RAWParams::operator ==(const RAWParams& other) const && cared == other.cared && cablue == other.cablue && expos == other.expos + && preprocessWB == other.preprocessWB && hotPixelFilter == other.hotPixelFilter && deadPixelFilter == other.deadPixelFilter && hotdeadpix_thresh == other.hotdeadpix_thresh; @@ -3691,6 +3714,11 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->filmNegative.greenExp, "Film Negative", "GreenExponent", filmNegative.greenExp, keyFile); saveToKeyfile(!pedited || pedited->filmNegative.blueRatio, "Film Negative", "BlueRatio", filmNegative.blueRatio, keyFile); +// Preprocess WB + saveToKeyfile(!pedited || pedited->raw.preprocessWB.mode, "RAW Preprocess WB", "Mode", toUnderlying(raw.preprocessWB.mode), keyFile); + saveToKeyfile(!pedited || pedited->raw.preprocessWB.red, "RAW Preprocess WB", "RedMult", raw.preprocessWB.red, keyFile); + saveToKeyfile(!pedited || pedited->raw.preprocessWB.blue, "RAW Preprocess WB", "BlueMult", raw.preprocessWB.blue, keyFile); + // EXIF change list if (!pedited || pedited->exif) { for (ExifPairs::const_iterator i = exif.begin(); i != exif.end(); ++i) { @@ -5259,6 +5287,18 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Film Negative", "BlueRatio", pedited, filmNegative.blueRatio, pedited->filmNegative.blueRatio); } + if (keyFile.has_group("RAW Preprocess WB")) { + if (keyFile.has_key("RAW Preprocess WB", "Mode")) { + raw.preprocessWB.mode = RAWParams::PreprocessWB::Mode(keyFile.get_integer("RAW Preprocess WB", "Mode")); + + if (pedited) { + pedited->raw.preprocessWB.mode = true; + } + } + assignFromKeyfile(keyFile, "RAW Preprocess WB", "Red" , pedited, raw.preprocessWB.red, pedited->raw.preprocessWB.red); + assignFromKeyfile(keyFile, "RAW Preprocess WB", "Blue" , pedited, raw.preprocessWB.blue, pedited->raw.preprocessWB.blue); + } + if (keyFile.has_group("MetaData")) { int mode = int(MetaDataParams::TUNNEL); assignFromKeyfile(keyFile, "MetaData", "Mode", pedited, mode, pedited->metadata.mode); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 0b6b2dc46..6a60c48be 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -1507,6 +1507,24 @@ struct RAWParams { // exposure before interpolation double expos; + struct PreprocessWB { + enum class Mode { + CAMERA = 0, + AUTO + }; + + Mode mode; + double red; + double blue; + + PreprocessWB(); + + bool operator ==(const PreprocessWB& other) const; + bool operator !=(const PreprocessWB& other) const; + }; + + PreprocessWB preprocessWB; + bool hotPixelFilter; bool deadPixelFilter; int hotdeadpix_thresh; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index fcc85f2c6..a029f0797 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -1161,25 +1161,8 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) double cam_b = imatrices.rgb_cam[2][0] * camwb_red + imatrices.rgb_cam[2][1] * camwb_green + imatrices.rgb_cam[2][2] * camwb_blue; camera_wb = ColorTemp (cam_r, cam_g, cam_b, 1.); // as shot WB - ColorTemp ReferenceWB; - double ref_r, ref_g, ref_b; - { - // ...then we re-get the constants but now with auto which gives us better demosaicing and CA auto-correct - // performance for strange white balance settings (such as UniWB) - ri->get_colorsCoeff( ref_pre_mul, scale_mul, c_black, true); - refwb_red = ri->get_pre_mul(0) / ref_pre_mul[0]; - refwb_green = ri->get_pre_mul(1) / ref_pre_mul[1]; - refwb_blue = ri->get_pre_mul(2) / ref_pre_mul[2]; - initialGain = max(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); - ref_r = imatrices.rgb_cam[0][0] * refwb_red + imatrices.rgb_cam[0][1] * refwb_green + imatrices.rgb_cam[0][2] * refwb_blue; - ref_g = imatrices.rgb_cam[1][0] * refwb_red + imatrices.rgb_cam[1][1] * refwb_green + imatrices.rgb_cam[1][2] * refwb_blue; - ref_b = imatrices.rgb_cam[2][0] * refwb_red + imatrices.rgb_cam[2][1] * refwb_green + imatrices.rgb_cam[2][2] * refwb_blue; - ReferenceWB = ColorTemp (ref_r, ref_g, ref_b, 1.); - } - if (settings->verbose) { printf("Raw As Shot White balance: temp %f, tint %f\n", camera_wb.getTemp(), camera_wb.getGreen()); - printf("Raw Reference (auto) white balance: temp %f, tint %f, multipliers [%f %f %f | %f %f %f]\n", ReferenceWB.getTemp(), ReferenceWB.getGreen(), ref_r, ref_g, ref_b, refwb_red, refwb_blue, refwb_green); } /*{ @@ -1249,6 +1232,34 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le MyTime t1, t2; t1.set(); + { + // Recalculate the scaling coefficients, using auto WB if selected in the Preprocess WB param. + // Auto WB gives us better demosaicing and CA auto-correct performance for strange white balance settings (such as UniWB) + ri->get_colorsCoeff( ref_pre_mul, scale_mul, c_black, raw.preprocessWB.mode == RAWParams::PreprocessWB::Mode::AUTO); + + // Apply custom compensation factors as specified in params + const auto ppwb = raw.preprocessWB; + ref_pre_mul[0] *= ppwb.red; + ref_pre_mul[2] *= ppwb.blue; + scale_mul[0] *= ppwb.red; + scale_mul[2] *= ppwb.blue; + + refwb_red = ri->get_pre_mul(0) / ref_pre_mul[0]; + refwb_green = ri->get_pre_mul(1) / ref_pre_mul[1]; + refwb_blue = ri->get_pre_mul(2) / ref_pre_mul[2]; + initialGain = max(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); + + const double ref_r = imatrices.rgb_cam[0][0] * refwb_red + imatrices.rgb_cam[0][1] * refwb_green + imatrices.rgb_cam[0][2] * refwb_blue; + const double ref_g = imatrices.rgb_cam[1][0] * refwb_red + imatrices.rgb_cam[1][1] * refwb_green + imatrices.rgb_cam[1][2] * refwb_blue; + const double ref_b = imatrices.rgb_cam[2][0] * refwb_red + imatrices.rgb_cam[2][1] * refwb_green + imatrices.rgb_cam[2][2] * refwb_blue; + const ColorTemp ReferenceWB = ColorTemp (ref_r, ref_g, ref_b, 1.); + + if (settings->verbose) { + printf("Raw Reference white balance: temp %f, tint %f, multipliers [%f %f %f | %f %f %f]\n", ReferenceWB.getTemp(), ReferenceWB.getGreen(), ref_r, ref_g, ref_b, refwb_red, refwb_blue, refwb_green); + } + } + + Glib::ustring newDF = raw.dark_frame; RawImage *rid = nullptr; diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 4b21ce421..56c3dc461 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -113,6 +113,7 @@ set(NONCLISOURCEFILES popuptogglebutton.cc preferences.cc preprocess.cc + preprocesswb.cc previewhandler.cc previewloader.cc previewmodepanel.cc diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index d41bd472c..c824eaaa5 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -595,6 +595,9 @@ void ParamsEdited::set(bool v) filmNegative.redRatio = v; filmNegative.greenExp = v; filmNegative.blueRatio = v; + raw.preprocessWB.mode = v; + raw.preprocessWB.red = v; + raw.preprocessWB.blue = v; exif = v; iptc = v; @@ -1169,6 +1172,9 @@ void ParamsEdited::initFrom(const std::vector& filmNegative.redRatio = filmNegative.redRatio && p.filmNegative.redRatio == other.filmNegative.redRatio; filmNegative.greenExp = filmNegative.greenExp && p.filmNegative.greenExp == other.filmNegative.greenExp; filmNegative.blueRatio = filmNegative.blueRatio && p.filmNegative.blueRatio == other.filmNegative.blueRatio; + raw.preprocessWB.mode = raw.preprocessWB.mode && p.raw.preprocessWB.mode == other.raw.preprocessWB.mode; + raw.preprocessWB.red = raw.preprocessWB.red && p.raw.preprocessWB.red == other.raw.preprocessWB.red; + raw.preprocessWB.blue = raw.preprocessWB.blue && p.raw.preprocessWB.blue == other.raw.preprocessWB.blue; // How the hell can we handle that??? // exif = exif && p.exif==other.exif @@ -3262,6 +3268,18 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.filmNegative.blueRatio = mods.filmNegative.blueRatio; } + if (raw.preprocessWB.mode) { + toEdit.raw.preprocessWB.mode = mods.raw.preprocessWB.mode; + } + + if (raw.preprocessWB.red) { + toEdit.raw.preprocessWB.red = mods.raw.preprocessWB.red; + } + + if (raw.preprocessWB.blue) { + toEdit.raw.preprocessWB.blue = mods.raw.preprocessWB.blue; + } + // Exif changes are added to the existing ones if (exif) { for (procparams::ExifPairs::const_iterator i = mods.exif.begin(); i != mods.exif.end(); ++i) { @@ -3314,4 +3332,9 @@ bool FilmNegativeParamsEdited::isUnchanged() const bool CaptureSharpeningParamsEdited::isUnchanged() const { return enabled && contrast && autoContrast && autoRadius && deconvradius && deconvradiusOffset && deconviter && deconvitercheck; +} + +bool RAWParamsEdited::PreprocessWBParamsEdited::isUnchanged() const +{ + return mode && red && blue; } \ No newline at end of file diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 153dd7bb6..1cdaf83d5 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -686,6 +686,16 @@ struct RAWParamsEdited { bool ff_clipControl; bool exPos; + struct PreprocessWBParamsEdited { + bool mode; + bool red; + bool blue; + + bool isUnchanged() const; + }; + + PreprocessWBParamsEdited preprocessWB; + bool isUnchanged() const; }; diff --git a/rtgui/partialpastedlg.cc b/rtgui/partialpastedlg.cc index 22f608ae4..f74d40e4e 100644 --- a/rtgui/partialpastedlg.cc +++ b/rtgui/partialpastedlg.cc @@ -138,6 +138,8 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren filmNegative = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_FILMNEGATIVE")) ); //--- captureSharpening = Gtk::manage (new Gtk::CheckButton (M("TP_PDSHARPENING_LABEL")) ); + //--- + raw_preprocwb = Gtk::manage (new Gtk::CheckButton (M("PARTIALPASTE_PREPROCWB"))); Gtk::VBox* vboxes[8]; Gtk::HSeparator* hseps[8]; @@ -240,6 +242,7 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); vboxes[7]->pack_start (*raw_expos, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*raw_black, Gtk::PACK_SHRINK, 2); + vboxes[7]->pack_start (*raw_preprocwb, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*Gtk::manage (new Gtk::HSeparator ()), Gtk::PACK_SHRINK, 0); vboxes[7]->pack_start (*df_file, Gtk::PACK_SHRINK, 2); vboxes[7]->pack_start (*df_AutoSelect, Gtk::PACK_SHRINK, 2); @@ -407,6 +410,8 @@ PartialPasteDlg::PartialPasteDlg (const Glib::ustring &title, Gtk::Window* paren filmNegativeConn = filmNegative->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); //--- captureSharpeningConn = captureSharpening->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); + //--- + raw_preprocwbConn = raw_preprocwb->signal_toggled().connect (sigc::bind (sigc::mem_fun(*raw, &Gtk::CheckButton::set_inconsistent), true)); add_button (M("GENERAL_OK"), Gtk::RESPONSE_OK); add_button (M("GENERAL_CANCEL"), Gtk::RESPONSE_CANCEL); @@ -480,6 +485,7 @@ void PartialPasteDlg::rawToggled () ConnectionBlocker raw_ca_avoid_colourshiftBlocker(raw_ca_avoid_colourshiftconn); ConnectionBlocker filmNegativeBlocker(filmNegativeConn); ConnectionBlocker captureSharpeningBlocker(captureSharpeningConn); + ConnectionBlocker raw_preprocwbBlocker(raw_preprocwbConn); raw->set_inconsistent (false); @@ -510,6 +516,7 @@ void PartialPasteDlg::rawToggled () raw_ca_avoid_colourshift->set_active (raw->get_active ()); filmNegative->set_active (raw->get_active()); captureSharpening->set_active (raw->get_active()); + raw_preprocwb->set_active (raw->get_active()); } void PartialPasteDlg::basicToggled () @@ -999,6 +1006,12 @@ void PartialPasteDlg::applyPaste (rtengine::procparams::ProcParams* dstPP, Param filterPE.pdsharpening.deconvitercheck = falsePE.pdsharpening.deconvitercheck; } + if (!raw_preprocwb->get_active ()) { + filterPE.raw.preprocessWB.mode = falsePE.raw.preprocessWB.mode; + filterPE.raw.preprocessWB.red = falsePE.raw.preprocessWB.red; + filterPE.raw.preprocessWB.blue = falsePE.raw.preprocessWB.blue; + } + if (dstPE) { *dstPE = filterPE; } diff --git a/rtgui/partialpastedlg.h b/rtgui/partialpastedlg.h index 75e18e83c..e835ec779 100644 --- a/rtgui/partialpastedlg.h +++ b/rtgui/partialpastedlg.h @@ -142,6 +142,7 @@ public: Gtk::CheckButton* filmNegative; Gtk::CheckButton* captureSharpening; + Gtk::CheckButton* raw_preprocwb; sigc::connection everythingConn, basicConn, detailConn, colorConn, lensConn, compositionConn, metaConn, rawConn, advancedConn; @@ -155,6 +156,7 @@ public: sigc::connection raw_caredblueConn, raw_ca_autocorrectConn, raw_ca_avoid_colourshiftconn, raw_hotpix_filtConn, raw_deadpix_filtConn, raw_pdaf_lines_filterConn, raw_linenoiseConn, raw_greenthreshConn, raw_ccStepsConn, raw_methodConn, raw_borderConn, raw_imagenumConn, raw_dcb_iterationsConn, raw_lmmse_iterationsConn, raw_pixelshiftConn, raw_dcb_enhanceConn, raw_exposConn, raw_blackConn; sigc::connection filmNegativeConn; sigc::connection captureSharpeningConn; + sigc::connection raw_preprocwbConn; public: PartialPasteDlg (const Glib::ustring &title, Gtk::Window* parent); diff --git a/rtgui/preprocesswb.cc b/rtgui/preprocesswb.cc new file mode 100644 index 000000000..1f54f7672 --- /dev/null +++ b/rtgui/preprocesswb.cc @@ -0,0 +1,158 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2020 Alberto Romei + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#include + +#include "preprocesswb.h" +#include "eventmapper.h" + +#include "guiutils.h" +#include "options.h" + +#include "../rtengine/procparams.h" + +using namespace rtengine; +using namespace rtengine::procparams; + +PreprocessWB::PreprocessWB() : + FoldableToolPanel(this, "preprocesswb", M("TP_PREPROCWB_LABEL")), + evPreprocessWBMode(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_PREPROCWB_MODE")), + evPreprocessWBMults(ProcEventMapper::getInstance()->newEvent(FIRST, "HISTORY_MSG_PREPROCWB_MULTS")), + mode(Gtk::manage(new MyComboBoxText())), + red(Gtk::manage(new Adjuster(M("TP_PREPROCWB_RED"), 0.05, 20.0, 0.01, 1))), + blue(Gtk::manage(new Adjuster(M("TP_PREPROCWB_BLUE"), 0.05, 20.0, 0.01, 1))) +{ + Gtk::HBox *hb = Gtk::manage(new Gtk::HBox()); + hb->pack_start(*Gtk::manage(new Gtk::Label(M("TP_PREPROCWB_MODE") + ": ")), Gtk::PACK_SHRINK, 0); + + mode->append(M("TP_PREPROCWB_MODE_CAMERA")); + mode->append(M("TP_PREPROCWB_MODE_AUTO")); + + hb->pack_start(*mode); + + mode->set_active(0); + mode->signal_changed().connect(sigc::mem_fun(*this, &PreprocessWB::modeChanged)); + + red->setAdjusterListener(this); + blue->setAdjusterListener(this); + + red->setLogScale(8, 1, true); + blue->setLogScale(8, 1, true); + + if (red->delay < options.adjusterMaxDelay) { + red->delay = options.adjusterMaxDelay; + } + + if (blue->delay < options.adjusterMaxDelay) { + blue->delay = options.adjusterMaxDelay; + } + + mode->show(); + red->show(); + blue->show(); + + pack_start(*hb, Gtk::PACK_SHRINK, 4); + pack_start(*red, Gtk::PACK_SHRINK, 4); + pack_start(*blue, Gtk::PACK_SHRINK, 4); +} + +void PreprocessWB::read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited) +{ + disableListener(); + + if (pedited) { + red->setEditedState(pedited->raw.preprocessWB.red ? Edited : UnEdited); + blue->setEditedState(pedited->raw.preprocessWB.blue ? Edited : UnEdited); + } + + mode->set_active(int(pp->raw.preprocessWB.mode)); + red->setValue(pp->raw.preprocessWB.red); + blue->setValue(pp->raw.preprocessWB.blue); + + enableListener(); +} + +void PreprocessWB::write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited) +{ + if (mode->get_active_row_number() != 2) { + pp->raw.preprocessWB.mode = RAWParams::PreprocessWB::Mode(mode->get_active_row_number()); + } + + pp->raw.preprocessWB.red = red->getValue(); + pp->raw.preprocessWB.blue = blue->getValue(); + + if (pedited) { + pedited->raw.preprocessWB.mode = mode->get_active_row_number() != 2; // UNCHANGED entry, see setBatchMode + pedited->raw.preprocessWB.red = red->getEditedState(); + pedited->raw.preprocessWB.blue = blue->getEditedState(); + } + +} + +void PreprocessWB::adjusterChanged(Adjuster* a, double newval) +{ + if (listener) { + listener->panelChanged(evPreprocessWBMults, Glib::ustring::compose( + "R/G=%1 ; B/G=%2", red->getValue(), blue->getValue())); + } +} + +void PreprocessWB::setBatchMode(bool batchMode) +{ + ToolPanel::setBatchMode(batchMode); + + if (batchMode) { + mode->append(M("GENERAL_UNCHANGED")); + mode->set_active_text(M("GENERAL_UNCHANGED")); + red->showEditedCB(); + blue->showEditedCB(); + } +} + +void PreprocessWB::setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited) +{ + red->setDefault(defParams->raw.preprocessWB.red); + blue->setDefault(defParams->raw.preprocessWB.blue); + + if (pedited) { + red->setDefaultEditedState(pedited->raw.preprocessWB.red ? Edited : UnEdited); + blue->setDefaultEditedState(pedited->raw.preprocessWB.blue ? Edited : UnEdited); + } else { + red->setDefaultEditedState(Irrelevant); + blue->setDefaultEditedState(Irrelevant); + } +} + +void PreprocessWB::setAdjusterBehavior(bool add) +{ + red->setAddMode(add); + blue->setAddMode(add); +} + +void PreprocessWB::trimValues(rtengine::procparams::ProcParams* pp) +{ + red->trimValue(pp->raw.preprocessWB.red); + blue->trimValue(pp->raw.preprocessWB.blue); +} + +void PreprocessWB::modeChanged() +{ + if (listener) { + listener->panelChanged(evPreprocessWBMode, mode->get_active_text()); + } +} diff --git a/rtgui/preprocesswb.h b/rtgui/preprocesswb.h new file mode 100644 index 000000000..2aabf13d8 --- /dev/null +++ b/rtgui/preprocesswb.h @@ -0,0 +1,52 @@ +/* + * This file is part of RawTherapee. + * + * Copyright (c) 2020 Alberto Romei + * + * RawTherapee is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * RawTherapee is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with RawTherapee. If not, see . + */ +#pragma once + +#include + +#include "adjuster.h" +#include "toolpanel.h" + +class PreprocessWB final: + public ToolParamBlock, + public AdjusterListener, + public FoldableToolPanel +{ + +private: + const rtengine::ProcEvent evPreprocessWBMode, evPreprocessWBMults; + + MyComboBoxText* mode; + + Adjuster* red; + Adjuster* blue; + +public: + + PreprocessWB(); + + void read(const rtengine::procparams::ProcParams* pp, const ParamsEdited* pedited = nullptr) override; + void write(rtengine::procparams::ProcParams* pp, ParamsEdited* pedited = nullptr) override; + void setBatchMode(bool batchMode) override; + void setDefaults(const rtengine::procparams::ProcParams* defParams, const ParamsEdited* pedited = nullptr) override; + void adjusterChanged(Adjuster* a, double newval) override; + void setAdjusterBehavior(bool add); + void trimValues(rtengine::procparams::ProcParams* pp) override; + void modeChanged(); +}; diff --git a/rtgui/toolpanelcoord.cc b/rtgui/toolpanelcoord.cc index 00ad96328..8e7ed8071 100644 --- a/rtgui/toolpanelcoord.cc +++ b/rtgui/toolpanelcoord.cc @@ -92,6 +92,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), favorit flatfield = Gtk::manage (new FlatField ()); rawcacorrection = Gtk::manage (new RAWCACorr ()); rawexposure = Gtk::manage (new RAWExposure ()); + preprocessWB = Gtk::manage (new PreprocessWB ()); bayerrawexposure = Gtk::manage (new BayerRAWExposure ()); xtransrawexposure = Gtk::manage (new XTransRAWExposure ()); fattal = Gtk::manage (new FattalToneMapping ()); @@ -155,6 +156,7 @@ ToolPanelCoordinator::ToolPanelCoordinator (bool batch) : ipc (nullptr), favorit addfavoritePanel (sensorxtrans->getPackBox(), xtransprocess, 2); addfavoritePanel (sensorxtrans->getPackBox(), xtransrawexposure, 2); addfavoritePanel (rawPanel, rawexposure); + addfavoritePanel (rawPanel, preprocessWB); addfavoritePanel (rawPanel, preprocess); addfavoritePanel (rawPanel, darkframe); addfavoritePanel (rawPanel, flatfield); @@ -357,6 +359,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorxtrans->FoldableToolPanel::hide(); xtransprocess->FoldableToolPanel::hide(); xtransrawexposure->FoldableToolPanel::hide(); + preprocessWB->FoldableToolPanel::hide(); preprocess->FoldableToolPanel::hide(); flatfield->FoldableToolPanel::show(); filmNegative->FoldableToolPanel::hide(); @@ -377,6 +380,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorxtrans->FoldableToolPanel::hide(); xtransprocess->FoldableToolPanel::hide(); xtransrawexposure->FoldableToolPanel::hide(); + preprocessWB->FoldableToolPanel::hide(); preprocess->FoldableToolPanel::hide(); flatfield->FoldableToolPanel::hide(); filmNegative->FoldableToolPanel::hide(); @@ -398,6 +402,7 @@ void ToolPanelCoordinator::imageTypeChanged (bool isRaw, bool isBayer, bool isXt sensorxtrans->FoldableToolPanel::hide(); xtransprocess->FoldableToolPanel::hide(); xtransrawexposure->FoldableToolPanel::hide(); + preprocessWB->FoldableToolPanel::hide(); preprocess->FoldableToolPanel::hide(); flatfield->FoldableToolPanel::hide(); filmNegative->FoldableToolPanel::hide(); diff --git a/rtgui/toolpanelcoord.h b/rtgui/toolpanelcoord.h index 0fc1a9070..e61d1a12e 100644 --- a/rtgui/toolpanelcoord.h +++ b/rtgui/toolpanelcoord.h @@ -59,6 +59,7 @@ #include "perspective.h" #include "pparamschangelistener.h" #include "preprocess.h" +#include "preprocesswb.h" #include "profilechangelistener.h" #include "prsharpening.h" #include "rawcacorrection.h" @@ -155,6 +156,7 @@ protected: FlatField* flatfield; RAWCACorr* rawcacorrection; RAWExposure* rawexposure; + PreprocessWB* preprocessWB; BayerRAWExposure* bayerrawexposure; XTransRAWExposure* xtransrawexposure; FattalToneMapping *fattal; From e80426bb2fbfb01453fad7f7fb942d2fca6db40d Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Feb 2020 08:14:51 +0100 Subject: [PATCH 287/453] supress warning in colortemp.cc --- rtengine/colortemp.cc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 896beafbe..0edd7aeb2 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -29,10 +29,6 @@ #include "settings.h" #include "iccstore.h" -#undef CLIPD -#define CLIPD(a) ((a)>0.0?((a)<1.0?(a):1.0):0.0) -#define CLIPQQ(a) ((a)>0?((a)<250?(a):250):0) -#define MAXR(a,b) ((a) > (b) ? (a) : (b)) namespace rtengine { From 10b85f14cdd83a3b0098527702fda1ec1dbf0666 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 25 Feb 2020 09:04:18 +0100 Subject: [PATCH 288/453] generateTranslationDiffs on default only --- rtdata/languages/default | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index c4a771e0d..a807ba9ea 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -789,16 +789,16 @@ HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor HISTORY_MSG_TRANS_Method;Geometry - Method HISTORY_MSG_WAVCLARI;Clarity -HISTORY_MSG_WAVUSHAMET;Clarity method -HISTORY_MSG_WAVMERGEL;Merge L +HISTORY_MSG_WAVEDGS;Edge stopping HISTORY_MSG_WAVMERGEC;Merge C +HISTORY_MSG_WAVMERGEL;Merge L +HISTORY_MSG_WAVRADIUS;Radius Shadows-Highlight +HISTORY_MSG_WAVSCALE;Scale +HISTORY_MSG_WAVSHOWMASK;Show wavelet mask HISTORY_MSG_WAVSIGMA;Sigma HISTORY_MSG_WAVSOFTRAD;Soft radius clarity HISTORY_MSG_WAVSOFTRADEND;Soft radius final -HISTORY_MSG_WAVSHOWMASK;Show wavelet mask -HISTORY_MSG_WAVEDGS;Edge stopping -HISTORY_MSG_WAVSCALE;Scale -HISTORY_MSG_WAVRADIUS;Radius Shadows-Highlight +HISTORY_MSG_WAVUSHAMET;Clarity method HISTORY_NEWSNAPSHOT;Add HISTORY_NEWSNAPSHOT_TOOLTIP;Shortcut: Alt-s HISTORY_SNAPSHOT;Snapshot @@ -2132,6 +2132,7 @@ TP_WAVELET_CHRO_TOOLTIP;Sets the wavelet level which will be the threshold betwe TP_WAVELET_CHR_TOOLTIP;Adjusts chroma as a function of "contrast levels" and "chroma-contrast link strength" TP_WAVELET_CHSL;Sliders TP_WAVELET_CHTYPE;Chrominance method +TP_WAVELET_CLA;Clarity TP_WAVELET_CLARI;Sharp-mask and Clarity TP_WAVELET_COLORT;Opacity Red-Green TP_WAVELET_COMPCONT;Contrast @@ -2215,8 +2216,8 @@ TP_WAVELET_MEDGREINF;First level TP_WAVELET_MEDI;Reduce artifacts in blue sky TP_WAVELET_MEDILEV;Edge detection TP_WAVELET_MEDILEV_TOOLTIP;When you enable Edge Detection, it is recommanded:\n- to disabled low contrast levels to avoid artifacts,\n- to use high values of gradient sensitivity.\n\nYou can modulate the strength with 'refine' from Denoise and Refine. -TP_WAVELET_MERGEL;Merge Luma TP_WAVELET_MERGEC;Merge Chroma +TP_WAVELET_MERGEL;Merge Luma TP_WAVELET_NEUTRAL;Neutral TP_WAVELET_NOIS;Denoise TP_WAVELET_NOISE;Denoise and Refine @@ -2241,6 +2242,8 @@ TP_WAVELET_RESCONH;Highlights TP_WAVELET_RESID;Residual Image TP_WAVELET_SAT;Saturated chroma TP_WAVELET_SETTINGS;Wavelet Settings +TP_WAVELET_SHA;Sharp mask +TP_WAVELET_SHOWMASK;Show wavelet 'mask' TP_WAVELET_SIGMA;Sigma TP_WAVELET_SKIN;Skin targetting/protection TP_WAVELET_SKIN_TOOLTIP;At -100 skin-tones are targetted.\nAt 0 all tones are treated equally.\nAt +100 skin-tones are protected while all other tones are affected. @@ -2261,23 +2264,20 @@ TP_WAVELET_TILESFULL;Full image TP_WAVELET_TILESIZE;Tiling method TP_WAVELET_TILESLIT;Little tiles TP_WAVELET_TILES_TOOLTIP;Processing the full image leads to better quality and is the recommended option, while using tiles is a fall-back solution for users with little RAM. Refer to RawPedia for memory requirements. +TP_WAVELET_TMEDGS;Edge stopping +TP_WAVELET_TMSCALE;Scale TP_WAVELET_TMSTRENGTH;Compression strength TP_WAVELET_TMSTRENGTH_TOOLTIP;Control the strength of tone mapping or contrast compression of the residual image. TP_WAVELET_TMTYPE;Compression method -TP_WAVELET_TMEDGS;Edge stopping -TP_WAVELET_TMSCALE;Scale TP_WAVELET_TON;Toning -TP_WAVELET_USHARP;Clarity method TP_WAVELET_USH;None -TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. -TP_WAVELET_SHA;Sharp mask -TP_WAVELET_SHOWMASK;Show wavelet 'mask' -TP_WAVELET_CLA;Clarity -TP_WAVELET_USHARP;Sharp method +TP_WAVELET_USHARP;Clarity method TP_WAVELET_USHARP_TOOLTIP;Origin : the source file is the file before Wavelet.\nWavelet : the source file is the file including wavelet threatment +TP_WAVELET_USH_TOOLTIP;If you select Sharp-mask, wavelet settings will be automatically positioned :\nBackground=black, Process=below, level=3...you can change level between 1 and 4.\n\nIf you select Clarity, wavelet settings will be automatically positioned :\nBackground=residual, Process=above, level=7..you can change level between 5 and 10 and wavelet levels. TP_WBALANCE_AUTO;Auto -TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic. -TP_WBALANCE_STUDLABEL;Student Itcwb: %1 +TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation +TP_WBALANCE_AUTOOLD;Auto RGB grey +TP_WBALANCE_AUTO_HEADER;Autos TP_WBALANCE_CAMERA;Camera TP_WBALANCE_CLOUDY;Cloudy TP_WBALANCE_CUSTOM;Custom @@ -2287,9 +2287,6 @@ TP_WBALANCE_EQBLUERED_TOOLTIP;Allows to deviate from the normal behavior of "whi TP_WBALANCE_FLASH55;Leica TP_WBALANCE_FLASH60;Standard, Canon, Pentax, Olympus TP_WBALANCE_FLASH65;Nikon, Panasonic, Sony, Minolta -TP_WBALANCE_AUTO_HEADER;Autos -TP_WBALANCE_AUTOOLD;Auto RGB grey -TP_WBALANCE_AUTOITCGREEN;Auto iterate temperature correlation TP_WBALANCE_FLASH_HEADER;Flash TP_WBALANCE_FLUO1;F1 - Daylight TP_WBALANCE_FLUO2;F2 - Cool White @@ -2322,6 +2319,8 @@ TP_WBALANCE_SOLUX41;Solux 4100K TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. +TP_WBALANCE_STUDLABEL;Student Itcwb: %1 +TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic. TP_WBALANCE_TEMPBIAS;AWB temperature bias TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". TP_WBALANCE_TEMPERATURE;Temperature From 0055d0705d04b014e25b0465cb9be8a60f59295b Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 25 Feb 2020 09:16:11 +0100 Subject: [PATCH 289/453] Removed unnecessary test in rtengine/CMakeLists.txt --- rtengine/CMakeLists.txt | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 8d13f0d6e..5f59da371 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -195,8 +195,4 @@ target_link_libraries(rtengine rtexif ${KLT_LIBRARIES} ) -if(APPLE) - install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) -else() - install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) -endif() +install(FILES ${CAMCONSTSFILE} DESTINATION "${DATADIR}" PERMISSIONS OWNER_WRITE OWNER_READ GROUP_READ WORLD_READ) From 326153859a7fa956d59ea00fc8a2b18389540858 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 25 Feb 2020 10:06:35 +0100 Subject: [PATCH 290/453] Removed unnecessarily repeated test expressions --- UpdateInfo.cmake | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index d1f532506..60e3c16b3 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -10,10 +10,10 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) find_program(GIT_CMD git PATHS "/opt/local/bin" "/usr/local/bin" "/usr/bin") find_program(GIT_CMD git) set(SHELL "/bin/bash") - else(WIN32) # Linux + else() # Linux find_program(GIT_CMD git) set(SHELL "/bin/bash") - endif(WIN32) + endif() # Fail if Git is not installed if(GIT_CMD STREQUAL GIT_CMD-NOTFOUND) @@ -79,10 +79,9 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) else() message(STATUS "CACHE_NAME_SUFFIX is \"${CACHE_NAME_SUFFIX}\"") endif() - -else(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) +else() include("${PROJECT_SOURCE_DIR}/ReleaseInfo.cmake") -endif(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) +endif() if(WIN32) if(BIT_DEPTH EQUAL 4) @@ -97,12 +96,12 @@ if(WIN32) set(ARCHITECTURE_ALLOWED "x64 ia64") # installing in 64 bits mode for all 64 bits processors, even for itanium architecture set(INSTALL_MODE "x64 ia64") - endif(BIT_DEPTH EQUAL 4) + endif() # set part of the output archive name set(SYSTEM_NAME "WinVista") configure_file("${PROJECT_SOURCE_DIR}/tools/win/InnoSetup/WindowsInnoSetup.iss.in" "${CMAKE_BINARY_DIR}/rtdata/WindowsInnoSetup.iss") -endif(WIN32) +endif() # build version.h from template configure_file("${PROJECT_SOURCE_DIR}/rtgui/version.h.in" "${CMAKE_BINARY_DIR}/rtgui/version.h") From 0206b578218c72daf777a3abc346130d28f6ad6d Mon Sep 17 00:00:00 2001 From: Beep6581 Date: Tue, 25 Feb 2020 11:53:20 +0100 Subject: [PATCH 291/453] Update main.yml formatting --- .github/workflows/main.yml | 138 ++++++++++++++++++++----------------- 1 file changed, 73 insertions(+), 65 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 45c877559..a129f1118 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,70 +1,78 @@ name: macOS build - -on: - push - +on: push jobs: build: - runs-on: macos-latest - steps: - - uses: actions/checkout@v1 - - name: Install dependencies - run: brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig libomp shared-mime-info - - name: patch libiconv - run: | - mkdir libiconv && cd libiconv - wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz - tar xf libiconv-1.16.tar.gz - cd libiconv-1.16 - patch -p1 < "${GITHUB_WORKSPACE}/tools/osx/libiconv_1.16_rt.patch" - mkdir build && cd build - destDir="$(pwd)" - ../configure --prefix=/opt/local --disable-static 'CFLAGS=-arch x86_64 -mmacosx-version-min=10.9' 'LDFLAGS=-arch x86_64 -mmacosx-version-min=10.9' CXXFLAGS="-arch x86_64 -mmacosx-version-min=10.9" - make --jobs - make DESTDIR="${destDir}" install - sudo mv opt/local /usr/local/opt/libiconv - - name: cmake - env: - CMAKE_CXX_STANDARD: 11 - PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig - RAW_THERAPEE_MAJOR: '5' - RAW_THERAPEE_MINOR: '8' - C_FLAGS: -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include - run: | - # GITHUB_REF is the ref that triggered the build, like refs/heads/new-feature - the next line parses that to REF: the branch name only (new-feature) - REF=${GITHUB_REF##*/} - mkdir build && cd build - cmake \ - -DCMAKE_BUILD_TYPE="release" \ - -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -L/usr/local/opt/gdk-pixbuf/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ - -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ - -DPROC_TARGET_NUMBER="2" \ - -DPROC_LABEL="generic processor" \ - -DWITH_LTO="OFF" \ - -DLENSFUNDBDIR="./share/lensfun" \ - -DOpenMP_C_FLAGS=-fopenmp=libomp \ - -DOpenMP_CXX_FLAGS=-fopenmp=libomp \ - -DOpenMP_C_LIB_NAMES="libomp" \ - -DOpenMP_CXX_LIB_NAMES="libomp" \ - -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \ - -DOpenMP_C_FLAGS="${C_FLAGS}" \ - -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ - -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ - -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ - -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" - .. - make --jobs - make install - sudo make macosx_bundle - ARTIFACT=(RawTherapee*.zip) - echo "=== artifact: ${ARTIFACT}" - # defining environment variables for next step as per https://github.com/actions/starter-workflows/issues/68 - echo "::set-env name=ARTIFACT_PATH::${GITHUB_WORKSPACE}/build/${ARTIFACT}" - echo "::set-env name=ARTIFACT_FILE::${ARTIFACT}" - - uses: actions/upload-artifact@v1 - with: - name: ${{env.ARTIFACT_FILE}} - path: ${{env.ARTIFACT_PATH}} + - uses: actions/checkout@v1 + - name: Install dependencies + run: > + brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme + libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig + libomp shared-mime-info + - name: patch libiconv + run: | + mkdir libiconv && cd libiconv + wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz + tar xf libiconv-1.16.tar.gz + cd libiconv-1.16 + patch -p1 < "${GITHUB_WORKSPACE}/tools/osx/libiconv_1.16_rt.patch" + mkdir build && cd build + destDir="$(pwd)" + ../configure --prefix=/opt/local --disable-static \ + CFLAGS='-arch x86_64 -mmacosx-version-min=10.9' \ + LDFLAGS='-arch x86_64 -mmacosx-version-min=10.9' \ + CXXFLAGS='-arch x86_64 -mmacosx-version-min=10.9' + make --jobs + make DESTDIR="${destDir}" install + sudo mv opt/local /usr/local/opt/libiconv + - name: cmake + env: + CMAKE_CXX_STANDARD: 11 + PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig + RAW_THERAPEE_MAJOR: '5' + RAW_THERAPEE_MINOR: '8' + C_FLAGS: > + -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib + -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include + -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include + -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include + run: | + # GITHUB_REF is the ref that triggered the build, like + # refs/heads/new-feature - the next line parses that to REF: the branch + # name only (new-feature) + REF=${GITHUB_REF##*/} + mkdir build && cd build + cmake \ + -DCMAKE_BUILD_TYPE="release" \ + -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ + -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -L/usr/local/opt/gdk-pixbuf/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ + -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ + -DPROC_TARGET_NUMBER="2" \ + -DPROC_LABEL="generic processor" \ + -DWITH_LTO="OFF" \ + -DLENSFUNDBDIR="./share/lensfun" \ + -DOpenMP_C_FLAGS=-fopenmp=libomp \ + -DOpenMP_CXX_FLAGS=-fopenmp=libomp \ + -DOpenMP_C_LIB_NAMES="libomp" \ + -DOpenMP_CXX_LIB_NAMES="libomp" \ + -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \ + -DOpenMP_C_FLAGS="${C_FLAGS}" \ + -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ + -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ + -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ + -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" + .. + make --jobs + make install + sudo make macosx_bundle + ARTIFACT=(RawTherapee*.zip) + echo "=== artifact: ${ARTIFACT}" + # defining environment variables for next step as per + # https://github.com/actions/starter-workflows/issues/68 + echo "::set-env name=ARTIFACT_PATH::${GITHUB_WORKSPACE}/build/${ARTIFACT}" + echo "::set-env name=ARTIFACT_FILE::${ARTIFACT}" + - uses: actions/upload-artifact@v1 + with: + name: ${{env.ARTIFACT_FILE}} + path: ${{env.ARTIFACT_PATH}} From cdf4e6329dc4bfa25bc6b84b5c55c343b25df308 Mon Sep 17 00:00:00 2001 From: Beep6581 Date: Tue, 25 Feb 2020 11:53:49 +0100 Subject: [PATCH 292/453] Update main.yml fixes possible bug - missing continuation character --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a129f1118..46808ae40 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -61,7 +61,7 @@ jobs: -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ - -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" + -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" \ .. make --jobs make install From eeb24af8f0d9c76b107d4758412aec6a7427cae7 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Feb 2020 12:48:23 +0100 Subject: [PATCH 293/453] Suppress message in console except verbose --- rtengine/improccoordinator.cc | 12 +++++++++--- rtengine/rawimagesource.cc | 4 +++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index d8d38e14a..f5bdbbc5d 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -255,7 +255,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) RAWParams rp = params->raw; ColorManagementParams cmp = params->icm; LCurveParams lcur = params->labCurve; - printf("metwb2=%s \n", params->wb.method.c_str()); + if (settings->verbose) { + printf("metwb2=%s \n", params->wb.method.c_str()); + } if (!highDetailNeeded) { // if below 100% magnification, take a fast path @@ -419,7 +421,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bool autowb = false; autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - printf("automethod=%s \n", params->wb.method.c_str()); + if (settings->verbose) { + printf("automethod=%s \n", params->wb.method.c_str()); + } if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window @@ -447,7 +451,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) currWBitc = imgsrc->getWB(); double tempref = currWBitc.getTemp() * (1. + params->wb.tempBias); double greenref = currWBitc.getGreen(); - printf("tempref=%f greref=%f\n", tempref, greenref); + if (settings->verbose) { + printf("tempref=%f greref=%f\n", tempref, greenref); + } imgsrc->getAutoWBMultipliersitc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 03992a648..9f7c08a8d 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -7034,7 +7034,9 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } - printf("ITCWB tempitc=%f gritc=%f stud=%f \n", tempitc, greenitc, studgood); + if (settings->verbose) { + printf("ITCWB tempitc=%f gritc=%f stud=%f \n", tempitc, greenitc, studgood); + } xc(0, 0); From 352873ea30d0c85c77f25c65b2a8a1818e71cec3 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Feb 2020 13:19:52 +0100 Subject: [PATCH 294/453] Suppress dispaly Student itcwb in Pick --- rtengine/improccoordinator.cc | 4 ++-- rtgui/whitebalance.cc | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index f5bdbbc5d..0ed8b1f97 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -494,9 +494,9 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } // if (params->wb.method == "Auto" && awbListener && params->wb.enabled) { - if (autowb && awbListener) { + if (autowb && awbListener && params->wb.method == "autitcgreen") { awbListener->WBChanged(params->wb.temperature, params->wb.green, studgood); - } + } /* GammaValues g_a; diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 5c57ca6a0..9a5f1a398 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -461,6 +461,7 @@ void WhiteBalance::optChanged () methconn.block(prevState); return; } + StudLabel->hide(); if (opt != row[methodColumns.colId]) { @@ -566,6 +567,8 @@ void WhiteBalance::optChanged () void WhiteBalance::spotPressed () { + StudLabel->hide(); + if (wblistener) { wblistener->spotWBRequested (getSize()); } From ad271a87eb448b1990a40181b42f8dce44069da7 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 25 Feb 2020 17:02:00 +0100 Subject: [PATCH 295/453] clang errors: variable-sized object initialization, fixes #5667 --- rtengine/rawimagesource.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 9f7c08a8d..3cabaf5b2 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -6394,22 +6394,25 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } ; - int histxy[siza] = {};//number of values for each pair xy + int histxy[siza];//number of values for each pair xy - float area[siza] = {};//multiplier for compensation differences area ==> big areas are rare near limit prophotos or more + float area[siza];//multiplier for compensation differences area ==> big areas are rare near limit prophotos or more - int inter[siza] = {}; //interest for photographie 1 = small (limit gamut) 2 = normal 3 = major (skin, sky, neutral) + int inter[siza]; //interest for photographie 1 = small (limit gamut) 2 = normal 3 = major (skin, sky, neutral) - float xxx[siza] = {};//for color references calculated ==> max in images "like histogram" + float xxx[siza];//for color references calculated ==> max in images "like histogram" - float yyy[siza] = {}; + float yyy[siza]; - float YYY[siza] = {};//not used directly, but necessary to keep good range + float YYY[siza];//not used directly, but necessary to keep good range for (int p = 0; p < siza; p++) { histxy[p] = 0; area[p] = 20.f; inter[p] = 1; + xxx[p] = 0.f; + yyy[p] = 0.f; + YYY[p] = 0.f; } float estimchrom = 0.f; From 278f9d019ee6505a1c89bcdf0ae78265be3647fe Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 25 Feb 2020 17:09:27 +0100 Subject: [PATCH 296/453] Fix clang warnings --- rtengine/rawimagesource.h | 6 +++--- rtengine/stdimagesource.h | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index 51c369a79..1b80804e9 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -143,9 +143,9 @@ public: void processFlatField(const procparams::RAWParams &raw, const RawImage *riFlatFile, const float black[4]); void copyOriginalPixels(const procparams::RAWParams &raw, RawImage *ri, RawImage *riDark, RawImage *riFlatFile, array2D &rawData ); void scaleColors (int winx, int winy, int winw, int winh, const procparams::RAWParams &raw, array2D &rawData); // raw for cblack - void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const procparams::WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw); - void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw); - void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w); + void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const procparams::WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) override; + void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) override; + void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) override; void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; eSensorType getSensorType () const override; diff --git a/rtengine/stdimagesource.h b/rtengine/stdimagesource.h index 5b83ba42e..b88db42c4 100644 --- a/rtengine/stdimagesource.h +++ b/rtengine/stdimagesource.h @@ -58,15 +58,15 @@ public: int load (const Glib::ustring &fname) override; void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; - void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w); + void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) override; ColorTemp getWB () const override { return wb; } void getAutoWBMultipliers (double &rm, double &gm, double &bm) override; ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) override; - void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const procparams::WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw); - void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw); + void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const procparams::WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) override; + void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) override; eSensorType getSensorType() const override {return ST_NONE;} bool isMono() const override {return false;} From 603b55e69093626b4ca4ae8fa99198ad96a9ff2b Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 25 Feb 2020 17:28:19 +0100 Subject: [PATCH 297/453] Preset cat02 automatic --- rtdata/languages/default | 3 + rtengine/improccoordinator.cc | 6 +- rtengine/procparams.cc | 8 +- rtengine/procparams.h | 1 + rtgui/colorappearance.cc | 156 +++++++++++++++++++++++++++++++++- rtgui/colorappearance.h | 10 ++- rtgui/paramsedited.cc | 6 ++ rtgui/paramsedited.h | 1 + 8 files changed, 184 insertions(+), 7 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index a807ba9ea..59de4bb40 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -728,6 +728,7 @@ HISTORY_MSG_491;White Balance HISTORY_MSG_492;RGB Curves HISTORY_MSG_493;L*a*b* Adjustments HISTORY_MSG_494;Capture Sharpening +HISTORY_MSG_CAT02PRESET;Cat02 automatic preset HISTORY_MSG_CLAMPOOG;Clip out-of-gamut colors HISTORY_MSG_COLORTONING_LABGRID_VALUE;CT - Color correction HISTORY_MSG_COLORTONING_LABREGION_AB;CT - Color correction @@ -1447,6 +1448,8 @@ TP_COLORAPP_MODEL;WP Model TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's white balance is used for the scene, CIECAM02 is set to D50, and the output device's white balance is set in Viewing Conditions.\n\nWB [RT+CAT02] + [output]: RT's white balance settings are used by CAT02 and the output device's white balance is set in Viewing Conditions.\n\nFree temp+green + CAT02 + [output]: temp and green are selected by the user, the output device's white balance is set in Viewing Conditions. TP_COLORAPP_NEUTRAL;Reset TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values +TP_COLORAPP_PRESETCAT02;Preset cat02 automatic +TP_COLORAPP_PRESETCAT02_TIP;Set combobox, sliders, temp, green so that Cat02 automatic is preset.\nYou must change Cat02 adaptation Viewing conditions if need, and other settings if need. TP_COLORAPP_RSTPRO;Red & skin-tones protection TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. TP_COLORAPP_SURROUND;Surround diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 0ed8b1f97..2a5d7cf8f 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1160,15 +1160,15 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) ipf.ciecam_02float(ncie, float (adap), pW, 2, nprevl, params.get(), customColCurve1, customColCurve2, customColCurve3, histLCAM, histCCAM, CAMBrightCurveJ, CAMBrightCurveQ, CAMMean, 0 , scale, execsharp, d, dj, yb, 1); - if ((params->colorappearance.autodegree || params->colorappearance.autodegreeout) && acListener && params->colorappearance.enabled) { + if ((params->colorappearance.autodegree || params->colorappearance.autodegreeout) && acListener && params->colorappearance.enabled && !params->colorappearance.presetcat02) { acListener->autoCamChanged(100.* (double)d, 100.* (double)dj); } - if (params->colorappearance.autoadapscen && acListener && params->colorappearance.enabled) { + if (params->colorappearance.autoadapscen && acListener && params->colorappearance.enabled && !params->colorappearance.presetcat02) { acListener->adapCamChanged(adap); //real value of adapt scene } - if (params->colorappearance.autoybscen && acListener && params->colorappearance.enabled) { + if (params->colorappearance.autoybscen && acListener && params->colorappearance.enabled && !params->colorappearance.presetcat02) { acListener->ybCamChanged((int) yb); //real value Yb scene } } else { diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 7d83b50d2..a4502b470 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1398,7 +1398,8 @@ ColorAppearanceParams::ColorAppearanceParams() : ybout(18), greenout(1.0), tempsc(5000), - greensc(1.0) + greensc(1.0), + presetcat02(false) { } @@ -1443,7 +1444,8 @@ bool ColorAppearanceParams::operator ==(const ColorAppearanceParams& other) cons && ybout == other.ybout && greenout == other.greenout && tempsc == other.tempsc - && greensc == other.greensc; + && greensc == other.greensc + && presetcat02 == other.presetcat02; } bool ColorAppearanceParams::operator !=(const ColorAppearanceParams& other) const @@ -3239,6 +3241,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->colorappearance.ybout, "Color appearance", "Ybout", colorappearance.ybout, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.datacie, "Color appearance", "Datacie", colorappearance.datacie, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.tonecie, "Color appearance", "Tonecie", colorappearance.tonecie, keyFile); + saveToKeyfile(!pedited || pedited->colorappearance.presetcat02, "Color appearance", "Presetcat02", colorappearance.presetcat02, keyFile); const std::map ca_mapping = { {ColorAppearanceParams::TcMode::LIGHT, "Lightness"}, @@ -4229,6 +4232,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Color appearance", "Ybout", pedited, colorappearance.ybout, pedited->colorappearance.ybout); assignFromKeyfile(keyFile, "Color appearance", "Datacie", pedited, colorappearance.datacie, pedited->colorappearance.datacie); assignFromKeyfile(keyFile, "Color appearance", "Tonecie", pedited, colorappearance.tonecie, pedited->colorappearance.tonecie); + assignFromKeyfile(keyFile, "Color appearance", "Presetcat02", pedited, colorappearance.presetcat02, pedited->colorappearance.presetcat02); const std::map tc_mapping = { {"Lightness", ColorAppearanceParams::TcMode::LIGHT}, diff --git a/rtengine/procparams.h b/rtengine/procparams.h index e6828f570..034577cb6 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -680,6 +680,7 @@ struct ColorAppearanceParams { double greenout; int tempsc; double greensc; + bool presetcat02; ColorAppearanceParams(); diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 9468770fc..eed1c074b 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -25,6 +25,7 @@ #include "guiutils.h" #include "options.h" #include "rtimage.h" +#include "eventmapper.h" #include "../rtengine/color.h" #include "../rtengine/procparams.h" @@ -217,8 +218,16 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" milestones.push_back ( GradientMilestone (0., 0., 0., 0.) ); milestones.push_back ( GradientMilestone (1., 1., 1., 1.) ); + auto m = ProcEventMapper::getInstance(); + Evcatpreset = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_CAT02PRESET"); - // ------------------------ Process #1: Converting to CIECAM + //preset button cat02 + presetcat02 = Gtk::manage (new Gtk::CheckButton (M ("TP_COLORAPP_PRESETCAT02"))); + presetcat02->set_tooltip_markup (M("TP_COLORAPP_PRESETCAT02_TIP")); + presetcat02conn = presetcat02->signal_toggled().connect( sigc::mem_fun(*this, &ColorAppearance::presetcat02pressed)); + pack_start (*presetcat02, Gtk::PACK_SHRINK); + + // ----------------------- Process #1: Converting to CIECAM // Process 1 frame @@ -801,6 +810,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) tcmodeconn.block (true); tcmode2conn.block (true); tcmode3conn.block (true); + presetcat02conn.block (true); shape->setCurve (pp->colorappearance.curve); shape2->setCurve (pp->colorappearance.curve2); shape3->setCurve (pp->colorappearance.curve3); @@ -808,7 +818,12 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) toneCurveMode2->set_active (toUnderlying(pp->colorappearance.curveMode2)); toneCurveMode3->set_active (toUnderlying(pp->colorappearance.curveMode3)); curveMode3Changed(); // This will set the correct sensitive state of depending Adjusters + presetcat02->set_active(pp->colorappearance.presetcat02); + nexttemp = pp->wb.temperature; + nextgreen = pp->wb.green; + + printf("temp=%f green=%f\n", nexttemp, nextgreen); if (pedited) { degree->setEditedState (pedited->colorappearance.degree ? Edited : UnEdited); degreeout->setEditedState (pedited->colorappearance.degreeout ? Edited : UnEdited); @@ -858,6 +873,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) if (!pedited->colorappearance.curveMode3) { toneCurveMode3->set_active (3); } + presetcat02->set_inconsistent(!pedited->colorappearance.presetcat02); } @@ -993,6 +1009,10 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) ybout->setValue (pp->colorappearance.ybout); tempsc->setValue (pp->colorappearance.tempsc); greensc->setValue (pp->colorappearance.greensc); + presetcat02conn.block (true); + presetcat02->set_active (pp->colorappearance.presetcat02); + presetcat02conn.block (false); + lastpresetcat02 = pp->colorappearance.presetcat02; tcmode3conn.block (false); tcmode2conn.block (false); @@ -1045,6 +1065,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.ybout = ybout->getValue (); pp->colorappearance.tempsc = tempsc->getValue (); pp->colorappearance.greensc = greensc->getValue (); + pp->colorappearance.presetcat02 = presetcat02->get_active(); int tcMode = toneCurveMode->get_active_row_number(); @@ -1114,6 +1135,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pedited->colorappearance.ybout = ybout->getEditedState (); pedited->colorappearance.tempsc = tempsc->getEditedState (); pedited->colorappearance.greensc = greensc->getEditedState (); + pedited->colorappearance.presetcat02 = presetcat02->get_inconsistent (); } @@ -1309,6 +1331,130 @@ void ColorAppearance::badpix_toggled () { } */ +void ColorAppearance::presetcat02pressed () +{ + if (presetcat02->get_active ()) { + disableListener(); + jlight->resetValue (false); + qbright->resetValue (false); + chroma->resetValue (false); + schroma->resetValue (false); + mchroma->resetValue (false); + rstprotection->resetValue (false); + contrast->resetValue (false); + qcontrast->resetValue (false); + colorh->resetValue (false); + tempout->resetValue (false); + greenout->resetValue (false); + ybout->resetValue (false); + tempsc->resetValue (false); + greensc->resetValue (false); + badpixsl->resetValue (false); + wbmodel->set_active (0); + toneCurveMode->set_active (0); + toneCurveMode2->set_active (0); + toneCurveMode3->set_active (0); + shape->reset(); + shape2->reset(); + shape3->reset(); + gamutconn.block (true); + gamut->set_active (true); + gamutconn.block (false); + degree->setAutoValue (true); + degree->resetValue (false); + adapscen->resetValue (false); + adapscen->setAutoValue (true); + degreeout->resetValue (false); + degreeout->setAutoValue (true); + ybscen->resetValue (false); + ybscen->setAutoValue (true); + surrsrc->set_active (0); + wbmodel->set_active (2); + tempsc->resetValue (false); + greensc->resetValue (false); + adapscen->setValue(400.); + ybscen->setValue(18); + surround->set_active (0); + adaplum->setValue(400.); + degreeout->setValue(70); + ybout->setValue(18); + tempout->setValue (nexttemp); + greenout->setValue (nextgreen); + enableListener(); + } else { + disableListener(); +/* jlight->resetValue (false); + qbright->resetValue (false); + chroma->resetValue (false); + schroma->resetValue (false); + mchroma->resetValue (false); + rstprotection->resetValue (false); + contrast->resetValue (false); + qcontrast->resetValue (false); + colorh->resetValue (false); + tempout->resetValue (false); + greenout->resetValue (false); + ybout->resetValue (false); + tempsc->resetValue (false); + greensc->resetValue (false); + badpixsl->resetValue (false); + wbmodel->set_active (0); + toneCurveMode->set_active (0); + toneCurveMode2->set_active (0); + toneCurveMode3->set_active (0); + shape->reset(); + shape2->reset(); + shape3->reset(); + gamutconn.block (true); + gamut->set_active (true); + gamutconn.block (false); +*/ + degree->setAutoValue (true); + degree->resetValue (false); + adapscen->resetValue (false); + adapscen->setAutoValue (true); + degreeout->resetValue (false); + degreeout->setAutoValue (true); + ybscen->resetValue (false); + ybscen->setAutoValue (true); + surrsrc->set_active (0); + wbmodel->set_active (0); + tempsc->resetValue (false); + greensc->resetValue (false); + adapscen->resetValue (false); + ybscen->resetValue (false); + surround->set_active (0); + adaplum->resetValue (false); + degreeout->resetValue (false); + ybout->resetValue (false); + tempout->resetValue (false); + greenout->resetValue (false); + enableListener(); + + } + if (batchMode) { + if (presetcat02->get_inconsistent()) { + presetcat02->set_inconsistent (false); + presetcat02conn.block (true); + presetcat02->set_active (false); + presetcat02conn.block (false); + } else if (lastpresetcat02) { + presetcat02->set_inconsistent (true); + } + + lastpresetcat02 = presetcat02->get_active (); + } + + if (listener) { + if (presetcat02->get_active ()) { + listener->panelChanged (Evcatpreset, M ("GENERAL_ENABLED")); + } else { + listener->panelChanged (Evcatpreset, M ("GENERAL_DISABLED")); + } + } + +} + void ColorAppearance::datacie_toggled () { @@ -1470,6 +1616,10 @@ void ColorAppearance::autoCamChanged (double ccam, double ccamout) void ColorAppearance::adapCamChanged (double cadap) { + if(presetcat02->get_active()){ + return; + } + idle_register.add( [this, cadap]() -> bool { @@ -1483,6 +1633,10 @@ void ColorAppearance::adapCamChanged (double cadap) void ColorAppearance::ybCamChanged (int ybsc) { + if(presetcat02->get_active()){ + return; + } + idle_register.add( [this, ybsc]() -> bool { diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index c42bca774..7379eb9b0 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -66,7 +66,7 @@ public: bool adapCamComputed_ (); void ybCamChanged (int yb) override; bool ybCamComputed_ (); - + void presetcat02pressed (); void curveChanged (CurveEditor* ce) override; void curveMode1Changed (); bool curveMode1Changed_ (); @@ -99,6 +99,8 @@ public: void writeOptions (std::vector &tpOpen); private: + rtengine::ProcEvent Evcatpreset; + bool bgTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); bool srTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -143,6 +145,9 @@ private: Gtk::CheckButton* tonecie; // Gtk::CheckButton* sharpcie; Gtk::Button* neutral; + Gtk::CheckButton* presetcat02; + sigc::connection presetcat02conn; + MyComboBoxText* surrsrc; sigc::connection surrsrcconn; @@ -172,6 +177,9 @@ private: bool lastgamut; bool lastdatacie; bool lasttonecie; + bool lastpresetcat02; + double nexttemp; + double nextgreen; IdleRegister idle_register; }; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index f39c73e03..448b1316c 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -247,6 +247,7 @@ void ParamsEdited::set(bool v) colorappearance.ybout = v; colorappearance.tempsc = v; colorappearance.greensc = v; + colorappearance.presetcat02 = v; //colorBoost.amount = v; //colorBoost.avoidclip = v; @@ -837,6 +838,7 @@ void ParamsEdited::initFrom(const std::vector& colorappearance.ybout = colorappearance.ybout && p.colorappearance.ybout == other.colorappearance.ybout; colorappearance.tempsc = colorappearance.tempsc && p.colorappearance.tempsc == other.colorappearance.tempsc; colorappearance.greensc = colorappearance.greensc && p.colorappearance.greensc == other.colorappearance.greensc; + colorappearance.presetcat02 = colorappearance.presetcat02 && p.colorappearance.presetcat02 == other.colorappearance.presetcat02; //colorBoost.amount = colorBoost.amount && p.colorBoost.amount == other.colorBoost.amount; //colorBoost.avoidclip = colorBoost.avoidclip && p.colorBoost.avoidclip == other.colorBoost.avoidclip; @@ -2083,6 +2085,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.colorappearance.tonecie = mods.colorappearance.tonecie; } + if (colorappearance.presetcat02) { + toEdit.colorappearance.presetcat02 = mods.colorappearance.presetcat02; + } + // if (colorappearance.sharpcie) toEdit.colorappearance.sharpcie = mods.colorappearance.sharpcie; if (impulseDenoise.enabled) { toEdit.impulseDenoise.enabled = mods.impulseDenoise.enabled; diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 23e90635e..47985400e 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -294,6 +294,7 @@ struct ColorAppearanceParamsEdited { bool ybout; bool tempsc; bool greensc; + bool presetcat02; }; struct DirPyrDenoiseParamsEdited { From e2bbc30bf2df9d356caaaf9ed551f5c6030a1747 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 25 Feb 2020 19:32:58 +0100 Subject: [PATCH 298/453] ip_wavelet.cc : be almost cppcheck clean --- rtengine/improcfun.h | 16 ++-- rtengine/ipwavelet.cc | 186 +++++++++++++++++++----------------------- 2 files changed, 90 insertions(+), 112 deletions(-) diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index 39a229c7e..ebafa3d71 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -200,22 +200,22 @@ public: int pitch, int scale, const int luma, const int chroma/*, LUTf & Lcurve, LUTf & abcurve*/); void Tile_calc(int tilesize, int overlap, int kall, int imwidth, int imheight, int &numtiles_W, int &numtiles_H, int &tilewidth, int &tileheight, int &tileWskip, int &tileHskip); - void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, LUTf &wavclCurve, int skip); + void ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip); - void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, wavelet_decomposition &WaveletCoeffs_L, + void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - void WaveletcontAllLfinal(wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); - void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, wavelet_decomposition &WaveletCoeffs_a, const WavOpacityCurveW & waOpacityCurveW, + void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); + void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, const bool useChannelA); - void WaveletAandBAllAB(wavelet_decomposition &WaveletCoeffs_a, wavelet_decomposition &WaveletCoeffs_b, - struct cont_params &cp, FlatCurve* hhcurve, bool hhutili); + void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, + const struct cont_params &cp, FlatCurve* hhcurve, bool hhutili); void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, + void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const struct cont_params &cp, int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, int W_ab, int H_ab, const bool useChannelA); - void Evaluate2(wavelet_decomposition &WaveletCoeffs_L, + void Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); void Eval2(float ** WavCoeffs_L, int level, int W_L, int H_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index b9a8132e4..2a5a332aa 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -136,7 +136,7 @@ struct cont_params { int wavNestedLevels = 1; -void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, LUTf &wavclCurve, int skip) +void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const procparams::WaveletParams & waparams, const WavCurve & wavCLVCcurve, const WavOpacityCurveRG & waOpacityCurveRG, const WavOpacityCurveBY & waOpacityCurveBY, const WavOpacityCurveW & waOpacityCurveW, const WavOpacityCurveWL & waOpacityCurveWL, const LUTf &wavclCurve, int skip) { @@ -151,12 +151,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const {wiprof[2][0], wiprof[2][1], wiprof[2][2]} }; const short int imheight = lab->H, imwidth = lab->W; - LabImage *provradius = nullptr; - - if (waparams.softradend > 0.f && params->wavelet.expfinal) { - provradius = new LabImage(lab->W, lab->H); - provradius->CopyFrom(lab); - } struct cont_params cp; @@ -192,15 +186,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.diag = params->wavelet.tmr; cp.balan = (float)params->wavelet.balance; cp.ite = params->wavelet.iter; - cp.tonemap = false; + cp.tonemap = params->wavelet.tmrs != 0; cp.bam = false; - if (params->wavelet.tmrs == 0) { - cp.tonemap = false; - } else { - cp.tonemap = true; - } - if (params->wavelet.TMmethod == "cont") { cp.contmet = 1; } else if (params->wavelet.TMmethod == "tm") { @@ -1122,12 +1110,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } for (; col < rowWidth; col++) { - float a = labco->a[i1][col]; - float b = labco->b[i1][col]; - atan2Buffer[col] = xatan2f(b, a); - float Chprov1 = sqrtf(SQR(a) + SQR(b)); - yBuffer[col] = (Chprov1 == 0.f) ? 1.f : a / Chprov1; - xBuffer[col] = (Chprov1 == 0.f) ? 0.f : b / Chprov1; + float la = labco->a[i1][col]; + float lb = labco->b[i1][col]; + atan2Buffer[col] = xatan2f(lb, la); + float Chprov1 = sqrtf(SQR(la) + SQR(lb)); + yBuffer[col] = (Chprov1 == 0.f) ? 1.f : la / Chprov1; + xBuffer[col] = (Chprov1 == 0.f) ? 0.f : lb / Chprov1; chprovBuffer[col] = Chprov1 / 327.68f; } } @@ -1154,7 +1142,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const sincosv.x = (Chprov1 == 0.0f) ? 0.f : b / (Chprov1); Chprov1 /= 327.68f; #endif - L = labco->L[i1][j1]; const float Lin = labco->L[i1][j1]; if (wavclCurve && cp.finena) { @@ -1261,6 +1248,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } if (waparams.softradend > 0.f && cp.finena) { + LabImage *provradius = new LabImage(lab->W, lab->H); + provradius->CopyFrom(lab); + array2D ble(lab->W, lab->H); array2D guid(lab->W, lab->H); Imagefloat *tmpImage = nullptr; @@ -1328,11 +1318,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } delete tmpImage; - } - - if (waparams.softradend > 0.f && cp.finena) { delete provradius; - provradius = NULL; } #ifdef _DEBUG @@ -1443,7 +1429,7 @@ void ImProcFunctions::Sigma(float * RESTRICT DataList, int datalen, float avera } -void ImProcFunctions::Evaluate2(wavelet_decomposition &WaveletCoeffs_L, +void ImProcFunctions::Evaluate2(const wavelet_decomposition &WaveletCoeffs_L, float *mean, float *meanN, float *sigma, float *sigmaN, float *MaxP, float *MaxN) { //StopWatch Stop1("Evaluate2"); @@ -1661,7 +1647,7 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat } } -void ImProcFunctions::WaveletcontAllLfinal(wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) +void ImProcFunctions::WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) { int maxlvl = WaveletCoeffs_L.maxlevel(); float * WavCoeffs_L0 = WaveletCoeffs_L.coeff0; @@ -1677,12 +1663,12 @@ void ImProcFunctions::WaveletcontAllLfinal(wavelet_decomposition &WaveletCoeffs_ } -void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float **varchrom, wavelet_decomposition &WaveletCoeffs_L, +void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili) { - int maxlvl = WaveletCoeffs_L.maxlevel(); - int W_L = WaveletCoeffs_L.level_W(0); - int H_L = WaveletCoeffs_L.level_H(0); + const int maxlvl = WaveletCoeffs_L.maxlevel(); + const int W_L = WaveletCoeffs_L.level_W(0); + const int H_L = WaveletCoeffs_L.level_H(0); float * WavCoeffs_L0 = WaveletCoeffs_L.coeff0; float contrast = cp.contrast; @@ -1858,8 +1844,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * // I adapted the principle but have profoundly changed the algorithm // One can 1) change all parameters and found good parameters; //one can also change in calckoe - float edd = 3.f; - float eddlow = 15.f; + constexpr float edd = 3.f; + constexpr float eddlow = 15.f; float eddlipinfl = 0.005f * cp.edgsens + 0.4f; float eddlipampl = 1.f + cp.edgampl / 50.f; @@ -1878,11 +1864,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * for (int lvl = 0; lvl < 4; lvl++) { for (int dir = 1; dir < 4; dir++) { - int W_L = WaveletCoeffs_L.level_W(lvl); - int H_L = WaveletCoeffs_L.level_H(lvl); - float ** WavCoeffs_LL = WaveletCoeffs_L.level_coeffs(lvl); - calckoe(WavCoeffs_LL, cp, koeLi, lvl, dir, W_L, H_L, edd, maxkoeLi, tmC); + calckoe(WavCoeffs_LL, cp, koeLi, lvl, dir, WaveletCoeffs_L.level_W(lvl), WaveletCoeffs_L.level_H(lvl), edd, maxkoeLi, tmC); // return convolution KoeLi and maxkoeLi of level 0 1 2 3 and Dir Horiz, Vert, Diag } } @@ -2020,8 +2003,8 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } } -void ImProcFunctions::WaveletAandBAllAB(wavelet_decomposition &WaveletCoeffs_a, wavelet_decomposition &WaveletCoeffs_b, - struct cont_params &cp, FlatCurve* hhCurve, bool hhutili) +void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, + const struct cont_params &cp, FlatCurve* hhCurve, bool hhutili) { // StopWatch Stop1("WaveletAandBAllAB"); if (hhutili && cp.resena) { // H=f(H) @@ -2088,7 +2071,7 @@ void ImProcFunctions::WaveletAandBAllAB(wavelet_decomposition &WaveletCoeffs_a, } -void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float **varchrom, wavelet_decomposition &WaveletCoeffs_ab, const WavOpacityCurveW & waOpacityCurveW, +void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_ab, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, const bool useChannelA) { @@ -2393,7 +2376,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c } -void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, +void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const struct cont_params &cp, int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) { if (cp.diagcurv && cp.finena && MaxP[level] > 0.f && mean[level] != 0.f && sigma[level] != 0.f) { //curve @@ -2481,18 +2464,18 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, if (choiceDir == 0) { // All directions if (level != choicelevel) { // zero all for the levels != choicelevel - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_L * H_L; i++) { - WavCoeffs_L[dir][i] = 0.f; + WavCoeffs_L[d][i] = 0.f; } } } } else { // zero the unwanted directions for level == choicelevel if (choicelevel >= cp.maxilev) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_L * H_L; i++) { - WavCoeffs_L[dir][i] = 0.f; + WavCoeffs_L[d][i] = 0.f; } } } else if (level != choicelevel) { // zero all for the levels != choicelevel @@ -2504,9 +2487,9 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, } else if (choiceClevel == 1) { // Only below level if (choiceDir == 0) { // All directions if (level > choicelevel) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_L * H_L; i++) { - WavCoeffs_L[dir][i] = 0.f; + WavCoeffs_L[d][i] = 0.f; } } } @@ -2520,17 +2503,17 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, } else if (choiceClevel == 2) { // Only above level if (choiceDir == 0) { // All directions if (level <= choicelevel) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_L * H_L; i++) { - WavCoeffs_L[dir][i] = 0.f; + WavCoeffs_L[d][i] = 0.f; } } } } else { // zero the unwanted directions for level >= choicelevel if (choicelevel >= cp.maxilev) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_L * H_L; i++) { - WavCoeffs_L[dir][i] = 0.f; + WavCoeffs_L[d][i] = 0.f; } } } @@ -2560,13 +2543,13 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz scaleskip[sc] = scales[sc] / skip; } - float t_r = 40.f; - float t_l = 10.f; - float b_r = 75.f; - float edd = 3.f; - float eddstrength = 1.3f; - float aedstr = (eddstrength - 1.f) / 90.f; - float bedstr = 1.f - 10.f * aedstr; + constexpr float t_r = 40.f; + constexpr float t_l = 10.f; + constexpr float b_r = 75.f; + constexpr float edd = 3.f; + constexpr float eddstrength = 1.3f; + constexpr float aedstr = (eddstrength - 1.f) / 90.f; + constexpr float bedstr = 1.f - 10.f * aedstr; if (cp.val > 0 && cp.edgeena) { float * koe = nullptr; @@ -2664,19 +2647,18 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float lim0 = 20.f; //arbitrary limit for low radius and level between 2 or 3 to 30 maxi float lev = float (level); float repart = (float)cp.til; - float brepart; - if (cp.reinforce == 1) { - brepart = 3.f; - } - - if (cp.reinforce == 3) { - brepart = 0.5f; //arbitrary value to increase / decrease repart, between 1 and 0 - } - - float arepart = -(brepart - 1.f) / (lim0 / 60.f); if (cp.reinforce != 2) { + float brepart; + + if (cp.reinforce == 1) { + brepart = 3.f; + } else /*if (cp.reinforce == 3) */{ + brepart = 0.5f; //arbitrary value to increase / decrease repart, between 1 and 0 + } + float arepart = -(brepart - 1.f) / (lim0 / 60.f); + if (rad < lim0 / 60.f) { repart *= (arepart * rad + brepart); //linear repartition of repart } @@ -2787,32 +2769,31 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz // kmul about max ==> 9 // we can change these values // result is different not best or bad than threshold slider...but similar - float abssd = 4.f; //amplification reference - float bbssd = 2.f; //mini ampli - float maxamp = 2.5f; //maxi ampli at end - float maxampd = 10.f; //maxi ampli at end - float a_abssd = (maxamp - abssd) / 0.333f; - float b_abssd = maxamp - a_abssd; - float da_abssd = (maxampd - abssd) / 0.333f; - float db_abssd = maxampd - da_abssd; - float am = (abssd - bbssd) / 0.666f; + constexpr float abssd = 4.f; //amplification reference + constexpr float bbssd = 2.f; //mini ampli float kmuld = 0.f; if (absciss > 0.666f && absciss < 1.f) { + constexpr float maxamp = 2.5f; //maxi ampli at end + constexpr float maxampd = 10.f; //maxi ampli at end + constexpr float a_abssd = (maxamp - abssd) / 0.333f; + constexpr float b_abssd = maxamp - a_abssd; + constexpr float da_abssd = (maxampd - abssd) / 0.333f; + constexpr float db_abssd = maxampd - da_abssd; kmul = a_abssd * absciss + b_abssd; //about max ==> kinterm kmuld = da_abssd * absciss + db_abssd; } else { + constexpr float am = (abssd - bbssd) / 0.666f; kmul = kmuld = absciss * am + bbssd; } - kinterm = 1.f; - float kc = kmul * (wavCLVCcurve[absciss * 500.f] - 0.5f); - float kcd = kmuld * (wavCLVCcurve[absciss * 500.f] - 0.5f); + const float kc = kmul * (wavCLVCcurve[absciss * 500.f] - 0.5f); if (kc >= 0.f) { float reduceeffect = 0.6f; kinterm = 1.f + reduceeffect * kmul * (wavCLVCcurve[absciss * 500.f] - 0.5f); //about 1 to 3 general and big amplification for max (under 0) } else { + const float kcd = kmuld * (wavCLVCcurve[absciss * 500.f] - 0.5f); kinterm = 1.f - (SQR(kcd)) / 10.f; } @@ -2821,10 +2802,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } edge *= kinterm; - - if (edge < 1.f) { - edge = 1.f; - } + edge = rtengine::max(edge, 1.f); } WavCoeffs_L[dir][k] *= edge; @@ -3226,10 +3204,10 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float k1 = 600.f; float k2 = 300.f; float LL100 = labco->L[ii * 2][jj * 2] / 327.68f; - float aa = 4970.f; - float bb = -397000.f; - float b0 = 100000.f; - float a0 = -4970.f; + constexpr float aa = 4970.f; + constexpr float bb = -397000.f; + constexpr float b0 = 100000.f; + constexpr float a0 = -4970.f; if (LL100 > 80.f) { k1 = aa * LL100 + bb; @@ -3261,8 +3239,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } // to see each level of wavelet ...level from 0 to 8 - int choicelevel = params->wavelet.Lmethod - 1; - choicelevel = choicelevel == -1 ? 4 : choicelevel; +// int choicelevel = params->wavelet.Lmethod - 1; +// choicelevel = choicelevel == -1 ? 4 : choicelevel; } void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, float **varchrom, float ** WavCoeffs_ab, float * WavCoeffs_ab0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, @@ -3486,10 +3464,10 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f float k1 = 600.f; float k2 = 300.f; float LL100 = labco->L[ii * 2][jj * 2] / 327.68f; - float aa = 4970.f; - float bb = -397000.f; - float b0 = 100000.f; - float a0 = -4970.f; + constexpr float aa = 4970.f; + constexpr float bb = -397000.f; + constexpr float b0 = 100000.f; + constexpr float a0 = -4970.f; if (LL100 > 80.f) { k1 = aa * LL100 + bb; @@ -3563,17 +3541,17 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f if (choiceClevel == 0) { // Only one level if (choiceDir == 0) { // All directions if (level != choicelevel) { // zero all for the levels != choicelevel - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_ab * H_ab; i++) { - WavCoeffs_ab[dir][i] = 0.f; + WavCoeffs_ab[d][i] = 0.f; } } } } else { // zero the unwanted directions for level == choicelevel if (choicelevel >= cp.maxilev) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_ab * H_ab; i++) { - WavCoeffs_ab[dir][i] = 0.f; + WavCoeffs_ab[d][i] = 0.f; } } } else if (level != choicelevel) { // zero all for the levels != choicelevel @@ -3585,9 +3563,9 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } else if (choiceClevel == 1) { // Only below level if (choiceDir == 0) { // All directions if (level > choicelevel) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_ab * H_ab; i++) { - WavCoeffs_ab[dir][i] = 0.f; + WavCoeffs_ab[d][i] = 0.f; } } } @@ -3601,17 +3579,17 @@ void ImProcFunctions::ContAllAB(LabImage * labco, int maxlvl, float ** varhue, f } else if (choiceClevel == 2) { // Only above level if (choiceDir == 0) { // All directions if (level <= choicelevel) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_ab * H_ab; i++) { - WavCoeffs_ab[dir][i] = 0.f; + WavCoeffs_ab[d][i] = 0.f; } } } } else { // zero the unwanted directions for level >= choicelevel if (choicelevel >= cp.maxilev) { - for (int dir = 1; dir < 4; dir++) { + for (int d = 1; d < 4; d++) { for (int i = 0; i < W_ab * H_ab; i++) { - WavCoeffs_ab[dir][i] = 0.f; + WavCoeffs_ab[d][i] = 0.f; } } } else if (level <= choicelevel) { From b4084b2c86599495c2e234660a9a79d32b8a3c7a Mon Sep 17 00:00:00 2001 From: Beep6581 Date: Tue, 25 Feb 2020 21:27:11 +0100 Subject: [PATCH 299/453] Disable macOS GitHub action until fixed --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 46808ae40..13aa6677a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,5 +1,8 @@ name: macOS build -on: push +on: + push: + branches-ignore: + - '**' jobs: build: runs-on: macos-latest From cb0f81d0a0749eacd02747ad34d4d2af70941336 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Tue, 25 Feb 2020 21:41:12 +0100 Subject: [PATCH 300/453] Use tabs for consistency and better formatting --- UpdateInfo.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index dfac6c07c..6fa8e289c 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -78,10 +78,10 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") message(STATUS "Build information:") - message(STATUS " Build OS: ${BUILDINFO_OS}") - message(STATUS " Build date: ${BUILDINFO_DATE}") - message(STATUS " Epoch: ${BUILDINFO_EPOCH}") - message(STATUS " UUID: ${BUILDINFO_UUID}") + message(STATUS " Build OS: ${BUILDINFO_OS}") + message(STATUS " Build date: ${BUILDINFO_DATE}") + message(STATUS " Epoch: ${BUILDINFO_EPOCH}") + message(STATUS " UUID: ${BUILDINFO_UUID}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") From 224659f47383b39cef8d06130b0e9169a2b915ac Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 26 Feb 2020 08:48:07 +0100 Subject: [PATCH 301/453] Change limit for b_r --- rtengine/ipwavelet.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 2a5a332aa..be26f431f 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -2865,7 +2865,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz // If we move sliders to the left, local contrast is reduced // if we move sliders to the right local contrast is increased // MaxP, MaxN, mean, sigma are calculated if necessary (val > 0) by evaluate2(), eval2(), aver() , sigma() - if (b_r < 100.f && cp.edg_max / b_r > 1.f) { //in case of b_r < 100 and slider move to right +// if (b_r < 100.f && cp.edg_max / b_r > 1.f) { //in case of b_r < 100 and slider move to right + if (cp.edg_max / b_r > 1.f) { //in case of b_r < 100 and slider move to right if (WavCoeffs_L[dir][k] > MaxPCompare * cp.edg_max / b_r) { edge *= edgMaxFsup; From f05c10ce55a1cf7c710962994837a0e13749158b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 26 Feb 2020 14:16:52 +0100 Subject: [PATCH 302/453] ipwavelet.cc : cleanup, speedup, reduced memory usage --- rtengine/color.cc | 20 +-- rtengine/color.h | 12 +- rtengine/improcfun.h | 8 +- rtengine/ipwavelet.cc | 372 +++++++++++++++--------------------------- 4 files changed, 156 insertions(+), 256 deletions(-) diff --git a/rtengine/color.cc b/rtengine/color.cc index cda92ef45..ed617057f 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -1725,6 +1725,13 @@ void Color::Lab2XYZ(float L, float a, float b, float &x, float &y, float &z) y = (LL > epskap) ? 65535.0f * fy * fy * fy : 65535.0f * LL / kappa; } +float Color::L2Y(float L) +{ + const float LL = L / 327.68f; + const float fy = (c1By116 * LL) + c16By116; // (L+16)/116 + return (LL > epskapf) ? 65535.f * fy * fy * fy : 65535.f * LL / kappaf; +} + void Color::L2XYZ(float L, float &x, float &y, float &z) // for black & white { float LL = L / 327.68f; @@ -1767,19 +1774,6 @@ inline float Color::computeXYZ2Lab(float f) } } - -inline float Color::computeXYZ2LabY(float f) -{ - if (f < 0.f) { - return 327.68 * (kappa * f / MAXVALF); - } else if (f > 65535.f) { - return 327.68f * (116.f * xcbrtf(f / MAXVALF) - 16.f); - } else { - return cachefy[f]; - } -} - - void Color::RGB2Lab(float *R, float *G, float *B, float *L, float *a, float *b, const float wp[3][3], int width) { diff --git a/rtengine/color.h b/rtengine/color.h index 78198bc66..79250819b 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -101,7 +101,6 @@ private: #endif static float computeXYZ2Lab(float f); - static float computeXYZ2LabY(float f); public: @@ -185,6 +184,16 @@ public: static void init (); static void cleanup (); + static inline float computeXYZ2LabY(float f) + { + if (f < 0.f) { + return 327.68 * (kappa * f / MAXVALF); + } else if (f > 65535.f) { + return 327.68f * (116.f * xcbrtf(f / MAXVALF) - 16.f); + } else { + return cachefy[f]; + } + } /** * @brief Extract luminance "sRGB" from red/green/blue values @@ -610,6 +619,7 @@ public: */ static void Lab2XYZ(float L, float a, float b, float &x, float &y, float &z); static void L2XYZ(float L, float &x, float &y, float &z); + static float L2Y(float L); #ifdef __SSE2__ static void Lab2XYZ(vfloat L, vfloat a, vfloat b, vfloat &x, vfloat &y, vfloat &z); diff --git a/rtengine/improcfun.h b/rtengine/improcfun.h index ebafa3d71..a06670b72 100644 --- a/rtengine/improcfun.h +++ b/rtengine/improcfun.h @@ -204,14 +204,14 @@ public: void WaveletcontAllL(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_L, struct cont_params &cp, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); + void WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void WaveletcontAllAB(LabImage * lab, float **varhue, float **varchrom, const wavelet_decomposition &WaveletCoeffs_a, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, const bool useChannelA); void WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, - const struct cont_params &cp, FlatCurve* hhcurve, bool hhutili); + const cont_params &cp, FlatCurve* hhcurve, bool hhutili); void ContAllL(float **koeLi, float *maxkoeLi, bool lipschitz, int maxlvl, LabImage * lab, float **varhue, float **varchrom, float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, struct cont_params &cp, int W_L, int H_L, int skip, float *mean, float *sigma, float *MaxP, float *MaxN, const WavCurve & wavCLVCcurve, const WavOpacityCurveW & waOpacityCurveW, FlatCurve* ChCurve, bool Chutili); - void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const struct cont_params &cp, + void finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp, int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL); void ContAllAB(LabImage * lab, int maxlvl, float **varhue, float **varchrom, float ** WavCoeffs_a, float * WavCoeffs_a0, int level, int dir, const WavOpacityCurveW & waOpacityCurveW, struct cont_params &cp, int W_ab, int H_ab, const bool useChannelA); @@ -222,7 +222,7 @@ public: void Aver(float * HH_Coeffs, int datalen, float &averagePlus, float &averageNeg, float &max, float &min); void Sigma(float * HH_Coeffs, int datalen, float averagePlus, float averageNeg, float &sigmaPlus, float &sigmaNeg); - void calckoe(float ** WavCoeffs_LL, const struct cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr); + void calckoe(float ** WavCoeffs_LL, const cont_params& cp, float ** koeLi, int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC = nullptr); diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index be26f431f..8da9eb50f 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -26,8 +26,6 @@ #include #include -#include "../rtgui/threadutils.h" - #include "array2D.h" #include "color.h" #include "curves.h" @@ -44,7 +42,6 @@ #include "sleef.h" #include "../rtgui/options.h" #include "guidedfilter.h" -#include "imagefloat.h" #ifdef _OPENMP #include #endif @@ -150,7 +147,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, {wiprof[2][0], wiprof[2][1], wiprof[2][2]} }; - const short int imheight = lab->H, imwidth = lab->W; + const int imheight = lab->H, imwidth = lab->W; struct cont_params cp; @@ -158,26 +155,18 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.Medgreinf == "more") { cp.reinforce = 1; - } - - if (params->wavelet.Medgreinf == "none") { + } else if (params->wavelet.Medgreinf == "none") { cp.reinforce = 2; - } - - if (params->wavelet.Medgreinf == "less") { + } else if (params->wavelet.Medgreinf == "less") { cp.reinforce = 3; } if (params->wavelet.NPmethod == "none") { cp.lip3 = false; - } - - if (params->wavelet.NPmethod == "low") { + } else if (params->wavelet.NPmethod == "low") { cp.lip3 = true; cp.neigh = 0; - } - - if (params->wavelet.NPmethod == "high") { + } else if (params->wavelet.NPmethod == "high") { cp.lip3 = true; cp.neigh = 1; } @@ -197,19 +186,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.BAmethod != "none") { cp.bam = true; + if (params->wavelet.BAmethod == "sli") { + cp.BAmet = 1; + } else if (params->wavelet.BAmethod == "cur") { + cp.BAmet = 2; + } } - if (params->wavelet.BAmethod == "sli") { - cp.BAmet = 1; - } - - if (params->wavelet.BAmethod == "cur") { - cp.BAmet = 2; - } cp.sigm = params->wavelet.sigma; cp.tmstrength = params->wavelet.tmrs; - //cp.tonemap = params->wavelet.tmr; cp.contena = params->wavelet.expcontrast; cp.chromena = params->wavelet.expchroma; cp.edgeena = params->wavelet.expedge; @@ -220,13 +206,9 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.Backmethod == "black") { cp.backm = 0; - } - - if (params->wavelet.Backmethod == "grey") { + } else if (params->wavelet.Backmethod == "grey") { cp.backm = 1; - } - - if (params->wavelet.Backmethod == "resid") { + } else if (params->wavelet.Backmethod == "resid") { cp.backm = 2; } @@ -243,8 +225,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.edgampl = (float) params->wavelet.edgeampli; } - //int N = imheight * imwidth; - int maxmul = params->wavelet.thres; + const int maxmul = params->wavelet.thres; cp.maxilev = maxmul; static const float scales[10] = {1.f, 2.f, 4.f, 8.f, 16.f, 32.f, 64.f, 128.f, 256.f, 512.f}; float scaleskip[10]; @@ -253,42 +234,30 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const scaleskip[sc] = scales[sc] / skip; } - float atten0 = 0.40f; - float atten123 = 0.90f; + constexpr float atten0 = 0.40f; + constexpr float atten123 = 0.90f; //int DaubLen = settings->daubech ? 8 : 6; int DaubLen; if (params->wavelet.daubcoeffmethod == "2_") { DaubLen = 4; - } - - if (params->wavelet.daubcoeffmethod == "4_") { + } else if (params->wavelet.daubcoeffmethod == "4_") { DaubLen = 6; - } - - if (params->wavelet.daubcoeffmethod == "6_") { + } else if (params->wavelet.daubcoeffmethod == "6_") { DaubLen = 8; - } - - if (params->wavelet.daubcoeffmethod == "10_") { + } else if (params->wavelet.daubcoeffmethod == "10_") { DaubLen = 12; - } - - if (params->wavelet.daubcoeffmethod == "14_") { + } else /* if (params->wavelet.daubcoeffmethod == "14_") */{ DaubLen = 16; } cp.CHSLmet = 1; -// if(params->wavelet.CHSLmethod=="SL") cp.CHSLmet=1; -// if(params->wavelet.CHSLmethod=="CU") cp.CHSLmet=2; cp.EDmet = 1; if (params->wavelet.EDmethod == "SL") { cp.EDmet = 1; - } - - if (params->wavelet.EDmethod == "CU") { + } else if (params->wavelet.EDmethod == "CU") { cp.EDmet = 2; } @@ -310,9 +279,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if (params->wavelet.CHmethod == "with") { cp.CHmet = 1; - } - - if (params->wavelet.CHmethod == "link") { + } else if (params->wavelet.CHmethod == "link") { cp.CHmet = 2; } @@ -320,7 +287,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.HSmet = true; } - cp.strength = min(1.f, max(0.f, ((float)params->wavelet.strength / 100.f))); + cp.strength = rtengine::min(1.f, rtengine::max(0.f, ((float)params->wavelet.strength / 100.f))); for (int m = 0; m < maxmul; m++) { cp.mulC[m] = waparams.ch[m]; @@ -444,7 +411,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.t_rsl = static_cast(params->wavelet.bllev.getTopRight()); cp.numlevS = params->wavelet.threshold2; int maxlevS = 9 - cp.numlevH; - cp.numlevS = MIN(cp.numlevS, maxlevS); + cp.numlevS = rtengine::min(cp.numlevS, maxlevS); //printf("levHigh=%d levShad=%d\n",cp.numlevH,cp.numlevS); //highlight cp.b_lhl = static_cast(params->wavelet.hllev.getBottomLeft()); @@ -479,7 +446,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const cp.detectedge = params->wavelet.medianlev; //printf("low=%f mean=%f sd=%f max=%f\n",cp.edg_low,cp.edg_mean,cp.edg_sd,cp.edg_max); - int minwin = min(imwidth, imheight); + int minwin = rtengine::min(imwidth, imheight); int maxlevelcrop = 9; if (cp.mul[9] != 0) { @@ -515,10 +482,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const levwav = 10; } - levwav = min(maxlevelcrop, levwav); + levwav = rtengine::min(maxlevelcrop, levwav); // determine number of levels to process. - // for(levwav=min(maxlevelcrop,levwav);levwav>0;levwav--) + // for(levwav=rtengine::min(maxlevelcrop,levwav);levwav>0;levwav--) // if(cp.mul[levwav-1]!=0.f || cp.curv) // if(cp.mul[levwav-1]!=0.f) // break; @@ -566,7 +533,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //now we have tile dimensions, overlaps //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - int minsizetile = min(tilewidth, tileheight); + int minsizetile = rtengine::min(tilewidth, tileheight); int maxlev2 = 10; if (minsizetile < 1024 && levwav == 10) { @@ -585,7 +552,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const maxlev2 = 6; } - levwav = min(maxlev2, levwav); + levwav = rtengine::min(maxlev2, levwav); //printf("levwav = %d\n",levwav); #ifdef _OPENMP @@ -629,13 +596,13 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // Calculate number of tiles. If less than omp_get_max_threads(), then limit num_threads to number of tiles if (options.rgbDenoiseThreadLimit > 0) { - maxnumberofthreadsforwavelet = min(max(options.rgbDenoiseThreadLimit / 2, 1), maxnumberofthreadsforwavelet); + maxnumberofthreadsforwavelet = rtengine::min(rtengine::max(options.rgbDenoiseThreadLimit / 2, 1), maxnumberofthreadsforwavelet); } - numthreads = MIN(numtiles, omp_get_max_threads()); + numthreads = rtengine::min(numtiles, omp_get_max_threads()); if (maxnumberofthreadsforwavelet > 0) { - numthreads = MIN(numthreads, maxnumberofthreadsforwavelet); + numthreads = rtengine::min(numthreads, maxnumberofthreadsforwavelet); } #ifdef _OPENMP @@ -669,26 +636,22 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float MaxP[10]; float MaxN[10]; + array2D varchro(tilewidth, tileheight); + float** varhue = new float*[tileheight]; for (int i = 0; i < tileheight; i++) { varhue[i] = new float[tilewidth]; } - float** varchro = new float*[tileheight]; - - for (int i = 0; i < tileheight; i++) { - varchro[i] = new float[tilewidth]; - } - #ifdef _OPENMP #pragma omp for schedule(dynamic) collapse(2) #endif for (int tiletop = 0; tiletop < imheight; tiletop += tileHskip) { for (int tileleft = 0; tileleft < imwidth ; tileleft += tileWskip) { - int tileright = MIN(imwidth, tileleft + tilewidth); - int tilebottom = MIN(imheight, tiletop + tileheight); + int tileright = rtengine::min(imwidth, tileleft + tilewidth); + int tilebottom = rtengine::min(imheight, tiletop + tileheight); int width = tileright - tileleft; int height = tilebottom - tiletop; LabImage * labco; @@ -718,36 +681,31 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const #endif for (int i = tiletop; i < tilebottom; i++) { - int i1 = i - tiletop; - int j; + const int i1 = i - tiletop; + int j = tileleft; #ifdef __SSE2__ - __m128 c327d68v = _mm_set1_ps(327.68f); - __m128 av, bv, huev, chrov; + const vfloat c327d68v = F2V(327.68f); - for (j = tileleft; j < tileright - 3; j += 4) { - int j1 = j - tileleft; - av = LVFU(lab->a[i][j]); - bv = LVFU(lab->b[i][j]); - huev = xatan2f(bv, av); - chrov = vsqrtf(SQRV(av) + SQRV(bv)) / c327d68v; - _mm_storeu_ps(&varhue[i1][j1], huev); - _mm_storeu_ps(&varchro[i1][j1], chrov); + for (; j < tileright - 3; j += 4) { + const int j1 = j - tileleft; + const vfloat av = LVFU(lab->a[i][j]); + const vfloat bv = LVFU(lab->b[i][j]); + STVFU(varhue[i1][j1], xatan2f(bv, av)); + STVFU(varchro[i1][j1], vsqrtf(SQRV(av) + SQRV(bv)) / c327d68v); if (labco != lab) { - _mm_storeu_ps(&(labco->L[i1][j1]), LVFU(lab->L[i][j])); - _mm_storeu_ps(&(labco->a[i1][j1]), av); - _mm_storeu_ps(&(labco->b[i1][j1]), bv); + STVFU((labco->L[i1][j1]), LVFU(lab->L[i][j])); + STVFU((labco->a[i1][j1]), av); + STVFU((labco->b[i1][j1]), bv); } } -#else - j = tileleft; #endif for (; j < tileright; j++) { - int j1 = j - tileleft; - float a = lab->a[i][j]; - float b = lab->b[i][j]; + const int j1 = j - tileleft; + const float a = lab->a[i][j]; + const float b = lab->b[i][j]; varhue[i1][j1] = xatan2f(b, a); varchro[i1][j1] = (sqrtf(a * a + b * b)) / 327.68f; @@ -856,7 +814,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // if(levwavL < 3) levwavL=3;//to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! // } if (levwavL > 0) { - wavelet_decomposition* Ldecomp = new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, max(1, wavNestedLevels), DaubLen); + wavelet_decomposition* Ldecomp = new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); if (!Ldecomp->memoryAllocationFailed) { @@ -904,10 +862,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const if ((cp.lev0n > 0.1f || cp.lev1n > 0.1f || cp.lev2n > 0.1f || cp.lev3n > 0.1f) && cp.noiseena) { int edge = 1; - vari[0] = max(0.0001f, vari[0]); - vari[1] = max(0.0001f, vari[1]); - vari[2] = max(0.0001f, vari[2]); - vari[3] = max(0.0001f, vari[3]); + vari[0] = rtengine::max(0.0001f, vari[0]); + vari[1] = rtengine::max(0.0001f, vari[1]); + vari[2] = rtengine::max(0.0001f, vari[2]); + vari[3] = rtengine::max(0.0001f, vari[3]); float* noisevarlum = nullptr; // we need a dummy to pass it to WaveletDenoiseAllL WaveletDenoiseAllL(*Ldecomp, noisevarlum, madL, vari, edge); @@ -968,7 +926,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //printf("Levwava after: %d\n",levwava); if (levwava > 0) { - wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, max(1, wavNestedLevels), DaubLen); + wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); if (!adecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); @@ -989,7 +947,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // printf("Levwavb after: %d\n",levwavb); if (levwavb > 0) { - wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, max(1, wavNestedLevels), DaubLen); + wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); if (!bdecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *bdecomp, waOpacityCurveW, cp, false); @@ -1010,8 +968,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // printf("Levwavab after: %d\n",levwavab); if (levwavab > 0) { - wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, max(1, wavNestedLevels), DaubLen); - wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, max(1, wavNestedLevels), DaubLen); + wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); + wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); @@ -1074,35 +1032,31 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const #endif for (int i = tiletop; i < tilebottom; i++) { - int i1 = i - tiletop; + const int i1 = i - tiletop; float L, a, b; #ifdef __SSE2__ - int rowWidth = tileright - tileleft; + const int rowWidth = tileright - tileleft; float atan2Buffer[rowWidth] ALIGNED64; float chprovBuffer[rowWidth] ALIGNED64; float xBuffer[rowWidth] ALIGNED64; float yBuffer[rowWidth] ALIGNED64; if (cp.avoi) { - int col; - __m128 av, bv; - __m128 cv, yv, xv; - __m128 zerov = _mm_setzero_ps(); - __m128 onev = _mm_set1_ps(1.f); - __m128 c327d68v = _mm_set1_ps(327.68f); - vmask xyMask; + int col = 0; + const vfloat onev = F2V(1.f); + const vfloat c327d68v = F2V(327.68f); - for (col = 0; col < rowWidth - 3; col += 4) { - av = LVFU(labco->a[i1][col]); - bv = LVFU(labco->b[i1][col]); + for (; col < rowWidth - 3; col += 4) { + const vfloat av = LVFU(labco->a[i1][col]); + const vfloat bv = LVFU(labco->b[i1][col]); STVF(atan2Buffer[col], xatan2f(bv, av)); - cv = vsqrtf(SQRV(av) + SQRV(bv)); - yv = av / cv; - xv = bv / cv; - xyMask = vmaskf_eq(zerov, cv); + const vfloat cv = vsqrtf(SQRV(av) + SQRV(bv)); + vfloat yv = av / cv; + vfloat xv = bv / cv; + const vmask xyMask = vmaskf_eq(ZEROV, cv); yv = vself(xyMask, onev, yv); - xv = vself(xyMask, zerov, xv); + xv = vselfnotzero(xyMask, xv); STVF(yBuffer[col], yv); STVF(xBuffer[col], xv); STVF(chprovBuffer[col], cv / c327d68v); @@ -1110,10 +1064,10 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } for (; col < rowWidth; col++) { - float la = labco->a[i1][col]; - float lb = labco->b[i1][col]; + const float la = labco->a[i1][col]; + const float lb = labco->b[i1][col]; atan2Buffer[col] = xatan2f(lb, la); - float Chprov1 = sqrtf(SQR(la) + SQR(lb)); + const float Chprov1 = sqrtf(SQR(la) + SQR(lb)); yBuffer[col] = (Chprov1 == 0.f) ? 1.f : la / Chprov1; xBuffer[col] = (Chprov1 == 0.f) ? 0.f : lb / Chprov1; chprovBuffer[col] = Chprov1 / 327.68f; @@ -1123,7 +1077,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const #endif for (int j = tileleft; j < tileright; j++) { - int j1 = j - tileleft; + const int j1 = j - tileleft; if (cp.avoi) { //Gamut and Munsell #ifdef __SSE2__ @@ -1168,7 +1122,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const float correctionHue = 0.0f; // Munsell's correction float correctlum = 0.0f; Lprov1 = L / 327.68f; - float Chprov = sqrtf(SQR(a) + SQR(b)) / 327.68f; + const float Chprov = sqrtf(SQR(a) + SQR(b)) / 327.68f; #ifdef _DEBUG Color::AllMunsellLch(true, Lprov1, Lprov2, HH, Chprov, memChprov, correctionHue, correctlum, MunsDebugInfo); #else @@ -1176,7 +1130,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const #endif if (correctionHue != 0.f || correctlum != 0.f) { // only calculate sin and cos if HH changed - if (fabs(correctionHue) < 0.015f) { + if (std::fabs(correctionHue) < 0.015f) { HH += correctlum; // correct only if correct Munsell chroma very little. } @@ -1230,13 +1184,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } delete [] varhue; - - for (int i = 0; i < tileheight; i++) { - delete [] varchro[i]; - } - - delete [] varchro; - } #ifdef _OPENMP omp_set_nested(oldNested); @@ -1248,13 +1195,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } if (waparams.softradend > 0.f && cp.finena) { - LabImage *provradius = new LabImage(lab->W, lab->H); - provradius->CopyFrom(lab); - array2D ble(lab->W, lab->H); array2D guid(lab->W, lab->H); - Imagefloat *tmpImage = nullptr; - tmpImage = new Imagefloat(lab->W, lab->H); bool multiTh = false; @@ -1264,61 +1206,35 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const multiTh = true; } -#endif - -#ifdef _OPENMP #pragma omp parallel for #endif - for (int ir = 0; ir < lab->H; ir++) + for (int ir = 0; ir < lab->H; ir++) { for (int jr = 0; jr < lab->W; jr++) { - float X, Y, Z; - float L = provradius->L[ir][jr]; - float a = provradius->a[ir][jr]; - float b = provradius->b[ir][jr]; - Color::Lab2XYZ(L, a, b, X, Y, Z); - - guid[ir][jr] = Y / 32768.f; - float La = dst->L[ir][jr]; - float aa = dst->a[ir][jr]; - float ba = dst->b[ir][jr]; - Color::Lab2XYZ(La, aa, ba, X, Y, Z); - tmpImage->r(ir, jr) = X; - tmpImage->g(ir, jr) = Y; - tmpImage->b(ir, jr) = Z; - ble[ir][jr] = Y / 32768.f; - + guid[ir][jr] = Color::L2Y(lab->L[ir][jr]) / 32768.f; + ble[ir][jr] = Color::L2Y(dst->L[ir][jr]) / 32768.f; } + } - double epsilmax = 0.001; - double epsilmin = 0.0001; - double aepsil = (epsilmax - epsilmin) / 90.f; - double bepsil = epsilmax - 100.f * aepsil; - double epsil = aepsil * waparams.softradend + bepsil; + constexpr double epsilmax = 0.001; + constexpr double epsilmin = 0.0001; + constexpr double aepsil = (epsilmax - epsilmin) / 90.f; + constexpr double bepsil = epsilmax - 100.f * aepsil; + const double epsil = aepsil * waparams.softradend + bepsil; - float blur = 10.f / scale * (0.001f + 0.8f * waparams.softradend); + const float blur = 10.f / scale * (0.001f + 0.8f * waparams.softradend); rtengine::guidedFilter(guid, ble, ble, blur, epsil, multiTh); - - #ifdef _OPENMP #pragma omp parallel for #endif - for (int ir = 0; ir < lab->H; ir++) + for (int ir = 0; ir < lab->H; ir++) { for (int jr = 0; jr < lab->W; jr++) { - float X = tmpImage->r(ir, jr); - float Y = 32768.f * ble[ir][jr]; - float Z = tmpImage->b(ir, jr); - float L, a, b; - Color::XYZ2Lab(X, Y, Z, L, a, b); - - dst->L[ir][jr] = L; + dst->L[ir][jr] = Color::computeXYZ2LabY(32768.f * ble[ir][jr]); } - - delete tmpImage; - delete provradius; + } } #ifdef _DEBUG @@ -1327,21 +1243,16 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const } -#undef TS -#undef fTS -#undef offset -#undef epsilon - -void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averagePlus, float &averageNeg, float &max, float &min) +void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &averagePlus, float &averageNeg, float &max, float &min) { //find absolute mean int countP = 0, countN = 0; double averaP = 0.0, averaN = 0.0; // use double precision for large summations - float thres = 5.f;//different fom zero to take into account only data large enough + constexpr float thres = 5.f;//different fom zero to take into account only data large enough max = 0.f; - min = 0.f; + min = RT_INFINITY_F; #ifdef _OPENMP #pragma omp parallel num_threads(wavNestedLevels) if(wavNestedLevels>1) #endif @@ -1354,19 +1265,11 @@ void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &avera for (int i = 0; i < datalen; i++) { if (DataList[i] >= thres) { averaP += static_cast(DataList[i]); - - if (DataList[i] > lmax) { - lmax = DataList[i]; - } - + lmax = rtengine::max(lmax, DataList[i]); countP++; } else if (DataList[i] < -thres) { averaN += static_cast(DataList[i]); - - if (DataList[i] < lmin) { - lmin = DataList[i]; - } - + lmin = rtengine::min(lmin, DataList[i]); countN++; } } @@ -1375,8 +1278,8 @@ void ImProcFunctions::Aver(float * RESTRICT DataList, int datalen, float &avera #pragma omp critical #endif { - max = max > lmax ? max : lmax; - min = min < lmin ? min : lmin; + max = rtengine::max(max, lmax); + min = rtengine::min(min, lmin); } } @@ -1521,7 +1424,7 @@ void ImProcFunctions::CompressDR(float *Source, int W_L, int H_L, float Compress #pragma omp parallel #endif { - vfloat exponentv = F2V(exponent); + const vfloat exponentv = F2V(exponent); #ifdef _OPENMP #pragma omp for #endif @@ -1647,7 +1550,7 @@ void ImProcFunctions::EPDToneMapResid(float * WavCoeffs_L0, unsigned int Iterat } } -void ImProcFunctions::WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const struct cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) +void ImProcFunctions::WaveletcontAllLfinal(const wavelet_decomposition &WaveletCoeffs_L, const cont_params &cp, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) { int maxlvl = WaveletCoeffs_L.maxlevel(); float * WavCoeffs_L0 = WaveletCoeffs_L.coeff0; @@ -2004,7 +1907,7 @@ void ImProcFunctions::WaveletcontAllL(LabImage * labco, float ** varhue, float * } void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoeffs_a, const wavelet_decomposition &WaveletCoeffs_b, - const struct cont_params &cp, FlatCurve* hhCurve, bool hhutili) + const cont_params &cp, FlatCurve* hhCurve, bool hhutili) { // StopWatch Stop1("WaveletAandBAllAB"); if (hhutili && cp.resena) { // H=f(H) @@ -2031,12 +1934,10 @@ void ImProcFunctions::WaveletAandBAllAB(const wavelet_decomposition &WaveletCoef int k; for (k = 0; k < W_L - 3; k += 4) { - __m128 av = LVFU(WavCoeffs_a0[i * W_L + k]); - __m128 bv = LVFU(WavCoeffs_b0[i * W_L + k]); - __m128 huev = xatan2f(bv, av); - __m128 chrv = vsqrtf(SQRV(av) + SQRV(bv)); - STVF(huebuffer[k], huev); - STVF(chrbuffer[k], chrv); + const vfloat av = LVFU(WavCoeffs_a0[i * W_L + k]); + const vfloat bv = LVFU(WavCoeffs_b0[i * W_L + k]); + STVF(huebuffer[k], xatan2f(bv, av)); + STVF(chrbuffer[k], vsqrtf(SQRV(av) + SQRV(bv))); } for (; k < W_L; k++) { @@ -2217,7 +2118,7 @@ void ImProcFunctions::WaveletcontAllAB(LabImage * labco, float ** varhue, float //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& cp, float *koeLi[12], int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC) +void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const cont_params& cp, float *koeLi[12], int level, int dir, int W_L, int H_L, float edd, float *maxkoeLi, float **tmC) { int borderL = 2; @@ -2360,8 +2261,8 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c // float temp = WavCoeffs_LL[dir][i*W_L + j]; // if(temp>=0.f && temp < thr) temp = thr; // if(temp < 0.f && temp > -thr) temp = -thr; - float temp = max(fabsf(WavCoeffs_LL[dir][i * W_L + j]), thr); - koeLi[level * 3 + dir - 1][i * W_L + j] = min(thr2, fabs(tmC[i][j] / temp)); // limit maxi + float temp = rtengine::max(std::fabs(WavCoeffs_LL[dir][i * W_L + j]), thr); + koeLi[level * 3 + dir - 1][i * W_L + j] = rtengine::min(thr2, std::fabs(tmC[i][j] / temp)); // limit maxi //it will be more complicated to calculate both Wh and Wv, but we have also Wd==> pseudo Lipschitz if (koeLi[level * 3 + dir - 1][i * W_L + j] > maxkoeLi[level * 3 + dir - 1]) { @@ -2376,7 +2277,7 @@ void ImProcFunctions::calckoe(float ** WavCoeffs_LL, const struct cont_params& c } -void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const struct cont_params &cp, +void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, int level, int dir, const cont_params &cp, int W_L, int H_L, float *mean, float *sigma, float *MaxP, const WavOpacityCurveWL & waOpacityCurveWL) { if (cp.diagcurv && cp.finena && MaxP[level] > 0.f && mean[level] != 0.f && sigma[level] != 0.f) { //curve @@ -2397,15 +2298,15 @@ void ImProcFunctions::finalContAllL(float ** WavCoeffs_L, float * WavCoeffs_L0, for (int i = 0; i < W_L * H_L; i++) { float absciss; - if (fabsf(WavCoeffs_L[dir][i]) >= (mean[level] + sigma[level])) { //for max - float valcour = xlogf(fabsf(WavCoeffs_L[dir][i])); + if (std::fabs(WavCoeffs_L[dir][i]) >= (mean[level] + sigma[level])) { //for max + float valcour = xlogf(std::fabs(WavCoeffs_L[dir][i])); float valc = valcour - logmax; float vald = valc * rap; absciss = xexpf(vald); - } else if (fabsf(WavCoeffs_L[dir][i]) >= mean[level]) { - absciss = asig * fabsf(WavCoeffs_L[dir][i]) + bsig; + } else if (std::fabs(WavCoeffs_L[dir][i]) >= mean[level]) { + absciss = asig * std::fabs(WavCoeffs_L[dir][i]) + bsig; } else { - absciss = amean * fabsf(WavCoeffs_L[dir][i]); + absciss = amean * std::fabs(WavCoeffs_L[dir][i]); } float kc = waOpacityCurveWL[absciss * 500.f] - 0.5f; @@ -2606,11 +2507,9 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz temp = -thr; } - koe[i * W_L + j] = min(thr2, fabs(tmC[i][j] / temp)); + koe[i * W_L + j] = rtengine::min(thr2, std::fabs(tmC[i][j] / temp)); - if (koe[i * W_L + j] > maxkoe) { - maxkoe = koe[i * W_L + j]; - } + maxkoe = rtengine::max(maxkoe, koe[i * W_L + j]); float diff = maxkoe - koe[i * W_L + j]; diff *= (cp.eddet / 100.f); @@ -2650,14 +2549,11 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz if (cp.reinforce != 2) { - float brepart; - - if (cp.reinforce == 1) { - brepart = 3.f; - } else /*if (cp.reinforce == 3) */{ - brepart = 0.5f; //arbitrary value to increase / decrease repart, between 1 and 0 - } - float arepart = -(brepart - 1.f) / (lim0 / 60.f); + const float brepart = + cp.reinforce == 1 + ? 3.f + : 0.5f; + const float arepart = -(brepart - 1.f) / (lim0 / 60.f); if (rad < lim0 / 60.f) { repart *= (arepart * rad + brepart); //linear repartition of repart @@ -2670,7 +2566,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float ak = -(al0 - al10) / 10.f; //10 = maximum levels float bk = al0; float koef = ak * level + bk; //modulate for levels : more levels high, more koef low ==> concentrated action on low levels, without or near for high levels - float expkoef = -pow(fabs(rad - lev), koef); //reduce effect for high levels + float expkoef = -std::pow(std::fabs(rad - lev), koef); //reduce effect for high levels if (cp.reinforce == 3) { if (rad < lim0 / 60.f && level == 0) { @@ -2750,16 +2646,16 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } if (cp.edgcurv) { - if (fabs(WavCoeffs_L[dir][k]) >= (mean[level] + sigma[level])) { //for max - float valcour = log(fabs(WavCoeffs_L[dir][k])); + if (std::fabs(WavCoeffs_L[dir][k]) >= (mean[level] + sigma[level])) { //for max + float valcour = xlogf(std::fabs(WavCoeffs_L[dir][k])); float valc = valcour - logmax; float vald = valc * rap; absciss = exp(vald); - } else if (fabs(WavCoeffs_L[dir][k]) >= mean[level] && fabs(WavCoeffs_L[dir][k]) < (mean[level] + sigma[level])) { - absciss = asig * fabs(WavCoeffs_L[dir][k]) + bsig; - } else if (fabs(WavCoeffs_L[dir][k]) < mean[level]) { - absciss = amean * fabs(WavCoeffs_L[dir][k]); + } else if (std::fabs(WavCoeffs_L[dir][k]) >= mean[level] && std::fabs(WavCoeffs_L[dir][k]) < (mean[level] + sigma[level])) { + absciss = asig * std::fabs(WavCoeffs_L[dir][k]) + bsig; + } else if (std::fabs(WavCoeffs_L[dir][k]) < mean[level]) { + absciss = amean * std::fabs(WavCoeffs_L[dir][k]); } // Threshold adjuster settings==> approximative for curve @@ -2897,8 +2793,8 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } } - if (fabs(WavCoeffs_L[dir][k]) >= edgeMeanCompare && fabs(WavCoeffs_L[dir][k]) < edgeSdCompare) { - //if (fabs(WavCoeffs_L[dir][i]) > edgeSdCompare) { + if (std::fabs(WavCoeffs_L[dir][k]) >= edgeMeanCompare && std::fabs(WavCoeffs_L[dir][k]) < edgeSdCompare) { + //if (std::fabs(WavCoeffs_L[dir][i]) > edgeSdCompare) { edge *= edgeSdFactor; if (edge < 1.f) { @@ -2906,7 +2802,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } }//modify effect if sd change - if (fabs(WavCoeffs_L[dir][k]) < edgeMeanCompare) { + if (std::fabs(WavCoeffs_L[dir][k]) < edgeMeanCompare) { edge *= edgeMeanFactor; if (edge < 1.f) { @@ -2914,7 +2810,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz } } // modify effect if mean change - if (fabs(WavCoeffs_L[dir][k]) < edgeLowCompare) { + if (std::fabs(WavCoeffs_L[dir][k]) < edgeLowCompare) { edge *= edgeLowFactor; if (edge < 1.f) { @@ -3004,7 +2900,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz if (cpMul < 0.f) { beta = 1.f; // disabled for negatives values "less contrast" } else { - float WavCL = fabsf(WavCoeffs_L[dir][i]); + float WavCL = std::fabs(WavCoeffs_L[dir][i]); //reduction amplification: max action between mean / 2 and mean + sigma // arbitrary coefficient, we can add a slider !! @@ -3041,7 +2937,7 @@ void ImProcFunctions::ContAllL(float *koeLi[12], float *maxkoeLi, bool lipschitz float LL = labco->L[ii * 2][jj * 2]; LL100 = LL100init = LL / 327.68f; LL100res = WavCoeffs_L0[i] / 327.68f; - float delta = fabs(LL100init - LL100res) / (maxlvl / 2); + float delta = std::fabs(LL100init - LL100res) / (maxlvl / 2); for (int ml = 0; ml < maxlvl; ml++) { if (ml < maxlvl / 2) { From 8cfc4e33af5b4720f50865a8270ecd904829a954 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 26 Feb 2020 15:22:28 +0100 Subject: [PATCH 303/453] partial fixed wrong old WB auto --- rtengine/improccoordinator.cc | 9 +++------ rtengine/procparams.cc | 23 ++++++++++++++++++++--- rtgui/ppversion.h | 2 +- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 0ed8b1f97..108dac114 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -37,6 +37,7 @@ #include "procparams.h" #include "refreshmap.h" #include "guidedfilter.h" +#include "../rtgui/version.h" #include "../rtgui/options.h" @@ -238,7 +239,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) // Check if any detail crops need high detail. If not, take a fast path short cut if (!highDetailNeeded) { for (size_t i = 0; i < crops.size(); i++) { - if (crops[i]->get_skip() == 1) { // skip=1 -> full resolution + if (crops[i]->get_skip() == 1) { // skip=1 -> full resolution highDetailNeeded = true; break; } @@ -255,10 +256,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) RAWParams rp = params->raw; ColorManagementParams cmp = params->icm; LCurveParams lcur = params->labCurve; - if (settings->verbose) { - printf("metwb2=%s \n", params->wb.method.c_str()); - } - + if (!highDetailNeeded) { // if below 100% magnification, take a fast path if (rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::NONE) && rp.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)) { @@ -424,7 +422,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (settings->verbose) { printf("automethod=%s \n", params->wb.method.c_str()); } - if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { MyMutex::MyLock initLock(minit); // Also used in crop window diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 7d83b50d2..fe3766287 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1305,6 +1305,8 @@ bool WBParams::operator !=(const WBParams& other) const const std::vector& WBParams::getWbEntries() { + + static const std::vector wb_entries = { {"Camera", WBEntry::Type::CAMERA, M("TP_WBALANCE_CAMERA"), 0, 1.f, 1.f, 0.f}, // {"Auto", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTO"), 0, 1.f, 1.f, 0.f}, @@ -1349,7 +1351,6 @@ const std::vector& WBParams::getWbEntries() // Should remain the last one {"Custom", WBEntry::Type::CUSTOM, M("TP_WBALANCE_CUSTOM"), 0, 1.f, 1.f, 0.f} }; - return wb_entries; } @@ -4164,10 +4165,26 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Vibrance", "PastSatTog", pedited, vibrance.pastsattog, pedited->vibrance.pastsattog); assignFromKeyfile(keyFile, "Vibrance", "SkinTonesCurve", pedited, vibrance.skintonescurve, pedited->vibrance.skintonescurve); } - if (keyFile.has_group("White Balance")) { assignFromKeyfile(keyFile, "White Balance", "Enabled", pedited, wb.enabled, pedited->wb.enabled); - assignFromKeyfile(keyFile, "White Balance", "Setting", pedited, wb.method, pedited->wb.method); + if (keyFile.has_key("White Balance", "Setting")) { +// if(ppVersion < 349) { + Glib::ustring prov = keyFile.get_string("White Balance", "Setting"); +// printf("Prov=%s\n", prov.c_str()); + if(prov == "Auto") { + printf("OK Auto\n"); + prov = "autold"; + wb.method = prov; + keyFile.set_string("White Balance", "Setting",wb.method ); + if (pedited) { + pedited->wb.method = true; + } + assignFromKeyfile(keyFile, "White Balance", "Setting", pedited, wb.method, pedited->wb.method); + + } else { + assignFromKeyfile(keyFile, "White Balance", "Setting", pedited, wb.method, pedited->wb.method); + } + } assignFromKeyfile(keyFile, "White Balance", "Temperature", pedited, wb.temperature, pedited->wb.temperature); assignFromKeyfile(keyFile, "White Balance", "Green", pedited, wb.green, pedited->wb.green); assignFromKeyfile(keyFile, "White Balance", "Equal", pedited, wb.equal, pedited->wb.equal); diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index 89f93ed44..3a4019b36 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -1,7 +1,7 @@ #pragma once // This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes -#define PPVERSION 346 +#define PPVERSION 349 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* From 4863c7a372ee8acb006d62addb28e902176c7e2f Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 26 Feb 2020 15:37:49 +0100 Subject: [PATCH 304/453] clean unused changes --- rtengine/improccoordinator.cc | 1 - 1 file changed, 1 deletion(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 108dac114..1115fa4fc 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -37,7 +37,6 @@ #include "procparams.h" #include "refreshmap.h" #include "guidedfilter.h" -#include "../rtgui/version.h" #include "../rtgui/options.h" From 5960899c048f0de0f36d6302e03b8791decc0d8b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 26 Feb 2020 16:36:00 +0100 Subject: [PATCH 305/453] Minor cleanup --- rtengine/color.h | 2 +- rtengine/ipwavelet.cc | 28 ++++++---------------------- 2 files changed, 7 insertions(+), 23 deletions(-) diff --git a/rtengine/color.h b/rtengine/color.h index 79250819b..3f63ad312 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -187,7 +187,7 @@ public: static inline float computeXYZ2LabY(float f) { if (f < 0.f) { - return 327.68 * (kappa * f / MAXVALF); + return 327.68f * (kappa * f / MAXVALF); } else if (f > 65535.f) { return 327.68f * (116.f * xcbrtf(f / MAXVALF) - 16.f); } else { diff --git a/rtengine/ipwavelet.cc b/rtengine/ipwavelet.cc index 8da9eb50f..758a9147b 100644 --- a/rtengine/ipwavelet.cc +++ b/rtengine/ipwavelet.cc @@ -596,7 +596,7 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // Calculate number of tiles. If less than omp_get_max_threads(), then limit num_threads to number of tiles if (options.rgbDenoiseThreadLimit > 0) { - maxnumberofthreadsforwavelet = rtengine::min(rtengine::max(options.rgbDenoiseThreadLimit / 2, 1), maxnumberofthreadsforwavelet); + maxnumberofthreadsforwavelet = rtengine::LIM(options.rgbDenoiseThreadLimit / 2, 1, maxnumberofthreadsforwavelet); } numthreads = rtengine::min(numtiles, omp_get_max_threads()); @@ -796,25 +796,18 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const ref0 = true; } - // printf("LevwavL before: %d\n",levwavL); if (cp.contrast == 0.f && !cp.tonemap && cp.conres == 0.f && cp.conresH == 0.f && cp.val == 0 && !ref0 && params->wavelet.CLmethod == "all") { // no processing of residual L or edge=> we probably can reduce the number of levels while (levwavL > 0 && cp.mul[levwavL - 1] == 0.f) { // cp.mul[level] == 0.f means no changes to level levwavL--; } } - // printf("LevwavL after: %d\n",levwavL); - // if(cp.noiseena){ if (levwavL < 4) { levwavL = 4; //to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! } - // } - // else { - // if(levwavL < 3) levwavL=3;//to allow edge => I always allocate 3 (4) levels..because if user select wavelet it is to do something !! - // } if (levwavL > 0) { - wavelet_decomposition* Ldecomp = new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); + const std::unique_ptr Ldecomp(new wavelet_decomposition(labco->data, labco->W, labco->H, levwavL, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!Ldecomp->memoryAllocationFailed) { @@ -896,8 +889,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const Ldecomp->reconstruct(labco->data, cp.strength); } - - delete Ldecomp; } //Flat curve for H=f(H) in residual image @@ -926,14 +917,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const //printf("Levwava after: %d\n",levwava); if (levwava > 0) { - wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); + const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwava, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); adecomp->reconstruct(labco->data + datalen, cp.strength); } - - delete adecomp; } int levwavb = levwav; @@ -947,14 +936,12 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // printf("Levwavb after: %d\n",levwavb); if (levwavb > 0) { - wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); + const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavb, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!bdecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *bdecomp, waOpacityCurveW, cp, false); bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); } - - delete bdecomp; } } else {// a and b int levwavab = levwav; @@ -968,8 +955,8 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const // printf("Levwavab after: %d\n",levwavab); if (levwavab > 0) { - wavelet_decomposition* adecomp = new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); - wavelet_decomposition* bdecomp = new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen); + const std::unique_ptr adecomp(new wavelet_decomposition(labco->data + datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); + const std::unique_ptr bdecomp(new wavelet_decomposition(labco->data + 2 * datalen, labco->W, labco->H, levwavab, 1, skip, rtengine::max(1, wavNestedLevels), DaubLen)); if (!adecomp->memoryAllocationFailed && !bdecomp->memoryAllocationFailed) { WaveletcontAllAB(labco, varhue, varchro, *adecomp, waOpacityCurveW, cp, true); @@ -980,9 +967,6 @@ void ImProcFunctions::ip_wavelet(LabImage * lab, LabImage * dst, int kall, const bdecomp->reconstruct(labco->data + 2 * datalen, cp.strength); } - - delete adecomp; - delete bdecomp; } } From 13e2bc41521f18c3bfbb425e431b7d855b18c4e8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Wed, 26 Feb 2020 18:32:32 +0100 Subject: [PATCH 306/453] White balance shows wrong method when opening a file which was set to Auto in 5.8, #5668 --- rtengine/procparams.cc | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index fe3766287..88178d0e0 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -4167,23 +4167,9 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) } if (keyFile.has_group("White Balance")) { assignFromKeyfile(keyFile, "White Balance", "Enabled", pedited, wb.enabled, pedited->wb.enabled); - if (keyFile.has_key("White Balance", "Setting")) { -// if(ppVersion < 349) { - Glib::ustring prov = keyFile.get_string("White Balance", "Setting"); -// printf("Prov=%s\n", prov.c_str()); - if(prov == "Auto") { - printf("OK Auto\n"); - prov = "autold"; - wb.method = prov; - keyFile.set_string("White Balance", "Setting",wb.method ); - if (pedited) { - pedited->wb.method = true; - } - assignFromKeyfile(keyFile, "White Balance", "Setting", pedited, wb.method, pedited->wb.method); - - } else { - assignFromKeyfile(keyFile, "White Balance", "Setting", pedited, wb.method, pedited->wb.method); - } + assignFromKeyfile(keyFile, "White Balance", "Setting", pedited, wb.method, pedited->wb.method); + if (wb.method == "Auto") { + wb.method = "autold"; } assignFromKeyfile(keyFile, "White Balance", "Temperature", pedited, wb.temperature, pedited->wb.temperature); assignFromKeyfile(keyFile, "White Balance", "Green", pedited, wb.green, pedited->wb.green); From d7234c5aacbbf3e68665b0e5b3a51d1e1e5e204b Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 27 Feb 2020 08:08:33 +0100 Subject: [PATCH 307/453] reinitialize ppversion --- rtgui/ppversion.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/ppversion.h b/rtgui/ppversion.h index 3a4019b36..89f93ed44 100644 --- a/rtgui/ppversion.h +++ b/rtgui/ppversion.h @@ -1,7 +1,7 @@ #pragma once // This number has to be incremented whenever the PP3 file format is modified or the behaviour of a tool changes -#define PPVERSION 349 +#define PPVERSION 346 #define PPVERSION_AEXP 301 //value of PPVERSION when auto exposure algorithm was modified /* From 32f3273a2a070db7e97f61f9c4fd95308d5b1b46 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 27 Feb 2020 08:50:08 +0100 Subject: [PATCH 308/453] Change some tooltips --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 59de4bb40..be3594a84 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1449,7 +1449,7 @@ TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's TP_COLORAPP_NEUTRAL;Reset TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values TP_COLORAPP_PRESETCAT02;Preset cat02 automatic -TP_COLORAPP_PRESETCAT02_TIP;Set combobox, sliders, temp, green so that Cat02 automatic is preset.\nYou must change Cat02 adaptation Viewing conditions if need, and other settings if need. +TP_COLORAPP_PRESETCAT02_TIP;Set combobox, sliders, temp, green so that Cat02 automatic is preset.\nYou must change Cat02 adaptation Viewing conditions if need.\nYou can change Temperature and Tint Viewing conditions if need, and other settings if need. TP_COLORAPP_RSTPRO;Red & skin-tones protection TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. TP_COLORAPP_SURROUND;Surround From 5a9f4309336fc392bc98c438cf350c8ef11f6f15 Mon Sep 17 00:00:00 2001 From: Morgan Hardwood Date: Thu, 27 Feb 2020 10:43:21 +0100 Subject: [PATCH 309/453] Update rtexif using ExifTool 11.89 --- rtexif/canonattribs.cc | 2 +- rtexif/olympusattribs.cc | 1 + rtexif/pentaxattribs.cc | 2 ++ rtexif/sonyminoltaattribs.cc | 2 ++ 4 files changed, 6 insertions(+), 1 deletion(-) diff --git a/rtexif/canonattribs.cc b/rtexif/canonattribs.cc index 636bf4328..a91b7266c 100644 --- a/rtexif/canonattribs.cc +++ b/rtexif/canonattribs.cc @@ -845,7 +845,7 @@ public: {195, "Canon EF 35-105mm f/4.5-5.6 USM"}, {196, "Canon EF 75-300mm f/4-5.6 USM"}, {197, "Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens"}, - {197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HS"}, + {197, "Sigma 18-300mm f/3.5-6.3 DC Macro OS HSM"}, {198, "Canon EF 50mm f/1.4 USM or Other Lens"}, {198, "Zeiss Otus 55mm f/1.4 ZE"}, {198, "Zeiss Otus 85mm f/1.4 ZE"}, diff --git a/rtexif/olympusattribs.cc b/rtexif/olympusattribs.cc index ec7ab98c7..52fbec55d 100644 --- a/rtexif/olympusattribs.cc +++ b/rtexif/olympusattribs.cc @@ -131,6 +131,7 @@ public: lenses["00 32 10"] = "Olympus M.Zuiko Digital ED 12-200mm f/3.5-6.3"; lenses["00 33 00"] = "Olympus Zuiko Digital 25mm f/2.8"; lenses["00 34 00"] = "Olympus Zuiko Digital ED 9-18mm f/4.0-5.6"; + lenses["00 34 10"] = "Olympus M.Zuiko Digital ED 12-45mm f/4.0 Pro"; lenses["00 35 00"] = "Olympus Zuiko Digital 14-54mm f/2.8-3.5 II"; lenses["01 01 00"] = "Sigma 18-50mm f/3.5-5.6 DC"; lenses["01 01 10"] = "Sigma 30mm f/2.8 EX DN"; diff --git a/rtexif/pentaxattribs.cc b/rtexif/pentaxattribs.cc index da940f5cb..d6b9a9c84 100644 --- a/rtexif/pentaxattribs.cc +++ b/rtexif/pentaxattribs.cc @@ -782,6 +782,7 @@ public: choices.insert (p_t (256 * 4 + 2, "smc PENTAX-FA 80-320mm f/4.5-5.6")); choices.insert (p_t (256 * 4 + 3, "smc PENTAX-FA 43mm f/1.9 Limited")); choices.insert (p_t (256 * 4 + 6, "smc PENTAX-FA 35-80mm f/4-5.6")); + choices.insert (p_t (256 * 4 + 8, "Irix 150mm f/2.8 Macro")); choices.insert (p_t (256 * 4 + 9, "Irix 11mm f/4 Firefly")); choices.insert (p_t (256 * 4 + 10, "Irix 15mm f/2.4")); choices.insert (p_t (256 * 4 + 12, "smc PENTAX-FA 50mm f/1.4")); @@ -938,6 +939,7 @@ public: choices.insert (p_t (256 * 8 + 62, "HD PENTAX-D FA 24-70mm f/2.8 ED SDM WR")); choices.insert (p_t (256 * 8 + 63, "HD PENTAX-D FA 15-30mm f/2.8 ED SDM WR")); choices.insert (p_t (256 * 8 + 64, "HD PENTAX-D FA* 50mm f/1.4 SDM AW")); + choices.insert (p_t (256 * 8 + 65, "HD PENTAX-D FA 70-210mm f/4 ED SDM WR")); choices.insert (p_t (256 * 8 + 196, "HD PENTAX-DA* 11-18mm f/2.8 ED DC AW")); choices.insert (p_t (256 * 8 + 197, "HD PENTAX-DA 55-300mm f/4.5-6.3 ED PLM WR RE")); choices.insert (p_t (256 * 8 + 198, "smc PENTAX-DA L 18-50mm f/4-5.6 DC WR RE")); diff --git a/rtexif/sonyminoltaattribs.cc b/rtexif/sonyminoltaattribs.cc index 88251b131..4c901b8c0 100644 --- a/rtexif/sonyminoltaattribs.cc +++ b/rtexif/sonyminoltaattribs.cc @@ -1126,6 +1126,7 @@ public: choices.insert (p_t (49458, "Tamron 17-28mm f/2.8 Di III RXD")); choices.insert (p_t (49459, "Tamron 35mm f/2.8 Di III OSD M1:2")); choices.insert (p_t (49460, "Tamron 24mm f/2.8 Di III OSD M1:2")); + choices.insert (p_t (49461, "Tamron 20mm f/2.8 Di III OSD M1:2")); choices.insert (p_t (49712, "Tokina FiRIN 20mm f/2 FE AF")); choices.insert (p_t (49713, "Tokina FiRIN 100mm f/2.8 FE MACRO")); choices.insert (p_t (50480, "Sigma 30mm f/1.4 DC DN | C")); @@ -1152,6 +1153,7 @@ public: choices.insert (p_t (50514, "Sigma 45mm f/2.8 DG DN | C")); choices.insert (p_t (50515, "Sigma 35mm f/1.2 DG DN | A")); choices.insert (p_t (50516, "Sigma 14-24mm f/2.8 DG DN | A")); + choices.insert (p_t (50517, "Sigma 24-70mm f/2.8 DG DN | A")); choices.insert (p_t (50992, "Voigtlander SUPER WIDE-HELIAR 15mm f/4.5 III")); choices.insert (p_t (50993, "Voigtlander HELIAR-HYPER WIDE 10mm f/5.6")); choices.insert (p_t (50994, "Voigtlander ULTRA WIDE-HELIAR 12mm f/5.6 III")); From 2bc9396569c574f1e5c41768dea947b8775ee9e5 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 27 Feb 2020 13:33:51 +0100 Subject: [PATCH 310/453] Fixed show wavelet levels --- rtengine/dcrop.cc | 4 ++-- rtengine/improccoordinator.cc | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index b9594a709..3e9e2a6a8 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1008,12 +1008,12 @@ void Crop::update(int todo) params.wavelet.CLmethod = provis; } - +/* if (!WaveParams.expclari && WaveParams.CLmethod != "all") { params.wavelet.CLmethod = "all"; params.wavelet.Backmethod = "grey"; } - +*/ if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = false; WaveParams.expchroma = false; diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 1115fa4fc..35834a976 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -906,12 +906,12 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->wavelet.CLmethod = provis; } - +/* if (!WaveParams.expclari && WaveParams.CLmethod != "all") { params->wavelet.CLmethod = "all"; params->wavelet.Backmethod = "grey"; } - +*/ if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = false; WaveParams.expchroma = false; From d2f78efd3266ba32a9c516a32ca1043392d53702 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 27 Feb 2020 14:20:28 +0100 Subject: [PATCH 311/453] improccoordinator.cc : be cppcheck clean --- rtengine/improccoordinator.cc | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 35834a976..6c9105036 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -351,7 +351,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) bayerAutoContrastListener->autoContrastChanged(contrastThreshold); } else if (imgsrc->getSensorType() == ST_FUJI_XTRANS && xtransAutoContrastListener && autoContrast) { - xtransAutoContrastListener->autoContrastChanged(autoContrast ? contrastThreshold : -1.0); + xtransAutoContrastListener->autoContrastChanged(contrastThreshold); } // if a demosaic happened we should also call getimage later, so we need to set the M_INIT flag todo |= (M_INIT | M_CSHARP); @@ -905,14 +905,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->wavelet.CLmethod = provis; - } -/* - if (!WaveParams.expclari && WaveParams.CLmethod != "all") { - params->wavelet.CLmethod = "all"; - params->wavelet.Backmethod = "grey"; - } -*/ - if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = false; WaveParams.expchroma = false; WaveParams.expedge = false; From 19b6e4ca68c440874411989e0a0a6f942d56827b Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 27 Feb 2020 14:30:59 +0100 Subject: [PATCH 312/453] dcrop.cc : be cppcheck clean --- rtengine/dcrop.cc | 8 -------- 1 file changed, 8 deletions(-) diff --git a/rtengine/dcrop.cc b/rtengine/dcrop.cc index 3e9e2a6a8..243ea1b62 100644 --- a/rtengine/dcrop.cc +++ b/rtengine/dcrop.cc @@ -1007,14 +1007,6 @@ void Crop::update(int todo) params.wavelet.CLmethod = provis; - } -/* - if (!WaveParams.expclari && WaveParams.CLmethod != "all") { - params.wavelet.CLmethod = "all"; - params.wavelet.Backmethod = "grey"; - } -*/ - if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = false; WaveParams.expchroma = false; WaveParams.expedge = false; From 4590607ea58013b5c20f40c0a2c4702ddc23ed7e Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 27 Feb 2020 14:54:17 +0100 Subject: [PATCH 313/453] simpleprocess.cc : be cppcheck clean --- rtengine/simpleprocess.cc | 77 ++++++++++++++++----------------------- 1 file changed, 32 insertions(+), 45 deletions(-) diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 28188b0f6..779f2b33d 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -68,7 +68,7 @@ public: pl(pl), flush(flush), // internal state - ii(nullptr), + initialImage(nullptr), imgsrc(nullptr), fw(0), fh(0), @@ -97,6 +97,7 @@ public: hlcomprthresh(0), baseImg(nullptr), labView(nullptr), + ctColorCurve(), autili(false), butili(false) { @@ -150,10 +151,10 @@ private: pl->setProgress(0.0); } - ii = job->initialImage; + initialImage = job->initialImage; - if (!ii) { - ii = InitialImage::load(job->fname, job->isRaw, &errorCode); + if (!initialImage) { + initialImage = InitialImage::load(job->fname, job->isRaw, &errorCode); if (errorCode) { delete job; @@ -164,7 +165,7 @@ private: procparams::ProcParams& params = job->pparams; // acquire image from imagesource - imgsrc = ii->getImageSource(); + imgsrc = initialImage->getImageSource(); tr = getCoarseBitMask(params.coarse); @@ -245,7 +246,6 @@ private: if (params.retinex.enabled) { //enabled Retinex LUTf cdcurve(65536, 0); LUTf mapcurve(65536, 0); - LUTu dummy; RetinextransmissionCurve dehatransmissionCurve; RetinexgaintransmissionCurve dehagaintransmissionCurve; bool dehacontlutili = false; @@ -921,11 +921,11 @@ private: if (profile == "sRGB" || profile == "Adobe RGB" || profile == "ProPhoto" || profile == "WideGamut" || profile == "BruceRGB" || profile == "Beta RGB" || profile == "BestRGB" || profile == "Rec2020" || profile == "ACESp0" || profile == "ACESp1") { const int cw = baseImg->getWidth(); const int ch = baseImg->getHeight(); - cmsHTRANSFORM dummy = nullptr; + cmsHTRANSFORM dummyTransForm = nullptr; // put gamma TRC to 1 - ipf.workingtrc(baseImg, baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, dummy, true, false, false); + ipf.workingtrc(baseImg, baseImg, cw, ch, -5, params.icm.workingProfile, 2.4, 12.92310, dummyTransForm, true, false, false); //adjust TRC - ipf.workingtrc(baseImg, baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, dummy, false, true, false); + ipf.workingtrc(baseImg, baseImg, cw, ch, 5, params.icm.workingProfile, params.icm.workingTRCGamma, params.icm.workingTRCSlope, dummyTransForm, false, true, false); } } @@ -1155,9 +1155,7 @@ private: ipf.ip_wavelet(labView, labView, 2, WaveParams, wavCLVCurve, waOpacityCurveRG, waOpacityCurveBY, waOpacityCurveW, waOpacityCurveWL, wavclCurve, 1); unshar->CopyFrom(labView); params.wavelet.CLmethod = provis; - } - if ((WaveParams.ushamethod == "sharp" || WaveParams.ushamethod == "clari") && WaveParams.expclari && WaveParams.CLmethod != "all") { WaveParams.expcontrast = false; WaveParams.expchroma = false; WaveParams.expedge = false; @@ -1402,9 +1400,6 @@ private: } } - cmsHPROFILE jprof = nullptr; - constexpr bool customGamma = false; - constexpr bool useLCMS = false; bool bwonly = params.blackwhite.enabled && !params.colorToning.enabled && !autili && !butili && !params.colorappearance.enabled; ///////////// Custom output gamma has been removed, the user now has to create @@ -1453,12 +1448,12 @@ private: case MetaDataParams::TUNNEL: // Sending back the whole first root, which won't necessarily be the selected frame number // and may contain subframe depending on initial raw's hierarchy - readyImg->setMetadata(ii->getMetaData()->getRootExifData()); + readyImg->setMetadata(initialImage->getMetaData()->getRootExifData()); break; case MetaDataParams::EDIT: // ask for the correct frame number, but may contain subframe depending on initial raw's hierarchy - readyImg->setMetadata(ii->getMetaData()->getBestExifData(imgsrc, ¶ms.raw), params.exif, params.iptc); + readyImg->setMetadata(initialImage->getMetaData()->getBestExifData(imgsrc, ¶ms.raw), params.exif, params.iptc); break; default: // case MetaDataParams::STRIP @@ -1468,36 +1463,28 @@ private: // Setting the output curve to readyImg - if (customGamma) { - if (!useLCMS) { - // use corrected sRGB profile in order to apply a good TRC if present, otherwise use LCMS2 profile generated by lab2rgb16 w/ gamma - ProfileContent pc(jprof); + // use the selected output profile if present, otherwise use LCMS2 profile generate by lab2rgb16 w/ gamma + + if (!params.icm.outputProfile.empty() && params.icm.outputProfile != ColorManagementParams::NoICMString) { + + // if ICCStore::getInstance()->getProfile send back an object, then ICCStore::getInstance()->getContent will do too + cmsHPROFILE jprof = ICCStore::getInstance()->getProfile(params.icm.outputProfile); //get outProfile + + if (jprof == nullptr) { + if (settings->verbose) { + printf("\"%s\" ICC output profile not found!\n - use LCMS2 substitution\n", params.icm.outputProfile.c_str()); + } + } else { + if (settings->verbose) { + printf("Using \"%s\" output profile\n", params.icm.outputProfile.c_str()); + } + + ProfileContent pc = ICCStore::getInstance()->getContent(params.icm.outputProfile); readyImg->setOutputProfile(pc.getData().c_str(), pc.getData().size()); } } else { - // use the selected output profile if present, otherwise use LCMS2 profile generate by lab2rgb16 w/ gamma - - if (!params.icm.outputProfile.empty() && params.icm.outputProfile != ColorManagementParams::NoICMString) { - - // if ICCStore::getInstance()->getProfile send back an object, then ICCStore::getInstance()->getContent will do too - cmsHPROFILE jprof = ICCStore::getInstance()->getProfile(params.icm.outputProfile); //get outProfile - - if (jprof == nullptr) { - if (settings->verbose) { - printf("\"%s\" ICC output profile not found!\n - use LCMS2 substitution\n", params.icm.outputProfile.c_str()); - } - } else { - if (settings->verbose) { - printf("Using \"%s\" output profile\n", params.icm.outputProfile.c_str()); - } - - ProfileContent pc = ICCStore::getInstance()->getContent(params.icm.outputProfile); - readyImg->setOutputProfile(pc.getData().c_str(), pc.getData().size()); - } - } else { - // No ICM - readyImg->setOutputProfile(nullptr, 0); - } + // No ICM + readyImg->setOutputProfile(nullptr, 0); } // t2.set(); @@ -1505,7 +1492,7 @@ private: // printf("Total:- %d usec\n", t2.etime(t1)); if (!job->initialImage) { - ii->decreaseRef(); + initialImage->decreaseRef(); } delete job; @@ -1669,7 +1656,7 @@ private: // internal state std::unique_ptr ipf_p; - InitialImage *ii; + InitialImage *initialImage; ImageSource *imgsrc; int fw; int fh; From d56c53b1ae9c69e8ddbbcb4f3c1962578393824c Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 27 Feb 2020 18:06:30 +0100 Subject: [PATCH 314/453] Change tooltip --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index a807ba9ea..7069d44ed 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2320,7 +2320,7 @@ TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. TP_WBALANCE_STUDLABEL;Student Itcwb: %1 -TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic. +TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic.\nStudent=1000 meeans the calculations were not restarted but results are probably goods TP_WBALANCE_TEMPBIAS;AWB temperature bias TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". TP_WBALANCE_TEMPERATURE;Temperature From 10af444786e6b5dc4baa3e35756525674872458a Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 27 Feb 2020 18:08:02 +0100 Subject: [PATCH 315/453] Change tooltip orthographe --- rtdata/languages/default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 7069d44ed..5af093b6b 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2320,7 +2320,7 @@ TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. TP_WBALANCE_STUDLABEL;Student Itcwb: %1 -TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic.\nStudent=1000 meeans the calculations were not restarted but results are probably goods +TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic.\nStudent=1000 means the calculations were not restarted but results are probably goods TP_WBALANCE_TEMPBIAS;AWB temperature bias TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". TP_WBALANCE_TEMPERATURE;Temperature From a3c2264cde6af6296c62c526ecce8a64febbea04 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 27 Feb 2020 19:56:42 +0100 Subject: [PATCH 316/453] eahd_demosaic.cc : be cppcheck clean --- rtengine/eahd_demosaic.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/eahd_demosaic.cc b/rtengine/eahd_demosaic.cc index ad4bda3cd..009be0714 100644 --- a/rtengine/eahd_demosaic.cc +++ b/rtengine/eahd_demosaic.cc @@ -360,8 +360,8 @@ void RawImageSource::eahd_demosaic () int wh = 0; - for (int dmi = 0; dmi < 9; dmi++) { - wh += (dLmaph[dmi] <= eL) * (dCamaph[dmi] <= eCa) * (dCbmaph[dmi] <= eCb); + for (int d = 0; d < 9; ++d) { + wh += (dLmaph[d] <= eL) * (dCamaph[d] <= eCa) * (dCbmaph[d] <= eCb); } homh[imx][j - 1] += wh; @@ -376,8 +376,8 @@ void RawImageSource::eahd_demosaic () int wv = 0; - for (int dmi = 0; dmi < 9; dmi++) { - wv += (dLmapv[dmi] <= eL) * (dCamapv[dmi] <= eCa) * (dCbmapv[dmi] <= eCb); + for (int d = 0; d < 9; ++d) { + wv += (dLmapv[d] <= eL) * (dCamapv[d] <= eCa) * (dCbmapv[d] <= eCb); } homv[imx][j - 1] += wv; From f7792aa936143ff56f270fa22b4a934eed62392c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Thu, 27 Feb 2020 21:22:34 +0100 Subject: [PATCH 317/453] some cleanups --- rtengine/imagesource.h | 3 +- rtengine/procparams.cc | 7 - rtengine/rawimagesource.cc | 836 ++++++++++++------------------------- rtengine/rawimagesource.h | 3 +- rtengine/simpleprocess.cc | 3 +- rtengine/stdimagesource.cc | 2 +- rtengine/stdimagesource.h | 2 +- 7 files changed, 282 insertions(+), 574 deletions(-) diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index f01d52059..22b8cdc08 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -98,8 +98,7 @@ public: virtual void retinex (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &deh, const procparams::ToneCurveParams& Tc, LUTf & cdcurve, LUTf & mapcurve, const RetinextransmissionCurve & dehatransmissionCurve, const RetinexgaintransmissionCurve & dehagaintransmissionCurve, multi_array2D &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) {}; virtual void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) {}; virtual void retinexPrepareBuffers (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI) {}; - virtual void flushRawData () {}; - virtual void flushRGB () {}; + virtual void flush () = 0; virtual void HLRecovery_Global (const procparams::ToneCurveParams &hrp) {}; virtual void HLRecovery_inpaint (float** red, float** green, float** blue) {}; diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 88178d0e0..40a5ae68a 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1309,15 +1309,8 @@ const std::vector& WBParams::getWbEntries() static const std::vector wb_entries = { {"Camera", WBEntry::Type::CAMERA, M("TP_WBALANCE_CAMERA"), 0, 1.f, 1.f, 0.f}, - // {"Auto", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTO"), 0, 1.f, 1.f, 0.f}, {"autitcgreen", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOITCGREEN"), 0, 1.f, 1.f, 0.f}, {"autold", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOOLD"), 0, 1.f, 1.f, 0.f}, - // {"aut", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTODEM"), 0, 1.f, 1.f, 0.f}, - // {"autedg", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGE"), 0, 1.f, 1.f, 0.f}, - // {"autorobust", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOROB"), 0, 1.f, 1.f, 0.f}, - // {"autosdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOSDW"), 0, 1.f, 1.f, 0.f}, - // {"autedgsdw", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGESW"), 0, 1.f, 1.f, 0.f}, - // {"autedgrob", WBEntry::Type::AUTO, M("TP_WBALANCE_AUTOEDGEROB"), 0, 1.f, 1.f, 0.f}, {"Daylight", WBEntry::Type::DAYLIGHT, M("TP_WBALANCE_DAYLIGHT"), 5300, 1.f, 1.f, 0.f}, {"Cloudy", WBEntry::Type::CLOUDY, M("TP_WBALANCE_CLOUDY"), 6200, 1.f, 1.f, 0.f}, {"Shade", WBEntry::Type::SHADE, M("TP_WBALANCE_SHADE"), 7600, 1.f, 1.f, 0.f}, diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 3cabaf5b2..b55ec4bf1 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -196,7 +196,7 @@ void transLineD1x (const float* const red, const float* const green, const float } if(i == 2 && oddHeight) { - int row = 2 * imheight; + row = 2 * imheight; for (int j = 0; j < imwidth; j++) { int col = imwidth - 1 - j; @@ -448,6 +448,7 @@ RawImageSource::RawImageSource () , initialGain(0.0) , camInitialGain(0.0) , defGain(0.0) + , camProfile(nullptr) , ri(nullptr) , rawData(0, 0) , green(0, 0) @@ -462,7 +463,6 @@ RawImageSource::RawImageSource () , rawDirty(true) , histMatchingParams(new procparams::ColorManagementParams) { - camProfile = nullptr; embProfile = nullptr; rgbSourceModified = false; for(int i = 0; i < 4; ++i) { @@ -488,9 +488,6 @@ RawImageSource::~RawImageSource () delete rawDataBuffer[i]; } - flushRGB(); - flushRawData(); - if (camProfile) { cmsCloseProfile (camProfile); } @@ -897,9 +894,9 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima } // last row - int b = (a == 1 && image->getHeight() % 2) || (a == 0 && image->getHeight() % 2 == 0); + int offset = (a == 1 && image->getHeight() % 2) || (a == 0 && image->getHeight() % 2 == 0); - for (int j = 1 + b; j < image->getWidth() - 1; j += 2) { + for (int j = 1 + offset; j < image->getWidth() - 1; j += 2) { image->r(image->getHeight() - 1, j) = (image->r(image->getHeight() - 2, j) + image->r(image->getHeight() - 1, j + 1) + image->r(image->getHeight() - 1, j - 1)) / 3; image->g(image->getHeight() - 1, j) = (image->g(image->getHeight() - 2, j) + image->g(image->getHeight() - 1, j + 1) + image->g(image->getHeight() - 1, j - 1)) / 3; image->b(image->getHeight() - 1, j) = (image->b(image->getHeight() - 2, j) + image->b(image->getHeight() - 1, j + 1) + image->b(image->getHeight() - 1, j - 1)) / 3; @@ -2208,7 +2205,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara { float aa = conversionBuffer[0][i - border][j - border]; float bb = conversionBuffer[1][i - border][j - border]; - float Chprov1 = sqrt(SQR(aa) + SQR(bb)) / 327.68f; + float Chprov1 = std::sqrt(SQR(aa) + SQR(bb)) / 327.68f; sqrtBuffer[j - border] = Chprov1; float HH = xatan2f(bb, aa); atan2Buffer[j - border] = HH; @@ -2236,7 +2233,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #else float aa = conversionBuffer[0][i - border][j - border]; float bb = conversionBuffer[1][i - border][j - border]; - float Chprov1 = sqrt(SQR(aa) + SQR(bb)) / 327.68f; + float Chprov1 = std::sqrt(SQR(aa) + SQR(bb)) / 327.68f; float HH = xatan2f(bb, aa); float2 sincosval;// = xsincosf(HH); @@ -2350,15 +2347,16 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara } -void RawImageSource::flushRawData() +void RawImageSource::flush() { + for(size_t i = 0; i + 1 < numFrames; ++i) { + delete rawDataBuffer[i]; + rawDataBuffer[i] = nullptr; + } + if (rawData) { rawData(0, 0); } -} - -void RawImageSource::flushRGB() -{ if (green) { green(0, 0); } @@ -2382,7 +2380,6 @@ void RawImageSource::flushRGB() if (blueloc) { blueloc(0, 0); } - } void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) @@ -2435,6 +2432,7 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, Raw } } } else { + #ifdef _OPENMP #pragma omp parallel for #endif @@ -3409,8 +3407,6 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi constexpr float trans[ColorCount][ColorCount] = { { 1, 1, 1 }, { 1.7320508, -1.7320508, 0 }, { -1, -1, 2 } }; constexpr float itrans[ColorCount][ColorCount] = { { 1, 0.8660254, -0.5 }, { 1, -0.8660254, -0.5 }, { 1, 0, 1 } }; -#define FOREACHCOLOR for (int c=0; c < ColorCount; c++) - float minpt = min(hlmax[0], hlmax[1], hlmax[2]); //min of the raw clip points //float maxpt=max(hlmax[0],hlmax[1],hlmax[2]);//max of the raw clip points //float medpt=hlmax[0]+hlmax[1]+hlmax[2]-minpt-maxpt;//median of the raw clip points @@ -3421,7 +3417,9 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi const float satthresh = 0.5; float clip[3]; - FOREACHCOLOR clip[c] = min(maxave, hlmax[c]); + for (int c = 0; c < ColorCount; ++c) { + clip[c] = min(maxave, hlmax[c]); + } // Determine the maximum level (clip) of all channels const float clippt = clipthresh * maxval; @@ -3438,20 +3436,20 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi rgb[2] = bin[col]; // If no channel is clipped, do nothing on pixel - int c; + int cc; - for (c = 0; c < ColorCount; c++) { - if (rgb[c] > clippt) { + for (cc = 0; cc < ColorCount; ++cc) { + if (rgb[cc] > clippt) { break; } } - if (c == ColorCount) { + if (cc == ColorCount) { continue; } // Initialize cam with raw input [0] and potentially clipped input [1] - FOREACHCOLOR { + for (int c = 0; c < ColorCount; ++c) { lratio += min(rgb[c], clip[c]); cam[0][c] = rgb[c]; cam[1][c] = min(cam[0][c], maxval); @@ -3459,7 +3457,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi // Calculate the lightness correction ratio (chratio) for (int i = 0; i < 2; i++) { - FOREACHCOLOR { + for (int c = 0; c < ColorCount; ++c) { lab[i][c] = 0; for (int j = 0; j < ColorCount; j++) @@ -3475,7 +3473,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi } } - chratio = (sqrt(sum[1] / sum[0])); + chratio = (std::sqrt(sum[1] / sum[0])); // Apply ratio to lightness in LCH space for (int c = 1; c < ColorCount; c++) { @@ -3483,7 +3481,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi } // Transform back from LCH to RGB - FOREACHCOLOR { + for (int c = 0; c < ColorCount; ++c) { cam[0][c] = 0; for (int j = 0; j < ColorCount; j++) @@ -3491,7 +3489,9 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi cam[0][c] += itrans[c][j] * lab[0][j]; } } - FOREACHCOLOR rgb[c] = cam[0][c] / ColorCount; + for (int c = 0; c < ColorCount; ++c) { + rgb[c] = cam[0][c] / ColorCount; + } // Copy converted pixel back if (rin[col] > fixpt) { @@ -3545,7 +3545,7 @@ void RawImageSource::HLRecovery_Luminance (float* rin, float* gin, float* bin, f double Ho = 2 * bo - ro - go; if (r != g && g != b) { - double ratio = sqrt ((Co * Co + Ho * Ho) / (C * C + H * H)); + double ratio = std::sqrt ((Co * Co + Ho * Ho) / (C * C + H * H)); C *= ratio; H *= ratio; } @@ -3759,7 +3759,7 @@ void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LU #ifdef _OPENMP int numThreads; // reduce the number of threads under certain conditions to avoid overhead of too many critical regions - numThreads = sqrt((((H - 2 * border) * (W - 2 * border)) / 262144.f)); + numThreads = std::sqrt((((H - 2 * border) * (W - 2 * border)) / 262144.f)); numThreads = std::min(std::max(numThreads, 1), omp_get_max_threads()); #pragma omp parallel num_threads(numThreads) @@ -3895,12 +3895,10 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) } -static void histoxyY(int bfhitc, int bfwitc, array2D & xc, array2D & yc, array2D & Yc, float *xxx, float * yyy, float * YYY, int * histxy, float * area, int * inter) +static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, float *xxx, float * yyy, float * YYY, int * histxy, float * area, int * inter) { - int nh = 0; -// int nc = 0; - // int nc2 = 0; + int nh; for (int y = 0; y < bfhitc ; y++) { for (int x = 0; x < bfwitc ; x++) { @@ -5407,7 +5405,7 @@ static void histoxyY(int bfhitc, int bfwitc, array2D & xc, array2D -void static studentXY(array2D & YYcurr, array2D & reffYY, int sizcurr, int Nc, int tt, float & student) +void static studentXY(const array2D & YYcurr, const array2D & reffYY, int sizcurr, int Nc, int tt, float & student) { //calculate Student coeff YY float somcurrY = 0.f; @@ -5448,7 +5446,7 @@ void static studentXY(array2D & YYcurr, array2D & reffYY, int siz somsquecreffY = somreff2Y - (SQR(somreffY)) / sizestureffY; //sum sqr differences second - float diviY = sqrt(((somsqueccurrY + somsquecreffY) * (1.f / (float)sizestucurrY + 1.f / (float)sizestureffY)) / (sizestucurrY + sizestureffY - 2)); + float diviY = std::sqrt(((somsqueccurrY + somsquecreffY) * (1.f / (float)sizestucurrY + 1.f / (float)sizestureffY)) / (sizestucurrY + sizestureffY - 2)); //divisor student float numerY = ((float)somcurrY / (float)sizestucurrY) - ((float)somreffY / (float)sizestureffY); //numerator student @@ -5567,15 +5565,15 @@ static void SdwWB(const array2D &redloc, const array2D &greenloc, SigmaB[i] = sigmab; if (ng > 0) { - SigmaG[i] = sqrt(SigmaG[i] / ng); + SigmaG[i] = std::sqrt(SigmaG[i] / ng); } if (nr > 0) { - SigmaR[i] = sqrt(SigmaR[i] / nr); + SigmaR[i] = std::sqrt(SigmaR[i] / nr); } if (nb > 0) { - SigmaB[i] = sqrt(SigmaB[i] / nb); + SigmaB[i] = std::sqrt(SigmaB[i] / nb); } #ifdef _OPENMP @@ -5830,9 +5828,9 @@ static void SobelWB(array2D &redsobel, array2D &greensobel, array2 //Edge strength //we can add if need teta = atan2 (sumYr, sumXr) - redsobel[y][x] = CLIP(sqrt(SQR(sumXr) + SQR(sumYr))); - greensobel[y][x] = CLIP(sqrt(SQR(sumXg) + SQR(sumYg))); - bluesobel[y][x] = CLIP(sqrt(SQR(sumXb) + SQR(sumYb))); + redsobel[y][x] = CLIP(std::sqrt(SQR(sumXr) + SQR(sumYr))); + greensobel[y][x] = CLIP(std::sqrt(SQR(sumXg) + SQR(sumYg))); + bluesobel[y][x] = CLIP(std::sqrt(SQR(sumXb) + SQR(sumYb))); } } } @@ -5964,7 +5962,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double float snedecor;//1. actually but put in case of confiance interval } WbGreen; - WbGreen gree[118] = {//symetric coefficient between 0.717 and 1.40 + constexpr WbGreen gree[118] = {//symetric coefficient between 0.717 and 1.40 {0.400, 1.f}, {0.500, 1.f}, {0.550, 1.f}, @@ -6130,7 +6128,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } WbTxyz; //we can change step to increase precision if need - also in Colortemp.cc with same changes //I don't know how to pass this structure to Colortemp ! - WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after + constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after {2001., 1.273842, 0.145295}, {2101., 1.244008, 0.167533}, {2201., 1.217338, 0.190697}, @@ -6325,7 +6323,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double bmm = new float [N_t]; int siza = 167;//size of histogram - int maxval = 25; //tempref and greenref are camera wb values. // I used them by default to select good spectral values !! @@ -6363,7 +6360,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double gm = new_scale_mul[1] / scale_mul[1] * gain; bm = new_scale_mul[2] / scale_mul[2] * gain; rmm[tt] = rm / gm; - gmm[tt] = gm / gm; + gmm[tt] = 1.f; bmm[tt] = bm / gm; } @@ -6431,270 +6428,261 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //here we select the good spectral color inside the 113 values //call tempxy to calculate for 114 color references Temp and XYZ with cat02 - if (separated) { - ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants + ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants - //find the good spectral values - //calculate xy reference spectral for tempref - for (int j = 0; j < Nc ; j++) { - reff_spect_xx_camera[j][repref] = TX[j] / (TX[j] + TY[j] + TZ[j]); // x from xyY - reff_spect_yy_camera[j][repref] = TY[j] / (TX[j] + TY[j] + TZ[j]); // y from xyY + //find the good spectral values + //calculate xy reference spectral for tempref + for (int j = 0; j < Nc ; j++) { + reff_spect_xx_camera[j][repref] = TX[j] / (TX[j] + TY[j] + TZ[j]); // x from xyY + reff_spect_yy_camera[j][repref] = TY[j] / (TX[j] + TY[j] + TZ[j]); // y from xyY + } + + int deltarepref = settings->itcwb_delta; + + for (int nn = 0; nn <= 2; nn++) { + //three loop to refine color if temp camera is probably not very good + int drep = 0; + + if (nn == 0) { + drep = -deltarepref; } - int deltarepref = settings->itcwb_delta; - - for (int nn = 0; nn <= 2; nn++) { - //three loop to refine color if temp camera is probably not very good - int drep = 0; - - if (nn == 0) { - drep = -deltarepref; - } - - if (nn == 2) { - drep = +deltarepref; - } - - int rep = repref + drep; - - if (rep > N_t) { - rep = N_t; - } - - if (rep < 0) { - rep = 0; - } - - //initialize calculation of xy current for tempref - for (int y = 0; y < bfh ; y += 10) { - for (int x = 0; x < bfw ; x += 10) { - int yy = y / 10; - int xx = x / 10 ; - float x_c = 0.f, y_c = 0.f, Y_c = 0.f; - float x_x = 0.f, y_y = 0.f, z_z = 0.f; - float RR = rmm[rep] * redloc[y][x]; - float GG = gmm[rep] * greenloc[y][x]; - float BB = bmm[rep] * blueloc[y][x]; - Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); - xc[yy][xx] = x_c; - yc[yy][xx] = y_c; - Yc[yy][xx] = Y_c; - } - - } - - //histogram xy depend of temp...but in most cases D45 ..D65.. - //calculate for this image the mean values for each family of color, near histogram x y (number) - //xy vary from x 0..0.77 y 0..0.82 - //neutral values are near x=0.34 0.33 0.315 0.37 y =0.35 0.36 0.34 - //skin are about x 0.45 0.49 y 0.4 0.47 - //blue sky x=0.25 y=0.28 and x=0.29 y=0.32 - // step about 0.02 x 0.32 0.34 y= 0.34 0.36 skin -- sky x 0.24 0.30 y 0.28 0.32 - //big step about 0.2 - - histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy, area, inter); + if (nn == 2) { + drep = +deltarepref; } - //calculate x y Y - int sizcurrref = siza;//choice of number of correlate colors in image - histcurrref(N_t, sizcurrref); - xx_curref(N_t, sizcurrref); - yy_curref(N_t, sizcurrref); - YY_curref(N_t, sizcurrref); - xx_curref_reduc(N_t, sizcurrref); - yy_curref_reduc(N_t, sizcurrref); - YY_curref_reduc(N_t, sizcurrref); - R_curref_reduc(N_t, sizcurrref); - G_curref_reduc(N_t, sizcurrref); - B_curref_reduc(N_t, sizcurrref); + int rep = repref + drep; - - hiss Wbhis [siza]; - int n1 = 0; - int n4 = 0; - int n15 = 0; - int n30 = 0; - int ntr = 0; - - for (int nh = 0; nh < siza; nh++) { - Wbhis[nh].histnum = histxy[nh]; - Wbhis[nh].index = nh; - Wbhis[nh].interest = inter[nh]; + if (rep > N_t) { + rep = N_t; } - //sort in ascending order - std::sort(Wbhis, Wbhis + siza, Wbhis[0]); + if (rep < 0) { + rep = 0; + } - for (int nh = 0; nh < siza; nh++) { + //initialize calculation of xy current for tempref + for (int y = 0; y < bfh ; y += 10) { + for (int x = 0; x < bfw ; x += 10) { + int yy = y / 10; + int xx = x / 10 ; + float x_c = 0.f, y_c = 0.f, Y_c = 0.f; + float x_x = 0.f, y_y = 0.f, z_z = 0.f; + float RR = rmm[rep] * redloc[y][x]; + float GG = gmm[rep] * greenloc[y][x]; + float BB = bmm[rep] * blueloc[y][x]; + Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); + xc[yy][xx] = x_c; + yc[yy][xx] = y_c; + Yc[yy][xx] = Y_c; + } + + } + + //histogram xy depend of temp...but in most cases D45 ..D65.. + //calculate for this image the mean values for each family of color, near histogram x y (number) + //xy vary from x 0..0.77 y 0..0.82 + //neutral values are near x=0.34 0.33 0.315 0.37 y =0.35 0.36 0.34 + //skin are about x 0.45 0.49 y 0.4 0.47 + //blue sky x=0.25 y=0.28 and x=0.29 y=0.32 + // step about 0.02 x 0.32 0.34 y= 0.34 0.36 skin -- sky x 0.24 0.30 y 0.28 0.32 + //big step about 0.2 + + histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy, area, inter); + } + + //calculate x y Y + int sizcurrref = siza;//choice of number of correlate colors in image + histcurrref(N_t, sizcurrref); + xx_curref(N_t, sizcurrref); + yy_curref(N_t, sizcurrref); + YY_curref(N_t, sizcurrref); + xx_curref_reduc(N_t, sizcurrref); + yy_curref_reduc(N_t, sizcurrref); + YY_curref_reduc(N_t, sizcurrref); + R_curref_reduc(N_t, sizcurrref); + G_curref_reduc(N_t, sizcurrref); + B_curref_reduc(N_t, sizcurrref); + + + hiss Wbhis [siza]; + int n1 = 0; + int n4 = 0; + int n15 = 0; + int n30 = 0; + int ntr = 0; + + for (int nh = 0; nh < siza; nh++) { + Wbhis[nh].histnum = histxy[nh]; + Wbhis[nh].index = nh; + Wbhis[nh].interest = inter[nh]; + } + + //sort in ascending order + std::sort(Wbhis, Wbhis + siza, Wbhis[0]); + + for (int nh = 0; nh < siza; nh++) { // printf("nh=%i", Wbhis[nh].index); + } + + //part to improve + for (int nh = 0; nh < siza; nh++) { + if (Wbhis[nh].histnum < 1) { + n1++; //keep only existing color but avoid to small } - //part to improve - for (int nh = 0; nh < siza; nh++) { - if (Wbhis[nh].histnum < 1) { - n1++; //keep only existing color but avoid to small - } - - if (Wbhis[nh].histnum < 4) { - n4++; //keep only existing color but avoid to small - } - - if (Wbhis[nh].histnum < 15) { - n15++; //keep only existing color but avoid to small - } - - if (Wbhis[nh].histnum < 30) { - n30++; //keep only existing color but avoid to small - } + if (Wbhis[nh].histnum < 4) { + n4++; //keep only existing color but avoid to small + } + if (Wbhis[nh].histnum < 15) { + n15++; //keep only existing color but avoid to small + } + if (Wbhis[nh].histnum < 30) { + n30++; //keep only existing color but avoid to small } - ntr = n30; - - if (ntr > (siza - 25)) { - ntr = n15; //if to less elements 25 elements mini - } - - if (ntr > (siza - 23)) { - ntr = n4; //if to less elements 25 elements mini - } - - if (ntr > (siza - 20)) { - ntr = n1; //if to less elements 20 elements mini - normally never be used ! - } - - int sizcurr2ref = sizcurrref - ntr; - int sizcu30 = sizcurrref - n30; - int sizcu4 = sizcurrref - n4; - -// printf("sizcurr2ref=%i sizcur_30=%i siecur_4=%i \n", sizcurr2ref, sizcu30, sizcu4); - sizcu4 = sizcu30;//arbitrary mini size if 30 result, ==> in full image 3000 pixels - - if (sizcu4 > 55) { - sizcu4 = 55; - } - - chrom wbchro[sizcu4]; - double swpr = (Txyz[repref].XX + Txyz[repref].ZZ + 1.); - double xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes - double ywpr = 1. / swpr; + } - for (int i = 0; i < sizcu4; i++) { //take the max values - int j = i; - histcurrref[j][repref] = (float) Wbhis[siza - (j + 1)].histnum; - xx_curref[j][repref] = xxx[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; - yy_curref[j][repref] = yyy[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; - YY_curref[j][repref] = YYY[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; + ntr = n30; + + if (ntr > (siza - 25)) { + ntr = n15; //if to less elements 25 elements mini + } + + if (ntr > (siza - 23)) { + ntr = n4; //if to less elements 25 elements mini + } + + if (ntr > (siza - 20)) { + ntr = n1; //if to less elements 20 elements mini - normally never be used ! + } + + int sizcurr2ref = sizcurrref - ntr; + const int sizcu30 = sizcurrref - n30; + const int sizcu4 = rtengine::min(sizcu30, 55); + + + chrom wbchro[sizcu4]; + double swpr = (Txyz[repref].XX + Txyz[repref].ZZ + 1.); + double xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes + double ywpr = 1. / swpr; + + + for (int i = 0; i < sizcu4; i++) { //take the max values + int j = i; + histcurrref[j][repref] = (float) Wbhis[siza - (j + 1)].histnum; + xx_curref[j][repref] = xxx[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; + yy_curref[j][repref] = yyy[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; + YY_curref[j][repref] = YYY[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; // printf("xx=%f yy=%f\n", xx_curref[j][repref], yy_curref[j][repref]); - } + } - estimchrom = 0.f; + estimchrom = 0.f; - for (int nh = 0; nh < sizcu4; nh++) { - float chxy = sqrt(SQR(xx_curref[nh][repref] - xwpr) + SQR(yy_curref[nh][repref] - ywpr)); - wbchro[nh].chroxy_number = chxy * sqrt(histcurrref[nh][repref]); - wbchro[nh].chroxy = sqrt(chxy); - wbchro[nh].chrox = xx_curref[nh][repref]; - wbchro[nh].chroy = yy_curref[nh][repref]; - wbchro[nh].Y = YY_curref[nh][repref]; - wbchro[nh].index = nh; - estimchrom += chxy; - } + for (int nh = 0; nh < sizcu4; nh++) { + float chxy = std::sqrt(SQR(xx_curref[nh][repref] - xwpr) + SQR(yy_curref[nh][repref] - ywpr)); + wbchro[nh].chroxy_number = chxy * std::sqrt(histcurrref[nh][repref]); + wbchro[nh].chroxy = std::sqrt(chxy); + wbchro[nh].chrox = xx_curref[nh][repref]; + wbchro[nh].chroy = yy_curref[nh][repref]; + wbchro[nh].Y = YY_curref[nh][repref]; + wbchro[nh].index = nh; + estimchrom += chxy; + } - estimchrom /= sizcu4; - //printf("estimchrom=%f \n", estimchrom); + estimchrom /= sizcu4; + //printf("estimchrom=%f \n", estimchrom); - if (settings->itcwb_sort) { //sort in ascending with chroma values + if (settings->itcwb_sort) { //sort in ascending with chroma values - std::sort(wbchro, wbchro + sizcu4, wbchro[0]); - } + std::sort(wbchro, wbchro + sizcu4, wbchro[0]); + } - /* - for (int nh = 0; nh < sizcu4; nh++) { - printf("nh=%i chroma_xy=%f chrox=%f chroy=%f\n", nh, wbchro[nh].chroxy, wbchro[nh].chrox, wbchro[nh].chroy); - } - */ - maxval = settings->itcwb_thres;//max values of color to find correllation - - if (maxval < 10) { - maxval = 10; - } - - if (maxval > 55) { - maxval = 55; - } - - if (sizcurr2ref > maxval) { - sizcurr2ref = maxval; //keep about the biggest values, - } - - - for (int i = 0; i < sizcurr2ref; i++) { - //is condition chroxy necessary ? - if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral - w++; - xx_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chrox; - yy_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chroy; - YY_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].Y; - // printf("xx_cu=%f yy_cu=%f Y=%f chro=%f\n", xx_curref_reduc[w][repref], yy_curref_reduc[w][repref], YY_curref_reduc[w][repref],sqrt(wbchro[sizcu4 - (i + 1)].chroxy)); + /* + for (int nh = 0; nh < sizcu4; nh++) { + printf("nh=%i chroma_xy=%f chrox=%f chroy=%f\n", nh, wbchro[nh].chroxy, wbchro[nh].chrox, wbchro[nh].chroy); } + */ + int maxval = settings->itcwb_thres;//max values of color to find correllation + + if (maxval < 10) { + maxval = 10; + } + + if (maxval > 55) { + maxval = 55; + } + + if (sizcurr2ref > maxval) { + sizcurr2ref = maxval; //keep about the biggest values, + } + + + for (int i = 0; i < sizcurr2ref; i++) { + //is condition chroxy necessary ? + if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral + w++; + xx_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chrox; + yy_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chroy; + YY_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].Y; + // printf("xx_cu=%f yy_cu=%f Y=%f chro=%f\n", xx_curref_reduc[w][repref], yy_curref_reduc[w][repref], YY_curref_reduc[w][repref],std::sqrt(wbchro[sizcu4 - (i + 1)].chroxy)); } + } - //calculate deltaE xx to find best values of spectrals datas - int maxnb = settings->itcwb_sizereference; + //calculate deltaE xx to find best values of spectrals datas + int maxnb = settings->itcwb_sizereference; - if (maxnb > 5) { - maxnb = 5; - } + if (maxnb > 5) { + maxnb = 5; + } - if (maxnb < 1) { - maxnb = 1; - } + if (maxnb < 1) { + maxnb = 1; + } - if (settings->itcwb_thres > 39) { - maxnb = 200 / settings->itcwb_thres; - } + if (settings->itcwb_thres > 39) { + maxnb = 200 / settings->itcwb_thres; + } - for (int nb = 1; nb <= maxnb; nb ++) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 - for (int i = 0; i < w; i++) { - float mindeltaE = 100000.f; - int kN = 0; + for (int nb = 1; nb <= maxnb; nb ++) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 + for (int i = 0; i < w; i++) { + float mindeltaE = 100000.f; + int kN = 0; - for (int j = 0; j < Nc ; j++) { - if (good_spectral[j] == 0) { - float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); + for (int j = 0; j < Nc ; j++) { + if (good_spectral[j] == 0) { + float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); - if (deltaE < mindeltaE) { - mindeltaE = deltaE; - kN = j; - } + if (deltaE < mindeltaE) { + mindeltaE = deltaE; + kN = j; } } - - good_spectral[kN] = 1;//good spectral are spectral color that match color histogram xy - //printf("k=%i ", kN); } + + good_spectral[kN] = 1;//good spectral are spectral color that match color histogram xy + //printf("k=%i ", kN); } + } //reconvert to RGB for "reduction" - for (int i = 0; i < w; i++) { - float X = 65535.f * xx_curref_reduc[i][repref] * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; - float Y = 65535.f * YY_curref_reduc[i][repref]; - float Z = 65535.f * (1.f - xx_curref_reduc[i][repref] - yy_curref_reduc[i][repref]) * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; - float r, g, b; - Color::xyz2rgb(X, Y, Z, r, g, b, wip); - r /= rmm[repref]; - g /= gmm[repref]; - b /= bmm[repref]; - R_curref_reduc[i][repref] = r; - G_curref_reduc[i][repref] = g; - B_curref_reduc[i][repref] = b; - - } + for (int i = 0; i < w; i++) { + float X = 65535.f * xx_curref_reduc[i][repref] * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; + float Y = 65535.f * YY_curref_reduc[i][repref]; + float Z = 65535.f * (1.f - xx_curref_reduc[i][repref] - yy_curref_reduc[i][repref]) * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; + float r, g, b; + Color::xyz2rgb(X, Y, Z, r, g, b, wip); + r /= rmm[repref]; + g /= gmm[repref]; + b /= bmm[repref]; + R_curref_reduc[i][repref] = r; + G_curref_reduc[i][repref] = g; + B_curref_reduc[i][repref] = b; } @@ -6706,8 +6694,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double separated = false; ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants - int kk = -1; - //calculate x y Y int sizcurr = siza;//choice of number of correlate colors in image histcurr(N_t, sizcurr); @@ -6720,7 +6706,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double YYcurr_reduc(N_t, sizcurr); //calculate x y z for each pixel with multiplier rmm gmm bmm - kk = -1; for (int tt = 0; tt < N_t; tt++) {//N_t // double swp = (Txyz[tt].XX + Txyz[tt].ZZ + 1.); @@ -6752,7 +6737,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } - kk = -1; + int kk = -1; for (int i = 0; i < Nc ; i++) { if (good_spectral[i] == 1) { @@ -6767,34 +6752,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - - /* - //cat02 not need and does not work well - float nnx, nny, nnz; - - if(wbpar.wbcat02Method == "cam") {//code no update... - for(int k=0;k < sizcurr3; k++) { - float nnx = xxyycurr[2 * k][tt]*YYcurr[k][tt] / xxyycurr[2 * k + 1][tt]; - float nny = YYcurr[k][tt]; - float nnz = (1.f -xxyycurr[2 * k][tt] - xxyycurr[2 * k + 1][tt] )*YYcurr[k][tt]/xxyycurr[2 * k + 1][tt]; - float CAM02BB00 = 1.0f, CAM02BB01=1.0f, CAM02BB02=1.0f, CAM02BB10=1.0f, CAM02BB11=1.0f, CAM02BB12=1.0f, CAM02BB20=1.0f, CAM02BB21=1.0f, CAM02BB22=1.0f; //for CIECAT02 - float Xwb = Txyz[20].XX; - float Ywb = 1.; - float Zwb = Txyz[20].ZZ; - float xn, yn, zn; - ColorTemp::icieCAT02float(Xwb, Ywb, Zwb, CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22, 1.0f); - - xn = CAM02BB00 * nnx + CAM02BB01 * nny + CAM02BB02 * nnz ; - yn = CAM02BB10 * nnx + CAM02BB11 * nny + CAM02BB12 * nnz ; - zn = CAM02BB20 * nnx + CAM02BB21 * nny + CAM02BB22 * nnz; - float som = xn + yn + zn; - xxyycurr[2 * k][tt] = xn / som; - xxyycurr[2 * k + 1][tt] = yn / som; - YYcurr[k][tt] = yn; - } - } - */ - float student = 0.f; @@ -6846,8 +6803,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double scantempend = N_t - 1; } - int kkg = -1; - for (int gr = Rangegreenused.begin; gr < Rangegreenused.end; gr++) { float minstudgr = 100000.f; int goodrefgr = 1; @@ -6871,7 +6826,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double gm = new_scale_mul[1] / scale_mul[1] * gain; bm = new_scale_mul[2] / scale_mul[2] * gain; rmm[tt] = rm / gm; - gmm[tt] = gm / gm; + gmm[tt] = 1.f; bmm[tt] = bm / gm; } @@ -6904,8 +6859,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } - kkg = -1; - //degrade correllation with color high chroma, but not too much...seems not good, but keep in case of?? if (estimchrom < 0.025f) {//very smal value of chroma for image @@ -6924,6 +6877,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } + int kkg = -1; for (int i = 0; i < Nc ; i++) { if (good_spectral[i] == 1) { kkg++; @@ -7083,43 +7037,6 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D { // BENCHFUN //auto white balance -// printf ("AUtoWB OK\n"); -/* - array2D redsobel; - array2D greensobel; - array2D bluesobel; - - redsobel(bfw, bfh); - greensobel(bfw, bfh); - bluesobel(bfw, bfh); -*/ - double avg_r = 0.; - double avg_g = 0.; - double avg_b = 0.; - int rn = 0, gn = 0, bn = 0; -// constexpr double clipHigh = 65500.0; -// constexpr double clipLow = 0; //1500.0; - bool edg = false; - bool greyn = false; - bool robust = false; - bool itc = false; - - if (wbpar.method == "autorobust") { - // printf("autorob\n"); - // RobustWB(redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm); - - } - - if (wbpar.method == "autedg") { - // printf("autoedge\n"); - // edg = true; - } - - if (wbpar.method == "aut") { -// greyn = true; - } - - if (wbpar.method == "autitcgreen") { bool extra = false; @@ -7135,134 +7052,16 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D extra = true; } - // greenref = wbpar.green; -// printf("gree=%f\n", greenref); tempitc = 5000.; -// greenitc = greenref; - itc = true; - if (itc) { - ItcWB(extra, tempref, greenref, tempitc, greenitc, studgood, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, cmp, raw, wbpar); - } + ItcWB(extra, tempref, greenref, tempitc, greenitc, studgood, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, cmp, raw, wbpar); } - - if (wbpar.method == "autedgsdw") { - // SobelWB(redsobel, greensobel, bluesobel, redloc, greenloc, blueloc, bfw, bfh); - // SdwWB(redsobel, greensobel, bluesobel, bfw, bfh, avg_rm, avg_gm, avg_bm); - - } - - if (wbpar.method == "autedgrob") { - // SobelWB(redsobel, greensobel, bluesobel, redloc, greenloc, blueloc, bfw, bfh); - // RobustWB(redsobel, greensobel, bluesobel, bfw, bfh, avg_rm, avg_gm, avg_bm); - - } - - if (wbpar.method == "autosdw") { - // SdwWB(redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm); - - - // printf("bfw=%i bfh=%i begx=%i begy=%i xEn=%i yEn=%i cx=%i\n", bfw, bfh, begx, begy, xEn, yEn, cx); - } - -/* - if (edg) { - SobelWB(redsobel, greensobel, bluesobel, redloc, greenloc, blueloc, bfw, bfh); - -#ifdef _OPENMP - #pragma omp parallel for reduction(+:avg_r, avg_g, avg_b, rn, gn, bn) -#endif - - for (int y = 0; y < bfh ; y++) { - for (int x = 0; x < bfw ; x++) { - if (redsobel[y][x] < clipHigh && redsobel[y][x] > clipLow) { - avg_r += redsobel[y][x]; - rn++; - } - - if (greensobel[y][x] < clipHigh && greensobel[y][x] > clipLow) { - avg_g += greensobel[y][x]; - gn++; - } - - if (bluesobel[y][x] < clipHigh && bluesobel[y][x] > clipLow) { - avg_b += bluesobel[y][x]; - bn++; - } - } - } - } -*/ -/* - if (greyn) { -#ifdef _OPENMP - #pragma omp parallel for reduction(+:avg_r, avg_g, avg_b, rn, gn, bn) -#endif - - for (int y = 0; y < bfh ; y++) { - for (int x = 0; x < bfw ; x++) { - if (redloc[y][x] < clipHigh && redloc[y][x] > clipLow) { - avg_r += redloc[y][x]; - rn++; - } - - if (greenloc[y][x] < clipHigh && greenloc[y][x] > clipLow) { - avg_g += greenloc[y][x]; - gn++; - } - - if (blueloc[y][x] < clipHigh && blueloc[y][x] > clipLow) { - avg_b += blueloc[y][x]; - bn++; - } - } - } - } -*/ -// float varir = localr.equal; -// float varib = 1.f - (varir - 1.f); - - - -//CAT02 inverse - -// - if (greyn || edg) { - avg_rm = avg_r / rn; - avg_gm = avg_g / gn; - avg_bm = avg_b / bn; - } - - /* - //inverse cat02 - if (localr.wbcamMethod == "cat" || localr.wbcamMethod == "gamcat") { - //printf("Inverse CAT02\n"); - float x, y, z; - // cat02_to_xyzfloatraw ( x, y, z, avg_rm, avg_gm, avg_bm); - Color::xyz2rgbraw (x, y, z, avg_rm, avg_gm, avg_bm, wip); - } - */ - if (edg) { - // printf("Local sobel avgr = % f avgg = % f avgb = % f \n", avg_rm, avg_gm, avg_bm); - } - - if (greyn || robust) { - // printf("Local rgb avgr = % f avgg = % f avgb = % f \n", avg_rm, avg_gm, avg_bm); - } - -/* - redsobel(0, 0); - greensobel(0, 0); - bluesobel(0, 0); -*/ } void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) { //used by auto WB local to calculate red, green, blue in local region - // printf("OK RGBLOC\n"); - // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; if (local) { @@ -7270,36 +7069,6 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in bfw = bf_w + 3; } - // printf ("bfh=%i bfw=%i H=%i W=%i \n", bf_h, bf_w, H, W); - ColorManagementParams cmp; - - //TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix(cmp.working); - // TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix (cmp.working); - /* - float toxyz[3][3] = { - { - static_cast ( wprof[0][0] / Color::D50x), - static_cast ( wprof[0][1] / Color::D50x), - static_cast ( wprof[0][2] / Color::D50x) - }, { - static_cast ( wprof[1][0]), - static_cast ( wprof[1][1]), - static_cast ( wprof[1][2]) - }, { - static_cast ( wprof[2][0] / Color::D50z), - static_cast ( wprof[2][1] / Color::D50z), - static_cast ( wprof[2][2] / Color::D50z) - } - }; - */ - /* - double wp[3][3] = { - {wprof[0][0], wprof[0][1], wprof[0][2]}, - {wprof[1][0], wprof[1][1], wprof[1][2]}, - {wprof[2][0], wprof[2][1], wprof[2][2]} - }; - */ -// printf("wp00=%f wp02=%f\n", wp[0][0], wp[0][2]); if (! greenloc) { greenloc(bfw, bfh); } @@ -7312,8 +7081,7 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in blueloc(bfw, bfh); } - float avgL = 0.f; - float redmm = 0.f, greenmm = 0.f, bluemm = 0.f; + double avgL = 0.0; //center data on normal values int nn = 0; @@ -7324,20 +7092,19 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in int loy = cy + i; if (!local) { - redmm = redloc[i][j] = red[i][j]; - greenmm = greenloc[i][j] = green[i][j]; - bluemm = blueloc[i][j] = blue[i][j]; - float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); - avgL += LL; + const float redmm = redloc[i][j] = red[i][j]; + const float greenmm = greenloc[i][j] = green[i][j]; + const float bluemm = blueloc[i][j] = blue[i][j]; + const float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); + avgL += static_cast(LL); nn++; } else { - if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) { - redmm = redloc[loy - begy][lox - begx] = red[i][j]; - greenmm = greenloc[loy - begy][lox - begx] = green[i][j]; - bluemm = blueloc[loy - begy][lox - begx] = blue[i][j]; - float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); - avgL += LL; + const float redmm = redloc[loy - begy][lox - begx] = red[i][j]; + const float greenmm = greenloc[loy - begy][lox - begx] = green[i][j]; + const float bluemm = blueloc[loy - begy][lox - begx] = blue[i][j]; + const float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); + avgL += static_cast(LL); nn++; } } @@ -7345,7 +7112,6 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in avgL /= nn; - float sig = 0.f; float vari = 0.f; int mm = 0; @@ -7356,10 +7122,9 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in mm++; } - sig = sqrt(vari / mm); - float multip = 60000.f / (avgL + 2.f * sig); + const float sig = std::sqrt(vari / mm); + const float multip = 60000.f / (avgL + 2.f * sig); - // printf("multip=%f \n", multip); for (int i = 0; i < bfh; i++) for (int j = 0; j < bfw; j++) { redloc[i][j] *= multip; @@ -7368,8 +7133,6 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in } if (gamma) { - // printf("gamma loc\n"); - for (int i = 0; i < bfh; i++) for (int j = 0; j < bfw; j++) { redloc[i][j] = Color::gammatab_srgb[redloc[i][j]]; @@ -7401,7 +7164,6 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in } -//void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref, double & tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double & rm, double & gm, double & bm, const WBParams & wbpar, const ColorManagementParams & cmp, const RAWParams & raw) { // BENCHFUN @@ -7411,30 +7173,14 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref rm = gm = bm = 1; return; } -/* - if (redAWBMul != -1.) { - rm = redAWBMul; - gm = greenAWBMul; - bm = blueAWBMul; - return; - } - if (!isWBProviderReady()) { - rm = -1.0; - gm = -1.0; - bm = -1.0; - return; - } -*/ double avg_r = 0; double avg_g = 0; double avg_b = 0; int rn = 0, gn = 0, bn = 0; double avg_rm, avg_gm, avg_bm; - // int bfh = bf_h + 3, bfw = bf_w + 3; int bfh = H, bfw = W; if (wbpar.method == "autold") { - // printf("OK auto OLD\n"); if (fuji) { for (int i = 32; i < H - 32; i++) { int fw = ri->get_FujiWidth(); @@ -7608,44 +7354,28 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref } } - if (wbpar.method == "aut" || wbpar.method == "autosdw" || wbpar.method == "autedgsdw" || wbpar.method == "autitcgreen" || wbpar.method == "autedgrob" || wbpar.method == "autedg" || wbpar.method == "autorobust") { + if (wbpar.method == "autitcgreen") { bool twotimes = false; - // printf("OK avant auto\n"); WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); - // printf("OK apres auto\n"); - } redloc(0, 0); greenloc(0, 0); blueloc(0, 0); - if( settings->verbose ) { + if (settings->verbose) { printf ("AVG: %g %g %g\n", avg_r / std::max(1, rn), avg_g / std::max(1, gn), avg_b / std::max(1, bn)); } - // return ColorTemp (pow(avg_r/rn, 1.0/6.0)*img_r, pow(avg_g/gn, 1.0/6.0)*img_g, pow(avg_b/bn, 1.0/6.0)*img_b); - double reds = 0., greens = 0., blues = 0.; - - if (wbpar.method == "aut" || wbpar.method == "autosdw" || wbpar.method == "autedgsdw" || wbpar.method == "autedgrob" || wbpar.method == "autedg" || wbpar.method == "autorobust") { - //twotimes = true; - reds = avg_rm * refwb_red; - greens = avg_gm * refwb_green; - blues = avg_bm * refwb_blue; - } - - if (wbpar.method == "autold") { - reds = avg_r / std::max(1, rn) * refwb_red; - greens = avg_g / std::max(1, gn) * refwb_green; - blues = avg_b / std::max(1, bn) * refwb_blue; - } - if (wbpar.method == "autitcgreen") { //not used redAWBMul = rm = avg_rm * refwb_red; greenAWBMul = gm = avg_gm * refwb_green; blueAWBMul = bm = avg_bm * refwb_blue; } else { + const double reds = avg_r / std::max(1, rn) * refwb_red; + const double greens = avg_g / std::max(1, gn) * refwb_green; + const double blues = avg_b / std::max(1, bn) * refwb_blue; redAWBMul = rm = imatrices.rgb_cam[0][0] * reds + imatrices.rgb_cam[0][1] * greens + imatrices.rgb_cam[0][2] * blues; greenAWBMul = gm = imatrices.rgb_cam[1][0] * reds + imatrices.rgb_cam[1][1] * greens + imatrices.rgb_cam[1][2] * blues; blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; @@ -7653,12 +7383,6 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref } - - - - - -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) { // BENCHFUN @@ -7875,9 +7599,6 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; } -//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - - ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) { @@ -8090,9 +7811,6 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector &conversionBuffer, bool dehacontlutili, bool mapcontlutili, bool useHsl, float &minCD, float &maxCD, float &mini, float &maxi, float &Tmean, float &Tsigma, float &Tmin, float &Tmax, LUTu &histLRETI) override; void retinexPrepareCurves (const procparams::RetinexParams &retinexParams, LUTf &cdcurve, LUTf &mapcurve, RetinextransmissionCurve &retinextransmissionCurve, RetinexgaintransmissionCurve &retinexgaintransmissionCurve, bool &retinexcontlutili, bool &mapcontlutili, bool &useHsl, LUTu & lhist16RETI, LUTu & histLRETI) override; void retinexPrepareBuffers (const procparams::ColorManagementParams& cmp, const procparams::RetinexParams &retinexParams, multi_array2D &conversionBuffer, LUTu &lhist16RETI) override; - void flushRawData () override; - void flushRGB () override; + void flush () override; void HLRecovery_Global (const procparams::ToneCurveParams &hrp) override; void refinement(int PassCount); void setBorder(unsigned int rawBorder) override {border = rawBorder;} diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 779f2b33d..d097ead72 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -801,8 +801,7 @@ private: // commented out because it makes the application crash when batch processing... // TODO: find a better place to flush rawData and rawRGB if (flush) { - imgsrc->flushRawData(); - imgsrc->flushRGB(); + imgsrc->flush(); } return true; diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 9da4417e2..763621171 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -366,7 +366,7 @@ ColorTemp StdImageSource::getSpotWB (std::vector &red, std::vectorallocate(0, 0); }; diff --git a/rtengine/stdimagesource.h b/rtengine/stdimagesource.h index b88db42c4..9f4fbdfbe 100644 --- a/rtengine/stdimagesource.h +++ b/rtengine/stdimagesource.h @@ -118,7 +118,7 @@ public: void getRawValues(int x, int y, int rotate, int &R, int &G, int &B) override { R = G = B = 0;} - void flushRGB () override; + void flush () override; void captureSharpening(const procparams::CaptureSharpeningParams &sharpeningParams, bool showMask, double &conrastThreshold, double &radius) override {}; }; From ae0586719ae39a0c6e3f8b2cc229848ceef77e1a Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 28 Feb 2020 08:33:12 +0100 Subject: [PATCH 318/453] Enabled bencfun for Itcwb --- rtdata/languages/default | 2 +- rtengine/rawimagesource.cc | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 5af093b6b..7e5830ec5 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -2320,7 +2320,7 @@ TP_WBALANCE_SOLUX47;Solux 4700K (vendor) TP_WBALANCE_SOLUX47_NG;Solux 4700K (Nat. Gallery) TP_WBALANCE_SPOTWB;Use the pipette to pick the white balance from a neutral patch in the preview. TP_WBALANCE_STUDLABEL;Student Itcwb: %1 -TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic.\nStudent=1000 means the calculations were not restarted but results are probably goods +TP_WBALANCE_STUDLABEL_TOOLTIP;Display calculated Student correlation\nThe lower the student value, the better the correlation\nValues below 0.002 are excellent\nValues below 0.005 are very good\nValues below 0.01 are good\nValues below 0.05 are good enough\nValues above 0.5 are poor\nVery good Student test results does not mean that the WB is good, if the illuminant is non-standard the results are erratic.\nStudent=1000 means the calculations were not restarted but results are probably goods, use previous results TP_WBALANCE_TEMPBIAS;AWB temperature bias TP_WBALANCE_TEMPBIAS_TOOLTIP;Allows to alter the computation of the "auto white balance"\nby biasing it towards warmer or cooler temperatures. The bias\nis expressed as a percentage of the computed temperature,\nso that the result is given by "computedTemp + computedTemp * bias". TP_WBALANCE_TEMPERATURE;Temperature diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 3cabaf5b2..63a75cee6 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -43,7 +43,7 @@ #include "rtlensfun.h" #include "../rtgui/options.h" -//#define BENCHMARK +#define BENCHMARK #include "StopWatch.h" #ifdef _OPENMP @@ -5902,7 +5902,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double itcwb_delta : 1 by defaut can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good */ // BENCHFUN - // BENCHFUN + BENCHFUN TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix("sRGB"); From a9e2bde610dfcbbc641677445b88e9c99866f3dd Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 28 Feb 2020 11:44:25 +0100 Subject: [PATCH 319/453] use autold instead of auto, #5676 --- rtengine/improccoordinator.cc | 2 +- rtengine/rtthumbnail.cc | 2 +- rtgui/thumbnail.cc | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 6c9105036..795bcaabb 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1584,7 +1584,7 @@ void ImProcCoordinator::saveInputICCReference(const Glib::ustring& fname, bool a if (params->wb.method == "Camera") { currWB = imgsrc->getWB(); - } else if (params->wb.method == "Auto") { + } else if (params->wb.method == "autold") { if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias) { double rm, gm, bm; imgsrc->getAutoWBMultipliers(rm, gm, bm); diff --git a/rtengine/rtthumbnail.cc b/rtengine/rtthumbnail.cc index 4507f2b40..a063d965b 100644 --- a/rtengine/rtthumbnail.cc +++ b/rtengine/rtthumbnail.cc @@ -1130,7 +1130,7 @@ IImage8* Thumbnail::processImage (const procparams::ProcParams& params, eSensorT double cam_g = colorMatrix[1][0] * camwbRed + colorMatrix[1][1] * camwbGreen + colorMatrix[1][2] * camwbBlue; double cam_b = colorMatrix[2][0] * camwbRed + colorMatrix[2][1] * camwbGreen + colorMatrix[2][2] * camwbBlue; currWB = ColorTemp (cam_r, cam_g, cam_b, params.wb.equal); - } else if (params.wb.method == "Auto") { + } else if (params.wb.method == "autold") { currWB = ColorTemp (autoWBTemp, autoWBGreen, wbEqual, "Custom"); } diff --git a/rtgui/thumbnail.cc b/rtgui/thumbnail.cc index 87bc730eb..7452c9d72 100644 --- a/rtgui/thumbnail.cc +++ b/rtgui/thumbnail.cc @@ -216,7 +216,7 @@ const ProcParams& Thumbnail::getProcParamsU () double ct; getCamWB (ct, pparams->wb.green); pparams->wb.temperature = ct; - } else if (pparams->wb.method == "Auto") { + } else if (pparams->wb.method == "autold") { double ct; getAutoWB (ct, pparams->wb.green, pparams->wb.equal, pparams->wb.tempBias); pparams->wb.temperature = ct; From 77be7605d80ffd85aea48fb3191e4fa28ffbb87f Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 28 Feb 2020 12:02:38 +0100 Subject: [PATCH 320/453] "Auto" => "autold", #5676 --- rtengine/simpleprocess.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/simpleprocess.cc b/rtengine/simpleprocess.cc index 779f2b33d..8fdfefdd7 100644 --- a/rtengine/simpleprocess.cc +++ b/rtengine/simpleprocess.cc @@ -276,7 +276,7 @@ private: currWB = ColorTemp(); } else if (params.wb.method == "Camera") { currWB = imgsrc->getWB(); - } else if (params.wb.method == "Auto") { + } else if (params.wb.method == "autold") { double rm, gm, bm; imgsrc->getAutoWBMultipliers(rm, gm, bm); currWB.update(rm, gm, bm, params.wb.equal, params.wb.tempBias); From c7c1dec9cbe63016ceb54b1d181fc467b4201d85 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 28 Feb 2020 13:19:10 +0100 Subject: [PATCH 321/453] whitebalance : fix bug in changing method, #5676 --- rtgui/whitebalance.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/whitebalance.cc b/rtgui/whitebalance.cc index 9a5f1a398..5d1c907df 100644 --- a/rtgui/whitebalance.cc +++ b/rtgui/whitebalance.cc @@ -897,7 +897,7 @@ int WhiteBalance::_setActiveMethod(Glib::ustring &label, Gtk::TreeModel::Childre if (row[methodColumns.colLabel] == label) { method->set_active(iter); - found = method->get_active_row_number(); + found = row[methodColumns.colId]; } if (found != -1) { From fbe718b64f0fac722ec665b74c7b1434abae8818 Mon Sep 17 00:00:00 2001 From: Benitoite Date: Fri, 28 Feb 2020 10:20:40 -0800 Subject: [PATCH 322/453] fixes macOS autobuild (#5674) * update macOS autobuild yaml * updates */CMakeLists* for macOS autobuild compatibility * "" a dir for cmake * Un empty an empty EXTRA_INCDIR * use a cmake operator * Use the . dir to un-empty a string * fix minutes timer in macos yaml * test & skip instead of load & include * disregard fractional part of minutes in mac yaml * add another cmake test * fix typo in mac yaml * fix other part of same typo * correct a filename in mac yaml * test all include dirs * fix of mac yaml * mac:fix a path in yaml * mac:and its antecedent * options.h include a dir * test __has_include (gcc 5.* & up & clang) * remove a printf() in mac yaml * mac:change a "" and an elseif() to else() * fix a whitespace error * fix 2 whitespace errors * ZULU>UTC * add a "UTC * on the other side of the " * mac:properly set default LOCAL_PREFIX in CACHE * use of zsh subshells in macos yaml * mac:remove some && * mac:remove some " * mac:floating point divisors * mac:use double paren (()) * mac:add a dir * mac:floatize with decimal point * mac:zsh -c certain lines * remove a marker --- .github/workflows/main.yml | 107 +++++++++++++++++++++---------------- AboutThisBuild.txt.in | 2 +- CMakeLists.txt | 64 +++++++++++++--------- UpdateInfo.cmake | 27 +++++----- rtdata/CMakeLists.txt | 18 +++---- rtengine/CMakeLists.txt | 81 ++++++++++++++++++---------- rtexif/CMakeLists.txt | 6 +-- rtgui/CMakeLists.txt | 18 +++---- rtgui/options.h | 5 ++ tools/osx/macosx_bundle.sh | 1 + 10 files changed, 193 insertions(+), 136 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 13aa6677a..e483ace01 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,81 +1,96 @@ name: macOS build on: push: - branches-ignore: - - '**' + branches: + - dev + - patch** + - newlocallab + pull_request: + branches: + - dev + - newlocallab + release: + types: + - created jobs: build: - runs-on: macos-latest + runs-on: macos-10.15 steps: - uses: actions/checkout@v1 - name: Install dependencies - run: > - brew install gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme - libsigc++ little-cms2 libiptcdata fftw lensfun llvm expat pkgconfig - libomp shared-mime-info - - name: patch libiconv run: | - mkdir libiconv && cd libiconv - wget https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.16.tar.gz - tar xf libiconv-1.16.tar.gz - cd libiconv-1.16 - patch -p1 < "${GITHUB_WORKSPACE}/tools/osx/libiconv_1.16_rt.patch" - mkdir build && cd build - destDir="$(pwd)" - ../configure --prefix=/opt/local --disable-static \ - CFLAGS='-arch x86_64 -mmacosx-version-min=10.9' \ - LDFLAGS='-arch x86_64 -mmacosx-version-min=10.9' \ - CXXFLAGS='-arch x86_64 -mmacosx-version-min=10.9' - make --jobs - make DESTDIR="${destDir}" install - sudo mv opt/local /usr/local/opt/libiconv - - name: cmake + date -u + mkdir build + date +%s > build/stamp + brew uninstall --ignore-dependencies libtiff + brew install libtiff gtk+3 gtkmm3 gtk-mac-integration adwaita-icon-theme libsigc++ little-cms2 libiptcdata fftw lensfun expat pkgconfig libomp shared-mime-info | tee -a depslog + date -u + echo "----====Pourage====----" + cat depslog | grep Pouring + zsh -c 'echo "Completed installation of dependencies in $(printf "%0.2f" $(($[$(date +%s)-$(cat build/stamp)]/$((60.))))) minutes"' + - name: Configure build system env: CMAKE_CXX_STANDARD: 11 - PKG_CONFIG_PATH: /usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig + PKG_CONFIG_PATH: /usr/local/opt/libtiff/lib/pkgconfig:/usr/local/opt/libffi/lib/pkgconfig:/usr/local/opt/expat/lib/pkgconfig RAW_THERAPEE_MAJOR: '5' RAW_THERAPEE_MINOR: '8' C_FLAGS: > - -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib - -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include - -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include - -I/usr/local/opt/expat/include -I/usr/local/opt/llvm/include + -arch x86_64 -mtune=generic -Xpreprocessor -fopenmp /usr/local/lib/libomp.dylib -I/usr/local/include -I/usr/local/opt/gdk-pixbuf/include -I/usr/local/opt/libiconv/include -I/usr/local/opt/libxml2/include -I/usr/local/opt/expat/include -I/usr/local/opt/libtiff/include run: | # GITHUB_REF is the ref that triggered the build, like # refs/heads/new-feature - the next line parses that to REF: the branch # name only (new-feature) - REF=${GITHUB_REF##*/} - mkdir build && cd build + export REF=${GITHUB_REF##*/} + export C_FLAGS=$(echo -e $C_FLAGS | tr -d '\n') + cd build && date -u && date +%s > configstamp cmake \ - -DCMAKE_BUILD_TYPE="release" \ + -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_VERBOSE_MAKEFILE:BOOL=ON \ - -DCMAKE_EXE_LINKER_FLAGS="-L/usr/local/lib -L/usr/local/opt/llvm/lib -Wl,-rpath,/usr/local/opt/llvm/lib -L/usr/local/opt/gdk-pixbuf/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ + -DCMAKE_EXE_LINKER_FLAGS="-L. -L/usr/local/lib -Wl,-rpath -Wl,/usr/local/lib -L/usr/local/opt/gdk-pixbuf/lib -L/usr/local/opt/libiconv/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libffi/lib -L/usr/local/opt/libxml2/lib -L/usr/local/opt/expat/lib" \ -DCACHE_NAME_SUFFIX="${RAW_THERAPEE_MAJOR}.${RAW_THERAPEE_MINOR}-${REF}" \ - -DPROC_TARGET_NUMBER="2" \ + -DPROC_TARGET_NUMBER="1" \ -DPROC_LABEL="generic processor" \ -DWITH_LTO="OFF" \ - -DLENSFUNDBDIR="./share/lensfun" \ - -DOpenMP_C_FLAGS=-fopenmp=libomp \ - -DOpenMP_CXX_FLAGS=-fopenmp=libomp \ - -DOpenMP_C_LIB_NAMES="libomp" \ - -DOpenMP_CXX_LIB_NAMES="libomp" \ - -DOpenMP_libomp_LIBRARY="/usr/local/lib/libomp.dylib" \ + -DLENSFUNDBDIR="/Applications/RawTherapee.app/Contents/Resources/share/lensfun" \ + -DCMAKE_C_COMPILER=/usr/local/opt/llvm/bin/clang \ + -DCMAKE_CXX_COMPILER=/usr/local/opt/llvm/bin/clang++ \ + -DCMAKE_C_FLAGS="-arch x86_64 -Wno-pass-failed -Wno-deprecated-register -Wno-unused-command-line-argument" \ + -DCMAKE_CXX_FLAGS="-arch x86_64 -Wno-pass-failed -Wno-deprecated-register -Wno-unused-command-line-argument" \ -DOpenMP_C_FLAGS="${C_FLAGS}" \ -DOpenMP_CXX_FLAGS="${C_FLAGS}" \ - -DCMAKE_AR="/usr/local/opt/llvm/bin/llvm-ar" \ - -DCMAKE_RANLIB="/usr/local/opt/llvm/bin/llvm-ranlib" \ - -DCMAKE_OSX_DEPLOYMENT_TARGET="10.11" \ + -DOpenMP_C_LIB_NAMES=libomp \ + -DOpenMP_CXX_LIB_NAMES=libomp \ + -DOpenMP_libomp_LIBRARY=/usr/local/lib/libomp.dylib \ + -DCMAKE_AR=/usr/bin/ar \ + -DCMAKE_RANLIB=/usr/bin/ranlib \ + -DCMAKE_OSX_DEPLOYMENT_TARGET=10.15 \ .. - make --jobs - make install - sudo make macosx_bundle - ARTIFACT=(RawTherapee*.zip) + zsh -c 'echo "Configured in $(printf "%0.2f" $(($[$(date +%s)-$(cat configstamp)]/$((60.))))) minutes"' + - name: Compile RawTherapee + run: | + date -u && date +%s > build/compilestamp + cd build + export REF=${GITHUB_REF##*/} + make -j$(sysctl -a | grep machdep.cpu.thread_count | tail -c 2) install + zsh -c 'echo "Compiled in $(printf "%0.2f" $(($[$(date +%s)-$(cat compilestamp)]/$((60.))))) minutes"' + - name: Create application bundle + run: | + zsh + date +%s > build/bundlestamp && date -u && cd build + export REF=${GITHUB_REF##*/} && export LOCAL_PREFIX=/usr && sudo make macosx_bundle + export ARTIFACT=(RawTherapee*.zip) echo "=== artifact: ${ARTIFACT}" # defining environment variables for next step as per # https://github.com/actions/starter-workflows/issues/68 echo "::set-env name=ARTIFACT_PATH::${GITHUB_WORKSPACE}/build/${ARTIFACT}" echo "::set-env name=ARTIFACT_FILE::${ARTIFACT}" + zsh -c 'echo "Bundled in $(printf "%0.2f" $(($[$(date +%s)-$(cat bundlestamp)]/$((60.))))) minutes"' + exit - uses: actions/upload-artifact@v1 with: name: ${{env.ARTIFACT_FILE}} path: ${{env.ARTIFACT_PATH}} + - name: Finish build + run: | + date -u + zsh -c 'echo "Build completed in $(printf "%0.2f" $(($[$(date +%s)-$(cat build/stamp)]/$((60.))))) minutes"' diff --git a/AboutThisBuild.txt.in b/AboutThisBuild.txt.in index 06f628187..4d8f4f3fe 100644 --- a/AboutThisBuild.txt.in +++ b/AboutThisBuild.txt.in @@ -14,6 +14,6 @@ Link flags: ${LFLAGS} OpenMP support: ${OPTION_OMP} MMAP support: ${WITH_MYFILE_MMAP} Build OS: ${BUILDINFO_OS} -Build date: ${BUILDINFO_DATE} ZULU +Build date: ${BUILDINFO_DATE} UTC Build epoch: ${BUILDINFO_EPOCH} Build UUID: ${BUILDINFO_UUID} diff --git a/CMakeLists.txt b/CMakeLists.txt index 5998ccb50..e3ae3b7ff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,8 +1,14 @@ -cmake_minimum_required(VERSION 3.5) +# Use of SOURCE_DIR target property begins at cmake 3.7 +if(APPLE) + cmake_minimum_required(VERSION 3.7) +else() + cmake_minimum_required(VERSION 3.5) +endif() # Compiler id for Apple Clang if(APPLE) cmake_policy(SET CMP0025 NEW) + cmake_policy(SET CMP0037 NEW) endif() # Must stay before the project() command: @@ -145,7 +151,7 @@ if(WIN32) CACHE STRING "Additional search paths") endif() -if(APPLE) +if(APPLE) # TODO make -mtune generic conditional and/or specifiable. if(CMAKE_CXX_COMPILER MATCHES "g\\+\\+-mp-4.[5-8]" OR CMAKE_CXX_COMPILER_ARG1 MATCHES "g\\+\\+-mp-4.[5-8]") set(CMAKE_EXE_LINKER_FLAGS @@ -210,7 +216,7 @@ endif() if(NOT DEFINED BUNDLE_BASE_INSTALL_DIR) if(APPLE) - set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BUILD_TYPE}/MacOS") + set(BUNDLE_BASE_INSTALL_DIR "${PROJECT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/MacOS") else() set(BUNDLE_BASE_INSTALL_DIR "${CMAKE_BINARY_DIR}/${CMAKE_BUILD_TYPE}") endif() @@ -219,7 +225,7 @@ endif() if(BUILD_BUNDLE) if(APPLE) set(BINDIR "${BUNDLE_BASE_INSTALL_DIR}") - set(CMAKE_INSTALL_PREFIX ".") + set(CMAKE_INSTALL_PREFIX "${PROJECT_SOURCE_DIR}/build") else() set(BINDIR .) set(CMAKE_INSTALL_PREFIX "${BUNDLE_BASE_INSTALL_DIR}") @@ -233,7 +239,7 @@ endif() if(NOT DEFINED DATADIR) if(BUILD_BUNDLE) if(APPLE) - set(DATADIR "${CMAKE_BUILD_TYPE}/Resources/share") + set(DATADIR "${PROJECT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/Resources/share") else() set(DATADIR .) endif() @@ -245,7 +251,7 @@ endif() if(NOT DEFINED LIBDIR) if(BUILD_BUNDLE) if(APPLE) - set(LIBDIR "${CMAKE_BUILD_TYPE}/Frameworks") + set(LIBDIR "${PROJECT_SOURCE_DIR}/build/${CMAKE_BUILD_TYPE}/Frameworks") else() set(LIBDIR .) endif() @@ -362,8 +368,10 @@ if(APPLE) set(LOCAL_PREFIX "${LOCAL_PREFIX}" CACHE STRING "macos/gtk parent directory ie /usr or /opt") - elseif(NOT DEFINED LOCAL_PREFIX) - set(LOCAL_PREFIX "/usr") + else() + set(LOCAL_PREFIX + /usr + CACHE STRING "macos/gtk parent directory ie /usr or /opt") endif() if("${FANCY_DMG}") set(FANCY_DMG @@ -612,12 +620,10 @@ else() set(PROC_BIT_DEPTH 64 bits) endif() -# Get compiler name and version. Only CMake > 2.8.7 knows -# CMAKE_*_COMPILER_VERSION -if(CMAKE_VERSION VERSION_GREATER 2.8.7) +# Get compiler name and version. get_filename_component(COMPILER_INFO ${CMAKE_C_COMPILER} NAME_WE) set(COMPILER_INFO "${COMPILER_INFO} ${CMAKE_C_COMPILER_VERSION}") -else() +if(NOT APPLE) execute_process( COMMAND gcc -dumpversion OUTPUT_VARIABLE GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) @@ -633,15 +639,18 @@ set(LFLAGS "${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${UPPER_CMAKE_BUILD_TYPE}}" ) -set(ABOUT_COMMAND_WITH_ARGS - ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} - -DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX} - -DPROC_LABEL:STRING="${PROC_LABEL}" - -DPROC_BIT_DEPTH:STRING="${PROC_BIT_DEPTH}" - -DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} - -DGTKMM_VERSION:STRING=${GTKMM_VERSION} -DOPTION_OMP:STRING=${OPTION_OMP} - -DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP} - -DLENSFUN_VERSION:STRING=${LENSFUN_VERSION}) +if(NOT APPLE) + set(ABOUT_COMMAND_WITH_ARGS + ${CMAKE_COMMAND} -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} + -DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX} + -DPROC_LABEL:STRING="${PROC_LABEL}" + -DPROC_BIT_DEPTH:STRING="${PROC_BIT_DEPTH}" + -DBUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} + -DGTKMM_VERSION:STRING=${GTKMM_VERSION} + -DOPTION_OMP:STRING=${OPTION_OMP} + -DWITH_MYFILE_MMAP:STRING=${WITH_MYFILE_MMAP} + -DLENSFUN_VERSION:STRING=${LENSFUN_VERSION}) +endif() if(WIN32) list( @@ -654,16 +663,19 @@ if(WIN32) -DCMAKE_INSTALL_PREFIX:STRING="${CMAKE_INSTALL_PREFIX}" -DBIT_DEPTH:STRING="${CMAKE_SIZEOF_VOID_P}") elseif(APPLE) - list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Apple - -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} - -DCOMPILER_INFO:STRING=${COMPILER_INFO}) + set( + ABOUT_COMMAND_WITH_ARGS + cmake -DPROJECT_SOURCE_DIR:STRING=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/UpdateInfo.cmake -DSYSTEM:STRING=Apple -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} -DCOMPILER_INFO:STRING=${COMPILER_INFO} -DCACHE_NAME_SUFFIX:STRING=${CACHE_NAME_SUFFIX}) else() list(APPEND ABOUT_COMMAND_WITH_ARGS -DSYSTEM:STRING=Linux -DCXX_FLAGS:STRING=${CXX_FLAGS} -DLFLAGS:STRING=${LFLAGS} -DCOMPILER_INFO:STRING=${COMPILER_INFO}) endif() - -list(APPEND ABOUT_COMMAND_WITH_ARGS -P "${PROJECT_SOURCE_DIR}/UpdateInfo.cmake") +if(NOT APPLE) + list(APPEND + ABOUT_COMMAND_WITH_ARGS + -P "${PROJECT_SOURCE_DIR}/UpdateInfo.cmake") +endif() add_custom_target( UpdateInfo ALL diff --git a/UpdateInfo.cmake b/UpdateInfo.cmake index 6fa8e289c..473c68364 100644 --- a/UpdateInfo.cmake +++ b/UpdateInfo.cmake @@ -1,5 +1,9 @@ # cmakefile executed within a makefile target +if(APPLE) + set(PROJECT_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..") +endif() + # If we find ReleaseInfo.cmake we use the info from there and don't need Git to be installed find_file(REL_INFO_FILE ReleaseInfo.cmake PATHS "${PROJECT_SOURCE_DIR}" NO_DEFAULT_PATH) if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) @@ -68,20 +72,19 @@ if(REL_INFO_FILE STREQUAL REL_INFO_FILE-NOTFOUND) execute_process(COMMAND date -Ru OUTPUT_VARIABLE BUILDINFO_DATE OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND date +%s OUTPUT_VARIABLE BUILDINFO_EPOCH OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND uuidgen COMMAND tr "A-Z" "a-z" OUTPUT_VARIABLE BUILDINFO_UUID OUTPUT_STRIP_TRAILING_WHITESPACE) - message(STATUS "Git checkout information:") - message(STATUS " Commit description: ${GIT_DESCRIBE}") - message(STATUS " Branch: ${GIT_BRANCH}") - message(STATUS " Commit: ${GIT_COMMIT}") - message(STATUS " Commit date: ${GIT_COMMIT_DATE}") - message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") - message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") - message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") + message(STATUS " Commit description: ${GIT_DESCRIBE}") + message(STATUS " Branch: ${GIT_BRANCH}") + message(STATUS " Commit: ${GIT_COMMIT}") + message(STATUS " Commit date: ${GIT_COMMIT_DATE}") + message(STATUS " Commits since tag: ${GIT_COMMITS_SINCE_TAG}") + message(STATUS " Commits since branch: ${GIT_COMMITS_SINCE_BRANCH}") + message(STATUS " Version (unreliable): ${GIT_NUMERIC_VERSION_BS}") message(STATUS "Build information:") - message(STATUS " Build OS: ${BUILDINFO_OS}") - message(STATUS " Build date: ${BUILDINFO_DATE}") - message(STATUS " Epoch: ${BUILDINFO_EPOCH}") - message(STATUS " UUID: ${BUILDINFO_UUID}") + message(STATUS " Build OS: ${BUILDINFO_OS}") + message(STATUS " Build date: ${BUILDINFO_DATE} UTC") + message(STATUS " Epoch: ${BUILDINFO_EPOCH}") + message(STATUS " UUID: ${BUILDINFO_UUID}") if(NOT DEFINED CACHE_NAME_SUFFIX) set(CACHE_NAME_SUFFIX "${GIT_DESCRIBE}") diff --git a/rtdata/CMakeLists.txt b/rtdata/CMakeLists.txt index 76804c0f0..00a32c0cc 100644 --- a/rtdata/CMakeLists.txt +++ b/rtdata/CMakeLists.txt @@ -47,8 +47,8 @@ if(WIN32) install(FILES ${FONTS} DESTINATION "${DATADIR}/fonts") endif() -install(DIRECTORY ${PROFILESDIR} DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.pp3") -install(DIRECTORY ${THEMEDIR} DESTINATION "${DATADIR}") +install(DIRECTORY "${PROFILESDIR}" DESTINATION "${DATADIR}" FILES_MATCHING PATTERN "*.pp3") +install(DIRECTORY "${THEMEDIR}" DESTINATION "${DATADIR}") install(FILES ${IMG_SVG} DESTINATION "${DATADIR}/images") install(FILES ${IMG_PNG} DESTINATION "${DATADIR}/images") @@ -57,19 +57,15 @@ install(FILES ${IMG_ICO} DESTINATION "${DATADIR}/images") if(APPLE) # CMake escapes first item quote character. Do not remove 'DUMMY_VARIABLE=' set(MACOSX_BUNDLE_COMMAND DUMMY_VARIABLE= - PROJECT_NAME="${PROJECT_NAME}" + PROJECT_NAME=${PROJECT_NAME} PROJECT_SOURCE_DIR="${PROJECT_SOURCE_DIR}" - CMAKE_BUILD_TYPE="${CMAKE_BUILD_TYPE}" + CMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} GTK_PREFIX="${GTK_PREFIX}") - if(PROC_BIT_DEPTH MATCHES 32) - list(APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=32) - else() - list(APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=64) - endif() - list(APPEND MACOSX_BUNDLE_COMMAND sh "${PROJECT_SOURCE_DIR}/tools/osx/macosx_bundle.sh") + list(APPEND MACOSX_BUNDLE_COMMAND PROC_BIT_DEPTH=64) + list(APPEND MACOSX_BUNDLE_COMMAND sh ${PROJECT_SOURCE_DIR}/tools/osx/macosx_bundle.sh) add_custom_target(macosx_bundle COMMAND ${MACOSX_BUNDLE_COMMAND} - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/build COMMENT "Creating macOS bundle") endif() diff --git a/rtengine/CMakeLists.txt b/rtengine/CMakeLists.txt index 5f59da371..3813c5708 100644 --- a/rtengine/CMakeLists.txt +++ b/rtengine/CMakeLists.txt @@ -1,35 +1,60 @@ -include_directories(${EXTRA_INCDIR} - ${EXPAT_INCLUDE_DIRS} - ${FFTW3F_INCLUDE_DIRS} - ${GLIB2_INCLUDE_DIRS} - ${GLIBMM_INCLUDE_DIRS} - ${GOBJECT_INCLUDE_DIRS} - ${GTHREAD_INCLUDE_DIRS} - ${GTKMM_INCLUDE_DIRS} - ${GTK_INCLUDE_DIRS} - ${IPTCDATA_INCLUDE_DIRS} - ${LCMS_INCLUDE_DIRS} - ${LENSFUN_INCLUDE_DIRS} - ${RSVG_INCLUDE_DIRS} -) +if(EXTRA_INCDIR) + include_directories("${EXTRA_INCDIR}") +endif() +if(EXPAT_INCLUDE_DIRS) + include_directories("${EXPAT_INCLUDE_DIRS}") +endif() +if(FFTW3F_INCLUDE_DIRS) + include_directories("${FFTW3F_INCLUDE_DIRS}") +endif() +if(GLIB2_INCLUDE_DIRS) + include_directories("${GLIB2_INCLUDE_DIRS}") +endif() +if(GLIBMM_INCLUDE_DIRS) + include_directories("${GLIBMM_INCLUDE_DIRS}") +endif() +if(GOBJECT_INCLUDE_DIRS) + include_directories("${GOBJECT_INCLUDE_DIRS}") +endif() +if(GTHREAD_INCLUDE_DIRS) + include_directories("${GTHREAD_INCLUDE_DIRS}") +endif() +if(GTKMM_INCLUDE_DIRS) + include_directories("${GTKMM_INCLUDE_DIRS}") +endif() +if(GTK_INCLUDE_DIRS) + include_directories("${GTK_INCLUDE_DIRS}") +endif() +if(IPTCDATA_INCLUDE_DIRS) + include_directories("${IPTCDATA_INCLUDE_DIRS}") +endif() +if(LCMS_INCLUDE_DIRS) + include_directories("${LCMS_INCLUDE_DIRS}") +endif() +if(LENSFUN_INCLUDE_DIRS) + include_directories("${LENSFUN_INCLUDE_DIRS}") +endif() +if(RSVG_INCLUDE_DIRS) + include_directories("${RSVG_INCLUDE_DIRS}") +endif() if(NOT WITH_SYSTEM_KLT) include_directories("${CMAKE_SOURCE_DIR}/rtengine/klt") else() - include_directories(${KLT_INCLUDE_DIRS}) + include_directories("${KLT_INCLUDE_DIRS}") endif() link_directories("${PROJECT_SOURCE_DIR}/rtexif" - ${EXPAT_LIBRARY_DIRS} - ${EXTRA_LIBDIR} - ${FFTW3F_LIBRARY_DIRS} - ${GLIB2_LIBRARY_DIRS} - ${GLIBMM_LIBRARY_DIRS} - ${GOBJECT_LIBRARY_DIRS} - ${GTHREAD_LIBRARY_DIRS} - ${IPTCDATA_LIBRARY_DIRS} - ${LCMS_LIBRARY_DIRS} - ${LENSFUN_LIBRARY_DIRS} - ${RSVG_LIBRARY_DIRS} + "${EXPAT_LIBRARY_DIRS}" + "${EXTRA_LIBDIR}" + "${FFTW3F_LIBRARY_DIRS}" + "${GLIB2_LIBRARY_DIRS}" + "${GLIBMM_LIBRARY_DIRS}" + "${GOBJECT_LIBRARY_DIRS}" + "${GTHREAD_LIBRARY_DIRS}" + "${IPTCDATA_LIBRARY_DIRS}" + "${LCMS_LIBRARY_DIRS}" + "${LENSFUN_LIBRARY_DIRS}" + "${RSVG_LIBRARY_DIRS}" ) set(CAMCONSTSFILE "camconst.json") @@ -165,13 +190,13 @@ endif() include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}") -add_library(rtengine STATIC ${RTENGINESOURCEFILES}) +add_library(rtengine STATIC "${RTENGINESOURCEFILES}") add_dependencies(rtengine UpdateInfo) # It may be nice to store library version too if(BUILD_SHARED_LIBS) - install(TARGETS rtengine DESTINATION ${LIBDIR}) + install(TARGETS rtengine DESTINATION "${LIBDIR}") endif() set_target_properties(rtengine PROPERTIES COMPILE_FLAGS "${RTENGINE_CXX_FLAGS}") diff --git a/rtexif/CMakeLists.txt b/rtexif/CMakeLists.txt index 5a3831455..836f832e2 100644 --- a/rtexif/CMakeLists.txt +++ b/rtexif/CMakeLists.txt @@ -18,12 +18,12 @@ if(WIN32) link_directories(. "${PROJECT_SOURCE_DIR}/rtexif" ${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${LENSFUN_LIBRARY_DIRS}) else() set_target_properties(rtexif PROPERTIES COMPILE_FLAGS " -fPIC") - include_directories(${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS}) - link_directories(${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${LENSFUN_LIBRARY_DIRS}) + include_directories("${EXTRA_INCDIR} ${GLIB2_INCLUDE_DIRS} ${GLIBMM_INCLUDE_DIRS} ${GTK_INCLUDE_DIRS} ${GTKMM_INCLUDE_DIRS}") + link_directories("${EXTRA_LIBDIR} ${GLIB2_LIBRARY_DIRS} ${GLIBMM_LIBRARY_DIRS} ${GTK_LIBRARY_DIRS} ${GTKMM_LIBRARY_DIRS} ${LENSFUN_LIBRARY_DIRS}") endif() include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}") if(BUILD_SHARED_LIBS) - install(TARGETS rtexif DESTINATION ${LIBDIR}) + install(TARGETS rtexif DESTINATION "${LIBDIR}") endif() diff --git a/rtgui/CMakeLists.txt b/rtgui/CMakeLists.txt index 4b21ce421..828151338 100644 --- a/rtgui/CMakeLists.txt +++ b/rtgui/CMakeLists.txt @@ -164,13 +164,13 @@ set(NONCLISOURCEFILES zoompanel.cc ) -include_directories(BEFORE "${CMAKE_CURRENT_BINARY_DIR}") +include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR}) if(APPLE) find_package(MacIntegration REQUIRED) # At the time of writing CMake has no module finder for gtkmacintegration so here we have it hard-coded, if installed via macports it should be in /opt/local/... - set(EXTRA_LIB_RTGUI ${MacIntegration_LIBRARIES}) - set(EXTRA_INCDIR ${EXTRA_INCDIR} ${MacIntegration_INCLUDE_DIRS}) + set(EXTRA_LIB_RTGUI "${MacIntegration_LIBRARIES}") + set(EXTRA_INCDIR "${EXTRA_INCDIR}" "${MacIntegration_INCLUDE_DIRS}") endif() if(WIN32) @@ -236,16 +236,16 @@ else() endif() # Excluding libatomic needed by Clang/FreeBSD, #3636 -if(OPENMP_FOUND AND NOT APPLE AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "FreeBSD") - set(EXTRA_LIB_RTGUI ${EXTRA_LIB_RTGUI} "atomic") +if(OPENMP_FOUND AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD") + set(EXTRA_LIB_RTGUI "${EXTRA_LIB_RTGUI}" "atomic") endif() # Create config.h which defines where data are stored configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h") # Create new executables targets -add_executable(rth ${EXTRA_SRC_NONCLI} ${NONCLISOURCEFILES}) -add_executable(rth-cli ${EXTRA_SRC_CLI} ${CLISOURCEFILES}) +add_executable(rth "${EXTRA_SRC_NONCLI}" "${NONCLISOURCEFILES}") +add_executable(rth-cli "${EXTRA_SRC_CLI}" "${CLISOURCEFILES}") # Add dependencies to executables targets add_dependencies(rth UpdateInfo) @@ -311,5 +311,5 @@ target_link_libraries(rth-cli rtengine ) # Install executables -install(TARGETS rth DESTINATION ${BINDIR}) -install(TARGETS rth-cli DESTINATION ${BINDIR}) +install(TARGETS rth DESTINATION "${BINDIR}") +install(TARGETS rth-cli DESTINATION "${BINDIR}") diff --git a/rtgui/options.h b/rtgui/options.h index c0ed2138b..0bc421300 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -20,7 +20,12 @@ #include #include +#if __has_include() #include +#else +#include +#endif + #include "../rtengine/settings.h" #include diff --git a/tools/osx/macosx_bundle.sh b/tools/osx/macosx_bundle.sh index 2352133a9..9258810c0 100644 --- a/tools/osx/macosx_bundle.sh +++ b/tools/osx/macosx_bundle.sh @@ -404,6 +404,7 @@ function CreateDmg { # Zip disk image for redistribution msg "Zipping disk image for redistribution:" + zip "${dmg_name}.zip" "${dmg_name}.dmg" rm "${dmg_name}.dmg" msg "Removing disk image caches:" rm -rf "${srcDir}" From 28cff72eb0bd2f18db20c1935614c878034a966e Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 28 Feb 2020 20:18:45 +0100 Subject: [PATCH 323/453] rawimagesource.cc : cleanup, also speedup and bugfix for ItcWB, #5676, #5675 --- rtengine/LUT.h | 1 - rtengine/color.cc | 10 +- rtengine/color.h | 2 +- rtengine/rawimagesource.cc | 3322 +++++++++--------------------------- 4 files changed, 783 insertions(+), 2552 deletions(-) diff --git a/rtengine/LUT.h b/rtengine/LUT.h index a80e5996d..6ba7d570f 100644 --- a/rtengine/LUT.h +++ b/rtengine/LUT.h @@ -254,7 +254,6 @@ public: } // handy to sum up per thread histograms. #pragma omp simd speeds up the loop by about factor 3 for LUTu (uint32_t). - template::value>::type> LUT & operator+=(const LUT& rhs) { if (rhs.size == this->size) { diff --git a/rtengine/color.cc b/rtengine/color.cc index ed617057f..89be69e9d 100644 --- a/rtengine/color.cc +++ b/rtengine/color.cc @@ -941,12 +941,12 @@ void Color::rgbxyz (float r, float g, float b, float &x, float &y, float &z, con z = ((xyz_rgb[2][0] * r + xyz_rgb[2][1] * g + xyz_rgb[2][2] * b)) ; } -void Color::rgbxyY(float r, float g, float b, float &x, float &y, float &Y, float &xx, float &yy, float &zz, const double xyz_rgb[3][3]) +void Color::rgbxyY(float r, float g, float b, float &x, float &y, float &Y, const float xyz_rgb[3][3]) { - xx = ((xyz_rgb[0][0] * r + xyz_rgb[0][1] * g + xyz_rgb[0][2] * b)) ; - yy = ((xyz_rgb[1][0] * r + xyz_rgb[1][1] * g + xyz_rgb[1][2] * b)) ; - zz = ((xyz_rgb[2][0] * r + xyz_rgb[2][1] * g + xyz_rgb[2][2] * b)) ; - float som = xx + yy + zz; + const float xx = xyz_rgb[0][0] * r + xyz_rgb[0][1] * g + xyz_rgb[0][2] * b; + const float yy = xyz_rgb[1][0] * r + xyz_rgb[1][1] * g + xyz_rgb[1][2] * b; + const float zz = xyz_rgb[2][0] * r + xyz_rgb[2][1] * g + xyz_rgb[2][2] * b; + const float som = xx + yy + zz; x = xx / som; y = yy / som; Y = yy / 65535.f; diff --git a/rtengine/color.h b/rtengine/color.h index 3f63ad312..045e062ad 100644 --- a/rtengine/color.h +++ b/rtengine/color.h @@ -602,7 +602,7 @@ public: * @param xyz_rgb[3][3] transformation matrix to use for the conversion */ static void rgbxyz (float r, float g, float b, float &x, float &y, float &z, const double xyz_rgb[3][3]); - static void rgbxyY(float r, float g, float b, float &x, float &y, float &Y, float &xx, float &yy, float &zz, const double xyz_rgb[3][3]); + static void rgbxyY(float r, float g, float b, float &x, float &y, float &Y, const float xyz_rgb[3][3]); static void rgbxyz (float r, float g, float b, float &x, float &y, float &z, const float xyz_rgb[3][3]); #ifdef __SSE2__ static void rgbxyz (vfloat r, vfloat g, vfloat b, vfloat &x, vfloat &y, vfloat &z, const vfloat xyz_rgb[3][3]); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index b55ec4bf1..765d0c0ac 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -195,7 +195,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->b(row, col) = (blue[j] + image->b(row + 1, col)) / 2; } - if(i == 2 && oddHeight) { + if (i == 2 && oddHeight) { row = 2 * imheight; for (int j = 0; j < imwidth; j++) { @@ -232,7 +232,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(row, col) = MAX(0.f, -0.0625f * (green[j] + image->g(row + 3, col)) + 0.5625f * (image->g(row - 1, col) + image->g(row + 1, col))); image->b(row, col) = MAX(0.f, -0.0625f * (blue[j] + image->b(row + 3, col)) + 0.5625f * (image->b(row - 1, col) + image->b(row + 1, col))); - if(clip) { + if (clip) { image->r(row, col) = MIN(image->r(row, col), rtengine::MAXVALF); image->g(row, col) = MIN(image->g(row, col), rtengine::MAXVALF); image->b(row, col) = MIN(image->b(row, col), rtengine::MAXVALF); @@ -243,7 +243,7 @@ void transLineD1x (const float* const red, const float* const green, const float break; case TR_R90: // rotate right - if( i == 0) { + if (i == 0) { for (int j = 0; j < imwidth; j++) { image->r(j, 2 * imheight - 1) = red[j]; image->g(j, 2 * imheight - 1) = green[j]; @@ -265,7 +265,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(j, col) = (green[j] + image->g(j, col + 1)) / 2; image->b(j, col) = (blue[j] + image->b(j, col + 1)) / 2; - if(oddHeight && i == 2) { + if (oddHeight && i == 2) { image->r(j, 2 * imheight) = (red[j] + image->r(j, 2 * imheight - 2)) / 2; image->g(j, 2 * imheight) = (green[j] + image->g(j, 2 * imheight - 2)) / 2; image->b(j, 2 * imheight) = (blue[j] + image->b(j, 2 * imheight - 2)) / 2; @@ -295,7 +295,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(j, col) = MAX(0.f, -0.0625f * (green[j] + image->g(j, col + 3)) + 0.5625f * (image->g(j, col - 1) + image->g(j, col + 1))); image->b(j, col) = MAX(0.f, -0.0625f * (blue[j] + image->b(j, col + 3)) + 0.5625f * (image->b(j, col - 1) + image->b(j, col + 1))); - if(clip) { + if (clip) { image->r(j, col) = MIN(image->r(j, col), rtengine::MAXVALF); image->g(j, col) = MIN(image->g(j, col), rtengine::MAXVALF); image->b(j, col) = MIN(image->b(j, col), rtengine::MAXVALF); @@ -327,7 +327,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(row, 2 * i - 3) = MAX(0.f, -0.0625f * (green[j] + image->g(row, 2 * i - 6)) + 0.5625f * (image->g(row, 2 * i - 2) + image->g(row, 2 * i - 4))); image->b(row, 2 * i - 3) = MAX(0.f, -0.0625f * (blue[j] + image->b(row, 2 * i - 6)) + 0.5625f * (image->b(row, 2 * i - 2) + image->b(row, 2 * i - 4))); - if(clip) { + if (clip) { image->r(row, 2 * i - 3) = MIN(image->r(row, 2 * i - 3), rtengine::MAXVALF); image->g(row, 2 * i - 3) = MIN(image->g(row, 2 * i - 3), rtengine::MAXVALF); image->b(row, 2 * i - 3) = MIN(image->b(row, 2 * i - 3), rtengine::MAXVALF); @@ -345,7 +345,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(row, 2 * i - 1) = MAX(0.f, -0.0625f * (green[j] + image->g(row, 2 * i - 4)) + 0.5625f * (image->g(row, 2 * i) + image->g(row, 2 * i - 2))); image->b(row, 2 * i - 1) = MAX(0.f, -0.0625f * (blue[j] + image->b(row, 2 * i - 4)) + 0.5625f * (image->b(row, 2 * i) + image->b(row, 2 * i - 2))); - if(clip) { + if (clip) { image->r(j, 2 * i - 1) = MIN(image->r(j, 2 * i - 1), rtengine::MAXVALF); image->g(j, 2 * i - 1) = MIN(image->g(j, 2 * i - 1), rtengine::MAXVALF); image->b(j, 2 * i - 1) = MIN(image->b(j, 2 * i - 1), rtengine::MAXVALF); @@ -383,7 +383,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(2 * i - 3, j) = MAX(0.f, -0.0625f * (green[j] + image->g(2 * i - 6, j)) + 0.5625f * (image->g(2 * i - 2, j) + image->g(2 * i - 4, j))); image->b(2 * i - 3, j) = MAX(0.f, -0.0625f * (blue[j] + image->b(2 * i - 6, j)) + 0.5625f * (image->b(2 * i - 2, j) + image->b(2 * i - 4, j))); - if(clip) { + if (clip) { image->r(2 * i - 3, j) = MIN(image->r(2 * i - 3, j), rtengine::MAXVALF); image->g(2 * i - 3, j) = MIN(image->g(2 * i - 3, j), rtengine::MAXVALF); image->b(2 * i - 3, j) = MIN(image->b(2 * i - 3, j), rtengine::MAXVALF); @@ -397,7 +397,7 @@ void transLineD1x (const float* const red, const float* const green, const float image->g(2 * i - 1, j) = MAX(0.f, -0.0625f * (green[j] + image->g(2 * i - 4, j)) + 0.5625f * (image->g(2 * i, j) + image->g(2 * i - 2, j))); image->b(2 * i - 1, j) = MAX(0.f, -0.0625f * (blue[j] + image->b(2 * i - 4, j)) + 0.5625f * (image->b(2 * i, j) + image->b(2 * i - 2, j))); - if(clip) { + if (clip) { image->r(2 * i - 1, j) = MIN(image->r(2 * i - 1, j), rtengine::MAXVALF); image->g(2 * i - 1, j) = MIN(image->g(2 * i - 1, j), rtengine::MAXVALF); image->b(2 * i - 1, j) = MIN(image->b(2 * i - 1, j), rtengine::MAXVALF); @@ -465,7 +465,7 @@ RawImageSource::RawImageSource () { embProfile = nullptr; rgbSourceModified = false; - for(int i = 0; i < 4; ++i) { + for (int i = 0; i < 4; ++i) { psRedBrightness[i] = psGreenBrightness[i] = psBlueBrightness[i] = 1.f; } } @@ -480,11 +480,11 @@ RawImageSource::~RawImageSource () delete greenCache; delete blueCache; - for(size_t i = 0; i < numFrames; ++i) { + for (size_t i = 0; i < numFrames; ++i) { delete riFrames[i]; } - for(size_t i = 0; i + 1 < numFrames; ++i) { + for (size_t i = 0; i + 1 < numFrames; ++i) { delete rawDataBuffer[i]; } @@ -550,11 +550,11 @@ void RawImageSource::transformRect (const PreviewProps &pp, int tran, int &ssx1, sh = w; } - if( pp_width > sw - 2 * border) { + if (pp_width > sw - 2 * border) { pp_width = sw - 2 * border; } - if( pp_height > sh - 2 * border) { + if (pp_height > sh - 2 * border) { pp_height = sh - 2 * border; } @@ -594,16 +594,16 @@ void RawImageSource::transformRect (const PreviewProps &pp, int tran, int &ssx1, // atszamoljuk a koordinatakat fuji-ra: // recalculate the coordinates fuji-ra: ssx1 = (sx1 + sy1) / 2; - ssy1 = (sy1 - sx2 ) / 2 + ri->get_FujiWidth(); + ssy1 = (sy1 - sx2) / 2 + ri->get_FujiWidth(); int ssx2 = (sx2 + sy2) / 2 + 1; int ssy2 = (sy2 - sx1) / 2 + ri->get_FujiWidth(); - fw = (sx2 - sx1) / 2 / pp.getSkip(); - width = (ssx2 - ssx1) / pp.getSkip() + ((ssx2 - ssx1) % pp.getSkip() > 0); + fw = (sx2 - sx1) / 2 / pp.getSkip(); + width = (ssx2 - ssx1) / pp.getSkip() + ((ssx2 - ssx1) % pp.getSkip() > 0); height = (ssy2 - ssy1) / pp.getSkip() + ((ssy2 - ssy1) % pp.getSkip() > 0); } else { ssx1 = sx1; ssy1 = sy1; - width = (sx2 + 1 - sx1) / pp.getSkip() + ((sx2 + 1 - sx1) % pp.getSkip() > 0); + width = (sx2 + 1 - sx1) / pp.getSkip() + ((sx2 + 1 - sx1) % pp.getSkip() > 0); height = (sy2 + 1 - sy1) / pp.getSkip() + ((sy2 + 1 - sy1) % pp.getSkip() > 0); } } @@ -636,7 +636,7 @@ float calculate_scale_mul(float scale_mul[4], const float pre_mul_[4], const flo return gain; } -void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw ) +void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const ToneCurveParams &hrp, const RAWParams &raw) { MyMutex::MyLock lock(getImageMutex); @@ -841,9 +841,9 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima hlRecovery (hrp.method, line_red, line_grn, line_blue, imwidth, hlmax); } - if(d1x) { + if (d1x) { transLineD1x (line_red, line_grn, line_blue, ix, image, tran, imwidth, imheight, d1xHeightOdd, doClip); - } else if(fuji) { + } else if (fuji) { transLineFuji (line_red, line_grn, line_blue, ix, image, tran, imheight, fw); } else { transLineStandard (line_red, line_grn, line_blue, ix, image, tran, imwidth, imheight); @@ -913,7 +913,7 @@ void RawImageSource::getImage (const ColorTemp &ctemp, int tran, Imagefloat* ima } // Colour correction (only when running on full resolution) - if(pp.getSkip() == 1) { + if (pp.getSkip() == 1) { switch(ri->getSensorType()) { case ST_BAYER: processFalseColorCorrection (image, raw.bayersensor.ccSteps); @@ -1029,7 +1029,7 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) errCode = 0; - if(numFrames >= 7) { + if (numFrames >= 7) { // special case to avoid crash when loading Hasselblad H6D-100cMS pixelshift files // limit to 6 frames and skip first frame, as first frame is not bayer if (firstFrameOnly) { @@ -1045,8 +1045,8 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) #ifdef _OPENMP #pragma omp for nowait #endif - for(unsigned int i = 0; i < numFrames; ++i) { - if(i == 0) { + for (unsigned int i = 0; i < numFrames; ++i) { + if (i == 0) { riFrames[i] = ri; errCodeThr = riFrames[i]->loadRaw (true, i + 1, true, plistener, 0.8); } else { @@ -1061,7 +1061,7 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) errCode = errCodeThr ? errCodeThr : errCode; } } - } else if(numFrames > 1) { + } else if (numFrames > 1) { #ifdef _OPENMP #pragma omp parallel #endif @@ -1070,8 +1070,8 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) #ifdef _OPENMP #pragma omp for nowait #endif - for(unsigned int i = 0; i < numFrames; ++i) { - if(i == 0) { + for (unsigned int i = 0; i < numFrames; ++i) { + if (i == 0) { riFrames[i] = ri; errCodeThr = riFrames[i]->loadRaw (true, i, true, plistener, 0.8); } else { @@ -1091,16 +1091,16 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) errCode = riFrames[0]->loadRaw (true, 0, true, plistener, 0.8); } - if(!errCode) { - for(unsigned int i = 0; i < numFrames; ++i) { + if (!errCode) { + for (unsigned int i = 0; i < numFrames; ++i) { riFrames[i]->compress_image(i); } } else { return errCode; } - if(numFrames > 1 ) { // this disables multi frame support for Fuji S5 until I found a solution to handle different dimensions - if(riFrames[0]->get_width() != riFrames[1]->get_width() || riFrames[0]->get_height() != riFrames[1]->get_height()) { + if (numFrames > 1) { // this disables multi frame support for Fuji S5 until I found a solution to handle different dimensions + if (riFrames[0]->get_width() != riFrames[1]->get_width() || riFrames[0]->get_height() != riFrames[1]->get_height()) { numFrames = 1; } } @@ -1123,15 +1123,15 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) // first arg is matrix, second arg is inverse inverse33 (imatrices.rgb_cam, imatrices.cam_rgb); - d1x = ! ri->get_model().compare("D1X"); + d1x = ! ri->get_model().compare("D1X"); - if(ri->getSensorType() == ST_FUJI_XTRANS) { + if (ri->getSensorType() == ST_FUJI_XTRANS) { border = 7; - } else if(ri->getSensorType() == ST_FOVEON) { + } else if (ri->getSensorType() == ST_FOVEON) { border = 0; } - if ( ri->get_profile() ) { + if (ri->get_profile()) { embProfile = cmsOpenProfileFromMem (ri->get_profile(), ri->get_profileLen()); } @@ -1150,7 +1150,7 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) // First we get the "as shot" ("Camera") white balance and store it float pre_mul[4]; // FIXME: get_colorsCoeff not so much used nowadays, when we have calculate_scale_mul() function here - ri->get_colorsCoeff( pre_mul, scale_mul, c_black, false);//modify for black level + ri->get_colorsCoeff(pre_mul, scale_mul, c_black, false);//modify for black level camInitialGain = max(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]) / min(scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); double camwb_red = ri->get_pre_mul(0) / pre_mul[0]; @@ -1166,7 +1166,7 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) { // ...then we re-get the constants but now with auto which gives us better demosaicing and CA auto-correct // performance for strange white balance settings (such as UniWB) - ri->get_colorsCoeff( ref_pre_mul, scale_mul, c_black, true); + ri->get_colorsCoeff(ref_pre_mul, scale_mul, c_black, true); refwb_red = ri->get_pre_mul(0) / ref_pre_mul[0]; refwb_green = ri->get_pre_mul(1) / ref_pre_mul[1]; refwb_blue = ri->get_pre_mul(2) / ref_pre_mul[2]; @@ -1187,9 +1187,9 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) ColorTemp d50wb = ColorTemp(5000.0, 1.0, 1.0, "Custom"); double rm,gm,bm,r,g,b; d50wb.getMultipliers(r, g, b); - camwb_red = imatrices.cam_rgb[0][0]*r + imatrices.cam_rgb[0][1]*g + imatrices.cam_rgb[0][2]*b; + camwb_red = imatrices.cam_rgb[0][0]*r + imatrices.cam_rgb[0][1]*g + imatrices.cam_rgb[0][2]*b; camwb_green = imatrices.cam_rgb[1][0]*r + imatrices.cam_rgb[1][1]*g + imatrices.cam_rgb[1][2]*b; - camwb_blue = imatrices.cam_rgb[2][0]*r + imatrices.cam_rgb[2][1]*g + imatrices.cam_rgb[2][2]*b; + camwb_blue = imatrices.cam_rgb[2][0]*r + imatrices.cam_rgb[2][1]*g + imatrices.cam_rgb[2][2]*b; double pre_mul[3], dmax = 0; pre_mul[0] = ri->get_pre_mul(0) / camwb_red; pre_mul[1] = ri->get_pre_mul(1) / camwb_green; @@ -1212,7 +1212,7 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) initialGain = 1.0 / min(pre_mul[0], pre_mul[1], pre_mul[2]); }*/ - for(unsigned int i = 0;i < numFrames; ++i) { + for (unsigned int i = 0;i < numFrames; ++i) { riFrames[i]->set_prefilters(); } @@ -1234,7 +1234,7 @@ int RawImageSource::load (const Glib::ustring &fname, bool firstFrameOnly) plistener = nullptr; // This must be reset, because only load() is called through progressConnector t2.set(); - if( settings->verbose ) { + if (settings->verbose) { printf("Load %s: %d usec\n", fname.c_str(), t2.etime(t1)); } @@ -1253,27 +1253,27 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le RawImage *rid = nullptr; if (!raw.df_autoselect) { - if( !raw.dark_frame.empty()) { - rid = dfm.searchDarkFrame( raw.dark_frame ); + if (!raw.dark_frame.empty()) { + rid = dfm.searchDarkFrame(raw.dark_frame); } } else { rid = dfm.searchDarkFrame(idata->getMake(), idata->getModel(), idata->getISOSpeed(), idata->getShutterSpeed(), idata->getDateTimeAsTS()); } - if( rid && settings->verbose) { - printf( "Subtracting Darkframe:%s\n", rid->get_filename().c_str()); + if (rid && settings->verbose) { + printf("Subtracting Darkframe:%s\n", rid->get_filename().c_str()); } std::unique_ptr bitmapBads; int totBP = 0; // Hold count of bad pixels to correct - if(ri->zeroIsBad()) { // mark all pixels with value zero as bad, has to be called before FF and DF. dcraw sets this flag only for some cameras (mainly Panasonic and Leica) + if (ri->zeroIsBad()) { // mark all pixels with value zero as bad, has to be called before FF and DF. dcraw sets this flag only for some cameras (mainly Panasonic and Leica) bitmapBads.reset(new PixelsMap(W, H)); totBP = findZeroPixels(*(bitmapBads.get())); - if( settings->verbose) { - printf( "%d pixels with value zero marked as bad pixels\n", totBP); + if (settings->verbose) { + printf("%d pixels with value zero marked as bad pixels\n", totBP); } } @@ -1281,28 +1281,28 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le RawImage *rif = nullptr; if (!raw.ff_AutoSelect) { - if( !raw.ff_file.empty()) { - rif = ffm.searchFlatField( raw.ff_file ); + if (!raw.ff_file.empty()) { + rif = ffm.searchFlatField(raw.ff_file); } } else { - rif = ffm.searchFlatField( idata->getMake(), idata->getModel(), idata->getLens(), idata->getFocalLen(), idata->getFNumber(), idata->getDateTimeAsTS()); + rif = ffm.searchFlatField(idata->getMake(), idata->getModel(), idata->getLens(), idata->getFocalLen(), idata->getFNumber(), idata->getDateTimeAsTS()); } bool hasFlatField = (rif != nullptr); - if( hasFlatField && settings->verbose) { - printf( "Flat Field Correction:%s\n", rif->get_filename().c_str()); + if (hasFlatField && settings->verbose) { + printf("Flat Field Correction:%s\n", rif->get_filename().c_str()); } - if(numFrames == 4) { + if (numFrames == 4) { int bufferNumber = 0; - for(unsigned int i=0; i<4; ++i) { - if(i==currFrame) { + for (unsigned int i=0; i<4; ++i) { + if (i==currFrame) { copyOriginalPixels(raw, ri, rid, rif, rawData); rawDataFrames[i] = &rawData; } else { - if(!rawDataBuffer[bufferNumber]) { + if (!rawDataBuffer[bufferNumber]) { rawDataBuffer[bufferNumber] = new array2D; } rawDataFrames[i] = rawDataBuffer[bufferNumber]; @@ -1311,7 +1311,7 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le } } } else if (numFrames == 2 && currFrame == 2) { // average the frames - if(!rawDataBuffer[0]) { + if (!rawDataBuffer[0]) { rawDataBuffer[0] = new array2D; } rawDataFrames[1] = rawDataBuffer[0]; @@ -1330,16 +1330,16 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le // Always correct camera badpixels from .badpixels file - std::vector *bp = dfm.getBadPixels( ri->get_maker(), ri->get_model(), idata->getSerialNumber() ); + std::vector *bp = dfm.getBadPixels(ri->get_maker(), ri->get_model(), idata->getSerialNumber()); - if( bp ) { - if(!bitmapBads) { + if (bp) { + if (!bitmapBads) { bitmapBads.reset(new PixelsMap(W, H)); } totBP += bitmapBads->set(*bp); - if( settings->verbose ) { + if (settings->verbose) { std::cout << "Correcting " << bp->size() << " pixels from .badpixels" << std::endl; } } @@ -1347,30 +1347,30 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le // If darkframe selected, correct hotpixels found on darkframe bp = nullptr; - if( raw.df_autoselect ) { + if (raw.df_autoselect) { bp = dfm.getHotPixels(idata->getMake(), idata->getModel(), idata->getISOSpeed(), idata->getShutterSpeed(), idata->getDateTimeAsTS()); - } else if( !raw.dark_frame.empty() ) { - bp = dfm.getHotPixels( raw.dark_frame ); + } else if (!raw.dark_frame.empty()) { + bp = dfm.getHotPixels(raw.dark_frame); } - if(bp) { - if(!bitmapBads) { + if (bp) { + if (!bitmapBads) { bitmapBads.reset(new PixelsMap(W, H)); } totBP += bitmapBads->set(*bp); - if( settings->verbose && !bp->empty()) { + if (settings->verbose && !bp->empty()) { std::cout << "Correcting " << bp->size() << " hotpixels from darkframe" << std::endl; } } - if(numFrames == 4) { - for(int i=0; i<4; ++i) { - scaleColors( 0, 0, W, H, raw, *rawDataFrames[i]); + if (numFrames == 4) { + for (int i=0; i<4; ++i) { + scaleColors(0, 0, W, H, raw, *rawDataFrames[i]); } } else { - scaleColors( 0, 0, W, H, raw, rawData); //+ + raw parameters for black level(raw.blackxx) + scaleColors(0, 0, W, H, raw, rawData); //+ + raw parameters for black level(raw.blackxx) } // Correct vignetting of lens profile @@ -1389,14 +1389,14 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le if (pmap) { LensCorrection &map = *pmap; if (ri->getSensorType() == ST_BAYER || ri->getSensorType() == ST_FUJI_XTRANS || ri->get_colors() == 1) { - if(numFrames == 4) { - for(int i = 0; i < 4; ++i) { + if (numFrames == 4) { + for (int i = 0; i < 4; ++i) { map.processVignette(W, H, *rawDataFrames[i]); } } else { map.processVignette(W, H, rawData); } - } else if(ri->get_colors() == 3) { + } else if (ri->get_colors() == 3) { map.processVignette3Channels(W, H, rawData); } } @@ -1404,21 +1404,21 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le defGain = 0.0;//log(initialGain) / log(2.0); - if ( ri->getSensorType() == ST_BAYER && (raw.hotPixelFilter > 0 || raw.deadPixelFilter > 0)) { + if (ri->getSensorType() == ST_BAYER && (raw.hotPixelFilter > 0 || raw.deadPixelFilter > 0)) { if (plistener) { plistener->setProgressStr ("PROGRESSBAR_HOTDEADPIXELFILTER"); plistener->setProgress (0.0); } - if(!bitmapBads) { + if (!bitmapBads) { bitmapBads.reset(new PixelsMap(W, H)); } - int nFound = findHotDeadPixels(*(bitmapBads.get()), raw.hotdeadpix_thresh, raw.hotPixelFilter, raw.deadPixelFilter ); + int nFound = findHotDeadPixels(*(bitmapBads.get()), raw.hotdeadpix_thresh, raw.hotPixelFilter, raw.deadPixelFilter); totBP += nFound; - if( settings->verbose && nFound > 0) { - printf( "Correcting %d hot/dead pixels found inside image\n", nFound ); + if (settings->verbose && nFound > 0) { + printf("Correcting %d hot/dead pixels found inside image\n", nFound); } } @@ -1457,13 +1457,13 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le return cc && cc->get_globalGreenEquilibration(); }; - if ( ri->getSensorType() == ST_BAYER && (raw.bayersensor.greenthresh || (globalGreenEq() && raw.bayersensor.method != RAWParams::BayerSensor::getMethodString( RAWParams::BayerSensor::Method::VNG4))) ) { + if (ri->getSensorType() == ST_BAYER && (raw.bayersensor.greenthresh || (globalGreenEq() && raw.bayersensor.method != RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::VNG4)))) { if (settings->verbose) { printf("Performing global green equilibration...\n"); } // global correction - if(numFrames == 4) { - for(int i = 0; i < 4; ++i) { + if (numFrames == 4) { + for (int i = 0; i < 4; ++i) { green_equilibrate_global(*rawDataFrames[i]); } } else { @@ -1471,7 +1471,7 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le } } - if ( ri->getSensorType() == ST_BAYER && raw.bayersensor.greenthresh > 0) { + if (ri->getSensorType() == ST_BAYER && raw.bayersensor.greenthresh > 0) { if (plistener) { plistener->setProgressStr ("PROGRESSBAR_GREENEQUIL"); plistener->setProgress (0.0); @@ -1479,8 +1479,8 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le GreenEqulibrateThreshold thresh(0.01 * raw.bayersensor.greenthresh); - if(numFrames == 4) { - for(int i = 0; i < 4; ++i) { + if (numFrames == 4) { + for (int i = 0; i < 4; ++i) { green_equilibrate(thresh, *rawDataFrames[i]); } } else { @@ -1489,23 +1489,23 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le } - if( totBP ) { - if ( ri->getSensorType() == ST_BAYER ) { - if(numFrames == 4) { - for(int i = 0; i < 4; ++i) { + if (totBP) { + if (ri->getSensorType() == ST_BAYER) { + if (numFrames == 4) { + for (int i = 0; i < 4; ++i) { interpolateBadPixelsBayer(*(bitmapBads.get()), *rawDataFrames[i]); } } else { interpolateBadPixelsBayer(*(bitmapBads.get()), rawData); } - } else if ( ri->getSensorType() == ST_FUJI_XTRANS ) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { interpolateBadPixelsXtrans(*(bitmapBads.get())); } else { interpolateBadPixelsNColours(*(bitmapBads.get()), ri->get_colors()); } } - if ( ri->getSensorType() == ST_BAYER && raw.bayersensor.linenoise > 0 ) { + if (ri->getSensorType() == ST_BAYER && raw.bayersensor.linenoise > 0) { if (plistener) { plistener->setProgressStr ("PROGRESSBAR_LINEDENOISE"); plistener->setProgress (0.0); @@ -1522,15 +1522,15 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le cfa_linedn(0.00002 * (raw.bayersensor.linenoise), int(raw.bayersensor.linenoiseDirection) & int(RAWParams::BayerSensor::LineNoiseDirection::VERTICAL), int(raw.bayersensor.linenoiseDirection) & int(RAWParams::BayerSensor::LineNoiseDirection::HORIZONTAL), *line_denoise_rowblender); } - if ( (raw.ca_autocorrect || fabs(raw.cared) > 0.001 || fabs(raw.cablue) > 0.001) && ri->getSensorType() == ST_BAYER ) { // Auto CA correction disabled for X-Trans, for now... + if ((raw.ca_autocorrect || std::fabs(raw.cared) > 0.001 || std::fabs(raw.cablue) > 0.001) && ri->getSensorType() == ST_BAYER) { // Auto CA correction disabled for X-Trans, for now... if (plistener) { plistener->setProgressStr ("PROGRESSBAR_RAWCACORR"); plistener->setProgress (0.0); } - if(numFrames == 4) { + if (numFrames == 4) { double fitParams[64]; float *buffer = CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[0], fitParams, false, true, nullptr, false, options.chunkSizeCA, options.measure); - for(int i = 1; i < 3; ++i) { + for (int i = 1; i < 3; ++i) { CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[i], fitParams, true, false, buffer, false, options.chunkSizeCA, options.measure); } CA_correct_RT(raw.ca_autocorrect, raw.caautoiterations, raw.cared, raw.cablue, raw.ca_avoidcolourshift, *rawDataFrames[3], fitParams, true, false, buffer, true, options.chunkSizeCA, options.measure); @@ -1539,7 +1539,7 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le } } - if(prepareDenoise && dirpyrdenoiseExpComp == RT_INFINITY) { + if (prepareDenoise && dirpyrdenoiseExpComp == RT_INFINITY) { LUTu aehist; int aehistcompr; double clip = 0; @@ -1550,7 +1550,7 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le t2.set(); - if( settings->verbose ) { + if (settings->verbose) { printf("Preprocessing: %d usec\n", t2.etime(t1)); } @@ -1565,13 +1565,13 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c t1.set(); if (ri->getSensorType() == ST_BAYER) { - if ( raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::HPHD) ) { + if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::HPHD)) { hphd_demosaic (); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::VNG4) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::VNG4)) { vng4_demosaic (rawData, red, green, blue); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AHD) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AHD)) { ahd_demosaic (); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZE) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZE)) { amaze_demosaic_RT (0, 0, W, H, rawData, red, green, blue, options.chunkSizeAMAZE, options.measure); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::AMAZEVNG4) || raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCBVNG4) @@ -1582,9 +1582,9 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c } else { dual_demosaic_RT (true, raw, W, H, rawData, red, green, blue, contrastThreshold, true); } - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::PIXELSHIFT)) { pixelshift(0, 0, W, H, raw, currFrame, ri->get_maker(), ri->get_model(), raw.expos); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCB) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::DCB)) { dcb_demosaic(raw.bayersensor.dcb_iterations, raw.bayersensor.dcb_enhance); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::EAHD)) { eahd_demosaic (); @@ -1592,21 +1592,21 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c igv_interpolate(W, H); } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::LMMSE)) { lmmse_interpolate_omp(W, H, rawData, red, green, blue, raw.bayersensor.lmmse_iterations); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::FAST)) { fast_demosaic(); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)) { nodemosaic(true); - } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::RCD) ) { + } else if (raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::RCD)) { rcd_demosaic(options.chunkSizeRCD, options.measure); } else { nodemosaic(false); } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { - if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST) ) { + if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FAST)) { fast_xtrans_interpolate(rawData, red, green, blue); } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::ONE_PASS)) { xtrans_interpolate(1, false, options.chunkSizeXT, options.measure); - } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::THREE_PASS) ) { + } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::THREE_PASS)) { xtrans_interpolate(3, true, options.chunkSizeXT, options.measure); } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::FOUR_PASS) || raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::TWO_PASS)) { if (!autoContrast) { @@ -1615,7 +1615,7 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c } else { dual_demosaic_RT (false, raw, W, H, rawData, red, green, blue, contrastThreshold, true); } - } else if(raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO) ) { + } else if (raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) { nodemosaic(true); } else { nodemosaic(false); @@ -1673,7 +1673,7 @@ void RawImageSource::demosaic(const RAWParams &raw, bool autoContrast, double &c delete blueCache; blueCache = nullptr; } - if( settings->verbose ) { + if (settings->verbose) { if (getSensorType() == ST_BAYER) { printf("Demosaicing Bayer data: %s - %d usec\n", raw.bayersensor.method.c_str(), t2.etime(t1)); } else if (getSensorType() == ST_FUJI_XTRANS) { @@ -1695,20 +1695,20 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con LUTf *retinexgamtab = nullptr;//gamma before and after Retinex to restore tones LUTf lutTonereti; - if(retinexParams.gammaretinex == "low") { + if (retinexParams.gammaretinex == "low") { retinexgamtab = &(Color::gammatab_115_2); - } else if(retinexParams.gammaretinex == "mid") { + } else if (retinexParams.gammaretinex == "mid") { retinexgamtab = &(Color::gammatab_13_2); - } else if(retinexParams.gammaretinex == "hig") { + } else if (retinexParams.gammaretinex == "hig") { retinexgamtab = &(Color::gammatab_145_3); - } else if(retinexParams.gammaretinex == "fre") { + } else if (retinexParams.gammaretinex == "fre") { GammaValues g_a; double pwr = 1.0 / retinexParams.gam; double gamm = retinexParams.gam; double ts = retinexParams.slope; double gamm2 = retinexParams.gam; - if(gamm2 < 1.) { + if (gamm2 < 1.) { std::swap(pwr, gamm); } @@ -1719,7 +1719,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con double start; double add; - if(gamm2 < 1.) { + if (gamm2 < 1.) { start = g_a[2]; add = g_a[4]; } else { @@ -1735,7 +1735,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con double val = (i) / 65535.; double x; - if(gamm2 < 1.) { + if (gamm2 < 1.) { x = Color::igammareti (val, gamm, start, ts, mul , add); } else { x = Color::gammareti (val, gamm, start, ts, mul , add); @@ -1764,15 +1764,15 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con printf("rr2=%f gg2=%f bb2=%f \n",rr,gg,bb); */ /* - if(retinexParams.highlig < 100 && retinexParams.retinexMethod == "highliplus") {//try to recover magenta...very difficult ! + if (retinexParams.highlig < 100 && retinexParams.retinexMethod == "highliplus") {//try to recover magenta...very difficult ! float hig = ((float)retinexParams.highlig)/100.f; float higgb = ((float)retinexParams.grbl)/100.f; #ifdef _OPENMP #pragma omp parallel for #endif - for (int i = border; i < H - border; i++ ) { - for (int j = border; j < W - border; j++ ) { + for (int i = border; i < H - border; i++) { + for (int j = border; j < W - border; j++) { float R_,G_,B_; R_=red[i][j]; G_=green[i][j]; @@ -1780,20 +1780,20 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con //empirical method to find highlight magenta with no conversion RGB and no white balance //red = master Gr and Bl default higgb=0.5 - // if(R_>65535.f*hig && G_ > 65535.f*higgb && B_ > 65535.f*higgb) conversionBuffer[3][i - border][j - border] = R_; + // if (R_>65535.f*hig && G_ > 65535.f*higgb && B_ > 65535.f*higgb) conversionBuffer[3][i - border][j - border] = R_; // else conversionBuffer[3][i - border][j - border] = 0.f; } } } */ - if(retinexParams.gammaretinex != "none" && retinexParams.str != 0 && retinexgamtab) {//gamma + if (retinexParams.gammaretinex != "none" && retinexParams.str != 0 && retinexgamtab) {//gamma #ifdef _OPENMP #pragma omp parallel for #endif - for (int i = border; i < H - border; i++ ) { - for (int j = border; j < W - border; j++ ) { + for (int i = border; i < H - border; i++) { + for (int j = border; j < W - border; j++) { float R_, G_, B_; R_ = red[i][j]; G_ = green[i][j]; @@ -1806,7 +1806,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con } } - if(useHsl) { + if (useHsl) { #ifdef _OPENMP #pragma omp parallel #endif @@ -1814,7 +1814,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con // one LUT per thread LUTu lhist16RETIThr; - if(lhist16RETI) + if (lhist16RETI) { lhist16RETIThr(lhist16RETI.getSize()); lhist16RETIThr.clear(); @@ -1827,7 +1827,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con #pragma omp for #endif - for (int i = border; i < H - border; i++ ) + for (int i = border; i < H - border; i++) { int j = border; #ifdef __SSE2__ @@ -1841,9 +1841,9 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con STVFU(conversionBuffer[2][i - border][j - border], L); STVFU(conversionBuffer[3][i - border][j - border], H); - if(lhist16RETI) { - for(int p = 0; p < 4; p++) { - int pos = ( conversionBuffer[2][i - border][j - border + p]);//histogram in curve HSL + if (lhist16RETI) { + for (int p = 0; p < 4; p++) { + int pos = (conversionBuffer[2][i - border][j - border + p]);//histogram in curve HSL lhist16RETIThr[pos]++; } } @@ -1858,7 +1858,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con L *= 32768.f; conversionBuffer[2][i - border][j - border] = L; - if(lhist16RETI) { + if (lhist16RETI) { int pos = L; lhist16RETIThr[pos]++; } @@ -1868,7 +1868,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con #ifdef _OPENMP #pragma omp critical { - if(lhist16RETI) + if (lhist16RETI) { lhist16RETI += lhist16RETIThr; // Add per Thread LUT to global LUT } @@ -1893,7 +1893,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con // one LUT per thread LUTu lhist16RETIThr; - if(lhist16RETI) { + if (lhist16RETI) { lhist16RETIThr(lhist16RETI.getSize()); lhist16RETIThr.clear(); } @@ -1902,7 +1902,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con #pragma omp for schedule(dynamic,16) #endif - for (int i = border; i < H - border; i++ ) + for (int i = border; i < H - border; i++) for (int j = border; j < W - border; j++) { float X, Y, Z, L, aa, bb; //rgb=>lab @@ -1914,9 +1914,9 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con conversionBuffer[2][i - border][j - border] = L; conversionBuffer[3][i - border][j - border] = xatan2f(bb, aa); -// if(R_>40000.f && G_ > 30000.f && B_ > 30000.f) conversionBuffer[3][i - border][j - border] = R_; +// if (R_>40000.f && G_ > 30000.f && B_ > 30000.f) conversionBuffer[3][i - border][j - border] = R_; // else conversionBuffer[3][i - border][j - border] = 0.f; - if(lhist16RETI) { + if (lhist16RETI) { int pos = L; lhist16RETIThr[pos]++;//histogram in Curve Lab } @@ -1925,7 +1925,7 @@ void RawImageSource::retinexPrepareBuffers(const ColorManagementParams& cmp, con #ifdef _OPENMP #pragma omp critical { - if(lhist16RETI) { + if (lhist16RETI) { lhist16RETI += lhist16RETIThr; // Add per Thread LUT to global LUT } } @@ -1942,7 +1942,7 @@ void RawImageSource::retinexPrepareCurves(const RetinexParams &retinexParams, LU { useHsl = (retinexParams.retinexcolorspace == "HSLLOG" || retinexParams.retinexcolorspace == "HSLLIN"); - if(useHsl) { + if (useHsl) { CurveFactory::curveDehaContL (retinexcontlutili, retinexParams.cdHcurve, cdcurve, 1, lhist16RETI, histLRETI); } else { CurveFactory::curveDehaContL (retinexcontlutili, retinexParams.cdcurve, cdcurve, 1, lhist16RETI, histLRETI); @@ -1967,13 +1967,13 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara LUTf *retinexigamtab = nullptr;//gamma before and after Retinex to restore tones - if(deh.gammaretinex == "low") { + if (deh.gammaretinex == "low") { retinexigamtab = &(Color::igammatab_115_2); - } else if(deh.gammaretinex == "mid") { + } else if (deh.gammaretinex == "mid") { retinexigamtab = &(Color::igammatab_13_2); - } else if(deh.gammaretinex == "hig") { + } else if (deh.gammaretinex == "hig") { retinexigamtab = &(Color::igammatab_145_3); - } else if(deh.gammaretinex == "fre") { + } else if (deh.gammaretinex == "fre") { GammaValues g_a; double pwr = 1.0 / deh.gam; double gamm = deh.gam; @@ -1981,7 +1981,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara double ts = deh.slope; int mode = 0; - if(gamm2 < 1.) { + if (gamm2 < 1.) { std::swap(pwr, gamm); } @@ -1991,7 +1991,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara double add; double start; - if(gamm2 < 1.) { + if (gamm2 < 1.) { start = g_a[3]; add = g_a[3]; } else { @@ -2004,7 +2004,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara double val = (i) / 65535.; double x; - if(gamm2 < 1.) { + if (gamm2 < 1.) { x = Color::gammareti (val, gamm, start, ts, mul , add); } else { x = Color::igammareti (val, gamm, start, ts, mul , add); @@ -2026,7 +2026,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara LUTf dLcurve; LUTu hist16RET; - if(dehacontlutili && histLRETI) { + if (dehacontlutili && histLRETI) { hist16RET(32768); hist16RET.clear(); histLRETI.clear(); @@ -2058,7 +2058,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara // one LUT per thread LUTu hist16RETThr; - if(hist16RET) { + if (hist16RET) { hist16RETThr(hist16RET.getSize()); hist16RETThr.clear(); } @@ -2067,12 +2067,12 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #pragma omp for #endif - for (int i = 0; i < H - 2 * border; i++ ) - if(dehacontlutili) + for (int i = 0; i < H - 2 * border; i++) + if (dehacontlutili) for (int j = 0; j < W - 2 * border; j++) { LBuffer[i][j] = cdcurve[2.f * temp[i][j]] / 2.f; - if(histLRETI) { + if (histLRETI) { int pos = LBuffer[i][j]; hist16RETThr[pos]++; //histogram in Curve } @@ -2086,13 +2086,13 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #pragma omp critical #endif { - if(hist16RET) { + if (hist16RET) { hist16RET += hist16RETThr; // Add per Thread LUT to global LUT } } } - if(hist16RET) {//update histogram + if (hist16RET) {//update histogram // TODO : When rgbcurvesspeedup branch is merged into master, replace this by the following 1-liner // hist16RET.compressTo(histLRETI); // also remove declaration and init of dLcurve some lines above then and finally remove this comment :) @@ -2110,13 +2110,13 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara MSR(LBuffer, conversionBuffer[2], conversionBuffer[3], mapcurve, mapcontlutili, WNew, HNew, deh, dehatransmissionCurve, dehagaintransmissionCurve, minCD, maxCD, mini, maxi, Tmean, Tsigma, Tmin, Tmax); - if(useHsl) { - if(chutili) { + if (useHsl) { + if (chutili) { #ifdef _OPENMP #pragma omp parallel for #endif - for (int i = border; i < H - border; i++ ) { + for (int i = border; i < H - border; i++) { int j = border; for (; j < W - border; j++) { @@ -2132,7 +2132,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #pragma omp parallel for #endif - for (int i = border; i < H - border; i++ ) { + for (int i = border; i < H - border; i++) { int j = border; #ifdef __SSE2__ vfloat c32768 = F2V(32768.f); @@ -2180,7 +2180,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #pragma omp for #endif - for (int i = border; i < H - border; i++ ) { + for (int i = border; i < H - border; i++) { #ifdef __SSE2__ // vectorized precalculation { @@ -2210,7 +2210,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara float HH = xatan2f(bb, aa); atan2Buffer[j - border] = HH; - if(Chprov1 == 0.0f) { + if (Chprov1 == 0.0f) { sincosyBuffer[j - border] = 1.f; sincosxBuffer[j - border] = 0.0f; } else { @@ -2237,7 +2237,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara float HH = xatan2f(bb, aa); float2 sincosval;// = xsincosf(HH); - if(Chprov1 == 0.0f) { + if (Chprov1 == 0.0f) { sincosval.y = 1.f; sincosval.x = 0.0f; } else { @@ -2247,7 +2247,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #endif - if(chutili) { // c=f(H) + if (chutili) { // c=f(H) float valp = float((chcurve->getVal(Color::huelab_to_huehsv2(HH)) - 0.5f)); Chprov1 *= (1.f + 2.f * valp); } @@ -2275,8 +2275,8 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #ifdef __SSE2__ vfloat wipv[3][3]; - for(int i = 0; i < 3; i++) - for(int j = 0; j < 3; j++) { + for (int i = 0; i < 3; i++) + for (int j = 0; j < 3; j++) { wipv[i][j] = F2V(wiprof[i][j]); } @@ -2285,7 +2285,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara #pragma omp parallel for #endif - for (int i = border; i < H - border; i++ ) { + for (int i = border; i < H - border; i++) { int j = border; #ifdef __SSE2__ @@ -2319,13 +2319,13 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara delete chcurve; } - if(deh.gammaretinex != "none" && deh.str != 0) { //inverse gamma + if (deh.gammaretinex != "none" && deh.str != 0) { //inverse gamma #ifdef _OPENMP #pragma omp parallel for #endif - for (int i = border; i < H - border; i++ ) { - for (int j = border; j < W - border; j++ ) { + for (int i = border; i < H - border; i++) { + for (int j = border; j < W - border; j++) { float R_, G_, B_; R_ = red[i][j]; G_ = green[i][j]; @@ -2341,7 +2341,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara t5.set(); - if( settings->verbose ) { + if (settings->verbose) { printf("Retinex=%d usec\n", t5.etime(t4)); } @@ -2349,7 +2349,7 @@ void RawImageSource::retinex(const ColorManagementParams& cmp, const RetinexPara void RawImageSource::flush() { - for(size_t i = 0; i + 1 < numFrames; ++i) { + for (size_t i = 0; i + 1 < numFrames; ++i) { delete rawDataBuffer[i]; rawDataBuffer[i] = nullptr; } @@ -2385,7 +2385,7 @@ void RawImageSource::flush() void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) { if (hrp.hrenabled && hrp.method == "Color") { - if(!rgbSourceModified) { + if (!rgbSourceModified) { if (settings->verbose) { printf ("Applying Highlight Recovery: Color propagation...\n"); } @@ -2400,7 +2400,7 @@ void RawImageSource::HLRecovery_Global(const ToneCurveParams &hrp) /* Copy original pixel data and * subtract dark frame (if present) from current image and apply flat field correction (if present) */ -void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, RawImage *riDark, RawImage *riFlatFile, array2D &rawData ) +void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, RawImage *riDark, RawImage *riFlatFile, array2D &rawData) { const float black[4] = { static_cast(ri->get_cblack(0)), static_cast(ri->get_cblack(1)), @@ -2419,9 +2419,9 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, Raw #endif for (int row = 0; row < H; row++) { const int c0 = FC(row, 0); - const float black0 = black[(c0 == 1 && !(row & 1) ) ? 3 : c0]; + const float black0 = black[(c0 == 1 && !(row & 1)) ? 3 : c0]; const int c1 = FC(row, 1); - const float black1 = black[(c1 == 1 && !(row & 1) ) ? 3 : c1]; + const float black1 = black[(c1 == 1 && !(row & 1)) ? 3 : c1]; int col; for (col = 0; col < W - 1; col += 2) { rawData[row][col] = max(src->data[row][col] + black0 - riDark->data[row][col], 0.0f); @@ -2480,8 +2480,8 @@ void RawImageSource::copyOriginalPixels(const RAWParams &raw, RawImage *src, Raw if (riDark && W == riDark->get_width() && H == riDark->get_height()) { for (int row = 0; row < H; row++) { for (int col = 0; col < W; col++) { - int c = FC(row, col); - int c4 = ( c == 1 && !(row & 1) ) ? 3 : c; + int c = FC(row, col); + int c4 = (c == 1 && !(row & 1)) ? 3 : c; rawData[row][3 * col + 0] = max(src->data[row][3 * col + 0] + black[c4] - riDark->data[row][3 * col + 0], 0.0f); rawData[row][3 * col + 1] = max(src->data[row][3 * col + 1] + black[c4] - riDark->data[row][3 * col + 1], 0.0f); rawData[row][3 * col + 2] = max(src->data[row][3 * col + 2] + black[c4] - riDark->data[row][3 * col + 2], 0.0f); @@ -2508,7 +2508,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R //adjust black level (eg Canon) bool isMono = false; - if (getSensorType() == ST_BAYER || getSensorType() == ST_FOVEON ) { + if (getSensorType() == ST_BAYER || getSensorType() == ST_FOVEON) { black_lev[0] = raw.bayersensor.black1; //R black_lev[1] = raw.bayersensor.black0; //G1 @@ -2526,8 +2526,8 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R isMono = RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO) == raw.xtranssensor.method; } - for(int i = 0; i < 4 ; i++) { - cblacksom[i] = max( c_black[i] + black_lev[i], 0.0f ); // adjust black level + for (int i = 0; i < 4 ; i++) { + cblacksom[i] = max(c_black[i] + black_lev[i], 0.0f); // adjust black level } for (int i = 0; i < 4; ++i) { @@ -2537,7 +2537,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R initialGain = calculate_scale_mul(scale_mul, ref_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); // recalculate scale colors with adjusted levels //fprintf(stderr, "recalc: %f [%f %f %f %f]\n", initialGain, scale_mul[0], scale_mul[1], scale_mul[2], scale_mul[3]); - for(int i = 0; i < 4 ; i++) { + for (int i = 0; i < 4 ; i++) { clmax[i] = (c_white[i] - cblacksom[i]) * scale_mul[i]; // raw clip level } @@ -2545,7 +2545,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R // scale image colors - if( ri->getSensorType() == ST_BAYER) { + if (ri->getSensorType() == ST_BAYER) { #ifdef _OPENMP #pragma omp parallel #endif @@ -2559,8 +2559,8 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R for (int row = winy; row < winy + winh; row ++) { for (int col = winx; col < winx + winw; col++) { - const int c = FC(row, col); // three colors, 0=R, 1=G, 2=B - const int c4 = ( c == 1 && !(row & 1) ) ? 3 : c; // four colors, 0=R, 1=G1, 2=B, 3=G2 + const int c = FC(row, col); // three colors, 0=R, 1=G, 2=B + const int c4 = (c == 1 && !(row & 1)) ? 3 : c; // four colors, 0=R, 1=G1, 2=B, 3=G2 const float val = max(0.f, rawData[row][col] - cblacksom[c4]) * scale_mul[c4]; rawData[row][col] = val; tmpchmax[c] = max(tmpchmax[c], val); @@ -2576,7 +2576,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R chmax[2] = max(tmpchmax[2], chmax[2]); } } - } else if ( ri->get_colors() == 1 ) { + } else if (ri->get_colors() == 1) { #ifdef _OPENMP #pragma omp parallel #endif @@ -2602,7 +2602,7 @@ void RawImageSource::scaleColors(int winx, int winy, int winw, int winh, const R chmax[0] = chmax[1] = chmax[2] = chmax[3] = max(tmpchmax, chmax[0]); } } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { #ifdef _OPENMP #pragma omp parallel #endif @@ -3125,7 +3125,7 @@ void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagemen transform_via_pcs_lab = true; separate_pcs_lab_highlights = true; // We transform to Lab because we can and that we avoid getting an unnecessary unmatched gamma conversion which we would need to revert. - hTransform = cmsCreateTransform (in, TYPE_RGB_FLT, nullptr, TYPE_Lab_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE ); + hTransform = cmsCreateTransform (in, TYPE_RGB_FLT, nullptr, TYPE_Lab_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { @@ -3143,7 +3143,7 @@ void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagemen case CAMERA_ICC_TYPE_NIKON: case CAMERA_ICC_TYPE_GENERIC: default: - hTransform = cmsCreateTransform (in, TYPE_RGB_FLT, prophoto, TYPE_RGB_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE ); // NOCACHE is important for thread safety + hTransform = cmsCreateTransform (in, TYPE_RGB_FLT, prophoto, TYPE_RGB_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); // NOCACHE is important for thread safety break; } @@ -3152,7 +3152,7 @@ void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagemen if (hTransform == nullptr) { // Fallback: create transform from camera profile. Should not happen normally. lcmsMutex->lock (); - hTransform = cmsCreateTransform (camprofile, TYPE_RGB_FLT, prophoto, TYPE_RGB_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE ); + hTransform = cmsCreateTransform (camprofile, TYPE_RGB_FLT, prophoto, TYPE_RGB_FLT, INTENT_RELATIVE_COLORIMETRIC, cmsFLAGS_NOOPTIMIZE | cmsFLAGS_NOCACHE); lcmsMutex->unlock (); } @@ -3174,11 +3174,11 @@ void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagemen #pragma omp for schedule(static) #endif - for ( int h = 0; h < im->getHeight(); ++h ) { + for (int h = 0; h < im->getHeight(); ++h) { float *p = buffer.data, *pR = im->r(h), *pG = im->g(h), *pB = im->b(h); // Apply pre-processing - for ( int w = 0; w < im->getWidth(); ++w ) { + for (int w = 0; w < im->getWidth(); ++w) { float r = *(pR++); float g = *(pG++); float b = *(pB++); @@ -3261,7 +3261,7 @@ void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagemen pG = im->g(h); pB = im->b(h); - for ( int w = 0; w < im->getWidth(); ++w ) { + for (int w = 0; w < im->getWidth(); ++w) { float r, g, b, hr = 0.f, hg = 0.f, hb = 0.f; @@ -3328,9 +3328,9 @@ void RawImageSource::colorSpaceConversion_ (Imagefloat* im, const ColorManagemen // to a small space such as sRGB we may end up with negative values and values larger than max. if (!working_space_is_prophoto) { //convert from Prophoto to XYZ - float x = (toxyz[0][0] * r + toxyz[0][1] * g + toxyz[0][2] * b ) ; - float y = (toxyz[1][0] * r + toxyz[1][1] * g + toxyz[1][2] * b ) ; - float z = (toxyz[2][0] * r + toxyz[2][1] * g + toxyz[2][2] * b ) ; + float x = (toxyz[0][0] * r + toxyz[0][1] * g + toxyz[0][2] * b) ; + float y = (toxyz[1][0] * r + toxyz[1][1] * g + toxyz[1][2] * b) ; + float z = (toxyz[2][0] * r + toxyz[2][1] * g + toxyz[2][2] * b) ; //convert from XYZ to cmp.working (sRGB...Adobe...Wide..) r = ((torgb[0][0] * x + torgb[0][1] * y + torgb[0][2] * z)) ; g = ((torgb[1][0] * x + torgb[1][1] * y + torgb[1][2] * z)) ; @@ -3623,7 +3623,7 @@ void RawImageSource::HLRecovery_CIELab (float* rin, float* gin, float* bin, floa //%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -void RawImageSource::hlRecovery (const std::string &method, float* red, float* green, float* blue, int width, float* hlmax ) +void RawImageSource::hlRecovery (const std::string &method, float* red, float* green, float* blue, int width, float* hlmax) { if (method == "Luminance") { @@ -3673,7 +3673,7 @@ void RawImageSource::getAutoExpHistogram (LUTu & histogram, int& histcompr) tmphistogram[(int)(refwb1 * rawData[i][j + 1])] += 4; } - if(j < end) { + if (j < end) { tmphistogram[(int)(refwb0 * rawData[i][j])] += 4; } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { @@ -3793,23 +3793,23 @@ void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LU if (ri->getSensorType() == ST_BAYER) { int j; int c1 = FC(i, start); - c1 = ( fourColours && c1 == 1 && !(i & 1) ) ? 3 : c1; + c1 = (fourColours && c1 == 1 && !(i & 1)) ? 3 : c1; int c2 = FC(i, start + 1); - c2 = ( fourColours && c2 == 1 && !(i & 1) ) ? 3 : c2; + c2 = (fourColours && c2 == 1 && !(i & 1)) ? 3 : c2; for (j = start; j < end - 1; j += 2) { tmphist[c1][(int)(ri->data[i][j] * scale)]++; tmphist[c2][(int)(ri->data[i][j + 1] * scale)]++; } - if(j < end) { // last pixel of row if width is odd + if (j < end) { // last pixel of row if width is odd tmphist[c1][(int)(ri->data[i][j] * scale)]++; } } else if (ri->get_colors() == 1) { for (int j = start; j < end; j++) { tmphist[0][(int)(ri->data[i][j] * scale)]++; } - } else if(ri->getSensorType() == ST_FUJI_XTRANS) { + } else if (ri->getSensorType() == ST_FUJI_XTRANS) { for (int j = start; j < end - 1; j += 2) { int c = ri->XTRANSFC(i, j); tmphist[c][(int)(ri->data[i][j] * scale)]++; @@ -3847,7 +3847,7 @@ void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LU return f > 0.f ? (f < 1.f ? 1 : std::min(int(f), 255)) : 0; }; - for(int i = 0; i < histoSize; i++) { + for (int i = 0; i < histoSize; i++) { int idx = getidx(0, i); histRedRaw[idx] += hist[0][i]; @@ -3869,11 +3869,11 @@ void RawImageSource::getRAWHistogram (LUTu & histRedRaw, LUTu & histGreenRaw, LU for (int i = 0; i < 256; i++) { histGreenRaw[i] >>= 1; } - else if(ri->getSensorType() == ST_FUJI_XTRANS) // since Xtrans has 2.5 as many greens, correct for it + else if (ri->getSensorType() == ST_FUJI_XTRANS) // since Xtrans has 2.5 as many greens, correct for it for (int i = 0; i < 256; i++) { histGreenRaw[i] = (histGreenRaw[i] * 2) / 5; } - else if(ri->get_colors() == 1) { // monochrome sensor => set all histograms equal + else if (ri->get_colors() == 1) { // monochrome sensor => set all histograms equal histGreenRaw += histRedRaw; histBlueRaw += histRedRaw; } @@ -3895,1516 +3895,403 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) } -static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, float *xxx, float * yyy, float * YYY, int * histxy, float * area, int * inter) +static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, LUTf &xxx, LUTf &yyy, LUTf &YYY, LUTu &histxy) { - int nh; - - for (int y = 0; y < bfhitc ; y++) { - for (int x = 0; x < bfwitc ; x++) { - - if (xc[y][x] < 0.12f && xc[y][x] > 0.03f) { // near Prophoto - - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 0; - histxy[nh]++; - area[nh] = 50.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - - YYY[nh] += Yc[y][x]; - - // nc = 0; - //blue hard - } else if (yc[y][x] < 0.3f) { - nh = 1; - histxy[nh]++; - area[nh] = 60.f; - inter[nh] = 1; - YYY[nh] += Yc[y][x]; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - - // nc = 1; - - //blue - } else if (yc[y][x] < 0.4f) { - nh = 2; - histxy[nh]++; - area[nh] = 80.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - // nc = 1; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - //blue green - nh = 3; - histxy[nh]++; - area[nh] = 100.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 1; - - } else if (yc[y][x] < 0.6f) { - nh = 4; - histxy[nh]++; - area[nh] = 120.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 1; - - } else if (yc[y][x] < 0.82f) { - //green - nh = 5; - histxy[nh]++; - area[nh] = 240.f; - inter[nh] = 1; - // nc = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - +#ifdef _OPENMP + #pragma omp parallel +#endif + { + LUTu histxythr(histxy.getSize()); + histxythr.clear(); + LUTf xxxthr(xxx.getSize()); + xxxthr.clear(); + LUTf yyythr(yyy.getSize()); + yyythr.clear(); + LUTf YYYthr(YYY.getSize()); + YYYthr.clear(); +#ifdef _OPENMP + #pragma omp for schedule(dynamic, 4) nowait +#endif + for (int y = 0; y < bfhitc ; y++) { + for (int x = 0; x < bfwitc ; x++) { + int nh = -1; + if (xc[y][x] < 0.12f && xc[y][x] > 0.03f && yc[y][x] > 0.1f) { // near Prophoto + if (yc[y][x] < 0.2f) { + nh = 0; + //blue hard + } else if (yc[y][x] < 0.3f) { + nh = 1; + //blue + } else if (yc[y][x] < 0.4f) { + nh = 2; + } else if (yc[y][x] < 0.5f) { + //blue green + nh = 3; + } else if (yc[y][x] < 0.6f) { + nh = 4; + } else if (yc[y][x] < 0.82f) { + //green + nh = 5; + } + } else if (xc[y][x] < 0.24f && yc[y][x] > 0.05f) { + if (yc[y][x] < 0.2f) { + nh = 6; + } else if (yc[y][x] < 0.3f) { + nh = 7; + } else if (yc[y][x] < 0.4f) { + nh = 8; + } else if (yc[y][x] < 0.5f) { + nh = 9; + } else if (yc[y][x] < 0.6f) { + nh = 10; + } else if (yc[y][x] < 0.75f) { + nh = 11; + } + } else if (xc[y][x] < 0.28f && yc[y][x] > 0.1f) {//blue sky and other + if (yc[y][x] < 0.2f) { + nh = 12; + } else if (yc[y][x] < 0.25f) { + nh = 13; + } else if (yc[y][x] < 0.29f) { + nh = 14; + } else if (yc[y][x] < 0.33f) { + nh = 15; + } else if (yc[y][x] < 0.37f) { + nh = 16; + } else if (yc[y][x] < 0.4f) { + nh = 17; + } else if (yc[y][x] < 0.45f) { + nh = 18; + } else if (yc[y][x] < 0.5f) { + nh = 19; + } else if (yc[y][x] < 0.6f) { + nh = 20; + } else if (yc[y][x] < 0.75f) { + nh = 21; + } + } else if (xc[y][x] < 0.31f && yc[y][x] > 0.1f) {//near neutral others + if (yc[y][x] < 0.2f) { + nh = 22; + } else if (yc[y][x] < 0.24f) { + nh = 23; + } else if (yc[y][x] < 0.29f) { + nh = 24; + } else if (yc[y][x] < 0.32f) { + nh = 25; + } else if (yc[y][x] < 0.36f) { + nh = 26; + } else if (yc[y][x] < 0.4f) { + nh = 27; + } else if (yc[y][x] < 0.5f) { + nh = 28; + } else if (yc[y][x] < 0.7f) { + nh = 29; + } + } else if (xc[y][x] < 0.325f && yc[y][x] > 0.1f) {//neutral 34 + if (yc[y][x] < 0.2f) { + nh = 30; + } else if (yc[y][x] < 0.24f) { + nh = 31; + } else if (yc[y][x] < 0.29f) { + nh = 32; + } else if (yc[y][x] < 0.32f) { + nh = 33; + } else if (yc[y][x] < 0.34f) { + nh = 34; + } else if (yc[y][x] < 0.37f) { + nh = 35; + } else if (yc[y][x] < 0.4f) { + nh = 36; + } else if (yc[y][x] < 0.45f) { + nh = 37; + } else if (yc[y][x] < 0.5f) { + nh = 38; + } else if (yc[y][x] < 0.55f) { + nh = 39; + } else if (yc[y][x] < 0.7f) { + nh = 40; + } + } else if (xc[y][x] < 0.335f && yc[y][x] > 0.1f) {//neutral + if (yc[y][x] < 0.2f) { + nh = 41; + } else if (yc[y][x] < 0.24f) { + nh = 42; + } else if (yc[y][x] < 0.29f) { + nh = 43; + } else if (yc[y][x] < 0.32f) { + nh = 44; + } else if (yc[y][x] < 0.33f) { + nh = 45; + } else if (yc[y][x] < 0.34f) { + nh = 46; + } else if (yc[y][x] < 0.35f) { + nh = 47; + } else if (yc[y][x] < 0.36f) { + nh = 48; + } else if (yc[y][x] < 0.37f) { + nh = 47; + } else if (yc[y][x] < 0.38f) { + nh = 48; + } else if (yc[y][x] < 0.4f) { + nh = 49; + } else if (yc[y][x] < 0.45f) { + nh = 50; + } else if (yc[y][x] < 0.5f) { + nh = 51; + } else if (yc[y][x] < 0.55f) { + nh = 52; + } else if (yc[y][x] < 0.7f) { + nh = 53; + } + } else if (xc[y][x] < 0.345f && yc[y][x] > 0.1f) {//neutral 37 + if (yc[y][x] < 0.2f) { + nh = 54; + } else if (yc[y][x] < 0.24f) { + nh = 55; + } else if (yc[y][x] < 0.29f) { + nh = 56; + } else if (yc[y][x] < 0.32f) { + nh = 57; + } else if (yc[y][x] < 0.33f) {//34 + nh = 58; + } else if (yc[y][x] < 0.34f) { + nh = 59; + } else if (yc[y][x] < 0.35f) {//34 + nh = 60; + } else if (yc[y][x] < 0.36f) {//34 + nh = 61; + } else if (yc[y][x] < 0.37f) { + nh = 62; + } else if (yc[y][x] < 0.38f) { + nh = 63; + } else if (yc[y][x] < 0.39f) { + nh = 64; + } else if (yc[y][x] < 0.4f) { + nh = 65; + } else if (yc[y][x] < 0.42f) { + nh = 66; + } else if (yc[y][x] < 0.45f) { + nh = 67; + } else if (yc[y][x] < 0.48f) { + nh = 68; + } else if (yc[y][x] < 0.5f) { + nh = 69; + } else if (yc[y][x] < 0.55f) { + nh = 70; + } else if (yc[y][x] < 0.65f) { + nh = 71; + } + } else if (xc[y][x] < 0.355f && yc[y][x] > 0.1f) {//neutral 37 + if (yc[y][x] < 0.2f) { + nh = 72; + } else if (yc[y][x] < 0.24f) { + nh = 73; + } else if (yc[y][x] < 0.29f) { + nh = 74; + } else if (yc[y][x] < 0.32f) { + nh = 75; + } else if (yc[y][x] < 0.33f) {//34 + nh = 76; + } else if (yc[y][x] < 0.34f) { + nh = 77; + } else if (yc[y][x] < 0.35f) {//34 + nh = 78; + } else if (yc[y][x] < 0.36f) {//34 + nh = 79; + } else if (yc[y][x] < 0.37f) { + nh = 80; + } else if (yc[y][x] < 0.38f) { + nh = 81; + } else if (yc[y][x] < 0.39f) { + nh = 82; + } else if (yc[y][x] < 0.4f) { + nh = 83; + } else if (yc[y][x] < 0.42f) { + nh = 84; + } else if (yc[y][x] < 0.45f) { + nh = 85; + } else if (yc[y][x] < 0.48f) { + nh = 86; + } else if (yc[y][x] < 0.5f) { + nh = 87; + } else if (yc[y][x] < 0.55f) { + nh = 88; + } else if (yc[y][x] < 0.65f) { + nh = 89; + } + } else if (xc[y][x] < 0.365f && yc[y][x] > 0.15f) { //0.4 + if (yc[y][x] < 0.2f) { + nh = 90; + } else if (yc[y][x] < 0.24f) { + nh = 91; + } else if (yc[y][x] < 0.29f) { + nh = 92; + } else if (yc[y][x] < 0.32f) { + nh = 93; + } else if (yc[y][x] < 0.33f) { + nh = 94; + } else if (yc[y][x] < 0.34f) { + nh = 95; + } else if (yc[y][x] < 0.36f) { + nh = 96; + } else if (yc[y][x] < 0.37f) { + nh = 97; + } else if (yc[y][x] < 0.38f) { + nh = 98; + } else if (yc[y][x] < 0.39f) { + nh = 99; + } else if (yc[y][x] < 0.4f) { + nh = 100; + } else if (yc[y][x] < 0.42f) { + nh = 101; + } else if (yc[y][x] < 0.45f) { + nh = 102; + } else if (yc[y][x] < 0.5f) { + nh = 103; + } else if (yc[y][x] < 0.55f) { + nh = 104; + } else if (yc[y][x] < 0.63f) { + nh = 105; + } + } else if (xc[y][x] < 0.405f && yc[y][x] > 0.15f) {//45 + if (yc[y][x] < 0.2f) { + nh = 106; + } else if (yc[y][x] < 0.24f) { + nh = 107; + } else if (yc[y][x] < 0.29f) { + nh = 108; + } else if (yc[y][x] < 0.32f) { + nh = 109; + } else if (yc[y][x] < 0.34f) { + nh = 110; + } else if (yc[y][x] < 0.37f) { + nh = 111; + } else if (yc[y][x] < 0.4f) { + nh = 112; + } else if (yc[y][x] < 0.45f) { + nh = 113; + } else if (yc[y][x] < 0.5f) { + nh = 114; + } else if (yc[y][x] < 0.55f) { + nh = 115; + } else if (yc[y][x] < 0.6f) { + nh = 116; + } + } else if (xc[y][x] < 0.445f && yc[y][x] > 0.15f) {//45 + if (yc[y][x] < 0.2f) { + nh = 117; + } else if (yc[y][x] < 0.24f) { + nh = 118; + } else if (yc[y][x] < 0.29f) { + nh = 119; + } else if (yc[y][x] < 0.32f) { + nh = 120; + } else if (yc[y][x] < 0.34f) { + nh = 121; + } else if (yc[y][x] < 0.37f) { + nh = 122; + } else if (yc[y][x] < 0.4f) { + nh = 123; + } else if (yc[y][x] < 0.45f) { + nh = 124; + } else if (yc[y][x] < 0.5f) { + nh = 125; + } else if (yc[y][x] < 0.55f) { + nh = 126; + } else if (yc[y][x] < 0.58f) { + nh = 127; + } + } else if (xc[y][x] < 0.495f && yc[y][x] > 0.15f) { + if (yc[y][x] < 0.2f) { + nh = 128; + } else if (yc[y][x] < 0.24f) { + nh = 129; + } else if (yc[y][x] < 0.29f) { + nh = 130; + } else if (yc[y][x] < 0.32f) { + nh = 131; + } else if (yc[y][x] < 0.34f) { + nh = 132; + } else if (yc[y][x] < 0.37f) { + nh = 133; + } else if (yc[y][x] < 0.4f) { + nh = 134; + } else if (yc[y][x] < 0.45f) { + nh = 135; + } else if (yc[y][x] < 0.5f) { + nh = 136; + } else if (yc[y][x] < 0.55f) { + nh = 137; + } + } else if (xc[y][x] < 0.545f && yc[y][x] > 0.15f) { + if (yc[y][x] < 0.2f) { + nh = 138; + } else if (yc[y][x] < 0.24f) { + nh = 139; + } else if (yc[y][x] < 0.29f) { + nh = 140; + } else if (yc[y][x] < 0.32f) { + nh = 141; + } else if (yc[y][x] < 0.34f) { + nh = 142; + } else if (yc[y][x] < 0.37f) { + nh = 143; + } else if (yc[y][x] < 0.4f) { + nh = 144; + } else if (yc[y][x] < 0.45f) { + nh = 145; + } else if (yc[y][x] < 0.5f) { + nh = 146; + } + } else if (xc[y][x] < 0.595f && yc[y][x] > 0.15f) { + if (yc[y][x] < 0.22f) { + nh = 147; + } else if (yc[y][x] < 0.25f) { + nh = 148; + } else if (yc[y][x] < 0.3f) { + nh = 149; + } else if (yc[y][x] < 0.35f) { + nh = 150; + } else if (yc[y][x] < 0.4f) { + nh = 151; + } else if (yc[y][x] < 0.45f) { + nh = 152; + } + } else if (xc[y][x] < 0.65f && yc[y][x] > 0.12f) { + if (yc[y][x] < 0.25f) { + nh = 153; + } else if (yc[y][x] < 0.3f) { + nh = 154; + } else if (yc[y][x] < 0.35f) { + nh = 155; + } else if (yc[y][x] < 0.45f) { + nh = 156; + } + } else if (xc[y][x] < 0.75f && yc[y][x] > 0.1f) { + nh = 157; } - } else if (xc[y][x] < 0.24f) { - if (yc[y][x] < 0.2f && yc[y][x] > 0.05f) { - nh = 6; - histxy[nh]++; - area[nh] = 230.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 2; - - } else if (yc[y][x] < 0.3f) { - nh = 7; - histxy[nh]++; - area[nh] = 240.f; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 2; - - } else if (yc[y][x] < 0.4f) { - nh = 8; - histxy[nh]++; - area[nh] = 240.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 2; - - } else if (yc[y][x] < 0.5f) { - nh = 9; - histxy[nh]++; - area[nh] = 240.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 2; - // nc2 = 3; - - } else if (yc[y][x] < 0.6f) { - nh = 10; - histxy[nh]++; - area[nh] = 240.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - // nc = 3; - - } else if (yc[y][x] < 0.75f) { - nh = 11; - histxy[nh]++; - area[nh] = 400.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - // nc = 3; - + if (nh >= 0) { + histxythr[nh]++; + xxxthr[nh] += xc[y][x]; + yyythr[nh] += yc[y][x]; + YYYthr[nh] += Yc[y][x]; } - - } else if (xc[y][x] < 0.28f) {//blue sky and other - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 12; - histxy[nh]++; - area[nh] = 80.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.25f) { - nh = 13; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 14; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.33f) { - nh = 15; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 16; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 17; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 18; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.5f) { - nh = 19; - histxy[nh]++; - area[nh] = 25.f; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.6f) { - nh = 20; - histxy[nh]++; - area[nh] = 50.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.75f) { - nh = 21; - histxy[nh]++; - area[nh] = 60.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - } else if (xc[y][x] < 0.31f) {//near neutral others - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 22; - histxy[nh]++; - area[nh] = 50.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 23; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 24; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.32f) { - nh = 25; - histxy[nh]++; - area[nh] = 9.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.36f) { - nh = 26; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 27; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.5f) { - nh = 28; - histxy[nh]++; - area[nh] = 30.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.7f) { - nh = 29; - histxy[nh]++; - area[nh] = 45.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - } else if (xc[y][x] < 0.325f) {//neutral 34 - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 30; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 31; - histxy[nh]++; - area[nh] = 6.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 32; - histxy[nh]++; - area[nh] = 7.5f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 33; - histxy[nh]++; - area[nh] = 4.5f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.34f) { - nh = 34; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 35; - histxy[nh]++; - area[nh] = 4.5f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 36; - histxy[nh]++; - area[nh] = 4.5f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 37; - histxy[nh]++; - area[nh] = 7.5f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 38; - histxy[nh]++; - area[nh] = 7.5f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 39; - histxy[nh]++; - area[nh] = 7.5f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.7f) { - nh = 40; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.335f) {//neutral - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 41; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 42; - histxy[nh]++; - area[nh] = 4.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 43; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 44; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.33f) { - nh = 45; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.34f) { - nh = 46; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.35f) { - nh = 47; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.36f) { - nh = 48; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 47; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.38f) { - nh = 48; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 49; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 50; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 51; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 52; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.7f) { - nh = 53; - histxy[nh]++; - area[nh] = 10.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.345f) {//neutral 37 - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 54; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 55; - histxy[nh]++; - area[nh] = 4.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 56; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 57; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.33f) {//34 - nh = 58; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.34f) { - nh = 59; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.35f) {//34 - nh = 60; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.36f) {//34 - nh = 61; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 62; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.38f) { - nh = 63; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.39f) { - nh = 64; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 65; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.42f) { - nh = 66; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 67; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.48f) { - nh = 68; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 69; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 70; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.65f) { - nh = 71; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.355f) {//neutral 37 - if (yc[y][x] < 0.2f && yc[y][x] > 0.1f) { - nh = 72; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 73; - histxy[nh]++; - area[nh] = 4.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 74; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 75; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.33f) {//34 - nh = 76; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.34f) { - nh = 77; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.35f) {//34 - nh = 78; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.36f) {//34 - nh = 79; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 80; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.38f) { - nh = 81; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.39f) { - nh = 82; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 83; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.42f) { - nh = 84; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 85; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.48f) { - nh = 68; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 86; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 87; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.65f) { - nh = 88; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.365f) { //0.4 - if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { - nh = 89; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.24f) { - nh = 90; - histxy[nh]++; - area[nh] = 4.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 91; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 92; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.33f) { - nh = 93; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.34f) { - nh = 94; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.36f) { - nh = 95; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 5; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 96; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.38f) { - nh = 97; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.39f) { - nh = 98; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 99; - histxy[nh]++; - area[nh] = 1.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - } else if (yc[y][x] < 0.42f) { - nh = 100; - histxy[nh]++; - area[nh] = 2.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 101; - histxy[nh]++; - area[nh] = 3.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 102; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 103; - histxy[nh]++; - area[nh] = 5.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.63f) { - nh = 104; - histxy[nh]++; - area[nh] = 10.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.405f) {//45 - if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { - nh = 105; - histxy[nh]++; - area[nh] = 40.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 106; - histxy[nh]++; - area[nh] = 16.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 107; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 108; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.34f) { - nh = 109; - histxy[nh]++; - area[nh] = 8.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 110; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 111; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 112; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 113; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 114; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.6f) { - nh = 115; - histxy[nh]++; - area[nh] = 16.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.445f) {//45 - if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { - nh = 116; - histxy[nh]++; - area[nh] = 40.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 117; - histxy[nh]++; - area[nh] = 16.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 118; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 119; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.34f) { - nh = 120; - histxy[nh]++; - area[nh] = 8.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 121; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 122; - histxy[nh]++; - area[nh] = 12.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 123; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 124; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 125; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.58f) { - nh = 126; - histxy[nh]++; - area[nh] = 16.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.495f) { - if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { - nh = 127; - histxy[nh]++; - area[nh] = 40.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 128; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 129; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 130; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.34f) { - nh = 131; - histxy[nh]++; - area[nh] = 10.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 132; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 133; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 3; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 134; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 135; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.55f) { - nh = 136; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - } else if (xc[y][x] < 0.545f) { - if (yc[y][x] < 0.2f && yc[y][x] > 0.15f) { - nh = 137; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.24f) { - nh = 138; - histxy[nh]++; - area[nh] = 20.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.29f) { - nh = 139; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.32f) { - nh = 140; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.34f) { - nh = 141; - histxy[nh]++; - area[nh] = 10.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.37f) { - nh = 142; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 143; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.45f) { - nh = 144; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.5f) { - nh = 145; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - - } - - } else if (xc[y][x] < 0.595f) { - if (yc[y][x] < 0.22f && yc[y][x] > 0.15f) { - nh = 146; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.25f) { - nh = 147; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.3f) { - nh = 148; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.35f) { - nh = 149; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.4f) { - nh = 160; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.45f) { - nh = 161; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.65f) { - if (yc[y][x] < 0.25f && yc[y][x] > 0.12f) { - nh = 162; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.3f) { - nh = 163; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } else if (yc[y][x] < 0.35f) { - nh = 164; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 2; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - - } else if (yc[y][x] < 0.45f) { - nh = 165; - histxy[nh]++; - area[nh] = 15.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - - } else if (xc[y][x] < 0.75f && yc[y][x] > 0.1f) { - nh = 166; - histxy[nh]++; - area[nh] = 25.f; - inter[nh] = 1; - xxx[nh] += xc[y][x]; - yyy[nh] += yc[y][x]; - YYY[nh] += Yc[y][x]; - - } - + } +#ifdef _OPENMP + #pragma omp critical +#endif + { + histxy += histxythr; + xxx += xxxthr; + yyy += yyythr; + YYY += YYYthr; } } } - - - void static studentXY(const array2D & YYcurr, const array2D & reffYY, int sizcurr, int Nc, int tt, float & student) { //calculate Student coeff YY @@ -5456,388 +4343,6 @@ void static studentXY(const array2D & YYcurr, const array2D & reff //student coeeficient } -/* -static void SdwWB(const array2D &redloc, const array2D &greenloc, const array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm) -{ - //Standard deviation weighted Gary World - from Lan rt al. - constexpr float clipHigh = 64000.f; - constexpr float clipLow = 1500.f; - - float MeanG[12] = { }; - float SigmaG[12] = { }; - - float MeanR[12] = { }; - float SigmaR[12] = { }; - - float MeanB[12] = { }; - float SigmaB[12] = { }; - - //divide in 12 areas - int partw, parth; - int yh, xw; - - if (bfw > bfh) { - partw = bfw / 4; - parth = bfh / 3; - xw = 4; - yh = 3; - } else { - partw = bfw / 3; - parth = bfh / 4; - xw = 3; - yh = 4; - } - - float SigmaGG = 0.f, SigmaRR = 0.f, SigmaBB = 0.f; - -#ifdef _OPENMP - #pragma omp parallel for schedule(dynamic) collapse(2) -#endif - - for (int w = 0; w < xw ; ++w) { - for (int h = 0; h < yh ; ++h) { - float meanr = 0.f; - float meang = 0.f; - float meanb = 0.f; - int nr = 0; - int ng = 0; - int nb = 0; - - for (int y = h * parth; y < (h + 1) * parth; ++y) { - for (int x = w * partw; x < (w + 1) * partw; ++x) { - if (greenloc[y][x] > clipLow && greenloc[y][x] < clipHigh) { - meang += greenloc[y][x]; - ng++; - } - - if (redloc[y][x] > clipLow && redloc[y][x] < clipHigh) { - meanr += redloc[y][x]; - nr++; - } - - if (blueloc[y][x] > clipLow && blueloc[y][x] < clipHigh) { - meanb += blueloc[y][x]; - nb++; - } - } - } - - int i = w + h * xw; - - if (ng > 0) { - meang /= ng; - } - - if (nr > 0) { - meanr /= nr; - } - - if (nb > 0) { - meanb /= nb; - } - - MeanG[i] = meang; - MeanR[i] = meanr; - MeanB[i] = meanb; - - float sigmar = 0.f; - float sigmag = 0.f; - float sigmab = 0.f; - - for (int y = h * parth; y < (h + 1) * parth; ++y) { - for (int x = w * partw; x < (w + 1) * partw; ++x) { - if (greenloc[y][x] > clipLow && greenloc[y][x] < clipHigh) { - sigmag += SQR(meang - greenloc[y][x]) ; - } - - if (redloc[y][x] > clipLow && redloc[y][x] < clipHigh) { - sigmar += SQR(meanr - redloc[y][x]); - } - - if (blueloc[y][x] > clipLow && blueloc[y][x] < clipHigh) { - sigmab += SQR(meanb - blueloc[y][x]); - } - } - } - - SigmaG[i] = sigmag; - SigmaR[i] = sigmar; - SigmaB[i] = sigmab; - - if (ng > 0) { - SigmaG[i] = std::sqrt(SigmaG[i] / ng); - } - - if (nr > 0) { - SigmaR[i] = std::sqrt(SigmaR[i] / nr); - } - - if (nb > 0) { - SigmaB[i] = std::sqrt(SigmaB[i] / nb); - } - -#ifdef _OPENMP - #pragma omp critical -#endif - { - SigmaGG += SigmaG[i]; - SigmaRR += SigmaR[i]; - SigmaBB += SigmaB[i]; - } - } - } - - float StdavgG = 0.f, StdavgR = 0.f, StdavgB = 0.f; - constexpr float epsilo = 0.01f; - - for (int k = 0; k < 12 ; k++) { - StdavgG += (SigmaG[k] * MeanG[k]) / (SigmaGG + epsilo); - StdavgR += (SigmaR[k] * MeanR[k]) / (SigmaRR + epsilo); - StdavgB += (SigmaB[k] * MeanB[k]) / (SigmaBB + epsilo); - - } - - avg_gm = (StdavgG + StdavgB + StdavgR) / (3 * StdavgG); - avg_rm = (StdavgG + StdavgB + StdavgR) / (3 * StdavgR); - avg_bm = (StdavgG + StdavgB + StdavgR) / (3 * StdavgB); - - avg_gm *= 10000.f; - avg_rm *= 10000.f; - avg_bm *= 10000.f; - -} -*/ - -/* -static void RobustWB(array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm) -{ - BENCHFUN - // inspired by "Robust automatic WB algorithm using grey colour points in Images" - // Jy Huo, Yl Chang, J.Wang Xx Wei - // robust = true; -// printf("Robust WB\n"); - const int bfwr = bfw / 4 + 1 ;//5 middle value to keep good result and reduce time - const int bfhr = bfh / 4 + 1; - - array2D rl(bfwr, bfhr); - array2D gl(bfwr, bfhr); - array2D bl(bfwr, bfhr); - - // copy data to smaller arrays to reduce memory pressure in do-while loop -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int y = 0; y < bfh ; y += 4) { - int yy = y / 4; - - for (int x = 0; x < bfw ; x += 4) { - int xx = x / 4; - rl[yy][xx] = redloc[y][x]; - gl[yy][xx] = greenloc[y][x]; - bl[yy][xx] = blueloc[y][x]; - } - } - - float *Uba = new float [204]; - float *Vba = new float [204]; - - constexpr float Th = 0.1321f; //Threshold 0.1321f 0.097f 0.2753f if necessary - //wr, wb, wg multipliers for each channel RGB - float wr = 1.f; - float wg = 1.f; - float wb = 1.f; - constexpr float mu = 0.002f;//std variation - constexpr float mu2 = 0.0012f;//first reduce variation - constexpr float mu3 = 0.0007f;//second variation - int itera = 0; - int minim = 1; - int realitera = 1; - - int Kx = 0; - - do {//iterative WB - float Ubarohm = 0.f, Vbarohm = 0.f; - itera++; - int Nf = 0; -#ifdef _OPENMP - #pragma omp parallel for reduction(+:Ubarohm, Vbarohm, Nf) schedule(dynamic,16) -#endif - - for (int y = 0; y < bfhr ; ++y) { - for (int x = 0; x < bfwr ; ++x) { - - //calculate YUV from RGB and wr, wg, wb - float Y0 = 0.299f * wr * rl[y][x] + 0.587f * wg * gl[y][x] + 0.114f * wb * bl[y][x]; - float U0 = -0.14713f * wr * rl[y][x] - 0.28886f * wg * gl[y][x] + 0.436f * wb * bl[y][x]; - float V0 = 0.615f * wr * rl[y][x] - 0.51498f * wg * gl[y][x] - 0.10001f * wb * bl[y][x]; - - //FYUX function to detect grey points - if (fabs(U0) + fabs(V0) < Th * Y0) {//grey values - Nf++; - Ubarohm += U0; - Vbarohm += V0; - } - - - } - } - - Ubarohm /= Nf; - Uba[itera] = Ubarohm;//stock value Ubarohm - Vba[itera] = Vbarohm;//stock value Vbarohm - - if (itera > 5 && minim < 2) { - if ((fabs(Uba[itera] - Uba[itera - 2]) < 0.001f) && (fabs(Vba[itera] - Vba[itera - 2]) < 0.001f)) { - //printf("DUba=%f Dvba=%f\n", Uba[itera] - Uba[itera - 2], Vba[itera] - Vba[itera - 2]); - realitera = itera; - minim = 2; //accelerate convergence - not in original algorithm - } - } - - if (itera > 10 && minim == 2 && itera > realitera + 3) { - if ((fabs(Uba[itera] - Uba[itera - 2]) < 0.001f) && (fabs(Vba[itera] - Vba[itera - 2]) < 0.001f)) { - minim = 3; //accelerate second time if necessary convergence, - not in original algorithm - } - - } - - Vbarohm /= Nf; // QUESTION INGO: why is this not done before the value is saved to Vba[itera]? Bug or intentional? - // printf ("Nf=%i max=%i U=%f V=%f\n", Nf, bfh*bfw, Ubarohm, Vbarohm); - Kx = 0; - constexpr float aa = 0.8f;//superior limit if epsil > aa increase variation - constexpr float bb = 0.15f;//inferior limit if epsil < bb exit - int ind = 1; - - float phi = 0.f; - - if ((fabs(Ubarohm) > fabs(Vbarohm)) || (Ubarohm != 0.f && fabs(Ubarohm) == fabs(Vbarohm))) { - phi = Ubarohm; - ind = 1; - } else if (fabs(Ubarohm) < fabs(Vbarohm)) { - phi = Vbarohm; - ind = 2; - } else if (Ubarohm == 0.f && Vbarohm == 0.f) { - phi = 0.f; - ind = 3; - } - - int sign = SGN(-phi); - - if (fabs(phi) >= aa) { - Kx = 2 * sign; - } - - if (fabs(phi) < aa && fabs(phi) >= bb) { - Kx = sign; - } - - if (fabs(phi) < bb) { - Kx = 0; - } - - // - float mur = mu; - - if (minim == 2) { - mur = mu2; - } else if (minim == 3) { - mur = mu3; - } - - if (ind == 1) { - wb += mur * Kx; - } else if (ind == 2) { - wr += mur * Kx; - } - - //printf ("epsil=%f iter=%i wb=%f wr=%f U=%f V=%f mu=%f\n", fabs (epsil), itera, wb, wr, Ubarohm, Vbarohm, mur); - } while (Kx != 0 && itera <= 200); //stop iterations in normal case Kx =0, or if WB iteration do not converge - - delete Uba; - delete Vba; -// printf("epsil=%f iter=%i wb=%f wr=%f mu=%f\n", fabs(epsil), itera, wb, wr, mur); - - avg_rm = 10000.* wr; - avg_gm = 10000.* wg; - avg_bm = 10000.* wb; - // printf("Robust ar%f ag=%f ab=%f\n", avg_rm, avg_gm, avg_bm); - -} -*/ -/* -static void SobelWB(array2D &redsobel, array2D &greensobel, array2D &bluesobel, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh) -{ - BENCHFUN - int GX[3][3]; - int GY[3][3]; - - //Sobel Horizontal - GX[0][0] = 1; - GX[0][1] = 0; - GX[0][2] = -1; - GX[1][0] = 2; - GX[1][1] = 0; - GX[1][2] = -2; - GX[2][0] = 1; - GX[2][1] = 0; - GX[2][2] = -1; - - //Sobel Vertical - GY[0][0] = 1; - GY[0][1] = 2; - GY[0][2] = 1; - GY[1][0] = 0; - GY[1][1] = 0; - GY[1][2] = 0; - GY[2][0] = -1; - GY[2][1] = -2; - GY[2][2] = -1; - // inspired from Chen Guanghua Zhang Xiaolong - // edge detection to improve auto WB - - { -#ifdef _OPENMP - #pragma omp parallel for -#endif - - for (int y = 0; y < bfh ; y++) { - for (int x = 0; x < bfw ; x++) { - if (y == 0 || y == bfh - 1 || x == 0 || x == bfw - 1) { - redsobel[y][x] = 0.f; - greensobel[y][x] = 0.f; - bluesobel[y][x] = 0.f; - } else { - float sumXr = 0.f; - float sumYr = 0.f; - float sumXg = 0.f; - float sumYg = 0.f; - float sumXb = 0.f; - float sumYb = 0.f; - - for (int i = -1; i < 2; i++) { - for (int j = -1; j < 2; j++) { - sumXr += GX[j + 1][i + 1] * redloc[y + i][x + j]; - sumXg += GX[j + 1][i + 1] * greenloc[y + i][x + j]; - sumXb += GX[j + 1][i + 1] * blueloc[y + i][x + j]; - sumYr += GY[j + 1][i + 1] * redloc[y + i][x + j]; - sumYg += GY[j + 1][i + 1] * greenloc[y + i][x + j]; - sumYb += GY[j + 1][i + 1] * blueloc[y + i][x + j]; - } - } - - //Edge strength - //we can add if need teta = atan2 (sumYr, sumXr) - redsobel[y][x] = CLIP(std::sqrt(SQR(sumXr) + SQR(sumYr))); - greensobel[y][x] = CLIP(std::sqrt(SQR(sumXg) + SQR(sumYg))); - bluesobel[y][x] = CLIP(std::sqrt(SQR(sumXb) + SQR(sumYb))); - } - } - } - } -} -*/ - void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, const ColorManagementParams &cmp, const RAWParams &raw, const WBParams & wbpar) { /* @@ -5845,41 +4350,41 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double This algorithm try to find temperature correlation between 20 to 200 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. - I have test many many algo to find the first one that work :) - Probably (sure) there are improvment to do... + I have test many many algorithms to find the first one that work :) + Probably (sure) there are improvement to do... I have create a table temperature with temp and white point with 100 values between 2000K and 12000K we can obviously change these values, more...with different steps - I have create or recuparate and transformed 200 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is largey enough. + I have create or recuparate and transformed 200 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is large enough. I think this value of 200 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized Of course we can increase this number :) - 1) for the cuurent raw file we create a table for each temp of RGB multipliers + 1) for the current raw file we create a table for each temp of RGB multipliers 2) then, I choose the "camera temp" to initialize calculation (why not) - 3) for this temp, I calculated XYZ values for the 200 spectrals datas + 3) for this temp, I calculated XYZ values for the 200 spectral datas 4) then I create for the image an "histogram", but for xyY (Cie 1931 color space) 5) for each pixel (in fact to accelerate only 1/10 for and 1/10 for y), I determine for each couple xy, the number of occurences 6) I sort this result in ascending order - 7) in option we can sort in another maner to take into account chroma : chromax = x - white point x, chromay = y - white point y + 7) in option we can sort in another manner to take into account chroma : chromax = x - white point x, chromay = y - white point y 8) then I compare this result, with spectral datas found above in 3) with deltaE (limited to chroma) 9) at this point we have xyY values that match Camera temp, and spectral datas associated 10) then I recalculate RGB values from xyY histogram 11) after, I vary temp, between 2000K to 12000K - 12) RGB values are recalcualted from 10) with RGB multipliers, and then xyY are calcualted for each temp - 13) spectral datas choose are recalculated with temp betwen 2000K to 12000K with matrix spectral calculation, that leeds to xyY values + 12) RGB values are recalculated from 10) with RGB multipliers, and then xyY are calculated for each temp + 13) spectral datas choose are recalculated with temp between 2000K to 12000K with matrix spectral calculation, that leads to xyY values 14) I calculated for each couple xy, Student correlation (without Snedecor test) 15) the good result, is the best correlation - 16) we have found the best temperature where color image and color refences are correlate + 16) we have found the best temperature where color image and color references are correlate 17) after we pass this value to improccoordinator 18) in a second part if camera green is out, I used an "extra" algorithm 19) we make vary green between 2 limits (settings in option) - 20) betwen these green limits, we make slightly vary temp (settings in options) and recalculated RGB multipliers + 20) between these green limits, we make slightly vary temp (settings in options) and recalculated RGB multipliers 21) with this multipliers for the RGB color find in histogram we recalculate xyY 22) we re-adjust references color for these xyY from 20) 23) we add if chroma image is very low, k colors to degrad correlation 24) then find all Student correlation for each couple green / temp 25) sort these Student values, and choose the minimum - 26) then for the 3 better couple "temp / green" choose the one wher grren is neraest from 1. + 26) then for the 3 better couple "temp / green" choose the one where green is nearest from 1. Some variables or function are not used, keep in case of I have test with cat02 but result are not stable enough ! why ??, therefore cat02 neutralized @@ -5892,22 +4397,22 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double You can change 4 parameters in option.cc Itcwb_thres : 34 by default ==> number of color used in final algorithm - between 10 and max 55 - Itcwb_sort : false by default, can improve algo if true, ==> sort value in something near chroma order, instead of histogram number + Itcwb_sort : false by default, can improve algorithm if true, ==> sort value in something near chroma order, instead of histogram number Itcwb_greenrange : 0 amplitude of green variation - between 0 to 2 Itcwb_greendeltatemp : 1 - delta temp in green iterate loop for "extra" - between 0 to 4 - Itcwb_forceextra : false - if true force algorithm "extra" ("extra" is used when cmaera wbsettings are wrong) to all images - Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color comapre to size of histogram real color - itcwb_delta : 1 by defaut can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good + Itcwb_forceextra : false - if true force algorithm "extra" ("extra" is used when camera wbsettings are wrong) to all images + Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color + itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good */ // BENCHFUN // BENCHFUN TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix("sRGB"); - double wp[3][3] = { - {wprof[0][0], wprof[0][1], wprof[0][2]}, - {wprof[1][0], wprof[1][1], wprof[1][2]}, - {wprof[2][0], wprof[2][1], wprof[2][2]} + const float wp[3][3] = { + {static_cast(wprof[0][0]), static_cast(wprof[0][1]), static_cast(wprof[0][2])}, + {static_cast(wprof[1][0]), static_cast(wprof[1][1]), static_cast(wprof[1][2])}, + {static_cast(wprof[2][0]), static_cast(wprof[2][1]), static_cast(wprof[2][2])} }; TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix("sRGB"); @@ -5922,8 +4427,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double array2D yc; array2D Yc; - - array2D histcurr; array2D histcurrref; @@ -6248,87 +4751,28 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {11001., 0.957747, 1.541281}, {12001., 0.960440, 1.601019} }; - int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point - int nbt = N_t; - float **Tx = nullptr; - float **Ty = nullptr; - float **Tz = nullptr; - float **Ta = nullptr; - float **Tb = nullptr; - float **TL = nullptr; - double *TX = nullptr; - double *TY = nullptr; - double *TZ = nullptr; - int *good_spectral = nullptr; - // float studgood = 1000.f; + const int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point + constexpr int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values + array2D Tx(Nc, N_t); + array2D Ty(Nc, N_t); + array2D Tz(Nc, N_t); + array2D Ta(Nc, N_t); + array2D Tb(Nc, N_t); + array2D TL(Nc, N_t); + double TX[Nc]; + double TY[Nc]; + double TZ[Nc]; + std::vector good_spectral(Nc, false); - int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values - Tx = new float*[Nc]; + float rmm[N_t]; + float gmm[N_t]; + float bmm[N_t]; - for (int i = 0; i < Nc; i++) { - Tx[i] = new float[nbt]; - } - - Ty = new float*[Nc]; - - for (int i = 0; i < Nc; i++) { - Ty[i] = new float[nbt]; - } - - Tz = new float*[Nc]; - - for (int i = 0; i < Nc; i++) { - Tz[i] = new float[nbt]; - } - - Ta = new float*[Nc]; - - for (int i = 0; i < Nc; i++) { - Ta[i] = new float[nbt]; - } - - Tb = new float*[Nc]; - - for (int i = 0; i < Nc; i++) { - Tb[i] = new float[nbt]; - } - - TL = new float*[Nc]; - - for (int i = 0; i < Nc; i++) { - TL[i] = new float[nbt]; - } - - TX = new double [Nc]; - - - TY = new double [Nc]; - - - TZ = new double [Nc]; - - good_spectral = new int [Nc]; - - for (int i = 0; i < Nc; i++) { - good_spectral[i] = 0; - } - - float *rmm = nullptr; - rmm = new float [N_t]; - - float *gmm = nullptr; - gmm = new float [N_t]; - - float *bmm = nullptr; - bmm = new float [N_t]; - - int siza = 167;//size of histogram + constexpr int siza = 158;//size of histogram //tempref and greenref are camera wb values. // I used them by default to select good spectral values !! - if (tempref > 12000.f) { - tempref = 12000.f; - } + tempref = rtengine::min(tempref, 12000.0); int repref = 0; @@ -6339,8 +4783,9 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - //calculate R G B multiplier in function illuminant and temperature + const bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) + || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); for (int tt = 0; tt < N_t; tt++) { double r, g, b; float rm, gm, bm; @@ -6352,9 +4797,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double const float new_pre_mul[4] = { ri->get_pre_mul(0) / rm, ri->get_pre_mul(1) / gm, ri->get_pre_mul(2) / bm, ri->get_pre_mul(3) / gm }; float new_scale_mul[4]; - bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) - || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); - float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); + const float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); rm = new_scale_mul[0] / scale_mul[0] * gain; gm = new_scale_mul[1] / scale_mul[1] * gain; @@ -6367,7 +4810,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double struct hiss { int histnum; int index; - int interest; bool operator()(const hiss& lhis, const hiss& rhis) { return lhis.histnum < rhis.histnum; @@ -6391,28 +4833,15 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } ; - int histxy[siza];//number of values for each pair xy + LUTu histxy(siza); //number of values for each pair xy + histxy.clear(); - float area[siza];//multiplier for compensation differences area ==> big areas are rare near limit prophotos or more - - int inter[siza]; //interest for photographie 1 = small (limit gamut) 2 = normal 3 = major (skin, sky, neutral) - - float xxx[siza];//for color references calculated ==> max in images "like histogram" - - float yyy[siza]; - - float YYY[siza];//not used directly, but necessary to keep good range - - for (int p = 0; p < siza; p++) { - histxy[p] = 0; - area[p] = 20.f; - inter[p] = 1; - xxx[p] = 0.f; - yyy[p] = 0.f; - YYY[p] = 0.f; - } - - float estimchrom = 0.f; + LUTf xxx(siza);//for color references calculated ==> max in images "like histogram" + xxx.clear(); + LUTf yyy(siza); + yyy.clear(); + LUTf YYY(siza);//not used directly, but necessary to keep good range + YYY.clear(); bool separated = true; int w = -1; @@ -6422,9 +4851,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double reff_spect_yy_camera(N_t, 2 * Nc + 2); reff_spect_xx_camera(N_t, 2 * Nc + 2); - // reffYY(N_t, 2 * Nc);//in case of - //reffYY_prov(N_t, 2 * Nc); - //here we select the good spectral color inside the 113 values //call tempxy to calculate for 114 color references Temp and XYZ with cat02 @@ -6437,48 +4863,28 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double reff_spect_yy_camera[j][repref] = TY[j] / (TX[j] + TY[j] + TZ[j]); // y from xyY } - int deltarepref = settings->itcwb_delta; + const int deltarepref = settings->itcwb_delta; - for (int nn = 0; nn <= 2; nn++) { + StopWatch Stop1("Loop 1"); + for (int nn = 0, drep = -deltarepref; nn <= 2; ++nn, drep += deltarepref) { //three loop to refine color if temp camera is probably not very good - int drep = 0; - - if (nn == 0) { - drep = -deltarepref; - } - - if (nn == 2) { - drep = +deltarepref; - } - - int rep = repref + drep; - - if (rep > N_t) { - rep = N_t; - } - - if (rep < 0) { - rep = 0; - } + const int rep = rtengine::LIM(repref + drep, 0, N_t); + StopWatch Stop2("Loop 2"); //initialize calculation of xy current for tempref +#ifdef _OPENMP + #pragma omp parallel for +#endif for (int y = 0; y < bfh ; y += 10) { - for (int x = 0; x < bfw ; x += 10) { - int yy = y / 10; - int xx = x / 10 ; - float x_c = 0.f, y_c = 0.f, Y_c = 0.f; - float x_x = 0.f, y_y = 0.f, z_z = 0.f; - float RR = rmm[rep] * redloc[y][x]; - float GG = gmm[rep] * greenloc[y][x]; - float BB = bmm[rep] * blueloc[y][x]; - Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); - xc[yy][xx] = x_c; - yc[yy][xx] = y_c; - Yc[yy][xx] = Y_c; + int yy = y / 10; + for (int x = 0, xx = 0; x < bfw ; x += 10, ++xx) { + const float RR = rmm[rep] * redloc[y][x]; + const float GG = gmm[rep] * greenloc[y][x]; + const float BB = bmm[rep] * blueloc[y][x]; + Color::rgbxyY(RR, GG, BB, xc[yy][xx], yc[yy][xx], Yc[yy][xx], wp); } - } - + Stop2.stop(); //histogram xy depend of temp...but in most cases D45 ..D65.. //calculate for this image the mean values for each family of color, near histogram x y (number) //xy vary from x 0..0.77 y 0..0.82 @@ -6488,11 +4894,12 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double // step about 0.02 x 0.32 0.34 y= 0.34 0.36 skin -- sky x 0.24 0.30 y 0.28 0.32 //big step about 0.2 - histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy, area, inter); + histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy); } + Stop1.stop(); //calculate x y Y - int sizcurrref = siza;//choice of number of correlate colors in image + const int sizcurrref = siza;//choice of number of correlate colors in image histcurrref(N_t, sizcurrref); xx_curref(N_t, sizcurrref); yy_curref(N_t, sizcurrref); @@ -6506,48 +4913,36 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double hiss Wbhis [siza]; - int n1 = 0; - int n4 = 0; - int n15 = 0; - int n30 = 0; - int ntr = 0; for (int nh = 0; nh < siza; nh++) { Wbhis[nh].histnum = histxy[nh]; Wbhis[nh].index = nh; - Wbhis[nh].interest = inter[nh]; } //sort in ascending order std::sort(Wbhis, Wbhis + siza, Wbhis[0]); - for (int nh = 0; nh < siza; nh++) { -// printf("nh=%i", Wbhis[nh].index); - } - + int n1 = 0; + int n4 = 0; + int n15 = 0; + int n30 = 0; //part to improve for (int nh = 0; nh < siza; nh++) { - if (Wbhis[nh].histnum < 1) { - n1++; //keep only existing color but avoid to small - } - - if (Wbhis[nh].histnum < 4) { - n4++; //keep only existing color but avoid to small - } - - if (Wbhis[nh].histnum < 15) { - n15++; //keep only existing color but avoid to small - } - if (Wbhis[nh].histnum < 30) { n30++; //keep only existing color but avoid to small + if (Wbhis[nh].histnum < 15) { + n15++; //keep only existing color but avoid to small + if (Wbhis[nh].histnum < 4) { + n4++; //keep only existing color but avoid to small + if (Wbhis[nh].histnum < 1) { + n1++; //keep only existing color but avoid to small + } + } + } } - - } - - ntr = n30; + int ntr = n30; if (ntr > (siza - 25)) { ntr = n15; //if to less elements 25 elements mini @@ -6567,24 +4962,22 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double chrom wbchro[sizcu4]; - double swpr = (Txyz[repref].XX + Txyz[repref].ZZ + 1.); - double xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes - double ywpr = 1. / swpr; + const double swpr = (Txyz[repref].XX + Txyz[repref].ZZ + 1.); + const double xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes + const double ywpr = 1. / swpr; - for (int i = 0; i < sizcu4; i++) { //take the max values - int j = i; - histcurrref[j][repref] = (float) Wbhis[siza - (j + 1)].histnum; - xx_curref[j][repref] = xxx[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; - yy_curref[j][repref] = yyy[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; - YY_curref[j][repref] = YYY[Wbhis[siza - (j + 1)].index] / histcurrref[j][repref]; -// printf("xx=%f yy=%f\n", xx_curref[j][repref], yy_curref[j][repref]); + for (int i = 0; i < sizcu4; ++i) { //take the max values + histcurrref[i][repref] = (float) Wbhis[siza - (i + 1)].histnum; + xx_curref[i][repref] = xxx[Wbhis[siza - (i + 1)].index] / histcurrref[i][repref]; + yy_curref[i][repref] = yyy[Wbhis[siza - (i + 1)].index] / histcurrref[i][repref]; + YY_curref[i][repref] = YYY[Wbhis[siza - (i + 1)].index] / histcurrref[i][repref]; } - estimchrom = 0.f; + float estimchrom = 0.f; - for (int nh = 0; nh < sizcu4; nh++) { - float chxy = std::sqrt(SQR(xx_curref[nh][repref] - xwpr) + SQR(yy_curref[nh][repref] - ywpr)); + for (int nh = 0; nh < sizcu4; ++nh) { + const float chxy = std::sqrt(SQR(xx_curref[nh][repref] - xwpr) + SQR(yy_curref[nh][repref] - ywpr)); wbchro[nh].chroxy_number = chxy * std::sqrt(histcurrref[nh][repref]); wbchro[nh].chroxy = std::sqrt(chxy); wbchro[nh].chrox = xx_curref[nh][repref]; @@ -6595,68 +4988,40 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } estimchrom /= sizcu4; - //printf("estimchrom=%f \n", estimchrom); if (settings->itcwb_sort) { //sort in ascending with chroma values - std::sort(wbchro, wbchro + sizcu4, wbchro[0]); } - /* - for (int nh = 0; nh < sizcu4; nh++) { - printf("nh=%i chroma_xy=%f chrox=%f chroy=%f\n", nh, wbchro[nh].chroxy, wbchro[nh].chrox, wbchro[nh].chroy); - } - */ - int maxval = settings->itcwb_thres;//max values of color to find correllation + const int maxval = rtengine::LIM(settings->itcwb_thres, 10, 55);//max values of color to find correllation - if (maxval < 10) { - maxval = 10; - } + sizcurr2ref = rtengine::min(sizcurr2ref, maxval); //keep about the biggest values, - if (maxval > 55) { - maxval = 55; - } - - if (sizcurr2ref > maxval) { - sizcurr2ref = maxval; //keep about the biggest values, - } - - - for (int i = 0; i < sizcurr2ref; i++) { + for (int i = 0; i < sizcurr2ref; ++i) { //is condition chroxy necessary ? if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral w++; xx_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chrox; yy_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chroy; YY_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].Y; - // printf("xx_cu=%f yy_cu=%f Y=%f chro=%f\n", xx_curref_reduc[w][repref], yy_curref_reduc[w][repref], YY_curref_reduc[w][repref],std::sqrt(wbchro[sizcu4 - (i + 1)].chroxy)); } } //calculate deltaE xx to find best values of spectrals datas - int maxnb = settings->itcwb_sizereference; - - if (maxnb > 5) { - maxnb = 5; - } - - if (maxnb < 1) { - maxnb = 1; - } - + int maxnb = rtengine::LIM(settings->itcwb_sizereference, 1, 5); if (settings->itcwb_thres > 39) { maxnb = 200 / settings->itcwb_thres; } - for (int nb = 1; nb <= maxnb; nb ++) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 - for (int i = 0; i < w; i++) { + for (int nb = 1; nb <= maxnb; ++nb) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 + for (int i = 0; i < w; ++i) { float mindeltaE = 100000.f; int kN = 0; for (int j = 0; j < Nc ; j++) { - if (good_spectral[j] == 0) { - float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); + if (!good_spectral[j]) { + const float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); if (deltaE < mindeltaE) { mindeltaE = deltaE; @@ -6665,31 +5030,26 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - good_spectral[kN] = 1;//good spectral are spectral color that match color histogram xy - //printf("k=%i ", kN); + good_spectral[kN] = true;//good spectral are spectral color that match color histogram xy } } //reconvert to RGB for "reduction" for (int i = 0; i < w; i++) { - float X = 65535.f * xx_curref_reduc[i][repref] * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; - float Y = 65535.f * YY_curref_reduc[i][repref]; - float Z = 65535.f * (1.f - xx_curref_reduc[i][repref] - yy_curref_reduc[i][repref]) * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; + const float X = 65535.f * xx_curref_reduc[i][repref] * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; + const float Y = 65535.f * YY_curref_reduc[i][repref]; + const float Z = 65535.f * (1.f - xx_curref_reduc[i][repref] - yy_curref_reduc[i][repref]) * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; float r, g, b; Color::xyz2rgb(X, Y, Z, r, g, b, wip); - r /= rmm[repref]; - g /= gmm[repref]; - b /= bmm[repref]; - R_curref_reduc[i][repref] = r; - G_curref_reduc[i][repref] = g; - B_curref_reduc[i][repref] = b; + R_curref_reduc[i][repref] = r / rmm[repref]; + G_curref_reduc[i][repref] = g / gmm[repref]; + B_curref_reduc[i][repref] = b / bmm[repref]; } //end first part - //Now begin real calculations separated = false; ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants @@ -6707,57 +5067,37 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //calculate x y z for each pixel with multiplier rmm gmm bmm - for (int tt = 0; tt < N_t; tt++) {//N_t - // double swp = (Txyz[tt].XX + Txyz[tt].ZZ + 1.); - // double xwp = Txyz[tt].XX / swp; - // double ywp = 1. / swp; - - - for (int i = 0; i < w; i++) { - float x_c = 0.f, y_c = 0.f, Y_c = 0.f; - float x_x = 0.f, y_y = 0.f, z_z = 0.f; - - float RR = rmm[tt] * R_curref_reduc[i][repref]; - float GG = gmm[tt] * G_curref_reduc[i][repref]; - float BB = bmm[tt] * B_curref_reduc[i][repref]; - Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); - // xxyycurr_reduc[2 * i][tt] = fabs(x_c - xwp); - // xxyycurr_reduc[2 * i + 1][tt] = fabs(y_c - ywp); - xxyycurr_reduc[2 * i][tt] = x_c; - xxyycurr_reduc[2 * i + 1][tt] = y_c; - // printf("w=%i tt=%i xx=%f yy=%f\n",i, tt, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i +1][tt]); + for (int tt = 0; tt < N_t; ++tt) {//N_t + for (int i = 0; i < w; ++i) { + float unused; + const float RR = rmm[tt] * R_curref_reduc[i][repref]; + const float GG = gmm[tt] * G_curref_reduc[i][repref]; + const float BB = bmm[tt] * B_curref_reduc[i][repref]; + Color::rgbxyY(RR, GG, BB, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i + 1][tt], unused, wp); } - for (int j = 0; j < Nc ; j++) { + for (int j = 0; j < Nc ; ++j) { reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY - //reffYY_prov[j][tt] = Ty[j][tt];//Y - // printf("w=%i tt=%i xx=%f yy=%f\n",j, tt,reffxxyy_prov[2 * kk][tt] ,reffxxyy_prov[2 * kk + 1][tt]); - } int kk = -1; - for (int i = 0; i < Nc ; i++) { - if (good_spectral[i] == 1) { + for (int i = 0; i < Nc ; ++i) { + if (good_spectral[i]) { kk++; //we calculate now absolute chroma for each spectral color - // reffxxyy[2 * kk][tt] = fabs(reffxxyy_prov[2 * i][tt] - xwp); - // reffxxyy[2 * kk + 1][tt] = fabs(reffxxyy_prov[2 * i + 1][tt] - ywp); - reff_spect_xxyy[2 * kk][tt] = reff_spect_xxyy_prov[2 * i][tt]; + reff_spect_xxyy[2 * kk][tt] = reff_spect_xxyy_prov[2 * i][tt]; reff_spect_xxyy[2 * kk + 1][tt] = reff_spect_xxyy_prov[2 * i + 1][tt]; - //printf("w=%i tt=%i xx=%f yy=%f\n",i, tt,reffxxyy[2 * kk][tt] ,reffxxyy[2 * kk + 1][tt]); - // reffYY[kk][tt] = reffYY_prov[i][tt]; } } float student = 0.f; - studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kk, tt, student); //for xy - //printf("tt=%i st=%f\n", tt, student); - float abstud = fabs(student); + + const float abstud = std::fabs(student); if (abstud < minstud) { // find the minimum Student minstud = abstud; @@ -6778,49 +5118,34 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double }; Tempgreen Tgstud[N_g]; - for (int i = 0; i < N_g; i++) {//init variables with + for (int i = 0; i < N_g; ++i) {//init variables with Tgstud[i].student = 1000.f;//max value to initialize Tgstud[i].tempref = 57; Tgstud[i].greenref = 39; } - int dgoodref = settings->itcwb_greendeltatemp; + const int dgoodref = rtengine::min(settings->itcwb_greendeltatemp, 4); + const int scantempbeg = rtengine::max(goodref - (dgoodref + 1), 1); + const int scantempend = rtengine::min(goodref + dgoodref, N_t - 1); - if (dgoodref > 4) { - dgoodref = 4; - } - - int scantempbeg = goodref - (dgoodref + 1); - - if (scantempbeg < 1) { - scantempbeg = 1; - } - - int scantempend = goodref + dgoodref; - - if (scantempend > N_t - 1) { - scantempend = N_t - 1; - } - - for (int gr = Rangegreenused.begin; gr < Rangegreenused.end; gr++) { + const bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) + || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); + for (int gr = Rangegreenused.begin; gr < Rangegreenused.end; ++gr) { float minstudgr = 100000.f; int goodrefgr = 1; - for (int tt = scantempbeg; tt < scantempend; tt++) { + for (int tt = scantempbeg; tt < scantempend; ++tt) { double r, g, b; - float rm, gm, bm; - ColorTemp WBiter = ColorTemp(Txyz[tt].Tem, gree[gr].green, 1.f, "Custom"); + ColorTemp WBiter(Txyz[tt].Tem, gree[gr].green, 1.f, "Custom"); WBiter.getMultipliers(r, g, b); - rm = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; - gm = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; - bm = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; + float rm = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; + float gm = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; + float bm = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; const float new_pre_mul[4] = { ri->get_pre_mul(0) / rm, ri->get_pre_mul(1) / gm, ri->get_pre_mul(2) / bm, ri->get_pre_mul(3) / gm }; float new_scale_mul[4]; - bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) - || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); - float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); + const float gain = calculate_scale_mul(new_scale_mul, new_pre_mul, c_white, cblacksom, isMono, ri->get_colors()); rm = new_scale_mul[0] / scale_mul[0] * gain; gm = new_scale_mul[1] / scale_mul[1] * gain; @@ -6831,66 +5156,42 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } - for (int tt = scantempbeg; tt < scantempend; tt++) {//N_t - // double swp = (Txyz[tt].XX + Txyz[tt].ZZ + 1.); - // double xwp = Txyz[tt].XX / swp; - // double ywp = 1. / swp; - - - for (int i = 0; i < w; i++) { - float x_c = 0.f, y_c = 0.f, Y_c = 0.f; - float x_x = 0.f, y_y = 0.f, z_z = 0.f; - - float RR = rmm[tt] * R_curref_reduc[i][repref]; - float GG = gmm[tt] * G_curref_reduc[i][repref]; - float BB = bmm[tt] * B_curref_reduc[i][repref]; - Color::rgbxyY(RR, GG, BB, x_c, y_c, Y_c, x_x, y_y, z_z, wp); - xxyycurr_reduc[2 * i][tt] = x_c; - xxyycurr_reduc[2 * i + 1][tt] = y_c; - // printf("w=%i tt=%i xx=%f yy=%f\n",i, tt, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i +1][tt]); + for (int tt = scantempbeg; tt < scantempend; ++tt) {//N_t + for (int i = 0; i < w; ++i) { + float unused; + const float RR = rmm[tt] * R_curref_reduc[i][repref]; + const float GG = gmm[tt] * G_curref_reduc[i][repref]; + const float BB = bmm[tt] * B_curref_reduc[i][repref]; + Color::rgbxyY(RR, GG, BB, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i + 1][tt], unused, wp); } - for (int j = 0; j < Nc ; j++) { + for (int j = 0; j < Nc ; ++j) { reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY - // reffYY_prov[j][tt] = Ty[j][tt];//Y - // printf("w=%i tt=%i xx=%f yy=%f\n",j, tt,reffxxyy_prov[2 * kk][tt] ,reffxxyy_prov[2 * kk + 1][tt]); - } //degrade correllation with color high chroma, but not too much...seems not good, but keep in case of?? if (estimchrom < 0.025f) {//very smal value of chroma for image - good_spectral[0] = 1;//blue - //good_spectral[1] = 1;//blue - // good_spectral[97] = 1;//blue - // good_spectral[93] = 1;//purple - // good_spectral[7] = 1;//green - good_spectral[11] = 1;//green - //good_spectral[42] = 1;//green - // good_spectral[75] = 1;//green - // good_spectral[46] = 1;//red - good_spectral[62] = 1;//red - // good_spectral[63] = 1;//red - // good_spectral[91] = 1;//ora - + good_spectral[0] = true;//blue + good_spectral[11] = true;//green + good_spectral[62] = true;//red } int kkg = -1; - for (int i = 0; i < Nc ; i++) { - if (good_spectral[i] == 1) { + for (int i = 0; i < Nc ; ++i) { + if (good_spectral[i]) { kkg++; - reff_spect_xxyy[2 * kkg][tt] = reff_spect_xxyy_prov[2 * i][tt]; + reff_spect_xxyy[2 * kkg][tt] = reff_spect_xxyy_prov[2 * i][tt]; reff_spect_xxyy[2 * kkg + 1][tt] = reff_spect_xxyy_prov[2 * i + 1][tt]; - // reffYY[kkg][tt] = reffYY_prov[i][tt]; } } float studentgr = 0.f; studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kkg, tt, studentgr); //for xy - float abstudgr = fabs(studentgr); + const float abstudgr = std::fabs(studentgr); if (abstudgr < minstudgr) { // find the minimum Student minstudgr = abstudgr; @@ -6902,15 +5203,10 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Tgstud[gr].student = minstudgr; } - } std::sort(Tgstud, Tgstud + N_g, Tgstud[0]); - for (int j = 0; j < 20; j++) { - // printf("reftemp=%i refgreen=%i stud=%f \n", Tgstud[j].tempref, Tgstud[j].greenref, Tgstud[j].student); - } - //now search the value of green the nearest of 1 with a good student value // I take the 3 first values //I admit a symetrie in green coefiicient for rgb multiplier...probably not excatly true @@ -6919,17 +5215,17 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int greengoodprov; int goodrefprov; float studprov; - int goodref0 = Tgstud[0].tempref; - int greengood0 = Tgstud[0].greenref - 39;//39 green = 1 - float stud0 = Tgstud[0].student; - int goodref1 = Tgstud[1].tempref; - float stud1 = Tgstud[1].student; - int greengood1 = Tgstud[1].greenref - 39; - int goodref2 = Tgstud[2].tempref; - int greengood2 = Tgstud[2].greenref - 39; - float stud2 = Tgstud[2].student; + const int goodref0 = Tgstud[0].tempref; + const int greengood0 = Tgstud[0].greenref - 39;//39 green = 1 + const float stud0 = Tgstud[0].student; + const int goodref1 = Tgstud[1].tempref; + const float stud1 = Tgstud[1].student; + const int greengood1 = Tgstud[1].greenref - 39; + const int goodref2 = Tgstud[2].tempref; + const int greengood2 = Tgstud[2].greenref - 39; + const float stud2 = Tgstud[2].student; - if (fabs(greengood2) < fabs(greengood1)) { + if (std::fabs(greengood2) < std::fabs(greengood1)) { greengoodprov = greengood2; goodrefprov = goodref2; studprov = stud2; @@ -6940,7 +5236,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } - if (fabs(greengoodprov) < fabs(greengood0)) { + if (std::fabs(greengoodprov) < std::fabs(greengood0)) { goodref = goodrefprov; greengood = greengoodprov + 39; studgood = studprov; @@ -6956,32 +5252,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } - histcurr(0, 0); - histcurrref(0, 0); - xxyycurr(0, 0); - xxyycurr_reduc(0, 0); - xx_curref(0, 0); - yy_curref(0, 0); - YY_curref(0, 0); - - reff_spect_xxyy(0, 0); - YYcurr(0, 0); - YYcurr_reduc(0, 0); - reff_spect_yy_camera(0, 0); - reff_spect_xx_camera(0, 0); - xx_curref_reduc(0, 0); - yy_curref_reduc(0, 0); - YY_curref_reduc(0, 0); - - R_curref_reduc(0, 0); - G_curref_reduc(0, 0); - B_curref_reduc(0, 0); - - reff_spect_xxyy_prov(0, 0); - -// reffYY(0, 0); -// reffYY_prov(0, 0); - avg_rm = 10000.f * rmm[goodref]; avg_gm = 10000.* gmm[goodref]; avg_bm = 10000.f * bmm[goodref]; @@ -6990,47 +5260,9 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double tempitc = Txyz[goodref].Tem; } - if (settings->verbose) { printf("ITCWB tempitc=%f gritc=%f stud=%f \n", tempitc, greenitc, studgood); } - - - xc(0, 0); - yc(0, 0); - Yc(0, 0); - - - - for (int i = 0; i < Nc; i++) { - delete [] Tx[i]; - delete [] Ty[i]; - delete [] Tz[i]; - delete [] Ta[i]; - delete [] Tb[i]; - delete [] TL[i]; - - } - - delete [] Tx; - delete [] Ty; - delete [] Tz; - delete [] Ta; - delete [] Tb; - delete [] TL; - delete [] TX; - delete [] TY; - delete [] TZ; - delete [] good_spectral; - - - delete [] rmm; - delete [] gmm; - delete [] bmm; - - - - } void RawImageSource::WBauto(double & tempref, double & greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double & avg_rm, double & avg_gm, double & avg_bm, double & tempitc, double & greenitc, float & studgood, bool & twotimes, const WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const ColorManagementParams & cmp, const RAWParams & raw) @@ -7153,7 +5385,7 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in double Yr = Y / 65535.; double Zr = Z / 65535.; - Ciecam02::xyz_to_cat02float ( redloc[i][j], greenloc[i][j], blueloc[i][j], Xr, Yr, Zr, 1); + Ciecam02::xyz_to_cat02float (redloc[i][j], greenloc[i][j], blueloc[i][j], Xr, Yr, Zr, 1); redloc[i][j] *= 65535.f; greenloc[i][j] *= 65535.f; blueloc[i][j] *= 65535.f; @@ -7189,7 +5421,7 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref for (int j = start; j < end; j++) { if (ri->getSensorType() != ST_BAYER) { - double dr = CLIP(initialGain * (rawData[i][3 * j] )); + double dr = CLIP(initialGain * (rawData[i][3 * j] )); double dg = CLIP(initialGain * (rawData[i][3 * j + 1])); double db = CLIP(initialGain * (rawData[i][3 * j + 2])); @@ -7202,7 +5434,7 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref avg_b += db; rn = gn = ++bn; } else { - int c = FC( i, j); + int c = FC(i, j); double d = CLIP(initialGain * (rawData[i][j])); if (d > clipHigh) { @@ -7225,7 +5457,7 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref } } else { if (ri->getSensorType() != ST_BAYER) { - if(ri->getSensorType() == ST_FUJI_XTRANS) { + if (ri->getSensorType() == ST_FUJI_XTRANS) { const double compval = clipHigh / initialGain; #ifdef _OPENMP #pragma omp parallel @@ -7272,7 +5504,7 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref for (int j = 32; j < W - 32; j++) { // each loop read 1 rgb triplet value - double dr = CLIP(initialGain * (rawData[i][3 * j] )); + double dr = CLIP(initialGain * (rawData[i][3 * j] )); double dg = CLIP(initialGain * (rawData[i][3 * j + 1])); double db = CLIP(initialGain * (rawData[i][3 * j + 2])); @@ -7369,16 +5601,16 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref if (wbpar.method == "autitcgreen") { //not used - redAWBMul = rm = avg_rm * refwb_red; + redAWBMul = rm = avg_rm * refwb_red; greenAWBMul = gm = avg_gm * refwb_green; - blueAWBMul = bm = avg_bm * refwb_blue; + blueAWBMul = bm = avg_bm * refwb_blue; } else { - const double reds = avg_r / std::max(1, rn) * refwb_red; + const double reds = avg_r / std::max(1, rn) * refwb_red; const double greens = avg_g / std::max(1, gn) * refwb_green; - const double blues = avg_b / std::max(1, bn) * refwb_blue; - redAWBMul = rm = imatrices.rgb_cam[0][0] * reds + imatrices.rgb_cam[0][1] * greens + imatrices.rgb_cam[0][2] * blues; + const double blues = avg_b / std::max(1, bn) * refwb_blue; + redAWBMul = rm = imatrices.rgb_cam[0][0] * reds + imatrices.rgb_cam[0][1] * greens + imatrices.rgb_cam[0][2] * blues; greenAWBMul = gm = imatrices.rgb_cam[1][0] * reds + imatrices.rgb_cam[1][1] * greens + imatrices.rgb_cam[1][2] * blues; - blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; + blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; } } @@ -7420,7 +5652,7 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) for (int j = start; j < end; j++) { if (ri->getSensorType() != ST_BAYER) { - double dr = CLIP(initialGain * (rawData[i][3 * j] )); + double dr = CLIP(initialGain * (rawData[i][3 * j] )); double dg = CLIP(initialGain * (rawData[i][3 * j + 1])); double db = CLIP(initialGain * (rawData[i][3 * j + 2])); @@ -7433,7 +5665,7 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) avg_b += db; rn = gn = ++bn; } else { - int c = FC( i, j); + int c = FC(i, j); double d = CLIP(initialGain * (rawData[i][j])); if (d > clipHigh) { @@ -7456,7 +5688,7 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) } } else { if (ri->getSensorType() != ST_BAYER) { - if(ri->getSensorType() == ST_FUJI_XTRANS) { + if (ri->getSensorType() == ST_FUJI_XTRANS) { const double compval = clipHigh / initialGain; #ifdef _OPENMP #pragma omp parallel @@ -7503,7 +5735,7 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) for (int j = 32; j < W - 32; j++) { // each loop read 1 rgb triplet value - double dr = CLIP(initialGain * (rawData[i][3 * j] )); + double dr = CLIP(initialGain * (rawData[i][3 * j] )); double dg = CLIP(initialGain * (rawData[i][3 * j + 1])); double db = CLIP(initialGain * (rawData[i][3 * j + 2])); @@ -7584,19 +5816,19 @@ void RawImageSource::getAutoWBMultipliers (double &rm, double &gm, double &bm) } } - if( settings->verbose ) { + if (settings->verbose) { printf ("AVG: %g %g %g\n", avg_r / std::max(1, rn), avg_g / std::max(1, gn), avg_b / std::max(1, bn)); } // return ColorTemp (pow(avg_r/rn, 1.0/6.0)*img_r, pow(avg_g/gn, 1.0/6.0)*img_g, pow(avg_b/bn, 1.0/6.0)*img_b); - double reds = avg_r / std::max(1, rn) * refwb_red; + double reds = avg_r / std::max(1, rn) * refwb_red; double greens = avg_g / std::max(1, gn) * refwb_green; - double blues = avg_b / std::max(1, bn) * refwb_blue; + double blues = avg_b / std::max(1, bn) * refwb_blue; - redAWBMul = rm = imatrices.rgb_cam[0][0] * reds + imatrices.rgb_cam[0][1] * greens + imatrices.rgb_cam[0][2] * blues; + redAWBMul = rm = imatrices.rgb_cam[0][0] * reds + imatrices.rgb_cam[0][1] * greens + imatrices.rgb_cam[0][2] * blues; greenAWBMul = gm = imatrices.rgb_cam[1][0] * reds + imatrices.rgb_cam[1][1] * greens + imatrices.rgb_cam[1][2] * blues; - blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; + blueAWBMul = bm = imatrices.rgb_cam[2][0] * reds + imatrices.rgb_cam[2][1] * greens + imatrices.rgb_cam[2][2] * blues; } ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) @@ -7608,7 +5840,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vectorgetSensorType() != ST_BAYER) { - if(ri->getSensorType() == ST_FUJI_XTRANS) { + if (ri->getSensorType() == ST_FUJI_XTRANS) { int d[9][2] = {{0, 0}, { -1, -1}, { -1, 0}, { -1, 1}, {0, -1}, {0, 1}, {1, -1}, {1, 0}, {1, 1}}; for (size_t i = 0; i < red.size(); i++) { @@ -7621,7 +5853,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector= 0 && yv >= 0 && xv < W && yv < H) { + if (xv >= 0 && yv >= 0 && xv < W && yv < H) { if (ri->ISXTRANSRED(yv, xv)) { //RED rloc += (rawData[yv][xv]); rnbrs++; @@ -7659,7 +5891,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector 52500 || + if (initialGain * (rawData[yr][3 * xr] ) > 52500 || initialGain * (rawData[yg][3 * xg + 1]) > 52500 || initialGain * (rawData[yb][3 * xb + 2]) > 52500) { continue; @@ -7671,7 +5903,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector= 0 && ymin >= 0 && xmax < W && ymax < H) { - reds += (rawData[yr][3 * xr] ); + reds += (rawData[yr][3 * xr] ); greens += (rawData[yg][3 * xg + 1]); blues += (rawData[yb][3 * xb + 2]); rn++; @@ -7694,7 +5926,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector= 0 && yv >= 0 && xv < W && yv < H) { + if (xv >= 0 && yv >= 0 && xv < W && yv < H) { if (c == 0) { //RED rloc += (rawData[yv][xv]); rnbrs++; @@ -7730,7 +5962,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector= 0 && yv >= 0 && xv < W && yv < H) { + if (xv >= 0 && yv >= 0 && xv < W && yv < H) { if (c == 0) { //RED rloc += (rawData[yv][xv]); rnbrs++; @@ -7766,7 +5998,7 @@ ColorTemp RawImageSource::getSpotWB (std::vector &red, std::vector= 0 && yv >= 0 && xv < W && yv < H) { + if (xv >= 0 && yv >= 0 && xv < W && yv < H) { if (c == 0) { //RED rloc += (rawData[yv][xv]); rnbrs++; @@ -7880,7 +6112,7 @@ void RawImageSource::inverse33 (const double (*rgb_cam)[3], double (*cam_rgb)[3] { double nom = (rgb_cam[0][2] * rgb_cam[1][1] * rgb_cam[2][0] - rgb_cam[0][1] * rgb_cam[1][2] * rgb_cam[2][0] - rgb_cam[0][2] * rgb_cam[1][0] * rgb_cam[2][1] + rgb_cam[0][0] * rgb_cam[1][2] * rgb_cam[2][1] + - rgb_cam[0][1] * rgb_cam[1][0] * rgb_cam[2][2] - rgb_cam[0][0] * rgb_cam[1][1] * rgb_cam[2][2] ); + rgb_cam[0][1] * rgb_cam[1][0] * rgb_cam[2][2] - rgb_cam[0][0] * rgb_cam[1][1] * rgb_cam[2][2]); cam_rgb[0][0] = (rgb_cam[1][2] * rgb_cam[2][1] - rgb_cam[1][1] * rgb_cam[2][2]) / nom; cam_rgb[0][1] = -(rgb_cam[0][2] * rgb_cam[2][1] - rgb_cam[0][1] * rgb_cam[2][2]) / nom; cam_rgb[0][2] = (rgb_cam[0][2] * rgb_cam[1][1] - rgb_cam[0][1] * rgb_cam[1][2]) / nom; @@ -7940,7 +6172,7 @@ void RawImageSource::init () void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int &B) { - if(d1x) { // Nikon D1x has special sensor. We just skip it + if (d1x) { // Nikon D1x has special sensor. We just skip it R = G = B = 0; return; } @@ -7963,9 +6195,9 @@ void RawImageSource::getRawValues(int x, int y, int rotate, int &R, int &G, int ynew = LIM(ynew, 0, H - 1); int c = ri->getSensorType() == ST_FUJI_XTRANS ? ri->XTRANSFC(ynew,xnew) : ri->FC(ynew,xnew); int val = round(rawData[ynew][xnew] / scale_mul[c]); - if(c == 0) { + if (c == 0) { R = val; G = 0; B = 0; - } else if(c == 2) { + } else if (c == 2) { R = 0; G = 0; B = val; } else { R = 0; G = val; B = 0; From 96ab9863ddfcb85bdd3f44e977971694fe9309b4 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 10:37:32 +0100 Subject: [PATCH 324/453] fix segfault in ItcWB. #5676 --- rtengine/rawimagesource.cc | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index fdc122569..daba0be2a 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4753,12 +4753,12 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double }; const int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point constexpr int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values - array2D Tx(Nc, N_t); - array2D Ty(Nc, N_t); - array2D Tz(Nc, N_t); - array2D Ta(Nc, N_t); - array2D Tb(Nc, N_t); - array2D TL(Nc, N_t); + array2D Tx(N_t, Nc); + array2D Ty(N_t, Nc); + array2D Tz(N_t, Nc); + array2D Ta(N_t, Nc); + array2D Tb(N_t, Nc); + array2D TL(N_t, Nc); double TX[Nc]; double TY[Nc]; double TZ[Nc]; @@ -4865,12 +4865,10 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double const int deltarepref = settings->itcwb_delta; - StopWatch Stop1("Loop 1"); for (int nn = 0, drep = -deltarepref; nn <= 2; ++nn, drep += deltarepref) { //three loop to refine color if temp camera is probably not very good const int rep = rtengine::LIM(repref + drep, 0, N_t); - StopWatch Stop2("Loop 2"); //initialize calculation of xy current for tempref #ifdef _OPENMP #pragma omp parallel for @@ -4884,7 +4882,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Color::rgbxyY(RR, GG, BB, xc[yy][xx], yc[yy][xx], Yc[yy][xx], wp); } } - Stop2.stop(); //histogram xy depend of temp...but in most cases D45 ..D65.. //calculate for this image the mean values for each family of color, near histogram x y (number) //xy vary from x 0..0.77 y 0..0.82 @@ -4896,7 +4893,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy); } - Stop1.stop(); //calculate x y Y const int sizcurrref = siza;//choice of number of correlate colors in image From aa389dbcae57d5245912cef11a5166c86e29c5fd Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 29 Feb 2020 12:51:17 +0100 Subject: [PATCH 325/453] Ciecam02 fixed bad temp and tint cat02preset --- rtengine/improccoordinator.cc | 5 +++++ rtengine/rtengine.h | 2 ++ rtgui/colorappearance.cc | 16 ++++++++++++++++ rtgui/colorappearance.h | 1 + 4 files changed, 24 insertions(+) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index fc3b29b9f..1f3c91922 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1159,6 +1159,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (params->colorappearance.autoybscen && acListener && params->colorappearance.enabled && !params->colorappearance.presetcat02) { acListener->ybCamChanged((int) yb); //real value Yb scene } + + if (params->colorappearance.enabled && params->colorappearance.presetcat02) { + acListener->wbCamChanged(params->wb.temperature, params->wb.green); //real temp and tint + } + } else { // CIECAM is disabled, we free up its image buffer to save some space if (ncie) { diff --git a/rtengine/rtengine.h b/rtengine/rtengine.h index 2d98c4ac2..e6074d50b 100644 --- a/rtengine/rtengine.h +++ b/rtengine/rtengine.h @@ -355,6 +355,8 @@ public : virtual void autoCamChanged(double ccam, double ccamout) = 0; virtual void adapCamChanged(double cadap) = 0; virtual void ybCamChanged(int yb) = 0; + virtual void wbCamChanged(double tem, double tin) = 0; + }; class AutoChromaListener diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index eed1c074b..262045d12 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1631,6 +1631,22 @@ void ColorAppearance::adapCamChanged (double cadap) ); } + +void ColorAppearance::wbCamChanged (double temp, double tin) +{ + + idle_register.add( + [this, temp, tin]() -> bool + { + disableListener(); + tempout->setValue(temp); + greenout->setValue(tin); + enableListener(); + return false; + } + ); +} + void ColorAppearance::ybCamChanged (int ybsc) { if(presetcat02->get_active()){ diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 7379eb9b0..2f060edea 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -63,6 +63,7 @@ public: void autoCamChanged (double ccam, double ccamout) override; bool autoCamComputed_ (); void adapCamChanged (double cadap) override; + void wbCamChanged(double tem, double tin) override; bool adapCamComputed_ (); void ybCamChanged (int yb) override; bool ybCamComputed_ (); From be5e447f53b3b0614552d8d0e618d9bc7435845d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 13:16:42 +0100 Subject: [PATCH 326/453] Itcwb : cleanup and speedup, #5676 --- rtengine/colortemp.cc | 252 ++++--------------------------------- rtengine/rawimagesource.cc | 174 ++++++++----------------- rtgui/colorappearance.cc | 1 - 3 files changed, 79 insertions(+), 348 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 0edd7aeb2..75efa7979 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -3210,8 +3210,8 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, //calculate spectral data for blackbody at temp! double ColorTemp::blackbody_spect(double wavelength, double temperature) { - double wlm = wavelength * 1e-9; /* Wavelength in meters */ - return (3.7417715247e-16 / pow(wlm, 5)) / //3.7417..= c1 = 2*Pi*h*c2 where h=Planck constant, c=velocity of light + const double wlm = wavelength * 1e-9; /* Wavelength in meters */ + return (3.7417715247e-16 / (wlm * rtengine::pow4(wlm))) / //3.7417..= c1 = 2*Pi*h*c2 where h=Planck constant, c=velocity of light (xexp(1.438786e-2 / (wlm * temperature)) - 1.0); //1.4387..= c2 = h*c/k where k=Boltzmann constant } @@ -3337,62 +3337,38 @@ void ColorTemp::spectrum_to_color_xyz_preset(const double* spec_color, const dou void ColorTemp::spectrum_to_color_xyz_daylight(const double* spec_color, double _m1, double _m2, double &xx, double &yy, double &zz) { int i; - double lambda, X = 0, Y = 0, Z = 0, Yo = 0; + double lambda, X = 0, Y = 0, Z = 0; for (i = 0, lambda = 350; lambda < 830.1; i++, lambda += 5) { - - double Me; - double Mc; - - Me = get_spectral_color(lambda, spec_color); - Mc = daylight_spect(lambda, _m1, _m2); + const double Me = spec_color[i]; + const double Mc = daylight_spect(lambda, _m1, _m2); X += Mc * cie_colour_match_jd[i][0] * Me; Y += Mc * cie_colour_match_jd[i][1] * Me; Z += Mc * cie_colour_match_jd[i][2] * Me; } - for (i = 0, lambda = 350; lambda < 830.1; i++, lambda += 5) { - - double Ms; - - Ms = daylight_spect(lambda, _m1, _m2); - Yo += cie_colour_match_jd[i][1] * Ms; - } - - xx = X / Yo; - yy = Y / Yo; - zz = Z / Yo; + xx = X / Y; + yy = 1.0; + zz = Z / Y; } //calculate XYZ from spectrum data (color) and illuminant : J.Desmis december 2011 void ColorTemp::spectrum_to_color_xyz_blackbody(const double* spec_color, double _temp, double &xx, double &yy, double &zz) { int i; - double lambda, X = 0, Y = 0, Z = 0, Yo = 0; + double lambda, X = 0, Y = 0, Z = 0; for (i = 0, lambda = 350; lambda < 830.1; i++, lambda += 5) { - - double Me; - double Mc; - - Me = get_spectral_color(lambda, spec_color); - Mc = blackbody_spect(lambda, _temp); + const double Me = spec_color[i]; + const double Mc = blackbody_spect(lambda, _temp); X += Mc * cie_colour_match_jd[i][0] * Me; Y += Mc * cie_colour_match_jd[i][1] * Me; Z += Mc * cie_colour_match_jd[i][2] * Me; } - for (i = 0, lambda = 350; lambda < 830.1; i++, lambda += 5) { - - double Ms; - - Ms = blackbody_spect(lambda, _temp); - Yo += cie_colour_match_jd[i][1] * Ms; - } - - xx = X / Yo; - yy = Y / Yo; - zz = Z / Yo; + xx = X / Y; + yy = 1.0; + zz = Z / Y; } double ColorTemp::daylight_spect(double wavelength, double m1, double m2) @@ -3483,7 +3459,7 @@ void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, floa double ZZ; } WbTxyz; //probbaly can be "passed" with rawimagesource.cc but I don't know how to do. - WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after + constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after {2001., 1.273842, 0.145295}, {2101., 1.244008, 0.167533}, {2201., 1.217338, 0.190697}, @@ -3612,68 +3588,22 @@ void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, floa double Zref; } XYZref; XYZref Refxyz[N_c + 1]; - typedef struct XYZrefcat02 { - double Xrefcat; - double Yrefcat; - double Zrefcat; - } XYZrefcat02; - XYZrefcat02 Refxyzcat02[N_c + 1]; for (int i = 0; i < N_c; i++) { Refxyz[i].Xref = 0.f; Refxyz[i].Yref = 0.f; Refxyz[i].Zref = 0.f; - Refxyzcat02[i].Xrefcat = 0.f; - Refxyzcat02[i].Yrefcat = 0.f; - Refxyzcat02[i].Zrefcat = 0.f; } - - struct chrom { - float chroab; - float chroa; - float chrob; - int nn; - float L; - bool operator()(const chrom& lchro, const chrom& rchro) - { - return lchro.chroab < rchro.chroab; - } - - } ; - - // chrom wbchro[N_c + 1]; - double tempw = 5000.; if (separated) { tempw = Txyz[repref].Tem; - // tempw = 5004.; if (tempw <= INITIALBLACKBODY) { - // float aa = 0.f; - // float bb = 0.f; - for (int i = 0; i < N_c; i++) { spectrum_to_color_xyz_blackbody(spec_colorforxcyc[i], tempw, TX[i], TY[i], TZ[i]); - /* float XX = TX[i] * 65535.f; - float YY = TY[i] * 65535.f; - float ZZ = TZ[i] * 65535.f; - float L, a, b; - Color::XYZ2Lab(XX, YY, ZZ, L, a, b);//only to see Lab values in console - printf("N=%i L=%f a=%f b=%f\n", i, L / 327.68f, a / 327.68f, b / 327.68f); - aa += (a / 327.68f); - bb += (b / 327.68f); - */ } - - /* - aa /= N_c; - bb /= N_c; - printf("aa=%f bb=%f\n", aa, bb); - */ - // } - } else { double m11, m22, x_DD, y_DD, interm2; @@ -3689,97 +3619,21 @@ void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, floa interm2 = (0.0241 + 0.2562 * x_DD - 0.734 * y_DD); m11 = (-1.3515 - 1.7703 * x_DD + 5.9114 * y_DD) / interm2; m22 = (0.03 - 31.4424 * x_DD + 30.0717 * y_DD) / interm2; - // float aa = 0.f; - // float bb = 0.f; for (int i = 0; i < N_c; i++) { spectrum_to_color_xyz_daylight(spec_colorforxcyc[i], m11, m22, TX[i], TY[i], TZ[i]); - -/* float XX = TX[i] * 65535.f; - float YY = TY[i] * 65535.f; - float ZZ = TZ[i] * 65535.f; - float L, a, b; - Color::XYZ2Lab(XX, YY, ZZ, L, a, b);//only to see Lab values in console - // printf("N=%i L=%f a=%f b=%f\n", i, L / 327.68f, a / 327.6 8f, b / 327.68f); - aa += (a / 327.68f); - bb += (b / 327.68f); - wbchro[i].chroab = (sqrt(SQR(a) + SQR(b))) / 327.68f; - wbchro[i].chroa = a / 327.68f; - wbchro[i].chrob = b / 327.68f; - wbchro[i].nn = i; -*/ - - } -/* - std::sort(wbchro, wbchro + N_c + 1, wbchro[0]); - float ab5 = 0.f; - int n5 = 0; - float ab15 = 0.f; - int n15 = 0; - float ab30 = 0.f; - int n30 = 0; - float ab50 = 0.f; - int n50 = 0; - float ab70 = 0.f; - int n70 = 0; - float ab120 = 0.f; - int n120 = 0; - - for (int i = 0; i < N_c; i++) { - if (wbchro[i].chroab < 5.f) { - ab5 += (wbchro[i].chroa + wbchro[i].chrob); - n5++; - } else if (wbchro[i].chroab < 15.f) { - ab15 += (wbchro[i].chroa + wbchro[i].chrob); - n15++; - } else if (wbchro[i].chroab < 30.f) { - ab30 += (wbchro[i].chroa + wbchro[i].chrob); - n30++; - } else if (wbchro[i].chroab < 50.f) { - ab50 += (wbchro[i].chroa + wbchro[i].chrob); - n50++; - } else if (wbchro[i].chroab < 70.f) { - ab70 += (wbchro[i].chroa + wbchro[i].chrob); - n70++; - } else if (wbchro[i].chroab < 120.f) { - ab120 += (wbchro[i].chroa + wbchro[i].chrob); - n120++; - } - - printf("N=%i nn=%i chr=%f cha=%f chb=%f\n", i, wbchro[i].nn, wbchro[i].chroab, wbchro[i].chroa, wbchro[i].chrob); - } - - printf("ab5=%f n5=%i\n", ab5 / n5, n5); - printf("ab15=%f n15=%i\n", ab15 / n15, n15); - printf("ab30=%f n30=%i\n", ab30 / n30, n30); - printf("ab50=%f n50=%i\n", ab50 / n50, n50); - printf("ab70=%f n70=%i\n", ab70 / n70, n70); - printf("ab120=%f n120=%i\n", ab120 / n120, n120); - aa /= N_c; - bb /= N_c; - printf("aa=%f bb=%f\n", aa, bb); - //very low 15 --, 16 -+, 17 + -, 18 +-, 20 ++, 22 -+, 73 ++, 98 ++, 99 -+, 101 -+, 129 ++, 130 -+, 131 --, - //low 8 +-, 9 --, 10 --, 12 --, 19 -+, 21 -+, 24 -+, 25 ++, 27 ++, 30 ++, 33++, 34 ++, 36 ++, 37++,38 +-, - */ } - } - - if (!separated) { - // std::string wbcat02Method = wbpar.wbcat02Method; - std::string wbcat02Method = "none"; - + } else { for (int tt = 0; tt < N_t; tt++) { tempw = Txyz[tt].Tem; if (tempw <= INITIALBLACKBODY) { - for (int i = 0; i < N_c; i++) { spectrum_to_color_xyz_blackbody(spec_colorforxcyc[i], tempw, Refxyz[i].Xref, Refxyz[i].Yref, Refxyz[i].Zref); } - } else { - double m11, m22, x_DD, y_DD, interm2; + double x_DD; if (tempw <= 7000) { x_DD = -4.6070e9 / (tempw * tempw * tempw) + 2.9678e6 / (tempw * tempw) + 0.09911e3 / tempw + 0.244063; @@ -3787,80 +3641,22 @@ void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, floa x_DD = -2.0064e9 / (tempw * tempw * tempw) + 1.9018e6 / (tempw * tempw) + 0.24748e3 / tempw + 0.237040; } - y_DD = -3.0 * x_DD * x_DD + 2.87 * x_DD - 0.275; + const double y_DD = -3.0 * x_DD * x_DD + 2.87 * x_DD - 0.275; //calculate D -daylight in function of s0, s1, s2 and temp ==> x_D y_D //S(lamda)=So(lambda)+m1*s1(lambda)+m2*s2(lambda) - interm2 = (0.0241 + 0.2562 * x_DD - 0.734 * y_DD); - m11 = (-1.3515 - 1.7703 * x_DD + 5.9114 * y_DD) / interm2; - m22 = (0.03 - 31.4424 * x_DD + 30.0717 * y_DD) / interm2; + const double interm2 = (0.0241 + 0.2562 * x_DD - 0.734 * y_DD); + const double m11 = (-1.3515 - 1.7703 * x_DD + 5.9114 * y_DD) / interm2; + const double m22 = (0.03 - 31.4424 * x_DD + 30.0717 * y_DD) / interm2; for (int i = 0; i < N_c; i++) { spectrum_to_color_xyz_daylight(spec_colorforxcyc[i], m11, m22, Refxyz[i].Xref, Refxyz[i].Yref, Refxyz[i].Zref); } } -//CAT02 - - float CAM02BB00 = 1.0, CAM02BB01 = 1.0, CAM02BB02 = 1.0, CAM02BB10 = 1.0, CAM02BB11 = 1.0, CAM02BB12 = 1.0, CAM02BB20 = 1.0, CAM02BB21 = 1.0, CAM02BB22 = 1.0; //for CIECAT02 - float Xwb = Txyz[tt].XX; - float Ywb = 1.; - float Zwb = Txyz[tt].ZZ; - - if (wbcat02Method == "icam") {//not used - icieCAT02float(Xwb, Ywb, Zwb, CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22, 1.0); - } - - if (wbcat02Method == "cam") { - - cieCAT02float(Xwb, Ywb, Zwb, CAM02BB00, CAM02BB01, CAM02BB02, CAM02BB10, CAM02BB11, CAM02BB12, CAM02BB20, CAM02BB21, CAM02BB22, 1.0); - } - - if (wbcat02Method == "none") { - - for (int i = 0; i < N_c; i++) { - Refxyzcat02[i].Xrefcat = CAM02BB00 * Refxyz[i].Xref + CAM02BB01 * Refxyz[i].Yref + CAM02BB02 * Refxyz[i].Zref ; - Refxyzcat02[i].Yrefcat = CAM02BB10 * Refxyz[i].Xref + CAM02BB11 * Refxyz[i].Yref + CAM02BB12 * Refxyz[i].Zref ; - Refxyzcat02[i].Zrefcat = CAM02BB20 * Refxyz[i].Xref + CAM02BB21 * Refxyz[i].Yref + CAM02BB22 * Refxyz[i].Zref; - } - } - -//end CAT02 - for (int i = 0; i < N_c; i++) { - /* float X = 65535.f * Refxyzcat02[i].Xrefcat; - float Y = 65535.f * Refxyzcat02[i].Yrefcat; - float Z = 65535.f * Refxyzcat02[i].Zrefcat; - float L, a, b; - Color::XYZ2Lab(X, Y, Z, L, a, b); - - double som = (Refxyzcat02[i].Xrefcat + Refxyzcat02[i].Yrefcat + Refxyzcat02[i].Zrefcat); - L /= 327.68f; - a /= 327.68f; - b /= 327.68f; - Ta[i][tt] = a; - Tb[i][tt] = b; - TL[i][tt] = L; - TX[i][tt] = X; - TY[i][tt] = Y; - TZ[i][tt] = Z; - */ - //som = 1.; -// Tx[i][tt] = (float) Refxyz[i].Xref; -// Ty[i][tt] = (float) Refxyz[i].Yref; -// Tz[i][tt] = (float) Refxyz[i].Zref; - -// if (wbpar.wbcat02Method == "none") { - if (wbcat02Method == "none") { - - Tx[i][tt] = (float) Refxyz[i].Xref; - Ty[i][tt] = (float) Refxyz[i].Yref; - Tz[i][tt] = (float) Refxyz[i].Zref; - } else { - Tx[i][tt] = (float) Refxyzcat02[i].Xrefcat; - Ty[i][tt] = (float) Refxyzcat02[i].Yrefcat; - Tz[i][tt] = (float) Refxyzcat02[i].Zrefcat; - } - + Tx[i][tt] = Refxyz[i].Xref; + Ty[i][tt] = Refxyz[i].Yref; + Tz[i][tt] = Refxyz[i].Zref; } } } diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index daba0be2a..9f7b9a850 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4292,54 +4292,49 @@ static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const ar } } -void static studentXY(const array2D & YYcurr, const array2D & reffYY, int sizcurr, int Nc, int tt, float & student) +float static studentXY(const array2D & YYcurr, const array2D & reffYY, int sizcurr, int Nc, int tt) { //calculate Student coeff YY float somcurrY = 0.f; float somreffY = 0.f; float somcurr2Y = 0.f; float somreff2Y = 0.f; - float somsqueccurrY = 0.f; - float somsquecreffY = 0.f; - int sizestucurrY = sizcurr; - int sizestureffY = Nc; - for (int i = 0; i < sizestucurrY; i++) { - somcurrY += 100.f * YYcurr[i][tt]; + for (int i = 0; i < sizcurr; i++) { + somcurrY += YYcurr[i][tt]; //sum observations first group } + somcurrY *= 100.f; - for (int i = 0; i < sizestureffY; i++) { - somreffY += 100.f * reffYY[i][tt]; + for (int i = 0; i < Nc; i++) { + somreffY += reffYY[i][tt]; //sum observations second group - } + somreffY *= 100.f; - - for (int i = 0; i < sizestucurrY; i++) { - somcurr2Y += SQR(100.f * YYcurr[i][tt]); + for (int i = 0; i < sizcurr; i++) { + somcurr2Y += SQR(YYcurr[i][tt]); //sum sqr observations first group - } + somreffY *= SQR(100.f); - for (int i = 0; i < sizestureffY; i++) { - somreff2Y += SQR(100.f * reffYY[i][tt]); + for (int i = 0; i < Nc; i++) { + somreff2Y += SQR(reffYY[i][tt]); //sum sqr observations second group - } + somreff2Y *= SQR(100.f); - somsqueccurrY = somcurr2Y - (SQR(somcurrY)) / sizestucurrY; + const float somsqueccurrY = somcurr2Y - (SQR(somcurrY)) / sizcurr; //sum sqr differences first - somsquecreffY = somreff2Y - (SQR(somreffY)) / sizestureffY; + const float somsquecreffY = somreff2Y - (SQR(somreffY)) / Nc; //sum sqr differences second - float diviY = std::sqrt(((somsqueccurrY + somsquecreffY) * (1.f / (float)sizestucurrY + 1.f / (float)sizestureffY)) / (sizestucurrY + sizestureffY - 2)); + const float diviY = std::sqrt(((somsqueccurrY + somsquecreffY) * (1.f / sizcurr + 1.f / Nc)) / (sizcurr + Nc - 2)); //divisor student - float numerY = ((float)somcurrY / (float)sizestucurrY) - ((float)somreffY / (float)sizestureffY); + const float numerY = somcurrY / sizcurr - somreffY / Nc; //numerator student -// printf("num=%f divY=%f \n", numerY, diviY); - student = numerY / diviY ; + return numerY / diviY ; //student coeeficient } @@ -4404,9 +4399,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good */ - // BENCHFUN BENCHFUN - TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix("sRGB"); const float wp[3][3] = { @@ -4423,49 +4416,19 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {wiprof[2][0], wiprof[2][1], wiprof[2][2]} }; - array2D xc; - array2D yc; - array2D Yc; + const int bfwitc = bfw / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfhitc = bfh / 10 + 1; - array2D histcurr; - array2D histcurrref; - - array2D xxyycurr; - array2D xxyycurr_reduc; - array2D xx_curref; - array2D yy_curref; - array2D YY_curref; - array2D xx_curref_reduc; - array2D yy_curref_reduc; - array2D R_curref_reduc; - array2D G_curref_reduc; - array2D B_curref_reduc; - - array2D reff_spect_xxyy; - array2D reff_spect_xxyy_prov; - array2D YYcurr; - array2D YY_curref_reduc; - array2D YYcurr_reduc; - // array2D reffYY; - // array2D reffYY_prov; - - array2D reff_spect_yy_camera; - array2D reff_spect_xx_camera; - - - int bfwitc = bfw / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 - int bfhitc = bfh / 10 + 1; - - xc(bfwitc, bfhitc); - yc(bfwitc, bfhitc); - Yc(bfwitc, bfhitc); + array2D xc(bfwitc, bfhitc); + array2D yc(bfwitc, bfhitc); + array2D Yc(bfwitc, bfhitc); typedef struct WbGreen { double green; float snedecor;//1. actually but put in case of confiance interval } WbGreen; - constexpr WbGreen gree[118] = {//symetric coefficient between 0.717 and 1.40 + constexpr WbGreen gree[118] = {//symmetric coefficient between 0.717 and 1.40 {0.400, 1.f}, {0.500, 1.f}, {0.550, 1.f}, @@ -4585,7 +4548,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {3.800, 1.f}, {4.000, 1.f} }; - int N_g = sizeof(gree) / sizeof(gree[0]); //number of green + const int N_g = sizeof(gree) / sizeof(gree[0]); //number of green typedef struct RangeGreen { int begin; @@ -4593,37 +4556,20 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int ng; } RangeGreen; - RangeGreen Rangestandard; - Rangestandard.begin = 8; - Rangestandard.end = 70; - Rangestandard.ng = 62; - - RangeGreen Rangeextand; - Rangeextand.begin = 4; - Rangeextand.end = 77; - Rangeextand.ng = 73; - - RangeGreen Rangemax; - Rangemax.begin = 0; - Rangemax.end = N_g; - Rangemax.ng = N_g; + constexpr RangeGreen Rangestandard = {8, 70, 62}; + constexpr RangeGreen Rangeextand = {4, 77, 73}; + const RangeGreen Rangemax = {0, N_g, N_g}; RangeGreen Rangegreenused; if (settings->itcwb_greenrange == 0) { Rangegreenused = Rangestandard; - } - - else if (settings->itcwb_greenrange == 1) { + } else if (settings->itcwb_greenrange == 1) { Rangegreenused = Rangeextand; } else { Rangegreenused = Rangemax; } - // printf("rangemin=%i rangmax=%i\n", Rangegreenused.begin, Rangegreenused.end); - - - typedef struct WbTxyz { double Tem; double XX; @@ -4785,8 +4731,8 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //calculate R G B multiplier in function illuminant and temperature const bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) - || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); - for (int tt = 0; tt < N_t; tt++) { + || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); + for (int tt = 0; tt < N_t; ++tt) { double r, g, b; float rm, gm, bm; ColorTemp WBiter = ColorTemp(Txyz[tt].Tem, greenitc, 1.f, "Custom"); @@ -4845,11 +4791,11 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double bool separated = true; int w = -1; - //printf("greenrefraw=%f\n", greenref); - reff_spect_xxyy(N_t, 2 * Nc + 2); - reff_spect_xxyy_prov(N_t, 2 * Nc + 2); - reff_spect_yy_camera(N_t, 2 * Nc + 2); - reff_spect_xx_camera(N_t, 2 * Nc + 2); + + array2D reff_spect_xxyy(N_t, 2 * Nc + 2); + array2D reff_spect_xxyy_prov(N_t, 2 * Nc + 2); + array2D reff_spect_yy_camera(N_t, 2 * Nc + 2); + array2D reff_spect_xx_camera(N_t, 2 * Nc + 2); //here we select the good spectral color inside the 113 values //call tempxy to calculate for 114 color references Temp and XYZ with cat02 @@ -4896,19 +4842,18 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //calculate x y Y const int sizcurrref = siza;//choice of number of correlate colors in image - histcurrref(N_t, sizcurrref); - xx_curref(N_t, sizcurrref); - yy_curref(N_t, sizcurrref); - YY_curref(N_t, sizcurrref); - xx_curref_reduc(N_t, sizcurrref); - yy_curref_reduc(N_t, sizcurrref); - YY_curref_reduc(N_t, sizcurrref); - R_curref_reduc(N_t, sizcurrref); - G_curref_reduc(N_t, sizcurrref); - B_curref_reduc(N_t, sizcurrref); + array2D histcurrref(N_t, sizcurrref); + array2D xx_curref(N_t, sizcurrref); + array2D yy_curref(N_t, sizcurrref); + array2D YY_curref(N_t, sizcurrref); + array2D xx_curref_reduc(N_t, sizcurrref); + array2D yy_curref_reduc(N_t, sizcurrref); + array2D YY_curref_reduc(N_t, sizcurrref); + array2D R_curref_reduc(N_t, sizcurrref); + array2D G_curref_reduc(N_t, sizcurrref); + array2D B_curref_reduc(N_t, sizcurrref); - - hiss Wbhis [siza]; + hiss Wbhis[siza]; for (int nh = 0; nh < siza; nh++) { Wbhis[nh].histnum = histxy[nh]; @@ -4995,7 +4940,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int i = 0; i < sizcurr2ref; ++i) { //is condition chroxy necessary ? - if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral + if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral w++; xx_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chrox; yy_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chroy; @@ -5045,21 +4990,20 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //end first part - //Now begin real calculations separated = false; ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants //calculate x y Y int sizcurr = siza;//choice of number of correlate colors in image - histcurr(N_t, sizcurr); - xxyycurr(N_t, 2 * sizcurr); - xxyycurr_reduc(N_t, 2 * sizcurr); + array2D histcurr(N_t, sizcurr); + array2D xxyycurr(N_t, 2 * sizcurr); + array2D xxyycurr_reduc(N_t, 2 * sizcurr); float minstud = 100000.f; int goodref = 1; - YYcurr(N_t, sizcurr); - YYcurr_reduc(N_t, sizcurr); + array2D YYcurr(N_t, sizcurr); + array2D YYcurr_reduc(N_t, sizcurr); //calculate x y z for each pixel with multiplier rmm gmm bmm @@ -5089,17 +5033,12 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - float student = 0.f; - - studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kk, tt, student); //for xy - - const float abstud = std::fabs(student); + const float abstud = std::fabs(studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kk, tt)); if (abstud < minstud) { // find the minimum Student minstud = abstud; goodref = tt; } - } if (extra) { @@ -5184,10 +5123,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - float studentgr = 0.f; - - studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kkg, tt, studentgr); //for xy - const float abstudgr = std::fabs(studentgr); + const float abstudgr = std::fabs(studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kkg, tt)); if (abstudgr < minstudgr) { // find the minimum Student minstudgr = abstudgr; diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index eed1c074b..1e7f76b44 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -823,7 +823,6 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) nexttemp = pp->wb.temperature; nextgreen = pp->wb.green; - printf("temp=%f green=%f\n", nexttemp, nextgreen); if (pedited) { degree->setEditedState (pedited->colorappearance.degree ? Edited : UnEdited); degreeout->setEditedState (pedited->colorappearance.degreeout ? Edited : UnEdited); From 8e1bb5ba90bcbdef43073cda8b691111da60a32d Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 14:07:27 +0100 Subject: [PATCH 327/453] Fix broken cppcheck --- rtgui/options.h | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rtgui/options.h b/rtgui/options.h index 0bc421300..b8a71c9cb 100644 --- a/rtgui/options.h +++ b/rtgui/options.h @@ -20,12 +20,15 @@ #include #include +#if defined __has_include #if __has_include() #include #else #include #endif - +#else +#include +#endif #include "../rtengine/settings.h" #include From be765768ffe5a863d33a6ceaf989c3c0485d4114 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 14:19:06 +0100 Subject: [PATCH 328/453] further cleanups --- rtengine/colortemp.cc | 10 ++++------ rtengine/colortemp.h | 2 +- rtengine/rawimagesource.cc | 35 ++++------------------------------- rtengine/rt_math.h | 6 ++++++ 4 files changed, 15 insertions(+), 38 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 75efa7979..ec8641fc0 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -3211,7 +3211,7 @@ void ColorTemp::temp2mul (double temp, double green, double equal, double& rmul, double ColorTemp::blackbody_spect(double wavelength, double temperature) { const double wlm = wavelength * 1e-9; /* Wavelength in meters */ - return (3.7417715247e-16 / (wlm * rtengine::pow4(wlm))) / //3.7417..= c1 = 2*Pi*h*c2 where h=Planck constant, c=velocity of light + return (3.7417715247e-16 / rtengine::pow5(wlm)) / //3.7417..= c1 = 2*Pi*h*c2 where h=Planck constant, c=velocity of light (xexp(1.438786e-2 / (wlm * temperature)) - 1.0); //1.4387..= c2 = h*c/k where k=Boltzmann constant } @@ -3400,7 +3400,7 @@ double ColorTemp::daylight_spect(double wavelength, double m1, double m2) // we can change step for temperature and increase number for T > 7500K if necessary //these values Temp, x, y are references for all calculations and very precise. //copyright J.Desmis august 2017 and june 2018 -void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, float **Tz, float **Ta, float **Tb, float **TL, double *TX, double *TY, double *TZ, const procparams::WBParams & wbpar) +void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float **Tz, float **Ta, float **Tb, float **TL, double *TX, double *TY, double *TZ, const procparams::WBParams & wbpar) { const double* spec_colorforxcyc[] = {//color references JDC468_BluH10_spect, JDC468_BluD6_spect, ColorchechCyaF3_spect, JDC468_BluM5_spect, // 0 3 @@ -3595,10 +3595,8 @@ void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, floa Refxyz[i].Zref = 0.f; } - double tempw = 5000.; - if (separated) { - tempw = Txyz[repref].Tem; + const double tempw = Txyz[repref].Tem; if (tempw <= INITIALBLACKBODY) { for (int i = 0; i < N_c; i++) { @@ -3626,7 +3624,7 @@ void ColorTemp::tempxy(bool separated, int &repref, float **Tx, float **Ty, floa } } else { for (int tt = 0; tt < N_t; tt++) { - tempw = Txyz[tt].Tem; + const double tempw = Txyz[tt].Tem; if (tempw <= INITIALBLACKBODY) { for (int i = 0; i < N_c; i++) { diff --git a/rtengine/colortemp.h b/rtengine/colortemp.h index fd2796552..5feed9d26 100644 --- a/rtengine/colortemp.h +++ b/rtengine/colortemp.h @@ -54,7 +54,7 @@ public: explicit ColorTemp (double e) : temp(-1.), green(-1.), equal (e), method("Custom") {} ColorTemp (double t, double g, double e, const std::string &m); ColorTemp (double mulr, double mulg, double mulb, double e); - static void tempxy(bool separated, int &repref, float **Tx, float **Ty, float **Tz, float **Ta, float **Tb, float **TL, double *TX, double *TY, double *TZ, const procparams::WBParams & wbpar); + static void tempxy(bool separated, int repref, float **Tx, float **Ty, float **Tz, float **Ta, float **Tb, float **TL, double *TX, double *TY, double *TZ, const procparams::WBParams & wbpar); void update (const double rmul, const double gmul, const double bmul, const double equal, const double tempBias=0.0) { diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 9f7b9a850..1cbdf1140 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4553,12 +4553,11 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double typedef struct RangeGreen { int begin; int end; - int ng; } RangeGreen; - constexpr RangeGreen Rangestandard = {8, 70, 62}; - constexpr RangeGreen Rangeextand = {4, 77, 73}; - const RangeGreen Rangemax = {0, N_g, N_g}; + constexpr RangeGreen Rangestandard = {8, 70}; + constexpr RangeGreen Rangeextand = {4, 77}; + const RangeGreen Rangemax = {0, N_g}; RangeGreen Rangegreenused; @@ -5064,8 +5063,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double const int scantempbeg = rtengine::max(goodref - (dgoodref + 1), 1); const int scantempend = rtengine::min(goodref + dgoodref, N_t - 1); - const bool isMono = (ri->getSensorType() == ST_FUJI_XTRANS && raw.xtranssensor.method == RAWParams::XTransSensor::getMethodString(RAWParams::XTransSensor::Method::MONO)) - || (ri->getSensorType() == ST_BAYER && raw.bayersensor.method == RAWParams::BayerSensor::getMethodString(RAWParams::BayerSensor::Method::MONO)); for (int gr = Rangegreenused.begin; gr < Rangegreenused.end; ++gr) { float minstudgr = 100000.f; int goodrefgr = 1; @@ -5185,7 +5182,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } avg_rm = 10000.f * rmm[goodref]; - avg_gm = 10000.* gmm[goodref]; + avg_gm = 10000.f * gmm[goodref]; avg_bm = 10000.f * bmm[goodref]; if (!extra) { @@ -5206,7 +5203,6 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D if (greenref > 0.77 && greenref < 1.3) { greenitc = greenref; - extra = false; if (settings->itcwb_forceextra) { extra = true; @@ -5222,7 +5218,6 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D } } - void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) { //used by auto WB local to calculate red, green, blue in local region @@ -5304,28 +5299,6 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in blueloc[i][j] = Color::gammatab_srgb[blueloc[i][j]]; } } - - if (cat02) {//CAT02 - /* - //not good threatment, I must wait merge branch cat02wb - for (int i = 0; i < bfh; i++) - for (int j = 0; j < bfw; j++) { - float X = 0.f, Y = 0.f, Z = 0.f; - Color::rgbxyz(redloc[i][j], greenloc[i][j], blueloc[i][j], X, Y, Z, wp); - double temp; - double Xr = X / 65535.; - double Yr = Y / 65535.; - double Zr = Z / 65535.; - - Ciecam02::xyz_to_cat02float (redloc[i][j], greenloc[i][j], blueloc[i][j], Xr, Yr, Zr, 1); - redloc[i][j] *= 65535.f; - greenloc[i][j] *= 65535.f; - blueloc[i][j] *= 65535.f; - //to do ciecam adaptation - } - */ - } - } void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref, double & tempitc, double & greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double & rm, double & gm, double & bm, const WBParams & wbpar, const ColorManagementParams & cmp, const RAWParams & raw) diff --git a/rtengine/rt_math.h b/rtengine/rt_math.h index 9342f5430..6d4799254 100644 --- a/rtengine/rt_math.h +++ b/rtengine/rt_math.h @@ -44,6 +44,12 @@ constexpr T pow4(T x) return SQR(SQR(x)); } +template +constexpr T pow5(T x) +{ + return x * pow4(x); +} + template constexpr const T& min(const T& a) { From 6029b29d89ba7e4bafc2d2a7ed2ff0bbd39efbac Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 14:59:26 +0100 Subject: [PATCH 329/453] fix copy/paste bug --- rtengine/rawimagesource.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 1cbdf1140..bf88b2955 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4316,7 +4316,7 @@ float static studentXY(const array2D & YYcurr, const array2D & ref somcurr2Y += SQR(YYcurr[i][tt]); //sum sqr observations first group } - somreffY *= SQR(100.f); + somcurr2Y *= SQR(100.f); for (int i = 0; i < Nc; i++) { somreff2Y += SQR(reffYY[i][tt]); @@ -4324,9 +4324,9 @@ float static studentXY(const array2D & YYcurr, const array2D & ref } somreff2Y *= SQR(100.f); - const float somsqueccurrY = somcurr2Y - (SQR(somcurrY)) / sizcurr; + const float somsqueccurrY = somcurr2Y - SQR(somcurrY) / sizcurr; //sum sqr differences first - const float somsquecreffY = somreff2Y - (SQR(somreffY)) / Nc; + const float somsquecreffY = somreff2Y - SQR(somreffY) / Nc; //sum sqr differences second const float diviY = std::sqrt(((somsqueccurrY + somsquecreffY) * (1.f / sizcurr + 1.f / Nc)) / (sizcurr + Nc - 2)); From 0a23e85868e19db1e4cbb5a6db4a00416c5d07e9 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 19:44:20 +0100 Subject: [PATCH 330/453] Further cleanups --- rtengine/rawimagesource.cc | 56 ++++++++++++++++++-------------------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index bf88b2955..55e31eeda 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3896,7 +3896,6 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, LUTf &xxx, LUTf &yyy, LUTf &YYY, LUTu &histxy) - { #ifdef _OPENMP #pragma omp parallel @@ -4410,19 +4409,15 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double TMatrix wiprof = ICCStore::getInstance()->workingSpaceInverseMatrix("sRGB"); //inverse matrix user select - double wip[3][3] = { - {wiprof[0][0], wiprof[0][1], wiprof[0][2]}, - {wiprof[1][0], wiprof[1][1], wiprof[1][2]}, - {wiprof[2][0], wiprof[2][1], wiprof[2][2]} + const float wip[3][3] = { + {static_cast(wiprof[0][0]), static_cast(wiprof[0][1]), static_cast(wiprof[0][2])}, + {static_cast(wiprof[1][0]), static_cast(wiprof[1][1]), static_cast(wiprof[1][2])}, + {static_cast(wiprof[2][0]), static_cast(wiprof[2][1]), static_cast(wiprof[2][2])} }; const int bfwitc = bfw / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 const int bfhitc = bfh / 10 + 1; - array2D xc(bfwitc, bfhitc); - array2D yc(bfwitc, bfhitc); - array2D Yc(bfwitc, bfhitc); - typedef struct WbGreen { double green; float snedecor;//1. actually but put in case of confiance interval @@ -4791,8 +4786,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double bool separated = true; int w = -1; - array2D reff_spect_xxyy(N_t, 2 * Nc + 2); - array2D reff_spect_xxyy_prov(N_t, 2 * Nc + 2); array2D reff_spect_yy_camera(N_t, 2 * Nc + 2); array2D reff_spect_xx_camera(N_t, 2 * Nc + 2); @@ -4808,6 +4801,10 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double reff_spect_yy_camera[j][repref] = TY[j] / (TX[j] + TY[j] + TZ[j]); // y from xyY } + array2D xc(bfwitc, bfhitc); + array2D yc(bfwitc, bfhitc); + array2D Yc(bfwitc, bfhitc); + const int deltarepref = settings->itcwb_delta; for (int nn = 0, drep = -deltarepref; nn <= 2; ++nn, drep += deltarepref) { @@ -4839,6 +4836,10 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy); } + // free some memory + xc.free(); + yc.free(); + Yc.free(); //calculate x y Y const int sizcurrref = siza;//choice of number of correlate colors in image array2D histcurrref(N_t, sizcurrref); @@ -4848,9 +4849,6 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double array2D xx_curref_reduc(N_t, sizcurrref); array2D yy_curref_reduc(N_t, sizcurrref); array2D YY_curref_reduc(N_t, sizcurrref); - array2D R_curref_reduc(N_t, sizcurrref); - array2D G_curref_reduc(N_t, sizcurrref); - array2D B_curref_reduc(N_t, sizcurrref); hiss Wbhis[siza]; @@ -4900,15 +4898,13 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double const int sizcu30 = sizcurrref - n30; const int sizcu4 = rtengine::min(sizcu30, 55); - chrom wbchro[sizcu4]; - const double swpr = (Txyz[repref].XX + Txyz[repref].ZZ + 1.); - const double xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes - const double ywpr = 1. / swpr; - + const float swpr = Txyz[repref].XX + Txyz[repref].ZZ + 1.f; + const float xwpr = Txyz[repref].XX / swpr;//white point for tt in xy coordiantes + const float ywpr = 1.f / swpr; for (int i = 0; i < sizcu4; ++i) { //take the max values - histcurrref[i][repref] = (float) Wbhis[siza - (i + 1)].histnum; + histcurrref[i][repref] = Wbhis[siza - (i + 1)].histnum; xx_curref[i][repref] = xxx[Wbhis[siza - (i + 1)].index] / histcurrref[i][repref]; yy_curref[i][repref] = yyy[Wbhis[siza - (i + 1)].index] / histcurrref[i][repref]; YY_curref[i][repref] = YYY[Wbhis[siza - (i + 1)].index] / histcurrref[i][repref]; @@ -4939,7 +4935,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int i = 0; i < sizcurr2ref; ++i) { //is condition chroxy necessary ? - if (((wbchro[sizcu4 - (i + 1)].chrox > 0.1f) && (wbchro[sizcu4 - (i + 1)].chroy > 0.1f)) && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral + if (wbchro[sizcu4 - (i + 1)].chrox > 0.1f && wbchro[sizcu4 - (i + 1)].chroy > 0.1f && wbchro[sizcu4 - (i + 1)].chroxy > 0.0f) { //suppress value too far from reference spectral w++; xx_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chrox; yy_curref_reduc[w][repref] = wbchro[sizcu4 - (i + 1)].chroy; @@ -4961,7 +4957,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int j = 0; j < Nc ; j++) { if (!good_spectral[j]) { - const float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); + const float deltaE = SQR(xx_curref_reduc[i][repref] - reff_spect_xx_camera[j][repref]) + SQR(yy_curref_reduc[i][repref] - reff_spect_yy_camera[j][repref]); if (deltaE < mindeltaE) { mindeltaE = deltaE; @@ -4974,7 +4970,12 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } -//reconvert to RGB for "reduction" + // reuse some buffers + array2D& R_curref_reduc = xx_curref_reduc; + array2D& G_curref_reduc = yy_curref_reduc; + array2D& B_curref_reduc = YY_curref_reduc; + + //reconvert to RGB for "reduction" for (int i = 0; i < w; i++) { const float X = 65535.f * xx_curref_reduc[i][repref] * YY_curref_reduc[i][repref] / yy_curref_reduc[i][repref]; const float Y = 65535.f * YY_curref_reduc[i][repref]; @@ -4992,18 +4993,15 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //Now begin real calculations separated = false; ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants - //calculate x y Y int sizcurr = siza;//choice of number of correlate colors in image - array2D histcurr(N_t, sizcurr); - array2D xxyycurr(N_t, 2 * sizcurr); array2D xxyycurr_reduc(N_t, 2 * sizcurr); + array2D reff_spect_xxyy(N_t, 2 * Nc + 2); + array2D reff_spect_xxyy_prov(N_t, 2 * Nc + 2); + float minstud = 100000.f; int goodref = 1; - array2D YYcurr(N_t, sizcurr); - array2D YYcurr_reduc(N_t, sizcurr); - //calculate x y z for each pixel with multiplier rmm gmm bmm for (int tt = 0; tt < N_t; ++tt) {//N_t From cee41b97861923e1a2299b2d9a10ac90a0bd28a8 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sat, 29 Feb 2020 21:04:09 +0100 Subject: [PATCH 331/453] restore speed when not using auto itc wb and improve speed when using it --- rtengine/improccoordinator.cc | 13 ++--- rtengine/rawimagesource.cc | 96 ++++++++++++++++++++++++++--------- 2 files changed, 77 insertions(+), 32 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index fc3b29b9f..e18c6177a 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -389,16 +389,11 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } - // bool autowb0 = false; - // autowb0 = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); - // autowb0 = (params->wb.method == "autold" || params->wb.method == "autitcgreen");//in some cases autowb0 does not work ....params->wb.method still at "camera" instead of auto !!! - // printf("autowb0=%s \n", params->wb.method.c_str()); - - - - // if (autowb0) { + if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { + if (params->wb.method == "autitcgreen") { imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); - // } + } + } if ((todo & (M_RETINEX | M_INIT)) && params->retinex.enabled) { bool dehacontlutili = false; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 55e31eeda..c052b41f7 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3664,8 +3664,8 @@ void RawImageSource::getAutoExpHistogram (LUTu & histogram, int& histcompr) if (ri->getSensorType() == ST_BAYER) { // precalculate factors to avoid expensive per pixel calculations - float refwb0 = refwb[ri->FC(i, start)]; - float refwb1 = refwb[ri->FC(i, start + 1)]; + float refwb0 = refwb[ri->FC(i, start)]; + float refwb1 = refwb[ri->FC(i, start + 1)]; int j; for (j = start; j < end - 1; j += 2) { @@ -3678,12 +3678,12 @@ void RawImageSource::getAutoExpHistogram (LUTu & histogram, int& histcompr) } } else if (ri->getSensorType() == ST_FUJI_XTRANS) { // precalculate factors to avoid expensive per pixel calculations - float refwb0 = refwb[ri->XTRANSFC(i, start)]; - float refwb1 = refwb[ri->XTRANSFC(i, start + 1)]; - float refwb2 = refwb[ri->XTRANSFC(i, start + 2)]; - float refwb3 = refwb[ri->XTRANSFC(i, start + 3)]; - float refwb4 = refwb[ri->XTRANSFC(i, start + 4)]; - float refwb5 = refwb[ri->XTRANSFC(i, start + 5)]; + float refwb0 = refwb[ri->XTRANSFC(i, start)]; + float refwb1 = refwb[ri->XTRANSFC(i, start + 1)]; + float refwb2 = refwb[ri->XTRANSFC(i, start + 2)]; + float refwb3 = refwb[ri->XTRANSFC(i, start + 3)]; + float refwb4 = refwb[ri->XTRANSFC(i, start + 4)]; + float refwb5 = refwb[ri->XTRANSFC(i, start + 5)]; int j; for (j = start; j < end - 5; j += 6) { @@ -4853,7 +4853,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double hiss Wbhis[siza]; for (int nh = 0; nh < siza; nh++) { - Wbhis[nh].histnum = histxy[nh]; + Wbhis[nh].histnum = histxy[nh]; Wbhis[nh].index = nh; } @@ -5016,7 +5016,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int j = 0; j < Nc ; ++j) { reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY - reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY + reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY } int kk = -1; @@ -5098,7 +5098,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int j = 0; j < Nc ; ++j) { reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY - reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY + reff_spect_xxyy_prov[2 * j + 1][tt] = Ty[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // y from xyY } //degrade correllation with color high chroma, but not too much...seems not good, but keep in case of?? @@ -5142,13 +5142,13 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int greengoodprov; int goodrefprov; float studprov; - const int goodref0 = Tgstud[0].tempref; + const int goodref0 = Tgstud[0].tempref; const int greengood0 = Tgstud[0].greenref - 39;//39 green = 1 const float stud0 = Tgstud[0].student; - const int goodref1 = Tgstud[1].tempref; + const int goodref1 = Tgstud[1].tempref; const float stud1 = Tgstud[1].student; const int greengood1 = Tgstud[1].greenref - 39; - const int goodref2 = Tgstud[2].tempref; + const int goodref2 = Tgstud[2].tempref; const int greengood2 = Tgstud[2].greenref - 39; const float stud2 = Tgstud[2].student; @@ -5243,16 +5243,57 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in //center data on normal values int nn = 0; - for (int i = 0; i < H; i ++) + if (!local) { +#ifdef _OPENMP + #pragma omp parallel sections +#endif + { +#ifdef _OPENMP + #pragma omp section +#endif + { + for (int i = 0; i < H; i ++) { + for (int j = 0; j < W; j++) { + redloc[i][j] = red[i][j]; + } + } + } +#ifdef _OPENMP + #pragma omp section +#endif + { + for (int i = 0; i < H; i ++) { + for (int j = 0; j < W; j++) { + greenloc[i][j] = green[i][j]; + } + } + } +#ifdef _OPENMP + #pragma omp section +#endif + { + for (int i = 0; i < H; i ++) { + for (int j = 0; j < W; j++) { + blueloc[i][j] = blue[i][j]; + } + } + } + } + } + +#ifdef _OPENMP + #pragma omp parallel for reduction(+:avgL, nn) +#endif + for (int i = 0; i < H; i ++) { for (int j = 0; j < W; j++) { int lox = cx + j; int loy = cy + i; if (!local) { - const float redmm = redloc[i][j] = red[i][j]; - const float greenmm = greenloc[i][j] = green[i][j]; - const float bluemm = blueloc[i][j] = blue[i][j]; - const float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); + const float redmm = redloc[i][j]; + const float greenmm = greenloc[i][j]; + const float bluemm = blueloc[i][j]; + const float LL = 0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm; avgL += static_cast(LL); nn++; } else { @@ -5260,21 +5301,24 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in const float redmm = redloc[loy - begy][lox - begx] = red[i][j]; const float greenmm = greenloc[loy - begy][lox - begx] = green[i][j]; const float bluemm = blueloc[loy - begy][lox - begx] = blue[i][j]; - const float LL = (0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm); + const float LL = 0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm; avgL += static_cast(LL); nn++; } } } - + } avgL /= nn; - float vari = 0.f; + double vari = 0.f; int mm = 0; +#ifdef _OPENMP + #pragma omp parallel for reduction(+:vari, mm) +#endif for (int i = 0; i < bfh; i++) for (int j = 0; j < bfw; j++) { - float LL = (0.299f * redloc[i][j] + 0.587f * greenloc[i][j] + 0.114f * blueloc[i][j]); + float LL = 0.299f * redloc[i][j] + 0.587f * greenloc[i][j] + 0.114f * blueloc[i][j]; vari += SQR(LL - avgL); mm++; } @@ -5282,6 +5326,9 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in const float sig = std::sqrt(vari / mm); const float multip = 60000.f / (avgL + 2.f * sig); +#ifdef _OPENMP + #pragma omp parallel for +#endif for (int i = 0; i < bfh; i++) for (int j = 0; j < bfw; j++) { redloc[i][j] *= multip; @@ -5290,6 +5337,9 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in } if (gamma) { +#ifdef _OPENMP + #pragma omp parallel for +#endif for (int i = 0; i < bfh; i++) for (int j = 0; j < bfw; j++) { redloc[i][j] = Color::gammatab_srgb[redloc[i][j]]; From 95b238ca5d5dd16ff54838eb982c733e7cc054bb Mon Sep 17 00:00:00 2001 From: Desmis Date: Sun, 1 Mar 2020 08:37:51 +0100 Subject: [PATCH 332/453] Added Ingo to copyright Itcwb --- rtengine/rawimagesource.cc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index c052b41f7..2779081d1 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4340,7 +4340,8 @@ float static studentXY(const array2D & YYcurr, const array2D & ref void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, const ColorManagementParams &cmp, const RAWParams &raw, const WBParams & wbpar) { /* - copyright Jacques Desmis 6 - 2018 jdesmis@gmail.com + Copyright (c) Jacques Desmis 6 - 2018 jdesmis@gmail.com + Copyright (c) Ingo Weirich 3 - 2020 (heckflosse67@gmx.de) This algorithm try to find temperature correlation between 20 to 200 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. From d0034c880be2b96aea5d17dc8af89b83c50c82dc Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 1 Mar 2020 11:50:58 +0100 Subject: [PATCH 333/453] further cleanups and speedups for ItcWB/getrgbloc --- rtengine/imagesource.h | 2 +- rtengine/improccoordinator.cc | 5 +- rtengine/rawimagesource.cc | 129 ++++++++-------------------------- rtengine/rawimagesource.h | 2 +- rtengine/stdimagesource.cc | 3 - rtengine/stdimagesource.h | 2 +- 6 files changed, 36 insertions(+), 107 deletions(-) diff --git a/rtengine/imagesource.h b/rtengine/imagesource.h index 22b8cdc08..d1008837d 100644 --- a/rtengine/imagesource.h +++ b/rtengine/imagesource.h @@ -123,7 +123,7 @@ public: virtual ColorTemp getWB () const = 0; virtual ColorTemp getSpotWB (std::vector &red, std::vector &green, std::vector &blue, int tran, double equal) = 0; virtual void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const procparams::WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) = 0; - virtual void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) = 0; + virtual void getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) = 0; virtual double getDefGain () const { diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index e18c6177a..15a8607d3 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -391,7 +391,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) if (todo & (M_INIT | M_LINDENOISE | M_HDR)) { if (params->wb.method == "autitcgreen") { - imgsrc->getrgbloc(false, false, false, 0, 0, fh, fw, 0, 0, fh, fw); + imgsrc->getrgbloc(0, 0, fh, fw, 0, 0, fh, fw); } } @@ -411,8 +411,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } } - bool autowb = false; - autowb = (params->wb.method == "autold" || params->wb.method == "aut" || params->wb.method == "autosdw" || params->wb.method == "autedgsdw" || params->wb.method == "autitcgreen" || params->wb.method == "autedgrob" || params->wb.method == "autedg" || params->wb.method == "autorobust"); + const bool autowb = (params->wb.method == "autold" || params->wb.method == "autitcgreen"); if (settings->verbose) { printf("automethod=%s \n", params->wb.method.c_str()); } diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 2779081d1..1fac47ab4 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3407,7 +3407,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi constexpr float trans[ColorCount][ColorCount] = { { 1, 1, 1 }, { 1.7320508, -1.7320508, 0 }, { -1, -1, 2 } }; constexpr float itrans[ColorCount][ColorCount] = { { 1, 0.8660254, -0.5 }, { 1, -0.8660254, -0.5 }, { 1, 0, 1 } }; - float minpt = min(hlmax[0], hlmax[1], hlmax[2]); //min of the raw clip points + float minpt = rtengine::min(hlmax[0], hlmax[1], hlmax[2]); //min of the raw clip points //float maxpt=max(hlmax[0],hlmax[1],hlmax[2]);//max of the raw clip points //float medpt=hlmax[0]+hlmax[1]+hlmax[2]-minpt-maxpt;//median of the raw clip points float maxave = (hlmax[0] + hlmax[1] + hlmax[2]) / 3; //ave of the raw clip points @@ -3418,7 +3418,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi float clip[3]; for (int c = 0; c < ColorCount; ++c) { - clip[c] = min(maxave, hlmax[c]); + clip[c] = rtengine::min(maxave, hlmax[c]); } // Determine the maximum level (clip) of all channels @@ -3473,7 +3473,7 @@ void RawImageSource::HLRecovery_blend(float* rin, float* gin, float* bin, int wi } } - chratio = (std::sqrt(sum[1] / sum[0])); + chratio = std::sqrt(sum[1] / sum[0]); // Apply ratio to lightness in LCH space for (int c = 1; c < ColorCount; c++) { @@ -4341,7 +4341,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double { /* Copyright (c) Jacques Desmis 6 - 2018 jdesmis@gmail.com - Copyright (c) Ingo Weirich 3 - 2020 (heckflosse67@gmx.de) + Copyright (c) Ingo Weyrich 3 - 2020 (heckflosse67@gmx.de) This algorithm try to find temperature correlation between 20 to 200 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. @@ -4416,8 +4416,8 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {static_cast(wiprof[2][0]), static_cast(wiprof[2][1]), static_cast(wiprof[2][2])} }; - const int bfwitc = bfw / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfhitc = bfh / 10 + 1; + const int bfwitc = bfw; + const int bfhitc = bfh; typedef struct WbGreen { double green; @@ -4552,7 +4552,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } RangeGreen; constexpr RangeGreen Rangestandard = {8, 70}; - constexpr RangeGreen Rangeextand = {4, 77}; + constexpr RangeGreen Rangeextended = {4, 77}; const RangeGreen Rangemax = {0, N_g}; RangeGreen Rangegreenused; @@ -4560,7 +4560,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double if (settings->itcwb_greenrange == 0) { Rangegreenused = Rangestandard; } else if (settings->itcwb_greenrange == 1) { - Rangegreenused = Rangeextand; + Rangegreenused = Rangeextended; } else { Rangegreenused = Rangemax; } @@ -4816,13 +4816,12 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double #ifdef _OPENMP #pragma omp parallel for #endif - for (int y = 0; y < bfh ; y += 10) { - int yy = y / 10; - for (int x = 0, xx = 0; x < bfw ; x += 10, ++xx) { + for (int y = 0; y < bfh ; ++y) { + for (int x = 0; x < bfw ; ++x) { const float RR = rmm[rep] * redloc[y][x]; const float GG = gmm[rep] * greenloc[y][x]; const float BB = bmm[rep] * blueloc[y][x]; - Color::rgbxyY(RR, GG, BB, xc[yy][xx], yc[yy][xx], Yc[yy][xx], wp); + Color::rgbxyY(RR, GG, BB, xc[y][x], yc[y][x], Yc[y][x], wp); } } //histogram xy depend of temp...but in most cases D45 ..D65.. @@ -5217,15 +5216,12 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D } } -void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) +void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) { + BENCHFUN //used by auto WB local to calculate red, green, blue in local region - int bfh = H, bfw = W; - - if (local) { - bfh = bf_h + 3; - bfw = bf_w + 3; - } + const int bfw = W / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfh = H / 10 + 1; if (! greenloc) { greenloc(bfw, bfh); @@ -5240,73 +5236,17 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in } double avgL = 0.0; - //center data on normal values int nn = 0; - if (!local) { -#ifdef _OPENMP - #pragma omp parallel sections -#endif - { -#ifdef _OPENMP - #pragma omp section -#endif - { - for (int i = 0; i < H; i ++) { - for (int j = 0; j < W; j++) { - redloc[i][j] = red[i][j]; - } - } - } -#ifdef _OPENMP - #pragma omp section -#endif - { - for (int i = 0; i < H; i ++) { - for (int j = 0; j < W; j++) { - greenloc[i][j] = green[i][j]; - } - } - } -#ifdef _OPENMP - #pragma omp section -#endif - { - for (int i = 0; i < H; i ++) { - for (int j = 0; j < W; j++) { - blueloc[i][j] = blue[i][j]; - } - } - } - } - } - #ifdef _OPENMP #pragma omp parallel for reduction(+:avgL, nn) #endif for (int i = 0; i < H; i ++) { for (int j = 0; j < W; j++) { - int lox = cx + j; - int loy = cy + i; - - if (!local) { - const float redmm = redloc[i][j]; - const float greenmm = greenloc[i][j]; - const float bluemm = blueloc[i][j]; - const float LL = 0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm; - avgL += static_cast(LL); - nn++; - } else { - if (lox >= begx && lox < xEn && loy >= begy && loy < yEn) { - const float redmm = redloc[loy - begy][lox - begx] = red[i][j]; - const float greenmm = greenloc[loy - begy][lox - begx] = green[i][j]; - const float bluemm = blueloc[loy - begy][lox - begx] = blue[i][j]; - const float LL = 0.299f * redmm + 0.587f * greenmm + 0.114f * bluemm; - avgL += static_cast(LL); - nn++; - } - } + const float LL = 0.299f * red[i][j] + 0.587f * green[i][j] + 0.114f * blue[i][j]; + avgL += static_cast(LL); + nn++; } } avgL /= nn; @@ -5317,9 +5257,9 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in #ifdef _OPENMP #pragma omp parallel for reduction(+:vari, mm) #endif - for (int i = 0; i < bfh; i++) - for (int j = 0; j < bfw; j++) { - float LL = 0.299f * redloc[i][j] + 0.587f * greenloc[i][j] + 0.114f * blueloc[i][j]; + for (int i = 0; i < H; i++) + for (int j = 0; j < W; j++) { + const float LL = 0.299f * red[i][j] + 0.587f * green[i][j] + 0.114f * blue[i][j]; vari += SQR(LL - avgL); mm++; } @@ -5330,23 +5270,15 @@ void RawImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, in #ifdef _OPENMP #pragma omp parallel for #endif - for (int i = 0; i < bfh; i++) - for (int j = 0; j < bfw; j++) { - redloc[i][j] *= multip; - greenloc[i][j] *= multip; - blueloc[i][j] *= multip; - } - - if (gamma) { -#ifdef _OPENMP - #pragma omp parallel for -#endif - for (int i = 0; i < bfh; i++) - for (int j = 0; j < bfw; j++) { - redloc[i][j] = Color::gammatab_srgb[redloc[i][j]]; - greenloc[i][j] = Color::gammatab_srgb[greenloc[i][j]]; - blueloc[i][j] = Color::gammatab_srgb[blueloc[i][j]]; + for (int i = 0; i < bfh; ++i) { + const int ii = i * 10; + if (ii < H) { + for (int j = 0, jj = 0; jj < W; ++j, jj += 10) { + redloc[i][j] = red[ii][jj] * multip; + greenloc[i][j] = green[ii][jj] * multip; + blueloc[i][j] = blue[ii][jj] * multip; } + } } } @@ -5365,7 +5297,6 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref double avg_b = 0; int rn = 0, gn = 0, bn = 0; double avg_rm, avg_gm, avg_bm; - int bfh = H, bfw = W; if (wbpar.method == "autold") { if (fuji) { for (int i = 32; i < H - 32; i++) { @@ -5542,6 +5473,8 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref if (wbpar.method == "autitcgreen") { bool twotimes = false; + const int bfw = W / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfh = H / 10 + 1; WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); } diff --git a/rtengine/rawimagesource.h b/rtengine/rawimagesource.h index dd15a68e0..71478fbed 100644 --- a/rtengine/rawimagesource.h +++ b/rtengine/rawimagesource.h @@ -144,7 +144,7 @@ public: void scaleColors (int winx, int winy, int winw, int winh, const procparams::RAWParams &raw, array2D &rawData); // raw for cblack void WBauto(double &tempref, double &greenref, array2D &redloc, array2D &greenloc, array2D &blueloc, int bfw, int bfh, double &avg_rm, double &avg_gm, double &avg_bm, double &tempitc, double &greenitc, float &studgood, bool &twotimes, const procparams::WBParams & wbpar, int begx, int begy, int yEn, int xEn, int cx, int cy, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) override; void getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const procparams::WBParams & wbpar, const procparams::ColorManagementParams &cmp, const procparams::RAWParams &raw) override; - void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) override; + void getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) override; void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; eSensorType getSensorType () const override; diff --git a/rtengine/stdimagesource.cc b/rtengine/stdimagesource.cc index 763621171..8cb8fa792 100644 --- a/rtengine/stdimagesource.cc +++ b/rtengine/stdimagesource.cc @@ -315,9 +315,6 @@ void StdImageSource::WBauto(double &tempref, double &greenref, array2D &r { } -void StdImageSource::getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) -{} - void StdImageSource::getAutoWBMultipliersitc(double &tempref, double &greenref, double &tempitc, double &greenitc, float &studgood, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w, double &rm, double &gm, double &bm, const WBParams & wbpar, const ColorManagementParams &cmp, const RAWParams &raw) { if (redAWBMul != -1.) { diff --git a/rtengine/stdimagesource.h b/rtengine/stdimagesource.h index 9f4fbdfbe..f937188b4 100644 --- a/rtengine/stdimagesource.h +++ b/rtengine/stdimagesource.h @@ -58,7 +58,7 @@ public: int load (const Glib::ustring &fname) override; void getImage (const ColorTemp &ctemp, int tran, Imagefloat* image, const PreviewProps &pp, const procparams::ToneCurveParams &hrp, const procparams::RAWParams &raw) override; - void getrgbloc(bool local, bool gamma, bool cat02, int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) override; + void getrgbloc (int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) override {}; ColorTemp getWB () const override { return wb; From f85b2cc5bc7fa80fa1724e5d6cf5359c0894c223 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 1 Mar 2020 12:22:15 +0100 Subject: [PATCH 334/453] small correction --- rtengine/rawimagesource.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 1fac47ab4..9ed217624 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -5220,8 +5220,8 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int { BENCHFUN //used by auto WB local to calculate red, green, blue in local region - const int bfw = W / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfh = H / 10 + 1; + const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfh = H / 10 + ((H % 10) > 0 ? 1 : 0); if (! greenloc) { greenloc(bfw, bfh); @@ -5473,8 +5473,8 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref if (wbpar.method == "autitcgreen") { bool twotimes = false; - const int bfw = W / 10 + 1 ;// 10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfh = H / 10 + 1; + const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfh = H / 10 + ((H % 10) > 0 ? 1 : 0); WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); } From c92c0c0c8a7029c776bd58b174109de201cea866 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 1 Mar 2020 12:44:15 +0100 Subject: [PATCH 335/453] disabled BENCHFUN --- rtengine/rawimagesource.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 9ed217624..f5d31c435 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4399,7 +4399,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Itcwb_sizereference : 3 by default, can be set to 5 ==> size of reference color compare to size of histogram real color itcwb_delta : 1 by default can be set between 0 to 5 ==> delta temp to build histogram xy - if camera temp is not probably good */ - BENCHFUN +// BENCHFUN TMatrix wprof = ICCStore::getInstance()->workingSpaceMatrix("sRGB"); const float wp[3][3] = { @@ -5218,7 +5218,7 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int cy, int bf_h, int bf_w) { - BENCHFUN +// BENCHFUN //used by auto WB local to calculate red, green, blue in local region const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 const int bfh = H / 10 + ((H % 10) > 0 ? 1 : 0); From 6d31fe48a7f0998fc6709db7f6fd564181b20072 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 2 Mar 2020 08:51:11 +0100 Subject: [PATCH 336/453] Comment code Itcwb --- rtengine/rawimagesource.cc | 43 +++++++++++++++++++++++++------------- 1 file changed, 28 insertions(+), 15 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index f5d31c435..49334d1dc 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3897,6 +3897,9 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, LUTf &xxx, LUTf &yyy, LUTf &YYY, LUTu &histxy) { + //calculate histogram x y in a rane of 158 colors + //this "choice" are guided by generally colors who are in nature skin, sky, etc. in those cases "steps" are small + // of course we can chnage to be more precise #ifdef _OPENMP #pragma omp parallel #endif @@ -4423,7 +4426,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double double green; float snedecor;//1. actually but put in case of confiance interval } WbGreen; - + //green (tint) values between 0.4 to 4.0 constexpr WbGreen gree[118] = {//symmetric coefficient between 0.717 and 1.40 {0.400, 1.f}, {0.500, 1.f}, @@ -4572,6 +4575,8 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } WbTxyz; //we can change step to increase precision if need - also in Colortemp.cc with same changes //I don't know how to pass this structure to Colortemp ! + // X and Z values calculate for each temp between 2000K to 12000K, so no result after 12000K ! + //of course we can change the step between each temp if need constexpr WbTxyz Txyz[118] = {//temperature Xwb Zwb 118 values x wb and y wb are calculated after {2001., 1.273842, 0.145295}, {2101., 1.244008, 0.167533}, @@ -4746,6 +4751,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double rmm[tt] = rm / gm; gmm[tt] = 1.f; bmm[tt] = bm / gm; + //return rmm, gmm, bmm in function of temp } struct hiss { @@ -4791,9 +4797,9 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double array2D reff_spect_xx_camera(N_t, 2 * Nc + 2); //here we select the good spectral color inside the 113 values - //call tempxy to calculate for 114 color references Temp and XYZ with cat02 + //call tempxy to calculate for 200 color references Temp and XYZ with cat02 - ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants + ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 200 illuminants //find the good spectral values //calculate xy reference spectral for tempref @@ -4834,6 +4840,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //big step about 0.2 histoxyY(bfhitc, bfwitc, xc, yc, Yc, xxx, yyy, YYY, histxy); + //return histogram x and y for each temp and in a range of 158 colors (siza) } // free some memory @@ -4865,6 +4872,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int n15 = 0; int n30 = 0; //part to improve + //determined the number of colors who be used after for (int nh = 0; nh < siza; nh++) { if (Wbhis[nh].histnum < 30) { n30++; //keep only existing color but avoid to small @@ -4911,7 +4919,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } float estimchrom = 0.f; - + //estimate chromaticity for references for (int nh = 0; nh < sizcu4; ++nh) { const float chxy = std::sqrt(SQR(xx_curref[nh][repref] - xwpr) + SQR(yy_curref[nh][repref] - ywpr)); wbchro[nh].chroxy_number = chxy * std::sqrt(histcurrref[nh][repref]); @@ -4943,7 +4951,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - //calculate deltaE xx to find best values of spectrals datas + //calculate deltaE xx to find best values of spectrals datas - limited to chroma values int maxnb = rtengine::LIM(settings->itcwb_sizereference, 1, 5); if (settings->itcwb_thres > 39) { @@ -4992,6 +5000,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //Now begin real calculations separated = false; + //recalculate histogram with good values and not estimated ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 90 illuminants //calculate x y Y int sizcurr = siza;//choice of number of correlate colors in image @@ -5038,7 +5047,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - if (extra) { + if (extra) {//always used because I amde this choice, brings better results struct Tempgreen { float student; int tempref; @@ -5052,15 +5061,14 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int i = 0; i < N_g; ++i) {//init variables with Tgstud[i].student = 1000.f;//max value to initialize - Tgstud[i].tempref = 57; - Tgstud[i].greenref = 39; + Tgstud[i].tempref = 57;//5002K + Tgstud[i].greenref = 39;// 1.f } const int dgoodref = rtengine::min(settings->itcwb_greendeltatemp, 4); const int scantempbeg = rtengine::max(goodref - (dgoodref + 1), 1); const int scantempend = rtengine::min(goodref + dgoodref, N_t - 1); - for (int gr = Rangegreenused.begin; gr < Rangegreenused.end; ++gr) { float minstudgr = 100000.f; int goodrefgr = 1; @@ -5072,6 +5080,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double float rm = imatrices.cam_rgb[0][0] * r + imatrices.cam_rgb[0][1] * g + imatrices.cam_rgb[0][2] * b; float gm = imatrices.cam_rgb[1][0] * r + imatrices.cam_rgb[1][1] * g + imatrices.cam_rgb[1][2] * b; float bm = imatrices.cam_rgb[2][0] * r + imatrices.cam_rgb[2][1] * g + imatrices.cam_rgb[2][2] * b; + //recalculate Multipliers now with good range of temp and green const float new_pre_mul[4] = { ri->get_pre_mul(0) / rm, ri->get_pre_mul(1) / gm, ri->get_pre_mul(2) / bm, ri->get_pre_mul(3) / gm }; float new_scale_mul[4]; @@ -5095,6 +5104,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double const float BB = bmm[tt] * B_curref_reduc[i][repref]; Color::rgbxyY(RR, GG, BB, xxyycurr_reduc[2 * i][tt], xxyycurr_reduc[2 * i + 1][tt], unused, wp); } + //recalculate xy spectral now with good range of temp and green for (int j = 0; j < Nc ; ++j) { reff_spect_xxyy_prov[2 * j][tt] = Tx[j][tt] / (Tx[j][tt] + Ty[j][tt] + Tz[j][tt]); // x from xyY @@ -5117,14 +5127,15 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double reff_spect_xxyy[2 * kkg + 1][tt] = reff_spect_xxyy_prov[2 * i + 1][tt]; } } - + //now we have good spectral datas + //claculate student correlation const float abstudgr = std::fabs(studentXY(xxyycurr_reduc, reff_spect_xxyy, 2 * w, 2 * kkg, tt)); if (abstudgr < minstudgr) { // find the minimum Student minstudgr = abstudgr; goodrefgr = tt; } - + //found the values Tgstud[gr].tempref = goodrefgr; Tgstud[gr].greenref = gr; Tgstud[gr].student = minstudgr; @@ -5136,7 +5147,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //now search the value of green the nearest of 1 with a good student value // I take the 3 first values - //I admit a symetrie in green coefiicient for rgb multiplier...probably not excatly true + //I admit a symetrie in green coefiicient for rgb multiplier...probably not exactly true //perhaps we can used a Snedecor test ? but why...at least we have confidence interval > 90% int greengood; int greengoodprov; @@ -5186,7 +5197,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double if (!extra) { tempitc = Txyz[goodref].Tem; } - + //now we have temp green and student if (settings->verbose) { printf("ITCWB tempitc=%f gritc=%f stud=%f \n", tempitc, greenitc, studgood); } @@ -5196,10 +5207,12 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D { // BENCHFUN //auto white balance + //put green (tint) in reasonable limits for an Daylight illuminant + // avoid too bi or too low values if (wbpar.method == "autitcgreen") { bool extra = false; - if (greenref > 0.77 && greenref < 1.3) { + if (greenref > 0.77 && greenref < 1.3) {// 0/77 and 1.3 arbitraties values greenitc = greenref; if (settings->itcwb_forceextra) { @@ -5266,7 +5279,7 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int const float sig = std::sqrt(vari / mm); const float multip = 60000.f / (avgL + 2.f * sig); - + //multip to put red, blue, green in a good range #ifdef _OPENMP #pragma omp parallel for #endif From dbeccefd44e59656d1381c74d4efda197d0689a0 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 2 Mar 2020 16:55:24 +0100 Subject: [PATCH 337/453] Display good values Temp green if autold selected --- rtengine/improccoordinator.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index e7bf2b5bc..29a41249e 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -488,6 +488,10 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) awbListener->WBChanged(params->wb.temperature, params->wb.green, studgood); } + if (autowb && awbListener && params->wb.method == "autold") { + awbListener->WBChanged(params->wb.temperature, params->wb.green, -1.f); + } + /* GammaValues g_a; double pwr = 1.0 / params->icm.gampos; From 32165f9f7d5c67cea7405a14a3bd6b39297b2dc6 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 2 Mar 2020 18:07:41 +0100 Subject: [PATCH 338/453] Small improvment and format code improccoordinator wb --- rtengine/improccoordinator.cc | 45 +++++++++++++++++------------------ 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 29a41249e..f8a65bf8c 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -441,36 +441,36 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) currWBitc = imgsrc->getWB(); double tempref = currWBitc.getTemp() * (1. + params->wb.tempBias); double greenref = currWBitc.getGreen(); - if (settings->verbose) { + if (settings->verbose && params->wb.method == "autitcgreen") { printf("tempref=%f greref=%f\n", tempref, greenref); } imgsrc->getAutoWBMultipliersitc(tempref, greenref, tempitc, greenitc, studgood, 0, 0, fh, fw, 0, 0, fh, fw, rm, gm, bm, params->wb, params->icm, params->raw); - if (params->wb.method == "autitcgreen") { - params->wb.temperature = tempitc; - params->wb.green = greenitc; - currWB = ColorTemp(params->wb.temperature, params->wb.green, 1., params->wb.method); - currWB.getMultipliers(rm, gm, bm); - } - - if (rm != -1.) { - double bias = params->wb.tempBias; - if (params->wb.method == "autitcgreen") { - bias = 0.; + params->wb.temperature = tempitc; + params->wb.green = greenitc; + currWB = ColorTemp(params->wb.temperature, params->wb.green, 1., params->wb.method); + currWB.getMultipliers(rm, gm, bm); } - autoWB.update(rm, gm, bm, params->wb.equal, bias); - lastAwbEqual = params->wb.equal; - lastAwbTempBias = params->wb.tempBias; - lastAwbauto = params->wb.method; - } else { - lastAwbEqual = -1.; - lastAwbTempBias = 0.0; - lastAwbauto = ""; - autoWB.useDefaults(params->wb.equal); - } + if (rm != -1.) { + double bias = params->wb.tempBias; + + if (params->wb.method == "autitcgreen") { + bias = 0.; + } + + autoWB.update(rm, gm, bm, params->wb.equal, bias); + lastAwbEqual = params->wb.equal; + lastAwbTempBias = params->wb.tempBias; + lastAwbauto = params->wb.method; + } else { + lastAwbEqual = -1.; + lastAwbTempBias = 0.0; + lastAwbauto = ""; + autoWB.useDefaults(params->wb.equal); + } } @@ -483,7 +483,6 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) params->wb.green = currWB.getGreen(); } - // if (params->wb.method == "Auto" && awbListener && params->wb.enabled) { if (autowb && awbListener && params->wb.method == "autitcgreen") { awbListener->WBChanged(params->wb.temperature, params->wb.green, studgood); } From f4da001589e543f74efd961b27ba8855fc200a62 Mon Sep 17 00:00:00 2001 From: Desmis Date: Mon, 2 Mar 2020 20:00:02 +0100 Subject: [PATCH 339/453] Ciecam02 autotempout button --- rtdata/languages/default | 2 ++ rtengine/improccoordinator.cc | 2 +- rtengine/procparams.cc | 4 ++++ rtengine/procparams.h | 1 + rtgui/colorappearance.cc | 30 ++++++++++++++++++++++++++++-- rtgui/colorappearance.h | 3 ++- rtgui/paramsedited.cc | 6 ++++++ rtgui/paramsedited.h | 1 + 8 files changed, 45 insertions(+), 4 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 607484d19..265266a7c 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -787,6 +787,7 @@ HISTORY_MSG_SHARPENING_CONTRAST;Sharpening - Contrast threshold HISTORY_MSG_SH_COLORSPACE;S/H - Colorspace HISTORY_MSG_SOFTLIGHT_ENABLED;Soft light HISTORY_MSG_SOFTLIGHT_STRENGTH;Soft light - Strength +HISTORY_MSG_TEMPOUT;CAM02 automatic temperature HISTORY_MSG_TM_FATTAL_ANCHOR;DRC - Anchor HISTORY_MSG_TRANS_Method;Geometry - Method HISTORY_MSG_WAVCLARI;Clarity @@ -1467,6 +1468,7 @@ TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode TP_COLORAPP_TCMODE_LIGHTNESS;Lightness TP_COLORAPP_TCMODE_SATUR;Saturation TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 +TP_COLORAPP_TEMPOUT_TOOLTIP;Disable to chnage temperature and tint TP_COLORAPP_TONECIE;Tone mapping using CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. TP_COLORAPP_VIEWING_ABSOLUTELUMINANCE_TOOLTIP;Absolute luminance of the viewing environment\n(usually 16 cd/m²). diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index f8a65bf8c..15d477fdc 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1157,7 +1157,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) acListener->ybCamChanged((int) yb); //real value Yb scene } - if (params->colorappearance.enabled && params->colorappearance.presetcat02) { + if (params->colorappearance.enabled && params->colorappearance.presetcat02 && params->colorappearance.autotempout) { acListener->wbCamChanged(params->wb.temperature, params->wb.green); //real temp and tint } diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index 1dee8375b..a6707fb86 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1389,6 +1389,7 @@ ColorAppearanceParams::ColorAppearanceParams() : datacie(false), tonecie(false), tempout(5000), + autotempout(true), ybout(18), greenout(1.0), tempsc(5000), @@ -1435,6 +1436,7 @@ bool ColorAppearanceParams::operator ==(const ColorAppearanceParams& other) cons && datacie == other.datacie && tonecie == other.tonecie && tempout == other.tempout + && autotempout == other.autotempout && ybout == other.ybout && greenout == other.greenout && tempsc == other.tempsc @@ -3229,6 +3231,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->colorappearance.surrsource, "Color appearance", "SurrSource", colorappearance.surrsource, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.gamut, "Color appearance", "Gamut", colorappearance.gamut, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.tempout, "Color appearance", "Tempout", colorappearance.tempout, keyFile); + saveToKeyfile(!pedited || pedited->colorappearance.autotempout, "Color appearance", "Autotempout", colorappearance.autotempout, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.greenout, "Color appearance", "Greenout", colorappearance.greenout, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.tempsc, "Color appearance", "Tempsc", colorappearance.tempsc, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.greensc, "Color appearance", "Greensc", colorappearance.greensc, keyFile); @@ -4222,6 +4225,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Color appearance", "SurrSource", pedited, colorappearance.surrsource, pedited->colorappearance.surrsource); assignFromKeyfile(keyFile, "Color appearance", "Gamut", pedited, colorappearance.gamut, pedited->colorappearance.gamut); assignFromKeyfile(keyFile, "Color appearance", "Tempout", pedited, colorappearance.tempout, pedited->colorappearance.tempout); + assignFromKeyfile(keyFile, "Color appearance", "Autotempout", pedited, colorappearance.autotempout, pedited->colorappearance.autotempout); assignFromKeyfile(keyFile, "Color appearance", "Greenout", pedited, colorappearance.greenout, pedited->colorappearance.greenout); assignFromKeyfile(keyFile, "Color appearance", "Tempsc", pedited, colorappearance.tempsc, pedited->colorappearance.tempsc); assignFromKeyfile(keyFile, "Color appearance", "Greensc", pedited, colorappearance.greensc, pedited->colorappearance.greensc); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 034577cb6..17cf64a69 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -676,6 +676,7 @@ struct ColorAppearanceParams { bool datacie; bool tonecie; int tempout; + bool autotempout; int ybout; double greenout; int tempsc; diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index fff35a94c..ace7affd6 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -220,7 +220,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" auto m = ProcEventMapper::getInstance(); Evcatpreset = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_CAT02PRESET"); - + EvCATAutotempout = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_TEMPOUT"); //preset button cat02 presetcat02 = Gtk::manage (new Gtk::CheckButton (M ("TP_COLORAPP_PRESETCAT02"))); presetcat02->set_tooltip_markup (M("TP_COLORAPP_PRESETCAT02_TIP")); @@ -627,6 +627,8 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" greenout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_GREEN"), MINGREEN0, MAXGREEN0, 0.001, 1.0, igreenR1, igreenL1)); ybout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_MEANLUMINANCE"), 5, 90, 1, 18)); tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP_TOOLTIP")); + tempout->throwOnButtonRelease(); + tempout->addAutoButton (M ("TP_COLORAPP_TEMPOUT_TOOLTIP")); tempout->show(); greenout->show(); @@ -768,6 +770,7 @@ void ColorAppearance::neutral_pressed () qcontrast->resetValue (false); colorh->resetValue (false); tempout->resetValue (false); + tempout->setAutoValue (true); greenout->resetValue (false); ybout->resetValue (false); tempsc->resetValue (false); @@ -856,6 +859,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) adapscen->setAutoInconsistent (multiImage && !pedited->colorappearance.autoadapscen); ybscen->setAutoInconsistent (multiImage && !pedited->colorappearance.autoybscen); set_inconsistent (multiImage && !pedited->colorappearance.enabled); + tempout->setAutoInconsistent (multiImage && !pedited->colorappearance.autotempout); shape->setUnChanged (!pedited->colorappearance.curve); shape2->setUnChanged (!pedited->colorappearance.curve2); @@ -982,6 +986,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) lastAutoAdapscen = pp->colorappearance.autoadapscen; lastAutoDegreeout = pp->colorappearance.autodegreeout; lastAutoybscen = pp->colorappearance.autoybscen; + lastAutotempout = pp->colorappearance.autotempout; degree->setValue (pp->colorappearance.degree); degree->setAutoValue (pp->colorappearance.autodegree); @@ -1004,6 +1009,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) qcontrast->setValue (pp->colorappearance.qcontrast); colorh->setValue (pp->colorappearance.colorh); tempout->setValue (pp->colorappearance.tempout); + tempout->setAutoValue (pp->colorappearance.autotempout); greenout->setValue (pp->colorappearance.greenout); ybout->setValue (pp->colorappearance.ybout); tempsc->setValue (pp->colorappearance.tempsc); @@ -1060,6 +1066,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.curve2 = shape2->getCurve (); pp->colorappearance.curve3 = shape3->getCurve (); pp->colorappearance.tempout = tempout->getValue (); + pp->colorappearance.autotempout = tempout->getAutoValue (); pp->colorappearance.greenout = greenout->getValue (); pp->colorappearance.ybout = ybout->getValue (); pp->colorappearance.tempsc = tempsc->getValue (); @@ -1135,6 +1142,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pedited->colorappearance.tempsc = tempsc->getEditedState (); pedited->colorappearance.greensc = greensc->getEditedState (); pedited->colorappearance.presetcat02 = presetcat02->get_inconsistent (); + pedited->colorappearance.autotempout = !tempout->getAutoInconsistent(); } @@ -1771,7 +1779,16 @@ void ColorAppearance::adjusterAutoToggled(Adjuster* a) ybscen->setAutoInconsistent (true); } - lastAutoybscen = ybscen->getAutoValue(); + lastAutotempout = tempout->getAutoValue(); + + if (tempout->getAutoInconsistent()) { + tempout->setAutoInconsistent (false); + tempout->setAutoValue (false); + } else if (lastAutotempout) { + tempout->setAutoInconsistent (true); + } + + lastAutotempout = tempout->getAutoValue(); } @@ -1818,6 +1835,15 @@ void ColorAppearance::adjusterAutoToggled(Adjuster* a) } } + if (a == tempout) { + if (tempout->getAutoInconsistent()) { + listener->panelChanged (EvCATAutotempout, M ("GENERAL_UNCHANGED")); + } else if (tempout->getAutoValue()) { + listener->panelChanged (EvCATAutotempout, M ("GENERAL_ENABLED")); + } else { + listener->panelChanged (EvCATAutotempout, M ("GENERAL_DISABLED")); + } + } } } diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 2f060edea..863787118 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -101,7 +101,7 @@ public: private: rtengine::ProcEvent Evcatpreset; - + rtengine::ProcEvent EvCATAutotempout; bool bgTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); bool srTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -174,6 +174,7 @@ private: bool lastAutoAdapscen; bool lastAutoDegreeout; bool lastAutoybscen; + bool lastAutotempout; bool lastsurr; bool lastgamut; bool lastdatacie; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 448b1316c..52eb7dbe6 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -243,6 +243,7 @@ void ParamsEdited::set(bool v) colorappearance.curveMode2 = v; colorappearance.curveMode3 = v; colorappearance.tempout = v; + colorappearance.autotempout = v; colorappearance.greenout = v; colorappearance.ybout = v; colorappearance.tempsc = v; @@ -834,6 +835,7 @@ void ParamsEdited::initFrom(const std::vector& colorappearance.curveMode2 = colorappearance.curveMode2 && p.colorappearance.curveMode2 == other.colorappearance.curveMode2; colorappearance.curveMode3 = colorappearance.curveMode3 && p.colorappearance.curveMode3 == other.colorappearance.curveMode3; colorappearance.tempout = colorappearance.tempout && p.colorappearance.tempout == other.colorappearance.tempout; + colorappearance.autotempout = colorappearance.autotempout && p.colorappearance.autotempout == other.colorappearance.autotempout; colorappearance.greenout = colorappearance.greenout && p.colorappearance.greenout == other.colorappearance.greenout; colorappearance.ybout = colorappearance.ybout && p.colorappearance.ybout == other.colorappearance.ybout; colorappearance.tempsc = colorappearance.tempsc && p.colorappearance.tempsc == other.colorappearance.tempsc; @@ -2016,6 +2018,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.colorappearance.tempout = mods.colorappearance.tempout; } + if (colorappearance.autotempout) { + toEdit.colorappearance.autotempout = mods.colorappearance.autotempout; + } + if (colorappearance.greenout) { toEdit.colorappearance.greenout = mods.colorappearance.greenout; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 47985400e..938f1bf97 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -290,6 +290,7 @@ struct ColorAppearanceParamsEdited { bool datacie; bool tonecie; bool tempout; + bool autotempout; bool greenout; bool ybout; bool tempsc; From 60160025f973d323c787ea9b81e5017d28a75f6f Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 3 Mar 2020 08:07:36 +0100 Subject: [PATCH 340/453] Ciecam02 chnage default settings cat02preset --- rtengine/improccoordinator.cc | 3 ++- rtgui/colorappearance.cc | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 15d477fdc..3cc58b01c 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -1158,7 +1158,8 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) } if (params->colorappearance.enabled && params->colorappearance.presetcat02 && params->colorappearance.autotempout) { - acListener->wbCamChanged(params->wb.temperature, params->wb.green); //real temp and tint + // acListener->wbCamChanged(params->wb.temperature, params->wb.green); //real temp and tint + acListener->wbCamChanged(params->wb.temperature, 1.f); //real temp and tint = 1. } } else { diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index ace7affd6..394298566 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -824,7 +824,7 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) presetcat02->set_active(pp->colorappearance.presetcat02); nexttemp = pp->wb.temperature; - nextgreen = pp->wb.green; + nextgreen = 1.; //pp->wb.green; if (pedited) { degree->setEditedState (pedited->colorappearance.degree ? Edited : UnEdited); @@ -1368,6 +1368,7 @@ void ColorAppearance::presetcat02pressed () gamut->set_active (true); gamutconn.block (false); degree->setAutoValue (true); + degree->setValue(80); degree->resetValue (false); adapscen->resetValue (false); adapscen->setAutoValue (true); @@ -1383,7 +1384,7 @@ void ColorAppearance::presetcat02pressed () ybscen->setValue(18); surround->set_active (0); adaplum->setValue(400.); - degreeout->setValue(70); + degreeout->setValue(80); ybout->setValue(18); tempout->setValue (nexttemp); greenout->setValue (nextgreen); From 0d921d366a6f37f7b04d678b2cdb2782e9251ba8 Mon Sep 17 00:00:00 2001 From: Desmis Date: Tue, 3 Mar 2020 08:16:47 +0100 Subject: [PATCH 341/453] another small change to cat02preset --- rtgui/colorappearance.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 394298566..159cd8260 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -1368,8 +1368,8 @@ void ColorAppearance::presetcat02pressed () gamut->set_active (true); gamutconn.block (false); degree->setAutoValue (true); - degree->setValue(80); degree->resetValue (false); + degree->setValue(80); adapscen->resetValue (false); adapscen->setAutoValue (true); degreeout->resetValue (false); From 6e4f91ebb9b80f89937d45ef335c625c2b3d1706 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 3 Mar 2020 13:59:48 +0100 Subject: [PATCH 342/453] raw crop for Canon PowerShot SX70 HS --- rtengine/camconst.json | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index f58167478..9b1b99d1b 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1240,6 +1240,11 @@ Camera constants: "ranges": { "white": 4050 } // nominal 4080-4093 }, + { // Quality C, only raw crop + "make_model": "Canon PowerShot SX70 HS", + "raw_crop": [ 96, 17, 5248, 3932 ] + }, + { // Quality C "make_model": "Canon PowerShot SX150 IS", "dcraw_matrix": [ 13481, -4867, -1063, -2074, 9960, 2472, -170, 1474, 3894 ], // Adobe DNG Converter 11.1 ColorMatrix1 (there is only one matrix and illuminant, and it's for daylight) From cc4de2e804f668bc8f625d1c7bf4374261c092f6 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 3 Mar 2020 15:06:49 +0100 Subject: [PATCH 343/453] Fixed some typos in comments --- rtengine/rawimagesource.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 49334d1dc..ff9472f1a 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3897,9 +3897,9 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, LUTf &xxx, LUTf &yyy, LUTf &YYY, LUTu &histxy) { - //calculate histogram x y in a rane of 158 colors + //calculate histogram x y in a range of 158 colors //this "choice" are guided by generally colors who are in nature skin, sky, etc. in those cases "steps" are small - // of course we can chnage to be more precise + // of course we can change to be more precise #ifdef _OPENMP #pragma omp parallel #endif @@ -5047,7 +5047,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } } - if (extra) {//always used because I amde this choice, brings better results + if (extra) {//always used because I made this choice, brings better results struct Tempgreen { float student; int tempref; From a356306728aa5c8e8142dbff419dc8fef9835135 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 3 Mar 2020 19:51:43 +0100 Subject: [PATCH 344/453] Silence some warnings --- rtengine/dcraw.cc | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/rtengine/dcraw.cc b/rtengine/dcraw.cc index 0858bdaaa..7f6e2ee31 100644 --- a/rtengine/dcraw.cc +++ b/rtengine/dcraw.cc @@ -1,7 +1,6 @@ #ifdef __GNUC__ #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wsign-compare" -#pragma GCC diagnostic ignored "-Wunused-macros" #if (__GNUC__ >= 6) #pragma GCC diagnostic ignored "-Wmisleading-indentation" #endif @@ -63,12 +62,8 @@ $Date: 2018/06/01 20:36:25 $ */ -#define DCRAW_VERSION "9.28" +//#define DCRAW_VERSION "9.28" -#ifndef _GNU_SOURCE -#define _GNU_SOURCE -#endif -#define _USE_MATH_DEFINES #include #include #include @@ -95,8 +90,12 @@ #ifdef WIN32 #include #include +#ifndef strcasecmp #define strcasecmp stricmp +#endif +#ifndef strncasecmp #define strncasecmp strnicmp +#endif typedef __int64 INT64; typedef unsigned __int64 UINT64; #else From 05f365c0d6f83425c7eff82b4d10945bf957bd07 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 4 Mar 2020 16:31:49 +0100 Subject: [PATCH 345/453] Added method Illuminant to make choices easier in free mode --- rtdata/languages/default | 10 ++++ rtengine/procparams.cc | 6 ++- rtengine/procparams.h | 1 + rtgui/colorappearance.cc | 106 +++++++++++++++++++++++++++++++++++++++ rtgui/colorappearance.h | 4 ++ rtgui/paramsedited.cc | 6 +++ rtgui/paramsedited.h | 1 + 7 files changed, 133 insertions(+), 1 deletion(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 265266a7c..543542feb 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -760,6 +760,7 @@ HISTORY_MSG_ICM_OUTPUT_TYPE;Output - Type HISTORY_MSG_ICM_WORKING_GAMMA;Working - Gamma HISTORY_MSG_ICM_WORKING_SLOPE;Working - Slope HISTORY_MSG_ICM_WORKING_TRC_METHOD;Working - TRC method +HISTORY_MSG_ILLUM;Illuminant HISTORY_MSG_LOCALCONTRAST_AMOUNT;Local Contrast - Amount HISTORY_MSG_LOCALCONTRAST_DARKNESS;Local Contrast - Darkness HISTORY_MSG_LOCALCONTRAST_ENABLED;Local Contrast @@ -1438,6 +1439,15 @@ TP_COLORAPP_GAMUT;Gamut control (L*a*b*) TP_COLORAPP_GAMUT_TOOLTIP;Allow gamut control in L*a*b* mode. TP_COLORAPP_HUE;Hue (h) TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. +TP_COLORAPP_ILLUM;Illuminant +TP_COLORAPP_ILLUM_TOOLTIP;Select the illuminant closest to the shooting conditions.\nIn general D50, but it can change depending on the time and lattitude. +TP_COLORAPP_ILA;Incandescent A +TP_COLORAPP_IL50;D50 +TP_COLORAPP_IL55;D55 +TP_COLORAPP_IL60;D60 +TP_COLORAPP_IL65;D65 +TP_COLORAPP_IL75;D75 +TP_COLORAPP_ILFREE;Free TP_COLORAPP_LABEL;CIE Color Appearance Model 2002 TP_COLORAPP_LABEL_CAM02;Image Adjustments TP_COLORAPP_LABEL_SCENE;Scene Conditions diff --git a/rtengine/procparams.cc b/rtengine/procparams.cc index a6707fb86..e795d9bd9 100644 --- a/rtengine/procparams.cc +++ b/rtengine/procparams.cc @@ -1374,6 +1374,7 @@ ColorAppearanceParams::ColorAppearanceParams() : adaplum(16), badpixsl(0), wbmodel("RawT"), + illum("i50"), algo("No"), contrast(0.0), qcontrast(0.0), @@ -1392,7 +1393,7 @@ ColorAppearanceParams::ColorAppearanceParams() : autotempout(true), ybout(18), greenout(1.0), - tempsc(5000), + tempsc(5003), greensc(1.0), presetcat02(false) { @@ -1421,6 +1422,7 @@ bool ColorAppearanceParams::operator ==(const ColorAppearanceParams& other) cons && adaplum == other.adaplum && badpixsl == other.badpixsl && wbmodel == other.wbmodel + && illum == other.illum && algo == other.algo && contrast == other.contrast && qcontrast == other.qcontrast @@ -3214,6 +3216,7 @@ int ProcParams::save(const Glib::ustring& fname, const Glib::ustring& fname2, bo saveToKeyfile(!pedited || pedited->colorappearance.adaplum, "Color appearance", "AdaptLum", colorappearance.adaplum, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.badpixsl, "Color appearance", "Badpixsl", colorappearance.badpixsl, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.wbmodel, "Color appearance", "Model", colorappearance.wbmodel, keyFile); + saveToKeyfile(!pedited || pedited->colorappearance.illum, "Color appearance", "Illum", colorappearance.illum, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.algo, "Color appearance", "Algorithm", colorappearance.algo, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.jlight, "Color appearance", "J-Light", colorappearance.jlight, keyFile); saveToKeyfile(!pedited || pedited->colorappearance.qbright, "Color appearance", "Q-Bright", colorappearance.qbright, keyFile); @@ -4208,6 +4211,7 @@ int ProcParams::load(const Glib::ustring& fname, ParamsEdited* pedited) assignFromKeyfile(keyFile, "Color appearance", "AdaptLum", pedited, colorappearance.adaplum, pedited->colorappearance.adaplum); assignFromKeyfile(keyFile, "Color appearance", "Badpixsl", pedited, colorappearance.badpixsl, pedited->colorappearance.badpixsl); assignFromKeyfile(keyFile, "Color appearance", "Model", pedited, colorappearance.wbmodel, pedited->colorappearance.wbmodel); + assignFromKeyfile(keyFile, "Color appearance", "Illum", pedited, colorappearance.illum, pedited->colorappearance.illum); assignFromKeyfile(keyFile, "Color appearance", "Algorithm", pedited, colorappearance.algo, pedited->colorappearance.algo); assignFromKeyfile(keyFile, "Color appearance", "J-Light", pedited, colorappearance.jlight, pedited->colorappearance.jlight); assignFromKeyfile(keyFile, "Color appearance", "Q-Bright", pedited, colorappearance.qbright, pedited->colorappearance.qbright); diff --git a/rtengine/procparams.h b/rtengine/procparams.h index 17cf64a69..aabe1e7ae 100644 --- a/rtengine/procparams.h +++ b/rtengine/procparams.h @@ -661,6 +661,7 @@ struct ColorAppearanceParams { double adaplum; int badpixsl; Glib::ustring wbmodel; + Glib::ustring illum; Glib::ustring algo; double contrast; double qcontrast; diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 159cd8260..4d3db4081 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -221,6 +221,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" auto m = ProcEventMapper::getInstance(); Evcatpreset = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_CAT02PRESET"); EvCATAutotempout = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_TEMPOUT"); + EvCATillum = m->newEvent(LUMINANCECURVE, "HISTORY_MSG_ILLUM"); //preset button cat02 presetcat02 = Gtk::manage (new Gtk::CheckButton (M ("TP_COLORAPP_PRESETCAT02"))); presetcat02->set_tooltip_markup (M("TP_COLORAPP_PRESETCAT02_TIP")); @@ -285,6 +286,25 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" wbmHBox->pack_start (*wbmodel); p1VBox->pack_start (*wbmHBox); + + Gtk::HBox* illumHBox = Gtk::manage (new Gtk::HBox ()); + illumHBox->set_spacing (2); + illumHBox->set_tooltip_markup (M ("TP_COLORAPP_ILLUM_TOOLTIP")); + Gtk::Label* illumLab = Gtk::manage (new Gtk::Label (M ("TP_COLORAPP_ILLUM") + ":")); + illumHBox->pack_start (*illumLab, Gtk::PACK_SHRINK); + illum = Gtk::manage (new MyComboBoxText ()); + illum->append (M ("TP_COLORAPP_ILA")); + illum->append (M ("TP_COLORAPP_IL50")); + illum->append (M ("TP_COLORAPP_IL55")); + illum->append (M ("TP_COLORAPP_IL60")); + illum->append (M ("TP_COLORAPP_IL65")); + illum->append (M ("TP_COLORAPP_IL75")); + illum->append (M ("TP_COLORAPP_ILFREE")); + + illum->set_active (0); + illumHBox->pack_start (*illum); + p1VBox->pack_start (*illumHBox); + Gtk::Image* itempL = Gtk::manage (new RTImage ("circle-blue-small.png")); Gtk::Image* itempR = Gtk::manage (new RTImage ("circle-yellow-small.png")); Gtk::Image* igreenL = Gtk::manage (new RTImage ("circle-magenta-small.png")); @@ -701,6 +721,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" // surrconn = surrsource->signal_toggled().connect ( sigc::mem_fun (*this, &ColorAppearance::surrsource_toggled) ); wbmodelconn = wbmodel->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::wbmodelChanged) ); + illumconn = illum->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::illumChanged) ); algoconn = algo->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::algoChanged) ); surroundconn = surround->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::surroundChanged) ); surrsrcconn = surrsrc->signal_changed().connect ( sigc::mem_fun (*this, &ColorAppearance::surrsrcChanged) ); @@ -777,6 +798,7 @@ void ColorAppearance::neutral_pressed () greensc->resetValue (false); badpixsl->resetValue (false); wbmodel->set_active (0); + illum->set_active (1); toneCurveMode->set_active (0); toneCurveMode2->set_active (0); toneCurveMode3->set_active (0); @@ -938,6 +960,30 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) // Have to be manually called to handle initial state update wbmodelChanged(); + illumconn.block (true); + + if (pedited && !pedited->colorappearance.illum) { + illum->set_active (7); + } else if (pp->colorappearance.illum == "iA") { + illum->set_active (0); + } else if (pp->colorappearance.illum == "i50") { + illum->set_active (1); + } else if (pp->colorappearance.illum == "i55") { + illum->set_active (2); + } else if (pp->colorappearance.illum == "i60") { + illum->set_active (3); + } else if (pp->colorappearance.illum == "i65") { + illum->set_active (4); + } else if (pp->colorappearance.illum == "i75") { + illum->set_active (5); + } else if (pp->colorappearance.illum == "ifree") { + illum->set_active (6); + } + + illumconn.block (false); + // Have to be manually called to handle initial state update + illumChanged(); + algoconn.block (true); if (pedited && !pedited->colorappearance.algo) { @@ -1123,6 +1169,7 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pedited->colorappearance.surround = surround->get_active_text() != M ("GENERAL_UNCHANGED"); pedited->colorappearance.surrsrc = surrsrc->get_active_text() != M ("GENERAL_UNCHANGED"); pedited->colorappearance.wbmodel = wbmodel->get_active_text() != M ("GENERAL_UNCHANGED"); + pedited->colorappearance.illum = illum->get_active_text() != M ("GENERAL_UNCHANGED"); pedited->colorappearance.algo = algo->get_active_text() != M ("GENERAL_UNCHANGED"); // pedited->colorappearance.surrsource = !surrsource->get_inconsistent(); pedited->colorappearance.gamut = !gamut->get_inconsistent(); @@ -1173,7 +1220,22 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) pp->colorappearance.wbmodel = "RawTCAT02"; } else if (wbmodel->get_active_row_number() == 2) { pp->colorappearance.wbmodel = "free"; + } + if (illum->get_active_row_number() == 0) { + pp->colorappearance.illum = "iA"; + } else if (illum->get_active_row_number() == 1) { + pp->colorappearance.illum = "i50"; + } else if (illum->get_active_row_number() == 2) { + pp->colorappearance.illum = "i55"; + } else if (illum->get_active_row_number() == 3) { + pp->colorappearance.illum = "i60"; + } else if (illum->get_active_row_number() == 4) { + pp->colorappearance.illum = "i65"; + } else if (illum->get_active_row_number() == 5) { + pp->colorappearance.illum = "i75"; + } else if (illum->get_active_row_number() == 6) { + pp->colorappearance.illum = "ifree"; } if (algo->get_active_row_number() == 0) { @@ -1358,6 +1420,7 @@ void ColorAppearance::presetcat02pressed () greensc->resetValue (false); badpixsl->resetValue (false); wbmodel->set_active (0); + illum->set_active (1); toneCurveMode->set_active (0); toneCurveMode2->set_active (0); toneCurveMode3->set_active (0); @@ -1427,6 +1490,7 @@ void ColorAppearance::presetcat02pressed () ybscen->setAutoValue (true); surrsrc->set_active (0); wbmodel->set_active (0); + illum->set_active (1); tempsc->resetValue (false); greensc->resetValue (false); adapscen->resetValue (false); @@ -1884,13 +1948,17 @@ void ColorAppearance::surroundChanged () void ColorAppearance::wbmodelChanged () { if (wbmodel->get_active_row_number() == 0 || wbmodel->get_active_row_number() == 1) { + illum->hide(); tempsc->hide(); greensc->hide(); + tempsc->setValue (5003); + greensc->setValue (1); } if (wbmodel->get_active_row_number() == 2) { tempsc->show(); greensc->show(); + illum->show(); } if (listener && (multiImage || getEnabled()) ) { @@ -1898,6 +1966,43 @@ void ColorAppearance::wbmodelChanged () } } +void ColorAppearance::illumChanged () +{ + if (illum->get_active_row_number() == 0) { + tempsc->setValue (2856); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 1) { + tempsc->setValue (5003); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 2) { + tempsc->setValue (5503); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 3) { + tempsc->setValue (6000); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 4) { + tempsc->setValue (6504); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 5) { + tempsc->setValue (7504); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 6) { + tempsc->set_sensitive(true); + greensc->set_sensitive(true); + } + + if (listener && (multiImage || getEnabled()) ) { + listener->panelChanged (EvCATillum, illum->get_active_text ()); + } +} + + void ColorAppearance::algoChanged () { @@ -2000,6 +2105,7 @@ void ColorAppearance::setBatchMode (bool batchMode) surround->append (M ("GENERAL_UNCHANGED")); surrsrc->append (M ("GENERAL_UNCHANGED")); wbmodel->append (M ("GENERAL_UNCHANGED")); + illum->append (M ("GENERAL_UNCHANGED")); algo->append (M ("GENERAL_UNCHANGED")); toneCurveMode->append (M ("GENERAL_UNCHANGED")); toneCurveMode2->append (M ("GENERAL_UNCHANGED")); diff --git a/rtgui/colorappearance.h b/rtgui/colorappearance.h index 863787118..c326b06f9 100644 --- a/rtgui/colorappearance.h +++ b/rtgui/colorappearance.h @@ -53,6 +53,7 @@ public: void surroundChanged (); void surrsrcChanged (); void wbmodelChanged (); + void illumChanged (); void algoChanged (); void surrsource_toggled (); void gamut_toggled (); @@ -102,6 +103,7 @@ public: private: rtengine::ProcEvent Evcatpreset; rtengine::ProcEvent EvCATAutotempout; + rtengine::ProcEvent EvCATillum; bool bgTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); bool srTTipQuery (int x, int y, bool keyboard_tooltip, const Glib::RefPtr& tooltip); void foldAllButMe (GdkEventButton* event, MyExpander *expander); @@ -156,6 +158,8 @@ private: sigc::connection surroundconn; MyComboBoxText* wbmodel; sigc::connection wbmodelconn; + MyComboBoxText* illum; + sigc::connection illumconn; MyComboBoxText* algo; sigc::connection algoconn; sigc::connection surrconn; diff --git a/rtgui/paramsedited.cc b/rtgui/paramsedited.cc index 52eb7dbe6..48ba4c341 100644 --- a/rtgui/paramsedited.cc +++ b/rtgui/paramsedited.cc @@ -219,6 +219,7 @@ void ParamsEdited::set(bool v) colorappearance.adaplum = v; colorappearance.badpixsl = v; colorappearance.wbmodel = v; + colorappearance.illum = v; colorappearance.algo = v; colorappearance.jlight = v; @@ -812,6 +813,7 @@ void ParamsEdited::initFrom(const std::vector& colorappearance.adaplum = colorappearance.adaplum && p.colorappearance.adaplum == other.colorappearance.adaplum; colorappearance.badpixsl = colorappearance.badpixsl && p.colorappearance.badpixsl == other.colorappearance.badpixsl; colorappearance.wbmodel = colorappearance.wbmodel && p.colorappearance.wbmodel == other.colorappearance.wbmodel; + colorappearance.illum = colorappearance.illum && p.colorappearance.illum == other.colorappearance.illum; colorappearance.algo = colorappearance.algo && p.colorappearance.algo == other.colorappearance.algo; colorappearance.jlight = colorappearance.jlight && p.colorappearance.jlight == other.colorappearance.jlight; colorappearance.qbright = colorappearance.qbright && p.colorappearance.qbright == other.colorappearance.qbright; @@ -2010,6 +2012,10 @@ void ParamsEdited::combine(rtengine::procparams::ProcParams& toEdit, const rteng toEdit.colorappearance.wbmodel = mods.colorappearance.wbmodel; } + if (colorappearance.illum) { + toEdit.colorappearance.illum = mods.colorappearance.illum; + } + if (colorappearance.algo) { toEdit.colorappearance.algo = mods.colorappearance.algo; } diff --git a/rtgui/paramsedited.h b/rtgui/paramsedited.h index 938f1bf97..d2707ec11 100644 --- a/rtgui/paramsedited.h +++ b/rtgui/paramsedited.h @@ -275,6 +275,7 @@ struct ColorAppearanceParamsEdited { bool ybscen; bool badpixsl; bool wbmodel; + bool illum; bool algo; bool jlight; bool qbright; From bb54a97436585cd7adfb8f63ab5cdfcc747b1089 Mon Sep 17 00:00:00 2001 From: Desmis Date: Wed, 4 Mar 2020 18:12:06 +0100 Subject: [PATCH 346/453] Ciecam02 change label and tooltip --- rtdata/languages/default | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 543542feb..517b68cbd 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1441,7 +1441,7 @@ TP_COLORAPP_HUE;Hue (h) TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. TP_COLORAPP_ILLUM;Illuminant TP_COLORAPP_ILLUM_TOOLTIP;Select the illuminant closest to the shooting conditions.\nIn general D50, but it can change depending on the time and lattitude. -TP_COLORAPP_ILA;Incandescent A +TP_COLORAPP_ILA;Incandescent StdA 2856K TP_COLORAPP_IL50;D50 TP_COLORAPP_IL55;D55 TP_COLORAPP_IL60;D60 @@ -1460,7 +1460,7 @@ TP_COLORAPP_MODEL_TOOLTIP;White-Point Model.\n\nWB [RT] + [output]: RT's TP_COLORAPP_NEUTRAL;Reset TP_COLORAPP_NEUTRAL_TIP;Reset all sliders checkbox and curves to their default values TP_COLORAPP_PRESETCAT02;Preset cat02 automatic -TP_COLORAPP_PRESETCAT02_TIP;Set combobox, sliders, temp, green so that Cat02 automatic is preset.\nYou must change Cat02 adaptation Viewing conditions if need.\nYou can change Temperature and Tint Viewing conditions if need, and other settings if need. +TP_COLORAPP_PRESETCAT02_TIP;Set combobox, sliders, temp, green so that Cat02 automatic is preset.\nYou can change illuminant shooting conditions.\nYou must change Cat02 adaptation Viewing conditions if need.\nYou can change Temperature and Tint Viewing conditions if need, and other settings if need. TP_COLORAPP_RSTPRO;Red & skin-tones protection TP_COLORAPP_RSTPRO_TOOLTIP;Red & skin-tones protection affects both sliders and curves. TP_COLORAPP_SURROUND;Surround From 6c96e5a0a4d052f840852dcda481ed96046357ea Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 5 Mar 2020 08:10:47 +0100 Subject: [PATCH 347/453] Added D41 to Ciecam02 illuminant --- rtdata/languages/default | 4 ++- rtgui/colorappearance.cc | 61 +++++++++++++++++++++++----------------- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/rtdata/languages/default b/rtdata/languages/default index 517b68cbd..fe6ddaa7c 100644 --- a/rtdata/languages/default +++ b/rtdata/languages/default @@ -1442,6 +1442,7 @@ TP_COLORAPP_HUE_TOOLTIP;Hue (h) - angle between 0° and 360°. TP_COLORAPP_ILLUM;Illuminant TP_COLORAPP_ILLUM_TOOLTIP;Select the illuminant closest to the shooting conditions.\nIn general D50, but it can change depending on the time and lattitude. TP_COLORAPP_ILA;Incandescent StdA 2856K +TP_COLORAPP_IL41;D41 TP_COLORAPP_IL50;D50 TP_COLORAPP_IL55;D55 TP_COLORAPP_IL60;D60 @@ -1477,7 +1478,8 @@ TP_COLORAPP_TCMODE_LABEL2;Curve mode 2 TP_COLORAPP_TCMODE_LABEL3;Curve chroma mode TP_COLORAPP_TCMODE_LIGHTNESS;Lightness TP_COLORAPP_TCMODE_SATUR;Saturation -TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD50 temp=5003\nD55 temp=5503\nD65 temp=6504\nD75 temp=7504 +TP_COLORAPP_TEMP_TOOLTIP;To select an illuminant, always set Tint=1.\n\nA temp=2856\nD41 temp=4100\nD50 temp=5003\nD55 temp=5503\nD60 temp=6000\nD65 temp=6504\nD75 temp=7504 +TP_COLORAPP_TEMP2_TOOLTIP;Either symmetrical mode temp = White balance.\nEither select illuminant always set Tint=1.\n\nA temp=2856\nD41 temp=4100\nD50 temp=5003\nD55 temp=5503\nD60 temp=6000\nD65 temp=6504\nD75 temp=7504 TP_COLORAPP_TEMPOUT_TOOLTIP;Disable to chnage temperature and tint TP_COLORAPP_TONECIE;Tone mapping using CIECAM02 TP_COLORAPP_TONECIE_TOOLTIP;If this option is disabled, tone mapping is done in L*a*b* space.\nIf this option is enabled, tone mapping is done using CIECAM02.\nThe Tone Mapping tool must be enabled for this setting to take effect. diff --git a/rtgui/colorappearance.cc b/rtgui/colorappearance.cc index 4d3db4081..bdbe3de3a 100644 --- a/rtgui/colorappearance.cc +++ b/rtgui/colorappearance.cc @@ -33,7 +33,7 @@ #define MINTEMP0 2000 //1200 #define MAXTEMP0 12000 //12000 -#define CENTERTEMP0 5000 +#define CENTERTEMP0 5003 #define MINGREEN0 0.8 #define MAXGREEN0 1.2 @@ -242,7 +242,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" p1VBox = Gtk::manage ( new Gtk::VBox()); p1VBox->set_spacing (2); - degree = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 100.)); + degree = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 90.)); if (degree->delay < options.adjusterMaxDelay) { degree->delay = options.adjusterMaxDelay; @@ -294,6 +294,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" illumHBox->pack_start (*illumLab, Gtk::PACK_SHRINK); illum = Gtk::manage (new MyComboBoxText ()); illum->append (M ("TP_COLORAPP_ILA")); + illum->append (M ("TP_COLORAPP_IL41")); illum->append (M ("TP_COLORAPP_IL50")); illum->append (M ("TP_COLORAPP_IL55")); illum->append (M ("TP_COLORAPP_IL60")); @@ -628,7 +629,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" // Gtk::Image* iblueredL = Gtk::manage (new RTImage ("circle-blue-small.png")); // Gtk::Image* iblueredR = Gtk::manage (new RTImage ("circle-red-small.png")); - degreeout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 100.)); + degreeout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_CIECAT_DEGREE"), 0., 100., 1., 90.)); if (degreeout->delay < options.adjusterMaxDelay) { degreeout->delay = options.adjusterMaxDelay; @@ -646,7 +647,7 @@ ColorAppearance::ColorAppearance () : FoldableToolPanel (this, "colorappearance" tempout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_TEMPERATURE"), MINTEMP0, MAXTEMP0, 5, CENTERTEMP0, itempR1, itempL1, &wbSlider2Temp, &wbTemp2Slider)); greenout = Gtk::manage (new Adjuster (M ("TP_WBALANCE_GREEN"), MINGREEN0, MAXGREEN0, 0.001, 1.0, igreenR1, igreenL1)); ybout = Gtk::manage (new Adjuster (M ("TP_COLORAPP_MEANLUMINANCE"), 5, 90, 1, 18)); - tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP_TOOLTIP")); + tempout->set_tooltip_markup (M ("TP_COLORAPP_TEMP2_TOOLTIP")); tempout->throwOnButtonRelease(); tempout->addAutoButton (M ("TP_COLORAPP_TEMPOUT_TOOLTIP")); @@ -798,7 +799,7 @@ void ColorAppearance::neutral_pressed () greensc->resetValue (false); badpixsl->resetValue (false); wbmodel->set_active (0); - illum->set_active (1); + illum->set_active (2); toneCurveMode->set_active (0); toneCurveMode2->set_active (0); toneCurveMode3->set_active (0); @@ -963,21 +964,23 @@ void ColorAppearance::read (const ProcParams* pp, const ParamsEdited* pedited) illumconn.block (true); if (pedited && !pedited->colorappearance.illum) { - illum->set_active (7); + illum->set_active (8); } else if (pp->colorappearance.illum == "iA") { illum->set_active (0); - } else if (pp->colorappearance.illum == "i50") { + } else if (pp->colorappearance.illum == "i41") { illum->set_active (1); - } else if (pp->colorappearance.illum == "i55") { + } else if (pp->colorappearance.illum == "i50") { illum->set_active (2); - } else if (pp->colorappearance.illum == "i60") { + } else if (pp->colorappearance.illum == "i55") { illum->set_active (3); - } else if (pp->colorappearance.illum == "i65") { + } else if (pp->colorappearance.illum == "i60") { illum->set_active (4); - } else if (pp->colorappearance.illum == "i75") { + } else if (pp->colorappearance.illum == "i65") { illum->set_active (5); - } else if (pp->colorappearance.illum == "ifree") { + } else if (pp->colorappearance.illum == "i75") { illum->set_active (6); + } else if (pp->colorappearance.illum == "ifree") { + illum->set_active (7); } illumconn.block (false); @@ -1225,16 +1228,18 @@ void ColorAppearance::write (ProcParams* pp, ParamsEdited* pedited) if (illum->get_active_row_number() == 0) { pp->colorappearance.illum = "iA"; } else if (illum->get_active_row_number() == 1) { - pp->colorappearance.illum = "i50"; + pp->colorappearance.illum = "i41"; } else if (illum->get_active_row_number() == 2) { - pp->colorappearance.illum = "i55"; + pp->colorappearance.illum = "i50"; } else if (illum->get_active_row_number() == 3) { - pp->colorappearance.illum = "i60"; + pp->colorappearance.illum = "i55"; } else if (illum->get_active_row_number() == 4) { - pp->colorappearance.illum = "i65"; + pp->colorappearance.illum = "i60"; } else if (illum->get_active_row_number() == 5) { - pp->colorappearance.illum = "i75"; + pp->colorappearance.illum = "i65"; } else if (illum->get_active_row_number() == 6) { + pp->colorappearance.illum = "i75"; + } else if (illum->get_active_row_number() == 7) { pp->colorappearance.illum = "ifree"; } @@ -1420,7 +1425,7 @@ void ColorAppearance::presetcat02pressed () greensc->resetValue (false); badpixsl->resetValue (false); wbmodel->set_active (0); - illum->set_active (1); + illum->set_active (2); toneCurveMode->set_active (0); toneCurveMode2->set_active (0); toneCurveMode3->set_active (0); @@ -1432,7 +1437,7 @@ void ColorAppearance::presetcat02pressed () gamutconn.block (false); degree->setAutoValue (true); degree->resetValue (false); - degree->setValue(80); + degree->setValue(90); adapscen->resetValue (false); adapscen->setAutoValue (true); degreeout->resetValue (false); @@ -1447,7 +1452,7 @@ void ColorAppearance::presetcat02pressed () ybscen->setValue(18); surround->set_active (0); adaplum->setValue(400.); - degreeout->setValue(80); + degreeout->setValue(90); ybout->setValue(18); tempout->setValue (nexttemp); greenout->setValue (nextgreen); @@ -1490,7 +1495,7 @@ void ColorAppearance::presetcat02pressed () ybscen->setAutoValue (true); surrsrc->set_active (0); wbmodel->set_active (0); - illum->set_active (1); + illum->set_active (2); tempsc->resetValue (false); greensc->resetValue (false); adapscen->resetValue (false); @@ -1973,26 +1978,30 @@ void ColorAppearance::illumChanged () tempsc->set_sensitive(false); greensc->set_sensitive(false); } else if (illum->get_active_row_number() == 1) { - tempsc->setValue (5003); + tempsc->setValue (4100); tempsc->set_sensitive(false); greensc->set_sensitive(false); } else if (illum->get_active_row_number() == 2) { - tempsc->setValue (5503); + tempsc->setValue (5003); tempsc->set_sensitive(false); greensc->set_sensitive(false); } else if (illum->get_active_row_number() == 3) { - tempsc->setValue (6000); + tempsc->setValue (5503); tempsc->set_sensitive(false); greensc->set_sensitive(false); } else if (illum->get_active_row_number() == 4) { - tempsc->setValue (6504); + tempsc->setValue (6000); tempsc->set_sensitive(false); greensc->set_sensitive(false); } else if (illum->get_active_row_number() == 5) { - tempsc->setValue (7504); + tempsc->setValue (6504); tempsc->set_sensitive(false); greensc->set_sensitive(false); } else if (illum->get_active_row_number() == 6) { + tempsc->setValue (7504); + tempsc->set_sensitive(false); + greensc->set_sensitive(false); + } else if (illum->get_active_row_number() == 7) { tempsc->set_sensitive(true); greensc->set_sensitive(true); } From e3b5a5974884baca831d39ff80750256596b3be8 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 5 Mar 2020 10:41:22 +0100 Subject: [PATCH 348/453] First improvment to histxyY 158 to 192 --- rtengine/rawimagesource.cc | 424 +++++++++++++++++++++---------------- 1 file changed, 245 insertions(+), 179 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index ff9472f1a..53c4aaff0 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -3897,7 +3897,7 @@ void RawImageSource::getRowStartEnd (int x, int &start, int &end) static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const array2D & yc, const array2D & Yc, LUTf &xxx, LUTf &yyy, LUTf &YYY, LUTu &histxy) { - //calculate histogram x y in a range of 158 colors + //calculate histogram x y in a range of 190 colors //this "choice" are guided by generally colors who are in nature skin, sky, etc. in those cases "steps" are small // of course we can change to be more precise #ifdef _OPENMP @@ -4000,279 +4000,345 @@ static void histoxyY(int bfhitc, int bfwitc, const array2D & xc, const ar nh = 32; } else if (yc[y][x] < 0.32f) { nh = 33; - } else if (yc[y][x] < 0.34f) { + } else if (yc[y][x] < 0.33f) { nh = 34; - } else if (yc[y][x] < 0.37f) { + } else if (yc[y][x] < 0.335f) { nh = 35; - } else if (yc[y][x] < 0.4f) { + } else if (yc[y][x] < 0.34f) { nh = 36; - } else if (yc[y][x] < 0.45f) { + } else if (yc[y][x] < 0.35f) { nh = 37; - } else if (yc[y][x] < 0.5f) { + } else if (yc[y][x] < 0.37f) { nh = 38; - } else if (yc[y][x] < 0.55f) { + } else if (yc[y][x] < 0.4f) { nh = 39; - } else if (yc[y][x] < 0.7f) { + } else if (yc[y][x] < 0.45f) { nh = 40; + } else if (yc[y][x] < 0.5f) { + nh = 41; + } else if (yc[y][x] < 0.55f) { + nh = 42; + } else if (yc[y][x] < 0.7f) { + nh = 43; } } else if (xc[y][x] < 0.335f && yc[y][x] > 0.1f) {//neutral if (yc[y][x] < 0.2f) { - nh = 41; - } else if (yc[y][x] < 0.24f) { - nh = 42; - } else if (yc[y][x] < 0.29f) { - nh = 43; - } else if (yc[y][x] < 0.32f) { nh = 44; - } else if (yc[y][x] < 0.33f) { + } else if (yc[y][x] < 0.24f) { nh = 45; - } else if (yc[y][x] < 0.34f) { + } else if (yc[y][x] < 0.29f) { nh = 46; - } else if (yc[y][x] < 0.35f) { + } else if (yc[y][x] < 0.32f) { nh = 47; - } else if (yc[y][x] < 0.36f) { + } else if (yc[y][x] < 0.33f) { nh = 48; - } else if (yc[y][x] < 0.37f) { - nh = 47; - } else if (yc[y][x] < 0.38f) { - nh = 48; - } else if (yc[y][x] < 0.4f) { + } else if (yc[y][x] < 0.335f) { nh = 49; - } else if (yc[y][x] < 0.45f) { + } else if (yc[y][x] < 0.34f) { nh = 50; - } else if (yc[y][x] < 0.5f) { + } else if (yc[y][x] < 0.345f) { nh = 51; - } else if (yc[y][x] < 0.55f) { + } else if (yc[y][x] < 0.35f) { nh = 52; - } else if (yc[y][x] < 0.7f) { + } else if (yc[y][x] < 0.355f) { nh = 53; + } else if (yc[y][x] < 0.36f) { + nh = 54; + } else if (yc[y][x] < 0.37f) { + nh = 55; + } else if (yc[y][x] < 0.38f) { + nh = 56; + } else if (yc[y][x] < 0.4f) { + nh = 57; + } else if (yc[y][x] < 0.45f) { + nh = 58; + } else if (yc[y][x] < 0.5f) { + nh = 59; + } else if (yc[y][x] < 0.55f) { + nh = 60; + } else if (yc[y][x] < 0.7f) { + nh = 61; + } + } else if (xc[y][x] < 0.340f && yc[y][x] > 0.1f) {//neutral + if (yc[y][x] < 0.2f) { + nh = 62; + } else if (yc[y][x] < 0.24f) { + nh = 63; + } else if (yc[y][x] < 0.29f) { + nh = 64; + } else if (yc[y][x] < 0.32f) { + nh = 65; + } else if (yc[y][x] < 0.325f) { + nh = 66; + } else if (yc[y][x] < 0.33f) { + nh = 67; + } else if (yc[y][x] < 0.335f) { + nh = 68; + } else if (yc[y][x] < 0.34f) { + nh = 69; + } else if (yc[y][x] < 0.345f) { + nh = 70; + } else if (yc[y][x] < 0.35f) { + nh = 71; + } else if (yc[y][x] < 0.355f) { + nh = 72; + } else if (yc[y][x] < 0.36f) { + nh = 73; + } else if (yc[y][x] < 0.37f) { + nh = 74; + } else if (yc[y][x] < 0.38f) { + nh = 75; + } else if (yc[y][x] < 0.4f) { + nh = 76; + } else if (yc[y][x] < 0.45f) { + nh = 77; + } else if (yc[y][x] < 0.5f) { + nh = 78; + } else if (yc[y][x] < 0.55f) { + nh = 79; + } else if (yc[y][x] < 0.7f) { + nh = 80; } } else if (xc[y][x] < 0.345f && yc[y][x] > 0.1f) {//neutral 37 if (yc[y][x] < 0.2f) { - nh = 54; + nh = 81; } else if (yc[y][x] < 0.24f) { - nh = 55; + nh = 82; } else if (yc[y][x] < 0.29f) { - nh = 56; + nh = 83; } else if (yc[y][x] < 0.32f) { - nh = 57; - } else if (yc[y][x] < 0.33f) {//34 - nh = 58; + nh = 84; + } else if (yc[y][x] < 0.33f) { + nh = 85; + } else if (yc[y][x] < 0.335f) { + nh = 86; } else if (yc[y][x] < 0.34f) { - nh = 59; - } else if (yc[y][x] < 0.35f) {//34 - nh = 60; - } else if (yc[y][x] < 0.36f) {//34 - nh = 61; + nh = 87; + } else if (yc[y][x] < 0.345f) { + nh = 88; + } else if (yc[y][x] < 0.35f) { + nh = 89; + } else if (yc[y][x] < 0.355f) { + nh = 90; + } else if (yc[y][x] < 0.36f) { + nh = 91; } else if (yc[y][x] < 0.37f) { - nh = 62; + nh = 92; } else if (yc[y][x] < 0.38f) { - nh = 63; + nh = 93; } else if (yc[y][x] < 0.39f) { - nh = 64; + nh = 94; } else if (yc[y][x] < 0.4f) { - nh = 65; + nh = 95; } else if (yc[y][x] < 0.42f) { - nh = 66; + nh = 96; } else if (yc[y][x] < 0.45f) { - nh = 67; + nh = 97; } else if (yc[y][x] < 0.48f) { - nh = 68; + nh = 98; } else if (yc[y][x] < 0.5f) { - nh = 69; + nh = 99; } else if (yc[y][x] < 0.55f) { - nh = 70; + nh = 100; } else if (yc[y][x] < 0.65f) { - nh = 71; + nh = 101; } } else if (xc[y][x] < 0.355f && yc[y][x] > 0.1f) {//neutral 37 if (yc[y][x] < 0.2f) { - nh = 72; + nh = 102; } else if (yc[y][x] < 0.24f) { - nh = 73; + nh = 103; } else if (yc[y][x] < 0.29f) { - nh = 74; + nh = 104; } else if (yc[y][x] < 0.32f) { - nh = 75; - } else if (yc[y][x] < 0.33f) {//34 - nh = 76; + nh = 105; + } else if (yc[y][x] < 0.33f) { + nh = 106; + } else if (yc[y][x] < 0.335f) { + nh = 107; } else if (yc[y][x] < 0.34f) { - nh = 77; - } else if (yc[y][x] < 0.35f) {//34 - nh = 78; - } else if (yc[y][x] < 0.36f) {//34 - nh = 79; + nh = 108; + } else if (yc[y][x] < 0.345f) { + nh = 109; + } else if (yc[y][x] < 0.35f) { + nh = 110; + } else if (yc[y][x] < 0.355f) { + nh = 111; + } else if (yc[y][x] < 0.36f) { + nh = 112; } else if (yc[y][x] < 0.37f) { - nh = 80; + nh = 113; } else if (yc[y][x] < 0.38f) { - nh = 81; + nh = 114; } else if (yc[y][x] < 0.39f) { - nh = 82; + nh = 115; } else if (yc[y][x] < 0.4f) { - nh = 83; + nh = 116; } else if (yc[y][x] < 0.42f) { - nh = 84; + nh = 117; } else if (yc[y][x] < 0.45f) { - nh = 85; + nh = 118; } else if (yc[y][x] < 0.48f) { - nh = 86; + nh = 119; } else if (yc[y][x] < 0.5f) { - nh = 87; + nh = 120; } else if (yc[y][x] < 0.55f) { - nh = 88; + nh = 121; } else if (yc[y][x] < 0.65f) { - nh = 89; + nh = 122; } } else if (xc[y][x] < 0.365f && yc[y][x] > 0.15f) { //0.4 if (yc[y][x] < 0.2f) { - nh = 90; - } else if (yc[y][x] < 0.24f) { - nh = 91; - } else if (yc[y][x] < 0.29f) { - nh = 92; - } else if (yc[y][x] < 0.32f) { - nh = 93; - } else if (yc[y][x] < 0.33f) { - nh = 94; - } else if (yc[y][x] < 0.34f) { - nh = 95; - } else if (yc[y][x] < 0.36f) { - nh = 96; - } else if (yc[y][x] < 0.37f) { - nh = 97; - } else if (yc[y][x] < 0.38f) { - nh = 98; - } else if (yc[y][x] < 0.39f) { - nh = 99; - } else if (yc[y][x] < 0.4f) { - nh = 100; - } else if (yc[y][x] < 0.42f) { - nh = 101; - } else if (yc[y][x] < 0.45f) { - nh = 102; - } else if (yc[y][x] < 0.5f) { - nh = 103; - } else if (yc[y][x] < 0.55f) { - nh = 104; - } else if (yc[y][x] < 0.63f) { - nh = 105; - } - } else if (xc[y][x] < 0.405f && yc[y][x] > 0.15f) {//45 - if (yc[y][x] < 0.2f) { - nh = 106; - } else if (yc[y][x] < 0.24f) { - nh = 107; - } else if (yc[y][x] < 0.29f) { - nh = 108; - } else if (yc[y][x] < 0.32f) { - nh = 109; - } else if (yc[y][x] < 0.34f) { - nh = 110; - } else if (yc[y][x] < 0.37f) { - nh = 111; - } else if (yc[y][x] < 0.4f) { - nh = 112; - } else if (yc[y][x] < 0.45f) { - nh = 113; - } else if (yc[y][x] < 0.5f) { - nh = 114; - } else if (yc[y][x] < 0.55f) { - nh = 115; - } else if (yc[y][x] < 0.6f) { - nh = 116; - } - } else if (xc[y][x] < 0.445f && yc[y][x] > 0.15f) {//45 - if (yc[y][x] < 0.2f) { - nh = 117; - } else if (yc[y][x] < 0.24f) { - nh = 118; - } else if (yc[y][x] < 0.29f) { - nh = 119; - } else if (yc[y][x] < 0.32f) { - nh = 120; - } else if (yc[y][x] < 0.34f) { - nh = 121; - } else if (yc[y][x] < 0.37f) { - nh = 122; - } else if (yc[y][x] < 0.4f) { nh = 123; - } else if (yc[y][x] < 0.45f) { - nh = 124; - } else if (yc[y][x] < 0.5f) { - nh = 125; - } else if (yc[y][x] < 0.55f) { - nh = 126; - } else if (yc[y][x] < 0.58f) { - nh = 127; - } - } else if (xc[y][x] < 0.495f && yc[y][x] > 0.15f) { - if (yc[y][x] < 0.2f) { - nh = 128; } else if (yc[y][x] < 0.24f) { - nh = 129; + nh = 124; } else if (yc[y][x] < 0.29f) { - nh = 130; + nh = 125; } else if (yc[y][x] < 0.32f) { - nh = 131; + nh = 126; + } else if (yc[y][x] < 0.33f) { + nh = 127; } else if (yc[y][x] < 0.34f) { - nh = 132; + nh = 128; + } else if (yc[y][x] < 0.35f) { + nh = 129; + } else if (yc[y][x] < 0.36f) { + nh = 130; } else if (yc[y][x] < 0.37f) { + nh = 131; + } else if (yc[y][x] < 0.38f) { + nh = 132; + } else if (yc[y][x] < 0.39f) { nh = 133; } else if (yc[y][x] < 0.4f) { nh = 134; - } else if (yc[y][x] < 0.45f) { + } else if (yc[y][x] < 0.42f) { nh = 135; - } else if (yc[y][x] < 0.5f) { + } else if (yc[y][x] < 0.45f) { nh = 136; - } else if (yc[y][x] < 0.55f) { + } else if (yc[y][x] < 0.5f) { nh = 137; + } else if (yc[y][x] < 0.55f) { + nh = 138; + } else if (yc[y][x] < 0.63f) { + nh = 139; + } + } else if (xc[y][x] < 0.405f && yc[y][x] > 0.15f) {//45 + if (yc[y][x] < 0.2f) { + nh = 140; + } else if (yc[y][x] < 0.24f) { + nh = 141; + } else if (yc[y][x] < 0.29f) { + nh = 142; + } else if (yc[y][x] < 0.32f) { + nh = 143; + } else if (yc[y][x] < 0.34f) { + nh = 144; + } else if (yc[y][x] < 0.37f) { + nh = 145; + } else if (yc[y][x] < 0.4f) { + nh = 146; + } else if (yc[y][x] < 0.45f) { + nh = 147; + } else if (yc[y][x] < 0.5f) { + nh = 148; + } else if (yc[y][x] < 0.55f) { + nh = 149; + } else if (yc[y][x] < 0.6f) { + nh = 150; + } + } else if (xc[y][x] < 0.445f && yc[y][x] > 0.15f) {//45 + if (yc[y][x] < 0.2f) { + nh = 151; + } else if (yc[y][x] < 0.24f) { + nh = 152; + } else if (yc[y][x] < 0.29f) { + nh = 153; + } else if (yc[y][x] < 0.32f) { + nh = 154; + } else if (yc[y][x] < 0.34f) { + nh = 155; + } else if (yc[y][x] < 0.37f) { + nh = 156; + } else if (yc[y][x] < 0.4f) { + nh = 157; + } else if (yc[y][x] < 0.45f) { + nh = 158; + } else if (yc[y][x] < 0.5f) { + nh = 159; + } else if (yc[y][x] < 0.55f) { + nh = 160; + } else if (yc[y][x] < 0.58f) { + nh = 161; + } + } else if (xc[y][x] < 0.495f && yc[y][x] > 0.15f) { + if (yc[y][x] < 0.2f) { + nh = 162; + } else if (yc[y][x] < 0.24f) { + nh = 163; + } else if (yc[y][x] < 0.29f) { + nh = 164; + } else if (yc[y][x] < 0.32f) { + nh = 165; + } else if (yc[y][x] < 0.34f) { + nh = 166; + } else if (yc[y][x] < 0.37f) { + nh = 167; + } else if (yc[y][x] < 0.4f) { + nh = 168; + } else if (yc[y][x] < 0.45f) { + nh = 169; + } else if (yc[y][x] < 0.5f) { + nh = 170; + } else if (yc[y][x] < 0.55f) { + nh = 171; } } else if (xc[y][x] < 0.545f && yc[y][x] > 0.15f) { if (yc[y][x] < 0.2f) { - nh = 138; + nh = 172; } else if (yc[y][x] < 0.24f) { - nh = 139; + nh = 173; } else if (yc[y][x] < 0.29f) { - nh = 140; + nh = 174; } else if (yc[y][x] < 0.32f) { - nh = 141; + nh = 175; } else if (yc[y][x] < 0.34f) { - nh = 142; + nh = 176; } else if (yc[y][x] < 0.37f) { - nh = 143; + nh = 177; } else if (yc[y][x] < 0.4f) { - nh = 144; + nh = 178; } else if (yc[y][x] < 0.45f) { - nh = 145; + nh = 179; } else if (yc[y][x] < 0.5f) { - nh = 146; + nh = 180; } } else if (xc[y][x] < 0.595f && yc[y][x] > 0.15f) { if (yc[y][x] < 0.22f) { - nh = 147; + nh = 181; } else if (yc[y][x] < 0.25f) { - nh = 148; + nh = 182; } else if (yc[y][x] < 0.3f) { - nh = 149; + nh = 183; } else if (yc[y][x] < 0.35f) { - nh = 150; + nh = 184; } else if (yc[y][x] < 0.4f) { - nh = 151; + nh = 185; } else if (yc[y][x] < 0.45f) { - nh = 152; + nh = 186; } } else if (xc[y][x] < 0.65f && yc[y][x] > 0.12f) { if (yc[y][x] < 0.25f) { - nh = 153; + nh = 187; } else if (yc[y][x] < 0.3f) { - nh = 154; + nh = 188; } else if (yc[y][x] < 0.35f) { - nh = 155; + nh = 189; } else if (yc[y][x] < 0.45f) { - nh = 156; + nh = 190; } } else if (xc[y][x] < 0.75f && yc[y][x] > 0.1f) { - nh = 157; + nh = 191; } if (nh >= 0) { histxythr[nh]++; @@ -4714,7 +4780,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double float gmm[N_t]; float bmm[N_t]; - constexpr int siza = 158;//size of histogram + constexpr int siza = 192;//size of histogram //tempref and greenref are camera wb values. // I used them by default to select good spectral values !! From e63320eec9c11c55e3d6726de829d7027b6f9197 Mon Sep 17 00:00:00 2001 From: Desmis Date: Thu, 5 Mar 2020 13:36:37 +0100 Subject: [PATCH 349/453] Added new spectral datas near neutral --- rtengine/colortemp.cc | 38 +++++++++++++++++++++++++++++++++++++- rtengine/colortemp.h | 3 +++ rtengine/rawimagesource.cc | 16 ++++++++-------- 3 files changed, 48 insertions(+), 9 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index ec8641fc0..8ef1be27d 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -2408,6 +2408,41 @@ const double ColorTemp::Colorlab_n80_26_spect[97] = { -0.2047, -0.205, -0.2069, -0.208, -0.2099, -0.21, -0.2115, -0.21, -0.2106, -0.209, -0.2086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +//0,1767000 0,2207000 0,3142000 0,5269000 0,7018000 0,7605000 0,7580000 0,7366000 0,7182000 0,6929000 0,6661000 0,6542000 +//0,6420000 0,6085000 0,5752000 0,5728000 0,5723000 0,5318000 0,4982000 0,5226000 0,5670000 0,5929000 0,5977000 0,5975000 +//0,6002000 0,6065000 0,6177000 0,6352000 0,6526000 0,6623000 0,6633000 0,6593000 0,6517000 0,6479000 0,6607000 0,6908000 + +const double ColorTemp::JDC468_greyc14_66_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1767, 0.19, 0.2207, 0.25, 0.3142, 0.40, 0.5269, 0.63, 0.7018, 0.73, 0.7605, 0.76, 0.7580, 0.74, 0.7366, 0.725, 0.7182, 0.705, 0.6929, 0.68, 0.6661, 0.66, 0.6542, 0.65, + 0.642, 0.62, 0.6085, 0.585, 0.5752, 0.573, 0.5728, 0.573, 0.5723, 0.555, 0.5318, 0.51, 0.4982, 0.51, 0.5226, 0.54, 0.5670, 0.58, 0.5929, 0.594, 0.5977, 0.597, 0.5975, 0.6, + 0.6002, 0.602, 0.6065, 0.61, 0.6177, 0.62, 0.6352, 0.64, 0.6526, 0.66, 0.6623, 0.662, 0.6633, 0.66, 0.6593, 0.653, 0.6517, 0.65, 0.6479, 0.65, 0.6607, 0.69, 0.6908, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +//0,1325000 0,1637000 0,2222000 0,3492000 0,4523000 0,4897000 0,4918000 0,4840000 0,4761000 0,4638000 0,4538000 0,4582000 +// 0,4588000 0,4360000 0,4091000 0,4101000 0,4128000 0,3785000 0,3494000 0,3720000 0,4122000 0,4339000 0,4362000 0,4355000 +// 0,4395000 0,4475000 0,4606000 0,4807000 0,5006000 0,5125000 0,5145000 0,5112000 0,5029000 0,4992000 0,5150000 0,5526000 + +const double ColorTemp::JDC468_greym13_325_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.1325, 0.15, 0.1637, 0.2, 0.2222, 0.28, 0.3492, 0.40, 0.4523, 0.47, 0.4897, 0.49, 0.4918, 0.49, 0.4840, 0.48, 0.4761, 0.47, 0.4638, 0.46, 0.4538, 0.455, 0.4582, 0.458, + 0.4588, 0.45, 0.4360, 0.42, 0.4091, 0.41, 0.4101, 0.411, 0.4128, 0.405, 0.3785, 0.36, 0.3494, 0.36, 0.3720, 0.41, 0.4122, 0.425, 0.4339, 0.435, 0.4362, 0.597, 0.4355, 0.437, + 0.4395, 0.44, 0.4475, 0.45, 0.4606, 0.47, 0.4807, 0.49, 0.5006, 0.51, 0.5125, 0.513, 0.5145, 0.512, 0.5112, 0.51, 0.5029, 0.5, 0.4992, 0.51, 0.5150, 0.53, 0.5526, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + +//0,0823000 0,1036000 0,1337000 0,1966000 0,2468000 0,2679000 0,2728000 0,2726000 0,2724000 0,2698000 0,2705000 0,2810000 +// 0,2879000 0,2756000 0,2586000 0,2601000 0,2617000 0,2357000 0,2124000 0,2241000 0,2471000 0,2581000 0,2569000 0,2548000 +// 0,2579000 0,2653000 0,2765000 0,2941000 0,3126000 0,3230000 0,3238000 0,3189000 0,3091000 0,3043000 0,3200000 0,3579000 + +const double ColorTemp::JDC468_greyf26_156_spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0823, 0.1, 0.1036, 0.11, 0.1337, 0.16, 0.1966, 0.22, 0.2468, 0.255, 0.2679, 0.27, 0.2728, 0.273, 0.2726, 0.273, 0.2724, 0.271, 0.2698, 0.27, 0.2705, 0.275, 0.2810, 0.285, + 0.2879, 0.28, 0.2756, 0.26, 0.2586, 0.26, 0.2601, 0.261, 0.2617, 0.25, 0.2357, 0.22, 0.2124, 0.22, 0.2241, 0.23, 0.2471, 0.25, 0.2581, 0.278, 0.2569, 0.255, 0.2548, 0.255, + 0.2579, 0.26, 0.2653, 0.27, 0.2765, 0.28, 0.2941, 0.30, 0.3126, 0.32, 0.3230, 0.323, 0.3238, 0.32, 0.3189, 0.31, 0.3091, 0.302, 0.3043, 0.31, 0.3200, 0.34, 0.3579, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; + /* * Name: XYZtoCorColorTemp.c @@ -3449,7 +3484,8 @@ void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float J570_NeuQ1_spect, J570_NeuS7_spect, J570_NeuV10_spect, J570_NeuW18_spect, J570_NeuZ14_spect, //189 J570_NeuC18_spect, J570_NeuD17_spect, J570_NeuJ11_spect, J570_NeuL4_spect, Colorlab_n72_n2_spect, - Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect + Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect, + JDC468_greyc14_66_spect, JDC468_greym13_325_spect, JDC468_greyf26_156_spect }; diff --git a/rtengine/colortemp.h b/rtengine/colortemp.h index 5feed9d26..e96bf8563 100644 --- a/rtengine/colortemp.h +++ b/rtengine/colortemp.h @@ -367,6 +367,9 @@ public: static const double Colorlab_19_n69_spect[97]; static const double Colorlab_n80_10_spect[97]; static const double Colorlab_n80_26_spect[97]; + static const double JDC468_greyc14_66_spect[97]; + static const double JDC468_greym13_325_spect[97]; + static const double JDC468_greyf26_156_spect[97]; static void spectrum_to_xyz_daylight (double _m1, double _m2, double &x, double &y, double &z); static void spectrum_to_xyz_blackbody (double _temp, double &x, double &y, double &z); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 53c4aaff0..f876b8902 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4412,19 +4412,19 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Copyright (c) Jacques Desmis 6 - 2018 jdesmis@gmail.com Copyright (c) Ingo Weyrich 3 - 2020 (heckflosse67@gmx.de) - This algorithm try to find temperature correlation between 20 to 200 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. + This algorithm try to find temperature correlation between 20 to 203 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. I have test many many algorithms to find the first one that work :) Probably (sure) there are improvement to do... I have create a table temperature with temp and white point with 100 values between 2000K and 12000K we can obviously change these values, more...with different steps - I have create or recuparate and transformed 200 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is large enough. - I think this value of 200 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized + I have create or recuparate and transformed 203 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is large enough. + I think this value of 203 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized Of course we can increase this number :) 1) for the current raw file we create a table for each temp of RGB multipliers 2) then, I choose the "camera temp" to initialize calculation (why not) - 3) for this temp, I calculated XYZ values for the 200 spectral datas + 3) for this temp, I calculated XYZ values for the 203 spectral datas 4) then I create for the image an "histogram", but for xyY (Cie 1931 color space) 5) for each pixel (in fact to accelerate only 1/10 for and 1/10 for y), I determine for each couple xy, the number of occurences 6) I sort this result in ascending order @@ -4764,7 +4764,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {12001., 0.960440, 1.601019} }; const int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point - constexpr int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values + constexpr int Nc = 203 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values array2D Tx(N_t, Nc); array2D Ty(N_t, Nc); array2D Tz(N_t, Nc); @@ -4863,7 +4863,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double array2D reff_spect_xx_camera(N_t, 2 * Nc + 2); //here we select the good spectral color inside the 113 values - //call tempxy to calculate for 200 color references Temp and XYZ with cat02 + //call tempxy to calculate for 203 color references Temp and XYZ with cat02 ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 200 illuminants @@ -5021,7 +5021,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int maxnb = rtengine::LIM(settings->itcwb_sizereference, 1, 5); if (settings->itcwb_thres > 39) { - maxnb = 200 / settings->itcwb_thres; + maxnb = 203 / settings->itcwb_thres; } for (int nb = 1; nb <= maxnb; ++nb) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 @@ -5299,7 +5299,7 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int { // BENCHFUN //used by auto WB local to calculate red, green, blue in local region - const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);//10 arbitrary value ; perhaps 4 or 5 or 20 const int bfh = H / 10 + ((H % 10) > 0 ? 1 : 0); if (! greenloc) { From f6c5bf0a0b5b4478d1b40a79b33c1202a9885d7c Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 6 Mar 2020 08:53:39 +0100 Subject: [PATCH 350/453] Change didide getrgbloc 10 to 9 - suppress 3 spectral datas --- rtengine/colortemp.cc | 7 ++++--- rtengine/colortemp.h | 3 ++- rtengine/rawimagesource.cc | 14 +++++++------- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 8ef1be27d..0b49658cd 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -2408,6 +2408,7 @@ const double ColorTemp::Colorlab_n80_26_spect[97] = { -0.2047, -0.205, -0.2069, -0.208, -0.2099, -0.21, -0.2115, -0.21, -0.2106, -0.209, -0.2086, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; +/* //0,1767000 0,2207000 0,3142000 0,5269000 0,7018000 0,7605000 0,7580000 0,7366000 0,7182000 0,6929000 0,6661000 0,6542000 //0,6420000 0,6085000 0,5752000 0,5728000 0,5723000 0,5318000 0,4982000 0,5226000 0,5670000 0,5929000 0,5977000 0,5975000 //0,6002000 0,6065000 0,6177000 0,6352000 0,6526000 0,6623000 0,6633000 0,6593000 0,6517000 0,6479000 0,6607000 0,6908000 @@ -2442,7 +2443,7 @@ const double ColorTemp::JDC468_greyf26_156_spect[97] = { 0.2579, 0.26, 0.2653, 0.27, 0.2765, 0.28, 0.2941, 0.30, 0.3126, 0.32, 0.3230, 0.323, 0.3238, 0.32, 0.3189, 0.31, 0.3091, 0.302, 0.3043, 0.31, 0.3200, 0.34, 0.3579, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; - +*/ /* * Name: XYZtoCorColorTemp.c @@ -3484,8 +3485,8 @@ void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float J570_NeuQ1_spect, J570_NeuS7_spect, J570_NeuV10_spect, J570_NeuW18_spect, J570_NeuZ14_spect, //189 J570_NeuC18_spect, J570_NeuD17_spect, J570_NeuJ11_spect, J570_NeuL4_spect, Colorlab_n72_n2_spect, - Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect, - JDC468_greyc14_66_spect, JDC468_greym13_325_spect, JDC468_greyf26_156_spect + Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect + /*JDC468_greyc14_66_spect, JDC468_greym13_325_spect, JDC468_greyf26_156_spect*/ }; diff --git a/rtengine/colortemp.h b/rtengine/colortemp.h index e96bf8563..e3c899f82 100644 --- a/rtengine/colortemp.h +++ b/rtengine/colortemp.h @@ -367,10 +367,11 @@ public: static const double Colorlab_19_n69_spect[97]; static const double Colorlab_n80_10_spect[97]; static const double Colorlab_n80_26_spect[97]; + /* static const double JDC468_greyc14_66_spect[97]; static const double JDC468_greym13_325_spect[97]; static const double JDC468_greyf26_156_spect[97]; - + */ static void spectrum_to_xyz_daylight (double _m1, double _m2, double &x, double &y, double &z); static void spectrum_to_xyz_blackbody (double _temp, double &x, double &y, double &z); static void spectrum_to_xyz_preset (const double* spec_intens, double &x, double &y, double &z); diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index f876b8902..c4226585a 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4764,7 +4764,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {12001., 0.960440, 1.601019} }; const int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point - constexpr int Nc = 203 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values + constexpr int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values array2D Tx(N_t, Nc); array2D Ty(N_t, Nc); array2D Tz(N_t, Nc); @@ -5299,8 +5299,8 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int { // BENCHFUN //used by auto WB local to calculate red, green, blue in local region - const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);//10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfh = H / 10 + ((H % 10) > 0 ? 1 : 0); + const int bfw = W / 9 + ((W % 9) > 0 ? 1 : 0);//10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfh = H / 9 + ((H % 9) > 0 ? 1 : 0); if (! greenloc) { greenloc(bfw, bfh); @@ -5350,9 +5350,9 @@ void RawImageSource::getrgbloc(int begx, int begy, int yEn, int xEn, int cx, int #pragma omp parallel for #endif for (int i = 0; i < bfh; ++i) { - const int ii = i * 10; + const int ii = i * 9; if (ii < H) { - for (int j = 0, jj = 0; jj < W; ++j, jj += 10) { + for (int j = 0, jj = 0; j < bfw; ++j, jj += 9) { redloc[i][j] = red[ii][jj] * multip; greenloc[i][j] = green[ii][jj] * multip; blueloc[i][j] = blue[ii][jj] * multip; @@ -5552,8 +5552,8 @@ void RawImageSource::getAutoWBMultipliersitc(double & tempref, double & greenref if (wbpar.method == "autitcgreen") { bool twotimes = false; - const int bfw = W / 10 + ((W % 10) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 - const int bfh = H / 10 + ((H % 10) > 0 ? 1 : 0); + const int bfw = W / 9 + ((W % 9) > 0 ? 1 : 0);// 10 arbitrary value ; perhaps 4 or 5 or 20 + const int bfh = H / 9 + ((H % 9) > 0 ? 1 : 0); WBauto(tempref, greenref, redloc, greenloc, blueloc, bfw, bfh, avg_rm, avg_gm, avg_bm, tempitc, greenitc, studgood, twotimes, wbpar, begx, begy, yEn, xEn, cx, cy, cmp, raw); } From 9773f1bd98930e43930c19625b491eb156208bbb Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 6 Mar 2020 10:41:58 +0100 Subject: [PATCH 351/453] Improve results when chroma is very low --- rtengine/colortemp.cc | 27 ++++++++++++++++++++++++++- rtengine/colortemp.h | 3 +++ rtengine/rawimagesource.cc | 30 ++++++++++++++++++------------ 3 files changed, 47 insertions(+), 13 deletions(-) diff --git a/rtengine/colortemp.cc b/rtengine/colortemp.cc index 0b49658cd..4d5cb42f2 100644 --- a/rtengine/colortemp.cc +++ b/rtengine/colortemp.cc @@ -2444,7 +2444,30 @@ const double ColorTemp::JDC468_greyf26_156_spect[97] = { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 }; */ +//A1 0.0912 0.1228 0.1712 0.2978 0.3713 0.4241 0.4861 0.5255 0.5355 0.5363 0.5237 0.5251 +// 0.5722 0.6554 0.6936 0.6675 0.6203 0.5651 0.5116 0.4825 0.4714 0.4866 0.5320 0.5729 +// 0.5968 0.6069 0.6131 0.6198 0.6285 0.6325 0.6316 0.6282 0.6227 0.6196 0.6215 0.6337 +const double ColorTemp::Colorlab_n80_5_9_5_9spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0912, 0.1, 0.1228, 0.15, 0.1712, 0.2, 0.2978, 0.32, 0.3713, 0.41, 0.4241, 0.44, 0.4861, 0.51, 0.5255, 0.53, 0.5355, 0.534, 0.5363, 0.53, 0.5237, 0.524, 0.5251, 0.56, + 0.5722, 0.6, 0.6554, 0.67, 0.6936, 0.67, 0.6675, 0.65, 0.6203, 0.6, 0.5651, 0.54, 0.5116, 0.5, 0.4825, 0.48, 0.4714, 0.48, 0.4866, 0.5, 0.5320, 0.55, 0.5729, 0.58, + 0.5968, 0.6, 0.6069, 0.61, 0.6131, 0.615, 0.6198, 0.62, 0.6285, 0.63, 0.6325, 0.632, 0.6316, 0.63, 0.6282, 0.625, 0.6227, 0.62, 0.6196, 0.62, 0.6215, 0.63, 0.6337, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +/* +//A2 0.0385 0.0514 0.0711 0.1229 0.1528 0.1744 0.1999 0.2163 0.2209 0.2216 0.2167 0.2185 +//0.2414 0.2813 0.3012 0.2922 0.2734 0.2511 0.2292 0.2173 0.2127 0.2183 0.2354 0.2508 +//0.2599 0.2637 0.2662 0.2689 0.2725 0.2742 0.2738 0.2724 0.2701 0.2689 0.2697 0.2747 + +const double ColorTemp::Colorlab_n57_5_6_9spect[97] = { + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, + 0.0385, 0.04, 0.0514, 0.06, 0.0711, 0.1, 0.1229, 0.14, 0.1528, 0.16, 0.1744, 0.18, 0.1999, 0.2, 0.2163, 0.22, 0.2209, 0.221, 0.2216, 0.22, 0.2167, 0.216, 0.2185, 0.23, + 0.2414, 0.26, 0.2813, 0.3, 0.3012, 0.3, 0.2922, 0.28, 0.2734, 0.26, 0.2511, 0.24, 0.2292, 0.22, 0.2173, 0.215, 0.2127, 0.215, 0.2183, 0.22, 0.2354, 0.24, 0.2508, 0.255, + 0.2599, 0.26, 0.2637, 0.263, 0.2662, 0.267, 0.2689, 0.27, 0.2725, 0.273, 0.2742, 0.274, 0.2738, 0.273, 0.2724, 0.271, 0.2701, 0.27, 0.2689, 0.269, 0.2697, 0.27, 0.2747, + 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 +}; +*/ /* * Name: XYZtoCorColorTemp.c * @@ -3485,7 +3508,9 @@ void ColorTemp::tempxy(bool separated, int repref, float **Tx, float **Ty, float J570_NeuQ1_spect, J570_NeuS7_spect, J570_NeuV10_spect, J570_NeuW18_spect, J570_NeuZ14_spect, //189 J570_NeuC18_spect, J570_NeuD17_spect, J570_NeuJ11_spect, J570_NeuL4_spect, Colorlab_n72_n2_spect, - Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect + Colorlab_10_n70_spect, Colorlab_n33_n70_spect, Colorlab_n8_n74_spect, Colorlab_19_n69_spect, Colorlab_n80_10_spect, Colorlab_n80_26_spect, + Colorlab_n80_5_9_5_9spect //, Colorlab_n57_5_6_9spect + /*JDC468_greyc14_66_spect, JDC468_greym13_325_spect, JDC468_greyf26_156_spect*/ }; diff --git a/rtengine/colortemp.h b/rtengine/colortemp.h index e3c899f82..89c324490 100644 --- a/rtengine/colortemp.h +++ b/rtengine/colortemp.h @@ -367,6 +367,9 @@ public: static const double Colorlab_19_n69_spect[97]; static const double Colorlab_n80_10_spect[97]; static const double Colorlab_n80_26_spect[97]; + static const double Colorlab_n80_5_9_5_9spect[97]; +// static const double Colorlab_n57_5_6_9spect[97]; + /* static const double JDC468_greyc14_66_spect[97]; static const double JDC468_greym13_325_spect[97]; diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index c4226585a..0326609cd 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4412,19 +4412,19 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double Copyright (c) Jacques Desmis 6 - 2018 jdesmis@gmail.com Copyright (c) Ingo Weyrich 3 - 2020 (heckflosse67@gmx.de) - This algorithm try to find temperature correlation between 20 to 203 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. + This algorithm try to find temperature correlation between 20 to 201 color between 200 spectral color and about 20 to 55 color found in the image, I just found the idea in the web "correlate with chroma" instead of RGB grey point,but I don't use any algo found on the web. I have test many many algorithms to find the first one that work :) Probably (sure) there are improvement to do... I have create a table temperature with temp and white point with 100 values between 2000K and 12000K we can obviously change these values, more...with different steps - I have create or recuparate and transformed 203 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is large enough. - I think this value of 203 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized + I have create or recuparate and transformed 201 spectral colors from Colorchecker24, others color and my 468 colors target, or from web flowers, etc. with a step of 5nm, I think it is large enough. + I think this value of 201 is now complete: I tested correlation with 60, 90, 100, 120, 155...better student increase with number of color, but now it seems stabilized Of course we can increase this number :) 1) for the current raw file we create a table for each temp of RGB multipliers 2) then, I choose the "camera temp" to initialize calculation (why not) - 3) for this temp, I calculated XYZ values for the 203 spectral datas + 3) for this temp, I calculated XYZ values for the 201 spectral datas 4) then I create for the image an "histogram", but for xyY (Cie 1931 color space) 5) for each pixel (in fact to accelerate only 1/10 for and 1/10 for y), I determine for each couple xy, the number of occurences 6) I sort this result in ascending order @@ -4764,7 +4764,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {12001., 0.960440, 1.601019} }; const int N_t = sizeof(Txyz) / sizeof(Txyz[0]); //number of temperature White point - constexpr int Nc = 200 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values + constexpr int Nc = 201 + 1;//200 number of reference spectral colors, I think it is enough to retrieve good values array2D Tx(N_t, Nc); array2D Ty(N_t, Nc); array2D Tz(N_t, Nc); @@ -4863,7 +4863,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double array2D reff_spect_xx_camera(N_t, 2 * Nc + 2); //here we select the good spectral color inside the 113 values - //call tempxy to calculate for 203 color references Temp and XYZ with cat02 + //call tempxy to calculate for 201 color references Temp and XYZ with cat02 ColorTemp::tempxy(separated, repref, Tx, Ty, Tz, Ta, Tb, TL, TX, TY, TZ, wbpar); //calculate chroma xy (xyY) for Z known colors on under 200 illuminants @@ -4998,7 +4998,9 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } estimchrom /= sizcu4; - + if (settings->verbose) { + printf("estimchrom=%f\n", estimchrom); + } if (settings->itcwb_sort) { //sort in ascending with chroma values std::sort(wbchro, wbchro + sizcu4, wbchro[0]); } @@ -5021,7 +5023,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int maxnb = rtengine::LIM(settings->itcwb_sizereference, 1, 5); if (settings->itcwb_thres > 39) { - maxnb = 203 / settings->itcwb_thres; + maxnb = 201 / settings->itcwb_thres; } for (int nb = 1; nb <= maxnb; ++nb) { //max 5 iterations for Itcwb_thres=33, after trial 3 is good in most cases but in some cases 5 @@ -5178,13 +5180,14 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double } //degrade correllation with color high chroma, but not too much...seems not good, but keep in case of?? - if (estimchrom < 0.025f) {//very smal value of chroma for image - + //I suppress this old behavior replace by tint += 0.02 + /* if (estimchrom < 0.025f) {//very smal value of chroma for image + //enable strong values good_spectral[0] = true;//blue good_spectral[11] = true;//green good_spectral[62] = true;//red } - +*/ int kkg = -1; for (int i = 0; i < Nc ; ++i) { if (good_spectral[i]) { @@ -5253,7 +5256,10 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double tempitc = Txyz[goodref].Tem; greenitc = gree[greengood].green; - + if (estimchrom < 0.025f) { + float ac = -2.40f * estimchrom + 0.06f;//small empirical correction, maximum 0.06 if chroma=0 for all image, currently for very low chroma +0.02 + greenitc += ac; + } } avg_rm = 10000.f * rmm[goodref]; From 0e5f514ec11a12e1d25c5d78602cc206957c18ad Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Fri, 6 Mar 2020 12:00:21 +0100 Subject: [PATCH 352/453] recalculate itcwb when demosaic method changed --- rtengine/improccoordinator.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/improccoordinator.cc b/rtengine/improccoordinator.cc index 3cc58b01c..9bef5b502 100644 --- a/rtengine/improccoordinator.cc +++ b/rtengine/improccoordinator.cc @@ -434,7 +434,7 @@ void ImProcCoordinator::updatePreviewImage(int todo, bool panningRelatedChange) currWB = imgsrc->getWB(); lastAwbauto = ""; //reinitialize auto } else if (autowb) { - if (lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias || lastAwbauto != params->wb.method) { + if (params->wb.method == "autitcgreen" || lastAwbEqual != params->wb.equal || lastAwbTempBias != params->wb.tempBias || lastAwbauto != params->wb.method) { double rm, gm, bm; double tempitc = 5000.f; double greenitc = 1.; From 961bf3e5fda37ca8a907733f72a1680e3a73e6c8 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 6 Mar 2020 15:15:22 +0100 Subject: [PATCH 353/453] Change range geen in autowb --- rtengine/rawimagesource.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 0326609cd..1296e1a42 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -5284,7 +5284,7 @@ void RawImageSource::WBauto(double & tempref, double & greenref, array2D if (wbpar.method == "autitcgreen") { bool extra = false; - if (greenref > 0.77 && greenref < 1.3) {// 0/77 and 1.3 arbitraties values + if (greenref > 0.5 && greenref < 1.3) {// 0/77 and 1.3 arbitraties values greenitc = greenref; if (settings->itcwb_forceextra) { From 8875cc8df47e70852a235c167fca4a48adf297d7 Mon Sep 17 00:00:00 2001 From: Desmis Date: Fri, 6 Mar 2020 16:04:31 +0100 Subject: [PATCH 354/453] Change number of green reference from 118 to 134 --- rtengine/rawimagesource.cc | 42 ++++++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 1296e1a42..48383c8ba 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -4493,14 +4493,30 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double float snedecor;//1. actually but put in case of confiance interval } WbGreen; //green (tint) values between 0.4 to 4.0 - constexpr WbGreen gree[118] = {//symmetric coefficient between 0.717 and 1.40 + constexpr WbGreen gree[134] = {//symmetric coefficient between 0.717 and 1.40 {0.400, 1.f}, + {0.420, 1.f}, + {0.440, 1.f}, + {0.460, 1.f}, + {0.480, 1.f}, {0.500, 1.f}, + {0.520, 1.f}, + {0.540, 1.f}, {0.550, 1.f}, + {0.560, 1.f}, + {0.570, 1.f}, + {0.580, 1.f}, + {0.590, 1.f}, {0.600, 1.f}, - {0.625, 1.f}, + {0.610, 1.f}, + {0.620, 1.f}, + {0.630, 1.f}, + {0.640, 1.f}, {0.650, 1.f}, - {0.675, 1.f}, + {0.660, 1.f}, + {0.670, 1.f}, + {0.680, 1.f}, + {0.690, 1.f}, {0.700, 1.f}, {0.714, 1.f}, {0.727, 1.f}, @@ -4533,7 +4549,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double {0.971, 1.f}, {0.980, 1.f}, {0.990, 1.f}, - {1.000, 1.f},//39 + {1.000, 1.f},//55 {1.010, 1.f}, {1.020, 1.f}, {1.030, 1.f}, @@ -4620,8 +4636,8 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int end; } RangeGreen; - constexpr RangeGreen Rangestandard = {8, 70}; - constexpr RangeGreen Rangeextended = {4, 77}; + constexpr RangeGreen Rangestandard = {24, 86}; + constexpr RangeGreen Rangeextended = {15, 93}; const RangeGreen Rangemax = {0, N_g}; RangeGreen Rangegreenused; @@ -5022,7 +5038,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double //calculate deltaE xx to find best values of spectrals datas - limited to chroma values int maxnb = rtengine::LIM(settings->itcwb_sizereference, 1, 5); - if (settings->itcwb_thres > 39) { + if (settings->itcwb_thres > 55) { maxnb = 201 / settings->itcwb_thres; } @@ -5130,7 +5146,7 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double for (int i = 0; i < N_g; ++i) {//init variables with Tgstud[i].student = 1000.f;//max value to initialize Tgstud[i].tempref = 57;//5002K - Tgstud[i].greenref = 39;// 1.f + Tgstud[i].greenref = 55;// 1.f } @@ -5223,13 +5239,13 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double int goodrefprov; float studprov; const int goodref0 = Tgstud[0].tempref; - const int greengood0 = Tgstud[0].greenref - 39;//39 green = 1 + const int greengood0 = Tgstud[0].greenref - 55;//55 green = 1 const float stud0 = Tgstud[0].student; const int goodref1 = Tgstud[1].tempref; const float stud1 = Tgstud[1].student; - const int greengood1 = Tgstud[1].greenref - 39; + const int greengood1 = Tgstud[1].greenref - 55; const int goodref2 = Tgstud[2].tempref; - const int greengood2 = Tgstud[2].greenref - 39; + const int greengood2 = Tgstud[2].greenref - 55; const float stud2 = Tgstud[2].student; if (std::fabs(greengood2) < std::fabs(greengood1)) { @@ -5245,12 +5261,12 @@ void RawImageSource::ItcWB(bool extra, double &tempref, double &greenref, double if (std::fabs(greengoodprov) < std::fabs(greengood0)) { goodref = goodrefprov; - greengood = greengoodprov + 39; + greengood = greengoodprov + 55; studgood = studprov; } else { goodref = goodref0; - greengood = greengood0 + 39; + greengood = greengood0 + 55; studgood = stud0; } From 6563989f5df1892648fe25a5b62436cb460e3426 Mon Sep 17 00:00:00 2001 From: Desmis Date: Sat, 7 Mar 2020 17:52:04 +0100 Subject: [PATCH 355/453] Added X-T3 matrix to camconst --- rtengine/camconst.json | 1 + 1 file changed, 1 insertion(+) diff --git a/rtengine/camconst.json b/rtengine/camconst.json index 9b1b99d1b..d50e050dd 100644 --- a/rtengine/camconst.json +++ b/rtengine/camconst.json @@ -1376,6 +1376,7 @@ Camera constants: { // Quality C, only raw crop "make_model": [ "FUJIFILM X-T3", "FUJIFILM X-T30" ], + "dcraw_matrix": [ 13426,-6334,-1177,-4244,12136,2371,-580,1303,5980 ], // DNG_v11, standard_v2 d65 "raw_crop": [ 0, 5, 6252, 4176] }, From b2165aedd9bedac97b4c0207a6026c1f600bf11c Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 8 Mar 2020 14:12:23 +0100 Subject: [PATCH 356/453] camconst.cc/h : code review --- rtengine/camconst.cc | 223 ++++++++++++++---------------------- rtengine/camconst.h | 33 +++--- rtengine/pdaflinesfilter.cc | 2 +- rtengine/rawimage.cc | 109 +----------------- rtengine/rawimagesource.cc | 2 +- 5 files changed, 109 insertions(+), 260 deletions(-) diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index 36aa96030..52466cd1a 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -2,20 +2,23 @@ * This file is part of RawTherapee. */ #include "camconst.h" + +#include +#include +#include +#include +#include + #include #include #include + #include "settings.h" #include "rt_math.h" -#include -#include // cJSON is a very minimal JSON parser lib in C, not for threaded stuff etc, so if we're going to use JSON more than just // here we should probably replace cJSON with something beefier. #include "cJSON.h" -#include -#include -#include namespace rtengine { @@ -30,8 +33,7 @@ CameraConst::CameraConst() : pdafOffset(0) } -bool -CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) +bool CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) { cJSON *ji = (cJSON *)ji_; @@ -40,7 +42,7 @@ CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) return false; } - for (ji = ji->child; ji != nullptr; ji = ji->next) { + for (ji = ji->child; ji; ji = ji->next) { cJSON *js = cJSON_GetObjectItem(ji, "aperture"); if (!js) { @@ -51,7 +53,7 @@ CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) return false; } - float aperture = (float)js->valuedouble; + const float aperture = js->valuedouble; js = cJSON_GetObjectItem(ji, "scale_factor"); if (!js) { @@ -62,22 +64,21 @@ CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) return false; } - float scale_factor = (float)js->valuedouble; + const float scale_factor = js->valuedouble; cc->mApertureScaling.insert(std::pair(aperture, scale_factor)); } return true; } -bool -CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) +bool CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) { cJSON *ji = (cJSON *)ji_; if (ji->type == cJSON_Number) { - struct camera_const_levels lvl; + camera_const_levels lvl; lvl.levels[0] = lvl.levels[1] = lvl.levels[2] = lvl.levels[3] = ji->valueint; - cc->mLevels[bw].insert(std::pair(0, lvl)); + cc->mLevels[bw].insert(std::pair(0, lvl)); return true; } else if (ji->type != cJSON_Array) { fprintf(stderr, "\"ranges\":\"%s\" must be a number or an array\n", bw ? "white" : "black"); @@ -85,11 +86,11 @@ CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) } if (ji->child->type == cJSON_Number) { - struct camera_const_levels lvl; + camera_const_levels lvl; int i; cJSON *js; - for (js = ji->child, i = 0; js != nullptr && i < 4; js = js->next, i++) { + for (js = ji->child, i = 0; js && i < 4; js = js->next, i++) { lvl.levels[i] = js->valueint; } @@ -97,16 +98,16 @@ CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) lvl.levels[3] = lvl.levels[1]; // G2 = G1 } else if (i == 1) { lvl.levels[3] = lvl.levels[2] = lvl.levels[1] = lvl.levels[0]; - } else if (i != 4 || js != nullptr) { + } else if (i != 4 || js) { fprintf(stderr, "\"ranges\":\"%s\" array must have 1, 3 or 4 numbers.\n", bw ? "white" : "black"); return false; } - cc->mLevels[bw].insert(std::pair(0, lvl)); + cc->mLevels[bw].insert(std::pair(0, lvl)); return true; } - for (ji = ji->child; ji != nullptr; ji = ji->next) { + for (ji = ji->child; ji; ji = ji->next) { int iso[1000] = { 0 }; int iso_count = 0; cJSON *js = cJSON_GetObjectItem(ji, "iso"); @@ -120,7 +121,7 @@ CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) } else if (js->type == cJSON_Array) { int i; - for (js = js->child, i = 0; js != nullptr && i < 1000; js = js->next, i++) { + for (js = js->child, i = 0; js && i < 1000; js = js->next, i++) { if (js->type != cJSON_Number) { fprintf(stderr, "\"ranges\":\"%s\":\"iso\" must be a number or an array of numbers.\n", bw ? "white" : "black"); return false; @@ -142,14 +143,14 @@ CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) return false; } - struct camera_const_levels lvl; + camera_const_levels lvl; if (js->type == cJSON_Number) { lvl.levels[0] = lvl.levels[1] = lvl.levels[2] = lvl.levels[3] = js->valueint; } else if (js->type == cJSON_Array) { int i; - for (js = js->child, i = 0; js != nullptr && i < 4; js = js->next, i++) { + for (js = js->child, i = 0; js && i < 4; js = js->next, i++) { if (js->type != cJSON_Number) { fprintf(stderr, "\"ranges\":\"%s\":\"levels\" must be a number or an array of numbers.\n", bw ? "white" : "black"); return false; @@ -162,7 +163,7 @@ CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) lvl.levels[3] = lvl.levels[1]; // G2 = G1 } else if (i == 1) { lvl.levels[3] = lvl.levels[2] = lvl.levels[1] = lvl.levels[0]; - } else if (i != 4 || js != nullptr) { + } else if (i != 4 || js) { fprintf(stderr, "\"ranges\":\"%s\":\"levels\" array must have 1, 3 or 4 numbers.\n", bw ? "white" : "black"); return false; } @@ -172,15 +173,14 @@ CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) } for (int i = 0; i < iso_count; i++) { - cc->mLevels[bw].insert(std::pair(iso[i], lvl)); + cc->mLevels[bw].insert(std::pair(iso[i], lvl)); } } return true; } -CameraConst * -CameraConst::parseEntry(void *cJSON_, const char *make_model) +CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) { cJSON *js, *ji, *jranges; js = (cJSON *)cJSON_; @@ -198,7 +198,7 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) int i; - for (i = 0, ji = ji->child; i < 12 && ji != nullptr; i++, ji = ji->next) { + for (i = 0, ji = ji->child; i < 12 && ji; i++, ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"dcraw_matrix\" array must contain numbers\n"); goto parse_error; @@ -218,7 +218,7 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) int i; - for (i = 0, ji = ji->child; i < 4 && ji != nullptr; i++, ji = ji->next) { + for (i = 0, ji = ji->child; i < 4 && ji; i++, ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"raw_crop\" array must contain numbers\n"); goto parse_error; @@ -227,7 +227,7 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) cc->raw_crop[i] = ji->valueint; } - if (i != 4 || ji != nullptr) { + if (i != 4 || ji) { fprintf(stderr, "\"raw_crop\" must contain 4 numbers\n"); goto parse_error; } @@ -243,7 +243,7 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) int i; - for (i = 0, ji = ji->child; i < 8 * 4 && ji != nullptr; i++, ji = ji->next) { + for (i = 0, ji = ji->child; i < 2 * 4 && ji; i++, ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"masked_areas\" array must contain numbers\n"); goto parse_error; @@ -298,16 +298,14 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) } for (int bw = 0; bw < 2; bw++) { - struct camera_const_levels lvl; + camera_const_levels lvl; if (!cc->get_Levels(lvl, bw, 0, 0)) { - std::map::iterator it; - it = cc->mLevels[bw].begin(); + const std::map::const_iterator it = cc->mLevels[bw].begin(); if (it != cc->mLevels[bw].end()) { // insert levels with lowest iso as the default (iso 0) - struct camera_const_levels lvl = it->second; - cc->mLevels[bw].insert(std::pair(0, lvl)); + cc->mLevels[bw].insert(std::pair(0, it->second)); } } } @@ -320,7 +318,7 @@ CameraConst::parseEntry(void *cJSON_, const char *make_model) goto parse_error; } - for (ji = ji->child; ji != nullptr; ji = ji->next) { + for (ji = ji->child; ji; ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"pdaf_pattern\" array must contain numbers\n"); goto parse_error; @@ -359,14 +357,12 @@ parse_error: return nullptr; } -bool -CameraConst::has_dcrawMatrix() +bool CameraConst::has_dcrawMatrix() const { return dcraw_matrix[0] != 0; } -void -CameraConst::update_dcrawMatrix(const short *other) +void CameraConst::update_dcrawMatrix(const short *other) { if (!other) { return; @@ -377,8 +373,7 @@ CameraConst::update_dcrawMatrix(const short *other) } } -const short * -CameraConst::get_dcrawMatrix() +const short* CameraConst::get_dcrawMatrix() const { if (!has_dcrawMatrix()) { return nullptr; @@ -387,20 +382,12 @@ CameraConst::get_dcrawMatrix() return dcraw_matrix; } -bool -CameraConst::has_pdafPattern() -{ - return pdafPattern.size() > 0; -} - -std::vector -CameraConst::get_pdafPattern() +const std::vector& CameraConst::get_pdafPattern() const { return pdafPattern; } -void -CameraConst::update_pdafPattern(const std::vector &other) +void CameraConst::update_pdafPattern(const std::vector &other) { if (other.empty()) { return; @@ -408,8 +395,7 @@ CameraConst::update_pdafPattern(const std::vector &other) pdafPattern = other; } -void -CameraConst::update_pdafOffset(int other) +void CameraConst::update_pdafOffset(int other) { if (other == 0) { return; @@ -417,14 +403,12 @@ CameraConst::update_pdafOffset(int other) pdafOffset = other; } -bool -CameraConst::has_rawCrop() +bool CameraConst::has_rawCrop() const { return raw_crop[0] != 0 || raw_crop[1] != 0 || raw_crop[2] != 0 || raw_crop[3] != 0; } -void -CameraConst::get_rawCrop(int& left_margin, int& top_margin, int& width, int& height) +void CameraConst::get_rawCrop(int& left_margin, int& top_margin, int& width, int& height) const { left_margin = raw_crop[0]; top_margin = raw_crop[1]; @@ -432,22 +416,20 @@ CameraConst::get_rawCrop(int& left_margin, int& top_margin, int& width, int& hei height = raw_crop[3]; } -bool -CameraConst::has_rawMask(int idx) +bool CameraConst::has_rawMask(int idx) const { - if (idx < 0 || idx > 7) { + if (idx < 0 || idx > 1) { return false; } return (raw_mask[idx][0] | raw_mask[idx][1] | raw_mask[idx][2] | raw_mask[idx][3]) != 0; } -void -CameraConst::get_rawMask(int idx, int& top, int& left, int& bottom, int& right) +void CameraConst::get_rawMask(int idx, int& top, int& left, int& bottom, int& right) const { top = left = bottom = right = 0; - if (idx < 0 || idx > 7) { + if (idx < 0 || idx > 1) { return; } @@ -457,8 +439,7 @@ CameraConst::get_rawMask(int idx, int& top, int& left, int& bottom, int& right) right = raw_mask[idx][3]; } -void -CameraConst::update_Levels(const CameraConst *other) +void CameraConst::update_Levels(const CameraConst *other) { if (!other) { return; @@ -482,13 +463,9 @@ CameraConst::update_Levels(const CameraConst *other) if (other->white_max) { white_max = other->white_max; } - -// for (std::map::iterator i=other->mLevels[0].begin(); i!=other->mLevels[0].end(); i++) { -// } } -void -CameraConst::update_Crop(CameraConst *other) +void CameraConst::update_Crop(CameraConst *other) { if (!other) { return; @@ -499,18 +476,16 @@ CameraConst::update_Crop(CameraConst *other) } } -bool -CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float fnumber) +bool CameraConst::get_Levels(camera_const_levels & lvl, int bw, int iso, float fnumber) const { - std::map::iterator it; - it = mLevels[bw].find(iso); + std::map::const_iterator it = mLevels[bw].find(iso); if (it == mLevels[bw].end()) { - std::map::iterator best_it = mLevels[bw].begin(); + std::map::const_iterator best_it = mLevels[bw].begin(); if (iso > 0) { for (it = mLevels[bw].begin(); it != mLevels[bw].end(); ++it) { - if (abs(it->first - iso) <= abs(best_it->first - iso)) { + if (std::abs(it->first - iso) <= std::abs(best_it->first - iso)) { best_it = it; } else { break; @@ -528,16 +503,15 @@ CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float lvl = it->second; if (bw == 1 && fnumber > 0 && mApertureScaling.size() > 0) { - std::map::iterator it; - it = mApertureScaling.find(fnumber); + std::map::const_iterator scaleIt = mApertureScaling.find(fnumber); - if (it == mApertureScaling.end()) { + if (scaleIt == mApertureScaling.end()) { // fnumber may be an exact aperture, eg 1.414, or a rounded eg 1.4. In our map we // should have rounded numbers so we translate and retry the lookup // table with traditional 1/3 stop f-number rounding used by most cameras, we only // have in the range 0.7 - 10.0, but aperture scaling rarely happen past f/4.0 - const float fn_tab[8][3] = { + constexpr float fn_tab[8][3] = { { 0.7, 0.8, 0.9 }, { 1.0, 1.1, 1.2 }, { 1.4, 1.6, 1.8 }, @@ -550,12 +524,12 @@ CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float for (int avh = 0; avh < 8; avh++) { for (int k = 0; k < 3; k++) { - float av = (avh - 1) + (float)k / 3; - float aperture = sqrtf(powf(2, av)); + const float av = (avh - 1) + k / 3.f; + const float aperture = std::sqrt(std::pow(2.f, av)); if (fnumber > aperture * 0.97f && fnumber < aperture / 0.97f) { fnumber = fn_tab[avh][k]; - it = mApertureScaling.find(fnumber); + scaleIt = mApertureScaling.find(fnumber); avh = 7; break; } @@ -565,18 +539,16 @@ CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float float scaling = 1.0; - if (it == mApertureScaling.end()) { - std::map::reverse_iterator it; - - for (it = mApertureScaling.rbegin(); it != mApertureScaling.rend(); ++it) { - if (it->first > fnumber) { - scaling = it->second; + if (scaleIt == mApertureScaling.end()) { + for (std::map::const_reverse_iterator entry = mApertureScaling.rbegin(); entry != mApertureScaling.rend(); ++entry) { + if (entry->first > fnumber) { + scaling = entry->second; } else { break; } } } else { - scaling = it->second; + scaling = scaleIt->second; } if (scaling > 1.f) { @@ -593,11 +565,10 @@ CameraConst::get_Levels(struct camera_const_levels & lvl, int bw, int iso, float return true; } -int -CameraConst::get_BlackLevel(const int idx, const int iso_speed) +int CameraConst::get_BlackLevel(const int idx, const int iso_speed) const { assert(idx >= 0 && idx <= 3); - struct camera_const_levels lvl; + camera_const_levels lvl; if (!get_Levels(lvl, 0, iso_speed, 0.0)) { return -1; @@ -606,11 +577,10 @@ CameraConst::get_BlackLevel(const int idx, const int iso_speed) return lvl.levels[idx]; } -int -CameraConst::get_WhiteLevel(const int idx, const int iso_speed, const float fnumber) +int CameraConst::get_WhiteLevel(const int idx, const int iso_speed, const float fnumber) const { assert(idx >= 0 && idx <= 3); - struct camera_const_levels lvl; + camera_const_levels lvl; if (!get_Levels(lvl, 1, iso_speed, fnumber)) { return -1; @@ -619,45 +589,41 @@ CameraConst::get_WhiteLevel(const int idx, const int iso_speed, const float fnum return lvl.levels[idx]; } -bool -CameraConst::has_globalGreenEquilibration() +bool CameraConst::has_globalGreenEquilibration() const { return globalGreenEquilibration >= 0; } -bool -CameraConst::get_globalGreenEquilibration() +bool CameraConst::get_globalGreenEquilibration() const { return globalGreenEquilibration > 0; } -void -CameraConst::update_globalGreenEquilibration(bool other) +void CameraConst::update_globalGreenEquilibration(bool other) { globalGreenEquilibration = (other ? 1 : 0); } -bool -CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_) +bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_) { // read the file into a single long string const char *filename = filename_.c_str(); FILE *stream = fopen(filename, "rt"); - if (stream == nullptr) { + if (!stream) { fprintf(stderr, "Could not open camera constants file \"%s\": %s\n", filename, strerror(errno)); return false; } - size_t bufsize = 16384; - size_t increment = 2 * bufsize; + size_t bufsize = 262144; + size_t increment = bufsize; size_t datasize = 0, ret; char *buf = (char *)malloc(bufsize); - while ((ret = fread(&buf[datasize], 1, bufsize - datasize, stream)) != 0) { + while ((ret = fread(&buf[datasize], 1, bufsize - datasize - 1, stream)) != 0) { datasize += ret; - if (datasize == bufsize) { // we need more memory + if (datasize == bufsize - 1) { // we need more memory bufsize += increment; void *temp = realloc(buf, bufsize); // try to realloc buffer with new size if(!temp) { // realloc failed @@ -683,10 +649,6 @@ CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_ fclose(stream); - if(datasize == bufsize) { - buf = (char *)realloc(buf, datasize + 1); - } - buf[datasize] = '\0'; // remove comments @@ -711,11 +673,7 @@ CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_ } free(buf); - /*{ - char *js_str = cJSON_Print(jsroot); - printf("%s\n", js_str); - free(js_str); - }*/ + cJSON *js = cJSON_GetObjectItem(jsroot, "camera_constants"); if (!js) { @@ -723,7 +681,7 @@ CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_ goto parse_error; } - for (js = js->child; js != nullptr; js = js->next) { + for (js = js->child; js; js = js->next) { cJSON *ji = cJSON_GetObjectItem(js, "make_model"); if (!ji) { @@ -738,7 +696,7 @@ CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_ is_array = true; } - while (ji != nullptr) { + while (ji) { if (ji->type != cJSON_String) { fprintf(stderr, "\"make_model\" must be a string or an array of strings\n"); goto parse_error; @@ -750,18 +708,18 @@ CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& filename_ goto parse_error; } - Glib::ustring make_model(ji->valuestring); - make_model = make_model.uppercase(); + std::string make_model(ji->valuestring); + std::transform(make_model.begin(), make_model.end(), make_model.begin(), ::toupper); - const auto ret = mCameraConstants.emplace(make_model, cc); + const auto entry = mCameraConstants.emplace(make_model, cc); - if(ret.second) { // entry inserted into map + if (entry.second) { // entry inserted into map if (settings->verbose) { printf("Add camera constants for \"%s\"\n", make_model.c_str()); } } else { // The CameraConst already exist for this camera make/model -> we merge the values - CameraConst *existingcc = ret.first->second; + CameraConst *existingcc = entry.first->second; // updating the dcraw matrix existingcc->update_dcrawMatrix(cc->get_dcrawMatrix()); @@ -820,22 +778,19 @@ void CameraConstantsStore::init(const Glib::ustring& baseDir, const Glib::ustrin } } -CameraConstantsStore * -CameraConstantsStore::getInstance() +CameraConstantsStore* CameraConstantsStore::getInstance() { static CameraConstantsStore instance_; return &instance_; } -CameraConst * -CameraConstantsStore::get(const char make[], const char model[]) +const CameraConst* CameraConstantsStore::get(const char make[], const char model[]) const { - Glib::ustring key(make); + std::string key(make); key += " "; key += model; - key = key.uppercase(); - std::map::iterator it; - it = mCameraConstants.find(key); + std::transform(key.begin(), key.end(), key.begin(), ::toupper); + const auto it = mCameraConstants.find(key); if (it == mCameraConstants.end()) { return nullptr; diff --git a/rtengine/camconst.h b/rtengine/camconst.h index 3af05ab01..b959481ba 100644 --- a/rtengine/camconst.h +++ b/rtengine/camconst.h @@ -27,9 +27,9 @@ private: std::string make_model; short dcraw_matrix[12]; int raw_crop[4]; - int raw_mask[8][4]; + int raw_mask[2][4]; int white_max; - std::map mLevels[2]; + std::map mLevels[2]; std::map mApertureScaling; std::vector pdafPattern; int pdafOffset; @@ -38,24 +38,23 @@ private: CameraConst(); static bool parseLevels(CameraConst *cc, int bw, void *ji); static bool parseApertureScaling(CameraConst *cc, void *ji); - bool get_Levels(struct camera_const_levels & lvl, int bw, int iso, float fnumber); + bool get_Levels(camera_const_levels & lvl, int bw, int iso, float fnumber) const; public: static CameraConst *parseEntry(void *cJSON, const char *make_model); - bool has_dcrawMatrix(void); - bool has_pdafPattern(void); + bool has_dcrawMatrix(void) const; void update_dcrawMatrix(const short *other); - const short *get_dcrawMatrix(void); - std::vector get_pdafPattern(); - int get_pdafOffset() {return pdafOffset;} - bool has_rawCrop(void); - void get_rawCrop(int& left_margin, int& top_margin, int& width, int& height); - bool has_rawMask(int idx); - void get_rawMask(int idx, int& top, int& left, int& bottom, int& right); - int get_BlackLevel(int idx, int iso_speed); - int get_WhiteLevel(int idx, int iso_speed, float fnumber); - bool has_globalGreenEquilibration(); - bool get_globalGreenEquilibration(); + const short *get_dcrawMatrix(void) const; + const std::vector& get_pdafPattern() const; + int get_pdafOffset() const {return pdafOffset;}; + bool has_rawCrop(void) const; + void get_rawCrop(int& left_margin, int& top_margin, int& width, int& height) const; + bool has_rawMask(int idx) const; + void get_rawMask(int idx, int& top, int& left, int& bottom, int& right) const; + int get_BlackLevel(int idx, int iso_speed) const; + int get_WhiteLevel(int idx, int iso_speed, float fnumber) const; + bool has_globalGreenEquilibration() const; + bool get_globalGreenEquilibration() const; void update_Levels(const CameraConst *other); void update_Crop(CameraConst *other); void update_pdafPattern(const std::vector &other); @@ -75,7 +74,7 @@ public: ~CameraConstantsStore(); void init(const Glib::ustring& baseDir, const Glib::ustring& userSettingsDir); static CameraConstantsStore *getInstance(void); - CameraConst *get(const char make[], const char model[]); + const CameraConst *get(const char make[], const char model[]) const; }; } diff --git a/rtengine/pdaflinesfilter.cc b/rtengine/pdaflinesfilter.cc index 1eddbc1ea..b5c72f7f4 100644 --- a/rtengine/pdaflinesfilter.cc +++ b/rtengine/pdaflinesfilter.cc @@ -177,7 +177,7 @@ PDAFLinesFilter::PDAFLinesFilter(RawImage *ri): gthresh_ = new PDAFGreenEqulibrateThreshold(W_, H_); CameraConstantsStore* ccs = CameraConstantsStore::getInstance(); - CameraConst *cc = ccs->get(ri_->get_maker().c_str(), ri_->get_model().c_str()); + const CameraConst *cc = ccs->get(ri_->get_maker().c_str(), ri_->get_model().c_str()); if (cc) { pattern_ = cc->get_pdafPattern(); diff --git a/rtengine/rawimage.cc b/rtengine/rawimage.cc index 34d5d961c..c2df70468 100644 --- a/rtengine/rawimage.cc +++ b/rtengine/rawimage.cc @@ -524,7 +524,7 @@ int RawImage::loadRaw (bool loadData, unsigned int imageNum, bool closeFile, Pro } CameraConstantsStore* ccs = CameraConstantsStore::getInstance(); - CameraConst *cc = ccs->get(make, model); + const CameraConst *cc = ccs->get(make, model); if (raw_image) { if (cc && cc->has_rawCrop()) { @@ -850,42 +850,18 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is short trans[12]; // set first value to 0 for no change } table[] = { - { - "Canon EOS 5D Mark III", -1, 0x3a98, /* RT */ - { 6722, -635, -963, -4287, 12460, 2028, -908, 2162, 5668 } - }, { "Canon EOS 5D", -1, 0xe6c, /* RT */ { 6319, -793, -614, -5809, 13342, 2738, -1132, 1559, 7971 } }, - { - "Canon EOS 6D", -1, 0x3c82, - { 7034, -804, -1014, -4420, 12564, 2058, -851, 1994, 5758 } - }, - { - "Canon EOS 7D", -1, 0x3510, /* RT - Colin Walker */ - { 5962, -171, -732, -4189, 12307, 2099, -911, 1981, 6304 } - }, { "Canon EOS 20D", -1, 0xfff, /* RT */ { 7590, -1646, -673, -4697, 12411, 2568, -627, 1118, 7295 } }, - { - "Canon EOS 40D", -1, 0x3f60, /* RT */ - { 6070, -531, -883, -5763, 13647, 2315, -1533, 2582, 6801 } - }, - { - "Canon EOS 60D", -1, 0x2ff7, /* RT - Colin Walker */ - { 5678, -179, -718, -4389, 12381, 2243, -869, 1819, 6380 } - }, { "Canon EOS 450D", -1, 0x390d, /* RT */ { 6246, -1272, -523, -5075, 12357, 3075, -1035, 1825, 7333 } }, - { - "Canon EOS 550D", -1, 0x3dd7, /* RT - Lebedev*/ - { 6519, -772, -703, -4994, 12737, 2519, -1387, 2492, 6175 } - }, { "Canon EOS-1D Mark III", 0, 0x3bb0, /* RT */ { 7406, -1592, -646, -4856, 12457, 2698, -432, 726, 7921 } @@ -894,18 +870,10 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is "Canon PowerShot G10", -1, -1, /* RT */ { 12535, -5030, -796, -2711, 10134, 3006, -413, 1605, 5264 } }, - { - "Canon PowerShot G12", -1, -1, /* RT */ - { 12222, -4097, -1380, -2876, 11016, 2130, -888, 1630, 4434 } - }, - - { "Fujifilm X100", -1, -1, /* RT - Colin Walker */ { 10841, -3288, -807, -4652, 12552, 2344, -642, 1355, 7206 } }, - - { "Nikon D200", -1, 0xfbc, /* RT */ { 8498, -2633, -295, -5423, 12869, 2860, -777, 1077, 8124 } @@ -918,32 +886,14 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is "Nikon D3100", -1, -1, /* RT */ { 7729, -2212, -481, -5709, 13148, 2858, -1295, 1908, 8936 } }, - { - "Nikon D3S", -1, -1, /* RT */ - { 8792, -2663, -344, -5221, 12764, 2752, -1491, 2165, 8121 } - }, { "Nikon D5200", -1, -1, // color matrix copied from D5200 DNG D65 matrix { 8322, -3112, -1047, -6367, 14342, 2179, -988, 1638, 6394 } }, - { - "Nikon D7000", -1, -1, /* RT - Tanveer(tsk1979) */ - { 7530, -1942, -255, -4318, 11390, 3362, -926, 1694, 7649 } - }, { "Nikon D7100", -1, -1, // color matrix and WP copied from D7100 DNG D65 matrix { 8322, -3112, -1047, -6367, 14342, 2179, -988, 1638, 6394 } }, - { - "Nikon D700", -1, -1, /* RT */ - { 8364, -2503, -352, -6307, 14026, 2492, -1134, 1512, 8156 } - }, - { - "Nikon COOLPIX A", -1, 0x3e00, // color matrix and WP copied from "COOLPIX A" DNG D65 matrix - { 8198, -2239, -724, -4871, 12389, 2798, -1043, 205, 7181 } - }, - - { "Olympus E-30", -1, 0xfbc, /* RT - Colin Walker */ { 8510, -2355, -693, -4819, 12520, 2578, -1029, 2067, 7752 } @@ -984,69 +934,14 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is "Olympus XZ-1", -1, -1, /* RT - Colin Walker */ { 8665, -2247, -762, -2424, 10372, 2382, -1011, 2286, 5189 } }, - - - /* since Dcraw_v9.21 Panasonic BlackLevel is read from exif (tags 0x001c BlackLevelRed, 0x001d BlackLevelGreen, 0x001e BlackLevelBlue - and we define here the needed offset of around 15. The total BL is BL + BLoffset (cblack + black) */ - - { - "Panasonic DMC-FZ150", 15, 0xfd2, /* RT */ - { 10435, -3208, -72, -2293, 10506, 2067, -486, 1725, 4682 } - }, - { - "Panasonic DMC-G10", 15, 0xf50, /* RT - Colin Walker - variable WL 3920 - 4080 */ - { 8310, -1811, -960, -4941, 12990, 2151, -1378, 2468, 6860 } - }, - { - "Panasonic DMC-G1", 15, 0xf50, /* RT - Colin Walker - variable WL 3920 - 4080 */ - { 7477, -1615, -651, -5016, 12769, 2506, -1380, 2475, 7240 } - }, - { - "Panasonic DMC-G2", 15, 0xf50, /* RT - Colin Walker - variable WL 3920 - 4080 */ - { 8310, -1811, -960, -4941, 12990, 2151, -1378, 2468, 6860 } - }, - { - "Panasonic DMC-G3", 15, 0xfdc, /* RT - Colin Walker - WL 4060 */ - { 6051, -1406, -671, -4015, 11505, 2868, -1654, 2667, 6219 } - }, - { - "Panasonic DMC-G5", 15, 0xfdc, /* RT - WL 4060 */ - { 7122, -2092, -419, -4643, 11769, 3283, -1363, 2413, 5944 } - }, - { - "Panasonic DMC-GF1", 15, 0xf50, /* RT - Colin Walker - Variable WL 3920 - 4080 */ - { 7863, -2080, -668, -4623, 12331, 2578, -1020, 2066, 7266 } - }, - { - "Panasonic DMC-GF2", 15, 0xfd2, /* RT - Colin Walker - WL 4050 */ - { 7694, -1791, -745, -4917, 12818, 2332, -1221, 2322, 7197 } - }, - { - "Panasonic DMC-GF3", 15, 0xfd2, /* RT - Colin Walker - WL 4050 */ - { 8074, -1846, -861, -5026, 12999, 2239, -1320, 2375, 7422 } - }, - { - "Panasonic DMC-GH1", 15, 0xf5a, /* RT - Colin Walker - variable WL 3930 - 4080 */ - { 6360, -1557, -375, -4201, 11504, 3086, -1378, 2518, 5843 } - }, - { - "Panasonic DMC-GH2", 15, 0xf5a, /* RT - Colin Walker - variable WL 3930 - 4080 */ -// { 6855,-1765,-456,-4223,11600,2996,-1450,2602,5761 } }, disabled due to problems with underwater WB - { 7780, -2410, -806, -3913, 11724, 2484, -1018, 2390, 5298 } - }, // dcraw original - { "Pentax K200D", -1, -1, /* RT */ { 10962, -4428, -542, -5486, 13023, 2748, -569, 842, 8390 } }, - - { "Leica Camera AG M9 Digital Camera", -1, -1, /* RT */ { 7181, -1706, -55, -3557, 11409, 2450, -621, 2072, 7533 } }, - - { "SONY NEX-3", 128 << dcraw_arw2_scaling_bugfix_shift, -1, /* RT - Colin Walker */ { 5145, -741, -123, -4915, 12310, 2945, -794, 1489, 6906 } @@ -1104,7 +999,7 @@ DCraw::dcraw_coeff_overrides(const char make[], const char model[], const int is { // test if we have any information in the camera constants store, if so we take that. rtengine::CameraConstantsStore* ccs = rtengine::CameraConstantsStore::getInstance(); - rtengine::CameraConst *cc = ccs->get(make, model); + const rtengine::CameraConst *cc = ccs->get(make, model); if (cc) { if (RT_blacklevel_from_constant == ThreeValBool::T) { diff --git a/rtengine/rawimagesource.cc b/rtengine/rawimagesource.cc index 48383c8ba..f08609f5e 100644 --- a/rtengine/rawimagesource.cc +++ b/rtengine/rawimagesource.cc @@ -1453,7 +1453,7 @@ void RawImageSource::preprocess (const RAWParams &raw, const LensProfParams &le [&]() -> bool { CameraConstantsStore *ccs = CameraConstantsStore::getInstance(); - CameraConst *cc = ccs->get(ri->get_maker().c_str(), ri->get_model().c_str()); + const CameraConst *cc = ccs->get(ri->get_maker().c_str(), ri->get_model().c_str()); return cc && cc->get_globalGreenEquilibration(); }; From 8b00bb5a5697dd339f061808e3d9935efeb34dd3 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 8 Mar 2020 14:19:39 +0100 Subject: [PATCH 357/453] camconst.cc : more auto --- rtengine/camconst.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index 52466cd1a..5fd8ed81b 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -301,7 +301,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) camera_const_levels lvl; if (!cc->get_Levels(lvl, bw, 0, 0)) { - const std::map::const_iterator it = cc->mLevels[bw].begin(); + const auto it = cc->mLevels[bw].cbegin(); if (it != cc->mLevels[bw].end()) { // insert levels with lowest iso as the default (iso 0) @@ -481,7 +481,7 @@ bool CameraConst::get_Levels(camera_const_levels & lvl, int bw, int iso, float f std::map::const_iterator it = mLevels[bw].find(iso); if (it == mLevels[bw].end()) { - std::map::const_iterator best_it = mLevels[bw].begin(); + auto best_it = mLevels[bw].cbegin(); if (iso > 0) { for (it = mLevels[bw].begin(); it != mLevels[bw].end(); ++it) { From 4ef0b753549eb1314f27ad3d652d415a7d48de44 Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 8 Mar 2020 14:36:47 +0100 Subject: [PATCH 358/453] camconst.cc : minor cleanups --- rtengine/camconst.cc | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index 5fd8ed81b..fe55ecd11 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -512,14 +512,14 @@ bool CameraConst::get_Levels(camera_const_levels & lvl, int bw, int iso, float f // table with traditional 1/3 stop f-number rounding used by most cameras, we only // have in the range 0.7 - 10.0, but aperture scaling rarely happen past f/4.0 constexpr float fn_tab[8][3] = { - { 0.7, 0.8, 0.9 }, - { 1.0, 1.1, 1.2 }, - { 1.4, 1.6, 1.8 }, - { 2.0, 2.2, 2.5 }, - { 2.8, 3.2, 3.5 }, - { 4.0, 4.5, 5.0 }, - { 5.6, 6.3, 7.1 }, - { 8.0, 9.0, 10.0 } + { 0.7f, 0.8f, 0.9f }, + { 1.f, 1.1f, 1.2f }, + { 1.4f, 1.6f, 1.8f }, + { 2.f, 2.2f, 2.5f }, + { 2.8f, 3.2f, 3.5f }, + { 4.f, 4.5f, 5.f }, + { 5.6f, 6.3f, 7.1f }, + { 8.f, 9.f, 10.f } }; for (int avh = 0; avh < 8; avh++) { @@ -537,7 +537,7 @@ bool CameraConst::get_Levels(camera_const_levels & lvl, int bw, int iso, float f } } - float scaling = 1.0; + float scaling = 1.f; if (scaleIt == mApertureScaling.end()) { for (std::map::const_reverse_iterator entry = mApertureScaling.rbegin(); entry != mApertureScaling.rend(); ++entry) { @@ -570,7 +570,7 @@ int CameraConst::get_BlackLevel(const int idx, const int iso_speed) const assert(idx >= 0 && idx <= 3); camera_const_levels lvl; - if (!get_Levels(lvl, 0, iso_speed, 0.0)) { + if (!get_Levels(lvl, 0, iso_speed, 0.f)) { return -1; } @@ -626,7 +626,7 @@ bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& file if (datasize == bufsize - 1) { // we need more memory bufsize += increment; void *temp = realloc(buf, bufsize); // try to realloc buffer with new size - if(!temp) { // realloc failed + if (!temp) { // realloc failed temp = malloc(bufsize); // alloc now buffer if (temp) { // alloc worked memcpy(temp, buf, bufsize - increment); // copy old buffer content to new buffer From 5691b5498caad2d23f3b9b4cc9aa2bd45ed9d48a Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Sun, 8 Mar 2020 22:08:49 +0100 Subject: [PATCH 359/453] camconst.cc : one more auto --- rtengine/camconst.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index fe55ecd11..1e303ba73 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -540,7 +540,7 @@ bool CameraConst::get_Levels(camera_const_levels & lvl, int bw, int iso, float f float scaling = 1.f; if (scaleIt == mApertureScaling.end()) { - for (std::map::const_reverse_iterator entry = mApertureScaling.rbegin(); entry != mApertureScaling.rend(); ++entry) { + for (auto entry = mApertureScaling.crbegin(); entry != mApertureScaling.crend(); ++entry) { if (entry->first > fnumber) { scaling = entry->second; } else { From 493d7306a4d3458136f0d3f151f1a9f84432ab35 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fl=C3=B6ssie?= Date: Mon, 9 Mar 2020 10:33:56 +0100 Subject: [PATCH 360/453] More C++-isms --- rtengine/camconst.cc | 151 +++++++++++++++++++++---------------------- rtengine/camconst.h | 6 +- 2 files changed, 75 insertions(+), 82 deletions(-) diff --git a/rtengine/camconst.cc b/rtengine/camconst.cc index 1e303ba73..aab2a252c 100644 --- a/rtengine/camconst.cc +++ b/rtengine/camconst.cc @@ -8,6 +8,8 @@ #include #include #include +#include +#include #include #include @@ -33,9 +35,9 @@ CameraConst::CameraConst() : pdafOffset(0) } -bool CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) +bool CameraConst::parseApertureScaling(CameraConst *cc, const void *ji_) { - cJSON *ji = (cJSON *)ji_; + const cJSON *ji = static_cast(ji_); if (ji->type != cJSON_Array) { fprintf(stderr, "\"ranges\":\"aperture_scaling\" must be an array\n"); @@ -43,12 +45,14 @@ bool CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) } for (ji = ji->child; ji; ji = ji->next) { - cJSON *js = cJSON_GetObjectItem(ji, "aperture"); + const cJSON *js = cJSON_GetObjectItem(ji, "aperture"); if (!js) { fprintf(stderr, "missing \"ranges\":\"aperture_scaling\":\"aperture\" object item.\n"); return false; - } else if (js->type != cJSON_Number) { + } + + if (js->type != cJSON_Number) { fprintf(stderr, "\"ranges\":\"aperture_scaling\":\"aperture\" must be a number.\n"); return false; } @@ -59,28 +63,32 @@ bool CameraConst::parseApertureScaling(CameraConst *cc, void *ji_) if (!js) { fprintf(stderr, "missing \"ranges\":\"aperture_scaling\":\"scale_factor\" object item.\n"); return false; - } else if (js->type != cJSON_Number) { + } + + if (js->type != cJSON_Number) { fprintf(stderr, "\"ranges\":\"aperture_scaling\":\"scale_factor\" must be a number.\n"); return false; } const float scale_factor = js->valuedouble; - cc->mApertureScaling.insert(std::pair(aperture, scale_factor)); + cc->mApertureScaling.emplace(aperture, scale_factor); } return true; } -bool CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) +bool CameraConst::parseLevels(CameraConst *cc, int bw, const void *ji_) { - cJSON *ji = (cJSON *)ji_; + const cJSON *ji = static_cast(ji_); if (ji->type == cJSON_Number) { camera_const_levels lvl; lvl.levels[0] = lvl.levels[1] = lvl.levels[2] = lvl.levels[3] = ji->valueint; - cc->mLevels[bw].insert(std::pair(0, lvl)); + cc->mLevels[bw].emplace(0, lvl); return true; - } else if (ji->type != cJSON_Array) { + } + + if (ji->type != cJSON_Array) { fprintf(stderr, "\"ranges\":\"%s\" must be a number or an array\n", bw ? "white" : "black"); return false; } @@ -88,7 +96,7 @@ bool CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) if (ji->child->type == cJSON_Number) { camera_const_levels lvl; int i; - cJSON *js; + const cJSON *js; for (js = ji->child, i = 0; js && i < 4; js = js->next, i++) { lvl.levels[i] = js->valueint; @@ -103,34 +111,31 @@ bool CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) return false; } - cc->mLevels[bw].insert(std::pair(0, lvl)); + cc->mLevels[bw].emplace(0, lvl); return true; } for (ji = ji->child; ji; ji = ji->next) { - int iso[1000] = { 0 }; - int iso_count = 0; - cJSON *js = cJSON_GetObjectItem(ji, "iso"); + const cJSON *js = cJSON_GetObjectItem(ji, "iso"); if (!js) { fprintf(stderr, "missing \"ranges\":\"%s\":\"iso\" object item.\n", bw ? "white" : "black"); return false; - } else if (js->type == cJSON_Number) { - iso[0] = js->valueint; - iso_count = 1; - } else if (js->type == cJSON_Array) { - int i; + } - for (js = js->child, i = 0; js && i < 1000; js = js->next, i++) { + std::vector isos; + + if (js->type == cJSON_Number) { + isos.push_back(js->valueint); + } else if (js->type == cJSON_Array) { + for (js = js->child; js; js = js->next) { if (js->type != cJSON_Number) { fprintf(stderr, "\"ranges\":\"%s\":\"iso\" must be a number or an array of numbers.\n", bw ? "white" : "black"); return false; } - iso[i] = js->valueint; + isos.push_back(js->valueint); } - - iso_count = i; } else { fprintf(stderr, "\"ranges\":\"%s\":\"iso\" must be an array or a number.\n", bw ? "white" : "black"); return false; @@ -172,28 +177,27 @@ bool CameraConst::parseLevels(CameraConst *cc, int bw, void *ji_) return false; } - for (int i = 0; i < iso_count; i++) { - cc->mLevels[bw].insert(std::pair(iso[i], lvl)); + for (auto iso : isos) { + cc->mLevels[bw].emplace(iso, lvl); } } return true; } -CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) +CameraConst* CameraConst::parseEntry(const void *cJSON_, const char *make_model) { - cJSON *js, *ji, *jranges; - js = (cJSON *)cJSON_; + const cJSON *js = static_cast(cJSON_); - CameraConst *cc = new CameraConst; + std::unique_ptr cc(new CameraConst); cc->make_model = make_model; - ji = cJSON_GetObjectItem(js, "dcraw_matrix"); + const cJSON *ji = cJSON_GetObjectItem(js, "dcraw_matrix"); if (ji) { if (ji->type != cJSON_Array) { fprintf(stderr, "\"dcraw_matrix\" must be an array\n"); - goto parse_error; + return nullptr; } int i; @@ -201,10 +205,10 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) for (i = 0, ji = ji->child; i < 12 && ji; i++, ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"dcraw_matrix\" array must contain numbers\n"); - goto parse_error; + return nullptr; } - cc->dcraw_matrix[i] = (short)ji->valueint; + cc->dcraw_matrix[i] = ji->valueint; } } @@ -213,7 +217,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (ji) { if (ji->type != cJSON_Array) { fprintf(stderr, "\"raw_crop\" must be an array\n"); - goto parse_error; + return nullptr; } int i; @@ -221,7 +225,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) for (i = 0, ji = ji->child; i < 4 && ji; i++, ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"raw_crop\" array must contain numbers\n"); - goto parse_error; + return nullptr; } cc->raw_crop[i] = ji->valueint; @@ -229,7 +233,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (i != 4 || ji) { fprintf(stderr, "\"raw_crop\" must contain 4 numbers\n"); - goto parse_error; + return nullptr; } } @@ -238,7 +242,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (ji) { if (ji->type != cJSON_Array) { fprintf(stderr, "\"masked_areas\" must be an array\n"); - goto parse_error; + return nullptr; } int i; @@ -246,7 +250,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) for (i = 0, ji = ji->child; i < 2 * 4 && ji; i++, ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"masked_areas\" array must contain numbers\n"); - goto parse_error; + return nullptr; } cc->raw_mask[i / 4][i % 4] = ji->valueint; @@ -254,27 +258,23 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (i % 4 != 0) { fprintf(stderr, "\"masked_areas\" array length must be divisible by 4\n"); - goto parse_error; + return nullptr; } } - jranges = cJSON_GetObjectItem(js, "ranges"); + const cJSON *jranges = cJSON_GetObjectItem(js, "ranges"); if (jranges) { ji = cJSON_GetObjectItem(jranges, "black"); - if (ji) { - if (!parseLevels(cc, 0, ji)) { - goto parse_error; - } + if (ji && !parseLevels(cc.get(), 0, ji)) { + return nullptr; } ji = cJSON_GetObjectItem(jranges, "white"); - if (ji) { - if (!parseLevels(cc, 1, ji)) { - goto parse_error; - } + if (ji && !parseLevels(cc.get(), 1, ji)) { + return nullptr; } ji = cJSON_GetObjectItem(jranges, "white_max"); @@ -282,18 +282,16 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (ji) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"ranges\":\"white_max\" must be a number\n"); - goto parse_error; + return nullptr; } - cc->white_max = (int)ji->valueint; + cc->white_max = ji->valueint; } ji = cJSON_GetObjectItem(jranges, "aperture_scaling"); - if (ji) { - if (!parseApertureScaling(cc, ji)) { - goto parse_error; - } + if (ji && !parseApertureScaling(cc.get(), ji)) { + return nullptr; } } @@ -303,9 +301,9 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (!cc->get_Levels(lvl, bw, 0, 0)) { const auto it = cc->mLevels[bw].cbegin(); - if (it != cc->mLevels[bw].end()) { + if (it != cc->mLevels[bw].cend()) { // insert levels with lowest iso as the default (iso 0) - cc->mLevels[bw].insert(std::pair(0, it->second)); + cc->mLevels[bw].emplace(0, it->second); } } } @@ -315,13 +313,13 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (ji) { if (ji->type != cJSON_Array) { fprintf(stderr, "\"pdaf_pattern\" must be an array\n"); - goto parse_error; + return nullptr; } for (ji = ji->child; ji; ji = ji->next) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"pdaf_pattern\" array must contain numbers\n"); - goto parse_error; + return nullptr; } cc->pdafPattern.push_back(ji->valueint); @@ -333,7 +331,7 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (ji) { if (ji->type != cJSON_Number) { fprintf(stderr, "\"pdaf_offset\" must contain a number\n"); - goto parse_error; + return nullptr; } cc->pdafOffset = ji->valueint; @@ -344,17 +342,13 @@ CameraConst* CameraConst::parseEntry(void *cJSON_, const char *make_model) if (ji) { if (ji->type != cJSON_False && ji->type != cJSON_True) { fprintf(stderr, "\"global_green_equilibration\" must be a boolean\n"); - goto parse_error; + return nullptr; } cc->globalGreenEquilibration = (ji->type == cJSON_True); } - return cc; - -parse_error: - delete cc; - return nullptr; + return cc.release(); } bool CameraConst::has_dcrawMatrix() const @@ -392,6 +386,7 @@ void CameraConst::update_pdafPattern(const std::vector &other) if (other.empty()) { return; } + pdafPattern = other; } @@ -400,6 +395,7 @@ void CameraConst::update_pdafOffset(int other) if (other == 0) { return; } + pdafOffset = other; } @@ -445,18 +441,15 @@ void CameraConst::update_Levels(const CameraConst *other) return; } - if (other->mLevels[0].size()) { - mLevels[0].clear(); + if (!other->mLevels[0].empty()) { mLevels[0] = other->mLevels[0]; } - if (other->mLevels[1].size()) { - mLevels[1].clear(); + if (!other->mLevels[1].empty()) { mLevels[1] = other->mLevels[1]; } - if (other->mApertureScaling.size()) { - mApertureScaling.clear(); + if (!other->mApertureScaling.empty()) { mApertureScaling = other->mApertureScaling; } @@ -502,7 +495,7 @@ bool CameraConst::get_Levels(camera_const_levels & lvl, int bw, int iso, float f lvl = it->second; - if (bw == 1 && fnumber > 0 && mApertureScaling.size() > 0) { + if (bw == 1 && fnumber > 0 && !mApertureScaling.empty()) { std::map::const_iterator scaleIt = mApertureScaling.find(fnumber); if (scaleIt == mApertureScaling.end()) { @@ -655,7 +648,7 @@ bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& file cJSON_Minify(buf); // parse - cJSON *jsroot = cJSON_Parse(buf); + cJSON* const jsroot = cJSON_Parse(buf); if (!jsroot) { char str[128]; @@ -674,7 +667,7 @@ bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& file free(buf); - cJSON *js = cJSON_GetObjectItem(jsroot, "camera_constants"); + const cJSON *js = cJSON_GetObjectItem(jsroot, "camera_constants"); if (!js) { fprintf(stderr, "missing \"camera_constants\" object item\n"); @@ -682,7 +675,7 @@ bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& file } for (js = js->child; js; js = js->next) { - cJSON *ji = cJSON_GetObjectItem(js, "make_model"); + const cJSON *ji = cJSON_GetObjectItem(js, "make_model"); if (!ji) { fprintf(stderr, "missing \"make_model\" object item\n"); @@ -702,7 +695,7 @@ bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& file goto parse_error; } - CameraConst *cc = CameraConst::parseEntry((void *)js, ji->valuestring); + CameraConst* const cc = CameraConst::parseEntry((const void *)js, ji->valuestring); if (!cc) { goto parse_error; @@ -719,7 +712,7 @@ bool CameraConstantsStore::parse_camera_constants_file(const Glib::ustring& file } } else { // The CameraConst already exist for this camera make/model -> we merge the values - CameraConst *existingcc = entry.first->second; + CameraConst* const existingcc = entry.first->second; // updating the dcraw matrix existingcc->update_dcrawMatrix(cc->get_dcrawMatrix()); @@ -771,7 +764,7 @@ void CameraConstantsStore::init(const Glib::ustring& baseDir, const Glib::ustrin { parse_camera_constants_file(Glib::build_filename(baseDir, "camconst.json")); - Glib::ustring userFile(Glib::build_filename(userSettingsDir, "camconst.json")); + const Glib::ustring userFile(Glib::build_filename(userSettingsDir, "camconst.json")); if (Glib::file_test(userFile, Glib::FILE_TEST_EXISTS)) { parse_camera_constants_file(userFile); diff --git a/rtengine/camconst.h b/rtengine/camconst.h index b959481ba..aa0702439 100644 --- a/rtengine/camconst.h +++ b/rtengine/camconst.h @@ -36,12 +36,12 @@ private: int globalGreenEquilibration; CameraConst(); - static bool parseLevels(CameraConst *cc, int bw, void *ji); - static bool parseApertureScaling(CameraConst *cc, void *ji); + static bool parseLevels(CameraConst *cc, int bw, const void *ji); + static bool parseApertureScaling(CameraConst *cc, const void *ji); bool get_Levels(camera_const_levels & lvl, int bw, int iso, float fnumber) const; public: - static CameraConst *parseEntry(void *cJSON, const char *make_model); + static CameraConst *parseEntry(const void *cJSON, const char *make_model); bool has_dcrawMatrix(void) const; void update_dcrawMatrix(const short *other); const short *get_dcrawMatrix(void) const; From 9c9cd6dd873bbcedeb6aab759f7b2e4a119212cb Mon Sep 17 00:00:00 2001 From: Ingo Weyrich Date: Tue, 10 Mar 2020 11:45:04 +0100 Subject: [PATCH 361/453] copied some dcp profiles from ART --- rtdata/dcpprofiles/CANON EOS 5D MARK IV.dcp | Bin 0 -> 32782 bytes rtdata/dcpprofiles/CANON EOS M6 MARK II.dcp | Bin 0 -> 65374 bytes rtdata/dcpprofiles/CANON EOS R.dcp | Bin 0 -> 65350 bytes .../CANON POWERSHOT G1 X MARK II.dcp | Bin 0 -> 65390 bytes rtdata/dcpprofiles/FUJIFILM X-A5.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/FUJIFILM X-H1.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/FUJIFILM X-PRO3.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/FUJIFILM X-T3.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/NIKON D500.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON D5300.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON D610.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON D7100.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON D7500.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON D800.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON D850.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON Z 50.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON Z 6.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/NIKON Z 7.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/OLYMPUS E-M5MARKII.dcp | Bin 0 -> 65366 bytes rtdata/dcpprofiles/PENTAX K-50.dcp | Bin 0 -> 65350 bytes rtdata/dcpprofiles/SONY ILCE-6400.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/SONY ILCE-6600.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/SONY ILCE-7RM4.dcp | Bin 0 -> 65358 bytes rtdata/dcpprofiles/SONY ILCE-9.dcp | Bin 0 -> 65350 bytes 24 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/CANON EOS 5D MARK IV.dcp create mode 100644 rtdata/dcpprofiles/CANON EOS M6 MARK II.dcp create mode 100644 rtdata/dcpprofiles/CANON EOS R.dcp create mode 100644 rtdata/dcpprofiles/CANON POWERSHOT G1 X MARK II.dcp create mode 100644 rtdata/dcpprofiles/FUJIFILM X-A5.dcp create mode 100644 rtdata/dcpprofiles/FUJIFILM X-H1.dcp create mode 100644 rtdata/dcpprofiles/FUJIFILM X-PRO3.dcp create mode 100644 rtdata/dcpprofiles/FUJIFILM X-T3.dcp create mode 100644 rtdata/dcpprofiles/NIKON D500.dcp create mode 100644 rtdata/dcpprofiles/NIKON D5300.dcp create mode 100644 rtdata/dcpprofiles/NIKON D610.dcp create mode 100644 rtdata/dcpprofiles/NIKON D7100.dcp create mode 100644 rtdata/dcpprofiles/NIKON D7500.dcp create mode 100644 rtdata/dcpprofiles/NIKON D800.dcp create mode 100644 rtdata/dcpprofiles/NIKON D850.dcp create mode 100644 rtdata/dcpprofiles/NIKON Z 50.dcp create mode 100644 rtdata/dcpprofiles/NIKON Z 6.dcp create mode 100644 rtdata/dcpprofiles/NIKON Z 7.dcp create mode 100644 rtdata/dcpprofiles/OLYMPUS E-M5MARKII.dcp create mode 100644 rtdata/dcpprofiles/PENTAX K-50.dcp create mode 100644 rtdata/dcpprofiles/SONY ILCE-6400.dcp create mode 100644 rtdata/dcpprofiles/SONY ILCE-6600.dcp create mode 100644 rtdata/dcpprofiles/SONY ILCE-7RM4.dcp create mode 100644 rtdata/dcpprofiles/SONY ILCE-9.dcp diff --git a/rtdata/dcpprofiles/CANON EOS 5D MARK IV.dcp b/rtdata/dcpprofiles/CANON EOS 5D MARK IV.dcp new file mode 100644 index 0000000000000000000000000000000000000000..80407fb216c5afcbe94bfdc84c229c4dc113133b GIT binary patch literal 32782 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 Wp^`d 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 B5r_Z) literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/CANON EOS M6 MARK II.dcp b/rtdata/dcpprofiles/CANON EOS M6 MARK II.dcp new file mode 100644 index 0000000000000000000000000000000000000000..9a877f02f1e18f7ef952d36f7b58558a21aecda5 GIT binary patch literal 65374 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 P?{hl-`!q59@%R4&yQf?j literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/CANON EOS R.dcp b/rtdata/dcpprofiles/CANON EOS R.dcp new file mode 100644 index 0000000000000000000000000000000000000000..6ea5302e290637ef5fb806575782f07b7d344e80 GIT binary patch literal 65350 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 AWdHyG literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/CANON POWERSHOT G1 X MARK II.dcp b/rtdata/dcpprofiles/CANON POWERSHOT G1 X MARK II.dcp new file mode 100644 index 0000000000000000000000000000000000000000..656649fd966bf495a85347ae478535de884b0c00 GIT binary patch literal 65390 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/FUJIFILM X-A5.dcp b/rtdata/dcpprofiles/FUJIFILM X-A5.dcp new file mode 100644 index 0000000000000000000000000000000000000000..c6e88d7891b7c2db8438b5f3cf889dc15aa16bdf GIT binary patch literal 65358 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 S`|JGsIqm+vmNfnF`u_oLw>SO( literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/FUJIFILM X-H1.dcp b/rtdata/dcpprofiles/FUJIFILM X-H1.dcp new file mode 100644 index 0000000000000000000000000000000000000000..e3abc07f179edb0d81bca5b6c0e75a75164ea5a3 GIT binary patch literal 65358 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 dnswQ>@^y{Vw&4-1#KDi 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 literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/FUJIFILM X-PRO3.dcp b/rtdata/dcpprofiles/FUJIFILM X-PRO3.dcp new file mode 100644 index 0000000000000000000000000000000000000000..bfbaff9e5670680c1da81fddea2736519b8f10dc GIT binary patch literal 65358 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 I{rL0$0mxx5%m4rY literal 0 HcmV?d00001 diff --git a/rtdata/dcpprofiles/FUJIFILM X-T3.dcp b/rtdata/dcpprofiles/FUJIFILM X-T3.dcp new file mode 100644 index 0000000000000000000000000000000000000000..5024f38a9f3a64cee842691f23ef5bd982077078 GIT binary patch literal 65358 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 {8LR;(Aes+8;c5ua!{`p}i@4Lo$4bHsJ& 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 MlAlL!{Tq4y2biAC Date: Fri, 24 Jan 2020 01:15:30 +0100 Subject: [PATCH 165/453] Added FUJIFILM X-T30 dual-illuminant DCP Closes #5387 --- rtdata/dcpprofiles/FUJIFILM X-T30.dcp | Bin 0 -> 1102958 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 rtdata/dcpprofiles/FUJIFILM X-T30.dcp diff --git a/rtdata/dcpprofiles/FUJIFILM X-T30.dcp b/rtdata/dcpprofiles/FUJIFILM X-T30.dcp new file mode 100644 index 0000000000000000000000000000000000000000..97917b810a90c1769dc1c2dc81799290f8cf33c3 GIT binary patch literal 1102958 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

$36~9A$0b{=?f^y)TM;Sjo8Bae?&< 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%0D-S|5)?;&c5N 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≪H-#z4>=CCm8l0~WxZze}F zG92^!c}ZJ{)kW-!#E!B8DLL64hiB4X&EH&Hsqcy_{;^n1Y;c^yt$Bs@F9cmT9b29bzJR59sd0Y(!~2pPIe z>%r>)ex{sK*-D zv&m8M`~ZLVz2wB&oD_E|!r{Vr{qs0kw7bq-Lgt4aorj3c9W*$yC4x>;a8A4|eFM>h9zX z!wKOS=Q&F1^_P6@k*q1L{iUCY?pVki@@FGN7xpQ;5Q|5r)w=E{*bg?_0;h#l@!HuQ zqkdM7bBA$>!f3<}?ul}r_s%4dzM3(&V()x=v^dSWdJ^Y42hApmF7Df5@SRxS+XZ6T zyaIG1-gxE99ATcm9W#G&c3-+olrJnm?pN*|e6ttnMtK-|)gKGidWhY6xp=vY`!)}J zM9h(FoFlI_N8>L(F31GN2VtXkn7B1D4cB?*%Jw9QNeM}~!Ch8QgFRx5MLfou1fiqn zNwIiZG^Wz0I5O>wC|wwjzFPL{t2oo*@lNb%)Oe@+8i+5Qkg2V)yYFq_6CtGc9$(zAFg`pIrrs8e6=2 zSUJv0Xo8q;vjZDTh>MOJC(a!%q6QB45l+ZLsa6EtGcX zhc9u$UeQy9uVo=z=lF3Se!lSQxE;sW5)-SnMi@2B$7JriBk7 zrm*L3R4WXR+)K4Vd#K-U8-~WGeY74<{`fRZ1G8z*N>_#XqSL}~te)v^e2-o#^?V|* z{$Y`7OdD$9^E@}4JVwf9-bm*BK7Wvn^1g>F{^=8g;g?E9>vSiGkOcU5s7ap68rUh7 z1P9S~dLs_vk-75fpNVZvuo5t_PsW1F)|1g8~Zzm*R(O)Z4+?(LYq z%ohiCn2Tjag~;3K2dBPMg?_?zBvJpmKIm=4+%l4LJA-*P;O7B4J=U+=fzL{(Po*qMwXS>@jLLR)kw#JU-FC?edZ{qDPY$ z7=5C4d6&~-a&#oRJPAS*RknzTjzIIO^cq|@PiSMp@zyC6oj!k7?tKVD3-WKCy>wA( z9$@|KMEpAZn>L8=$C^(X95YaBqo`lunHG+U$;(R34zXwI7lG3!D~uu)-t(g)aG?8W z)ueC4-6uytlh{vsf5RQq-?C3Xaa}U)?~3KrQu^#MNxtE3k5zT!u}4)8?eANo`Ty@c zn??nS@bV&R&yrjCw179JiTo?d4E zQo-|lYluj3&cdk@dIwg>V$AY%xXcJa#r`Q`V|Frf=<5@aXeVAyW$#-j1kLvN37-`) z7~;r$TM;0ZZjMAFdINmlI#oF4M!?pZy`IHe<#${5EC|Evn{||5FUZmTs=>-jFO6q< zg~Bl}9C|~Cs$%vt4^j8A#*Z`;YrOz8`Vo#R&;3m<3VO#_vVMNoKxN6gHD*u*O1lhJ z`MqG@b|W0c9+OpFdwSr9K?L5Ktx^4;Zql*u#6U)Dkgj|2Z10Z3jc$jfxozz6s5H7# zy)mWw1~GqX5q1gc$k{d&`SpuXJDA#SubwNtoeMFTvzz6(rQF}g{>97(J#XApEKe0+ z({Nv0dVXFBc(ffB8~t#9=|yG7!vd^IpbrObDuW*8VO3%PYGmG5I$y|z#CgWKZjY58 zyK`_lDF~UqkCnSFS%`}W#^HZnC|mQm4?8*pvA@14H;1KQIyWr@z2)HcTrTStMfW7x4Q1)q!>grv3Y7`MKIvJ&M+2M_M zy*Uq_oUiI~jl3S$aCCZ+qdNZ19YG_=Yj-zP1#wneBR(9d(?-Y{dp2P*F^!?fGESZD zj`6cA$GOM8#bW>30$e6`bfCt2y4?wP|gM^5k5)u1P&&rFj_G^8;^4O z`dmGop;$bKMmp!*?u)l6$9RSxc<|ob>Zc?zmL|mMx)lG?-X0u*&2ktX8fBQws~Z7_ zkr8-yF4{>2U2;i!}6$VP8DVK-*4Ap(jWnntgdu8mA)eV-0T>k=Y<$_8{&ihBBYAb-xD|b*UrY;z)xK&b z9TtXRtt0hZox7Qs<7;+>2+o!ynIZ)KG&cWwc=6d%?<;lBj%p`}cw_R1md@%8R&PP=KdRm+5 zSs2RN-8Qh1YWGa;u5!Qb-05u9SG_FMCC_zg<7cYw>MZ)t6LX1gDWxsSz`I?37`WP4 zlGdleWT8Js7tEAiZA^hR&$;nZ8_CK(2{L1@t>G(Ky-&c^cL7*3DMniNC>BvaSZ^EW zOBM5@V30{)`DI6>uEiR3{Ykxyva8aU@(`#!{c-quxzuEE2>h%$pE8V-=AH^c2J_Of zO9P}1Hle7{g~HIGKvn%L`H-ytoVT}BeK!ooEmL9_4i`;~$^)pA5QWqU2C8)KPb@eR ziDO-QswUo{*OoV971L6c@_;+OJ;SLR)zc*KfIB|jqi^nWoz&ja4W67ARCS+>g1H-! zNezYBH4hq3-{yvwdn?aV4sPo9DdS`RKJaLrNoH*w^&UJSF+AIYe%Y@!HA6&|gk$(Qo#Mnoi-B&A?l$IH=jqt;# zE+?g3-P7=x7^dFkyV8`tDY#7@?djt8Qc$lX*e?k{myUm>^BuO}{rv#=>8i^Ih|$%Y zMV#$PO}Xe9u~44#E%WNhfp$@l?grxNvL^DCGUm(Mff!WKR?d1A%6V@f>Lk>akI|oP zU!7othQ&#xpF*)MhBK+;_o{{~LUCqu1oGonskBRiQL9Q6J_O!2Df< zF5tYYWfU&dX{NIJK#vmQ`CW6~n(TN(oxC~W2zj%*f1$Ud3 zWhngZf?Up4f(tJj@9sc8oMUIqpjz+Zys} z&ZYTFCYyGVFL;L|k(hpN z)n@YWk74-wAcT7v=cN2mVK_TNgRBF=+Nt9;5FMj&d3Hx}F^tWKZn4ZF>Gz8nJ ziSV@98O31{@v8dVAz#)&IhIEZa(xtfo&H|3zKItycn7$gh$z)(e%5QC!QkWt@`e4I zFsH8u`qQn@_P7f?XGbFIpndiO^r+bvCD>M zXL5``s-^02S?I^PiPO7$>0v@9vSxc@xZMjW*eip5AH9k)YRk=sWTNOKJsI1ykY}yP zL~YLL>UZcXZ+A*ZsRi@KEwxjd^V|N6Aq$<0>BVIj|UhHNkIbBRHV`GMRywUPg3M!|^v_{zj(vcbm)RNuikPn;^p zx`d-G=Or`G8OdYGJFP*#!wH@BOpL}0qXpve%5eN>l*ql6 zyW&D%I0m=Rz}#nzb&Hq-_OHlBj8jWpH?v?=K^F4I>*)-s%iZ@%3Qmm76$VDcA?n0o z{TVN**GP9fITi(5J4>8Awh=wHN28~E7vsL|HsJ|p3jd9B%`k5zZCMt^1(NqtxKq{O z9M7ZyJ(BdJrLEsM*URz3r;m>%{VEw)ID$CR+7@#A*J)T@!98EMe)6l3bWDik?&vUC z4yaDN!rB-2C(f4Jc1VNsU;6D`vXyOzroci&UFF{1a*k;dxm5IePYIUoExEHsznNLT zBIMgMu9CZ!C zPD4MrXX9{OJr#`3@iubb$6;{v2!*Y|Ai3G_FqGWa!0}O->Ic2hUzkT@?zq+BN4Ib! zkuMm~;fENc4o6G&NHdpq(Y=~UpZf7xm@<5T?t&bQK=Ng`e{H8Lqkq{2YADQoaaC9l z$5Wff|1XBuD%i8MjKM3;Ix;$)bT5AmivTE6%+5$5{DoO`FskD6~mkRRtJUiq@Y=y-&F zpl4O^Zu!r=SoE9ekLP)c{Jn29o@VfKo0IaOV-eWF9@9?$hMYhj*M{sX*6evI2N`gW z*p42TU!TY?sWBCj6bNPPet96d6*2607Jr&5?-)vM1#!JqDS4{eZ8UJ+5sj7eo+(HB zQ%~u99L8-n7WS<1&L4{>FJX!p!`XNBx$zh^%~JHG=6}(vSfsl55tEa>k;y;nUw%Tl z&Uy8P2F$}BOypA%{Rr+wP}gQCT+g~-*8M2-yPjZF-^dl4hg6R9geN7X9p)#YK6yu* zp2kSGek)qt0BYc#;v+9e zd$VKlgP79Oq8_r;Di%juQm19Wayi~D2K6_x_OR8+8xBXKH#yY{thdPx#ztekF}>}) zcFHeJ;_!g8!hdqh<+0T1TC$41di8F|2aZMK^g(i8O<&2!$iMwe-sX(?zvKqBB4M<` z7yHa=LTw$61_jLRZyMrxBH#TNz9`;qh>Lk4P0JSxkW;gMT0E}lO%q>vo_`v~q2H69Vr3fjJoIA_zM(|9PEJOc-N$vI2oatUU&aZU-(wrBOup#I6`|TQX z%0c2%+1wZCX(k6wi=?I|_iufCGwSqI{8v`RyV+-}fUCZRT0pYNJ%02VD zC*z+gG?z4aet{b|grW$bGf)xa7l95yw%7d*ES;<{^4$I=Imw_Bmk>rk`|AwSu< zEBXh7U_=G=og4>XbPe_q#9bw|F)rzd^CkJ>*a0;f{s}-cAI|f(jl``Kdea>C$CsT( zNM?VN<;(iHQw!u21tFGr$o;{kve8XqcwNHL<65cobq4!x<7lkzdr`Tlgko*mIFzq7 z7jv?Lv1nC1%x^6co{aNg>v&9!9Vddw0V{Qm!@Ih~$TyYa?ES8ee6cFA7RI@Gn?drentc9@ z^M_&^S$$aptH<0q+8i&R@YG;6cau`n{*k|Q)WC)q_28;kW#dB5@z4CLO>|$LLTskN z25-!{|4sgp9f9%J$wdsQjs080@wx}=?X;#aOw%B2BWGUj?O?Yu3B zrxWkcokK7=Ef_nZxepa0;Z-uVj3)Zw_JffqZWM%&_5SF0Z4{J)^isbTfDs>z;Yn?b z9b1DCz1xsG#Kiv=gkoK>kmHP~@pUj96T2Oi%oyiP)*FxfE0mg?)$acli}5jIgatA0 zhOBj(x0xs6*n?`F;vpRvC6YP&9>*N+vPNI@F5&&tF&1uvcPW0JLgv>rawB zUTesW<;-T1r)*9BPYUBaL~N1AjniNrxyscZ?UMK24a4wru|V{_oc4>QJ(ZxgQf01s5hhY>Z*P}q0y#e*~h z_*@Bw)`wbhc5QHpTu_CY1MNq3#KPJ^@L^v$qG~5ZvH!ckx#4VTGXHJDT(K?)_76YF zL$?vn8xo31bE4!q&Y|d=8;<(d?WCdPb(l4Z#wVj=$~F5?ESeCDhWq*mtHHroKR6Bz zj7)?SOwMD|IH+8^iZ=J?wK6ysPA^|6*H@7Tw4ZmVXS}jXMNZtPC|FfJrIht|!(yK8 zhW&<#2{&Buz?gUZw0Knydl&4{RzA;fy*tZwzG?8?oV$>nTFBjg^1UY3@$lS0xmkq< zukUkD#C?W5ezOM6IA7m#Z0$;KHW#f&|`#JLN z0}-fmj{e1Vd*!)2Q$}s5xfe)1;c^XLiE zSuXi?W~qq7lcM!Z@y z^^{L}MIeRwxz;}+@|mD;XlnbwaB`ensNr**=!03#>2hz*jz+V`ao6R`maTZk&T$7} z|6chZd+1o+iQg9MKFbeXo|ell^avS2Zc;^uJ@Qz3Xx5q& zh}Yc%K5KtZe<4| zRf)v@W%rcT$C>;6BXIG~KE+<&2lcfY9F^uM(^(g|#fRdy7@@rS>xPOO!Kl}Gthn;T z1*J1XU~KzVB>Zwh9_#g@%!?}RH+ssjZ~t$f((MPS_>5(qm4c&N5KsFnsr+<%$yr-f{oM?Z98)Prq%%Dwo#3wC?K+n|qZ$luY3^F+sH z#;jb-uxlWF92kM?(%HdAs zAuqXsM=&46YGc3>y0`(|JHkNLgmPt^acA#F4HJi`SeBh;ukr) zDI6^SDG0_U8}{HA)1_{+$Z=-xJ*&@1?PtckpgbItm-{H=!h^AJQUtjOxyn!OXV@*StS58Qf0F!hjs{oAe=eQ!RVrcb)eGUC;ERjW z74qj-T=YcjnDf%$Jz?0w{fORUZc5FjvOitIy@I|krS9wn8f>NC#wUxK*3xU52 zchF{blaCVb&)!ZgW@1et#53ZlTVj26h`f>YKot4pD<%$>JEaBCo6HZJyS0*|IX7@3 z7M-)~tn_+kFos>CuEE|WQv9$`1oF-^^hwr!dm2KYA`JqrSt>1$GM`6ixaV)Dd^$!B zh-ny_9$u>4&Zi$)y$~D>8m>5>AlIIp-n4dawQa-P(AvWfHfwe(wpCrwVm7(i7K(^F z=YXM8==1buhOS%P_5a&j*}6JHq)ewDlWFDs?!N5!4wnkzG&s(lab{es)PpnV)OYmn?wl-*%MQgn?nnl&%aXP@gkTZp zVsE-^m;PzXcYi(cvetX02+pQMQ+)8eUa1tdn>(1~4E6HbCp{q-Y(8}+&mN4C*6=+0 zpZ3Q+tNzkW_8kp|aVG9`*yM4QP~0Flx}~&F`(s=PPIU;w@x`r`B~Jn|n6+J8%3wu9 zpBlIK!5EV>LRmrFcg&bTdZ-Ln3U0b{ZpHZuBqcs!BfTlSkQv-k487op?qfXYBUwfF zX@ecig*zII4AlKeUI(Yz+%vUmsoQkO5hIP(R>~XKuCAB8w=uR7@w%fgq?5s6DD)!U z`X)j8L|oCloSF4p}5BXf`E8fUfU6>MpRvx~%*Jr9q zJY>H-!5=^01{$9_7>se;8>}~Qg0|5=Auy{5hD&Fywmxy4rQ~eXt^Hd&j?_8tyGjA@D1`g#y<^k-e(?zOh?gFpVT zSJ&0*qr93)t`{+r4|hG3US`~7-|LOWy-Jie)45CKycrKvb;a$*_9*vsf|*gF7#_41 zyL;N<@sTOIqT*GsK4yb6@-dxbzvXbqvw?T(V%=1GD`Y&FTPe=zKa%AGoKZLK!JS{f zy7JyMe{`Nj4fZ#&(pYl03w$~2J=0dIL2b7)+{;b0b5PZ2>kq@L)B&zLvGmb3{{4PZ z6Q)U&cHDQ?1FPsWYW-T<^4}ehVlPa)(?&T=zJ#b?4qv8Ho}{uKdq7^<-5E+`4Qd~L zq9@Z?Yvs$_fA2N&QLs@dOZ3Mb?p_($dn*SI`(b)xa@_{`E2F6g)5x5-(#v$h#fzD+TpkHjZxK=p3?S2^^+k@`Z;^syQ(+V;1>vVUw~eC)0W zwy?tame$mK+@RarWf|TsS%vD8@9R3si!kiiN-Wb|)Tufz!Q-@PmEvrE>WJLED)E1P zPlR9XBah?zvalQDtUVwFj&y^c3H`0o)RJQ)HJXSCUON)1YIDgA0mPlUj{K+8_7A_l zin{t{<=U(5$l+xTbjQ7oVi-!l><`R2M<*yt$ggSgow~TD&Pvr0JU`#4EpsYVIl*51 z=V$JEuTE5quF@xvJc)+4vXwu%Jn!$Q!}+&Bk;&6}!+)pv)efbC^PH1>k5mma6klIo z7Z4=LSKVpC_dMK^$1Yz-Tf6Pz4pncSuImDIfO~VdoZ(C5`fIEQRuj(jP z&6szoe|vq1gR+5ldx1W^>F*p@)*aeNzoAXkpf?mZ6W606WvJ^9~ZO4vzi+AZa?C`wSOU8nvfck8}vO;d^(%9bVEr`+d*UfQNgDrZ^d@qTz{cR=g8CkV~M{BhT#SUaPbdP=pZqjaOb zGKM|S18VnFY3Hiw45@9ybJef?DP>y+XI!R_(zJmsMIdv)=UQuVvAT;WAH53RHcKIY z*VE0|z8E_f&&Si5fx6$H=0e|KF6Nwnr+X{U#Lc4FxYOyR?y=i6IQW@WI?u<$KFRG( z?f>VmWM@q5h}_-j^?8=wSCi|Erw_6L^>5o}ODowo(;P&pU6Vl?~GMO$>G-8YaI=|?S&*8bXladEC5?a)&XT=j8{@j-7z!C4Ko)fDSN4DR7|g86Uzrm{|{@RWbZG!Q$;Sq`th$oIDks`%J~{)Nq~UjtSWF(zH^X)1sOm*cn&VL z_mx`xA-|f>Vw0_fRCPNwsE1NFes?p;!=5@5Zp;JTA63yA{OriRIfGNG1)0>0;m%R* z?t-8Gu*J|LP^W70Wgz&(4f^YZEME4cq{!z!+f=^5rkdL>FXD5(XOcQN9i*k zOi#$t4rI?%k9%aHE3>tw)7{YHAu)PYtakVud(2aKGr6u&k{yFsc-aqd^p z08M(@qdWgDIi;cU`Na;{SciMBYt`~D*%4J6Q;T4Np?sG2!f3{Gg>Q9vjH}cCd}Lhr zyp!gAc0yqz=8)kxrR#aFxY+++&fhWVrw#ExC*n~zk4T+USo5#uJ=^4{RG*&>rZfK1 z38_Ic>vUtjBS$Nw-s#jGMXUy$1G;QREIT1;QBNET-}ho=@|>HZ7Sch1lb^0|+> zk|cF&;0M2X^nkA4Me5s+{HA(7Xq@D4VpJN0^&@@JsC%e(F7+Y|Ij>BPh}TBh`eVfl zp5a%yC6Qy9=Q~qRwP{_+X@V>CUpnIWp+ZS?vV+>v3N34Nlp7hWg46kV)QDUpziY7w zKWwL<=4K1ou*GaV{9uX8hSQ|OO{OB_nHkpB93_l&&*yu~vs|bHWI?UPSH0vTkC;oCZ!aC~FVE-aV8(gW zwW0D;Vu4Kuc+xXlCBJ*a&sBLBn~svt*Yd*Z(~Rvob9o$hLvP>k0JqHL5$uO{Gp7}= z=psLR;7e^Y?ux!VDXmd)7xNxgC9<-hzr%Ie4lyO|fSxWMwex4i1w2E1&r7J7g0%j;gO#hP9VQDfu~1RPq9 ztMjM8wv76E(n9D73$%9I3HL9vQN?Er99vaa+o#Mxd5I||mYq^RU9t?1Pxh@8=WluK zQ8>yS-T3=|S$aVJX5fye9e6ibr^o}Q(sOSx^^25Lxj54ulSWf_?o+<}yCKHs;` ztaF2dn8Ocl#4+v?bstX6oFO*wX&*$r3SZP=P93+C{#G5yZTLDJ>HPXz?xMUc1G*Un z;8QMl7&8q}7sRMo=g0Zoked^4h;(y<@12wKx^x%ZTDBhMU+d#lcRPHLm*aE3749`# zjZ?d3;dQ|Q{A|4vn1>dQ_!2n;!3k`{W@UWKOQ; zc2<7U${nVxD=t(VlBX@91|iSeS#d!w-tP_rHGKoq-pcOOYuYlAUNCj*Vb5$2NOS24 zWzZ2d66tfzd+O;jBgj3;W##9y}XSpXFsdZCC9W1`N3{kkFp^V+fE|h5`TC%Zjy^#%HQGWjzdV=>xB{hn9mQL$6NBz^i|{%r`-IP zFOKfqso9Zu9nsSRP>s7YD@I?%5k2}!aG%bl_BCX%f4466L%Wfe5YL^Mf$RaQv?)dB z2L4z=oMfv^u0fy=mTmIEa(OgD`3##g2f9>kgd8{SasQx~cA6oM7das5_G+BbxZ&<7 zTX^OzM6#wBvHk3DL7GhsE?@PzA}1tiCRd8{iLc#YVa&Wyhi7lw139LRJ2G1{o}2E= zz1F#7K_6fgpVGS@nr!soP9y8EujAlAO`v?9&yaul z?EL@3dEeFQ%KnDf-e(tTW=1AJpSbl4XZkf}7vM~g7aVzC?jNZmzt0Op*YerSy9fv3 zQu;jq)+3&vRiMsioR$DYZ9hP*=ZmGj(hi_Unv!xvr{u z<~HW_5I@Xoc!>I@)Ju3uJq~kw-WjZah&eRt^H9E;<%W>W8*$d9mwb<0ukfn2u+hDe zi;mF$F>@8#)Js#B|FXx~w=*im+0Cja4)=9O_u7oJ?t|Q;wL9LkmKbs9huqc49bP?H z19&yU?Q7gKVy>>^-3vnpdf@gb_8_|~uqe_4c|6-5C)Z*%y|5BzGyl{ezj--zeRw|Y zjwHdGnlWh`J>hzFCuTFp?%?MGu}9I49Grn0*yAVN!g=nQuCS%9V_p}&vzOZ< z>yA6@22v|N$ON^FslzStKKiu)OOmMF$ouizF#6hl_Q3SX^zd2}hkVB1-`e=vp?oZf z=6rzhY-n^4h1p(s$Iopoui^JD<_!nd6B%!j!C7t!V;i-$x_Slsj|;2V<9uqUzJ7uJ z-B#ouw`!$!xX=AE{yWQ-cTu~sUmwVr*PPl<9n`=Z4Vhc3l?+!mjN+cuC)PBE#_B=j zDNJljFW%lG)Xh4wum9|Wq0Lq5_&{RD)XqH-K34sJ+$e(pKlol9qh7L!_@B8S>_!bx z=e8#wHl7*?)oZFt!-!K7dqI94Vp@4%NplaZXgUQ0XS!lrt`i;|J%$aB95LaA4c?^b z)FF-N@!`9m(s}M}*cT7#xMMZ%t-Cv_LsQEgJ)3g&eYycouBM-1duo4m?M{zjcNFyI zng1~sCjC7yZy4jSat&^1JaAuTZ%$2-?$m3H9?SPVDHVQXnD6`!$8{S9lL~5qYdD_<7#10qTAC=tZ@jXJh$r^#nt2lxkV4j~S{yvCRiI%Eoi&FVkPGM``}ZPNTe-t+1u^`I)Wuo55$%edV3buu-C?H#noJ^=7j|6z!f72Y z_gq{l&SpRRkkhsqf2tF&Xj>Du&o-lVBi78JO>oE39cIkcqvQKxrzBWmEy;8`{{XZ_G*I}VaxGmE);UeydhkNoSpU#O{aYmjaKads44lPOY$)F?lZ&}*U(!bu$6lKPhy#S zys+@`bF8x3jKaa2v3TD>q*=PaZ950Yj9m!S}D$l_x3?~ z)@DRiq%`)A}_er3*NbwYv~E$g-hqDjX7&8 zhVtHgu!}iu@fDn6|I#**+Q|BPYDYUSoQY?h`@m2=i8F^L71TzK=&X+F;|mM^`B?#- z)QcDRqfT!hq&;r0*2ejx3-Q&T%et#Ok&k1{o_ybq?&|aL-Z;YAvFKV;wd~1$_6hT# z>089W4Urc%q2rI67+%8}T?-u1*LR?LckA_VwObEM(=+PzC99!)s*FFMMjuR{vKc+9 zdSbwlnpkeL85OKO&Ua)zS;ZZb4TuZ9Xs3JQ?E&u*^eiZ7Q8tcs^hw5Z{*b9<&t`Jo zC0Mg%4lirOy7*tJ-MMfmBh36o;jf)QMZBbu|4x=dX8GRJ)9US zzaD&Wo6zT7)0}ah^)pO*x`s8$4W7x&$8w8l#8Z#+`@~FwE&Gyh+nMv5$NW!YOrJmF zf_)j}>YVNHXB+6hL4%L1iCE98M%Pn+_N1Pl6ZK;UG*fT2@j)H(jje7pR-ZXYuMcts z#@N3FrShz{kZ%ec-7rT=UjruhU6&j|0|N?6RWLdHxaB3kP2Pt2s)oMK?Xv zY)0?Mn!M8oU6ijSYzFjMpIzy!n_Sle`U8pKjBZgjiuYXx@3|(UCzl=K^HFv%=3nVS zUyC`Tob$wWjmoT8v-~(lT&UVDUG_jP+_=JAB&F(3bz|K4xv1j=-R>6D3qQwNe-2IU`eK;@iXD;V<+2(|)Yom)wP^EAPIY?zr{mJT#46F|_SQy!iSQ>Rf86 zc{!l&l3{A=pEelraXpeh98_=rWQB$=S5}I1OP}s=W)F1hmj?!Sse(m2-4M)NJ#g?* zIik~MjO24PRrk@EY<9;X{{HR{T9h>y@A1F>A~}0fS@2j749(!*xtmGZNfQrT-Oc)T zdE>IrvIh+L`A+t2-CiwoKmU8KO`2|DKJkfvh>ZqK&@E!Dz80__sCioGZDJ1QyMN=( z4($(~$6J1^e{^|7&xw&((Fc5VFZAlc?>B~8ru$s6z8z~u-W~aEvfHC#DP ze`3}wmpyQ{_5+OIduDTqexP~}@#LB}X7l?z8g?4~k>mw0CAX>;_n)->c+`ru(#jnC z`0k5~I%?zwZpV<>oU5eLNBh!F6d!ZPGvPjsc^5l|3)jsJ6ctWvzuWTe6Ht)1wTB{s_|#J#yB^`@@(IFyjLzf%9^|e z>)?gMbvwqg#^&G0&%0%r$!Okvi~J;Lt+c!RO}5;G_%77_S$L58PL;V&8$$TuX72y^`*|GFKenXmvLYM^|qJV zAkXOz9sT9@=RZUv=IxtPZLnN@7wxpjsU*(QWr%`x)XKdyjySd+v5>d)t6>hB z^1dIwPTXL-jCgTz_qe^M~BgioWRYO!p$- zLk=eH-i4-4yRgStbM(`fTcN#Z7fhVuN2B9L9G$WGpE$=qE`q`LAoL|(cXcHFrCt5u zs6h|qWj(Q%JeChl=xfk*6u#I}m#iuIBGL@Z$Z>@hU*Ddz8aM4+Fq!ve*67{%!o8Ef zx&5RebGDHShVkELq&masIkg-bu{X)^#OEE(n9KJ>2K(bxBWEP=cg0d;C^Op$&8RP( zyFUWQHaejxYsB6ixx1;$x#)Ep3}0~wtDh2kJ7ohy?i^e{LNAU?8&qq=V$}ghJUMIw z4f5aP=Qtv^fbW0lPahBJJm0lJnR*4bbH^@p3F|%EQ>r8zawA*Y!Fxq3Ra?%^?v5ZX z5M`}8^UD!=_N>NN_dlV@J(J^LHUQ|C>EVjk#E2kbwf`inujXak6I? zI<;Z_d}#o>Z%jbvcC5j+c7s0a;}9L{gRSg=|Od6?rme8A?^<=W82X*kcOLUvH_tMMKtXu5O&k!ppj*?oRV%}hG zYPheD)S5N?b=JxCV+@boYa^={ocu2b{y9Ec zPOm7#Bi@5Eta{0zMg$az6dl9OVUG7Lyn^Dwij|-8(lMT;2hQp3nJVf-~!=SsUdt3-&2IKUbzt zkWIsg6*Qr@SEIJ_!8=yi=VpZmnn}{fRL;TkEzy3oyU{oL9h=X!z*n>1Dy8N&SaNT$ z)Az2Uhd6Dbrk3SDagJ4gm-O~TBAaoxym?HnVRZ~Gc(#`}sVyd~IEl`@ADzzWir1M} zV93`^(|U>J3opT#@9FYYTg1|30kkuSUoXZ9LGC&w74kguJ}kjUEx4Z~Df_ z87H|9x0IiY=EvlkoOf?wjkjSyne5KS#P&}bwYl}Jku+h_xOce zIa^Q@F_h29K3?7!VEv!RT%A&PS(U#ZUpBFhc{NE6FWrsytBJ$JwUD>!Zbut)VhSPT zdaE`gWzOGyw!dG0|I0HoAW(krI0i|-Y>;@Ovv|HE7wtI9C~3D+ob^A0F7&A}^L7wVH)_hNC8w+vHO@sqtK zz^|#O`NIZh3?agM#sBwvJDeII-X4yI6`#e+NxEXCRyg+5Bc|=IEu?V=Va51YSTq;) z8wTP+OTKV#E5&LXwN#Q)PIz? zI4Ky7nR^}NzGD8+04(C?`p>1VVwbNkIuEkNpd4*6Xo5G6@%+?WuPJts<1~efBArsN3JC&kOlifdyW(wjR8-Qg-p#gL+-*BirY*ELUuYE4g-w zN7u{t!JBcEdPn~o=j*ro2)|~TxW)5)Eje1On{Wo_d7h`5T@_bu-hm!tUb6kG7~cOS zoapg!!se&gv-BB^`JTkK?}WHpiL;DVx43KKNv$%Ju|AxeDnwSQ8gcxYO{3F=euHe3 z@v~F&M}#;&Jq?R_hSx3f7HQS-uw*_7+F&P+9*Mz3-oH(5nu@w3A~2gdWWM=AQH%SV z`858H>6Lxrx(nNI9m_kXMy=d zvpu!DT{XnYQg@6ZM$xX`N7-PsJ07p(?o#Fx`89W2##h+mO6_~{={W8kH*r8&RHbb7 zhI~NcPV&qvav$DB>&P`}U~xgd+{luT?YOe=hOXGi`xeIn8Un^E@eV1zXBzUN$-$4O2eAZahI?Sn(qbLP*V;wr9#d&#gg^I(h(w^d(|V^`}|nmL-aXDEj!lV8+*1DC5y@H=PY4x zo`x7rExUKq>~YWHq1=u7H2b^L8$Gg2ZhO!b&59k+;elG-%-M=oE8=z4x$-)4`Z{!? zfA^eh`Lz}MV-0GX7v#uG%`8z(ZK!lzAvY)IIV6<675TM9POBZ*9z~CJ{RU!z&1Ptl zpZve)*;eHtKA(_K%ro{?^OG2>SBYc%%)Zj=ta!b6iwTV9%c(<@O8E;)7|%|YgOn3z z-ou1(+mo)VWW2hEmppGLW@;*5hnB;k3-_~IGWI2f6SWz40+N-D&| zpreQzOg>CwNerw?#=ueJEhMChhAZP>F~$}N{li6BY&2F)=d)hqDT2Mjacvdv$1*E1 zMaMC=KuhZD~~sG)=$%109T{x)yLJkLy= zXFZTP@tW9kGX)c7@q4=}V*5zukR_bYjyNLbZs#tuDQkmXk>cvC2y}P(JFoN-la7VZ zvy`|;9b4hIGl;V()<|PF2rX;wL(HL`f1lYxKg|ctE9nI})j&)i>4gAK&RVoP3gZtR zh@xh%3^(@G$huiqb_d#VpH#ner*O^RjA*le<6P3U zNW5uWj8)8&W|z7s(>3m(4bQFgW{$G1Qx$eIPyViHs+`yUfzLd{ng#2Xi?VYEm41IY5O?W=HAJ$Upz0Su1V`3LZbrjEQnfN)E z`N8y^aMMjiljXeQHe44s9OKb;3)urN6){pBgMK`>Mj=PU#>fchu+~j6i4@&FhQRe6 zeXqWFiIdzX{X~4~*?3!ViJGo2h+mghZx9YyK5%4yaJ)KQTwUgc6P$~D|J_GqSCRKS z+7V&<8i~2@xNGd{1pgV23+$$zkadY4 z9{BEzEh*Pz{dQKwwWtwRUPG+hv==)$kIAbx5Fx9YgLqFo4VbBvpSp;FJhz>kM=0;KO5ng=qbgNbncl7d6PQ;UZ=i>D-D5CcLF{y- zhH_lC|KyrYgILSEgucBtJ zSu0`5ec9vd$#qP9EuVYfhHPgSw0wR}-e*N!irTKYvrv)eaNhD!pL(PTr{vL`-E5-f z-Gys+<-zByP##Y&^#=`vBf0(4zc|BZ*GyqwxRcteE?6@%U9_*uIW+g}|2IG19sWwR zGA_pCdi>0;o2+b}c?V#wXg$e?wL zhaO-)bL{BBYnAk87ZEst*hQ4F;x)1ab7zxt7&=7JA5(xW#NeEFc2Pd`KZeh&^Gm~< zE2EuK(a3^*aav7f_J??MA%3^}#&hA{D;76cGlbe+5(hs-;QUu&4)2P@$6oYJV16ik zo+A9Rg7D{x9eTQii4Si6nC)(l17keI%Fw_1a}GFpakp4J!3(E|cLcYaCI(XfBrC}Y z+Ql73)Lsv0kvsbK=x4dbD0fUGm;FI`xxD2OF`1V1=&h^Bsh#N8VN9)m)hW3#wII~} z+>o;9p3k}p$^$LPOIto5#r z(myqoUdF^)?HVga+6kDH$ewZDPhmVZ7DFp}o`*dWTHhkjS(lp2lh2D$9YWFA-wx+< z^Mzh?5QfsDt&xACFf{W=!B^^K6$Oj&JAKfDyPr!tISR{eUa&pmh|#)B#QScZ^x1R9 zv`czoo8o~s_gs+s_Lp4W(H;GUyJ7meOY$Nk;!E6HzSBdJT{)ZmHl8~eIf`sgU8rBI z1zkqpm-p_mLC!7iDn8K^g?9T<`;9A1H?9||H)a@2o>_wfcSOt4rbs^a|HWCSiSopv z7!w(1r^nlrIu3X6jBzf16sBA&t-``qDffZEusp~hmen$6rwCY z^8g;q!!4qn6(_ArD4W4&;lE9pw6O%Mc(1MKHBWhKR)CcC#N`GWDg8GdgT6VrwsrKC zoo7<<*oU?8$~KBUHLs#rn{}>NU&&O(;$RiAorRx88GUU$rjq~h@QzsjB?Q*Q(Ha|{ z7RlB@IPYeU_LH)Sf&0UaJ%U%`L*hwS*3zuajGK9hJ&pe2jr2HPyG}SR^+dp4XZo)7 z75W;iLx#B`U~MfiBf}leZalXWD&)SKU2%K_HKGIZWedp(r_J0kVr{;h^vWI%v$+c} z@w)tzHNsZrn*8pXB2CW%a~a#mJxoQK%P#zkqV{q7PeOmTDa<4Pjq~>#ZIvgi!8$O` zYn#|9{ete`CF7hkBvFaI!~2eLexu4)*4_Dm4~+Bj%523htqRI8=8#o!%8DxwP=mP8 zrE9)Q=Z=?9Ig@z)a9ib&SqTm>&d)BcQS7Y?Fotoy^vYQIv+o$Z_i>lG-%#bt6`to{ zVr$F0Dl0lAp!P{(t(uz3^|rC7U5B&$ceRy^$;{8}e`oZ2E2dN1X9e@{@733YBllS^ zoZ$@5O9-b=+z++meOH<$EK0mln|1G_LxDo$k0tco%j^_+a|?Bp>?<)?-<IB9p1aEi zU$_g9mZc#&54ONQ1MWvZT`4y2*oAgxtivZZQ??V|I7!dQ|Gftr4H=-U;(0#8IGgnd zR08+i!M4BWIZajq;;K;0{CsoJ73Gxg5A0=r9$%+ixwW$jnyig4wV)IbWQitRInzcFyE< zWsg+a&W(qX#auL^hf+B^1}|B&9$eH~acE9G`Bd&qo~x_$?iE7Zn%))xA4K3J?h2=K zKW@Pd(J_sBexInH_+Az+m+6~4gkI-!V#T0bPgs4WmvORDGnG&G(otE5dnoEm z<;$=#d}W^!t2|LUwta{s*3WMj{8qxQyn=2!)?kmmDqA`{fgbO{`Kuo(_4TjdjREJ^ zC3K!Ah!@AD%5^{pQh0DdBEo@DDo#&26GQ?Cy@I zj-0Lj{wAK*b%Ev!^5}Nn77x}s;h8?YTI>r&|GD%7Vf}n&SD08;+Zm_Q=tFfe^+=f+K`n29}Rvg~$8abxq9@MN=Jbd6ud>u(X|B}Z_ z9itpH=Gh)qa9U|SB^f$A+s!u~RW{U$ffZ{Kz1v~RrHBx8n@bMfZ5PFUmp=}#U@v34 zO&QXOzEbAIF;34>&bxWh2bgoQx1$vQzMe4YLTt05yR!Tl=Tn?>w0ozitg?2)z;(YMY3D(a|Ux;m4jBRsbXt&D59_C{;wLVUdNEbDjCz2)-)0h${{5aRvs-TBy zPe<{CXFp@5BaRg87PmQ}G9 zYRZii7fZ?WHzGHBcYTr4Yz5x?SQ2CJD7>{yphv&n|IHg6mn~FIzlg>P##yCtQQ2vd zj+exN!-5+X*KBthZ-{S%SGO+?cfW!|ZP?S5w=I5CaUN5;Gna+bEiUmbgv{EbYX3{6 z|DZJ7V9ZT4&M9*;W6+3ayPa01qB?UBYM$*G!$K9`DgJmeoxBP&C#C6aYLc-g$#dMS z44v(RUz=?al{Hf-E%d@_=ITAkBb2tpHU+Ub%L%&5P|iw>$!AJ$t*JbvK2MUqJs$0@ zrOY}@zhl;`?c^82`wYE%m_x>Do)-<;@P3;`+<17Vh+FDJe>ukXcBmNMmam;1p<&}L zzET5taZ~!#N7#xJ5ba-SCBCAgB|_ zn9o*~DueC^V=MDX(6|((N(8`~cV*L70m|9E#3ClMPhW1UIMnyUj9KhA8?RQ9EPW8O zjJ)xn$;yw1UfAG39Q))TCEd~!f9~)MSanjmjPgJ(YiYmbO_lPCZm98xysm+N#N9V8 zDCQ1);hra=*=;9;7tu4$rc7L8ZfLGc&*=R}#g+Ng0xxwy{lYL&rR{{a#FRGl^c1Iv z>o1@dnPO-!$~jYdvDqGp4|j|6E2t%Pgjnv`^`cedT{v~p3U~77iSd25;!P_{m^=3u z1HCuEwuL3kzCDr?->-(>=L5*CES8Of*Fw{B_djvgJF`&vT@}q8BVy)RSCzEi5inq! z%bv6;HdvO6>}JfdefkuS^eaIjYv~;`b&A&+WaEYoG5n{si}m-$;%BG7_}*m7ciexKXX%-#reaA_v7i_JC*tU{4k99WS26JJ*E%7 z5O>laV5AJI>5YDW&$foXaxmBvAw|Ts`nOTG&GW$2iJax_sHgPhzRzOv9bb4>iJ#