From 276863efebc98124bdbecb26febef417221bb35f Mon Sep 17 00:00:00 2001 From: yaanvar Date: Mon, 25 Sep 2023 12:18:22 +0300 Subject: [PATCH] added range support for slider --- .mapping.json | 14 ++ .../Extensions/DivSliderExtensions.swift | 183 +++++++++++------ .../Blocks/Slider/MarksConfiguration.swift | 13 +- .../LayoutKit/Blocks/Slider/SliderModel.swift | 73 ++++--- .../LayoutKit/Blocks/Slider/SliderView.swift | 189 +++++++++++------- .../div-slider/ranges_375@2x.png | Bin 0 -> 17971 bytes .../div-slider/ranges_375@2x_step0.png | Bin 0 -> 7476 bytes .../div-slider/ranges_375@2x_step1.png | Bin 0 -> 7360 bytes .../div-slider/ranges_375@2x_step2.png | Bin 0 -> 7349 bytes .../div-slider/ranges_375@2x_step3.png | Bin 0 -> 7360 bytes .../div-slider/ranges_375@2x_step4.png | Bin 0 -> 7326 bytes .../div-slider/ranges_375@2x_step5.png | Bin 0 -> 7642 bytes .../div-slider/ranges_414@3x.png | Bin 0 -> 33284 bytes .../div-slider/ranges_414@3x_step0.png | Bin 0 -> 13143 bytes .../div-slider/ranges_414@3x_step1.png | Bin 0 -> 13079 bytes .../div-slider/ranges_414@3x_step2.png | Bin 0 -> 13037 bytes .../div-slider/ranges_414@3x_step3.png | Bin 0 -> 13159 bytes .../div-slider/ranges_414@3x_step4.png | Bin 0 -> 13198 bytes .../div-slider/ranges_414@3x_step5.png | Bin 0 -> 13544 bytes schema/div-slider.json | 5 +- .../div-slider/ranges.json | 3 +- .../snapshot_test_data/div-slider/ranges.json | 3 +- 22 files changed, 312 insertions(+), 171 deletions(-) create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step0.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step1.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step2.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step3.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step4.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step5.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step0.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step1.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step2.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step3.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step4.png create mode 100644 client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step5.png diff --git a/.mapping.json b/.mapping.json index f066865a5..fc5f1c24f 100644 --- a/.mapping.json +++ b/.mapping.json @@ -11277,6 +11277,20 @@ "client/ios/Tests/reference_snapshots/div-slider/fixed_size_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/fixed_size_414@3x.png", "client/ios/Tests/reference_snapshots/div-slider/match_parent_size_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/match_parent_size_375@2x.png", "client/ios/Tests/reference_snapshots/div-slider/match_parent_size_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/match_parent_size_414@3x.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step0.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step0.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step1.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step1.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step2.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step2.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step3.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step3.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step4.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step4.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step5.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step5.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step0.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step0.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step1.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step1.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step2.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step2.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step3.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step3.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step4.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step4.png", + "client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step5.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step5.png", "client/ios/Tests/reference_snapshots/div-slider/rtl_slider_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/rtl_slider_375@2x.png", "client/ios/Tests/reference_snapshots/div-slider/rtl_slider_414@3x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/rtl_slider_414@3x.png", "client/ios/Tests/reference_snapshots/div-slider/secondary_thumb_on_left_375@2x.png":"divkit/public/client/ios/Tests/reference_snapshots/div-slider/secondary_thumb_on_left_375@2x.png", diff --git a/client/ios/DivKit/Extensions/DivSliderExtensions.swift b/client/ios/DivKit/Extensions/DivSliderExtensions.swift index f911eb766..d7c0d4c33 100644 --- a/client/ios/DivKit/Extensions/DivSliderExtensions.swift +++ b/client/ios/DivKit/Extensions/DivSliderExtensions.swift @@ -19,16 +19,42 @@ extension DivSlider: DivBlockModeling { private func makeBaseBlock(context: DivBlockModelingContext) throws -> Block { let expressionResolver = context.expressionResolver + + let firstThumbValue: Binding = thumbValueVariable.flatMap { + context.makeBinding(variableName: $0, defaultValue: 0) + } ?? .zero + let firstThumb = SliderModel.ThumbModel( + block: makeThumbBlock( + thumb: thumbStyle + .makeBlock(context: context, corners: .all), + textBlock: thumbTextStyle?.makeThumbTextBlock( + context: context, + value: firstThumbValue.value + ), + textOffset: thumbTextStyle.flatMap { + CGPoint( + x: $0.offset?.x.resolveValue(expressionResolver) ?? 0, + y: $0.offset?.y.resolveValue(expressionResolver) ?? 0 + ) + } ?? .zero + ), + value: firstThumbValue, + size: CGSize( + width: thumbStyle.getWidth(context: context), + height: thumbStyle.getHeight(context: context) + ), + offsetX: thumbTextStyle?.offset?.x.resolveValue(expressionResolver) ?? 0, + offsetY: thumbTextStyle?.offset?.y.resolveValue(expressionResolver) ?? 0 + ) let secondThumb: SliderModel.ThumbModel? - if let thumbSecondaryStyle = thumbSecondaryStyle, - let thumbSecondaryValueVariable = thumbSecondaryValueVariable { + if let thumbSecondaryValueVariable = thumbSecondaryValueVariable { let secondThumbValue = context.makeBinding( variableName: thumbSecondaryValueVariable, defaultValue: 0 ) secondThumb = SliderModel.ThumbModel( block: makeThumbBlock( - thumb: thumbSecondaryStyle + thumb: thumbSecondaryStyle?.makeBlock(context: context, corners: .all) ?? thumbStyle .makeBlock(context: context, corners: .all), textBlock: (thumbSecondaryTextStyle ?? thumbTextStyle)?.makeThumbTextBlock( context: context, @@ -43,8 +69,10 @@ extension DivSlider: DivBlockModeling { ), value: secondThumbValue, size: CGSize( - width: thumbSecondaryStyle.getWidth(context: context), - height: thumbSecondaryStyle.getHeight(context: context) + width: thumbSecondaryStyle?.getWidth(context: context) ?? thumbStyle + .getWidth(context: context), + height: thumbSecondaryStyle?.getHeight(context: context) ?? thumbStyle + .getHeight(context: context) ), offsetX: thumbSecondaryTextStyle?.offset?.x.resolveValue(expressionResolver) ?? 0, offsetY: thumbSecondaryTextStyle?.offset?.y.resolveValue(expressionResolver) ?? 0 @@ -53,90 +81,117 @@ extension DivSlider: DivBlockModeling { secondThumb = nil } - let firstThumbValue: Binding = thumbValueVariable.flatMap { - context.makeBinding(variableName: $0, defaultValue: 0) - } ?? .zero - let activeMark = makeRoundedRectangle(with: tickMarkActiveStyle, resolver: expressionResolver) let inactiveMark = makeRoundedRectangle( with: tickMarkInactiveStyle, resolver: expressionResolver ) + let minValue = resolveMinValue(expressionResolver) + let maxValue = resolveMaxValue(expressionResolver) + let marksConfiguration = MarksConfiguration( - minValue: CGFloat(resolveMinValue(expressionResolver)), - maxValue: CGFloat(resolveMaxValue(expressionResolver)), + minValue: CGFloat(minValue), + maxValue: CGFloat(maxValue), activeMark: activeMark ?? .empty, inactiveMark: inactiveMark ?? .empty, layoutDirection: context.layoutDirection ) + let sliderRanges = makeRanges(ranges, with: context) + let sliderModel = SliderModel( - firstThumb: SliderModel.ThumbModel( - block: makeThumbBlock( - thumb: thumbStyle - .makeBlock(context: context, corners: .all), - textBlock: thumbTextStyle?.makeThumbTextBlock( - context: context, - value: firstThumbValue.value - ), - textOffset: thumbTextStyle.flatMap { - CGPoint( - x: $0.offset?.x.resolveValue(expressionResolver) ?? 0, - y: $0.offset?.y.resolveValue(expressionResolver) ?? 0 - ) - } ?? .zero - ), - value: firstThumbValue, - size: CGSize( - width: thumbStyle.getWidth(context: context), - height: thumbStyle.getHeight(context: context) - ), - offsetX: thumbTextStyle?.offset?.x.resolveValue(expressionResolver) ?? 0, - offsetY: thumbTextStyle?.offset?.y.resolveValue(expressionResolver) ?? 0 - ), + firstThumb: firstThumb, secondThumb: secondThumb, - activeMarkModel: tickMarkActiveStyle.flatMap { - SliderModel.MarkModel( - block: $0.makeBlock(context: context, corners: .all), - size: CGSize( - width: $0.getWidth(context: context), - height: $0.getHeight(context: context) - ) - ) - }, - inactiveMarkModel: tickMarkInactiveStyle.flatMap { - SliderModel.MarkModel( - block: $0.makeBlock(context: context, corners: .all), - size: CGSize( - width: $0.getWidth(context: context), - height: $0.getHeight(context: context) - ) - ) - }, - minValue: resolveMinValue(expressionResolver), - maxValue: resolveMaxValue(expressionResolver), - activeTrack: self.trackActiveStyle.makeBlock( - context: context, - widthTrait: .resizable, - corners: .all - ), - inactiveTrack: self.trackInactiveStyle.makeBlock( - context: context, - widthTrait: .resizable, - corners: .all - ), + minValue: minValue, + maxValue: maxValue, marksConfiguration: marksConfiguration, + ranges: sliderRanges, layoutDirection: context.layoutDirection ) + let width = context.override(width: width) let height = context.override(height: height) + return SliderBlock( sliderModel: sliderModel, widthTrait: width.makeLayoutTrait(with: expressionResolver), heightTrait: height.makeLayoutTrait(with: expressionResolver) ) } + + private func makeRanges( + _ ranges: [DivSlider.Range]?, + with context: DivBlockModelingContext + ) -> [SliderModel.RangeModel] { + let expressionResolver = context.expressionResolver + + let minValue = resolveMinValue(expressionResolver) + let maxValue = resolveMaxValue(expressionResolver) + + var sliderRanges: [SliderModel.RangeModel] = (ranges ?? []).map { range in + SliderModel.RangeModel( + start: range.resolveStart(expressionResolver) ?? minValue, + end: range.resolveEnd(expressionResolver) ?? maxValue, + margins: range.margins.makeEdgeInsets(context: context), + activeTrack: range.trackActiveStyle?.makeBlock( + context: context, + widthTrait: .resizable, + corners: .all + ) ?? trackActiveStyle.makeBlock( + context: context, + widthTrait: .resizable, + corners: .all + ), + inactiveTrack: range.trackInactiveStyle?.makeBlock( + context: context, + widthTrait: .resizable, + corners: .all + ) ?? trackInactiveStyle.makeBlock( + context: context, + widthTrait: .resizable, + corners: .all + ) + ) + } + + let makeBasicRange: (Int, Int, CGRect.Corners) -> SliderModel.RangeModel = { [self] in + SliderModel.RangeModel( + start: $0, + end: $1, + margins: EdgeInsets.zero, + activeTrack: trackActiveStyle.makeBlock( + context: context, + widthTrait: .resizable, + corners: $2 + ), + inactiveTrack: trackInactiveStyle.makeBlock( + context: context, + widthTrait: .resizable, + corners: $2 + ) + ) + } + + sliderRanges.sort { $0.start < $1.start } + + var lastRangeEnd = minValue + for (index, range) in sliderRanges.enumerated() { + if range.start != lastRangeEnd { + let corner: CGRect.Corners = index == 0 ? .left : .all + sliderRanges.append(makeBasicRange(lastRangeEnd, range.start, corner)) + } + lastRangeEnd = range.end + } + if lastRangeEnd != maxValue { + let corner: CGRect.Corners = sliderRanges.count == 0 ? .all : .right + sliderRanges.append(makeBasicRange(lastRangeEnd, maxValue, corner)) + } + + sliderRanges.sort { $0.start < $1.start } + + return sliderRanges + } } private func makeThumbBlock( diff --git a/client/ios/LayoutKit/LayoutKit/Blocks/Slider/MarksConfiguration.swift b/client/ios/LayoutKit/LayoutKit/Blocks/Slider/MarksConfiguration.swift index b41d4fe9c..98ec57dbe 100644 --- a/client/ios/LayoutKit/LayoutKit/Blocks/Slider/MarksConfiguration.swift +++ b/client/ios/LayoutKit/LayoutKit/Blocks/Slider/MarksConfiguration.swift @@ -1,7 +1,7 @@ import BaseTinyPublic import Foundation -public struct MarksConfiguration { +public struct MarksConfiguration: Equatable { let minValue: CGFloat let maxValue: CGFloat var horizontalInset: CGFloat = 0 @@ -33,7 +33,7 @@ public struct MarksConfiguration { } extension MarksConfiguration { - public struct RoundedRectangle { + public struct RoundedRectangle: Equatable { var size: CGSize let cornerRadius: CGFloat let color: Color @@ -62,4 +62,13 @@ extension MarksConfiguration { borderColor: .clear ) } + + public static func ==(lhs: MarksConfiguration, rhs: MarksConfiguration) -> Bool { + lhs.minValue == rhs.minValue && + lhs.maxValue == rhs.maxValue && + lhs.horizontalInset == rhs.horizontalInset && + lhs.inactiveMark == rhs.inactiveMark && + lhs.activeMark == rhs.activeMark && + lhs.layoutDirection == rhs.layoutDirection + } } diff --git a/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderModel.swift b/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderModel.swift index 0a3c2aa95..6fd6a4efd 100644 --- a/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderModel.swift +++ b/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderModel.swift @@ -64,33 +64,63 @@ public struct SliderModel: Equatable { } } + public struct RangeModel: Equatable { + public let start: Int + public let end: Int + public let margins: EdgeInsets + public let activeTrack: Block + public let inactiveTrack: Block + + public init( + start: Int, + end: Int, + margins: EdgeInsets, + activeTrack: Block, + inactiveTrack: Block + ) { + self.start = start + self.end = end + self.margins = margins + self.activeTrack = activeTrack + self.inactiveTrack = inactiveTrack + } + + public static func ==(lhs: SliderModel.RangeModel, rhs: SliderModel.RangeModel) -> Bool { + lhs.start == rhs.start && lhs.end == rhs.end && lhs.activeTrack == rhs.activeTrack && lhs + .inactiveTrack == rhs.inactiveTrack && lhs.margins == rhs.margins + } + } + public var firstThumb: ThumbModel public var secondThumb: ThumbModel? public let minValue: Int public let maxValue: Int - public let activeMarkModel: MarkModel? - public let inactiveMarkModel: MarkModel? - public let activeTrack: Block - public let inactiveTrack: Block public let marksConfiguration: MarksConfiguration + public let ranges: [RangeModel] public let layoutDirection: UserInterfaceLayoutDirection + public var valueRange: Int { + maxValue - minValue + } + public var sliderHeight: CGFloat { max( - activeMarkModel?.size.height ?? 0, - inactiveMarkModel?.size.height ?? 0, + marksConfiguration.activeMark.size.height, + marksConfiguration.inactiveMark.size.height, firstThumb.size.height, secondThumb?.size.height ?? 0, - activeTrack.intrinsicContentHeight(forWidth: .infinity), - inactiveTrack.intrinsicContentHeight(forWidth: .infinity) + ranges.map { max( + $0.activeTrack.intrinsicContentHeight(forWidth: .infinity), + $0.inactiveTrack.intrinsicContentHeight(forWidth: .infinity) + ) }.max() ?? 0 ) } public var sliderIntrinsicWidth: CGFloat { let maxMarkWidth = max( - activeMarkModel?.size.width ?? 0, - inactiveMarkModel?.size.width ?? 0 + marksConfiguration.activeMark.size.width, + marksConfiguration.inactiveMark.size.width ) let maxThumbWidth = max(firstThumb.size.width, secondThumb?.size.width ?? 0) return CGFloat(maxValue - minValue + 1) * maxMarkWidth + max(0, maxThumbWidth - maxMarkWidth) @@ -106,8 +136,8 @@ public struct SliderModel: Equatable { public var horizontalInset: CGFloat { max( - activeMarkModel?.size.width ?? 0, - inactiveMarkModel?.size.width ?? 0, + marksConfiguration.activeMark.size.width, + marksConfiguration.inactiveMark.size.width, firstThumb.size.width, secondThumb?.size.width ?? 0 ) @@ -116,24 +146,18 @@ public struct SliderModel: Equatable { public init( firstThumb: ThumbModel, secondThumb: ThumbModel? = nil, - activeMarkModel: MarkModel?, - inactiveMarkModel: MarkModel?, minValue: Int, maxValue: Int, - activeTrack: Block, - inactiveTrack: Block, marksConfiguration: MarksConfiguration, + ranges: [RangeModel], layoutDirection: UserInterfaceLayoutDirection = .leftToRight ) { self.firstThumb = firstThumb self.secondThumb = secondThumb self.minValue = minValue self.maxValue = maxValue - self.activeMarkModel = activeMarkModel - self.inactiveMarkModel = inactiveMarkModel - self.activeTrack = activeTrack - self.inactiveTrack = inactiveTrack self.marksConfiguration = marksConfiguration + self.ranges = ranges self.layoutDirection = layoutDirection } @@ -141,13 +165,10 @@ public struct SliderModel: Equatable { SliderModel( firstThumb: .empty, secondThumb: nil, - activeMarkModel: nil, - inactiveMarkModel: nil, minValue: 0, maxValue: 0, - activeTrack: EmptyBlock.zeroSized, - inactiveTrack: EmptyBlock.zeroSized, marksConfiguration: .empty, + ranges: [], layoutDirection: .leftToRight ) } @@ -157,7 +178,7 @@ public struct SliderModel: Equatable { lhs.secondThumb == rhs.secondThumb && lhs.maxValue == rhs.maxValue && lhs.minValue == rhs.minValue && - lhs.inactiveMarkModel == rhs.inactiveMarkModel && - lhs.activeMarkModel == rhs.activeMarkModel + lhs.marksConfiguration == rhs.marksConfiguration && + lhs.ranges == rhs.ranges } } diff --git a/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderView.swift b/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderView.swift index 5271b7e7d..587c6b509 100644 --- a/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderView.swift +++ b/client/ios/LayoutKit/LayoutKit/Blocks/Slider/SliderView.swift @@ -28,20 +28,20 @@ final class SliderView: BlockView, VisibleBoundsTrackingLeaf { } self.sliderModel = sliderModel - inactiveTrack = sliderModel.inactiveTrack.reuse( - inactiveTrack, + inactiveRangeTracks = inactiveRangeTracks.reused( + with: sliderModel.ranges.map { $0.inactiveTrack }, + attachTo: inactiveTrackView, observer: observer, overscrollDelegate: overscrollDelegate, - renderingDelegate: renderingDelegate, - superview: sliderBackgroundView + renderingDelegate: renderingDelegate ) - activeTrack = sliderModel.activeTrack.reuse( - activeTrack, + activeRangeTracks = activeRangeTracks.reused( + with: sliderModel.ranges.map { $0.activeTrack }, + attachTo: activeTrackView, observer: observer, overscrollDelegate: overscrollDelegate, - renderingDelegate: renderingDelegate, - superview: sliderBackgroundView + renderingDelegate: renderingDelegate ) firstThumb = sliderModel.firstThumb.block.reuse( @@ -113,33 +113,24 @@ final class SliderView: BlockView, VisibleBoundsTrackingLeaf { } private var pointWidth: CGFloat { - let stripeCount = sliderModel.maxValue - sliderModel.minValue let width = bounds.width - sliderModel.horizontalInset - max( abs(sliderModel.firstThumb.offsetX), abs(sliderModel.secondThumb?.offsetX ?? 0) ) - if stripeCount == 0 { + if sliderModel.valueRange == 0 { return width } else { - return CGFloat(width) / CGFloat(stripeCount) + return CGFloat(width) / CGFloat(sliderModel.valueRange) } } private var firstThumb: BlockView? private var secondThumb: BlockView? - private var activeTrack: BlockView? - private var inactiveTrack: BlockView? - private lazy var marksView: MarksView = { - let view = MarksView() - self.insertSubview(view, at: 1) - return view - }() - - private lazy var sliderBackgroundView: UIView = { - let view = UIView() - self.insertSubview(view, at: 0) - return view - }() + private var activeRangeTracks: [BlockView] = [] + private var inactiveRangeTracks: [BlockView] = [] + private lazy var inactiveTrackView = makeAndInsertView(UIView(), at: 0) + private lazy var activeTrackView = makeAndInsertView(UIView(), at: 1) + private lazy var marksView = makeAndInsertView(MarksView(), at: 2) private let recognizer = UILongPressGestureRecognizer() private var activeThumb: SliderThumbNumber = .first @@ -157,6 +148,12 @@ final class SliderView: BlockView, VisibleBoundsTrackingLeaf { fatalError("init(coder:) has not been implemented") } + private func makeAndInsertView(_ view: T, at position: Int) -> T { + view.clipsToBounds = true + self.insertSubview(view, at: position) + return view + } + @objc private func handleTap(_ recognizer: UILongPressGestureRecognizer) { let location = recognizer.location(in: self) @@ -166,13 +163,13 @@ final class SliderView: BlockView, VisibleBoundsTrackingLeaf { currentValue = clamp( (location.x - sliderModel.horizontalInset / 2) / pointWidth, min: 0.0, - max: CGFloat(sliderModel.maxValue - sliderModel.minValue) + max: CGFloat(sliderModel.valueRange) ) + CGFloat(sliderModel.minValue) case .rightToLeft: currentValue = CGFloat(sliderModel.maxValue) - clamp( (location.x - sliderModel.horizontalInset / 2) / pointWidth, min: 0.0, - max: CGFloat(sliderModel.maxValue - sliderModel.minValue) + max: CGFloat(sliderModel.valueRange) ) @unknown default: assertionFailure("Unknown layoutDirection (UserInterfaceLayoutDirection)") @@ -285,28 +282,66 @@ final class SliderView: BlockView, VisibleBoundsTrackingLeaf { ) marksView.configuration.horizontalInset = sliderModel.horizontalInset - marksView.frame = CGRect( - x: 0, - y: 0, - width: bounds - .width - max( - abs(sliderModel.firstThumb.offsetX), - abs(sliderModel.secondThumb?.offsetX ?? 0) - ), - height: bounds.height + configureSliderView(marksView) + + configureSliderView(inactiveTrackView, with: sliderModel.horizontalInset) + configureSliderView(activeTrackView, with: sliderModel.horizontalInset) + + configureRangeViews( + inactiveRangeTracks, + with: sliderModel.ranges, + in: inactiveTrackView, + isActive: false + ) + configureRangeViews( + activeRangeTracks, + with: sliderModel.ranges, + in: activeTrackView, + isActive: true ) - sliderBackgroundView.frame = CGRect( - x: 0, + configureTracks( + progressFirstThumb: firstThumbProgress, + progressSecondThumb: sliderModel + .secondThumb != nil ? secondThumbProgress : CGFloat(sliderModel.minValue) + ) + } + + private func configureRangeViews( + _ rangeViews: [UIView], + with models: [SliderModel.RangeModel], + in parentView: UIView, + isActive: Bool + ) { + zip(rangeViews, models).forEach { view, model in + let rangeOfValues = CGFloat(model.end - model.start) / CGFloat(sliderModel.valueRange) + let rangeWidth = parentView.frame + .width * rangeOfValues - (model.margins.left + model.margins.right) + let rangeHeight = isActive ? model.activeTrack + .intrinsicContentHeight(forWidth: rangeWidth) : model.inactiveTrack + .intrinsicContentHeight(forWidth: rangeWidth) + view.frame = CGRect( + x: CGFloat(model.start - sliderModel.minValue) / CGFloat(sliderModel.valueRange) * + inactiveTrackView.frame.width + model.margins.left, + y: (sliderModel.sliderHeight - rangeHeight) / 2, + width: rangeWidth, + height: rangeHeight + ) + } + } + + private func configureSliderView(_ view: UIView, with horizontalInset: CGFloat = 0) { + view.frame = CGRect( + x: horizontalInset / 2, y: 0, width: bounds .width - max( abs(sliderModel.firstThumb.offsetX), abs(sliderModel.secondThumb?.offsetX ?? 0) - ), + ) - horizontalInset, height: sliderModel.sliderHeight ) - sliderBackgroundView.center = bounds.center + view.center = bounds.center .movingX( by: ( @@ -319,55 +354,39 @@ final class SliderView: BlockView, VisibleBoundsTrackingLeaf { -(sliderModel.secondThumb?.offsetX ?? 0) / 2 : (sliderModel.secondThumb?.offsetX ?? 0) / 2 ) - - configureTracks( - progressFirstThumb: firstThumbProgress, - progressSecondThumb: sliderModel - .secondThumb != nil ? secondThumbProgress : CGFloat(sliderModel.minValue) - ) } private func configureTracks( progressFirstThumb: CGFloat, progressSecondThumb: CGFloat ) { - let makeModifiedSliderViewBounds: (CGFloat) -> CGRect = { [self] trackHeight in - sliderBackgroundView.bounds.insetBy( - dx: sliderModel.horizontalInset / 2, - dy: ( - sliderModel.sliderHeight - trackHeight - ) / 2 - ) - } - - inactiveTrack?.frame = makeModifiedSliderViewBounds( - sliderModel.inactiveTrack - .intrinsicContentHeight( - forWidth: .infinity - ) - ) - - activeTrack?.frame = modified(makeModifiedSliderViewBounds( - sliderModel.activeTrack - .intrinsicContentHeight( - forWidth: .infinity - ) - )) { + let progressFirstThumbWidth = + (min(progressFirstThumb, progressSecondThumb) - CGFloat(sliderModel.minValue)) * pointWidth + let progressSecondThumbWidth = + (max(progressFirstThumb, progressSecondThumb) - CGFloat(sliderModel.minValue)) * pointWidth + let (originX, progressWidth) = { switch sliderModel.layoutDirection { case .leftToRight: - $0.origin - .x += (min(progressFirstThumb, progressSecondThumb) - CGFloat(sliderModel.minValue)) * - pointWidth - $0.size.width = abs(progressFirstThumb - progressSecondThumb) * pointWidth + return (progressFirstThumbWidth, progressSecondThumbWidth) case .rightToLeft: - $0.origin - .x -= (max(progressFirstThumb, progressSecondThumb) - CGFloat(sliderModel.maxValue)) * - pointWidth - $0.size.width = abs(progressFirstThumb - progressSecondThumb) * pointWidth + return ( + inactiveTrackView.frame.width - progressSecondThumbWidth, + inactiveTrackView.frame.width - progressFirstThumbWidth + ) @unknown default: assertionFailure("Unknown layoutDirection (UserInterfaceLayoutDirection)") + return (0, 0) } - } + }() + + activeTrackView.cutView(originX: originX) + + activeTrackView.frame = CGRect( + x: inactiveTrackView.frame.minX, + y: inactiveTrackView.frame.minY, + width: progressWidth, + height: sliderModel.sliderHeight + ) marksView.firstThumbProgress = firstThumbProgress marksView.secondThumbProgress = secondThumbProgress @@ -431,3 +450,21 @@ private enum ThumbPosition { } private let animationDuration = 0.3 + +extension UIView { + fileprivate func cutView(originX: CGFloat) { + let shapeLayer = CAShapeLayer() + let path = CGMutablePath() + let rect = CGRect( + x: self.bounds.origin.x, + y: self.bounds.origin.y, + width: originX, + height: self.bounds.height + ) + path.addRect(rect) + path.addRect(bounds) + shapeLayer.path = path + shapeLayer.fillRule = CAShapeLayerFillRule.evenOdd + layer.mask = shapeLayer + } +} diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..e389a3a217ade7122010a8e7323276114095fc20 GIT binary patch literal 17971 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 literal 0 HcmV?d00001 diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step4.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step4.png new file mode 100644 index 0000000000000000000000000000000000000000..f07f72c17e722e9835d0e8e359aff9407347d4b1 GIT binary patch literal 7326 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 E4aoFkj{pDw literal 0 HcmV?d00001 diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step5.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_375@2x_step5.png new file mode 100644 index 0000000000000000000000000000000000000000..a43734f216ad47cda46fc5e95e532a515aebccd0 GIT binary patch literal 7642 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 literal 0 HcmV?d00001 diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..4fa6f25c54138857b767d03c4ad911cf8c751b77 GIT binary patch literal 33284 zcmeGEcT`hp_XZ3jAgD;Og7lFQkSfxoGb*4WprG`k^p4V7h><}+n)FVji!^Cr2qmEO zUZfL1A#?~mBq8KI38T(D-}C+ceb>9zqYD%8aPEEY``YE~eeHxk(o~~A!+M5-f`b13 zy}Q~J6x0(G6qNd>Xn>zo@`PmrFDKlz)oxRi^s+Al-#A+7-?!G#pb!AwpQ4~X!AfzG zbP4dKc!KTcd({*C6jbD&Q&La_+fh*eeT^pYO8PSfe35?V_?7ZK<&P_FL((N#>Y4E49yjy_zUcmgNuIxECEt~YcJDxWfX?s~ZK-*4pxWVX z7JJ53c5XfDyLI~Sn0>U)-)sL}=I(F5(Ofvi6w{&nTA4G(^5*G|-^G)=@dN0#hnU^& zU3VhdP~l4P$C8X?q{;BmQ+#zp(Zi>EB_vW#q_^7 z|5L*Mknle%_#%E9CGf`iKsCH%n#BUc z(A;c+pX=ZF^3vNxQOxe)=@%$4vIvwx!CBa;qu>)hmN6 zHC7;Y@9&L+?lD@R&StMR^Le_N&}l7Qi$#MzI~R@O^ncv{i9P7+DX!zLS9A=R4Yklb&nmd?CPI1@~#$y?nBH?wlVwoCU5p z=&P;dqq)MPwEx7+$M(8vJ( zpJ(`|^4YvDQ`b%V@0s;Gtl|$D0EpbDdhNy|h4{^!AgWdbvTh~_zC|5o98T9o)|J%t z)@@*Oj7N+Yp6shUK^mPVMajlGYHN|cDSTDW4ugM$QqpT{JvB$LR&%SKiu^853$8sI zwBiL8_#QfXckM9s-US}^(<43k(C!ON5&k|VYo=J{osaK>{wY?S@~)|mPs)k)gZu;z z@2m7ICE;V+ts!cre|>8DJn+YtvZJ2WUTCzEAb4R*Tg30z8s>!+;IKP z&|L)`zbFuNP`;qAT~AwiE%00vLjF4>zbe1ff79Ul3(VxQ&|mH}#)_-!-pl>4J9e&b z!1rxlBV0Y#>u&$b0F>3K2OGadi21HsET_cPFb?GN4x$95RUAP^&0qMcZ5m$`y*E1Q zJ{+$(TO;I__axXj@kxHdto~^d5aLX^VHwy%_l4b_moIeS3p*@!hYc5ZakkAC2-q%R zo-h;J>xoZycX$)O{IHt7jo%VCG)Bd=I1Jtgg;SSg2; zTPWv2BykBc!Q#MOi0Q?fsPdk8*K}>9;kp%wgw{tQkfqvrg)+>l(c+4;wJ8_Y9w)Z6 zz8urfrFh~5jJMj}dp^!x3Q4Q2yuMKrrU1G@@ZQVy7ywT@bXKVhC;YSyWj1Q_QJ>P3 z8nZ5An=%eg#q-_1htdgc?=ua!MH7W-r(6wE^V~g+8u&CmIvdkB+cOF9OmulLd<=Jz?EQ+6 zrTX1ci?x!Bn#dZ9rJd#NSe?X0V8uq^M9D;-lDO5Bl_|x?4!nScK%CFt!^q>4S!$Ly zl2Ya#3=mc$sXvVn9@*^1W6xGA*yJUvS4*R>Gp;9vL;CzPQ(>9#Uy9W~4_PwuSWZiP zt0|vieb>(gXLW>^vzUFv=H6x1Yt`pro3NdmQ?Q}_dhHGgpzkeC4(7(?w=S({^uS}1 z{gU@hGORm}T6$Oc+@Q%W^*46=dI}TFIBJ$N#(Z&F?rW_&FMj2c>ep|$DZ%c@@uhM; zXEaTyo5s5#vVy7n_^{q&U*8}sg#e2lZ<$h&PqkEb5bHpGjM zfh8qgX7t)a!M+lRif4MjZ`MP~%u#H4E- zJ#TJskt}u&FY&p#pSJVX3Ndi;-A`mRhB76Iw@Z~N5@d-98?3j!(oDM|T{+ldpG}6^ zzEO+?F6`3f_SI_;Z(Tf9zGuq5wb_9j*HhdVT-F|3W%KLc=~EkZyzFQM)6i}DY5kgU zjoqlMo?c6~+S&?U`49B(FZrbLJ!toEdN|%}mBaVZ0B1~+n+?FoEWMZ~TG>MSoDP2I zS^`(7_beVR-tJi`+9MvjaHTFacVJSgd0*VD&QU7i^{+#}6-_CAflH#6Z*p4hs??#b z7bANl1NSzfrlh7f;`(F~_qV%JkD(d>wk`;~>l=Fu^4hRnJ zTW;)pZtrohP}>{lbH9WA$0_p}a{G!BR`V*t7GCK{KlFXXb}zMW&Un$f2`0~GS1vm+ z*|m6q!DElM%M=mR$PbCI%&$1#+& zgT|ZZLrfOy1zI;&l07QZL^Fkkk{#7(8P$kA9xk3&>|hV9yKFBAoFTcNN&{}1QZw;F zXqx5)H}s)0_O+uLzJpflZ968%;bAP*vL~IM*}#H^`5rmGk)2*bzH&I=l;^~@yK^Y8 z0aj{^d0jXcDO;&OZr?P@Fw!X?Tfs2pGVFw)h3hkWU9%eeS;9PgQRS?$co;7)Cr8wD z*!1*@({r*LI)-IJRb%%&t(Xb;mB062wKmMctPxbBCMpNb}7pMj^Y_m?OK z{Ek-5{nziAFu#NDmcDJbalf>#1AmECGh+uFuuxXJc=X1tIW?m)j-tR{Ff3;#x%{$a z(72}_Jv%Gy?eQEj6u#=(7b`^OB{Ezu3o(5$^Zl^3s-)@?ktp!b&pU!>n{~?k#(?t zk!K_T(e$N^h7s#B&Tk}{XE`BBe^&*-!6R45k_@`)<+HiFNIin38QgN$YcIBKm2YRp zM&!5Rp|CN`dd8U7h@1L!Ck+OpS_^y%%-slRlGcrnsfj+Dv{&D_q^Pif^h``z_j7uGBG*Ky zf7cP#&~=vcErWNtfrYEC5i?rmqv|VV15yCXS8afRol?e_%8r=#;#F{+e8d~bGq4P? zedI7(ZDAk3x{8yqkD3snL6wRGyiIFnS0^>=k?Dh-=Xhm-jUtxjG-d z*PUHn?f`3IF`L-F~(blIuieS1lMPV7IKjfQ$|JZd;nF@{sp5M|`NC~KOT)j4G*?WfL6$O(_$>S~qR4Q|t1EMA zUFZu;F2F+rj>+T7xjZQ<)j-VTiWnolFwv5caqXM_N+W2J;?{kw&D8ZQZ<~3J$oY1* z-BInMu(-mTR8H?-uz6eD6ig9VrU$-zW;dxkv3@4^fgwB&JKN6@=%H4F%@AjV3iXfN z;^xQ6vsrhgxO*>+5Z2kxieNmLCwPWFchxI)@^OzuIK5vAfUgS*j(8Cax_f%-CiXQ6 zmIDE0{e#ef5FCN zD`bm%)n(VWK3j!qd45A!F0tms@CQ=jN+@?DfO^vrryAmYrd|hwAkl4XekGWZY zMGt{WwY;Fk3eB!lo_18lPE;zGA#Lgj8by;GjSS9( z#oe#_`PtnGF9FxKD>)jv{7(l5bGx$ToIgOFB+_4AimL0U$a=~Bsef_&X6i`J9X~~d zCnFGWrov5OV_m*Ik;^RKhYd@!@OGoL6H;~M3v7o4!E)23P-9!f*cynSH+n^jYf7Ae zn<0)rEfCgKPg06oIh?z$-lae5Q{d=x=cyIVgmTx!D`lh8f#>Xq1??O*@1zVepWIhZ z6ych#_5>pb)|XfVgRKK!wbUhOI1KKNfr2|(S@=mu(Y2B@T};ouCA47RuC$I*o{Yo{ z`v)rRz4+p?BFH=h;M8kU&iaZOxFr>R&#BCCFwNqYOahPa9SHGV=kCTaI&*)V0prtu zoI$)OcB~-3<*PTL$*He~hB1QbRf}R@Ue)zv7t@`c>iCzNX0}le=@JL-rH7pi@~)aL zTnd=jgTNpT_K2pT-=(!w<-KDXT+2Wf>v%5wuLX4t*d={~2x% z)eKcBMekW*@yGi|k@jy1V34$biF>KVWDLevEBOyd+eg|($r}^9Xqc*KiN)S&8f=4O zd5kXC=VlT8oXM9(vZH00>CSA~*Xs=sDhsKcRx_AidRHE?O(oB)%V@F`KvS0+`xR)l zjfxWF7n3w2*Y9=Ro$b?+`ABjL!ao+~`q#p0FcZ8ta_M=wlKHy$q#FhD?W?ExB|NFt zlPMBqJKK<(G^ft2N85e7$y(sHN~QKNEcr50t5&ujc9dw}Py_Y-Yi}Lb;knyZpEzQ$ zc={Z$cBkM`(UPJacK_7;@-wnWa{95f=)acc!|7s1IEEvYo^AF=Hr+9`ffe76rIL>N z@25QsfoYT$V;2HezP0MD3Qi8_EhHPWY1@ZA^=aj9^Uk>-wE1=yOExnY$;`?DGfNb3 zRb$QRIX1J-V9d0VuGhm<(Mj93rV0;L3FGtPRhSIzUU@^(+0tcIDu#THTi%*bK2|Sw zt*Ujm{W`AGb9XhBnDbbcv^jAanO2_kXAtS!zETpHU{!yEso`H>%E<8k{s{TlDZ`+c zgSKzv%D@c=cyo&nn>i2MR&F)Ts9=cK8FO9n-J!4 zL_?SKj9i$0yv&GF}U;Gk&~bJvBzN zQ06cqJP2TNe}+&<7tic7Xeq_|`N#3l7h zH9Yi#*2iJn3IcP#Z&OQiHe&UXZ7nb3!jPgaza$NXJoCjtnu!^jGwV5a&mpjDYwE1{ z1ZQ87eqD{)A!8Xb{AM|w+@$;MC!}r$w!r=d1xEFsn;6f{R=;)2b@_v`(HV&|=f#%( zlzQ}G@gbd;$NL`Ozc7Ju>S~2{UMYgLYDS-B20Dte$v3?9|Nn-Tr_@<&#jm_pP6hs2 z1Xn_CE7%zR1-J&@JNj_t)DEVPq}!!>NPJ6M+I{=v)&H?|)N&{v!!VM`YBnWT?)^qy zm&t-oqN7o49>yhU*d1j@INBA?(yl*)-3P*U(SFLU5^Nu7>G6^Wx8h{13?-isaPC*5?Pr?)(#CsA#8AMN_XQa^qZO`^hv+I~*6gy=oj& zoE!$5d%I{mZ_SF5gRN~&ZyO`En0@Kvznwj}U?CM>5R4V7#s(0LoR4%#E|(PU()xUV@;*Zf#no zyAc=IXmo&BcWY5!GjjP}*CQaudC2vkhUBjdfBGxUe_9|mCMw<6@L|L#$JiUQl`wjS z1@WZLUunjF-9M0Ov06uDoIa)Ct-XqWi{0fz!n-XHhLh^O@<$sci;fTfk?UAMxU{VB zlgF|C+K;$L$~S+;`b0*wQ7vL)$3pC8vJ%91I-!%S{0Wy_8h9j2?N7TgloPx=wP{K5 zb|%{Osr7q$Avpc1%J>^B(fg@yr(V+7#a?<4U+KQQy%fm?JX|3)8C2!BZ&QWn(sP$v zNfqA@-uL(YFibV4X<$b3-BZ{1v^ASbob5>|cL`&qleblm^nniJ&e`PR6}}?AEX0xK zWuL2mjuMahN*(~aFaJB)eb+doZD5wNO{-l(ij5~piPm`0jBdnHx|yxfpwA$V2Tff*z}Kr9DNou*0CcY^~E|x+uZWfQm9`zrFH>LHgHP$rC)0 zbZ*C~zc7ZD3R;5Y)na5^*R%mcvq~L-r;ugF6{n#JHM9&dlq5~N3~#K3xQr^#&$hdJ zm~uGCK@0hK1HyNeQ*oTayo@TuF-h1#r+g#9Gn*550Ok)w&4}mjvoO%9zv5(~_z7h(QbctLAsCwm>cBflt#9kBVK2dD4Au9%xm2nXNwN z`B`KbJl(vMf*V)cp)j9wVN(`zr-)rIf9^CN(@k9&zGYsxFwoCw%DNJ2ih)!Zy*A zWvk(_7KcZf@a$>%!ihP=bBf3A6wy89CQhBOj)R#Ng{wgA0HS#zq^YmCgkTRG2;KtM zkwvgH4cM%x;LpaqrIRbx;1~TNBLzg}0a3t4_%|J6HkUJ#ufeM(l(FCH3*L1 zm}-0FBpDQaK9!WFk*hUfm`il0H9flgG7i6lEc>>OdFi>Vl_+NOu)e;1{zv74DJcr* zM(zw6B(|_~MtXmLLKT8#a4vr;Rj7g0&bE|;Iz78WQoQ~&rPwakWh9`bPky6DSxIIl zV7rOy9>&@sNr<0k-^62YdwTnU+7AUNKRZFG(Pz(w^KYI&ONZQ==Dx~iRoEKWd(pTt zZ}T$wj&CRj+@>Ao8e4JW&b;`+C~ZU`RNho6nb@#y5>amnRM0V`GH>l!>FTRLQO=~F zrhGPIFN>wN8a(oNb05R1%bfb+OHSN{ zb*Oq=zrx#<;LI*aYP3Kuh%iyvAbxM%D1<8WgNf+FcLA;?0XGrTm;$(|>q5tpQxtTQ z{v*XtOQN0-X3DNslv=g*-kjKVAXLy_Wu-kgeq0vaShpmQu6$umoki^IGPeg4q=`+! z8x9j=YMdZNw+`DcQQki0p+LoHwb}6x=!0JhK7G=>FUTc4w2e)b$xgnkR-oV0z5m7T zjN@QZxyeoA&l(Haqzc-z(39o|>Wq>Bgtn#ib5V!k4coR{$wcJAiu(v=Z3b<=G$AUy z#k=$Jm%y57q^23NNc|pAWHg#Fr+5h3t^xAsCc%Ks(_l|n(vyBS0{i<#U_ z!Lbp9!1t!u-T0bP|J|18-WaIL#cT(uwn*^+_v^6OzMpX8{^Uq)KHs%!&B38nD-J{UoW^_O`6n*P7#66q2LtTXm;gNV`WLO~iGhYZa)!gyTa=hdsf= z6gXOHx5i-Zds8EF6S56B!0?9YFq^WR_w(+%W*`+m*q>FutYe9S+)+!NE_Fh4pwdDm z`fjAGPA6@H#$%q+I%=zs%G8j{KiUxznhNR8!Z%pU2$kC>Cr1<&vKFUWf#%RoQy+5r zwr?TH*UKmNU&jBm5kG zV``vZowFutF%lEcHAtU7}v1Q(|Os-g0$6uOxuvhu$gg8Xs=3r1FeO`CGsd%U!iV zL!3Z}1p}>nqlo(X=*4V@jPAr?kyC@IKP$+m;#8h3+#IyVICcdO2abBS{eIeKFwi*B z`uZpmm1SkOv2q_c$Ip}l72Co91HdoE<2SLRXR>sM>*-vMT}rC!xZ03AwW+$|s(-f* zpUb=ag7hO*Nb>3P+YeKF2Jfc$JK_C+!asPC{&&}8w{bU)lw4z*3tVw!9fjh6&d;2_ zOZ55C1`ToV8fxg`86lc4?!{t-U=fIPkxPWdg{NJmkyGwkjtT_6GZ2HMUtVe)@KS?_ zNC4&w@`Ic>e;bXscYN~gRvCgQc%Ez`sJ2jvgs*NbZcpfu`1K`suZJAA(-muG%w=<> zgHFr=AH*r0qtecoEp~?lPNt47_D9~wh@_iMe!6&!OA?&(fY?>1*V3Libnp58pE=@c z->^s4K9|eez!q4Bt0bC5Dl*I|?|gxCO=Lld#<{xV22kX0@0_JKNv-QFA9sOzSzo{A z1nFGyCTN2^zEeKimf=+7jI_-qb08+VCrppGJ=^5_g(vC-!5eNfuo{tTJ;5j}r-)2a zyr{H+NbI%w^7)%R9^ho-4P!oxMXHPVCwB4AC#Lfom$d7)>KNU#<2|CrBK{vxfa?Fe4PS_hD0m6GF ze;w9)b;94j#U=)DM=ObgJw@(_bfsN~wj`{?tW+}5p?@PAa0F%9UiV^Kqm4^sVCuqO z3A+WF*P${neD=90!o(mZ76aCTuYW<`-7R^jB;}M;k(h@40Eok<;y9*rMO9#w$Gb)|Hrbxtc@A@d4OP^wX9VPc2J09uO} z$Xl`g30!R=a9J(8aA<7|eIHVGOm4w<_~YN8kDkantV>>hg^@lN2<@uApER?mwXfAP zRpE~5M0}$E<<*#OouFJE-AL@EF5T9M3Crtn*Pc3{S{^+#x=K@WKe5a>&00=Q&_q*5 zA!cXp(D2B}lvgx$Mn?iwj-oIUSUt_X9Zd>wK<7;&wDF1<92a^^-gQlUiWOhI?0(Xo zA!fZ^ye9<&f}@vE1yFguy=X4KkEIW7KJ2AIU%Tn$81YVd&pTEH8Vz!AE?gOt!}-uw zYqW0mIAo*0dnNko6e#{OAQUMVyCp-TYr^U`>KNIPX-*ZIO^Yi&lurCD@mk{bcqbqJ z>nBOq#~E<%8}BBHxz8bAa%(hKun!(keG&6U7LyvfopmPU?DIGHq|q=G4(nM-!(|L&FLoJ-t;FG z?S3qyKM&AK54}@+#uVd|rnxtpa7WCyZJ!0cAvoaHVYj@0wvWFQmh!Vj#(k6G}@ z@$k43wLrr=V8T+OdoqTWZ#p*00 zLci+e;Tt%n6t7%}3h$#{QANNNHC}y^#VJ+++`hvhmZFR&uG+)DvWTD2`G0SIMNX2| ze|fB*AphT+|EcAFAo-sa{Lc#hX9fSWg8%PW!L2;yUC^P`045X>0Rh+j_6Fe%UaNOg z3s<_uN(+@|38u{licp6}o&P`c5n@W+T;zOQIrwz*hIoJwPQ=%ZR53Y=+>98j^|c5m ztSYm6`-30uvqu)x51m^^q~$TTbngJPU5oDnTcq;i&*=!WmydT%HrvW-ap4R+k4U`K zA9=ar`@F-cFM%RlWNSpNY z_0XbT>S2JDb|KhPL*%22qyJ7*53R)v$E5iZy!38gF45(zu9jgWL+9OJ2~8tAU0y=54;oK;0u=bd-m*h3cQM_{1gMK6blEP$*Tik09AoaE z%H$kYcS6-#%@61>D!_n7sPM2&`lC}^KkL9i!s-Sg@tK<&{Gh4R2hc5vymMvHNcQW@u8X1)lY{1ILgRtOme-4 zH7p0+8f9SQv=7IC*1lT!bb#fnPpH1DoPPJ41Nl^@5Lx=Y=nizxYI|VBKc^%thI?kn zs8ALJo+rzrdecnOsjPSIV`+1b3a`Qt(&lsEFz`n;!X!kP> zof<8D8&0}Z4y?+VHvjjtcaqvu;p6FsGjycN!7cH}eOtT~DJl1C9A{!E&AGz853SY# z24~b0Hna5J*XlNn>-do^-wt=(sr?QKnJ)-ZDev)L+tdH>6^)0a83_$>Y3B?@dCVWU zuikKfRBK4Fi#np2sE?vX);sLL{;m>CE{x z+TCVDsoXr2#7m<5W7Eb{xT#yJOQ8Bk;j)`}e4YPk49-DaXEzIB7`ZG#r5 zZpz4T{Z|=5=r%wx_c2?mE%Yj}*kHjOMyCo((>V*bjc!L|x+O0@s3|Gv4ddR?C2f&E zT6q_`_nAB(;ZPn(V9ci&G0PPn%cz&9a*P1&@eplN2>5Py-h?o2%NUPauxi*HUnF`7p_s~BW$bC%tn_IypZk5sjBFi?b)8LpRnJ3_`6 zQh-Tev0h45&&7TuzB}#Yw3kma&TOR)m@7zTBcd%1Z%D@TzW8f7V+p7Z)_P2SJf7ep zJ*7bs&U8;jt~|<1bZwrW=hQ_tiD?v6hgskU5wNxZfynjy&c>82F#`G*!Mo<|BBx-L+7o36#3;SZynp2m$+XteoeN@+}0W=9CP33Q!#nkO;!^))d02m`zKOzr^9$S1OD*ZkB_SV-Q)pI ztH(b5wUgN-yI(J%Cvr0B44EuW-p%`TN-^&q4~;&{NiV(Tycu*a%}WuF-rh1#B zsqLA!4}L-X*=cH^wRmk{EyK|d{V=hyE~}Q7p{faHJZikyD&f`#Fqws#@;1+rB>Hp~ z=#$PN&fy!%vdjEJzGU0!4q)Pe@;1h4^|;{wMOuj^a5y&M+k(#TzpPiCkEuSf4zawJ z<%h`NRq*!lpJ(b0NUtTs09Hms_<3C{eEI9i9^Hp1U*t)<#mc561

BNv7~MmtyqJnCtp9GXeLxbJA4pB~+eOTWGO+?< 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 literal 0 HcmV?d00001 diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step0.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step0.png new file mode 100644 index 0000000000000000000000000000000000000000..8919634179f13bf2e7f9c7e9fb329c11f0703074 GIT binary patch literal 13143 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 literal 0 HcmV?d00001 diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step2.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step2.png new file mode 100644 index 0000000000000000000000000000000000000000..02681a73c0677b8b6cc81e9028440d39ec097bf8 GIT binary patch literal 13037 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 PXh^JBEmeJ_+AiS)ZbaGSc@Unqj@s@hF@3QvMaT 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 Msmm5UG<*5K0M}fFzW@LL literal 0 HcmV?d00001 diff --git a/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step3.png b/client/ios/Tests/reference_snapshots/div-slider/ranges_414@3x_step3.png new file mode 100644 index 0000000000000000000000000000000000000000..a65411ae296197a20a30fcc3673b242763c87936 GIT binary patch literal 13159 zcmeHuXH-*b&@Q5a3J8cGQiKBnN)eIX5v4Z;sR5$&77#+OMnw<-1tfHkE;ZCBU8RK3 zdxuEx1nDG{Z%2>ly?5Oo_t*V%vR1M;tT*q>`^?NU!_4OO15G803k(;Ch=?dul<#X3 z5uF(U?$PH+fY0q$UOYrJ+H@4cwn2I&+GF=qzCg@Rm8n zcyh0J>ITv2pT8$2A_}r4I`i)uP2fs+4FPY$cYa-oKM?<3ac1Ph>EHK6Xu{IU&6Zu@ za{j5ZA(V*dA2GuFlmcAfG4M+!+xuFNfGZ&6=gSiKyaBukR|_Jdt2GN<0f30BuT}2f zedKv+W&C_-qP`!|Q}*jEsXcTTq**V0JbU(i?)x6%OI?}wKhSC4DlemjG-%vq;uaD* z`}O@xIY+LCm!_zMxv7ZzV8(K03@s7q4f>Z*uiuLOsQKivYJ%_>tU9j!6rLA1Y-n9O zoHU*khtWyCQ+iYzx9h)|g7w47Vv5ZI<)0CqB0h7DidF8voBu%g&lCQOg8v^;Fvm_+ zRX0Xk6B8gpavguQxBUlV$9%^iQ%?SbLG<$6 zpfW-@1!)lTlfrmKVMA^MScTn2?AuyILC9C^ffhLiDXh4*__jFcBC4S_-PzSfB8#h6 zOg#FC@lD+PbQPz$L$6Kf*f4Xw>=4swOeLRpUFDrhejJ|uhBUNd`=QTY#Ax$?wX)Mk zZOe4CoW64QNX!?L8q1&&_2Mk|e))#|++YVbVj}OWl~LF)ZC=Z*$Sf;#do<2lN7{)$ z6e-?aAP$Q}nOYrmzoxG>*C#jiP;&+2&_nv(xJcK&giC)IxGPp}%XF`B;kYSGU}N)8 zKs=UG3zQg%;iXw{@*Ur`ZLz zYQTz}vzbHCj?#ot9fal|$CkTCT)evyl_smfaItW>_#?W!!ir0L5k49@`hH~KL3aNA zpKIwJuQi7}?*x&7nN-Z$OGFt?UmfizMkc5;p(*MYMDLRMPt3xV2|H4MA|`VK^tbzLJ!;cSF_{Q4vEi z8C$XL<4ybd-DYewX7jbGqt8k(bO; zUVHA9Q!givB^JBXBeEOD6M7y#T|D>Mw{Mgt`gIb`;vBiGhSKx8C+^sTz&`~5>@2l1 zO;E4-UJzv_RC{hhA%#IL8!<-pV~CV(O*TiI<`oUc_=eBiZU>|p5?7ibGgF%(!*?$H z%0EE$01LkojH=y|Tx?!sH23w9nBP2Oxi#^A3%45_WLmQ~Ju||UnLd8RW)lCzQlbaa zdY&Qf$kt-~0gie(H~jeVsXx49U;|sI+NpF+iml+EkSgXkk(>)LuZvB&L5++(h6mJi zLRugRc{4JZwR~kUgX{#^9hZV9)MT%b9^;EEUM0lUQ691$(r_sY*Lvi1{zSOYUDloCfTgx=qdAF?)diS2IzI^f zNs5!A{E}A%M0^rHYE+t$KDr@ns|`+&Ti_sk^F#aD9!e4LTXxXAOsMzXj_d0eyBYRT zGHzbs(Yvy;X1lW42^TZjSLe9*o8)Ws{VUpKRmTZx|B9Y2DcC~AO0R&6^{z2~Oki)^ z6^FKMh4wt)0i?x`O6jBhH2fTsKk9Q5PU?P1c~Htng?#*}zIwZJ*1}{M>XHFtK&fz3 zi|@1j2?yg!Y5!a$+_PISyy-Kqfv!7kw z)Q~C#gn!~_GX6o{jE;&9=E~XO1Og;-trs$MZfd=m97PT?s9F_Tj`&zss_nFboD$p2 zt!lTveGlkgGdf!CqVPbOTh|m>%1Tji{gD<+EI4SMFeGRQrS$opu-IXPux)>R&+8lC z?mxSkdT2k7abzR8I935T7W`81S~OP813Lz`Kli$u0##VACo@+zH67L&GK8Hnh^FfPGkT&8~p)+Iz09 z5UCDP)n>nfTf+^u8EUlf2|{{nRb=(PNLcfHsOl2H|%<<m#|*Sxjx0Y`i{OB7c&LIpyfm3U zyX_R@zP*@TWe`vTjRf@X+SbxQBRB21MoDVj@KgR06TfmO;Rs*uTnet4Phnv9aPJ%e zb!0zq?}>0gaZ#d~*+iAIUQIRo<1q z14>TG(jz30FY;s=tt9!O=%XA%^V!UA^KX%4zsns`z+ao-GyR;1<7 zxDjbd_UaiY4FTHoXVQ*a11_=eUet5g*o>049?-ngF9|QhyVQV_6zJ+@z4y-a9lbum zR?eQR;fpwbScDJGYV|x8_Yz%Cqw%cdp&J^GE-O!$U;atS#;hcT_=nqbG8gkTmBeI6 z4ZPBdT{c-1LMK2fqSDEZu|;;46$sQHZATPYadi<^7j!MxtEiV#tTvveq3<1ia(G{m zt9A#HK-5hQaE|L|IoFiq0kIOdd@~){;RMaAhicO^G+|Nu7;DXc3cB8iZM|6&bM1gi zNR_#!{8stH_?a~Pn0_Nrb?~?cY%&X*IAtB7b&$EWWVRw2$W=Oi+&utb&CANN9}n`) z65F&Y`SSx3KXP5|?`U<{>kmFH+Qt?-fiUTP{Uf9EL}du?gH0Rc1dsZ)5KYe#LpSF~ zAjSZwYZ$N-H6do`_KA;XEgjSv=3*Fm-h@WKtrj%7fQ%HlI6h2+SJlG4H|Wv&&7&}p zE5S9^DVNjjdH7d=lsir|>BdQ^z)9&f>;PYFQA27pL9QuQDgkOD>4ITS<9fBWDPGms zH%;iYX$w>T?~J84(&uyEj7U6l4L>ZhYS{+a#HA(t)(+%mIDh|rGT@>g zY5-93uXI#ae~W-nQzrN98FVW@&ovnsKH4#?Vixelhwp?i)STq51p}DaXDg+~YuHDX z9h(E9aZ*AOsc84%qU!6@;S{%-fwUv{hU`8zx3yJtQSfaQ|7}eX3C%)3?Ml7TT^?#phpJwb}iZ9Q`50R>0n-lbEUbd>w-B@6@4mH`z zqQ#HY(2WO+`0SU1!OjIOa^!tiPAk;Cl{G1!g04DNZHDU?stitSz3B5rH7;#qeM}oB z@jQwx=+r98Ecz9@-gxLO@!d%1ZSgDVWf5{ma^R$;AZxsYvArMo6;Dk z-RsYe`eWp#9;N7XW2ZYndJc~G^jLdlukuZHf)kh(%=+lTft-5H)PD_(iJvO!J0(1C z;o_*+!}m{_otKN9XUB)+2s;%^RuYErQ?HQ&DzR>vVon)Z{TFD_+~{0*7_823v=ynL zMgC}QX2%4w@xcC0S2L!>(l9QWDL6sar$w%cYxDx-?v*D`&ckt+coW5D>2KhoSAy?@ zjsxC9(7pA(){7ckj6952ujCC5A0bsow^qJZ@ejcPW$tbZ<{-rNqo5+HWap*0%D3xt z;Ezbm9#06cb`KbA~*Q=5ahKh2QpF>*0711gNJGon49f!MEy zpIB6#4VJ#dLq)_r(#xKGA=73&=If6HOw6lHu3T2G`7NKP(U)DgK<}fno||V0w}M)0 z)0Y7^edfZUDh(y$#;hv|a*wpmF!&|&mD(C!9dd2VxDQH&tW;ltTja>1zlG>_^Ba$H zjUcO29mtOM>c@}G5*=KP^UF;!!n94j)A;P;ImFRp-H=9Y(g8u86!5#;lF+ls2_taX zk3ZEg0MrnMS1+jw3~>t!mp`x_zOJ^EiS+pV)#mtEQ+H+jB0|9Hqwx9IPE3idVH|z6 zwNY9@mx%iWnc6j#Yp-EA^A8JG3Rh_$RkFIsvjGQ_a9KgU4r}9lQ;+!|>#N{^ejluI zvB6STJXB0PCY|>l46Fjd8RT+A!{`mV=-=7cC%rV(4>?q{Gb(rxk-xNVp&J5+hr&eb zCTI8rgpDeoqkhTgd)sFo*LIfLda2Ci$!@0|xoaY6N1osM_AQcko6FFkm>U=EfCt>6 zd=|9s8kL~LCL+~qAdV?6_B{+THMC7kmVP>40n*`xOMIR)*6dik(W?HvtS|W|0-nDS zDE=1#G=M;=JAi;!N&r6D&<80w0XSvtW*ybrQd`{$>weHh)iT>!OyStnIW&W6g0vbrd@n?tD!@YWxj7_3Lljj)J zFwm{`ANi2R$jT{}5PvQ{3=_;(a)^Mq5Fg3)5hJcA1JSjlVSQyrsccXBC(q|y=Ht71 z8vm)_8e%Aq*~EIID-?atzuf_(cX9P#?cr;r{OGV3A1_)vATp3PFAa=DYL-C)?1$m_ zA3-3DO};~uK^%6*NLQN|-gosy;`Bqf!T0UOLpAQx0$pVUKjZc4k2WjOwX?HJ?TJ)@ z_uX4vd-@`xR`RXhO7C2+NPO|;iZFYw=Ig82V+9b#tE`L8m6{GN6)AP;^fpSa8({(B z8rkT!@3-tlH?>%WE=wL28cF;uP5N(X1h2+j6VmRr3k-Rw8^o2bT~=m6uFmA`S!sq4 z!59`?mFzSXOj{~+(_yDn1Kg>t!|90%92do#Z$Nv9EO$$TbjH!vTc~GavPEQC4TeLV z{g!j02Nn$hNF~hQL8V$QktIe<)Diqh;|)NpO_BO0H#tF>Sy^=4d~p^k(tT?eMPnJT zIb%7i6%8|~SEGUs;sGP7Yi+&MQ6hs_&zBd?M9f6cf0QK&@gE+M=tds%Sc2BJ))(G6 zml#gZ%*E&$Wn15*Q(FqX+wtRu8t;1G))66YZH#_%mmeiVj%~TT!nfRd8oirFMt4Z2 z7L;c-SC63TtntFIX5=i#FyU~7SUEXd32?ZA`JN3vkA?=*X^YY(G^yz$+oa@71Ku1# z5^+>IZ?W9XnmU4~@B^O0pl0fp3DNn*(i{Lw2aSwRl2Aumhd0$mp1)tpNi~d2Q~wR& zpNJ%2Sg@N%3tEdEGEa0E5c9%pau@WLUVg)|eM}MJFC5dqaZE}?bbP$Uk}OF?L_bIv z%B+r)g&OO75j|$Vu6j30HuG@GgNe((;fD`q*~DjXd3<{f18ov%Yg?1>@vvU; z@>LRVX~RuO&in4RN$(y&vC^&Za(|pduDpuX2MVElio^tmH(7;c&&MQ46n3#oWzX9_ z%#O%4s6Wa)%na^tol&H>7|j);iK%lOK5}nYpiB!h_21Ty8NVUeMM5_K*ptO$yx0Lc zy2I=TE|hRV&6xUGu;ZGm+bKE=k(yX-5HH&D1=DndX6YBN#Z9$4ry(DnK;%9YxDi{K zEcz71ChGCLH@fvD(k{D=To2XVy%aUFMn=KPApEQu8GUp3ll?os!MrZ&t;@W;UrLII z$hb5sC@vqWBHca|?B=$xdo;|*99pE~(4;9~NYX?m(jc;xM7)VT$qMF?)ya=0FN3`* zKLtZJo<&q@CpbhWh8W#AZ*<DDC0tUZ#1xzVZT`X)IVNL5V*zV~PHC8Qol8>y)wVckbQJ;AAL z6d2p}uHditCajPJ$~32CX>E91V@*cBJy&|JH1g%!s9d)b2t+#KUW=G&_B)u(65Ngs zTj23H=;vMTqf>JkW<_~sa8m7!K6(||CdX)_%t!^K(q{naT;%13EbghD6pen zL2U`O-)wR~tYy-OnTqL-s6t&7+$r%3v?oh8!G++beKi#4%J^=1_D7GH<;^_mlUMnY zTYp+Fr@YL9(Q~~vuPL{~E*r-_Ak$BjHUZc&9>SxI!SQes%t;XZJ>q-BFLSmM%-J6B zzqGcU}AKt~rPN|LcK$ zv5YD7xe|HpP9k-E1j)$`Mo~!2cDFMODUTZF;NxvBS!ew>Z!+6}j`M|1eN*11uAVnL zw5Y+Ot83zwc$uzNVwLUQWM1qP&teyj`@)~O;VU*vfcm3705!;XJ(s7vUJsq~F);F( zZV+j{w!JM{-x-!#6Iny7 zze{@*Tey_b>{#7&!iyX}xP;iefoAxkvc`?|{6|?@nZ}VXBi+3FT4=N0PsWXcU>L`c2c%*g`*Y0QaztmK#(sqPp=t1tE|DhKK2M1 zpjvSqpqHf{k~1T8SAddn6`||GZI^oeasTA0ygnl%BtxZH9JK~h7q?<5Tk<$bbK3YrVBYMOslj$&A&+=x4p#Wz?F9VihEj$ z`WyIQA6uZ@p4az89OdA$qGKxB5heigulx;f(z5GTT5Dnm3cq%B{%?cpG!T%SEr1Rqb2dS&J6 zj#i5BjV`?f`l^}01mO><#?K)DA|d{hBQjlZ{0mq>o>*jdOccJiA7j15v)rxk7yvDY zc<*-k#Wx0f2v+v;JnvDmh{x!=laOljPD6hkb*;1QcjLgtYh??|CV{zmGD~V$zWWaE( zW0ygW*NrHG!d|Duv7R$S6=;Fj*uxfT_qGN4p=C?&{J(>K?!=hP?CfbyYac3eyKf*& zW%guxHv(qG-SY8Kr)Ynav3Rdk6F@R=KE1^&tqU4Ahoq1H3SE zmsX8JuY3b1iP2Fo@)z6-s~SaYf22O?9H7oOH0LtwT32}y6>qzdP`zRPVo~K_5O=X~ zq}!Q7Ef6?G7bkJ|rzy4QpskJNWVP+6H>+Iwvj0qd@yJ!#q|}zyug=qm54AgK>baK4 zk>`J|#5su8ELSxVnH2*(sh<$(%=JmYjnLcRA-mtX-}&YT1!>;J)qU|q%A`z$u{yZo zkWcshtSGw&{%&q`-Sw7}Io~=NY{=v5RRN^;$EAGH&fJ~mJaX0$z#fLkJoRCbtH<(V zJOsnp2*c%XBSf&~IyPzC-3H&9#mY3k7qfoBE_-#I~+r7iEBgjJDb!=&(^ z-$7F{4n7fJ;h*Be=4CFS18gq+%~^uFcosJDY!a{-v`)DhD= zQ(amdML=cIaZrS^s*7MtQmSB+06p?WL&tXZ-ACWx~)bCuSf(A1O@ zJm2uWUG}5&7z!2*bQ4n%QikA){ayB^Yag>(KfSw{Z!n>b*Ec+I&~tsdz~Hk^L|Q5n zci;0MRY>3)4>{``qnt&8!=vcPCnfpI9mN6!dx@vsJra$|VwuI_(j&-M%A{@sKFI(CX=4b8hO$!;Q2d*xg9hrJYRcBIt9*GK!ZEQS^i zE%1c1J@p3KusC}&+|%udfGL4a;eu6mt!jSE9ivTl(`17*d!|F^#6AfOC7{WzD!F80PVW)#sdzJk(X8*=dg&ToZbQPl=<*|T^2QbxK;?dfQ z*gpn=6AE$3hj7K=>}?E9;{>*+L?8CCxg|cFNG= z(bgw%MrFeQqp$Tl%rBk((e4zG* z&DfU(j40xr!Q3=IeNK^;#K};1l)0hpQ9RRRbq5e_w0<@E9cC(b(QylPla);?=Rt&i z`>(ybh>5#>wz=kfO-H}7xX-C)c)jX2-W_?L(hAQvdK|;eMp)MOkoBU;UYpoc>(##A z#cpDD>MGd*udm2*t?-44&&U|59sl)ZkHLtEtlt0wZOtsXO5wSs*s%ovWQ2jm23fhU1yoG2WRG`43X!-?}HaGLGZlJEgXD@<lkK|#(E1pBVw4b>rhY1Zr3SU!}DBQ8FVlI#;C{uI;wqSDfl^#F*J+V9Mpsgg# zy3D$0by7BjzS6S8F23;^%|WhfqC1#kDaeKd`UD6DgkGTA!m@xDVSnbKWbf zy`sl6-WRf~#6EE3vP^N^B@Q|aWu8;5=-`xDXy8P207t!Xo$4?qk%rv^l9I>sTKTQi zYL$rDrkW8VrA@yW;%8E+yCpkc2+VZXKdrqj}Zt zR1nBM?WNS@-CLW!HwT6LD|&aUa6cXA+ZnUteSY=3**@mD<}vBk$!%(%BN=J;Nl_#A z@5sfr;I&RA^_Ao*nJAwusVdhekb3PuW|;dGO!c3#BfhPiS827L+~2qIqAO7{?XP|j zY>YH+sz`3sE4-fzDm2esPCR#{{L?Qq+1_0fUGE2mGrnsJk8sP)N|$P#l~tN-vPYyI*zSmU|-yR-961Y+J@Li)zbB>8vAt``Ws^K@!x z64X4DV+*i4S}}fQ4ENHh4dLtO=(iQ18~8O2DJL%8+^nNLEjms|Gdf=pv*nrn9>Fwv z%uh{OchI*Rm6!7F8h+iHx~8@Ftp;drm813ecBPdV4pCQ#Or9VZ=wEtypaff}IU1p_ zsXLyro?isNb$H|YJlQcuT-21D5^YR3u13B3uci5+?ETlTl0+&mVo_#EG6@@t3ITKGTkkljKeH;XjnF9tY550&Ajcw6YjW*(OJ2yTmReyV zlO??&OI-Y_elzpoyU~jm%9GV}o~~7HHNT8T73w8;@=8xWfx&8MQbddGxi5|(MQ{KY z1!1}S|2%ck#Y9|;eJ*JBxUt{)X@7Vu1GmUKG3PXJ=kffVnUa}1nI*zOk=lfamg52* zhM*0&a*qca#%{}&Y^7{&e-Wr#FmET+Fe7NZ!uX%S7XqgICObQ>XNMsIxTrN92G`cF zXl(e?8u_A`h5{(eHP!0mZ{5C8SoyJVFELZV8z+dn9N5Z9=c{>ael`k?Dub zgs5M53LEk}!rt$s#lAj5j<- zJ+32AYn#vXk#T=w4rni!bnnj2c0>2UsK<-8%$m7><;{~c^xw^2f%hjZ{0GZ_u$*MB l|8D-D!ePYp`|+tyQlbg2j!d?||DX`5C}`diImKQqbMWKQ<8S9{hvdu>AR=&Bz-dgdq%4b5?l z+ba4rGzUk3G4?P6@VWZZ0s>qPxa+Imq$%t?O91|W*qCV8>gdp12F8bJ4jwo|Lr=X0 zcq<*?+8?VOxJW~{_dP8QP4Huyga6&53tXwMufUu7o8MR3_q2cRI5_g2?$4M8OTD#< z+`0~2j=0=5b*G^@FGGDFP>mOV2z+_=v5MY3;0l23y=;Kbi@=+DwWgstJ)F)w@(#FW zX{g+|=W}3T>&7*4aSdi%|-EYTBwAb~rKM=u&)%Ayx|uN4Xs&3xeSSa>8P>8Z>; zd;6nLFC7UQO;XWldHLaP5X*b67J31#Te5C%7UHZ+vFC=ZopFw^MKf3}YG`L&(HWKK ztT5gluDEu#4yj<%Bv0;u)e)5^w#Ea|R>Rj`&>WyWc$kG3^yGho|0&^rp76gY_~HOw-zRO9Cgr!aI;VMuD&juL}r7o=Rtf%zYHJbqNA z%hx#+?TF^MRWZsFOq4%iknz~4pT^4k>kg(2vNsCvnHg5bl|p>zhXAz>1t+@q?p8I(avKA;T4~ zvfY~4vRN@Ve>FCvP+h55?(q-HpJ5A8v_qVrJnnUISzS}rDeRDx$7)oJ#*b$Aqh8A4 zb$&~5fZlSVareZtyrozC%si=%zwY6{UY9pFYn*M<`23t~pap ze5m985*rlqecrd66;oxWl5c8c(Lux#JK9>>THD&&3bUqA(^5!OSH}Ff z=3bU`V0$a8Nd6X8F_ir4j2R-vc1UGm+XoYGz`wLLw%OD&X*EYz$5Xu8!CJj5*&D$c zDLC(NT8Ml+pzY~J{2;aSETI?g8jJF775W|f0@UBPEpZvGK?!p zvx!z0ya`5hSCw#6b%mP`KR>y8z9oa`ZpIO zSefgjEEi*wB#a7oSKoYs8OR;I!hIki$`6))t=NihEcrW%V{3Et)tbm23CZXI4-_(TObTYNYd_$OL``Fr+s_4@_41FdwhTJXhJ`dzP^}+ zs^nR}AfE-Ty4c8Mw0KiRmb;SP9W|nkMp0mt&+I^$vTmWTzTC*7SZ~&8qfGuWDa89| z0zz$&DT}ALaBlM?5K>QDFjb@Lc zDm9l3=5RM*rst@t^hf}$m~H-)`85&MAvxN<4WB(kXnxO}ZE!Qt@dz8l@XEl)pHm*! z$4*~L^BNlMNIj>gY(7?YehslZy>vgrPir6i{Sn&YnQa5R!l7$JcOmM`XSHk|V8%=y2>P5lsvXX`y1YnWJ4DnNx&U`@ zjEq}XR<;~cMkX<3@h?ta-e|fBHx8(5FwR4?;Q`m{GIX;rKqLt{V5t$(twBpjv=a+W<63%^BingGvF5u8tz&~Ts@ddSlnZV> z%VVZDWk9_()GW4Vca`YbE7yPOZv=$#vA~7JlF0XZiVyX1_b5dNybHV!(>~i8>r~lM zxmd|Ops5sheHDK9HT*DDtz`uuxj0f8CmISaPqUuBpA9$8uC}hLp)_F?Y^Sxvj_nw) z7UJue#$3D=yapL@Uiil{`<@-tc;ap4IUHsQn+y9&H=*sV2GfD*o^54!s${Md8_-;; zo=1t=wrq${f#N_b`92m^uo<+&t=r*+%3jPJTXeS&C&-GeFLB6fLZDdkLs6U|z zia!;Ss-?uiUw8Hcr(l$#;>XJr&ef4lAUwZrw8--_QED8#t$bGbi;1H{72BG9puf7) zI)BwJ1`09Q^xT1`NV;CstHGo3N=6)5RMz2J2o37wCqu?h@`U!t#z1NlR7L~!?IPot zDUapiRyJGjlD?9^58woG_ob{Q!~c-|!<>V*x~B@f1aK{8i=GY7NC)pLMv)`f+$@B( zq+HJs^j~Ck0oe`Ic36e@f*1*;GU4FRw{pq4#oPXv5u}H0%;GPTM51;g@taw}v0Z!j zh3(!;qNOF*pZ`I4@>&0A`{=LtBa*{RQ8Ly-;j5!BJuN^&+C>VYZ8+GX@u{3Aa&` zvB8tOUGO5WGmlZ4wxVT6CHJ0U5=DU2RFo>ItBd4vCn{xZ#Xy>yv8!F-Ekl`kBC!;L z8{^P}fhj}FpL>~RFXHbT@B*ZKr!q>x-QbCTZONp3-`M6Z+}Jo~GXHbx9OOt;9-3{@-09^4vwM=D2T!w-u6h&L`{*rTHc zTGwycTbHGG#rzLZ6N% zUNAzF7k-MzLJUk}9?2KDL#f48&l!0n#H2}U2#h>w#Q*xVl%H-4%& zSxq$Z6qt<({|(EsG=S6K`23Xb#U2vnPBjho1)&&7Y{XGPor^IxTrWY*lCn!?M*62i zf<`RgPfF3~%-&fE+|aX}8n6FyL0NeiZo4XAP++BjtScnum9|*^QfHQabkbDdFS`t~ zgao;ppW$C$K$HvBkl8OV>s>$4sum{*zR)*lQay${dL({?O(a_$pjYzIa-bIcYQ!%!;Le8WqvUoyzbpCh3L7y}DD#8T{~$V zK=~|fdsmHUc*;}1W|r}fT0o~5GZ|Seq#UD$dLR*csk!F{P^6M8OvQqWRa4PZ(VQO? z8RA#kM!xWzQ?#pf8N{EAghco(ziDcIrN(wIg_H_)MwH`N8!DWgzq52-|I6a#jF|cX z93!m8fFRce9=9fS&py9^vuPm3ggaXBn^(T3jS(pqGBqi_-$FDO5)}rDYjd;)!gtg? z$hD-$)vY78w|oR`A&_!5IWjeD0;l1cA-1n;vx_Y7Q)ppQC)5{v>avs1jBEhI#(0~OZj){w>pw@Qweten!;s07iHc*6l~B%xm^;-Zb@}Xm-D1p?&|^Tu zVPP+y*s^{w{gy+Bt4o=~=1f;V5;X?mMJPN-SzGOBkXw)>A++^9)aqNabh7MqN4@o8 z=C=y%cBI!6Nymj-GrW_GQnU870g7cD4@RHJ7OBdhZ!DM%AWkT{ZY$a#bvxB6gaL-&G z&GO7^EOegDp9xs)^LMUvqmIP)AA#C^%nocWV1H3N>fiBhOE1PgFPWu(OM%O_t>jwO zR(6iAUI~6D&Y2hd-4!WxV5JCkkPSJK46J48lg)5;r1GoEk!WLiCClV|?+5v7o8u>K zGNy`y6A)WN71=T(o;NyV-z6tSduSbAyq}tUCRO5tUFLl%fxNT=rHj%>>9f4fkI8qy zasI+p)I#Q0Fd$bU@7;k5%mWwbBDO`r@o@xf(5H=3Z(* zDzKc~Kgf*STZ3=&6BY1LzAWBultz3%Bb4a&%-MqSol?5y!lO7gmFC9RJxhj|-j#wA zDH&|g7f|~?#BE*;-q4^CtM}t#*3CjAgS+=JU#EY>Z-2f#X`L}?iQgLBRU?hvTUPu; zT)TCNNz2T{z4OA1(;F!kpBoO7by<7B^q~hrQ73L|-T;;4w#6D=Ix`~0fXc6(b9qFR z;&wgBWdWhRE6ZxX;)`m}wy}9Qc{277dP#q(^`pkz-{4YpX%NPpUkzrvmdOwgK>cXS z(1~zl^SaJ%hXtj+^+Z_Km3+Hwr8-{2tQYjDNh9&b_cUyH88}231V;3)UZM{|>6B!e z+rtvL!q;|*_Z|_we9E!6$~8Xw@5Jl0wPL<0_Wc1qr*ZBdvAy8Ad&nJuw)x3jpG-E! zxp`7;{3(XSTK-1M94*Jr?^6#Vd!N$Q#f+>J-_yEGC;suhIB!opt>&e}w~ah~OD?P4 z0ylk5ns6aazda+mG`f}yFp=zmw?s1JzIn_>u3qhjy4YCg3sGxEg=p&>MeLVXhP4*M zk$PpT7GN~Jo^++JfF(sDB96?>)i$x)EgaTF7^d@1tri6E!yG&DQ^}FNmbA#MwKw+| zEFaeIxm%n*i+!7b)?AR6cV)dVB5-TT6o$f0KuLGd4 zRKy7B#czSXQ3ZZV71+en_segAnb8zNeF=QTidnk$%fWR2nZWbs?D}4nETZ(nHU5Le z>ce7QoXn%5rr6__M?*3i8bv?x*CmxAu6j7uZ?t?HQ`Z-Xud10&*6m!pD9X1SmBTFv zkc7SFvFkDR;MBnvBT5X9JqHX&u3=;RK8%?;Eq@+M;OOE?(U#^lTMwUJ0Ewx5$u&!e z)+vRW5^yd*pR0h)aKpZ}CV!Z2HDFjyt_MYkYD0}iDf=%xYr@)wH`gYd%qJgb1;G1l zcJC0qd*_q*UppTHQv*7?5eTL&f%bSL@dm$SZ9yU5qXGPpyc43(({x*?!ZTtE1CfQ2 zzV=O1=fxy&@o~50(Xe~z1%-28qSem zkZsNoDgHd)Hd5ww5K;(KPk4%5 zTlfbVLED<$Q{3>Go+{M)uw_duKbBwo4(wR}R@}m@3Ruanpah~Y44}EfwEptPz3-P=h9sgN_Zl7<(0*iar$4zk;fI_1rK)C||#<%;uQ(SwEkukH$&F z{K4ONpB%^fTN>D)o>1GFbxV!-kyw#@lYuSh{HzLYNrJJ#S{pfmlu~HhLu|`YonH}Y zwA4ruZ;?G`6H4EC8)31pQY&m8{?Y|pR(AH_UwdAa90!l)EY@PC(oV+)*R(^xM%hAs z4LKQ}P`jDcf5fw)BBG1lKr8ziGHwAzjEGG#H!9QZqT2BEv*gLU@h0CG31n)7c9(I! zws%B4A119R+Gl203>XUJS1CM-OV1Lu;*E?v;q9=VVny4Ne?$c(Duy-x|FzwGZJB=? zw|H^0%y7OdDd^P6g1*udVS=7byfZ#;1UW8dby2h7G}TwAf<4CdUy+n7FYJv62>90G zlH0S8AMY}XE3E&6dGk0FRV7tQh86#*ALb}1PmlBhV%`f;Z|wysT`9-p8lvxi3Zw)+ z^Q%h~UESOT`bE3D8XIb!G&Gz)s12LNF~;x*#=bNU`2{p@0PUJw4!)rKcR)ERm!LOj z&uAXJ{F)S_3GPv=xfBw7^mx|2tAgiWSHy-qm&w%8Ivmswx=kzKltxdw7$6kMuKWYz zwE!>jUL4E!9;y!PI*scc9X5kCrJ54kDUts8cf;@GXZ+Xe))Sttw`cgMn(VW^XRP)kE8oqE7}m?-vJDsu@^@QQ7Uf zs~TmJt|LYyf?6*+ zc-hR)so*9NIaIjPU_L1Y10czu-R4byyHw*nNgyWiCm0pv;em}9(6KU6Ab0AD_zSED>V(-(`G`ys$X?5IZ-x`Z2!kE~0yO0g`q%sn%8Hmc;{!5yiAG)qffh7mS8 zp%{Cuu$u(SAgXluv~fY{*%{ z^YToGl6m$dYgexg{3qj`{9W0GiECo;n5pKFdGhS~51zfyxwe~csK&?jZ0M*Ez z?LGju3s^4DJAP`-fgIZ*CjG>I^@&i@VBDg2fd9?^@HFC^sEjIEy$9Fe-g}%yEeyOo z9<~x&up~s@p1V@);__?!*?)lQrk1pIZ|2B7*A2CgVL)1Y#lRb&_WXExFEOh(eO5)l zaFdNaxBO6(W(+I^=RnqdRc;fnq=^ak!Vq=brpjJsync?ZqcGeo#lDSF|7-3ChyRom z#X4^bTdo%>^XqoK@5APbV0{rIO$Gb|-A=+qtvlajb950J277YuS6%yZj;~bpRbaG# zF7zyG!RHU%87@N!kmC^k-`}f%AIXml3jKA{g-sRkm{~^Nk+jt=d$>i<+?1hE2Qf{# za8WQXis#eTmjbG+DQ-+cGj4ALMV7bkRRn7O#ucFIm-iC=fg^b_K*GB20XY`VyfdK< zlzSd=^|$g42@RKJYagE&8t^{baRl>)!|jMd^xl(ZL^G%~4>BY);uTn8%NQ{AJzlxT z7*$dT5NLw@<-am#i54w=taEzAW7R{Nr{hA;pwG=)q~HPl@Src}bm{b}lzLEj zPf74HKQo#88hAkOtsds{D*dEC|MR+EX=OEVC+B{c$XkPxy8&8IVy{Tp3| zioSf2{s1;NMksGjWdHdp=9A9B@4P*E6q{+%4e1aNQ)8*Xb@=37iHk#sG+Muu(8u9WBr3hlenq9}J>k1A{v-SjsX%N@O5RZ6$7O~>i6{00G<@K}H^UwtI4DBV>Neok z$Dv!XS&7|u#DJ|yPQc4vn<1!P_N{IJg6(U_sU^%3`&Q!$W`!&2%I%X<6@7?;IQ_Fm znpg43+MOL!XCrR@*&ON?r4?T*P5olNR1alcN7&N1me7Sj-ikVEl`O@7B4m1D=4|%z zg2^$D-l|#?&xra!%KC_o@9NJ^=6NAK6rvqL1S;s5i-!@#0}X=5#C0zG*?pV65Hwr2k|M6C0RGx1`9x;pz&)va(P0@=Z-WI7O|Zag zf!7$&qng=Rgqnvjdn=riUeF!1Pu45o?lLI;Lsnt5h7E3B7UG`fSLwOPf^ngzVRzwmkO zcRP)0$3@l<#Tf+0q~l9QSnWok19M#yP5STw6{$9_azWgM$u$v0cg55v0$P(A97g$( z6-sd%MDdjlc}MBRfo53UdjtfqB9W)cmC0ts3}*UnQVX}g&sU|*J9gp`KDpLhyJ6<+5vmRft@@1?DD&2&~+2&DoEFeSqqLj{mkc!{VQ zeoIsf=b@#gu-Z7JD2Z>?bALbO;D``Q?J2Zn=VS5UHC2c_jwZdQUI*1`TP}!jcmu&z zOto+L02?-Y30Q7?^WIur^RlRN!5GGvXWcv(0VzW~*cB#>Ks==xTSF)o)#!!dEXw}$ zW*4s#??M|YRPwiMo`p;v=PS93$`vEruD^0DF47@puTHdAV32dbE78YAjE7CI9jf3U zdP$5S0^ay#1dx0v);n9BQT^*NtcL=|xei_NS-WJCjE?#1{ngVK+EmSa(0eV0kt;0E zEH)cB!DclV@AIk!{_0My{hsEW zX)%v@%yL&bq~*eJHd>&;p!O_W`2cWlnK~~+VYQrX>P4pwAs$b&zD*_4EP3uyhNtom zJeStWgPrI#k@N1q+wxRxe|&y0eWt|S^2hfoR+Te)3kA2!xVf*Nr6?!$CqNR8C3N!{ zo}{k9z8JKywbQiO5g0yxvY61g*_r{j-U*za@4GwU9#|Ll-PymcF$}Ztx9u!q7R34K zd$ug{HL!E4v}R5hk^$)9ZeT)>{|K}MT%~2yLB09?N!lK7EY8Y*tR>kR_xV-GYFD@M zG@4W|!N)DA9DGsDcrj#bM!Di-TfM^H$vwhB;iITWo#Q_-w#cTb`UX^KpV$gE9W78A zY5Mu{UN=}skcA=~-@Nio8*a=3>q-EgvXebBo^efgXF4WEs!!l~WG?ye?9&r(cPOxL z`lHlxVQE|zhP7H(fo$}VnE2dqr8nSMBWyllrM zu~teiBEFIpxpYaEi*CpQX4$Kx`iH1N?-_wZ1G#z~z_Bli@|BsC+hlGvcig-d`U<#Y z?x||w5vm=!pM%bR`ZioljNAn4A+;F8)qv!*5d)o1J<|ib3m5bKwb3n2ba*-l-jDFZ z9!QX!WgUbP~%doM3fzYNL|Qpw$?mjS_>R5S!sd_D%_Oq)UysgW52-H-l%59qQAxBOmY7qi?!ma6s(?(x7()I2m7_>*LK?|22#$3g*4 zS}0JN>Qk%2e?U=>PmH2A`LIT7hBvkV{aq~rS|C4rIKjNbC}*20G$F4ViD;)#_=zDh z%cYyV4OrVpmdVyPxbrO>?)=F|XS3`a0K+^V;t{^TtX=2w*D)rg}? z7RGGRSA0hTbuiNjp61H$qAYQnFFkT+13M?mw&z;Bmm-=wVf6|k=D!c7?8)-*JaCj_ z&OqGDoA?wq(oo?s7{Nw5&g_T+d4P6wl}Ps$#p^&iEIlg*Q3bk{NM^&7BwAt{xG zoh^^y7ZbDL&vDs({C;Ro@k+;?HSNVzuf^Vx!^>~?sSp(VJDR3Y*Y)4RZuQQY`=HUL zXvX1&BGam8ArC4ZG;b6(8bMVYz)n^UjiSlzzj{wH%UO%shwPUA9WHX3L@f^Kf6ODw^1-|Unr5IucJf8P)Y7%Z_vys9 zcCfjbxutMap|uOWonq&U%Xx3MKLwVF=Lp#mR_55+-6|d}7co%_aQU?flrGTY0vFCT0d< zw)mHnp+66?ZOD_oXXK`;L`+C`AvvNsI-<7M>N+iU?k?V=TN+dtAo_O%t4K;A?W$S z(BdtI$Xf5z9X}UvCijX*Rl6)}l6gP6UM1CgCvw|tLq5vbZOnj+L%pqn>dK(ugS}BQ z#7KC>1dqg4Uy)q%MTtp*Is(^s*9M`R@X*H-Ga^)hEPAl(7#t-t0W;66&N`QIQ+?-p zx%=gpb(Fdu*!THX)IwRpzPUeNVhu@SG>-`=w>Zttwayb5rC4j_chM}v)=-70$|^q| zw}e?Ec@!ifrIp{eAh3uIatpbY+)j4NoT{3ZLslW!u3PNUb{1O*y6B$eZs20b@U4gy zeZrZ?^LRbw1k7B(w(Vn1Tzp#ZoWScuA zGFH9)EbIQAGk*_{Jj^+qX;E!)SH~P5CLj&Y?z`bS>DX7a;jMCP{I#xCCEwWM!cz}9 z9sKeeo|z%i1c`cx%`Q>2(n+>Hey-}?X#ZZHx0V036Q4^!_;{r#Q^eV=!xfu5P^pxl z#8~UCz?h{(xO>&otYi+N=IUy+g-ow;Hh;gLms;%5&@qJsWCb1D!r-X;-y zV!`T9##BQFXXrn(O41VK9GoL}=Ii3Gtoa8j6#oQGF)CN&PWj?}r+sILw@mE!k%qRFYvp^`Y&6UM^ONo44XTvo> zbXT-as7^ZYLZDO^e@EUi+mXGtI-WJeY=)w{V!ngs{5A5*fdpOYEFkDkJQM%f%`RTP zerHwAxwJ0_k*u+MLEqwC;g(dTqud3l2xE574CSxMPETCyRsubJfkQz<;`e;jd{@f; zIUTqkmj4^xybWri&ybB$w6Ilypf* z&W;i0=<^hW_ni=PXTosCLs#`4Nl6zAhVX~8jiI`&wl;|XVSb+E>=`B!a^fw7Oa2V= zpSjAJ8zf{WpOcc1ym25o`@eg12qW<|Lb!zilod0%$@u9I z+-KbZ&pf1G<&fWdF7xh^n$~@3_xN8LKcqHj_!@YO;5;U9XLMg97X8c)TWcz|39MO4o#@Gc{)Qq zLy-JFe#>8Uy{Xo6-HzGHXY}ccX_ZI|BD(eXLuj(pgRP&3Rfn!Paa<)%4p;Ac-NERN zL-^iRB6$Vd(uPLnHgX_Eem!-@?|&WHsKY*Io}N>aK47eqh3b6etsO>gm$mSMITP`jE9QYnwx!{EI_ z2X+qevY(P6RFN&;i5)e^G3WzVseF>Z_?ew9jZINv=lE%b7D^; zx=;|qq1B3^r~eA%X}4$7u*K2AdS7~P&`xyL!UVX}Qc~#cU-t1M*r#YXhwB?XYCV=! z9C)P#p-L$dxg8#;H2s)HjzPs4aHr2f=$vC<8a@#()X3W?(U?0FJDxb6JZ9{wP#=A= z*1%2b`XpFPNhQL2)6cOo!h#m_v?}Htr}vSdWvh5hVq6QlypIt#r`poi&xP!c90~Mo z?oy_y4WcQ-e(=oiXX=)ptg;aFHmef!6FKy$hiuFLmELSQsE;reNojRVHU0*VJwnQk zL%*OL?zwq4@6&SWvoe>hsMBa79SeV>%h$*^#dmZteqv~1eqi^y=cLI6VxCldOd6MK zx3-VjFQ7GVYS-&qX$y_a2sQM0(mdH+0*a88%9%R&8d~WZIdWK|CaEIzuBgy9twWN7 zsoFx>IUPS!AhW3amp?k5aQKx}i%p(c?WGbLua(edED7~l{1}=bQsN4CbL(@fjL!KCzb8wNTJPqlkA7^G*a-X4^|+OB+JrqIIFHTSay~Bs4o3 z)L~e2Sf%%4?UyIr6B$xr_MKgO8_yX6>G;WvkP^94R}WnW0vF5BOt}#uI5> zYKpIE${>Zz<9K%}&%B~nCq^Pj_+8*9ob8I~og<5ZmsKA%S?WYgq1zWarS+$_CPK9{ zG$dIyRL8UpHX~pAi5xjXOEo6B{-l~7so+JU^%O>Au|E>BHnMT#xsN7%)gdq5tsT?} zf|blRpLn;~RkGnJwx9iJ{75@g@Y$ia)1b(*+w3!l)ti{EZ04KM z@mbK8Oe|EvKG!Qx

XH!W9W@acea{lWQ*c%MCw2NY!mG4WvPc)U!s<7Z_*GB4is7pH<_}Uci3jfvbn|B$YF)->D5Wz9 zY!;k&HFOQft_H?V=sTPbo0&UT(xfjtU-9GTHB}X7+}G`4Y1TT2$J>FcJ3^H|#1c=| zCkEr^8TxOzubPj8J$vEs*iu(SC3OtA&g9wG2l<^fA~nE-lF7u&X>1-k5G<^rpi=(<(t?)tmjAUDI@wq>GRgSl@ToIkSzEiYPwd^Pq$lUK zpw`Sr34!T&MSpFUx3sP`t~Jqf%5aeI*B(1U5_<1Io@sZiYUPv4ZPNXkW{+hMW;J(I zs*@XQrYEn#<|AM2Q*Uk3A5s)@!mvclbtHVA#bhQ#Su-Q+D_wjZq$w88J!^P)Z_UXU z&8x$eUifLdhTuMXrrwH^049M>EueWe-f|nCfIbUNukeLBer}0ul9||MS z$oB#Frnx!3fwIx@^%eN09X#P5O~k6C7R~!XZ~?@~mZ~EyJLt$obwP8c3jFX-k>NZ1 z>2cNosSsiRdm4yzQ|Zwme7eaM?AV6GDPU98I1p(bPbepck)yf~=cFKI5$4~r1&(q+=M%#_}XYQPn$^KjU=}Cmeb%cX7lp1(VeXlQTCYe-k zZc>z94d*)zy);r$x2Ct7kXba8bapv`bs}YL0B`qFLsCu6wzEc}@+868nsAs(JPnN4 zi3DE1Sp~C5d$O?|+EAF&)BFw6)a&sDU0yFN_&a@_bDo(nf4@=ofb2 zKW_v0`n2t2?Iea?+7K814Mlsu;1Ta*^=qZ=h{~rw9>~+Q@y_v>mkM2%IC?vzNHlex z35T~?5EwVFK;ar@h`VZKvtd{>FN8V2evtbB73FGfF4-V?QZ${o(Vi!GdwFX>?#HpK z>TGS;HLR?Ez-R99_$2EQjpZjNIqy9|W*~}3v?15Cy%GE2e3E`%UB;&wD|Eri4IG4O zEgZxUP~_)T%Kh&{a`e0)?e#!q>v@N$_H_=(Y+T72zVbQX><>-F=LO$h~Fh!zQy>Oy;J@?v*pGqs_3vc+dA%Vl8=lcct zQVLi#$Bw+}leGT{|B@lw^Zc=O%wLGP&#~Vf;6OQ918IY;w*XURWyj9mU`|MKPSJu| ztvV`~DHg5z1!#O?g~n3x9i;qacuY3>r@riM&w+<6U$|2&{+ zhuLqs<)QB%S2@QQw`tx6eV|?p&Cy{SEw5O{j>+e9`rh#MTV(vz9&a6ZS2X}*R~FX` z=^D4frpCl-9~rvJ*lc%4#zjl$%m-!2zOGObvD_;~TJ5C(p{POYho?%E`K~jqE z?~r27C78!Y#NpKUdm2eA zL*Fl^g*oe+u?!B;O+QzSbU_t&g-kp^lEHP1 zkKOeM{tQ0!>~>=V-bC+4*23nNorSp3*}n*kL5+da?3PXRaIf&Qx3?m~gLZ#NRG zGrAi3#bn5!N}}$xHdc(g)LepE*4*`J?e~HWv$$?Pz`o)gw`uwj8v&K297FhG)-p@q zJ(X5^fqH0~?lC)-RqQ0Gn(Pf=tiL28JoOPMza~E{WrRH`p^QNaf;_C_qBN5XbwOhZ z-`P*iSMfq|8@31g2B<>unCDfmr7w7Dgzo9ok9bJv3>8z;t`4=tTl-fjL6xA4d7Ko9 z-mKFu)A-RP;Qn1l(~VowIIFfL->T)$w50lwvPi>9g}1-!EWZW~40j z=Fit!bn0CX4OWc|HsI!ZtyuOsc3a7&2QIqa?*wE{hUXrvztLi|z3uxA+Zkdr_rV0n zDvkeDQoL#wF8Qu={g=V?BGMTxSzDq@Smb`|XCeHMms#=jXokqj{=M2-m+Bqy@cv54 zBM$NYXJv;+U*-H8DkWqLZrE5cA-DI3| zO%RIto2}2pnmWl5z;iPcxFZifQXQ6bJnC|(E^~T3&W?J5`Br$DU0i2KMp)ku(tViu zaPxChc=vuGRF{Qb=KXw{R#&GQlINAaP_*{t?&|}3dO~@W&5Dzv9KDGzRQYM%6~z`g zjxzdS0cJJcmKBYjeBgs?yi^IiWIKmKCiDqmWyjSsTdmtw{_tY!OQUCj+{OjKicgl0 zmkkhHS3wZGSp^S}YAZe4fDKesWcNfchyb+su^hX-$!BY0bZ=f?Dag=70rqS=ljgZN}Fn%YLt)I$tnZ?8JF)x99D6v=qI_L!NRw7h5*8ejjlK>_w-|) zhFZiV9DuU;K<3mnIy({BM@rhQ2|8SObV-0r^wv$H?xgBO-Ivy_AHNMrj0_gn6q(k8 zgP~E?Zxci$f^TG;A2^UTvF*?7Yut<#4MW6&?3*&w;Eyt_El>qRBG%)4WBQFX_Lq*o zHEH9m(~7`Pinbe84H6lFE8`Ly!$BMH*ZlOCSPg-ikU+Bn4cbexa+N}*c`w=&DLafQ z)he=|>S~-dmO#h)eOP66xizuZ_>;%K>See#n}9Z{?Pis;@go)Rg!DhX`tZx3U$kg0 zG?(ZD2<5>3Yv%){@f;un=nK1V^*%5n;m&o2_UYOgF1?7-n!}^29791*`%dY!wDyOo z558~YYqJAS%w5hzb``|`KK|+%bioy%ezv_mn$c$&8g0h5tw?B3!RWH;Qf9F=V62BPR&bEd$gr$nr+s873~>z@J)&TUBnQue zt#)ZCTm+s?)&7jCCpy>6Lx*p{JD!*3*PDSTqG!dpDQr{i{oRd4y0vzEm(rLI&5X~f z=Ik@)cYUm|j^*((tOZPbp8^OA$hmq7PCoY>jbkb&lViS6sBfww(TPyb2BXNcu7d82 zt_e7~|G}qeBryGS>+dXH9EW z4srfg^%g5AtV11|GGAAot0u~7bWL#Bo$ETiKb4Q(CzsT{ZpwcT7wB^9l zWUcjaI#-{?;Y8|uweIq^;9p{Ov@^{AXJ)xDiQI66PNpcIvXhWdinV(Bz}gi_#_3@_ zq~5s42lRa|UMk;|QAD0r#O^CSRj0{;A-vxo*Y0aO5gdysy#}i3Z#p7tL90Z@6`C12 zro*xcZjGamZq4c_`<&Fbz(C9(7NQS;nIJP`c1I^hmbjtE#mc{t{gi-gOZ)?j&MM-L zHV2b<@HYgCXH>Id5Sd?$-}!@Q=nw(Vu<*B46Es;S5pj`Bd|1fCd@sL5%d+=6OtUP} zw_8bHZ{r9Q*;CE<&fY2V)o5LXP*E-$bjrZV0nM$s^wAq!eOC#Sl2umul(aYRf)YZA zpY|%K(#64U{V$~+6O=N++VGgHF-|(CIS)wr?s;ew_m|U!lkea!J03Yo3@+oTNJ#Mb zDpcY)3CZ=>#6HvN1)S2tNE*Im( znO0+tZa$*uWF(`Bdw2t&L32}PK!wqI{9a1LCE&_PZ-Lj9@!pU?Ym_9QM4u3NqbSAV zn?DnwGDDTl)4f|eUlRc>Y=f#2nb95nPyDTWW#lx=40YRyj%Be8?(g4A`YrWVlG3{spjKw&g5(0%fm@=27a3o#S0#n#3F}_{Wx1tb`=vTD?#tqd?pDP710> zM%h^h+wr%z$M!VC5H&8(7S^Rt;`P=6W1iPF;sbE8myEb$gM6k%_uEvq6QI*_C>fL` zLGKQ`G~H!^)uVGXzx>ZQWYZCOsfKs#3cPJ!FYc0>VWsa^0hFs=i{e6yP1fuBv6zHY zd2s*sodcF$gqum=A9XvO3DR<^26T?5z3WPcy!sB9`PL`I zFd{j|M0Jt>OL-hU@q{!>x-~gZu{ZS$t!7c`T_RL)Us?~o|xB_dDmyf z6f)E*iE#3YBo>YjH1579VwRkU*{-9n<7`4vY<=aOSn=n1dnBAt{RBW#gKv_OiN#4y zSB+J*e7Y<8V7YCiFAOok9x-7$@q%h9FQW*oP_wB{HYxxW{19$8v-+;+61?HFHNd%z!iPjA(6?39x z{~?B|SwIqoZ+Q?{a$G!HTk^fOaBFCi|B5E)kwVf~s)x9=U6xq>XBvkF^OPl3U7~cw z&J!=I5WK8k=?fQ7zTe;SdAfe5Ix@}*#Z{8Ir$H9#cbNljqnx6pS~d9#XLZ0saCJ|J zf>F_h%Ue972!aKMuEFPMK{X1C2YYXYeEp;lT&zcshz2+tWG<(Q9@JlcfRzfedfTMS zJdhTLu1QJDdidu@vavEpNKmiQNc&{1=nq&HCC5DA`8UEZLOA!bei+o&QB?-D-2V)$ zs&2zUafOBq>=lrgGPL?Sb$Ich3ZFL-pTzEpOAd5zII=zt*o)<_z*I&H4ZwHgPB&wg zgsCCJ6Sr(c_F|~6D|UcMVlEeI!b=WF#lGCX_;I#vTI~}H=NC>Iej2FNQ=8VXH%~r{ ztzYi-U1PSYb27JxYuNJNN8@(moT4LqR$!z~l+$uOA^+r{|41n2rj}!_HZsoZCQ7Hgf=3_B!q>~&%S(Lxn*e!sus6%3;PTGBZo3uZhJ5!pHd=qq zA$A3PgJlD{!1nl%E0<2K9k}187)M6 zNP^AqW~Z0A8?V&O;E|Dy*?4Q;Dy8;+t_nptI$^WM^u5!>3a=GtPt(b1HtN@?izuwg zm@7yR2fCwZIlYhHtEC3LTS6|9ftV~)wf~jXqe0qRwcYn)%EfQUBjrrM(J5^iMm;~=6i zwZU^_U3_F67=#xmY%d+Wy)-V@Qjzg**Wmr@vwhk$iQ1#fUXM&x$?_bcZEJ0fF1^;! zljPx{GlRu~ay1a@h_GNfqN`$;!l8cIW}j1{R~ORhvZx~I_uJ%_xrXXL?lxEoqx1D~ z9rv-J$%40A*2a-ms+jys)l!gar(0Pq7nO#kOOxG=I~vkyn1Q#SC$E0zHL)pgiv@~n zARe73ME->UqBKjS&GPF02yXX#Dv++U2dx6{=7>$d+Ys_j*6=ar=&U)-{Ej-hT4v(qP9)L&B8Ya)D}C z-}TsPaVYe_EU#3yM|B=AStrlBBe%0x%lK=EY8k1h74a`>pMSQb51lG3O?SWO(2zCH z#V+<->elmb^n>8*ow<{|wWvDhPG%w$I?M_C&O!bWMNDb2&da7uWrU`9+l0YXkn_i^ z*<5N=&t_-YY7y5$Bc0aohV{wg&|YZ%9_f^`!iqIo7)X}&8S&BGe=TqHD9L(ADSV`e z*qQh&dp6S!6U&H&=B-_{Y&E(Ha)PD1c)IP-rFv@j$1FB1Hf=rKdwA-+PJTjM1O5qd zT~383$p-j0?>9P5-&Jz)m&g+y6-W_Z=#v;G`r{S@VMpJ^*9%M?_Y*UJKDWwMAtico zxxwe6riO-&3ih!<2Wr&r4_%zEc%|rRzMtYyI*eG(UG?Sb3wYBzvAYyo+MZZsZ27_I zWFxu5n8Q2csA$C3W2ZQ`Kbt&+6A@T&6bmYh3SE?`LM8akKqSDPxv2;7oc3OLN#~$kE6iF3`=tUny0(CNIGN;m`$4=1b1uMC z3|fu53oRl~B>*Wnh0qRtvDdPm4tZQ}-P~+NGu}vDwy9n`X+UgT!`gGi8V|qr0Eb$K zMA!l4u*SdIQ1=NzFu!MoBs>kj;?3zuu__RfncX_vx-aCz`;%mKD^k%@1ZNmAF{l7S z@SB&fz_N_*jP8DJC(sNOF**l`$l*H9nc2MhhgHsy-r*hJU5yxd`1V_FWJTLUP>oQH zb`5AyIkvOyM8E#?O2ep((3$J8AV5;~GPD8dwU3^dR@jar^ltOkc-VvFD-J&d7_W+H znQ{KHh~oF>ia4=8Ovz{>xbUEHkV#Vgo21+~P)f-x0${qWDD~@vu?x;-I-$>5?R5ik zm+x6xd&yipZ0gK#ZdXtN;TJ;7Sod=DD#-fQTe_p|{b zabrVz1Xj$(QC#(fZPhJEXc@ReCx1OfzFTJ^YWnEB64sXw)guJWS=Qj};{o~$M;q?N z&M)(AJ#=Q)(aL>$JiM*lUV0@E8|5?Gv0&ilqxNs2Bt*uCvzZ5d-OcMD(>rSpR8OX# zNNRkOl>N3PtA_?@gXH7G8)=EX!eBvaKv#f;hRh@(-{)eD*i2~4R{JsVOO2B(7pe}T z!WIwRn-_;L<986CiAqhB{2wO-`<`#!-O>sD!rZTBv2r1p@8pNg{ z%UG zY>^FGFzf{HuvMY!r(~iL#~yI_3FE9+_A^x7hi_Y5KkWTE>}qlV2+u0*Q2iw5=hwWx zdZ)`>D@tYMa3c!sudeAJVDs-sG z8Dw|7CQIdOW-Exhffz^}$Y}{nIa#10PEmGqZb4~UT(WsF=Xw{<rSF87-Q!`oV zlV8L_r_Y9cin_O+`)H&hu!ZpZw0?qxoH3} zh)|LCUGbAKou4I;bWimcC7Abd)S)R3K=pXDE>}WODoupgU=2o4t10}bQ}CYh1Zu5l zG%m4x)Qb4X4sp>?O@IiSzL*)LxtTGN+~B_BDj(R4i@L)#DYV0JrveYOGHJ2=UW;ci zU8pM&qEA*i?Ey6-BPJp5My>l+}xw7S20V zQr+0J+qByf+pO3W+p4hB+pL@S)!7QHJ_=AEnzy1s(KD!+uJ+j9Lu(DHEs{_YgOEA0 z_k4^5?DFYZuDlAZY&7v#ND-NK!?NdO4Nb*g^}#dt;#UJwUX4QVK3FAOYBnG-;NwnG z6#eM~8onaM46hl)#~I)_(UplCo)0FzwQV~cchW!%a{CR1b-(}sAYDh#uWr5-S4lV} z2s@lQOflAkRi!=E+(Mqe(0Rf#71fH!u+K)Kp6x9ol0NHP69orVXio}9o!HfVBc#)= z7Y3P?lpDC2HlP~l5M-Vb^foGvaElJC8_gAlD7FF&|*^b*~;O_@2RS~US%=*gR zs0{lJI-)Iv3&7PZ+XTj{2P z+idr>=TFgi50Ab72V}_jLY-qu4^`gewTEvMa>L}%{+^*W=soN%thQ+T*LxN=`6 z2V+o6F7Y4?N6!z^vYifv(2{VSuqjtTA-?Glm(h1?+mj6bY(9c5-YYlF7eMZ^J8`s_ zY1n{4&T>Pf3v0C8USvG2*L?-!B$wxIn%e;obx+e@utgEMdK6mh^yJ2$$oy~e=eWs# vlhY791@mbg^q+nHv(NtvT_}!UI#jTl