浏览代码

Merge branch 'dev_1.17.5' into shiyun/skia

/siyaoH-1.17-PlatformMessage
guanghuispark 4 年前
当前提交
41f3bad1
共有 35 个文件被更改,包括 1183 次插入178 次删除
  1. 1
      com.unity.uiwidgets/Runtime/animation/animation_controller.cs
  2. 12
      com.unity.uiwidgets/Runtime/animation/listener_helpers.mixin.gen.cs
  3. 4
      com.unity.uiwidgets/Runtime/animation/listener_helpers.mixin.njk
  4. 3
      com.unity.uiwidgets/Runtime/gestures/multidrag.cs
  5. 8
      com.unity.uiwidgets/Runtime/material/banner.cs
  6. 6
      com.unity.uiwidgets/Runtime/material/bottom_app_bar.cs
  7. 8
      com.unity.uiwidgets/Runtime/material/bottom_sheet.cs
  8. 7
      com.unity.uiwidgets/Runtime/material/button.cs
  9. 18
      com.unity.uiwidgets/Runtime/material/button_bar.cs
  10. 21
      com.unity.uiwidgets/Runtime/material/divider.cs
  11. 11
      com.unity.uiwidgets/Runtime/material/ink_well.cs
  12. 3
      com.unity.uiwidgets/Runtime/material/material_button.cs
  13. 1
      com.unity.uiwidgets/Runtime/material/scaffold.cs
  14. 139
      com.unity.uiwidgets/Runtime/material/slider_theme.cs
  15. 61
      com.unity.uiwidgets/Runtime/material/theme_data.cs
  16. 20
      com.unity.uiwidgets/Runtime/material/tooltip.cs
  17. 2
      com.unity.uiwidgets/Runtime/painting/border_radius.cs
  18. 25
      com.unity.uiwidgets/Runtime/rendering/layer.cs
  19. 6
      com.unity.uiwidgets/Runtime/rendering/viewport.cs
  20. 1
      com.unity.uiwidgets/Runtime/services/text_input.cs
  21. 14
      com.unity.uiwidgets/Runtime/widgets/automatic_keep_alive.cs
  22. 25
      com.unity.uiwidgets/Runtime/widgets/editable_text.cs
  23. 12
      com.unity.uiwidgets/Runtime/widgets/framework.cs
  24. 6
      com.unity.uiwidgets/Runtime/widgets/page_view.cs
  25. 465
      Samples/UIWidgetsSamples_2019_4/Assets/StreamingAssets/MaterialIcons-Regular.ttf
  26. 7
      Samples/UIWidgetsSamples_2019_4/Assets/StreamingAssets/MaterialIcons-Regular.ttf.meta
  27. 47
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/BottomAppBarSample.cs
  28. 11
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/BottomAppBarSample.cs.meta
  29. 107
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/DividerAndButton.cs
  30. 11
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/DividerAndButton.cs.meta
  31. 204
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialAppBarSample.cs
  32. 11
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialAppBarSample.cs.meta
  33. 73
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialButtonSample.cs
  34. 11
      Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialButtonSample.cs.meta

1
com.unity.uiwidgets/Runtime/animation/animation_controller.cs


return true;
});
_ticker.Dispose();
_ticker = null;
base.dispose();
}

12
com.unity.uiwidgets/Runtime/animation/listener_helpers.mixin.gen.cs


public abstract class AnimationLazyListenerMixinAnimation<T> : Animation<T> {
int _listenerCounter;
int _listenerCounter = 0;
protected void didRegisterListener() {
D.assert(_listenerCounter >= 0);

D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalListenersMixinAnimationLazyListenerMixinAnimation<T>>(
"The " + GetType() + " notifying listeners was:",
"The " + GetType() + " notifying listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalListenersMixinAnimationEagerListenerMixinAnimation<T>>(
"The " + GetType() + " notifying listeners was:",
"The " + GetType() + " notifying listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalStatusListenersMixinAnimationLocalListenersMixinAnimationLazyListenerMixinAnimation<T>>(
"The " + GetType() + " notifying status listeners was:",
"The " + GetType() + " notifying status listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalStatusListenersMixinAnimationLazyListenerMixinAnimation<T>>(
"The " + GetType() + " notifying status listeners was:",
"The " + GetType() + " notifying status listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalStatusListenersMixinAnimationLocalListenersMixinAnimationEagerListenerMixinAnimation<T>>(
"The " + GetType() + " notifying status listeners was:",
"The " + GetType() + " notifying status listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

4
com.unity.uiwidgets/Runtime/animation/listener_helpers.mixin.njk


D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalListenersMixin{{with | safe}}>(
"The " + this.GetType() + " notifying listeners was:",
"The " + this.GetType() + " notifying listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

D.assert(() => {
IEnumerable<DiagnosticsNode> infoCollector() {
yield return new DiagnosticsProperty<AnimationLocalStatusListenersMixin{{with | safe}}>(
"The " + this.GetType() + " notifying status listeners was:",
"The " + this.GetType() + " notifying status listeners was",
this,
style: DiagnosticsTreeStyle.errorProperty
);

3
com.unity.uiwidgets/Runtime/gestures/multidrag.cs


using System;
using System.Collections.Generic;
using System.Linq;
using Unity.UIWidgets.async2;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.ui;

public override void dispose() {
foreach (var key in _pointers.Keys) {
foreach (var key in _pointers.Keys.ToList()) {
_removeState(key);
}
D.assert(_pointers.isEmpty);

8
com.unity.uiwidgets/Runtime/material/banner.cs


MaterialBannerThemeData bannerTheme = MaterialBannerTheme.of(context);
bool isSingleRow = actions.Count == 1 && !forceActionsBelow;
EdgeInsetsGeometry padding = this.padding ?? bannerTheme.padding ?? (isSingleRow
EdgeInsetsGeometry padding = this.padding ?? bannerTheme?.padding ?? (isSingleRow
?? bannerTheme.padding
?? bannerTheme?.padding
?? EdgeInsetsDirectional.only(end: 16.0f);
Widget buttonBar = new ButtonBar(

Color backgroundColor = this.backgroundColor
?? bannerTheme.backgroundColor
?? bannerTheme?.backgroundColor
?? bannerTheme.contentTextStyle
?? bannerTheme?.contentTextStyle
?? theme.textTheme.bodyText2;
var rowList = new List<Widget>();

6
com.unity.uiwidgets/Runtime/material/bottom_app_bar.cs


public override Widget build(BuildContext context) {
BottomAppBarTheme babTheme = BottomAppBarTheme.of(context);
NotchedShape notchedShape = widget.shape ?? babTheme.shape;
NotchedShape notchedShape = widget.shape ?? babTheme?.shape;
CustomClipper<Path> clipper = notchedShape != null
? (CustomClipper<Path>) new _BottomAppBarClipper(
geometry: geometryListenable,

: new ShapeBorderClipper(shape: new RoundedRectangleBorder());
float elevation = widget.elevation ?? babTheme.elevation ?? _defaultElevation;
Color color = widget.color ?? babTheme.color ?? Theme.of(context).bottomAppBarColor;
float elevation = widget.elevation ?? babTheme?.elevation ?? _defaultElevation;
Color color = widget.color ?? babTheme?.color ?? Theme.of(context).bottomAppBarColor;
Color effectiveColor = ElevationOverlay.applyOverlay(context, color, elevation);
return new PhysicalShape(
clipper: clipper,

8
com.unity.uiwidgets/Runtime/material/bottom_sheet.cs


public override Widget build(BuildContext context) {
BottomSheetThemeData bottomSheetTheme = Theme.of(context).bottomSheetTheme;
Color color = widget.backgroundColor ?? bottomSheetTheme.backgroundColor;
float elevation = widget.elevation ?? bottomSheetTheme.elevation ?? 0;
ShapeBorder shape = widget.shape ?? bottomSheetTheme.shape;
Clip clipBehavior = widget.clipBehavior ?? bottomSheetTheme.clipBehavior ?? Clip.none;
Color color = widget.backgroundColor ?? bottomSheetTheme?.backgroundColor;
float elevation = widget.elevation ?? bottomSheetTheme?.elevation ?? 0;
ShapeBorder shape = widget.shape ?? bottomSheetTheme?.shape;
Clip clipBehavior = widget.clipBehavior ?? bottomSheetTheme?.clipBehavior ?? Clip.none;
Widget bottomSheet = new Material(
key: _childKey,

7
com.unity.uiwidgets/Runtime/material/button.cs


position: center,
hitTest: (BoxHitTestResult boxHitTest, Offset offsetPosition) => {
D.assert(offsetPosition == center);
return child.hitTest(boxHitTest, position: center);
//WARNING: inconsistent with flutter (zxw): I believe that there is a bug here in flutter
//in flutter, the following line is "return child.hitTest(boxHitTest, position: center); ". This is nonsense since it will always return true regardless of the value of the input parameter: position.
//we have tested a bit in flutter and found that, since an inputPadding has a Semantics as it parent which shares the same size, the Semantics's hitTest can hide this bug in flutter
//Therefore this bug only occurs in UIWidgets
//We are not very clear whether this is the best fix though. Please feel free to optimize it
return child.hitTest(boxHitTest, position: position);
}
);
}

18
com.unity.uiwidgets/Runtime/material/button_bar.cs


ButtonBarThemeData barTheme = ButtonBarTheme.of(context);
ButtonThemeData buttonTheme = parentButtonTheme.copyWith(
textTheme: buttonTextTheme ?? barTheme.buttonTextTheme ?? ButtonTextTheme.primary,
minWidth: buttonMinWidth ?? barTheme.buttonMinWidth ?? 64.0f,
height: buttonHeight ?? barTheme.buttonHeight ?? 36.0f,
padding: buttonPadding ?? barTheme.buttonPadding ?? EdgeInsets.symmetric(horizontal: 8.0f),
alignedDropdown: buttonAlignedDropdown ?? barTheme.buttonAlignedDropdown ?? false,
layoutBehavior: layoutBehavior ?? barTheme.layoutBehavior ?? ButtonBarLayoutBehavior.padded
textTheme: buttonTextTheme ?? barTheme?.buttonTextTheme ?? ButtonTextTheme.primary,
minWidth: buttonMinWidth ?? barTheme?.buttonMinWidth ?? 64.0f,
height: buttonHeight ?? barTheme?.buttonHeight ?? 36.0f,
padding: buttonPadding ?? barTheme?.buttonPadding ?? EdgeInsets.symmetric(horizontal: 8.0f),
alignedDropdown: buttonAlignedDropdown ?? barTheme?.buttonAlignedDropdown ?? false,
layoutBehavior: layoutBehavior ?? barTheme?.layoutBehavior ?? ButtonBarLayoutBehavior.padded
);
float paddingUnit = buttonTheme.padding.horizontal / 4.0f;

mainAxisAlignment: alignment ?? barTheme.alignment ?? MainAxisAlignment.end,
mainAxisSize: mainAxisSize ?? barTheme.mainAxisSize ?? MainAxisSize.max,
overflowDirection: overflowDirection ?? barTheme.overflowDirection ?? VerticalDirection.down,
mainAxisAlignment: alignment ?? barTheme?.alignment ?? MainAxisAlignment.end,
mainAxisSize: mainAxisSize ?? barTheme?.mainAxisSize ?? MainAxisSize.max,
overflowDirection: overflowDirection ?? barTheme?.overflowDirection ?? VerticalDirection.down,
children: children.Select((Widget childWidget) => {
return (Widget) new Padding(
padding: EdgeInsets.symmetric(horizontal: paddingUnit),

21
com.unity.uiwidgets/Runtime/material/divider.cs


float? indent = null,
float? endIndent = null,
Color color = null) : base(key: key) {
D.assert(height >= 0.0);
D.assert(height == null || height >= 0.0);
D.assert(thickness == null || thickness >= 0.0);
D.assert(indent == null || indent >= 0.0);
D.assert(endIndent == null || endIndent >= 0.0);
this.height = height;
this.thickness = thickness;
this.indent = indent;

public static BorderSide createBorderSide(BuildContext context, Color color = null, float? width = null) {
Color effectiveColor = color
?? (context != null
? (DividerTheme.of(context).color ?? Theme.of(context).dividerColor)
? (DividerTheme.of(context)?.color ?? Theme.of(context).dividerColor)
?? (context != null ? DividerTheme.of(context).thickness : null)
?? (context != null ? DividerTheme.of(context)?.thickness : null)
?? 0.0f;
// Prevent assertion since it is possible that context is null and no color

public override Widget build(BuildContext context) {
DividerThemeData dividerTheme = DividerTheme.of(context);
float height = this.height ?? dividerTheme.space ?? 16.0f;
float thickness = this.thickness ?? dividerTheme.thickness ?? 0.0f;
float indent = this.indent ?? dividerTheme.indent ?? 0.0f;
float endIndent = this.endIndent ?? dividerTheme.endIndent ?? 0.0f;
float height = this.height ?? dividerTheme?.space ?? 16.0f;
float thickness = this.thickness ?? dividerTheme?.thickness ?? 0.0f;
float indent = this.indent ?? dividerTheme?.indent ?? 0.0f;
float endIndent = this.endIndent ?? dividerTheme?.endIndent ?? 0.0f;
return new SizedBox(
height: height,

//TODO: update to EdgeInsetsGeometry
margin: (EdgeInsets) (EdgeInsetsGeometry) EdgeInsetsDirectional.only(start: indent,
end: endIndent),
/*margin: EdgeInsetsDirectional.only(start: indent,
end: endIndent),*/
decoration: new BoxDecoration(
border: new Border(
bottom: createBorderSide(context, color: color, width: thickness))

11
com.unity.uiwidgets/Runtime/material/ink_well.cs


}
public void updateHighlight(_HighlightType type, bool value) {
InkHighlight highlight = _highlights[type];
InkHighlight highlight = _highlights.getOrDefault(type);
D.assert(_highlights[type] != null);
D.assert(_highlights.getOrDefault(type) != null);
_highlights[type] = null;
updateKeepAlive();
}

highlight.deactivate();
}
D.assert(value == (_highlights[type] != null && _highlights[type].active));
D.assert(value == (_highlights.getOrDefault(type) != null && _highlights[type].active));
switch (type) {
case _HighlightType.pressed: {
if (widget.onHighlightChanged != null)

radius: widget.radius,
borderRadius: borderRadius,
customBorder: customBorder,
onRemoved: OnRemoved);
onRemoved: OnRemoved,
textDirection: Directionality.of(context));
return splash;
}

}
D.assert(_currentSplash == null);
foreach (_HighlightType highlight in _highlights.Keys) {
foreach (_HighlightType highlight in _highlights.Keys.ToList()) {
_highlights[highlight]?.dispose();
_highlights[highlight] = null;
}

3
com.unity.uiwidgets/Runtime/material/material_button.cs


this.height = height;
this.enableFeedback = enableFeedback;
this.child = child;
this.autofocus = autofocus;
}
public readonly VoidCallback onPressed;

return new RawMaterialButton(
onPressed: onPressed,
onLongPress:() => onLongPress(),
onLongPress:() => onLongPress?.Invoke(),
enableFeedback: enableFeedback?? true,
onHighlightChanged: onHighlightChanged,
fillColor: buttonTheme.getFillColor(this),

1
com.unity.uiwidgets/Runtime/material/scaffold.cs


this.fabMoveAnimation = fabMoveAnimation;
this.fabMotionAnimator = fabMotionAnimator;
this.geometryNotifier = geometryNotifier;
this.currentController = currentController;
}
public readonly Widget child;

139
com.unity.uiwidgets/Runtime/material/slider_theme.cs


}
public abstract Size getPreferredSize(
bool? isEnabled,
bool? isDiscrete,
bool isEnabled,
bool isDiscrete,
TextPainter textPainter = null);
public abstract void paint(

Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
TextPainter labelPainter = null,
RenderBox parentBox = null,
SliderThemeData sliderTheme = null,

public abstract Size getPreferredSize(
SliderThemeData sliderTheme = null,
bool? isEnabled = null);
bool isEnabled = false);
public abstract void paint(
PaintingContext context,

Animation<float> enableAnimation = null,
Offset thumbCenter = null,
bool? isEnabled = null,
bool isEnabled = false,
TextDirection? textDirection = null);
public static readonly SliderTickMarkShape noTickMark = new _EmptySliderTickMarkShape();

RenderBox parentBox = null,
Offset offset = null,
SliderThemeData sliderTheme = null,
bool? isEnabled = null,
bool? isDiscrete = null);
bool isEnabled = false,
bool isDiscrete = false);
public abstract void paint(
PaintingContext context,

Animation<float> enableAnimation = null,
Offset thumbCenter = null,
bool? isEnabled = null,
bool? isDiscrete = null,
bool isEnabled = false,
bool isDiscrete = false,
TextDirection? textDirection = null
);
}

}
public abstract Size getPreferredSize(bool? isEnabled, bool? isDiscrete);
public abstract Size getPreferredSize(bool isEnabled, bool isDiscrete);
public abstract void paint(
PaintingContext context,

bool? isDiscrete = null,
bool? isEnabled = null,
bool isDiscrete = false,
bool isEnabled = false,
bool? isOnTop = null,
TextDirection? textDirection = null,
SliderThemeData sliderTheme = null,

Offset center,
Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
bool? isOnTop = null,
TextPainter labelPainter = null,
RenderBox parentBox = null,

public abstract Size getPreferredSize(
SliderThemeData sliderTheme = null,
bool? isEnabled = null
bool isEnabled = false
);
public abstract void paint(

Animation<float> enableAnimation = null,
Offset startThumbCenter = null,
Offset endThumbCenter = null,
bool? isEnabled = null,
bool isEnabled = false,
TextDirection? textDirection = null
);
}

RenderBox parentBox = null,
Offset offset = null,
SliderThemeData sliderTheme = null,
bool? isEnabled = null,
bool? isDiscrete = null
bool isEnabled = false,
bool isDiscrete = false
);
public abstract void paint(

Animation<float> enableAnimation = null,
Offset startThumbCenter = null,
Offset endThumbCenter = null,
bool? isEnabled = null,
bool? isDiscrete = null,
bool isEnabled = false,
bool isDiscrete = false,
TextDirection? textDirection = null
);
}

RenderBox parentBox = null,
Offset offset = null,
SliderThemeData sliderTheme = null,
bool? isEnabled = null,
bool? isDiscrete = null) {
bool isEnabled = false,
bool isDiscrete = false) {
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
D.assert(parentBox != null);
D.assert(sliderTheme != null);
float thumbWidth = sliderTheme.thumbShape.getPreferredSize(isEnabled, isDiscrete).width;

SliderThemeData sliderTheme = null,
Animation<float> enableAnimation = null,
Offset thumbCenter = null,
bool? isEnabled = false,
bool? isDiscrete = false,
bool isEnabled = false,
bool isDiscrete = false,
TextDirection? textDirection = null) {
D.assert(context != null);
D.assert(offset != null);

D.assert(enableAnimation != null);
D.assert(textDirection != null);
D.assert(thumbCenter != null);
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
if (sliderTheme.trackHeight == 0) {
return;

RenderBox parentBox = null,
Offset offset = null,
SliderThemeData sliderTheme = null,
bool? isEnabled = null,
bool? isDiscrete = null) {
bool isEnabled = false,
bool isDiscrete = false) {
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
D.assert(parentBox != null);
D.assert(sliderTheme != null);
float thumbWidth = sliderTheme.thumbShape.getPreferredSize(isEnabled, isDiscrete).width;

SliderThemeData sliderTheme = null,
Animation<float> enableAnimation = null,
Offset thumbCenter = null,
bool? isEnabled = false,
bool? isDiscrete = false,
bool isEnabled = false,
bool isDiscrete = false,
TextDirection? textDirection = null) {
D.assert(context != null);
D.assert(offset != null);

RenderBox parentBox = null,
Offset offset = null,
SliderThemeData sliderTheme = null,
bool? isEnabled = false,
bool? isDiscrete = false
bool isEnabled = false,
bool isDiscrete = false
) {
offset = offset ?? Offset.zero;

D.assert(sliderTheme.overlayShape != null);
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
float overlayWidth = sliderTheme.overlayShape.getPreferredSize(isEnabled, isDiscrete).width;
float trackHeight = sliderTheme.trackHeight.Value;

Animation<float> enableAnimation = null,
Offset startThumbCenter = null,
Offset endThumbCenter = null,
bool? isEnabled = false,
bool? isDiscrete = false,
bool isEnabled = false,
bool isDiscrete = false,
TextDirection? textDirection = null
) {
D.assert(context != null);

D.assert(enableAnimation != null);
D.assert(startThumbCenter != null);
D.assert(endThumbCenter != null);
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
D.assert(textDirection != null);
ColorTween activeTrackColorTween = new ColorTween(begin: sliderTheme.disabledActiveTrackColor,

RenderBox parentBox = null,
Offset offset = null,
SliderThemeData sliderTheme = null,
bool? isEnabled = false,
bool? isDiscrete = false
bool isEnabled = false,
bool isDiscrete = false
) {
offset = offset ?? Offset.zero;

D.assert(sliderTheme.overlayShape != null);
D.assert(sliderTheme.trackHeight != null);
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
float overlayWidth = sliderTheme.overlayShape.getPreferredSize(isEnabled, isDiscrete).width;
float trackHeight = sliderTheme.trackHeight.Value;

Animation<float> enableAnimation = null,
Offset startThumbCenter = null,
Offset endThumbCenter = null,
bool? isEnabled = false,
bool? isDiscrete = false,
bool isEnabled = false,
bool isDiscrete = false,
TextDirection? textDirection = null
) {
D.assert(context != null);

D.assert(enableAnimation != null);
D.assert(startThumbCenter != null);
D.assert(endThumbCenter != null);
D.assert(isEnabled != null);
D.assert(isDiscrete != null);
D.assert(textDirection != null);
ColorTween activeTrackColorTween = new ColorTween(begin: sliderTheme.disabledActiveTrackColor,

public override Size getPreferredSize(
SliderThemeData sliderTheme = null,
bool? isEnabled = null
bool isEnabled = false
D.assert(isEnabled != null);
return Size.fromRadius(tickMarkRadius ?? sliderTheme.trackHeight.Value / 2f);
}

SliderThemeData sliderTheme = null,
Animation<float> enableAnimation = null,
Offset thumbCenter = null,
bool? isEnabled = null,
bool isEnabled = false,
TextDirection? textDirection = null
) {
D.assert(context != null);

D.assert(enableAnimation != null);
D.assert(textDirection != null);
D.assert(thumbCenter != null);
D.assert(isEnabled != null);
Color begin = null;
Color end = null;

public override Size getPreferredSize(
SliderThemeData sliderTheme = null,
bool? isEnabled = false
bool isEnabled = false
D.assert(isEnabled != null);
return Size.fromRadius(tickMarkRadius ?? sliderTheme.trackHeight.Value / 2f);
}

Animation<float> enableAnimation = null,
Offset startThumbCenter = null,
Offset endThumbCenter = null,
bool? isEnabled = false,
bool isEnabled = false,
TextDirection? textDirection = null
) {
D.assert(context != null);

D.assert(enableAnimation != null);
D.assert(startThumbCenter != null);
D.assert(endThumbCenter != null);
D.assert(isEnabled != null);
D.assert(textDirection != null);
bool isBetweenThumbs = false;

class _EmptySliderTickMarkShape : SliderTickMarkShape {
public override Size getPreferredSize(
SliderThemeData sliderTheme = null,
bool? isEnabled = null) {
bool isEnabled = false) {
return Size.zero;
}

SliderThemeData sliderTheme = null,
Animation<float> enableAnimation = null,
Offset thumbCenter = null,
bool? isEnabled = null,
bool isEnabled = false,
TextDirection? textDirection = null) {
}
}

bool? isEnabled = null,
bool? isDiscrete = null,
bool isEnabled = false,
bool isDiscrete = false,
TextPainter textPainter = null) {
return Size.zero;
}

Offset center,
Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
TextPainter labelPainter = null,
RenderBox parentBox = null,
SliderThemeData sliderTheme = null,

}
public override Size getPreferredSize(bool? isEnabled, bool? isDiscrete, TextPainter textPainter = null) {
public override Size getPreferredSize(bool isEnabled, bool isDiscrete, TextPainter textPainter = null) {
return Size.fromRadius(isEnabled == true ? enabledThumbRadius : _disabledThumbRadius);
}

Offset center,
Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
TextPainter labelPainter = null,
RenderBox parentBox = null,
SliderThemeData sliderTheme = null,

get { return disabledThumbRadius ?? enabledThumbRadius; }
}
public override Size getPreferredSize(bool? isEnabled, bool? isDiscrete) {
public override Size getPreferredSize(bool isEnabled, bool isDiscrete) {
return Size.fromRadius(isEnabled == true ? enabledThumbRadius : _disabledThumbRadius);
}

Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = false,
bool? isEnabled = false,
bool isDiscrete = false,
bool isEnabled = false,
bool? isOnTop = null,
TextDirection? textDirection = null,
SliderThemeData sliderTheme = null,

bool showValueIndicator = false;
switch (sliderTheme.showValueIndicator) {
case ShowValueIndicator.onlyForDiscrete:
showValueIndicator = isDiscrete.Value;
showValueIndicator = isDiscrete;
showValueIndicator = !isDiscrete.Value;
showValueIndicator = !isDiscrete;
break;
case ShowValueIndicator.always:
showValueIndicator = true;

public readonly float overlayRadius;
public override Size getPreferredSize(bool? isEnabled, bool? isDiscrete, TextPainter textPainter = null) {
public override Size getPreferredSize(bool isEnabled, bool isDiscrete, TextPainter textPainter = null) {
return Size.fromRadius(overlayRadius);
}

Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
TextPainter labelPainter = null,
RenderBox parentBox = null,
SliderThemeData sliderTheme = null,

static readonly _PaddleSliderTrackShapePathPainter _pathPainter = new _PaddleSliderTrackShapePathPainter();
public override Size getPreferredSize(
bool? isEnabled,
bool? isDiscrete,
bool isEnabled,
bool isDiscrete,
TextPainter labelPainter = null) {
D.assert(labelPainter != null);
return _pathPainter.getPreferredSize(isEnabled, isDiscrete, labelPainter);

Offset center,
Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
TextPainter labelPainter = null,
RenderBox parentBox = null,
SliderThemeData sliderTheme = null,

Offset center,
Animation<float> activationAnimation = null,
Animation<float> enableAnimation = null,
bool? isDiscrete = null,
bool isDiscrete = false,
bool? isOnTop = null,
TextPainter labelPainter = null,
RenderBox parentBox = null,

const bool _debuggingLabelLocation = false;
public Size getPreferredSize(
bool? isEnabled,
bool? isDiscrete,
bool isEnabled,
bool isDiscrete,
TextPainter labelPainter
) {
D.assert(labelPainter != null);

61
com.unity.uiwidgets/Runtime/material/theme_data.cs


public class ThemeData : Diagnosticable, IEquatable<ThemeData> {
public ThemeData(
Brightness? brightness = null,
VisualDensity visualDensity = null,
MaterialColor primarySwatch = null,
Color primaryColor = null,
Brightness? primaryColorBrightness = null,

ChipThemeData chipTheme = null,
RuntimePlatform? platform = null,
MaterialTapTargetSize? materialTapTargetSize = null,
bool? applyElevationOverlayColor = null,
PageTransitionsTheme pageTransitionsTheme = null,
AppBarTheme appBarTheme = null,
BottomAppBarTheme bottomAppBarTheme = null,

) {
brightness = brightness ?? Brightness.light;
bool isDark = brightness == Brightness.dark;
visualDensity = visualDensity ?? new VisualDensity();
primarySwatch = primarySwatch ?? Colors.blue;
primaryColor = primaryColor ?? (isDark ? Colors.grey[900] : primarySwatch);

TextTheme defaultAccentTextTheme = accentIsDark ? typography.white : typography.black;
accentTextTheme = defaultAccentTextTheme.merge(accentTextTheme);
materialTapTargetSize = materialTapTargetSize ?? MaterialTapTargetSize.padded;
applyElevationOverlayColor = applyElevationOverlayColor ?? false;
if (fontFamily != null) {
textTheme = textTheme.apply(fontFamily: fontFamily);
primaryTextTheme = primaryTextTheme.apply(fontFamily: fontFamily);

snackBarTheme = snackBarTheme ?? new SnackBarThemeData();
D.assert(brightness != null);
D.assert(visualDensity != null);
D.assert(primaryColor != null);
D.assert(primaryColorBrightness != null);
D.assert(primaryColorLight != null);

D.assert(primaryIconTheme != null);
D.assert(accentIconTheme != null);
D.assert(materialTapTargetSize != null);
D.assert(applyElevationOverlayColor != null);
D.assert(pageTransitionsTheme != null);
D.assert(appBarTheme != null);
D.assert(bottomAppBarTheme != null);

D.assert(snackBarTheme != null);
this.brightness = brightness ?? Brightness.light;
this.visualDensity = visualDensity;
this.primaryColor = primaryColor;
this.primaryColorBrightness = primaryColorBrightness ?? Brightness.light;
this.primaryColorLight = primaryColorLight;

this.chipTheme = chipTheme;
this.platform = platform.Value;
this.materialTapTargetSize = materialTapTargetSize ?? MaterialTapTargetSize.padded;
this.applyElevationOverlayColor = applyElevationOverlayColor.Value;
this.pageTransitionsTheme = pageTransitionsTheme;
this.appBarTheme = appBarTheme;
this.bottomAppBarTheme = bottomAppBarTheme;

public static ThemeData raw(
Brightness? brightness = null,
VisualDensity visualDensity = null,
Color primaryColor = null,
Brightness? primaryColorBrightness = null,
Color primaryColorLight = null,

ChipThemeData chipTheme = null,
RuntimePlatform? platform = null,
MaterialTapTargetSize? materialTapTargetSize = null,
bool? applyElevationOverlayColor = null,
PageTransitionsTheme pageTransitionsTheme = null,
AppBarTheme appBarTheme = null,
BottomAppBarTheme bottomAppBarTheme = null,

SnackBarThemeData snackBarTheme = null
) {
D.assert(brightness != null);
D.assert(visualDensity != null);
D.assert(primaryColor != null);
D.assert(primaryColorBrightness != null);
D.assert(primaryColorLight != null);

D.assert(accentIconTheme != null);
D.assert(platform != null);
D.assert(materialTapTargetSize != null);
D.assert(applyElevationOverlayColor != null);
D.assert(pageTransitionsTheme != null);
D.assert(appBarTheme != null);
D.assert(bottomAppBarTheme != null);

chipTheme: chipTheme,
platform: platform,
materialTapTargetSize: materialTapTargetSize,
applyElevationOverlayColor: applyElevationOverlayColor,
pageTransitionsTheme: pageTransitionsTheme,
appBarTheme: appBarTheme,
bottomAppBarTheme: bottomAppBarTheme,

snackBarTheme: snackBarTheme);
}
public static ThemeData from(
ColorScheme colorScheme,
TextTheme textTheme = null
) {
D.assert(colorScheme != null);
bool isDark = colorScheme.brightness == Brightness.dark;
Color primarySurfaceColor = isDark ? colorScheme.surface : colorScheme.primary;
Color onPrimarySurfaceColor = isDark ? colorScheme.onSurface : colorScheme.onPrimary;
return new ThemeData(
brightness: colorScheme.brightness,
primaryColor: primarySurfaceColor,
primaryColorBrightness: ThemeData.estimateBrightnessForColor(primarySurfaceColor),
canvasColor: colorScheme.background,
accentColor: colorScheme.secondary,
accentColorBrightness: ThemeData.estimateBrightnessForColor(colorScheme.secondary),
scaffoldBackgroundColor: colorScheme.background,
bottomAppBarColor: colorScheme.surface,
cardColor: colorScheme.surface,
dividerColor: colorScheme.onSurface.withOpacity(0.12f),
backgroundColor: colorScheme.background,
dialogBackgroundColor: colorScheme.background,
errorColor: colorScheme.error,
textTheme: textTheme,
indicatorColor: onPrimarySurfaceColor,
applyElevationOverlayColor: isDark,
colorScheme: colorScheme
);
}
public static ThemeData light() {
return new ThemeData(brightness: Brightness.light);
}

public ThemeData copyWith(
Brightness? brightness = null,
VisualDensity visualDensity = null,
Color primaryColor = null,
Brightness? primaryColorBrightness = null,
Color primaryColorLight = null,

ChipThemeData chipTheme = null,
RuntimePlatform? platform = null,
MaterialTapTargetSize? materialTapTargetSize = null,
bool? applyElevationOverlayColor = null,
PageTransitionsTheme pageTransitionsTheme = null,
AppBarTheme appBarTheme = null,
BottomAppBarTheme bottomAppBarTheme = null,

) {
return raw(
brightness: brightness ?? this.brightness,
visualDensity: visualDensity ?? this.visualDensity,
primaryColor: primaryColor ?? this.primaryColor,
primaryColorBrightness: primaryColorBrightness ?? this.primaryColorBrightness,
primaryColorLight: primaryColorLight ?? this.primaryColorLight,

chipTheme: chipTheme ?? this.chipTheme,
platform: platform ?? this.platform,
materialTapTargetSize: materialTapTargetSize ?? this.materialTapTargetSize,
applyElevationOverlayColor: applyElevationOverlayColor ?? this.applyElevationOverlayColor,
pageTransitionsTheme: pageTransitionsTheme ?? this.pageTransitionsTheme,
appBarTheme: appBarTheme ?? this.appBarTheme,
bottomAppBarTheme: bottomAppBarTheme ?? this.bottomAppBarTheme,

D.assert(b != null);
return raw(
brightness: t < 0.5 ? a.brightness : b.brightness,
visualDensity: VisualDensity.lerp(a.visualDensity, b.visualDensity, t),
primaryColor: Color.lerp(a.primaryColor, b.primaryColor, t),
primaryColorBrightness: t < 0.5 ? a.primaryColorBrightness : b.primaryColorBrightness,
primaryColorLight: Color.lerp(a.primaryColorLight, b.primaryColorLight, t),

chipTheme: ChipThemeData.lerp(a.chipTheme, b.chipTheme, t),
platform: t < 0.5 ? a.platform : b.platform,
materialTapTargetSize: t < 0.5 ? a.materialTapTargetSize : b.materialTapTargetSize,
applyElevationOverlayColor: t < 0.5 ? a.applyElevationOverlayColor : b.applyElevationOverlayColor,
pageTransitionsTheme: t < 0.5 ? a.pageTransitionsTheme : b.pageTransitionsTheme,
appBarTheme: AppBarTheme.lerp(a.appBarTheme, b.appBarTheme, t),
bottomAppBarTheme: BottomAppBarTheme.lerp(a.bottomAppBarTheme, b.bottomAppBarTheme, t),

}
return other.brightness == brightness &&
other.visualDensity == visualDensity &&
other.primaryColor == primaryColor &&
other.primaryColorBrightness == primaryColorBrightness &&
other.primaryColorLight == primaryColorLight &&

other.chipTheme == chipTheme &&
other.platform == platform &&
other.materialTapTargetSize == materialTapTargetSize &&
other.applyElevationOverlayColor == applyElevationOverlayColor &&
other.pageTransitionsTheme == pageTransitionsTheme &&
other.appBarTheme == appBarTheme &&
other.bottomAppBarTheme == bottomAppBarTheme &&

unchecked {
var hashCode = brightness.GetHashCode();
hashCode = (hashCode * 397) ^ visualDensity.GetHashCode();
hashCode = (hashCode * 397) ^ primaryColor.GetHashCode();
hashCode = (hashCode * 397) ^ primaryColorBrightness.GetHashCode();
hashCode = (hashCode * 397) ^ primaryColorLight.GetHashCode();

hashCode = (hashCode * 397) ^ chipTheme.GetHashCode();
hashCode = (hashCode * 397) ^ platform.GetHashCode();
hashCode = (hashCode * 397) ^ materialTapTargetSize.GetHashCode();
hashCode = (hashCode * 397) ^ applyElevationOverlayColor.GetHashCode();
hashCode = (hashCode * 397) ^ pageTransitionsTheme.GetHashCode();
hashCode = (hashCode * 397) ^ appBarTheme.GetHashCode();
hashCode = (hashCode * 397) ^ bottomAppBarTheme.GetHashCode();

properties.add(new DiagnosticsProperty<ChipThemeData>("chipTheme", chipTheme));
properties.add(
new DiagnosticsProperty<MaterialTapTargetSize>("materialTapTargetSize", materialTapTargetSize));
properties.add(new DiagnosticsProperty<bool>("applyElevationOverlayColor", applyElevationOverlayColor, level: DiagnosticLevel.debug));
properties.add(
new DiagnosticsProperty<PageTransitionsTheme>("pageTransitionsTheme", pageTransitionsTheme));
properties.add(new DiagnosticsProperty<AppBarTheme>("appBarTheme", appBarTheme));

}
}
static VisualDensity lerp(VisualDensity a, VisualDensity b, float t) {
internal static VisualDensity lerp(VisualDensity a, VisualDensity b, float t) {
return new VisualDensity(
horizontal: Mathf.Lerp(a.horizontal, b.horizontal, t),
vertical: Mathf.Lerp(a.horizontal, b.horizontal, t)

}
public static bool operator !=(VisualDensity self, object other) {
return Equals(self, other);
return !Equals(self, other);
}
public bool Equals(VisualDensity other) {

20
com.unity.uiwidgets/Runtime/material/tooltip.cs


);
}
height = widget.height ?? tooltipTheme.height ?? _defaultTooltipHeight;
padding = widget.padding ?? tooltipTheme.padding ?? _defaultPadding;
margin = widget.margin ?? tooltipTheme.margin ?? _defaultMargin;
verticalOffset = widget.verticalOffset ?? tooltipTheme.verticalOffset ?? _defaultVerticalOffset;
preferBelow = widget.preferBelow ?? tooltipTheme.preferBelow ?? _defaultPreferBelow;
excludeFromSemantics = widget.excludeFromSemantics ?? tooltipTheme.excludeFromSemantics ?? _defaultExcludeFromSemantics;
decoration = widget.decoration ?? tooltipTheme.decoration ?? defaultDecoration;
textStyle = widget.textStyle ?? tooltipTheme.textStyle ?? defaultTextStyle;
waitDuration = widget.waitDuration ?? tooltipTheme.waitDuration ?? _defaultWaitDuration;
showDuration = widget.showDuration ?? tooltipTheme.showDuration ?? _defaultShowDuration;
height = widget.height ?? tooltipTheme?.height ?? _defaultTooltipHeight;
padding = widget.padding ?? tooltipTheme?.padding ?? _defaultPadding;
margin = widget.margin ?? tooltipTheme?.margin ?? _defaultMargin;
verticalOffset = widget.verticalOffset ?? tooltipTheme?.verticalOffset ?? _defaultVerticalOffset;
preferBelow = widget.preferBelow ?? tooltipTheme?.preferBelow ?? _defaultPreferBelow;
excludeFromSemantics = widget.excludeFromSemantics ?? tooltipTheme?.excludeFromSemantics ?? _defaultExcludeFromSemantics;
decoration = widget.decoration ?? tooltipTheme?.decoration ?? defaultDecoration;
textStyle = widget.textStyle ?? tooltipTheme?.textStyle ?? defaultTextStyle;
waitDuration = widget.waitDuration ?? tooltipTheme?.waitDuration ?? _defaultWaitDuration;
showDuration = widget.showDuration ?? tooltipTheme?.showDuration ?? _defaultShowDuration;
Widget result = new GestureDetector(
behavior: HitTestBehavior.opaque,

2
com.unity.uiwidgets/Runtime/painting/border_radius.cs


}
public static bool operator !=(BorderRadiusGeometry left, BorderRadiusGeometry right) {
return Equals(left, right);
return !Equals(left, right);
}
public bool Equals(BorderRadiusGeometry other) {

25
com.unity.uiwidgets/Runtime/rendering/layer.cs


canvas.drawPath(child.clipPath, new Paint() {
color = new Color(0xFFAA0000),
style = PaintingStyle.stroke,
strokeWidth = child.elevation + 10.0f,
strokeWidth = child.elevation.Value + 10.0f,
});
PictureLayer pictureLayer = new PictureLayer(child.clipPath.getBounds());
pictureLayer.picture = recorder.endRecording();

D.assert(physicalModelLayer.lastChild?.debugCreator != physicalModelLayer,
() => "debugCheckElevations has either already visited this layer or failed to remove the" +
" added picture from it.");
float accumulatedElevation = physicalModelLayer.elevation;
float accumulatedElevation = physicalModelLayer.elevation.Value;
accumulatedElevation += modelLayer.elevation;
accumulatedElevation += modelLayer.elevation.Value;
}
ancestor = ancestor.parent;

PhysicalModelLayer predecessor = physicalModelLayers[j];
float predecessorAccumulatedElevation = predecessor.elevation;
float predecessorAccumulatedElevation = predecessor.elevation.Value;
ancestor = predecessor.parent;
while (ancestor != null) {
if (ancestor == predecessor) {

if (ancestor is PhysicalModelLayer modelLayer) {
predecessorAccumulatedElevation += modelLayer.elevation;
predecessorAccumulatedElevation += modelLayer.elevation.Value;
}
ancestor = ancestor.parent;

float? elevation = null,
Color color = null,
Color shadowColor = null) {
D.assert(clipPath != null);
D.assert(elevation != null);
D.assert(color != null);
D.assert(shadowColor != null);
_elevation = elevation.Value;
_elevation = elevation;
_color = color;
this.shadowColor = shadowColor;
}

}
Clip _clipBehavior;
public float elevation {
public float? elevation {
get { return _elevation; }
set {
if (value != _elevation) {

}
}
float _elevation;
float? _elevation;
public Color color {
get { return _color; }

layerOffset = layerOffset ?? Offset.zero;
D.assert(clipPath != null);
D.assert(clipBehavior != null);
D.assert(color != null);
D.assert(color != null);
D.assert(shadowColor != null);
bool enabled = true;

if (enabled) {
engineLayer = builder.pushPhysicalShape(
path: layerOffset == Offset.zero ? clipPath : clipPath.shift(layerOffset),
elevation: elevation,
elevation: elevation.Value,
color: color,
shadowColor: shadowColor,
clipBehavior: clipBehavior,

6
com.unity.uiwidgets/Runtime/rendering/viewport.cs


AxisDirection axisDirection = AxisDirection.down,
AxisDirection crossAxisDirection = AxisDirection.right,
ViewportOffset offset = null,
float cacheExtent = RenderViewportUtils.defaultCacheExtent,
float? cacheExtent = null,
D.assert(cacheExtentStyle == CacheExtentStyle.pixel);
D.assert(cacheExtent != null || cacheExtentStyle == CacheExtentStyle.pixel);
_cacheExtent = cacheExtent;
_cacheExtent = cacheExtent ?? RenderViewportUtils.defaultCacheExtent;
_cacheExtentStyle = cacheExtentStyle;
}

1
com.unity.uiwidgets/Runtime/services/text_input.cs


TextRange composing = null) {
selection = selection ?? TextSelection.collapsed(offset: -1);
D.assert(text != null);
D.assert(selection != null);
this.text = text;
this.composing = composing ?? TextRange.empty;

14
com.unity.uiwidgets/Runtime/widgets/automatic_keep_alive.cs


handle.addListener(_handles[handle]);
if (!_keepingAlive) {
_keepingAlive = true;
ParentDataElement<KeepAliveParentDataMixin> childElement = _getChildElement();
ParentDataElement childElement = _getChildElement();
if (childElement != null) {
_updateParentDataOfChild(childElement);
}

return;
}
ParentDataElement<KeepAliveParentDataMixin> childElement1 = _getChildElement();
ParentDataElement childElement1 = _getChildElement();
D.assert(childElement1 != null);
_updateParentDataOfChild(childElement1);
});

return false;
}
ParentDataElement<KeepAliveParentDataMixin> _getChildElement() {
ParentDataElement _getChildElement() {
D.assert(childElement == null || childElement is ParentDataElement<KeepAliveParentDataMixin>);
return (ParentDataElement<KeepAliveParentDataMixin>) childElement;
D.assert(childElement == null || childElement is ParentDataElement);
return (ParentDataElement) childElement;
void _updateParentDataOfChild(ParentDataElement<KeepAliveParentDataMixin> childElement) {
childElement.applyWidgetOutOfTurn((ParentDataWidget<KeepAliveParentDataMixin>) build(context));
void _updateParentDataOfChild(ParentDataElement childElement) {
childElement.applyWidgetOutOfTurn((ParentDataWidget) build(context));
}
VoidCallback _createCallback(Listenable handle) {

25
com.unity.uiwidgets/Runtime/widgets/editable_text.cs


"minLines and maxLines must be null when expands is true."
);
D.assert(!obscureText || maxLines == 1, () => "Obscured fields cannot be multiline.");
scrollPadding = scrollPadding ?? EdgeInsets.all(20.0f);
D.assert(scrollPadding != null);
toolbarOptions = toolbarOptions ?? new ToolbarOptions(
copy: true,

inputFormatters.Add(formatter);
}
}
showCursor = showCursor ?? !readOnly;
this.showCursor = !readOnly;
this.scrollPadding = scrollPadding ?? EdgeInsets.all(20.0f);
this.scrollPadding = scrollPadding;
this.controller = controller;
this.focusNode = focusNode;
this.obscureText = obscureText;

this.smartQuotesType = smartQuotesType.Value;
this.showCursor = showCursor;
this.showCursor = showCursor.Value;
this.textWidthBasis = textWidthBasis;
this.onSelectionHandleTapped = onSelectionHandleTapped;
this.scrollController = scrollController;

public readonly TextWidthBasis textWidthBasis;
public readonly VoidCallback onSelectionHandleTapped;
public readonly ScrollController scrollController;
public readonly bool? showCursor;
public readonly bool showCursor;
public readonly ui.BoxHeightStyle selectionHeightStyle;
public readonly ui.BoxWidthStyle selectionWidthStyle;
public readonly bool forceLine;

_cursorBlinkOpacityController.addListener(_onCursorColorTick);
_floatingCursorResetController = new AnimationController(vsync: this);
_floatingCursorResetController.addListener(_onFloatingCursorResetTick);
_cursorVisibilityNotifier.value = widget.showCursor ?? false;
_cursorVisibilityNotifier.value = widget.showCursor;
}
public override void didChangeDependencies() {

if (widget.controller.selection != oldWidget.controller.selection) {
_selectionOverlay?.update(_value);
}
_selectionOverlay.handlesVisible = widget.showSelectionHandles;
if (_selectionOverlay != null) {
_selectionOverlay.handlesVisible = widget.showSelectionHandles;
}
if (widget.focusNode != oldWidget.focusNode) {
oldWidget.focusNode.removeListener(_handleFocusChanged);
_focusAttachment?.detach();

fontFamily: style.fontFamily,
fontSize: style.fontSize,
fontWeight: style.fontWeight,
textDirection: (TextDirection)_textDirection,
textDirection: _textDirection.Value,
textAlign: widget.textAlign
);
}

void _onCursorColorTick() {
renderEditable.cursorColor =
widget.cursorColor.withOpacity(_cursorBlinkOpacityController.value);
_cursorVisibilityNotifier.value = widget.showCursor.Value && _cursorBlinkOpacityController.value > 0;
_cursorVisibilityNotifier.value = widget.showCursor && _cursorBlinkOpacityController.value > 0;
}
public bool cursorCurrentlyVisible {

cursorColor: _cursorColor,
backgroundCursorColor: widget.backgroundCursorColor,
showCursor: EditableText.debugDeterministicCursor
? new ValueNotifier<bool>(widget.showCursor ?? false)
? new ValueNotifier<bool>(widget.showCursor)
: _cursorVisibilityNotifier,
forceLine: widget.forceLine,
readOnly: widget.readOnly,

12
com.unity.uiwidgets/Runtime/widgets/framework.cs


hasSameSuperclass = oldElementClass == newWidgetClass;
return true;
});
if (hasSameSuperclass && child.widget == newWidget) {
if (child.slot != newSlot) {
if (hasSameSuperclass && Equals(child.widget,newWidget)) {
if (!Equals(child.slot, newSlot)) {
updateSlotForChild(child, newSlot);
}

if (child.slot != newSlot) {
if (!Equals(child.slot, newSlot)) {
D.assert(child.widget == newWidget);
D.assert(Equals(child.widget, newWidget));
D.assert(() => {
child.owner._debugElementWasRebuilt(child);
return true;

}
}
public class ParentDataElement<T> : ParentDataElement where T : ParentData {
public class ParentDataElement<T> : ParentDataElement where T : IParentData {
public ParentDataElement(ParentDataWidget<T> widget) : base(widget)
{
}

((RenderObjectElement) child)._updateParentData(widget);
}
else {
D.assert(!(child is ParentDataElement<ParentData>));
D.assert(!(child is ParentDataElement<IParentData>));
child.visitChildren(applyParentDataToChild);
}
};

6
com.unity.uiwidgets/Runtime/widgets/page_view.cs


}
public override bool applyViewportDimension(float viewportDimension) {
float oldViewportDimensions = this.viewportDimension;
float oldViewportDimensions = 0.0f;
if (haveDimensions) {
oldViewportDimensions = this.viewportDimension;
}
bool result = base.applyViewportDimension(viewportDimension);
float? oldPixels = null;
if (havePixels) {

465
Samples/UIWidgetsSamples_2019_4/Assets/StreamingAssets/MaterialIcons-Regular.ttf


�pGDEF5S��$GPOS�����6GSUB B�b��o�OS/2
s"cx`cmap��; �cvt D�gasp����glyfwL"���head �c�6hhea4$hmtxr�p5�
loca�5��maxp\�X name5���zpost��2�x א�3�_<� ���E���H���@.�LfGLf���0�� +++@U+@@U@U5+@@Ukk@+++++�++�++++@+@@UU��+�+++@+k�@@+@"UUUUUU+U+U++,@++@@@+@Uw@kU+@++@U++k@@+k+++3@+[kk++@U+*+@U+k@k@++@+k++@@+@kU=@+++!k++@@@@+@k++@@+++k+@++++++�����k@U@+U@+++@kU++3+ +f+@��@@@@@@@@@@@@@@@�+U@@� 5+Uk@@kUk�@+U+@+@w+@kU@UUUUWUK+U5+k@++U@++kk+++++�+@@+����@�++k@Ukk@@@UkkU@+U@+k++@k�+@55+k�@+++kk+@@+@@@+@@@@@@@@kU+@@+U+U+�@@+,1@+�@@U+@*@+@@@+@@@@@@+++�k+��@++U+@U+++@WU@+++@+Y@%++@@@+L++@@@@+U@%UUU�+@++++@+@+@@U@U@@U+�@@@+++:+@@@`kk+:@@U>kk@k@@U@+Uk++@k++�+UU�+�U+I��k��kk@U�V��UkUU�w���}k@+++@@@@++@@@@@UU++U=@k+@+* +@@+U+�UU@U+�++U++@+@++UUU+U@+UUU@+@U+++++@@+++++@+@@+++#+++@@@@@@@UUkkU++U++@kU@I @@++++++UU@@k+++++��U++U@@+@@UUU++U@@+++@kU@ @+++@+k+@-@k�k@UZk++4+@U+@k+U@@++@+kk@+U+U+UUUUU++++++k++@@@+5'�k@+Z+>kek+@++@@U+�@U@+@Uk@+k@�++U+@Kk*@@7I@k+?+@++UU+U+++++,
$,
$�z@:9_z���!�$�,�1�9�S�s���������q�����������������i���������:������.�>�6�{��� �E��������������:�Q�s��������?�L��0_a����#�(�.�3�;�U���������E�����������������&��������
���������0�-�9����#������������� ��4�M�S�u��������;�������� (      ����oQKEA=62����a`_�����
�������������������� �=09__ az��(��-��!.�#�$5�(�,7�.�1<�3�9@�;�SG�U�s`��������������������E�q�������������������� ����
�������������&�i����Z����c����g��h�
�j��:y����������������.�0�>(�-�67�9�{A������� ��#�E������������������������������� ������4�:��M�Q�S�s�u��)����k������������?��;�L�����
 !"#$%&'D)))19AIQYaiqy���������������� !)19AIQn���A���1Bh��.Y���1k��0Xd{���%[���%7J���  < ] � � � �

>
z
� B � V � { �e��5i���#j���;]|��5����-@]��� Z�� 9n��?Y|��-v��4Wy���Ov��/��Gr���-[����O~���A{�����^���  ! . E g { � � �!Z!k!�!�!�!�""P"�"�"�##7#{#�#�$$7$^$�$�$�%%;%[%{%�%�&&=&v&�&�&�'!'Q'�'�'�(9(j(�(�)/)U)b)x)�** *g*�++S+}+�+�+�,,,0,?,�,�,�--U-�-�. .F.k.�/L/p/�0*0�0�1(1^1�2+2P2v2�2�2�33J3o3�3�3�3�44W4�4�4�4�5535U5u5�5�5�66B6r6�6�6�77757G7�7�7�7�88H8Z8�8�8�9 9)9g9y9�9�:
:2:v:�:�:�;;G;�;�;�<<<:<_<�<�<�=<=a=�=�=�>">H>m>�>�>�?? ?0?E?[?�?�?�@@:@W@�@�@�AAGAtA�A�B.BYB|B�B�CCbC�C�C�DD-DPDvD�D�E!EaE�E�E�F%F9FTF�G}H[IOI`IzI�I�I�JJBJpJ�J�K KLK�K�L LTL�L�L�M+MUM�M�M�M�NN=NaN�N�N�OO(OAOTOsO�O�O�PPTP�P�QQdQ�Q�R!RoR�S SXS�S�TTUT�T�T�U+U�U�U�VV VjV�W+W�W�XX\X�X�Y!YEY~Y�Y�ZZTZfZ�Z�Z�[[W[{[�[�\ \G\`\}\�\�\�]"]F]c]�]�]�^^I^^�_ _E_q_�_�``A`r`�`�aaKa{a�b#b�b�ccec�c�dd'd]d~d�d�e+eOe�ff;fpf�ggGg�g�g�hNhh�h�i,isi�jjDjsj�j�k k/kMk~k�k�l"l?lfl�mm2m�m�nn>nbn�n�oo@ojo�o�o�pp<pap�p�p�q1qxq�q�r rrFrnr�r�r�s"s5s�s�s�t*t;tot�t�uuFu�u�vvdv�v�v�w^w�w�w�w�xxNxcxox�x�x�x�x�x�x�yy*y;y_y�y�y�y�zz/zJz_zuz�z�z�z�z�z�z�{{G{�{�{�{�|?|t|�|�}}8}u}�}�~3~u~�?i��߀�R�������9�r�����#�O�o���͂��D��������G�g���̅�N���ą��
�!�A�k�����҇-������E��������X���̊�G��ۊ��!�U�s���܋��0�b���ۍ�h���ȍ�� �1�H�i������D�{���Ԑ%�Y����������ܒ�H���Ǔ�8�p���ɓ���"�p���ɔܔ��)�L�g�����ϕ��@�Q�q���Ԗ��7�s���ٗ��3�h�ƙ�&�=�q���՚��<�Q�����њ���6�X������K���ȝ
�.�\��������E���Ÿ6�c���˟���G�d������� �N���š���B�l�ΣF�u���ۤ�I�����E�o�Ǧ�>�t������R���ʨ�)�K�o���¨ۨ���G�l�Ѫ�?�m���ݫ�<�����٫����8�W�������Ԭ���F�m������� �`�����-�X�����ְ�1�i���԰��&�P�o��������V��A�}�����6�����յ�4�u���ڵ��i������M���ɷ��!�Z�Ź �F�}���ع��$�A�N�[�u���ܻ�!�6�`���̻���6�W�x����>�p����{������B����������]�����U.�/<��2��<��2�/<��2��<��233'3#�wffU��31111111111111111111111111111111111111++��%5#5#2"&4***C�}}�}뀀V++@}�}}�++��6264&"2"&473#3#��ee�eS�}}�}�****Ue�ee�}�}}��++@��
%5#5#***����VVU++@��k@�� %%5#5##335!57546754623"&U@*@@*~-��-@11@�T"�+@@+@@Q--|3Q  Q3�U+��
"%"&5375#5#3!5754675462V***�+��+3--3+�UUU**++j2J    J2++��2"&4264&"62"&4�  P88P8�}}�}  i8P88P�}�}}�@@��*26462"6"&462'32"&5475'2654&'#462"�  �  �Ppp�pM�t!W|WJ6*  �    �p�ppP`9�s)5>WW>8T)�  @U��/?54&##"332655##53#54&##"332655##5372#!"&5463� @ @ ++u @ @ ++��� V  @  V  @ ��UU�� 3#!5333UVV�V*V@뫫V��@@�� 5#35#535#572#!"&5463@��UUU���@+�++*+���*U���#��������5���7#'7���������++�� 3#'7##5%'53`uu@`@@� @@u@@�@�@`@@u@@� @@u@+��5462"'&472653#"'&'&'&'&5462#4&"� ,,r88EE�+2#))W~V+=Z>$( *,,�8�8E�E�o#27%)*?VV?->>- "& @U��#3%5354&##"33353265##5#35372#!"&54635+ @   � + +����@@ V V �55�++��U��%55"&5472'654&#'7UUFeK5FeK5UU�@UV@eF2)!5K+eF2)!5K@UVk@��3#5&&5326"&55462q$K5*5K$C\CW4&&4&6QFFQ6/==&�&&�k@��(3#5&&5326'326574&""&55462q$K5*5K$C\C�
44&&4&6QFFQ6/==��
 � �&�&&�@@��!''#5&&53327'#"&55''5462'65[eY!*5K$C.#&��&4&U ���YFFQ6/= #&��&&�%!+U��3#!"&546333'33'33�U��*@**+@+++@���VVVVV++�� $5#5##33572#!"&5463!!"&5�U+UU+k�V+��+UU+UU��U��*+++�� $5#5#75#72#!"&5463!!"&5�Հ�����V+��k**�++U++��U��*+++��&!!"&55#&#"265572#!"&5463U+��UU ,k����*+*u ,vj�!��%5#5#%'''7'7'777***4M(II(M44M(II(M뀀V++k;ODCO;<NDDO++��%654&#"27'2"&4�$eF<-i<-�$e�}}�}�-<Fe$��$�-<Fe�}�}}��k��3##3+UU�U���*��++��%5##5#2"&4@+*+�}}�}�����*}�}}�++�� %53264&"2"&453+��ee�eS�}}�}�+���Ve�ee�}�}}�����k��������++��
77'&2"&4Հ�-�}}�}�``u}�}}�++��6264&"2"&45��ee�eS�}}�}��Ue�ee�}�}}���`+U��75373##5#5353'!5!5+��UU+UU+U���****VV*VU++U++++�� $5#5##33572#!"&5463!!"&5�U+UU+k�V+��+UU+UU��U��*+@U�� 3#"&4632537!5%!5kj@&4&&�իU���+�&&4&&**�++U++++��!5!!53264&"%32#!"&54���+��4&&4&����UU++�&4&&4n$G�k��#'%54&"6"26472#!"&546333# B<Bs&&P � @*+++��&&W �  ��*��*��@+��%53!'75#5!55k*�UU*UU�V�@UU@�V�@UU@@+��%#5#57353!'75#5!55 +V*�UU*UU�U�V�@UU@�V�@UU@U@��2"&53264&#'7Gde�e+KjKK5kk�dFGddG5KKjKVkkUU�� %7#7'73'''7<C,v,Cv,�� o�C,v,C�v,�� Co����3##U++յ�������73#˵�++���++�� !533#57264&"62"&4%'7'7��MM�MK|WW|WE�pp�p�b�bb+&Z+'Y�X|WW|�q�qq�L!S R R����!!����+U�� %5#5##5#535%2#!"&5463���V*�V���++U++++�++��+U��!12"&464'&264&"&547'2#!"&5463�""�22&%~F22F2&%22$��+""�2�2&46%2F22F7&46%2�2$�++��%7'72#!"&5463!!"&5����V+���``J�U��*+@���7'#!"&55463!2kUU �   U�UK � +@��'#!"&554633''32FzD� :��� ���D � :E�� KkU�� 37'#$5kUkkU 6@k��k{v��UU�37'#�VjjV@k��k@@��$'''567''#53'4&'5'6''5-xe,%)[kUeeU;/AT 545�Z-B��,
,[�k�e�3N,iD0)! 4/@E�� 5664&'537'#+ATTA/;;/55�UkkU�i�i,NfNSx�k��k+U�� %5#'5#5#2#!"&5463�V���V�����kUUkUU+�@@�� )%53'326554&#5##5#3532#!"&54635+KV � + +����@@`� V ��55�++��*"1�� %3#57#533''3#'##3#7P��~}���S*#`'m'�c23e2�"�"�o.�44#2l2+��2##53!3#"&54637�UU��UU@����*�*�k��U@��4;O%3277655&4&#"7#"#"'&&'&55477632632#557346355"2653"&
 (     Y&�dGkk4LLhL+e�e�++      5F FdVkkVKjKK5GddU@��'G�746355"2653"&73277655&4&#"7#"#"'&'&55477632632#255&4##"#4632632#"#"#"'&&'&53336255&4##5UdGkk4LLhL+e�e�
 *  q        �FdVkkVKjKK5Gdd++         U@��2F7#73#25465332#"'&&'&533277655''&#'46355"2653"&� 3%    �dGkk4LLhL+e�e�/  
  FdVkkVKjKK5GddU@��4;O%3277655&4&#"7#"#"'&&'&55477632632#557372"&53264&#'7
 *     [&Gde�e+LhLL4kk�++      5F �dFGddG5KKjKVkkU@��5w�%32776554&54&#"7#"#"'&'&55477632632#255&4##"#4632632#"#"#"'&&'&53336255&4##572"&53264&#'7 (  q        3Gde�e+LhLL4kk�++         �dFGddG5KKjKVkkU@��4H7#73#25465332#"'&&'&533277655''&#52"&53264&#'7�3%    Gde�e+LhLL4kk�/  
 �dFGddG5KKjKVkk@�� ###5#5353!2###5#"&5463U@*@@*����k�k++@@+@@��+�++@�� .2654&##3533'67#'#'54&##326%2#!"&54633#%3#�K  �&  %B KK �� ++++ �++- 6�II� @����*�@@+U��'7%5##5##5#3326'5#35#535#55#'#35%2#!"&5463� U �UU555667���k`KK`k Y�e�KK�KK��UU��
%'3#5!!!!+jj֫����@@�*�+*++��k 7''7##"&5546332535#5#53�0%%���+������@0 0����++�++�*UU��6462"Ue�ee���ee�eU�� 5664&'462"k8HH8&//&��e�ee��\v\, BTB ��ee�e@�� !6463253#"!2#!"&5463�&k@&4�������4&�+�%*��U��*++��%'%#!"&55463!2'!5!5!U���VU�+��V�E�����**�++U�� '7%537!5!5� �a A�ժV�� �` @**�++U++ �(%'7'7'3##5#535372#5!!##5#"&5463` @@ �@@*@@*�+��@+�k�` @@ K+@@+@U���*++@��#5!2###5#"&5463U����k�k+++��+�++,,�� #'5664&'57&'&'7#677'67�nQ?VV?Q�%/?U)M+)�/%3?+??AR�z+a�a+��+�/$3?~%/?3")�//1@U��%5!2#!"&5463���*�����+�+U�� )-%5#'#35#5#'54&##3532672#!"&54633#�56� +K +��� ++��KK�KK��K�+���@��%5#2#!"&5463�����k��U��*@��%5!2#!"&5463������k@@U��*@��5#5#%2#!"&5463������k**V++���*@��5#%2#!"&5463���������*+U��37#"&5463!@u ���v�@��� %5#5##33577'#!"&55463!2+@+@@+�UU �  �*@@*@@5U�UK � @��%5!2#!"&5463�����������*@@��
(%'7#5#35'5#5##5#33572#!"&5463�++%* *` @ ����@@@@�@@ @@@` ���*@���
77''35#3577'#!"&55463!2�kZB6^�UU �  �k[C^6 U�UK � +@��#'+/39%#57#55#3#3#5#5#5#5#5#5#5#5#3!3�+++V�+++++*******++++++++���V��++U**��+*++***V++U++U****V++U++U**���@@��7632#"&546332�0]/
$( �� K  ]0/
 K Ֆ ($ �k""''&476 "'&'&55&4. 5i"i5 2@B5dd5BUU��3#5'7#��*����Ս��wM�� 7#'75'7�``K�t�IIU``��sw��HH@��k
'#53#���+�bwk��b�+wkk��3#537����*���*Ս�UU��#5'533''7�1q*e1ր1>>�1q��e1��1>>++�� 5!5#5!572#!463����+��UU++�++k++��U�@��k !!5!%5!�+��U+�*k+�++V**++�� 5!5!5!%'!"&5463!2����UU��VU++@++@++���U+�#'%54&"6"26472#!"&54635!!5kIDI(({��V���  �((W��U++++@@�� &26%2#"&5463327675#'3##'#535#53#7#5� �� K  //^/ $(@+@@++@+V� K Ֆ ($ /\1/  �+@+@@@+kk
U��'/7?GO2"&42"&462"&42"&4&2"&46"&4622"&462"&462"&42"&4�""""�""""f""�""��""""""�""�""f""""f""""�""�""�""�""��""+U��5'72#!"&5463�������U+kk+j��++�� ##463!22'#"&55!5k �U  U U�  V+ @ ��U +�k@�� %3'353'##5#U@UU@*�U@*@�UU��U��@ ��'7'5''#"'&&7'71Oy&�fL�:/<G2.);+�0Oy&k/��gf"+4L:&2/�2;��@��,654&"34623475#2##'#"&5463A2F2*" **�U@@U%#33#" ! "�++U��@@+++��#'.547'77"'632'654&�mDH$
4' D�E,@>W$M lDG. EAR D�gD.W>0ENk+��264&"&2.54�,, |W,+4'  ,,�W>PF=EAR>++�� 5!5!5!2#!463����+��UU++@++@++�U�++�� 2#!463���U��U�++��%!72#!463���++��U���+*�U�3�� '##"&55'%'732Nu( �8b�2����)�8��2@@��7632#"&546332�0]/
$( �� K  ]0/
 K Ֆ ($ +5��"2B'#"&57'&&547'&&547'"'632'654&'654&#"'632Fe�" *#!.'19,,�+%2=X} e1#2# #5K����"1%;#&.6.O%c:J9-}X=2')Fe�# #2# K5@�/%&4737'7'54&""26472#!"&5463}# *,,* uXPX�4&&4&��V�,*+!4,4!+*U%%&4&&4f��*@� #)5#54&""26472#!"&5463'57ժXPX�4&&4&��V�@@@@���%%&4&&4f��*k**++C� *&'77#5'7"'&'&55&""''&476 �JLn*�LLU5 .h. 5i"/JL�jj[KL�5BB5d[+��#%5#72##"&55463&2&"'62&"@�}

z

#�E8�8:,~,ZU���

�E88=,,k��!!%463!2#!"&5���*�����k���k��%#2##"&5463k���k*�����k��!!%463!2#!"&5���*�����k���k��%#2##"&5463k���k*�����+k��!#"&554&"3'354622655#�U@2F2"@UU@2F2"@�V�#22#��UU�#33#��++�� 5##5##5#%2#!463k++*++��U++++++��U���#$264&"264&"$2#!"&4623&54l>++>,�>,,>+/bDD1��1DDbE`�,>++>,,>++>�DbEEbDD1+ +1���6264&"73##5##"&4632�""��+U] B*5KK5*B�""<VUU&/KjK/@��#2##"&5533##5463''7'77��+��+UUUUVUUVU���@+V+@�UVUUVUUUU��554&"32##"&55463546272##"&5533##5463�[
 u

%.$��+��+   K
 K
  ���@+V+@+��"%#2##"&5463'6'7'64'+���+B((UV�������4B&k%O*��]2##"&5533##5463264&"7''##"5'&'''&6774&465'&776677433276��+��+&  x ,  +���@*@��  %

%%
 %@��
#7##!2#!"&5463�*UU*V������UUUA,��V��*5�� &%5&#"6322#"'&#"&#""#"&56326�!*A44A''L*)=A4+J60+KJ++u�
�  �� 9 +U��7!5'2#!"&5463���V��V��k��jj�+�U�%7'633!53"&55463!2VVi+U�U�UV�PP.n:z++���!%767'''!53"&5547''7'"'!23#�1" n�:�}U!�v"Vp;�( "��[:+� !�� v O-o�+@��k
77#53#5@�wb�+�M�w+�b�UU��2#4&#52#4&#462#"&UX|=Y>��<�q()|X>Y�Éq��(++��-6264&"&2#"'"&46226554&"33#"&4�4&&4&�}+' X??X?e�eeFkkX}�&4&&4�}X , ?X??,  Fee�e*}�k�� %"675#2##"&5463C#RDDZ����/Z $@?V*�����@@�� (##5#53532#"&54633276�@+@@++ �� K  //^/ $�+@@+@@� K Ֆ ($ /\1/  kk�� %##5#53533��*��*�뀀*��@@�� %5#5##33572#!"&5463kV*VV*����*VV*VV���*++�� %5#5##335&2"&4kV*VV*m�}}�}�*VV*VV�}�}}�++��6264&"2"&473##5#535��ee�eS�}}�}�VV*VVUe�ee�}�}}�V*VV*V@@��
!'!7#5##%#!"&547763!2m&��uJVJ+
��


���u++� ��
 $ @� %'7''72#!"''763�LLLMMMML^��ss�MMMMMMMM+����++��%2654''7&#"62"&4Fe$�-o$�-<FeS�}}�}UeF<-�$�<-�$e�}�}}�kk�� ''7'77�wwwwwwwwwwwwwwwww+��%#2##"&54637!#463������*@+��U��+V+��+++��53'24"264&"6264&"#'"&46327'#"&462�@�+ �""""y@�22F22#22#22F2��+K�$$�$$���2#22F2222F22#@+�%%##5#"26472#!"&54633662�*�*�  ���Y * UV@@���   ��V@@�� '7627#�'P'2���P�Pj'P'2��P�+U��%7'#!"&55477���������ngg�� qq @��� 75!%!!53�������V�**�+�++k@�� 3#'##33x�x*���*�kUU��55#5���UV��V�=@��E%267''67632327676323##"&5467.#"&54>76'&(
�%
#  09*)54>!(<7
;  #2  t%&&  �$ ('$$<7"5E>'!H
 I 0$$"@@�� %5!32652#!"&5463���V&4&U�����&&��*+��k#2##53264&##553$33#"&4633#"k,>>,VV''Vj���'VV,>>,VVk?X?)'6')�**06')?X?)+U��5'72#!"&5463�������U+kk+j��+U��5'72#!"&5463�������U+kk+j��!��k7#7&#"'6632�L�N0>8Y2uIUM�M(A4DVk��%!5!���*�*++�� %5#62"&4k��}}�}�**�}�}}�++��6264&"2"&43#��ee�eS�}}�}j��Ue�ee�}�}}�C*@U��&#'7�hqM���@�[mW��U�&#'7'7hqM����UU��@�[mW��@UU@��@@�� %5#264&"#'57*
lpp�pp뀀\ p�pp�p@@�� 5#264&"#!"&5463@�{4&&4&�U��@UU�&4&&4/U�*@@��  $(,16:>BFK35535353753'5353'5353#553"&532#'#55353'53'463����++++*++++++�*U+U++*+�*�+*+�++@�����++��++U++�++�+�**�++�++��++UU+++�++�++�**�++@��75%%5+@���@�++��@��� 75!%!!53@������**�+�++kk��
3#73#'!!(P],e e,�*���k&/��/Z*+��k2&&#"#56 It2Y8>0N�L?UVD4A(M�M7++��%3#3732#!"&54637T-m(m-xo��,,u��@ ��V�vv@@�� '3535!32652#!"&5463UUU*Vj��V&4&U��+VV@@k��&&��*@@��
!'!33537#!"&547763!2m&��uJVJA
��


�vu++� ��
 # ++�� #77'355232#!"&5546335463�UU@@VV��VuVU@@
**+*��*k��'2!54&'54632#!"&55462!54��/"��"*�. ,, .jkk@@+U��!537353##"&%3#53#3#+�@U�������UU�**�����+�*�++U��64633#"3355#"73#53#53#+Q9KK(88( @@ 9��������rQ*8P8*@@+++�+�*k@��%5#'#353#'##3�kk���k*�Հ+�+��*�k+@��-7'#5'#53'33#"&5467#'72'6654&##5+eV%0:,"'VV,>$�*D,>:'V���U%1*,%')?,!6 N**V?,A$')��6264&"'#'57'7'73'5��M#�p#N�R�p��pN#p�#MpRp��?@@��%7'7533#!"&553!8kk8*�+��+*�7kk7�����++��6264&"62"&47'5''7'7�|WW|WE�pp�p�UeCbbHbUX|WW|�q�qq�p2<�cR RR!S ++��6264&"62"&47'5''7'7�|WW|WE�pp�p�UdBcbHcUX|WW|�p�pp�q3>�bQ QQ T ++�� '5264&"2"&4 `p1�ee�eS�}}�}kp9D���e�ee�}�}}�++�� #3##5#535264&"62"&4%'7'7@@*@@)|WW|WE�pp�p�b�bb@@+@@+@�X|WW|�q�qq�L!S R R++��7''575577''5462@P{+KJ*�k�D����zO  u5*Pk*�N  ++��''575575462���+KJ*���@�5u  u5*ku  uk�+k�%5#5#2##"&5463353***c  �  #V�kkU+++ ��  G **�+k�77#5372##"&5463353�U+U+c  �  #VU�v�� ��  G **�+k�2##"&5463353N  �  #V� ��  G **�+k�2##"&5463353N  �  #V� ��  G **�+k�,%654&"34623475#2##"&54633531&4&  "(b  �  #V�&&  a))* ��  G **k+z�%'73#5'7'753=((=\\zbwwb�)QQ)\\y�bwwb�@+�� ''73#5'7'753'7�++*.((=\\zbwwbk*++++++\)QQ)\\y�bwwb��+++U+�� %7'''#5'7''53'7((�81\bw��*zA"|()���1[�bw� E+kyA#@+��!%'73#5'7'753'64'7((<\\zbwwb�!V1
�)QQ)\\y�bwwb�d2z4*X*V1��%3'#3737#'#5'7537371)E*E)D�FFdGGdFFdGGd����*rGGdFFdGGdFF�NN��2"&4264&"%#'#5'75373�F22F2 jKKjK+FFdGGdFFdGGdU2F22F�KjKKj|GGdFFdGGdFF��6264&"#'#5'75373�jKKjK+dGGdFFdGGdF�KjKKjdFFdGGdFFdG��%264&##'#5'753735KK5�dGGdFFdGGdF�KjK�dFFdGGdFFdG++��%27#"&5467'654&'H,8@lX}oQ6JWSQo8
J6k8!W}XSy@T8>WiyS0'!8TU�� '%53##"&5537'7'7'7%#54632#5k*�*@bbC�CCb��*�*k*UU*QbbDbDDb�*UU*U� %5#72##"&55463%3!535463!�Uk � �����+����� � � +�@@�+@�� '#57#5#57#5!2###5#"&5463�****������k�k++U**U++U**��+�++��'6264&"%3##5&&'#53667532"&4�|WW|WT,,`C*C`,,`C*C`�F22F2kW|WW|S*C`,,`C*C`,,`2F22F��6264&"%3##5&&'#5366753�|WW|WT,,`C*C`,,`C*C`kW|WW|S*C`,,`C*C`,,`��/%'327'#5&&'#53673#'654&#"'6753[�W>2�e,-7*C`,,%S,, W> %*C`��)2>W:��,%,,`C*7-d*' >W ,,`��/%'327'#5&&'#53673#'654&#"'6753[�W>2�e,-7*C`,,%S,, W> %*C`��)2>W:��,%,,`C*7-d*' >W ,,`��6264&"%3##5&&'#5366753�|WW|WT,,`C*C`,,`C*C`kW|WW|S*C`,,`C*C`,,`@+�� 3#3%533'3�++U+��+�*�++VU�UVV���VU�++��%!��V�+�6�� '07'62���Dy�y��TUU++��,!3#35#"&5475463!2#!"&5463��U*�@"���V����+��0  0��V�����V++��"'073#"&5553##52#5#5"&4627!#54633U���*��*�V�@+@�+*���*����*���*}�O9U+��*@@�� 3#53'#5353cyy]�Nx�����yx��xN�]�ݫ�k��!1354&""&5546354622#5!2#!"&55463�4 $ j��U��+
� @  @ ����k��1%#2##"&5463354&""&5546354622#k���Q4 $ k*�������
� @  @ �'?354&""&5546354622#7"&'3%"'&47762'7'7fI , ��Qd� Ep
� 
� 
4-y�x/� � V  V �Q�c;a� 
 
4,x�y/� '77"&'377"'&47762'72#&&�Qd� Dш���
� 
��
� �Qd� D6Q�c<`����� 
 
Q�c<`U+�� 5##5##5#72#!"&57�+++��UVVVVVV����@��&%!2#!"&5463"&5467363232#�������&!.*j,��V��*��&$+%,++��7+�+��V++�� 7#353'53+�U+***+����**U��3�� '##"&55'%'732Nu( �8b�2����)�8��2++��!!��V�����VC���� '!7'%'fo*����u����+��f���6��%62�y�y65UU +�#9%7>2&#"54&"32##"&554635462KK�  $'-.-'$  ,-=�V k .�8^6  

  8=M  U U 6��
'67''632F HGS�!-+�t�-,� ��JGg5,[��
+U�� 355!%5#'!!355!U+U���+*��V*+U�**@VV�**@V�**@VVf&��,3###"&5475#"&55&546235#7#35#@U@(@&@+@@+@kV*AA, ,�VV�*+�)%54&"32##"&554635462'"6 &�V k , 6,>K�p p9�  U U j>,=cUUUL+2��-52'6654&"&&54'654&"&&54622"&4��}91'/d�d.'19U#*2F2*#KjK�""�|Y:c%O.FddF/N%c:YY#;%1#22#1%;#5KK ""@�� 75'7#532##"&5533##5463�wwL���+��+�Mxx*�*��@*@���'3"&5462"&55326554&"265` DbE3F2,  , 3F2��1EE1
#33#��� � ��#33#�@`�(#5&&'332654'&546753#&#"� )"@!+/;@d* @!#/4  '..*!-$A)./,-@@�� 5#5#'5#5#!!����*���+��������������U��@@�� #'+/37;?C7#55!%#5%53'3##553'53'#5##5#5'#5'#5#5'#5#5'#5k+���+U++++��+U+++U++*�++*�+�*++�*++�++�++�**+++�+*++�++V**�++++�**V++U++�**�++�++U**@@�� #'+/37;?CGKOS5353535373#5335353'5353'53'5353535353353'5353'53'53@+++++�*�++�*�+++++++�*�+++++++++�***�+++++�++�**�++U++++U++++�++�**V++V**�++U++U**V++U++++U++U++�**�++ 5!!'762#57��*P*2E�P�UU�*P*2E�P�@@�� #'+/37;?C%53#53'53753'3#5!53753#5#57#5##5##553'535#553�+�+�*�++++����*�+�***�+�+*+U+�+++@++++U++�++�+�**�++U+++++U++U++++++��++U++�++��++ @@��#'+/37;%53533##5#535533#53'#5##53#5535#553#53�+++���*��U+*+++U+�+�+U++U+�+�++U++��*��*���++�+U++�++++++��++�++��++++@@�� #'+/37;?C535353'53'3#5353533753'5353753'53'535353@+++*+++++++�+*+��+*++++++*********�++�**�++�**�+�++U++++�����**�++��++�**U++U++�++U++@@�� #5#5!!!%#5##57#5�+�*���+���+++*****U++U*��U���****V++@@�� #'+/37;?C53'5353753533#'5353'5353'5353#53753'53#5353�*****++++*++U+�*�+++++�*�+*+++�+*+@++U++�**�++��++����**V++�++�++V**�++++�**�++++��++@@�� !53%!!#%535353#53353#53�+�����+U+++�*�+�+�+@++�+���**V++U++++++++@@�� #'+/37;?C%53535353753!!53'5353'535353'5353'53#5353@+*+�*++*+�����U+++�*�+++++++�***�+++�**�++++�++U++++�**U++�++�++U**�++U++U++�****�++@@�� #'+/37;?C%53535353'3#5353#3753535353'53353535353@+++++*+++++++�*�+��+�+++++*+++�+++�**�++U++U++�+�**�++���U++++�++U++�****�++U++U++@@�� !!3#5!5!%3#@���U��U���������+*+U**�++�+@@�� !!5!5!5!5!@��������������+U++U**V++U++@@�� !!5!%5!'!5!5@�����������+��++�**�++�++@@�� !!5!5!5!5!@������������+U++U**V++U++��{�%264&##53264&###32 K@  8.-"��$1�@�@[4"/+2H+@��!#'7#'''#7'�+|"-3<:4y!@4��@P,$<��yN{�!5!!"&5467%3'#"''&477'7��+"
���g�
u
v
n3UU / & -fP
 u
u 
n3U=�� '#"&547''7p89%/5KG+�:+G���8 K5"6G� �K6{�
3''3#'##!!�f3*u0�0u��9��@@@U@@�� 753'53%!!5!%753������������UV��**U++�+��++�U�++@@�� 753'53%!!53%5!�������������UU��**U++�+�++�UUk++���� 3#3#537#ի<H/�<H/�@�@@� K�� 75!5!!!#3'35#7����U5JK55KJ�**�****�JJ�JJ5`�� #!!5!5!$2"&42"&42"&4�+��+��+���*�**�**5n+U�� '75!5!!!533#57'5#5353#535#535�+��+��+��j@''@&**@@*�**�****V,,@@V�V

U+��3###"&5535##!"&55463!2�@� + � �  ��� �U U k��k %7#53#7#53+*@�*�+@�+�V��VV��V@k��53##57!###@�@@@j@k@@���@�@k�� 75!%!##5#53@���*jVjjV�++�@@@�@@k+��%5!5!5'"&4633##5##�U��#22#�++*+�U@*@V2F2*���U+��7!!'77"&4633##5##��VV*#22#�+*++�*@UUV2F2*���k@��7!!6"&55326553k*���jK5,>,5k+UK5��++��5�U�� #3!57'5��jj�����@kk@+��+@@�� %5##5##5#2#!"&5463k++*++���VV�֖�+��*++�� 5!5!5!2'!"&5463����+U��U++@++@++��UU+��3''3#!"&546vv����@u ��V++�� %$"&'3&"&462"&462264&"2"&4%J; � ����ee�eS�}}�}�)!!a�e�ee�}�}}�@@��%5!332#!"&54633533#5����+��+�kk���+��*++�kk+��k#2##53264&##553$33#"&4633#"k,>>,VV''Vj���'VV,>>,VVk?X?)'6')�**06')?X?)@@��7!'#!"&5463!2�J*`J���*�`�`5*wM�� 7#'75'7�``K�t�IIU``��sw��HH++�� '!"&5463!2�U��V���U@@�� '7627#�'P'2���P�Pj'P'2��P�kU��
77##5'!!k��U�U*��Ֆ����+U��@3!53!�+��+@��U@���873254&'"&&##5!##"'&'&574#"#4&5&547632�>1 ��SC$'�3$ b "15�6$++=2x-
 %)U@��
7!!%'353UV��UU@*k+�VV��U��
!!%'3537##5UV��UU@*jUU@**�UUVV��UUVVU@��
!!7##5UV��VUU@*�+�VV��U@��2##'73264&#!5%!553k#22#+@@0��V���2F2+@@+"*�**��**W@��"'#5&&'3327'&5'"'6753#&r7/!@!,/<%KSI�@ #/���0..*!-J;I!./,-U��@75!5!5UV���++�++��
"&:73'##73#735#5#'535#5##35#35#3#5##535#53353�8%K#IH"`++++***�***++�++�ր++�ր�Rm*���+��+++*�**�*+++�++Uր++�ր++K+�� 7%773#5!#5j--��-s**k@�t-..-�@�kk@jj+��52#"'#"'##"&463236236�$ > H > $$ > H > 5, , U��@73#5!!U��V���+�+5k��##5#5'!###�@@@�k@k@@��@k@�++��"*%654'&546323&'5##"'#32"&4CZ8-*;9%Y95*C9v�}}�}~ 6=(9**#8 ! (9*�}�}}�kk��!###k*u@u�@�@@��753#"&2!546353#'3#@k@k�kj�kkk��f@@������++�� 5#5##3357'!"&5463!2kV*VV*�U��V+UU+UU���U+U�� '!!!!!!533#57'5#5353#535#535+*��*��*��U@&&@&++@@+*V***V,,@@V�V

UI��$462"462"462""&4&&4�&4&&4|&4&&4o4&&4&4&&4&�4&&4&@@��.%5'7'35#535#37353'7#572#!"&5463��UUUU�V66V65 +$++$+u���5�UU5UU�P P 0�@@@@@@+��*+��k%646332##"&4633#"33264&##"33#"+D1�#22#� �� ��,,��1�bE3F2, +",>++U�#!"&54676632�):?,��5KB0L-:X*=*,?K51I'0I++��%264&##4&#"'"32"&4` 2#-&&�}}�}�,#3%&4&*}�}}�U�77''%#!"&54676632Սo,):?,��5KB0L-:X��n,J=*,?K51I'0IU�%#5##7#!"&54676632k@V@k�):?,��5KB0L-:X�UUk�=*,?K51I'0I+�+#"337'#"&5467'654&##54&#"'632�%#22#���e+�5KH3"):-!& D1 '/:X+3F2��*K54J+=*7 && 1D IU�&%264&##54&#"#"3%#!"&54676632�&& D1(> #22#):?,��5KB0L-:X�&4& 1D0%3F2�=*,?K51I'0IU�%3'337#!"&54676632+@kk@Vr):?,��5KB0L-:X�jjV�=*,?K51I'0IkU��
7!!%'353k*��*��U��+땕��kU��
7!!75#7#k*��UU��U�+V����+U��32#!"&5463�+����+�+U��%5!2#!"&54633���V���+����++U��!%54&"6"26472#!"&54633�;4;f""@���+��""Z�++U�� %5#5##33572#!"&54633�@*@@*V���+�+@@+@@��+@��'2#4&#2#4&#2#2##53!#5463a�+qO>X+?,&@�����++�aPp+W>,?+&���+*@@@��!).2##53!#54632#4&#%#&&'52#4&#2#�����++a�+qO�x_?V>X+?,&@���+*@@��aPpk�?`#�W>,?+&U�!53!53"&55463!2UVU�UV����++��+��%5!2###57#"&5463�����*�*�����@@+��%!2##3#535#"&5463�����*�*���*�+**++@�� /3#'3#73#3#!%#3#3##!"&5463!23UU�kk�UU�kk���*****��+*��kk@@V**���+*++***���%5#2##"&546353U�������*��+�*++++�� 3#'7##5%'53`uu@`@@� @@u@@�@�@`@@u@@� @@u@U��2##5354&"3#"&554��p&@UW|WU@&�qO�&�+>WW>+�&�O@��2##535#5354&"3#"&554��p&��UUW|WU@&�qO�&+�+>WW>+�&�O +k�� #'+;5#5#'5#5#5#'5#5#735'3535'3572#!"&55463�*******�***@******���+**@**@**@**V++�**@*****@**@**@**@�����Y7'�bb��Ybb����I�%'7I��b���b��U�77'7�bb���bb�����U7'7'���b���b@���!'7���L��L*M��M���� 75!''7��b���++�b�� +��
"&*.>%'375#5#'5#5#5#'5#5#735'3535'3572#!"&55463U�@*******�***@******���V�++@++@++@++U++�++@+++++@++@++@++@��+���
3!'7!�+��M��Mk�M��M��� 3#'7'7!5!�**���M��/�����M*k+��3#5&&5326"&55462q$K5*5K$C\CW4&&4&6QFFQ6/>>&�&&�U�!53!53"&55463!2UVU�UV����++��U�%5!5#!3!53!����V+�+����@++@U� #6264&"!53#!"&53"&55463!2�  �VU�VUVk  ������U�!53!535"&55463!2#UVU�UV�����++��@@��37;%5#%#3####5##5#"&55#535#5354633533533235#7#5k�++++++*++++++++*+++�*U���ր*++++++++*+++++++U**U��U�� #465!"&#��WWVe�e�?W���A`��UUFeeo`Ak��%#5#2##"&5463p��V�&&�&&�+��@�&��&&V&k�� %#264&"2##"&5463U�Sv��+��U� �� j U� %5#72##"&55463%3!535463!�Uk � �����+����� � � +�@@�+#�"&2##'35#'5463%3'!53547'!'!� @.U+ �����Q+"2��+
'���+DU � @�o+Y %�HQ��"2@� 'B+@@�� )3%5##5##5#%2#!"&554633537&#"'632&#"'632@+ * +���+1! ()1)10)-=>-�++++++kUUUU� $$--@U��%5##5#%#!"&55463!%7��+*; �� ���++++� uUm(@�� &&55667#5�nRRn�;R���V�Y��Y���iC�BzU+�� %%5#'5#5#'5#5##5##!"&5732k++***++�+�+����UU+**�UUUUUU****@���k��%#2##"&5463k���k*�����k+��)2"&4264&""3264&72##"&5463�4&&4&X??X?kZ�&4&&4�?X??X""*��VU��!13#"&5462"264&"6"326472##"&5463���� ,, F22F3g"/����+U�, , 2F33F�$$D��3U��%!2#!"&5463���U����+�@�%!5#2#!"&5463����V�&&�&&kU��@�&��&&�&+� %!264&"2#!"&5463�������kU��V��j��� "&53"&4632#5462E`F�0EE00EE0E`F0EE0E`F�E`F�0EE0@��%!2###5#"&5463����k�k��+�++U�264&"#'&4773�KjKKj�A�AA�5jKKjK.�4zz2�2zz@@��%3#5'#5375&&5462kUkUUkUV&4&�kAZZAkUD && D+��@ %53!53!53'!!Uk�k�jj��k�++++++�+U��)7%5#72##"&55463264&"7#5&5475'3#"&5463!�Uj� wJU�UU����� �� �b&&&&��++���+264&"264&"'5#5##335%2#!"&55463�B@@+@@+��R*@@*@@���k��+73#&2#4>54&"#4#2##"&5463�&& @+8&&�����&�+2  �*��������$'##5'3#"&5547'"'632'354&0�. @�U@&G�,%1?Ppi>W��U.U�&*�&�7-G$qO�i*>X++�� $5#5##33572#!"&5463!!"&5�U+UU+k�V+��+UU+UU��U��*+++��"&462264&"2"&4@&4&&4`�ee�eS�}}�}4&&4&�e�ee�}�}}�@��%7''2##'#"&5463(XX((XX(�U@@U�((XX((X@��@@+k@�� 3#'##33x�x*���*�k�@��3###"&4632�U6%(88(�@�$18P8++��'/7?GOW_go$2"&42#"54264&"2"&42#"542#"54'"54322"&4'"54322#"542#"54'2#"542"&462"&4"  
f�ee�eS�}}�}@
5
  @
K
J
6
A    �  >
Ke�ee�}�}}�#
U
 ,
@
J  b  @@��%)19AIMU]e$"&462&"&462&"&462"432'"5432%!!"5432"&462&"&462&"&4625!"&462"&462"&462      @
�����+
�  ]K��    ]�  I  I  WV
u+�
 >C��++  a  l55�� !'/TZbjrz�����62"52"&42#"4&2"52"&4$2"52"&47'"&4632'#"&5467'"&4632#"4"&462"&462"&462&"&462"542'"4323"432&&'5462#6"&4625B  j
�B  J�  �[P  <  <  �
i      �  ��
K

   �
@  >�
@  
@  ��Q  <  <  �  b  b  �  W
��
 `  55��%-3;CKS[ciou{�������2"&42"&42"&462"&42#"462"&462"5&2"&42"&42"&462"&4&2"&46"&462'"4322#"4&2"57"432"&462"542$2"&42"562"&42"&462"&4?  v
  �>        �)  
��
  ���  6B      KCM  ��J  W
�  I  �  b  �  >���
�J  W
j  T
  �  b  ++��6462"+}�}}���}}�}k+�� 2#"'664&'6�Y}}Y:019910�}�}ctc�+�� 2#"'664&'6�X}}X"BSSB�}�} q�q �� %264&#"7#'#5'753735KK5!))!�FFdGGdFFdGGd�KjK ?L? �GGdFFdGGdFF��6264&"#'#5'75373�jKKjK+dGGdFFdGGdF�KjKKjdFFdGGdFFdG��%264&##'#5'753735KK5�dGGdFFdGGdF�KjK�dFFdGGdFFdG��2"&4264&"%#'#5'75373�F22F2 jKKjK+FFdGGdFFdGGdU2F22F�KjKKj|GGdFFdGGdFF@@�� #!"&5577'''5463!2�@��@UV�@UVU@* @a�@VVތ@VVVAa+@�� '7622#"'2654��;���4&2#4!��;��&#2+++�� %7667#"'3&&7#&54''7#7'632�NN;L��O.C l��8f��O.C�N;L0�#�0��G��S(S=� �GO�0+U��#6264&"332#!"&54633462"�X??X?+�'D��D#(8((8�?X??X*��8((8(k�'+462552##5#535#"&5463"&4623#�IDI�@@jj@|""jj���+��@@+*+*�""��*k� $264&"72##5#535#"&54633#"}�@@jj@�jj�""���@@+*+*�U*++�� 35#5#'5#5#'5#5#3###"&5463354633232�++++***++++V��� U @++�++�++�++�++�++��@ @@��#+%53##52#5#5#546333#"&5562"&4�+UU+U�+UUUU�F22F2kUU+UUU++UU+�U+U�2F22F@@��!*36264&"62"&453##52#5#5#546333#"&55�""F22F2�+UU+U�+UUUU�""f2F22F�UU+UUU++UU+�U+U++�� 3!!"&57!'#!"&5463!2+*+���@V?�����*�UjO@@��4264&"&264&"264&"264&"72##"#"&46h-W-�Oq?,%PppCh�dG,>  p�p@@��77'%'#57'7762��)�OC)�e�)Ck�)��C)�e�)C@�� 2##5#5553#5#"&5463�jjjVjj++j�����+����@+�*+*++��6264&"2"&473##5#535��ee�eS�}}�}�VV*VVUe�ee�}�}}�V*VV*V@�'$264&"62"&4&&4673##5#535|WW|WE�pp�pU.'8HH8'�@@*@@kW|WW|�p�pp�$XI.dzd. @*@@*@@���%5!%2#!"&55463���*��������@U��%!2#!"&5463���*����+���7!##5#"&55#53535#532�VV*�VV*֫��*VV�*V�ի*�@k��%5!2#!"&55463���*�������@��k%5!%2#!"&55463���*��������@@��%!2#!"&5463���*��k*��U��*@@��#2#5#553##5'3#"&=4633##�+UU+U�UUUU+�UU+��UU+UU+U�+U@k��%5!2#!"&55463���*�������@@��%#7!2#!"&5463*K�:*���*���eL3C*��U��*k@��%#2##"&5463k���k*��U��*UU��%!2#!"&5463�����+�+��� !!!!!!+��V��V��V�+@+@*@U��7%!�xx�������+��@@�� '7627#�'P'2���P�Pj'P'2��P�++��"%3572#!"&5463#53533##��������+++**+UV��@**@��V��++++*U���
%#55733#�*@d������$$�*+��� 3#%23#5767654'&#"#476+��4V=�Y 
..*�K B$ a  1$U���%#55733##5#535�+@d�VV*VV��$$*V*VV*V+��� 03##5#5353#5767654'&#"#4767632�UU+UU��Y 
 .  kV*VV*V�$ a   $# ��Y�)4'&'&"327655432#"'&'&5+ 

   �XA((((98(9t>,;?��"%!2#!"&54635#53%!!"&5���+���+U��U���+��V��+�ի*����+U��(1%#546335#532##!2#!"&5463!!"&5k�+UU+���+��UU���+U+*+*V+��V��+V��+U��!%5%##535#535#532#2%!!"&5!2#!"&5463kUU++UU ��U�����+���+*++*  ���+U�+��V��+��!%!2#!"&5463!!"&5#7���+��UU��?L�;*�+��V��+V��+UqdK2��&%!2#!"&54635#53353%!!"&5���+���U*++��U���+��V��+��U�UU����+U��.%##535#53#32%!!"&5!2#!"&5463kUUU�V+��U�����+���+*�*+���+U�+��V��+��+435"&554633#32#!2#!"&5463!!"&5++VV+���+��UU��**U�*+*++��V��+V��+U��
#%#7#53!2#!"&5463!!"&5*UU�U��+��UU����**�+��V��+V��+U��%)9B35'35"&55463"&5546332#2#!2#!"&5463!!"&5++++ + ���+��UU��**V++�    ++��V��+V��+U��+45#72##535#"&55463!2#!"&5463!!"&5@++UU+���+��UU��@++U�+*+�+��V��+V��+U��#7@5!!5##5#535372#!"&546335###535#"&5546332'!!"&5���++*++*+��V@@@�U��@��Հ**+++���+�U+@��+U@@��%#72#!"&54633��������k*����*��@@��"+2"&453##52#5#5#546333#"&55�4&&4&�+UU+U�+UUUU@&4&&4�UU+UUU++UU+�U+UU�*%264&##54&#"#4&"3%#!"&54676632�&& D1:$)5+2F22#):?,��5KB0L-:X�&4& 1D/ E,#33F2�=*,?K51I'0I++�
!!#'#2#!"&546337��+`JKaV��VUUU�++KK��V��+UU���!77'+��*�`"<����Q��%!2#!"&5463!!"&5���+��UU���+��V��+V��+U ,,�� %+1777&7677673&"&462&'7#67&'7'&'5'67y%/?i/$3?r+)e&4&&4�)M+)N)M%/?i/%3?[+%)k&->3�4&&4&U/$3?~%/?3r/%3?�+%)1��@6264&"467'&&56&5467676'&'&&547�F22F2z-%"@@ ## @@""@@ ## @�2F22FT&E ;!%%#;;#%%!;;!%%#;;#% �� #'753'777&2"&43#7'7'#5'7#5�*�..�.�4&&4&���..U*'.����....�&4&&4*..c���.s**@��
3'7#'##7!335#g2E)D)E���UU�@]N*�++����++��'53''5#5'k!��V�OXM@j+9�.����Y��Ok�+k�335#��VV�@ժ�� @�� '+/%53'53'535332#!4633#3#"&5%5353�++�+*+�*�+��UUUUU+�+@+�**�++�++���*�+��+�++�++
@@��+/3?CG5!3335335355##5##5#2#!"&54633#73#'33#5##5335!#3���*++*++++*++��*++�++U*++*++�*�**��*++++*�++++++@��*�+++++*****+++UU��'/7?2"&42"&42"&42"&46"&4622"&462"&42"&4�""o""o"";""�""��""""o""�""<""<"";""�""�""�""<"" ��  $=%3'5'#'5'#5#33'!"&5'35!#'!2'5#'35#'5#'35#'U* J* JVVa��+��+UV�+J*+JV*+JV*UJ V�J V�VVa�6+J+VV*��+*VJ+*VJ+
++�� #35#5#5#5#5#5#5#5#5#2#!"&5463�VVVVV*VVVVV*VVVVVV��UVV�VV�VVVV�VV�VVVV�VV�VV���V��!0'#5'#5##53353'#'32'735#'532#'#5b6�H + +u� (  `++K  �c���I i55�++u�  ) `i -+@��@ +%5#72##553#5##535#3#'##532**  J@ + @+K  K �@@` @ �++�55�+

-++� ���6264&"62"&4$2"&4Z""F22F3!jKKjK�""f2F22F]KjKKj���$264&"62"&4&2"&4HF22F3!jKKjK�F22F3�2F22F�KjKKj 2F22F**�� 'L%7'6"264264&"&264&"'7'"264#"''"''&477'&47762762cNNM  I    $MMN�  eU\
TU]UU]UT\NNMNz  I    NMN#  4U]UU]UT\UU\@@��7!'#!"&5463!2�J*`J���*�`�`5*+U��#%!2#!"&5463#5##5#57#5���V���+*+�***��+��++++V**V++@@��"%#53733535#5#72#!"&5463kkk*��
+ ++ ���� J*��� ++ ++`��*���!77'+��*�`"<����Q@@�� $)%463"3463#463"#52653#5265##5+W>,?+&��aPp+W>,?��aPp�&@>W*?,&@a�+pP�>W*?,a�+pP&@@@�� -363"'63"'657'#47'#47'#527'#5277'65H9?/*B" �"�e=*++85BVE5)2"X " "+B" *?9*/��="2)5DVB58++*X" ++��2"&4��}}�}�}�}}�@@��(54&##3#3#326554&#2672#!"&5463@VV++VVV�� ++*++ ���*��� 2#4&"#462#4&"#4�Š+p�p+�zX*?X?*��aOqqOa5X>,??,>@@�� %5##5#32#!"&5463@+*+U�����VV�V+��*@@��!5#3#326554&##572#!"&5463@�UUU*���@+�++++���*@@��#'5#"3326554&##572#!"&546353@U**����*@+�++���*�++@@��%5#32#!"&5463+V+�����+�+��*@@��$54&##3#"35#532672#!"&5463@UU*�U*U��+++V++���*++��6264&"2##"&473##5#535��ee�eS�}�X}�VV*VVUe�ee�}X�}�V*VV*V+@��/%#2#5"&463264&#5"32#!"&5463373��->>-((((->>-���E&�&k=Z>&(:'�(:'&=Z>*�+++U��3#!"&546333'33'33�U��*@**+@+++@���VVVVV�@�� 3#"&4632�U3F22#�U�#22F3 k+��%3!535&&5462��ր6GX|WL�S**T S7>XX>9T++��%"&462%3!5#546332#35&&5462nYL8@�� @ �6GX|W9TS*jV V@T S7>XX��I�'7Ibb��bbb����U�'7'Հ�bb���bb@@��4264&"&264&"264&"264&"72##"#"&46h-W-�Oq?,%PppCh�dG,>  p�pU��7!'#!"&5463!2�J*`J����`�`5++��6264&"2"&4��ee�eS�}}�}Ue�ee�}�}}�+U��!2#"'&"#"5432276#"'632� `�` `�`N]XSRYXS���##:##7�U+�� 73&47##!"54764'&543!2�����##:#US�SRYXk `�` `�+U��2"/&4?"2764'��]]�]��VV�V�B�BB�B9r99r9@@��7!'#!"&5463!2�J*`J���*�`�`5*U+�� 7!'''7572#!"&5463�R@.@56��kmR7�� �*��V+U��#6264&"332#!"&54633462"�X??X?+�'D��D#(8((8�?X??X*��8((8(++�� 3!!"&57!'#!"&5463!2+*+���@V?�����*�UjO++�� $0@53'!!"&55375#3535#554&##326'54&##3532672#!"&5463+�+����@ 555k 5  �� @@u��*+K �* @@ �7 �*��@@��#%!2#!"&5463#5462&"&462���*����B<BL((k*��U��*��@&&`��2"&4264&"62"&'6�4&&4&X??X?�����@&4&&4�?X??X�XHHXXHH+��#"'732764'&#'727'5'�887Q1+ !>,++,>ZZQ��NNN���r8�88 ,+|,,EZ[E�NNN<���WW�� 5664&''77&'&'7#67?WW?.==.aa~09A+�`�`+G^GS_a��+�%._-&UW��  %673677#&'7'5&&4675h+r$0�+Wa.==.?WW?�.%�%G_SG^G+`�`B@@��%!2#!"&5463���*��jkkk*��U��*kUU���#%5##5##5##5##5#%2#!"&55463�+*++*++*+�����UUUUUUUU����0�� &75#"&6264&"#"'&5477632&&77}J"  C�  j�  ��4[���  �!A  A�� }�+U�� %7'#55372#!"&5463373@KK�KK�k��D'�'�KK66KK6��**+k�� %7'#55377'#!"&5463!2KK�JJ�kUU �� + �KK66KK6JV��VK  ++�� %$"&'3&"&462"&462264&"2"&4%J; � ����ee�eS�}}�}�)!!a�e�ee�}�}}�@@�� 777##73546335%&'����*U��*U�=�`��@�=�+U+U*�=���++��6264&"2"&4$"'75��ee�eS�}}�} LJj&ZUe�ee�}�}}�(LhL&Z�~�U\%54'&#"2766'432#"5%"3#"'&533254.'&'&547632#4'&%73#5

,{S)RS
, 9)&!# * !** �Ie+@�6$45   Gm9)nn5 
%'
   &:%��Y~��8^"23#"'&533254&&'&'&'&547632#4'&"&53324##5327654#"#47632v , 8(!* !** �*J/+ *. &
*0&*! 
%'
  &*%&"
R! & -$H@+��6264&"%"&4632753#5�|WW|W+*p�ppPA7�*+�UX|WW|�5BOqq�q+ ���++%��/%27''#"&547'537#5'654&#"'632'$�W�{628Pp ;�*+��* W>(" 0:C5U�")>XV��6 qO:0;YI�++L5B:0")>W *++�� !)%67#67#67#53&''3&''3&2"&4��p  >�� p>J?WW�}}�}�@>�@>��R`�`v}�}}�+��532#5#3'35#"&55#535#7#!Հ+�U+@@*�UU+@@**U+���+@@+�++@@�@@�� #533##53%3#5#53#533#3#3#@+UUU����++UU�**����Հ�@�+*+U*+�+*Հ+***�* @k�� #'+/3#53#53#53#53753'3##5353#53#53'53�UUU�V�U�U�U�VVjUV�U�UUU�U�UUUUUUUUjVV�UUUkVVVVVVkUU@k�� !!5!!53@��k��k��������U��!73'#373%3#'#'#"&4632373%7�(D+D)D',% &R1GddGR3 " �����*���� +4e�e@���NNU�#!"&54676632�):?,��5KB0L-:X*=*,?K51I'0I!��!%773#'"&546753#553'7p&@@k#KjK#��@�*�&&}&�+�:#5KK5#:g�++�??S'' !��#'77532"&43#7'7'#5#57'7L&&�*JjKKjK+@@;&&&�*�@{&t''5??jKjKKj +x&K&&5??�++y&++��5#772#!"&5463!!"&5�k56�V+���� ��U��*+@��7!''%2#!"&5463k*`J6 ����`@���*@��  $)-16:>73'''!!"&53#73#'#463#3#3#%2#3#'3##553#3#@�D5'`+�V**U++�+;****��++�+++�++�++++k[E.f�U+++++��+�+*+�*+�+��+�*++@��  ',049=A#53#5#57#46#5#5#5#5"&5532##5'#5#57#5#5�*�+�+++e***++�++��+++�+�++++�++++�**�+��++U++��++++��U��*++U++��+�**U++@��6264&"%2#!"&5463��dd�dk���KjKKj���*L!�� 7'77'7#53''3#5!j&D&B&y**�&�**�*V&$&��'z?_&[?ꀀ%17!##5#"&55#53535#5322#&&''267"#"&'3�++�+++���d� D5Q_Qd� D�+++�++ր+�+�c<`Q�6Q�c<`++��$,4234&#264&"73#!"&54633732'52#4&462"U*�X??X?�j��D'�5K;�(8((8�*��>X??X��+@gK5);��:((:'+�� $064632"264&"'535332#!"&=33##5#5�(((:X??X>+@�'D��+@@+@�:(((&>X??X�@@+�ր@@+@@++U��(7''7''3#!"&546333'33'33i,,,,e;;;;�U��*@**+@+++@,,,;;;+��@@@@@@@��"''77''773#!"&54633#!::::k,,,,*����+:::*,,,,�*+��k��73''72#!"&5463#3#3#��D6&� � j**V++�ZD.� �  ��*�� @+�� '6:'632'3'#&547#"7#7&'264&"%"&46327'#5:1$+
S<]�Feb=-!+�s+5m+5;|WW|W+*p�ppPA7t�gdL�m3�k/�iS�L�K4kX|WW|�5BOqq�q+ j++@@��!7!''73#!"&5463337#5#53533kV@*�@��@@*@@*@kjU@U�@@@*@@*@��77''%2'&5463���L*�����L���tt++�� %7'#"3537"''&47762+JJk *V�����JK5 U@���+�%-5=$264&"62"&4'#5'&54776323"''264&"62"&4$"&462v>,,>+Z>>Z=E/*E <) ,?-�>++>,Z==Z>\""K+>,,>�>Z==Z^1�j< < ) +-��+>,,>�>Z==Z�""U@�� 15!264&"264&"'5462##"&55###"&55&����+X�X  �  kk��3""3�&  &@@�� -!'#264&"264&"%##"&55!##"&5576332k* ���),  �  ,�`�€�  ��%����"575'&77546335332#"'"'#3#"''##532727�����(@�@(1%%`%%1V**-)UU)-**.('\'(�U**U��� c@@c �****++,,+U@�� )5#264&"'5#264&"2#!57"&554�k=Uk-�X, � ,kk�mkk�-"3�+ +�3U@�� 5!264&"'5462#!57"&��o""�X�X, � ,+jj�""�3##3�+ +U@�� )5#264&"'5#264&"2#!57"&554�k=Uk-�X, � ,kk�mkk�-"3�+ +�3���!3735'735"''&#"#3576"&462�<-',+- .G> o+&`""B�ӫ+��+@5*4"/dHI""++��''575575462���+KJ*���@�5u  u5*ku  ukU��2#5!#335"&462�#3+��++�<4&&4&k3#�@@@���&4&&4@?�� %&&'77'7 �&��&�
�#��#�q��p?{��+?��''77'&&'7''7'7F�Pj�#�K- �&EZ�;�>���pQR�{;"q6Z�.�0��++��%''575575462��+KJ*����5u  u5*ku  uk+U��3%!2#!"&54635#535#"&554633533#32##���V���+U@ *+U@ ��+���* @ * @ +U�� &%'7''763#!"&552654&#5463!2"LFZ!![GL���V�W:TT:W1F"UUUU@@��37!!3!535'5!��&��G�k�k��k*�j++j�++@��75!5#72####"&55+�+++2#�#3@++@@k@@#33#�@�� -8CN7!'#264&"264&"%##"&55!##"&5576332&"&54677"&54677"&54677k* ���),  �  ,�� Y X �`�À�  ��* 
%  
%  
% +U�� !5##5#3'5#3#35#573#5##35!U+U@**@+�@�V�@*k++@++@@@��VV@@+��7!2654&''!##"&'� �� m4& @��+�UVV�&:H+D�{@+��17="26447&546325462632#"'"&55#"&"&52463,,� ,   ,  �PpPppPp� ,,F!!
 
!!  �qOqOOqOqU@�� 5264&"5#%"&55##46332322655#"&547'7w  k�&, ��  "-+   jj;�k�U�` �$-+��#+$2"&43!2##33!"&5477'#2"&4Z""��F< L ���M+o""�""o* �#+
5���""@@�� %5#5##33572#!"&5463�UVUUVj���VUUVUU���*U��2#5!#335"&462�#3+��++�<4&&4&k3#�@@@���&4&&4U+��'-6264&""2646"26472#!"&54637"�jKKjK  3  ��Dx2FUKjKKj    7��V��yG2@��"&46263"&#524&&4&@PpoQQopU&4&&4qK�LL�@+�� '6265#"&5#6"342#!"&54633462�X?+&4&+�4&�U��*?X?�>,&&,�&�,??,U@�� +5#5#5#'5#5#5#3#5##5##33533�+++++�++++++++�++++�+@++U**V++�++U**V+++��++++�+++++��264&""''&5546332ht � $ � � ku $ � � � �@��264&##72###E@5KK5@U"V�KjK��@@�� %5#5##3357!57'5!7U@*@@*�++��++2�+@@+@@�*��++��*VC@@��7632#"&546332�0]/
$( �� K  ]0/
 K Ֆ ($ @+��6264&"&264&"&2�""@"""�M���""�""@U��U+U�� &%'7''763#!"&552654&#5463!2"LFZ!![GL���V�W:TT:W1F"UUUU+U��5'72#!"&5463�������U+kk+j��+@�� !5264&"5#72#!5#5463��   +��&U�U&�UU�  �jj�&�UU�&::��''7&6766'&47=���� L. @�Z�
����@ .MZF�+U��#6264&"332#!"&54633462"�X??X?+�'D��D#(8((8�?X??X*��8((8(U�� )$264&"7#3264&"%#"&5#"&5#5463!r@5_��K@+&4&�&4&++u�5��Uk&&&&�V@@�� 1!'#264&"264&"%##"&55!##"&5576335332k* ���),  �  ,5�5`�€�  ��++@+��627&&"6"264&2'&&54��.XNX�4&&4&��pQ>11>QzD&%�&4&&4PqOBf11fBO@@��%5'2'"54777@�� x�r x�rk�-�( ��)-, B)-,��'6264&"%3##5&&'#53667532"&4�|WW|WT,,`C*C`,,`C*C`�F22F2kW|WW|S*C`,,`C*C`,,`2F22F`@��''�����z@@k+�� 7!!3264&".5462k*��j"�@ +GKjKU*;""++u%%4|+5KKk+��264&"&2.54�,, |W,+4'  ,,�W>PF=EAR>++�� %5##376''&%2#!463�u+`5�&�+��U�++�&���U�::��''7&6766'&47=���� L. @�Z�
����@ .MZF�@@�� !7!'''265##526572#!"&5463k*`J6J>W+>,&�����`@ X>,?kA'*��*@U��%5#%##5##5#57!'!5�@+U�V���UUU����+kk�++���!77'+��*�`"<����QU@�� I2654&"264&#"264&#"73##"&55&&535&&535&&535463323�$$$$�$@$ � $@$@$@ � @$@�""�""�-, ,-, ,>��"7'77#5726323"'#5'6"&462ӕi"'*o ?G. -+-I""c+�Id/"3+5@*��*�""k+�� 5#5##335&2.54U@*@@*S|W,+4' +*@@*@@�W>PF=EAR>k+�� 6''&7'62.54>PGG|W,+4' _PGG�W>PF=EAR>@@��#''5��8�����8k+��"6274&"6"2654&2.54�n;4;f""i|W,+4' �.�DW>PF=EAR>@@�� %#7'7#57'53'73''7��1>=π1=>O�1>=π1=>��1=>O�1>=π1=>O�1>=@+��463#5#'53#5&&553353UA*56j*."5".+*+�7�V�k��"1��1"����U@�� 777#536264&"7"&55##46332322655#"&547'7�U+U+�  ;, ��  "-��k�K  /�k�U�` �$-@@�� &54633462"632##54�)� � ?X??XH4@!��9)� *NX??X?G' u++��"&.6%54&#"337335'26!467623#462"6462"�B>;E!$ < !+.�V.++����
 �  ��&&�! !.D-��-D�k3    U@�� 0$264&"'35#5#264&"2##'##57"&554>R+kk*k�SX, +*Q*0 ,55��UUUU�-"3�+ ++ +�$k+�� *%5#264&"7#3#'##57&&554677#53#k�]� +*Q*0" D;f�F?A�kk`&
**
"$�) *+��!(/3735'735"&''&#"3576"&46255#573#'7{;-%.+, -G1  p*&a""�55u5uu55B�ӫ+��,@7*".dGI""��%56& Z %56+��@#+2#5##5##54635#72#5##546;##5#�   �*5 * k�0 0@ k`KK`k @ @ k k ``@+�� 73#6462"#@���8P88PMu���.P88P8��k+��(%4654&"34625#2.548,>,&&&+|W,+4' �2++  =%%%W>PF=EAR>�� "I'5264&"264&"'3&5#264&"2##"&55###"&55&55463236`=MX??X>'��-�>XJ6  �  XS-�[$.k�>X??X�m+?�mX>8SB&  &�3#A+U�k256654&&"55&&54��}G9'/(RbR(</UUBSk?,!5 ,
  #:UVE 7$,+��k77''%2##"&463�ZL'&77&�&77&�ZK(i?X??X?����%#5373U�@�+�g��e�+���
$7!!%!4665!#!"&54'&''3533#@��@��B^_B��A �� l4<j*k$ �*U1BB� �?22WW�� ++��6264&"462"�jKKjKU}�}}��KjKKj#�}}�} UU�� #%53'53'5373#53#535335353UVVV�V*VV�V�VVV*V�VUVV�VV�VVVV�VVVV�VVVVVVUU��!'7���w��w*x��x��k+3��k+k++��
%7#&2"&4U��}}�}�V�}�}}���k@77�kk�kkUU��'7!5!'��w��w���x*x++�� %'7''72"&4kMMMMMMMM��}}�}�MMMMMMMM@}�}}�Ik��77'7���w���w��I�'7Ibb��bbb����U�'7'Հ�bb���bbkk�� ''7'77�wwwwwwwwwwwwwwwww���U''�bbU�bb���I'7b��bI��bkk�� 3#5#53#5'53#3#5+j*@@*j�j@@j�j@�@j*�j*@V@*jkk�� 3#5353#'53#553#5U@j**j@�*jj*U*j��j*@�@j*�*j@@��� !!5!5!@��������+j**k++U��+2"&462"&4&2"&4�""�""�""+""""""�U+�62"&462"&46"&462�""""<""�""�""D""VU��7#7&#"32673#"&4632y2�E&45KK5*B ,\;FddFGy2�E&KjK/&8Hd�d�Ub� '777'bbbDD�bbDD�bbDD��bbDD�@b� %7'77'7DbbDDbb|Dbb�DbbUU��7'#U��w*x��w��wk@��
353#'�M�+�M�@M��M�U@��
%'7#33'7��M�+�M��M�MUU��'737���w*x��w��w���� 3#%'7�++ ��b����bw��� 3#'7'7U++���b�����b��+k'+kk�k��@k75�k��k�+��'7���.�����-��}+��7'7}.��.��-��-�k��'264&"264&"7!547'76275!"&7  t  �=��=-1 D 1��*W|W@    W-KK--11��UU>XX@+��!%'73#5'7'753'64'7((<\\zbwwb�!V1
�)QQ)\\y�bwwb�d2z4*X*V1+U��6264&"72#"&463#53�""*GddGFdd***�""�e�ed�d@kU**++��%2654''7&#"62"&4Fe%�0r%�09FeS�}}�}UeF90�%�90�%e�}�}}�++��%654&#"27'2"&4�$eF<-i<-�$e�}}�}�-<Fe$��$�-<Fe�}�}}�@U�� -!'#264&"264&"%##"&55!##"&5576332k* ���),  �  ,�+`�À�  ��@@��!%5!2#!"&5463353353'77���*��+�+D-hk��U��*++++�D-h@@��'%5!2#!"&5463353353'7'77'���*��+�+�4444444k��U��*++++��4444444@@��#%#55!2#!"&5463353353#5+���*��+�+��**j��U��*++++�+++U�� %'7''772#!"&546337HH7?k���+�G0CC0G%��+++��7!''72#!463k*`J6���UՀ`@��U�@�&$264&"264&"264&"%2#!"''763�WY5��ss������+��*%54&"32##"&554635462'"!"&�U j ,5(8����  U U `8(@��@@��"0%2#"&54633276'7'7'7'753#5� �� K  //^/ $Z;;1
=..=
� K Ֆ ($ /\1/  �(p(y<<1Q=..=Q@@��#%2#"&54633276'5#535� �� K  //^/ $UUk� K Ֆ ($ /\1/  `@V@k@@��,4&#5234&#522#"&54633276@&,?*W>Pp �� K  //^/ $&+?,>W+pPK K Ֆ ($ /\1/  @@��:54&"32##"&5546354622#"&54633276�Z k , �� K  //^/ $�

U U
 � K Ֆ ($ /\1/  C�(%"'&'&55&""''&476 %#53#7�5 .h. 5i"�� �K`���5BB5d�K� `��@@�� $3#2#"&54633276#5�++ �� K  //^/ $+��v K Ֆ ($ /\1/   ��U+�� 5##5##5#72#!"&57�+++��UVVVVVV����U+��%5#5#2#!"&57***���jjV++@���++�� 5##5##5#%2#!463k++*++��U++++++��U�++��5#5#2#!463***���U+UUV++�U�U��%55"&5472'654&#'7UUFeK5FeK5UU�@UV@eF2)!5K+eF2)!5K@UV==�� #)'654'57'567'7#7&5477'67�33 &/�O2 �&/�33f
�33E0*4&/���2,�4&/�33E0* @U��%753756654'553'4677#7&�*�22H8&/%0U*�H8&/%0�22뀀�32F;\, B*5%/���++k;\, B*5%/�32k��
%'353#2##"&5463UUU@*V����VVjj�*�����+��!)2##&'3#&'54632#4&#2#52#4&#k-A�ja�*qO&@>W+>,���+*� ���bOq�&�X>,?@U�� -!'#264&"264&"%##"&55!##"&5576332k* ���),  �  ,�+`�À�  ��@�#%#2##"&54635373#53'53U����+++�k+k+k*��U��@���֫�+��+��++��%55#3572#!463�U�����UիDD�E��U���
/7M75"&55'73#"&54632####3232654754&"32##"&554635462�gV�+}XY}}Y!+ +� 
,/Y j ,A*fAa�Y}}YX}
6* * @/D�

U U
 *��k&&66!##5#%!532�&4&&4&��������#2&&4&&p*++j*�3 k��&&667'#5%%7�0303��a�0��-�"1030g(�(""`(_yB @��k
2!5335"&462�#3�*+�<4&&4&k3#�֖��&4&&4+@��%'#"&5533276%33#"&553�
OI�&�K H �t&��,>*� $�&��� e&+?,�@@��%2##5#"&55332%33#"&553�  `�&�k��&��,?+��&����&+?,�@@�� !33#"&553##57#"&5533232k&UU,?+?`�&�k* &+?,���@U&���+@��!*%'#"&''&67367'#"&''33&&66Z{ Q�##040>c�(<***$?#�` @~  %
."WU+3'��#
#U5��"*%'#"&55463323"'333#"&5536&462�Kl&9>8J�&��,?+/"TK&{!//O&+?,�""+U�� (5#5#5#7"3#!"&552654&#5463!2*****���VK**`**`**�"UUU+��!2#!"&54633'77���������FUUF+VU+�+�FUUF@��5!2###5#"&5463U����k�kU���+�++@��%!2###5#"&5463����k�k��+�++�@��2#5'5463353353VKjK*V*kuK@@KuUUUU+��)"&462"&462#5#76332#5#546332#r$$�$$�@@6  6@�� @ �$$$$�������uu�U�� 762&"62'6 &"k>�=*,~,+L@�ba+P�P�==+,,+@�aa+OOU+�� +%5#5##335'354&"2#!"&5546335462U@*@@*W�'6'��?X?�*@@*@@�++''F��+,??,+U�� (763&'77&'7!66&%2#"&54776k@\1%�  +'1 E3�*;�O=w- 4o�@=%
>*'<3;/9)-�
��
�@��#'663232'354&"'#!"&5547'7�';),?�t'6'�,�'(6?,+��+''��� +U+��
+5#535#264&"73#"&5#"&5535#'732k@@��UI  �*�&4&+�V@@��@@++�@@�  3*&&@@*@@+��73'#''#"&547'#'632'3�J+e�;6CX}&<VJ�6CX}&c�*��`<&}XC6;��&}XC6d++�� %5#62"&4k��}}�}�**�}�}}��@+� 3#462"�VV$$��g$$++�� %3#'&&46�lLLl�+Qoo�Ll�lL��Vz�z++��
%667#&73.2"&4:S��V@?i�S��}}�}WS:V�`R�:S3}�}}�UU��462"462"&4632#"�;V<<V$$�(((V<<V;p$$\8(':'+v��#&'''77&#"'6327�A%+VU� �U=;UI;HZfG=lI;H3.aV� �VFE4@OD+v��7'77'K �U��Uv �V��V@+�3?2"''"''"&55463353327#!"&553277277'"&5477�&" .. # -. "&k*M �� >K$$@&! .. .. !&++� b b � ??  +@��#'+/39%#57#55#3#3#5#5#5#5#5#5#5#5#3!3�+++V�+++++*******++++++++���V��++U**��+*++***V++U++U****V++U++U**���k��
$%2#54'6"2!5466"&462"&462UB8�*�8B7��8x4&&4%�4&&4&�$55,$55$:&4&&4&&4&&4��#/62!54%#54&"&462"'64'632'##5#5353�PX�%8@�4&&4&+

&&�@+@@+�#++++"H&4&&4&D&4&+@@+@@
@@�� #,%5#5#5#5#5#5#'5#5#5#73!357�***V*******V*****Հ���@@�++U****V++U++U**�++U++U**��+*@@++�� %$"&'3&"&462"&462264&"2"&4%J; � ����ee�eS�}}�}�)!!a�e�ee�}�}}�++�� %62#66"&462"&462264&"2"&4�J; � "���ee�eS�}}�}�)!!i�e�ee�}�}}�U+��%!5754675462"&53�+��+3--3�V�++j2J    J2�U+��!%54&"7!5754675462"&53U.N.�+��+3--3o"V��)77)�++j2J    J2�U+��'%'667372635462"&53'!57547'7��
-3n$V��6+��+<��   J2�:�9++k) ;++��%$"&537!5754675462&'7%#67$UV+��+3--3*FS��G+S+�j++j2J    J'V3@g�2Wg@U+�� $5#335#!5754675462"&535j;;j;�+��+3--3�V/&&I&&;++j2J    J2�@@��#2#75'3##5'7#"&=4633'#�kVVk�jV��Vk��Vk��V�k@Vk��kV+U�� /%2654'###7"3&54633&72#!"&5463373,?-&U!4,?-&U!w��D'�'�?,&+�?,&+@�**k��
$%2#54'6"2!5466"&462"&462UB8�*�8B7��8x4&&4%�4&&4&�$55,$55$:&4&&4&&4&&4k��)1>"264"&462&"264"&46254&#"#54&"%2!546326q"" >,,>,�"" >,,>,�G$& GHG++`�*`+/11u""\,>++>I""\,>++>�
 

`'::'UU��62!546"&462�lu���F22F2�/&++&Z2F33FU��$2!54'3##5#5353"&462
lu��@@+@@+�F22F2�/&++&�+@@+@k2F33FUU�� !62!54662"&4"!54&"264�@L?��?IF22F2�XVo&&�*@@*�3F22F�!  �&&U���7#53##5#5355`*6`VV*VV~��� U+UU+U@@�� %5##5##5#2#!"&5463k++*++���VV�֖�+��*++��"*%654&'####32325"&55'2"&4~-;0* *� �fW�}}�}�0C5V + + @T)fA`v}�}}�@�� #5'7'�+��V��������i�YRRVQQ@,��&%2"&547'#"&46327&5462#"'6�$%2%�&&�&4&&���%%%
X&4&W
&&4&X
XU+�� 72654'"&54732654&'�+; D<(C@Kd�dE,! )k;+,*) 5'�4�TFddFlR!.-"4++�� !)62#&"#6264&"2"&4462"6462"�J; #b# �ee�eS�}}�}j��)!**!We�ee�}�}}�0++��#6264&"2"&4462"6462"3#��ee�eS�}}�}j�~��Ue�ee�}�}}�0@ ++�� !)6273"&'3264&"2"&4462"6462"�b# ;J; #�ee�eS�}}�}j��*!))!�e�ee�}�}}�0++��%-62#67'7'77'7''7'7264&"2"&4�J; � ���ee�eS�}}�}�)!!TC�e�ee�}�}}�++�� !$"&'3''777'264&"2"&4%J; � �-.A.-r�ee�eS�}}�}�)!!x----�e�ee�}�}}�@@��77''%2#!"&5463���L*�����L���*@@��2#!"&5463!!���*��*���*+��++��6264&"2"&4��ee�eS�}}�}Ue�ee�}�}}�++��6264&"2"&462"&4��ee�eS�}}�}�X??X?Ue�ee�}�}}�?X??X+@�� %7'77�#t�<<�t#�P�e �� e�+@��%'7'''7'77PG^$�t#��#t�<<�0[>VCe�PP�e ��+@�� %'7''%'7'77PG^$$^G%t#��#t�<<�0[>VV>[�e�PP�e ��� DN2#&&''4##32765'2##5#"&53324##5324#"#476327"&'3d� E5Qo/$
/5#11 #HQd� D�c;`Q�9{"Y/ &�S 
  62  �Q�c<`@+�� ##5###5!&2"&4��+*+���""@�뀀+j""++�� !53#5!3#'3#���k*@@����@@�@@�k++U�j@@���@@�� %$264&"53#!"&5463!2#"3H5���*��G��+*�@@��7!54&"64&"2'463!2#!"&5�XPX�&4&&4�*���%%t4&&4&���++��627&&"6"264&2"&4��/XNX�4&&4&��}}�}fE&%�&4&&4f}�}}�+��%-9733!"&5477'#53367##2"&4&2"&475#53533#���M+F$
�K%R ��""�""�@@*@@�+
5�**+ M��#H""""�@+@@+@++��6264&"62"&47'5''7'7�|WW|WE�pp�p�UeCbbHbUX|WW|�q�qq�p2<�cR RR!S ++�� #3##5#535264&"62"&4%'7'7@@*@@)|WW|WE�pp�p�b�bb@@+@@+@�X|WW|�q�qq�L!S R R#+�� !1'7'32'#"&547''7''7"'632'654&���"W>4�L%/7GPp/�bs!**Pp! W����*5>XzL��%//qOF7.!S X qO,( >W++�� 77'7264&"62"&47'7'7�i�D|WW|WE�pp�phbbHb�j�D�X|WW|�q�qq�~R RR!S +�&2L5##5#7!47'&6632762"&554$2"&5545!##"&55#"&55#"&@V�5�4  A��U * �=&AB%  � ��  �� ��� KKKK ++��%5#75#72#!463***���U�++U����U�@��%!2#!"&5463#53#535������U*j�j@j,��V��*�@k+@k+@@@�� %5##5##5#2#!"&5463k++*++���VV�֖�+��*@@�� )5#5#5#"26472#!"&54633662k��֖�t  ���Y * @++U**V+++   ��*@@��-%54&""264&"26472#!"&54633662�XPX�4&&4&7  ���Y * k%%&4&&4{   ��*@@�� %264&"5#5#2#!"&54633662�  ****���Y * �  ̀�U++@��*@@��$%5#55"26472#!"&54633662UUkk   ���Y * �U@jk@   ��*@@��$%7#5##6"26472#!"&54633662k@V@t  ���Y * �kUU�   ��*@@�� #77''6"26472#!"&54633662ի�7�  ���Y * ���7�   ��*U��#'72654''"&54635�eFUU5Kq5KeFUU[)2Fe@VU@K5DK5!)2Fe@VUU�%3'337#!"&54676632+@kk@Vr):?,��5KB0L-:X�jjV�=*,?K51I'0IU+��7572#!"&5463�56���� �*��Vk@��
2'463k�����@@Uk@��%#72'463k�kk�����/��@@UU@��75#5#7#3#3#"&'#53&55#53547#5367'7627+VVV�-++-<;F;<-++-<#//#++U**�*++##++*#..# ��%''&'&&77'6�1�$Q ^@\&X k1� X&\@\ Q$U��3'34632&#"%##"'73265#�@UV@eF2)!5KV@eF2)!5K@UUFeK UFeK5+U��!!��VՈ����++�� 77''62"&4���L=�}}�}���L�}�}}�@��%#2#!"&54633#53#3#�����Ֆ�����k��@��� �  U+��7572#!"&5463�56���� �*��V+��� %7'7''77cc�����c�bb����b+U��5!5!2#!"&5463���V��V��U++Հ�+�@@�� 3#53!53'53������������Հ����k@��!5373!##"&���Jj���++���U+��
3'5#5##!"&5463vv@������@u�++U++U��V@@��/264&"%2#!"&55463264&"%2#!"&55463�""@ �� /""@ �� @""f � � ��""g � � Ik��77'7���w���w k�� 77'77'7 wZ�xY����w�wYĈ�@@��%5!332#!"&54633533#5����+��+�kk���+��*++�kk@@�� 2#!"&553!!#54637#53'7���+*��+l7��7kk���UU*UU��8*8kk++�� %72"&42"&4/Q�Q(�}}�}�  ѯQ�U}�}}�A  ++��/2####54&"#"&553264&##54633546232�  Q"0"Q !! V,V,V !! Q"0"Q   V++��&62654'#"'2"&42"&4&2"&4��en@!OS�}}�}
pUeFZP# F}�}}�S+9��%'.5463263250;C2:&&:2C4=E90.D71D--D1'T>>+9��-%>54&#"#&&#"2'.5463260.6+ +(+ +6.0`2C;05E=4C2:&&t+,<. ** .<,+ND17D.0>>T'1D--++��5#5#2#!463***���U+UUV++�U�U+��!6462"'654&"327#!"&54633�&4&&4�R?X??,^ ����4&&4&MR,>>X?_V�U6��!%'#"'5332673'"#66327#7&cgh(0>,,�6-'9+�':+T8=,,�6�hg,,�60%$�0%6J,,�6 @@��"&+/48<%5353!!"&553'5353"&53#532##5#46#57#5@+++��U++++�+U*�+�*+++++�++++*�+�+�++U**V++�+++�**V++ @@�� #(,075335375#2##"&554635353"&53'53'53�++*�����+��++++++@++++�������++++�*++V**kU��
7!!%'353k*��*��U��+땕��+@�� %7'77�#t�<<�t#�P�e �� e�++��$264&"&264&"264&"2"&4?, ,U,,U,, 3�}}�}�,,�,, �,,+}�}}�++��!654&"34623475#2"&4A2F2*" **C�}}�}#22#" ! !�**j}�}}�++��6264&"2"&4''7'7��ee�eS�}}�} 7777777Ue�ee�}�}}�7777777@��3'&2"'73264&"3''34 K[:�qq�8,=>XX|W@VS@UZ-7�p�p8,W|WW>VSP+U��
7#5#7##5#�j@��@jVU������+�� 75#'3!!57'U��UU��UU�UU UKK�UUK��UU��UU�+�� !!57'�UU�UUՀUU��UUU+��'54&"264&"72#!"&5546335462B'6'1""��?X?U+''+�""���+,??,+++��5#5#2"&4***C�}}�}@++���@}�}}�++�� 53264&"2"&453�*[�ee�eS�}}�}�*@++�e�ee�}�}}�À�@��75#53572#!"&553!!#5463���U���+���+�@*@U���VV,VUU4��%7"&477Z&L�2d�d2y^5Z&54L�2�dd�2y@k��##"&5546332x]] ������@k��%7'#%##"&5546332ULL� ]] ���kk��
++�� #+05=%364'#67#'64'#67#'67&''3&47#73&&'&2"&4]HH)= ?
d2 R 9
= =
PHH� R x =
��}}�}�,�8(R,,),,�($8�8$(*,�),,,8$(�}�}}�@@��3#5'7#53#!"&54633#+�+��Lj+������L���֕�*+��@��k !!5!%5!%5353'53�+��+��+��+++++k+�++V**U++�++V**U+��'54&"264&"72#!"&5546335462B'6'1""��?X?U+''+�""���+,??,+U+��!)%5!2#!"&55463354&"#462"&462����'6')?X?Z""U����+'',??,+�""U+�� #+%5!354&"2#!"&5546335462"&462��>�'6'��?X?Z""U��+++''F��+,??,+�""++��*%64&#"'&#"264&""''&5546332p[�t � $ � � �,[ u $ � � � ++�2#!"&5463353#35���+��*���U��U+��3'5#5##335#!"&5463vv@@*@@*��@u��*@@*@@*��V@U��##5#72##535!3#"&5463U@*@�UU��UU+V����+��+@@��3#5'7#53#!"&54633#+�+��Lj+������L���֕�*+���� %3'35%5#535#'775#7#+@kk@k@@�@kkU@kk@�@kk@@k@V@@V@kk@@kk@+U�� %%7'654&"32772#!"&54632"&4f>8P88(����, ,|>(88P8��k, ,+U��5!5!2#!"&5463���V��V��U++Հ�+�+@�� /%54&"2672##5665#"&5##"&5463373+""��->+2F2+>-�D'�'�UU��-G/#33#/G-++@@��'%54&""26472#!"&5463353353�XPX�4&&4&U��+�+�%%&4&&4f��*++++�CM$264&"7''##"5'&'''&774&465'&776677433276'"#&�o*
 *OB^��K%  %%  %�^B��k��%#2##"&5463#57#5k����***k*�����ր�V++UU�� !62!54662"&4"!54&"264�@L?��?IF22F2�XVo&&�*@@*�3F22F�!  �&&+�7!''72#!"&54633!!"&5�+K5K����+�����`@`k�*+��*+@@��!3#2#"&54633276��@� �� K  /0]/ $��@6 K Ֆ ($ /]0/  +� 35#5#26�****�x��vU+Հ�[��;Z@��%!2#!"&5463#5������U�j,��V��*U�� U�� #7'#'73�``U`8�U``U`8�����c�򫫫c@@��"&5472654''#5|Dp�pD7W|W7I*�:XPppPX:-G>WW>G,M��+@�� !5264&"5#72#!5#5463��   +��&U�U&�UU�  �jj�&�UU�&++�� '5264&"2"&4 `p1�ee�eS�}}�}kp9D���e�ee�}�}}�++�� ##463!22'#"&55!5k �U  U U�  V+ @ ��U +�@+��!%7777777''''''%5!5!5!@  ���+� �V �++U**V+++@��  A%5#&''7#5!"2646"2642#!"&554633&546327632�m-#@@#-mV��t  t  V��/&! !&Հ<W W<�j**@    ��&&@��
%5#5#***����VVU++@��k@��3'&2"'73264&"3''34 K[:�qq�8,=>XX|W@VS@UZ-7�p�p8,W|WW>VSPk+��264&"&2.54�,, |W,+4'  ,,�W>PF=EAR>++�� '5264&"2"&4 `p1�ee�eS�}}�}kp9D���e�ee�}�}}�@K��6264&"'5'#"&462�P88P8�j j&4:QQtP!�8P88P8j j!PtQQ:4&-+��?6264&"7''##"''&'''&77&47'&776677633276�>,,>,�-+ 5V5 +--+ 5V5 +-�,>,,>
# J8 8 J ## J8 8 J #@@��7GO$4'76''&&''&##"'&773327767776''72#!"&54632"&4p % < %  % < % &���""�4
'(34
'(3���*�""@��2#"'73264&"3'34"&462��ppPB3(/>WW|W@VU@�""�p�p(W|WW>UUP?""kz%'73#5'7'75353#53353=((=\\zbwwb@+�++*�(PP([\z�bxwb��++++++��%#2##"&546353#53#53U����+�*�+��U��U�++++++@��)264&5'75373#'!2#!"&5463&&o 5 5 5 ������@�&4&�5 5 5 5 A,��V��*u�� '7'537#553''7{tt!]]o*V+�+]]!tt���pp�********�pp��"�� (2#4&"#4''75&5462&2#4&"#4�Š+p�p+I@@I ,s|W*?X?*��aPppPa�FI@@IF $$�W>,??,>��
"-9E%53#5&3#5354623#53546253#5&&753#5&&3#535462k�+*V+�+  �+�*  �U�*+��*U*�+  �** ZZWU��U ^��U ��**-ZZ ** ZZ ?U��U ��
"-9E%53#5&3#5354623#53546253#5&&753#5&&3#535462k�+*V+�+  �+�*  �U�*+��*U*�+  �** ZZWU��U ^��U ��**-ZZ ** ZZ ?U��U k+�� 353353353#5'53546332�***+@�@��@****@@��@@��@��'3;$2"&462"&4264&"2"&42"&46##"&46332"&462>=��pp�p_Š�Š��@@��}�p�pp�;�Š�¡�}@��%!2#!"&5463'''%'#�������++U5555�+Vj,��V��*��66�V++++�6@@�� $(3#2#"&54633276'#5##5�++ �� K  /0]/ $++*@+` K Ֆ ($ /]0/  �++++U��#!53"&5472654''#553#53@+
Jd�dJ=KjK>-**�+++�4XFddFX4&H5KK5H%S���+++++Z�(2&"'662&"264&"72##"&5463cC8�8E ,|,Z;""k � E88E�,,�""f �  k��#'#5&&5326553#536"&5546253�K5*5K$C\C1+�*4&&4&�++6RFFR6/>>/��++++�&�&&���+++@��77'7353#!"&53546332���V*����V�kUk+++��++��%%7'5353#!"&553546332!#!"&55uuU+k��jU��U���U@k+++��+���@��
"6264&"'3'32#!"''&54633762�""�@of
( �� 6 f]�""�^^ (�� � +��#+$2"&43!2##33!"&5477'#2"&4Z""��F< L ���M+o""�""o* �#+
5���""++�� %5#5#5#'5#5#5#2#!463����kk*++++++��UU++@++@++�++@++@++�U�4 ��'7'3''##3��lN�X,Ux-m(m �mO�v�@@��++�� %'7''72"&4ZPi))iPZX�}}�}�gE `aEg6}�}}�@U��%5#%##5##5#57!'!5�@+U�V���UUU����+kk�++Uk�� !!5!5!5#5UV��V�����*�++�++�**+k��
"72#54662#54&"&462"&462�3�7B�JP�4&&4&v,,�.05$ 00`&4&&4;, ,@k�� 5#5353#'�U��֖�U@U@*@�@*@Uk@�� ##5#3'353�U@*@�@UU@*�U���UU�++�� %#5##'3353'&2"&4u5+5K�5+5K-�}}�}�UUK�UUKJ}�}}�5��2#!"&54633#!#5'3533�������@U@*@���+*��+*��U��@��%5#5#2#!"&5463������k�U��U��*@��  ',049=A%53#5375353535353532#5"&53'535346353'53k*�+�+++��***++�++��+++�+�++++@++++�**�+U++��++U++�+++U���*++U++U+�**U++U@�� +5#5#5#'5#5#5#3#5##5##33533�+++++�++++++++�++++�+@++U**V++�++U**V+++��++++�+++��3#2'&557#"&57#547763�VVU � �A
��� � b)�@��3##"&55477323�A
� � ��*V+)�� � b��/2'&5667#"&5547763'##"&5547732� j o 1 P1 � j o + � i
4 qUq � i
4 @��k %53'3#53!5!%5!%5!�+++++��+��+��+�**�+�++++V**U++@@��3#5!2#!"&5463353353�kk��*��+�++kU��U��*++++U�� &&467264&"62"&4@/&8HH8&�jKKjK:�ee�e*TB ,\v\, �KjKKj�e�ee�++��5"&4633"&54752654'7"&546752654'�>}�}}X"$2F2&KjK=.?We�e2�>YX}}�}�  -,#22#!&45KK5/G+`AFeeFG2+��
#%3'7#'##''7&'367#53533#SE#`+e+`MBkm(+.��*�?5�]9�@@l,Bjk,5(3?+**+P;+���
%7''777U1hU��U�1�1hU��U�1�@��U5!5!5�U��@U@*@+���
3'''77U�1�U��Uh��1�U��Uhk@��
2'463k�����@@Uk@��%#72'463k�kk�����/��@@U@��77''&&55ի�7��nRRn���7V�Y��Y�+@��2#!"&554632#!"&55463� �� k �� � � � � � � U��� 733#!3��@@��@�������+k�� 3#!533�UU��U�����*@��U��� 3#!333Ukk�kk�������+@��!!2#!"&554635!+��k� �� ��@+ � � ��@@Uk�� !!5!5!%5!UV��V��V��V�*V++�**U++Uk�� !!5!%5!%5353'53�����VVVVV�U�UUjVVkUU�UUjVVU��� 3##5353#53#53'53Ukk�kk�k�kkk��������������U��� 3#53!3353����k��kk������뀀U���!!5!Uk��k�����+k��/2##"&546332##"&5463#2##"&5463 @ � @ � @ � �  �  �  `��2"&4264&"62"&'6�4&&4&X??X?�����@&4&&4�?X??X�XHHXXHH+��%532'327'#"&547'7&&'#"&'67&&"'632'654&�&� ?,!&�z5+2O�7 +�.'.O1>?@&3,? !&���4XH>, ,7.XH;*>,?+@��  A%5#&''7#5!"2646"2642#!"&554633&546327632�m-#@@#-mV��t  t  V��/&! !&Հ<W W<�j**@    ��&&++��5!5!2##'5#"&55463���V��VVUUV+��k++�j**j�+@�� -%5##5##5#5!352#!"&554633546332�@+�+@V��k�k��@�Հ****�j**@+++��+++@��5#32#!"&554633546332+V���VV�++��+++K�� %'5'#"'73264&"3'34632kjk&4&! (88P8JXR5R9:Q"�j k!8P88(UU9RQ:3'kk��!!!���*����+*+@��#%''77264&"332#!"&54633::::GX??X?+�'D��D�;;;P?X>>X+�++��#'2#4>54&"#4264&"2"&453�F2@*"*�ee�eS�}}�}�*�2#9!#�e�ee�}�}}��++@k�� !!5!5!%5!@�����������*V++�**U++@K�� %##5#53533264&"'5'#"&462++++]P88P8�j j&4:QQtP!+++++k8P88P8j j!PtQQ:4&@K�� 3#264&"'5'#"&462�kkP88P8�j j&4:QQtP!@V8P88P8j j!PtQQ:4&��@+5#72###553##5#53##553#5##53�++  + u` �` U +  5  +� `` `` +�55�++@�� %#5463323#%3#5!#5#k����@@j@@��V@���j@@@���@@5@��%&''55'!!+R|"j);q  ����j�
n2� � C+'@��&'77'776!!� |Rq"1*jX)�r �x��j?!
T � ��+�U�� 732653"&733'3�+2F2+KjKk*K``K�#22#5KK�w``k��@ ##3##53#2#353##"&5546;#�@++ `� J* @ u   +� @ + V �@@��%5#%2#!"&5463k����**���*++�� 77''5#2"&4܏q)���}}�}Տq)�++U}�}}�ZR��$64&""&4653#5!#35DDaDDnXX|VVlUUUUU�DaDDaD
X|VV|X@U��UUUU++��/6264&"2"&4"32653#"&5547632#4'&'&��ee�eS�}}�}�((&(*&!&
Ue�ee�}�}}�:: 0*)

>+��6Je|�%#&'&54622654&#"'&476632"&54&"'3262#"'&5432"'&'&5462"54&""&76762'&'&&%"'&#"&47632>.!.&6'&[@.L W4Ig'6&&(* =7)  (3
9GdG:R: � 02x21
-.l.-,;<A6 :GA@+ !.A%%<V/'#(%
 -N-6cE$$8(  �%6 #: �(4/DD/
'77'0"
.-
 '(p  �� '7'7%!!Rx<y�x<yZ<.<�w�6y<x�y<xZ<��<+k+�� )%654&"35&2##"&55&5453##"&=.?X?.Vi|W@ � @U� V � 7,??,7 11�W>N,1 1,N>�� @��%!%#!"&5463!2#5�������V�j,��+���+� $(83'7'3772#5!!#3#535#"&54635#72##"&55463�A5455A�*��++�+��kk k @&>''>&@Ukk�++**+����� � � e��,%##"''76323546232'&546254&"� � j
Iq+8P8* ,� q  j��24(88(5Pk+��-5%3#"&5467326'4633"'32#5#"&54462",:',>0%&!6*$282@*k$$�%0>,':,!&� '*)Iuj�$$+k�� %'73#55#5@UU���UU��UU@*V@UU@*@+��#'%5!2#!"&5463353353#5##5##5���*��+�+++*++U��V��+****�******++��%66737&&'5'&&4670I@hP�I0Ph�2NN2QooQlH0Pi�0HAhPVlVAz�z++�� %6737&'5'&&467 �iO( Oi�QooQ� Ml� �lM("("�z�z @U�� #'+!!53!5353#53#53#53#53753#53#53@���ի����+�+�*�+�+�k�j�k�VU++++�++++++++++V******@U�� !!5!5!%5!@�����������Vj@@�@++k�/$264&"'#53&&#"3267"&547##"&4633'#53{4&&4&�<<!&&!�)8>Z=;#9'->>-�+L^�&4&&4+&4&�<+-==-;%0=Z>+*U2��7!4''7"&5477�&ZZ&�2d�d2y�7&^]&H2FGddGF2y+*��+3;CK%&##"'&'&667667676363226462"&462"&462"462"r     'SS' 
!
  ",,,,�,,,,� *
** (  (Q, ,u,, ,, 6, ,�+U� %##5#5462&462"U@@*&4&*�$$�Vjj�&&$$@��'64''64'2!546462"�>>#,,# $�lu��V2F22F�A�>"3�0%#X $-�/&++&�F22F2 @@�� #'+/3#54&##5325335335353#535353'53533#�+&jj,?��+*++*�+�+++++++*++++Ujj&+?��++++++U++++U++�++V**V++*+U��"'%'5'#56776332'532"&4#'�@@� 8L� Q""`6+K @@@ �.!{L1 �k""��6J ���3#"'"&547'"'"&46327&5462627&5462�L"7
a"a"6L"f"L7a"a6K@@��'5#7&&27653"'&4627 J[Ց;,{,+V|,++88�88p�8:UZ-7j-<,+,xX,+=O7887�p8<++�� %7'5#&2"&4Z` C�}}�}�:o��}�}}��,##"''636325462354623546235462�3#�$�
\���#2�4�  ��˶  �v @@��'%27#"&'#53&47#536632&#"3#3#@3'&6J>cKAAKc>J6&'3'B{��{Au"&1H8++8H1&")"++")��7K%4&##3533#'326'672654'#3#"&546327&#"2##'#"&54633� �a)$FB*� � �.9d? ''),>>W���K* Q2(FBB6 �2"(s:.% ((?X>��@@@��-62"&47'!23'#'#"&547'#"&5477''7�""�� L �l+2L= �/^�""�� �++#�= 
5c^U+��%%264&#"'3'632#"'##!"&5463,??,: U".,,'% 5L���?X>1U"(+>, #U��V�� 2'35#'35#'3'5#'#'��i���~)++++e�z�U+���++)~�+k++�FzUj+k@��3!537377'7''!##"&KJ��Jj�.-------S��++�.----...��@+��"&462#5##&'72""� 2N+*+N2 N��""+�뀀+++��6264&"2"&4%'7��ee�eS�}}�}7�jLUe�ee�}�}}��kLk@�� 3!537335!##"&KJ��Jj�����++�����+� '77'�Z���ZZ��Zx�Z���ZZ��Yx@���!!@����+�@�k7!!��k+++�� 77#53&2"&4�hHjJM�}}�}UІ��}�}}�++�� 7535#57#376"&462�UUK�UUKJ}�}}��5+5K�5+5K-�}}�}U+��&.%2#5#"&77#'76332"&463"2656462"k*k
'/) o
$?X??,&&4&@$$�uk)W! &(NK,>>X?+&4&&�$$+��%!2#!"&5463353353���V��*�*@�����U++++@k�� !!!!!!@����������+*k+*Kk�� 77'32#Kgg� ]] k����k@��%3'33'!##"&5!5373+*UU*V����Jj�VVU��@++*+��
%/%267&#"'47&#""264"264'2#"&465W4A((D:&**_""vX}}XY}}U=0WX#&8 **""�}�}}�}@[�� ###5'7'�@+*+kk*�//��@��
�P(e,j,e@[�� 7'33373'7#'##7�@+*+XP(e,j,e[@
��ek*�//�7@�� %#7'77'77'7''70Z��#8/*_K/�@���8h�/L ^I@�� ''7'7''''����8h�/L ^9Z��$80)^ L. �@[�� 7'33377575'5�@+*+kk*�//�[@
���P(e,j,ek@�� %5!5!5'3'7#'##7�@��
�P(e,j,e�@+*+kk*�//�++��+#'#'#5'75#'7#53'735'753737�YEc+dE*Ed+cEYYEc+dE*Ed+cE*Ed+cEYYEc+dE*Ed+cEYYEc+dEk�� /3'#264&"'5#264&"'35#%#"&5#"&5#5463@kV(@UN UU+�6&4&u&4&+V�wVV�wV*�j&&&&��s'2"''7264&""&462'&"27677]`CC`" <**<G<!`CC`"!<**<G<sD^D"*<*>5!D^D"*<*>5@@��&&6&&7&474367t2�>0s1z11 2=??FbQ8��D2 11z1s0>�2=?�?F8��+@��+5#32##5##"&554633573353#!"&553+V��V�U+U+�V����k**@++@*++*�UU@@��'7264&"264&"&264&"&264&"264&"2#!"&5463RNN��@�NN�.��*@��%CKS73"&26723264&#"#&&""&#"3263%"&'&&'&4766767632$462"6462"�� 4@4!fO  OfO  k _r^!!6I:]!��[�##M</"/<</"/K%/??/% %&0>0% ++��(-$264&"264&"%#"&'##"&547'#53!'2#^�+*-),'-/J7�Gd�UE!+%%+,^++9�dF++��%'''7''7'7'7777�--L�L--L�L�--L�L--L�LU@��7!!5#72####"&55UV��V+++2#�#3k+@@k@@#33#�U+��"&5473462"k�.<KjK@+��B� %��}++��"&*.BJ#76'&773#76''&7735##5##5##5#73#!"&55354632&462"9!)")W"("( *++*++*����@u$$� / ". !. ". ���������!d$$U+�� 3#3#5!5!2#!"&5463�****����k@kk������V+@��Q�462""'&'7'&#52#"'&""'&#"#"'&#"#"'&#"#5276323276323276323"'&#"#"'&#""'&#"#527632327623276323+,,�  E 5)4� 2                 0     0   u,, UE 5� `+�++k��!667&5462!!'?V��V?"���VZ aAAa
�*+��)-19%'3'"&463"332#54&#7#54&#526533#73#%7'#53k??6**!, <% 1$ ' 5 �vk�Օ�?[+:* '"R:$,,$3 �@@@����@+k��,0482#54&##"&463"37#54&#52654&#523#73#%!!V+ !**]% 1$*' 5 �v@��&&#+:* 5:#00$2  *�@@@@@++��&'672663&'&&J* *CC��Dp!!pD_LL_3""_CCgB33BT��+�N#'"/##"/##"57###"''##"5'75&5!7&76'&'"'&743� /
�#" 0/  $ )> p�Qb�BDf'<8R� " %Z ` ` | R� ` � *�Copyright 2015 Google, Inc. All Rights Reserved.Material IconsRegularFontForge 2.0 : Material Icons : 6-9-2016Version 1.015MaterialIcons-Regular��2�� '(
4latn��size�
,latn��ligao�:`j
jt�"V,�.d0\2�4~<�@�D"D�O O�T�c�h�iHm6o.o\  !! }T�� X���.\���0X~���6Z~��� @`�����0Lh�����"<Vn������(>Tj�������  " 4 F X h x � � � � � � � � � �� ! #" "!� !  "� !  � !  � !  %!� !  %!� ! ! �$  $ "!  $!� !# ! !"  ! !"6 ! !!� !#�  "! !  �  $�$ $  � ! ! ! !"   !� !& $�  ! !�$  $� �!! "! �! "!!�  !! ! ! �$ $$�$   "! �  " #� $  "�  ! ! � $ $  !&�    ! !� $ "$ !! &o  !g  ! "" "!�  1   ! !!  "! %�  !V  !� $ !�
"!�
$ �
 �
 Z
!!!
!�
$ !
 !+  !�  �  !!    k ! ! "!$� .# !  � %�#`&� "!� "!�" !
-"� {!��7p���8\����"Bb�����(B\v�����,F`z����� "8Nbv���������!!&  "�"!! !�"!! v $!�"!!  �! " '! "!�! "!�"  !# #!�! �"!! "�!!& "$ �! $  !!� " "� !!& !  � !
    � ! � ! � ! � ! � ! � ! � " !�  �   !  !&� !!& "  !  "!� "   !� !!& !"
 !
 
" !4
" ! � "!!�  7�" "  �" "�" "�Z��@j��� 2Vz����:Xv���� (D`|���� :Tn�����2Jbz�����.BVj~������&8J\l|����������    & 0�! ! "!� % "! �  "!)! �   "!�! " "!�! " !�! ""  g! $ �! " $� #$ &�! "�     !&� $ � &i ! !�  � w ! !^" $/  !� !&� !! �  !�  �  !!�  #� ! !� # !� !!  !�  !\ " � # !� !! !  a " "� !! &� !! "!�  �  � ! "` " ""�  "% ! /  !!�   �  !#� ! ]
" �
 �
 !�
 �
  �
 !� &!�  %_ " �  �  �  �   �'�
�  �  � |!&� j"!�!! ��!�!��� �["�# � $�h !�!��3h���$Hj����.Nn����"@^z�����&<Rh~������ .<JT^f� !  !" � !  !" !?! ! !>! $&=! "$&� !  !" � $  >! !<! &<! !@! $9! m# l ! $$ ~!" ;! �# "$�# :! " � !  !"n! "�! "!�! #� # !�  "!� ! $(  !� "! � "! M  k  ! 8
! �
 �
# "�
! �
! " �   "� # !&  + �# �! ��'�! �'!n*�#) @p����<\z����4Lbx������ $0� ! ! !� &!�% " " �% " " �#! #�% " " �! !!"! �% " " �% "  �% "  p ! !)  "!� % " '- %! ! � % � " &� %  �
#! !u
# !!�
#! !�
#! " &/ %! 0 "'1%!�% ".%�!,#!(��!\��*\��� 6`���&Lr���(Ln���� *Hf�����.Jf�����8Rj������*@Vl�������  & 8 J \ n � � � � � � � �

.
<
J
V
b
l
v8! !%!!  ! 7! !%!!  ! W!  ! " !.! !  -! !  1!  ! "!6! !!"2!  ! "%!  " !&0!  $!  !�! ! " l " +!   !m ! '!  !x!" &  !�! !! !,!  !%!&!  !9! "*!  9! "2#! "!2#! �"  %!�!   $�! !�! !y!" #�! #!�  !� � ! " b  $� ! $/ ! !f  � !  7  ! !N !  3 ! !6  ! ) ! � ! 4 ! "!5  4   2  ! $� ! � !  !� !5 ! 'e  � ! ( ! 3  ! $c  "b
$ a
$ �
! �
  "!�
" �
 ! �   c $ u  i  $: "! h  #�!
�! �! �! 3�! �! �! �  1#!� !�! �! �$d�!A!��"��0,H`x������ 0@LXdp|��  ! %�  " � ! !�
 :
" $� " �  %� �!� 8! � !"o� 9�#4 ��"!�2Tt�����(<N^n~���������<! #?" !&@" "< ! 6  "!&�  "!�  ! q  ! �
 !O !� $= !&�! !"p !5�� � A!! B!�!!>;^,\����4Tt�����0<HT^�!!  %�  ! != ! # �#!  �!! # ? ! #!!E#!  �! !! > ! !< ! !E #!  � ! %!C  "!A  ! !;  ! !@  ! D"!�%�B�  Fn���&Fd���u& $ !t& $ !s& $ $w&  v& $ "x&  �& !z& !"|& #y & { & !r&�!Q��(Nr���$Fh����$B`~����
&B^z�����0H`x�����4J`v������,@Rdv�������� $.8BLK # !R "& #O & !�! \  ! N  !!�!  �!" "!~! b!  !&G !!!] ! ^  !"!] ! � !!G !#!&` P  !�! $$ X &J  $ W  0  S  &> & " = &  � ! !&E  !G  "!M   !M  "!^  D & � $ !&U  # P  � ! Z  ''L  < & �  #Q  !V  Y  �  $!� ! T
 I
 
! a
 !%[
 &�
 !&H  F  !�  ! �  !$L  �  �  � # _  � � H"� � �# !#� N&!&� I"}!C& �"� F�J !K7� +X����4Vx����*D^v������$8L^p����������
�  O" %~  # � ! �  "!=& &  �"!! ">& & " S!'! �"! !�# !<& & � # ! %�  "!C  !2 # !d & !n "  #�
!&B
 !&�
 '�
"�
"  !L & �  #!D  !�  9 � �%'�'� : �&�" ;#���"�c8� :h���
.Pp����8Tn������",,!! !!�!! !#�!! " }!  ! !�!! �!! �!! #! �!$ @! ! !�  &!� !! � !$  #! %! $ $ !" ? $   � !$ $� !$  $ $! e
#!� %! $P! q � !"z!2Pl����Q  $ � #� "! �  !�  R   $S  $!�!&W��Br���&Nv���8^����8Z|��� @^|����0Nl�����0Lf�����2H^t�������  " 4 D T d t � � � � � � � � � � �
*! ' ! !"+! ' ! ,! ' ! � "!! Y # !�!"  !" !W !! C"   "!F&  "!B"     $  '!`$ !! $E&  � ! "!p& !  ^!"  !"X ! !!r    #!�! $    &E&  Y # W !!   &V  �  � $� !"�  #� � "!�  "!]  $\   � � ! ! !"  �! $� !& Z  !!&� &  $�  �  j & ! & ! &�   !�  " �   �  �   ! G & ! 3 ! ! ! "� $ "!D
& $[
 �
  b
  �
!& �  !� f !!�" � !T#$U&!E" !!_&�"�� a!A" 
!�$g�� ���! <d�����" !! �" !! q"" & %!c" !  $b "& "I "" " H"".^���8^����&Db~����0F\r�������&4BP^lz����� "!! "�#  "!!!   $�#  !� "!! � !  ! r#  ""� # #� "!! i !"! "� "!! �" #  &f! � # K ! ! �  !  !! !�  # !! !h ! #$�  #"t
 !"!�
! M
! � & e & d & � # "f& � �g !d!� �$L!�!�#�"!eN&�&Jh�{�P���P���>l���$R~��.Z���,T|���<`����8Z|����  > \ z � � � �
(
D
`
|
�  $ @ Z t � � � � �   2 H ^ t � � � � � �
 2 F Z n � � � � � � � �
*:HVdr~������������
+ " !  !!  �!! #&  ! !! & ! &t!! "!  !s!! "! !�!! #& ! �"!& $ !�"!& $ !m!! "  !�"#  "  �!& &  �!& "!  r!! "! ! $     "  �$ '! �!!  ! v!! "! #l!! ! �!& "! !!  "  �!& & !!     " "k!  !&  !!  !!�$ #!   " p!! ! u!! "! �!! ! n!! "!!�"#  "! $  �!  q!! !!�!! "!w!! # � ! s$ ! #�& ! "! !p!!  &�$ #! �& ! "! !#G!!"  !!~  ! $ z!! !�  !U"" "y!! $x!! {!! #� & ! "!�  � &  �  ! �  "_ ! & �    $! 5 "!!   !Q  #" o !! o " ! � &  ! "! $! #�  X !! ! ! �
$  �
 �
!�
$ '�
! 
 !v
!!#$
!!�
�
$ !Q
! !%!�
   $� $ #!P  %!F  T "!!  ! j !!� } !$i"k!! �# !�"!&� !�"!��O"jR'�w"$&��!�! Y!&�S!�!!�&�#|� 6n���(Nt����2Nj����� 8Pf|������,>Pbr���������� (z  $!  !!�%! !! $�%! !! "�%! !! #!�%! !! $�%! !! � ! !%!� "!�" " $�%! !! "�! � " !�  ! #�  $�  !� "  !�   �   &R %!  �  �  "U  !� %! !�
! �
" $       !  �  !� " � " �!  ��" " !& %!"�%!  lm�!�&T!x��& y""���#&>R`j�  �   � #�!� %Lx���.Lh����� 8Ph������2FZn������I!  !H!  !!J!  !V !#$ !�  !� !& � $ V  &� $ " �  " $ $ !X  � $ !� $ "|  � $ "� $ Y " $Z " "!�
 !&�
$ &{
 �
 !#
$ &�
$ "![
" � !� $ $� $  !� \ " "-!!�$ &W� � &0Tt����*>Rfx����������!  '  !�! ! !!.   !� ! !#� ! !t   ! K  !%!  &  "&�! !( "&! % "!�*�!��]��"!"  "4s  "! � "!� $ &'

7
Samples/UIWidgetsSamples_2019_4/Assets/StreamingAssets/MaterialIcons-Regular.ttf.meta


fileFormatVersion: 2
guid: 05ec51b4ac10dd94dbb717e8378c9652
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

47
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/BottomAppBarSample.cs


using System.Collections.Generic;
using uiwidgets;
using Unity.UIWidgets.engine2;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.material;
using Unity.UIWidgets.rendering;
using Unity.UIWidgets.ui;
using Unity.UIWidgets.widgets;
using UnityEngine;
using Color = Unity.UIWidgets.ui.Color;
using ui_ = Unity.UIWidgets.widgets.ui_;
namespace UIWidgetsSample {
public class BottomAppBarSample : UIWidgetsPanel {
protected override void main() {
ui_.runApp(new MaterialApp(
showPerformanceOverlay: false,
home: new BottomAppBarWidget()));
}
protected new void OnEnable() {
base.OnEnable();
}
}
public class BottomAppBarWidget : StatelessWidget {
public BottomAppBarWidget(Key key = null) : base(key) {
}
public override Widget build(BuildContext context) {
return new Scaffold(
backgroundColor: Colors.grey,
bottomNavigationBar: new BottomAppBar(
child: new Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: new List<Widget> {
new IconButton(icon: new Icon(Unity.UIWidgets.material.Icons.menu), onPressed: () => { }),
new IconButton(icon: new Icon(Unity.UIWidgets.material.Icons.account_balance),
onPressed: () => { })
})));
}
}
}

11
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/BottomAppBarSample.cs.meta


fileFormatVersion: 2
guid: 8ba2c65db2f2848d3a3fa5eb0890abe5
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

107
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/DividerAndButton.cs


using System.Collections.Generic;
using uiwidgets;
using Unity.UIWidgets.engine;
using Unity.UIWidgets.engine2;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.material;
using Unity.UIWidgets.painting;
using Unity.UIWidgets.ui;
using Unity.UIWidgets.widgets;
using TextStyle = Unity.UIWidgets.painting.TextStyle;
using ui_ = Unity.UIWidgets.widgets.ui_;
namespace UIWidgetsSample {
public class DividerAndButton : UIWidgetsPanel {
protected override void main() {
ui_.runApp(new MyApp());
}
class MyApp : StatelessWidget
{
public override Widget build(BuildContext context)
{
return new MaterialApp(
home: new DividerAndButtonSample()
);
}
}
public class DividerAndButtonSample : StatefulWidget {
public DividerAndButtonSample(Key key = null) : base(key) {
}
public override State createState() {
return new _DividerAndButtonState();
}
}
public class _DividerAndButtonState : State<DividerAndButtonSample> {
string title = "Hello";
string subtitle = "World";
TextEditingController controller = new TextEditingController("xxxxxx");
public override Widget build(BuildContext context) {
return new DividerTheme(
data: new DividerThemeData(
),
child: new Container(
height: 200,
padding: EdgeInsets.all(10),
decoration: new BoxDecoration(
color: new Color(0xFFEF1F7F),
border: Border.all(color: Color.fromARGB(255, 0xDF, 0x10, 0x70), width: 5),
borderRadius: BorderRadius.all(20)
),
child: new Center(
child: new Column(
children: new List<Widget>() {
new Text(this.title),
new Divider(),
new Text(this.subtitle),
new Divider(),
new Container(
width: 500,
decoration: new BoxDecoration(border: Border.all(new Color(0xFF00FF00), 1)),
child: new EditableText(
controller: this.controller,
focusNode: new FocusNode(),
style: new TextStyle(
fontSize: 18,
height: 1.5f,
color: new Color(0xFFFF89FD)),
cursorColor: Color.fromARGB(255, 0, 0, 0),
backgroundCursorColor: Colors.grey
)
),
new Divider(),
new ButtonBar(
children: new List<Widget> {
new FlatButton(
onPressed: () => {
this.setState(() => { this.title = this.controller.text; });
},
padding: EdgeInsets.all(5.0f),
child: new Center(
child: new Text("Set Title")
)
),
new RaisedButton(
onPressed: () => {
this.setState(() => { this.subtitle = this.controller.text; });
},
padding: EdgeInsets.all(5.0f),
child: new Center(
child: new Text("Set Subtitle")
)
)
}
)
}
)
)
));
}
}
}
}

11
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/DividerAndButton.cs.meta


fileFormatVersion: 2
guid: 7d02ebc8543484a84b26e073e5ec501f
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

204
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialAppBarSample.cs


using System.Collections.Generic;
using uiwidgets;
using Unity.UIWidgets.engine2;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.material;
using Unity.UIWidgets.painting;
using Unity.UIWidgets.rendering;
using Unity.UIWidgets.ui;
using Unity.UIWidgets.widgets;
using UnityEngine;
using TextStyle = Unity.UIWidgets.painting.TextStyle;
using ui_ = Unity.UIWidgets.widgets.ui_;
namespace UIWidgetsSample {
public class MaterialAppBarSample : UIWidgetsPanel {
protected override void main() {
ui_.runApp(new MaterialApp(
showPerformanceOverlay: false,
home: new MaterialAppBarWidget()));
}
protected new void OnEnable() {
base.OnEnable();
}
}
public class MaterialAppBarWidget : StatefulWidget {
public MaterialAppBarWidget(Key key = null) : base(key) {
}
public override State createState() {
return new MaterialAppBarWidgetState();
}
}
public class MaterialAppBarWidgetState : State<MaterialAppBarWidget> {
Choice _selectedChoice = Choice.choices[0];
GlobalKey<ScaffoldState> _scaffoldKey = GlobalKey<ScaffoldState>.key();
VoidCallback _showBottomSheetCallback;
public override void initState() {
base.initState();
this._showBottomSheetCallback = this._showBottomSheet;
}
void _showBottomSheet() {
this.setState(() => { this._showBottomSheetCallback = null; });
this._scaffoldKey.currentState.showBottomSheet((BuildContext subContext) => {
ThemeData themeData = Theme.of(subContext);
return new Container(
decoration: new BoxDecoration(
border: new Border(
top: new BorderSide(
color: themeData.disabledColor))),
child: new Padding(
padding: EdgeInsets.all(32.0f),
child: new Text("This is a Material persistent bottom sheet. Drag downwards to dismiss it.",
textAlign: TextAlign.center,
style: new TextStyle(
color: themeData.accentColor,
fontSize: 16.0f))
)
);
}).closed.then((object obj) => {
if (this.mounted) {
this.setState(() => { this._showBottomSheetCallback = this._showBottomSheet; });
}
});
}
void _select(Choice choice) {
this.setState(() => { this._selectedChoice = choice; });
}
public override Widget build(BuildContext context) {
return new Scaffold(
key: this._scaffoldKey,
appBar: new AppBar(
title: new Text("Basic AppBar"),
actions: new List<Widget> {
new IconButton(
icon: new Icon(Choice.choices[0].icon),
//color: Colors.blue,
onPressed: () => { this._select((Choice.choices[0])); }
),
new IconButton(
icon: new Icon(Choice.choices[1].icon),
//color: Colors.blue,
onPressed: () => { this._select((Choice.choices[1])); }
),
new PopupMenuButton<Choice>(
onSelected: this._select,
itemBuilder: (BuildContext subContext) => {
List<PopupMenuEntry<Choice>> popupItems = new List<PopupMenuEntry<Choice>>();
for (int i = 2; i < Choice.choices.Count; i++) {
popupItems.Add(new PopupMenuItem<Choice>(
value: Choice.choices[i],
child: new Text(Choice.choices[i].title)));
}
return popupItems;
}
)
}
),
body: new Padding(
padding: EdgeInsets.all(16.0f),
child: new ChoiceCard(choice: this._selectedChoice)
),
floatingActionButton: new FloatingActionButton(
backgroundColor: Colors.redAccent,
child: new Icon(Unity.UIWidgets.material.Icons.add_alert),
onPressed: this._showBottomSheetCallback
),
drawer: new Drawer(
child: new ListView(
padding: EdgeInsets.zero,
children: new List<Widget> {
new ListTile(
leading: new Icon(Unity.UIWidgets.material.Icons.account_circle),
title: new Text("Login"),
onTap: () => { }
),
new Divider(
height: 2.0f),
new ListTile(
leading: new Icon(Unity.UIWidgets.material.Icons.account_balance_wallet),
title: new Text("Wallet"),
onTap: () => { }
),
new Divider(
height: 2.0f),
new ListTile(
leading: new Icon(Unity.UIWidgets.material.Icons.accessibility),
title: new Text("Balance"),
onTap: () => { }
)
}
)
)
);
}
}
class Choice {
public Choice(string title, IconData icon) {
this.title = title;
this.icon = icon;
}
public readonly string title;
public readonly IconData icon;
public static List<Choice> choices = new List<Choice> {
new Choice("Car", Unity.UIWidgets.material.Icons.directions_car),
new Choice("Bicycle", Unity.UIWidgets.material.Icons.directions_bike),
new Choice("Boat", Unity.UIWidgets.material.Icons.directions_boat),
new Choice("Bus", Unity.UIWidgets.material.Icons.directions_bus),
new Choice("Train", Unity.UIWidgets.material.Icons.directions_railway),
new Choice("Walk", Unity.UIWidgets.material.Icons.directions_walk)
};
}
class ChoiceCard : StatelessWidget {
public ChoiceCard(Key key = null, Choice choice = null) : base(key: key) {
this.choice = choice;
}
public readonly Choice choice;
public override Widget build(BuildContext context) {
TextStyle textStyle = Theme.of(context).textTheme.display1;
return new Card(
color: Colors.white,
child: new Center(
child: new Column(
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.center,
children: new List<Widget> {
new Icon(this.choice.icon, size: 128.0f, color: textStyle.color),
new RaisedButton(
child: new Text(this.choice.title, style: textStyle),
onPressed: () => {
SnackBar snackBar = new SnackBar(
content: new Text(this.choice.title + " is chosen !"),
action: new SnackBarAction(
label: "Ok",
onPressed: () => { }));
Scaffold.of(context).showSnackBar(snackBar);
})
}
)
)
);
}
}
}

11
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialAppBarSample.cs.meta


fileFormatVersion: 2
guid: 684439e8285b14ebc894b328936d06dd
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

73
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialButtonSample.cs


using System.Collections.Generic;
using Unity.UIWidgets.engine2;
using Unity.UIWidgets.foundation;
using Unity.UIWidgets.material;
using Unity.UIWidgets.painting;
using Unity.UIWidgets.ui;
using Unity.UIWidgets.widgets;
using UnityEngine;
using Color = Unity.UIWidgets.ui.Color;
using Material = Unity.UIWidgets.material.Material;
using ui_ = Unity.UIWidgets.widgets.ui_;
namespace UIWidgetsSample {
public class MaterialButtonSample : UIWidgetsPanel {
protected override void main() {
ui_.runApp(new MaterialApp(
showPerformanceOverlay: false,
home: new MaterialButtonWidget()));
}
protected new void OnEnable() {
base.OnEnable();
}
}
public class MaterialButtonWidget : StatefulWidget {
public MaterialButtonWidget(Key key = null) : base(key) {
}
public override State createState() {
return new MaterialButtonWidgetState();
}
}
public class MaterialButtonWidgetState : State<MaterialButtonWidget> {
public override Widget build(BuildContext context) {
return new Stack(
children: new List<Widget> {
new Material(
child: new Center(
child: new Column(
children: new List<Widget> {
new Padding(padding: EdgeInsets.only(top: 30f)),
new MaterialButton(
shape: new RoundedRectangleBorder(borderRadius: BorderRadius.all(20.0f)),
color: new Color(0xFF00FF00),
splashColor: new Color(0xFFFF0011),
highlightColor: new Color(0x88FF0011),
child: new Text("Click Me"),
onPressed: () => { Debug.Log("pressed flat button"); }
),
new Padding(padding: EdgeInsets.only(top: 30f)),
new MaterialButton(
shape: new RoundedRectangleBorder(borderRadius: BorderRadius.all(20.0f)),
color: new Color(0xFFFF00FF),
splashColor: new Color(0xFFFF0011),
highlightColor: new Color(0x88FF0011),
elevation: 4.0f,
child: new Text("Click Me"),
onPressed: () => { Debug.Log("pressed raised button"); }
)
}
)
)
)
}
);
}
}
}

11
Samples/UIWidgetsSamples_2019_4/Assets/MaterialSample/MaterialButtonSample.cs.meta


fileFormatVersion: 2
guid: 347e0378e419f46f2af69e1214f1ae5b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:
正在加载...
取消
保存