Merge in the flutter gallery (#176)



Former-commit-id: 563e7e6d96deae9e15737fcd9066820639227f16
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..25cf59c
--- /dev/null
+++ b/README.md
@@ -0,0 +1,30 @@
+# Flutter Gallery
+
+Flutter Gallery is a resource to help developers evaluate and use Flutter.
+It is a collection of material design widgets, behaviors, and vignettes
+implemented with Flutter. We often get asked how one can see Flutter in
+action, and this gallery demonstrates what Flutter provides and how it
+behaves in the wild.
+
+## Supported Platforms
+
+The Flutter Gallery application has been built to support multiple platforms. This includes:
+
+* Android
+* iOS
+* web
+* macOS
+* Linux
+* Windows
+
+That being said, extra steps must be taken to [enable Desktop support](https://github.com/flutter/flutter/wiki/Desktop-shells#tooling).
+
+Additionally, the UI adapts between mobile and desktop layouts regardless of the platform it runs on. This is determined based on window size as outlined in [adaptive.dart](https://github.com/material-components/material-components-flutter-gallery/blob/master/gallery/lib/layout/adaptive.dart).
+
+## To include a new splash animation
+
+1. Convert your animation to a `.gif` file. Ideally, use a background color of `0xFF030303` to ensure the animation blends into the background of the app.
+
+2. Add your new `.gif` file to the assets directory under `assets/splash_effects`. Ensure the name follows the format `splash_effect_$num.gif`. The number should be the next number after the current largest number in the repository.
+
+3. Update the map `_effectDurations` in [splash.dart](https://github.com/material-components/material-components-flutter-gallery/blob/master/gallery/lib/pages/splash.dart) to include the number of the new `.gif` as well as its estimated duration. The duration is used to determine how long to display the splash animation at launch.
diff --git a/codeviewer_cli/.gitignore b/codeviewer_cli/.gitignore
new file mode 100644
index 0000000..50602ac
--- /dev/null
+++ b/codeviewer_cli/.gitignore
@@ -0,0 +1,11 @@
+# Files and directories created by pub
+.dart_tool/
+.packages
+# Remove the following pattern if you wish to check in your lock file
+pubspec.lock
+
+# Conventional directory for build outputs
+build/
+
+# Directory created by dartdoc
+doc/api/
diff --git a/codeviewer_cli/CHANGELOG.md b/codeviewer_cli/CHANGELOG.md
new file mode 100644
index 0000000..532bcd2
--- /dev/null
+++ b/codeviewer_cli/CHANGELOG.md
@@ -0,0 +1,3 @@
+## 1.0.0
+
+- Initial version
diff --git a/codeviewer_cli/README.md b/codeviewer_cli/README.md
new file mode 100644
index 0000000..e68f347
--- /dev/null
+++ b/codeviewer_cli/README.md
@@ -0,0 +1,55 @@
+A command-line application to highlight dart source code.
+
+## Overview
+
+Code segments are highlighted before the app is compiled.
+This is done because the highlighting process can take 300ms to finish, creating a noticeable delay when the demo switches to code page.
+
+The highlighter takes all files in the `gallery/lib/demos/` folder and scans each.
+Highlighted code widgets are stored in the `gallery/lib/codeviewer/code_segments.dart` file.
+Under the root directory, run `make update-code-segments` to run the highlighter.
+
+Wrap a block of code with lines `// BEGIN yourDemoName` and `// END` to mark it for highlighting. The block in between, as well as any copyright notice and imports at the beginning of the file, are automatically taken and highlighted, and stored as `static TextSpan yourDemoName(BuildContext context)` in `gallery/lib/codeviewer/code_segments.dart`.
+To display the code, go to `gallery/lib/data/demos.dart`, and add `code: CodeSegments.yourDemoName,` to your `GalleryDemoConfiguration` object.
+
+## Multiple blocks of code
+
+Use the following method to join multiple blocks of code into a single segment:
+```
+// BEGIN yourDemo#2
+a();
+// END
+b();
+// BEGIN yourDemo#1
+c();
+// END
+```
+The generated code will be
+```
+c();
+a();
+```
+
+Code blocks can nest or overlap. In these cases, specify which file(s) to `END`.
+
+The following source file
+```
+// BEGIN demoOne
+a();
+// BEGIN demoTwo
+b();
+// END demoOne
+c();
+// END demoTwo
+```
+will create the following segments:
+(demoOne)
+```
+a();
+b();
+```
+(demoTwo)
+```
+b();
+c();
+```
diff --git a/codeviewer_cli/analysis_options.yaml b/codeviewer_cli/analysis_options.yaml
new file mode 100644
index 0000000..4f4d26b
--- /dev/null
+++ b/codeviewer_cli/analysis_options.yaml
@@ -0,0 +1,39 @@
+# Defines a default set of lint rules enforced for
+# projects at Google. For details and rationale,
+# see https://github.com/dart-lang/pedantic#enabled-lints.
+include: package:pedantic/analysis_options.yaml
+
+# For lint rules and documentation, see http://dart-lang.github.io/linter/lints.
+# Uncomment to specify additional rules.
+# linter:
+#   rules:
+#     - camel_case_types
+
+analyzer:
+#   exclude:
+#     - path/to/excluded/files/**
+
+linter:
+  rules:
+    - avoid_types_on_closure_parameters
+    - avoid_void_async
+    - await_only_futures
+    - camel_case_types
+    - cancel_subscriptions
+    - close_sinks
+    - constant_identifier_names
+    - control_flow_in_finally
+    - empty_statements
+    - hash_and_equals
+    - implementation_imports
+    - non_constant_identifier_names
+    - package_api_docs
+    - package_names
+    - package_prefixed_library_names
+    - test_types_in_equals
+    - throw_in_finally
+    - unnecessary_brace_in_string_interps
+    - unnecessary_getters_setters
+    - unnecessary_new
+    - unnecessary_statements
+    - directives_ordering
diff --git a/codeviewer_cli/bin/main.dart b/codeviewer_cli/bin/main.dart
new file mode 100644
index 0000000..f7c63aa
--- /dev/null
+++ b/codeviewer_cli/bin/main.dart
@@ -0,0 +1,12 @@
+// Copyright 2019 The Flutter team. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:codeviewer_cli/segment_generator.dart';
+
+main(List<String> arguments) {
+  writeSegments(
+    sourceDirectoryPath: '../gallery/lib/demos',
+    targetFilePath: '../gallery/lib/codeviewer/code_segments.dart',
+  );
+}
diff --git a/codeviewer_cli/lib/prehighlighter.dart b/codeviewer_cli/lib/prehighlighter.dart
new file mode 100644
index 0000000..09c3a65
--- /dev/null
+++ b/codeviewer_cli/lib/prehighlighter.dart
@@ -0,0 +1,412 @@
+// Copyright 2019 The Flutter team. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:string_scanner/string_scanner.dart';
+
+abstract class SyntaxPrehighlighter {
+  List<CodeSpan> format(String src);
+}
+
+class DartSyntaxPrehighlighter extends SyntaxPrehighlighter {
+  DartSyntaxPrehighlighter() {
+    _spans = <_HighlightSpan>[];
+  }
+
+  static const List<String> _keywords = <String>[
+    'abstract',
+    'as',
+    'assert',
+    'async',
+    'await',
+    'break',
+    'case',
+    'catch',
+    'class',
+    'const',
+    'continue',
+    'default',
+    'deferred',
+    'do',
+    'dynamic',
+    'else',
+    'enum',
+    'export',
+    'external',
+    'extends',
+    'factory',
+    'false',
+    'final',
+    'finally',
+    'for',
+    'get',
+    'if',
+    'implements',
+    'import',
+    'in',
+    'is',
+    'library',
+    'new',
+    'null',
+    'operator',
+    'part',
+    'rethrow',
+    'return',
+    'set',
+    'static',
+    'super',
+    'switch',
+    'sync',
+    'this',
+    'throw',
+    'true',
+    'try',
+    'typedef',
+    'var',
+    'void',
+    'while',
+    'with',
+    'yield',
+  ];
+
+  static const List<String> _builtInTypes = <String>[
+    'int',
+    'double',
+    'num',
+    'bool',
+  ];
+
+  String _src;
+  StringScanner _scanner;
+
+  List<_HighlightSpan> _spans;
+
+  @override
+  List<CodeSpan> format(String src) {
+    _src = src;
+    _scanner = StringScanner(_src);
+
+    if (_generateSpans()) {
+      // Successfully parsed the code
+      final List<CodeSpan> formattedText = <CodeSpan>[];
+      int currentPosition = 0;
+
+      for (_HighlightSpan span in _spans) {
+        if (currentPosition != span.start) {
+          formattedText
+              .add(CodeSpan(text: _src.substring(currentPosition, span.start)));
+        }
+
+        formattedText
+            .add(CodeSpan(type: span.type, text: span.textForSpan(_src)));
+
+        currentPosition = span.end;
+      }
+
+      if (currentPosition != _src.length) {
+        formattedText
+            .add(CodeSpan(text: _src.substring(currentPosition, _src.length)));
+      }
+
+      return formattedText;
+    } else {
+      // Parsing failed, return with only basic formatting
+      return [CodeSpan(type: _HighlightType.base, text: src)];
+    }
+  }
+
+  bool _generateSpans() {
+    int lastLoopPosition = _scanner.position;
+
+    while (!_scanner.isDone) {
+      // Skip White space
+      _scanner.scan(RegExp(r'\s+'));
+
+      // Block comments
+      if (_scanner.scan(RegExp(r'/\*(.|\n)*\*/'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.comment,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Line comments
+      if (_scanner.scan('//')) {
+        final int startComment = _scanner.lastMatch.start;
+
+        bool eof = false;
+        int endComment;
+        if (_scanner.scan(RegExp(r'.*\n'))) {
+          endComment = _scanner.lastMatch.end - 1;
+        } else {
+          eof = true;
+          endComment = _src.length;
+        }
+
+        _spans.add(_HighlightSpan(
+          _HighlightType.comment,
+          startComment,
+          endComment,
+        ));
+
+        if (eof) {
+          break;
+        }
+
+        continue;
+      }
+
+      // Raw r"String"
+      if (_scanner.scan(RegExp(r'r".*"'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.string,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Raw r'String'
+      if (_scanner.scan(RegExp(r"r'.*'"))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.string,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Multiline """String"""
+      if (_scanner.scan(RegExp(r'"""(?:[^"\\]|\\(.|\n))*"""'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.string,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Multiline '''String'''
+      if (_scanner.scan(RegExp(r"'''(?:[^'\\]|\\(.|\n))*'''"))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.string,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // "String"
+      if (_scanner.scan(RegExp(r'"(?:[^"\\]|\\.)*"'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.string,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // 'String'
+      if (_scanner.scan(RegExp(r"'(?:[^'\\]|\\.)*'"))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.string,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Double
+      if (_scanner.scan(RegExp(r'\d+\.\d+'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.number,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Integer
+      if (_scanner.scan(RegExp(r'\d+'))) {
+        _spans.add(_HighlightSpan(_HighlightType.number,
+            _scanner.lastMatch.start, _scanner.lastMatch.end));
+        continue;
+      }
+
+      // Punctuation
+      if (_scanner.scan(RegExp(r'[\[\]{}().!=<>&\|\?\+\-\*/%\^~;:,]'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.punctuation,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Meta data
+      if (_scanner.scan(RegExp(r'@\w+'))) {
+        _spans.add(_HighlightSpan(
+          _HighlightType.keyword,
+          _scanner.lastMatch.start,
+          _scanner.lastMatch.end,
+        ));
+        continue;
+      }
+
+      // Words
+      if (_scanner.scan(RegExp(r'\w+'))) {
+        _HighlightType type;
+
+        String word = _scanner.lastMatch[0];
+        if (word.startsWith('_')) {
+          word = word.substring(1);
+        }
+
+        if (_keywords.contains(word)) {
+          type = _HighlightType.keyword;
+        } else if (_builtInTypes.contains(word)) {
+          type = _HighlightType.keyword;
+        } else if (_firstLetterIsUpperCase(word)) {
+          type = _HighlightType.klass;
+        } else if (word.length >= 2 &&
+            word.startsWith('k') &&
+            _firstLetterIsUpperCase(word.substring(1))) {
+          type = _HighlightType.constant;
+        }
+
+        if (type != null) {
+          _spans.add(_HighlightSpan(
+            type,
+            _scanner.lastMatch.start,
+            _scanner.lastMatch.end,
+          ));
+        }
+      }
+
+      // Check if this loop did anything
+      if (lastLoopPosition == _scanner.position) {
+        // Failed to parse this file, abort gracefully
+        return false;
+      }
+      lastLoopPosition = _scanner.position;
+    }
+
+    _simplify();
+    return true;
+  }
+
+  void _simplify() {
+    for (int i = _spans.length - 2; i >= 0; i -= 1) {
+      if (_spans[i].type == _spans[i + 1].type &&
+          _spans[i].end == _spans[i + 1].start) {
+        _spans[i] = _HighlightSpan(
+          _spans[i].type,
+          _spans[i].start,
+          _spans[i + 1].end,
+        );
+        _spans.removeAt(i + 1);
+      }
+    }
+  }
+
+  bool _firstLetterIsUpperCase(String str) {
+    if (str.isNotEmpty) {
+      final String first = str.substring(0, 1);
+      return first == first.toUpperCase();
+    }
+    return false;
+  }
+}
+
+enum _HighlightType {
+  number,
+  comment,
+  keyword,
+  string,
+  punctuation,
+  klass,
+  constant,
+  base,
+}
+
+class _HighlightSpan {
+  _HighlightSpan(this.type, this.start, this.end);
+  final _HighlightType type;
+  final int start;
+  final int end;
+
+  String textForSpan(String src) {
+    return src.substring(start, end);
+  }
+}
+
+class CodeSpan {
+  CodeSpan({this.type = _HighlightType.base, this.text});
+
+  final _HighlightType type;
+  final String text;
+
+  @override
+  String toString() {
+    return 'TextSpan('
+        'style: codeStyle.${_styleNameOf(type)}, '
+        "text: '${_escape(text)}'"
+        ')';
+  }
+}
+
+String _styleNameOf(_HighlightType type) {
+  switch (type) {
+    case _HighlightType.number:
+      return 'numberStyle';
+    case _HighlightType.comment:
+      return 'commentStyle';
+    case _HighlightType.keyword:
+      return 'keywordStyle';
+    case _HighlightType.string:
+      return 'stringStyle';
+    case _HighlightType.punctuation:
+      return 'punctuationStyle';
+    case _HighlightType.klass:
+      return 'classStyle';
+    case _HighlightType.constant:
+      return 'constantStyle';
+    case _HighlightType.base:
+      return 'baseStyle';
+  }
+  return '';
+}
+
+String _escape(String text) {
+  StringBuffer escapedText = StringBuffer();
+
+  for (final char in text.runes) {
+    if (char < 0x20 ||
+        char >= 0x7F ||
+        char == 0x22 ||
+        char == 0x24 ||
+        char == 0x27 ||
+        char == 0x5C) {
+      if (char <= 0xffff) {
+        escapedText.write("\\u${_encodeAndPad(char)}");
+      } else {
+        escapedText.write("\\u{${_encode(char)}}");
+      }
+    } else {
+      escapedText.write(String.fromCharCode(char));
+    }
+  }
+
+  return escapedText.toString();
+}
+
+String _encode(int charCode) {
+  return charCode.toRadixString(16);
+}
+
+String _encodeAndPad(int charCode) {
+  String encoded = _encode(charCode);
+  return '0' * (4 - encoded.length) + encoded;
+}
diff --git a/codeviewer_cli/lib/segment_generator.dart b/codeviewer_cli/lib/segment_generator.dart
new file mode 100644
index 0000000..258a3bd
--- /dev/null
+++ b/codeviewer_cli/lib/segment_generator.dart
@@ -0,0 +1,266 @@
+// Copyright 2019 The Flutter team. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'dart:convert';
+import 'dart:io';
+import 'prehighlighter.dart';
+
+const _globalPrologue =
+    '''// This file is automatically generated by codeviewer_cli.
+// Do not edit this file.
+
+// Copyright 2019 The Flutter team. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter/material.dart';
+import 'package:gallery/codeviewer/code_style.dart';
+
+class CodeSegments {
+''';
+
+const _globalEpilogue = '}\n';
+
+final Pattern beginSubsegment = RegExp(r'//\s+BEGIN');
+final Pattern endSubsegment = RegExp(r'//\s+END');
+
+enum _FileReadStatus {
+  comments,
+  imports,
+  finished,
+}
+
+/// Returns the new status of the scanner whose previous status was
+/// [oldStatus], after scanning the line [line].
+_FileReadStatus _updatedStatus(_FileReadStatus oldStatus, String line) {
+  _FileReadStatus lineStatus;
+  if (line.trim().startsWith('//')) {
+    lineStatus = _FileReadStatus.comments;
+  } else if (line.trim().startsWith('import')) {
+    lineStatus = _FileReadStatus.imports;
+  } else {
+    lineStatus = _FileReadStatus.finished;
+  }
+
+  _FileReadStatus newStatus;
+  switch (oldStatus) {
+    case _FileReadStatus.comments:
+      newStatus =
+          (line.trim().isEmpty || lineStatus == _FileReadStatus.comments)
+              ? _FileReadStatus.comments
+              : lineStatus;
+      break;
+    case _FileReadStatus.imports:
+      newStatus = (line.trim().isEmpty || lineStatus == _FileReadStatus.imports)
+          ? _FileReadStatus.imports
+          : _FileReadStatus.finished;
+      break;
+    case _FileReadStatus.finished:
+      newStatus = oldStatus;
+      break;
+  }
+  return newStatus;
+}
+
+Map<String, String> _createSegments(String sourceDirectoryPath) {
+  List<File> files = Directory(sourceDirectoryPath)
+      .listSync(recursive: true)
+      .whereType<File>()
+      .toList();
+
+  Map<String, StringBuffer> subsegments = {};
+  Map<String, String> subsegmentPrologues = {};
+
+  Set<String> appearedSubsegments = Set();
+
+  for (final file in files) {
+    // Process file.
+
+    String content = file.readAsStringSync();
+    List<String> lines = LineSplitter().convert(content);
+
+    _FileReadStatus status = _FileReadStatus.comments;
+
+    StringBuffer prologue = StringBuffer();
+
+    Set<String> activeSubsegments = Set();
+
+    for (final line in lines) {
+      // Update status.
+
+      status = _updatedStatus(status, line);
+
+      if (status != _FileReadStatus.finished) {
+        prologue.writeln(line);
+      }
+
+      // Process run commands.
+
+      if (line.trim().startsWith(beginSubsegment)) {
+        String argumentString = line.replaceFirst(beginSubsegment, '').trim();
+        List<String> arguments =
+            argumentString.isEmpty ? [] : argumentString.split(RegExp(r'\s+'));
+
+        for (final argument in arguments) {
+          if (activeSubsegments.contains(argument)) {
+            throw PreformatterException(
+                'BEGIN $argument is used twice in file ${file.path}');
+          } else if (appearedSubsegments.contains(argument)) {
+            throw PreformatterException('BEGIN $argument is used twice');
+          } else {
+            activeSubsegments.add(argument);
+            appearedSubsegments.add(argument);
+            subsegments[argument] = StringBuffer();
+            subsegmentPrologues[argument] = prologue.toString();
+          }
+        }
+      } else if (line.trim().startsWith(endSubsegment)) {
+        String argumentString = line.replaceFirst(endSubsegment, '').trim();
+        List<String> arguments =
+            argumentString.isEmpty ? [] : argumentString.split(RegExp(r'\s+'));
+
+        if (arguments.isEmpty && activeSubsegments.length == 1) {
+          arguments.add(activeSubsegments.first);
+        }
+
+        for (final argument in arguments) {
+          if (activeSubsegments.contains(argument)) {
+            activeSubsegments.remove(argument);
+          } else {
+            throw PreformatterException(
+                'END $argument is used without a paired BEGIN in ${file.path}');
+          }
+        }
+      } else {
+        // Simple line.
+
+        for (final name in activeSubsegments) {
+          subsegments[name].writeln(line);
+        }
+      }
+    }
+
+    if (activeSubsegments.isNotEmpty) {
+      throw PreformatterException('File ${file.path} has unpaired BEGIN');
+    }
+  }
+
+  Map<String, List<TaggedString>> segments = {};
+  Map<String, String> segmentPrologues = {};
+
+  // Sometimes a code segment is made up of subsegments. They are marked by
+  // names with a "#" symbol in it, such as "bottomSheetDemoModal#1" and
+  // "bottomSheetDemoModal#2".
+  // The following code groups the subsegments by order into segments.
+  subsegments.forEach((key, value) {
+    String name;
+    double order;
+
+    if (key.contains('#')) {
+      List<String> parts = key.split('#');
+      name = parts[0];
+      order = double.parse(parts[1]);
+    } else {
+      name = key;
+      order = 0;
+    }
+
+    if (!segments.containsKey(name)) {
+      segments[name] = [];
+    }
+    segments[name].add(
+      TaggedString(
+        text: value.toString(),
+        order: order,
+      ),
+    );
+
+    segmentPrologues[name] = subsegmentPrologues[key];
+  });
+
+  segments.forEach((key, value) {
+    value.sort((ts1, ts2) => (ts1.order - ts2.order).sign.round());
+  });
+
+  Map<String, String> answer = {};
+
+  for (final name in segments.keys) {
+    StringBuffer buffer = StringBuffer();
+
+    buffer.write(segmentPrologues[name].trim());
+    buffer.write('\n\n');
+
+    for (final ts in segments[name]) {
+      buffer.write(ts.text.trim());
+      buffer.write('\n\n');
+    }
+
+    answer[name] = buffer.toString();
+  }
+
+  return answer;
+}
+
+/// A string [text] together with a number [order], for sorting purposes.
+/// Used to store different subsegments of a code segment.
+/// The [order] of each subsegment is tagged with the code in order to be
+/// sorted in the desired order.
+class TaggedString {
+  TaggedString({this.text, this.order});
+
+  final String text;
+  final double order;
+}
+
+void _formatSegments(Map<String, String> segments, String targetFilePath) {
+  File targetFile = File(targetFilePath);
+  IOSink output = targetFile.openWrite();
+
+  output.write(_globalPrologue);
+
+  for (final name in segments.keys) {
+    String code = segments[name];
+
+    output.writeln('  static TextSpan $name (BuildContext context) {');
+    output.writeln('    final CodeStyle codeStyle = CodeStyle.of(context);');
+    output.writeln('    return TextSpan(children: [');
+
+    List<CodeSpan> codeSpans = DartSyntaxPrehighlighter().format(code);
+
+    for (final span in codeSpans) {
+      output.write('    ');
+      output.write(span.toString());
+      output.write(',\n');
+    }
+
+    output.write('  ]); }\n');
+  }
+
+  output.write(_globalEpilogue);
+
+  output.close();
+}
+
+/// Collect code segments, highlight, and write to file.
+///
+/// [writeSegments] walks through the directory specified by
+/// [sourceDirectoryPath] and reads every file in it,
+/// collects code segments marked by "// BEGIN <segment_name>" and "// END",
+/// highlights them, and writes to the file specified by
+/// [targetFilePath].
+///
+/// The output file is a dart source file with a class "CodeSegments" and
+/// static methods of type TextSpan(BuildContext context).
+/// Each method generates a widget that displays a segment of code.
+///
+/// The target file is overwritten.
+void writeSegments({String sourceDirectoryPath, String targetFilePath}) {
+  Map<String, String> segments = _createSegments(sourceDirectoryPath);
+  _formatSegments(segments, targetFilePath);
+}
+
+class PreformatterException implements Exception {
+  PreformatterException(this.cause);
+  String cause;
+}
diff --git a/codeviewer_cli/pubspec.yaml b/codeviewer_cli/pubspec.yaml
new file mode 100644
index 0000000..a904c8b
--- /dev/null
+++ b/codeviewer_cli/pubspec.yaml
@@ -0,0 +1,12 @@
+name: codeviewer_cli
+description: A command-line application to highlight dart source code.
+
+environment:
+  sdk: '>=2.4.0 <3.0.0'
+
+dependencies:
+  string_scanner: 1.0.5
+
+dev_dependencies:
+  pedantic: 1.8.0
+  test: ^1.5.0
diff --git a/gallery/.gitignore b/gallery/.gitignore
new file mode 100644
index 0000000..24b006e
--- /dev/null
+++ b/gallery/.gitignore
@@ -0,0 +1,79 @@
+# Miscellaneous
+*.class
+*.log
+*.pyc
+*.swp
+.DS_Store
+.atom/
+.buildlog/
+.history
+.svn/
+.firebase/
+.flutter-plugins-dependencies
+
+# IntelliJ related
+*.iml
+*.ipr
+*.iws
+.idea/
+
+# The .vscode folder contains launch configuration and tasks you configure in
+# VS Code which you may wish to be included in version control, so this line
+# is commented out by default.
+#.vscode/
+
+# Flutter/Dart/Pub related
+**/doc/api/
+.dart_tool/
+.flutter-plugins
+.flutter-plugins-dependencies
+.packages
+.pub-cache/
+.pub/
+/build/
+
+# Android related
+**/android/**/gradle-wrapper.jar
+**/android/.gradle
+**/android/captures/
+**/android/gradlew
+**/android/gradlew.bat
+**/android/local.properties
+**/android/**/GeneratedPluginRegistrant.java
+
+# iOS/XCode related
+**/ios/**/*.mode1v3
+**/ios/**/*.mode2v3
+**/ios/**/*.moved-aside
+**/ios/**/*.pbxuser
+**/ios/**/*.perspectivev3
+**/ios/**/*sync/
+**/ios/**/.sconsign.dblite
+**/ios/**/.tags*
+**/ios/**/.vagrant/
+**/ios/**/DerivedData/
+**/ios/**/Icon?
+**/ios/**/Pods/
+**/ios/**/.symlinks/
+**/ios/**/profile
+**/ios/**/xcuserdata
+**/ios/.generated/
+**/ios/Flutter/App.framework
+**/ios/Flutter/Flutter.framework
+**/ios/Flutter/Generated.xcconfig
+**/ios/Flutter/app.flx
+**/ios/Flutter/app.zip
+**/ios/Flutter/flutter_assets/
+**/ios/Flutter/flutter_export_environment.sh
+**/ios/ServiceDefinitions.json
+**/ios/Runner/GeneratedPluginRegistrant.*
+
+# Web related
+lib/generated_plugin_registrant.dart
+
+# Exceptions to above rules.
+!**/ios/**/default.mode1v3
+!**/ios/**/default.mode2v3
+!**/ios/**/default.pbxuser
+!**/ios/**/default.perspectivev3
+!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
diff --git a/gallery/.metadata b/gallery/.metadata
new file mode 100644
index 0000000..9ce83ab
--- /dev/null
+++ b/gallery/.metadata
@@ -0,0 +1,10 @@
+# This file tracks properties of this Flutter project.
+# Used by Flutter tool to assess capabilities and perform upgrades etc.
+#
+# This file should be version controlled and should not be manually edited.
+
+version:
+  revision: f5733f7a62ebc7c2ba324a2b410cd81215956b7d
+  channel: master
+
+project_type: app
diff --git a/gallery/Makefile b/gallery/Makefile
new file mode 100644
index 0000000..488991a
--- /dev/null
+++ b/gallery/Makefile
@@ -0,0 +1,58 @@
+ROOT := $(shell git rev-parse --show-toplevel)
+FLUTTER := $(shell which flutter)
+FLUTTER_BIN_DIR := $(shell dirname $(FLUTTER))
+FLUTTER_DIR := $(FLUTTER_BIN_DIR:/bin=)
+DART := $(FLUTTER_BIN_DIR)/cache/dart-sdk/bin/dart
+
+.PHONY: analyze
+analyze:
+	$(FLUTTER) analyze
+
+.PHONY: format
+format:
+	$(FLUTTER) format .
+
+.PHONY: test
+test:
+	$(FLUTTER) test
+
+.PHONY: build-web
+build-web:
+	$(FLUTTER) build web
+
+.PHONY: fetch-master
+fetch-master:
+	$(shell git fetch origin master)
+
+.PHONY: master-branch-check
+master-branch-check: fetch-master
+  ifneq ($(shell git rev-parse --abbrev-ref HEAD),master)
+		$(error Not on master branch, please checkout master)
+  endif
+  ifneq ($(shell git rev-parse HEAD),$(shell git rev-parse origin/master))
+		$(error Your master branch is not up to date with origin/master, please pull before deploying)
+  endif
+
+
+.PHONY: deploy
+deploy: master-branch-check build-web
+	cp $(ROOT)/gallery/web/favicon.ico $(ROOT)/gallery/build/web/
+	firebase deploy
+
+.PHONY: gen-l10n
+gen-l10n:
+	$(DART) $(FLUTTER_DIR)/dev/tools/localization/bin/gen_l10n.dart \
+    --template-arb-file=intl_en_US.arb \
+    --output-localization-file=gallery_localizations.dart \
+    --output-class=GalleryLocalizations
+
+.PHONY: l10n
+l10n: gen-l10n format
+	cd $(ROOT)/l10n_cli/ && $(FLUTTER) pub get
+	$(DART) $(ROOT)/l10n_cli/bin/main.dart
+
+.PHONY: update-code-segments
+update-code-segments:
+	cd $(ROOT)/codeviewer_cli/ && pub get
+	$(DART) $(ROOT)/codeviewer_cli/bin/main.dart
+	$(FLUTTER) format $(ROOT)/gallery/lib/codeviewer/code_segments.dart
diff --git a/gallery/analysis_options.yaml b/gallery/analysis_options.yaml
new file mode 100644
index 0000000..82ce871
--- /dev/null
+++ b/gallery/analysis_options.yaml
@@ -0,0 +1,33 @@
+include: package:pedantic/analysis_options.1.8.0.yaml
+
+analyzer:
+  exclude:
+    - lib/l10n/messages_*.dart
+  strong-mode:
+    implicit-casts: false
+    implicit-dynamic: false
+
+linter:
+  rules:
+    - avoid_types_on_closure_parameters
+    - avoid_void_async
+    - await_only_futures
+    - camel_case_types
+    - cancel_subscriptions
+    - close_sinks
+    - constant_identifier_names
+    - control_flow_in_finally
+    - empty_statements
+    - hash_and_equals
+    - implementation_imports
+    - non_constant_identifier_names
+    - package_api_docs
+    - package_names
+    - package_prefixed_library_names
+    - test_types_in_equals
+    - throw_in_finally
+    - unnecessary_brace_in_string_interps
+    - unnecessary_getters_setters
+    - unnecessary_new
+    - unnecessary_statements
+    - directives_ordering
diff --git a/gallery/android/.gitignore b/gallery/android/.gitignore
new file mode 100644
index 0000000..b1238cc
--- /dev/null
+++ b/gallery/android/.gitignore
@@ -0,0 +1,12 @@
+gradle-wrapper.jar
+/.gradle
+/captures/
+/gradlew
+/gradlew.bat
+/local.properties
+GeneratedPluginRegistrant.java
+
+# Visual Studio Code related
+.classpath
+.project
+.settings/
diff --git a/gallery/android/app/build.gradle b/gallery/android/app/build.gradle
new file mode 100644
index 0000000..67bc907
--- /dev/null
+++ b/gallery/android/app/build.gradle
@@ -0,0 +1,67 @@
+def localProperties = new Properties()
+def localPropertiesFile = rootProject.file('local.properties')
+if (localPropertiesFile.exists()) {
+    localPropertiesFile.withReader('UTF-8') { reader ->
+        localProperties.load(reader)
+    }
+}
+
+def flutterRoot = localProperties.getProperty('flutter.sdk')
+if (flutterRoot == null) {
+    throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
+}
+
+def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
+if (flutterVersionCode == null) {
+    flutterVersionCode = '1'
+}
+
+def flutterVersionName = localProperties.getProperty('flutter.versionName')
+if (flutterVersionName == null) {
+    flutterVersionName = '1.0'
+}
+
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
+
+android {
+    compileSdkVersion 28
+
+    sourceSets {
+        main.java.srcDirs += 'src/main/kotlin'
+    }
+
+    lintOptions {
+        disable 'InvalidPackage'
+    }
+
+    defaultConfig {
+        // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+        applicationId "com.example.gallery"
+        minSdkVersion 16
+        targetSdkVersion 28
+        versionCode flutterVersionCode.toInteger()
+        versionName flutterVersionName
+        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
+    }
+
+    buildTypes {
+        release {
+            // TODO: Add your own signing config for the release build.
+            // Signing with the debug keys for now, so `flutter run --release` works.
+            signingConfig signingConfigs.debug
+        }
+    }
+}
+
+flutter {
+    source '../..'
+}
+
+dependencies {
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'androidx.test:runner:1.1.0'
+    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0'
+}
diff --git a/gallery/android/app/src/debug/AndroidManifest.xml b/gallery/android/app/src/debug/AndroidManifest.xml
new file mode 100644
index 0000000..ef5f37d
--- /dev/null
+++ b/gallery/android/app/src/debug/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.gallery">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
diff --git a/gallery/android/app/src/main/AndroidManifest.xml b/gallery/android/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..306e9c7
--- /dev/null
+++ b/gallery/android/app/src/main/AndroidManifest.xml
@@ -0,0 +1,33 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.gallery">
+
+    <!-- io.flutter.app.FlutterApplication is an android.app.Application that
+         calls FlutterMain.startInitialization(this); in its onCreate method.
+         In most cases you can leave this as-is, but you if you want to provide
+         additional functionality it is fine to subclass or reimplement
+         FlutterApplication and put your custom class here. -->
+    <application
+        android:name="io.flutter.app.FlutterApplication"
+        android:label="Flutter Gallery"
+        android:icon="@mipmap/ic_launcher">
+        <activity
+            android:name=".MainActivity"
+            android:launchMode="singleTop"
+            android:theme="@style/LaunchTheme"
+            android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
+            android:hardwareAccelerated="true"
+            android:windowSoftInputMode="adjustResize">
+            <!-- This keeps the window background of the activity showing
+                 until Flutter renders its first frame. It can be removed if
+                 there is no splash screen (such as the default splash screen
+                 defined in @style/LaunchTheme). -->
+            <meta-data
+                android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
+                android:value="true" />
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+        </activity>
+    </application>
+</manifest>
diff --git a/gallery/android/app/src/main/ic_launcher-web.png b/gallery/android/app/src/main/ic_launcher-web.png
new file mode 100644
index 0000000..e3f586a
--- /dev/null
+++ b/gallery/android/app/src/main/ic_launcher-web.png
Binary files differ
diff --git a/gallery/android/app/src/main/kotlin/com/example/gallery/MainActivity.kt b/gallery/android/app/src/main/kotlin/com/example/gallery/MainActivity.kt
new file mode 100644
index 0000000..5e77c29
--- /dev/null
+++ b/gallery/android/app/src/main/kotlin/com/example/gallery/MainActivity.kt
@@ -0,0 +1,13 @@
+package com.example.gallery
+
+import android.os.Bundle
+
+import io.flutter.app.FlutterActivity
+import io.flutter.plugins.GeneratedPluginRegistrant
+
+class MainActivity: FlutterActivity() {
+  override fun onCreate(savedInstanceState: Bundle?) {
+    super.onCreate(savedInstanceState)
+    GeneratedPluginRegistrant.registerWith(this)
+  }
+}
diff --git a/gallery/android/app/src/main/res/drawable/launch_background.xml b/gallery/android/app/src/main/res/drawable/launch_background.xml
new file mode 100644
index 0000000..3110d52
--- /dev/null
+++ b/gallery/android/app/src/main/res/drawable/launch_background.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Modify this file to customize your launch splash screen -->
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@color/backgroundColor" />
+
+    <!-- You can insert your own image assets here -->
+    <!-- <item>
+        <bitmap
+            android:gravity="center"
+            android:src="@mipmap/launch_image" />
+    </item> -->
+</layer-list>
diff --git a/gallery/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/gallery/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..4ae7d12
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@mipmap/ic_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file
diff --git a/gallery/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/gallery/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..4ae7d12
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@mipmap/ic_launcher_background"/>
+    <foreground android:drawable="@mipmap/ic_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file
diff --git a/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..2d843a6
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png
new file mode 100644
index 0000000..8800ae3
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..6d0464a
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..23622dd
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..f8a9aed
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png
new file mode 100644
index 0000000..0233efd
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..0b35e69
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..8532fdb
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..0da4124
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..1b03ae0
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..ae5d600
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..ed20f27
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..00b5fa2
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..f3f6a57
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..8d54c88
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..15a950f
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..7cf4b7d
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png
new file mode 100644
index 0000000..907043d
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
new file mode 100644
index 0000000..a7cd5bb
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..03a781d
--- /dev/null
+++ b/gallery/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/gallery/android/app/src/main/res/values/styles.xml b/gallery/android/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..17933f5
--- /dev/null
+++ b/gallery/android/app/src/main/res/values/styles.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+    <style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
+        <!-- Show a splash screen on the activity. Automatically removed when
+             Flutter draws its first frame -->
+        <item name="android:windowBackground">@drawable/launch_background</item>
+    </style>
+    <color name="backgroundColor">#030303</color>
+</resources>
diff --git a/gallery/android/app/src/profile/AndroidManifest.xml b/gallery/android/app/src/profile/AndroidManifest.xml
new file mode 100644
index 0000000..ef5f37d
--- /dev/null
+++ b/gallery/android/app/src/profile/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="com.example.gallery">
+    <!-- Flutter needs it to communicate with the running application
+         to allow setting breakpoints, to provide hot reload, etc.
+    -->
+    <uses-permission android:name="android.permission.INTERNET"/>
+</manifest>
diff --git a/gallery/android/build.gradle b/gallery/android/build.gradle
new file mode 100644
index 0000000..b7faad8
--- /dev/null
+++ b/gallery/android/build.gradle
@@ -0,0 +1,31 @@
+buildscript {
+    ext.kotlin_version = '1.2.71'
+    repositories {
+        google()
+        jcenter()
+    }
+
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.2.1'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+    }
+}
+
+rootProject.buildDir = '../build'
+subprojects {
+    project.buildDir = "${rootProject.buildDir}/${project.name}"
+}
+subprojects {
+    project.evaluationDependsOn(':app')
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/gallery/android/gradle.properties b/gallery/android/gradle.properties
new file mode 100644
index 0000000..2324ab5
--- /dev/null
+++ b/gallery/android/gradle.properties
@@ -0,0 +1,5 @@
+org.gradle.jvmargs=-Xmx1536M
+
+android.enableR8=true
+android.useAndroidX=true
+android.enableJetifier=true
diff --git a/gallery/android/gradle/wrapper/gradle-wrapper.properties b/gallery/android/gradle/wrapper/gradle-wrapper.properties
new file mode 100644
index 0000000..2819f02
--- /dev/null
+++ b/gallery/android/gradle/wrapper/gradle-wrapper.properties
@@ -0,0 +1,6 @@
+#Fri Jun 23 08:50:38 CEST 2017
+distributionBase=GRADLE_USER_HOME
+distributionPath=wrapper/dists
+zipStoreBase=GRADLE_USER_HOME
+zipStorePath=wrapper/dists
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.2-all.zip
diff --git a/gallery/android/settings.gradle b/gallery/android/settings.gradle
new file mode 100644
index 0000000..5a2f14f
--- /dev/null
+++ b/gallery/android/settings.gradle
@@ -0,0 +1,15 @@
+include ':app'
+
+def flutterProjectRoot = rootProject.projectDir.parentFile.toPath()
+
+def plugins = new Properties()
+def pluginsFile = new File(flutterProjectRoot.toFile(), '.flutter-plugins')
+if (pluginsFile.exists()) {
+    pluginsFile.withReader('UTF-8') { reader -> plugins.load(reader) }
+}
+
+plugins.each { name, path ->
+    def pluginDirectory = flutterProjectRoot.resolve(path).resolve('android').toFile()
+    include ":$name"
+    project(":$name").projectDir = pluginDirectory
+}
diff --git a/gallery/assets/crane/destinations/2.0x/eat_0.jpg b/gallery/assets/crane/destinations/2.0x/eat_0.jpg
new file mode 100644
index 0000000..e673cb7
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_1.jpg b/gallery/assets/crane/destinations/2.0x/eat_1.jpg
new file mode 100644
index 0000000..7868814
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_10.jpg b/gallery/assets/crane/destinations/2.0x/eat_10.jpg
new file mode 100644
index 0000000..0f91457
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_2.jpg b/gallery/assets/crane/destinations/2.0x/eat_2.jpg
new file mode 100644
index 0000000..c6afc57
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_3.jpg b/gallery/assets/crane/destinations/2.0x/eat_3.jpg
new file mode 100644
index 0000000..2346eec
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_4.jpg b/gallery/assets/crane/destinations/2.0x/eat_4.jpg
new file mode 100644
index 0000000..f68dd57
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_5.jpg b/gallery/assets/crane/destinations/2.0x/eat_5.jpg
new file mode 100644
index 0000000..17c85e3
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_6.jpg b/gallery/assets/crane/destinations/2.0x/eat_6.jpg
new file mode 100644
index 0000000..17aa099
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_7.jpg b/gallery/assets/crane/destinations/2.0x/eat_7.jpg
new file mode 100644
index 0000000..8392e07
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_8.jpg b/gallery/assets/crane/destinations/2.0x/eat_8.jpg
new file mode 100644
index 0000000..b3e0286
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/eat_9.jpg b/gallery/assets/crane/destinations/2.0x/eat_9.jpg
new file mode 100644
index 0000000..b9f36b8
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/eat_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_0.jpg b/gallery/assets/crane/destinations/2.0x/fly_0.jpg
new file mode 100644
index 0000000..48e91c0
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_1.jpg b/gallery/assets/crane/destinations/2.0x/fly_1.jpg
new file mode 100644
index 0000000..0deb60b
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_10.jpg b/gallery/assets/crane/destinations/2.0x/fly_10.jpg
new file mode 100644
index 0000000..ea424cd
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_11.jpg b/gallery/assets/crane/destinations/2.0x/fly_11.jpg
new file mode 100644
index 0000000..f333d6c
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_12.jpg b/gallery/assets/crane/destinations/2.0x/fly_12.jpg
new file mode 100644
index 0000000..7e4b934
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_12.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_13.jpg b/gallery/assets/crane/destinations/2.0x/fly_13.jpg
new file mode 100644
index 0000000..aac190a
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_13.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_2.jpg b/gallery/assets/crane/destinations/2.0x/fly_2.jpg
new file mode 100644
index 0000000..fa7cf2d
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_3.jpg b/gallery/assets/crane/destinations/2.0x/fly_3.jpg
new file mode 100644
index 0000000..970a7ed
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_4.jpg b/gallery/assets/crane/destinations/2.0x/fly_4.jpg
new file mode 100644
index 0000000..0658809
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_5.jpg b/gallery/assets/crane/destinations/2.0x/fly_5.jpg
new file mode 100644
index 0000000..d273dc0
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_6.jpg b/gallery/assets/crane/destinations/2.0x/fly_6.jpg
new file mode 100644
index 0000000..c150d8b
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_7.jpg b/gallery/assets/crane/destinations/2.0x/fly_7.jpg
new file mode 100644
index 0000000..1efbe28
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_8.jpg b/gallery/assets/crane/destinations/2.0x/fly_8.jpg
new file mode 100644
index 0000000..edc7da2
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/fly_9.jpg b/gallery/assets/crane/destinations/2.0x/fly_9.jpg
new file mode 100644
index 0000000..29821e8
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/fly_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_0.jpg b/gallery/assets/crane/destinations/2.0x/sleep_0.jpg
new file mode 100644
index 0000000..0658809
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_1.jpg b/gallery/assets/crane/destinations/2.0x/sleep_1.jpg
new file mode 100644
index 0000000..48e91c0
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_10.jpg b/gallery/assets/crane/destinations/2.0x/sleep_10.jpg
new file mode 100644
index 0000000..ea424cd
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_11.jpg b/gallery/assets/crane/destinations/2.0x/sleep_11.jpg
new file mode 100644
index 0000000..5551265
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_2.jpg b/gallery/assets/crane/destinations/2.0x/sleep_2.jpg
new file mode 100644
index 0000000..970a7ed
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_3.jpg b/gallery/assets/crane/destinations/2.0x/sleep_3.jpg
new file mode 100644
index 0000000..29821e8
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_4.jpg b/gallery/assets/crane/destinations/2.0x/sleep_4.jpg
new file mode 100644
index 0000000..d273dc0
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_5.jpg b/gallery/assets/crane/destinations/2.0x/sleep_5.jpg
new file mode 100644
index 0000000..0deb60b
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_6.jpg b/gallery/assets/crane/destinations/2.0x/sleep_6.jpg
new file mode 100644
index 0000000..7e4b934
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_7.jpg b/gallery/assets/crane/destinations/2.0x/sleep_7.jpg
new file mode 100644
index 0000000..19cd9f6
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_8.jpg b/gallery/assets/crane/destinations/2.0x/sleep_8.jpg
new file mode 100644
index 0000000..8b0e05f
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/2.0x/sleep_9.jpg b/gallery/assets/crane/destinations/2.0x/sleep_9.jpg
new file mode 100644
index 0000000..f333d6c
--- /dev/null
+++ b/gallery/assets/crane/destinations/2.0x/sleep_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_0.jpg b/gallery/assets/crane/destinations/3.0x/eat_0.jpg
new file mode 100644
index 0000000..7e0ce7c
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_1.jpg b/gallery/assets/crane/destinations/3.0x/eat_1.jpg
new file mode 100644
index 0000000..d36a98c
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_10.jpg b/gallery/assets/crane/destinations/3.0x/eat_10.jpg
new file mode 100644
index 0000000..f6036ca
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_2.jpg b/gallery/assets/crane/destinations/3.0x/eat_2.jpg
new file mode 100644
index 0000000..95709ff
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_3.jpg b/gallery/assets/crane/destinations/3.0x/eat_3.jpg
new file mode 100644
index 0000000..cb8077b
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_4.jpg b/gallery/assets/crane/destinations/3.0x/eat_4.jpg
new file mode 100644
index 0000000..60d2bb8
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_5.jpg b/gallery/assets/crane/destinations/3.0x/eat_5.jpg
new file mode 100644
index 0000000..3d55f7a
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_6.jpg b/gallery/assets/crane/destinations/3.0x/eat_6.jpg
new file mode 100644
index 0000000..e53f900
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_7.jpg b/gallery/assets/crane/destinations/3.0x/eat_7.jpg
new file mode 100644
index 0000000..46a0836
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_8.jpg b/gallery/assets/crane/destinations/3.0x/eat_8.jpg
new file mode 100644
index 0000000..807a347
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/eat_9.jpg b/gallery/assets/crane/destinations/3.0x/eat_9.jpg
new file mode 100644
index 0000000..d6c32b0
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/eat_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_0.jpg b/gallery/assets/crane/destinations/3.0x/fly_0.jpg
new file mode 100644
index 0000000..cba1b54
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_1.jpg b/gallery/assets/crane/destinations/3.0x/fly_1.jpg
new file mode 100644
index 0000000..d86aed5
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_10.jpg b/gallery/assets/crane/destinations/3.0x/fly_10.jpg
new file mode 100644
index 0000000..7fe3463
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_11.jpg b/gallery/assets/crane/destinations/3.0x/fly_11.jpg
new file mode 100644
index 0000000..e47bdfe
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_12.jpg b/gallery/assets/crane/destinations/3.0x/fly_12.jpg
new file mode 100644
index 0000000..d8df0c9
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_12.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_13.jpg b/gallery/assets/crane/destinations/3.0x/fly_13.jpg
new file mode 100644
index 0000000..69372ec
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_13.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_2.jpg b/gallery/assets/crane/destinations/3.0x/fly_2.jpg
new file mode 100644
index 0000000..32585fa
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_3.jpg b/gallery/assets/crane/destinations/3.0x/fly_3.jpg
new file mode 100644
index 0000000..5d970aa
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_4.jpg b/gallery/assets/crane/destinations/3.0x/fly_4.jpg
new file mode 100644
index 0000000..d3e848b
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_5.jpg b/gallery/assets/crane/destinations/3.0x/fly_5.jpg
new file mode 100644
index 0000000..c984ce1
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_6.jpg b/gallery/assets/crane/destinations/3.0x/fly_6.jpg
new file mode 100644
index 0000000..53e56af
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_7.jpg b/gallery/assets/crane/destinations/3.0x/fly_7.jpg
new file mode 100644
index 0000000..585a44a
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_8.jpg b/gallery/assets/crane/destinations/3.0x/fly_8.jpg
new file mode 100644
index 0000000..ceeaef1
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/fly_9.jpg b/gallery/assets/crane/destinations/3.0x/fly_9.jpg
new file mode 100644
index 0000000..bc12d0f
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/fly_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_0.jpg b/gallery/assets/crane/destinations/3.0x/sleep_0.jpg
new file mode 100644
index 0000000..d3e848b
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_1.jpg b/gallery/assets/crane/destinations/3.0x/sleep_1.jpg
new file mode 100644
index 0000000..cba1b54
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_10.jpg b/gallery/assets/crane/destinations/3.0x/sleep_10.jpg
new file mode 100644
index 0000000..7fe3463
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_11.jpg b/gallery/assets/crane/destinations/3.0x/sleep_11.jpg
new file mode 100644
index 0000000..8324309
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_2.jpg b/gallery/assets/crane/destinations/3.0x/sleep_2.jpg
new file mode 100644
index 0000000..5d970aa
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_3.jpg b/gallery/assets/crane/destinations/3.0x/sleep_3.jpg
new file mode 100644
index 0000000..bc12d0f
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_4.jpg b/gallery/assets/crane/destinations/3.0x/sleep_4.jpg
new file mode 100644
index 0000000..c984ce1
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_5.jpg b/gallery/assets/crane/destinations/3.0x/sleep_5.jpg
new file mode 100644
index 0000000..d86aed5
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_6.jpg b/gallery/assets/crane/destinations/3.0x/sleep_6.jpg
new file mode 100644
index 0000000..d8df0c9
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_7.jpg b/gallery/assets/crane/destinations/3.0x/sleep_7.jpg
new file mode 100644
index 0000000..29c83b4
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_8.jpg b/gallery/assets/crane/destinations/3.0x/sleep_8.jpg
new file mode 100644
index 0000000..41d45d3
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/3.0x/sleep_9.jpg b/gallery/assets/crane/destinations/3.0x/sleep_9.jpg
new file mode 100644
index 0000000..e47bdfe
--- /dev/null
+++ b/gallery/assets/crane/destinations/3.0x/sleep_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_0.jpg b/gallery/assets/crane/destinations/eat_0.jpg
new file mode 100644
index 0000000..564ff88
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_1.jpg b/gallery/assets/crane/destinations/eat_1.jpg
new file mode 100644
index 0000000..496c3e3
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_10.jpg b/gallery/assets/crane/destinations/eat_10.jpg
new file mode 100644
index 0000000..d230466
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_2.jpg b/gallery/assets/crane/destinations/eat_2.jpg
new file mode 100644
index 0000000..ec3f532
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_3.jpg b/gallery/assets/crane/destinations/eat_3.jpg
new file mode 100644
index 0000000..441200d
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_4.jpg b/gallery/assets/crane/destinations/eat_4.jpg
new file mode 100644
index 0000000..e9c23e2
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_5.jpg b/gallery/assets/crane/destinations/eat_5.jpg
new file mode 100644
index 0000000..fb3233c
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_6.jpg b/gallery/assets/crane/destinations/eat_6.jpg
new file mode 100644
index 0000000..78229c9
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_7.jpg b/gallery/assets/crane/destinations/eat_7.jpg
new file mode 100644
index 0000000..073642f
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_8.jpg b/gallery/assets/crane/destinations/eat_8.jpg
new file mode 100644
index 0000000..f5015f1
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/eat_9.jpg b/gallery/assets/crane/destinations/eat_9.jpg
new file mode 100644
index 0000000..0da6288
--- /dev/null
+++ b/gallery/assets/crane/destinations/eat_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_0.jpg b/gallery/assets/crane/destinations/fly_0.jpg
new file mode 100644
index 0000000..7bb5aa9
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_1.jpg b/gallery/assets/crane/destinations/fly_1.jpg
new file mode 100644
index 0000000..5fc5af7
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_10.jpg b/gallery/assets/crane/destinations/fly_10.jpg
new file mode 100644
index 0000000..b6de95d
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_11.jpg b/gallery/assets/crane/destinations/fly_11.jpg
new file mode 100644
index 0000000..6bb5ba3
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_12.jpg b/gallery/assets/crane/destinations/fly_12.jpg
new file mode 100644
index 0000000..77ae7d7
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_12.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_13.jpg b/gallery/assets/crane/destinations/fly_13.jpg
new file mode 100644
index 0000000..5b05a7a
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_13.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_2.jpg b/gallery/assets/crane/destinations/fly_2.jpg
new file mode 100644
index 0000000..dd46463
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_3.jpg b/gallery/assets/crane/destinations/fly_3.jpg
new file mode 100644
index 0000000..2e8dc5a
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_4.jpg b/gallery/assets/crane/destinations/fly_4.jpg
new file mode 100644
index 0000000..ea88f1a
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_5.jpg b/gallery/assets/crane/destinations/fly_5.jpg
new file mode 100644
index 0000000..f399137
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_6.jpg b/gallery/assets/crane/destinations/fly_6.jpg
new file mode 100644
index 0000000..d81eeab
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_7.jpg b/gallery/assets/crane/destinations/fly_7.jpg
new file mode 100644
index 0000000..bdcecb0
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_8.jpg b/gallery/assets/crane/destinations/fly_8.jpg
new file mode 100644
index 0000000..828b113
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/fly_9.jpg b/gallery/assets/crane/destinations/fly_9.jpg
new file mode 100644
index 0000000..e03d231
--- /dev/null
+++ b/gallery/assets/crane/destinations/fly_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_0.jpg b/gallery/assets/crane/destinations/sleep_0.jpg
new file mode 100644
index 0000000..ea88f1a
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_0.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_1.jpg b/gallery/assets/crane/destinations/sleep_1.jpg
new file mode 100644
index 0000000..7bb5aa9
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_1.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_10.jpg b/gallery/assets/crane/destinations/sleep_10.jpg
new file mode 100644
index 0000000..b6de95d
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_11.jpg b/gallery/assets/crane/destinations/sleep_11.jpg
new file mode 100644
index 0000000..0bd5678
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_2.jpg b/gallery/assets/crane/destinations/sleep_2.jpg
new file mode 100644
index 0000000..2e8dc5a
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_2.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_3.jpg b/gallery/assets/crane/destinations/sleep_3.jpg
new file mode 100644
index 0000000..e03d231
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_3.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_4.jpg b/gallery/assets/crane/destinations/sleep_4.jpg
new file mode 100644
index 0000000..f399137
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_4.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_5.jpg b/gallery/assets/crane/destinations/sleep_5.jpg
new file mode 100644
index 0000000..5fc5af7
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_5.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_6.jpg b/gallery/assets/crane/destinations/sleep_6.jpg
new file mode 100644
index 0000000..77ae7d7
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_6.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_7.jpg b/gallery/assets/crane/destinations/sleep_7.jpg
new file mode 100644
index 0000000..d6d6308
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_7.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_8.jpg b/gallery/assets/crane/destinations/sleep_8.jpg
new file mode 100644
index 0000000..e27d463
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations/sleep_9.jpg b/gallery/assets/crane/destinations/sleep_9.jpg
new file mode 100644
index 0000000..6bb5ba3
--- /dev/null
+++ b/gallery/assets/crane/destinations/sleep_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_0.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_0.jpg.REMOVED.git-id
new file mode 100644
index 0000000..e9abbeb
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_0.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+7209082c413a7875be6692d04aa76daa7f7b57cd
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_1.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_1.jpg.REMOVED.git-id
new file mode 100644
index 0000000..d6aa540
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_1.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+e5699aef15018b67171c25fcaab8cddb54d4f88f
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_10.jpg b/gallery/assets/crane/destinations_cropped_source/eat_10.jpg
new file mode 100644
index 0000000..a7d0b92
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_2.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_2.jpg.REMOVED.git-id
new file mode 100644
index 0000000..2839f52
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_2.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+0655073c4175942e837999713d4cf28bf8a4da65
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_3.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_3.jpg.REMOVED.git-id
new file mode 100644
index 0000000..b16cd56
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_3.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+1f4f6db81be240f816702ce02d5ca0c5b7e39e63
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_4.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_4.jpg.REMOVED.git-id
new file mode 100644
index 0000000..1574711
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_4.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+034f5c5adec730efa5dcf156dad301547cb59fb7
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_5.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_5.jpg.REMOVED.git-id
new file mode 100644
index 0000000..7fb9a1f
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_5.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+cdffbed3b168aa35ac950d9ef4cba58e985d4ab1
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_6.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_6.jpg.REMOVED.git-id
new file mode 100644
index 0000000..53156a8
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_6.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+1833d052c5e3d15e851307304a0a413c589a1b56
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_7.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/eat_7.jpg.REMOVED.git-id
new file mode 100644
index 0000000..41335f0
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_7.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+e354496efbf9d167b9c025f0c7ed8bebd84ed2fa
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_8.jpg b/gallery/assets/crane/destinations_cropped_source/eat_8.jpg
new file mode 100644
index 0000000..8dab516
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/eat_9.jpg b/gallery/assets/crane/destinations_cropped_source/eat_9.jpg
new file mode 100644
index 0000000..bb5132f
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/eat_9.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_0.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_0.jpg.REMOVED.git-id
new file mode 100644
index 0000000..0bf60df
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_0.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+1a90678b9ed8cf8b3f2c735113a49eb851e6e965
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_1.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_1.jpg.REMOVED.git-id
new file mode 100644
index 0000000..4fecb6f
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_1.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+4bb636b7f7c6c2f23878b1153188889eea1a05f5
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_10.jpg b/gallery/assets/crane/destinations_cropped_source/fly_10.jpg
new file mode 100644
index 0000000..4676bcf
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_11.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_11.jpg.REMOVED.git-id
new file mode 100644
index 0000000..af24b3b
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_11.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+374cf785f0c60b03d986fbc4ad211007c301b3e1
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_12.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_12.jpg.REMOVED.git-id
new file mode 100644
index 0000000..1eb8684
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_12.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+3288ea9bd8b593449f1556b37a67bb22be16a964
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_13.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_13.jpg.REMOVED.git-id
new file mode 100644
index 0000000..2839c47
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_13.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+60f8535425c5d2c1b0d274c73a794900c441352f
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_2.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_2.jpg.REMOVED.git-id
new file mode 100644
index 0000000..e962178
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_2.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+0d6fa013d0f02fd6c936cc15a200a920b35ad9fb
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_3.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_3.jpg.REMOVED.git-id
new file mode 100644
index 0000000..019701f
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_3.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+71e6de638554b2f4ba39f57ab1a362695979f738
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_4.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_4.jpg.REMOVED.git-id
new file mode 100644
index 0000000..f4d6708
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_4.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+8a216092615cf8f40191252eb48c11e2c6844d13
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_5.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_5.jpg.REMOVED.git-id
new file mode 100644
index 0000000..d89b33d
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_5.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+35c532a0d88577d5f04445fea0920455b62f5485
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_6.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_6.jpg.REMOVED.git-id
new file mode 100644
index 0000000..5f2f8f0
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_6.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+b30ee45fa2806198d4f8f7fcd9af33c845e14481
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_7.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_7.jpg.REMOVED.git-id
new file mode 100644
index 0000000..4c64e83
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_7.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+44707353b6a74da949e5d831dc53f3be4dab6984
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_8.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_8.jpg.REMOVED.git-id
new file mode 100644
index 0000000..8990709
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_8.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+f478b64290b2a94766f513331a84a8fe2a31bf61
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/fly_9.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/fly_9.jpg.REMOVED.git-id
new file mode 100644
index 0000000..24784fb
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/fly_9.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+8e4ca1e71c28ede3d886a6bb624004099eb87966
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_0.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_0.jpg.REMOVED.git-id
new file mode 100644
index 0000000..f4d6708
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_0.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+8a216092615cf8f40191252eb48c11e2c6844d13
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_1.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_1.jpg.REMOVED.git-id
new file mode 100644
index 0000000..0bf60df
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_1.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+1a90678b9ed8cf8b3f2c735113a49eb851e6e965
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_10.jpg b/gallery/assets/crane/destinations_cropped_source/sleep_10.jpg
new file mode 100644
index 0000000..4676bcf
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_10.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_11.jpg b/gallery/assets/crane/destinations_cropped_source/sleep_11.jpg
new file mode 100644
index 0000000..84ddb69
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_11.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_2.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_2.jpg.REMOVED.git-id
new file mode 100644
index 0000000..019701f
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_2.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+71e6de638554b2f4ba39f57ab1a362695979f738
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_3.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_3.jpg.REMOVED.git-id
new file mode 100644
index 0000000..24784fb
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_3.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+8e4ca1e71c28ede3d886a6bb624004099eb87966
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_4.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_4.jpg.REMOVED.git-id
new file mode 100644
index 0000000..d89b33d
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_4.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+35c532a0d88577d5f04445fea0920455b62f5485
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_5.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_5.jpg.REMOVED.git-id
new file mode 100644
index 0000000..4fecb6f
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_5.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+4bb636b7f7c6c2f23878b1153188889eea1a05f5
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_6.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_6.jpg.REMOVED.git-id
new file mode 100644
index 0000000..1eb8684
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_6.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+3288ea9bd8b593449f1556b37a67bb22be16a964
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_7.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_7.jpg.REMOVED.git-id
new file mode 100644
index 0000000..383c10e
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_7.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+817cfa4f7ee74a6cc59a45ddc6dc9503bc952ad2
\ No newline at end of file
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_8.jpg b/gallery/assets/crane/destinations_cropped_source/sleep_8.jpg
new file mode 100644
index 0000000..68a5720
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_8.jpg
Binary files differ
diff --git a/gallery/assets/crane/destinations_cropped_source/sleep_9.jpg.REMOVED.git-id b/gallery/assets/crane/destinations_cropped_source/sleep_9.jpg.REMOVED.git-id
new file mode 100644
index 0000000..af24b3b
--- /dev/null
+++ b/gallery/assets/crane/destinations_cropped_source/sleep_9.jpg.REMOVED.git-id
@@ -0,0 +1 @@
+374cf785f0c60b03d986fbc4ad211007c301b3e1
\ No newline at end of file
diff --git a/gallery/assets/crane/logo/2.0x/logo.png b/gallery/assets/crane/logo/2.0x/logo.png
new file mode 100644
index 0000000..11a55d9
--- /dev/null
+++ b/gallery/assets/crane/logo/2.0x/logo.png
Binary files differ
diff --git a/gallery/assets/crane/logo/3.0x/logo.png b/gallery/assets/crane/logo/3.0x/logo.png
new file mode 100644
index 0000000..a54f9fa
--- /dev/null
+++ b/gallery/assets/crane/logo/3.0x/logo.png
Binary files differ
diff --git a/gallery/assets/crane/logo/logo.png b/gallery/assets/crane/logo/logo.png
new file mode 100644
index 0000000..44545b0
--- /dev/null
+++ b/gallery/assets/crane/logo/logo.png
Binary files differ
diff --git a/gallery/assets/crane/logo/outline_logo.png b/gallery/assets/crane/logo/outline_logo.png
new file mode 100644
index 0000000..903c244
--- /dev/null
+++ b/gallery/assets/crane/logo/outline_logo.png
Binary files differ
diff --git a/gallery/assets/demos/1.5x/bottom_navigation_background.png b/gallery/assets/demos/1.5x/bottom_navigation_background.png
new file mode 100644
index 0000000..308c3b7
--- /dev/null
+++ b/gallery/assets/demos/1.5x/bottom_navigation_background.png
Binary files differ
diff --git a/gallery/assets/demos/2.0x/bottom_navigation_background.png b/gallery/assets/demos/2.0x/bottom_navigation_background.png
new file mode 100644
index 0000000..e8ac9e3
--- /dev/null
+++ b/gallery/assets/demos/2.0x/bottom_navigation_background.png
Binary files differ
diff --git a/gallery/assets/demos/3.0x/bottom_navigation_background.png b/gallery/assets/demos/3.0x/bottom_navigation_background.png
new file mode 100644
index 0000000..794dbb0
--- /dev/null
+++ b/gallery/assets/demos/3.0x/bottom_navigation_background.png
Binary files differ
diff --git a/gallery/assets/demos/4.0x/bottom_navigation_background.png b/gallery/assets/demos/4.0x/bottom_navigation_background.png
new file mode 100644
index 0000000..e3d1d4b
--- /dev/null
+++ b/gallery/assets/demos/4.0x/bottom_navigation_background.png
Binary files differ
diff --git a/gallery/assets/demos/bottom_navigation_background.png b/gallery/assets/demos/bottom_navigation_background.png
new file mode 100644
index 0000000..b1386f5
--- /dev/null
+++ b/gallery/assets/demos/bottom_navigation_background.png
Binary files differ
diff --git a/gallery/assets/icons/cupertino/1.5x/cupertino.png b/gallery/assets/icons/cupertino/1.5x/cupertino.png
new file mode 100644
index 0000000..51677b7
--- /dev/null
+++ b/gallery/assets/icons/cupertino/1.5x/cupertino.png
Binary files differ
diff --git a/gallery/assets/icons/cupertino/2.0x/cupertino.png b/gallery/assets/icons/cupertino/2.0x/cupertino.png
new file mode 100644
index 0000000..f3c22a2
--- /dev/null
+++ b/gallery/assets/icons/cupertino/2.0x/cupertino.png
Binary files differ
diff --git a/gallery/assets/icons/cupertino/3.0x/cupertino.png b/gallery/assets/icons/cupertino/3.0x/cupertino.png
new file mode 100644
index 0000000..be1bac9
--- /dev/null
+++ b/gallery/assets/icons/cupertino/3.0x/cupertino.png
Binary files differ
diff --git a/gallery/assets/icons/cupertino/4.0x/cupertino.png b/gallery/assets/icons/cupertino/4.0x/cupertino.png
new file mode 100644
index 0000000..063c83a
--- /dev/null
+++ b/gallery/assets/icons/cupertino/4.0x/cupertino.png
Binary files differ
diff --git a/gallery/assets/icons/cupertino/cupertino.png b/gallery/assets/icons/cupertino/cupertino.png
new file mode 100644
index 0000000..98357b4
--- /dev/null
+++ b/gallery/assets/icons/cupertino/cupertino.png
Binary files differ
diff --git a/gallery/assets/icons/material/1.5x/material.png b/gallery/assets/icons/material/1.5x/material.png
new file mode 100644
index 0000000..19c35b3
--- /dev/null
+++ b/gallery/assets/icons/material/1.5x/material.png
Binary files differ
diff --git a/gallery/assets/icons/material/2.0x/material.png b/gallery/assets/icons/material/2.0x/material.png
new file mode 100644
index 0000000..a339f4d
--- /dev/null
+++ b/gallery/assets/icons/material/2.0x/material.png
Binary files differ
diff --git a/gallery/assets/icons/material/3.0x/material.png b/gallery/assets/icons/material/3.0x/material.png
new file mode 100644
index 0000000..b18c4bd
--- /dev/null
+++ b/gallery/assets/icons/material/3.0x/material.png
Binary files differ
diff --git a/gallery/assets/icons/material/4.0x/material.png b/gallery/assets/icons/material/4.0x/material.png
new file mode 100644
index 0000000..eb7ae15
--- /dev/null
+++ b/gallery/assets/icons/material/4.0x/material.png
Binary files differ
diff --git a/gallery/assets/icons/material/material.png b/gallery/assets/icons/material/material.png
new file mode 100644
index 0000000..973f716
--- /dev/null
+++ b/gallery/assets/icons/material/material.png
Binary files differ
diff --git a/gallery/assets/icons/reference/1.5x/reference.png b/gallery/assets/icons/reference/1.5x/reference.png
new file mode 100644
index 0000000..84079a0
--- /dev/null
+++ b/gallery/assets/icons/reference/1.5x/reference.png
Binary files differ
diff --git a/gallery/assets/icons/reference/2.0x/reference.png b/gallery/assets/icons/reference/2.0x/reference.png
new file mode 100644
index 0000000..4842cfd
--- /dev/null
+++ b/gallery/assets/icons/reference/2.0x/reference.png
Binary files differ
diff --git a/gallery/assets/icons/reference/3.0x/reference.png b/gallery/assets/icons/reference/3.0x/reference.png
new file mode 100644
index 0000000..5894b89
--- /dev/null
+++ b/gallery/assets/icons/reference/3.0x/reference.png
Binary files differ
diff --git a/gallery/assets/icons/reference/4.0x/reference.png b/gallery/assets/icons/reference/4.0x/reference.png
new file mode 100644
index 0000000..dcc08d7
--- /dev/null
+++ b/gallery/assets/icons/reference/4.0x/reference.png
Binary files differ
diff --git a/gallery/assets/icons/reference/reference.png b/gallery/assets/icons/reference/reference.png
new file mode 100644
index 0000000..e6ca484
--- /dev/null
+++ b/gallery/assets/icons/reference/reference.png
Binary files differ
diff --git a/gallery/assets/icons/settings/settings_dark.flr b/gallery/assets/icons/settings/settings_dark.flr
new file mode 100644
index 0000000..dcce9b6
--- /dev/null
+++ b/gallery/assets/icons/settings/settings_dark.flr
Binary files differ
diff --git a/gallery/assets/icons/settings/settings_light.flr b/gallery/assets/icons/settings/settings_light.flr
new file mode 100644
index 0000000..5ab6dfb
--- /dev/null
+++ b/gallery/assets/icons/settings/settings_light.flr
@@ -0,0 +1,2274 @@
+{
+	"version": 24,
+	"artboards": [
+		{
+			"name": "settings_light",
+			"translation": [
+				353.5321960449219,
+				408.1772766113281
+			],
+			"width": 86,
+			"height": 86,
+			"origin": [
+				0,
+				0
+			],
+			"clipContents": true,
+			"color": [
+				0,
+				0,
+				0,
+				0
+			],
+			"nodes": [
+				{
+					"name": "Precomp_Container",
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Dot_Outer",
+					"parent": 0,
+					"translation": [
+						23,
+						33
+					],
+					"rotation": 1.5707963267948966,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Dot_InOut",
+					"parent": 1,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 2,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 3,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 4,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": true,
+					"blendMode": 3,
+					"drawOrder": 11,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 5,
+					"opacity": 1,
+					"color": [
+						0.1411764770746231,
+						0.11764705926179886,
+						0.1882352977991104,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Path",
+					"parent": 5,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"bones": [],
+					"isVisible": true,
+					"isClosed": false,
+					"points": [
+						{
+							"pointType": 2,
+							"translation": [
+								-2,
+								0
+							],
+							"in": [
+								-2,
+								0
+							],
+							"out": [
+								-2,
+								-1.100000023841858
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								0,
+								-2
+							],
+							"in": [
+								-1.100000023841858,
+								-2
+							],
+							"out": [
+								1.100000023841858,
+								-2
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								2,
+								0
+							],
+							"in": [
+								2,
+								-1.100000023841858
+							],
+							"out": [
+								2,
+								1.100000023841858
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								0,
+								2
+							],
+							"in": [
+								1.100000023841858,
+								2
+							],
+							"out": [
+								-1.100000023841858,
+								2
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								-2,
+								0
+							],
+							"in": [
+								-2,
+								1.100000023841858
+							],
+							"out": [
+								-2,
+								0
+							]
+						}
+					],
+					"type": "path"
+				},
+				{
+					"name": "mask_Outer",
+					"parent": 0,
+					"translation": [
+						22.5,
+						33
+					],
+					"rotation": 1.5610050296912081,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask_Anchor",
+					"parent": 8,
+					"translation": [
+						0,
+						-18.5
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask_InOut",
+					"parent": 9,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 10,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 11,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 12,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": false,
+					"blendMode": 3,
+					"drawOrder": 8,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Gradient Fill",
+					"parent": 13,
+					"opacity": 1,
+					"numColorStops": 3,
+					"colorStops": [
+						1,
+						0.3490000069141388,
+						0.5139999985694885,
+						1,
+						0,
+						1,
+						0.4309999942779541,
+						0.5139999985694885,
+						1,
+						0.5,
+						1,
+						0.5139999985694885,
+						0.5139999985694885,
+						1,
+						1
+					],
+					"start": [
+						0,
+						12
+					],
+					"end": [
+						0,
+						-12
+					],
+					"fillRule": 1,
+					"type": "gradientFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 13,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 6,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "Gradient Rectangle_Outer",
+					"parent": 0,
+					"translation": [
+						22.5,
+						33
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Gradient Rectangle_Anchor",
+					"parent": 16,
+					"translation": [
+						0,
+						-18.5
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "_Parenter",
+					"parent": 17,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Gradient Rectangle_InOut",
+					"parent": 18,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 19,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 20,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 21,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": true,
+					"blendMode": 3,
+					"drawOrder": 7,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Gradient Fill",
+					"parent": 22,
+					"opacity": 1,
+					"numColorStops": 3,
+					"colorStops": [
+						1,
+						0.3490000069141388,
+						0.5139999985694885,
+						1,
+						0,
+						1,
+						0.4309999942779541,
+						0.5139999985694885,
+						1,
+						0.5,
+						1,
+						0.5139999985694885,
+						0.5139999985694885,
+						1,
+						1
+					],
+					"start": [
+						0,
+						12
+					],
+					"end": [
+						0,
+						-12
+					],
+					"fillRule": 1,
+					"type": "gradientFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 22,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 6,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "mask line_Outer",
+					"parent": 18,
+					"translation": [
+						0,
+						20
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask line_Anchor",
+					"parent": 25,
+					"translation": [
+						0,
+						18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask line_InOut",
+					"parent": 26,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 0,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 27,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 28,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 29,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": false,
+					"blendMode": 3,
+					"drawOrder": 10,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 30,
+					"opacity": 1,
+					"color": [
+						0,
+						0,
+						0,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 30,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 4,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "line_Outer",
+					"parent": 18,
+					"translation": [
+						0,
+						-18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "line_Anchor",
+					"parent": 33,
+					"translation": [
+						0,
+						18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "line_InOut",
+					"parent": 34,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 0,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 35,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 36,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 37,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": true,
+					"blendMode": 3,
+					"drawOrder": 9,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 38,
+					"opacity": 1,
+					"color": [
+						0.1411764770746231,
+						0.11764705926179886,
+						0.1882352977991104,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 38,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 4,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "Gradient Rectangle_Outer",
+					"parent": 0,
+					"translation": [
+						59,
+						53
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Gradient Rectangle_Anchor",
+					"parent": 41,
+					"translation": [
+						0,
+						18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "_Parenter",
+					"parent": 42,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Gradient Rectangle_InOut",
+					"parent": 43,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 44,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 45,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 46,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": true,
+					"blendMode": 3,
+					"drawOrder": 2,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Gradient Fill",
+					"parent": 47,
+					"opacity": 1,
+					"numColorStops": 3,
+					"colorStops": [
+						0.10999999940395355,
+						0.8669999837875366,
+						0.7839999794960022,
+						1,
+						0,
+						0.054999999701976776,
+						0.7570000290870667,
+						0.7429999709129333,
+						1,
+						0.5,
+						0,
+						0.6470000147819519,
+						0.7020000219345093,
+						1,
+						1
+					],
+					"start": [
+						0,
+						12
+					],
+					"end": [
+						0,
+						-12
+					],
+					"fillRule": 1,
+					"type": "gradientFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 47,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 6,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "Dot_Outer",
+					"parent": 43,
+					"translation": [
+						0,
+						-18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Dot_InOut",
+					"parent": 50,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 51,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 52,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 53,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": true,
+					"blendMode": 3,
+					"drawOrder": 6,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 54,
+					"opacity": 1,
+					"color": [
+						0.1411764770746231,
+						0.11764705926179886,
+						0.1882352977991104,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Path",
+					"parent": 54,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"bones": [],
+					"isVisible": true,
+					"isClosed": false,
+					"points": [
+						{
+							"pointType": 2,
+							"translation": [
+								2,
+								0
+							],
+							"in": [
+								2,
+								0
+							],
+							"out": [
+								2,
+								1.1100000143051147
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								0,
+								2
+							],
+							"in": [
+								1.100000023841858,
+								2
+							],
+							"out": [
+								-1.1100000143051147,
+								2
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								-2,
+								0
+							],
+							"in": [
+								-2,
+								1.1100000143051147
+							],
+							"out": [
+								-2,
+								-1.100000023841858
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								0,
+								-2
+							],
+							"in": [
+								-1.1100000143051147,
+								-2
+							],
+							"out": [
+								1.100000023841858,
+								-2
+							]
+						},
+						{
+							"pointType": 2,
+							"translation": [
+								2,
+								0
+							],
+							"in": [
+								2,
+								-1.100000023841858
+							],
+							"out": [
+								2,
+								0
+							]
+						}
+					],
+					"type": "path"
+				},
+				{
+					"name": "mask line_Outer",
+					"parent": 43,
+					"translation": [
+						0,
+						-56
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask line_Anchor",
+					"parent": 57,
+					"translation": [
+						0,
+						18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask line_InOut",
+					"parent": 58,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 0,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 59,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 60,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 61,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": false,
+					"blendMode": 3,
+					"drawOrder": 5,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 62,
+					"opacity": 1,
+					"color": [
+						0,
+						0,
+						0,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 62,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 4,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "line_Outer",
+					"parent": 43,
+					"translation": [
+						0,
+						-18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "line_Anchor",
+					"parent": 65,
+					"translation": [
+						0,
+						18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "line_InOut",
+					"parent": 66,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 0,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 67,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 68,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 69,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": true,
+					"blendMode": 3,
+					"drawOrder": 4,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 70,
+					"opacity": 1,
+					"color": [
+						0.1411764770746231,
+						0.11764705926179886,
+						0.1882352977991104,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 70,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 4,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "mask_Outer",
+					"parent": 43,
+					"translation": [
+						0,
+						-18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask_Anchor",
+					"parent": 73,
+					"translation": [
+						0,
+						18
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "mask_InOut",
+					"parent": 74,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 75,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 76,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						2,
+						2
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 77,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": false,
+					"blendMode": 3,
+					"drawOrder": 3,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 78,
+					"opacity": 1,
+					"color": [
+						0,
+						0,
+						0,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 78,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 6,
+					"height": 24,
+					"cornerRadius": 4,
+					"type": "rectangle"
+				},
+				{
+					"name": "Rectangle_Outer",
+					"parent": 0,
+					"translation": [
+						65,
+						19
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shapes_Container",
+					"parent": 81,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Container_Outer",
+					"parent": 82,
+					"translation": [
+						16.395999908447266,
+						-27.8700008392334
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"type": "node"
+				},
+				{
+					"name": "Shape",
+					"parent": 83,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"isVisible": false,
+					"blendMode": 3,
+					"drawOrder": 1,
+					"transformAffectsStroke": true,
+					"type": "shape"
+				},
+				{
+					"name": "Color",
+					"parent": 84,
+					"opacity": 1,
+					"color": [
+						1,
+						1,
+						1,
+						1
+					],
+					"fillRule": 1,
+					"type": "colorFill"
+				},
+				{
+					"name": "Rectangle Path",
+					"parent": 84,
+					"translation": [
+						0,
+						0
+					],
+					"rotation": 0,
+					"scale": [
+						1,
+						1
+					],
+					"opacity": 1,
+					"isCollapsed": false,
+					"clips": [],
+					"width": 161.209,
+					"height": 168.261,
+					"cornerRadius": 20,
+					"type": "rectangle"
+				}
+			],
+			"animations": [
+				{
+					"name": "Animations",
+					"fps": 60,
+					"duration": 2,
+					"isLooping": false,
+					"keyed": [
+						{
+							"component": 2,
+							"opacity": [
+								[
+									{
+										"time": 0,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 1.0166666666666666,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 8,
+							"posX": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 22.5
+									},
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 70.5
+									}
+								]
+							],
+							"posY": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 33
+									},
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 33
+									}
+								]
+							]
+						},
+						{
+							"component": 10,
+							"opacity": [
+								[
+									{
+										"time": 0,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 16,
+							"posX": [
+								[
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 22.5
+									},
+									{
+										"time": 1.3666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 27.5
+									}
+								]
+							],
+							"posY": [
+								[
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 33
+									},
+									{
+										"time": 1.3666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 47.75
+									}
+								]
+							],
+							"rotation": [
+								[
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 1.5707963267948966
+									},
+									{
+										"time": 1.3666666666666667,
+										"interpolatorType": 1,
+										"value": 0.8028514559173916
+									}
+								]
+							]
+						},
+						{
+							"component": 19,
+							"opacity": [
+								[
+									{
+										"time": 0,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 1.4333333333333333,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 25,
+							"posX": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.16699999570846558,
+										"cubicY1": 0,
+										"cubicX2": 0.8330000042915344,
+										"cubicY2": 1,
+										"value": 0
+									},
+									{
+										"time": 1.1666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 0
+									}
+								]
+							],
+							"posY": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.16699999570846558,
+										"cubicY1": 0,
+										"cubicX2": 0.8330000042915344,
+										"cubicY2": 1,
+										"value": 20
+									},
+									{
+										"time": 1.1666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": -18
+									}
+								]
+							]
+						},
+						{
+							"component": 27,
+							"opacity": [
+								[
+									{
+										"time": 0.9997222222222223,
+										"interpolatorType": 0,
+										"value": 0
+									},
+									{
+										"time": 1,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 60,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 35,
+							"opacity": [
+								[
+									{
+										"time": 0.9997222222222223,
+										"interpolatorType": 0,
+										"value": 0
+									},
+									{
+										"time": 1,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 60,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 41,
+							"posX": [
+								[
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 59
+									},
+									{
+										"time": 1.3666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 54
+									}
+								]
+							],
+							"posY": [
+								[
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 53
+									},
+									{
+										"time": 1.3666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 48
+									}
+								]
+							],
+							"rotation": [
+								[
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 1.5707963267948966
+									},
+									{
+										"time": 1.3666666666666667,
+										"interpolatorType": 1,
+										"value": 2.3387411976724017
+									}
+								]
+							]
+						},
+						{
+							"component": 44,
+							"opacity": [
+								[
+									{
+										"time": 0,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 1.4333333333333333,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 51,
+							"opacity": [
+								[
+									{
+										"time": 0,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 1.0166666666666666,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 57,
+							"posX": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 0
+									},
+									{
+										"time": 1.1666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 0
+									}
+								]
+							],
+							"posY": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": -56
+									},
+									{
+										"time": 1.1666666666666667,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": -18
+									}
+								]
+							]
+						},
+						{
+							"component": 59,
+							"opacity": [
+								[
+									{
+										"time": 0.9997222222222223,
+										"interpolatorType": 0,
+										"value": 0
+									},
+									{
+										"time": 1,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 60,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 67,
+							"opacity": [
+								[
+									{
+										"time": 0.9997222222222223,
+										"interpolatorType": 0,
+										"value": 0
+									},
+									{
+										"time": 1,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 60,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						},
+						{
+							"component": 73,
+							"posX": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": 0
+									},
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 0
+									}
+								]
+							],
+							"posY": [
+								[
+									{
+										"time": 1,
+										"interpolatorType": 2,
+										"cubicX1": 0.3330000042915344,
+										"cubicY1": 0,
+										"cubicX2": 0.6669999957084656,
+										"cubicY2": 1,
+										"value": -18
+									},
+									{
+										"time": 1.2166666666666666,
+										"interpolatorType": 2,
+										"cubicX1": 1,
+										"cubicY1": 1,
+										"cubicX2": 0,
+										"cubicY2": 0,
+										"value": 30
+									}
+								]
+							]
+						},
+						{
+							"component": 75,
+							"opacity": [
+								[
+									{
+										"time": 0,
+										"interpolatorType": 0,
+										"value": 1
+									},
+									{
+										"time": 1.2333333333333334,
+										"interpolatorType": 1,
+										"value": 0
+									}
+								]
+							]
+						}
+					],
+					"animationStart": 0,
+					"animationEnd": 60,
+					"type": "animation"
+				}
+			],
+			"type": "artboard"
+		}
+	]
+}
\ No newline at end of file
diff --git a/gallery/assets/logo/1.5x/flutter_logo.png b/gallery/assets/logo/1.5x/flutter_logo.png
new file mode 100644
index 0000000..28b7eb9
--- /dev/null
+++ b/gallery/assets/logo/1.5x/flutter_logo.png
Binary files differ
diff --git a/gallery/assets/logo/1.5x/flutter_logo_color.png b/gallery/assets/logo/1.5x/flutter_logo_color.png
new file mode 100644
index 0000000..9eba79c
--- /dev/null
+++ b/gallery/assets/logo/1.5x/flutter_logo_color.png
Binary files differ
diff --git a/gallery/assets/logo/2.0x/flutter_logo.png b/gallery/assets/logo/2.0x/flutter_logo.png
new file mode 100644
index 0000000..dc1d3d1
--- /dev/null
+++ b/gallery/assets/logo/2.0x/flutter_logo.png
Binary files differ
diff --git a/gallery/assets/logo/2.0x/flutter_logo_color.png b/gallery/assets/logo/2.0x/flutter_logo_color.png
new file mode 100644
index 0000000..c54d6ee
--- /dev/null
+++ b/gallery/assets/logo/2.0x/flutter_logo_color.png
Binary files differ
diff --git a/gallery/assets/logo/3.0x/flutter_logo.png b/gallery/assets/logo/3.0x/flutter_logo.png
new file mode 100644
index 0000000..da48917
--- /dev/null
+++ b/gallery/assets/logo/3.0x/flutter_logo.png
Binary files differ
diff --git a/gallery/assets/logo/3.0x/flutter_logo_color.png b/gallery/assets/logo/3.0x/flutter_logo_color.png
new file mode 100644
index 0000000..0059ea6
--- /dev/null
+++ b/gallery/assets/logo/3.0x/flutter_logo_color.png
Binary files differ
diff --git a/gallery/assets/logo/4.0x/flutter_logo.png b/gallery/assets/logo/4.0x/flutter_logo.png
new file mode 100644
index 0000000..0e93874
--- /dev/null
+++ b/gallery/assets/logo/4.0x/flutter_logo.png
Binary files differ
diff --git a/gallery/assets/logo/4.0x/flutter_logo_color.png b/gallery/assets/logo/4.0x/flutter_logo_color.png
new file mode 100644
index 0000000..3c6e643
--- /dev/null
+++ b/gallery/assets/logo/4.0x/flutter_logo_color.png
Binary files differ
diff --git a/gallery/assets/logo/flutter_logo.png b/gallery/assets/logo/flutter_logo.png
new file mode 100644
index 0000000..3c0256e
--- /dev/null
+++ b/gallery/assets/logo/flutter_logo.png
Binary files differ
diff --git a/gallery/assets/logo/flutter_logo_color.png b/gallery/assets/logo/flutter_logo_color.png
new file mode 100644
index 0000000..64d0fc0
--- /dev/null
+++ b/gallery/assets/logo/flutter_logo_color.png
Binary files differ
diff --git a/gallery/assets/splash_effects/splash_effect_1.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_1.gif.REMOVED.git-id
new file mode 100644
index 0000000..b5d8080
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_1.gif.REMOVED.git-id
@@ -0,0 +1 @@
+6c6fc37bf952d735f8776212a50984fce9e961a6
\ No newline at end of file
diff --git a/gallery/assets/splash_effects/splash_effect_10.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_10.gif.REMOVED.git-id
new file mode 100644
index 0000000..00f2888
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_10.gif.REMOVED.git-id
@@ -0,0 +1 @@
+bea4f99005aa6ce70b4efcd295426c2a47958abc
\ No newline at end of file
diff --git a/gallery/assets/splash_effects/splash_effect_2.gif b/gallery/assets/splash_effects/splash_effect_2.gif
new file mode 100755
index 0000000..af6e817
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_2.gif
Binary files differ
diff --git a/gallery/assets/splash_effects/splash_effect_3.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_3.gif.REMOVED.git-id
new file mode 100644
index 0000000..0f3c55d
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_3.gif.REMOVED.git-id
@@ -0,0 +1 @@
+8d6f6fb7b620c76a7e24f182d727e5ac25465f77
\ No newline at end of file
diff --git a/gallery/assets/splash_effects/splash_effect_4.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_4.gif.REMOVED.git-id
new file mode 100644
index 0000000..b70a681
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_4.gif.REMOVED.git-id
@@ -0,0 +1 @@
+8c39ce0fa46ea4e6beb05a47d998197f2cc142b8
\ No newline at end of file
diff --git a/gallery/assets/splash_effects/splash_effect_5.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_5.gif.REMOVED.git-id
new file mode 100644
index 0000000..a710827
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_5.gif.REMOVED.git-id
@@ -0,0 +1 @@
+c496a465cc2bac5f816c8048370216bb5eb0aee1
\ No newline at end of file
diff --git a/gallery/assets/splash_effects/splash_effect_6.gif b/gallery/assets/splash_effects/splash_effect_6.gif
new file mode 100755
index 0000000..29d94cc
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_6.gif
Binary files differ
diff --git a/gallery/assets/splash_effects/splash_effect_7.gif b/gallery/assets/splash_effects/splash_effect_7.gif
new file mode 100755
index 0000000..972cdf4
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_7.gif
Binary files differ
diff --git a/gallery/assets/splash_effects/splash_effect_8.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_8.gif.REMOVED.git-id
new file mode 100644
index 0000000..2fd13da
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_8.gif.REMOVED.git-id
@@ -0,0 +1 @@
+280f61573f52cc2b1162c5d84bbfb200ec4eb3dd
\ No newline at end of file
diff --git a/gallery/assets/splash_effects/splash_effect_9.gif.REMOVED.git-id b/gallery/assets/splash_effects/splash_effect_9.gif.REMOVED.git-id
new file mode 100644
index 0000000..92965b9
--- /dev/null
+++ b/gallery/assets/splash_effects/splash_effect_9.gif.REMOVED.git-id
@@ -0,0 +1 @@
+c99a626e06a6cf3da9067f5fe932da40502ccc06
\ No newline at end of file
diff --git a/gallery/assets/studies/1.5x/crane_card.png b/gallery/assets/studies/1.5x/crane_card.png
new file mode 100644
index 0000000..958d498
--- /dev/null
+++ b/gallery/assets/studies/1.5x/crane_card.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/crane_card_dark.png b/gallery/assets/studies/1.5x/crane_card_dark.png
new file mode 100644
index 0000000..9f59586
--- /dev/null
+++ b/gallery/assets/studies/1.5x/crane_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/rally_card.png b/gallery/assets/studies/1.5x/rally_card.png
new file mode 100644
index 0000000..75aa3c3
--- /dev/null
+++ b/gallery/assets/studies/1.5x/rally_card.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/rally_card_dark.png b/gallery/assets/studies/1.5x/rally_card_dark.png
new file mode 100644
index 0000000..dd9f2a1
--- /dev/null
+++ b/gallery/assets/studies/1.5x/rally_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/shrine_card.png b/gallery/assets/studies/1.5x/shrine_card.png
new file mode 100644
index 0000000..f8e6c97
--- /dev/null
+++ b/gallery/assets/studies/1.5x/shrine_card.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/shrine_card_dark.png b/gallery/assets/studies/1.5x/shrine_card_dark.png
new file mode 100644
index 0000000..8be90bc
--- /dev/null
+++ b/gallery/assets/studies/1.5x/shrine_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/starter_card.png b/gallery/assets/studies/1.5x/starter_card.png
new file mode 100644
index 0000000..db8cca7
--- /dev/null
+++ b/gallery/assets/studies/1.5x/starter_card.png
Binary files differ
diff --git a/gallery/assets/studies/1.5x/starter_card_dark.png b/gallery/assets/studies/1.5x/starter_card_dark.png
new file mode 100644
index 0000000..1d2e413
--- /dev/null
+++ b/gallery/assets/studies/1.5x/starter_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/crane_card.png b/gallery/assets/studies/2.0x/crane_card.png
new file mode 100644
index 0000000..a1bd8a9
--- /dev/null
+++ b/gallery/assets/studies/2.0x/crane_card.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/crane_card_dark.png b/gallery/assets/studies/2.0x/crane_card_dark.png
new file mode 100644
index 0000000..1d8bbd9
--- /dev/null
+++ b/gallery/assets/studies/2.0x/crane_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/rally_card.png b/gallery/assets/studies/2.0x/rally_card.png
new file mode 100644
index 0000000..2c005fa
--- /dev/null
+++ b/gallery/assets/studies/2.0x/rally_card.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/rally_card_dark.png b/gallery/assets/studies/2.0x/rally_card_dark.png
new file mode 100644
index 0000000..bd88df3
--- /dev/null
+++ b/gallery/assets/studies/2.0x/rally_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/shrine_card.png b/gallery/assets/studies/2.0x/shrine_card.png
new file mode 100644
index 0000000..6e9f30d
--- /dev/null
+++ b/gallery/assets/studies/2.0x/shrine_card.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/shrine_card_dark.png b/gallery/assets/studies/2.0x/shrine_card_dark.png
new file mode 100644
index 0000000..44a98dc
--- /dev/null
+++ b/gallery/assets/studies/2.0x/shrine_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/starter_card.png b/gallery/assets/studies/2.0x/starter_card.png
new file mode 100644
index 0000000..26dc249
--- /dev/null
+++ b/gallery/assets/studies/2.0x/starter_card.png
Binary files differ
diff --git a/gallery/assets/studies/2.0x/starter_card_dark.png b/gallery/assets/studies/2.0x/starter_card_dark.png
new file mode 100644
index 0000000..ed20b98
--- /dev/null
+++ b/gallery/assets/studies/2.0x/starter_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/crane_card.png b/gallery/assets/studies/3.0x/crane_card.png
new file mode 100644
index 0000000..998536b
--- /dev/null
+++ b/gallery/assets/studies/3.0x/crane_card.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/crane_card_dark.png b/gallery/assets/studies/3.0x/crane_card_dark.png
new file mode 100644
index 0000000..a4bfed0
--- /dev/null
+++ b/gallery/assets/studies/3.0x/crane_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/rally_card.png b/gallery/assets/studies/3.0x/rally_card.png
new file mode 100644
index 0000000..fb38f6a
--- /dev/null
+++ b/gallery/assets/studies/3.0x/rally_card.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/rally_card_dark.png b/gallery/assets/studies/3.0x/rally_card_dark.png
new file mode 100644
index 0000000..0dd8cd9
--- /dev/null
+++ b/gallery/assets/studies/3.0x/rally_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/shrine_card.png b/gallery/assets/studies/3.0x/shrine_card.png
new file mode 100644
index 0000000..765bc74
--- /dev/null
+++ b/gallery/assets/studies/3.0x/shrine_card.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/shrine_card_dark.png b/gallery/assets/studies/3.0x/shrine_card_dark.png
new file mode 100644
index 0000000..92fec6d
--- /dev/null
+++ b/gallery/assets/studies/3.0x/shrine_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/starter_card.png b/gallery/assets/studies/3.0x/starter_card.png
new file mode 100644
index 0000000..e1472c7
--- /dev/null
+++ b/gallery/assets/studies/3.0x/starter_card.png
Binary files differ
diff --git a/gallery/assets/studies/3.0x/starter_card_dark.png b/gallery/assets/studies/3.0x/starter_card_dark.png
new file mode 100644
index 0000000..d8df908
--- /dev/null
+++ b/gallery/assets/studies/3.0x/starter_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/crane_card.png b/gallery/assets/studies/4.0x/crane_card.png
new file mode 100644
index 0000000..c007668
--- /dev/null
+++ b/gallery/assets/studies/4.0x/crane_card.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/crane_card_dark.png b/gallery/assets/studies/4.0x/crane_card_dark.png
new file mode 100644
index 0000000..b398153
--- /dev/null
+++ b/gallery/assets/studies/4.0x/crane_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/rally_card.png b/gallery/assets/studies/4.0x/rally_card.png
new file mode 100644
index 0000000..e6c20d6
--- /dev/null
+++ b/gallery/assets/studies/4.0x/rally_card.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/rally_card_dark.png b/gallery/assets/studies/4.0x/rally_card_dark.png
new file mode 100644
index 0000000..646e240
--- /dev/null
+++ b/gallery/assets/studies/4.0x/rally_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/shrine_card.png b/gallery/assets/studies/4.0x/shrine_card.png
new file mode 100644
index 0000000..b365424
--- /dev/null
+++ b/gallery/assets/studies/4.0x/shrine_card.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/shrine_card_dark.png b/gallery/assets/studies/4.0x/shrine_card_dark.png
new file mode 100644
index 0000000..ef03b03
--- /dev/null
+++ b/gallery/assets/studies/4.0x/shrine_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/starter_card.png b/gallery/assets/studies/4.0x/starter_card.png
new file mode 100644
index 0000000..c7b7ddf
--- /dev/null
+++ b/gallery/assets/studies/4.0x/starter_card.png
Binary files differ
diff --git a/gallery/assets/studies/4.0x/starter_card_dark.png b/gallery/assets/studies/4.0x/starter_card_dark.png
new file mode 100644
index 0000000..1f4f944
--- /dev/null
+++ b/gallery/assets/studies/4.0x/starter_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/crane_card.png b/gallery/assets/studies/crane_card.png
new file mode 100644
index 0000000..1a1d517
--- /dev/null
+++ b/gallery/assets/studies/crane_card.png
Binary files differ
diff --git a/gallery/assets/studies/crane_card_dark.png b/gallery/assets/studies/crane_card_dark.png
new file mode 100644
index 0000000..f710b74
--- /dev/null
+++ b/gallery/assets/studies/crane_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/rally_card.png b/gallery/assets/studies/rally_card.png
new file mode 100644
index 0000000..40765a2
--- /dev/null
+++ b/gallery/assets/studies/rally_card.png
Binary files differ
diff --git a/gallery/assets/studies/rally_card_dark.png b/gallery/assets/studies/rally_card_dark.png
new file mode 100644
index 0000000..8a2e50e
--- /dev/null
+++ b/gallery/assets/studies/rally_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/shrine_card.png b/gallery/assets/studies/shrine_card.png
new file mode 100644
index 0000000..6f87eb9
--- /dev/null
+++ b/gallery/assets/studies/shrine_card.png
Binary files differ
diff --git a/gallery/assets/studies/shrine_card_dark.png b/gallery/assets/studies/shrine_card_dark.png
new file mode 100644
index 0000000..f9bd3ea
--- /dev/null
+++ b/gallery/assets/studies/shrine_card_dark.png
Binary files differ
diff --git a/gallery/assets/studies/starter_card.png b/gallery/assets/studies/starter_card.png
new file mode 100644
index 0000000..200998d
--- /dev/null
+++ b/gallery/assets/studies/starter_card.png
Binary files differ
diff --git a/gallery/assets/studies/starter_card_dark.png b/gallery/assets/studies/starter_card_dark.png
new file mode 100644
index 0000000..74707b0
--- /dev/null
+++ b/gallery/assets/studies/starter_card_dark.png
Binary files differ
diff --git a/gallery/fonts/GalleryIcons.ttf b/gallery/fonts/GalleryIcons.ttf
new file mode 100644
index 0000000..53c5d2d
--- /dev/null
+++ b/gallery/fonts/GalleryIcons.ttf
Binary files differ
diff --git a/gallery/fonts/Montserrat-Bold.ttf b/gallery/fonts/Montserrat-Bold.ttf
new file mode 100755
index 0000000..221819b
--- /dev/null
+++ b/gallery/fonts/Montserrat-Bold.ttf
Binary files differ
diff --git a/gallery/fonts/Montserrat-Medium.ttf b/gallery/fonts/Montserrat-Medium.ttf
new file mode 100755
index 0000000..6e079f6
--- /dev/null
+++ b/gallery/fonts/Montserrat-Medium.ttf
Binary files differ
diff --git a/gallery/fonts/Montserrat-Regular.ttf b/gallery/fonts/Montserrat-Regular.ttf
new file mode 100755
index 0000000..8d443d5
--- /dev/null
+++ b/gallery/fonts/Montserrat-Regular.ttf
Binary files differ
diff --git a/gallery/fonts/Montserrat-SemiBold.ttf b/gallery/fonts/Montserrat-SemiBold.ttf
new file mode 100755
index 0000000..f8a43f2
--- /dev/null
+++ b/gallery/fonts/Montserrat-SemiBold.ttf
Binary files differ
diff --git a/gallery/fonts/Oswald-Medium.ttf b/gallery/fonts/Oswald-Medium.ttf
new file mode 100755
index 0000000..1070c14
--- /dev/null
+++ b/gallery/fonts/Oswald-Medium.ttf
Binary files differ
diff --git a/gallery/fonts/Oswald-SemiBold.ttf b/gallery/fonts/Oswald-SemiBold.ttf
new file mode 100755
index 0000000..8c69d46
--- /dev/null
+++ b/gallery/fonts/Oswald-SemiBold.ttf
Binary files differ
diff --git a/gallery/fonts/Raleway-Light.ttf b/gallery/fonts/Raleway-Light.ttf
new file mode 100755
index 0000000..b5ec486
--- /dev/null
+++ b/gallery/fonts/Raleway-Light.ttf
Binary files differ
diff --git a/gallery/fonts/Raleway-Medium.ttf b/gallery/fonts/Raleway-Medium.ttf
new file mode 100755
index 0000000..070ac76
--- /dev/null
+++ b/gallery/fonts/Raleway-Medium.ttf
Binary files differ
diff --git a/gallery/fonts/Raleway-Regular.ttf b/gallery/fonts/Raleway-Regular.ttf
new file mode 100755
index 0000000..746c242
--- /dev/null
+++ b/gallery/fonts/Raleway-Regular.ttf
Binary files differ
diff --git a/gallery/fonts/Raleway-SemiBold.ttf b/gallery/fonts/Raleway-SemiBold.ttf
new file mode 100755
index 0000000..34db420
--- /dev/null
+++ b/gallery/fonts/Raleway-SemiBold.ttf
Binary files differ
diff --git a/gallery/fonts/RobotoMono-Regular.ttf b/gallery/fonts/RobotoMono-Regular.ttf
new file mode 100755
index 0000000..5919b5d
--- /dev/null
+++ b/gallery/fonts/RobotoMono-Regular.ttf
Binary files differ
diff --git a/gallery/fonts/Rubik-Bold.ttf b/gallery/fonts/Rubik-Bold.ttf
new file mode 100755
index 0000000..4e77930
--- /dev/null
+++ b/gallery/fonts/Rubik-Bold.ttf
Binary files differ
diff --git a/gallery/fonts/Rubik-Medium.ttf b/gallery/fonts/Rubik-Medium.ttf
new file mode 100755
index 0000000..9e358b2
--- /dev/null
+++ b/gallery/fonts/Rubik-Medium.ttf
Binary files differ
diff --git a/gallery/fonts/Rubik-Regular.ttf b/gallery/fonts/Rubik-Regular.ttf
new file mode 100755
index 0000000..52b59ca
--- /dev/null
+++ b/gallery/fonts/Rubik-Regular.ttf
Binary files differ
diff --git a/gallery/ios/.gitignore b/gallery/ios/.gitignore
new file mode 100644
index 0000000..e96ef60
--- /dev/null
+++ b/gallery/ios/.gitignore
@@ -0,0 +1,32 @@
+*.mode1v3
+*.mode2v3
+*.moved-aside
+*.pbxuser
+*.perspectivev3
+**/*sync/
+.sconsign.dblite
+.tags*
+**/.vagrant/
+**/DerivedData/
+Icon?
+**/Pods/
+**/.symlinks/
+profile
+xcuserdata
+**/.generated/
+Flutter/App.framework
+Flutter/Flutter.framework
+Flutter/Flutter.podspec
+Flutter/Generated.xcconfig
+Flutter/app.flx
+Flutter/app.zip
+Flutter/flutter_assets/
+Flutter/flutter_export_environment.sh
+ServiceDefinitions.json
+Runner/GeneratedPluginRegistrant.*
+
+# Exceptions to above rules.
+!default.mode1v3
+!default.mode2v3
+!default.pbxuser
+!default.perspectivev3
diff --git a/gallery/ios/Flutter/AppFrameworkInfo.plist b/gallery/ios/Flutter/AppFrameworkInfo.plist
new file mode 100644
index 0000000..6b4c0f7
--- /dev/null
+++ b/gallery/ios/Flutter/AppFrameworkInfo.plist
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+  <key>CFBundleDevelopmentRegion</key>
+  <string>$(DEVELOPMENT_LANGUAGE)</string>
+  <key>CFBundleExecutable</key>
+  <string>App</string>
+  <key>CFBundleIdentifier</key>
+  <string>io.flutter.flutter.app</string>
+  <key>CFBundleInfoDictionaryVersion</key>
+  <string>6.0</string>
+  <key>CFBundleName</key>
+  <string>App</string>
+  <key>CFBundlePackageType</key>
+  <string>FMWK</string>
+  <key>CFBundleShortVersionString</key>
+  <string>1.0</string>
+  <key>CFBundleSignature</key>
+  <string>????</string>
+  <key>CFBundleVersion</key>
+  <string>1.0</string>
+  <key>MinimumOSVersion</key>
+  <string>8.0</string>
+</dict>
+</plist>
diff --git a/gallery/ios/Flutter/Debug.xcconfig b/gallery/ios/Flutter/Debug.xcconfig
new file mode 100644
index 0000000..e8efba1
--- /dev/null
+++ b/gallery/ios/Flutter/Debug.xcconfig
@@ -0,0 +1,2 @@
+#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"
+#include "Generated.xcconfig"
diff --git a/gallery/ios/Flutter/Release.xcconfig b/gallery/ios/Flutter/Release.xcconfig
new file mode 100644
index 0000000..399e934
--- /dev/null
+++ b/gallery/ios/Flutter/Release.xcconfig
@@ -0,0 +1,2 @@
+#include "Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"
+#include "Generated.xcconfig"
diff --git a/gallery/ios/Podfile b/gallery/ios/Podfile
new file mode 100644
index 0000000..b30a428
--- /dev/null
+++ b/gallery/ios/Podfile
@@ -0,0 +1,90 @@
+# Uncomment this line to define a global platform for your project
+# platform :ios, '9.0'
+
+# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
+ENV['COCOAPODS_DISABLE_STATS'] = 'true'
+
+project 'Runner', {
+  'Debug' => :debug,
+  'Profile' => :release,
+  'Release' => :release,
+}
+
+def parse_KV_file(file, separator='=')
+  file_abs_path = File.expand_path(file)
+  if !File.exists? file_abs_path
+    return [];
+  end
+  generated_key_values = {}
+  skip_line_start_symbols = ["#", "/"]
+  File.foreach(file_abs_path) do |line|
+    next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
+    plugin = line.split(pattern=separator)
+    if plugin.length == 2
+      podname = plugin[0].strip()
+      path = plugin[1].strip()
+      podpath = File.expand_path("#{path}", file_abs_path)
+      generated_key_values[podname] = podpath
+    else
+      puts "Invalid plugin specification: #{line}"
+    end
+  end
+  generated_key_values
+end
+
+target 'Runner' do
+  use_frameworks!
+  use_modular_headers!
+  
+  # Flutter Pod
+
+  copied_flutter_dir = File.join(__dir__, 'Flutter')
+  copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
+  copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
+  unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
+    # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
+    # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
+    # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
+
+    generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
+    unless File.exist?(generated_xcode_build_settings_path)
+      raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
+    end
+    generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
+    cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
+
+    unless File.exist?(copied_framework_path)
+      FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
+    end
+    unless File.exist?(copied_podspec_path)
+      FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
+    end
+  end
+
+  # Keep pod path relative so it can be checked into Podfile.lock.
+  pod 'Flutter', :path => 'Flutter'
+
+  # Plugin Pods
+
+  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
+  # referring to absolute paths on developers' machines.
+  system('rm -rf .symlinks')
+  system('mkdir -p .symlinks/plugins')
+  plugin_pods = parse_KV_file('../.flutter-plugins')
+  plugin_pods.each do |name, path|
+    symlink = File.join('.symlinks', 'plugins', name)
+    File.symlink(path, symlink)
+    pod name, :path => File.join(symlink, 'ios')
+  end
+end
+
+# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
+install! 'cocoapods', :disable_input_output_paths => true
+
+post_install do |installer|
+  installer.pods_project.targets.each do |target|
+    target.build_configurations.each do |config|
+      config.build_settings['ENABLE_BITCODE'] = 'NO'
+    end
+  end
+end
diff --git a/gallery/ios/Podfile.lock b/gallery/ios/Podfile.lock
new file mode 100644
index 0000000..99d0c8e
--- /dev/null
+++ b/gallery/ios/Podfile.lock
@@ -0,0 +1,40 @@
+PODS:
+  - Flutter (1.0.0)
+  - shared_preferences (0.0.1):
+    - Flutter
+  - url_launcher (0.0.1):
+    - Flutter
+  - url_launcher_fde (0.0.1):
+    - Flutter
+  - url_launcher_web (0.0.1):
+    - Flutter
+
+DEPENDENCIES:
+  - Flutter (from `Flutter`)
+  - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
+  - url_launcher (from `.symlinks/plugins/url_launcher/ios`)
+  - url_launcher_fde (from `.symlinks/plugins/url_launcher_fde/ios`)
+  - url_launcher_web (from `.symlinks/plugins/url_launcher_web/ios`)
+
+EXTERNAL SOURCES:
+  Flutter:
+    :path: Flutter
+  shared_preferences:
+    :path: ".symlinks/plugins/shared_preferences/ios"
+  url_launcher:
+    :path: ".symlinks/plugins/url_launcher/ios"
+  url_launcher_fde:
+    :path: ".symlinks/plugins/url_launcher_fde/ios"
+  url_launcher_web:
+    :path: ".symlinks/plugins/url_launcher_web/ios"
+
+SPEC CHECKSUMS:
+  Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
+  shared_preferences: 430726339841afefe5142b9c1f50cb6bd7793e01
+  url_launcher: a1c0cc845906122c4784c542523d8cacbded5626
+  url_launcher_fde: 57842a92168588f04dfa4a86edfe5756a6c13d5f
+  url_launcher_web: e5527357f037c87560776e36436bf2b0288b965c
+
+PODFILE CHECKSUM: 1b66dae606f75376c5f2135a8290850eeb09ae83
+
+COCOAPODS: 1.7.5
diff --git a/gallery/ios/Runner.xcodeproj/project.pbxproj b/gallery/ios/Runner.xcodeproj/project.pbxproj
new file mode 100644
index 0000000..9d4f3f7
--- /dev/null
+++ b/gallery/ios/Runner.xcodeproj/project.pbxproj
@@ -0,0 +1,594 @@
+// !$*UTF8*$!
+{
+	archiveVersion = 1;
+	classes = {
+	};
+	objectVersion = 46;
+	objects = {
+
+/* Begin PBXBuildFile section */
+		1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
+		1C16F239376F6C80B132A33C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 82C68F4BB1F1929638511152 /* Pods_Runner.framework */; };
+		3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
+		3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
+		3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
+		9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
+		9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
+		97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
+		97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
+		97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+		9705A1C41CF9048500538489 /* Embed Frameworks */ = {
+			isa = PBXCopyFilesBuildPhase;
+			buildActionMask = 2147483647;
+			dstPath = "";
+			dstSubfolderSpec = 10;
+			files = (
+				3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */,
+				9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */,
+			);
+			name = "Embed Frameworks";
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+		1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
+		1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
+		2776FF3A047989BDE50E86C4 /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
+		3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
+		3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
+		7099545BF450814D783405D1 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
+		74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
+		74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
+		7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
+		82C68F4BB1F1929638511152 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
+		9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
+		9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
+		9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
+		97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
+		97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
+		97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
+		97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
+		97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
+		CB5FD4B19ACF8C4DC8C8B160 /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+		97C146EB1CF9000F007C117D /* Frameworks */ = {
+			isa = PBXFrameworksBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */,
+				3B80C3941E831B6300D905FE /* App.framework in Frameworks */,
+				1C16F239376F6C80B132A33C /* Pods_Runner.framework in Frameworks */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+		83B2F410E85B6D706A0FD46E /* Pods */ = {
+			isa = PBXGroup;
+			children = (
+				7099545BF450814D783405D1 /* Pods-Runner.debug.xcconfig */,
+				2776FF3A047989BDE50E86C4 /* Pods-Runner.release.xcconfig */,
+				CB5FD4B19ACF8C4DC8C8B160 /* Pods-Runner.profile.xcconfig */,
+			);
+			path = Pods;
+			sourceTree = "<group>";
+		};
+		9740EEB11CF90186004384FC /* Flutter */ = {
+			isa = PBXGroup;
+			children = (
+				3B80C3931E831B6300D905FE /* App.framework */,
+				3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */,
+				9740EEBA1CF902C7004384FC /* Flutter.framework */,
+				9740EEB21CF90195004384FC /* Debug.xcconfig */,
+				7AFA3C8E1D35360C0083082E /* Release.xcconfig */,
+				9740EEB31CF90195004384FC /* Generated.xcconfig */,
+			);
+			name = Flutter;
+			sourceTree = "<group>";
+		};
+		97C146E51CF9000F007C117D = {
+			isa = PBXGroup;
+			children = (
+				9740EEB11CF90186004384FC /* Flutter */,
+				97C146F01CF9000F007C117D /* Runner */,
+				97C146EF1CF9000F007C117D /* Products */,
+				83B2F410E85B6D706A0FD46E /* Pods */,
+				C397B63AC3DDF596E6C35A58 /* Frameworks */,
+			);
+			sourceTree = "<group>";
+		};
+		97C146EF1CF9000F007C117D /* Products */ = {
+			isa = PBXGroup;
+			children = (
+				97C146EE1CF9000F007C117D /* Runner.app */,
+			);
+			name = Products;
+			sourceTree = "<group>";
+		};
+		97C146F01CF9000F007C117D /* Runner */ = {
+			isa = PBXGroup;
+			children = (
+				97C146FA1CF9000F007C117D /* Main.storyboard */,
+				97C146FD1CF9000F007C117D /* Assets.xcassets */,
+				97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
+				97C147021CF9000F007C117D /* Info.plist */,
+				97C146F11CF9000F007C117D /* Supporting Files */,
+				1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
+				1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
+				74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
+				74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
+			);
+			path = Runner;
+			sourceTree = "<group>";
+		};
+		97C146F11CF9000F007C117D /* Supporting Files */ = {
+			isa = PBXGroup;
+			children = (
+			);
+			name = "Supporting Files";
+			sourceTree = "<group>";
+		};
+		C397B63AC3DDF596E6C35A58 /* Frameworks */ = {
+			isa = PBXGroup;
+			children = (
+				82C68F4BB1F1929638511152 /* Pods_Runner.framework */,
+			);
+			name = Frameworks;
+			sourceTree = "<group>";
+		};
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+		97C146ED1CF9000F007C117D /* Runner */ = {
+			isa = PBXNativeTarget;
+			buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */;
+			buildPhases = (
+				C9464825360F4145681B135C /* [CP] Check Pods Manifest.lock */,
+				9740EEB61CF901F6004384FC /* Run Script */,
+				97C146EA1CF9000F007C117D /* Sources */,
+				97C146EB1CF9000F007C117D /* Frameworks */,
+				97C146EC1CF9000F007C117D /* Resources */,
+				9705A1C41CF9048500538489 /* Embed Frameworks */,
+				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
+				320E612254713BB76BD8472F /* [CP] Embed Pods Frameworks */,
+			);
+			buildRules = (
+			);
+			dependencies = (
+			);
+			name = Runner;
+			productName = Runner;
+			productReference = 97C146EE1CF9000F007C117D /* Runner.app */;
+			productType = "com.apple.product-type.application";
+		};
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+		97C146E61CF9000F007C117D /* Project object */ = {
+			isa = PBXProject;
+			attributes = {
+				LastUpgradeCheck = 1020;
+				ORGANIZATIONNAME = "The Chromium Authors";
+				TargetAttributes = {
+					97C146ED1CF9000F007C117D = {
+						CreatedOnToolsVersion = 7.3.1;
+						DevelopmentTeam = EQHXZ8M8AV;
+						LastSwiftMigration = 0910;
+						ProvisioningStyle = Manual;
+					};
+				};
+			};
+			buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */;
+			compatibilityVersion = "Xcode 3.2";
+			developmentRegion = en;
+			hasScannedForEncodings = 0;
+			knownRegions = (
+				en,
+				Base,
+			);
+			mainGroup = 97C146E51CF9000F007C117D;
+			productRefGroup = 97C146EF1CF9000F007C117D /* Products */;
+			projectDirPath = "";
+			projectRoot = "";
+			targets = (
+				97C146ED1CF9000F007C117D /* Runner */,
+			);
+		};
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+		97C146EC1CF9000F007C117D /* Resources */ = {
+			isa = PBXResourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
+				3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
+				97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
+				97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXShellScriptBuildPhase section */
+		320E612254713BB76BD8472F /* [CP] Embed Pods Frameworks */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "[CP] Embed Pods Frameworks";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
+			showEnvVarsInLog = 0;
+		};
+		3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Thin Binary";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" thin";
+		};
+		9740EEB61CF901F6004384FC /* Run Script */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputPaths = (
+			);
+			name = "Run Script";
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
+		};
+		C9464825360F4145681B135C /* [CP] Check Pods Manifest.lock */ = {
+			isa = PBXShellScriptBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+				"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
+				"${PODS_ROOT}/Manifest.lock",
+			);
+			name = "[CP] Check Pods Manifest.lock";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+				"$(DERIVED_FILE_DIR)/Pods-Runner-checkManifestLockResult.txt",
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n    # print error to STDERR\n    echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n    exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
+			showEnvVarsInLog = 0;
+		};
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+		97C146EA1CF9000F007C117D /* Sources */ = {
+			isa = PBXSourcesBuildPhase;
+			buildActionMask = 2147483647;
+			files = (
+				74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */,
+				1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */,
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+		};
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+		97C146FA1CF9000F007C117D /* Main.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C146FB1CF9000F007C117D /* Base */,
+			);
+			name = Main.storyboard;
+			sourceTree = "<group>";
+		};
+		97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = {
+			isa = PBXVariantGroup;
+			children = (
+				97C147001CF9000F007C117D /* Base */,
+			);
+			name = LaunchScreen.storyboard;
+			sourceTree = "<group>";
+		};
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+		249021D3217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Profile;
+		};
+		249021D4217E4FDB00AE95B9 /* Profile */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CODE_SIGN_STYLE = Manual;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = EQHXZ8M8AV;
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.example.gallery;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PROVISIONING_PROFILE_SPECIFIER = "Google Development";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_VERSION = 4.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Profile;
+		};
+		97C147031CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = dwarf;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				ENABLE_TESTABILITY = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_DYNAMIC_NO_PIC = NO;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_OPTIMIZATION_LEVEL = 0;
+				GCC_PREPROCESSOR_DEFINITIONS = (
+					"DEBUG=1",
+					"$(inherited)",
+				);
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = YES;
+				ONLY_ACTIVE_ARCH = YES;
+				SDKROOT = iphoneos;
+				TARGETED_DEVICE_FAMILY = "1,2";
+			};
+			name = Debug;
+		};
+		97C147041CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				CLANG_ANALYZER_NONNULL = YES;
+				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_MODULES = YES;
+				CLANG_ENABLE_OBJC_ARC = YES;
+				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+				CLANG_WARN_BOOL_CONVERSION = YES;
+				CLANG_WARN_COMMA = YES;
+				CLANG_WARN_CONSTANT_CONVERSION = YES;
+				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
+				CLANG_WARN_EMPTY_BODY = YES;
+				CLANG_WARN_ENUM_CONVERSION = YES;
+				CLANG_WARN_INFINITE_RECURSION = YES;
+				CLANG_WARN_INT_CONVERSION = YES;
+				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
+				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+				CLANG_WARN_STRICT_PROTOTYPES = YES;
+				CLANG_WARN_SUSPICIOUS_MOVE = YES;
+				CLANG_WARN_UNREACHABLE_CODE = YES;
+				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+				COPY_PHASE_STRIP = NO;
+				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
+				ENABLE_NS_ASSERTIONS = NO;
+				ENABLE_STRICT_OBJC_MSGSEND = YES;
+				GCC_C_LANGUAGE_STANDARD = gnu99;
+				GCC_NO_COMMON_BLOCKS = YES;
+				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
+				GCC_WARN_UNDECLARED_SELECTOR = YES;
+				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
+				GCC_WARN_UNUSED_FUNCTION = YES;
+				GCC_WARN_UNUSED_VARIABLE = YES;
+				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
+				MTL_ENABLE_DEBUG_INFO = NO;
+				SDKROOT = iphoneos;
+				SUPPORTED_PLATFORMS = iphoneos;
+				SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
+				TARGETED_DEVICE_FAMILY = "1,2";
+				VALIDATE_PRODUCT = YES;
+			};
+			name = Release;
+		};
+		97C147061CF9000F007C117D /* Debug */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CODE_SIGN_STYLE = Manual;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = EQHXZ8M8AV;
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.example.gallery;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PROVISIONING_PROFILE_SPECIFIER = "Google Development";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_OPTIMIZATION_LEVEL = "-Onone";
+				SWIFT_VERSION = 4.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Debug;
+		};
+		97C147071CF9000F007C117D /* Release */ = {
+			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
+			buildSettings = {
+				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+				CLANG_ENABLE_MODULES = YES;
+				CODE_SIGN_STYLE = Manual;
+				CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
+				DEVELOPMENT_TEAM = EQHXZ8M8AV;
+				ENABLE_BITCODE = NO;
+				FRAMEWORK_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				INFOPLIST_FILE = Runner/Info.plist;
+				LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
+				LIBRARY_SEARCH_PATHS = (
+					"$(inherited)",
+					"$(PROJECT_DIR)/Flutter",
+				);
+				PRODUCT_BUNDLE_IDENTIFIER = com.example.gallery;
+				PRODUCT_NAME = "$(TARGET_NAME)";
+				PROVISIONING_PROFILE_SPECIFIER = "Google Development";
+				SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
+				SWIFT_VERSION = 4.0;
+				VERSIONING_SYSTEM = "apple-generic";
+			};
+			name = Release;
+		};
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+		97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147031CF9000F007C117D /* Debug */,
+				97C147041CF9000F007C117D /* Release */,
+				249021D3217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+		97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
+			isa = XCConfigurationList;
+			buildConfigurations = (
+				97C147061CF9000F007C117D /* Debug */,
+				97C147071CF9000F007C117D /* Release */,
+				249021D4217E4FDB00AE95B9 /* Profile */,
+			);
+			defaultConfigurationIsVisible = 0;
+			defaultConfigurationName = Release;
+		};
+/* End XCConfigurationList section */
+	};
+	rootObject = 97C146E61CF9000F007C117D /* Project object */;
+}
diff --git a/gallery/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/gallery/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..1d526a1
--- /dev/null
+++ b/gallery/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/gallery/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/gallery/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
new file mode 100644
index 0000000..a28140c
--- /dev/null
+++ b/gallery/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme
@@ -0,0 +1,91 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Scheme
+   LastUpgradeVersion = "1020"
+   version = "1.3">
+   <BuildAction
+      parallelizeBuildables = "YES"
+      buildImplicitDependencies = "YES">
+      <BuildActionEntries>
+         <BuildActionEntry
+            buildForTesting = "YES"
+            buildForRunning = "YES"
+            buildForProfiling = "YES"
+            buildForArchiving = "YES"
+            buildForAnalyzing = "YES">
+            <BuildableReference
+               BuildableIdentifier = "primary"
+               BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+               BuildableName = "Runner.app"
+               BlueprintName = "Runner"
+               ReferencedContainer = "container:Runner.xcodeproj">
+            </BuildableReference>
+         </BuildActionEntry>
+      </BuildActionEntries>
+   </BuildAction>
+   <TestAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      shouldUseLaunchSchemeArgsEnv = "YES">
+      <Testables>
+      </Testables>
+      <MacroExpansion>
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </MacroExpansion>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </TestAction>
+   <LaunchAction
+      buildConfiguration = "Debug"
+      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
+      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
+      launchStyle = "0"
+      useCustomWorkingDirectory = "NO"
+      ignoresPersistentStateOnLaunch = "NO"
+      debugDocumentVersioning = "YES"
+      debugServiceExtension = "internal"
+      allowLocationSimulation = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+      <AdditionalOptions>
+      </AdditionalOptions>
+   </LaunchAction>
+   <ProfileAction
+      buildConfiguration = "Profile"
+      shouldUseLaunchSchemeArgsEnv = "YES"
+      savedToolIdentifier = ""
+      useCustomWorkingDirectory = "NO"
+      debugDocumentVersioning = "YES">
+      <BuildableProductRunnable
+         runnableDebuggingMode = "0">
+         <BuildableReference
+            BuildableIdentifier = "primary"
+            BlueprintIdentifier = "97C146ED1CF9000F007C117D"
+            BuildableName = "Runner.app"
+            BlueprintName = "Runner"
+            ReferencedContainer = "container:Runner.xcodeproj">
+         </BuildableReference>
+      </BuildableProductRunnable>
+   </ProfileAction>
+   <AnalyzeAction
+      buildConfiguration = "Debug">
+   </AnalyzeAction>
+   <ArchiveAction
+      buildConfiguration = "Release"
+      revealArchiveInOrganizer = "YES">
+   </ArchiveAction>
+</Scheme>
diff --git a/gallery/ios/Runner.xcworkspace/contents.xcworkspacedata b/gallery/ios/Runner.xcworkspace/contents.xcworkspacedata
new file mode 100644
index 0000000..21a3cc1
--- /dev/null
+++ b/gallery/ios/Runner.xcworkspace/contents.xcworkspacedata
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "group:Runner.xcodeproj">
+   </FileRef>
+   <FileRef
+      location = "group:Pods/Pods.xcodeproj">
+   </FileRef>
+</Workspace>
diff --git a/gallery/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/gallery/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
new file mode 100644
index 0000000..18d9810
--- /dev/null
+++ b/gallery/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>IDEDidComputeMac32BitWarning</key>
+	<true/>
+</dict>
+</plist>
diff --git a/gallery/ios/Runner/AppDelegate.swift b/gallery/ios/Runner/AppDelegate.swift
new file mode 100644
index 0000000..70693e4
--- /dev/null
+++ b/gallery/ios/Runner/AppDelegate.swift
@@ -0,0 +1,13 @@
+import UIKit
+import Flutter
+
+@UIApplicationMain
+@objc class AppDelegate: FlutterAppDelegate {
+  override func application(
+    _ application: UIApplication,
+    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
+  ) -> Bool {
+    GeneratedPluginRegistrant.register(with: self)
+    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
+  }
+}
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
new file mode 100644
index 0000000..00a53b7
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json
@@ -0,0 +1,122 @@
+{
+  "images" : [
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "icon_20_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "iphone",
+      "filename" : "icon_20_3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon_29.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon_29_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "iphone",
+      "filename" : "icon_29_3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "icon_40_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "iphone",
+      "filename" : "icon_40_3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "icon_60_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "60x60",
+      "idiom" : "iphone",
+      "filename" : "icon_60_3x.png",
+      "scale" : "3x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "icon_20.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "20x20",
+      "idiom" : "ipad",
+      "filename" : "icon_20_2x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "icon_29-1.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "29x29",
+      "idiom" : "ipad",
+      "filename" : "icon_29_2x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "icon_40.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "40x40",
+      "idiom" : "ipad",
+      "filename" : "icon_40_2x-1.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "icon_76.png",
+      "scale" : "1x"
+    },
+    {
+      "size" : "76x76",
+      "idiom" : "ipad",
+      "filename" : "icon_76_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "83.5x83.5",
+      "idiom" : "ipad",
+      "filename" : "icon_835_2x.png",
+      "scale" : "2x"
+    },
+    {
+      "size" : "1024x1024",
+      "idiom" : "ios-marketing",
+      "filename" : "app_icon.png",
+      "scale" : "1x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon.png
new file mode 100644
index 0000000..2426008
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/app_icon.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20.png
new file mode 100644
index 0000000..fb1973f
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_2x-1.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_2x-1.png
new file mode 100644
index 0000000..66946f8
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_2x-1.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_2x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_2x.png
new file mode 100644
index 0000000..66946f8
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_3x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_3x.png
new file mode 100644
index 0000000..c5d6fde
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_20_3x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29-1.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29-1.png
new file mode 100644
index 0000000..bb26a90
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29-1.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29.png
new file mode 100644
index 0000000..bb26a90
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_2x-1.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_2x-1.png
new file mode 100644
index 0000000..7af5e05
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_2x-1.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_2x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_2x.png
new file mode 100644
index 0000000..7af5e05
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_3x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_3x.png
new file mode 100644
index 0000000..b9d0e34
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_29_3x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40.png
new file mode 100644
index 0000000..66946f8
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_2x-1.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_2x-1.png
new file mode 100644
index 0000000..c26f0a0
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_2x-1.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_2x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_2x.png
new file mode 100644
index 0000000..c26f0a0
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_3x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_3x.png
new file mode 100644
index 0000000..9fbce28
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_40_3x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_60_2x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_60_2x.png
new file mode 100644
index 0000000..9fbce28
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_60_2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_60_3x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_60_3x.png
new file mode 100644
index 0000000..995c67d
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_60_3x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_76.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_76.png
new file mode 100644
index 0000000..0814ac5
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_76.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_76_2x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_76_2x.png
new file mode 100644
index 0000000..c97bcdf
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_76_2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_835_2x.png b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_835_2x.png
new file mode 100644
index 0000000..1b5647e
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/AppIcon.appiconset/icon_835_2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
new file mode 100644
index 0000000..0bedcf2
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "LaunchImage@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
diff --git a/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
new file mode 100644
index 0000000..9da19ea
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
new file mode 100644
index 0000000..9da19ea
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
new file mode 100644
index 0000000..9da19ea
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png
Binary files differ
diff --git a/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
new file mode 100644
index 0000000..89c2725
--- /dev/null
+++ b/gallery/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md
@@ -0,0 +1,5 @@
+# Launch Screen Assets
+
+You can customize the launch screen with your own desired assets by replacing the image files in this directory.
+
+You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images.
\ No newline at end of file
diff --git a/gallery/ios/Runner/Base.lproj/LaunchScreen.storyboard b/gallery/ios/Runner/Base.lproj/LaunchScreen.storyboard
new file mode 100644
index 0000000..e2b5573
--- /dev/null
+++ b/gallery/ios/Runner/Base.lproj/LaunchScreen.storyboard
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="14868" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" colorMatched="YES" initialViewController="01J-lp-oVM">
+    <device id="retina6_1" orientation="portrait" appearance="light"/>
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="14824"/>
+        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
+    </dependencies>
+    <scenes>
+        <!--View Controller-->
+        <scene sceneID="EHf-IW-A2E">
+            <objects>
+                <viewController id="01J-lp-oVM" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="Ydg-fD-yQy"/>
+                        <viewControllerLayoutGuide type="bottom" id="xbc-2k-c8Z"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="Ze5-6b-2t3">
+                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <subviews>
+                            <imageView opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" image="LaunchImage" translatesAutoresizingMaskIntoConstraints="NO" id="YRO-k0-Ey4">
+                                <rect key="frame" x="207" y="448" width="0.5" height="0.5"/>
+                            </imageView>
+                        </subviews>
+                        <color key="backgroundColor" red="0.011764705882352941" green="0.011764705882352941" blue="0.011764705882352941" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
+                        <constraints>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerX" secondItem="Ze5-6b-2t3" secondAttribute="centerX" id="1a2-6s-vTC"/>
+                            <constraint firstItem="YRO-k0-Ey4" firstAttribute="centerY" secondItem="Ze5-6b-2t3" secondAttribute="centerY" id="4X2-HB-R7a"/>
+                        </constraints>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="iYj-Kq-Ea1" userLabel="First Responder" sceneMemberID="firstResponder"/>
+            </objects>
+            <point key="canvasLocation" x="76.811594202898561" y="251.11607142857142"/>
+        </scene>
+    </scenes>
+    <resources>
+        <image name="LaunchImage" width="0.5" height="0.5"/>
+    </resources>
+</document>
diff --git a/gallery/ios/Runner/Base.lproj/Main.storyboard b/gallery/ios/Runner/Base.lproj/Main.storyboard
new file mode 100644
index 0000000..f3c2851
--- /dev/null
+++ b/gallery/ios/Runner/Base.lproj/Main.storyboard
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="10117" systemVersion="15F34" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" initialViewController="BYZ-38-t0r">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="10085"/>
+    </dependencies>
+    <scenes>
+        <!--Flutter View Controller-->
+        <scene sceneID="tne-QT-ifu">
+            <objects>
+                <viewController id="BYZ-38-t0r" customClass="FlutterViewController" sceneMemberID="viewController">
+                    <layoutGuides>
+                        <viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
+                        <viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
+                    </layoutGuides>
+                    <view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
+                        <rect key="frame" x="0.0" y="0.0" width="600" height="600"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                        <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
+                    </view>
+                </viewController>
+                <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
+            </objects>
+        </scene>
+    </scenes>
+</document>
diff --git a/gallery/ios/Runner/Info.plist b/gallery/ios/Runner/Info.plist
new file mode 100644
index 0000000..da17cc5
--- /dev/null
+++ b/gallery/ios/Runner/Info.plist
@@ -0,0 +1,174 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>$(DEVELOPMENT_LANGUAGE)</string>
+	<key>CFBundleExecutable</key>
+	<string>$(EXECUTABLE_NAME)</string>
+	<key>CFBundleIdentifier</key>
+	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>6.0</string>
+	<key>CFBundleName</key>
+	<string>Flutter Gallery</string>
+	<key>CFBundleLocalizations</key>
+	<array>
+		<string>en</string>
+		<string>af</string>
+		<string>am</string>
+		<string>ar_EG</string>
+		<string>ar_JO</string>
+		<string>ar_MA</string>
+		<string>ar_SA</string>
+		<string>ar_XB</string>
+		<string>ar</string>
+		<string>as</string>
+		<string>az</string>
+		<string>be</string>
+		<string>bg</string>
+		<string>bn</string>
+		<string>bs</string>
+		<string>ca</string>
+		<string>cs</string>
+		<string>da</string>
+		<string>de_AT</string>
+		<string>de_CH</string>
+		<string>de</string>
+		<string>el</string>
+		<string>en_AU</string>
+		<string>en_CA</string>
+		<string>en_GB</string>
+		<string>en_IE</string>
+		<string>en_IN</string>
+		<string>en_NZ</string>
+		<string>en_SG</string>
+		<string>en_XA</string>
+		<string>en_XC</string>
+		<string>en_ZA</string>
+		<string>es_419</string>
+		<string>es_AR</string>
+		<string>es_BO</string>
+		<string>es_CL</string>
+		<string>es_CO</string>
+		<string>es_CR</string>
+		<string>es_DO</string>
+		<string>es_EC</string>
+		<string>es_GT</string>
+		<string>es_HN</string>
+		<string>es_MX</string>
+		<string>es_NI</string>
+		<string>es_PA</string>
+		<string>es_PE</string>
+		<string>es_PR</string>
+		<string>es_PY</string>
+		<string>es_SV</string>
+		<string>es_US</string>
+		<string>es_UY</string>
+		<string>es_VE</string>
+		<string>es</string>
+		<string>et</string>
+		<string>eu</string>
+		<string>fa</string>
+		<string>fi</string>
+		<string>fil</string>
+		<string>fr_CA</string>
+		<string>fr_CH</string>
+		<string>fr</string>
+		<string>gl</string>
+		<string>gsw</string>
+		<string>gu</string>
+		<string>he</string>
+		<string>hi</string>
+		<string>hr</string>
+		<string>hu</string>
+		<string>hy</string>
+		<string>id</string>
+		<string>in</string>
+		<string>is</string>
+		<string>it</string>
+		<string>iw</string>
+		<string>ja</string>
+		<string>ka</string>
+		<string>kk</string>
+		<string>km</string>
+		<string>kn</string>
+		<string>ko</string>
+		<string>ky</string>
+		<string>ln</string>
+		<string>lo</string>
+		<string>lt</string>
+		<string>lv</string>
+		<string>mk</string>
+		<string>ml</string>
+		<string>mn</string>
+		<string>mo</string>
+		<string>mr</string>
+		<string>ms</string>
+		<string>my</string>
+		<string>nb</string>
+		<string>ne</string>
+		<string>nl</string>
+		<string>no</string>
+		<string>or</string>
+		<string>pa</string>
+		<string>pl</string>
+		<string>pt_BR</string>
+		<string>pt_PT</string>
+		<string>pt</string>
+		<string>ro</string>
+		<string>ru</string>
+		<string>si</string>
+		<string>sk</string>
+		<string>sl</string>
+		<string>sq</string>
+		<string>sr_Latn</string>
+		<string>sr</string>
+		<string>sv</string>
+		<string>sw</string>
+		<string>ta</string>
+		<string>te</string>
+		<string>th</string>
+		<string>tl</string>
+		<string>tr</string>
+		<string>uk</string>
+		<string>ur</string>
+		<string>uz</string>
+		<string>vi</string>
+		<string>zh_CN</string>
+		<string>zh_HK</string>
+		<string>zh_TW</string>
+		<string>zh</string>
+		<string>zu</string>
+	</array>
+	<key>CFBundlePackageType</key>
+	<string>APPL</string>
+	<key>CFBundleShortVersionString</key>
+	<string>$(FLUTTER_BUILD_NAME)</string>
+	<key>CFBundleSignature</key>
+	<string>????</string>
+	<key>CFBundleVersion</key>
+	<string>$(FLUTTER_BUILD_NUMBER)</string>
+	<key>LSRequiresIPhoneOS</key>
+	<true/>
+	<key>UILaunchStoryboardName</key>
+	<string>LaunchScreen</string>
+	<key>UIMainStoryboardFile</key>
+	<string>Main</string>
+	<key>UISupportedInterfaceOrientations</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UISupportedInterfaceOrientations~ipad</key>
+	<array>
+		<string>UIInterfaceOrientationPortrait</string>
+		<string>UIInterfaceOrientationPortraitUpsideDown</string>
+		<string>UIInterfaceOrientationLandscapeLeft</string>
+		<string>UIInterfaceOrientationLandscapeRight</string>
+	</array>
+	<key>UIViewControllerBasedStatusBarAppearance</key>
+	<false/>
+</dict>
+</plist>
diff --git a/gallery/ios/Runner/Runner-Bridging-Header.h b/gallery/ios/Runner/Runner-Bridging-Header.h
new file mode 100644
index 0000000..7335fdf
--- /dev/null
+++ b/gallery/ios/Runner/Runner-Bridging-Header.h
@@ -0,0 +1 @@
+#import "GeneratedPluginRegistrant.h"
\ No newline at end of file
diff --git a/gallery/lib/codeviewer/code_displayer.dart b/gallery/lib/codeviewer/code_displayer.dart
new file mode 100644
index 0000000..1e87874
--- /dev/null
+++ b/gallery/lib/codeviewer/code_displayer.dart
@@ -0,0 +1,7 @@
+// Copyright 2019 The Flutter team. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter/material.dart';
+
+typedef TextSpan CodeDisplayer(BuildContext context);
diff --git a/gallery/lib/codeviewer/code_segments.dart b/gallery/lib/codeviewer/code_segments.dart
new file mode 100644
index 0000000..193add6
--- /dev/null
+++ b/gallery/lib/codeviewer/code_segments.dart
@@ -0,0 +1,12362 @@
+// This file is automatically generated by codeviewer_cli.
+// Do not edit this file.
+
+// Copyright 2019 The Flutter team. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+import 'package:flutter/material.dart';
+import 'package:gallery/codeviewer/code_style.dart';
+
+class CodeSegments {
+  static TextSpan cupertinoSegmentedControlDemo(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/cupertino.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.classStyle, text: 'CupertinoSegmentedControlDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(
+          style: codeStyle.classStyle,
+          text: '_CupertinoSegmentedControlDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(
+          style: codeStyle.classStyle,
+          text: '_CupertinoSegmentedControlDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.classStyle,
+          text: '_CupertinoSegmentedControlDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(
+          style: codeStyle.classStyle, text: 'CupertinoSegmentedControlDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' currentSegment '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' onValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' newValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      currentSegment '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' newValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' localizations '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' segmentedControlMaxWidth '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '500.0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' children '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'localizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'colorsIndigo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'localizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'colorsTeal'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.numberStyle, text: '2'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'localizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'colorsCyan'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '};'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoPageScaffold'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      navigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoNavigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        middle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a          localizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'demoCupertinoSegmentedControlTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'DefaultTextStyle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        style'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'textTheme\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'textStyle\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'copyWith'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'fontSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '13'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'SafeArea'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'SizedBox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'height'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '16'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'SizedBox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                width'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' segmentedControlMaxWidth'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoSegmentedControl'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                  onValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' onValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                  groupValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' currentSegment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'SizedBox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                width'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' segmentedControlMaxWidth'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'all'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '16'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.classStyle,
+          text: 'CupertinoSlidingSegmentedControl'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>('),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                    children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                    onValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' onValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                    groupValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' currentSegment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'Container'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'all'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '16'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                height'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '300'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                alignment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Alignment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: 'currentSegment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan cupertinoAlertDemo(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/cupertino.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/data/gallery_options.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'enum'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  alert'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  alertTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  alertButtons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  alertButtonsOnly'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  actionSheet'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoAlertDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoAlertDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.classStyle, text: 'Key'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@required'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.baseStyle, text: ' type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_CupertinoAlertDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_CupertinoAlertDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_CupertinoAlertDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoAlertDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' lastSelectedValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'switch'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alert'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoCupertinoAlertTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alertTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'demoCupertinoAlertWithTitleTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alertButtons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'demoCupertinoAlertButtonsTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alertButtonsOnly'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'demoCupertinoAlertButtonsOnlyTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'actionSheet'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'demoCupertinoActionSheetTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _showDemoDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a    showCupertinoDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      builder'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ApplyTextOptions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'then'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a          lastSelectedValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _showDemoActionSheet'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    child '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ApplyTextOptions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        data'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a    showCupertinoModalPopup'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      builder'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'then'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a          lastSelectedValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _onAlertPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    _showDemoDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoAlertDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'dialogDiscardTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        actions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertDiscard'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            isDestructiveAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertDiscard'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCancel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            isDefaultAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCancel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _onAlertWithTitlePress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    _showDemoDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoAlertDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertLocationTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'cupertinoAlertLocationDescription'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        actions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertDontAllow'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertDontAllow'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertAllow'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertAllow'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _onAlertWithButtonsPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    _showDemoDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDessertDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoAlertFavoriteDessert'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoAlertDessertDescription'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _onAlertButtonsOnlyPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    _showDemoDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDessertDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _onActionSheetPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a    _showDemoActionSheet'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoActionSheet'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoAlertFavoriteDessert'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        message'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoAlertDessertDescription'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        actions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoActionSheetAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCheesecake'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCheesecake'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoActionSheetAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertTiramisu'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertTiramisu'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoActionSheetAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertApplePie'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertApplePie'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        cancelButton'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoActionSheetAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCancel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a          isDefaultAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCancel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoPageScaffold'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      navigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoNavigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'middle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '_title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '))),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Builder'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        builder'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Column'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'Expanded'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoButton'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'filled'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                    child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                      '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoShowAlert'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                    onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'switch'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alert'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                          _onAlertPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'break'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alertTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                          _onAlertWithTitlePress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'break'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alertButtons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                          _onAlertWithButtonsPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'break'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alertButtonsOnly'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                          _onAlertButtonsOnlyPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'break'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AlertDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'actionSheet'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                          _onActionSheetPress'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'break'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'lastSelectedValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.classStyle, text: 'Padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'all'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '16'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'dialogSelectedOption'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'lastSelectedValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                    style'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'textTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'textStyle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                    textAlign'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextAlign'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDessertDialog'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDessertDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.classStyle, text: 'Key'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoAlertDialog'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      actions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCheesecake'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCheesecake'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertTiramisu'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertTiramisu'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertApplePie'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertApplePie'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoAlertChocolateBrownie'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoAlertChocolateBrownie'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoDialogAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCancel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a          isDestructiveAction'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Navigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' rootNavigator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'pop'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoAlertCancel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan cupertinoButtonDemo(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/cupertino.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoButtonDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoPageScaffold'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      navigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoNavigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        middle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoCupertinoButtonsTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Column'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a          mainAxisAlignment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'MainAxisAlignment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoButton'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cupertinoButton'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'SizedBox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'height'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '16'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'CupertinoButton'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'filled'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'cupertinoButtonWithBackground'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan selectionControlsDemoCheckbox(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_CheckboxDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_CheckboxDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_CheckboxDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_CheckboxDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_CheckboxDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' checkboxValueA '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' checkboxValueB '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'false'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' checkboxValueC'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Row'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        mainAxisSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'MainAxisSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'min'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'Checkbox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' checkboxValueA'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                checkboxValueA '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'Checkbox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' checkboxValueB'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                checkboxValueB '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'Checkbox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' checkboxValueC'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            tristate'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            onChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                checkboxValueC '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan selectionControlsDemoRadio(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_RadioDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_RadioDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_RadioDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_RadioDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_RadioDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' radioValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' handleRadioValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      radioValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Row'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        mainAxisSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'MainAxisSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'min'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'for'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' index '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: ' index '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '3'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '++'),
+      TextSpan(style: codeStyle.baseStyle, text: 'index'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Radio'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' index'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              groupValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' radioValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              onChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' handleRadioValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan selectionControlsDemoSwitches(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_SwitchDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_SwitchDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_SwitchDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_SwitchDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_SwitchDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' switchValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'false'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Switch'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' switchValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            switchValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan listDemo(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'enum'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListDemoType'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  oneLine'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  twoLine'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.classStyle, text: 'Key'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListDemoType'),
+      TextSpan(style: codeStyle.baseStyle, text: ' type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Scaffold'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      appBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AppBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoListsTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      body'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Scrollbar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'symmetric'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'vertical'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '8'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'for'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' index '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: ' index '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '21'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: ' index'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '++)'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListTile'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                leading'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ExcludeSemantics'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'CircleAvatar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0024index\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                  '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoBottomSheetItem'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'index'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                subtitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' type '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ListDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'twoLine\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '?'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoListsSecondary'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan chipDemoAction(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027../../l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_ActionChipDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ActionChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        avatar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'brightness_5'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          color'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Colors'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'black54'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipTurnOnLights'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan chipDemoChoice(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027../../l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_ChoiceChipDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_ChoiceChipDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_ChoiceChipDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_ChoiceChipDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_ChoiceChipDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '-'),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Wrap'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'ChoiceChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipSmall'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            selected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            onSelected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '?'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '-'),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'SizedBox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'width'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '8'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'ChoiceChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipMedium'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            selected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            onSelected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '?'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '-'),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'SizedBox'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'width'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '8'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'ChoiceChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipLarge'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            selected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '2'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            onSelected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a              setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                indexSelected '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' value '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '?'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '2'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '-'),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan chipDemoFilter(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027../../l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_FilterChipDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_FilterChipDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_FilterChipDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_FilterChipDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_FilterChipDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' isSelectedElevator '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'false'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' isSelectedWasher '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'false'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' isSelectedFireplace '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'false'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' chips '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.classStyle, text: 'FilterChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipElevator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        selected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' isSelectedElevator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onSelected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            isSelectedElevator '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!'),
+      TextSpan(style: codeStyle.baseStyle, text: 'isSelectedElevator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.classStyle, text: 'FilterChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipWasher'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        selected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' isSelectedWasher'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onSelected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            isSelectedWasher '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!'),
+      TextSpan(style: codeStyle.baseStyle, text: 'isSelectedWasher'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.classStyle, text: 'FilterChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipFireplace'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        selected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' isSelectedFireplace'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onSelected'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            isSelectedFireplace '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!'),
+      TextSpan(style: codeStyle.baseStyle, text: 'isSelectedFireplace'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '];'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Wrap'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'for'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' chip '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'in'),
+      TextSpan(style: codeStyle.baseStyle, text: ' chips'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.classStyle, text: 'Padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'all'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '4'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' chip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan chipDemoInput(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027../../l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_InputChipDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'InputChip'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onPressed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onDeleted'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        avatar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'directions_bike'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          size'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '20'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          color'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Colors'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'black54'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a        deleteIconColor'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Colors'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'black54'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'chipBiking'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan bottomNavigationDemo(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'enum'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemoType'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  withLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  withoutLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.classStyle, text: 'Key'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@required'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemoType'),
+      TextSpan(style: codeStyle.baseStyle, text: ' type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_BottomNavigationDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_BottomNavigationDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_BottomNavigationDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'with'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TickerProviderStateMixin'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'int'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _currentIndex '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'List'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'switch'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'withLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'demoBottomNavigationPersistentLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'case'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'withoutLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'demoBottomNavigationSelectedLabel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' didChangeDependencies'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'didChangeDependencies'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '_navigationViews '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a      _navigationViews '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'add_comment'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'bottomNavigationCommentsTab'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'calendar_today'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'bottomNavigationCalendarTab'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'account_circle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'bottomNavigationAccountTab'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'alarm_on'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'bottomNavigationAlarmTab'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'camera_enhance'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'bottomNavigationCameraTab'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '];'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a\u000a      _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '_currentIndex'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '].'),
+      TextSpan(style: codeStyle.baseStyle, text: 'controller'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'value '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' dispose'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'for'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.baseStyle, text: ' view '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'in'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      view'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'controller'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'dispose'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'dispose'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _buildTransitionsStack'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'List'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'FadeTransition'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' transitions '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'FadeTransition'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>[];'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'for'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.baseStyle, text: ' view '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'in'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      transitions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'add'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'view'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'transition'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '));'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// We want to have the newly animating (fading in) views on top.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    transitions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'sort'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(('),
+      TextSpan(style: codeStyle.baseStyle, text: 'a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' b'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' aAnimation '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'opacity'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' bAnimation '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' b'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'opacity'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' aValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' aAnimation'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' bValue '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' bAnimation'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' aValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'compareTo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'bValue'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Stack'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' transitions'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' colorScheme '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Theme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'colorScheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' textTheme '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Theme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'textTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'var'),
+      TextSpan(style: codeStyle.baseStyle, text: ' bottomNavigationBarItems '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(
+          style: codeStyle.baseStyle, text: ' _navigationViews\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'map'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationBarItem'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>(('),
+      TextSpan(style: codeStyle.baseStyle, text: 'navigationView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' navigationView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'item'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'toList'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'withLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a      bottomNavigationBarItems '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a          bottomNavigationBarItems'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'sublist'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'length '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '-'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '2'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      _currentIndex '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a          _currentIndex'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'clamp'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' bottomNavigationBarItems'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'length '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '-'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '1'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'toInt'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Scaffold'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      appBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AppBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '_title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      body'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _buildTransitionsStack'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a      bottomNavigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a        showUnselectedLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'type '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationDemoType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'withLabels'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        items'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' bottomNavigationBarItems'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        currentIndex'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _currentIndex'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        type'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationBarType'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'fixed'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a        selectedFontSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' textTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'caption'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'fontSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a        unselectedFontSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' textTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'caption'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'fontSize'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        onTap'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'index'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '_currentIndex'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '].'),
+      TextSpan(style: codeStyle.baseStyle, text: 'controller'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'reverse'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            _currentIndex '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' index'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a            _navigationViews'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '_currentIndex'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '].'),
+      TextSpan(style: codeStyle.baseStyle, text: 'controller'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'forward'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a        selectedItemColor'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' colorScheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'onPrimary'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a        unselectedItemColor'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' colorScheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'onPrimary'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'withOpacity'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '0.38'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a        backgroundColor'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' colorScheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'primary'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_NavigationIconView'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.classStyle, text: 'TickerProvider'),
+      TextSpan(style: codeStyle.baseStyle, text: ' vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: '  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' item '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationBarItem'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        controller '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AnimationController'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          duration'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.constantStyle, text: 'kThemeAnimationDuration'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' vsync'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    _animation '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' controller'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'drive'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'CurveTween'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      curve'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Interval'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '0.5'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '1.0'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' curve'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Curves'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'fastOutSlowIn'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '));'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BottomNavigationBarItem'),
+      TextSpan(style: codeStyle.baseStyle, text: ' item'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AnimationController'),
+      TextSpan(style: codeStyle.baseStyle, text: ' controller'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Animation'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'double'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _animation'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'FadeTransition'),
+      TextSpan(style: codeStyle.baseStyle, text: ' transition'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'FadeTransition'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      opacity'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _animation'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Stack'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        children'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '['),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'ExcludeSemantics'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                padding'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'EdgeInsets'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'all'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '16'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ClipRRect'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a                  borderRadius'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'BorderRadius'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'circular'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.numberStyle, text: '8'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a                  child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Image'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'asset'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027assets/demos/bottom_navigation_background.png\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.classStyle, text: 'Center'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'IconTheme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              data'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'IconThemeData'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                color'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Colors'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'white'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                size'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '80'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Semantics'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                label'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'bottomNavigationContentPlaceholder'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a              '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '],'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+    ]);
+  }
+
+  static TextSpan textFieldDemo(BuildContext context) {
+    final CodeStyle codeStyle = CodeStyle.of(context);
+    return TextSpan(children: [
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Copyright 2019 The Flutter team. All rights reserved.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text:
+              '// Use of this source code is governed by a BSD-style license that can be'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(
+          style: codeStyle.commentStyle, text: '// found in the LICENSE file.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/material.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/services.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:flutter/gestures.dart\u0027'),
+      TextSpan(style: codeStyle.baseStyle, text: ' show '),
+      TextSpan(style: codeStyle.classStyle, text: 'DragStartBehavior'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'import'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text: '\u0027package:gallery/l10n/gallery_localizations.dart\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFieldDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatelessWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Scaffold'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      appBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'AppBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        title'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoTextFieldTitle'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      body'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemo'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.classStyle, text: 'Key'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '})'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'super'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemoState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'PersonData'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' name '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' phoneNumber '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' email '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' password '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.stringStyle, text: '\u0027\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'PasswordField'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'StatefulWidget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'const'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'PasswordField'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '({'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'fieldKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'hintText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'labelText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'helperText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'onSaved'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'validator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'this'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'onFieldSubmitted'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Key'),
+      TextSpan(style: codeStyle.baseStyle, text: ' fieldKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' hintText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' labelText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' helperText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'FormFieldSetter'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' onSaved'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'FormFieldValidator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' validator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'ValueChanged'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' onFieldSubmitted'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: '_PasswordFieldState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' createState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '=>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_PasswordFieldState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: '_PasswordFieldState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'PasswordField'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _obscureText '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: '@override'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'Widget'),
+      TextSpan(style: codeStyle.baseStyle, text: ' build'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'BuildContext'),
+      TextSpan(style: codeStyle.baseStyle, text: ' context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormField'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      key'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'fieldKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      obscureText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _obscureText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      cursorColor'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Theme'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'cursorColor'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      maxLength'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.numberStyle, text: '8'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      onSaved'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'onSaved'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      validator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'validator'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a      onFieldSubmitted'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'onFieldSubmitted'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      decoration'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'InputDecoration'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        filled'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        hintText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'hintText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        labelText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'labelText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        helperText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' widget'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'helperText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        suffixIcon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GestureDetector'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a          dragStartBehavior'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'DragStartBehavior'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'down'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          onTap'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            setState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: '\u000a              _obscureText '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '!'),
+      TextSpan(style: codeStyle.baseStyle, text: '_obscureText'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a            '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '});'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '},'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          child'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icon'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            _obscureText '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '?'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'visibility '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Icons'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'visibility_off'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(
+          style: codeStyle.baseStyle, text: '\u000a            semanticLabel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: ' _obscureText\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '?'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'demoTextFieldShowPasswordLabel\u000a                '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a                    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'demoTextFieldHidePasswordLabel'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a'),
+      TextSpan(style: codeStyle.keywordStyle, text: 'class'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemoState'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'extends'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'State'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'TextFormFieldDemo'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GlobalKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'ScaffoldState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _scaffoldKey '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GlobalKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'ScaffoldState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'PersonData'),
+      TextSpan(style: codeStyle.baseStyle, text: ' person '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'PersonData'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' showInSnackBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    _scaffoldKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'currentState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'showSnackBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'SnackBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      content'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ':'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'Text'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '),'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '));'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'bool'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _autoValidate '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'false'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GlobalKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'FormState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _formKey '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GlobalKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'FormState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GlobalKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'FormFieldState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>>'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _passwordFieldKey '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.classStyle, text: 'GlobalKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'FormFieldState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '<'),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '>>();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.classStyle, text: '_UsNumberTextInputFormatter'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _phoneNumberFormatter '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(
+          style: codeStyle.classStyle, text: '_UsNumberTextInputFormatter'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'void'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _handleSubmitted'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '()'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' form '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' _formKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'currentState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(!'),
+      TextSpan(style: codeStyle.baseStyle, text: 'form'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'validate'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '())'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      _autoValidate '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'true'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(
+          style: codeStyle.commentStyle,
+          text: '// Start validating on every change.'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      showInSnackBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a        '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoTextFieldFormErrors'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'else'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      form'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'save'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '();'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      showInSnackBar'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'demoTextFieldNameHasPhoneNumber'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'person'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'name'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ','),
+      TextSpan(style: codeStyle.baseStyle, text: ' person'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'phoneNumber'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '));'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _validateName'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'isEmpty'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(style: codeStyle.baseStyle, text: 'demoTextFieldNameRequired'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' nameExp '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'RegExp'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.stringStyle, text: 'r\u0027^[A-Za-z ]+\u0024\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(!'),
+      TextSpan(style: codeStyle.baseStyle, text: 'nameExp'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'hasMatch'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '))'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a          '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(
+          style: codeStyle.baseStyle,
+          text: 'demoTextFieldOnlyAlphabeticalChars'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _validatePhoneNumber'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' phoneExp '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'RegExp'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(
+          style: codeStyle.stringStyle,
+          text:
+              'r\u0027^\u005c(\u005cd\u005cd\u005cd\u005c) \u005cd\u005cd\u005cd\u005c-\u005cd\u005cd\u005cd\u005cd\u0024\u0027'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ');'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'if'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '(!'),
+      TextSpan(style: codeStyle.baseStyle, text: 'phoneExp'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'hasMatch'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '))'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a      '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.classStyle, text: 'GalleryLocalizations'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'of'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.baseStyle, text: 'context'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ').'),
+      TextSpan(
+          style: codeStyle.baseStyle, text: 'demoTextFieldEnterUSPhoneNumber'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'return'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'null'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a  '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '}'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a\u000a  '),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' _validatePassword'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '('),
+      TextSpan(style: codeStyle.classStyle, text: 'String'),
+      TextSpan(style: codeStyle.baseStyle, text: ' value'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ')'),
+      TextSpan(style: codeStyle.baseStyle, text: ' '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '{'),
+      TextSpan(style: codeStyle.baseStyle, text: '\u000a    '),
+      TextSpan(style: codeStyle.keywordStyle, text: 'final'),
+      TextSpan(style: codeStyle.baseStyle, text: ' passwordField '),
+      TextSpan(style: codeStyle.punctuationStyle, text: '='),
+      TextSpan(style: codeStyle.baseStyle, text: ' _passwordFieldKey'),
+      TextSpan(style: codeStyle.punctuationStyle, text: '.'),
+      TextSpan(style: codeStyle.baseStyle, text: 'currentState'),
+      TextSpan(style: codeStyle.punctuationStyle, text: ';'),
+      TextSpan(style: codeS