diff --git a/github-label-notifier/functions/README.md b/github-label-notifier/functions/README.md
index 9407ddb..dfeeec0 100644
--- a/github-label-notifier/functions/README.md
+++ b/github-label-notifier/functions/README.md
@@ -5,6 +5,12 @@
 It also can inspect newly opened issues for specific keywords and treat matches
 as if a specific label was assigned to an issue.
 
+Newly created issues are also fed to `crash-symbolizer`'s `/symbolize` endpoint
+in attempt to extract and symbolize any native crashes.
+
+This function is also responsible for routing comments mentioning
+`@flutter-symbolizer-bot` to `crash-symbolizer`'s '/symbolize' endpoint.
+
 # Testing
 
 To run local tests use `test.sh` script from this folder.
@@ -22,6 +28,10 @@
 [docs](https://sendgrid.com/docs/for-developers/partners/google/) for the
 initial setup).
 
+Note: Function is connecting to `crash-symbolizer` GCE instance through
+[VPC Connector](https://cloud.google.com/functions/docs/networking/connecting-vpc)
+with name `cloud-run-to-gce`.
+
 ## Firestore
 
 Firestore needs to contain `github-label-subscriptions` collection.
diff --git a/github-label-notifier/functions/deploy.sh b/github-label-notifier/functions/deploy.sh
index 0add644..825a8a3 100755
--- a/github-label-notifier/functions/deploy.sh
+++ b/github-label-notifier/functions/deploy.sh
@@ -26,5 +26,6 @@
 
 # Deploy the function.
 gcloud functions deploy githubWebhook --project dart-ci --source deploy --trigger-http \
+    --vpc-connector cloud-run-to-gce \
     --runtime nodejs10 --memory 128MB \
     --set-env-vars GITHUB_SECRET=$GITHUB_SECRET,SENDGRID_SECRET=$SENDGRID_SECRET
diff --git a/github-label-notifier/functions/lib/github_utils.dart b/github-label-notifier/functions/lib/github_utils.dart
index 6fea185..3f89192 100644
--- a/github-label-notifier/functions/lib/github_utils.dart
+++ b/github-label-notifier/functions/lib/github_utils.dart
@@ -6,6 +6,7 @@
 library github_label_notifier.github_utils;
 
 import 'dart:convert';
+import 'dart:typed_data';
 
 import 'package:node_interop/buffer.dart';
 import 'package:node_io/node_io.dart';
@@ -19,14 +20,22 @@
   if (secret == null) {
     throw 'GITHUB_SECRET is missing';
   }
-  final bodyHmac =
-      crypto.createHmac('sha1', secret).update(jsonEncode(body)).digest('hex');
+  final bodyHmac = crypto.createHmac('sha1', secret).update(body).digest('hex');
   return 'sha1=${bodyHmac}';
 }
 
 /// Validate that the given [body] and [signature] against `GITHUB_SECRET`
 /// environment variable.
 bool verifyEventSignature(dynamic body, String signature) {
+  final expectedSignature = signEvent(jsonEncode(body));
+  return signature.length == expectedSignature.length &&
+      crypto.timingSafeEqual(
+          Buffer.from(signature), Buffer.from(expectedSignature));
+}
+
+/// Validate that the given [body] and [signature] against `GITHUB_SECRET`
+/// environment variable.
+bool verifyEventSignatureRaw(Uint8List body, String signature) {
   final expectedSignature = signEvent(body);
   return signature.length == expectedSignature.length &&
       crypto.timingSafeEqual(
diff --git a/github-label-notifier/functions/lib/node_crypto.dart b/github-label-notifier/functions/lib/node_crypto.dart
index 0fa81e8..add1b5b 100644
--- a/github-label-notifier/functions/lib/node_crypto.dart
+++ b/github-label-notifier/functions/lib/node_crypto.dart
@@ -33,7 +33,7 @@
   /// Append data to the content of this [Hmac].
   ///
   /// See [docs](https://nodejs.org/api/crypto.html#crypto_hmac_update_data_inputencoding).
-  external Hmac update(String data);
+  external Hmac update(Object data);
 
   /// Compute the digest of the content accumulated via [update].
   ///
diff --git a/github-label-notifier/functions/lib/sendgrid.dart b/github-label-notifier/functions/lib/sendgrid.dart
index 588089d..a45ffa5 100644
--- a/github-label-notifier/functions/lib/sendgrid.dart
+++ b/github-label-notifier/functions/lib/sendgrid.dart
@@ -14,7 +14,7 @@
 
 final _SendgridModule _sendgrid = (() {
   // Load and configure the module.
-  final _SendgridModule module = require('@sendgrid/mail');
+  final module = require('@sendgrid/mail') as _SendgridModule;
   module.setApiKey(Platform.environment['SENDGRID_SECRET']);
 
   // To enable offline testing we redirect all requests to our mock server.
diff --git a/github-label-notifier/functions/node/index.dart b/github-label-notifier/functions/node/index.dart
index 77f6481..87946e0 100644
--- a/github-label-notifier/functions/node/index.dart
+++ b/github-label-notifier/functions/node/index.dart
@@ -2,14 +2,30 @@
 // for details. 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:typed_data';
 
 import 'package:firebase_functions_interop/firebase_functions_interop.dart';
+import 'package:js/js_util.dart';
 import 'package:node_interop/node_interop.dart';
 import 'package:node_io/node_io.dart';
+import 'package:node_http/node_http.dart' as http;
 
 import 'package:github_label_notifier/github_utils.dart';
 import 'package:github_label_notifier/sendgrid.dart' as sendgrid;
 import 'package:github_label_notifier/subscriptions_db.dart' as db;
+import 'package:symbolizer/model.dart';
+import 'package:symbolizer/parser.dart';
+import 'package:symbolizer/bot.dart';
+
+final String symbolizerServer = Platform.environment['SYMBOLIZER_SERVER'] ??
+    'crash-symbolizer.c.dart-ci.internal:4040';
+
+extension on ExpressHttpRequest {
+  Uint8List get rawBody {
+    if (!hasProperty(nativeInstance, 'rawBody')) return null;
+    return getProperty(nativeInstance, 'rawBody');
+  }
+}
 
 void main() {
   db.ensureInitialized();
@@ -51,23 +67,25 @@
   final delivery = getRequiredHeaderValue(request, 'x-github-delivery');
 
   final body = request.body;
-  if (!verifyEventSignature(body, signature)) {
+  if (!verifyEventSignatureRaw(request.rawBody, signature)) {
     throw WebHookError(
         HttpStatus.unauthorized, 'Failed to validate the signature');
   }
 
   // Event has passed the validation. Dispatch it to the handler.
-  print('Received event from GitHub: $delivery $event');
+  print('Received event from GitHub: $delivery $event ${body['action']}');
   await eventHandlers[event]?.call(body);
 
   request.response.statusCode = HttpStatus.ok;
   request.response.writeln('OK: ${event}');
 }
 
-typedef Future<void> GitHubEventHandler(Map<String, dynamic> event);
+typedef GitHubEventHandler = Future<void> Function(Map<String, dynamic> event);
 
 final eventHandlers = <String, GitHubEventHandler>{
   'issues': (event) => issueActionHandlers[event['action']]?.call(event),
+  'issue_comment': (event) =>
+      commentActionHandlers[event['action']]?.call(event)
 };
 
 final issueActionHandlers = <String, GitHubEventHandler>{
@@ -75,6 +93,10 @@
   'opened': onIssueOpened,
 };
 
+final commentActionHandlers = <String, GitHubEventHandler>{
+  'created': onIssueCommentCreated,
+};
+
 /// Handler for the 'labeled' issue event which triggers whenever an
 /// issue is labeled with a new label.
 ///
@@ -117,7 +139,7 @@
 Sent by dart-github-label-notifier.web.app
 ''',
       html: '''
-<p><strong><a href="${issueUrl}">${escape(issueTitle)}</a>&nbsp;(${escape(repositoryName)}#${escape(issueNumber)})</strong></p>
+<p><strong><a href="${issueUrl}">${escape(issueTitle)}</a>&nbsp;(${escape(repositoryName)}#${escape(issueNumber.toString())})</strong></p>
 <p>Reported by <a href="${issueReporterUrl}">${escape(issueReporterUsername)}</a></p>
 <p>Labeled <strong>${escape(labelName)}</strong> by <a href="${senderUrl}">${escape(senderUser)}</a></p>
 <hr>
@@ -131,10 +153,20 @@
 /// The handler will search the body of the open issue for specific keywords
 /// and send emails to all subscribers to a specific label.
 Future<void> onIssueOpened(Map<String, dynamic> event) async {
+  final symbolizedCrashes = <SymbolizationResult>[];
+
   final repositoryName = event['repository']['full_name'];
   final subscription = await db.lookupKeywordSubscription(repositoryName);
 
-  final match = subscription?.match(event['issue']['body']);
+  if (subscription != null &&
+      subscription.keywords.contains('crash') &&
+      containsCrash(event['issue']['body'])) {
+    symbolizedCrashes.addAll(await _trySymbolize(event['issue']));
+  }
+
+  final match = symbolizedCrashes.isNotEmpty
+      ? 'crash'
+      : subscription?.match(event['issue']['body']);
   if (match == null) {
     return;
   }
@@ -152,6 +184,40 @@
 
   final escape = htmlEscape.convert;
 
+  var symbolizedCrashesText = '', symbolizedCrashesHtml = '';
+  if (symbolizedCrashes.isNotEmpty) {
+    symbolizedCrashesText = [
+      '',
+      ...symbolizedCrashes.expand((r) => [
+            if (r.symbolized != null)
+              '# engine ${r.engineBuild.engineHash} ${r.engineBuild.variant.pretty} crash'
+            else
+              '# engine crash',
+            for (var note in r.notes)
+              if (note.message != null)
+                '# ${noteMessage[note.kind]}: ${note.message}'
+              else
+                '# ${noteMessage[note.kind]}',
+            r.symbolized ?? r.crash.frames.toString(),
+          ]),
+      ''
+    ].join('\n');
+    symbolizedCrashesHtml = symbolizedCrashes
+        .expand((r) => [
+              if (r.symbolized != null)
+                '<p>engine ${r.engineBuild.engineHash} ${r.engineBuild.variant.pretty} crash</p>'
+              else
+                '<p>engine crash</p>',
+              for (var note in r.notes)
+                if (note.message != null)
+                  '<em>${noteMessage[note.kind]}: <pre>${escape(note.message)}</pre></em>'
+                else
+                  '<em>${noteMessage[note.kind]}</em>',
+              '<pre>${escape(r.symbolized ?? r.crash.frames.toString())}</pre>',
+            ])
+        .join('');
+  }
+
   await sendgrid.sendMultiple(
       from: 'noreply@dart.dev',
       to: subscribers,
@@ -162,21 +228,37 @@
 Reported by ${issueReporterUsername}
 
 Matches keyword: ${match}
-
+${symbolizedCrashesText}
 You are getting this mail because you are subscribed to label ${subscription.label}.
 --
 Sent by dart-github-label-notifier.web.app
 ''',
       html: '''
-<p><strong><a href="${issueUrl}">${escape(issueTitle)}</a>&nbsp;(${escape(repositoryName)}#${escape(issueNumber)})</strong></p>
+<p><strong><a href="${issueUrl}">${escape(issueTitle)}</a>&nbsp;(${escape(repositoryName)}#${escape(issueNumber.toString())})</strong></p>
 <p>Reported by <a href="${issueReporterUrl}">${escape(issueReporterUsername)}</a></p>
 <p>Matches keyword: <b>${match}</b></p>
+${symbolizedCrashesHtml}
 <p>You are getting this mail because you are subscribed to label ${subscription.label}</p>
 <hr>
 <p>Sent by <a href="https://dart-github-label-notifier.web.app/">GitHub Label Notifier</a></p>
 ''');
 }
 
+Future<void> onIssueCommentCreated(Map<String, dynamic> event) async {
+  final body = event['comment']['body'];
+
+  if (Bot.isCommand(body)) {
+    final response = await http.post(
+      'http://$symbolizerServer/command',
+      body: jsonEncode(event),
+    );
+    if (response.statusCode != HttpStatus.ok) {
+      throw WebHookError(HttpStatus.internalServerError,
+          'Failed to process ${event['comment']['html_url']}: ${response.body}');
+    }
+  }
+}
+
 class WebHookError {
   final int statusCode;
   final String message;
@@ -194,3 +276,22 @@
       (throw WebHookError(
           HttpStatus.badRequest, 'Missing ${header} header value.'));
 }
+
+Future<List<SymbolizationResult>> _trySymbolize(
+    Map<String, dynamic> body) async {
+  try {
+    final response = await http
+        .post(
+          'http://$symbolizerServer/symbolize',
+          body: jsonEncode(body),
+        )
+        .timeout(const Duration(seconds: 20));
+    return [
+      for (var crash in (jsonDecode(response.body) as List))
+        SymbolizationResult.fromJson(crash)
+    ];
+  } catch (e, st) {
+    console.error('Symbolizer failed with $e: $st');
+    return [];
+  }
+}
diff --git a/github-label-notifier/functions/node/index.test.dart b/github-label-notifier/functions/node/index.test.dart
index 73ab0af..aa7f104 100644
--- a/github-label-notifier/functions/node/index.test.dart
+++ b/github-label-notifier/functions/node/index.test.dart
@@ -12,6 +12,7 @@
 import 'package:node_interop/node_interop.dart';
 import 'package:node_interop/util.dart' show dartify, jsify;
 import 'package:node_io/node_io.dart' hide HttpServer;
+import 'package:symbolizer/model.dart';
 import 'package:test/test.dart';
 
 import 'package:github_label_notifier/github_utils.dart';
@@ -28,6 +29,9 @@
   HttpServer sendgridMockServer;
   final sendgridRequests = <SendgridRequest>[];
 
+  HttpServer symbolizerServer;
+  final symbolizerCommands = <String>[];
+
   setUpAll(() async {
     // Populate firestore with mock data.
     final firestore = FirebaseAdmin.instance
@@ -62,46 +66,121 @@
             'jit',
             'aot',
             'third_party/dart',
+            'crash',
           ],
           'label': 'special-label',
         }));
 
-    // Start mock SendGrid server at the address/port specified in
-    // SENDGRID_MOCK_SERVER environment variable.
-    // This server will simply record headers and bodies of all requests
-    // it receives in the [sendgridRequests] variable.
-    sendgridMockServer = http.createServer(allowInterop((rq, rs) {
-      final body = [];
-      rq.on('data', allowInterop((chunk) {
-        body.add(chunk);
-      }));
-      rq.on('end', allowInterop(() {
-        sendgridRequests.add(SendgridRequest(
-            headers: dartify(rq.headers),
-            body: jsonDecode(_bufferToString(Buffer.concat(body)))));
+    {
+      // Start mock SendGrid server at the address/port specified in
+      // SENDGRID_MOCK_SERVER environment variable.
+      // This server will simply record headers and bodies of all requests
+      // it receives in the [sendgridRequests] variable.
+      sendgridMockServer = http.createServer(allowInterop((rq, rs) {
+        final body = [];
+        rq.on('data', allowInterop((chunk) {
+          body.add(chunk);
+        }));
+        rq.on('end', allowInterop(() {
+          sendgridRequests.add(SendgridRequest(
+              headers: dartify(rq.headers),
+              body: jsonDecode(_bufferToString(Buffer.concat(body)))));
 
-        // Reply with 200 OK.
-        rs.writeHead(200, 'OK', jsify({'Content-Type': 'text/plain'}));
-        rs.write('OK');
-        rs.end();
+          // Reply with 200 OK.
+          rs.writeHead(200, 'OK', jsify({'Content-Type': 'text/plain'}));
+          rs.write('OK');
+          rs.end();
+        }));
       }));
-    }));
 
-    final serverAddress = Platform.environment['SENDGRID_MOCK_SERVER'];
-    if (serverAddress == null) {
-      throw 'SENDGRID_MOCK_SERVER environment variable is not set';
+      final serverAddress = Platform.environment['SENDGRID_MOCK_SERVER'];
+      if (serverAddress == null) {
+        throw 'SENDGRID_MOCK_SERVER environment variable is not set';
+      }
+      final serverUri = Uri.parse('http://$serverAddress');
+      sendgridMockServer.listen(serverUri.port, serverUri.host);
     }
-    final serverUri = Uri.parse('http://$serverAddress');
-    sendgridMockServer.listen(serverUri.port, serverUri.host);
+
+    {
+      // Start mock Symbolizer server at the address/port specified in
+      // SYMBOLIZER_SERVER environment variable.
+      symbolizerServer = http.createServer(allowInterop((rq, rs) {
+        final body = [];
+        rq.on('data', allowInterop((chunk) {
+          body.add(chunk);
+        }));
+        rq.on('end', allowInterop(() {
+          switch (Uri.parse(rq.url).path) {
+            case '/symbolize':
+              // Reply with symbolized crash.
+              rs.writeHead(
+                  200, 'OK', jsify({'Content-Type': 'application/json'}));
+              rs.write(jsonEncode([
+                SymbolizationResult(
+                    crash: Crash(
+                        engineVariant: EngineVariant(
+                            arch: 'arm', os: 'ios', mode: 'debug'),
+                        format: 'native',
+                        frames: [
+                          CrashFrame.ios(
+                            no: '00',
+                            binary: 'BINARY',
+                            pc: 0x10042,
+                            symbol: '0x',
+                            offset: 42,
+                            location: '',
+                          )
+                        ]),
+                    engineBuild: EngineBuild(
+                      engineHash: 'aaabbb',
+                      variant:
+                          EngineVariant(arch: 'arm', os: 'ios', mode: 'debug'),
+                    ),
+                    symbolized: 'SYMBOLIZED_STACK_HERE')
+              ]));
+              rs.end();
+              break;
+            case '/command':
+              symbolizerCommands.add(
+                  jsonDecode(_bufferToString(Buffer.concat(body)))['comment']
+                      ['body']);
+
+              // Reply with 200 OK.
+              rs.writeHead(200, 'OK', jsify({'Content-Type': 'text/plain'}));
+              rs.write('OK');
+              rs.end();
+              break;
+            default:
+              // Reply with 404.
+              rs.writeHead(
+                  404, 'Not Found', jsify({'Content-Type': 'text/plain'}));
+              rs.write('Not Found');
+              rs.end();
+              break;
+          }
+        }));
+      }));
+
+      final serverAddress = Platform.environment['SYMBOLIZER_SERVER'];
+      if (serverAddress == null) {
+        throw 'SENDGRID_MOCK_SERVER environment variable is not set';
+      }
+      final serverUri = Uri.parse('http://$serverAddress');
+      symbolizerServer.listen(serverUri.port, serverUri.host);
+    }
   });
 
   setUp(() {
     sendgridRequests.clear();
+    symbolizerCommands.clear();
   });
 
   tearDownAll(() async {
     // Shutdown the mock SendGrid server.
     await sendgridMockServer.close();
+
+    // Shutdown the mock symbolizer.
+    await symbolizerServer.close();
   });
 
   // Helper to send a mock GitHub event to the locally running instance of the
@@ -124,8 +203,9 @@
       headers['X-GitHub-Event'] = event;
     }
 
+    final encodedBody = jsonEncode(body);
     if (signature != '') {
-      headers['X-Hub-Signature'] = signature ?? signEvent(body);
+      headers['X-Hub-Signature'] = signature ?? signEvent(encodedBody);
     }
 
     // Note: there does not seem to be a good way to get a trigger uri for
@@ -133,7 +213,7 @@
     return await http_client.post(
         'http://localhost:5001/$projectId/us-central1/githubWebhook',
         headers: headers,
-        body: jsonEncode(body));
+        body: encodedBody);
   }
 
   // Create mock event body.
@@ -186,8 +266,37 @@
         },
       };
 
+  Map<String, dynamic> makeIssueCommentEvent(
+          {int number = 1,
+          String repositoryName = 'dart-lang/webhook-test',
+          String issueBody =
+              'This is an amazing ../third_party/dart/runtime/vm solution',
+          String commentBody = 'comment body goes here',
+          String authorAssociation = 'NONE'}) =>
+      {
+        'action': 'created',
+        'issue': {
+          'html_url':
+              'https://github.com/dart-lang/webhook-test/issues/${number}',
+          'number': number,
+          'title': 'TEST ISSUE TITLE',
+          'body': issueBody,
+          'user': {
+            'login': 'hest',
+            'html_url': 'https://github.com/hest',
+          },
+        },
+        'comment': {
+          'body': commentBody,
+          'author_association': authorAssociation,
+        },
+        'repository': {
+          'full_name': 'dart-lang/webhook-test',
+        },
+      };
+
   test('signing', () {
-    expect(signEvent(makeLabeledEvent(labelName: 'bug')),
+    expect(signEvent(jsonEncode(makeLabeledEvent(labelName: 'bug'))),
         equals('sha1=76af51cdb9c7a43b146d4df721ac8f83e53182e5'));
   });
 
@@ -347,6 +456,35 @@
     expect(rs.statusCode, equals(HttpStatus.ok));
     expect(sendgridRequests.length, equals(0));
   });
+
+  test('ok - issue opened - crash', () async {
+    final rs = await sendEvent(body: makeIssueOpenedEvent(body: '''
+I had Flutter engine c_r_a_s_h on me with the following message
+
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+Such c_r_a_s_h
+Much information
+'''));
+    expect(rs.statusCode, equals(HttpStatus.ok));
+    expect(sendgridRequests.length, equals(1));
+    final rq = sendgridRequests.first;
+    final plainTextBody = rq.body['content']
+        .firstWhere((c) => c['type'] == 'text/plain')['value'];
+    expect(plainTextBody, contains('engine aaabbb ios-arm-debug crash'));
+    expect(plainTextBody, contains('SYMBOLIZED_STACK_HERE'));
+  });
+
+  test('ok - issue comment - forward bot command', () async {
+    final command = '''@flutter-symbolizer-bot aaa bbb''';
+    final rs = await sendEvent(
+        event: 'issue_comment',
+        body: makeIssueCommentEvent(
+          commentBody: command,
+          authorAssociation: 'MEMBER',
+        ));
+    expect(rs.statusCode, equals(HttpStatus.ok));
+    expect(symbolizerCommands, equals([command]));
+  });
 }
 
 /// Helper method to convert a [Buffer] to a [String].
@@ -363,4 +501,6 @@
   final Map<String, dynamic> body;
 
   SendgridRequest({this.headers, this.body});
+
+  Map<String, dynamic> toJson() => {'headers': headers, 'body': body};
 }
diff --git a/github-label-notifier/functions/pubspec.yaml b/github-label-notifier/functions/pubspec.yaml
index 69e0c32..d631086 100644
--- a/github-label-notifier/functions/pubspec.yaml
+++ b/github-label-notifier/functions/pubspec.yaml
@@ -3,9 +3,10 @@
   Cloud Function that can serve as a GitHub WebHook which sends notifications
   to developers subscribed to a particular label.
 version: 0.0.1
+publish_to: none
 
 environment:
-  sdk: '>=2.3.0 <3.0.0'
+  sdk: '>=2.6.0 <3.0.0'
 
 dependencies:
   firebase_functions_interop: ^1.0.0
@@ -14,6 +15,8 @@
   node_io: ^1.0.1
   js: any
   test: any
+  symbolizer:
+    path: ../symbolizer
 
 dev_dependencies:
   # Needed to compile Dart to valid Node.js module.
diff --git a/github-label-notifier/functions/run.sh b/github-label-notifier/functions/run.sh
new file mode 100755
index 0000000..d17724c
--- /dev/null
+++ b/github-label-notifier/functions/run.sh
@@ -0,0 +1,21 @@
+#!/bin/sh
+# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+set -e
+
+export SYMBOLIZER_SERVER=localhost:4040
+
+# Don't use real SendGrid servers during testing - instead redirect API
+# calls to a mock server.
+export SENDGRID_MOCK_SERVER=localhost:8151
+
+# Note: these are randomly generated secrets purely for testing purposes.
+# They should not be used during deployment.
+export GITHUB_SECRET=f32205e9a6d0b8157dcc1935af96aa9fe5719109
+export SENDGRID_SECRET=SG.I9JN-n6oQb-X686126S.qJasdasdasda_lyadasd
+
+pub run build_runner build --output=build
+
+firebase emulators:start --project github-label-notifier
diff --git a/github-label-notifier/functions/test.sh b/github-label-notifier/functions/test.sh
index 8cc82f8..d5eb226 100755
--- a/github-label-notifier/functions/test.sh
+++ b/github-label-notifier/functions/test.sh
@@ -9,6 +9,10 @@
 # calls to a mock server.
 export SENDGRID_MOCK_SERVER=localhost:8151
 
+# Similarly don't use real symbolizer server. We are going to start our own
+# mock server.
+export SYMBOLIZER_SERVER=localhost:4040
+
 # Note: these are randomly generated secrets purely for testing purposes.
 # They should not be used during deployment.
 export GITHUB_SECRET=f32205e9a6d0b8157dcc1935af96aa9fe5719109
diff --git a/github-label-notifier/symbolizer/.gitignore b/github-label-notifier/symbolizer/.gitignore
new file mode 100644
index 0000000..23a5b01
--- /dev/null
+++ b/github-label-notifier/symbolizer/.gitignore
@@ -0,0 +1,20 @@
+# 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/
+
+# Configuration containing private tokens
+.*.json
+symbols-cache
+tools
+deploy
+
+# We commit our generated files.
+!*.g.dart
diff --git a/github-label-notifier/symbolizer/README-bot.md b/github-label-notifier/symbolizer/README-bot.md
new file mode 100644
index 0000000..277a8b3
--- /dev/null
+++ b/github-label-notifier/symbolizer/README-bot.md
@@ -0,0 +1,110 @@
+<!--
+This is flutter-symbolizer-bot README file. If you are making changes to
+this file update https://github.com/flutter-symbolizer-bot/flutter-symbolizer-bot/blob/main/README.md
+as well
+-->
+
+### Hi there 👋
+
+I am a bot that can symbolize Flutter Engine crashes. If you have any bug
+reports or questions contact @mraleph
+
+👉 **I only answer to commands of public members of Flutter GitHub org!** To
+check whether your membership is public just open your profile in Incognito
+Window and check if Flutter org badge is visible. Read more about org membership
+privacy settings [here](https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-your-github-user-account/publicizing-or-hiding-organization-membership).
+
+I can automatically detect the following crashes:
+
+- Android crashes marked with `*** *** *** ... *** *** ***` line.
+- iOS crashes starting with `Incident Identifier: ...` line.
+
+For symbolization I would need to know engine commit hash and build mode. I
+support extracting engine version from `flutter doctor` output (with or
+without `-v`) and I can sometimes guess build mode (e.g. by using `Build ID`
+included into stack traces on Android).
+
+However often reports don't include all required information or don't use native
+format so you would need to provide me with additional hints, see
+[Commands](#commands) below.
+
+### Commands
+
+When you mention me in the comment you can include a number of
+_symbolization overrides_ which would fill in the gaps in information for me.
+
+```
+@flutter-symbolizer-bot [engine#<sha>|flutter#<commit>] [profile|release|debug] [x86|arm|arm64|x64]
+```
+
+**Important ⚠️**: `@flutter-symbolizer-bot` **MUST** be the very first thing
+in your comment.
+
+- `engine#<sha>` allows to specify which _engine commit_ I should use;
+- `flutter#<commit>` allows to specify which Flutter Framework commit I
+  should use (this is just another way of specifiying engine commit);
+- `profile|release|debug` tells me which _build mode_ I should use (iOS builds
+  only have `release` symbols available though);
+- `x86|arm|arm64|x64` tells me which _architecture_ I should use.
+
+You can point me to a specific comment by including the link to it:
+
+```
+@flutter-symbolizer-bot [link|this]
+```
+
+- `link`, which looks like
+  `https://github.com/flutter/flutter/issues/ISSUE#issue(comment)?-ID`, asks me
+   to look for crashes in the specific comment;
+- `this` asks me to symbolize content of
+  _the comment which contains the command_.
+
+If your backtrace comes from Crashlytics with lines that look like this:
+
+```
+4  Flutter                        0x106013134 (Missing)
+```
+
+You would need to tell me `@flutter-symbolizer-bot force ios [arm64|arm] [engine#<sha>|flutter#<commit>] link|this`:
+
+- `force ios` tells me to ignore native crash markers and simply look for lines
+  that match `ios` backtrace format;
+- `[arm64|arm]` gives me information about architecture, which is otherwise
+  missing from the report;
+- `engine#sha|flutter#commit` gives me engine version;
+- `link|this` specifies which comment to symbolize. Note ⚠️: because this is a
+  departure from native crash report formats you *must* tell me which comment
+  to symbolize manually
+
+If your backtrace has lines that look like this:
+
+```
+0x0000000105340708(Flutter + 0x002b4708)
+```
+
+You would need to tell me `@flutter-symbolizer-bot internal [arm64|arm] [engine#<sha>|flutter#<commit>] link|this`:
+
+- `internal` tells me to ignore native crash markers and look for lines that
+  match _internal_ backtrace format.
+
+### Note about Relative PCs
+
+To symbolize stack trace correctly I need to know PC relative to binary image
+load base. Native crash formats usually include this information:
+
+- On Android `pc` column actually contains relative PCs rather then absolute.
+  Though Android versions prior to Android 11 have issues with their unwinder
+  which makes these relative PCs skewed in different ways (see
+  [this bug](https://github.com/android/ndk/issues/1366) for more information).
+  I try my best to correct for these known issues;
+- On iOS I am looking for lines like this `Flutter + <rel-pc>` which gives me
+  necessary information.
+
+Some crash formats (Crashlytics) do not contain neither load base nor relative
+PCs. In this case I try to determine load base heuristically based on the set
+of return addresses available in the backtrace: I look through Flutter Engine
+binary for all call sites and then iterate through potential load bases to see
+if one of them makes all of PCs present in the backtrace fall onto callsites.
+The pattern of call sites in the binary is often unique enough for me to be
+able to determine a single possible load base based on 3-4 unique return
+addresses.
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/README.md b/github-label-notifier/symbolizer/README.md
new file mode 100644
index 0000000..ea09771
--- /dev/null
+++ b/github-label-notifier/symbolizer/README.md
@@ -0,0 +1,122 @@
+This folder contains implementation of symbolization tooling capable of
+extracting Android and iOS crashes from plain text comments on GitHub and
+then automatically symbolize these crash reports using Flutter Engine symbols
+stored in the Cloud Storage.
+
+# `bin/server.dart`
+
+Server exposing simple HTTP API to this functionality. It has two endpoints:
+
+- `POST /symbolize` with GitHub's `issue` JSON payload runs symbolization on the
+  issue's body and returns result as a JSON serialized list of
+  `SymbolizationResult`.
+- `POST /command` with GitHub's [`issue_comment`](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events/webhook-events-and-payloads#issue_comment)
+  payload executes the given comment as a bot command (if it represents one).
+
+Note: the server itself does not listen to GitHub events - instead there is a
+Cloud Function exposed as a GitHub WebHook which routes relevant
+`issue_comment` events to it.
+
+# Scripts
+
+## `bin/configure.dart`
+
+Creates `.config.json` with authorization tokens. It is recommended to run
+this script to at least configure GitHub OAuth token to ensure that
+you don't hit GitHub's API quota limits for unauthorized users.
+
+```console
+$ bin/configure.dart --github-token ... --sendgrid-token ... --failure-email ...
+```
+
+## `bin/command.dart`
+
+```console
+$ bin/command.dart [--act] <issue-number> 'keywords*'
+```
+
+Execute the given string of keywords as a `@flutter-symbolizer-bot` command in
+context of the issue with the given `issue-number` number.
+
+By default would simply print `@flutter-symbolizer-bot` response to stdout.
+
+If `--act` is passed then bot would actually post a comment with its response
+to the issue using GitHub OAuth token from `.config.json`.
+
+## `bin/symbolize.dart`
+
+```console
+$ bin/symbolize.dart <input-file> 'keywords*'
+```
+
+Symbolize contents of the given file using overrides specified through keywords.
+
+# Development
+
+## Tokens
+
+You would at minimum need GitHub OAuth token to run test - otherwise they
+hit GitHub API limits for unauthorized users and timeout.
+
+Run `bin/configure.dart` to create `.config.json`.
+
+```
+bin/configure.dart --github-token ... --sendgrid-token ... --failure-email ...
+```
+
+## NDK tooling
+
+To run tests or scripts locally you would need to create `tools` folder
+containing a small subset of NDK tooling. This is done by running
+
+```console
+$ ./get-tools-from-ndk.sh <path-to-ndk>
+```
+
+## Changing `model.dart`
+
+We use [`freezed`](https://pub.dev/packages/freezed) to define our model
+classes. To regenerate `model.g.dart` and `mode.freezed.dart` after editing
+`model.dart` run:
+
+```console
+$ pub run build_runner build
+```
+
+# Testing
+
+```console
+$ pub run test -j1 --no-chain-stack-traces
+```
+
+- `-j1` is needed to avoid racy access to symbols cache from multiple
+  tests
+- `--no-chain-stack-traces` needed to avoid timeouts caused by
+  stack trace chaining overheads.
+
+To update expectation files set `REGENERATE_EXPECTATIONS` environment
+variable to `true` (`export REGENERATE_EXPECTATIONS=true`).
+
+# Deployment
+
+Bot is running on `crash-symbolizer` Compute Engine instance and is kept
+alive by `superviserd`. The GCE instance is not directly reachable from
+the outside world. To deploy a new version run:
+
+```console
+$ GITHUB_TOKEN=... SENDGRID_TOKEN=... FAILURE_EMAIL=... ./deploy.sh
+```
+
+- `GITHUB_TOKEN` provides OAuth token for `flutter-symbolizer-bot` account;
+- `SENDGRID_TOKEN` provides SendGrid API token
+- `FAILURE_EMAIL` configures email that bot should report exceptions to.
+- Under certain conditions your machine might not be able to connect to
+  GCE instance. In this case you will need to proxy your deployment through
+  another machine that *can* connect to the instance. You can specify
+  this "proxy" machine via `DEPLOYMENT_PROXY`.
+
+## SDK version
+
+We deploy the code in form of Kernel binary - which means your local SDK
+needs to match the version of Dart SDK installed on `crash-symbolizer`.
+Deployment script will verify this for you.
diff --git a/github-label-notifier/symbolizer/analysis_options.yaml b/github-label-notifier/symbolizer/analysis_options.yaml
new file mode 100644
index 0000000..ab43a2d
--- /dev/null
+++ b/github-label-notifier/symbolizer/analysis_options.yaml
@@ -0,0 +1,16 @@
+# 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:
+    - prefer_final_locals
+
+analyzer:
+  errors:
+    missing_required_param: error
+#   exclude:
+#     - path/to/excluded/files/**
diff --git a/github-label-notifier/symbolizer/bin/command.dart b/github-label-notifier/symbolizer/bin/command.dart
new file mode 100755
index 0000000..2ac4e90
--- /dev/null
+++ b/github-label-notifier/symbolizer/bin/command.dart
@@ -0,0 +1,74 @@
+#!/usr/bin/env dart
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. 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:io';
+
+import 'package:args/args.dart';
+import 'package:github/github.dart';
+import 'package:logging/logging.dart';
+import 'package:sendgrid_mailer/sendgrid_mailer.dart';
+import 'package:symbolizer/bot.dart';
+import 'package:symbolizer/config.dart';
+import 'package:symbolizer/ndk.dart';
+import 'package:symbolizer/symbolizer.dart';
+import 'package:symbolizer/symbols.dart';
+
+const isDev = bool.fromEnvironment('DEV');
+
+final bindHostname = isDev
+    ? InternetAddress.loopbackIPv4
+    : 'crash-symbolizer.c.dart-ci.internal';
+
+final log = Logger('server');
+
+final config = loadConfigFromFile();
+
+final argParser = ArgParser(allowTrailingOptions: false)
+  ..addFlag(
+    'act',
+    help: 'Post comment on GitHub (by default '
+        'results are printed into stdout instead)',
+    negatable: false,
+    defaultsTo: false,
+  );
+
+Future<void> main(List<String> args) async {
+  final opts = argParser.parse(args);
+  if (opts.rest.length != 2) {
+    print('''Usage: command.dart [--act] <issue-number> <command>
+${argParser.usage}''');
+    exit(1);
+  }
+  final issueNumber = int.parse(opts.rest[0]);
+  final command = opts.rest[1];
+
+  Logger.root.level = Level.ALL;
+  Logger.root.onRecord.listen((record) {
+    print('${record.level.name}: ${record.time}: ${record.message}');
+  });
+
+  final mailer = Mailer(config.sendgridToken);
+  final ndk = Ndk();
+  final symbols = SymbolsCache(path: 'symbols-cache', ndk: ndk);
+  final github = GitHub(auth: Authentication.withToken(config.githubToken));
+
+  final symbolizer = Symbolizer(symbols: symbols, ndk: ndk, github: github);
+  final bot = Bot(
+    github: github,
+    symbolizer: symbolizer,
+    mailer: mailer,
+    failuresEmail: config.failureEmail,
+    dryRun: !opts['act'],
+  );
+
+  final repo = RepositorySlug('flutter', 'flutter');
+  await bot.executeCommand(
+    repo,
+    await github.issues.get(repo, issueNumber),
+    IssueComment(body: '${Bot.accountMention} ${command}'),
+    authorized: true,
+  );
+  github.dispose();
+}
diff --git a/github-label-notifier/symbolizer/bin/configure.dart b/github-label-notifier/symbolizer/bin/configure.dart
new file mode 100755
index 0000000..79d27f6
--- /dev/null
+++ b/github-label-notifier/symbolizer/bin/configure.dart
@@ -0,0 +1,39 @@
+#!/usr/bin/env dart
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. 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 'package:args/args.dart';
+import 'package:symbolizer/model.dart';
+
+final parser = ArgParser()
+  ..addOption('github-token',
+      help: 'GitHub OAuth token',
+      defaultsTo: Platform.environment['GITHUB_TOKEN'])
+  ..addOption('sendgrid-token',
+      help: 'SendGrid API token',
+      defaultsTo: Platform.environment['SENDGRID_TOKEN'])
+  ..addOption('failure-email',
+      help: 'Email for failure reports',
+      defaultsTo: Platform.environment['FAILURE_EMAIL'])
+  ..addOption('output', help: 'Config to write', defaultsTo: '.config.json');
+
+void main(List<String> args) {
+  final opts = parser.parse(args);
+  for (var opt in ['github-token', 'sendgrid-token', 'failure-email']) {
+    if (opts[opt].isEmpty) {
+      throw 'Pass non-empty value via --${opt} or through'
+          ' ${opt.toUpperCase().replaceAll('-', '_')} environment variable';
+    }
+  }
+
+  final config = ServerConfig(
+    githubToken: opts['github-token'],
+    sendgridToken: opts['sendgrid-token'],
+    failureEmail: opts['failure-email'],
+  );
+  File(opts['output']).writeAsStringSync(jsonEncode(config));
+}
diff --git a/github-label-notifier/symbolizer/bin/server.dart b/github-label-notifier/symbolizer/bin/server.dart
new file mode 100755
index 0000000..050e622
--- /dev/null
+++ b/github-label-notifier/symbolizer/bin/server.dart
@@ -0,0 +1,52 @@
+#!/usr/bin/env dart
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. 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:io';
+
+import 'package:github/github.dart';
+import 'package:logging/logging.dart';
+import 'package:sendgrid_mailer/sendgrid_mailer.dart';
+import 'package:symbolizer/bot.dart';
+import 'package:symbolizer/config.dart';
+import 'package:symbolizer/ndk.dart';
+import 'package:symbolizer/symbolizer.dart';
+import 'package:symbolizer/symbols.dart';
+import 'package:symbolizer/server.dart';
+
+const isDev = bool.fromEnvironment('DEV');
+
+final bindHostname = isDev
+    ? InternetAddress.loopbackIPv4
+    : 'crash-symbolizer.c.dart-ci.internal';
+
+final log = Logger('server');
+
+final config = loadConfigFromFile();
+
+Future<void> main() async {
+  Logger.root.level = Level.ALL;
+  Logger.root.onRecord.listen((record) {
+    print('${record.level.name}: ${record.time}: ${record.message}');
+  });
+
+  final mailer = Mailer(config.sendgridToken);
+  final ndk = Ndk();
+  final symbols = SymbolsCache(path: 'symbols-cache', ndk: ndk);
+  final github = GitHub(auth: Authentication.withToken(config.githubToken));
+
+  final symbolizer = Symbolizer(symbols: symbols, ndk: ndk, github: github);
+  final bot = Bot(
+      github: github,
+      symbolizer: symbolizer,
+      mailer: mailer,
+      failuresEmail: config.failureEmail);
+
+  await serve(
+    bindHostname,
+    4040,
+    symbolizer: symbolizer,
+    bot: bot,
+  );
+}
diff --git a/github-label-notifier/symbolizer/bin/symbolize.dart b/github-label-notifier/symbolizer/bin/symbolize.dart
new file mode 100755
index 0000000..36911e4
--- /dev/null
+++ b/github-label-notifier/symbolizer/bin/symbolize.dart
@@ -0,0 +1,45 @@
+#!/usr/bin/env dart
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Primitive CLI for the symbolizer. Usage:
+///
+///    symbolize <input-file> [overrides]
+///
+
+import 'dart:io';
+
+import 'package:github/github.dart';
+import 'package:logging/logging.dart';
+import 'package:symbolizer/config.dart';
+import 'package:symbolizer/ndk.dart';
+import 'package:symbolizer/symbolizer.dart';
+import 'package:symbolizer/symbols.dart';
+import 'package:symbolizer/bot.dart';
+
+final config = loadConfigFromFile();
+
+void main(List<String> args) async {
+  Logger.root.level = Level.ALL;
+  Logger.root.onRecord.listen((record) {
+    print('${record.level.name}: ${record.time}: ${record.message}');
+  });
+
+  final ndk = Ndk();
+  final symbols = SymbolsCache(path: 'symbols-cache', ndk: ndk);
+  final github = GitHub();
+
+  final symbolizer = Symbolizer(symbols: symbols, ndk: ndk, github: github);
+  final input = File(args.first).readAsStringSync();
+
+  final command = args.length >= 2
+      ? Bot.parseCommand(0, '${Bot.accountMention} ${args.skip(1).join(' ')}')
+      : Bot.parseCommand(0, input);
+
+  try {
+    print(await symbolizer.symbolize(input, overrides: command?.overrides));
+  } finally {
+    github.dispose();
+  }
+}
diff --git a/github-label-notifier/symbolizer/deploy.sh b/github-label-notifier/symbolizer/deploy.sh
new file mode 100755
index 0000000..d989e26
--- /dev/null
+++ b/github-label-notifier/symbolizer/deploy.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+# Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+set -xe
+
+if [[ ! -f "tools/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-symbolizer" ]]; then
+  echo "Missing linux-x86_64 build of llvm-symbolizer."
+  echo "Point get-tools-from-ndk.sh to Linux NDK to extract it."
+  exit 1
+fi
+
+if [[ ! -f "tools/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-readelf" ]]; then
+  echo "Missing linux-x86_64 build of x86_64-linux-android-readelf."
+  echo "Point get-tools-from-ndk.sh to Linux NDK to extract it."
+  exit 1
+fi
+
+if [[ ! -f "tools/android-ndk/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-objdump" ]]; then
+  echo "Missing linux-x86_64 build of llvm-objdump."
+  echo "Point get-tools-from-ndk.sh to Linux NDK to extract it."
+  exit 1
+fi
+
+DART_VERSION=$(dart --version 2>&1 | grep -o -e '\d*\.\d*.\d*')
+
+if [[ $DART_VERSION != "2.10.1" ]]; then
+  echo "Version mismatch with server version: $DART_VERSION expected 2.10.1"
+  exit 1
+fi
+
+# Run all tests
+pub run test --no-chain-stack-traces -j1
+
+rm -rf deploy
+mkdir -p deploy/symbolizer
+dart --snapshot-kind=kernel --snapshot=deploy/symbolizer/symbolizer.dill bin/server.dart
+cp -r tools deploy/symbolizer/tools
+dart bin/configure.dart --output=deploy/symbolizer/.config.json \
+                        --github-token=$GITHUB_TOKEN            \
+                        --sendgrid-token=$SENDGRID_TOKEN        \
+                        --failure-email=$FAILURE_EMAIL
+pushd deploy
+zip -r symbolizer.zip symbolizer
+rm -rf symbolizer
+popd
+
+cat <<EOT >deploy/deploy.sh
+#!/bin/sh
+
+set -ex
+
+DEPLOY_CMD='rm -rf symbolizer && unzip symbolizer.zip && sudo supervisorctl restart all'
+gcloud beta compute scp --zone "us-central1-a" --project "dart-ci" symbolizer.zip crash-symbolizer:~/
+gcloud beta compute ssh --zone "us-central1-a" --project "dart-ci" --command "\$DEPLOY_CMD" crash-symbolizer
+EOT
+chmod +x deploy/deploy.sh
+
+if [[ -z "$DEPLOYMENT_PROXY" ]]; then
+  cd deploy && ./deploy.sh
+else
+  scp deploy/symbolizer.zip $DEPLOYMENT_PROXY:/tmp/symbolizer.zip
+  scp deploy/deploy.sh $DEPLOYMENT_PROXY:/tmp/deploy.sh
+  ssh $DEPLOYMENT_PROXY 'cd /tmp && ./deploy.sh'
+fi
diff --git a/github-label-notifier/symbolizer/get-tools-from-ndk.sh b/github-label-notifier/symbolizer/get-tools-from-ndk.sh
new file mode 100755
index 0000000..4bd70eb
--- /dev/null
+++ b/github-label-notifier/symbolizer/get-tools-from-ndk.sh
@@ -0,0 +1,20 @@
+#!/bin/sh
+# Copyright (c) 2019, the Dart project authors.  Please see the AUTHORS file
+# for details. All rights reserved. Use of this source code is governed by a
+# BSD-style license that can be found in the LICENSE file.
+
+set -xe
+
+NDK=$1
+OS=$2
+
+if [[ -z $OS ]]; then
+  OS=$(uname | tr '[:upper:]' '[:lower:]')
+fi
+
+echo "Running with NDK $NDK for OS $OS"
+
+for BINARY in "x86_64-linux-android-readelf" "llvm-symbolizer" "llvm-objdump"; do
+  mkdir -p tools/android-ndk/toolchains/llvm/prebuilt/$OS-x86_64/bin/
+  cp $NDK/toolchains/llvm/prebuilt/$OS-x86_64/bin/$BINARY tools/android-ndk/toolchains/llvm/prebuilt/$OS-x86_64/bin/$BINARY
+done
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/lib/bot.dart b/github-label-notifier/symbolizer/lib/bot.dart
new file mode 100644
index 0000000..776de4e
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/bot.dart
@@ -0,0 +1,470 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Implementation of @flutter-symbolizer-bot.
+///
+/// The bot is triggered by command comments starting with bot mention
+/// and followed by zero of more keywords.
+///
+/// See README-bot.md for bot command documentation.
+library symbolizer.bot;
+
+import 'dart:convert';
+
+import 'package:github/github.dart';
+import 'package:logging/logging.dart';
+import 'package:meta/meta.dart';
+import 'package:sendgrid_mailer/sendgrid_mailer.dart';
+
+import 'package:symbolizer/model.dart';
+import 'package:symbolizer/parser.dart';
+import 'package:symbolizer/symbolizer.dart';
+
+final _log = Logger(Bot.account);
+
+class Bot {
+  final GitHub github;
+  final Symbolizer symbolizer;
+  final Mailer mailer;
+  final String failuresEmail;
+  final bool dryRun;
+
+  Bot({
+    @required this.github,
+    @required this.symbolizer,
+    @required this.mailer,
+    @required this.failuresEmail,
+    this.dryRun = false,
+  });
+
+  static final account = 'flutter-symbolizer-bot';
+  static final accountMention = '@$account';
+
+  /// Returns [true] if the given [text] is potentially a command to the bot.
+  static bool isCommand(String text) {
+    return text.startsWith(Bot.accountMention);
+  }
+
+  /// Parse the given [text] as a command to the bot. See the library doc
+  /// comment at the beginning of the file for information about the command
+  /// format.
+  static BotCommand parseCommand(int issueNumber, String text) {
+    final command = text.split('\n').first;
+    if (!isCommand(command)) {
+      return null;
+    }
+
+    final issueNumberStr = issueNumber.toString();
+
+    var symbolizeThis = false;
+    final worklist = <String>{};
+    String engineHash;
+    String flutterVersion;
+    String os;
+    String arch;
+    String mode;
+    String format;
+    var force = false;
+
+    // Command is just a sequence of keywords which specify which comments
+    // to symbolize and which symbols to use.
+    for (var keyword in command.split(' ').skip(1)) {
+      switch (keyword) {
+        case 'this':
+          symbolizeThis = true;
+          break;
+        case 'x86':
+        case 'arm':
+        case 'arm64':
+        case 'x64':
+          arch = keyword;
+          break;
+        case 'debug':
+        case 'profile':
+        case 'release':
+          mode = keyword;
+          break;
+        case 'internal':
+          format = 'internal';
+          break;
+        case 'force':
+          force = true;
+          break;
+        case 'ios':
+          os = 'ios';
+          break;
+        default:
+          // Check if this keyword is a link to an comment on this issue.
+          var m = _commentLinkPattern.firstMatch(keyword);
+          if (m != null) {
+            if (m.namedGroup('issueNumber') == issueNumberStr) {
+              worklist.add(m.namedGroup('ref'));
+            }
+            break;
+          }
+
+          // Check if this keyword is an engine hash.
+          m = _engineHashPattern.firstMatch(keyword);
+          if (m != null) {
+            engineHash = m.namedGroup('sha');
+            break;
+          }
+
+          m = _flutterHashOrVersionPattern.firstMatch(keyword);
+          if (m != null) {
+            flutterVersion = m.namedGroup('version');
+            break;
+          }
+          break;
+      }
+    }
+
+    return BotCommand(
+      symbolizeThis: symbolizeThis,
+      worklist: worklist,
+      overrides: SymbolizationOverrides(
+        arch: arch,
+        engineHash: engineHash,
+        flutterVersion: flutterVersion,
+        mode: mode,
+        os: os,
+        force: force,
+        format: format,
+      ),
+    );
+  }
+
+  /// Execute command contained in the given [commandComment] posted on the
+  /// [issue] in the repository [repo].
+  Future<void> executeCommand(
+    RepositorySlug repo,
+    Issue issue,
+    IssueComment commandComment, {
+    @required bool authorized,
+  }) async {
+    if (!authorized) {
+      await github.issues.createComment(repo, issue.number, '''
+@${commandComment.user.login} Sorry, only **public members of Flutter org** can trigger my services.
+
+Check your privacy settings as described [here](https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-your-github-user-account/publicizing-or-hiding-organization-membership).
+''');
+      return;
+    }
+
+    final command = parseCommand(issue.number, commandComment.body);
+    if (command == null) {
+      return;
+    }
+
+    // Comments which potentially contain crashes by their id.
+    Map<int, _Comment> worklist;
+    if (command.shouldProcessAll) {
+      worklist = await processAllComments(repo, issue);
+    } else {
+      worklist = {};
+      if (command.symbolizeThis) {
+        worklist[commandComment.id] = _Comment.fromComment(commandComment);
+      }
+
+      // Process worklist from the command and fetch comment bodies.
+      for (var ref in command.worklist) {
+        // ref has one of the following formats: issue-id or issuecomment-id
+        final c = ref.split('-');
+        final id = int.parse(c[1]);
+        if (c[0] == 'issue') {
+          worklist[issue.id] = _Comment.fromIssue(issue);
+        } else {
+          try {
+            final comment = await github.issues.getComment(repo, id);
+            worklist[comment.id] = _Comment.fromComment(comment);
+          } catch (e) {
+            // Ignore.
+          }
+        }
+      }
+    }
+
+    // Process comments from the worklist.
+    await symbolizeGiven(
+        repo, issue, commandComment.user, worklist, command.overrides);
+  }
+
+  /// Find all comments on the [issue] which potentially contain crashes
+  /// and were not previously symbolized by the bot.
+  Future<Map<int, _Comment>> processAllComments(
+      RepositorySlug repo, Issue issue) async {
+    _log.info(
+        'Requested to symbolize all comments on ${repo.fullName}#${issue.number}');
+
+    // Dictionary of comments to symbolize by their id.
+    final worklist = <int, _Comment>{};
+    final alreadySymbolized = <int>{};
+
+    // Collect all comments which might contain crashes in the worklist
+    // and ids of already symbolized comments in the [alreadySymbolized] set.
+    if (containsCrash(issue.body)) {
+      worklist[issue.id] = _Comment.fromIssue(issue);
+    }
+    await for (var comment
+        in github.issues.listCommentsByIssue(repo, issue.number)) {
+      if (comment.user.login == Bot.account) {
+        // From comments by the bot extract ids of already symbolized comments.
+        // Bot adds it to its comments as a JSON encoded object within
+        // HTML comment: <!-- {"symbolized": [id0, id1, ...]} -->
+        final m = _botInfoPattern.firstMatch(comment.body);
+        if (m != null) {
+          final state = jsonDecode(m.namedGroup('json').trim());
+          if (state is Map<String, dynamic> &&
+              state.containsKey('symbolized')) {
+            alreadySymbolized
+                .addAll((state['symbolized'] as List<dynamic>).cast<int>());
+          }
+        }
+      } else if (containsCrash(comment.body)) {
+        worklist[comment.id] = _Comment.fromComment(comment);
+      }
+    }
+
+    _log.info(
+        'Found comments with crashes ${worklist.keys}, and already symbolized ${alreadySymbolized}');
+    alreadySymbolized.forEach(worklist.remove);
+    return worklist;
+  }
+
+  /// Symbolize crashes from all comments in the [worklist] using the given
+  /// [overrides] and post response on the issue.
+  Future<void> symbolizeGiven(
+      RepositorySlug repo,
+      Issue issue,
+      User commandUser,
+      Map<int, _Comment> worklist,
+      SymbolizationOverrides overrides) async {
+    _log.info('Symbolizing ${worklist.keys} with overrides {$overrides}');
+
+    // Symbolize all collected comments.
+    final symbolized = <int, List<SymbolizationResult>>{};
+    for (var comment in worklist.values) {
+      final result =
+          await symbolizer.symbolize(comment.body, overrides: overrides);
+      if (result.isNotEmpty) {
+        symbolized[comment.id] = result;
+      }
+    }
+
+    if (symbolized.isEmpty) {
+      await github.issues.createComment(repo, issue.number, '''
+@${commandUser.login} No crash reports found. I used the following overrides
+when looking for reports
+
+```
+$overrides
+```
+
+Note that I can only find native Android and iOS crash reports automatically,
+you need to explicitly point me to crash reports in other supported formats.
+
+If the crash report is embedded into a log and prefixed with additional
+information I might not be able to automatically strip those prefixes.
+Currently I only support `flutter run -v`, `adb logcat` and device lab logs.
+
+See [my documentation](https://github.com/flutter-symbolizer-bot/flutter-symbolizer-bot/blob/main/README.md#commands) for more details on how to do that.
+''');
+      return;
+    }
+
+    // Post a comment containing all successfully symbolized crashes.
+    await postResultComment(repo, issue, worklist, symbolized);
+    await mailFailures(repo, issue, worklist, symbolized);
+  }
+
+  /// Post a comment on the issue commenting successfully symbolized crashes.
+  void postResultComment(
+      RepositorySlug repo,
+      Issue issue,
+      Map<int, _Comment> comments,
+      Map<int, List<SymbolizationResult>> symbolized) async {
+    if (symbolized.isEmpty) {
+      return;
+    }
+
+    final successes = symbolized.whereResult((r) => r.symbolized != null);
+    final failures = symbolized.whereResult((r) => r.symbolized == null);
+
+    final buf = StringBuffer();
+    for (var entry in successes.entries) {
+      for (var result in entry.value) {
+        buf.write('''
+crash from ${comments[entry.key].url} symbolized using symbols for `${result.engineBuild.engineHash}` `${result.engineBuild.variant.os}-${result.engineBuild.variant.arch}-${result.engineBuild.variant.mode}`
+```
+${result.symbolized}
+```
+''');
+        for (var note in result.notes) {
+          buf.write('_(${noteMessage[note.kind]}');
+          if ((note.message ?? '').isNotEmpty) {
+            buf.write(': ');
+            buf.write(note.message);
+          }
+          buf.write(')_');
+        }
+        buf.writeln();
+      }
+    }
+
+    if (failures.isNotEmpty) {
+      buf.writeln();
+      // GitHub allows <details> HTML elements
+      // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/details
+      buf.writeln('''
+<details>
+<summary>There were failures symbolizing some of the crashes I found</summary>
+''');
+
+      for (var entry in failures.entries) {
+        for (var result in entry.value) {
+          buf.writeln('''
+When processing ${comments[entry.key].url} I found crash
+
+```
+${result.crash}
+```
+
+but failed to symbolize it with the following notes:
+''');
+          for (var note in result.notes) {
+            buf.write('* ${noteMessage[note.kind]}');
+            if (note.message != null && note.message.isNotEmpty) {
+              if (note.message.contains('\n')) {
+                buf.writeln(':');
+                buf.write('''
+```
+${note.message}
+```'''
+                    .indentBy('    '));
+              } else {
+                buf.writeln(': `${note.message}`');
+              }
+            }
+            buf.writeln('');
+          }
+        }
+      }
+
+      buf.writeln('''
+
+See [my documentation](https://github.com/flutter-symbolizer-bot/flutter-symbolizer-bot/blob/main/README.md#commands) for more details.
+</details>
+''');
+    }
+
+    // Append information about symbolized comments to the bot's comment so that
+    // we could skip them later.
+    buf.writeln(
+        '<!-- ${jsonEncode({'symbolized': successes.keys.toList()})} -->');
+
+    if (dryRun) {
+      print(buf);
+    } else {
+      await github.issues.createComment(repo, issue.number, buf.toString());
+    }
+  }
+
+  /// Mail failures to the [failuresEmail] mail address.
+  void mailFailures(
+      RepositorySlug repo,
+      Issue issue,
+      Map<int, _Comment> comments,
+      Map<int, List<SymbolizationResult>> symbolized) async {
+    if (failuresEmail == null) {
+      return;
+    }
+
+    final failures = symbolized.whereResult((r) => r.symbolized == null);
+    if (failures.isEmpty) {
+      return;
+    }
+
+    final escape = const HtmlEscape().convert;
+
+    final buf = StringBuffer();
+    buf.write('''<p>Hello &#x1f44b;</p>
+<p>I was asked to symbolize crashes from <a href="${issue.htmlUrl}">issue ${issue.number}</a>, but failed.</p>
+''');
+    for (var entry in failures.entries) {
+      for (var result in entry.value) {
+        buf.writeln('''
+<p>When processing <a href="${comments[entry.key].url}">comment</a>, I found crash</p>
+<pre>${escape(result.crash.toString())}</pre>
+<p>but failed with the following notes:</p>
+''');
+        for (var note in result.notes) {
+          buf.writeln(
+              '${noteMessage[note.kind]} <pre>${escape(note.message ?? '')}');
+        }
+      }
+    }
+
+    if (dryRun) {
+      print(buf);
+    } else {
+      await mailer.send(
+        Email(
+          [
+            Personalization([Address(failuresEmail)])
+          ],
+          Address('noreply@dart.dev'),
+          'symbolization errors for issue #${issue.number}',
+          content: [Content('text/html', buf.toString())],
+        ),
+      );
+    }
+  }
+
+  static final _botInfoPattern = RegExp(r'<!-- (?<json>.*) -->');
+  static final _commentLinkPattern = RegExp(
+      r'^https://github\.com/(?<fullName>[\-\w]+/[\-\w]+)/issues/(?<issueNumber>\d+)#(?<ref>issue(comment)?-\d+)$');
+  static final _engineHashPattern = RegExp(r'^engine#(?<sha>[a-f0-9]+)$');
+  static final _flutterHashOrVersionPattern =
+      RegExp(r'^flutter#v?(?<version>[a-f0-9\.]+)$');
+}
+
+extension on BotCommand {
+  /// [true] if the user requested to process all comments on the issue.
+  bool get shouldProcessAll => !symbolizeThis && worklist.isEmpty;
+}
+
+/// Class that represents a comment on the issue.
+///
+/// GitHub API does not treat issue body itself as a comment hence
+/// the need for separate wrapper.
+class _Comment {
+  final int id;
+  final String url;
+  final String body;
+
+  _Comment(this.id, this.url, this.body);
+
+  _Comment.fromComment(IssueComment comment)
+      : this(comment.id, comment.htmlUrl, comment.body);
+
+  _Comment.fromIssue(Issue issue)
+      : this(issue.id, issue.commentLikeHtmlUrl, issue.body);
+}
+
+extension on Issue {
+  String get commentLikeHtmlUrl => '$htmlUrl#issue-$id';
+}
+
+extension on Map<int, List<SymbolizationResult>> {
+  /// Filter multimap of symbolization results using the given predicate.
+  Map<int, List<SymbolizationResult>> whereResult(
+          bool Function(SymbolizationResult) predicate) =>
+      Map.fromEntries(entries
+          .map((e) => MapEntry(e.key, e.value.where(predicate).toList()))
+          .where((e) => e.value.isNotEmpty));
+}
+
+extension on String {
+  String indentBy(String indent) => indent + split('\n').join('\n$indent');
+}
diff --git a/github-label-notifier/symbolizer/lib/config.dart b/github-label-notifier/symbolizer/lib/config.dart
new file mode 100644
index 0000000..a8acfe3
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/config.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. 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 'package:symbolizer/model.dart';
+
+ServerConfig loadConfigFromFile({String path = '.config.json'}) {
+  return ServerConfig.fromJson(jsonDecode(File(path).readAsStringSync()));
+}
diff --git a/github-label-notifier/symbolizer/lib/model.dart b/github-label-notifier/symbolizer/lib/model.dart
new file mode 100644
index 0000000..27d08ef
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/model.dart
@@ -0,0 +1,232 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Data model shared between client and server.
+library symbolizer.model;
+
+import 'package:freezed_annotation/freezed_annotation.dart';
+
+part 'model.freezed.dart';
+part 'model.g.dart';
+
+/// Specifies an engine variant (a combination of target os, CPU architecture
+/// and build mode).
+@freezed
+abstract class EngineVariant with _$EngineVariant {
+  factory EngineVariant({
+    @required String os,
+    @required @nullable String arch,
+    @required @nullable String mode,
+  }) = _EngineVariant;
+  factory EngineVariant.fromJson(Map<String, dynamic> json) =>
+      _$EngineVariantFromJson(json);
+
+  /// Generate all posibile variants from the given [variant] by varying
+  /// [EngineVariant.mode].
+  static Iterable<EngineVariant> allModesFor(EngineVariant variant) sync* {
+    for (var mode in [
+      'debug',
+      if (!_isX86Variant(variant)) 'release',
+      if (!_isX86Variant(variant)) 'profile'
+    ]) {
+      yield variant.copyWith(mode: mode);
+    }
+  }
+
+  static bool _isX86Variant(EngineVariant variant) =>
+      variant.arch == 'x86' || variant.arch == 'x64';
+}
+
+extension EngineVariantEx on EngineVariant {
+  String get pretty => '${os}-${arch}-${mode}';
+}
+
+/// Specific engine variant built at the given engine hash.
+@freezed
+abstract class EngineBuild with _$EngineBuild {
+  factory EngineBuild({
+    @required String engineHash,
+    @required EngineVariant variant,
+  }) = _EngineBuild;
+
+  factory EngineBuild.fromJson(Map<String, dynamic> json) =>
+      _$EngineBuildFromJson(json);
+}
+
+/// Backtrace frame extracted from a textual crash report.
+@freezed
+abstract class CrashFrame with _$CrashFrame {
+  /// Frame of a native iOS crash.
+  factory CrashFrame.ios({
+    @required String no,
+    @required String binary,
+
+    /// Absolute PC of the frame.
+    @required int pc,
+    @required String symbol,
+    @required @nullable int offset,
+    @required String location,
+  }) = IosCrashFrame;
+
+  /// Frame of a native Android crash.
+  factory CrashFrame.android({
+    @required String no,
+
+    /// Relative PC of the frame.
+    @required int pc,
+    @required String binary,
+    @required String rest,
+    @required @nullable String buildId,
+  }) = AndroidCrashFrame;
+
+  factory CrashFrame.custom({
+    @required String no,
+    @required int pc,
+    @required String binary,
+    @required @nullable int offset,
+    @required @nullable String location,
+    @required @nullable String symbol,
+  }) = CustomCrashFrame;
+
+  /// Frame of a Dart VM crash.
+  factory CrashFrame.dartvm({
+    /// Absolute PC of the frame.
+    @required int pc,
+
+    /// Binary which contains the given PC.
+    @required String binary,
+
+    /// Offset from load base of the binary to the PC.
+    @required int offset,
+  }) = DartvmCrashFrame;
+
+  factory CrashFrame.fromJson(Map<String, dynamic> json) =>
+      _$CrashFrameFromJson(json);
+
+  static const crashalyticsMissingSymbol = '(Missing)';
+}
+
+/// Information about an engine crash extracted from a GitHub comment.
+@freezed
+abstract class Crash with _$Crash {
+  factory Crash({
+    EngineVariant engineVariant,
+    List<CrashFrame> frames,
+    @required String format,
+    @nullable int androidMajorVersion,
+  }) = _Crash;
+
+  factory Crash.fromJson(Map<String, dynamic> json) => _$CrashFromJson(json);
+}
+
+enum SymbolizationNoteKind {
+  unknownEngineHash,
+  unknownAbi,
+  exceptionWhileGettingEngineHash,
+  exceptionWhileSymbolizing,
+  exceptionWhileLookingByBuildId,
+  defaultedToReleaseBuildIdUnavailable,
+  noSymbolsAvailableOnIos,
+  buildIdMismatch,
+  loadBaseDetected,
+}
+
+const noteMessage = <SymbolizationNoteKind, String>{
+  SymbolizationNoteKind.unknownEngineHash: 'Unknown engine hash',
+  SymbolizationNoteKind.unknownAbi: 'Unknown engine ABI',
+  SymbolizationNoteKind.exceptionWhileGettingEngineHash:
+      'Exception occurred while trying to lookup full engine hash',
+  SymbolizationNoteKind.exceptionWhileSymbolizing:
+      'Exception occurred while symbolizing',
+  SymbolizationNoteKind.exceptionWhileLookingByBuildId:
+      'Exception occurred while trying to find symbols using build-id',
+  SymbolizationNoteKind.defaultedToReleaseBuildIdUnavailable:
+      'Defaulted to release engine because build-id is unavailable or unreliable',
+  SymbolizationNoteKind.noSymbolsAvailableOnIos:
+      'Symbols are available only for release iOS builds',
+  SymbolizationNoteKind.buildIdMismatch: 'Build-ID mismatch',
+  SymbolizationNoteKind.loadBaseDetected:
+      'Load address missing from the report, detected heuristically',
+};
+
+/// Result of symbolizing an engine crash.
+@freezed
+abstract class SymbolizationResult with _$SymbolizationResult {
+  @JsonSerializable(explicitToJson: true)
+  factory SymbolizationResult({
+    @required Crash crash,
+    @required @nullable EngineBuild engineBuild,
+
+    /// Symbolization result - not null if symbolization succeeded.
+    @required @nullable String symbolized,
+    @Default([]) List<SymbolizationNote> notes,
+  }) = _SymbolizationResult;
+
+  factory SymbolizationResult.fromJson(Map<String, dynamic> json) =>
+      _$SymbolizationResultFromJson(json);
+}
+
+extension WithNote on SymbolizationResult {
+  SymbolizationResult withNote(SymbolizationNoteKind kind, [String message]) {
+    return copyWith(
+      notes: [
+        ...?notes,
+        SymbolizationNote(kind: kind, message: message),
+      ],
+    );
+  }
+}
+
+@freezed
+abstract class SymbolizationNote with _$SymbolizationNote {
+  factory SymbolizationNote(
+      {@required SymbolizationNoteKind kind,
+      @nullable String message}) = _SymbolizationNote;
+
+  factory SymbolizationNote.fromJson(Map<String, dynamic> json) =>
+      _$SymbolizationNoteFromJson(json);
+}
+
+/// Command to [Bot].
+@freezed
+abstract class BotCommand with _$BotCommand {
+  factory BotCommand({
+    /// Overrides that should be used for symbolization. These overrides
+    /// replace or augment information available in the comments themselves.
+    @required SymbolizationOverrides overrides,
+
+    /// [true] if the user requested to symbolize the comment that contains
+    /// command.
+    @required bool symbolizeThis,
+
+    /// List of references to comments which need to be symbolized. Each reference
+    /// is either in `issue-id` or in `issuecomment-id` format.
+    @required Set<String> worklist,
+  }) = _BotCommand;
+}
+
+@freezed
+abstract class SymbolizationOverrides with _$SymbolizationOverrides {
+  factory SymbolizationOverrides({
+    @nullable String engineHash,
+    @nullable String flutterVersion,
+    @nullable String arch,
+    @nullable String mode,
+    @Default(false) bool force,
+    @nullable String format,
+    @nullable String os,
+  }) = _SymbolizationOverrides;
+}
+
+@freezed
+abstract class ServerConfig with _$ServerConfig {
+  factory ServerConfig({
+    String githubToken,
+    String sendgridToken,
+    String failureEmail,
+  }) = _ServerConfig;
+
+  factory ServerConfig.fromJson(Map<String, dynamic> json) =>
+      _$ServerConfigFromJson(json);
+}
diff --git a/github-label-notifier/symbolizer/lib/model.freezed.dart b/github-label-notifier/symbolizer/lib/model.freezed.dart
new file mode 100644
index 0000000..973e42b
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/model.freezed.dart
@@ -0,0 +1,2690 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+// ignore_for_file: deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies
+
+part of symbolizer.model;
+
+// **************************************************************************
+// FreezedGenerator
+// **************************************************************************
+
+T _$identity<T>(T value) => value;
+EngineVariant _$EngineVariantFromJson(Map<String, dynamic> json) {
+  return _EngineVariant.fromJson(json);
+}
+
+/// @nodoc
+class _$EngineVariantTearOff {
+  const _$EngineVariantTearOff();
+
+// ignore: unused_element
+  _EngineVariant call(
+      {@required String os,
+      @required @nullable String arch,
+      @required @nullable String mode}) {
+    return _EngineVariant(
+      os: os,
+      arch: arch,
+      mode: mode,
+    );
+  }
+
+// ignore: unused_element
+  EngineVariant fromJson(Map<String, Object> json) {
+    return EngineVariant.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $EngineVariant = _$EngineVariantTearOff();
+
+/// @nodoc
+mixin _$EngineVariant {
+  String get os;
+  @nullable
+  String get arch;
+  @nullable
+  String get mode;
+
+  Map<String, dynamic> toJson();
+  $EngineVariantCopyWith<EngineVariant> get copyWith;
+}
+
+/// @nodoc
+abstract class $EngineVariantCopyWith<$Res> {
+  factory $EngineVariantCopyWith(
+          EngineVariant value, $Res Function(EngineVariant) then) =
+      _$EngineVariantCopyWithImpl<$Res>;
+  $Res call({String os, @nullable String arch, @nullable String mode});
+}
+
+/// @nodoc
+class _$EngineVariantCopyWithImpl<$Res>
+    implements $EngineVariantCopyWith<$Res> {
+  _$EngineVariantCopyWithImpl(this._value, this._then);
+
+  final EngineVariant _value;
+  // ignore: unused_field
+  final $Res Function(EngineVariant) _then;
+
+  @override
+  $Res call({
+    Object os = freezed,
+    Object arch = freezed,
+    Object mode = freezed,
+  }) {
+    return _then(_value.copyWith(
+      os: os == freezed ? _value.os : os as String,
+      arch: arch == freezed ? _value.arch : arch as String,
+      mode: mode == freezed ? _value.mode : mode as String,
+    ));
+  }
+}
+
+/// @nodoc
+abstract class _$EngineVariantCopyWith<$Res>
+    implements $EngineVariantCopyWith<$Res> {
+  factory _$EngineVariantCopyWith(
+          _EngineVariant value, $Res Function(_EngineVariant) then) =
+      __$EngineVariantCopyWithImpl<$Res>;
+  @override
+  $Res call({String os, @nullable String arch, @nullable String mode});
+}
+
+/// @nodoc
+class __$EngineVariantCopyWithImpl<$Res>
+    extends _$EngineVariantCopyWithImpl<$Res>
+    implements _$EngineVariantCopyWith<$Res> {
+  __$EngineVariantCopyWithImpl(
+      _EngineVariant _value, $Res Function(_EngineVariant) _then)
+      : super(_value, (v) => _then(v as _EngineVariant));
+
+  @override
+  _EngineVariant get _value => super._value as _EngineVariant;
+
+  @override
+  $Res call({
+    Object os = freezed,
+    Object arch = freezed,
+    Object mode = freezed,
+  }) {
+    return _then(_EngineVariant(
+      os: os == freezed ? _value.os : os as String,
+      arch: arch == freezed ? _value.arch : arch as String,
+      mode: mode == freezed ? _value.mode : mode as String,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$_EngineVariant implements _EngineVariant {
+  _$_EngineVariant(
+      {@required this.os,
+      @required @nullable this.arch,
+      @required @nullable this.mode})
+      : assert(os != null);
+
+  factory _$_EngineVariant.fromJson(Map<String, dynamic> json) =>
+      _$_$_EngineVariantFromJson(json);
+
+  @override
+  final String os;
+  @override
+  @nullable
+  final String arch;
+  @override
+  @nullable
+  final String mode;
+
+  @override
+  String toString() {
+    return 'EngineVariant(os: $os, arch: $arch, mode: $mode)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _EngineVariant &&
+            (identical(other.os, os) ||
+                const DeepCollectionEquality().equals(other.os, os)) &&
+            (identical(other.arch, arch) ||
+                const DeepCollectionEquality().equals(other.arch, arch)) &&
+            (identical(other.mode, mode) ||
+                const DeepCollectionEquality().equals(other.mode, mode)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(os) ^
+      const DeepCollectionEquality().hash(arch) ^
+      const DeepCollectionEquality().hash(mode);
+
+  @override
+  _$EngineVariantCopyWith<_EngineVariant> get copyWith =>
+      __$EngineVariantCopyWithImpl<_EngineVariant>(this, _$identity);
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$_EngineVariantToJson(this);
+  }
+}
+
+abstract class _EngineVariant implements EngineVariant {
+  factory _EngineVariant(
+      {@required String os,
+      @required @nullable String arch,
+      @required @nullable String mode}) = _$_EngineVariant;
+
+  factory _EngineVariant.fromJson(Map<String, dynamic> json) =
+      _$_EngineVariant.fromJson;
+
+  @override
+  String get os;
+  @override
+  @nullable
+  String get arch;
+  @override
+  @nullable
+  String get mode;
+  @override
+  _$EngineVariantCopyWith<_EngineVariant> get copyWith;
+}
+
+EngineBuild _$EngineBuildFromJson(Map<String, dynamic> json) {
+  return _EngineBuild.fromJson(json);
+}
+
+/// @nodoc
+class _$EngineBuildTearOff {
+  const _$EngineBuildTearOff();
+
+// ignore: unused_element
+  _EngineBuild call(
+      {@required String engineHash, @required EngineVariant variant}) {
+    return _EngineBuild(
+      engineHash: engineHash,
+      variant: variant,
+    );
+  }
+
+// ignore: unused_element
+  EngineBuild fromJson(Map<String, Object> json) {
+    return EngineBuild.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $EngineBuild = _$EngineBuildTearOff();
+
+/// @nodoc
+mixin _$EngineBuild {
+  String get engineHash;
+  EngineVariant get variant;
+
+  Map<String, dynamic> toJson();
+  $EngineBuildCopyWith<EngineBuild> get copyWith;
+}
+
+/// @nodoc
+abstract class $EngineBuildCopyWith<$Res> {
+  factory $EngineBuildCopyWith(
+          EngineBuild value, $Res Function(EngineBuild) then) =
+      _$EngineBuildCopyWithImpl<$Res>;
+  $Res call({String engineHash, EngineVariant variant});
+
+  $EngineVariantCopyWith<$Res> get variant;
+}
+
+/// @nodoc
+class _$EngineBuildCopyWithImpl<$Res> implements $EngineBuildCopyWith<$Res> {
+  _$EngineBuildCopyWithImpl(this._value, this._then);
+
+  final EngineBuild _value;
+  // ignore: unused_field
+  final $Res Function(EngineBuild) _then;
+
+  @override
+  $Res call({
+    Object engineHash = freezed,
+    Object variant = freezed,
+  }) {
+    return _then(_value.copyWith(
+      engineHash:
+          engineHash == freezed ? _value.engineHash : engineHash as String,
+      variant: variant == freezed ? _value.variant : variant as EngineVariant,
+    ));
+  }
+
+  @override
+  $EngineVariantCopyWith<$Res> get variant {
+    if (_value.variant == null) {
+      return null;
+    }
+    return $EngineVariantCopyWith<$Res>(_value.variant, (value) {
+      return _then(_value.copyWith(variant: value));
+    });
+  }
+}
+
+/// @nodoc
+abstract class _$EngineBuildCopyWith<$Res>
+    implements $EngineBuildCopyWith<$Res> {
+  factory _$EngineBuildCopyWith(
+          _EngineBuild value, $Res Function(_EngineBuild) then) =
+      __$EngineBuildCopyWithImpl<$Res>;
+  @override
+  $Res call({String engineHash, EngineVariant variant});
+
+  @override
+  $EngineVariantCopyWith<$Res> get variant;
+}
+
+/// @nodoc
+class __$EngineBuildCopyWithImpl<$Res> extends _$EngineBuildCopyWithImpl<$Res>
+    implements _$EngineBuildCopyWith<$Res> {
+  __$EngineBuildCopyWithImpl(
+      _EngineBuild _value, $Res Function(_EngineBuild) _then)
+      : super(_value, (v) => _then(v as _EngineBuild));
+
+  @override
+  _EngineBuild get _value => super._value as _EngineBuild;
+
+  @override
+  $Res call({
+    Object engineHash = freezed,
+    Object variant = freezed,
+  }) {
+    return _then(_EngineBuild(
+      engineHash:
+          engineHash == freezed ? _value.engineHash : engineHash as String,
+      variant: variant == freezed ? _value.variant : variant as EngineVariant,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$_EngineBuild implements _EngineBuild {
+  _$_EngineBuild({@required this.engineHash, @required this.variant})
+      : assert(engineHash != null),
+        assert(variant != null);
+
+  factory _$_EngineBuild.fromJson(Map<String, dynamic> json) =>
+      _$_$_EngineBuildFromJson(json);
+
+  @override
+  final String engineHash;
+  @override
+  final EngineVariant variant;
+
+  @override
+  String toString() {
+    return 'EngineBuild(engineHash: $engineHash, variant: $variant)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _EngineBuild &&
+            (identical(other.engineHash, engineHash) ||
+                const DeepCollectionEquality()
+                    .equals(other.engineHash, engineHash)) &&
+            (identical(other.variant, variant) ||
+                const DeepCollectionEquality().equals(other.variant, variant)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(engineHash) ^
+      const DeepCollectionEquality().hash(variant);
+
+  @override
+  _$EngineBuildCopyWith<_EngineBuild> get copyWith =>
+      __$EngineBuildCopyWithImpl<_EngineBuild>(this, _$identity);
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$_EngineBuildToJson(this);
+  }
+}
+
+abstract class _EngineBuild implements EngineBuild {
+  factory _EngineBuild(
+      {@required String engineHash,
+      @required EngineVariant variant}) = _$_EngineBuild;
+
+  factory _EngineBuild.fromJson(Map<String, dynamic> json) =
+      _$_EngineBuild.fromJson;
+
+  @override
+  String get engineHash;
+  @override
+  EngineVariant get variant;
+  @override
+  _$EngineBuildCopyWith<_EngineBuild> get copyWith;
+}
+
+CrashFrame _$CrashFrameFromJson(Map<String, dynamic> json) {
+  switch (json['runtimeType'] as String) {
+    case 'ios':
+      return IosCrashFrame.fromJson(json);
+    case 'android':
+      return AndroidCrashFrame.fromJson(json);
+    case 'custom':
+      return CustomCrashFrame.fromJson(json);
+    case 'dartvm':
+      return DartvmCrashFrame.fromJson(json);
+
+    default:
+      throw FallThroughError();
+  }
+}
+
+/// @nodoc
+class _$CrashFrameTearOff {
+  const _$CrashFrameTearOff();
+
+// ignore: unused_element
+  IosCrashFrame ios(
+      {@required String no,
+      @required String binary,
+      @required int pc,
+      @required String symbol,
+      @required @nullable int offset,
+      @required String location}) {
+    return IosCrashFrame(
+      no: no,
+      binary: binary,
+      pc: pc,
+      symbol: symbol,
+      offset: offset,
+      location: location,
+    );
+  }
+
+// ignore: unused_element
+  AndroidCrashFrame android(
+      {@required String no,
+      @required int pc,
+      @required String binary,
+      @required String rest,
+      @required @nullable String buildId}) {
+    return AndroidCrashFrame(
+      no: no,
+      pc: pc,
+      binary: binary,
+      rest: rest,
+      buildId: buildId,
+    );
+  }
+
+// ignore: unused_element
+  CustomCrashFrame custom(
+      {@required String no,
+      @required int pc,
+      @required String binary,
+      @required @nullable int offset,
+      @required @nullable String location,
+      @required @nullable String symbol}) {
+    return CustomCrashFrame(
+      no: no,
+      pc: pc,
+      binary: binary,
+      offset: offset,
+      location: location,
+      symbol: symbol,
+    );
+  }
+
+// ignore: unused_element
+  DartvmCrashFrame dartvm(
+      {@required int pc, @required String binary, @required int offset}) {
+    return DartvmCrashFrame(
+      pc: pc,
+      binary: binary,
+      offset: offset,
+    );
+  }
+
+// ignore: unused_element
+  CrashFrame fromJson(Map<String, Object> json) {
+    return CrashFrame.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $CrashFrame = _$CrashFrameTearOff();
+
+/// @nodoc
+mixin _$CrashFrame {
+  String get binary;
+
+  /// Absolute PC of the frame.
+  int get pc;
+
+  @optionalTypeArgs
+  Result when<Result extends Object>({
+    @required
+        Result ios(String no, String binary, int pc, String symbol,
+            @nullable int offset, String location),
+    @required
+        Result android(String no, int pc, String binary, String rest,
+            @nullable String buildId),
+    @required
+        Result custom(String no, int pc, String binary, @nullable int offset,
+            @nullable String location, @nullable String symbol),
+    @required Result dartvm(int pc, String binary, int offset),
+  });
+  @optionalTypeArgs
+  Result maybeWhen<Result extends Object>({
+    Result ios(String no, String binary, int pc, String symbol,
+        @nullable int offset, String location),
+    Result android(String no, int pc, String binary, String rest,
+        @nullable String buildId),
+    Result custom(String no, int pc, String binary, @nullable int offset,
+        @nullable String location, @nullable String symbol),
+    Result dartvm(int pc, String binary, int offset),
+    @required Result orElse(),
+  });
+  @optionalTypeArgs
+  Result map<Result extends Object>({
+    @required Result ios(IosCrashFrame value),
+    @required Result android(AndroidCrashFrame value),
+    @required Result custom(CustomCrashFrame value),
+    @required Result dartvm(DartvmCrashFrame value),
+  });
+  @optionalTypeArgs
+  Result maybeMap<Result extends Object>({
+    Result ios(IosCrashFrame value),
+    Result android(AndroidCrashFrame value),
+    Result custom(CustomCrashFrame value),
+    Result dartvm(DartvmCrashFrame value),
+    @required Result orElse(),
+  });
+  Map<String, dynamic> toJson();
+  $CrashFrameCopyWith<CrashFrame> get copyWith;
+}
+
+/// @nodoc
+abstract class $CrashFrameCopyWith<$Res> {
+  factory $CrashFrameCopyWith(
+          CrashFrame value, $Res Function(CrashFrame) then) =
+      _$CrashFrameCopyWithImpl<$Res>;
+  $Res call({String binary, int pc});
+}
+
+/// @nodoc
+class _$CrashFrameCopyWithImpl<$Res> implements $CrashFrameCopyWith<$Res> {
+  _$CrashFrameCopyWithImpl(this._value, this._then);
+
+  final CrashFrame _value;
+  // ignore: unused_field
+  final $Res Function(CrashFrame) _then;
+
+  @override
+  $Res call({
+    Object binary = freezed,
+    Object pc = freezed,
+  }) {
+    return _then(_value.copyWith(
+      binary: binary == freezed ? _value.binary : binary as String,
+      pc: pc == freezed ? _value.pc : pc as int,
+    ));
+  }
+}
+
+/// @nodoc
+abstract class $IosCrashFrameCopyWith<$Res>
+    implements $CrashFrameCopyWith<$Res> {
+  factory $IosCrashFrameCopyWith(
+          IosCrashFrame value, $Res Function(IosCrashFrame) then) =
+      _$IosCrashFrameCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {String no,
+      String binary,
+      int pc,
+      String symbol,
+      @nullable int offset,
+      String location});
+}
+
+/// @nodoc
+class _$IosCrashFrameCopyWithImpl<$Res> extends _$CrashFrameCopyWithImpl<$Res>
+    implements $IosCrashFrameCopyWith<$Res> {
+  _$IosCrashFrameCopyWithImpl(
+      IosCrashFrame _value, $Res Function(IosCrashFrame) _then)
+      : super(_value, (v) => _then(v as IosCrashFrame));
+
+  @override
+  IosCrashFrame get _value => super._value as IosCrashFrame;
+
+  @override
+  $Res call({
+    Object no = freezed,
+    Object binary = freezed,
+    Object pc = freezed,
+    Object symbol = freezed,
+    Object offset = freezed,
+    Object location = freezed,
+  }) {
+    return _then(IosCrashFrame(
+      no: no == freezed ? _value.no : no as String,
+      binary: binary == freezed ? _value.binary : binary as String,
+      pc: pc == freezed ? _value.pc : pc as int,
+      symbol: symbol == freezed ? _value.symbol : symbol as String,
+      offset: offset == freezed ? _value.offset : offset as int,
+      location: location == freezed ? _value.location : location as String,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$IosCrashFrame implements IosCrashFrame {
+  _$IosCrashFrame(
+      {@required this.no,
+      @required this.binary,
+      @required this.pc,
+      @required this.symbol,
+      @required @nullable this.offset,
+      @required this.location})
+      : assert(no != null),
+        assert(binary != null),
+        assert(pc != null),
+        assert(symbol != null),
+        assert(location != null);
+
+  factory _$IosCrashFrame.fromJson(Map<String, dynamic> json) =>
+      _$_$IosCrashFrameFromJson(json);
+
+  @override
+  final String no;
+  @override
+  final String binary;
+  @override
+
+  /// Absolute PC of the frame.
+  final int pc;
+  @override
+  final String symbol;
+  @override
+  @nullable
+  final int offset;
+  @override
+  final String location;
+
+  @override
+  String toString() {
+    return 'CrashFrame.ios(no: $no, binary: $binary, pc: $pc, symbol: $symbol, offset: $offset, location: $location)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is IosCrashFrame &&
+            (identical(other.no, no) ||
+                const DeepCollectionEquality().equals(other.no, no)) &&
+            (identical(other.binary, binary) ||
+                const DeepCollectionEquality().equals(other.binary, binary)) &&
+            (identical(other.pc, pc) ||
+                const DeepCollectionEquality().equals(other.pc, pc)) &&
+            (identical(other.symbol, symbol) ||
+                const DeepCollectionEquality().equals(other.symbol, symbol)) &&
+            (identical(other.offset, offset) ||
+                const DeepCollectionEquality().equals(other.offset, offset)) &&
+            (identical(other.location, location) ||
+                const DeepCollectionEquality()
+                    .equals(other.location, location)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(no) ^
+      const DeepCollectionEquality().hash(binary) ^
+      const DeepCollectionEquality().hash(pc) ^
+      const DeepCollectionEquality().hash(symbol) ^
+      const DeepCollectionEquality().hash(offset) ^
+      const DeepCollectionEquality().hash(location);
+
+  @override
+  $IosCrashFrameCopyWith<IosCrashFrame> get copyWith =>
+      _$IosCrashFrameCopyWithImpl<IosCrashFrame>(this, _$identity);
+
+  @override
+  @optionalTypeArgs
+  Result when<Result extends Object>({
+    @required
+        Result ios(String no, String binary, int pc, String symbol,
+            @nullable int offset, String location),
+    @required
+        Result android(String no, int pc, String binary, String rest,
+            @nullable String buildId),
+    @required
+        Result custom(String no, int pc, String binary, @nullable int offset,
+            @nullable String location, @nullable String symbol),
+    @required Result dartvm(int pc, String binary, int offset),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return ios(no, binary, pc, symbol, offset, location);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeWhen<Result extends Object>({
+    Result ios(String no, String binary, int pc, String symbol,
+        @nullable int offset, String location),
+    Result android(String no, int pc, String binary, String rest,
+        @nullable String buildId),
+    Result custom(String no, int pc, String binary, @nullable int offset,
+        @nullable String location, @nullable String symbol),
+    Result dartvm(int pc, String binary, int offset),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (ios != null) {
+      return ios(no, binary, pc, symbol, offset, location);
+    }
+    return orElse();
+  }
+
+  @override
+  @optionalTypeArgs
+  Result map<Result extends Object>({
+    @required Result ios(IosCrashFrame value),
+    @required Result android(AndroidCrashFrame value),
+    @required Result custom(CustomCrashFrame value),
+    @required Result dartvm(DartvmCrashFrame value),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return ios(this);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeMap<Result extends Object>({
+    Result ios(IosCrashFrame value),
+    Result android(AndroidCrashFrame value),
+    Result custom(CustomCrashFrame value),
+    Result dartvm(DartvmCrashFrame value),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (ios != null) {
+      return ios(this);
+    }
+    return orElse();
+  }
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$IosCrashFrameToJson(this)..['runtimeType'] = 'ios';
+  }
+}
+
+abstract class IosCrashFrame implements CrashFrame {
+  factory IosCrashFrame(
+      {@required String no,
+      @required String binary,
+      @required int pc,
+      @required String symbol,
+      @required @nullable int offset,
+      @required String location}) = _$IosCrashFrame;
+
+  factory IosCrashFrame.fromJson(Map<String, dynamic> json) =
+      _$IosCrashFrame.fromJson;
+
+  String get no;
+  @override
+  String get binary;
+  @override
+
+  /// Absolute PC of the frame.
+  int get pc;
+  String get symbol;
+  @nullable
+  int get offset;
+  String get location;
+  @override
+  $IosCrashFrameCopyWith<IosCrashFrame> get copyWith;
+}
+
+/// @nodoc
+abstract class $AndroidCrashFrameCopyWith<$Res>
+    implements $CrashFrameCopyWith<$Res> {
+  factory $AndroidCrashFrameCopyWith(
+          AndroidCrashFrame value, $Res Function(AndroidCrashFrame) then) =
+      _$AndroidCrashFrameCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {String no,
+      int pc,
+      String binary,
+      String rest,
+      @nullable String buildId});
+}
+
+/// @nodoc
+class _$AndroidCrashFrameCopyWithImpl<$Res>
+    extends _$CrashFrameCopyWithImpl<$Res>
+    implements $AndroidCrashFrameCopyWith<$Res> {
+  _$AndroidCrashFrameCopyWithImpl(
+      AndroidCrashFrame _value, $Res Function(AndroidCrashFrame) _then)
+      : super(_value, (v) => _then(v as AndroidCrashFrame));
+
+  @override
+  AndroidCrashFrame get _value => super._value as AndroidCrashFrame;
+
+  @override
+  $Res call({
+    Object no = freezed,
+    Object pc = freezed,
+    Object binary = freezed,
+    Object rest = freezed,
+    Object buildId = freezed,
+  }) {
+    return _then(AndroidCrashFrame(
+      no: no == freezed ? _value.no : no as String,
+      pc: pc == freezed ? _value.pc : pc as int,
+      binary: binary == freezed ? _value.binary : binary as String,
+      rest: rest == freezed ? _value.rest : rest as String,
+      buildId: buildId == freezed ? _value.buildId : buildId as String,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$AndroidCrashFrame implements AndroidCrashFrame {
+  _$AndroidCrashFrame(
+      {@required this.no,
+      @required this.pc,
+      @required this.binary,
+      @required this.rest,
+      @required @nullable this.buildId})
+      : assert(no != null),
+        assert(pc != null),
+        assert(binary != null),
+        assert(rest != null);
+
+  factory _$AndroidCrashFrame.fromJson(Map<String, dynamic> json) =>
+      _$_$AndroidCrashFrameFromJson(json);
+
+  @override
+  final String no;
+  @override
+
+  /// Relative PC of the frame.
+  final int pc;
+  @override
+  final String binary;
+  @override
+  final String rest;
+  @override
+  @nullable
+  final String buildId;
+
+  @override
+  String toString() {
+    return 'CrashFrame.android(no: $no, pc: $pc, binary: $binary, rest: $rest, buildId: $buildId)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is AndroidCrashFrame &&
+            (identical(other.no, no) ||
+                const DeepCollectionEquality().equals(other.no, no)) &&
+            (identical(other.pc, pc) ||
+                const DeepCollectionEquality().equals(other.pc, pc)) &&
+            (identical(other.binary, binary) ||
+                const DeepCollectionEquality().equals(other.binary, binary)) &&
+            (identical(other.rest, rest) ||
+                const DeepCollectionEquality().equals(other.rest, rest)) &&
+            (identical(other.buildId, buildId) ||
+                const DeepCollectionEquality().equals(other.buildId, buildId)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(no) ^
+      const DeepCollectionEquality().hash(pc) ^
+      const DeepCollectionEquality().hash(binary) ^
+      const DeepCollectionEquality().hash(rest) ^
+      const DeepCollectionEquality().hash(buildId);
+
+  @override
+  $AndroidCrashFrameCopyWith<AndroidCrashFrame> get copyWith =>
+      _$AndroidCrashFrameCopyWithImpl<AndroidCrashFrame>(this, _$identity);
+
+  @override
+  @optionalTypeArgs
+  Result when<Result extends Object>({
+    @required
+        Result ios(String no, String binary, int pc, String symbol,
+            @nullable int offset, String location),
+    @required
+        Result android(String no, int pc, String binary, String rest,
+            @nullable String buildId),
+    @required
+        Result custom(String no, int pc, String binary, @nullable int offset,
+            @nullable String location, @nullable String symbol),
+    @required Result dartvm(int pc, String binary, int offset),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return android(no, pc, binary, rest, buildId);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeWhen<Result extends Object>({
+    Result ios(String no, String binary, int pc, String symbol,
+        @nullable int offset, String location),
+    Result android(String no, int pc, String binary, String rest,
+        @nullable String buildId),
+    Result custom(String no, int pc, String binary, @nullable int offset,
+        @nullable String location, @nullable String symbol),
+    Result dartvm(int pc, String binary, int offset),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (android != null) {
+      return android(no, pc, binary, rest, buildId);
+    }
+    return orElse();
+  }
+
+  @override
+  @optionalTypeArgs
+  Result map<Result extends Object>({
+    @required Result ios(IosCrashFrame value),
+    @required Result android(AndroidCrashFrame value),
+    @required Result custom(CustomCrashFrame value),
+    @required Result dartvm(DartvmCrashFrame value),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return android(this);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeMap<Result extends Object>({
+    Result ios(IosCrashFrame value),
+    Result android(AndroidCrashFrame value),
+    Result custom(CustomCrashFrame value),
+    Result dartvm(DartvmCrashFrame value),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (android != null) {
+      return android(this);
+    }
+    return orElse();
+  }
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$AndroidCrashFrameToJson(this)..['runtimeType'] = 'android';
+  }
+}
+
+abstract class AndroidCrashFrame implements CrashFrame {
+  factory AndroidCrashFrame(
+      {@required String no,
+      @required int pc,
+      @required String binary,
+      @required String rest,
+      @required @nullable String buildId}) = _$AndroidCrashFrame;
+
+  factory AndroidCrashFrame.fromJson(Map<String, dynamic> json) =
+      _$AndroidCrashFrame.fromJson;
+
+  String get no;
+  @override
+
+  /// Relative PC of the frame.
+  int get pc;
+  @override
+  String get binary;
+  String get rest;
+  @nullable
+  String get buildId;
+  @override
+  $AndroidCrashFrameCopyWith<AndroidCrashFrame> get copyWith;
+}
+
+/// @nodoc
+abstract class $CustomCrashFrameCopyWith<$Res>
+    implements $CrashFrameCopyWith<$Res> {
+  factory $CustomCrashFrameCopyWith(
+          CustomCrashFrame value, $Res Function(CustomCrashFrame) then) =
+      _$CustomCrashFrameCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {String no,
+      int pc,
+      String binary,
+      @nullable int offset,
+      @nullable String location,
+      @nullable String symbol});
+}
+
+/// @nodoc
+class _$CustomCrashFrameCopyWithImpl<$Res>
+    extends _$CrashFrameCopyWithImpl<$Res>
+    implements $CustomCrashFrameCopyWith<$Res> {
+  _$CustomCrashFrameCopyWithImpl(
+      CustomCrashFrame _value, $Res Function(CustomCrashFrame) _then)
+      : super(_value, (v) => _then(v as CustomCrashFrame));
+
+  @override
+  CustomCrashFrame get _value => super._value as CustomCrashFrame;
+
+  @override
+  $Res call({
+    Object no = freezed,
+    Object pc = freezed,
+    Object binary = freezed,
+    Object offset = freezed,
+    Object location = freezed,
+    Object symbol = freezed,
+  }) {
+    return _then(CustomCrashFrame(
+      no: no == freezed ? _value.no : no as String,
+      pc: pc == freezed ? _value.pc : pc as int,
+      binary: binary == freezed ? _value.binary : binary as String,
+      offset: offset == freezed ? _value.offset : offset as int,
+      location: location == freezed ? _value.location : location as String,
+      symbol: symbol == freezed ? _value.symbol : symbol as String,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$CustomCrashFrame implements CustomCrashFrame {
+  _$CustomCrashFrame(
+      {@required this.no,
+      @required this.pc,
+      @required this.binary,
+      @required @nullable this.offset,
+      @required @nullable this.location,
+      @required @nullable this.symbol})
+      : assert(no != null),
+        assert(pc != null),
+        assert(binary != null);
+
+  factory _$CustomCrashFrame.fromJson(Map<String, dynamic> json) =>
+      _$_$CustomCrashFrameFromJson(json);
+
+  @override
+  final String no;
+  @override
+  final int pc;
+  @override
+  final String binary;
+  @override
+  @nullable
+  final int offset;
+  @override
+  @nullable
+  final String location;
+  @override
+  @nullable
+  final String symbol;
+
+  @override
+  String toString() {
+    return 'CrashFrame.custom(no: $no, pc: $pc, binary: $binary, offset: $offset, location: $location, symbol: $symbol)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is CustomCrashFrame &&
+            (identical(other.no, no) ||
+                const DeepCollectionEquality().equals(other.no, no)) &&
+            (identical(other.pc, pc) ||
+                const DeepCollectionEquality().equals(other.pc, pc)) &&
+            (identical(other.binary, binary) ||
+                const DeepCollectionEquality().equals(other.binary, binary)) &&
+            (identical(other.offset, offset) ||
+                const DeepCollectionEquality().equals(other.offset, offset)) &&
+            (identical(other.location, location) ||
+                const DeepCollectionEquality()
+                    .equals(other.location, location)) &&
+            (identical(other.symbol, symbol) ||
+                const DeepCollectionEquality().equals(other.symbol, symbol)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(no) ^
+      const DeepCollectionEquality().hash(pc) ^
+      const DeepCollectionEquality().hash(binary) ^
+      const DeepCollectionEquality().hash(offset) ^
+      const DeepCollectionEquality().hash(location) ^
+      const DeepCollectionEquality().hash(symbol);
+
+  @override
+  $CustomCrashFrameCopyWith<CustomCrashFrame> get copyWith =>
+      _$CustomCrashFrameCopyWithImpl<CustomCrashFrame>(this, _$identity);
+
+  @override
+  @optionalTypeArgs
+  Result when<Result extends Object>({
+    @required
+        Result ios(String no, String binary, int pc, String symbol,
+            @nullable int offset, String location),
+    @required
+        Result android(String no, int pc, String binary, String rest,
+            @nullable String buildId),
+    @required
+        Result custom(String no, int pc, String binary, @nullable int offset,
+            @nullable String location, @nullable String symbol),
+    @required Result dartvm(int pc, String binary, int offset),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return custom(no, pc, binary, offset, location, symbol);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeWhen<Result extends Object>({
+    Result ios(String no, String binary, int pc, String symbol,
+        @nullable int offset, String location),
+    Result android(String no, int pc, String binary, String rest,
+        @nullable String buildId),
+    Result custom(String no, int pc, String binary, @nullable int offset,
+        @nullable String location, @nullable String symbol),
+    Result dartvm(int pc, String binary, int offset),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (custom != null) {
+      return custom(no, pc, binary, offset, location, symbol);
+    }
+    return orElse();
+  }
+
+  @override
+  @optionalTypeArgs
+  Result map<Result extends Object>({
+    @required Result ios(IosCrashFrame value),
+    @required Result android(AndroidCrashFrame value),
+    @required Result custom(CustomCrashFrame value),
+    @required Result dartvm(DartvmCrashFrame value),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return custom(this);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeMap<Result extends Object>({
+    Result ios(IosCrashFrame value),
+    Result android(AndroidCrashFrame value),
+    Result custom(CustomCrashFrame value),
+    Result dartvm(DartvmCrashFrame value),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (custom != null) {
+      return custom(this);
+    }
+    return orElse();
+  }
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$CustomCrashFrameToJson(this)..['runtimeType'] = 'custom';
+  }
+}
+
+abstract class CustomCrashFrame implements CrashFrame {
+  factory CustomCrashFrame(
+      {@required String no,
+      @required int pc,
+      @required String binary,
+      @required @nullable int offset,
+      @required @nullable String location,
+      @required @nullable String symbol}) = _$CustomCrashFrame;
+
+  factory CustomCrashFrame.fromJson(Map<String, dynamic> json) =
+      _$CustomCrashFrame.fromJson;
+
+  String get no;
+  @override
+  int get pc;
+  @override
+  String get binary;
+  @nullable
+  int get offset;
+  @nullable
+  String get location;
+  @nullable
+  String get symbol;
+  @override
+  $CustomCrashFrameCopyWith<CustomCrashFrame> get copyWith;
+}
+
+/// @nodoc
+abstract class $DartvmCrashFrameCopyWith<$Res>
+    implements $CrashFrameCopyWith<$Res> {
+  factory $DartvmCrashFrameCopyWith(
+          DartvmCrashFrame value, $Res Function(DartvmCrashFrame) then) =
+      _$DartvmCrashFrameCopyWithImpl<$Res>;
+  @override
+  $Res call({int pc, String binary, int offset});
+}
+
+/// @nodoc
+class _$DartvmCrashFrameCopyWithImpl<$Res>
+    extends _$CrashFrameCopyWithImpl<$Res>
+    implements $DartvmCrashFrameCopyWith<$Res> {
+  _$DartvmCrashFrameCopyWithImpl(
+      DartvmCrashFrame _value, $Res Function(DartvmCrashFrame) _then)
+      : super(_value, (v) => _then(v as DartvmCrashFrame));
+
+  @override
+  DartvmCrashFrame get _value => super._value as DartvmCrashFrame;
+
+  @override
+  $Res call({
+    Object pc = freezed,
+    Object binary = freezed,
+    Object offset = freezed,
+  }) {
+    return _then(DartvmCrashFrame(
+      pc: pc == freezed ? _value.pc : pc as int,
+      binary: binary == freezed ? _value.binary : binary as String,
+      offset: offset == freezed ? _value.offset : offset as int,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$DartvmCrashFrame implements DartvmCrashFrame {
+  _$DartvmCrashFrame(
+      {@required this.pc, @required this.binary, @required this.offset})
+      : assert(pc != null),
+        assert(binary != null),
+        assert(offset != null);
+
+  factory _$DartvmCrashFrame.fromJson(Map<String, dynamic> json) =>
+      _$_$DartvmCrashFrameFromJson(json);
+
+  @override
+
+  /// Absolute PC of the frame.
+  final int pc;
+  @override
+
+  /// Binary which contains the given PC.
+  final String binary;
+  @override
+
+  /// Offset from load base of the binary to the PC.
+  final int offset;
+
+  @override
+  String toString() {
+    return 'CrashFrame.dartvm(pc: $pc, binary: $binary, offset: $offset)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is DartvmCrashFrame &&
+            (identical(other.pc, pc) ||
+                const DeepCollectionEquality().equals(other.pc, pc)) &&
+            (identical(other.binary, binary) ||
+                const DeepCollectionEquality().equals(other.binary, binary)) &&
+            (identical(other.offset, offset) ||
+                const DeepCollectionEquality().equals(other.offset, offset)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(pc) ^
+      const DeepCollectionEquality().hash(binary) ^
+      const DeepCollectionEquality().hash(offset);
+
+  @override
+  $DartvmCrashFrameCopyWith<DartvmCrashFrame> get copyWith =>
+      _$DartvmCrashFrameCopyWithImpl<DartvmCrashFrame>(this, _$identity);
+
+  @override
+  @optionalTypeArgs
+  Result when<Result extends Object>({
+    @required
+        Result ios(String no, String binary, int pc, String symbol,
+            @nullable int offset, String location),
+    @required
+        Result android(String no, int pc, String binary, String rest,
+            @nullable String buildId),
+    @required
+        Result custom(String no, int pc, String binary, @nullable int offset,
+            @nullable String location, @nullable String symbol),
+    @required Result dartvm(int pc, String binary, int offset),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return dartvm(pc, binary, offset);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeWhen<Result extends Object>({
+    Result ios(String no, String binary, int pc, String symbol,
+        @nullable int offset, String location),
+    Result android(String no, int pc, String binary, String rest,
+        @nullable String buildId),
+    Result custom(String no, int pc, String binary, @nullable int offset,
+        @nullable String location, @nullable String symbol),
+    Result dartvm(int pc, String binary, int offset),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (dartvm != null) {
+      return dartvm(pc, binary, offset);
+    }
+    return orElse();
+  }
+
+  @override
+  @optionalTypeArgs
+  Result map<Result extends Object>({
+    @required Result ios(IosCrashFrame value),
+    @required Result android(AndroidCrashFrame value),
+    @required Result custom(CustomCrashFrame value),
+    @required Result dartvm(DartvmCrashFrame value),
+  }) {
+    assert(ios != null);
+    assert(android != null);
+    assert(custom != null);
+    assert(dartvm != null);
+    return dartvm(this);
+  }
+
+  @override
+  @optionalTypeArgs
+  Result maybeMap<Result extends Object>({
+    Result ios(IosCrashFrame value),
+    Result android(AndroidCrashFrame value),
+    Result custom(CustomCrashFrame value),
+    Result dartvm(DartvmCrashFrame value),
+    @required Result orElse(),
+  }) {
+    assert(orElse != null);
+    if (dartvm != null) {
+      return dartvm(this);
+    }
+    return orElse();
+  }
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$DartvmCrashFrameToJson(this)..['runtimeType'] = 'dartvm';
+  }
+}
+
+abstract class DartvmCrashFrame implements CrashFrame {
+  factory DartvmCrashFrame(
+      {@required int pc,
+      @required String binary,
+      @required int offset}) = _$DartvmCrashFrame;
+
+  factory DartvmCrashFrame.fromJson(Map<String, dynamic> json) =
+      _$DartvmCrashFrame.fromJson;
+
+  @override
+
+  /// Absolute PC of the frame.
+  int get pc;
+  @override
+
+  /// Binary which contains the given PC.
+  String get binary;
+
+  /// Offset from load base of the binary to the PC.
+  int get offset;
+  @override
+  $DartvmCrashFrameCopyWith<DartvmCrashFrame> get copyWith;
+}
+
+Crash _$CrashFromJson(Map<String, dynamic> json) {
+  return _Crash.fromJson(json);
+}
+
+/// @nodoc
+class _$CrashTearOff {
+  const _$CrashTearOff();
+
+// ignore: unused_element
+  _Crash call(
+      {EngineVariant engineVariant,
+      List<CrashFrame> frames,
+      @required String format,
+      @nullable int androidMajorVersion}) {
+    return _Crash(
+      engineVariant: engineVariant,
+      frames: frames,
+      format: format,
+      androidMajorVersion: androidMajorVersion,
+    );
+  }
+
+// ignore: unused_element
+  Crash fromJson(Map<String, Object> json) {
+    return Crash.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $Crash = _$CrashTearOff();
+
+/// @nodoc
+mixin _$Crash {
+  EngineVariant get engineVariant;
+  List<CrashFrame> get frames;
+  String get format;
+  @nullable
+  int get androidMajorVersion;
+
+  Map<String, dynamic> toJson();
+  $CrashCopyWith<Crash> get copyWith;
+}
+
+/// @nodoc
+abstract class $CrashCopyWith<$Res> {
+  factory $CrashCopyWith(Crash value, $Res Function(Crash) then) =
+      _$CrashCopyWithImpl<$Res>;
+  $Res call(
+      {EngineVariant engineVariant,
+      List<CrashFrame> frames,
+      String format,
+      @nullable int androidMajorVersion});
+
+  $EngineVariantCopyWith<$Res> get engineVariant;
+}
+
+/// @nodoc
+class _$CrashCopyWithImpl<$Res> implements $CrashCopyWith<$Res> {
+  _$CrashCopyWithImpl(this._value, this._then);
+
+  final Crash _value;
+  // ignore: unused_field
+  final $Res Function(Crash) _then;
+
+  @override
+  $Res call({
+    Object engineVariant = freezed,
+    Object frames = freezed,
+    Object format = freezed,
+    Object androidMajorVersion = freezed,
+  }) {
+    return _then(_value.copyWith(
+      engineVariant: engineVariant == freezed
+          ? _value.engineVariant
+          : engineVariant as EngineVariant,
+      frames: frames == freezed ? _value.frames : frames as List<CrashFrame>,
+      format: format == freezed ? _value.format : format as String,
+      androidMajorVersion: androidMajorVersion == freezed
+          ? _value.androidMajorVersion
+          : androidMajorVersion as int,
+    ));
+  }
+
+  @override
+  $EngineVariantCopyWith<$Res> get engineVariant {
+    if (_value.engineVariant == null) {
+      return null;
+    }
+    return $EngineVariantCopyWith<$Res>(_value.engineVariant, (value) {
+      return _then(_value.copyWith(engineVariant: value));
+    });
+  }
+}
+
+/// @nodoc
+abstract class _$CrashCopyWith<$Res> implements $CrashCopyWith<$Res> {
+  factory _$CrashCopyWith(_Crash value, $Res Function(_Crash) then) =
+      __$CrashCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {EngineVariant engineVariant,
+      List<CrashFrame> frames,
+      String format,
+      @nullable int androidMajorVersion});
+
+  @override
+  $EngineVariantCopyWith<$Res> get engineVariant;
+}
+
+/// @nodoc
+class __$CrashCopyWithImpl<$Res> extends _$CrashCopyWithImpl<$Res>
+    implements _$CrashCopyWith<$Res> {
+  __$CrashCopyWithImpl(_Crash _value, $Res Function(_Crash) _then)
+      : super(_value, (v) => _then(v as _Crash));
+
+  @override
+  _Crash get _value => super._value as _Crash;
+
+  @override
+  $Res call({
+    Object engineVariant = freezed,
+    Object frames = freezed,
+    Object format = freezed,
+    Object androidMajorVersion = freezed,
+  }) {
+    return _then(_Crash(
+      engineVariant: engineVariant == freezed
+          ? _value.engineVariant
+          : engineVariant as EngineVariant,
+      frames: frames == freezed ? _value.frames : frames as List<CrashFrame>,
+      format: format == freezed ? _value.format : format as String,
+      androidMajorVersion: androidMajorVersion == freezed
+          ? _value.androidMajorVersion
+          : androidMajorVersion as int,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$_Crash implements _Crash {
+  _$_Crash(
+      {this.engineVariant,
+      this.frames,
+      @required this.format,
+      @nullable this.androidMajorVersion})
+      : assert(format != null);
+
+  factory _$_Crash.fromJson(Map<String, dynamic> json) =>
+      _$_$_CrashFromJson(json);
+
+  @override
+  final EngineVariant engineVariant;
+  @override
+  final List<CrashFrame> frames;
+  @override
+  final String format;
+  @override
+  @nullable
+  final int androidMajorVersion;
+
+  @override
+  String toString() {
+    return 'Crash(engineVariant: $engineVariant, frames: $frames, format: $format, androidMajorVersion: $androidMajorVersion)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _Crash &&
+            (identical(other.engineVariant, engineVariant) ||
+                const DeepCollectionEquality()
+                    .equals(other.engineVariant, engineVariant)) &&
+            (identical(other.frames, frames) ||
+                const DeepCollectionEquality().equals(other.frames, frames)) &&
+            (identical(other.format, format) ||
+                const DeepCollectionEquality().equals(other.format, format)) &&
+            (identical(other.androidMajorVersion, androidMajorVersion) ||
+                const DeepCollectionEquality()
+                    .equals(other.androidMajorVersion, androidMajorVersion)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(engineVariant) ^
+      const DeepCollectionEquality().hash(frames) ^
+      const DeepCollectionEquality().hash(format) ^
+      const DeepCollectionEquality().hash(androidMajorVersion);
+
+  @override
+  _$CrashCopyWith<_Crash> get copyWith =>
+      __$CrashCopyWithImpl<_Crash>(this, _$identity);
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$_CrashToJson(this);
+  }
+}
+
+abstract class _Crash implements Crash {
+  factory _Crash(
+      {EngineVariant engineVariant,
+      List<CrashFrame> frames,
+      @required String format,
+      @nullable int androidMajorVersion}) = _$_Crash;
+
+  factory _Crash.fromJson(Map<String, dynamic> json) = _$_Crash.fromJson;
+
+  @override
+  EngineVariant get engineVariant;
+  @override
+  List<CrashFrame> get frames;
+  @override
+  String get format;
+  @override
+  @nullable
+  int get androidMajorVersion;
+  @override
+  _$CrashCopyWith<_Crash> get copyWith;
+}
+
+SymbolizationResult _$SymbolizationResultFromJson(Map<String, dynamic> json) {
+  return _SymbolizationResult.fromJson(json);
+}
+
+/// @nodoc
+class _$SymbolizationResultTearOff {
+  const _$SymbolizationResultTearOff();
+
+// ignore: unused_element
+  _SymbolizationResult call(
+      {@required Crash crash,
+      @required @nullable EngineBuild engineBuild,
+      @required @nullable String symbolized,
+      List<SymbolizationNote> notes = const []}) {
+    return _SymbolizationResult(
+      crash: crash,
+      engineBuild: engineBuild,
+      symbolized: symbolized,
+      notes: notes,
+    );
+  }
+
+// ignore: unused_element
+  SymbolizationResult fromJson(Map<String, Object> json) {
+    return SymbolizationResult.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $SymbolizationResult = _$SymbolizationResultTearOff();
+
+/// @nodoc
+mixin _$SymbolizationResult {
+  Crash get crash;
+  @nullable
+  EngineBuild get engineBuild;
+
+  /// Symbolization result - not null if symbolization succeeded.
+  @nullable
+  String get symbolized;
+  List<SymbolizationNote> get notes;
+
+  Map<String, dynamic> toJson();
+  $SymbolizationResultCopyWith<SymbolizationResult> get copyWith;
+}
+
+/// @nodoc
+abstract class $SymbolizationResultCopyWith<$Res> {
+  factory $SymbolizationResultCopyWith(
+          SymbolizationResult value, $Res Function(SymbolizationResult) then) =
+      _$SymbolizationResultCopyWithImpl<$Res>;
+  $Res call(
+      {Crash crash,
+      @nullable EngineBuild engineBuild,
+      @nullable String symbolized,
+      List<SymbolizationNote> notes});
+
+  $CrashCopyWith<$Res> get crash;
+  $EngineBuildCopyWith<$Res> get engineBuild;
+}
+
+/// @nodoc
+class _$SymbolizationResultCopyWithImpl<$Res>
+    implements $SymbolizationResultCopyWith<$Res> {
+  _$SymbolizationResultCopyWithImpl(this._value, this._then);
+
+  final SymbolizationResult _value;
+  // ignore: unused_field
+  final $Res Function(SymbolizationResult) _then;
+
+  @override
+  $Res call({
+    Object crash = freezed,
+    Object engineBuild = freezed,
+    Object symbolized = freezed,
+    Object notes = freezed,
+  }) {
+    return _then(_value.copyWith(
+      crash: crash == freezed ? _value.crash : crash as Crash,
+      engineBuild: engineBuild == freezed
+          ? _value.engineBuild
+          : engineBuild as EngineBuild,
+      symbolized:
+          symbolized == freezed ? _value.symbolized : symbolized as String,
+      notes: notes == freezed ? _value.notes : notes as List<SymbolizationNote>,
+    ));
+  }
+
+  @override
+  $CrashCopyWith<$Res> get crash {
+    if (_value.crash == null) {
+      return null;
+    }
+    return $CrashCopyWith<$Res>(_value.crash, (value) {
+      return _then(_value.copyWith(crash: value));
+    });
+  }
+
+  @override
+  $EngineBuildCopyWith<$Res> get engineBuild {
+    if (_value.engineBuild == null) {
+      return null;
+    }
+    return $EngineBuildCopyWith<$Res>(_value.engineBuild, (value) {
+      return _then(_value.copyWith(engineBuild: value));
+    });
+  }
+}
+
+/// @nodoc
+abstract class _$SymbolizationResultCopyWith<$Res>
+    implements $SymbolizationResultCopyWith<$Res> {
+  factory _$SymbolizationResultCopyWith(_SymbolizationResult value,
+          $Res Function(_SymbolizationResult) then) =
+      __$SymbolizationResultCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {Crash crash,
+      @nullable EngineBuild engineBuild,
+      @nullable String symbolized,
+      List<SymbolizationNote> notes});
+
+  @override
+  $CrashCopyWith<$Res> get crash;
+  @override
+  $EngineBuildCopyWith<$Res> get engineBuild;
+}
+
+/// @nodoc
+class __$SymbolizationResultCopyWithImpl<$Res>
+    extends _$SymbolizationResultCopyWithImpl<$Res>
+    implements _$SymbolizationResultCopyWith<$Res> {
+  __$SymbolizationResultCopyWithImpl(
+      _SymbolizationResult _value, $Res Function(_SymbolizationResult) _then)
+      : super(_value, (v) => _then(v as _SymbolizationResult));
+
+  @override
+  _SymbolizationResult get _value => super._value as _SymbolizationResult;
+
+  @override
+  $Res call({
+    Object crash = freezed,
+    Object engineBuild = freezed,
+    Object symbolized = freezed,
+    Object notes = freezed,
+  }) {
+    return _then(_SymbolizationResult(
+      crash: crash == freezed ? _value.crash : crash as Crash,
+      engineBuild: engineBuild == freezed
+          ? _value.engineBuild
+          : engineBuild as EngineBuild,
+      symbolized:
+          symbolized == freezed ? _value.symbolized : symbolized as String,
+      notes: notes == freezed ? _value.notes : notes as List<SymbolizationNote>,
+    ));
+  }
+}
+
+@JsonSerializable(explicitToJson: true)
+
+/// @nodoc
+class _$_SymbolizationResult implements _SymbolizationResult {
+  _$_SymbolizationResult(
+      {@required this.crash,
+      @required @nullable this.engineBuild,
+      @required @nullable this.symbolized,
+      this.notes = const []})
+      : assert(crash != null),
+        assert(notes != null);
+
+  factory _$_SymbolizationResult.fromJson(Map<String, dynamic> json) =>
+      _$_$_SymbolizationResultFromJson(json);
+
+  @override
+  final Crash crash;
+  @override
+  @nullable
+  final EngineBuild engineBuild;
+  @override
+
+  /// Symbolization result - not null if symbolization succeeded.
+  @nullable
+  final String symbolized;
+  @JsonKey(defaultValue: const [])
+  @override
+  final List<SymbolizationNote> notes;
+
+  @override
+  String toString() {
+    return 'SymbolizationResult(crash: $crash, engineBuild: $engineBuild, symbolized: $symbolized, notes: $notes)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _SymbolizationResult &&
+            (identical(other.crash, crash) ||
+                const DeepCollectionEquality().equals(other.crash, crash)) &&
+            (identical(other.engineBuild, engineBuild) ||
+                const DeepCollectionEquality()
+                    .equals(other.engineBuild, engineBuild)) &&
+            (identical(other.symbolized, symbolized) ||
+                const DeepCollectionEquality()
+                    .equals(other.symbolized, symbolized)) &&
+            (identical(other.notes, notes) ||
+                const DeepCollectionEquality().equals(other.notes, notes)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(crash) ^
+      const DeepCollectionEquality().hash(engineBuild) ^
+      const DeepCollectionEquality().hash(symbolized) ^
+      const DeepCollectionEquality().hash(notes);
+
+  @override
+  _$SymbolizationResultCopyWith<_SymbolizationResult> get copyWith =>
+      __$SymbolizationResultCopyWithImpl<_SymbolizationResult>(
+          this, _$identity);
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$_SymbolizationResultToJson(this);
+  }
+}
+
+abstract class _SymbolizationResult implements SymbolizationResult {
+  factory _SymbolizationResult(
+      {@required Crash crash,
+      @required @nullable EngineBuild engineBuild,
+      @required @nullable String symbolized,
+      List<SymbolizationNote> notes}) = _$_SymbolizationResult;
+
+  factory _SymbolizationResult.fromJson(Map<String, dynamic> json) =
+      _$_SymbolizationResult.fromJson;
+
+  @override
+  Crash get crash;
+  @override
+  @nullable
+  EngineBuild get engineBuild;
+  @override
+
+  /// Symbolization result - not null if symbolization succeeded.
+  @nullable
+  String get symbolized;
+  @override
+  List<SymbolizationNote> get notes;
+  @override
+  _$SymbolizationResultCopyWith<_SymbolizationResult> get copyWith;
+}
+
+SymbolizationNote _$SymbolizationNoteFromJson(Map<String, dynamic> json) {
+  return _SymbolizationNote.fromJson(json);
+}
+
+/// @nodoc
+class _$SymbolizationNoteTearOff {
+  const _$SymbolizationNoteTearOff();
+
+// ignore: unused_element
+  _SymbolizationNote call(
+      {@required SymbolizationNoteKind kind, @nullable String message}) {
+    return _SymbolizationNote(
+      kind: kind,
+      message: message,
+    );
+  }
+
+// ignore: unused_element
+  SymbolizationNote fromJson(Map<String, Object> json) {
+    return SymbolizationNote.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $SymbolizationNote = _$SymbolizationNoteTearOff();
+
+/// @nodoc
+mixin _$SymbolizationNote {
+  SymbolizationNoteKind get kind;
+  @nullable
+  String get message;
+
+  Map<String, dynamic> toJson();
+  $SymbolizationNoteCopyWith<SymbolizationNote> get copyWith;
+}
+
+/// @nodoc
+abstract class $SymbolizationNoteCopyWith<$Res> {
+  factory $SymbolizationNoteCopyWith(
+          SymbolizationNote value, $Res Function(SymbolizationNote) then) =
+      _$SymbolizationNoteCopyWithImpl<$Res>;
+  $Res call({SymbolizationNoteKind kind, @nullable String message});
+}
+
+/// @nodoc
+class _$SymbolizationNoteCopyWithImpl<$Res>
+    implements $SymbolizationNoteCopyWith<$Res> {
+  _$SymbolizationNoteCopyWithImpl(this._value, this._then);
+
+  final SymbolizationNote _value;
+  // ignore: unused_field
+  final $Res Function(SymbolizationNote) _then;
+
+  @override
+  $Res call({
+    Object kind = freezed,
+    Object message = freezed,
+  }) {
+    return _then(_value.copyWith(
+      kind: kind == freezed ? _value.kind : kind as SymbolizationNoteKind,
+      message: message == freezed ? _value.message : message as String,
+    ));
+  }
+}
+
+/// @nodoc
+abstract class _$SymbolizationNoteCopyWith<$Res>
+    implements $SymbolizationNoteCopyWith<$Res> {
+  factory _$SymbolizationNoteCopyWith(
+          _SymbolizationNote value, $Res Function(_SymbolizationNote) then) =
+      __$SymbolizationNoteCopyWithImpl<$Res>;
+  @override
+  $Res call({SymbolizationNoteKind kind, @nullable String message});
+}
+
+/// @nodoc
+class __$SymbolizationNoteCopyWithImpl<$Res>
+    extends _$SymbolizationNoteCopyWithImpl<$Res>
+    implements _$SymbolizationNoteCopyWith<$Res> {
+  __$SymbolizationNoteCopyWithImpl(
+      _SymbolizationNote _value, $Res Function(_SymbolizationNote) _then)
+      : super(_value, (v) => _then(v as _SymbolizationNote));
+
+  @override
+  _SymbolizationNote get _value => super._value as _SymbolizationNote;
+
+  @override
+  $Res call({
+    Object kind = freezed,
+    Object message = freezed,
+  }) {
+    return _then(_SymbolizationNote(
+      kind: kind == freezed ? _value.kind : kind as SymbolizationNoteKind,
+      message: message == freezed ? _value.message : message as String,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$_SymbolizationNote implements _SymbolizationNote {
+  _$_SymbolizationNote({@required this.kind, @nullable this.message})
+      : assert(kind != null);
+
+  factory _$_SymbolizationNote.fromJson(Map<String, dynamic> json) =>
+      _$_$_SymbolizationNoteFromJson(json);
+
+  @override
+  final SymbolizationNoteKind kind;
+  @override
+  @nullable
+  final String message;
+
+  @override
+  String toString() {
+    return 'SymbolizationNote(kind: $kind, message: $message)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _SymbolizationNote &&
+            (identical(other.kind, kind) ||
+                const DeepCollectionEquality().equals(other.kind, kind)) &&
+            (identical(other.message, message) ||
+                const DeepCollectionEquality().equals(other.message, message)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(kind) ^
+      const DeepCollectionEquality().hash(message);
+
+  @override
+  _$SymbolizationNoteCopyWith<_SymbolizationNote> get copyWith =>
+      __$SymbolizationNoteCopyWithImpl<_SymbolizationNote>(this, _$identity);
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$_SymbolizationNoteToJson(this);
+  }
+}
+
+abstract class _SymbolizationNote implements SymbolizationNote {
+  factory _SymbolizationNote(
+      {@required SymbolizationNoteKind kind,
+      @nullable String message}) = _$_SymbolizationNote;
+
+  factory _SymbolizationNote.fromJson(Map<String, dynamic> json) =
+      _$_SymbolizationNote.fromJson;
+
+  @override
+  SymbolizationNoteKind get kind;
+  @override
+  @nullable
+  String get message;
+  @override
+  _$SymbolizationNoteCopyWith<_SymbolizationNote> get copyWith;
+}
+
+/// @nodoc
+class _$BotCommandTearOff {
+  const _$BotCommandTearOff();
+
+// ignore: unused_element
+  _BotCommand call(
+      {@required SymbolizationOverrides overrides,
+      @required bool symbolizeThis,
+      @required Set<String> worklist}) {
+    return _BotCommand(
+      overrides: overrides,
+      symbolizeThis: symbolizeThis,
+      worklist: worklist,
+    );
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $BotCommand = _$BotCommandTearOff();
+
+/// @nodoc
+mixin _$BotCommand {
+  /// Overrides that should be used for symbolization. These overrides
+  /// replace or augment information available in the comments themselves.
+  SymbolizationOverrides get overrides;
+
+  /// [true] if the user requested to symbolize the comment that contains
+  /// command.
+  bool get symbolizeThis;
+
+  /// List of references to comments which need to be symbolized. Each reference
+  /// is either in `issue-id` or in `issuecomment-id` format.
+  Set<String> get worklist;
+
+  $BotCommandCopyWith<BotCommand> get copyWith;
+}
+
+/// @nodoc
+abstract class $BotCommandCopyWith<$Res> {
+  factory $BotCommandCopyWith(
+          BotCommand value, $Res Function(BotCommand) then) =
+      _$BotCommandCopyWithImpl<$Res>;
+  $Res call(
+      {SymbolizationOverrides overrides,
+      bool symbolizeThis,
+      Set<String> worklist});
+
+  $SymbolizationOverridesCopyWith<$Res> get overrides;
+}
+
+/// @nodoc
+class _$BotCommandCopyWithImpl<$Res> implements $BotCommandCopyWith<$Res> {
+  _$BotCommandCopyWithImpl(this._value, this._then);
+
+  final BotCommand _value;
+  // ignore: unused_field
+  final $Res Function(BotCommand) _then;
+
+  @override
+  $Res call({
+    Object overrides = freezed,
+    Object symbolizeThis = freezed,
+    Object worklist = freezed,
+  }) {
+    return _then(_value.copyWith(
+      overrides: overrides == freezed
+          ? _value.overrides
+          : overrides as SymbolizationOverrides,
+      symbolizeThis: symbolizeThis == freezed
+          ? _value.symbolizeThis
+          : symbolizeThis as bool,
+      worklist: worklist == freezed ? _value.worklist : worklist as Set<String>,
+    ));
+  }
+
+  @override
+  $SymbolizationOverridesCopyWith<$Res> get overrides {
+    if (_value.overrides == null) {
+      return null;
+    }
+    return $SymbolizationOverridesCopyWith<$Res>(_value.overrides, (value) {
+      return _then(_value.copyWith(overrides: value));
+    });
+  }
+}
+
+/// @nodoc
+abstract class _$BotCommandCopyWith<$Res> implements $BotCommandCopyWith<$Res> {
+  factory _$BotCommandCopyWith(
+          _BotCommand value, $Res Function(_BotCommand) then) =
+      __$BotCommandCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {SymbolizationOverrides overrides,
+      bool symbolizeThis,
+      Set<String> worklist});
+
+  @override
+  $SymbolizationOverridesCopyWith<$Res> get overrides;
+}
+
+/// @nodoc
+class __$BotCommandCopyWithImpl<$Res> extends _$BotCommandCopyWithImpl<$Res>
+    implements _$BotCommandCopyWith<$Res> {
+  __$BotCommandCopyWithImpl(
+      _BotCommand _value, $Res Function(_BotCommand) _then)
+      : super(_value, (v) => _then(v as _BotCommand));
+
+  @override
+  _BotCommand get _value => super._value as _BotCommand;
+
+  @override
+  $Res call({
+    Object overrides = freezed,
+    Object symbolizeThis = freezed,
+    Object worklist = freezed,
+  }) {
+    return _then(_BotCommand(
+      overrides: overrides == freezed
+          ? _value.overrides
+          : overrides as SymbolizationOverrides,
+      symbolizeThis: symbolizeThis == freezed
+          ? _value.symbolizeThis
+          : symbolizeThis as bool,
+      worklist: worklist == freezed ? _value.worklist : worklist as Set<String>,
+    ));
+  }
+}
+
+/// @nodoc
+class _$_BotCommand implements _BotCommand {
+  _$_BotCommand(
+      {@required this.overrides,
+      @required this.symbolizeThis,
+      @required this.worklist})
+      : assert(overrides != null),
+        assert(symbolizeThis != null),
+        assert(worklist != null);
+
+  @override
+
+  /// Overrides that should be used for symbolization. These overrides
+  /// replace or augment information available in the comments themselves.
+  final SymbolizationOverrides overrides;
+  @override
+
+  /// [true] if the user requested to symbolize the comment that contains
+  /// command.
+  final bool symbolizeThis;
+  @override
+
+  /// List of references to comments which need to be symbolized. Each reference
+  /// is either in `issue-id` or in `issuecomment-id` format.
+  final Set<String> worklist;
+
+  @override
+  String toString() {
+    return 'BotCommand(overrides: $overrides, symbolizeThis: $symbolizeThis, worklist: $worklist)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _BotCommand &&
+            (identical(other.overrides, overrides) ||
+                const DeepCollectionEquality()
+                    .equals(other.overrides, overrides)) &&
+            (identical(other.symbolizeThis, symbolizeThis) ||
+                const DeepCollectionEquality()
+                    .equals(other.symbolizeThis, symbolizeThis)) &&
+            (identical(other.worklist, worklist) ||
+                const DeepCollectionEquality()
+                    .equals(other.worklist, worklist)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(overrides) ^
+      const DeepCollectionEquality().hash(symbolizeThis) ^
+      const DeepCollectionEquality().hash(worklist);
+
+  @override
+  _$BotCommandCopyWith<_BotCommand> get copyWith =>
+      __$BotCommandCopyWithImpl<_BotCommand>(this, _$identity);
+}
+
+abstract class _BotCommand implements BotCommand {
+  factory _BotCommand(
+      {@required SymbolizationOverrides overrides,
+      @required bool symbolizeThis,
+      @required Set<String> worklist}) = _$_BotCommand;
+
+  @override
+
+  /// Overrides that should be used for symbolization. These overrides
+  /// replace or augment information available in the comments themselves.
+  SymbolizationOverrides get overrides;
+  @override
+
+  /// [true] if the user requested to symbolize the comment that contains
+  /// command.
+  bool get symbolizeThis;
+  @override
+
+  /// List of references to comments which need to be symbolized. Each reference
+  /// is either in `issue-id` or in `issuecomment-id` format.
+  Set<String> get worklist;
+  @override
+  _$BotCommandCopyWith<_BotCommand> get copyWith;
+}
+
+/// @nodoc
+class _$SymbolizationOverridesTearOff {
+  const _$SymbolizationOverridesTearOff();
+
+// ignore: unused_element
+  _SymbolizationOverrides call(
+      {@nullable String engineHash,
+      @nullable String flutterVersion,
+      @nullable String arch,
+      @nullable String mode,
+      bool force = false,
+      @nullable String format,
+      @nullable String os}) {
+    return _SymbolizationOverrides(
+      engineHash: engineHash,
+      flutterVersion: flutterVersion,
+      arch: arch,
+      mode: mode,
+      force: force,
+      format: format,
+      os: os,
+    );
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $SymbolizationOverrides = _$SymbolizationOverridesTearOff();
+
+/// @nodoc
+mixin _$SymbolizationOverrides {
+  @nullable
+  String get engineHash;
+  @nullable
+  String get flutterVersion;
+  @nullable
+  String get arch;
+  @nullable
+  String get mode;
+  bool get force;
+  @nullable
+  String get format;
+  @nullable
+  String get os;
+
+  $SymbolizationOverridesCopyWith<SymbolizationOverrides> get copyWith;
+}
+
+/// @nodoc
+abstract class $SymbolizationOverridesCopyWith<$Res> {
+  factory $SymbolizationOverridesCopyWith(SymbolizationOverrides value,
+          $Res Function(SymbolizationOverrides) then) =
+      _$SymbolizationOverridesCopyWithImpl<$Res>;
+  $Res call(
+      {@nullable String engineHash,
+      @nullable String flutterVersion,
+      @nullable String arch,
+      @nullable String mode,
+      bool force,
+      @nullable String format,
+      @nullable String os});
+}
+
+/// @nodoc
+class _$SymbolizationOverridesCopyWithImpl<$Res>
+    implements $SymbolizationOverridesCopyWith<$Res> {
+  _$SymbolizationOverridesCopyWithImpl(this._value, this._then);
+
+  final SymbolizationOverrides _value;
+  // ignore: unused_field
+  final $Res Function(SymbolizationOverrides) _then;
+
+  @override
+  $Res call({
+    Object engineHash = freezed,
+    Object flutterVersion = freezed,
+    Object arch = freezed,
+    Object mode = freezed,
+    Object force = freezed,
+    Object format = freezed,
+    Object os = freezed,
+  }) {
+    return _then(_value.copyWith(
+      engineHash:
+          engineHash == freezed ? _value.engineHash : engineHash as String,
+      flutterVersion: flutterVersion == freezed
+          ? _value.flutterVersion
+          : flutterVersion as String,
+      arch: arch == freezed ? _value.arch : arch as String,
+      mode: mode == freezed ? _value.mode : mode as String,
+      force: force == freezed ? _value.force : force as bool,
+      format: format == freezed ? _value.format : format as String,
+      os: os == freezed ? _value.os : os as String,
+    ));
+  }
+}
+
+/// @nodoc
+abstract class _$SymbolizationOverridesCopyWith<$Res>
+    implements $SymbolizationOverridesCopyWith<$Res> {
+  factory _$SymbolizationOverridesCopyWith(_SymbolizationOverrides value,
+          $Res Function(_SymbolizationOverrides) then) =
+      __$SymbolizationOverridesCopyWithImpl<$Res>;
+  @override
+  $Res call(
+      {@nullable String engineHash,
+      @nullable String flutterVersion,
+      @nullable String arch,
+      @nullable String mode,
+      bool force,
+      @nullable String format,
+      @nullable String os});
+}
+
+/// @nodoc
+class __$SymbolizationOverridesCopyWithImpl<$Res>
+    extends _$SymbolizationOverridesCopyWithImpl<$Res>
+    implements _$SymbolizationOverridesCopyWith<$Res> {
+  __$SymbolizationOverridesCopyWithImpl(_SymbolizationOverrides _value,
+      $Res Function(_SymbolizationOverrides) _then)
+      : super(_value, (v) => _then(v as _SymbolizationOverrides));
+
+  @override
+  _SymbolizationOverrides get _value => super._value as _SymbolizationOverrides;
+
+  @override
+  $Res call({
+    Object engineHash = freezed,
+    Object flutterVersion = freezed,
+    Object arch = freezed,
+    Object mode = freezed,
+    Object force = freezed,
+    Object format = freezed,
+    Object os = freezed,
+  }) {
+    return _then(_SymbolizationOverrides(
+      engineHash:
+          engineHash == freezed ? _value.engineHash : engineHash as String,
+      flutterVersion: flutterVersion == freezed
+          ? _value.flutterVersion
+          : flutterVersion as String,
+      arch: arch == freezed ? _value.arch : arch as String,
+      mode: mode == freezed ? _value.mode : mode as String,
+      force: force == freezed ? _value.force : force as bool,
+      format: format == freezed ? _value.format : format as String,
+      os: os == freezed ? _value.os : os as String,
+    ));
+  }
+}
+
+/// @nodoc
+class _$_SymbolizationOverrides implements _SymbolizationOverrides {
+  _$_SymbolizationOverrides(
+      {@nullable this.engineHash,
+      @nullable this.flutterVersion,
+      @nullable this.arch,
+      @nullable this.mode,
+      this.force = false,
+      @nullable this.format,
+      @nullable this.os})
+      : assert(force != null);
+
+  @override
+  @nullable
+  final String engineHash;
+  @override
+  @nullable
+  final String flutterVersion;
+  @override
+  @nullable
+  final String arch;
+  @override
+  @nullable
+  final String mode;
+  @JsonKey(defaultValue: false)
+  @override
+  final bool force;
+  @override
+  @nullable
+  final String format;
+  @override
+  @nullable
+  final String os;
+
+  @override
+  String toString() {
+    return 'SymbolizationOverrides(engineHash: $engineHash, flutterVersion: $flutterVersion, arch: $arch, mode: $mode, force: $force, format: $format, os: $os)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _SymbolizationOverrides &&
+            (identical(other.engineHash, engineHash) ||
+                const DeepCollectionEquality()
+                    .equals(other.engineHash, engineHash)) &&
+            (identical(other.flutterVersion, flutterVersion) ||
+                const DeepCollectionEquality()
+                    .equals(other.flutterVersion, flutterVersion)) &&
+            (identical(other.arch, arch) ||
+                const DeepCollectionEquality().equals(other.arch, arch)) &&
+            (identical(other.mode, mode) ||
+                const DeepCollectionEquality().equals(other.mode, mode)) &&
+            (identical(other.force, force) ||
+                const DeepCollectionEquality().equals(other.force, force)) &&
+            (identical(other.format, format) ||
+                const DeepCollectionEquality().equals(other.format, format)) &&
+            (identical(other.os, os) ||
+                const DeepCollectionEquality().equals(other.os, os)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(engineHash) ^
+      const DeepCollectionEquality().hash(flutterVersion) ^
+      const DeepCollectionEquality().hash(arch) ^
+      const DeepCollectionEquality().hash(mode) ^
+      const DeepCollectionEquality().hash(force) ^
+      const DeepCollectionEquality().hash(format) ^
+      const DeepCollectionEquality().hash(os);
+
+  @override
+  _$SymbolizationOverridesCopyWith<_SymbolizationOverrides> get copyWith =>
+      __$SymbolizationOverridesCopyWithImpl<_SymbolizationOverrides>(
+          this, _$identity);
+}
+
+abstract class _SymbolizationOverrides implements SymbolizationOverrides {
+  factory _SymbolizationOverrides(
+      {@nullable String engineHash,
+      @nullable String flutterVersion,
+      @nullable String arch,
+      @nullable String mode,
+      bool force,
+      @nullable String format,
+      @nullable String os}) = _$_SymbolizationOverrides;
+
+  @override
+  @nullable
+  String get engineHash;
+  @override
+  @nullable
+  String get flutterVersion;
+  @override
+  @nullable
+  String get arch;
+  @override
+  @nullable
+  String get mode;
+  @override
+  bool get force;
+  @override
+  @nullable
+  String get format;
+  @override
+  @nullable
+  String get os;
+  @override
+  _$SymbolizationOverridesCopyWith<_SymbolizationOverrides> get copyWith;
+}
+
+ServerConfig _$ServerConfigFromJson(Map<String, dynamic> json) {
+  return _ServerConfig.fromJson(json);
+}
+
+/// @nodoc
+class _$ServerConfigTearOff {
+  const _$ServerConfigTearOff();
+
+// ignore: unused_element
+  _ServerConfig call(
+      {String githubToken, String sendgridToken, String failureEmail}) {
+    return _ServerConfig(
+      githubToken: githubToken,
+      sendgridToken: sendgridToken,
+      failureEmail: failureEmail,
+    );
+  }
+
+// ignore: unused_element
+  ServerConfig fromJson(Map<String, Object> json) {
+    return ServerConfig.fromJson(json);
+  }
+}
+
+/// @nodoc
+// ignore: unused_element
+const $ServerConfig = _$ServerConfigTearOff();
+
+/// @nodoc
+mixin _$ServerConfig {
+  String get githubToken;
+  String get sendgridToken;
+  String get failureEmail;
+
+  Map<String, dynamic> toJson();
+  $ServerConfigCopyWith<ServerConfig> get copyWith;
+}
+
+/// @nodoc
+abstract class $ServerConfigCopyWith<$Res> {
+  factory $ServerConfigCopyWith(
+          ServerConfig value, $Res Function(ServerConfig) then) =
+      _$ServerConfigCopyWithImpl<$Res>;
+  $Res call({String githubToken, String sendgridToken, String failureEmail});
+}
+
+/// @nodoc
+class _$ServerConfigCopyWithImpl<$Res> implements $ServerConfigCopyWith<$Res> {
+  _$ServerConfigCopyWithImpl(this._value, this._then);
+
+  final ServerConfig _value;
+  // ignore: unused_field
+  final $Res Function(ServerConfig) _then;
+
+  @override
+  $Res call({
+    Object githubToken = freezed,
+    Object sendgridToken = freezed,
+    Object failureEmail = freezed,
+  }) {
+    return _then(_value.copyWith(
+      githubToken:
+          githubToken == freezed ? _value.githubToken : githubToken as String,
+      sendgridToken: sendgridToken == freezed
+          ? _value.sendgridToken
+          : sendgridToken as String,
+      failureEmail: failureEmail == freezed
+          ? _value.failureEmail
+          : failureEmail as String,
+    ));
+  }
+}
+
+/// @nodoc
+abstract class _$ServerConfigCopyWith<$Res>
+    implements $ServerConfigCopyWith<$Res> {
+  factory _$ServerConfigCopyWith(
+          _ServerConfig value, $Res Function(_ServerConfig) then) =
+      __$ServerConfigCopyWithImpl<$Res>;
+  @override
+  $Res call({String githubToken, String sendgridToken, String failureEmail});
+}
+
+/// @nodoc
+class __$ServerConfigCopyWithImpl<$Res> extends _$ServerConfigCopyWithImpl<$Res>
+    implements _$ServerConfigCopyWith<$Res> {
+  __$ServerConfigCopyWithImpl(
+      _ServerConfig _value, $Res Function(_ServerConfig) _then)
+      : super(_value, (v) => _then(v as _ServerConfig));
+
+  @override
+  _ServerConfig get _value => super._value as _ServerConfig;
+
+  @override
+  $Res call({
+    Object githubToken = freezed,
+    Object sendgridToken = freezed,
+    Object failureEmail = freezed,
+  }) {
+    return _then(_ServerConfig(
+      githubToken:
+          githubToken == freezed ? _value.githubToken : githubToken as String,
+      sendgridToken: sendgridToken == freezed
+          ? _value.sendgridToken
+          : sendgridToken as String,
+      failureEmail: failureEmail == freezed
+          ? _value.failureEmail
+          : failureEmail as String,
+    ));
+  }
+}
+
+@JsonSerializable()
+
+/// @nodoc
+class _$_ServerConfig implements _ServerConfig {
+  _$_ServerConfig({this.githubToken, this.sendgridToken, this.failureEmail});
+
+  factory _$_ServerConfig.fromJson(Map<String, dynamic> json) =>
+      _$_$_ServerConfigFromJson(json);
+
+  @override
+  final String githubToken;
+  @override
+  final String sendgridToken;
+  @override
+  final String failureEmail;
+
+  @override
+  String toString() {
+    return 'ServerConfig(githubToken: $githubToken, sendgridToken: $sendgridToken, failureEmail: $failureEmail)';
+  }
+
+  @override
+  bool operator ==(dynamic other) {
+    return identical(this, other) ||
+        (other is _ServerConfig &&
+            (identical(other.githubToken, githubToken) ||
+                const DeepCollectionEquality()
+                    .equals(other.githubToken, githubToken)) &&
+            (identical(other.sendgridToken, sendgridToken) ||
+                const DeepCollectionEquality()
+                    .equals(other.sendgridToken, sendgridToken)) &&
+            (identical(other.failureEmail, failureEmail) ||
+                const DeepCollectionEquality()
+                    .equals(other.failureEmail, failureEmail)));
+  }
+
+  @override
+  int get hashCode =>
+      runtimeType.hashCode ^
+      const DeepCollectionEquality().hash(githubToken) ^
+      const DeepCollectionEquality().hash(sendgridToken) ^
+      const DeepCollectionEquality().hash(failureEmail);
+
+  @override
+  _$ServerConfigCopyWith<_ServerConfig> get copyWith =>
+      __$ServerConfigCopyWithImpl<_ServerConfig>(this, _$identity);
+
+  @override
+  Map<String, dynamic> toJson() {
+    return _$_$_ServerConfigToJson(this);
+  }
+}
+
+abstract class _ServerConfig implements ServerConfig {
+  factory _ServerConfig(
+      {String githubToken,
+      String sendgridToken,
+      String failureEmail}) = _$_ServerConfig;
+
+  factory _ServerConfig.fromJson(Map<String, dynamic> json) =
+      _$_ServerConfig.fromJson;
+
+  @override
+  String get githubToken;
+  @override
+  String get sendgridToken;
+  @override
+  String get failureEmail;
+  @override
+  _$ServerConfigCopyWith<_ServerConfig> get copyWith;
+}
diff --git a/github-label-notifier/symbolizer/lib/model.g.dart b/github-label-notifier/symbolizer/lib/model.g.dart
new file mode 100644
index 0000000..cb3e3af
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/model.g.dart
@@ -0,0 +1,239 @@
+// GENERATED CODE - DO NOT MODIFY BY HAND
+
+part of symbolizer.model;
+
+// **************************************************************************
+// JsonSerializableGenerator
+// **************************************************************************
+
+_$_EngineVariant _$_$_EngineVariantFromJson(Map<String, dynamic> json) {
+  return _$_EngineVariant(
+    os: json['os'] as String,
+    arch: json['arch'] as String,
+    mode: json['mode'] as String,
+  );
+}
+
+Map<String, dynamic> _$_$_EngineVariantToJson(_$_EngineVariant instance) =>
+    <String, dynamic>{
+      'os': instance.os,
+      'arch': instance.arch,
+      'mode': instance.mode,
+    };
+
+_$_EngineBuild _$_$_EngineBuildFromJson(Map<String, dynamic> json) {
+  return _$_EngineBuild(
+    engineHash: json['engineHash'] as String,
+    variant: json['variant'] == null
+        ? null
+        : EngineVariant.fromJson(json['variant'] as Map<String, dynamic>),
+  );
+}
+
+Map<String, dynamic> _$_$_EngineBuildToJson(_$_EngineBuild instance) =>
+    <String, dynamic>{
+      'engineHash': instance.engineHash,
+      'variant': instance.variant,
+    };
+
+_$IosCrashFrame _$_$IosCrashFrameFromJson(Map<String, dynamic> json) {
+  return _$IosCrashFrame(
+    no: json['no'] as String,
+    binary: json['binary'] as String,
+    pc: json['pc'] as int,
+    symbol: json['symbol'] as String,
+    offset: json['offset'] as int,
+    location: json['location'] as String,
+  );
+}
+
+Map<String, dynamic> _$_$IosCrashFrameToJson(_$IosCrashFrame instance) =>
+    <String, dynamic>{
+      'no': instance.no,
+      'binary': instance.binary,
+      'pc': instance.pc,
+      'symbol': instance.symbol,
+      'offset': instance.offset,
+      'location': instance.location,
+    };
+
+_$AndroidCrashFrame _$_$AndroidCrashFrameFromJson(Map<String, dynamic> json) {
+  return _$AndroidCrashFrame(
+    no: json['no'] as String,
+    pc: json['pc'] as int,
+    binary: json['binary'] as String,
+    rest: json['rest'] as String,
+    buildId: json['buildId'] as String,
+  );
+}
+
+Map<String, dynamic> _$_$AndroidCrashFrameToJson(
+        _$AndroidCrashFrame instance) =>
+    <String, dynamic>{
+      'no': instance.no,
+      'pc': instance.pc,
+      'binary': instance.binary,
+      'rest': instance.rest,
+      'buildId': instance.buildId,
+    };
+
+_$CustomCrashFrame _$_$CustomCrashFrameFromJson(Map<String, dynamic> json) {
+  return _$CustomCrashFrame(
+    no: json['no'] as String,
+    pc: json['pc'] as int,
+    binary: json['binary'] as String,
+    offset: json['offset'] as int,
+    location: json['location'] as String,
+    symbol: json['symbol'] as String,
+  );
+}
+
+Map<String, dynamic> _$_$CustomCrashFrameToJson(_$CustomCrashFrame instance) =>
+    <String, dynamic>{
+      'no': instance.no,
+      'pc': instance.pc,
+      'binary': instance.binary,
+      'offset': instance.offset,
+      'location': instance.location,
+      'symbol': instance.symbol,
+    };
+
+_$DartvmCrashFrame _$_$DartvmCrashFrameFromJson(Map<String, dynamic> json) {
+  return _$DartvmCrashFrame(
+    pc: json['pc'] as int,
+    binary: json['binary'] as String,
+    offset: json['offset'] as int,
+  );
+}
+
+Map<String, dynamic> _$_$DartvmCrashFrameToJson(_$DartvmCrashFrame instance) =>
+    <String, dynamic>{
+      'pc': instance.pc,
+      'binary': instance.binary,
+      'offset': instance.offset,
+    };
+
+_$_Crash _$_$_CrashFromJson(Map<String, dynamic> json) {
+  return _$_Crash(
+    engineVariant: json['engineVariant'] == null
+        ? null
+        : EngineVariant.fromJson(json['engineVariant'] as Map<String, dynamic>),
+    frames: (json['frames'] as List)
+        ?.map((e) =>
+            e == null ? null : CrashFrame.fromJson(e as Map<String, dynamic>))
+        ?.toList(),
+    format: json['format'] as String,
+    androidMajorVersion: json['androidMajorVersion'] as int,
+  );
+}
+
+Map<String, dynamic> _$_$_CrashToJson(_$_Crash instance) => <String, dynamic>{
+      'engineVariant': instance.engineVariant,
+      'frames': instance.frames,
+      'format': instance.format,
+      'androidMajorVersion': instance.androidMajorVersion,
+    };
+
+_$_SymbolizationResult _$_$_SymbolizationResultFromJson(
+    Map<String, dynamic> json) {
+  return _$_SymbolizationResult(
+    crash: json['crash'] == null
+        ? null
+        : Crash.fromJson(json['crash'] as Map<String, dynamic>),
+    engineBuild: json['engineBuild'] == null
+        ? null
+        : EngineBuild.fromJson(json['engineBuild'] as Map<String, dynamic>),
+    symbolized: json['symbolized'] as String,
+    notes: (json['notes'] as List)
+            ?.map((e) => e == null
+                ? null
+                : SymbolizationNote.fromJson(e as Map<String, dynamic>))
+            ?.toList() ??
+        [],
+  );
+}
+
+Map<String, dynamic> _$_$_SymbolizationResultToJson(
+        _$_SymbolizationResult instance) =>
+    <String, dynamic>{
+      'crash': instance.crash?.toJson(),
+      'engineBuild': instance.engineBuild?.toJson(),
+      'symbolized': instance.symbolized,
+      'notes': instance.notes?.map((e) => e?.toJson())?.toList(),
+    };
+
+_$_SymbolizationNote _$_$_SymbolizationNoteFromJson(Map<String, dynamic> json) {
+  return _$_SymbolizationNote(
+    kind: _$enumDecodeNullable(_$SymbolizationNoteKindEnumMap, json['kind']),
+    message: json['message'] as String,
+  );
+}
+
+Map<String, dynamic> _$_$_SymbolizationNoteToJson(
+        _$_SymbolizationNote instance) =>
+    <String, dynamic>{
+      'kind': _$SymbolizationNoteKindEnumMap[instance.kind],
+      'message': instance.message,
+    };
+
+T _$enumDecode<T>(
+  Map<T, dynamic> enumValues,
+  dynamic source, {
+  T unknownValue,
+}) {
+  if (source == null) {
+    throw ArgumentError('A value must be provided. Supported values: '
+        '${enumValues.values.join(', ')}');
+  }
+
+  final value = enumValues.entries
+      .singleWhere((e) => e.value == source, orElse: () => null)
+      ?.key;
+
+  if (value == null && unknownValue == null) {
+    throw ArgumentError('`$source` is not one of the supported values: '
+        '${enumValues.values.join(', ')}');
+  }
+  return value ?? unknownValue;
+}
+
+T _$enumDecodeNullable<T>(
+  Map<T, dynamic> enumValues,
+  dynamic source, {
+  T unknownValue,
+}) {
+  if (source == null) {
+    return null;
+  }
+  return _$enumDecode<T>(enumValues, source, unknownValue: unknownValue);
+}
+
+const _$SymbolizationNoteKindEnumMap = {
+  SymbolizationNoteKind.unknownEngineHash: 'unknownEngineHash',
+  SymbolizationNoteKind.unknownAbi: 'unknownAbi',
+  SymbolizationNoteKind.exceptionWhileGettingEngineHash:
+      'exceptionWhileGettingEngineHash',
+  SymbolizationNoteKind.exceptionWhileSymbolizing: 'exceptionWhileSymbolizing',
+  SymbolizationNoteKind.exceptionWhileLookingByBuildId:
+      'exceptionWhileLookingByBuildId',
+  SymbolizationNoteKind.defaultedToReleaseBuildIdUnavailable:
+      'defaultedToReleaseBuildIdUnavailable',
+  SymbolizationNoteKind.noSymbolsAvailableOnIos: 'noSymbolsAvailableOnIos',
+  SymbolizationNoteKind.buildIdMismatch: 'buildIdMismatch',
+  SymbolizationNoteKind.loadBaseDetected: 'loadBaseDetected',
+};
+
+_$_ServerConfig _$_$_ServerConfigFromJson(Map<String, dynamic> json) {
+  return _$_ServerConfig(
+    githubToken: json['githubToken'] as String,
+    sendgridToken: json['sendgridToken'] as String,
+    failureEmail: json['failureEmail'] as String,
+  );
+}
+
+Map<String, dynamic> _$_$_ServerConfigToJson(_$_ServerConfig instance) =>
+    <String, dynamic>{
+      'githubToken': instance.githubToken,
+      'sendgridToken': instance.sendgridToken,
+      'failureEmail': instance.failureEmail,
+    };
diff --git a/github-label-notifier/symbolizer/lib/ndk.dart b/github-label-notifier/symbolizer/lib/ndk.dart
new file mode 100644
index 0000000..25f56b1
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/ndk.dart
@@ -0,0 +1,115 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Wrapper around ndk tools used for symbolization.
+library symbolizer.ndk;
+
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:meta/meta.dart';
+import 'package:path/path.dart' as p;
+
+class Ndk {
+  /// Return information about .text section from the given [object] file.
+  Future<SectionInfo> getTextSectionInfo(String object) async {
+    final result = await _run(_readelfBinary, ['-lW', object]);
+    for (var match in _loadCommandPattern.allMatches(result)) {
+      if (match.namedGroup('flags').trim() == 'R E') {
+        // Found .text section
+        return SectionInfo(
+          fileOffset: int.parse(match.namedGroup('offset')),
+          fileSize: int.parse(match.namedGroup('filesz')),
+          virtualAddress: int.parse(match.namedGroup('vma')),
+        );
+      }
+    }
+    throw 'Failed to find LOAD command for text section in $object';
+  }
+
+  /// Return build-id of the given [object] file.
+  Future<String> getBuildId(String object) async {
+    final result = await _run(_readelfBinary, ['-nW', object]);
+    final match = _buildIdPattern.firstMatch(result);
+    if (match == null) {
+      throw 'Failed to extract build-id from $object';
+    }
+    return match.namedGroup('id');
+  }
+
+  /// Symbolize given [addresses] using information available for the specified
+  /// [arch] in the given [object] file.
+  Future<List<String>> symbolize(
+      {String object, List<String> addresses, String arch}) async {
+    final result = await _run(_llvmSymbolizerBinary, [
+      if (arch != null) '--default-arch=$arch',
+      '--obj',
+      object,
+      '--inlines',
+      ...addresses
+    ]);
+
+    final symbolized = result.replaceAllMapped(_builderPathPattern, (m) {
+      return p.relative(p.normalize(m[0]),
+          from: (m as RegExpMatch).namedGroup('root'));
+    }).split('\n\n');
+    if (symbolized.last == '') symbolized.length--;
+
+    return symbolized;
+  }
+
+  /// Runs `llvm-objdump` on the given [object] and returns all lines produced
+  /// by it.
+  Stream<String> objdump({
+    @required String object,
+    @required String arch,
+  }) async* {
+    final process =
+        await Process.start(_llvmObjdumpBinary, ['--arch=arm64', '-d', object]);
+
+    await for (var line in process.stdout
+        .transform(utf8.decoder)
+        .transform(const LineSplitter())) {
+      yield line;
+    }
+  }
+
+  /// Run the given binary and return its stdout output if the run is
+  /// successful. Otherwise throw an error.
+  static Future<String> _run(String binary, List<String> args) async {
+    final result = await Process.run(binary, args);
+    if (result.exitCode != 0) {
+      throw 'Failed to run ${p.basename(binary)} (${result.exitCode}):\nstdout:\n${result.stdout}\nstderr:\n${result.stderr}';
+    }
+    return result.stdout;
+  }
+}
+
+/// Information about a section extracted from ELF file.
+class SectionInfo {
+  final int fileOffset;
+  final int fileSize;
+  final int virtualAddress;
+
+  SectionInfo({
+    @required this.fileOffset,
+    @required this.fileSize,
+    @required this.virtualAddress,
+  });
+}
+
+final _platform = Platform.isLinux ? 'linux' : 'darwin';
+final _ndkDir = 'tools/android-ndk';
+final _llvmSymbolizerBinary =
+    '${_ndkDir}/toolchains/llvm/prebuilt/$_platform-x86_64/bin/llvm-symbolizer';
+final _llvmObjdumpBinary =
+    '${_ndkDir}/toolchains/llvm/prebuilt/$_platform-x86_64/bin/llvm-objdump';
+final _readelfBinary =
+    '${_ndkDir}/toolchains/llvm/prebuilt/$_platform-x86_64/bin/x86_64-linux-android-readelf';
+final _buildIdPattern = RegExp(r'Build ID:\s+(?<id>[0-9a-f]+)');
+final _loadCommandPattern = RegExp(
+    r'^\s+LOAD\s+(?<offset>0x[0-9a-f]+)\s+(?<vma>0x[0-9a-f]+)\s+(?<phys>0x[0-9a-f]+)\s+(?<filesz>0x[0-9a-f]+)\s+(?<memsz>0x[0-9a-f]+)\s+(?<flags>[^0]+)\s+0x[0-9a-f]+\s*$',
+    multiLine: true);
+final _builderPathPattern =
+    RegExp(r'^(?<root>/(b|opt)/s/w/[\w/]+/src)/out/\S+', multiLine: true);
diff --git a/github-label-notifier/symbolizer/lib/parser.dart b/github-label-notifier/symbolizer/lib/parser.dart
new file mode 100644
index 0000000..893eac0
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/parser.dart
@@ -0,0 +1,435 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Logic for extracting crashes from text.
+library symbolizer.parser;
+
+import 'package:meta/meta.dart';
+
+import 'package:symbolizer/model.dart';
+
+/// Returns [true] if the given text is likely to contain a crash.
+bool containsCrash(String text) {
+  return text.contains(_CrashExtractor._androidCrashMarker) ||
+      text.contains(_CrashExtractor._iosCrashMarker);
+}
+
+/// Extract all crashes from the given [text] using [overrides].
+List<Crash> extractCrashes(String text, {SymbolizationOverrides overrides}) =>
+    _CrashExtractor(text: text, overrides: overrides).crashes;
+
+class _CrashExtractor {
+  final List<String> lines;
+  final SymbolizationOverrides overrides;
+
+  final List<Crash> crashes = <Crash>[];
+
+  int lineNo = 0;
+
+  String os;
+  String arch;
+  String mode;
+  String format;
+  List<CrashFrame> frames;
+
+  RegExp logLinePattern;
+  bool collectingFrames = false;
+  int androidMajorVersion;
+
+  _CrashExtractor({@required String text, this.overrides})
+      : lines = text.split(_lineEnding) {
+    if (overrides?.format == 'internal' && overrides?.os != null) {
+      parseAsCustomBacktrace(_internalFramePattern, overrides.os);
+    } else if (overrides?.force == true && overrides.os == 'ios') {
+      parseAsIosBacktrace();
+    } else {
+      processLines();
+    }
+  }
+
+  // 0x00000001003cb6b4(ios_prod_global -main.m:35)main
+  // 0x000000010539eb10(Flutter + 0x00312b10)
+  final _internalFramePattern = RegExp(
+      r'(?<pc>0x[a-f0-9]+)\s*\((?<binary>\S+)\s+(\+\s+(?<offset>0x[a-f0-9]+)|(?<location>[^+][^\)]+))\)(?<symbol>.*)');
+
+  /// Extract only stack traces from the text which match the given regexp.
+  /// Used when 'internal' override is in effect.
+  void parseAsCustomBacktrace(RegExp pattern, String os) {
+    for (; lineNo < lines.length; lineNo++) {
+      final line = lines[lineNo];
+      final frameMatch = pattern.firstMatch(line);
+
+      if (frameMatch == null) {
+        if (collectingFrames) {
+          endCrash();
+        }
+        continue;
+      }
+
+      if (!collectingFrames) {
+        startCrash(os);
+        mode = 'release';
+        format = 'custom';
+        collectingFrames = true;
+      }
+
+      frames.add(CrashFrame.custom(
+        no: frames.length.toString().padLeft(2, '0'),
+        binary: frameMatch.namedGroup('binary'),
+        pc: int.parse(frameMatch.namedGroup('pc')),
+        symbol: frameMatch.namedGroup('symbol'),
+        offset: frameMatch.namedGroup('offset') != null
+            ? int.parse(frameMatch.namedGroup('offset'))
+            : null,
+        location: frameMatch.namedGroup('location'),
+      ));
+    }
+    endCrash();
+  }
+
+  /// Extract only iOS like stack traces from the text. Used when
+  /// 'force ios' override is in effect.
+  void parseAsIosBacktrace() {
+    for (; lineNo < lines.length; lineNo++) {
+      final line = lines[lineNo];
+
+      final frame = parseIosFrame(line);
+
+      if (frame == null) {
+        if (collectingFrames) {
+          endCrash();
+        }
+        continue;
+      }
+
+      // Allow frames that miss offset and instead contain `(Missing)`
+      // instead of symbol name. This can happen in crashalytics output.
+      if (frame.offset == null &&
+          frame.symbol != CrashFrame.crashalyticsMissingSymbol) {
+        continue;
+      }
+
+      if (!collectingFrames) {
+        startCrash('ios');
+        mode = 'release';
+        collectingFrames = true;
+      }
+
+      frames.add(frame);
+    }
+    endCrash();
+  }
+
+  IosCrashFrame parseIosFrame(String line) {
+    final frameMatch = _iosFramePattern.firstMatch(line);
+    if (frameMatch == null) {
+      return null;
+    }
+    var rest = frameMatch.namedGroup('rest').trim();
+    var location = '';
+    if (rest.endsWith(')')) {
+      final open = rest.lastIndexOf('(');
+      if (open > 0) {
+        location = rest.substring(open + 1, rest.length - 2);
+        rest = rest.substring(0, open).trim();
+      }
+    }
+    final offsetMatch = _offsetSuffixPattern.firstMatch(rest);
+    String symbol;
+    int offset;
+    if (offsetMatch != null) {
+      offset = int.parse(offsetMatch.namedGroup('offset'));
+      symbol = offsetMatch.namedGroup('symbol').trim();
+    } else {
+      symbol = rest.trim();
+    }
+
+    return CrashFrame.ios(
+      no: frameMatch.namedGroup('no'),
+      binary: frameMatch.namedGroup('binary'),
+      pc: int.parse(frameMatch.namedGroup('pc')),
+      symbol: symbol,
+      offset: offset,
+      location: location,
+    );
+  }
+
+  void processLines() {
+    for (; lineNo < lines.length; lineNo++) {
+      var line = lines[lineNo];
+
+      // Strip markdown quote.
+      if (line.startsWith('> ')) {
+        line = line.substring(2);
+      }
+
+      // If we have an indication that we are processing raw logcat or flutter
+      // verbose output then strip the prefix characteristic for those log
+      // types.
+      if (logLinePattern != null) {
+        final m = logLinePattern.firstMatch(line);
+        if (m != null) {
+          line = m.namedGroup('rest');
+        } else {
+          // No longer in the raw log output. If we started collecting a crash
+          // flush it and continue handling the line.
+          endCrash();
+        }
+      }
+
+      if (line.isEmpty) {
+        continue;
+      }
+
+      // First check for crash markers.
+      if (line.contains(_androidCrashMarker)) {
+        // Start of the Android crash.
+        startCrash('android');
+        continue;
+      }
+
+      if (line.contains(_iosCrashMarker)) {
+        // Start of the iOS crash.
+        startCrash('ios');
+        continue;
+      }
+
+      final dartvmCrashMatch = _dartvmCrashMarker.firstMatch(line);
+      if (dartvmCrashMatch != null) {
+        startCrash(dartvmCrashMatch.namedGroup('os'));
+        format = 'dartvm';
+        arch = dartvmCrashMatch.namedGroup('arch');
+        if (arch == 'ia32') {
+          arch = 'x86';
+        }
+        continue;
+      }
+
+      if (format == 'dartvm') {
+        if (line.contains(_endOfDumpStackTracePattern)) {
+          endCrash();
+          continue;
+        }
+
+        final frameMatch = _dartvmFramePattern.firstMatch(line);
+        if (frameMatch != null) {
+          frames.add(CrashFrame.dartvm(
+            pc: int.parse(frameMatch.namedGroup('pc')),
+            binary: frameMatch.namedGroup('binary'),
+            offset: int.parse(frameMatch.namedGroup('offset')),
+          ));
+        }
+      }
+
+      if (os == 'android') {
+        // Handle `Build fingerprint: '...'` line.
+        final androidVersion = _androidBuildFingerprintPattern
+            .firstMatch(line)
+            ?.namedGroup('version');
+        if (androidVersion != null) {
+          androidMajorVersion = int.tryParse(androidVersion.split('.').first);
+        }
+
+        // Handle `ABI: '...'` line.
+        final abiMatch = _androidAbiPattern.firstMatch(line);
+        if (abiMatch != null) {
+          arch = abiMatch.namedGroup('abi');
+          if (arch == 'x86_64') {
+            arch = 'x64';
+          }
+          continue;
+        }
+
+        // Handle backtrace: start.
+        if (_backtraceStartPattern.hasMatch(line)) {
+          collectingFrames = true;
+          continue;
+        }
+
+        // If backtrace has started then process line corresponding for a frame.
+        if (collectingFrames) {
+          final frameMatch = _androidFramePattern.firstMatch(line);
+          if (frameMatch != null) {
+            final rest = frameMatch.namedGroup('rest');
+            final buildIdMatch = _buildIdPattern.firstMatch(rest);
+            frames.add(CrashFrame.android(
+              no: frameMatch.namedGroup('no'),
+              pc: int.parse(frameMatch.namedGroup('pc'), radix: 16),
+              binary: frameMatch.namedGroup('binary'),
+              rest: rest,
+              buildId: buildIdMatch?.namedGroup('id'),
+            ));
+          } else {
+            endCrash();
+          }
+        }
+        continue;
+      }
+
+      if (os == 'ios') {
+        // Handle EOF marking the end of crash report.
+        if (line.contains(_eofPattern)) {
+          endCrash();
+          continue;
+        }
+
+        // Handle line that describes App.framework binary image.
+        // We use it as a marker to detect release mode builds.
+        if (line.contains(_appFrameworkPattern)) {
+          mode = 'release';
+          continue;
+        }
+
+        // Handle `Code Type: ...` line.
+        final abiMatch = _iosAbiPattern.firstMatch(line);
+        if (abiMatch != null) {
+          arch = abiMatch.namedGroup('abi') == 'ARM-64' ? 'arm64' : 'arm32';
+          continue;
+        }
+
+        // Handle `Thread ... Crashed:` line
+        if (line.contains(_crashedThreadPattern)) {
+          collectingFrames = true;
+          continue;
+        }
+
+        if (collectingFrames) {
+          final frame = parseIosFrame(line);
+          if (frame != null) {
+            frames.add(frame);
+          } else {
+            collectingFrames = false;
+            // Don't flush the crash yet - we want to read report until the
+            // end and check if it is a release build or not.
+          }
+        }
+
+        continue;
+      }
+    }
+
+    endCrash();
+  }
+
+  void startCrash(String os) {
+    endCrash();
+    this.os = os;
+    frames = <CrashFrame>[];
+    arch = mode = null;
+    logLinePattern = null;
+    collectingFrames = false;
+    format = 'native';
+    androidMajorVersion = null;
+    if (os == 'android') {
+      detectAndroidLogFormat();
+    }
+  }
+
+  void endCrash() {
+    // We are not interested in crashes where we did not collect any frames.
+    if (frames != null && frames.isNotEmpty) {
+      crashes.add(Crash(
+        engineVariant: EngineVariant(
+          os: os,
+          arch: overrides?.arch ?? arch,
+          mode: overrides?.mode ?? mode,
+        ),
+        frames: frames,
+        format: format,
+        androidMajorVersion: androidMajorVersion,
+      ));
+    }
+    frames = null;
+    collectingFrames = false;
+    logLinePattern = null;
+  }
+
+  /// Android crashes might come from `adb logcat` or `flutter run -v`
+  /// output. In which case we need to strip prefix characteristic for
+  /// those.
+  void detectAndroidLogFormat() {
+    final line = lines[lineNo];
+    if (line.contains(_flutterLogPattern)) {
+      logLinePattern = _flutterLogPattern;
+      guessLaunchMode();
+    } else if (line.contains(_deviceLabPattern)) {
+      logLinePattern = _deviceLabPattern;
+      guessLaunchMode();
+    } else if (line.contains(_logcatPattern)) {
+      logLinePattern = _logcatPattern;
+    }
+  }
+
+  void guessLaunchMode() {
+    if (overrides?.mode != null) {
+      return;
+    }
+
+    // Try to look backwards through log lines to determine launch mode.
+    for (var i = lineNo - 1; i >= 0; i--) {
+      final logLineMatch = logLinePattern.firstMatch(lines[i]);
+      if (logLineMatch == null) {
+        break;
+      }
+      final modeMatch =
+          _launchModePattern.firstMatch(logLineMatch.namedGroup('rest'));
+      if (modeMatch != null) {
+        mode = modeMatch.namedGroup('mode');
+        return;
+      }
+    }
+  }
+
+  static final _androidCrashMarker =
+      '*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***';
+
+  static final _iosCrashMarker =
+      RegExp(r'Incident Identifier:\s+([A-F0-9]+-?)+');
+
+  static final _dartvmCrashMarker =
+      RegExp(r'version=.*on "(?<os>android)_(?<arch>arm|arm64|ia32|x64)"\s*$');
+
+  static final _lineEnding = RegExp(r'\r?\n');
+  static final _logcatPattern = RegExp(r'^.*?:(?=$|\s)\s*(?<rest>.*)$');
+  static final _flutterLogPattern =
+      RegExp(r'^\s*\[\s*(\+?\s*\d+\s*(s|ms|h))?\]\s+(?<rest>.*)$');
+  static final _deviceLabPattern = RegExp(
+      r'(\d+-\d+-\d+T\d+:\d+:\d+.\d+: )?(stdout|stderr):\s*\[\s*(\+?\s*\d+\s*(s|ms|h))?\]\s+(?<rest>.*)');
+
+  static final _androidAbiPattern =
+      RegExp(r"^\s*ABI: '(?<abi>x86|x86_64|x64|arm|arm64)'\s*$");
+
+  // Android Compatibility Definition mandates build fingerprint format to be:
+  //
+  //   $(BRAND)/$(PRODUCT)/$(DEVICE):
+  //     $(VERSION.RELEASE)/$(ID)/$(VERSION.INCREMENTAL):$(TYPE)/$(TAGS)
+  //
+  // For our purposes we are only interested in VERSION.RELEASE component of the
+  // fingerprint.
+  //
+  // See https://source.android.com/compatibility/11/android-11-cdd
+  static final _androidBuildFingerprintPattern =
+      RegExp(r"Build fingerprint: '[^:']+:(?<version>[\d\.]+)/[^']*'");
+  static final _backtraceStartPattern = RegExp(r'^\s*backtrace:\s*$');
+  static final _androidFramePattern = RegExp(
+      r'^\s*#(?<no>\d+)\s+pc\s+(?<pc>[0-9a-f]+)\s+(?<binary>[^\s]+)(?<rest>.*)$');
+  static final _buildIdPattern = RegExp(r'\(BuildId: (?<id>[0-9a-f]+)\)');
+  static final _launchModePattern =
+      RegExp(r'^\s*Launching .* on .* in (?<mode>debug|release|profile) mode');
+
+  static final _eofPattern = RegExp(r'^\s*EOF\s*$');
+  static final _appFrameworkPattern = RegExp(
+      r'^\s*0x[a-f0-9]+\s+-\s+0x[a-f0-9]+\s+App\s+arm\w+\s+<[a-f0-9]+>\s+/var/containers');
+  static final _iosAbiPattern = RegExp(r'\s*Code\s+Type:\s+(?<abi>[\-\w]+)\s+');
+  static final _crashedThreadPattern = RegExp(r'^\s*Thread \d+ Crashed:');
+  static final _iosFramePattern = RegExp(
+      r'^\s*(?<no>\d+)\s+(?<binary>\S+)\s+(?<pc>0x[a-f0-9]+)\s+(?<rest>.*)$',
+      unicode: true);
+  static final _offsetSuffixPattern =
+      RegExp(r'^(?<symbol>.*)\s+\+\s+(?<offset>\d+)$');
+
+  static final _endOfDumpStackTracePattern = '-- End of DumpStackTrace';
+  static final _dartvmFramePattern = RegExp(
+      r'(^|\s+)pc\s+(?<pc>0x[a-f0-9]+)\s+fp\s+(?<fp>0x[a-f0-9]+)\s+(?<binary>[^\s+]+)\+(?<offset>0x[a-f0-9]+)');
+}
diff --git a/github-label-notifier/symbolizer/lib/server.dart b/github-label-notifier/symbolizer/lib/server.dart
new file mode 100644
index 0000000..6b9b897
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/server.dart
@@ -0,0 +1,75 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// HTTP API for [symbolizer.bot] and [symbolizer.symbolizer] functionality.
+library symbolizer.server;
+
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:github/github.dart';
+import 'package:github/hooks.dart';
+import 'package:logging/logging.dart';
+import 'package:meta/meta.dart';
+import 'package:pedantic/pedantic.dart';
+
+import 'package:symbolizer/bot.dart';
+import 'package:symbolizer/symbolizer.dart';
+
+final _log = Logger('server');
+
+typedef _RequestHandler = Future<Object> Function(Map<String, dynamic> request);
+
+Future<void> serve(Object address, int port,
+    {@required Symbolizer symbolizer, @required Bot bot}) async {
+  final handlers = <String, _RequestHandler>{
+    '/symbolize': (issue) => symbolizer.symbolize(issue['body']),
+    '/command': (event) async {
+      final repoOrgMember = const {'MEMBER', 'OWNER'}
+          .contains(event['comment']['author_association']);
+      final commentEvent = IssueCommentEvent.fromJson(event);
+      final repo = RepositorySlug.full(event['repository']['full_name']);
+      await bot.executeCommand(repo, commentEvent.issue, commentEvent.comment,
+          authorized: repoOrgMember);
+      return {'status': 'ok'};
+    },
+  };
+
+  // Start the server.
+  final server = await HttpServer.bind(address, port);
+  _log.info('Listening on ${server.address}:${server.port}');
+
+  // Intentionally not processing requests in parallel to avoid racing
+  // in symbol cache.
+  await for (HttpRequest request in server) {
+    _log.info('Incoming request: ${request.method} ${request.requestedUri}');
+    final handler = handlers[request.requestedUri.path];
+    if (request.method != 'POST' || handler == null) {
+      request.response
+        ..statusCode = 404
+        ..write('Not found');
+      unawaited(request.response.close());
+      continue;
+    }
+    try {
+      final requestObj =
+          await utf8.decoder.bind(request).transform(json.decoder).first;
+      final responseJson = jsonEncode(await handler(requestObj));
+      request.response
+        ..statusCode = HttpStatus.ok
+        ..headers.add(HttpHeaders.contentTypeHeader, 'application/json')
+        ..write(responseJson);
+    } catch (e, st) {
+      request.response
+        ..statusCode = HttpStatus.internalServerError
+        ..headers.add(HttpHeaders.contentTypeHeader, 'application/json')
+        ..write(jsonEncode({
+          'status': 'error',
+          'message': e.toString(),
+          'stacktrace': st.toString(),
+        }));
+    }
+    unawaited(request.response.close());
+  }
+}
diff --git a/github-label-notifier/symbolizer/lib/symbolizer.dart b/github-label-notifier/symbolizer/lib/symbolizer.dart
new file mode 100644
index 0000000..f66c5c5
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/symbolizer.dart
@@ -0,0 +1,713 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Symbolizer functionality
+library symbolizer.symbolizer;
+
+import 'dart:async';
+import 'dart:io';
+
+import 'package:http/http.dart' as http;
+import 'package:logging/logging.dart';
+import 'package:meta/meta.dart';
+import 'package:path/path.dart' as p;
+import 'package:github/github.dart';
+
+import 'package:symbolizer/model.dart';
+import 'package:symbolizer/ndk.dart';
+import 'package:symbolizer/parser.dart';
+import 'package:symbolizer/symbols.dart';
+
+final _log = Logger('symbolizer');
+
+class Symbolizer {
+  final SymbolsCache symbols;
+  final Ndk ndk;
+  final GitHub github;
+
+  Symbolizer({
+    @required this.symbols,
+    @required this.ndk,
+    @required this.github,
+  });
+
+  /// Process the given [text] to find all crashes and symbolize them.
+  Future<List<SymbolizationResult>> symbolize(String text,
+      {SymbolizationOverrides overrides}) async {
+    final crashes = extractCrashes(text, overrides: overrides);
+    if (crashes.isEmpty) {
+      return [];
+    }
+
+    // First compute engine hash to use for symbolization.
+    String engineHash;
+    try {
+      engineHash = await _guessEngineHash(text, overrides);
+    } catch (e, st) {
+      return _failedToSymbolizeAll(
+          crashes, SymbolizationNoteKind.exceptionWhileGettingEngineHash,
+          error: '$e\n$st');
+    }
+    if (engineHash == null) {
+      return _failedToSymbolizeAll(
+          crashes, SymbolizationNoteKind.unknownEngineHash);
+    }
+
+    return await Future.wait(
+        crashes.map((crash) => _symbolizeCrash(crash, engineHash, overrides)));
+  }
+
+  Future<String> _guessEngineHash(
+      String text, SymbolizationOverrides overrides) async {
+    // Try to establish engine hash based on the content.
+    var engineHash = overrides?.engineHash ??
+        _reEngineHash.firstMatch(text)?.namedGroup('shortHash');
+    if (engineHash == null && overrides?.flutterVersion != null) {
+      engineHash =
+          await _engineHashFromFlutterVersion(overrides.flutterVersion);
+    }
+    if (engineHash != null) {
+      // Try to expand short hash into full hash.
+      final engineCommit = await github.repositories
+          .getCommit(RepositorySlug('flutter', 'engine'), engineHash);
+      engineHash = engineCommit.sha;
+    }
+    if (engineHash == null) {
+      // Try to establish engineHash based on Flutter version
+      final m = _reFlutterVersion.firstMatch(text);
+      if (m != null && m.namedGroup('channel') != 'master') {
+        // Try to use version tag.
+        final tag = m.namedGroup('version');
+        engineHash = await _engineHashFromFlutterVersion(tag);
+      }
+    }
+    return engineHash;
+  }
+
+  Future<String> _engineHashFromFlutterVersion(String version) async {
+    final response = await http.get(
+        'https://raw.githubusercontent.com/flutter/flutter/${version}/bin/internal/engine.version');
+    if (response.statusCode == HttpStatus.ok) {
+      return response.body.trim();
+    }
+    return null;
+  }
+
+  Future<SymbolizationResult> _symbolizeCrashWith(
+      Crash crash, EngineBuild engineBuild) async {
+    try {
+      final symbolsDir = await symbols.get(engineBuild);
+      return await _symbolizeCrashWithGivenSymbols(
+          crash, symbolsDir, engineBuild);
+    } catch (e, st) {
+      return _failedToSymbolize(
+          crash, SymbolizationNoteKind.exceptionWhileSymbolizing,
+          error: '{$engineBuild} $e\n$st');
+    }
+  }
+
+  Future<SymbolizationResult> _symbolizeCrash(
+      Crash crash, String engineHash, SymbolizationOverrides overrides) async {
+    // Apply overrides
+    if (crash.engineVariant.arch == null) {
+      return _failedToSymbolize(crash, SymbolizationNoteKind.unknownAbi);
+    }
+
+    EngineBuild engineBuild;
+
+    final buildId = _findBuildIdInFrames(crash.frames);
+    // Even if buildId is available we don't use it for matching
+    // if mode was found heuristically or was specified through overrides
+    // already.
+    if (crash.engineVariant.mode != null ||
+        overrides?.mode != null ||
+        buildId == null) {
+      // Currently on iOS we only have symbols for release builds.
+      if (crash.engineVariant.os == 'ios') {
+        if (crash.engineVariant.mode != 'release') {
+          return _failedToSymbolize(
+              crash, SymbolizationNoteKind.noSymbolsAvailableOnIos);
+        }
+      }
+
+      engineBuild = EngineBuild(
+        engineHash: engineHash,
+        variant: crash.engineVariant.copyWith(
+            mode: crash.engineVariant.mode ?? overrides?.mode ?? 'release'),
+      );
+
+      // Note: on iOS build ids (LC_UUID) don't seem to match between
+      // archived dSYMs and what users report, so we can't rely on them
+      // for matching dSYMs to crash reports.
+    } else {
+      try {
+        engineBuild = await symbols.findVariantByBuildId(
+            variant: crash.engineVariant,
+            engineHash: engineHash,
+            buildId: buildId);
+      } catch (e) {
+        return _failedToSymbolize(
+            crash, SymbolizationNoteKind.exceptionWhileLookingByBuildId,
+            error: '(${buildId}) $e');
+      }
+    }
+
+    var result = await _symbolizeCrashWith(crash, engineBuild);
+
+    if (result.symbolized != null &&
+        buildId == null &&
+        overrides?.mode == null &&
+        (crash.engineVariant.mode == null ||
+            crash.engineVariant.mode != 'release')) {
+      result = result
+          .withNote(SymbolizationNoteKind.defaultedToReleaseBuildIdUnavailable);
+    }
+
+    // We might have used wrong symbols for symbolization (because we were
+    // forced or because our heuristics failed for some reason).
+    if (buildId != null) {
+      final symbolsDir = await symbols.get(engineBuild);
+      final engineBuildId =
+          await ndk.getBuildId(p.join(symbolsDir, 'libflutter.so'));
+      if (engineBuildId != buildId) {
+        result = result.withNote(SymbolizationNoteKind.buildIdMismatch,
+            'Backtrace refers to ${buildId} but we used engine with ${engineBuildId}');
+      }
+    }
+
+    return result;
+  }
+
+  static String _findBuildIdInFrames(List<CrashFrame> frames) => frames
+      .whereType<AndroidCrashFrame>()
+      .firstWhere(
+          (frame) =>
+              frame.binary.endsWith('libflutter.so') && frame.buildId != null,
+          orElse: () => null)
+      ?.buildId;
+
+  Future<SymbolizationResult> _symbolizeCrashWithGivenSymbols(
+      Crash crash, String symbolsDir, EngineBuild build) {
+    final result =
+        SymbolizationResult(engineBuild: build, crash: crash, symbolized: null);
+    if (crash.format == 'dartvm') {
+      return _symbolizeDartvmFrames(
+        result,
+        crash.frames.cast<DartvmCrashFrame>(),
+        crash.engineVariant.arch,
+        symbolsDir,
+      );
+    } else if (crash.format == 'custom') {
+      return _symbolizeCustomFrames(
+        result,
+        crash.frames.cast<CustomCrashFrame>(),
+        crash.engineVariant.arch,
+        build,
+        symbolsDir,
+      );
+    } else if (crash.engineVariant.os == 'android') {
+      return _symbolizeAndroidFrames(
+        result,
+        crash.frames.cast<AndroidCrashFrame>(),
+        crash.engineVariant.arch,
+        symbolsDir,
+        crash.androidMajorVersion,
+      );
+    } else {
+      return _symbolizeIosFrames(
+        result,
+        crash.frames.cast<IosCrashFrame>(),
+        crash.engineVariant.arch,
+        build,
+        symbolsDir,
+      );
+    }
+  }
+
+  Future<SymbolizationResult> _symbolizeGeneric<FrameType extends CrashFrame>({
+    @required SymbolizationResult result,
+    @required List<FrameType> frames,
+    @required String arch,
+    @required String object,
+    @required bool Function(FrameType) shouldSymbolize,
+    @required int Function(FrameType) getRelativePC,
+    @required FutureOr<int> Function(Iterable<FrameType>) computePCBias,
+    @required String Function(FrameType) frameSuffix,
+    @required bool shouldAdjustInnerPCs,
+  }) async {
+    _log.info('Symbolizing using ${object}');
+
+    final worklist = <int>{};
+
+    // First collect Flutter Engine frames.
+    final binaryName = p.basename(object);
+    for (var i = 0; i < frames.length; i++) {
+      if (frames[i].binary.endsWith(binaryName) && shouldSymbolize(frames[i])) {
+        worklist.add(i);
+      }
+    }
+
+    final symbolized = <int, String>{};
+    if (worklist.isNotEmpty) {
+      final vmaBias = await computePCBias(worklist.map((i) => frames[i]));
+      symbolized.addAll(Map.fromIterables(
+          worklist,
+          await ndk.symbolize(
+              object: object,
+              arch: arch,
+              addresses: worklist
+                  .map((i) {
+                    return getRelativePC(frames[i]) +
+                        vmaBias +
+                        (shouldAdjustInnerPCs && i > 0 ? -1 : 0);
+                  })
+                  .map(_asHex)
+                  .toList())));
+    }
+
+    // Assemble the result.
+    final pcSize = _pointerSize(arch);
+    final buf = StringBuffer();
+    for (var i = 0; i < frames.length; i++) {
+      final frame = frames[i];
+      final prefix =
+          '#${i.toString().padLeft(2, '0')} ${_addrHex(frame.pc, pcSize)} ${_shortBinaryName(frame.binary)}';
+      buf.write(prefix);
+      buf.writeln(frameSuffix(frame));
+      if (worklist.contains(i)) {
+        final indent = ' ' * (prefix.length + 1);
+        for (var line in symbolized[i].split('\n')) {
+          buf.write(indent);
+          buf.writeln(line);
+        }
+      }
+    }
+
+    return result.copyWith(symbolized: buf.toString());
+  }
+
+  Future<SymbolizationResult> _symbolizeAndroidFrames(
+    SymbolizationResult result,
+    List<AndroidCrashFrame> frames,
+    String arch,
+    String symbolsDir,
+    int androidMajorVersion,
+  ) async {
+    final flutterSo = p.join(symbolsDir, 'libflutter.so');
+    return _symbolizeGeneric<AndroidCrashFrame>(
+      result: result,
+      frames: frames,
+      arch: arch,
+      object: flutterSo,
+      shouldSymbolize: (_) => true,
+      getRelativePC: (frame) => frame.pc,
+      shouldAdjustInnerPCs: false, // Android unwinder already adjusted it.
+      computePCBias: (frames) async {
+        if ((androidMajorVersion ?? 0) >= 11) {
+          return 0;
+        }
+        // Prior to Android 11 backtraces printed by debuggerd contained PCs
+        // which can't be directly used for symbolization. Very old versions
+        // of Android printed offsets into RX mapping, while newer versions
+        // printed ELF file offsets. We try to differentiate between these two
+        // situations by checking if any PCs are outside of .text section range.
+        // In both cases we can't directly use this PC for symbolization because
+        // it does not necessarily match VMAs used in the ELF file (which is
+        // what llvm-symbolizer would need for symbolization).
+        final textSection = await ndk.getTextSectionInfo(flutterSo);
+        final textStart = textSection.fileOffset;
+        final textEnd = textSection.fileOffset + textSection.fileSize;
+        final likelySectionOffset =
+            !frames.every((f) => textStart <= f.pc && f.pc < textEnd);
+        return likelySectionOffset
+            ? (textSection.virtualAddress & ~0xfff)
+            : (textSection.virtualAddress - textSection.fileOffset);
+      },
+      frameSuffix: (frame) => ' ${frame.rest.trimLeft()}',
+    );
+  }
+
+  Future<SymbolizationResult> _symbolizeDartvmFrames(SymbolizationResult result,
+      List<DartvmCrashFrame> frames, String arch, String symbolsDir) async {
+    final flutterSo = p.join(symbolsDir, 'libflutter.so');
+    return _symbolizeGeneric(
+      result: result,
+      frames: frames,
+      arch: arch,
+      object: flutterSo,
+      shouldSymbolize: (_) => true,
+      getRelativePC: (frame) => frame.offset,
+      shouldAdjustInnerPCs: true,
+      computePCBias: (frames) async {
+        // For now we assume that we only get Dart VM crash stacks from Android.
+        //
+        // There we get output like libflutter.so+offset where offset is
+        // PC minus base of libflutter.so (as returned by dladdr), which
+        // corresponds to the address of the first page mapped from ELF file.
+        //
+        // Important thing to note here is that RX mapping would use aligned
+        // file offset (textSection.fileOffset & ~pageMask). This might increase
+        // the distance between SO base and PC by 1 page if testSection.fileOffset
+        // is not aligned:
+        //
+        //   RO             RX      PC
+        //   [             ][       *      ]
+        //   |              |
+        //   B              B + fileOffset
+        //   0
+        //
+        // If fileOffset is misaligned then subtracting B from PC does not yield
+        // file offset corresponding to the PC, but rather file offset plus
+        // pageSize, so we need to accomodate for that in VMA adjustment.
+        const pageSize = 4096;
+        const pageMask = pageSize - 1;
+
+        final textSection = await ndk.getTextSectionInfo(flutterSo);
+        final loadBias = textSection.virtualAddress - textSection.fileOffset;
+        return loadBias -
+            (((textSection.fileOffset & pageMask) + pageMask) & ~pageMask);
+      },
+      frameSuffix: (frame) => '+${_asHex(frame.offset)}',
+    );
+  }
+
+  /// Pattern for extracting information from ARM64 objdump output.
+  static final _objdumpPattern =
+      RegExp(r'^\s*(?<addr>[a-f0-9]+):\s+([a-f0-9]{2}\s+){4}(?<op>\w+)');
+
+  /// Extract information about calls (branch-link instruction) locations
+  /// in the binary.
+  Future<_CallLocations> _determineCallLocations(EngineBuild build) async {
+    if (build.variant.arch != 'arm64') {
+      return null;
+    }
+
+    final flutterSo = await symbols.getEngineBinary(build);
+    if (flutterSo == null) {
+      return null;
+    }
+
+    int startAddr, endAddr;
+    final isCallAt = <bool>[];
+    await for (var line
+        in ndk.objdump(object: flutterSo, arch: build.variant.arch)) {
+      final m = _objdumpPattern.firstMatch(line);
+      if (m == null) continue;
+
+      final addr = int.parse(m.namedGroup('addr'), radix: 16);
+      startAddr ??= addr;
+      endAddr = addr;
+      final op = m.namedGroup('op');
+      isCallAt.add(op.startsWith('bl'));
+    }
+    final codeSize = endAddr - startAddr + 4;
+    if (codeSize != isCallAt.length * 4) {
+      // Something went wrong.
+      return null;
+    }
+
+    return _CallLocations(startAddr, isCallAt);
+  }
+
+  /// Try to guess load base for flutter engine shared object using
+  /// information about possible call locations in the binary and the
+  /// list of return addresses in the backtrace.
+  ///
+  /// We are going to look through the binary trying to find call locations
+  /// which have the same relative offsets to each other as the given pcs.
+  /// Each such group gives us potential load base.
+  Future<_LoadBase> _tryFindLoadBase(
+      EngineBuild build, List<int> retAddrs) async {
+    _log.info('looking for load base of ${build} based on ${retAddrs}');
+    if (retAddrs.length < 2) {
+      return null; // Need at least two retAddrs.
+    }
+
+    // We don't expect any misaligned retAddrs, but some Crashlytics reports
+    // contain such. Give up for now.
+    if (retAddrs.any((e) => e & 3 != 0)) {
+      return null;
+    }
+
+    final calls = await _determineCallLocations(build);
+    if (calls == null) {
+      return null;
+    }
+
+    var loadBase = _tryFindLoadBaseImpl(build, retAddrs, calls);
+    if (loadBase != null) {
+      return _LoadBase(loadBase: loadBase, pcAdjusted: false);
+    }
+
+    // Maybe unwinder already adjusted return addressed by -4.
+    loadBase = _tryFindLoadBaseImpl(
+        build, retAddrs.map((pc) => pc + 4).toList(), calls);
+    if (loadBase != null) {
+      return _LoadBase(loadBase: loadBase, pcAdjusted: true);
+    }
+
+    return null;
+  }
+
+  int _tryFindLoadBaseImpl(
+      EngineBuild build, List<int> retAddrs, _CallLocations calls) {
+    const arm64InstrSize = 4;
+    const arm64InstrShift = 2;
+    const pageSize = 0x1000;
+    const pageMask = pageSize - 1;
+
+    final retAddr = retAddrs.first;
+    final possibleBases = <int>[];
+
+    // Look through the binary for all calls such that pc - callAddr (which can be
+    // computed as `calls.startAddr + callIdx * arm64InstrSize`) is page aligned
+    // (this difference yields us possible base).
+    // We start by selecting base in such a way that the retAddr falls on the
+    // first page of the .text section and then start moving base down in
+    // pageSize increments.
+    final callVma = retAddr - arm64InstrSize - calls.startAddr;
+    for (var callIdx = (callVma & pageMask) >> arm64InstrShift,
+            base = callVma & ~pageMask;
+        callIdx < calls.size && base >= 0;
+        callIdx += pageSize >> arm64InstrShift, base -= pageSize) {
+      if (calls._isCallAt[callIdx]) {
+        if (retAddrs
+            .every((pc) => calls.isCallAt(pc - arm64InstrSize - base))) {
+          // Possible base: pc - arm64InstrSize - base hits call in the
+          // binary for all retAddrs.
+          possibleBases.add(base);
+        }
+      }
+    }
+
+    // Single possible base found - return it.
+    if (possibleBases.length == 1) {
+      _log.info('found load base of ${build} based on ${retAddrs}: '
+          '${possibleBases.first}');
+      return possibleBases.first;
+    }
+
+    // Either no bases or more than a single possibility found.
+    _log.info(
+        'found ${possibleBases.isEmpty ? 'no' : 'multiple'} potential load '
+        'bases of ${build} based on ${retAddrs}: ${possibleBases}');
+    return null;
+  }
+
+  Future<SymbolizationResult> _symbolizeIosFrames(
+      SymbolizationResult result,
+      List<IosCrashFrame> frames,
+      String arch,
+      EngineBuild build,
+      String symbolsDir) async {
+    final object =
+        p.join(symbolsDir, 'Flutter.dSYM/Contents/Resources/DWARF/Flutter');
+
+    // Returns [true] if the given frame is a frame for Flutter
+    // engine binary which misses an offset.
+    bool isFrameMissingOffset(IosCrashFrame frame) {
+      return frame.offset == null &&
+          frame.binary == 'Flutter' &&
+          frame.symbol == CrashFrame.crashalyticsMissingSymbol;
+    }
+
+    var adjustInnerPCs = true;
+
+    // If there are frames with missing offsets found try to guess
+    // load base using a heuristic based on all return addresses from the
+    // backtrace.
+    final framesWithoutOffsets = frames.where(isFrameMissingOffset).toList();
+    if (framesWithoutOffsets.isNotEmpty) {
+      final loadBase = await _tryFindLoadBase(
+          build,
+          framesWithoutOffsets
+              .where((frame) => int.parse(frame.no) > 0)
+              .map((frame) => frame.pc)
+              .toSet()
+              .toList());
+      if (loadBase != null) {
+        // Success: managed to find a single possiblity. Compute relative pcs
+        // using this loadBase and add a note to the symbolization result.
+        adjustInnerPCs = !loadBase.pcAdjusted;
+        result = result.withNote(SymbolizationNoteKind.loadBaseDetected,
+            _addrHex(loadBase.loadBase, _pointerSize(build.variant.arch)));
+        frames = frames.map((frame) {
+          if (isFrameMissingOffset(frame)) {
+            return frame.copyWith(
+              offset: frame.pc - loadBase.loadBase,
+              symbol: 'Flutter',
+            );
+          }
+          return frame;
+        }).toList();
+      }
+    }
+
+    return _symbolizeGeneric<IosCrashFrame>(
+      result: result,
+      frames: frames,
+      arch: arch,
+      object: object,
+      shouldSymbolize: (frame) =>
+          frame.symbol == 'Flutter' || frame.symbol.startsWith('0x'),
+      shouldAdjustInnerPCs: adjustInnerPCs,
+      getRelativePC: (frame) => frame.offset,
+      computePCBias: (frames) => 0,
+      frameSuffix: (frame) => [
+        '',
+        frame.symbol,
+        if (frame.offset != null) '+',
+        if (frame.offset != null) frame.offset,
+        if (frame.location.isNotEmpty) '(${frame.location.trimLeft()})',
+      ].join(' '),
+    );
+  }
+
+  Future<SymbolizationResult> _symbolizeCustomFrames(
+      SymbolizationResult result,
+      List<CustomCrashFrame> frames,
+      String arch,
+      EngineBuild build,
+      String symbolsDir) async {
+    // For now we assuem
+    final object = p.join(
+        symbolsDir,
+        build.variant.os == 'ios'
+            ? 'Flutter.dSYM/Contents/Resources/DWARF/Flutter'
+            : 'libflutter.so');
+
+    // Returns [true] if the given frame is a frame for Flutter
+    // engine binary which misses an offset.
+    bool isFrameMissingOffset(CustomCrashFrame frame) {
+      return /*frame.offset == null &&*/ frame.binary == 'Flutter';
+    }
+
+    var adjustInnerPCs = true;
+
+    // If there are frames with missing offsets found try to guess
+    // load base using a heuristic based on all return addresses from the
+    // backtrace.
+    final framesWithoutOffsets = frames.where(isFrameMissingOffset).toList();
+    if (framesWithoutOffsets.isNotEmpty) {
+      final loadBase = await _tryFindLoadBase(
+          build,
+          framesWithoutOffsets
+              .where((frame) => int.parse(frame.no) > 0)
+              .map((frame) => frame.pc)
+              .toSet()
+              .toList());
+      if (loadBase != null) {
+        // Success: managed to find a single possiblity. Compute relative pcs
+        // using this loadBase and add a note to the symbolization result.
+        adjustInnerPCs = !loadBase.pcAdjusted;
+        result = result.withNote(SymbolizationNoteKind.loadBaseDetected,
+            _addrHex(loadBase.loadBase, _pointerSize(build.variant.arch)));
+        frames = frames.map((frame) {
+          if (isFrameMissingOffset(frame)) {
+            return frame.copyWith(
+              offset: frame.pc - loadBase.loadBase,
+              symbol: 'Flutter',
+            );
+          }
+          return frame;
+        }).toList();
+      }
+    }
+
+    return _symbolizeGeneric<CustomCrashFrame>(
+      result: result,
+      frames: frames,
+      arch: arch,
+      object: object,
+      shouldSymbolize: (frame) => true,
+      shouldAdjustInnerPCs: adjustInnerPCs,
+      getRelativePC: (frame) => frame.offset,
+      computePCBias: (frames) => 0,
+      frameSuffix: (frame) => [
+        '',
+        if (frame.symbol != null && frame.symbol.isNotEmpty)
+          frame.symbol
+        else
+          frame.binary,
+        if (frame.offset != null) '+',
+        if (frame.offset != null) frame.offset,
+        if (frame.location != null) frame.location.trimLeft(),
+      ].join(' '),
+    );
+  }
+}
+
+final _appBinaryPattern = RegExp(r'^/data/app/(~~[^/]+/)?[^/]+/(?<name>.*)$');
+String _shortBinaryName(String binary) {
+  final m = _appBinaryPattern.firstMatch(binary);
+  if (m != null) {
+    return '<...>/${m.namedGroup('name')}';
+  }
+  return binary;
+}
+
+int _pointerSize(String arch) {
+  switch (arch) {
+    case 'arm64':
+    case 'x64':
+      return 8 * 2;
+    default:
+      return 4 * 2;
+  }
+}
+
+String _addrHex(int v, int pointerSize) =>
+    v.toRadixString(16).padLeft(pointerSize, '0');
+
+String _asHex(int v) => '0x${v.toRadixString(16)}';
+
+List<SymbolizationResult> _failedToSymbolizeAll(
+        List<Crash> crashes, SymbolizationNoteKind note, {Object error}) =>
+    crashes
+        .map((crash) => _failedToSymbolize(crash, note, error: error))
+        .toList();
+
+SymbolizationResult _failedToSymbolize(Crash crash, SymbolizationNoteKind note,
+        {Object error}) =>
+    SymbolizationResult(
+      crash: crash,
+      engineBuild: null,
+      symbolized: null,
+      notes: [SymbolizationNote(kind: note, message: error?.toString())],
+    );
+
+final _reEngineHash =
+    RegExp(r'(• Engine|Engine •) revision (?<shortHash>[a-f0-9]+)');
+final _reFlutterVersion = RegExp(
+    r'Flutter \(Channel (?<channel>master|dev|beta|stable), (?<version>[^,]+),');
+
+/// Information about call locations within the flutter engine binary.
+/// Used to heuristically guess load base for flutter engine when it is
+/// not available in the output.
+///
+/// Currently heuristics only work on ARM64, which allows us to assume
+/// fixed instruction size (4 bytes).
+class _CallLocations {
+  /// Base VMA for the .text section.
+  final int startAddr;
+
+  /// Contains [true] if instruction with the given index is a branch-link (bl).
+  final List<bool> _isCallAt;
+
+  _CallLocations(this.startAddr, this._isCallAt);
+
+  int get size => _isCallAt.length;
+
+  bool isCallAt(int addr) {
+    if (addr < startAddr) return false;
+    final i = (addr - startAddr) >> 2;
+    return i < size && _isCallAt[i];
+  }
+}
+
+class _LoadBase {
+  final int loadBase;
+  final bool pcAdjusted;
+  _LoadBase({this.loadBase, this.pcAdjusted});
+}
diff --git a/github-label-notifier/symbolizer/lib/symbols.dart b/github-label-notifier/symbolizer/lib/symbols.dart
new file mode 100644
index 0000000..be82d9f
--- /dev/null
+++ b/github-label-notifier/symbolizer/lib/symbols.dart
@@ -0,0 +1,298 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+
+/// Utilities for downloading and locally caching symbol files.
+library symbolizer.symbols;
+
+import 'dart:async';
+import 'dart:convert';
+import 'dart:io';
+
+import 'package:logging/logging.dart';
+import 'package:meta/meta.dart';
+import 'package:path/path.dart' as p;
+
+import 'package:symbolizer/model.dart';
+import 'package:symbolizer/ndk.dart';
+
+final _log = Logger('symbols');
+
+/// Local cache of symbol files downloaded from Cloud Storage bucket.
+class SymbolsCache {
+  final Ndk _ndk;
+
+  /// Local path at which this cache is located.
+  final String _path;
+
+  /// Number of entries in the cache after which we will start trying to
+  /// evict all entries which were not touched for longer than
+  /// [evictionThreshold].
+  final int _sizeThreshold;
+
+  /// Threshold past which an unused entry in the cache is considered evictable.
+  final Duration _evictionThreshold;
+
+  /// Map describing when symbols for the given [EngineBuild] were used
+  /// last time.
+  final Map<String, int> _lastUsedTimestamp = {};
+
+  /// Cache mapping Build-Id's values to corresponding engine builds.
+  final Map<String, EngineBuild> _buildIdCache = {};
+
+  /// Pending downloads by [EngineBuild].
+  final Map<String, Future<String>> _downloads = {};
+
+  /// Constructs cache at the given [path], which is assumed to be a directory.
+  /// If destination does not exist it will be created.
+  SymbolsCache({
+    @required Ndk ndk,
+    @required String path,
+    int sizeThreshold = 20,
+    Duration evictionThreshold = const Duration(minutes: 5),
+  })  : _ndk = ndk,
+        _path = path,
+        _sizeThreshold = sizeThreshold,
+        _evictionThreshold = evictionThreshold {
+    if (!Directory(path).existsSync()) {
+      Directory(path).createSync();
+    }
+    _loadState();
+  }
+
+  /// If necessary download symbols for the given [build] and return path to
+  /// the folder containing them.
+  Future<String> get(EngineBuild build) => _get(build, '', _downloadSymbols);
+
+  /// If necessary download engine binary (libflutter.so or Flutter) for the
+  /// given build and return path to the binary itself.
+  Future<String> getEngineBinary(EngineBuild build) async {
+    final dir = await _get(build, 'libflutter', _downloadEngine);
+    return p.join(dir, p.basename(_libflutterPath(build)));
+  }
+
+  /// Download an artifact from Cloud Storage using the given [downloader] and
+  /// cache result in the path using the given [suffix].
+  Future<String> _get(
+    EngineBuild build,
+    String suffix,
+    Future<void> Function(Directory, EngineBuild) downloader,
+  ) {
+    final cacheDir = _cacheDirectoryFor(build, suffix: suffix);
+    if (!_downloads.containsKey(cacheDir)) {
+      _downloads[cacheDir] = _getImpl(cacheDir, build, downloader);
+      _downloads[cacheDir].then((_) => _downloads.remove(cacheDir));
+    }
+    return _downloads[cacheDir];
+  }
+
+  /// Given the [engineHash] and [EngineVariant] which specifies OS and
+  /// architecture look at symbols for all possible build modes and
+  /// find the one matching the given [buildId].
+  ///
+  /// Currently only used for Android symbols because on iOS LC_UUID
+  /// is unreliable.
+  Future<EngineBuild> findVariantByBuildId({
+    @required String engineHash,
+    @required EngineVariant variant,
+    @required String buildId,
+  }) async {
+    _log.info('looking for ${buildId} among ${variant} engines');
+    if (variant.os != 'android') {
+      throw ArgumentError(
+          'LC_UUID is unreliable on iOS and can not be used for mode matching');
+    }
+
+    // Check if we already have a match in the Build-Id cache.
+    if (_buildIdCache.containsKey(buildId)) {
+      final build = _buildIdCache[buildId];
+      if (build.variant.os == variant.os &&
+          build.variant.arch == variant.arch) {
+        return build;
+      }
+    }
+
+    for (var potentialVariant in EngineVariant.allModesFor(variant)) {
+      final engineBuild =
+          EngineBuild(engineHash: engineHash, variant: potentialVariant);
+      final dir = await get(engineBuild);
+      final thisBuildId = await _ndk.getBuildId(p.join(dir, 'libflutter.so'));
+      _buildIdCache[thisBuildId] = engineBuild;
+      if (thisBuildId == buildId) {
+        return engineBuild;
+      }
+    }
+    throw 'Failed to find build with matching buildId (${buildId})';
+  }
+
+  File get _cacheStateFile => File(p.join(_path, 'cache.json'));
+
+  void _loadState() {
+    if (!_cacheStateFile.existsSync()) return;
+
+    final Map<String, dynamic> cacheState =
+        jsonDecode(_cacheStateFile.readAsStringSync());
+    final timestamps = cacheState['lastUsedTimestamp'] as List<dynamic>;
+    _lastUsedTimestamp.clear();
+    for (var i = 0; i < timestamps.length; i += 2) {
+      _lastUsedTimestamp[timestamps[i]] = timestamps[i + 1];
+    }
+    _buildIdCache.addAll((cacheState['buildIdCache'] as Map<String, dynamic>)
+        .map((key, value) => MapEntry(key, EngineBuild.fromJson(value))));
+  }
+
+  void _saveState() {
+    _cacheStateFile.writeAsStringSync(jsonEncode({
+      'lastUsedTimestamp':
+          _lastUsedTimestamp.entries.expand((e) => [e.key, e.value]).toList(),
+      'buildIdCache': _buildIdCache
+    }));
+  }
+
+  String _cacheDirectoryFor(EngineBuild build, {String suffix = ''}) =>
+      'symbols-cache/${build.engineHash}-${build.variant.toArtifactPath()}'
+      '${suffix.isNotEmpty ? '-' : ''}${suffix}';
+
+  Future<String> _getImpl(String targetDir, EngineBuild build,
+      Future<void> Function(Directory, EngineBuild) downloader) async {
+    final dir = Directory(targetDir);
+    if (dir.existsSync()) {
+      _touch(dir.path);
+      return dir.path;
+    }
+
+    // Make sure we have some space.
+    _evictOldEntriesIfNecessary();
+    _log.info('downloading ${targetDir} for ${build}');
+
+    // Download symbols into a temporary directory, once we successfully
+    // unpack them we will rename this directory.
+    final tempDir = await Directory.systemTemp.createTemp();
+    try {
+      await downloader(tempDir, build);
+      // Now move the directory into the cache.
+      final renamed = await tempDir.rename(dir.path);
+      if (build.variant.os == 'android') {
+        // Fetch Build-Id from the library and add it to the cache.
+        final buildId =
+            await _ndk.getBuildId(p.join(renamed.path, 'libflutter.so'));
+        _buildIdCache[buildId] = build;
+      }
+      _touch(renamed.path);
+      return renamed.path;
+    } finally {
+      if (tempDir.existsSync()) {
+        tempDir.deleteSync(recursive: true);
+      }
+    }
+  }
+
+  Future<void> _downloadSymbols(Directory tempDir, EngineBuild build) async {
+    final symbolsFile =
+        build.variant.os == 'ios' ? 'Flutter.dSYM.zip' : 'symbols.zip';
+
+    await _run('gsutil', [
+      'cp',
+      'gs://flutter_infra/flutter/${build.engineHash}/${build.variant.toArtifactPath()}/${symbolsFile}',
+      p.join(tempDir.path, symbolsFile)
+    ]);
+    await _run('unzip', [symbolsFile], workingDirectory: tempDir.path);
+
+    // Delete downloaded ZIP file.
+    await File(p.join(tempDir.path, symbolsFile)).delete();
+  }
+
+  Future<void> _downloadEngine(Directory tempDir, EngineBuild build) async {
+    final artifactsFile = 'artifacts.zip';
+    await _run('gsutil', [
+      'cp',
+      'gs://flutter_infra/flutter/${build.engineHash}/${build.variant.toArtifactPath()}/${artifactsFile}',
+      p.join(tempDir.path, artifactsFile)
+    ]);
+
+    final nestedZip =
+        build.variant.os == 'ios' ? 'Flutter.framework.zip' : 'flutter.jar';
+
+    await _run('unzip', [artifactsFile, nestedZip],
+        workingDirectory: tempDir.path);
+
+    final libraryPath = _libflutterPath(build);
+    await _run('unzip', [nestedZip, libraryPath],
+        workingDirectory: tempDir.path);
+
+    if (p.dirname(libraryPath) != '.') {
+      await File(p.join(tempDir.path, libraryPath))
+          .rename(p.join(tempDir.path, p.basename(libraryPath)));
+      await Directory(p.join(tempDir.path, p.dirname(libraryPath)))
+          .delete(recursive: true);
+    }
+
+    // Delete downloaded ZIP file.
+    await File(p.join(tempDir.path, artifactsFile)).delete();
+    await File(p.join(tempDir.path, nestedZip)).delete();
+  }
+
+  static String _libflutterPath(EngineBuild build) {
+    switch (build.variant.os) {
+      case 'ios':
+        return 'Flutter';
+      case 'android':
+        switch (build.variant.arch) {
+          case 'arm64':
+            return 'lib/arm64-v8a/libflutter.so';
+          case 'arm':
+            return 'lib/armeabi-v7a/libflutter.so';
+        }
+        break;
+    }
+    throw 'Unsupported combination of architecture and OS: ${build.variant}';
+  }
+
+  Future<void> _run(String executable, List<String> args,
+      {String workingDirectory}) async {
+    final result =
+        await Process.run(executable, args, workingDirectory: workingDirectory);
+    if (result.exitCode != 0) {
+      throw 'Failed to run ${executable} ${args.join(' ')} '
+          '(exit code ${result.exitCode}): ${result.stdout} ${result.stderr}';
+    }
+  }
+
+  void _touch(String path) {
+    _lastUsedTimestamp[path] = DateTime.now().millisecondsSinceEpoch;
+    _saveState();
+  }
+
+  /// If the cache is too big then evict all entries outside of the given
+  /// interval.
+  void _evictOldEntriesIfNecessary() {
+    if (_lastUsedTimestamp.length < _sizeThreshold) {
+      return;
+    }
+
+    final fiveMinutesAgo =
+        DateTime.now().subtract(_evictionThreshold).millisecondsSinceEpoch;
+    for (var path in _lastUsedTimestamp.entries
+        .where((e) => e.value < fiveMinutesAgo)
+        .map((e) => e.key)
+        .toList()) {
+      final dir = Directory(path);
+      if (dir.existsSync()) {
+        dir.deleteSync(recursive: true);
+      }
+      _lastUsedTimestamp.remove(path);
+    }
+    _saveState();
+  }
+}
+
+extension on EngineVariant {
+  String toArtifactPath() {
+    final modeSuffix = (mode == 'debug') ? '' : '-${mode}';
+    if (os == 'ios') {
+      return '${os}${modeSuffix}';
+    } else {
+      return '${os}-${arch}${modeSuffix}';
+    }
+  }
+}
diff --git a/github-label-notifier/symbolizer/pubspec.yaml b/github-label-notifier/symbolizer/pubspec.yaml
new file mode 100644
index 0000000..16368a6
--- /dev/null
+++ b/github-label-notifier/symbolizer/pubspec.yaml
@@ -0,0 +1,30 @@
+name: symbolizer
+description: >-
+  Symbolization tooling capable of extracting Android and iOS crashes from
+  plain text comments on GitHub and then automatically symbolize these crash
+  reports using Flutter Engine symbols stored in the Cloud Storage.
+version: 0.0.1
+publish_to: none
+
+environment:
+  sdk: '>=2.8.0 <3.0.0'
+
+dependencies:
+  args: ^1.6.0
+  corsac_jwt: ^0.2.2
+  freezed_annotation: ^0.12.0
+  github: ^7.0.3
+  http: ^0.12.2
+  json_annotation: ^3.1.0
+  logging: ^0.11.4
+  path: ^1.6.0
+  pedantic: ^1.9.2
+  sendgrid_mailer: ^0.1.2
+
+dev_dependencies:
+  build_runner: ^1.10.0
+  freezed: ^0.12.2
+  json_serializable: ^3.5.0
+  meta: ^1.2.3
+  mockito: ^4.1.2
+  test: ^1.15.4
diff --git a/github-label-notifier/symbolizer/test/bot_test.dart b/github-label-notifier/symbolizer/test/bot_test.dart
new file mode 100644
index 0000000..4cd2d45
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/bot_test.dart
@@ -0,0 +1,208 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. 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:io';
+
+import 'package:github/github.dart';
+import 'package:mockito/mockito.dart';
+import 'package:path/path.dart' as p;
+import 'package:symbolizer/bot.dart';
+import 'package:symbolizer/config.dart';
+import 'package:symbolizer/model.dart';
+import 'package:symbolizer/ndk.dart';
+import 'package:symbolizer/symbols.dart';
+import 'package:test/test.dart';
+
+import 'package:symbolizer/symbolizer.dart';
+
+class MockGitHub extends Mock implements GitHub {}
+
+class MockIssuesService extends Mock implements IssuesService {}
+
+class SymbolsCacheProxy implements SymbolsCache {
+  final SymbolsCache impl;
+  final bool shouldThrow;
+  SymbolsCacheProxy(this.impl, {this.shouldThrow = false});
+
+  @override
+  Future<EngineBuild> findVariantByBuildId(
+      {String engineHash, EngineVariant variant, String buildId}) {
+    return impl.findVariantByBuildId(
+        engineHash: engineHash, variant: variant, buildId: buildId);
+  }
+
+  @override
+  Future<String> get(EngineBuild build) {
+    if (shouldThrow) {
+      throw 'Failed to download ${build}';
+    }
+    return impl.get(build);
+  }
+
+  @override
+  Future<String> getEngineBinary(EngineBuild build) =>
+      impl.getEngineBinary(build);
+}
+
+final regenerateExpectations =
+    bool.fromEnvironment('REGENERATE_EXPECTATIONS') ||
+        Platform.environment['REGENERATE_EXPECTATIONS'] == 'true';
+
+final config = loadConfigFromFile();
+
+void main() {
+  group('command parsing', () {
+    test('nothing to do', () {
+      expect(Bot.parseCommand(0, 'x64'), isNull);
+      expect(Bot.parseCommand(0, 'x64 debug'), isNull);
+      expect(Bot.parseCommand(0, 'x64\n@flutter-symbolizer-bot'), isNull);
+    });
+    test('simple', () {
+      expect(
+          Bot.parseCommand(0, '@flutter-symbolizer-bot'),
+          equals(BotCommand(
+            overrides: SymbolizationOverrides(),
+            symbolizeThis: false,
+            worklist: <String>{},
+          )));
+    });
+    test('with arch', () {
+      for (var arch in ['arm', 'arm64', 'x86', 'x64']) {
+        expect(
+            Bot.parseCommand(0, '@flutter-symbolizer-bot $arch'),
+            equals(BotCommand(
+              overrides: SymbolizationOverrides(arch: arch),
+              symbolizeThis: false,
+              worklist: <String>{},
+            )));
+      }
+    });
+    test('with mode', () {
+      for (var mode in ['profile', 'release', 'debug']) {
+        expect(
+            Bot.parseCommand(0, '@flutter-symbolizer-bot $mode'),
+            equals(BotCommand(
+              overrides: SymbolizationOverrides(mode: mode),
+              symbolizeThis: false,
+              worklist: <String>{},
+            )));
+      }
+    });
+    test('with engine hash', () {
+      expect(
+          Bot.parseCommand(
+              0, '@flutter-symbolizer-bot arm64 engine#aaabbb debug'),
+          equals(BotCommand(
+            overrides: SymbolizationOverrides(
+                arch: 'arm64', engineHash: 'aaabbb', mode: 'debug'),
+            symbolizeThis: false,
+            worklist: <String>{},
+          )));
+    });
+    test('with links', () {
+      expect(
+          Bot.parseCommand(
+              0,
+              '@flutter-symbolizer-bot '
+              'https://github.com/flutter/flutter/issues/0#issue-1 '
+              'engine#aaabbb '
+              'https://github.com/flutter/flutter/issues/0#issuecomment-2'),
+          equals(BotCommand(
+            overrides: SymbolizationOverrides(engineHash: 'aaabbb'),
+            symbolizeThis: false,
+            worklist: <String>{'issue-1', 'issuecomment-2'},
+          )));
+    });
+  });
+
+  group('end-to-end', () {
+    SymbolsCache symbols;
+    Ndk ndk;
+    GitHub github;
+    final files = Directory('test/data').listSync();
+
+    setUpAll(() {
+      ndk = Ndk();
+      symbols = SymbolsCache(path: 'symbols-cache', ndk: ndk);
+      github = GitHub(auth: Authentication.withToken(config.githubToken));
+    });
+
+    for (var inputFile in files
+        .where((f) => p.basename(f.path).endsWith('.input.txt'))
+        .cast<File>()) {
+      final testName = p.basename(inputFile.path).split('.').first;
+      final expectationFile = File('test/data/$testName.expected.github.txt');
+      test(testName, () async {
+        final input = await inputFile.readAsString();
+
+        final authorized = !input.contains('/unauthorized');
+        final shouldThrow = input.contains('/throw');
+
+        final symbolsProxy =
+            SymbolsCacheProxy(symbols, shouldThrow: shouldThrow);
+
+        final symbolizer =
+            Symbolizer(symbols: symbolsProxy, ndk: ndk, github: github);
+
+        final mockGitHub = MockGitHub();
+        final mockIssues = MockIssuesService();
+        final repo = RepositorySlug('flutter', 'flutter');
+        final bot = Bot(
+          github: mockGitHub,
+          symbolizer: symbolizer,
+          failuresEmail: null,
+          mailer: null,
+        );
+
+        final command = Bot.isCommand(input)
+            ? Bot.parseCommand(0, input).symbolizeThis
+                ? input
+                : input.split('\n').first
+            : Bot.accountMention;
+
+        final somebody = User(login: 'somebody');
+        final commandComment =
+            IssueComment(id: 1001, body: command, user: somebody);
+
+        when(mockGitHub.issues).thenAnswer((realInvocation) => mockIssues);
+        when(mockIssues.listCommentsByIssue(repo, 42))
+            .thenAnswer((realInvocation) async* {
+          yield IssueComment(id: 1002, body: 'something', user: somebody);
+          yield IssueComment(id: 1042, body: input, user: somebody);
+          yield commandComment;
+        });
+
+        when(mockIssues.createComment(repo, 42, any))
+            .thenAnswer((realInvocation) async {
+          return null;
+        });
+
+        throwOnMissingStub(mockGitHub);
+        throwOnMissingStub(mockIssues);
+        await bot.executeCommand(
+          repo,
+          Issue(id: 1000, body: 'something', number: 42),
+          commandComment,
+          authorized: authorized,
+        );
+
+        final result = verify(mockIssues.createComment(repo, 42, captureAny))
+            .captured
+            .single;
+
+        if (regenerateExpectations) {
+          await expectationFile.writeAsString(result);
+        } else {
+          final expected = await expectationFile.readAsString();
+
+          expect(result, equals(expected));
+        }
+      });
+    }
+
+    tearDownAll(() {
+      github.dispose();
+    });
+  });
+}
diff --git a/github-label-notifier/symbolizer/test/data/test01.expected.github.txt b/github-label-notifier/symbolizer/test/data/test01.expected.github.txt
new file mode 100644
index 0000000..7a0f468
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test01.expected.github.txt
@@ -0,0 +1,21 @@
+crash from null symbolized using symbols for `75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d` `android-arm-release`
+```
+#00 96a85449 <...>/lib/arm/libflutter.so+0x1384449
+                                         ??
+                                         ??:0:0
+#01 969c0e81 <...>/lib/arm/libflutter.so+0x12bfe81
+                                         ??
+                                         ??:0:0
+
+```
+_(Defaulted to release engine because build-id is unavailable or unreliable)_
+crash from null symbolized using symbols for `75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d` `android-arm-release`
+```
+#00 0001a43c /system/lib/libc.so (abort+63)
+#01 002bce85 <...>/lib/arm/libflutter.so (offset 0x1002000)
+                                         EllipticalRRectOp::EllipticalRRectOp(GrSimpleMeshDrawOpHelper::MakeArgs, SkRGBA4f<(SkAlphaType)2> const&, SkMatrix const&, SkRect const&, float, float, SkPoint, bool)
+                                         third_party/skia/src/gpu/ops/GrOvalOpFactory.cpp:2896:18
+
+```
+_(Defaulted to release engine because build-id is unavailable or unreliable)_
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test01.expected.txt b/github-label-notifier/symbolizer/test/data/test01.expected.txt
new file mode 100644
index 0000000..b5a0a76
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test01.expected.txt
@@ -0,0 +1,86 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": null
+      },
+      "frames": [
+        {
+          "pc": 2527614025,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "offset": 20464713,
+          "runtimeType": "dartvm"
+        },
+        {
+          "pc": 2526809729,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "offset": 19660417,
+          "runtimeType": "dartvm"
+        }
+      ],
+      "format": "dartvm",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 96a85449 <...>/lib/arm/libflutter.so+0x1384449\n                                         ??\n                                         ??:0:0\n#01 969c0e81 <...>/lib/arm/libflutter.so+0x12bfe81\n                                         ??\n                                         ??:0:0\n",
+    "notes": [
+      {
+        "kind": "defaultedToReleaseBuildIdUnavailable",
+        "message": null
+      }
+    ]
+  },
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 107580,
+          "binary": "/system/lib/libc.so",
+          "rest": " (abort+63)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 2870917,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "rest": " (offset 0x1002000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 8
+    },
+    "engineBuild": {
+      "engineHash": "75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 0001a43c /system/lib/libc.so (abort+63)\n#01 002bce85 <...>/lib/arm/libflutter.so (offset 0x1002000)\n                                         EllipticalRRectOp::EllipticalRRectOp(GrSimpleMeshDrawOpHelper::MakeArgs, SkRGBA4f<(SkAlphaType)2> const&, SkMatrix const&, SkRect const&, float, float, SkPoint, bool)\n                                         third_party/skia/src/gpu/ops/GrOvalOpFactory.cpp:2896:18\n",
+    "notes": [
+      {
+        "kind": "defaultedToReleaseBuildIdUnavailable",
+        "message": null
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test01.input.txt b/github-label-notifier/symbolizer/test/data/test01.input.txt
new file mode 100644
index 0000000..346690a
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test01.input.txt
@@ -0,0 +1,30 @@
+# By default symbolizer would use release build and produce incorrect result
+
+```bash
+0000-00-00 00:00:00.000 11111-22222/? E/Dart: ../../third_party/dart/runtime/vm/zone.cc: 94: error: Out of memory.
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: version=2.10.1 (stable) (Mon Jan 1 00:00:00 XXXX +0000) on "android_arm"
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: pid=11111, thread=22222, isolate_group=main(0x9550b600), isolate=main(0x933c4000)
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: isolate_instructions=969c0e00, vm_instructions=969c0e00
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM:   pc 0x96a85449 fp 0x885fef58 /data/app/com.example.app/lib/arm/libflutter.so+0x1384449
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM:   pc 0x969c0e81 fp 0x885ff014 /data/app/com.example.app/lib/arm/libflutter.so+0x12bfe81
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: -- End of DumpStackTrace
+0000-00-00 00:00:00.000 11111-22222/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 22222 (DartWorker), pid 11111 (example.app)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Build fingerprint: '...:8.1.0/.../...:...'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Revision: '0'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: ABI: 'arm'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: pid: 11111, tid: 22222, name: DartWorker  >>> com.example.app <<<
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r0 00000000  r1 00000000  r2 00000000  r3 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r4 00000000  r5 00000000  r6 00000000  r7 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r8 00000000  r9 00000000  sl 00000000  fp 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     ip 00000000  sp 00000000  lr 00000000  pc 00000000  cpsr 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: backtrace:
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #00 pc 0001a43c  /system/lib/libc.so (abort+63)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #01 pc 002bce85  /data/app/com.example.app/lib/arm/libflutter.so (offset 0x1002000)
+```
+
+```bash
+Doctor summary (to see all details, run flutter doctor -v):
+[✓] Flutter (Channel stable, 1.22.1, on xxxx, locale xxxx)
+```
diff --git a/github-label-notifier/symbolizer/test/data/test02.expected.github.txt b/github-label-notifier/symbolizer/test/data/test02.expected.github.txt
new file mode 100644
index 0000000..70e1c12
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test02.expected.github.txt
@@ -0,0 +1,23 @@
+crash from null symbolized using symbols for `75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d` `android-arm-debug`
+```
+#00 96a85449 <...>/lib/arm/libflutter.so+0x1384449
+                                         dart::Profiler::DumpStackTrace(bool)
+                                         third_party/dart/runtime/vm/profiler.cc:1110:18
+                                         dart::Profiler::DumpStackTrace(void*)
+                                         third_party/dart/runtime/vm/profiler.cc:1077:5
+#01 969c0e81 <...>/lib/arm/libflutter.so+0x12bfe81
+                                         dart::Assert::Fail(char const*, ...)
+                                         third_party/dart/runtime/platform/assert.cc:43:3
+
+```
+
+crash from null symbolized using symbols for `75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d` `android-arm-debug`
+```
+#00 0001a43c /system/lib/libc.so (abort+63)
+#01 002bce85 <...>/lib/arm/libflutter.so (offset 0x1002000)
+                                         dart::Assert::Fail(char const*, ...)
+                                         third_party/dart/runtime/platform/assert.cc:44:3
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test02.expected.txt b/github-label-notifier/symbolizer/test/data/test02.expected.txt
new file mode 100644
index 0000000..494e220
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test02.expected.txt
@@ -0,0 +1,76 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "debug"
+      },
+      "frames": [
+        {
+          "pc": 2527614025,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "offset": 20464713,
+          "runtimeType": "dartvm"
+        },
+        {
+          "pc": 2526809729,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "offset": 19660417,
+          "runtimeType": "dartvm"
+        }
+      ],
+      "format": "dartvm",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 96a85449 <...>/lib/arm/libflutter.so+0x1384449\n                                         dart::Profiler::DumpStackTrace(bool)\n                                         third_party/dart/runtime/vm/profiler.cc:1110:18\n                                         dart::Profiler::DumpStackTrace(void*)\n                                         third_party/dart/runtime/vm/profiler.cc:1077:5\n#01 969c0e81 <...>/lib/arm/libflutter.so+0x12bfe81\n                                         dart::Assert::Fail(char const*, ...)\n                                         third_party/dart/runtime/platform/assert.cc:43:3\n",
+    "notes": []
+  },
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "debug"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 107580,
+          "binary": "/system/lib/libc.so",
+          "rest": " (abort+63)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 2870917,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "rest": " (offset 0x1002000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 8
+    },
+    "engineBuild": {
+      "engineHash": "75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 0001a43c /system/lib/libc.so (abort+63)\n#01 002bce85 <...>/lib/arm/libflutter.so (offset 0x1002000)\n                                         dart::Assert::Fail(char const*, ...)\n                                         third_party/dart/runtime/platform/assert.cc:44:3\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test02.input.txt b/github-label-notifier/symbolizer/test/data/test02.input.txt
new file mode 100644
index 0000000..d241b30
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test02.input.txt
@@ -0,0 +1,30 @@
+@flutter-symbolizer-bot debug
+
+```bash
+0000-00-00 00:00:00.000 11111-22222/? E/Dart: ../../third_party/dart/runtime/vm/zone.cc: 94: error: Out of memory.
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: version=2.10.1 (stable) (Mon Jan 1 00:00:00 XXXX +0000) on "android_arm"
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: pid=11111, thread=22222, isolate_group=main(0x9550b600), isolate=main(0x933c4000)
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: isolate_instructions=969c0e00, vm_instructions=969c0e00
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM:   pc 0x96a85449 fp 0x885fef58 /data/app/com.example.app/lib/arm/libflutter.so+0x1384449
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM:   pc 0x969c0e81 fp 0x885ff014 /data/app/com.example.app/lib/arm/libflutter.so+0x12bfe81
+0000-00-00 00:00:00.000 11111-22222/? E/DartVM: -- End of DumpStackTrace
+0000-00-00 00:00:00.000 11111-22222/? A/libc: Fatal signal 6 (SIGABRT), code -6 in tid 22222 (DartWorker), pid 11111 (example.app)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Build fingerprint: '...:8.1.0/.../...:...'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Revision: '0'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: ABI: 'arm'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: pid: 11111, tid: 22222, name: DartWorker  >>> com.example.app <<<
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r0 00000000  r1 00000000  r2 00000000  r3 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r4 00000000  r5 00000000  r6 00000000  r7 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r8 00000000  r9 00000000  sl 00000000  fp 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     ip 00000000  sp 00000000  lr 00000000  pc 00000000  cpsr 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: backtrace:
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #00 pc 0001a43c  /system/lib/libc.so (abort+63)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #01 pc 002bce85  /data/app/com.example.app/lib/arm/libflutter.so (offset 0x1002000)
+```
+
+```bash
+Doctor summary (to see all details, run flutter doctor -v):
+[✓] Flutter (Channel stable, 1.22.1, on xxxx, locale xxxx)
+```
diff --git a/github-label-notifier/symbolizer/test/data/test03.expected.github.txt b/github-label-notifier/symbolizer/test/data/test03.expected.github.txt
new file mode 100644
index 0000000..722593d
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test03.expected.github.txt
@@ -0,0 +1,49 @@
+crash from null symbolized using symbols for `5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec` `android-arm-debug`
+```
+#00 0107f1b6 <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         neon::HLGish_k(skcms_TransferFunction const*, unsigned int, unsigned int, unsigned int, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&)::'lambda'(float vector[4])::operator()(float vector[4]) const
+                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:0:9
+#01 0107f2bb <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         neon::approx_pow2(float vector[4])
+                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:967:52
+                                         neon::approx_powf(float vector[4], float vector[4])
+                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:977:44
+                                         neon::HLGinvish_k(skcms_TransferFunction const*, unsigned int, unsigned int, unsigned int, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&)::'lambda'(float vector[4])::operator()(float vector[4]) const
+                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:1900:40
+#02 010d077d <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         SkDashImpl::flatten(SkWriteBuffer&) const
+                                         third_party/skia/src/effects/SkDashPathEffect.cpp:372:12
+#03 01049053 <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         SkBitmap::allocPixels(SkBitmap::Allocator*)
+                                         third_party/skia/src/core/SkBitmap.cpp:233:9
+#04 01049ce9 <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         SkBitmapController::State::State(SkImage_Base const*, SkMatrix const&, SkFilterQuality)
+                                         third_party/skia/src/core/SkBitmapController.cpp:109:22
+#05 0103dbf9 <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         flutter::Shell::NotifyLowMemoryWarning() const::$_12::$_12($_12&&)
+                                         flutter/shell/common/shell.cc:449:7
+                                         std::__1::__compressed_pair_elem<flutter::Shell::NotifyLowMemoryWarning() const::$_12, 0, false>::__compressed_pair_elem<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, 0u>(std::__1::piecewise_construct_t, std::__1::tuple<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&>, std::__1::__tuple_indices<0u>)
+                                         third_party/libcxx/include/memory:2155:9
+                                         std::__1::__compressed_pair<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12> >::__compressed_pair<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&>(std::__1::piecewise_construct_t, std::__1::tuple<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&>, std::__1::tuple<std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&>)
+                                         third_party/libcxx/include/memory:2256:9
+                                         std::__1::__function::__alloc_func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>, void ()>::__alloc_func(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&)
+                                         third_party/libcxx/include/functional:1524:11
+                                         std::__1::__function::__func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>, void ()>::__func(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&)
+                                         third_party/libcxx/include/functional:1652:11
+                                         std::__1::__function::__value_func<void ()>::__value_func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12> >(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12> const&)
+                                         third_party/libcxx/include/functional:1773:45
+                                         std::__1::__function::__value_func<void ()>::__value_func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, void>(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&)
+                                         third_party/libcxx/include/functional:1782:11
+                                         std::__1::function<void ()>::function<flutter::Shell::NotifyLowMemoryWarning() const::$_12, void>(flutter::Shell::NotifyLowMemoryWarning() const::$_12)
+                                         third_party/libcxx/include/functional:2362:50
+                                         flutter::Shell::NotifyLowMemoryWarning() const
+                                         flutter/shell/common/shell.cc:449:7
+#06 0103dfc3 <...>/lib/arm/libflutter.so (offset 0x102f000)
+                                         flutter::Shell::OnPlatformViewCreated(std::__1::unique_ptr<flutter::Surface, std::__1::default_delete<flutter::Surface> >)
+                                         flutter/shell/common/shell.cc:712:3
+#07 00047507 /system/lib/libc.so (__pthread_start(void*)+22)
+#08 0001af75 /system/lib/libc.so (__start_thread+32)
+
+```
+_(Defaulted to release engine because build-id is unavailable or unreliable)_
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test03.expected.txt b/github-label-notifier/symbolizer/test/data/test03.expected.txt
new file mode 100644
index 0000000..049bd6a
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test03.expected.txt
@@ -0,0 +1,102 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "debug"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 17297846,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 17298107,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "02",
+          "pc": 17631101,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "03",
+          "pc": 17076307,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "04",
+          "pc": 17079529,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "05",
+          "pc": 17030137,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "06",
+          "pc": 17031107,
+          "binary": "/data/app/com.example.app-/lib/arm/libflutter.so",
+          "rest": " (offset 0x102f000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "07",
+          "pc": 292103,
+          "binary": "/system/lib/libc.so",
+          "rest": " (__pthread_start(void*)+22)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "08",
+          "pc": 110453,
+          "binary": "/system/lib/libc.so",
+          "rest": " (__start_thread+32)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 8
+    },
+    "engineBuild": {
+      "engineHash": "5babba6c4d25fa237bbf755ab85c9a0c50b3c6ec",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 0107f1b6 <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         neon::HLGish_k(skcms_TransferFunction const*, unsigned int, unsigned int, unsigned int, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&)::'lambda'(float vector[4])::operator()(float vector[4]) const\n                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:0:9\n#01 0107f2bb <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         neon::approx_pow2(float vector[4])\n                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:967:52\n                                         neon::approx_powf(float vector[4], float vector[4])\n                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:977:44\n                                         neon::HLGinvish_k(skcms_TransferFunction const*, unsigned int, unsigned int, unsigned int, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&, float vector[4]&)::'lambda'(float vector[4])::operator()(float vector[4]) const\n                                         third_party/skia/src/opts/SkRasterPipeline_opts.h:1900:40\n#02 010d077d <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         SkDashImpl::flatten(SkWriteBuffer&) const\n                                         third_party/skia/src/effects/SkDashPathEffect.cpp:372:12\n#03 01049053 <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         SkBitmap::allocPixels(SkBitmap::Allocator*)\n                                         third_party/skia/src/core/SkBitmap.cpp:233:9\n#04 01049ce9 <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         SkBitmapController::State::State(SkImage_Base const*, SkMatrix const&, SkFilterQuality)\n                                         third_party/skia/src/core/SkBitmapController.cpp:109:22\n#05 0103dbf9 <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         flutter::Shell::NotifyLowMemoryWarning() const::$_12::$_12($_12&&)\n                                         flutter/shell/common/shell.cc:449:7\n                                         std::__1::__compressed_pair_elem<flutter::Shell::NotifyLowMemoryWarning() const::$_12, 0, false>::__compressed_pair_elem<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, 0u>(std::__1::piecewise_construct_t, std::__1::tuple<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&>, std::__1::__tuple_indices<0u>)\n                                         third_party/libcxx/include/memory:2155:9\n                                         std::__1::__compressed_pair<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12> >::__compressed_pair<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&>(std::__1::piecewise_construct_t, std::__1::tuple<flutter::Shell::NotifyLowMemoryWarning() const::$_12&&>, std::__1::tuple<std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&>)\n                                         third_party/libcxx/include/memory:2256:9\n                                         std::__1::__function::__alloc_func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>, void ()>::__alloc_func(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&)\n                                         third_party/libcxx/include/functional:1524:11\n                                         std::__1::__function::__func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>, void ()>::__func(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12>&&)\n                                         third_party/libcxx/include/functional:1652:11\n                                         std::__1::__function::__value_func<void ()>::__value_func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12> >(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&, std::__1::allocator<flutter::Shell::NotifyLowMemoryWarning() const::$_12> const&)\n                                         third_party/libcxx/include/functional:1773:45\n                                         std::__1::__function::__value_func<void ()>::__value_func<flutter::Shell::NotifyLowMemoryWarning() const::$_12, void>(flutter::Shell::NotifyLowMemoryWarning() const::$_12&&)\n                                         third_party/libcxx/include/functional:1782:11\n                                         std::__1::function<void ()>::function<flutter::Shell::NotifyLowMemoryWarning() const::$_12, void>(flutter::Shell::NotifyLowMemoryWarning() const::$_12)\n                                         third_party/libcxx/include/functional:2362:50\n                                         flutter::Shell::NotifyLowMemoryWarning() const\n                                         flutter/shell/common/shell.cc:449:7\n#06 0103dfc3 <...>/lib/arm/libflutter.so (offset 0x102f000)\n                                         flutter::Shell::OnPlatformViewCreated(std::__1::unique_ptr<flutter::Surface, std::__1::default_delete<flutter::Surface> >)\n                                         flutter/shell/common/shell.cc:712:3\n#07 00047507 /system/lib/libc.so (__pthread_start(void*)+22)\n#08 0001af75 /system/lib/libc.so (__start_thread+32)\n",
+    "notes": [
+      {
+        "kind": "defaultedToReleaseBuildIdUnavailable",
+        "message": null
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test03.input.txt b/github-label-notifier/symbolizer/test/data/test03.input.txt
new file mode 100644
index 0000000..d2f2492
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test03.input.txt
@@ -0,0 +1,29 @@
+```
+[  +54 ms] Launching lib\main.dart on Something XYZ in debug mode...
+[ +114 ms] F/libc    (12964): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 13108 (example.app), pid 12964 (example.app)
+[+1325 ms] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+[   +1 ms] Build fingerprint: 'xiaomi/cactus/cactus:8.1.0/O11019/V10.3.8.0.OCBMIXM:user/release-keys'
+[   +1 ms] Revision: '0'
+[   +1 ms] ABI: 'arm'
+[        ] pid: 12964, tid: 13108, name: example.app  >>> com.example.app <<<
+[        ] signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
+[        ] Cause: null pointer dereference
+[   +7 ms] backtrace:
+[   +1 ms]     #00 pc 0107f1b6  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[   +1 ms]     #01 pc 0107f2bb  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[   +1 ms]     #02 pc 010d077d  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[   +1 ms]     #03 pc 01049053  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[   +1 ms]     #04 pc 01049ce9  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[   +1 ms]     #05 pc 0103dbf9  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[   +2 ms]     #06 pc 0103dfc3  /data/app/com.example.app-/lib/arm/libflutter.so (offset 0x102f000)
+[        ]     #07 pc 00047507  /system/lib/libc.so (__pthread_start(void*)+22)
+[        ]     #08 pc 0001af75  /system/lib/libc.so (__start_thread+32)
+```
+
+```
+[√] Flutter (Channel stable, 1.22.0, on Microsoft Windows [Version 10.0.18363.1082], locale en-US)
+    • Flutter version 1.22.0 at ...
+    • Framework revision d408d302e2 (12 days ago), 2020-09-29 11:49:17 -0700
+    • Engine revision 5babba6c4d
+    • Dart version 2.10.0
+```
diff --git a/github-label-notifier/symbolizer/test/data/test04.expected.github.txt b/github-label-notifier/symbolizer/test/data/test04.expected.github.txt
new file mode 100644
index 0000000..58c8910
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test04.expected.github.txt
@@ -0,0 +1,9 @@
+crash from null symbolized using symbols for `07e2520d5d8f837da439317adab4ecd7bff2f72d` `android-arm64-debug`
+```
+#00 00000000013461f4 <...>/lib/arm64/libflutter.so (BuildId: ed61359865ec8404e21864594776b9dcbe60a137)
+                                                   SkImage::peekPixels(SkPixmap*) const
+                                                   third_party/skia/src/image/SkImage.cpp:50:25
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test04.expected.txt b/github-label-notifier/symbolizer/test/data/test04.expected.txt
new file mode 100644
index 0000000..e4279d0
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test04.expected.txt
@@ -0,0 +1,33 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 20210164,
+          "binary": "/data/app/com.example.app/lib/arm64/libflutter.so",
+          "rest": " (BuildId: ed61359865ec8404e21864594776b9dcbe60a137)",
+          "buildId": "ed61359865ec8404e21864594776b9dcbe60a137",
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 10
+    },
+    "engineBuild": {
+      "engineHash": "07e2520d5d8f837da439317adab4ecd7bff2f72d",
+      "variant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 00000000013461f4 <...>/lib/arm64/libflutter.so (BuildId: ed61359865ec8404e21864594776b9dcbe60a137)\n                                                   SkImage::peekPixels(SkPixmap*) const\n                                                   third_party/skia/src/image/SkImage.cpp:50:25\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test04.input.txt b/github-label-notifier/symbolizer/test/data/test04.input.txt
new file mode 100644
index 0000000..e207cc1
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test04.input.txt
@@ -0,0 +1,21 @@
+```
+[ +206 ms] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+[        ] Build fingerprint: 'motorola/river_amz/river:10/QPUS30.52-23-4/6de4a:user/release-keys'
+[        ] Revision: 'PVT'
+[        ] ABI: 'arm64'
+[   +1 ms] Timestamp: 2020-09-12 08:54:59-0400
+[  +23 ms] pid: 6901, tid: 7008, name: com.example.app  >>> com.example.app <<<
+[   +1 ms] uid: 10266
+[        ] signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
+[  +49 ms] Cause: null pointer dereference
+[        ] backtrace:
+[   +1 ms]       #00 pc 00000000013461f4  /data/app/com.example.app/lib/arm64/libflutter.so (BuildId: ed61359865ec8404e21864594776b9dcbe60a137)
+```
+
+```
+[√] Flutter (Channel dev, 1.22.0-9.0.pre, on Microsoft Windows [Version ...], locale en-US)
+    • Flutter version 1.22.0-9.0.pre at ...
+    • Framework revision 7a43175198 (2 weeks ago), 2020-08-28 23:18:04 -0400
+    • Engine revision 07e2520d5d
+    • Dart version 2.10.0 (build 2.10.0-73.0.dev)
+```
diff --git a/github-label-notifier/symbolizer/test/data/test05.expected.github.txt b/github-label-notifier/symbolizer/test/data/test05.expected.github.txt
new file mode 100644
index 0000000..66dff72
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test05.expected.github.txt
@@ -0,0 +1,14 @@
+crash from null symbolized using symbols for `d1bc06f032f9d6c148ea6b96b48261d6f545004f` `android-arm64-debug`
+```
+#00 0000000000633dbc <...>/lib/arm64/libflutter.so (offset 0x1240000)
+                                                   dart::KernelProgramInfo::string_offsets() const
+                                                   third_party/dart/runtime/vm/object.h:5091:48
+                                                   dart::kernel::TranslationHelper::InitFromKernelProgramInfo(dart::KernelProgramInfo const&)
+                                                   third_party/dart/runtime/vm/compiler/frontend/kernel_translation_helper.cc:79:46
+#01 000000000051cca0 <...>/lib/arm64/libflutter.so (offset 0x1240000)
+                                                   dart::DartCompilationPipeline::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool)
+                                                   third_party/dart/runtime/vm/compiler/jit/compiler.cc:138:28
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test05.expected.txt b/github-label-notifier/symbolizer/test/data/test05.expected.txt
new file mode 100644
index 0000000..88961f9
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test05.expected.txt
@@ -0,0 +1,41 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "debug"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 6503868,
+          "binary": "/data/app/com.example.app-2OHRSaHLPfIforBPzoBjfQ==/lib/arm64/libflutter.so",
+          "rest": " (offset 0x1240000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 5360800,
+          "binary": "/data/app/com.example.app-2OHRSaHLPfIforBPzoBjfQ==/lib/arm64/libflutter.so",
+          "rest": " (offset 0x1240000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "d1bc06f032f9d6c148ea6b96b48261d6f545004f",
+      "variant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 0000000000633dbc <...>/lib/arm64/libflutter.so (offset 0x1240000)\n                                                   dart::KernelProgramInfo::string_offsets() const\n                                                   third_party/dart/runtime/vm/object.h:5091:48\n                                                   dart::kernel::TranslationHelper::InitFromKernelProgramInfo(dart::KernelProgramInfo const&)\n                                                   third_party/dart/runtime/vm/compiler/frontend/kernel_translation_helper.cc:79:46\n#01 000000000051cca0 <...>/lib/arm64/libflutter.so (offset 0x1240000)\n                                                   dart::DartCompilationPipeline::BuildFlowGraph(dart::Zone*, dart::ParsedFunction*, dart::ZoneGrowableArray<dart::ICData const*>*, long, bool)\n                                                   third_party/dart/runtime/vm/compiler/jit/compiler.cc:138:28\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test05.input.txt b/github-label-notifier/symbolizer/test/data/test05.input.txt
new file mode 100644
index 0000000..9f494d4
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test05.input.txt
@@ -0,0 +1,22 @@
+@flutter-symbolizer-bot debug
+
+```
+F/libc    (18690): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x36013f in tid 22036 (2.ui)
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+Revision: '0'
+ABI: 'arm64'
+pid: 18690, tid: 22036, name: 2.ui  >>> com.example.app <<<
+backtrace:
+    #00 pc 0000000000633dbc  /data/app/com.example.app-2OHRSaHLPfIforBPzoBjfQ==/lib/arm64/libflutter.so (offset 0x1240000)
+    #01 pc 000000000051cca0  /data/app/com.example.app-2OHRSaHLPfIforBPzoBjfQ==/lib/arm64/libflutter.so (offset 0x1240000)
+```
+
+```
+Flutter 1.20.4 • channel stable • https://github.com/flutter/flutter.git
+Framework • revision fba99f6cf9 (5 days ago) • 2020-09-14 15:32:52 -0700
+Engine • revision d1bc06f032
+Tools • Dart 2.9.2
+```
+
+
+
diff --git a/github-label-notifier/symbolizer/test/data/test06.expected.github.txt b/github-label-notifier/symbolizer/test/data/test06.expected.github.txt
new file mode 100644
index 0000000..8dd9b8c
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test06.expected.github.txt
@@ -0,0 +1,87 @@
+crash from null symbolized using symbols for `499a70f5e21b2d2ee2fd360f2f58579fc29e0c55` `android-arm64-profile`
+```
+#00 00000000012de4ec <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#01 00000000012dcbb4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#02 00000000012dca70 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#03 00000000012cf0d4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#04 00000000012cf9ac <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#05 00000000012d033c <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#06 00000000012cf410 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#07 00000000012cf1e4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#08 00000000012d0598 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#09 0000000001298e74 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#10 000000000129df34 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   ??
+                                                   ??:0:0
+#11 0000000000019d8c /system/lib64/libutils.so (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+#12 0000000000019990 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+#13 0000000000110f74 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+#14 000000000020fadc /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+#15 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#16 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#17 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#18 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#19 000000000067d794 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#20 000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#21 00000000003975ae /system/framework/framework.jar (offset 0x92b000) (android.os.MessageQueue.next+34)
+#22 000000000067b3b8 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#23 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#24 0000000000396964 /system/framework/framework.jar (offset 0x92b000) (android.os.Looper.loop+156)
+#25 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#26 000000000030dc24 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#27 000000000030f00c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#28 0000000000177f40 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#29 000000000013f7d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#30 00000000001a1698 /system/framework/framework.jar (android.app.ActivityThread.main)
+#31 0000000000305d3c /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#32 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#33 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#34 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#35 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#36 000000000055431c /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#37 00000000004d3b28 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#38 00000000000896f4 /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)
+#39 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#40 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#41 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#42 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#43 000000000067b118 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#44 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#45 00000000004492be /system/framework/framework.jar (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
+#46 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#47 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#48 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#49 0000000000897668 /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+#50 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#51 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#52 0000000000552d58 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#53 000000000055320c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#54 000000000043811c /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#55 0000000000099424 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+#56 00000000000a08b0 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+#57 0000000000003580 /system/bin/app_process64 (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)
+#58 0000000000049418 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)
+
+```
+_(Build-ID mismatch: Backtrace refers to bad8640c836d37c147451a3a6ff5fbc721467212 but we used engine with 212dfb5693ad13476239acde23c8ce47d1d91a3a)_
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test06.expected.txt b/github-label-notifier/symbolizer/test/data/test06.expected.txt
new file mode 100644
index 0000000..fa32971
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test06.expected.txt
@@ -0,0 +1,502 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "profile"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 19784940,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 19778484,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "02",
+          "pc": 19778160,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "03",
+          "pc": 19722452,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "04",
+          "pc": 19724716,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "05",
+          "pc": 19727164,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "06",
+          "pc": 19723280,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "07",
+          "pc": 19722724,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "08",
+          "pc": 19727768,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "09",
+          "pc": 19500660,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "10",
+          "pc": 19521332,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "11",
+          "pc": 105868,
+          "binary": "/system/lib64/libutils.so",
+          "rest": " (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)",
+          "buildId": "dfbf9171cc06645d34e6cd7beb8516d6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "12",
+          "pc": 104848,
+          "binary": "/system/lib64/libutils.so",
+          "rest": " (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)",
+          "buildId": "dfbf9171cc06645d34e6cd7beb8516d6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "13",
+          "pc": 1118068,
+          "binary": "/system/lib64/libandroid_runtime.so",
+          "rest": " (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)",
+          "buildId": "d3ad3cbe4c6876e3de4e909ccf51f0b6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "14",
+          "pc": 2161372,
+          "binary": "/system/framework/arm64/boot-framework.oat",
+          "rest": " (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)",
+          "buildId": "c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3",
+          "runtimeType": "android"
+        },
+        {
+          "no": "15",
+          "pc": 1258852,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "16",
+          "pc": 1739384,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "17",
+          "pc": 3244812,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "18",
+          "pc": 3204664,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "19",
+          "pc": 6805396,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "20",
+          "pc": 1235220,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "21",
+          "pc": 3765678,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (offset 0x92b000) (android.os.MessageQueue.next+34)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "22",
+          "pc": 6796216,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "23",
+          "pc": 1234964,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "24",
+          "pc": 3762532,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (offset 0x92b000) (android.os.Looper.loop+156)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "25",
+          "pc": 3169332,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "26",
+          "pc": 3202084,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "27",
+          "pc": 3207180,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "28",
+          "pc": 1539904,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "29",
+          "pc": 1308632,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "30",
+          "pc": 1709720,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (android.app.ActivityThread.main)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "31",
+          "pc": 3169596,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "32",
+          "pc": 6725152,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "33",
+          "pc": 1298424,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "34",
+          "pc": 1259496,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "35",
+          "pc": 1739412,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "36",
+          "pc": 5587740,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "37",
+          "pc": 5061416,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "38",
+          "pc": 562932,
+          "binary": "/apex/com.android.art/javalib/arm64/boot.oat",
+          "rest": " (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)",
+          "buildId": "13577ce71153c228ecf0eb73fc39f45010d487f8",
+          "runtimeType": "android"
+        },
+        {
+          "no": "39",
+          "pc": 1258852,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "40",
+          "pc": 1739384,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "41",
+          "pc": 3244812,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "42",
+          "pc": 3204664,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "43",
+          "pc": 6795544,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "44",
+          "pc": 1234964,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "45",
+          "pc": 4494014,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "46",
+          "pc": 3169332,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "47",
+          "pc": 6725152,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "48",
+          "pc": 1298424,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "49",
+          "pc": 9008744,
+          "binary": "/system/framework/arm64/boot-framework.oat",
+          "rest": " (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)",
+          "buildId": "c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3",
+          "runtimeType": "android"
+        },
+        {
+          "no": "50",
+          "pc": 1259496,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "51",
+          "pc": 1739412,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "52",
+          "pc": 5582168,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "53",
+          "pc": 5583372,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "54",
+          "pc": 4423964,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "55",
+          "pc": 627748,
+          "binary": "/system/lib64/libandroid_runtime.so",
+          "rest": " (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)",
+          "buildId": "d3ad3cbe4c6876e3de4e909ccf51f0b6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "56",
+          "pc": 657584,
+          "binary": "/system/lib64/libandroid_runtime.so",
+          "rest": " (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)",
+          "buildId": "d3ad3cbe4c6876e3de4e909ccf51f0b6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "57",
+          "pc": 13696,
+          "binary": "/system/bin/app_process64",
+          "rest": " (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)",
+          "buildId": "3254c0fd94c1b04edc39169c6c635aac",
+          "runtimeType": "android"
+        },
+        {
+          "no": "58",
+          "pc": 300056,
+          "binary": "/apex/com.android.runtime/lib64/bionic/libc.so",
+          "rest": " (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)",
+          "buildId": "03452a4a418e14ff93948f26561eace6",
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 11
+    },
+    "engineBuild": {
+      "engineHash": "499a70f5e21b2d2ee2fd360f2f58579fc29e0c55",
+      "variant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "profile"
+      }
+    },
+    "symbolized": "#00 00000000012de4ec <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#01 00000000012dcbb4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#02 00000000012dca70 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#03 00000000012cf0d4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#04 00000000012cf9ac <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#05 00000000012d033c <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#06 00000000012cf410 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#07 00000000012cf1e4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#08 00000000012d0598 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#09 0000000001298e74 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#10 000000000129df34 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   ??\n                                                   ??:0:0\n#11 0000000000019d8c /system/lib64/libutils.so (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)\n#12 0000000000019990 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)\n#13 0000000000110f74 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)\n#14 000000000020fadc /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)\n#15 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#16 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#17 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#18 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#19 000000000067d794 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#20 000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#21 00000000003975ae /system/framework/framework.jar (offset 0x92b000) (android.os.MessageQueue.next+34)\n#22 000000000067b3b8 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#23 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#24 0000000000396964 /system/framework/framework.jar (offset 0x92b000) (android.os.Looper.loop+156)\n#25 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#26 000000000030dc24 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#27 000000000030f00c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#28 0000000000177f40 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#29 000000000013f7d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#30 00000000001a1698 /system/framework/framework.jar (android.app.ActivityThread.main)\n#31 0000000000305d3c /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#32 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#33 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#34 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#35 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#36 000000000055431c /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#37 00000000004d3b28 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#38 00000000000896f4 /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)\n#39 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#40 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#41 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#42 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#43 000000000067b118 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#44 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#45 00000000004492be /system/framework/framework.jar (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)\n#46 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#47 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#48 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#49 0000000000897668 /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)\n#50 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#51 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#52 0000000000552d58 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#53 000000000055320c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#54 000000000043811c /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#55 0000000000099424 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)\n#56 00000000000a08b0 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)\n#57 0000000000003580 /system/bin/app_process64 (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)\n#58 0000000000049418 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)\n",
+    "notes": [
+      {
+        "kind": "buildIdMismatch",
+        "message": "Backtrace refers to bad8640c836d37c147451a3a6ff5fbc721467212 but we used engine with 212dfb5693ad13476239acde23c8ce47d1d91a3a"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test06.input.txt b/github-label-notifier/symbolizer/test/data/test06.input.txt
new file mode 100644
index 0000000..023b674
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test06.input.txt
@@ -0,0 +1,90 @@
+@flutter-symbolizer-bot engine#499a70f profile
+
+```
+10-18 11:05:50.120   617   617 I hwservicemanager: getTransport: Cannot find entry android.hardware.graphics.allocator@4.0::IAllocator/default in either framework or device manifest.
+10-18 11:05:50.120 22568 22568 W Gralloc4: allocator 3.x is not supported
+10-18 11:05:50.173 22568 22568 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 22568 (n.platformviews), pid 22568 (n.platformviews)
+10-18 11:05:50.227 22656 22656 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
+10-18 11:05:50.228   892   892 I tombstoned: received crash request for pid 22568
+10-18 11:05:50.228 22656 22656 I crash_dump64: performing dump of process 22568 (target tid = 22568)
+10-18 11:05:50.234 22656 22656 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+10-18 11:05:50.234 22656 22656 F DEBUG   : Build fingerprint: 'google/flame/flame:11/RP1A.200720.009/6720564:user/release-keys'
+10-18 11:05:50.234 22656 22656 F DEBUG   : Revision: 'MP1.0'
+10-18 11:05:50.234 22656 22656 F DEBUG   : ABI: 'arm64'
+10-18 11:05:50.234 22656 22656 F DEBUG   : Timestamp: 2020-10-18 11:05:50-0700
+10-18 11:05:50.234 22656 22656 F DEBUG   : pid: 22568, tid: 22568, name: n.platformviews  >>> io.flutter.integration.platformviews <<<
+10-18 11:05:50.234 22656 22656 F DEBUG   : uid: 10466
+10-18 11:05:50.234 22656 22656 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
+10-18 11:05:50.234 22656 22656 F DEBUG   : Cause: null pointer dereference
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x0  0000000000000000  x1  0000000000000000  x2  0000007fee1c8ad0  x3  0000007fee1c8ac0
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x4  0000007fee1c8ab0  x5  00000076aefffc4d  x6  0000000000000339  x7  0000000000000437
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x8  0000000000000000  x9  0000000000000000  x10 0000000000000000  x11 0000000000000000
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x12 0000000000000000  x13 0000000000000000  x14 0000000000000002  x15 00000079ad34a090
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x16 00000076a9833178  x17 00000079ac09fad4  x18 00000079ae724000  x19 00000077482eccd0
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x20 000000779832e6b0  x21 0000007fee1c8ae0  x22 00000077482eccd8  x23 0000007fee1c8ac0
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x24 0000007fee1c8ab0  x25 000000779832e6b0  x26 0000000000000438  x27 0000000000000339
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x28 0000000000000437  x29 0000000000000339
+10-18 11:05:50.234 22656 22656 F DEBUG   :     lr  00000076a90e64cc  sp  0000007fee1c8920  pc  00000076a90e64ec  pst 0000000060000000
+10-18 11:05:50.420 22656 22656 F DEBUG   : backtrace:
+10-18 11:05:50.420 22656 22656 F DEBUG   :       #00 pc 00000000012de4ec  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.420 22656 22656 F DEBUG   :       #01 pc 00000000012dcbb4  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #02 pc 00000000012dca70  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #03 pc 00000000012cf0d4  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #04 pc 00000000012cf9ac  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #05 pc 00000000012d033c  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #06 pc 00000000012cf410  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #07 pc 00000000012cf1e4  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #08 pc 00000000012d0598  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #09 pc 0000000001298e74  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #10 pc 000000000129df34  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #11 pc 0000000000019d8c  /system/lib64/libutils.so (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #12 pc 0000000000019990  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #13 pc 0000000000110f74  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #14 pc 000000000020fadc  /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #15 pc 0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #16 pc 00000000001a8a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #17 pc 000000000031830c  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #18 pc 000000000030e638  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #19 pc 000000000067d794  /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #20 pc 000000000012d914  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #21 pc 00000000003975ae  /system/framework/framework.jar (offset 0x92b000) (android.os.MessageQueue.next+34)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #22 pc 000000000067b3b8  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #23 pc 000000000012d814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #24 pc 0000000000396964  /system/framework/framework.jar (offset 0x92b000) (android.os.Looper.loop+156)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #25 pc 0000000000305c34  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #26 pc 000000000030dc24  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #27 pc 000000000030f00c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #28 pc 0000000000177f40  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #29 pc 000000000013f7d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #30 pc 00000000001a1698  /system/framework/framework.jar (android.app.ActivityThread.main)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #31 pc 0000000000305d3c  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #32 pc 0000000000669e20  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #33 pc 000000000013cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #34 pc 00000000001337e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #35 pc 00000000001a8a94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #36 pc 000000000055431c  /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #37 pc 00000000004d3b28  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #38 pc 00000000000896f4  /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #39 pc 0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #40 pc 00000000001a8a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #41 pc 000000000031830c  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #42 pc 000000000030e638  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #43 pc 000000000067b118  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #44 pc 000000000012d814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #45 pc 00000000004492be  /system/framework/framework.jar (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #46 pc 0000000000305c34  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #47 pc 0000000000669e20  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #48 pc 000000000013cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #49 pc 0000000000897668  /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #50 pc 00000000001337e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #51 pc 00000000001a8a94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #52 pc 0000000000552d58  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #53 pc 000000000055320c  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #54 pc 000000000043811c  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #55 pc 0000000000099424  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #56 pc 00000000000a08b0  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #57 pc 0000000000003580  /system/bin/app_process64 (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #58 pc 0000000000049418  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)
+10-18 11:05:50.432   938  1052 D VSC     : @ 2171979.791: [WO] tilt angle 89
+
+```
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test07.expected.github.txt b/github-label-notifier/symbolizer/test/data/test07.expected.github.txt
new file mode 100644
index 0000000..e60ad19
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test07.expected.github.txt
@@ -0,0 +1,109 @@
+crash from null symbolized using symbols for `499a70f5e21b2d2ee2fd360f2f58579fc29e0c55` `android-arm64-debug`
+```
+#00 00000000012de4ec <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::SurfacePool::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::AndroidContext>, std::__1::shared_ptr<flutter::PlatformViewAndroidJNI>, std::__1::shared_ptr<flutter::AndroidSurfaceFactory>)
+                                                   flutter/shell/platform/android/external_view_embedder/surface_pool.cc:36:26
+#01 00000000012dcbb4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::AndroidExternalViewEmbedder::CreateSurfaceIfNeeded(GrDirectContext*, long, sk_sp<SkPicture>, SkRect const&)
+                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:192:56
+#02 00000000012dca70 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::AndroidExternalViewEmbedder::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)
+                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:174:11
+#03 00000000012cf0d4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::Rasterizer::DrawToSurface(flutter::LayerTree&)
+                                                   flutter/shell/common/rasterizer.cc:473:31
+#04 00000000012cf9ac <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::Rasterizer::DoDraw(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)
+                                                   flutter/shell/common/rasterizer.cc:338:32
+#05 00000000012d033c <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const
+                                                   flutter/shell/common/rasterizer.cc:172:27
+                                                   decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&>(fp)(std::__1::forward<std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(fp0))) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                                                   third_party/libcxx/include/type_traits:3530:1
+                                                   void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                                                   third_party/libcxx/include/__functional_base:348:9
+                                                   std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                                                   third_party/libcxx/include/functional:1533:16
+                                                   std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                                                   third_party/libcxx/include/functional:1707:12
+#06 00000000012cf410 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const
+                                                   third_party/libcxx/include/functional:2419:12
+                                                   flutter::Pipeline<flutter::LayerTree>::Consume(std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)> const&)
+                                                   flutter/shell/common/pipeline.h:161:7
+#07 00000000012cf1e4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)
+                                                   flutter/shell/common/rasterizer.cc:176:52
+#08 00000000012d0598 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2::operator()() const
+                                                   flutter/shell/common/rasterizer.cc:207:26
+                                                   decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&>(fp)()) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&>(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&)
+                                                   third_party/libcxx/include/type_traits:3530:1
+                                                   void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&>(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&)
+                                                   third_party/libcxx/include/__functional_base:348:9
+                                                   std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2>, void ()>::operator()()
+                                                   third_party/libcxx/include/functional:1533:16
+                                                   std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2>, void ()>::operator()()
+                                                   third_party/libcxx/include/functional:1707:12
+#09 0000000001298e74 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   std::__1::function<void ()>::operator()() const
+                                                   third_party/libcxx/include/functional:2419:12
+                                                   fml::MessageLoopImpl::FlushTasks(fml::FlushType)
+                                                   flutter/fml/message_loop_impl.cc:130:5
+#10 000000000129df34 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+                                                   fml::MessageLoopAndroid::MessageLoopAndroid()::$_0::operator()(int, int, void*) const
+                                                   flutter/fml/platform/android/message_loop_android.cc:42:52
+                                                   fml::MessageLoopAndroid::MessageLoopAndroid()::$_0::__invoke(int, int, void*)
+                                                   flutter/fml/platform/android/message_loop_android.cc:40:40
+#11 0000000000019d8c /system/lib64/libutils.so (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+#12 0000000000019990 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+#13 0000000000110f74 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+#14 000000000020fadc /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+#15 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#16 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#17 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#18 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#19 000000000067d794 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#20 000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#21 00000000003975ae /system/framework/framework.jar (offset 0x92b000) (android.os.MessageQueue.next+34)
+#22 000000000067b3b8 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#23 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#24 0000000000396964 /system/framework/framework.jar (offset 0x92b000) (android.os.Looper.loop+156)
+#25 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#26 000000000030dc24 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#27 000000000030f00c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#28 0000000000177f40 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#29 000000000013f7d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#30 00000000001a1698 /system/framework/framework.jar (android.app.ActivityThread.main)
+#31 0000000000305d3c /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#32 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#33 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#34 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#35 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#36 000000000055431c /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#37 00000000004d3b28 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#38 00000000000896f4 /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)
+#39 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#40 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#41 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#42 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#43 000000000067b118 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#44 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#45 00000000004492be /system/framework/framework.jar (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
+#46 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#47 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#48 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#49 0000000000897668 /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+#50 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#51 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#52 0000000000552d58 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#53 000000000055320c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#54 000000000043811c /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+#55 0000000000099424 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+#56 00000000000a08b0 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+#57 0000000000003580 /system/bin/app_process64 (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)
+#58 0000000000049418 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test07.expected.txt b/github-label-notifier/symbolizer/test/data/test07.expected.txt
new file mode 100644
index 0000000..05a519f
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test07.expected.txt
@@ -0,0 +1,497 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 19784940,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 19778484,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "02",
+          "pc": 19778160,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "03",
+          "pc": 19722452,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "04",
+          "pc": 19724716,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "05",
+          "pc": 19727164,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "06",
+          "pc": 19723280,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "07",
+          "pc": 19722724,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "08",
+          "pc": 19727768,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "09",
+          "pc": 19500660,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "10",
+          "pc": 19521332,
+          "binary": "/data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)",
+          "buildId": "bad8640c836d37c147451a3a6ff5fbc721467212",
+          "runtimeType": "android"
+        },
+        {
+          "no": "11",
+          "pc": 105868,
+          "binary": "/system/lib64/libutils.so",
+          "rest": " (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)",
+          "buildId": "dfbf9171cc06645d34e6cd7beb8516d6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "12",
+          "pc": 104848,
+          "binary": "/system/lib64/libutils.so",
+          "rest": " (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)",
+          "buildId": "dfbf9171cc06645d34e6cd7beb8516d6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "13",
+          "pc": 1118068,
+          "binary": "/system/lib64/libandroid_runtime.so",
+          "rest": " (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)",
+          "buildId": "d3ad3cbe4c6876e3de4e909ccf51f0b6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "14",
+          "pc": 2161372,
+          "binary": "/system/framework/arm64/boot-framework.oat",
+          "rest": " (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)",
+          "buildId": "c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3",
+          "runtimeType": "android"
+        },
+        {
+          "no": "15",
+          "pc": 1258852,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "16",
+          "pc": 1739384,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "17",
+          "pc": 3244812,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "18",
+          "pc": 3204664,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "19",
+          "pc": 6805396,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "20",
+          "pc": 1235220,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "21",
+          "pc": 3765678,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (offset 0x92b000) (android.os.MessageQueue.next+34)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "22",
+          "pc": 6796216,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "23",
+          "pc": 1234964,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "24",
+          "pc": 3762532,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (offset 0x92b000) (android.os.Looper.loop+156)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "25",
+          "pc": 3169332,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "26",
+          "pc": 3202084,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "27",
+          "pc": 3207180,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "28",
+          "pc": 1539904,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "29",
+          "pc": 1308632,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "30",
+          "pc": 1709720,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (android.app.ActivityThread.main)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "31",
+          "pc": 3169596,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "32",
+          "pc": 6725152,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "33",
+          "pc": 1298424,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "34",
+          "pc": 1259496,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "35",
+          "pc": 1739412,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "36",
+          "pc": 5587740,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "37",
+          "pc": 5061416,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "38",
+          "pc": 562932,
+          "binary": "/apex/com.android.art/javalib/arm64/boot.oat",
+          "rest": " (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)",
+          "buildId": "13577ce71153c228ecf0eb73fc39f45010d487f8",
+          "runtimeType": "android"
+        },
+        {
+          "no": "39",
+          "pc": 1258852,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "40",
+          "pc": 1739384,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "41",
+          "pc": 3244812,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "42",
+          "pc": 3204664,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "43",
+          "pc": 6795544,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "44",
+          "pc": 1234964,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "45",
+          "pc": 4494014,
+          "binary": "/system/framework/framework.jar",
+          "rest": " (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "46",
+          "pc": 3169332,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "47",
+          "pc": 6725152,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "48",
+          "pc": 1298424,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "49",
+          "pc": 9008744,
+          "binary": "/system/framework/arm64/boot-framework.oat",
+          "rest": " (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)",
+          "buildId": "c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3",
+          "runtimeType": "android"
+        },
+        {
+          "no": "50",
+          "pc": 1259496,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "51",
+          "pc": 1739412,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "52",
+          "pc": 5582168,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "53",
+          "pc": 5583372,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "54",
+          "pc": 4423964,
+          "binary": "/apex/com.android.art/lib64/libart.so",
+          "rest": " (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)",
+          "buildId": "0252adff22f4c0297f97cb35735c7649",
+          "runtimeType": "android"
+        },
+        {
+          "no": "55",
+          "pc": 627748,
+          "binary": "/system/lib64/libandroid_runtime.so",
+          "rest": " (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)",
+          "buildId": "d3ad3cbe4c6876e3de4e909ccf51f0b6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "56",
+          "pc": 657584,
+          "binary": "/system/lib64/libandroid_runtime.so",
+          "rest": " (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)",
+          "buildId": "d3ad3cbe4c6876e3de4e909ccf51f0b6",
+          "runtimeType": "android"
+        },
+        {
+          "no": "57",
+          "pc": 13696,
+          "binary": "/system/bin/app_process64",
+          "rest": " (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)",
+          "buildId": "3254c0fd94c1b04edc39169c6c635aac",
+          "runtimeType": "android"
+        },
+        {
+          "no": "58",
+          "pc": 300056,
+          "binary": "/apex/com.android.runtime/lib64/bionic/libc.so",
+          "rest": " (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)",
+          "buildId": "03452a4a418e14ff93948f26561eace6",
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 11
+    },
+    "engineBuild": {
+      "engineHash": "499a70f5e21b2d2ee2fd360f2f58579fc29e0c55",
+      "variant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 00000000012de4ec <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::SurfacePool::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::AndroidContext>, std::__1::shared_ptr<flutter::PlatformViewAndroidJNI>, std::__1::shared_ptr<flutter::AndroidSurfaceFactory>)\n                                                   flutter/shell/platform/android/external_view_embedder/surface_pool.cc:36:26\n#01 00000000012dcbb4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::AndroidExternalViewEmbedder::CreateSurfaceIfNeeded(GrDirectContext*, long, sk_sp<SkPicture>, SkRect const&)\n                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:192:56\n#02 00000000012dca70 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::AndroidExternalViewEmbedder::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)\n                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:174:11\n#03 00000000012cf0d4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::Rasterizer::DrawToSurface(flutter::LayerTree&)\n                                                   flutter/shell/common/rasterizer.cc:473:31\n#04 00000000012cf9ac <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::Rasterizer::DoDraw(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)\n                                                   flutter/shell/common/rasterizer.cc:338:32\n#05 00000000012d033c <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const\n                                                   flutter/shell/common/rasterizer.cc:172:27\n                                                   decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&>(fp)(std::__1::forward<std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(fp0))) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                                                   third_party/libcxx/include/type_traits:3530:1\n                                                   void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                                                   third_party/libcxx/include/__functional_base:348:9\n                                                   std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                                                   third_party/libcxx/include/functional:1533:16\n                                                   std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                                                   third_party/libcxx/include/functional:1707:12\n#06 00000000012cf410 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const\n                                                   third_party/libcxx/include/functional:2419:12\n                                                   flutter::Pipeline<flutter::LayerTree>::Consume(std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)> const&)\n                                                   flutter/shell/common/pipeline.h:161:7\n#07 00000000012cf1e4 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)\n                                                   flutter/shell/common/rasterizer.cc:176:52\n#08 00000000012d0598 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2::operator()() const\n                                                   flutter/shell/common/rasterizer.cc:207:26\n                                                   decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&>(fp)()) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&>(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&)\n                                                   third_party/libcxx/include/type_traits:3530:1\n                                                   void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&>(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2&)\n                                                   third_party/libcxx/include/__functional_base:348:9\n                                                   std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2>, void ()>::operator()()\n                                                   third_party/libcxx/include/functional:1533:16\n                                                   std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_2>, void ()>::operator()()\n                                                   third_party/libcxx/include/functional:1707:12\n#09 0000000001298e74 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   std::__1::function<void ()>::operator()() const\n                                                   third_party/libcxx/include/functional:2419:12\n                                                   fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                                                   flutter/fml/message_loop_impl.cc:130:5\n#10 000000000129df34 <...>/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)\n                                                   fml::MessageLoopAndroid::MessageLoopAndroid()::$_0::operator()(int, int, void*) const\n                                                   flutter/fml/platform/android/message_loop_android.cc:42:52\n                                                   fml::MessageLoopAndroid::MessageLoopAndroid()::$_0::__invoke(int, int, void*)\n                                                   flutter/fml/platform/android/message_loop_android.cc:40:40\n#11 0000000000019d8c /system/lib64/libutils.so (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)\n#12 0000000000019990 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)\n#13 0000000000110f74 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)\n#14 000000000020fadc /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)\n#15 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#16 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#17 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#18 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#19 000000000067d794 /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#20 000000000012d914 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#21 00000000003975ae /system/framework/framework.jar (offset 0x92b000) (android.os.MessageQueue.next+34)\n#22 000000000067b3b8 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#23 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#24 0000000000396964 /system/framework/framework.jar (offset 0x92b000) (android.os.Looper.loop+156)\n#25 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#26 000000000030dc24 /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#27 000000000030f00c /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#28 0000000000177f40 /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#29 000000000013f7d8 /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#30 00000000001a1698 /system/framework/framework.jar (android.app.ActivityThread.main)\n#31 0000000000305d3c /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#32 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#33 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#34 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#35 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#36 000000000055431c /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#37 00000000004d3b28 /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#38 00000000000896f4 /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)\n#39 0000000000133564 /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#40 00000000001a8a78 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#41 000000000031830c /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#42 000000000030e638 /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#43 000000000067b118 /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#44 000000000012d814 /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#45 00000000004492be /system/framework/framework.jar (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)\n#46 0000000000305c34 /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#47 0000000000669e20 /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#48 000000000013cff8 /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#49 0000000000897668 /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)\n#50 00000000001337e8 /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#51 00000000001a8a94 /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#52 0000000000552d58 /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#53 000000000055320c /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#54 000000000043811c /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)\n#55 0000000000099424 /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)\n#56 00000000000a08b0 /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)\n#57 0000000000003580 /system/bin/app_process64 (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)\n#58 0000000000049418 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test07.input.txt b/github-label-notifier/symbolizer/test/data/test07.input.txt
new file mode 100644
index 0000000..74be1de
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test07.input.txt
@@ -0,0 +1,90 @@
+@flutter-symbolizer-bot engine#499a70f
+
+```
+10-18 11:05:50.120   617   617 I hwservicemanager: getTransport: Cannot find entry android.hardware.graphics.allocator@4.0::IAllocator/default in either framework or device manifest.
+10-18 11:05:50.120 22568 22568 W Gralloc4: allocator 3.x is not supported
+10-18 11:05:50.173 22568 22568 F libc    : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 22568 (n.platformviews), pid 22568 (n.platformviews)
+10-18 11:05:50.227 22656 22656 I crash_dump64: obtaining output fd from tombstoned, type: kDebuggerdTombstone
+10-18 11:05:50.228   892   892 I tombstoned: received crash request for pid 22568
+10-18 11:05:50.228 22656 22656 I crash_dump64: performing dump of process 22568 (target tid = 22568)
+10-18 11:05:50.234 22656 22656 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+10-18 11:05:50.234 22656 22656 F DEBUG   : Build fingerprint: 'google/flame/flame:11/RP1A.200720.009/6720564:user/release-keys'
+10-18 11:05:50.234 22656 22656 F DEBUG   : Revision: 'MP1.0'
+10-18 11:05:50.234 22656 22656 F DEBUG   : ABI: 'arm64'
+10-18 11:05:50.234 22656 22656 F DEBUG   : Timestamp: 2020-10-18 11:05:50-0700
+10-18 11:05:50.234 22656 22656 F DEBUG   : pid: 22568, tid: 22568, name: n.platformviews  >>> io.flutter.integration.platformviews <<<
+10-18 11:05:50.234 22656 22656 F DEBUG   : uid: 10466
+10-18 11:05:50.234 22656 22656 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
+10-18 11:05:50.234 22656 22656 F DEBUG   : Cause: null pointer dereference
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x0  0000000000000000  x1  0000000000000000  x2  0000007fee1c8ad0  x3  0000007fee1c8ac0
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x4  0000007fee1c8ab0  x5  00000076aefffc4d  x6  0000000000000339  x7  0000000000000437
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x8  0000000000000000  x9  0000000000000000  x10 0000000000000000  x11 0000000000000000
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x12 0000000000000000  x13 0000000000000000  x14 0000000000000002  x15 00000079ad34a090
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x16 00000076a9833178  x17 00000079ac09fad4  x18 00000079ae724000  x19 00000077482eccd0
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x20 000000779832e6b0  x21 0000007fee1c8ae0  x22 00000077482eccd8  x23 0000007fee1c8ac0
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x24 0000007fee1c8ab0  x25 000000779832e6b0  x26 0000000000000438  x27 0000000000000339
+10-18 11:05:50.234 22656 22656 F DEBUG   :     x28 0000000000000437  x29 0000000000000339
+10-18 11:05:50.234 22656 22656 F DEBUG   :     lr  00000076a90e64cc  sp  0000007fee1c8920  pc  00000076a90e64ec  pst 0000000060000000
+10-18 11:05:50.420 22656 22656 F DEBUG   : backtrace:
+10-18 11:05:50.420 22656 22656 F DEBUG   :       #00 pc 00000000012de4ec  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.420 22656 22656 F DEBUG   :       #01 pc 00000000012dcbb4  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #02 pc 00000000012dca70  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #03 pc 00000000012cf0d4  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #04 pc 00000000012cf9ac  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #05 pc 00000000012d033c  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #06 pc 00000000012cf410  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #07 pc 00000000012cf1e4  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #08 pc 00000000012d0598  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #09 pc 0000000001298e74  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #10 pc 000000000129df34  /data/app/~~26h8wU6-ipZ3oX50ip-uBA==/io.flutter.integration.platformviews-SzfN5V-3ue43jUkolPPxKw==/lib/arm64/libflutter.so (BuildId: bad8640c836d37c147451a3a6ff5fbc721467212)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #11 pc 0000000000019d8c  /system/lib64/libutils.so (android::Looper::pollInner(int)+916) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #12 pc 0000000000019990  /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112) (BuildId: dfbf9171cc06645d34e6cd7beb8516d6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #13 pc 0000000000110f74  /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #14 pc 000000000020fadc  /system/framework/arm64/boot-framework.oat (art_jni_trampoline+140) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #15 pc 0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #16 pc 00000000001a8a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #17 pc 000000000031830c  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #18 pc 000000000030e638  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #19 pc 000000000067d794  /apex/com.android.art/lib64/libart.so (MterpInvokeDirect+576) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #20 pc 000000000012d914  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_direct+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #21 pc 00000000003975ae  /system/framework/framework.jar (offset 0x92b000) (android.os.MessageQueue.next+34)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #22 pc 000000000067b3b8  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+1520) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #23 pc 000000000012d814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #24 pc 0000000000396964  /system/framework/framework.jar (offset 0x92b000) (android.os.Looper.loop+156)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #25 pc 0000000000305c34  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #26 pc 000000000030dc24  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #27 pc 000000000030f00c  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, true>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+1772) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #28 pc 0000000000177f40  /apex/com.android.art/lib64/libart.so (void art::interpreter::ExecuteSwitchImplCpp<true, false>(art::interpreter::SwitchImplContext*)+57848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #29 pc 000000000013f7d8  /apex/com.android.art/lib64/libart.so (ExecuteSwitchImplAsm+8) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #30 pc 00000000001a1698  /system/framework/framework.jar (android.app.ActivityThread.main)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #31 pc 0000000000305d3c  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+532) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #32 pc 0000000000669e20  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #33 pc 000000000013cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #34 pc 00000000001337e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #35 pc 00000000001a8a94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #36 pc 000000000055431c  /apex/com.android.art/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1364) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #37 pc 00000000004d3b28  /apex/com.android.art/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #38 pc 00000000000896f4  /apex/com.android.art/javalib/arm64/boot.oat (art_jni_trampoline+180) (BuildId: 13577ce71153c228ecf0eb73fc39f45010d487f8)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #39 pc 0000000000133564  /apex/com.android.art/lib64/libart.so (art_quick_invoke_stub+548) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #40 pc 00000000001a8a78  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #41 pc 000000000031830c  /apex/com.android.art/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+376) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #42 pc 000000000030e638  /apex/com.android.art/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+996) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #43 pc 000000000067b118  /apex/com.android.art/lib64/libart.so (MterpInvokeVirtual+848) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #44 pc 000000000012d814  /apex/com.android.art/lib64/libart.so (mterp_op_invoke_virtual+20) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #45 pc 00000000004492be  /system/framework/framework.jar (offset 0x125d000) (com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run+22)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #46 pc 0000000000305c34  /apex/com.android.art/lib64/libart.so (art::interpreter::Execute(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame&, art::JValue, bool, bool) (.llvm.16249794272548105830)+268) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #47 pc 0000000000669e20  /apex/com.android.art/lib64/libart.so (artQuickToInterpreterBridge+780) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #48 pc 000000000013cff8  /apex/com.android.art/lib64/libart.so (art_quick_to_interpreter_bridge+88) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #49 pc 0000000000897668  /system/framework/arm64/boot-framework.oat (com.android.internal.os.ZygoteInit.main+2280) (BuildId: c0c6ddca30ccdc4ccaf4b39f4e24792c1ce6f6d3)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #50 pc 00000000001337e8  /apex/com.android.art/lib64/libart.so (art_quick_invoke_static_stub+568) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #51 pc 00000000001a8a94  /apex/com.android.art/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+228) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #52 pc 0000000000552d58  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<art::ArtMethod*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, art::ArtMethod*, std::__va_list)+448) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #53 pc 000000000055320c  /apex/com.android.art/lib64/libart.so (art::JValue art::InvokeWithVarArgs<_jmethodID*>(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, std::__va_list)+92) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #54 pc 000000000043811c  /apex/com.android.art/lib64/libart.so (art::JNI<true>::CallStaticVoidMethodV(_JNIEnv*, _jclass*, _jmethodID*, std::__va_list)+656) (BuildId: 0252adff22f4c0297f97cb35735c7649)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #55 pc 0000000000099424  /system/lib64/libandroid_runtime.so (_JNIEnv::CallStaticVoidMethod(_jclass*, _jmethodID*, ...)+124) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #56 pc 00000000000a08b0  /system/lib64/libandroid_runtime.so (android::AndroidRuntime::start(char const*, android::Vector<android::String8> const&, bool)+836) (BuildId: d3ad3cbe4c6876e3de4e909ccf51f0b6)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #57 pc 0000000000003580  /system/bin/app_process64 (main+1336) (BuildId: 3254c0fd94c1b04edc39169c6c635aac)
+10-18 11:05:50.421 22656 22656 F DEBUG   :       #58 pc 0000000000049418  /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+108) (BuildId: 03452a4a418e14ff93948f26561eace6)
+10-18 11:05:50.432   938  1052 D VSC     : @ 2171979.791: [WO] tilt angle 89
+
+```
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test08.expected.github.txt b/github-label-notifier/symbolizer/test/data/test08.expected.github.txt
new file mode 100644
index 0000000..5ab32ae
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test08.expected.github.txt
@@ -0,0 +1,16 @@
+crash from null symbolized using symbols for `499a70f5e21b2d2ee2fd360f2f58579fc29e0c55` `android-arm64-profile`
+```
+#00 0000000000b92598 <...>/lib/arm64/libflutter.so (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)
+                                                   OUTLINED_FUNCTION_7710
+                                                   ??:0:0
+#01 00000000006e083c <...>/lib/arm64/libflutter.so (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)
+                                                   flutter::SurfacePool::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::AndroidContext>, std::__1::shared_ptr<flutter::PlatformViewAndroidJNI>, std::__1::shared_ptr<flutter::AndroidSurfaceFactory>)
+                                                   flutter/shell/platform/android/external_view_embedder/surface_pool.cc:0:7
+                                                   flutter::AndroidExternalViewEmbedder::CreateSurfaceIfNeeded(GrDirectContext*, long, sk_sp<SkPicture>, SkRect const&)
+                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:192:56
+                                                   flutter::AndroidExternalViewEmbedder::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)
+                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:174:11
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test08.expected.txt b/github-label-notifier/symbolizer/test/data/test08.expected.txt
new file mode 100644
index 0000000..e278f4c
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test08.expected.txt
@@ -0,0 +1,41 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 12133784,
+          "binary": "/data/app/io.flutter.integration.platformviews-Uh7C5I-KFJChGzUncdxDdw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)",
+          "buildId": "212dfb5693ad13476239acde23c8ce47d1d91a3a",
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 7211068,
+          "binary": "/data/app/io.flutter.integration.platformviews-Uh7C5I-KFJChGzUncdxDdw==/lib/arm64/libflutter.so",
+          "rest": " (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)",
+          "buildId": "212dfb5693ad13476239acde23c8ce47d1d91a3a",
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 10
+    },
+    "engineBuild": {
+      "engineHash": "499a70f5e21b2d2ee2fd360f2f58579fc29e0c55",
+      "variant": {
+        "os": "android",
+        "arch": "arm64",
+        "mode": "profile"
+      }
+    },
+    "symbolized": "#00 0000000000b92598 <...>/lib/arm64/libflutter.so (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)\n                                                   OUTLINED_FUNCTION_7710\n                                                   ??:0:0\n#01 00000000006e083c <...>/lib/arm64/libflutter.so (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)\n                                                   flutter::SurfacePool::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::AndroidContext>, std::__1::shared_ptr<flutter::PlatformViewAndroidJNI>, std::__1::shared_ptr<flutter::AndroidSurfaceFactory>)\n                                                   flutter/shell/platform/android/external_view_embedder/surface_pool.cc:0:7\n                                                   flutter::AndroidExternalViewEmbedder::CreateSurfaceIfNeeded(GrDirectContext*, long, sk_sp<SkPicture>, SkRect const&)\n                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:192:56\n                                                   flutter::AndroidExternalViewEmbedder::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)\n                                                   flutter/shell/platform/android/external_view_embedder/external_view_embedder.cc:174:11\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test08.input.txt b/github-label-notifier/symbolizer/test/data/test08.input.txt
new file mode 100644
index 0000000..8e57d71
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test08.input.txt
@@ -0,0 +1,24 @@
+@flutter-symbolizer-bot engine#499a70f
+
+10-20 16:25:11.188  4954  4954 F DEBUG   : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+10-20 16:25:11.188  4954  4954 F DEBUG   : Build fingerprint: 'google/sargo/sargo:10/QQ1A.200205.003/6293851:userdebug/dev-keys'
+10-20 16:25:11.188  4954  4954 F DEBUG   : Revision: 'MP1.0'
+10-20 16:25:11.188  4954  4954 F DEBUG   : ABI: 'arm64'
+10-20 16:25:11.189  4954  4954 F DEBUG   : Timestamp: 2020-10-20 16:25:11+0200
+10-20 16:25:11.190  4954  4954 F DEBUG   : pid: 4825, tid: 4825, name: n.platformviews  >>> io.flutter.integration.platformviews <<<
+10-20 16:25:11.190  4954  4954 F DEBUG   : uid: 10250
+10-20 16:25:11.190  4954  4954 F DEBUG   : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
+10-20 16:25:11.190  4954  4954 F DEBUG   : Cause: null pointer dereference
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x0  0000007601449a70  x1  0000007febd2eed8  x2  0000000000000000  x3  0000000000000004
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x4  0000007febd2ebb8  x5  000000756c1b205c  x6  0000000000000339  x7  0000000000000437
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x8  0000000000000000  x9  0000000000000000  x10 0000000000000000  x11 0000000000000000
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x12 0000000000000000  x13 0000000000000001  x14 0000000000000000  x15 0000007600ffb090
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x16 00000075fedd18f0  x17 00000075fedc38c0  x18 0000007602152000  x19 0000007febd2eed8
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x20 000000756bd67218  x21 0000000000000438  x22 0000000000000001  x23 00000074fc362fc0
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x24 00000075126b06d8  x25 0000007570899600  x26 00000074fc6dc998  x27 000000756bc6e940
+10-20 16:25:11.190  4954  4954 F DEBUG   :     x28 0000007601449a88  x29 0000000000000000
+10-20 16:25:11.190  4954  4954 F DEBUG   :     sp  0000007febd2ee60  lr  0000007512ca7840  pc  0000007513159598
+10-20 16:25:11.190  4954  4954 F DEBUG   :
+10-20 16:25:11.190  4954  4954 F DEBUG   : backtrace:
+10-20 16:25:11.190  4954  4954 F DEBUG   :       #00 pc 0000000000b92598  /data/app/io.flutter.integration.platformviews-Uh7C5I-KFJChGzUncdxDdw==/lib/arm64/libflutter.so (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)
+10-20 16:25:11.190  4954  4954 F DEBUG   :       #01 pc 00000000006e083c  /data/app/io.flutter.integration.platformviews-Uh7C5I-KFJChGzUncdxDdw==/lib/arm64/libflutter.so (BuildId: 212dfb5693ad13476239acde23c8ce47d1d91a3a)
diff --git a/github-label-notifier/symbolizer/test/data/test09.expected.github.txt b/github-label-notifier/symbolizer/test/data/test09.expected.github.txt
new file mode 100644
index 0000000..3a02f3e
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test09.expected.github.txt
@@ -0,0 +1,772 @@
+crash from null symbolized using symbols for `45b66b722e1275c47dccbe6b002c8e4cb13ea983` `android-x64-debug`
+```
+#00 000000000009b80e /system/lib64/libc.so (je_arena_ralloc+142)
+#01 00000000000b098b /system/lib64/libc.so (je_realloc+283)
+#02 0000000000ed47a5 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    sk_realloc_throw(void*, unsigned long)
+                                                    third_party/skia/src/ports/SkMemory_malloc.cpp:57:35
+#03 0000000000dfd565 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkTDArray<unsigned char>::resizeStorageToAtLeast(int)
+                                                    third_party/skia/include/private/SkTDArray.h:364:22
+#04 0000000000dfd532 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkTDArray<unsigned char>::setCount(int)
+                                                    third_party/skia/include/private/SkTDArray.h:145:19
+#05 0000000000dfd4eb <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkTDArray<unsigned char>::adjustCount(int)
+                                                    third_party/skia/include/private/SkTDArray.h:343:15
+#06 0000000000dfd4a4 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkTDArray<unsigned char>::append(int, unsigned char const*)
+                                                    third_party/skia/include/private/SkTDArray.h:176:19
+#07 0000000000f61ead <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrQuadBuffer<(anonymous namespace)::FillRectOp::ColorAndAA>::concat(GrQuadBuffer<(anonymous namespace)::FillRectOp::ColorAndAA> const&)
+                                                    third_party/skia/src/gpu/geometry/GrQuadBuffer.h:308:11
+                                                    (anonymous namespace)::FillRectOp::onCombineIfPossible(GrOp*, GrCaps const&)
+                                                    third_party/skia/src/gpu/ops/GrFillRectOp.cpp:275:0
+#08 0000000000f6591f <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrOp::combineIfPossible(GrOp*, GrCaps const&)
+                                                    third_party/skia/src/gpu/ops/GrOp.cpp:38:25
+#09 0000000000f403f7 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetOpList::OpChain::tryConcat(GrRenderTargetOpList::OpChain::List*, GrProcessorSet::Analysis, GrXferProcessor::DstProxy const&, GrAppliedClip const*, SkRect const&, GrCaps const&, GrOpMemoryPool*, GrAuditTrail*)
+                                                    third_party/skia/src/gpu/GrRenderTargetOpList.cpp:258:31
+#10 0000000000f406bd <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetOpList::OpChain::appendOp(std::__1::unique_ptr<GrOp, std::__1::default_delete<GrOp> >, GrProcessorSet::Analysis, GrXferProcessor::DstProxy const*, GrAppliedClip const*, GrCaps const&, GrOpMemoryPool*, GrAuditTrail*)
+                                                    third_party/skia/src/gpu/GrRenderTargetOpList.cpp:325:16
+#11 0000000000f410b2 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetOpList::recordOp(std::__1::unique_ptr<GrOp, std::__1::default_delete<GrOp> >, GrProcessorSet::Analysis, GrAppliedClip*, GrXferProcessor::DstProxy const*, GrCaps const&)
+                                                    third_party/skia/src/gpu/GrRenderTargetOpList.cpp:696:28
+#12 0000000000f3f287 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetOpList::addDrawOp(std::__1::unique_ptr<GrDrawOp, std::__1::default_delete<GrDrawOp> >, GrProcessorSet::Analysis const&, GrAppliedClip&&, GrXferProcessor::DstProxy const&, GrCaps const&)
+                                                    third_party/skia/src/gpu/GrRenderTargetOpList.h:91:15
+#13 0000000000f378ce <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetContext::addDrawOp(GrClip const&, std::__1::unique_ptr<GrDrawOp, std::__1::default_delete<GrDrawOp> >, std::__1::function<void (GrOp*, unsigned int)> const&)
+                                                    third_party/skia/src/gpu/GrRenderTargetContext.cpp:2632:13
+#14 0000000000f389d9 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetContext::drawFilledQuad(GrClip const&, GrPaint&&, GrAA, GrQuadAAFlags, GrQuad const&, GrQuad const&, GrUserStencilSettings const*)
+                                                    third_party/skia/src/gpu/GrRenderTargetContext.cpp:717:15
+#15 0000000000e26a7c <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetContext::fillRectToRect(GrClip const&, GrPaint&&, GrAA, SkMatrix const&, SkRect const&, SkRect const&)
+                                                    third_party/skia/src/gpu/GrRenderTargetContext.h:120:15
+#16 0000000000f38b85 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    GrRenderTargetContext::drawRect(GrClip const&, GrPaint&&, GrAA, SkMatrix const&, SkRect const&, GrStyle const*)
+                                                    third_party/skia/src/gpu/GrRenderTargetContext.cpp:745:15
+#17 0000000000fb3e9c <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkGpuDevice::drawRect(SkRect const&, SkPaint const&)
+                                                    third_party/skia/src/gpu/SkGpuDevice.cpp:410:27
+#18 0000000000e0bb07 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawRect(SkRect const&, SkPaint const&)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2126:27
+#19 0000000000e0a42b <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawRect(SkRect const&, SkPaint const&)
+                                                    third_party/skia/src/core/SkCanvas.cpp:1731:11
+#20 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#21 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#22 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#23 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#24 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#25 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#26 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#27 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#28 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#29 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#30 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#31 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#32 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#33 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#34 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#35 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#36 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#37 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#38 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#39 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#40 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#41 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#42 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#43 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#44 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#45 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#46 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#47 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#48 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#49 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#50 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#51 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#52 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#53 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#54 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#55 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#56 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#57 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#58 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#59 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#60 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#61 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#62 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#63 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#64 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#65 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#66 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#67 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#68 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#69 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#70 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#71 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#72 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#73 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#74 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#75 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#76 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#77 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#78 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#79 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#80 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#81 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#82 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#83 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#84 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#85 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#86 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#87 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#88 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#89 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#90 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#91 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#92 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#93 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#94 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#95 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#96 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#97 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5
+#98 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14
+#99 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15
+#100 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#101 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#102 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#103 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#104 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#105 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#106 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#107 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#108 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#109 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#110 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#111 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#112 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#113 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#114 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#115 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#116 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#117 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#118 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#119 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#120 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#121 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#122 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#123 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#124 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#125 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#126 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#127 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#128 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#129 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#130 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#131 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#132 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#133 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#134 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#135 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#136 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#137 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#138 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#139 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#140 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#141 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#142 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#143 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#144 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#145 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#146 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#147 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#148 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#149 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#150 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#151 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#152 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#153 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#154 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#155 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#156 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#157 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#158 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#159 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#160 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#161 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#162 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#163 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#164 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#165 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#166 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#167 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#168 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#169 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#170 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#171 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#172 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#173 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#174 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#175 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#176 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#177 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#178 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#179 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#180 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#181 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#182 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#183 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#184 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#185 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#186 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#187 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#188 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#189 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#190 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#191 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#192 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#193 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#194 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#195 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#196 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#197 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#198 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#199 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#200 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#201 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#202 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#203 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#204 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#205 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#206 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#207 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#208 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#209 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#210 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#211 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#212 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#213 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#214 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#215 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#216 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#217 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#218 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#219 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#220 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#221 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#222 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#223 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#224 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#225 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#226 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#227 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#228 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#229 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#230 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#231 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#232 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#233 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#234 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#235 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#236 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#237 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#238 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#239 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#240 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#241 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#242 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#243 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#244 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#245 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#246 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#247 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#248 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#249 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#250 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#251 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+#252 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)
+                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20
+#253 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const
+                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5
+#254 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14
+#255 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)
+                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)
+                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15
+
+```
+_(Defaulted to release engine because build-id is unavailable or unreliable)_
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test09.expected.txt b/github-label-notifier/symbolizer/test/data/test09.expected.txt
new file mode 100644
index 0000000..44a7c89
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test09.expected.txt
@@ -0,0 +1,2078 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "x64",
+        "mode": "debug"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 636942,
+          "binary": "/system/lib64/libc.so",
+          "rest": " (je_arena_ralloc+142)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 723339,
+          "binary": "/system/lib64/libc.so",
+          "rest": " (je_realloc+283)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "02",
+          "pc": 15550373,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "03",
+          "pc": 14669157,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "04",
+          "pc": 14669106,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "05",
+          "pc": 14669035,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "06",
+          "pc": 14668964,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "07",
+          "pc": 16129709,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "08",
+          "pc": 16144671,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "09",
+          "pc": 15991799,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "10",
+          "pc": 15992509,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "11",
+          "pc": 15995058,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "12",
+          "pc": 15987335,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "13",
+          "pc": 15956174,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "14",
+          "pc": 15960537,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "15",
+          "pc": 14838396,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "16",
+          "pc": 15960965,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "17",
+          "pc": 16465564,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "18",
+          "pc": 14727943,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "19",
+          "pc": 14722091,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "20",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "21",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "22",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "23",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "24",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "25",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "26",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "27",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "28",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "29",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "30",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "31",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "32",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "33",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "34",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "35",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "36",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "37",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "38",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "39",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "40",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "41",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "42",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "43",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "44",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "45",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "46",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "47",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "48",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "49",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "50",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "51",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "52",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "53",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "54",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "55",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "56",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "57",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "58",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "59",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "60",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "61",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "62",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "63",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "64",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "65",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "66",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "67",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "68",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "69",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "70",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "71",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "72",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "73",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "74",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "75",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "76",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "77",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "78",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "79",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "80",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "81",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "82",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "83",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "84",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "85",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "86",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "87",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "88",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "89",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "90",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "91",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "92",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "93",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "94",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "95",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "96",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "97",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "98",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "99",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "100",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "101",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "102",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "103",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "104",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "105",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "106",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "107",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "108",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "109",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "110",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "111",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "112",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "113",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "114",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "115",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "116",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "117",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "118",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "119",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "120",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "121",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "122",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "123",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "124",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "125",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "126",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "127",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "128",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "129",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "130",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "131",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "132",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "133",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "134",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "135",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "136",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "137",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "138",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "139",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "140",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "141",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "142",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "143",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "144",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "145",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "146",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "147",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "148",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "149",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "150",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "151",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "152",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "153",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "154",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "155",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "156",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "157",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "158",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "159",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "160",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "161",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "162",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "163",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "164",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "165",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "166",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "167",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "168",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "169",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "170",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "171",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "172",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "173",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "174",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "175",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "176",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "177",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "178",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "179",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "180",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "181",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "182",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "183",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "184",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "185",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "186",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "187",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "188",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "189",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "190",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "191",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "192",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "193",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "194",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "195",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "196",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "197",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "198",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "199",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "200",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "201",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "202",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "203",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "204",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "205",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "206",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "207",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "208",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "209",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "210",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "211",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "212",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "213",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "214",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "215",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "216",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "217",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "218",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "219",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "220",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "221",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "222",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "223",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "224",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "225",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "226",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "227",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "228",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "229",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "230",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "231",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "232",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "233",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "234",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "235",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "236",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "237",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "238",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "239",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "240",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "241",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "242",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "243",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "244",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "245",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "246",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "247",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "248",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "249",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "250",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "251",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "252",
+          "pc": 14989229,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "253",
+          "pc": 15232841,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "254",
+          "pc": 14736380,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "255",
+          "pc": 14736192,
+          "binary": "/data/app/com.example.app/lib/x86_64/libflutter.so",
+          "rest": " (offset 0xdb0000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 9
+    },
+    "engineBuild": {
+      "engineHash": "45b66b722e1275c47dccbe6b002c8e4cb13ea983",
+      "variant": {
+        "os": "android",
+        "arch": "x64",
+        "mode": "debug"
+      }
+    },
+    "symbolized": "#00 000000000009b80e /system/lib64/libc.so (je_arena_ralloc+142)\n#01 00000000000b098b /system/lib64/libc.so (je_realloc+283)\n#02 0000000000ed47a5 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    sk_realloc_throw(void*, unsigned long)\n                                                    third_party/skia/src/ports/SkMemory_malloc.cpp:57:35\n#03 0000000000dfd565 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkTDArray<unsigned char>::resizeStorageToAtLeast(int)\n                                                    third_party/skia/include/private/SkTDArray.h:364:22\n#04 0000000000dfd532 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkTDArray<unsigned char>::setCount(int)\n                                                    third_party/skia/include/private/SkTDArray.h:145:19\n#05 0000000000dfd4eb <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkTDArray<unsigned char>::adjustCount(int)\n                                                    third_party/skia/include/private/SkTDArray.h:343:15\n#06 0000000000dfd4a4 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkTDArray<unsigned char>::append(int, unsigned char const*)\n                                                    third_party/skia/include/private/SkTDArray.h:176:19\n#07 0000000000f61ead <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrQuadBuffer<(anonymous namespace)::FillRectOp::ColorAndAA>::concat(GrQuadBuffer<(anonymous namespace)::FillRectOp::ColorAndAA> const&)\n                                                    third_party/skia/src/gpu/geometry/GrQuadBuffer.h:308:11\n                                                    (anonymous namespace)::FillRectOp::onCombineIfPossible(GrOp*, GrCaps const&)\n                                                    third_party/skia/src/gpu/ops/GrFillRectOp.cpp:275:0\n#08 0000000000f6591f <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrOp::combineIfPossible(GrOp*, GrCaps const&)\n                                                    third_party/skia/src/gpu/ops/GrOp.cpp:38:25\n#09 0000000000f403f7 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetOpList::OpChain::tryConcat(GrRenderTargetOpList::OpChain::List*, GrProcessorSet::Analysis, GrXferProcessor::DstProxy const&, GrAppliedClip const*, SkRect const&, GrCaps const&, GrOpMemoryPool*, GrAuditTrail*)\n                                                    third_party/skia/src/gpu/GrRenderTargetOpList.cpp:258:31\n#10 0000000000f406bd <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetOpList::OpChain::appendOp(std::__1::unique_ptr<GrOp, std::__1::default_delete<GrOp> >, GrProcessorSet::Analysis, GrXferProcessor::DstProxy const*, GrAppliedClip const*, GrCaps const&, GrOpMemoryPool*, GrAuditTrail*)\n                                                    third_party/skia/src/gpu/GrRenderTargetOpList.cpp:325:16\n#11 0000000000f410b2 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetOpList::recordOp(std::__1::unique_ptr<GrOp, std::__1::default_delete<GrOp> >, GrProcessorSet::Analysis, GrAppliedClip*, GrXferProcessor::DstProxy const*, GrCaps const&)\n                                                    third_party/skia/src/gpu/GrRenderTargetOpList.cpp:696:28\n#12 0000000000f3f287 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetOpList::addDrawOp(std::__1::unique_ptr<GrDrawOp, std::__1::default_delete<GrDrawOp> >, GrProcessorSet::Analysis const&, GrAppliedClip&&, GrXferProcessor::DstProxy const&, GrCaps const&)\n                                                    third_party/skia/src/gpu/GrRenderTargetOpList.h:91:15\n#13 0000000000f378ce <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetContext::addDrawOp(GrClip const&, std::__1::unique_ptr<GrDrawOp, std::__1::default_delete<GrDrawOp> >, std::__1::function<void (GrOp*, unsigned int)> const&)\n                                                    third_party/skia/src/gpu/GrRenderTargetContext.cpp:2632:13\n#14 0000000000f389d9 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetContext::drawFilledQuad(GrClip const&, GrPaint&&, GrAA, GrQuadAAFlags, GrQuad const&, GrQuad const&, GrUserStencilSettings const*)\n                                                    third_party/skia/src/gpu/GrRenderTargetContext.cpp:717:15\n#15 0000000000e26a7c <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetContext::fillRectToRect(GrClip const&, GrPaint&&, GrAA, SkMatrix const&, SkRect const&, SkRect const&)\n                                                    third_party/skia/src/gpu/GrRenderTargetContext.h:120:15\n#16 0000000000f38b85 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    GrRenderTargetContext::drawRect(GrClip const&, GrPaint&&, GrAA, SkMatrix const&, SkRect const&, GrStyle const*)\n                                                    third_party/skia/src/gpu/GrRenderTargetContext.cpp:745:15\n#17 0000000000fb3e9c <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkGpuDevice::drawRect(SkRect const&, SkPaint const&)\n                                                    third_party/skia/src/gpu/SkGpuDevice.cpp:410:27\n#18 0000000000e0bb07 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawRect(SkRect const&, SkPaint const&)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2126:27\n#19 0000000000e0a42b <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawRect(SkRect const&, SkPaint const&)\n                                                    third_party/skia/src/core/SkCanvas.cpp:1731:11\n#20 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#21 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#22 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#23 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#24 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#25 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#26 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#27 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#28 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#29 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#30 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#31 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#32 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#33 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#34 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#35 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#36 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#37 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#38 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#39 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#40 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#41 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#42 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#43 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#44 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#45 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#46 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#47 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#48 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#49 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#50 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#51 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#52 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#53 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#54 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#55 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#56 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#57 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#58 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#59 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#60 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#61 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#62 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#63 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#64 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#65 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#66 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#67 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#68 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#69 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#70 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#71 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#72 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#73 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#74 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#75 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#76 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#77 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#78 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#79 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#80 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#81 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#82 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#83 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#84 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#85 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#86 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#87 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#88 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#89 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#90 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#91 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#92 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#93 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#94 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#95 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#96 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                    third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#97 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                    third_party/skia/src/core/SkBigPicture.cpp:33:5\n#98 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2863:14\n#99 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                    SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                    third_party/skia/src/core/SkCanvas.cpp:2843:15\n#100 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#101 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#102 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#103 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#104 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#105 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#106 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#107 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#108 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#109 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#110 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#111 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#112 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#113 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#114 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#115 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#116 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#117 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#118 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#119 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#120 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#121 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#122 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#123 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#124 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#125 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#126 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#127 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#128 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#129 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#130 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#131 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#132 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#133 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#134 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#135 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#136 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#137 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#138 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#139 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#140 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#141 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#142 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#143 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#144 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#145 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#146 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#147 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#148 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#149 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#150 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#151 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#152 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#153 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#154 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#155 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#156 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#157 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#158 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#159 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#160 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#161 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#162 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#163 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#164 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#165 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#166 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#167 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#168 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#169 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#170 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#171 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#172 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#173 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#174 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#175 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#176 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#177 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#178 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#179 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#180 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#181 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#182 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#183 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#184 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#185 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#186 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#187 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#188 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#189 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#190 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#191 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#192 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#193 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#194 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#195 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#196 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#197 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#198 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#199 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#200 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#201 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#202 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#203 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#204 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#205 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#206 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#207 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#208 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#209 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#210 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#211 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#212 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#213 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#214 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#215 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#216 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#217 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#218 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#219 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#220 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#221 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#222 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#223 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#224 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#225 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#226 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#227 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#228 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#229 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#230 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#231 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#232 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#233 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#234 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#235 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#236 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#237 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#238 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#239 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#240 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#241 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#242 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#243 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#244 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#245 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#246 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#247 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#248 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#249 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#250 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#251 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n#252 0000000000e4b7ad <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkRecordDraw(SkRecord const&, SkCanvas*, SkPicture const* const*, SkDrawable* const*, int, SkBBoxHierarchy const*, SkPicture::AbortCallback*)\n                                                     third_party/skia/src/core/SkRecordDraw.cpp:53:20\n#253 0000000000e86f49 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkBigPicture::playback(SkCanvas*, SkPicture::AbortCallback*) const\n                                                     third_party/skia/src/core/SkBigPicture.cpp:33:5\n#254 0000000000e0dbfc <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::onDrawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2863:14\n#255 0000000000e0db40 <...>/lib/x86_64/libflutter.so (offset 0xdb0000)\n                                                     SkCanvas::drawPicture(SkPicture const*, SkMatrix const*, SkPaint const*)\n                                                     third_party/skia/src/core/SkCanvas.cpp:2843:15\n",
+    "notes": [
+      {
+        "kind": "defaultedToReleaseBuildIdUnavailable",
+        "message": null
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test09.input.txt b/github-label-notifier/symbolizer/test/data/test09.input.txt
new file mode 100644
index 0000000..e16eebe
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test09.input.txt
@@ -0,0 +1,274 @@
+```
+[  +15 ms] Launching lib/main.dart on Android SDK built for x86 64 in debug mode...
+[  +54 ms] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+[        ] Build fingerprint: 'google/sdk_gphone_x86_64/generic_x86_64:9/PSR1.180720.075/5124027:userdebug/dev-keys'
+[        ] Revision: '0'
+[        ] ABI: 'x86_64'
+[        ] pid: 25633, tid: 25655, name: 1.gpu  >>> com.example.app <<<
+[        ] signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0x7bc78465aff8
+[   +9 ms] backtrace:
+[        ]     #00 pc 000000000009b80e  /system/lib64/libc.so (je_arena_ralloc+142)
+[        ]     #01 pc 00000000000b098b  /system/lib64/libc.so (je_realloc+283)
+[        ]     #02 pc 0000000000ed47a5  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #03 pc 0000000000dfd565  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #04 pc 0000000000dfd532  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #05 pc 0000000000dfd4eb  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #06 pc 0000000000dfd4a4  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #07 pc 0000000000f61ead  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #08 pc 0000000000f6591f  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #09 pc 0000000000f403f7  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #10 pc 0000000000f406bd  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #11 pc 0000000000f410b2  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #12 pc 0000000000f3f287  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #13 pc 0000000000f378ce  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #14 pc 0000000000f389d9  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #15 pc 0000000000e26a7c  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #16 pc 0000000000f38b85  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #17 pc 0000000000fb3e9c  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #18 pc 0000000000e0bb07  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #19 pc 0000000000e0a42b  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #20 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #21 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #22 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #23 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #24 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #25 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #26 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #27 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #28 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #29 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #30 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #31 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #32 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #33 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #34 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #35 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #36 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #37 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #38 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #39 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #40 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #41 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #42 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #43 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #44 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #45 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #46 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #47 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #48 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #49 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #50 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #51 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #52 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #53 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #54 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #55 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #56 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #57 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #58 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #59 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #60 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #61 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #62 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #63 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #64 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #65 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #66 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #67 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #68 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #69 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #70 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #71 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #72 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #73 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #74 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #75 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #76 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #77 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #78 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #79 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #80 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #81 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #82 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #83 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #84 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #85 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #86 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #87 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #88 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #89 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #90 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #91 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #92 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #93 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #94 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #95 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #96 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #97 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #98 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #99 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[   +1 ms]     #100 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #101 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #102 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #103 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #104 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #105 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #106 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #107 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #108 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #109 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #110 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #111 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #112 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #113 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #114 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #115 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #116 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #117 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #118 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #119 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #120 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #121 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #122 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #123 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #124 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #125 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #126 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #127 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #128 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #129 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #130 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #131 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #132 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #133 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #134 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #135 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #136 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #137 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #138 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #139 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #140 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #141 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #142 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #143 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #144 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #145 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #146 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #147 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #148 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #149 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #150 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #151 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #152 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #153 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #154 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #155 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #156 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #157 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #158 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #159 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #160 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #161 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #162 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #163 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #164 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #165 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #166 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #167 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #168 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #169 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #170 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #171 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #172 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #173 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #174 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #175 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #176 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #177 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #178 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #179 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #180 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #181 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #182 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #183 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #184 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #185 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #186 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #187 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #188 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #189 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #190 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #191 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #192 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #193 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #194 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #195 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #196 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #197 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #198 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #199 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #200 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #201 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #202 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[   +1 ms]     #203 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #204 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #205 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #206 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #207 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #208 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #209 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #210 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #211 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #212 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #213 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #214 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #215 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #216 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #217 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #218 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #219 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #220 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #221 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #222 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #223 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #224 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #225 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #226 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #227 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #228 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #229 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #230 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #231 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #232 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #233 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #234 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #235 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #236 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #237 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #238 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #239 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #240 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #241 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #242 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #243 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #244 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #245 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #246 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #247 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #248 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #249 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #250 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #251 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #252 pc 0000000000e4b7ad  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #253 pc 0000000000e86f49  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #254 pc 0000000000e0dbfc  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+[        ]     #255 pc 0000000000e0db40  /data/app/com.example.app/lib/x86_64/libflutter.so (offset 0xdb0000)
+```
+
+```
+[✓] Flutter (Channel master, v1.8.1-pre.2, on Linux, locale en_US.UTF-8)
+    • Flutter version 1.8.1-pre.2 at ...
+    • Framework revision 1a374d820d (9 days ago), 2019-07-01 16:17:11 -0700
+    • Engine revision 45b66b722e
+    • Dart version 2.4.0
+```
diff --git a/github-label-notifier/symbolizer/test/data/test10.expected.github.txt b/github-label-notifier/symbolizer/test/data/test10.expected.github.txt
new file mode 100644
index 0000000..e262dfb
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test10.expected.github.txt
@@ -0,0 +1,179 @@
+crash from null symbolized using symbols for `b8752bbfff0419c8bf616b602bc59fd28f6a3d1b` `ios-arm64-release`
+```
+#00 000000019007e5c0 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 1185216
+#01 00000001a416c42c libobjc.A.dylib objc_exception_throw + 60
+#02 000000018ff7aa9c CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 121500
+#03 0000000102419508 XX XX + 1742088
+#04 00000001d7f6927c libsystem_platform.dylib 79AAC6D7-C39F-3B6B-882F-AA494B891C56 + 21116
+#05 00000001029708c0 Flutter Flutter + 952512
+                             SkArenaAlloc::RunDtorsOnBlock(char*)
+                             third_party/skia/src/core/SkArenaAlloc.cpp:61:21
+                             SkArenaAlloc::~SkArenaAlloc()
+                             third_party/skia/src/core/SkArenaAlloc.cpp:36:0
+                             SkArenaAlloc::~SkArenaAlloc()
+                             third_party/skia/src/core/SkArenaAlloc.cpp:35:0
+                             SkRecord::~SkRecord()
+                             third_party/skia/src/core/SkRecord.cpp:17:0
+#06 00000001029708c0 Flutter Flutter + 952512
+                             SkArenaAlloc::RunDtorsOnBlock(char*)
+                             third_party/skia/src/core/SkArenaAlloc.cpp:61:21
+                             SkArenaAlloc::~SkArenaAlloc()
+                             third_party/skia/src/core/SkArenaAlloc.cpp:36:0
+                             SkArenaAlloc::~SkArenaAlloc()
+                             third_party/skia/src/core/SkArenaAlloc.cpp:35:0
+                             SkRecord::~SkRecord()
+                             third_party/skia/src/core/SkRecord.cpp:17:0
+#07 0000000102970848 Flutter Flutter + 952392
+                             SkRecord::~SkRecord()
+                             third_party/skia/src/core/SkRecord.cpp:12:23
+                             SkRecord::~SkRecord()
+                             third_party/skia/src/core/SkRecord.cpp:12:0
+#08 00000001029c0b68 Flutter Flutter + 1280872
+                             SkRefCntBase::unref() const
+                             third_party/skia/include/core/SkRefCnt.h:77:19
+                             void SkSafeUnref<SkRecord const>(SkRecord const*)
+                             third_party/skia/include/core/SkRefCnt.h:150:0
+                             sk_sp<SkRecord const>::~sk_sp()
+                             third_party/skia/include/core/SkRefCnt.h:251:0
+                             sk_sp<SkRecord const>::~sk_sp()
+                             third_party/skia/include/core/SkRefCnt.h:250:0
+                             SkBigPicture::~SkBigPicture()
+                             third_party/skia/src/core/SkBigPicture.h:22:0
+                             SkBigPicture::~SkBigPicture()
+                             third_party/skia/src/core/SkBigPicture.h:22:0
+                             SkBigPicture::~SkBigPicture()
+                             third_party/skia/src/core/SkBigPicture.h:22:0
+#09 0000000102914a40 Flutter Flutter + 576064
+                             SkRefCntBase::unref() const
+                             third_party/skia/include/core/SkRefCnt.h:77:19
+                             flutter::SkiaUnrefQueue::Drain()
+                             flutter/flow/skia_gpu_object.cc:44:0
+#10 00000001028c344c Flutter Flutter + 242764
+                             std::__1::__function::__value_func<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)
+                             flutter/fml/message_loop_impl.cc:130:0
+#11 00000001028c53c0 Flutter Flutter + 250816
+                             fml::MessageLoopImpl::RunExpiredTasksNow()
+                             flutter/fml/message_loop_impl.cc:143:3
+                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0
+#12 000000018fffc050 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 651344
+#13 000000018fffbc50 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 650320
+#14 000000018fffb0c4 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 647364
+#15 000000018fff5178 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 622968
+#16 000000018fff44bc CoreFoundation CFRunLoopRunSpecific + 600
+#17 00000001028c529c Flutter Flutter + 250524
+                             fml::MessageLoopDarwin::Run()
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:46:20
+#18 00000001028c4c24 Flutter Flutter + 248868
+                             fml::MessageLoopImpl::DoRun()
+                             flutter/fml/message_loop_impl.cc:96:3
+                             fml::MessageLoop::Run()
+                             flutter/fml/message_loop.cc:49:0
+                             fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const
+                             flutter/fml/thread.cc:36:0
+                             decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:342:0
+                             void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:352:0
+#19 00000001d7f6dca8 libsystem_pthread.dylib _pthread_start + 320
+#20 00000001d7f76788 libsystem_pthread.dylib thread_start + 8
+
+```
+
+crash from null symbolized using symbols for `b8752bbfff0419c8bf616b602bc59fd28f6a3d1b` `ios-arm64-release`
+```
+#00 0000000192b825c0 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 1185216
+#01 00000001a6bfc42c libobjc.A.dylib objc_exception_throw + 60
+#02 0000000192a7ea9c CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 121500
+#03 00000001044ed508 XX XX + 1742088
+#04 00000001da0d627c libsystem_platform.dylib DAE36DD6-F44A-39F4-9924-261898BD82CC + 21116
+#05 00000001da0dbc74 libsystem_pthread.dylib pthread_kill + 272
+#06 000000019bc84bb4 libsystem_c.dylib abort + 104
+#07 00000001a1bd24dc libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 124124
+#08 00000001a1bd2768 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 124776
+#09 00000001a1bbde84 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 40580
+#10 00000001a1bbaeb8 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 28344
+#11 00000001a1bbbf30 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 32560
+#12 0000000104d577d0 Flutter Flutter + 5634000
+                             dart::FinalizablePersistentHandle::Finalize(dart::IsolateGroup*, dart::FinalizablePersistentHandle*)
+                             third_party/dart/runtime/vm/dart_api_impl.cc:729:5
+                             dart::FinalizablePersistentHandle::UpdateUnreachable(dart::IsolateGroup*)
+                             third_party/dart/runtime/vm/dart_api_state.h:273:0
+                             dart::ScavengerWeakVisitor::VisitHandle(unsigned long)
+                             third_party/dart/runtime/vm/heap/scavenger.cc:454:0
+#13 0000000104d5859c Flutter Flutter + 5637532
+                             dart::Handles<5, 64, 0>::HandlesBlock::Visit(dart::HandleVisitor*)
+                             third_party/dart/runtime/vm/handles_impl.h:302:14
+                             dart::Handles<5, 64, 0>::Visit(dart::HandleVisitor*)
+                             third_party/dart/runtime/vm/handles_impl.h:55:0
+                             dart::FinalizablePersistentHandles::VisitHandles(dart::HandleVisitor*)
+                             third_party/dart/runtime/vm/dart_api_state.h:581:0
+                             dart::ApiState::VisitWeakHandlesUnlocked(dart::HandleVisitor*)
+                             third_party/dart/runtime/vm/dart_api_state.h:792:0
+                             dart::IsolateGroup::VisitWeakPersistentHandles(dart::HandleVisitor*)
+                             third_party/dart/runtime/vm/isolate.cc:2952:0
+                             dart::Scavenger::MournWeakHandles()
+                             third_party/dart/runtime/vm/heap/scavenger.cc:1131:0
+                             dart::Scavenger::Scavenge()
+                             third_party/dart/runtime/vm/heap/scavenger.cc:1516:0
+#14 0000000104d4cd64 Flutter Flutter + 5590372
+                             dart::Heap::CollectNewSpaceGarbage(dart::Thread*, dart::Heap::GCReason)
+                             third_party/dart/runtime/vm/heap/heap.cc:467:18
+#15 0000000104d4e280 Flutter Flutter + 5595776
+                             dart::Heap::NotifyIdle(long long)
+                             third_party/dart/runtime/vm/heap/heap.cc:378:5
+#16 0000000104c6166c Flutter Flutter + 4626028
+                             dart::IdleTimeHandler::NotifyIdle(long long)
+                             third_party/dart/runtime/vm/isolate.cc:249:12
+                             Dart_NotifyIdle
+                             third_party/dart/runtime/vm/dart_api_impl.cc:1910:0
+                             flutter::RuntimeController::NotifyIdle(long long, unsigned long)
+                             flutter/runtime/runtime_controller.cc:251:0
+#17 0000000104af5b9c Flutter Flutter + 3136412
+                             flutter::Engine::NotifyIdle(long long)
+                             flutter/shell/common/engine.cc:260:24
+#18 000000010483344c Flutter Flutter + 242764
+                             std::__1::__function::__value_func<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)
+                             flutter/fml/message_loop_impl.cc:130:0
+#19 00000001048353c0 Flutter Flutter + 250816
+                             fml::MessageLoopImpl::RunExpiredTasksNow()
+                             flutter/fml/message_loop_impl.cc:143:3
+                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0
+#20 0000000192b00050 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 651344
+#21 0000000192affc50 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 650320
+#22 0000000192aff0c4 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 647364
+#23 0000000192af9178 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 622968
+#24 0000000192af84bc CoreFoundation CFRunLoopRunSpecific + 600
+#25 000000010483529c Flutter Flutter + 250524
+                             fml::MessageLoopDarwin::Run()
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:46:20
+#26 0000000104834c24 Flutter Flutter + 248868
+                             fml::MessageLoopImpl::DoRun()
+                             flutter/fml/message_loop_impl.cc:96:3
+                             fml::MessageLoop::Run()
+                             flutter/fml/message_loop.cc:49:0
+                             fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const
+                             flutter/fml/thread.cc:36:0
+                             decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:342:0
+                             void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:352:0
+#27 00000001da0daca8 libsystem_pthread.dylib _pthread_start + 320
+#28 00000001da0e3788 libsystem_pthread.dylib thread_start + 8
+
+```
+
+<!-- {"symbolized":[1001]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test10.expected.txt b/github-label-notifier/symbolizer/test/data/test10.expected.txt
new file mode 100644
index 0000000..9fafa7b
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test10.expected.txt
@@ -0,0 +1,498 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "0",
+          "binary": "CoreFoundation",
+          "pc": 6711403968,
+          "symbol": "52963DBA-FA89-36C2-8262-28B9776F8C12",
+          "offset": 1185216,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "1",
+          "binary": "libobjc.A.dylib",
+          "pc": 7047922732,
+          "symbol": "objc_exception_throw",
+          "offset": 60,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "2",
+          "binary": "CoreFoundation",
+          "pc": 6710340252,
+          "symbol": "52963DBA-FA89-36C2-8262-28B9776F8C12",
+          "offset": 121500,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "3",
+          "binary": "XX",
+          "pc": 4332819720,
+          "symbol": "XX",
+          "offset": 1742088,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "4",
+          "binary": "libsystem_platform.dylib",
+          "pc": 7918228092,
+          "symbol": "79AAC6D7-C39F-3B6B-882F-AA494B891C56",
+          "offset": 21116,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "5",
+          "binary": "Flutter",
+          "pc": 4338419904,
+          "symbol": "Flutter",
+          "offset": 952512,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "6",
+          "binary": "Flutter",
+          "pc": 4338419904,
+          "symbol": "Flutter",
+          "offset": 952512,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "7",
+          "binary": "Flutter",
+          "pc": 4338419784,
+          "symbol": "Flutter",
+          "offset": 952392,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "8",
+          "binary": "Flutter",
+          "pc": 4338748264,
+          "symbol": "Flutter",
+          "offset": 1280872,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "9",
+          "binary": "Flutter",
+          "pc": 4338043456,
+          "symbol": "Flutter",
+          "offset": 576064,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "10",
+          "binary": "Flutter",
+          "pc": 4337710156,
+          "symbol": "Flutter",
+          "offset": 242764,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "11",
+          "binary": "Flutter",
+          "pc": 4337718208,
+          "symbol": "Flutter",
+          "offset": 250816,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "12",
+          "binary": "CoreFoundation",
+          "pc": 6710870096,
+          "symbol": "52963DBA-FA89-36C2-8262-28B9776F8C12",
+          "offset": 651344,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "13",
+          "binary": "CoreFoundation",
+          "pc": 6710869072,
+          "symbol": "52963DBA-FA89-36C2-8262-28B9776F8C12",
+          "offset": 650320,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "14",
+          "binary": "CoreFoundation",
+          "pc": 6710866116,
+          "symbol": "52963DBA-FA89-36C2-8262-28B9776F8C12",
+          "offset": 647364,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "15",
+          "binary": "CoreFoundation",
+          "pc": 6710841720,
+          "symbol": "52963DBA-FA89-36C2-8262-28B9776F8C12",
+          "offset": 622968,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "16",
+          "binary": "CoreFoundation",
+          "pc": 6710838460,
+          "symbol": "CFRunLoopRunSpecific",
+          "offset": 600,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "17",
+          "binary": "Flutter",
+          "pc": 4337717916,
+          "symbol": "Flutter",
+          "offset": 250524,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "18",
+          "binary": "Flutter",
+          "pc": 4337716260,
+          "symbol": "Flutter",
+          "offset": 248868,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "19",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7918247080,
+          "symbol": "_pthread_start",
+          "offset": 320,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "20",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7918282632,
+          "symbol": "thread_start",
+          "offset": 8,
+          "location": "",
+          "runtimeType": "ios"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "b8752bbfff0419c8bf616b602bc59fd28f6a3d1b",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 000000019007e5c0 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 1185216\n#01 00000001a416c42c libobjc.A.dylib objc_exception_throw + 60\n#02 000000018ff7aa9c CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 121500\n#03 0000000102419508 XX XX + 1742088\n#04 00000001d7f6927c libsystem_platform.dylib 79AAC6D7-C39F-3B6B-882F-AA494B891C56 + 21116\n#05 00000001029708c0 Flutter Flutter + 952512\n                             SkArenaAlloc::RunDtorsOnBlock(char*)\n                             third_party/skia/src/core/SkArenaAlloc.cpp:61:21\n                             SkArenaAlloc::~SkArenaAlloc()\n                             third_party/skia/src/core/SkArenaAlloc.cpp:36:0\n                             SkArenaAlloc::~SkArenaAlloc()\n                             third_party/skia/src/core/SkArenaAlloc.cpp:35:0\n                             SkRecord::~SkRecord()\n                             third_party/skia/src/core/SkRecord.cpp:17:0\n#06 00000001029708c0 Flutter Flutter + 952512\n                             SkArenaAlloc::RunDtorsOnBlock(char*)\n                             third_party/skia/src/core/SkArenaAlloc.cpp:61:21\n                             SkArenaAlloc::~SkArenaAlloc()\n                             third_party/skia/src/core/SkArenaAlloc.cpp:36:0\n                             SkArenaAlloc::~SkArenaAlloc()\n                             third_party/skia/src/core/SkArenaAlloc.cpp:35:0\n                             SkRecord::~SkRecord()\n                             third_party/skia/src/core/SkRecord.cpp:17:0\n#07 0000000102970848 Flutter Flutter + 952392\n                             SkRecord::~SkRecord()\n                             third_party/skia/src/core/SkRecord.cpp:12:23\n                             SkRecord::~SkRecord()\n                             third_party/skia/src/core/SkRecord.cpp:12:0\n#08 00000001029c0b68 Flutter Flutter + 1280872\n                             SkRefCntBase::unref() const\n                             third_party/skia/include/core/SkRefCnt.h:77:19\n                             void SkSafeUnref<SkRecord const>(SkRecord const*)\n                             third_party/skia/include/core/SkRefCnt.h:150:0\n                             sk_sp<SkRecord const>::~sk_sp()\n                             third_party/skia/include/core/SkRefCnt.h:251:0\n                             sk_sp<SkRecord const>::~sk_sp()\n                             third_party/skia/include/core/SkRefCnt.h:250:0\n                             SkBigPicture::~SkBigPicture()\n                             third_party/skia/src/core/SkBigPicture.h:22:0\n                             SkBigPicture::~SkBigPicture()\n                             third_party/skia/src/core/SkBigPicture.h:22:0\n                             SkBigPicture::~SkBigPicture()\n                             third_party/skia/src/core/SkBigPicture.h:22:0\n#09 0000000102914a40 Flutter Flutter + 576064\n                             SkRefCntBase::unref() const\n                             third_party/skia/include/core/SkRefCnt.h:77:19\n                             flutter::SkiaUnrefQueue::Drain()\n                             flutter/flow/skia_gpu_object.cc:44:0\n#10 00000001028c344c Flutter Flutter + 242764\n                             std::__1::__function::__value_func<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                             flutter/fml/message_loop_impl.cc:130:0\n#11 00000001028c53c0 Flutter Flutter + 250816\n                             fml::MessageLoopImpl::RunExpiredTasksNow()\n                             flutter/fml/message_loop_impl.cc:143:3\n                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0\n#12 000000018fffc050 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 651344\n#13 000000018fffbc50 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 650320\n#14 000000018fffb0c4 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 647364\n#15 000000018fff5178 CoreFoundation 52963DBA-FA89-36C2-8262-28B9776F8C12 + 622968\n#16 000000018fff44bc CoreFoundation CFRunLoopRunSpecific + 600\n#17 00000001028c529c Flutter Flutter + 250524\n                             fml::MessageLoopDarwin::Run()\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:46:20\n#18 00000001028c4c24 Flutter Flutter + 248868\n                             fml::MessageLoopImpl::DoRun()\n                             flutter/fml/message_loop_impl.cc:96:3\n                             fml::MessageLoop::Run()\n                             flutter/fml/message_loop.cc:49:0\n                             fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const\n                             flutter/fml/thread.cc:36:0\n                             decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:342:0\n                             void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:352:0\n#19 00000001d7f6dca8 libsystem_pthread.dylib _pthread_start + 320\n#20 00000001d7f76788 libsystem_pthread.dylib thread_start + 8\n",
+    "notes": []
+  },
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "0",
+          "binary": "CoreFoundation",
+          "pc": 6756509120,
+          "symbol": "472C9193-115D-34CD-AD1D-0E7E091C9432",
+          "offset": 1185216,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "1",
+          "binary": "libobjc.A.dylib",
+          "pc": 7092552748,
+          "symbol": "objc_exception_throw",
+          "offset": 60,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "2",
+          "binary": "CoreFoundation",
+          "pc": 6755445404,
+          "symbol": "472C9193-115D-34CD-AD1D-0E7E091C9432",
+          "offset": 121500,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "3",
+          "binary": "XX",
+          "pc": 4367242504,
+          "symbol": "XX",
+          "offset": 1742088,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "4",
+          "binary": "libsystem_platform.dylib",
+          "pc": 7953277564,
+          "symbol": "DAE36DD6-F44A-39F4-9924-261898BD82CC",
+          "offset": 21116,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "5",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7953300596,
+          "symbol": "pthread_kill",
+          "offset": 272,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "6",
+          "binary": "libsystem_c.dylib",
+          "pc": 6908562356,
+          "symbol": "abort",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "7",
+          "binary": "libsystem_malloc.dylib",
+          "pc": 7008494812,
+          "symbol": "C39547F4-E0DF-3637-85A6-FD564AAB9C45",
+          "offset": 124124,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "8",
+          "binary": "libsystem_malloc.dylib",
+          "pc": 7008495464,
+          "symbol": "C39547F4-E0DF-3637-85A6-FD564AAB9C45",
+          "offset": 124776,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "9",
+          "binary": "libsystem_malloc.dylib",
+          "pc": 7008411268,
+          "symbol": "C39547F4-E0DF-3637-85A6-FD564AAB9C45",
+          "offset": 40580,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "10",
+          "binary": "libsystem_malloc.dylib",
+          "pc": 7008399032,
+          "symbol": "C39547F4-E0DF-3637-85A6-FD564AAB9C45",
+          "offset": 28344,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "11",
+          "binary": "libsystem_malloc.dylib",
+          "pc": 7008403248,
+          "symbol": "C39547F4-E0DF-3637-85A6-FD564AAB9C45",
+          "offset": 32560,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "12",
+          "binary": "Flutter",
+          "pc": 4376066000,
+          "symbol": "Flutter",
+          "offset": 5634000,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "13",
+          "binary": "Flutter",
+          "pc": 4376069532,
+          "symbol": "Flutter",
+          "offset": 5637532,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "14",
+          "binary": "Flutter",
+          "pc": 4376022372,
+          "symbol": "Flutter",
+          "offset": 5590372,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "15",
+          "binary": "Flutter",
+          "pc": 4376027776,
+          "symbol": "Flutter",
+          "offset": 5595776,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "16",
+          "binary": "Flutter",
+          "pc": 4375058028,
+          "symbol": "Flutter",
+          "offset": 4626028,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "17",
+          "binary": "Flutter",
+          "pc": 4373568412,
+          "symbol": "Flutter",
+          "offset": 3136412,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "18",
+          "binary": "Flutter",
+          "pc": 4370674764,
+          "symbol": "Flutter",
+          "offset": 242764,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "19",
+          "binary": "Flutter",
+          "pc": 4370682816,
+          "symbol": "Flutter",
+          "offset": 250816,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "20",
+          "binary": "CoreFoundation",
+          "pc": 6755975248,
+          "symbol": "472C9193-115D-34CD-AD1D-0E7E091C9432",
+          "offset": 651344,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "21",
+          "binary": "CoreFoundation",
+          "pc": 6755974224,
+          "symbol": "472C9193-115D-34CD-AD1D-0E7E091C9432",
+          "offset": 650320,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "22",
+          "binary": "CoreFoundation",
+          "pc": 6755971268,
+          "symbol": "472C9193-115D-34CD-AD1D-0E7E091C9432",
+          "offset": 647364,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "23",
+          "binary": "CoreFoundation",
+          "pc": 6755946872,
+          "symbol": "472C9193-115D-34CD-AD1D-0E7E091C9432",
+          "offset": 622968,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "24",
+          "binary": "CoreFoundation",
+          "pc": 6755943612,
+          "symbol": "CFRunLoopRunSpecific",
+          "offset": 600,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "25",
+          "binary": "Flutter",
+          "pc": 4370682524,
+          "symbol": "Flutter",
+          "offset": 250524,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "26",
+          "binary": "Flutter",
+          "pc": 4370680868,
+          "symbol": "Flutter",
+          "offset": 248868,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "27",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7953296552,
+          "symbol": "_pthread_start",
+          "offset": 320,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "28",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7953332104,
+          "symbol": "thread_start",
+          "offset": 8,
+          "location": "",
+          "runtimeType": "ios"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "b8752bbfff0419c8bf616b602bc59fd28f6a3d1b",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 0000000192b825c0 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 1185216\n#01 00000001a6bfc42c libobjc.A.dylib objc_exception_throw + 60\n#02 0000000192a7ea9c CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 121500\n#03 00000001044ed508 XX XX + 1742088\n#04 00000001da0d627c libsystem_platform.dylib DAE36DD6-F44A-39F4-9924-261898BD82CC + 21116\n#05 00000001da0dbc74 libsystem_pthread.dylib pthread_kill + 272\n#06 000000019bc84bb4 libsystem_c.dylib abort + 104\n#07 00000001a1bd24dc libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 124124\n#08 00000001a1bd2768 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 124776\n#09 00000001a1bbde84 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 40580\n#10 00000001a1bbaeb8 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 28344\n#11 00000001a1bbbf30 libsystem_malloc.dylib C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 32560\n#12 0000000104d577d0 Flutter Flutter + 5634000\n                             dart::FinalizablePersistentHandle::Finalize(dart::IsolateGroup*, dart::FinalizablePersistentHandle*)\n                             third_party/dart/runtime/vm/dart_api_impl.cc:729:5\n                             dart::FinalizablePersistentHandle::UpdateUnreachable(dart::IsolateGroup*)\n                             third_party/dart/runtime/vm/dart_api_state.h:273:0\n                             dart::ScavengerWeakVisitor::VisitHandle(unsigned long)\n                             third_party/dart/runtime/vm/heap/scavenger.cc:454:0\n#13 0000000104d5859c Flutter Flutter + 5637532\n                             dart::Handles<5, 64, 0>::HandlesBlock::Visit(dart::HandleVisitor*)\n                             third_party/dart/runtime/vm/handles_impl.h:302:14\n                             dart::Handles<5, 64, 0>::Visit(dart::HandleVisitor*)\n                             third_party/dart/runtime/vm/handles_impl.h:55:0\n                             dart::FinalizablePersistentHandles::VisitHandles(dart::HandleVisitor*)\n                             third_party/dart/runtime/vm/dart_api_state.h:581:0\n                             dart::ApiState::VisitWeakHandlesUnlocked(dart::HandleVisitor*)\n                             third_party/dart/runtime/vm/dart_api_state.h:792:0\n                             dart::IsolateGroup::VisitWeakPersistentHandles(dart::HandleVisitor*)\n                             third_party/dart/runtime/vm/isolate.cc:2952:0\n                             dart::Scavenger::MournWeakHandles()\n                             third_party/dart/runtime/vm/heap/scavenger.cc:1131:0\n                             dart::Scavenger::Scavenge()\n                             third_party/dart/runtime/vm/heap/scavenger.cc:1516:0\n#14 0000000104d4cd64 Flutter Flutter + 5590372\n                             dart::Heap::CollectNewSpaceGarbage(dart::Thread*, dart::Heap::GCReason)\n                             third_party/dart/runtime/vm/heap/heap.cc:467:18\n#15 0000000104d4e280 Flutter Flutter + 5595776\n                             dart::Heap::NotifyIdle(long long)\n                             third_party/dart/runtime/vm/heap/heap.cc:378:5\n#16 0000000104c6166c Flutter Flutter + 4626028\n                             dart::IdleTimeHandler::NotifyIdle(long long)\n                             third_party/dart/runtime/vm/isolate.cc:249:12\n                             Dart_NotifyIdle\n                             third_party/dart/runtime/vm/dart_api_impl.cc:1910:0\n                             flutter::RuntimeController::NotifyIdle(long long, unsigned long)\n                             flutter/runtime/runtime_controller.cc:251:0\n#17 0000000104af5b9c Flutter Flutter + 3136412\n                             flutter::Engine::NotifyIdle(long long)\n                             flutter/shell/common/engine.cc:260:24\n#18 000000010483344c Flutter Flutter + 242764\n                             std::__1::__function::__value_func<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                             flutter/fml/message_loop_impl.cc:130:0\n#19 00000001048353c0 Flutter Flutter + 250816\n                             fml::MessageLoopImpl::RunExpiredTasksNow()\n                             flutter/fml/message_loop_impl.cc:143:3\n                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0\n#20 0000000192b00050 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 651344\n#21 0000000192affc50 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 650320\n#22 0000000192aff0c4 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 647364\n#23 0000000192af9178 CoreFoundation 472C9193-115D-34CD-AD1D-0E7E091C9432 + 622968\n#24 0000000192af84bc CoreFoundation CFRunLoopRunSpecific + 600\n#25 000000010483529c Flutter Flutter + 250524\n                             fml::MessageLoopDarwin::Run()\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:46:20\n#26 0000000104834c24 Flutter Flutter + 248868\n                             fml::MessageLoopImpl::DoRun()\n                             flutter/fml/message_loop_impl.cc:96:3\n                             fml::MessageLoop::Run()\n                             flutter/fml/message_loop.cc:49:0\n                             fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const\n                             flutter/fml/thread.cc:36:0\n                             decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:342:0\n                             void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:352:0\n#27 00000001da0daca8 libsystem_pthread.dylib _pthread_start + 320\n#28 00000001da0e3788 libsystem_pthread.dylib thread_start + 8\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test10.input.txt b/github-label-notifier/symbolizer/test/data/test10.input.txt
new file mode 100644
index 0000000..fb0a0e7
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test10.input.txt
@@ -0,0 +1,66 @@
+@flutter-symbolizer-bot symbolize this force ios arm64
+
+```
+    0 CoreFoundation 0x000000019007e5c0 52963DBA-FA89-36C2-8262-28B9776F8C12 + 1185216
+    1 libobjc.A.dylib 0x00000001a416c42c objc_exception_throw + 60
+    2 CoreFoundation 0x000000018ff7aa9c 52963DBA-FA89-36C2-8262-28B9776F8C12 + 121500
+    3 XX 0x0000000102419508 XX + 1742088
+    4 libsystem_platform.dylib 0x00000001d7f6927c 79AAC6D7-C39F-3B6B-882F-AA494B891C56 + 21116
+    5 Flutter 0x00000001029708c0 Flutter + 952512
+    6 Flutter 0x00000001029708c0 Flutter + 952512
+    7 Flutter 0x0000000102970848 Flutter + 952392
+    8 Flutter 0x00000001029c0b68 Flutter + 1280872
+    9 Flutter 0x0000000102914a40 Flutter + 576064
+    10 Flutter 0x00000001028c344c Flutter + 242764
+    11 Flutter 0x00000001028c53c0 Flutter + 250816
+    12 CoreFoundation 0x000000018fffc050 52963DBA-FA89-36C2-8262-28B9776F8C12 + 651344
+    13 CoreFoundation 0x000000018fffbc50 52963DBA-FA89-36C2-8262-28B9776F8C12 + 650320
+    14 CoreFoundation 0x000000018fffb0c4 52963DBA-FA89-36C2-8262-28B9776F8C12 + 647364
+    15 CoreFoundation 0x000000018fff5178 52963DBA-FA89-36C2-8262-28B9776F8C12 + 622968
+    16 CoreFoundation 0x000000018fff44bc CFRunLoopRunSpecific + 600
+    17 Flutter 0x00000001028c529c Flutter + 250524
+    18 Flutter 0x00000001028c4c24 Flutter + 248868
+    19 libsystem_pthread.dylib 0x00000001d7f6dca8 _pthread_start + 320
+    20 libsystem_pthread.dylib 0x00000001d7f76788 thread_start + 8
+```
+
+```
+    0 CoreFoundation 0x0000000192b825c0 472C9193-115D-34CD-AD1D-0E7E091C9432 + 1185216
+    1 libobjc.A.dylib 0x00000001a6bfc42c objc_exception_throw + 60
+    2 CoreFoundation 0x0000000192a7ea9c 472C9193-115D-34CD-AD1D-0E7E091C9432 + 121500
+    3 XX 0x00000001044ed508 XX + 1742088
+    4 libsystem_platform.dylib 0x00000001da0d627c DAE36DD6-F44A-39F4-9924-261898BD82CC + 21116
+    5 libsystem_pthread.dylib 0x00000001da0dbc74 pthread_kill + 272
+    6 libsystem_c.dylib 0x000000019bc84bb4 abort + 104
+    7 libsystem_malloc.dylib 0x00000001a1bd24dc C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 124124
+    8 libsystem_malloc.dylib 0x00000001a1bd2768 C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 124776
+    9 libsystem_malloc.dylib 0x00000001a1bbde84 C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 40580
+    10 libsystem_malloc.dylib 0x00000001a1bbaeb8 C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 28344
+    11 libsystem_malloc.dylib 0x00000001a1bbbf30 C39547F4-E0DF-3637-85A6-FD564AAB9C45 + 32560
+    12 Flutter 0x0000000104d577d0 Flutter + 5634000
+    13 Flutter 0x0000000104d5859c Flutter + 5637532
+    14 Flutter 0x0000000104d4cd64 Flutter + 5590372
+    15 Flutter 0x0000000104d4e280 Flutter + 5595776
+    16 Flutter 0x0000000104c6166c Flutter + 4626028
+    17 Flutter 0x0000000104af5b9c Flutter + 3136412
+    18 Flutter 0x000000010483344c Flutter + 242764
+    19 Flutter 0x00000001048353c0 Flutter + 250816
+    20 CoreFoundation 0x0000000192b00050 472C9193-115D-34CD-AD1D-0E7E091C9432 + 651344
+    21 CoreFoundation 0x0000000192affc50 472C9193-115D-34CD-AD1D-0E7E091C9432 + 650320
+    22 CoreFoundation 0x0000000192aff0c4 472C9193-115D-34CD-AD1D-0E7E091C9432 + 647364
+    23 CoreFoundation 0x0000000192af9178 472C9193-115D-34CD-AD1D-0E7E091C9432 + 622968
+    24 CoreFoundation 0x0000000192af84bc CFRunLoopRunSpecific + 600
+    25 Flutter 0x000000010483529c Flutter + 250524
+    26 Flutter 0x0000000104834c24 Flutter + 248868
+    27 libsystem_pthread.dylib 0x00000001da0daca8 _pthread_start + 320
+    28 libsystem_pthread.dylib 0x00000001da0e3788 thread_start + 8
+)
+```
+
+```
+[✓] Flutter (Channel stable, 1.22.2, on Mac OS X 10.15.7 19H2, locale ...)
+    • Flutter version 1.22.2 at ...
+    • Framework revision 84f3d28555 (7 days ago), 2020-10-15 16:26:19 -0700
+    • Engine revision b8752bbfff
+    • Dart version 2.10.2
+```
diff --git a/github-label-notifier/symbolizer/test/data/test11.expected.github.txt b/github-label-notifier/symbolizer/test/data/test11.expected.github.txt
new file mode 100644
index 0000000..df992f4
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test11.expected.github.txt
@@ -0,0 +1,279 @@
+crash from null symbolized using symbols for `c9506cb8e93e5e8879152ff5c948b175abb5b997` `ios-arm64-release`
+```
+#00 0000000185d3ad88 libsystem_kernel.dylib __pthread_kill + 8
+#01 0000000185c531e8 libsystem_pthread.dylib pthread_kill$VARIANT$mp + 136 (pthread.c:145)
+#02 0000000185ba6644 libsystem_c.dylib abort + 100 (abort.c:11)
+#03 0000000102c48240 Flutter 0x1027f8000 + 4522560
+                             dart::Assert::Fail(char const*, ...)
+                             third_party/dart/runtime/platform/assert.cc:44:3
+#04 0000000102cfbea0 Flutter 0x1027f8000 + 5258912
+                             dart::SaveUnlinkedCall(dart::Zone*, dart::Isolate*, unsigned long, dart::UnlinkedCall const&)
+                             third_party/dart/runtime/vm/runtime_entry.cc:1568:3
+                             dart::DRT_HelperUnlinkedCall(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments)
+                             third_party/dart/runtime/vm/runtime_entry.cc:1660:0
+                             dart::DRT_UnlinkedCall(dart::NativeArguments)
+                             third_party/dart/runtime/vm/runtime_entry.cc:1596:0
+#05 000000010527820c App Precompiled_Stub_CallToRuntime + 84
+#06 0000000105277b60 App Precompiled_Stub_UnlinkedCall + 44
+#07 00000001053d7ff8 App Precompiled_AnimatedWidgetBaseState_initState_4854 + 76
+#08 00000001054eff5c App Precompiled_StatefulElement__firstBuild_396042623_8467 + 80
+#09 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#10 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#11 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#12 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#13 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#14 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#15 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#16 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#17 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#18 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#19 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#20 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#21 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#22 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#23 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#24 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#25 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#26 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#27 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#28 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#29 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#30 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#31 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#32 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#33 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#34 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#35 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#36 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#37 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#38 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#39 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#40 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#41 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#42 00000001054bd014 App Precompiled_SingleChildRenderObjectElement_mount_7858 + 432
+#43 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#44 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#45 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#46 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#47 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#48 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#49 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#50 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#51 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#52 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#53 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#54 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#55 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#56 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#57 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#58 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#59 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#60 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#61 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#62 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#63 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#64 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#65 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#66 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#67 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#68 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#69 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#70 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#71 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#72 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#73 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#74 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#75 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#76 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#77 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#78 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#79 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#80 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#81 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#82 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#83 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#84 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#85 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#86 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#87 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#88 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#89 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#90 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#91 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#92 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#93 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#94 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#95 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#96 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#97 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#98 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#99 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#100 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#101 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#102 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#103 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#104 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#105 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#106 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#107 00000001054bd014 App Precompiled_SingleChildRenderObjectElement_mount_7858 + 432
+#108 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#109 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#110 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#111 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#112 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#113 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#114 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#115 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#116 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#117 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#118 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#119 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#120 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#121 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#122 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#123 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#124 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#125 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#126 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#127 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#128 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#129 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#130 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#131 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#132 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#133 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#134 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#135 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#136 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#137 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#138 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#139 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#140 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#141 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#142 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#143 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#144 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#145 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#146 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#147 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104
+#148 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#149 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#150 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+#151 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#152 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#153 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#154 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#155 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#156 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#157 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#158 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#159 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#160 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#161 00000001054be1cc App Precompiled___DefaultInheritedProviderScopeElement_InheritedElement__InheritedProviderScopeMixin_... + 72
+#162 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#163 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#164 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#165 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#166 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#167 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484
+#168 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96
+#169 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+#170 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76
+#171 00000001054bd270 App Precompiled__SingleChildStatelessElement_StatelessElement_SingleChildWidgetElementMixin_524485488... + 60
+#172 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404
+#173 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508
+#174 00000001052fc01c App Precompiled_RenderObjectToWidgetElement__rebuild_414399801_1965 + 84
+#175 00000001054bd094 App Precompiled_RenderObjectToWidgetElement_mount_7859 + 60
+#176 00000001055a840c App Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree__anonymous_closure__10738 + 84
+#177 00000001052e9614 App Precompiled_BuildOwner_buildScope_1653 + 256
+#178 0000000105300f58 App Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree_2058 + 288
+#179 00000001052fd3d0 App Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa... + 168
+#180 00000001055a8540 App Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa... + 76
+#181 000000010529294c App Precompiled_____rootRun_4048458_315 + 156
+#182 0000000105292bf0 App Precompiled_____rootRun_4048458__rootRun_4048458_316 + 504
+#183 00000001054ffae4 App Precompiled__CustomZone_4048458_run_8789 + 240
+#184 0000000105500850 App Precompiled__CustomZone_4048458_runGuarded_8808 + 52
+#185 0000000105585974 App Precompiled__CustomZone_4048458_bindCallbackGuarded__anonymous_closure__10427 + 76
+#186 0000000105292998 App Precompiled_____rootRun_4048458_315 + 232
+#187 0000000105292bf0 App Precompiled_____rootRun_4048458__rootRun_4048458_316 + 504
+#188 00000001054ffae4 App Precompiled__CustomZone_4048458_run_8789 + 240
+#189 00000001055857bc App Precompiled__CustomZone_4048458_bindCallback__anonymous_closure__10425 + 148
+#190 0000000105589ba0 App Precompiled_Timer__createTimer_4048458__anonymous_closure__10485 + 228
+#191 00000001055c3114 App Precompiled__Closure_0150898_call_11047 + 72
+#192 00000001054a0d0c App Precompiled__Timer_1026248__runTimers_1026248_7429 + 720
+#193 00000001054a0964 App Precompiled__Timer_1026248__handleMessage_1026248_7427 + 140
+#194 00000001054a0a1c App Precompiled__Timer_1026248__handleMessage_1026248__handleMessage_1026248_7428 + 112
+#195 00000001055c3114 App Precompiled__Closure_0150898_call_11047 + 72
+#196 000000010529dc08 App Precompiled__RawReceivePortImpl_1026248__handleMessage_1026248_473 + 52
+#197 0000000105277de4 App Precompiled_Stub_InvokeDartCode + 252
+#198 0000000102c891a8 Flutter 0x1027f8000 + 4788648
+                              dart::DartEntry::InvokeCode(dart::Code const&, dart::Array const&, dart::Array const&, dart::Thread*)
+                              third_party/dart/runtime/vm/dart_entry.cc:190:10
+                              dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)
+                              third_party/dart/runtime/vm/dart_entry.cc:168:0
+#199 0000000102c8f6a4 Flutter 0x1027f8000 + 4814500
+                              dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&)
+                              third_party/dart/runtime/vm/dart_entry.cc:36:10
+                              dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&)
+                              third_party/dart/runtime/vm/dart_entry.cc:688:0
+                              dart::IsolateMessageHandler::HandleMessage(std::__1::unique_ptr<dart::Message, std::__1::default_delete<dart::Message> >)
+                              third_party/dart/runtime/vm/isolate.cc:1093:0
+#200 0000000102c9a824 Flutter 0x1027f8000 + 4859940
+                              dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
+                              third_party/dart/runtime/vm/message_handler.cc:233:16
+#201 0000000102b1d2c4 Flutter 0x1027f8000 + 3297988
+                              dart::MessageHandler::HandleNextMessage()
+                              third_party/dart/runtime/vm/message_handler.cc:294:10
+                              Dart_HandleMessage
+                              third_party/dart/runtime/vm/dart_api_impl.cc:1959:0
+                              tonic::DartMessageHandler::OnHandleMessage(tonic::DartState*)
+                              flutter/third_party/tonic/dart_message_handler.cc:113:0
+                              tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0::operator()() const
+                              flutter/third_party/tonic/dart_message_handler.cc:42:0
+                              decltype(std::__1::forward<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&>(fp)()) std::__1::__invoke<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&>(tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&)
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/type_traits:4361:0
+                              void std::__1::__invoke_void_return_wrapper<void>::__call<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&>(tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&)
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__functional_base:349:0
+                              std::__1::__function::__alloc_func<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0, std::__1::allocator<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0>, void ()>::operator()()
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1527:0
+                              std::__1::__function::__func<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0, std::__1::allocator<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0>, void ()>::operator()()
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1651:0
+#202 0000000102834ba0 Flutter 0x1027f8000 + 248736
+                              std::__1::__function::__value_func<void ()>::operator()() const
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1799:16
+                              std::__1::function<void ()>::operator()() const
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:2347:0
+                              fml::MessageLoopImpl::FlushTasks(fml::FlushType)
+                              flutter/fml/message_loop_impl.cc:127:0
+#203 0000000102836818 Flutter 0x1027f8000 + 256024
+                              fml::MessageLoopImpl::RunExpiredTasksNow()
+                              flutter/fml/message_loop_impl.cc:137:3
+                              fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)
+                              flutter/fml/platform/darwin/message_loop_darwin.mm:75:0
+#204 0000000185ec41c0 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 (CFRunLoop.c:176)
+#205 0000000185ec3edc CoreFoundation __CFRunLoopDoTimer + 880 (CFRunLoop.c:235)
+#206 0000000185ec35b8 CoreFoundation __CFRunLoopDoTimers + 276 (CFRunLoop.c:251)
+#207 0000000185ebe5c8 CoreFoundation __CFRunLoopRun + 1640 (CFRunLoop.c:)
+#208 0000000185ebdc34 CoreFoundation CFRunLoopRunSpecific + 424 (CFRunLoop.c:319)
+#209 00000001028366f4 Flutter 0x1027f8000 + 255732
+                              fml::MessageLoopDarwin::Run()
+                              flutter/fml/platform/darwin/message_loop_darwin.mm:46:20
+#210 00000001028360c0 Flutter 0x1027f8000 + 254144
+                              fml::MessageLoopImpl::DoRun()
+                              flutter/fml/message_loop_impl.cc:96:3
+                              fml::MessageLoop::Run()
+                              flutter/fml/message_loop.cc:49:0
+                              fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const
+                              flutter/fml/thread.cc:34:0
+                              decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/type_traits:4361:0
+                              void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:342:0
+                              void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)
+                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:352:0
+#211 0000000185c5bd98 libsystem_pthread.dylib _pthread_start + 156 (pthread.c:89)
+#212 0000000185c5f74c libsystem_pthread.dylib thread_start + 8
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test11.expected.txt b/github-label-notifier/symbolizer/test/data/test11.expected.txt
new file mode 100644
index 0000000..7a2b264
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test11.expected.txt
@@ -0,0 +1,1942 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "0",
+          "binary": "libsystem_kernel.dylib",
+          "pc": 6540209544,
+          "symbol": "__pthread_kill",
+          "offset": 8,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "1",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 6539260392,
+          "symbol": "pthread_kill$VARIANT$mp",
+          "offset": 136,
+          "location": "pthread.c:145",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "2",
+          "binary": "libsystem_c.dylib",
+          "pc": 6538552900,
+          "symbol": "abort",
+          "offset": 100,
+          "location": "abort.c:11",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "3",
+          "binary": "Flutter",
+          "pc": 4341400128,
+          "symbol": "0x1027f8000",
+          "offset": 4522560,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "4",
+          "binary": "Flutter",
+          "pc": 4342136480,
+          "symbol": "0x1027f8000",
+          "offset": 5258912,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "5",
+          "binary": "App",
+          "pc": 4381442572,
+          "symbol": "Precompiled_Stub_CallToRuntime",
+          "offset": 84,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "6",
+          "binary": "App",
+          "pc": 4381440864,
+          "symbol": "Precompiled_Stub_UnlinkedCall",
+          "offset": 44,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "7",
+          "binary": "App",
+          "pc": 4382883832,
+          "symbol": "Precompiled_AnimatedWidgetBaseState_initState_4854",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "8",
+          "binary": "App",
+          "pc": 4384030556,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 80,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "9",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "10",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "11",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "12",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "13",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "14",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "15",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "16",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "17",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "18",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "19",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "20",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "21",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "22",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "23",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "24",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "25",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "26",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "27",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "28",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "29",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "30",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "31",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "32",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "33",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "34",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "35",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "36",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "37",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "38",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "39",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "40",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "41",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "42",
+          "binary": "App",
+          "pc": 4383821844,
+          "symbol": "Precompiled_SingleChildRenderObjectElement_mount_7858",
+          "offset": 432,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "43",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "44",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "45",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "46",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "47",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "48",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "49",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "50",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "51",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "52",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "53",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "54",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "55",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "56",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "57",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "58",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "59",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "60",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "61",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "62",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "63",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "64",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "65",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "66",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "67",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "68",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "69",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "70",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "71",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "72",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "73",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "74",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "75",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "76",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "77",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "78",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "79",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "80",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "81",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "82",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "83",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "84",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "85",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "86",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "87",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "88",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "89",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "90",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "91",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "92",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "93",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "94",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "95",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "96",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "97",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "98",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "99",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "100",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "101",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "102",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "103",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "104",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "105",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "106",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "107",
+          "binary": "App",
+          "pc": 4383821844,
+          "symbol": "Precompiled_SingleChildRenderObjectElement_mount_7858",
+          "offset": 432,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "108",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "109",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "110",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "111",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "112",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "113",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "114",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "115",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "116",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "117",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "118",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "119",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "120",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "121",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "122",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "123",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "124",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "125",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "126",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "127",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "128",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "129",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "130",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "131",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "132",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "133",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "134",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "135",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "136",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "137",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "138",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "139",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "140",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "141",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "142",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "143",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "144",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "145",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "146",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "147",
+          "binary": "App",
+          "pc": 4383826280,
+          "symbol": "Precompiled_StatefulElement_performRebuild_7870",
+          "offset": 104,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "148",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "149",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "150",
+          "binary": "App",
+          "pc": 4384030632,
+          "symbol": "Precompiled_StatefulElement__firstBuild_396042623_8467",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "151",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "152",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "153",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "154",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "155",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "156",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "157",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "158",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "159",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "160",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "161",
+          "binary": "App",
+          "pc": 4383826380,
+          "symbol": "Precompiled___DefaultInheritedProviderScopeElement_InheritedElement__InheritedProviderScopeMixin_...",
+          "offset": 72,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "162",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "163",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "164",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "165",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "166",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "167",
+          "binary": "App",
+          "pc": 4383826940,
+          "symbol": "Precompiled_ComponentElement_performRebuild_7873",
+          "offset": 484,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "168",
+          "binary": "App",
+          "pc": 4381898824,
+          "symbol": "Precompiled_Element_rebuild_1634",
+          "offset": 96,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "169",
+          "binary": "App",
+          "pc": 4384030916,
+          "symbol": "Precompiled_ComponentElement__firstBuild_396042623_8469",
+          "offset": 32,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "170",
+          "binary": "App",
+          "pc": 4383822580,
+          "symbol": "Precompiled_ComponentElement_mount_7863",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "171",
+          "binary": "App",
+          "pc": 4383822448,
+          "symbol": "Precompiled__SingleChildStatelessElement_StatelessElement_SingleChildWidgetElementMixin_524485488...",
+          "offset": 60,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "172",
+          "binary": "App",
+          "pc": 4381789848,
+          "symbol": "Precompiled_Element_inflateWidget_1296",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "173",
+          "binary": "App",
+          "pc": 4383838224,
+          "symbol": "Precompiled_Element_updateChild_7906",
+          "offset": 508,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "174",
+          "binary": "App",
+          "pc": 4381982748,
+          "symbol": "Precompiled_RenderObjectToWidgetElement__rebuild_414399801_1965",
+          "offset": 84,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "175",
+          "binary": "App",
+          "pc": 4383821972,
+          "symbol": "Precompiled_RenderObjectToWidgetElement_mount_7859",
+          "offset": 60,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "176",
+          "binary": "App",
+          "pc": 4384785420,
+          "symbol": "Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree__anonymous_closure__10738",
+          "offset": 84,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "177",
+          "binary": "App",
+          "pc": 4381906452,
+          "symbol": "Precompiled_BuildOwner_buildScope_1653",
+          "offset": 256,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "178",
+          "binary": "App",
+          "pc": 4382003032,
+          "symbol": "Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree_2058",
+          "offset": 288,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "179",
+          "binary": "App",
+          "pc": 4381987792,
+          "symbol": "Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa...",
+          "offset": 168,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "180",
+          "binary": "App",
+          "pc": 4384785728,
+          "symbol": "Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa...",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "181",
+          "binary": "App",
+          "pc": 4381550924,
+          "symbol": "Precompiled_____rootRun_4048458_315",
+          "offset": 156,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "182",
+          "binary": "App",
+          "pc": 4381551600,
+          "symbol": "Precompiled_____rootRun_4048458__rootRun_4048458_316",
+          "offset": 504,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "183",
+          "binary": "App",
+          "pc": 4384094948,
+          "symbol": "Precompiled__CustomZone_4048458_run_8789",
+          "offset": 240,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "184",
+          "binary": "App",
+          "pc": 4384098384,
+          "symbol": "Precompiled__CustomZone_4048458_runGuarded_8808",
+          "offset": 52,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "185",
+          "binary": "App",
+          "pc": 4384643444,
+          "symbol": "Precompiled__CustomZone_4048458_bindCallbackGuarded__anonymous_closure__10427",
+          "offset": 76,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "186",
+          "binary": "App",
+          "pc": 4381551000,
+          "symbol": "Precompiled_____rootRun_4048458_315",
+          "offset": 232,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "187",
+          "binary": "App",
+          "pc": 4381551600,
+          "symbol": "Precompiled_____rootRun_4048458__rootRun_4048458_316",
+          "offset": 504,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "188",
+          "binary": "App",
+          "pc": 4384094948,
+          "symbol": "Precompiled__CustomZone_4048458_run_8789",
+          "offset": 240,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "189",
+          "binary": "App",
+          "pc": 4384643004,
+          "symbol": "Precompiled__CustomZone_4048458_bindCallback__anonymous_closure__10425",
+          "offset": 148,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "190",
+          "binary": "App",
+          "pc": 4384660384,
+          "symbol": "Precompiled_Timer__createTimer_4048458__anonymous_closure__10485",
+          "offset": 228,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "191",
+          "binary": "App",
+          "pc": 4384895252,
+          "symbol": "Precompiled__Closure_0150898_call_11047",
+          "offset": 72,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "192",
+          "binary": "App",
+          "pc": 4383706380,
+          "symbol": "Precompiled__Timer_1026248__runTimers_1026248_7429",
+          "offset": 720,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "193",
+          "binary": "App",
+          "pc": 4383705444,
+          "symbol": "Precompiled__Timer_1026248__handleMessage_1026248_7427",
+          "offset": 140,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "194",
+          "binary": "App",
+          "pc": 4383705628,
+          "symbol": "Precompiled__Timer_1026248__handleMessage_1026248__handleMessage_1026248_7428",
+          "offset": 112,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "195",
+          "binary": "App",
+          "pc": 4384895252,
+          "symbol": "Precompiled__Closure_0150898_call_11047",
+          "offset": 72,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "196",
+          "binary": "App",
+          "pc": 4381596680,
+          "symbol": "Precompiled__RawReceivePortImpl_1026248__handleMessage_1026248_473",
+          "offset": 52,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "197",
+          "binary": "App",
+          "pc": 4381441508,
+          "symbol": "Precompiled_Stub_InvokeDartCode",
+          "offset": 252,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "198",
+          "binary": "Flutter",
+          "pc": 4341666216,
+          "symbol": "0x1027f8000",
+          "offset": 4788648,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "199",
+          "binary": "Flutter",
+          "pc": 4341692068,
+          "symbol": "0x1027f8000",
+          "offset": 4814500,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "200",
+          "binary": "Flutter",
+          "pc": 4341737508,
+          "symbol": "0x1027f8000",
+          "offset": 4859940,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "201",
+          "binary": "Flutter",
+          "pc": 4340175556,
+          "symbol": "0x1027f8000",
+          "offset": 3297988,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "202",
+          "binary": "Flutter",
+          "pc": 4337126304,
+          "symbol": "0x1027f8000",
+          "offset": 248736,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "203",
+          "binary": "Flutter",
+          "pc": 4337133592,
+          "symbol": "0x1027f8000",
+          "offset": 256024,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "204",
+          "binary": "CoreFoundation",
+          "pc": 6541820352,
+          "symbol": "__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__",
+          "offset": 28,
+          "location": "CFRunLoop.c:176",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "205",
+          "binary": "CoreFoundation",
+          "pc": 6541819612,
+          "symbol": "__CFRunLoopDoTimer",
+          "offset": 880,
+          "location": "CFRunLoop.c:235",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "206",
+          "binary": "CoreFoundation",
+          "pc": 6541817272,
+          "symbol": "__CFRunLoopDoTimers",
+          "offset": 276,
+          "location": "CFRunLoop.c:251",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "207",
+          "binary": "CoreFoundation",
+          "pc": 6541796808,
+          "symbol": "__CFRunLoopRun",
+          "offset": 1640,
+          "location": "CFRunLoop.c:",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "208",
+          "binary": "CoreFoundation",
+          "pc": 6541794356,
+          "symbol": "CFRunLoopRunSpecific",
+          "offset": 424,
+          "location": "CFRunLoop.c:319",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "209",
+          "binary": "Flutter",
+          "pc": 4337133300,
+          "symbol": "0x1027f8000",
+          "offset": 255732,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "210",
+          "binary": "Flutter",
+          "pc": 4337131712,
+          "symbol": "0x1027f8000",
+          "offset": 254144,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "211",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 6539296152,
+          "symbol": "_pthread_start",
+          "offset": 156,
+          "location": "pthread.c:89",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "212",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 6539310924,
+          "symbol": "thread_start",
+          "offset": 8,
+          "location": "",
+          "runtimeType": "ios"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "c9506cb8e93e5e8879152ff5c948b175abb5b997",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 0000000185d3ad88 libsystem_kernel.dylib __pthread_kill + 8\n#01 0000000185c531e8 libsystem_pthread.dylib pthread_kill$VARIANT$mp + 136 (pthread.c:145)\n#02 0000000185ba6644 libsystem_c.dylib abort + 100 (abort.c:11)\n#03 0000000102c48240 Flutter 0x1027f8000 + 4522560\n                             dart::Assert::Fail(char const*, ...)\n                             third_party/dart/runtime/platform/assert.cc:44:3\n#04 0000000102cfbea0 Flutter 0x1027f8000 + 5258912\n                             dart::SaveUnlinkedCall(dart::Zone*, dart::Isolate*, unsigned long, dart::UnlinkedCall const&)\n                             third_party/dart/runtime/vm/runtime_entry.cc:1568:3\n                             dart::DRT_HelperUnlinkedCall(dart::Isolate*, dart::Thread*, dart::Zone*, dart::NativeArguments)\n                             third_party/dart/runtime/vm/runtime_entry.cc:1660:0\n                             dart::DRT_UnlinkedCall(dart::NativeArguments)\n                             third_party/dart/runtime/vm/runtime_entry.cc:1596:0\n#05 000000010527820c App Precompiled_Stub_CallToRuntime + 84\n#06 0000000105277b60 App Precompiled_Stub_UnlinkedCall + 44\n#07 00000001053d7ff8 App Precompiled_AnimatedWidgetBaseState_initState_4854 + 76\n#08 00000001054eff5c App Precompiled_StatefulElement__firstBuild_396042623_8467 + 80\n#09 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#10 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#11 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#12 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#13 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#14 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#15 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#16 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#17 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#18 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#19 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#20 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#21 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#22 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#23 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#24 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#25 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#26 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#27 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#28 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#29 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#30 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#31 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#32 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#33 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#34 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#35 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#36 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#37 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#38 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#39 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#40 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#41 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#42 00000001054bd014 App Precompiled_SingleChildRenderObjectElement_mount_7858 + 432\n#43 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#44 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#45 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#46 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#47 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#48 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#49 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#50 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#51 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#52 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#53 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#54 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#55 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#56 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#57 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#58 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#59 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#60 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#61 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#62 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#63 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#64 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#65 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#66 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#67 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#68 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#69 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#70 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#71 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#72 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#73 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#74 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#75 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#76 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#77 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#78 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#79 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#80 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#81 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#82 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#83 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#84 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#85 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#86 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#87 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#88 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#89 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#90 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#91 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#92 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#93 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#94 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#95 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#96 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#97 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#98 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#99 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#100 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#101 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#102 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#103 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#104 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#105 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#106 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#107 00000001054bd014 App Precompiled_SingleChildRenderObjectElement_mount_7858 + 432\n#108 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#109 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#110 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#111 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#112 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#113 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#114 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#115 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#116 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#117 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#118 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#119 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#120 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#121 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#122 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#123 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#124 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#125 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#126 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#127 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#128 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#129 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#130 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#131 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#132 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#133 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#134 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#135 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#136 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#137 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#138 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#139 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#140 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#141 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#142 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#143 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#144 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#145 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#146 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#147 00000001054be168 App Precompiled_StatefulElement_performRebuild_7870 + 104\n#148 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#149 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#150 00000001054effa8 App Precompiled_StatefulElement__firstBuild_396042623_8467 + 156\n#151 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#152 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#153 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#154 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#155 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#156 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#157 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#158 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#159 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#160 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#161 00000001054be1cc App Precompiled___DefaultInheritedProviderScopeElement_InheritedElement__InheritedProviderScopeMixin_... + 72\n#162 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#163 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#164 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#165 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#166 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#167 00000001054be3fc App Precompiled_ComponentElement_performRebuild_7873 + 484\n#168 00000001052e7848 App Precompiled_Element_rebuild_1634 + 96\n#169 00000001054f00c4 App Precompiled_ComponentElement__firstBuild_396042623_8469 + 32\n#170 00000001054bd2f4 App Precompiled_ComponentElement_mount_7863 + 76\n#171 00000001054bd270 App Precompiled__SingleChildStatelessElement_StatelessElement_SingleChildWidgetElementMixin_524485488... + 60\n#172 00000001052cce98 App Precompiled_Element_inflateWidget_1296 + 404\n#173 00000001054c1010 App Precompiled_Element_updateChild_7906 + 508\n#174 00000001052fc01c App Precompiled_RenderObjectToWidgetElement__rebuild_414399801_1965 + 84\n#175 00000001054bd094 App Precompiled_RenderObjectToWidgetElement_mount_7859 + 60\n#176 00000001055a840c App Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree__anonymous_closure__10738 + 84\n#177 00000001052e9614 App Precompiled_BuildOwner_buildScope_1653 + 256\n#178 0000000105300f58 App Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree_2058 + 288\n#179 00000001052fd3d0 App Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa... + 168\n#180 00000001055a8540 App Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa... + 76\n#181 000000010529294c App Precompiled_____rootRun_4048458_315 + 156\n#182 0000000105292bf0 App Precompiled_____rootRun_4048458__rootRun_4048458_316 + 504\n#183 00000001054ffae4 App Precompiled__CustomZone_4048458_run_8789 + 240\n#184 0000000105500850 App Precompiled__CustomZone_4048458_runGuarded_8808 + 52\n#185 0000000105585974 App Precompiled__CustomZone_4048458_bindCallbackGuarded__anonymous_closure__10427 + 76\n#186 0000000105292998 App Precompiled_____rootRun_4048458_315 + 232\n#187 0000000105292bf0 App Precompiled_____rootRun_4048458__rootRun_4048458_316 + 504\n#188 00000001054ffae4 App Precompiled__CustomZone_4048458_run_8789 + 240\n#189 00000001055857bc App Precompiled__CustomZone_4048458_bindCallback__anonymous_closure__10425 + 148\n#190 0000000105589ba0 App Precompiled_Timer__createTimer_4048458__anonymous_closure__10485 + 228\n#191 00000001055c3114 App Precompiled__Closure_0150898_call_11047 + 72\n#192 00000001054a0d0c App Precompiled__Timer_1026248__runTimers_1026248_7429 + 720\n#193 00000001054a0964 App Precompiled__Timer_1026248__handleMessage_1026248_7427 + 140\n#194 00000001054a0a1c App Precompiled__Timer_1026248__handleMessage_1026248__handleMessage_1026248_7428 + 112\n#195 00000001055c3114 App Precompiled__Closure_0150898_call_11047 + 72\n#196 000000010529dc08 App Precompiled__RawReceivePortImpl_1026248__handleMessage_1026248_473 + 52\n#197 0000000105277de4 App Precompiled_Stub_InvokeDartCode + 252\n#198 0000000102c891a8 Flutter 0x1027f8000 + 4788648\n                              dart::DartEntry::InvokeCode(dart::Code const&, dart::Array const&, dart::Array const&, dart::Thread*)\n                              third_party/dart/runtime/vm/dart_entry.cc:190:10\n                              dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&, dart::Array const&, unsigned long)\n                              third_party/dart/runtime/vm/dart_entry.cc:168:0\n#199 0000000102c8f6a4 Flutter 0x1027f8000 + 4814500\n                              dart::DartEntry::InvokeFunction(dart::Function const&, dart::Array const&)\n                              third_party/dart/runtime/vm/dart_entry.cc:36:10\n                              dart::DartLibraryCalls::HandleMessage(dart::Object const&, dart::Instance const&)\n                              third_party/dart/runtime/vm/dart_entry.cc:688:0\n                              dart::IsolateMessageHandler::HandleMessage(std::__1::unique_ptr<dart::Message, std::__1::default_delete<dart::Message> >)\n                              third_party/dart/runtime/vm/isolate.cc:1093:0\n#200 0000000102c9a824 Flutter 0x1027f8000 + 4859940\n                              dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)\n                              third_party/dart/runtime/vm/message_handler.cc:233:16\n#201 0000000102b1d2c4 Flutter 0x1027f8000 + 3297988\n                              dart::MessageHandler::HandleNextMessage()\n                              third_party/dart/runtime/vm/message_handler.cc:294:10\n                              Dart_HandleMessage\n                              third_party/dart/runtime/vm/dart_api_impl.cc:1959:0\n                              tonic::DartMessageHandler::OnHandleMessage(tonic::DartState*)\n                              flutter/third_party/tonic/dart_message_handler.cc:113:0\n                              tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0::operator()() const\n                              flutter/third_party/tonic/dart_message_handler.cc:42:0\n                              decltype(std::__1::forward<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&>(fp)()) std::__1::__invoke<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&>(tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&)\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/type_traits:4361:0\n                              void std::__1::__invoke_void_return_wrapper<void>::__call<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&>(tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0&)\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__functional_base:349:0\n                              std::__1::__function::__alloc_func<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0, std::__1::allocator<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0>, void ()>::operator()()\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1527:0\n                              std::__1::__function::__func<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0, std::__1::allocator<tonic::DartMessageHandler::OnMessage(tonic::DartState*)::$_0>, void ()>::operator()()\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1651:0\n#202 0000000102834ba0 Flutter 0x1027f8000 + 248736\n                              std::__1::__function::__value_func<void ()>::operator()() const\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:1799:16\n                              std::__1::function<void ()>::operator()() const\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/functional:2347:0\n                              fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                              flutter/fml/message_loop_impl.cc:127:0\n#203 0000000102836818 Flutter 0x1027f8000 + 256024\n                              fml::MessageLoopImpl::RunExpiredTasksNow()\n                              flutter/fml/message_loop_impl.cc:137:3\n                              fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)\n                              flutter/fml/platform/darwin/message_loop_darwin.mm:75:0\n#204 0000000185ec41c0 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 (CFRunLoop.c:176)\n#205 0000000185ec3edc CoreFoundation __CFRunLoopDoTimer + 880 (CFRunLoop.c:235)\n#206 0000000185ec35b8 CoreFoundation __CFRunLoopDoTimers + 276 (CFRunLoop.c:251)\n#207 0000000185ebe5c8 CoreFoundation __CFRunLoopRun + 1640 (CFRunLoop.c:)\n#208 0000000185ebdc34 CoreFoundation CFRunLoopRunSpecific + 424 (CFRunLoop.c:319)\n#209 00000001028366f4 Flutter 0x1027f8000 + 255732\n                              fml::MessageLoopDarwin::Run()\n                              flutter/fml/platform/darwin/message_loop_darwin.mm:46:20\n#210 00000001028360c0 Flutter 0x1027f8000 + 254144\n                              fml::MessageLoopImpl::DoRun()\n                              flutter/fml/message_loop_impl.cc:96:3\n                              fml::MessageLoop::Run()\n                              flutter/fml/message_loop.cc:49:0\n                              fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const\n                              flutter/fml/thread.cc:34:0\n                              decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/type_traits:4361:0\n                              void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:342:0\n                              void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)\n                              /b/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/thread:352:0\n#211 0000000185c5bd98 libsystem_pthread.dylib _pthread_start + 156 (pthread.c:89)\n#212 0000000185c5f74c libsystem_pthread.dylib thread_start + 8\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test11.input.txt b/github-label-notifier/symbolizer/test/data/test11.input.txt
new file mode 100644
index 0000000..426c0b0
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test11.input.txt
@@ -0,0 +1,234 @@
+```
+Incident Identifier: AEF1125A-C235-4216-89F7-E3131F9EFB84
+Code Type:           ARM-64 (Native)
+
+Thread 7:
+0   libsystem_pthread.dylib       	0x0000000185c5f738 start_wqthread + 0
+
+Thread 8 name:
+Thread 8 Crashed:
+0   libsystem_kernel.dylib        	0x0000000185d3ad88 __pthread_kill + 8
+1   libsystem_pthread.dylib       	0x0000000185c531e8 pthread_kill$VARIANT$mp + 136 (pthread.c:1458)
+2   libsystem_c.dylib             	0x0000000185ba6644 abort + 100 (abort.c:110)
+3   Flutter                       	0x0000000102c48240 0x1027f8000 + 4522560
+4   Flutter                       	0x0000000102cfbea0 0x1027f8000 + 5258912
+5   App                           	0x000000010527820c Precompiled_Stub_CallToRuntime + 84
+6   App                           	0x0000000105277b60 Precompiled_Stub_UnlinkedCall + 44
+7   App                           	0x00000001053d7ff8 Precompiled_AnimatedWidgetBaseState_initState_4854 + 76
+8   App                           	0x00000001054eff5c Precompiled_StatefulElement__firstBuild_396042623_8467 + 80
+9   App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+10  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+11  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+12  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+13  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+14  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+15  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+16  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+17  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+18  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+19  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+20  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+21  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+22  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+23  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+24  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+25  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+26  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+27  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+28  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+29  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+30  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+31  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+32  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+33  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+34  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+35  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+36  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+37  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+38  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+39  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+40  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+41  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+42  App                           	0x00000001054bd014 Precompiled_SingleChildRenderObjectElement_mount_7858 + 432
+43  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+44  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+45  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+46  App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+47  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+48  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+49  App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+50  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+51  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+52  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+53  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+54  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+55  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+56  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+57  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+58  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+59  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+60  App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+61  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+62  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+63  App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+64  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+65  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+66  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+67  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+68  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+69  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+70  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+71  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+72  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+73  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+74  App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+75  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+76  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+77  App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+78  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+79  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+80  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+81  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+82  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+83  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+84  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+85  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+86  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+87  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+88  App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+89  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+90  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+91  App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+92  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+93  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+94  App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+95  App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+96  App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+97  App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+98  App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+99  App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+100 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+101 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+102 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+103 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+104 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+105 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+106 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+107 App                           	0x00000001054bd014 Precompiled_SingleChildRenderObjectElement_mount_7858 + 432
+108 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+109 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+110 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+111 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+112 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+113 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+114 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+115 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+116 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+117 App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+118 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+119 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+120 App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+121 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+122 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+123 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+124 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+125 App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+126 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+127 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+128 App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+129 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+130 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+131 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+132 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+133 App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+134 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+135 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+136 App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+137 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+138 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+139 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+140 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+141 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+142 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+143 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+144 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+145 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+146 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+147 App                           	0x00000001054be168 Precompiled_StatefulElement_performRebuild_7870 + 104
+148 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+149 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+150 App                           	0x00000001054effa8 Precompiled_StatefulElement__firstBuild_396042623_8467 + 156
+151 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+152 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+153 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+154 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+155 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+156 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+157 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+158 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+159 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+160 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+161 App                           	0x00000001054be1cc Precompiled___DefaultInheritedProviderScopeElement_InheritedElement__InheritedProviderScopeMixin_... + 72
+162 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+163 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+164 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+165 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+166 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+167 App                           	0x00000001054be3fc Precompiled_ComponentElement_performRebuild_7873 + 484
+168 App                           	0x00000001052e7848 Precompiled_Element_rebuild_1634 + 96
+169 App                           	0x00000001054f00c4 Precompiled_ComponentElement__firstBuild_396042623_8469 + 32
+170 App                           	0x00000001054bd2f4 Precompiled_ComponentElement_mount_7863 + 76
+171 App                           	0x00000001054bd270 Precompiled__SingleChildStatelessElement_StatelessElement_SingleChildWidgetElementMixin_524485488... + 60
+172 App                           	0x00000001052cce98 Precompiled_Element_inflateWidget_1296 + 404
+173 App                           	0x00000001054c1010 Precompiled_Element_updateChild_7906 + 508
+174 App                           	0x00000001052fc01c Precompiled_RenderObjectToWidgetElement__rebuild_414399801_1965 + 84
+175 App                           	0x00000001054bd094 Precompiled_RenderObjectToWidgetElement_mount_7859 + 60
+176 App                           	0x00000001055a840c Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree__anonymous_closure__10738 + 84
+177 App                           	0x00000001052e9614 Precompiled_BuildOwner_buildScope_1653 + 256
+178 App                           	0x0000000105300f58 Precompiled_RenderObjectToWidgetAdapter_attachToRenderTree_2058 + 288
+179 App                           	0x00000001052fd3d0 Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa... + 168
+180 App                           	0x00000001055a8540 Precompiled__WidgetsFlutterBinding_BindingBase_GestureBinding_ServicesBinding_SchedulerBinding_Pa... + 76
+181 App                           	0x000000010529294c Precompiled_____rootRun_4048458_315 + 156
+182 App                           	0x0000000105292bf0 Precompiled_____rootRun_4048458__rootRun_4048458_316 + 504
+183 App                           	0x00000001054ffae4 Precompiled__CustomZone_4048458_run_8789 + 240
+184 App                           	0x0000000105500850 Precompiled__CustomZone_4048458_runGuarded_8808 + 52
+185 App                           	0x0000000105585974 Precompiled__CustomZone_4048458_bindCallbackGuarded__anonymous_closure__10427 + 76
+186 App                           	0x0000000105292998 Precompiled_____rootRun_4048458_315 + 232
+187 App                           	0x0000000105292bf0 Precompiled_____rootRun_4048458__rootRun_4048458_316 + 504
+188 App                           	0x00000001054ffae4 Precompiled__CustomZone_4048458_run_8789 + 240
+189 App                           	0x00000001055857bc Precompiled__CustomZone_4048458_bindCallback__anonymous_closure__10425 + 148
+190 App                           	0x0000000105589ba0 Precompiled_Timer__createTimer_4048458__anonymous_closure__10485 + 228
+191 App                           	0x00000001055c3114 Precompiled__Closure_0150898_call_11047 + 72
+192 App                           	0x00000001054a0d0c Precompiled__Timer_1026248__runTimers_1026248_7429 + 720
+193 App                           	0x00000001054a0964 Precompiled__Timer_1026248__handleMessage_1026248_7427 + 140
+194 App                           	0x00000001054a0a1c Precompiled__Timer_1026248__handleMessage_1026248__handleMessage_1026248_7428 + 112
+195 App                           	0x00000001055c3114 Precompiled__Closure_0150898_call_11047 + 72
+196 App                           	0x000000010529dc08 Precompiled__RawReceivePortImpl_1026248__handleMessage_1026248_473 + 52
+197 App                           	0x0000000105277de4 Precompiled_Stub_InvokeDartCode + 252
+198 Flutter                       	0x0000000102c891a8 0x1027f8000 + 4788648
+199 Flutter                       	0x0000000102c8f6a4 0x1027f8000 + 4814500
+200 Flutter                       	0x0000000102c9a824 0x1027f8000 + 4859940
+201 Flutter                       	0x0000000102b1d2c4 0x1027f8000 + 3297988
+202 Flutter                       	0x0000000102834ba0 0x1027f8000 + 248736
+203 Flutter                       	0x0000000102836818 0x1027f8000 + 256024
+204 CoreFoundation                	0x0000000185ec41c0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28 (CFRunLoop.c:1766)
+205 CoreFoundation                	0x0000000185ec3edc __CFRunLoopDoTimer + 880 (CFRunLoop.c:2357)
+206 CoreFoundation                	0x0000000185ec35b8 __CFRunLoopDoTimers + 276 (CFRunLoop.c:2512)
+207 CoreFoundation                	0x0000000185ebe5c8 __CFRunLoopRun + 1640 (CFRunLoop.c:0)
+208 CoreFoundation                	0x0000000185ebdc34 CFRunLoopRunSpecific + 424 (CFRunLoop.c:3192)
+209 Flutter                       	0x00000001028366f4 0x1027f8000 + 255732
+210 Flutter                       	0x00000001028360c0 0x1027f8000 + 254144
+211 libsystem_pthread.dylib       	0x0000000185c5bd98 _pthread_start + 156 (pthread.c:896)
+212 libsystem_pthread.dylib       	0x0000000185c5f74c thread_start + 8
+
+Binary Images:
+0x105270000 - 0x10584bfff App arm64  <f9e361ff2c6930499d85ae47d9dbfd3b> /var/containers/Bundle/Application/E5512921-87CB-437A-8E27-5C3037AEED7C/Runner.app/Frameworks/App.framework/App
+```
+
+```
+[✓] Flutter (Channel beta, v1.17.0, on ..., locale en-US)
+    • Flutter version 1.17.0 at ...
+    • Framework revision d3ed9ec945 (10 days ago), 2020-04-06 14:07:34 -0700
+    • Engine revision c9506cb8e9
+    • Dart version 2.8.0 (build 2.8.0-dev.18.0 eea9717938)
+```
diff --git a/github-label-notifier/symbolizer/test/data/test12.expected.github.txt b/github-label-notifier/symbolizer/test/data/test12.expected.github.txt
new file mode 100644
index 0000000..71a9c73
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test12.expected.github.txt
@@ -0,0 +1,118 @@
+crash from null symbolized using symbols for `b8752bbfff0419c8bf616b602bc59fd28f6a3d1b` `ios-arm64-release`
+```
+#00 00000001cb298b8c IOGPU -[IOGPUMetalCommandBuffer commandBufferResourceInfo] + 12
+#01 00000001d812f4e0 AGXMetalA9 (Missing)
+#02 00000001d80ae408 AGXMetalA9 (Missing)
+#03 00000001d80baff0 AGXMetalA9 (Missing)
+#04 0000000106013134 Flutter Flutter + 2781492
+                             GrMtlCommandBuffer::getBlitCommandEncoder()
+                             third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm:45:37
+#05 00000001060161e4 Flutter Flutter + 2793956
+                             GrMtlGpu::uploadToTexture(GrMtlTexture*, int, int, int, int, GrColorType, GrMipLevel const*, int)
+                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:364:71
+                             GrMtlGpu::onWritePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int, bool)
+                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:1205:0
+#06 0000000105f27e84 Flutter Flutter + 1818244
+                             GrGpu::writePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int, bool)
+                             third_party/skia/src/gpu/GrGpu.cpp:465:15
+#07 0000000105f27ae4 Flutter Flutter + 1817316
+                             GrGpu::createTexture(SkISize, GrBackendFormat const&, GrRenderable, int, SkBudgeted, GrProtected, GrColorType, GrColorType, GrMipLevel const*, int)
+                             third_party/skia/src/gpu/GrGpu.cpp:205:24
+#08 0000000105f45a64 Flutter Flutter + 1940068
+                             GrResourceProvider::createTexture(SkISize, GrBackendFormat const&, GrColorType, GrRenderable, int, SkBudgeted, GrProtected, GrMipLevel const*, int)
+                             third_party/skia/src/gpu/GrResourceProvider.cpp:86:18
+#09 0000000105f336f4 Flutter Flutter + 1865460
+                             GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1::operator()(GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&) const
+                             third_party/skia/src/gpu/GrProxyProvider.cpp:376:61
+                             decltype(std::__1::forward<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&>(fp)(std::__1::forward<GrResourceProvider*>(fp0), std::__1::forward<GrSurfaceProxy::LazySurfaceDesc const&>(fp0))) std::__1::__invoke<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&>(GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             GrSurfaceProxy::LazyCallbackResult std::__1::__invoke_void_return_wrapper<GrSurfaceProxy::LazyCallbackResult>::__call<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&>(GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:318:0
+                             std::__1::__function::__alloc_func<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1, std::__1::allocator<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1>, GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0
+                             std::__1::__function::__func<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1, std::__1::allocator<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1>, GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0
+#10 0000000105f510d4 Flutter Flutter + 1986772
+                             std::__1::__function::__value_func<GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&) const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&) const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             GrSurfaceProxyPriv::doLazyInstantiation(GrResourceProvider*)
+                             third_party/skia/src/gpu/GrSurfaceProxy.cpp:375:0
+#11 0000000105f332d0 Flutter Flutter + 1864400
+                             GrProxyProvider::createProxyFromBitmap(SkBitmap const&, GrMipmapped, SkBackingFit, SkBudgeted)
+                             third_party/skia/src/gpu/GrProxyProvider.cpp:305:28
+#12 0000000105f104d4 Flutter Flutter + 1721556
+                             GrBitmapTextureMaker::refOriginalTextureProxyView(GrMipmapped)
+                             third_party/skia/src/gpu/GrBitmapTextureMaker.cpp:90:36
+#13 0000000105fc8ac4 Flutter Flutter + 2476740
+                             SkImage::MakeCrossContextFromPixmap(GrDirectContext*, SkPixmap const&, bool, bool)
+                             third_party/skia/src/image/SkImage_Gpu.cpp:637:29
+#14 000000010610f670 Flutter Flutter + 3815024
+                             flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3::operator()() const
+                             flutter/lib/ui/painting/image_decoder.cc:199:44
+                             decltype(std::__1::forward<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&>(fp)()) std::__1::__invoke<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&>(flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&>(flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0
+                             std::__1::__function::__alloc_func<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3, std::__1::allocator<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3>, void ()>::operator()()
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0
+                             std::__1::__function::__func<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3, std::__1::allocator<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3>, void ()>::operator()()
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0
+#15 0000000105da8768 Flutter Flutter + 247656
+                             fml::SyncSwitch::Execute(fml::SyncSwitch::Handlers const&)
+                             flutter/fml/synchronization/sync_switch.cc:0:0
+#16 000000010610ef50 Flutter Flutter + 3813200
+                             flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)
+                             flutter/lib/ui/painting/image_decoder.cc:184:45
+                             flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()::operator()()
+                             flutter/lib/ui/painting/image_decoder.cc:295:0
+                             auto fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>::operator()<>() const
+                             flutter/fml/make_copyable.h:24:0
+                             decltype(std::__1::forward<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&>(fp)()) std::__1::__invoke<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&>(fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__invoke_void_return_wrapper<void>::__call<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&>(fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0
+                             std::__1::__function::__alloc_func<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>, std::__1::allocator<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()> >, void ()>::operator()()
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0
+                             std::__1::__function::__func<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>, std::__1::allocator<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()> >, void ()>::operator()()
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0
+#17 0000000105da744c Flutter Flutter + 242764
+                             std::__1::__function::__value_func<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)
+                             flutter/fml/message_loop_impl.cc:130:0
+#18 0000000105da93c0 Flutter Flutter + 250816
+                             fml::MessageLoopImpl::RunExpiredTasksNow()
+                             flutter/fml/message_loop_impl.cc:143:3
+                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0
+#19 00000001922a4a30 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
+#20 00000001922a4634 CoreFoundation __CFRunLoopDoTimer + 1004
+#21 00000001922a3b14 CoreFoundation __CFRunLoopDoTimers + 324
+#22 000000019229deb0 CoreFoundation __CFRunLoopRun + 1912
+#23 000000019229d200 CoreFoundation CFRunLoopRunSpecific + 572
+#24 0000000105da929c Flutter Flutter + 250524
+                             fml::MessageLoopDarwin::Run()
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:46:20
+#25 0000000105da8c24 Flutter Flutter + 248868
+                             fml::MessageLoopImpl::DoRun()
+                             flutter/fml/message_loop_impl.cc:96:3
+                             fml::MessageLoop::Run()
+                             flutter/fml/message_loop.cc:49:0
+                             fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const
+                             flutter/fml/thread.cc:36:0
+                             decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:342:0
+                             void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:352:0
+#26 00000001d7bcab70 libsystem_pthread.dylib _pthread_start + 288
+#27 00000001d7bcf880 libsystem_pthread.dylib thread_start + 8
+
+```
+_(Load address missing from the report, detected heuristically: 0000000105d6c000)_
+<!-- {"symbolized":[1001]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test12.expected.txt b/github-label-notifier/symbolizer/test/data/test12.expected.txt
new file mode 100644
index 0000000..e3f7975
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test12.expected.txt
@@ -0,0 +1,282 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "0",
+          "binary": "IOGPU",
+          "pc": 7703464844,
+          "symbol": "-[IOGPUMetalCommandBuffer commandBufferResourceInfo]",
+          "offset": 12,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "1",
+          "binary": "AGXMetalA9",
+          "pc": 7920088288,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "2",
+          "binary": "AGXMetalA9",
+          "pc": 7919559688,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "3",
+          "binary": "AGXMetalA9",
+          "pc": 7919611888,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "4",
+          "binary": "Flutter",
+          "pc": 4395708724,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "5",
+          "binary": "Flutter",
+          "pc": 4395721188,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "6",
+          "binary": "Flutter",
+          "pc": 4394745476,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "7",
+          "binary": "Flutter",
+          "pc": 4394744548,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "8",
+          "binary": "Flutter",
+          "pc": 4394867300,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "9",
+          "binary": "Flutter",
+          "pc": 4394792692,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "10",
+          "binary": "Flutter",
+          "pc": 4394914004,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "11",
+          "binary": "Flutter",
+          "pc": 4394791632,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "12",
+          "binary": "Flutter",
+          "pc": 4394648788,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "13",
+          "binary": "Flutter",
+          "pc": 4395403972,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "14",
+          "binary": "Flutter",
+          "pc": 4396742256,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "15",
+          "binary": "Flutter",
+          "pc": 4393174888,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "16",
+          "binary": "Flutter",
+          "pc": 4396740432,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "17",
+          "binary": "Flutter",
+          "pc": 4393169996,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "18",
+          "binary": "Flutter",
+          "pc": 4393178048,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "19",
+          "binary": "CoreFoundation",
+          "pc": 6747212336,
+          "symbol": "__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__",
+          "offset": 28,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "20",
+          "binary": "CoreFoundation",
+          "pc": 6747211316,
+          "symbol": "__CFRunLoopDoTimer",
+          "offset": 1004,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "21",
+          "binary": "CoreFoundation",
+          "pc": 6747208468,
+          "symbol": "__CFRunLoopDoTimers",
+          "offset": 324,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "22",
+          "binary": "CoreFoundation",
+          "pc": 6747184816,
+          "symbol": "__CFRunLoopRun",
+          "offset": 1912,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "23",
+          "binary": "CoreFoundation",
+          "pc": 6747181568,
+          "symbol": "CFRunLoopRunSpecific",
+          "offset": 572,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "24",
+          "binary": "Flutter",
+          "pc": 4393177756,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "25",
+          "binary": "Flutter",
+          "pc": 4393176100,
+          "symbol": "(Missing)",
+          "offset": null,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "26",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7914433392,
+          "symbol": "_pthread_start",
+          "offset": 288,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "27",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 7914453120,
+          "symbol": "thread_start",
+          "offset": 8,
+          "location": "",
+          "runtimeType": "ios"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "b8752bbfff0419c8bf616b602bc59fd28f6a3d1b",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 00000001cb298b8c IOGPU -[IOGPUMetalCommandBuffer commandBufferResourceInfo] + 12\n#01 00000001d812f4e0 AGXMetalA9 (Missing)\n#02 00000001d80ae408 AGXMetalA9 (Missing)\n#03 00000001d80baff0 AGXMetalA9 (Missing)\n#04 0000000106013134 Flutter Flutter + 2781492\n                             GrMtlCommandBuffer::getBlitCommandEncoder()\n                             third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm:45:37\n#05 00000001060161e4 Flutter Flutter + 2793956\n                             GrMtlGpu::uploadToTexture(GrMtlTexture*, int, int, int, int, GrColorType, GrMipLevel const*, int)\n                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:364:71\n                             GrMtlGpu::onWritePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int, bool)\n                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:1205:0\n#06 0000000105f27e84 Flutter Flutter + 1818244\n                             GrGpu::writePixels(GrSurface*, int, int, int, int, GrColorType, GrColorType, GrMipLevel const*, int, bool)\n                             third_party/skia/src/gpu/GrGpu.cpp:465:15\n#07 0000000105f27ae4 Flutter Flutter + 1817316\n                             GrGpu::createTexture(SkISize, GrBackendFormat const&, GrRenderable, int, SkBudgeted, GrProtected, GrColorType, GrColorType, GrMipLevel const*, int)\n                             third_party/skia/src/gpu/GrGpu.cpp:205:24\n#08 0000000105f45a64 Flutter Flutter + 1940068\n                             GrResourceProvider::createTexture(SkISize, GrBackendFormat const&, GrColorType, GrRenderable, int, SkBudgeted, GrProtected, GrMipLevel const*, int)\n                             third_party/skia/src/gpu/GrResourceProvider.cpp:86:18\n#09 0000000105f336f4 Flutter Flutter + 1865460\n                             GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1::operator()(GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&) const\n                             third_party/skia/src/gpu/GrProxyProvider.cpp:376:61\n                             decltype(std::__1::forward<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&>(fp)(std::__1::forward<GrResourceProvider*>(fp0), std::__1::forward<GrSurfaceProxy::LazySurfaceDesc const&>(fp0))) std::__1::__invoke<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&>(GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             GrSurfaceProxy::LazyCallbackResult std::__1::__invoke_void_return_wrapper<GrSurfaceProxy::LazyCallbackResult>::__call<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&>(GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1&, GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:318:0\n                             std::__1::__function::__alloc_func<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1, std::__1::allocator<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1>, GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1, std::__1::allocator<GrProxyProvider::createMippedProxyFromBitmap(SkBitmap const&, SkBudgeted)::$_1>, GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#10 0000000105f510d4 Flutter Flutter + 1986772\n                             std::__1::__function::__value_func<GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*&&, GrSurfaceProxy::LazySurfaceDesc const&) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<GrSurfaceProxy::LazyCallbackResult (GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&)>::operator()(GrResourceProvider*, GrSurfaceProxy::LazySurfaceDesc const&) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             GrSurfaceProxyPriv::doLazyInstantiation(GrResourceProvider*)\n                             third_party/skia/src/gpu/GrSurfaceProxy.cpp:375:0\n#11 0000000105f332d0 Flutter Flutter + 1864400\n                             GrProxyProvider::createProxyFromBitmap(SkBitmap const&, GrMipmapped, SkBackingFit, SkBudgeted)\n                             third_party/skia/src/gpu/GrProxyProvider.cpp:305:28\n#12 0000000105f104d4 Flutter Flutter + 1721556\n                             GrBitmapTextureMaker::refOriginalTextureProxyView(GrMipmapped)\n                             third_party/skia/src/gpu/GrBitmapTextureMaker.cpp:90:36\n#13 0000000105fc8ac4 Flutter Flutter + 2476740\n                             SkImage::MakeCrossContextFromPixmap(GrDirectContext*, SkPixmap const&, bool, bool)\n                             third_party/skia/src/image/SkImage_Gpu.cpp:637:29\n#14 000000010610f670 Flutter Flutter + 3815024\n                             flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3::operator()() const\n                             flutter/lib/ui/painting/image_decoder.cc:199:44\n                             decltype(std::__1::forward<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&>(fp)()) std::__1::__invoke<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&>(flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&>(flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0\n                             std::__1::__function::__alloc_func<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3, std::__1::allocator<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3>, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3, std::__1::allocator<flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)::$_3>, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#15 0000000105da8768 Flutter Flutter + 247656\n                             fml::SyncSwitch::Execute(fml::SyncSwitch::Handlers const&)\n                             flutter/fml/synchronization/sync_switch.cc:0:0\n#16 000000010610ef50 Flutter Flutter + 3813200\n                             flutter::UploadRasterImage(sk_sp<SkImage>, fml::WeakPtr<flutter::IOManager>, fml::tracing::TraceFlow const&)\n                             flutter/lib/ui/painting/image_decoder.cc:184:45\n                             flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()::operator()()\n                             flutter/lib/ui/painting/image_decoder.cc:295:0\n                             auto fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>::operator()<>() const\n                             flutter/fml/make_copyable.h:24:0\n                             decltype(std::__1::forward<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&>(fp)()) std::__1::__invoke<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&>(fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__invoke_void_return_wrapper<void>::__call<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&>(fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0\n                             std::__1::__function::__alloc_func<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>, std::__1::allocator<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()> >, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()>, std::__1::allocator<fml::internal::CopyableLambda<flutter::ImageDecoder::Decode(fml::RefPtr<flutter::ImageDescriptor>, unsigned int, unsigned int, std::__1::function<void (flutter::SkiaGPUObject<SkImage>)> const&)::$_1::operator()()::'lambda'()> >, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#17 0000000105da744c Flutter Flutter + 242764\n                             std::__1::__function::__value_func<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                             flutter/fml/message_loop_impl.cc:130:0\n#18 0000000105da93c0 Flutter Flutter + 250816\n                             fml::MessageLoopImpl::RunExpiredTasksNow()\n                             flutter/fml/message_loop_impl.cc:143:3\n                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0\n#19 00000001922a4a30 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28\n#20 00000001922a4634 CoreFoundation __CFRunLoopDoTimer + 1004\n#21 00000001922a3b14 CoreFoundation __CFRunLoopDoTimers + 324\n#22 000000019229deb0 CoreFoundation __CFRunLoopRun + 1912\n#23 000000019229d200 CoreFoundation CFRunLoopRunSpecific + 572\n#24 0000000105da929c Flutter Flutter + 250524\n                             fml::MessageLoopDarwin::Run()\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:46:20\n#25 0000000105da8c24 Flutter Flutter + 248868\n                             fml::MessageLoopImpl::DoRun()\n                             flutter/fml/message_loop_impl.cc:96:3\n                             fml::MessageLoop::Run()\n                             flutter/fml/message_loop.cc:49:0\n                             fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0::operator()() const\n                             flutter/fml/thread.cc:36:0\n                             decltype(std::__1::forward<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fp)()) std::__1::__invoke<fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__thread_execute<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>(std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0>&, std::__1::__tuple_indices<>)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:342:0\n                             void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, fml::Thread::Thread(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)::$_0> >(void*)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/thread:352:0\n#26 00000001d7bcab70 libsystem_pthread.dylib _pthread_start + 288\n#27 00000001d7bcf880 libsystem_pthread.dylib thread_start + 8\n",
+    "notes": [
+      {
+        "kind": "loadBaseDetected",
+        "message": "0000000105d6c000"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test12.input.txt b/github-label-notifier/symbolizer/test/data/test12.input.txt
new file mode 100644
index 0000000..c6e5836
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test12.input.txt
@@ -0,0 +1,31 @@
+@flutter-symbolizer-bot this force ios flutter#v1.22.2 arm64
+
+Crashed: io.flutter.1.io
+0  IOGPU                          0x1cb298b8c -[IOGPUMetalCommandBuffer commandBufferResourceInfo] + 12
+1  AGXMetalA9                     0x1d812f4e0 (Missing)
+2  AGXMetalA9                     0x1d80ae408 (Missing)
+3  AGXMetalA9                     0x1d80baff0 (Missing)
+4  Flutter                        0x106013134 (Missing)
+5  Flutter                        0x1060161e4 (Missing)
+6  Flutter                        0x105f27e84 (Missing)
+7  Flutter                        0x105f27ae4 (Missing)
+8  Flutter                        0x105f45a64 (Missing)
+9  Flutter                        0x105f336f4 (Missing)
+10 Flutter                        0x105f510d4 (Missing)
+11 Flutter                        0x105f332d0 (Missing)
+12 Flutter                        0x105f104d4 (Missing)
+13 Flutter                        0x105fc8ac4 (Missing)
+14 Flutter                        0x10610f670 (Missing)
+15 Flutter                        0x105da8768 (Missing)
+16 Flutter                        0x10610ef50 (Missing)
+17 Flutter                        0x105da744c (Missing)
+18 Flutter                        0x105da93c0 (Missing)
+19 CoreFoundation                 0x1922a4a30 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
+20 CoreFoundation                 0x1922a4634 __CFRunLoopDoTimer + 1004
+21 CoreFoundation                 0x1922a3b14 __CFRunLoopDoTimers + 324
+22 CoreFoundation                 0x19229deb0 __CFRunLoopRun + 1912
+23 CoreFoundation                 0x19229d200 CFRunLoopRunSpecific + 572
+24 Flutter                        0x105da929c (Missing)
+25 Flutter                        0x105da8c24 (Missing)
+26 libsystem_pthread.dylib        0x1d7bcab70 _pthread_start + 288
+27 libsystem_pthread.dylib        0x1d7bcf880 thread_start + 8
diff --git a/github-label-notifier/symbolizer/test/data/test13.expected.github.txt b/github-label-notifier/symbolizer/test/data/test13.expected.github.txt
new file mode 100644
index 0000000..99beb3c
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test13.expected.github.txt
@@ -0,0 +1,138 @@
+crash from null symbolized using symbols for `2eac514f26a676d1df0821e815d501149d3ead7f` `ios-arm64-release`
+```
+#00 0000000182e17a74 Metal Metal + 68212
+#01 00000001a0963190 AGXMetalA8 AGXMetalA8 + 520592
+#02 00000001a095c3f4 AGXMetalA8 AGXMetalA8 + 492532
+#03 00000001a093ea58 AGXMetalA8 AGXMetalA8 + 371288
+#04 0000000105340708 Flutter Flutter + 2836232
+                             GrMtlCommandBuffer::getRenderCommandEncoder(MTLRenderPassDescriptor*, GrMtlPipelineState const*, GrMtlOpsRenderPass*)
+                             third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm:89:35
+#05 0000000105347e48 Flutter Flutter + 2866760
+                             GrMtlOpsRenderPass::precreateCmdEncoder()
+                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:37:36
+#06 0000000105348458 Flutter Flutter + 2868312
+                             GrMtlOpsRenderPass::setupRenderPass(GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)
+                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:238:15
+                             GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu*, GrRenderTarget*, GrSurfaceOrigin, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)
+                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:27:0
+                             GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu*, GrRenderTarget*, GrSurfaceOrigin, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)
+                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:26:0
+#07 0000000105340fa4 Flutter Flutter + 2838436
+                             GrMtlGpu::getOpsRenderPass(GrRenderTarget*, GrStencilAttachment*, GrSurfaceOrigin, SkIRect const&, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&, SkTArray<GrSurfaceProxy*, true> const&, GrXferBarrierFlags)
+                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:192:16
+#08 000000010525944c Flutter Flutter + 1889356
+                             create_render_pass(GrGpu*, GrRenderTarget*, GrStencilAttachment*, GrSurfaceOrigin, SkIRect const&, GrLoadOp, SkRGBA4f<(SkAlphaType)2> const&, GrLoadOp, GrStoreOp, SkTArray<GrSurfaceProxy*, true> const&, GrXferBarrierFlags)
+                             third_party/skia/src/gpu/GrOpsTask.cpp:509:17
+                             GrOpsTask::onExecute(GrOpFlushState*)
+                             third_party/skia/src/gpu/GrOpsTask.cpp:593:0
+#09 000000010524cad8 Flutter Flutter + 1837784
+                             GrRenderTask::execute(GrOpFlushState*)
+                             third_party/skia/src/gpu/GrRenderTask.h:38:61
+                             GrDrawingManager::executeRenderTasks(int, int, GrOpFlushState*, int*)
+                             third_party/skia/src/gpu/GrDrawingManager.cpp:456:0
+                             GrDrawingManager::flush(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)
+                             third_party/skia/src/gpu/GrDrawingManager.cpp:335:0
+#10 000000010524cdf8 Flutter Flutter + 1838584
+                             GrDrawingManager::flushSurfaces(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)
+                             third_party/skia/src/gpu/GrDrawingManager.cpp:562:27
+#11 00000001052787c8 Flutter Flutter + 2017224
+                             GrDrawingManager::flushSurface(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)
+                             third_party/skia/src/gpu/GrDrawingManager.h:109:22
+                             GrSurfaceContext::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)
+                             third_party/skia/src/gpu/GrSurfaceContext.cpp:1232:0
+#12 00000001052ef5a4 Flutter Flutter + 2504100
+                             SkGpuDevice::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)
+                             third_party/skia/src/gpu/SkGpuDevice.cpp:1054:34
+                             SkGpuDevice::flush()
+                             third_party/skia/src/gpu/SkGpuDevice.cpp:1045:0
+#13 000000010550b5cc Flutter Flutter + 4715980
+                             SkCanvas::flush()
+                             third_party/skia/src/core/SkCanvas.cpp:614:11
+                             flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0::operator()(flutter::SurfaceFrame const&, SkCanvas*) const
+                             flutter/shell/gpu/gpu_surface_metal.mm:89:0
+                             decltype(std::__1::forward<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&>(fp)(std::__1::forward<flutter::SurfaceFrame const&>(fp0), std::__1::forward<SkCanvas*>(fp0))) std::__1::__invoke<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*>(flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             bool std::__1::__invoke_void_return_wrapper<bool>::__call<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*>(flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:318:0
+                             std::__1::__function::__alloc_func<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0
+                             std::__1::__function::__func<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0
+#14 000000010511b60c Flutter Flutter + 587276
+                             std::__1::__function::__value_func<bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&) const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*) const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             flutter::SurfaceFrame::PerformSubmit()
+                             flutter/flow/surface_frame.cc:65:0
+                             flutter::SurfaceFrame::Submit()
+                             flutter/flow/surface_frame.cc:43:0
+#15 00000001050a5268 Flutter Flutter + 103016
+                             flutter::FlutterPlatformViewsController::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::IOSContext>, sk_sp<SkPicture>, SkRect, long long, long long)
+                             flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:634:41
+                             flutter::FlutterPlatformViewsController::SubmitFrame(GrDirectContext*, std::__1::shared_ptr<flutter::IOSContext>, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)
+                             flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:533:0
+#16 00000001050bee8c Flutter Flutter + 208524
+                             flutter::IOSSurface::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)
+                             flutter/shell/platform/darwin/ios/ios_surface.mm:121:31
+#17 000000010539e840 Flutter Flutter + 3221568
+                             flutter::Rasterizer::DrawToSurface(flutter::LayerTree&)
+                             flutter/shell/common/rasterizer.cc:474:31
+#18 000000010539f400 Flutter Flutter + 3224576
+                             flutter::Rasterizer::DoDraw(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)
+                             flutter/shell/common/rasterizer.cc:339:32
+                             flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const
+                             flutter/shell/common/rasterizer.cc:173:0
+                             decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&>(fp)(std::__1::forward<std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(fp0))) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0
+                             std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0
+                             std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0
+#19 000000010539eb10 Flutter Flutter + 3222288
+                             std::__1::__function::__value_func<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             flutter::Pipeline<flutter::LayerTree>::Consume(std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)> const&)
+                             flutter/shell/common/pipeline.h:161:0
+                             flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)
+                             flutter/shell/common/rasterizer.cc:177:0
+#20 00000001053a5208 Flutter Flutter + 3248648
+                             flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31::operator()() const
+                             flutter/shell/common/shell.cc:1046:23
+                             decltype(std::__1::forward<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(fp)()) std::__1::__invoke<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0
+                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&)
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0
+                             std::__1::__function::__alloc_func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31>, void ()>::operator()()
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0
+                             std::__1::__function::__func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31>, void ()>::operator()()
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0
+#21 00000001050c9c7c Flutter Flutter + 253052
+                             std::__1::__function::__value_func<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16
+                             std::__1::function<void ()>::operator()() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0
+                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)
+                             flutter/fml/message_loop_impl.cc:130:0
+#22 00000001050cbbf0 Flutter Flutter + 261104
+                             fml::MessageLoopImpl::RunExpiredTasksNow()
+                             flutter/fml/message_loop_impl.cc:143:3
+                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)
+                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0
+#23 00000001810e3dbc CoreFoundation CoreFoundation + 966076
+#24 00000001810e3ae0 CoreFoundation CoreFoundation + 965344
+#25 00000001810e32e0 CoreFoundation CoreFoundation + 963296
+#26 00000001810e0ec8 CoreFoundation CoreFoundation + 954056
+#27 0000000181000c54 CoreFoundation CoreFoundation + 35924
+#28 0000000182eacf80 GraphicsServices GraphicsServices + 44928
+#29 000000018a7595c0 UIKit UIKit + 472512
+#30 00000001003cb6b4 ios_prod_global main -main.m:35
+#31 0000000180b20568 libdyld.dylib libdyld.dylib + 5480
+
+```
+_(Load address missing from the report, detected heuristically: 000000010508c000)_
+<!-- {"symbolized":[1001]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test13.expected.txt b/github-label-notifier/symbolizer/test/data/test13.expected.txt
new file mode 100644
index 0000000..8e98a60
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test13.expected.txt
@@ -0,0 +1,318 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 6490782324,
+          "binary": "Metal",
+          "offset": 68212,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "01",
+          "pc": 6989164944,
+          "binary": "AGXMetalA8",
+          "offset": 520592,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "02",
+          "pc": 6989136884,
+          "binary": "AGXMetalA8",
+          "offset": 492532,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "03",
+          "pc": 6989015640,
+          "binary": "AGXMetalA8",
+          "offset": 371288,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "04",
+          "pc": 4382263048,
+          "binary": "Flutter",
+          "offset": 2836232,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "05",
+          "pc": 4382293576,
+          "binary": "Flutter",
+          "offset": 2866760,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "06",
+          "pc": 4382295128,
+          "binary": "Flutter",
+          "offset": 2868312,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "07",
+          "pc": 4382265252,
+          "binary": "Flutter",
+          "offset": 2838436,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "08",
+          "pc": 4381316172,
+          "binary": "Flutter",
+          "offset": 1889356,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "09",
+          "pc": 4381264600,
+          "binary": "Flutter",
+          "offset": 1837784,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "10",
+          "pc": 4381265400,
+          "binary": "Flutter",
+          "offset": 1838584,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "11",
+          "pc": 4381444040,
+          "binary": "Flutter",
+          "offset": 2017224,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "12",
+          "pc": 4381930916,
+          "binary": "Flutter",
+          "offset": 2504100,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "13",
+          "pc": 4384142796,
+          "binary": "Flutter",
+          "offset": 4715980,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "14",
+          "pc": 4380014092,
+          "binary": "Flutter",
+          "offset": 587276,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "15",
+          "pc": 4379529832,
+          "binary": "Flutter",
+          "offset": 103016,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "16",
+          "pc": 4379635340,
+          "binary": "Flutter",
+          "offset": 208524,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "17",
+          "pc": 4382648384,
+          "binary": "Flutter",
+          "offset": 3221568,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "18",
+          "pc": 4382651392,
+          "binary": "Flutter",
+          "offset": 3224576,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "19",
+          "pc": 4382649104,
+          "binary": "Flutter",
+          "offset": 3222288,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "20",
+          "pc": 4382675464,
+          "binary": "Flutter",
+          "offset": 3248648,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "21",
+          "pc": 4379679868,
+          "binary": "Flutter",
+          "offset": 253052,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "22",
+          "pc": 4379687920,
+          "binary": "Flutter",
+          "offset": 261104,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "23",
+          "pc": 6460161468,
+          "binary": "CoreFoundation",
+          "offset": 966076,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "24",
+          "pc": 6460160736,
+          "binary": "CoreFoundation",
+          "offset": 965344,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "25",
+          "pc": 6460158688,
+          "binary": "CoreFoundation",
+          "offset": 963296,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "26",
+          "pc": 6460149448,
+          "binary": "CoreFoundation",
+          "offset": 954056,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "27",
+          "pc": 6459231316,
+          "binary": "CoreFoundation",
+          "offset": 35924,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "28",
+          "pc": 6491393920,
+          "binary": "GraphicsServices",
+          "offset": 44928,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "29",
+          "pc": 6617929152,
+          "binary": "UIKit",
+          "offset": 472512,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "30",
+          "pc": 4298946228,
+          "binary": "ios_prod_global",
+          "offset": null,
+          "location": "-main.m:35",
+          "symbol": "main",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "31",
+          "pc": 6454117736,
+          "binary": "libdyld.dylib",
+          "offset": 5480,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        }
+      ],
+      "format": "custom",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "2eac514f26a676d1df0821e815d501149d3ead7f",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 0000000182e17a74 Metal Metal + 68212\n#01 00000001a0963190 AGXMetalA8 AGXMetalA8 + 520592\n#02 00000001a095c3f4 AGXMetalA8 AGXMetalA8 + 492532\n#03 00000001a093ea58 AGXMetalA8 AGXMetalA8 + 371288\n#04 0000000105340708 Flutter Flutter + 2836232\n                             GrMtlCommandBuffer::getRenderCommandEncoder(MTLRenderPassDescriptor*, GrMtlPipelineState const*, GrMtlOpsRenderPass*)\n                             third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm:89:35\n#05 0000000105347e48 Flutter Flutter + 2866760\n                             GrMtlOpsRenderPass::precreateCmdEncoder()\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:37:36\n#06 0000000105348458 Flutter Flutter + 2868312\n                             GrMtlOpsRenderPass::setupRenderPass(GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:238:15\n                             GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu*, GrRenderTarget*, GrSurfaceOrigin, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:27:0\n                             GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu*, GrRenderTarget*, GrSurfaceOrigin, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:26:0\n#07 0000000105340fa4 Flutter Flutter + 2838436\n                             GrMtlGpu::getOpsRenderPass(GrRenderTarget*, GrStencilAttachment*, GrSurfaceOrigin, SkIRect const&, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&, SkTArray<GrSurfaceProxy*, true> const&, GrXferBarrierFlags)\n                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:192:16\n#08 000000010525944c Flutter Flutter + 1889356\n                             create_render_pass(GrGpu*, GrRenderTarget*, GrStencilAttachment*, GrSurfaceOrigin, SkIRect const&, GrLoadOp, SkRGBA4f<(SkAlphaType)2> const&, GrLoadOp, GrStoreOp, SkTArray<GrSurfaceProxy*, true> const&, GrXferBarrierFlags)\n                             third_party/skia/src/gpu/GrOpsTask.cpp:509:17\n                             GrOpsTask::onExecute(GrOpFlushState*)\n                             third_party/skia/src/gpu/GrOpsTask.cpp:593:0\n#09 000000010524cad8 Flutter Flutter + 1837784\n                             GrRenderTask::execute(GrOpFlushState*)\n                             third_party/skia/src/gpu/GrRenderTask.h:38:61\n                             GrDrawingManager::executeRenderTasks(int, int, GrOpFlushState*, int*)\n                             third_party/skia/src/gpu/GrDrawingManager.cpp:456:0\n                             GrDrawingManager::flush(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrDrawingManager.cpp:335:0\n#10 000000010524cdf8 Flutter Flutter + 1838584\n                             GrDrawingManager::flushSurfaces(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrDrawingManager.cpp:562:27\n#11 00000001052787c8 Flutter Flutter + 2017224\n                             GrDrawingManager::flushSurface(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrDrawingManager.h:109:22\n                             GrSurfaceContext::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrSurfaceContext.cpp:1232:0\n#12 00000001052ef5a4 Flutter Flutter + 2504100\n                             SkGpuDevice::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/SkGpuDevice.cpp:1054:34\n                             SkGpuDevice::flush()\n                             third_party/skia/src/gpu/SkGpuDevice.cpp:1045:0\n#13 000000010550b5cc Flutter Flutter + 4715980\n                             SkCanvas::flush()\n                             third_party/skia/src/core/SkCanvas.cpp:614:11\n                             flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0::operator()(flutter::SurfaceFrame const&, SkCanvas*) const\n                             flutter/shell/gpu/gpu_surface_metal.mm:89:0\n                             decltype(std::__1::forward<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&>(fp)(std::__1::forward<flutter::SurfaceFrame const&>(fp0), std::__1::forward<SkCanvas*>(fp0))) std::__1::__invoke<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*>(flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             bool std::__1::__invoke_void_return_wrapper<bool>::__call<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*>(flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:318:0\n                             std::__1::__function::__alloc_func<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#14 000000010511b60c Flutter Flutter + 587276\n                             std::__1::__function::__value_func<bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             flutter::SurfaceFrame::PerformSubmit()\n                             flutter/flow/surface_frame.cc:65:0\n                             flutter::SurfaceFrame::Submit()\n                             flutter/flow/surface_frame.cc:43:0\n#15 00000001050a5268 Flutter Flutter + 103016\n                             flutter::FlutterPlatformViewsController::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::IOSContext>, sk_sp<SkPicture>, SkRect, long long, long long)\n                             flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:634:41\n                             flutter::FlutterPlatformViewsController::SubmitFrame(GrDirectContext*, std::__1::shared_ptr<flutter::IOSContext>, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)\n                             flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:533:0\n#16 00000001050bee8c Flutter Flutter + 208524\n                             flutter::IOSSurface::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)\n                             flutter/shell/platform/darwin/ios/ios_surface.mm:121:31\n#17 000000010539e840 Flutter Flutter + 3221568\n                             flutter::Rasterizer::DrawToSurface(flutter::LayerTree&)\n                             flutter/shell/common/rasterizer.cc:474:31\n#18 000000010539f400 Flutter Flutter + 3224576\n                             flutter::Rasterizer::DoDraw(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)\n                             flutter/shell/common/rasterizer.cc:339:32\n                             flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const\n                             flutter/shell/common/rasterizer.cc:173:0\n                             decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&>(fp)(std::__1::forward<std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(fp0))) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0\n                             std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#19 000000010539eb10 Flutter Flutter + 3222288\n                             std::__1::__function::__value_func<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             flutter::Pipeline<flutter::LayerTree>::Consume(std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)> const&)\n                             flutter/shell/common/pipeline.h:161:0\n                             flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)\n                             flutter/shell/common/rasterizer.cc:177:0\n#20 00000001053a5208 Flutter Flutter + 3248648\n                             flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31::operator()() const\n                             flutter/shell/common/shell.cc:1046:23\n                             decltype(std::__1::forward<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(fp)()) std::__1::__invoke<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0\n                             std::__1::__function::__alloc_func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31>, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31>, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#21 00000001050c9c7c Flutter Flutter + 253052\n                             std::__1::__function::__value_func<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                             flutter/fml/message_loop_impl.cc:130:0\n#22 00000001050cbbf0 Flutter Flutter + 261104\n                             fml::MessageLoopImpl::RunExpiredTasksNow()\n                             flutter/fml/message_loop_impl.cc:143:3\n                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0\n#23 00000001810e3dbc CoreFoundation CoreFoundation + 966076\n#24 00000001810e3ae0 CoreFoundation CoreFoundation + 965344\n#25 00000001810e32e0 CoreFoundation CoreFoundation + 963296\n#26 00000001810e0ec8 CoreFoundation CoreFoundation + 954056\n#27 0000000181000c54 CoreFoundation CoreFoundation + 35924\n#28 0000000182eacf80 GraphicsServices GraphicsServices + 44928\n#29 000000018a7595c0 UIKit UIKit + 472512\n#30 00000001003cb6b4 ios_prod_global main -main.m:35\n#31 0000000180b20568 libdyld.dylib libdyld.dylib + 5480\n",
+    "notes": [
+      {
+        "kind": "loadBaseDetected",
+        "message": "000000010508c000"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test13.input.txt b/github-label-notifier/symbolizer/test/data/test13.input.txt
new file mode 100644
index 0000000..ecf2275
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test13.input.txt
@@ -0,0 +1,35 @@
+@flutter-symbolizer-bot engine#2eac514f26a676d1df0821e815d501149d3ead7f release arm64 internal ios this
+
+Thread 0  (id: 0x00000303) CRASHED [EXC_BAD_ACCESS / KERN_INVALID_ADDRESS @ 0x000002e0 ]Show exception record
+0x0000000182e17a74(Metal + 0x00010a74)
+0x00000001a0963190(AGXMetalA8 + 0x0007f190)
+0x00000001a095c3f4(AGXMetalA8 + 0x000783f4)
+0x00000001a093ea58(AGXMetalA8 + 0x0005aa58)
+0x0000000105340708(Flutter + 0x002b4708)
+0x0000000105347e48(Flutter + 0x002bbe48)
+0x0000000105348458(Flutter + 0x002bc458)
+0x0000000105340fa4(Flutter + 0x002b4fa4)
+0x000000010525944c(Flutter + 0x001cd44c)
+0x000000010524cad8(Flutter + 0x001c0ad8)
+0x000000010524cdf8(Flutter + 0x001c0df8)
+0x00000001052787c8(Flutter + 0x001ec7c8)
+0x00000001052ef5a4(Flutter + 0x002635a4)
+0x000000010550b5cc(Flutter + 0x0047f5cc)
+0x000000010511b60c(Flutter + 0x0008f60c)
+0x00000001050a5268(Flutter + 0x00019268)
+0x00000001050bee8c(Flutter + 0x00032e8c)
+0x000000010539e840(Flutter + 0x00312840)
+0x000000010539f400(Flutter + 0x00313400)
+0x000000010539eb10(Flutter + 0x00312b10)
+0x00000001053a5208(Flutter + 0x00319208)
+0x00000001050c9c7c(Flutter + 0x0003dc7c)
+0x00000001050cbbf0(Flutter + 0x0003fbf0)
+0x00000001810e3dbc(CoreFoundation + 0x000ebdbc)
+0x00000001810e3ae0(CoreFoundation + 0x000ebae0)
+0x00000001810e32e0(CoreFoundation + 0x000eb2e0)
+0x00000001810e0ec8(CoreFoundation + 0x000e8ec8)
+0x0000000181000c54(CoreFoundation + 0x00008c54)
+0x0000000182eacf80(GraphicsServices + 0x0000af80)
+0x000000018a7595c0(UIKit + 0x000735c0)
+0x00000001003cb6b4(ios_prod_global -main.m:35)main
+0x0000000180b20568(libdyld.dylib + 0x00001568)
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test14.expected.github.txt b/github-label-notifier/symbolizer/test/data/test14.expected.github.txt
new file mode 100644
index 0000000..b976127
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test14.expected.github.txt
@@ -0,0 +1,3 @@
+@somebody Sorry, only **public members of Flutter org** can trigger my services.
+
+Check your privacy settings as described [here](https://docs.github.com/en/free-pro-team@latest/github/setting-up-and-managing-your-github-user-account/publicizing-or-hiding-organization-membership).
diff --git a/github-label-notifier/symbolizer/test/data/test14.expected.txt b/github-label-notifier/symbolizer/test/data/test14.expected.txt
new file mode 100644
index 0000000..8e98a60
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test14.expected.txt
@@ -0,0 +1,318 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 6490782324,
+          "binary": "Metal",
+          "offset": 68212,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "01",
+          "pc": 6989164944,
+          "binary": "AGXMetalA8",
+          "offset": 520592,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "02",
+          "pc": 6989136884,
+          "binary": "AGXMetalA8",
+          "offset": 492532,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "03",
+          "pc": 6989015640,
+          "binary": "AGXMetalA8",
+          "offset": 371288,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "04",
+          "pc": 4382263048,
+          "binary": "Flutter",
+          "offset": 2836232,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "05",
+          "pc": 4382293576,
+          "binary": "Flutter",
+          "offset": 2866760,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "06",
+          "pc": 4382295128,
+          "binary": "Flutter",
+          "offset": 2868312,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "07",
+          "pc": 4382265252,
+          "binary": "Flutter",
+          "offset": 2838436,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "08",
+          "pc": 4381316172,
+          "binary": "Flutter",
+          "offset": 1889356,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "09",
+          "pc": 4381264600,
+          "binary": "Flutter",
+          "offset": 1837784,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "10",
+          "pc": 4381265400,
+          "binary": "Flutter",
+          "offset": 1838584,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "11",
+          "pc": 4381444040,
+          "binary": "Flutter",
+          "offset": 2017224,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "12",
+          "pc": 4381930916,
+          "binary": "Flutter",
+          "offset": 2504100,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "13",
+          "pc": 4384142796,
+          "binary": "Flutter",
+          "offset": 4715980,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "14",
+          "pc": 4380014092,
+          "binary": "Flutter",
+          "offset": 587276,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "15",
+          "pc": 4379529832,
+          "binary": "Flutter",
+          "offset": 103016,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "16",
+          "pc": 4379635340,
+          "binary": "Flutter",
+          "offset": 208524,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "17",
+          "pc": 4382648384,
+          "binary": "Flutter",
+          "offset": 3221568,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "18",
+          "pc": 4382651392,
+          "binary": "Flutter",
+          "offset": 3224576,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "19",
+          "pc": 4382649104,
+          "binary": "Flutter",
+          "offset": 3222288,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "20",
+          "pc": 4382675464,
+          "binary": "Flutter",
+          "offset": 3248648,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "21",
+          "pc": 4379679868,
+          "binary": "Flutter",
+          "offset": 253052,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "22",
+          "pc": 4379687920,
+          "binary": "Flutter",
+          "offset": 261104,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "23",
+          "pc": 6460161468,
+          "binary": "CoreFoundation",
+          "offset": 966076,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "24",
+          "pc": 6460160736,
+          "binary": "CoreFoundation",
+          "offset": 965344,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "25",
+          "pc": 6460158688,
+          "binary": "CoreFoundation",
+          "offset": 963296,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "26",
+          "pc": 6460149448,
+          "binary": "CoreFoundation",
+          "offset": 954056,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "27",
+          "pc": 6459231316,
+          "binary": "CoreFoundation",
+          "offset": 35924,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "28",
+          "pc": 6491393920,
+          "binary": "GraphicsServices",
+          "offset": 44928,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "29",
+          "pc": 6617929152,
+          "binary": "UIKit",
+          "offset": 472512,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "30",
+          "pc": 4298946228,
+          "binary": "ios_prod_global",
+          "offset": null,
+          "location": "-main.m:35",
+          "symbol": "main",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "31",
+          "pc": 6454117736,
+          "binary": "libdyld.dylib",
+          "offset": 5480,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        }
+      ],
+      "format": "custom",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "2eac514f26a676d1df0821e815d501149d3ead7f",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 0000000182e17a74 Metal Metal + 68212\n#01 00000001a0963190 AGXMetalA8 AGXMetalA8 + 520592\n#02 00000001a095c3f4 AGXMetalA8 AGXMetalA8 + 492532\n#03 00000001a093ea58 AGXMetalA8 AGXMetalA8 + 371288\n#04 0000000105340708 Flutter Flutter + 2836232\n                             GrMtlCommandBuffer::getRenderCommandEncoder(MTLRenderPassDescriptor*, GrMtlPipelineState const*, GrMtlOpsRenderPass*)\n                             third_party/skia/src/gpu/mtl/GrMtlCommandBuffer.mm:89:35\n#05 0000000105347e48 Flutter Flutter + 2866760\n                             GrMtlOpsRenderPass::precreateCmdEncoder()\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:37:36\n#06 0000000105348458 Flutter Flutter + 2868312\n                             GrMtlOpsRenderPass::setupRenderPass(GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:238:15\n                             GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu*, GrRenderTarget*, GrSurfaceOrigin, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:27:0\n                             GrMtlOpsRenderPass::GrMtlOpsRenderPass(GrMtlGpu*, GrRenderTarget*, GrSurfaceOrigin, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&)\n                             third_party/skia/src/gpu/mtl/GrMtlOpsRenderPass.mm:26:0\n#07 0000000105340fa4 Flutter Flutter + 2838436\n                             GrMtlGpu::getOpsRenderPass(GrRenderTarget*, GrStencilAttachment*, GrSurfaceOrigin, SkIRect const&, GrOpsRenderPass::LoadAndStoreInfo const&, GrOpsRenderPass::StencilLoadAndStoreInfo const&, SkTArray<GrSurfaceProxy*, true> const&, GrXferBarrierFlags)\n                             third_party/skia/src/gpu/mtl/GrMtlGpu.mm:192:16\n#08 000000010525944c Flutter Flutter + 1889356\n                             create_render_pass(GrGpu*, GrRenderTarget*, GrStencilAttachment*, GrSurfaceOrigin, SkIRect const&, GrLoadOp, SkRGBA4f<(SkAlphaType)2> const&, GrLoadOp, GrStoreOp, SkTArray<GrSurfaceProxy*, true> const&, GrXferBarrierFlags)\n                             third_party/skia/src/gpu/GrOpsTask.cpp:509:17\n                             GrOpsTask::onExecute(GrOpFlushState*)\n                             third_party/skia/src/gpu/GrOpsTask.cpp:593:0\n#09 000000010524cad8 Flutter Flutter + 1837784\n                             GrRenderTask::execute(GrOpFlushState*)\n                             third_party/skia/src/gpu/GrRenderTask.h:38:61\n                             GrDrawingManager::executeRenderTasks(int, int, GrOpFlushState*, int*)\n                             third_party/skia/src/gpu/GrDrawingManager.cpp:456:0\n                             GrDrawingManager::flush(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrDrawingManager.cpp:335:0\n#10 000000010524cdf8 Flutter Flutter + 1838584\n                             GrDrawingManager::flushSurfaces(GrSurfaceProxy**, int, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrDrawingManager.cpp:562:27\n#11 00000001052787c8 Flutter Flutter + 2017224\n                             GrDrawingManager::flushSurface(GrSurfaceProxy*, SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrDrawingManager.h:109:22\n                             GrSurfaceContext::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/GrSurfaceContext.cpp:1232:0\n#12 00000001052ef5a4 Flutter Flutter + 2504100\n                             SkGpuDevice::flush(SkSurface::BackendSurfaceAccess, GrFlushInfo const&, GrBackendSurfaceMutableState const*)\n                             third_party/skia/src/gpu/SkGpuDevice.cpp:1054:34\n                             SkGpuDevice::flush()\n                             third_party/skia/src/gpu/SkGpuDevice.cpp:1045:0\n#13 000000010550b5cc Flutter Flutter + 4715980\n                             SkCanvas::flush()\n                             third_party/skia/src/core/SkCanvas.cpp:614:11\n                             flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0::operator()(flutter::SurfaceFrame const&, SkCanvas*) const\n                             flutter/shell/gpu/gpu_surface_metal.mm:89:0\n                             decltype(std::__1::forward<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&>(fp)(std::__1::forward<flutter::SurfaceFrame const&>(fp0), std::__1::forward<SkCanvas*>(fp0))) std::__1::__invoke<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*>(flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             bool std::__1::__invoke_void_return_wrapper<bool>::__call<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*>(flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0&, flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:318:0\n                             std::__1::__function::__alloc_func<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0, std::__1::allocator<flutter::GPUSurfaceMetal::AcquireFrame(SkISize const&)::$_0>, bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#14 000000010511b60c Flutter Flutter + 587276\n                             std::__1::__function::__value_func<bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*&&) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<bool (flutter::SurfaceFrame const&, SkCanvas*)>::operator()(flutter::SurfaceFrame const&, SkCanvas*) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             flutter::SurfaceFrame::PerformSubmit()\n                             flutter/flow/surface_frame.cc:65:0\n                             flutter::SurfaceFrame::Submit()\n                             flutter/flow/surface_frame.cc:43:0\n#15 00000001050a5268 Flutter Flutter + 103016\n                             flutter::FlutterPlatformViewsController::GetLayer(GrDirectContext*, std::__1::shared_ptr<flutter::IOSContext>, sk_sp<SkPicture>, SkRect, long long, long long)\n                             flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:634:41\n                             flutter::FlutterPlatformViewsController::SubmitFrame(GrDirectContext*, std::__1::shared_ptr<flutter::IOSContext>, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)\n                             flutter/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm:533:0\n#16 00000001050bee8c Flutter Flutter + 208524\n                             flutter::IOSSurface::SubmitFrame(GrDirectContext*, std::__1::unique_ptr<flutter::SurfaceFrame, std::__1::default_delete<flutter::SurfaceFrame> >)\n                             flutter/shell/platform/darwin/ios/ios_surface.mm:121:31\n#17 000000010539e840 Flutter Flutter + 3221568\n                             flutter::Rasterizer::DrawToSurface(flutter::LayerTree&)\n                             flutter/shell/common/rasterizer.cc:474:31\n#18 000000010539f400 Flutter Flutter + 3224576\n                             flutter::Rasterizer::DoDraw(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)\n                             flutter/shell/common/rasterizer.cc:339:32\n                             flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const\n                             flutter/shell/common/rasterizer.cc:173:0\n                             decltype(std::__1::forward<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&>(fp)(std::__1::forward<std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(fp0))) std::__1::__invoke<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> > >(flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1&, std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0\n                             std::__1::__function::__alloc_func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1, std::__1::allocator<flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)::$_1>, void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#19 000000010539eb10 Flutter Flutter + 3222288\n                             std::__1::__function::__value_func<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >&&) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)>::operator()(std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >) const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             flutter::Pipeline<flutter::LayerTree>::Consume(std::__1::function<void (std::__1::unique_ptr<flutter::LayerTree, std::__1::default_delete<flutter::LayerTree> >)> const&)\n                             flutter/shell/common/pipeline.h:161:0\n                             flutter::Rasterizer::Draw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, std::__1::function<bool (flutter::LayerTree&)>)\n                             flutter/shell/common/rasterizer.cc:177:0\n#20 00000001053a5208 Flutter Flutter + 3248648\n                             flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31::operator()() const\n                             flutter/shell/common/shell.cc:1046:23\n                             decltype(std::__1::forward<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(fp)()) std::__1::__invoke<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/type_traits:4361:0\n                             void std::__1::__invoke_void_return_wrapper<void>::__call<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&>(flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31&)\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/__functional_base:349:0\n                             std::__1::__function::__alloc_func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31>, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1527:0\n                             std::__1::__function::__func<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31, std::__1::allocator<flutter::Shell::OnAnimatorDraw(fml::RefPtr<flutter::Pipeline<flutter::LayerTree> >, fml::TimePoint)::$_31>, void ()>::operator()()\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1651:0\n#21 00000001050c9c7c Flutter Flutter + 253052\n                             std::__1::__function::__value_func<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:1799:16\n                             std::__1::function<void ()>::operator()() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/functional:2347:0\n                             fml::MessageLoopImpl::FlushTasks(fml::FlushType)\n                             flutter/fml/message_loop_impl.cc:130:0\n#22 00000001050cbbf0 Flutter Flutter + 261104\n                             fml::MessageLoopImpl::RunExpiredTasksNow()\n                             flutter/fml/message_loop_impl.cc:143:3\n                             fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*)\n                             flutter/fml/platform/darwin/message_loop_darwin.mm:75:0\n#23 00000001810e3dbc CoreFoundation CoreFoundation + 966076\n#24 00000001810e3ae0 CoreFoundation CoreFoundation + 965344\n#25 00000001810e32e0 CoreFoundation CoreFoundation + 963296\n#26 00000001810e0ec8 CoreFoundation CoreFoundation + 954056\n#27 0000000181000c54 CoreFoundation CoreFoundation + 35924\n#28 0000000182eacf80 GraphicsServices GraphicsServices + 44928\n#29 000000018a7595c0 UIKit UIKit + 472512\n#30 00000001003cb6b4 ios_prod_global main -main.m:35\n#31 0000000180b20568 libdyld.dylib libdyld.dylib + 5480\n",
+    "notes": [
+      {
+        "kind": "loadBaseDetected",
+        "message": "000000010508c000"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test14.input.txt b/github-label-notifier/symbolizer/test/data/test14.input.txt
new file mode 100644
index 0000000..cf29d95
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test14.input.txt
@@ -0,0 +1,36 @@
+@flutter-symbolizer-bot engine#2eac514f26a676d1df0821e815d501149d3ead7f release arm64 internal ios this
+/unauthorized
+
+Thread 0  (id: 0x00000303) CRASHED [EXC_BAD_ACCESS / KERN_INVALID_ADDRESS @ 0x000002e0 ]Show exception record
+0x0000000182e17a74(Metal + 0x00010a74)
+0x00000001a0963190(AGXMetalA8 + 0x0007f190)
+0x00000001a095c3f4(AGXMetalA8 + 0x000783f4)
+0x00000001a093ea58(AGXMetalA8 + 0x0005aa58)
+0x0000000105340708(Flutter + 0x002b4708)
+0x0000000105347e48(Flutter + 0x002bbe48)
+0x0000000105348458(Flutter + 0x002bc458)
+0x0000000105340fa4(Flutter + 0x002b4fa4)
+0x000000010525944c(Flutter + 0x001cd44c)
+0x000000010524cad8(Flutter + 0x001c0ad8)
+0x000000010524cdf8(Flutter + 0x001c0df8)
+0x00000001052787c8(Flutter + 0x001ec7c8)
+0x00000001052ef5a4(Flutter + 0x002635a4)
+0x000000010550b5cc(Flutter + 0x0047f5cc)
+0x000000010511b60c(Flutter + 0x0008f60c)
+0x00000001050a5268(Flutter + 0x00019268)
+0x00000001050bee8c(Flutter + 0x00032e8c)
+0x000000010539e840(Flutter + 0x00312840)
+0x000000010539f400(Flutter + 0x00313400)
+0x000000010539eb10(Flutter + 0x00312b10)
+0x00000001053a5208(Flutter + 0x00319208)
+0x00000001050c9c7c(Flutter + 0x0003dc7c)
+0x00000001050cbbf0(Flutter + 0x0003fbf0)
+0x00000001810e3dbc(CoreFoundation + 0x000ebdbc)
+0x00000001810e3ae0(CoreFoundation + 0x000ebae0)
+0x00000001810e32e0(CoreFoundation + 0x000eb2e0)
+0x00000001810e0ec8(CoreFoundation + 0x000e8ec8)
+0x0000000181000c54(CoreFoundation + 0x00008c54)
+0x0000000182eacf80(GraphicsServices + 0x0000af80)
+0x000000018a7595c0(UIKit + 0x000735c0)
+0x00000001003cb6b4(ios_prod_global -main.m:35)main
+0x0000000180b20568(libdyld.dylib + 0x00001568)
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test15.expected.github.txt b/github-label-notifier/symbolizer/test/data/test15.expected.github.txt
new file mode 100644
index 0000000..c7aeeb4
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test15.expected.github.txt
@@ -0,0 +1,18 @@
+
+<details>
+<summary>There were failures symbolizing some of the crashes I found</summary>
+
+When processing null I found crash
+
+```
+Crash(engineVariant: EngineVariant(os: android, arch: null, mode: null), frames: [CrashFrame.android(no: 00, pc: 107580, binary: /system/lib/libc.so, rest:  (abort+63), buildId: null), CrashFrame.android(no: 01, pc: 2870917, binary: /data/app/com.example.app/lib/arm/libflutter.so, rest:  (offset 0x1002000), buildId: null)], format: native, androidMajorVersion: 8)
+```
+
+but failed to symbolize it with the following notes:
+
+* Unknown engine hash
+
+See [my documentation](https://github.com/flutter-symbolizer-bot/flutter-symbolizer-bot/blob/main/README.md#commands) for more details.
+</details>
+
+<!-- {"symbolized":[]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test15.expected.txt b/github-label-notifier/symbolizer/test/data/test15.expected.txt
new file mode 100644
index 0000000..fdd22af
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test15.expected.txt
@@ -0,0 +1,39 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": null,
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 107580,
+          "binary": "/system/lib/libc.so",
+          "rest": " (abort+63)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 2870917,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "rest": " (offset 0x1002000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 8
+    },
+    "engineBuild": null,
+    "symbolized": null,
+    "notes": [
+      {
+        "kind": "unknownEngineHash",
+        "message": null
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test15.input.txt b/github-label-notifier/symbolizer/test/data/test15.input.txt
new file mode 100644
index 0000000..95d4d89
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test15.input.txt
@@ -0,0 +1,14 @@
+```bash
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Build fingerprint: '...:8.1.0/.../...:...'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Revision: '0'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: pid: 11111, tid: 22222, name: DartWorker  >>> com.example.app <<<
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r0 00000000  r1 00000000  r2 00000000  r3 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r4 00000000  r5 00000000  r6 00000000  r7 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r8 00000000  r9 00000000  sl 00000000  fp 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     ip 00000000  sp 00000000  lr 00000000  pc 00000000  cpsr 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: backtrace:
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #00 pc 0001a43c  /system/lib/libc.so (abort+63)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #01 pc 002bce85  /data/app/com.example.app/lib/arm/libflutter.so (offset 0x1002000)
+```
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test16.expected.github.txt b/github-label-notifier/symbolizer/test/data/test16.expected.github.txt
new file mode 100644
index 0000000..5c43374
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test16.expected.github.txt
@@ -0,0 +1,18 @@
+
+<details>
+<summary>There were failures symbolizing some of the crashes I found</summary>
+
+When processing null I found crash
+
+```
+Crash(engineVariant: EngineVariant(os: android, arch: null, mode: null), frames: [CrashFrame.android(no: 00, pc: 107580, binary: /system/lib/libc.so, rest:  (abort+63), buildId: null), CrashFrame.android(no: 01, pc: 2870917, binary: /data/app/com.example.app/lib/arm/libflutter.so, rest:  (offset 0x1002000), buildId: null)], format: native, androidMajorVersion: 8)
+```
+
+but failed to symbolize it with the following notes:
+
+* Unknown engine ABI
+
+See [my documentation](https://github.com/flutter-symbolizer-bot/flutter-symbolizer-bot/blob/main/README.md#commands) for more details.
+</details>
+
+<!-- {"symbolized":[]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test16.expected.txt b/github-label-notifier/symbolizer/test/data/test16.expected.txt
new file mode 100644
index 0000000..ce29b59
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test16.expected.txt
@@ -0,0 +1,39 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": null,
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 107580,
+          "binary": "/system/lib/libc.so",
+          "rest": " (abort+63)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 2870917,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "rest": " (offset 0x1002000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 8
+    },
+    "engineBuild": null,
+    "symbolized": null,
+    "notes": [
+      {
+        "kind": "unknownAbi",
+        "message": null
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test16.input.txt b/github-label-notifier/symbolizer/test/data/test16.input.txt
new file mode 100644
index 0000000..7d64072
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test16.input.txt
@@ -0,0 +1,19 @@
+```bash
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Build fingerprint: '...:8.1.0/.../...:...'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Revision: '0'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: pid: 11111, tid: 22222, name: DartWorker  >>> com.example.app <<<
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r0 00000000  r1 00000000  r2 00000000  r3 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r4 00000000  r5 00000000  r6 00000000  r7 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r8 00000000  r9 00000000  sl 00000000  fp 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     ip 00000000  sp 00000000  lr 00000000  pc 00000000  cpsr 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: backtrace:
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #00 pc 0001a43c  /system/lib/libc.so (abort+63)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #01 pc 002bce85  /data/app/com.example.app/lib/arm/libflutter.so (offset 0x1002000)
+```
+
+```bash
+Doctor summary (to see all details, run flutter doctor -v):
+[✓] Flutter (Channel stable, 1.22.1, on xxxx, locale xxxx)
+```
diff --git a/github-label-notifier/symbolizer/test/data/test17.expected.github.txt b/github-label-notifier/symbolizer/test/data/test17.expected.github.txt
new file mode 100644
index 0000000..4e170da
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test17.expected.github.txt
@@ -0,0 +1,131 @@
+
+<details>
+<summary>There were failures symbolizing some of the crashes I found</summary>
+
+When processing null I found crash
+
+```
+Crash(engineVariant: EngineVariant(os: android, arch: arm, mode: null), frames: [CrashFrame.android(no: 00, pc: 107580, binary: /system/lib/libc.so, rest:  (abort+63), buildId: null), CrashFrame.android(no: 01, pc: 2870917, binary: /data/app/com.example.app/lib/arm/libflutter.so, rest:  (offset 0x1002000), buildId: null)], format: native, androidMajorVersion: 8)
+```
+
+but failed to symbolize it with the following notes:
+
+* Exception occurred while symbolizing:
+    ```
+    {EngineBuild(engineHash: 75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d, variant: EngineVariant(os: android, arch: arm, mode: release))} Failed to download EngineBuild(engineHash: 75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d, variant: EngineVariant(os: android, arch: arm, mode: release))
+    #0      SymbolsCacheProxy.get (file:///Users/vegorov/src/dart_ci/github-label-notifier/symbolizer/test/bot_test.dart:38:7)
+    #1      Symbolizer._symbolizeCrashWith (package:symbolizer/symbolizer.dart:100:40)
+    #2      Symbolizer._symbolizeCrash (package:symbolizer/symbolizer.dart:156:24)
+    #3      Symbolizer.symbolize.<anonymous closure> (package:symbolizer/symbolizer.dart:58:32)
+    #4      MappedListIterable.elementAt (dart:_internal/iterable.dart:417:31)
+    #5      ListIterator.moveNext (dart:_internal/iterable.dart:343:26)
+    #6      Future.wait (dart:async/future.dart:406:26)
+    #7      Symbolizer.symbolize (package:symbolizer/symbolizer.dart:57:25)
+    <asynchronous suspension>
+    #8      Bot.symbolizeGiven (package:symbolizer/bot.dart:249:28)
+    #9      Bot.executeCommand (package:symbolizer/bot.dart:189:11)
+    <asynchronous suspension>
+    #10     main.<anonymous closure>.<anonymous closure> (file:///Users/vegorov/src/dart_ci/github-label-notifier/symbolizer/test/bot_test.dart:183:19)
+    <asynchronous suspension>
+    #11     main.<anonymous closure>.<anonymous closure> (file:///Users/vegorov/src/dart_ci/github-label-notifier/symbolizer/test/bot_test.dart)
+    #12     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart:200:19)
+    <asynchronous suspension>
+    #13     Declarer.test.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/declarer.dart)
+    #14     _rootRun (dart:async/zone.dart:1190:13)
+    #15     _CustomZone.run (dart:async/zone.dart:1093:19)
+    #16     _runZoned (dart:async/zone.dart:1630:10)
+    #17     runZoned (dart:async/zone.dart:1550:10)
+    #18     Declarer.test.<anonymous closure> (package:test_api/src/backend/declarer.dart:198:13)
+    #19     Invoker.waitForOutstandingCallbacks.<anonymous closure> (package:test_api/src/backend/invoker.dart:231:15)
+    #20     _rootRun (dart:async/zone.dart:1190:13)
+    #21     _CustomZone.run (dart:async/zone.dart:1093:19)
+    #22     _runZoned (dart:async/zone.dart:1630:10)
+    #23     runZoned (dart:async/zone.dart:1550:10)
+    #24     Invoker.waitForOutstandingCallbacks (package:test_api/src/backend/invoker.dart:228:5)
+    #25     Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:383:17)
+    <asynchronous suspension>
+    #26     Invoker._onRun.<anonymous closure>.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart)
+    #27     _rootRun (dart:async/zone.dart:1190:13)
+    #28     _CustomZone.run (dart:async/zone.dart:1093:19)
+    #29     _runZoned (dart:async/zone.dart:1630:10)
+    #30     runZoned (dart:async/zone.dart:1550:10)
+    #31     Invoker._onRun.<anonymous closure>.<anonymous closure> (package:test_api/src/backend/invoker.dart:370:9)
+    #32     Invoker._guardIfGuarded (package:test_api/src/backend/invoker.dart:415:15)
+    #33     Invoker._onRun.<anonymous closure> (package:test_api/src/backend/invoker.dart:369:7)
+    #34     _rootRun (dart:async/zone.dart:1190:13)
+    #35     _CustomZone.run (dart:async/zone.dart:1093:19)
+    #36     _runZoned (dart:async/zone.dart:1630:10)
+    #37     runZoned (dart:async/zone.dart:1550:10)
+    #38     Chain.capture (package:stack_trace/src/chain.dart:98:14)
+    #39     Invoker._onRun (package:test_api/src/backend/invoker.dart:368:11)
+    #40     LiveTestController.run (package:test_api/src/backend/live_test_controller.dart:153:11)
+    #41     RemoteListener._runLiveTest.<anonymous closure> (package:test_api/src/remote_listener.dart:256:16)
+    #42     _rootRun (dart:async/zone.dart:1190:13)
+    #43     _CustomZone.run (dart:async/zone.dart:1093:19)
+    #44     _runZoned (dart:async/zone.dart:1630:10)
+    #45     runZoned (dart:async/zone.dart:1550:10)
+    #46     RemoteListener._runLiveTest (package:test_api/src/remote_listener.dart:255:5)
+    #47     RemoteListener._serializeTest.<anonymous closure> (package:test_api/src/remote_listener.dart:208:7)
+    #48     _rootRunUnary (dart:async/zone.dart:1198:47)
+    #49     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
+    #50     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
+    #51     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #52     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #53     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #54     _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #55     _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #56     _rootRunUnary (dart:async/zone.dart:1206:13)
+    #57     _CustomZone.runUnary (dart:async/zone.dart:1100:19)
+    #58     _CustomZone.runUnaryGuarded (dart:async/zone.dart:1005:7)
+    #59     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #60     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #61     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #62     _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #63     _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #64     _StreamSinkWrapper.add (dart:async/stream_controller.dart:900:13)
+    #65     _GuaranteeSink.add (package:stream_channel/src/guarantee_channel.dart:125:12)
+    #66     new _MultiChannel.<anonymous closure> (package:stream_channel/src/multi_channel.dart:159:31)
+    #67     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #68     CastStreamSubscription._onData (dart:_internal/async_cast.dart:85:11)
+    #69     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #70     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #71     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #72     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #73     _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #74     _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #75     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #76     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #77     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #78     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #79     _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #80     _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #81     _StreamSinkWrapper.add (dart:async/stream_controller.dart:900:13)
+    #82     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #83     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #84     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #85     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #86     _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #87     _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #88     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #89     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #90     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #91     _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #92     _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #93     _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #94     _StreamSinkWrapper.add (dart:async/stream_controller.dart:900:13)
+    #95     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #96     CastStreamSubscription._onData (dart:_internal/async_cast.dart:85:11)
+    #97     _RootZone.runUnaryGuarded (dart:async/zone.dart:1384:10)
+    #98     _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:357:11)
+    #99     _BufferingStreamSubscription._add (dart:async/stream_impl.dart:285:7)
+    #100    _SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:808:19)
+    #101    _StreamController._add (dart:async/stream_controller.dart:682:7)
+    #102    _StreamController.add (dart:async/stream_controller.dart:624:5)
+    #103    _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:168:12)
+    
+    ```
+
+See [my documentation](https://github.com/flutter-symbolizer-bot/flutter-symbolizer-bot/blob/main/README.md#commands) for more details.
+</details>
+
+<!-- {"symbolized":[]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test17.expected.txt b/github-label-notifier/symbolizer/test/data/test17.expected.txt
new file mode 100644
index 0000000..d3491ea
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test17.expected.txt
@@ -0,0 +1,46 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": null
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 107580,
+          "binary": "/system/lib/libc.so",
+          "rest": " (abort+63)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 2870917,
+          "binary": "/data/app/com.example.app/lib/arm/libflutter.so",
+          "rest": " (offset 0x1002000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 8
+    },
+    "engineBuild": {
+      "engineHash": "75bef9f6c8ac2ed4e1e04cdfcd88b177d9f1850d",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 0001a43c /system/lib/libc.so (abort+63)\n#01 002bce85 <...>/lib/arm/libflutter.so (offset 0x1002000)\n                                         EllipticalRRectOp::EllipticalRRectOp(GrSimpleMeshDrawOpHelper::MakeArgs, SkRGBA4f<(SkAlphaType)2> const&, SkMatrix const&, SkRect const&, float, float, SkPoint, bool)\n                                         third_party/skia/src/gpu/ops/GrOvalOpFactory.cpp:2896:18\n",
+    "notes": [
+      {
+        "kind": "defaultedToReleaseBuildIdUnavailable",
+        "message": null
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test17.input.txt b/github-label-notifier/symbolizer/test/data/test17.input.txt
new file mode 100644
index 0000000..4dc625d
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test17.input.txt
@@ -0,0 +1,22 @@
+/throw
+
+```bash
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Build fingerprint: '...:8.1.0/.../...:...'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: Revision: '0'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: ABI: 'arm'
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: pid: 11111, tid: 22222, name: DartWorker  >>> com.example.app <<<
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r0 00000000  r1 00000000  r2 00000000  r3 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r4 00000000  r5 00000000  r6 00000000  r7 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     r8 00000000  r9 00000000  sl 00000000  fp 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     ip 00000000  sp 00000000  lr 00000000  pc 00000000  cpsr 00000000
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG: backtrace:
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #00 pc 0001a43c  /system/lib/libc.so (abort+63)
+0000-00-00 00:00:00.000 33333-33333/? A/DEBUG:     #01 pc 002bce85  /data/app/com.example.app/lib/arm/libflutter.so (offset 0x1002000)
+```
+
+```bash
+Doctor summary (to see all details, run flutter doctor -v):
+[✓] Flutter (Channel stable, 1.22.1, on xxxx, locale xxxx)
+```
diff --git a/github-label-notifier/symbolizer/test/data/test18.expected.github.txt b/github-label-notifier/symbolizer/test/data/test18.expected.github.txt
new file mode 100644
index 0000000..fd017ed
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test18.expected.github.txt
@@ -0,0 +1,44 @@
+crash from null symbolized using symbols for `defa8be2b10650dad50dfee9324ed8d16eeec13f` `ios-arm64-release`
+```
+#00 000000010604661c Flutter Flutter + 4089372
+                             std::__1::unique_ptr<bssl::SSL_HANDSHAKE, bssl::internal::Deleter<bssl::SSL_HANDSHAKE> >::get() const
+                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/memory:2625:19
+                             SSL_in_init
+                             third_party/boringssl/src/ssl/ssl_lib.cc:2673:0
+                             SSL_get_session
+                             third_party/boringssl/src/ssl/ssl_session.cc:1060:0
+                             SSL_get_peer_full_cert_chain
+                             third_party/boringssl/src/ssl/ssl_x509.cc:554:0
+                             dart::bin::TrustEvaluateHandler(long long, _Dart_CObject*)
+                             third_party/dart/runtime/bin/security_context_macos.cc:181:0
+#01 0000000106046604 Flutter Flutter + 4089348
+                             dart::bin::CObject::operator new(unsigned long)
+                             third_party/dart/runtime/bin/dartutils.h:332:44
+                             dart::bin::CObjectArray::operator[](long) const
+                             third_party/dart/runtime/bin/dartutils.h:508:0
+                             dart::bin::TrustEvaluateHandler(long long, _Dart_CObject*)
+                             third_party/dart/runtime/bin/security_context_macos.cc:178:0
+#02 000000010613e080 Flutter Flutter + 5103744
+                             dart::NativeMessageHandler::HandleMessage(std::__1::unique_ptr<dart::Message, std::__1::default_delete<dart::Message> >)
+                             third_party/dart/runtime/vm/native_message_handler.cc:43:3
+#03 000000010613c7bc Flutter Flutter + 5097404
+                             dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)
+                             third_party/dart/runtime/vm/message_handler.cc:233:16
+#04 000000010613c3a0 Flutter Flutter + 5096352
+                             dart::MessageHandler::TaskCallback()
+                             third_party/dart/runtime/vm/message_handler.cc:443:18
+                             dart::MessageHandlerTask::Run()
+                             third_party/dart/runtime/vm/message_handler.cc:31:0
+#05 00000001061be4e0 Flutter Flutter + 5629152
+                             dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)
+                             third_party/dart/runtime/vm/thread_pool.cc:158:15
+                             dart::ThreadPool::Worker::Main(unsigned long)
+                             third_party/dart/runtime/vm/thread_pool.cc:323:0
+#06 0000000106176c04 Flutter Flutter + 5336068
+                             dart::ThreadStart(void*)
+                             third_party/dart/runtime/vm/os_thread_macos.cc:132:5
+#07 00000001f6849ca4 libsystem_pthread.dylib libsystem_pthread.dylib + 7332
+
+```
+_(Load address missing from the report, detected heuristically: 0000000105c60000)_
+<!-- {"symbolized":[1001]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test18.expected.txt b/github-label-notifier/symbolizer/test/data/test18.expected.txt
new file mode 100644
index 0000000..769cd53
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test18.expected.txt
@@ -0,0 +1,102 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 4395918876,
+          "binary": "Flutter",
+          "offset": 4089372,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "01",
+          "pc": 4395918852,
+          "binary": "Flutter",
+          "offset": 4089348,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "02",
+          "pc": 4396933248,
+          "binary": "Flutter",
+          "offset": 5103744,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "03",
+          "pc": 4396926908,
+          "binary": "Flutter",
+          "offset": 5097404,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "04",
+          "pc": 4396925856,
+          "binary": "Flutter",
+          "offset": 5096352,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "05",
+          "pc": 4397458656,
+          "binary": "Flutter",
+          "offset": 5629152,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "06",
+          "pc": 4397165572,
+          "binary": "Flutter",
+          "offset": 5336068,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        },
+        {
+          "no": "07",
+          "pc": 8430853284,
+          "binary": "libsystem_pthread.dylib",
+          "offset": 7332,
+          "location": null,
+          "symbol": "",
+          "runtimeType": "custom"
+        }
+      ],
+      "format": "custom",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "defa8be2b10650dad50dfee9324ed8d16eeec13f",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 000000010604661c Flutter Flutter + 4089372\n                             std::__1::unique_ptr<bssl::SSL_HANDSHAKE, bssl::internal::Deleter<bssl::SSL_HANDSHAKE> >::get() const\n                             /opt/s/w/ir/cache/osx_sdk/XCode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/memory:2625:19\n                             SSL_in_init\n                             third_party/boringssl/src/ssl/ssl_lib.cc:2673:0\n                             SSL_get_session\n                             third_party/boringssl/src/ssl/ssl_session.cc:1060:0\n                             SSL_get_peer_full_cert_chain\n                             third_party/boringssl/src/ssl/ssl_x509.cc:554:0\n                             dart::bin::TrustEvaluateHandler(long long, _Dart_CObject*)\n                             third_party/dart/runtime/bin/security_context_macos.cc:181:0\n#01 0000000106046604 Flutter Flutter + 4089348\n                             dart::bin::CObject::operator new(unsigned long)\n                             third_party/dart/runtime/bin/dartutils.h:332:44\n                             dart::bin::CObjectArray::operator[](long) const\n                             third_party/dart/runtime/bin/dartutils.h:508:0\n                             dart::bin::TrustEvaluateHandler(long long, _Dart_CObject*)\n                             third_party/dart/runtime/bin/security_context_macos.cc:178:0\n#02 000000010613e080 Flutter Flutter + 5103744\n                             dart::NativeMessageHandler::HandleMessage(std::__1::unique_ptr<dart::Message, std::__1::default_delete<dart::Message> >)\n                             third_party/dart/runtime/vm/native_message_handler.cc:43:3\n#03 000000010613c7bc Flutter Flutter + 5097404\n                             dart::MessageHandler::HandleMessages(dart::MonitorLocker*, bool, bool)\n                             third_party/dart/runtime/vm/message_handler.cc:233:16\n#04 000000010613c3a0 Flutter Flutter + 5096352\n                             dart::MessageHandler::TaskCallback()\n                             third_party/dart/runtime/vm/message_handler.cc:443:18\n                             dart::MessageHandlerTask::Run()\n                             third_party/dart/runtime/vm/message_handler.cc:31:0\n#05 00000001061be4e0 Flutter Flutter + 5629152\n                             dart::ThreadPool::WorkerLoop(dart::ThreadPool::Worker*)\n                             third_party/dart/runtime/vm/thread_pool.cc:158:15\n                             dart::ThreadPool::Worker::Main(unsigned long)\n                             third_party/dart/runtime/vm/thread_pool.cc:323:0\n#06 0000000106176c04 Flutter Flutter + 5336068\n                             dart::ThreadStart(void*)\n                             third_party/dart/runtime/vm/os_thread_macos.cc:132:5\n#07 00000001f6849ca4 libsystem_pthread.dylib libsystem_pthread.dylib + 7332\n",
+    "notes": [
+      {
+        "kind": "loadBaseDetected",
+        "message": "0000000105c60000"
+      }
+    ]
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test18.input.txt b/github-label-notifier/symbolizer/test/data/test18.input.txt
new file mode 100644
index 0000000..a8a4552
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test18.input.txt
@@ -0,0 +1,10 @@
+@flutter-symbolizer-bot internal engine#defa8be2b10650dad50dfee9324ed8d16eeec13f ios release arm64 this
+
+0x000000010604661c	(Flutter + 0x003e661c)
+0x0000000106046604	(Flutter + 0x003e6604)
+0x000000010613e080	(Flutter + 0x004de080)
+0x000000010613c7bc	(Flutter + 0x004dc7bc)
+0x000000010613c3a0	(Flutter + 0x004dc3a0)
+0x00000001061be4e0	(Flutter + 0x0055e4e0)
+0x0000000106176c04	(Flutter + 0x00516c04)
+0x00000001f6849ca4	(libsystem_pthread.dylib + 0x00001ca4)
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test19.expected.github.txt b/github-label-notifier/symbolizer/test/data/test19.expected.github.txt
new file mode 100644
index 0000000..f0dce51
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test19.expected.github.txt
@@ -0,0 +1,13 @@
+crash from null symbolized using symbols for `014da89eb01520ab7bbeba9971f852488ee80eaf` `android-arm-profile`
+```
+#00 00066638 /system/lib/libc.so (ifree+219)
+#01 000669e7 /system/lib/libc.so (je_free+74)
+#02 0039fc47 <...>/lib/arm/libflutter.so (offset 0x508000)
+                                         dart::TimelineEventArguments::Free()
+                                         third_party/dart/runtime/vm/timeline.cc:386:3
+                                         dart::TimelineEvent::Init(dart::TimelineEvent::EventType, char const*)
+                                         third_party/dart/runtime/vm/timeline.cc:581:14
+
+```
+
+<!-- {"symbolized":[1042]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test19.expected.txt b/github-label-notifier/symbolizer/test/data/test19.expected.txt
new file mode 100644
index 0000000..12ce4bc
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test19.expected.txt
@@ -0,0 +1,49 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "profile"
+      },
+      "frames": [
+        {
+          "no": "00",
+          "pc": 419384,
+          "binary": "/system/lib/libc.so",
+          "rest": " (ifree+219)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "01",
+          "pc": 420327,
+          "binary": "/system/lib/libc.so",
+          "rest": " (je_free+74)",
+          "buildId": null,
+          "runtimeType": "android"
+        },
+        {
+          "no": "02",
+          "pc": 3800135,
+          "binary": "/data/app/com.example.macrobenchmarks-1/lib/arm/libflutter.so",
+          "rest": " (offset 0x508000)",
+          "buildId": null,
+          "runtimeType": "android"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": 7
+    },
+    "engineBuild": {
+      "engineHash": "014da89eb01520ab7bbeba9971f852488ee80eaf",
+      "variant": {
+        "os": "android",
+        "arch": "arm",
+        "mode": "profile"
+      }
+    },
+    "symbolized": "#00 00066638 /system/lib/libc.so (ifree+219)\n#01 000669e7 /system/lib/libc.so (je_free+74)\n#02 0039fc47 <...>/lib/arm/libflutter.so (offset 0x508000)\n                                         dart::TimelineEventArguments::Free()\n                                         third_party/dart/runtime/vm/timeline.cc:386:3\n                                         dart::TimelineEvent::Init(dart::TimelineEvent::EventType, char const*)\n                                         third_party/dart/runtime/vm/timeline.cc:581:14\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test19.input.txt b/github-label-notifier/symbolizer/test/data/test19.input.txt
new file mode 100644
index 0000000..2865e35
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test19.input.txt
@@ -0,0 +1,36 @@
+@flutter-symbolizer-bot flutter#bbc0161 profile
+
+tdout:            11-09 15:27:57.618 D/ActivityManager( 1462): cleanUpApplicationRecord -- 14311
+2020-11-09T15:32:20.230036: stdout: [  +19 ms] executing: /home/flutter/.cocoon/flutter/bin/cache/dart-sdk/bin/dart pub run test test_driver/multi_widget_construction_perf_test.dart -rexpanded
+2020-11-09T15:32:33.378428: stdout: [+13148 ms] 00:00 �[32m+0�[0m: multi_widget_construction_perf�[0m
+2020-11-09T15:32:33.409464: stderr: [  +31 ms] VMServiceFlutterDriver: Connecting to Flutter application at http://127.0.0.1:35015/D39pZt4yXxM=/
+2020-11-09T15:32:33.554340: stderr: [ +144 ms] VMServiceFlutterDriver: Isolate found with number: 3413807003351991
+2020-11-09T15:32:33.662966: stderr: [ +108 ms] VMServiceFlutterDriver: Isolate is paused at start.
+2020-11-09T15:32:33.663920: stderr: [   +1 ms] VMServiceFlutterDriver: Attempting to resume isolate
+2020-11-09T15:32:35.900610: stderr: [+2236 ms] VMServiceFlutterDriver: Connected to Flutter application.
+2020-11-09T15:32:41.572089: stdout: [+5672 ms] F/libc    (14836): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xfffffffc in tid 14854 (1.raster)
+2020-11-09T15:32:41.678820: stdout: [ +106 ms] *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+2020-11-09T15:32:41.679115: stdout: [        ] Build fingerprint: 'motorola/athene/athene:7.0/NPJS25.93-14.7-8/6:user/release-keys'
+2020-11-09T15:32:41.679498: stdout: [        ] Revision: 'p2a0'
+2020-11-09T15:32:41.680057: stdout: [        ] ABI: 'arm'
+2020-11-09T15:32:41.680357: stdout: [        ] pid: 14836, tid: 14854, name: 1.raster  >>> com.example.macrobenchmarks <<<
+2020-11-09T15:32:41.680724: stdout: [        ] signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xfffffffc
+2020-11-09T15:32:41.681146: stdout: [        ]     r0 ffffffff  r1 00000000  r2 00000000  r3 00000000
+2020-11-09T15:32:41.681682: stdout: [        ]     r4 a2056000  r5 8dc3d8f1  r6 a20574d0  r7 000000dc
+2020-11-09T15:32:41.682121: stdout: [        ]     r8 a54af288  r9 00000000  sl 8dba2048  fp 8dc3d8f1
+2020-11-09T15:32:41.682474: stdout: [        ]     ip aef56628  sp 94bf5fd8  lr aef3d309  pc aef35638  cpsr 80070030
+2020-11-09T15:32:41.685668: stdout: [   +2 ms] backtrace:
+2020-11-09T15:32:41.686361: stdout: [        ]     #00 pc 00066638  /system/lib/libc.so (ifree+219)
+2020-11-09T15:32:41.687106: stdout: [        ]     #01 pc 000669e7  /system/lib/libc.so (je_free+74)
+stdout: [        ]     #02 pc 0039fc47  /data/app/com.example.macrobenchmarks-1/lib/arm/libflutter.so (offset 0x508000)
+2020-11-09T15:32:43.070687: stdout: [+1383 ms] 00:09 �[32m+0�[0m�[31m -1�[0m: multi_widget_construction_perf �[1m�[31m[E]�[0m�[0m
+2020-11-09T15:32:43.076963: stdout: [   +6 ms]   DriverError: Failed to start tracing due to remote error
+2020-11-09T15:32:43.077338: stdout: [        ]   Original error: setVMTimelineFlags: (-32000) Bad state: The client closed with pending request "setVMTimelineFlags".
+2020-11-09T15:32:43.077641: stdout: [        ]   Original stack trace:
+stdout: [        ]   dart:async/future_impl.dart 23:44                               _Completer.completeError
+2020-11-09T15:32:43.077890: stdout: [        ]   package:vm_service/src/vm_service.dart 2050:17                  VmService._processResponse
+stdout: [        ]   package:vm_service/src/vm_service.dart 2037:7                   VmService._processMessageStr
+2020-11-09T15:32:43.078081: stdout: [        ]   package:vm_service/src/vm_service.dart 1988:7                   VmService._processMessage
+2020-11-09T15:32:43.078296: stdout: [        ]   package:stack_trace/src/stack_zone_specification.dart 126:26    StackZoneSpecification._registerUnaryCallback.<fn>.<fn>
+stdout: [        ]   package:stack_trace/src/stack_zone_specification.dart 208:15    StackZoneSpecification._run
+2020-11-09T15:32:43.078472: stdout: [        ]   package:stack_trace/src/stack_zone_specification.dart 126:14
diff --git a/github-label-notifier/symbolizer/test/data/test20.expected.github.txt b/github-label-notifier/symbolizer/test/data/test20.expected.github.txt
new file mode 100644
index 0000000..ad4603a
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test20.expected.github.txt
@@ -0,0 +1,57 @@
+crash from null symbolized using symbols for `a1440ca392ca23e874a105c5f3248b495bd0e247` `ios-arm64-release`
+```
+#00 00000001df39c72c libsystem_kernel.dylib __psynch_cvwait + 8
+#01 00000001f9f83330 libsystem_pthread.dylib _pthread_cond_wait$VARIANT$mp + 1180
+#02 00000001c88cee0c libc++.1.dylib std::__1::condition_variable::wait+ 52748 (std::__1::unique_lock<std::__1::mutex>&) + 24
+#03 0000000101154814 Flutter 0x101118000 + 247828
+                             fml::AutoResetWaitableEvent::Wait()
+                             flutter/fml/synchronization/waitable_event.cc:75:9
+#04 000000010141ea7c Flutter 0x101118000 + 3172988
+                             flutter::Shell::OnPlatformViewDestroyed()
+                             flutter/shell/common/shell.cc:804:9
+#05 000000010113a674 Flutter 0x101118000 + 140916
+                             -[FlutterViewController surfaceUpdated:]
+                             flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm:581:35
+#06 000000010113b000 Flutter 0x101118000 + 143360
+                             -[FlutterViewController applicationWillResignActive:]
+                             flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm:701:3
+#07 00000001b4ef9098 CoreFoundation __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
+#08 00000001b4ef9058 CoreFoundation ___CFXRegistrationPost_block_invoke + 48
+#09 00000001b4ef8650 CoreFoundation _CFXRegistrationPost + 400
+#10 00000001b4ef8048 CoreFoundation _CFXNotificationPost + 696
+#11 00000001b611bb20 Foundation -[NSNotificationCenter postNotificationName:object:userInfo:] + 60
+#12 00000001b77d373c UIKitCore -[UIApplication _deactivateForReason:notify:] + 1540
+#13 00000001b6ebac0c UIKitCore -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 260
+#14 00000001b6ebb004 UIKitCore -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 740
+#15 00000001b6eba8c0 UIKitCore -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 336
+#16 00000001b6ec2460 UIKitCore __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 188
+#17 00000001b72f73a8 UIKitCore +[BSAnimationSettings+ 6554536 (UIKit) tryAnimatingWithSettings:actions:completion:] + 812
+#18 00000001b73f5458 UIKitCore _UISceneSettingsDiffActionPerformChangesWithTransitionContext + 244
+#19 00000001b6ec21f8 UIKitCore -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 348
+#20 00000001b6d04390 UIKitCore __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 772
+#21 00000001b6d02e30 UIKitCore -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 248
+#22 00000001b6d03fdc UIKitCore -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 220
+#23 00000001b731e08c UIKitCore -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 464
+#24 00000001c384d4a0 FrontBoardServices -[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:] + 456
+#25 00000001c3875cdc FrontBoardServices __94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2 + 124
+#26 00000001c385a400 FrontBoardServices -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 232
+#27 00000001c3875c28 FrontBoardServices __94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke + 368
+#28 00000001b4bcf280 libdispatch.dylib _dispatch_client_callout + 16
+#29 00000001b4b74b0c libdispatch.dylib _dispatch_block_invoke_direct$VARIANT$mp + 224
+#30 00000001c38994a8 FrontBoardServices __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 40
+#31 00000001c3899170 FrontBoardServices -[FBSSerialQueue _targetQueue_performNextIfPossible] + 404
+#32 00000001c3899644 FrontBoardServices -[FBSSerialQueue _performNextFromRunLoopSource] + 28
+#33 00000001b4f16240 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
+#34 00000001b4f16140 CoreFoundation __CFRunLoopDoSource0 + 204
+#35 00000001b4f15488 CoreFoundation __CFRunLoopDoSources0 + 256
+#36 00000001b4f0fa40 CoreFoundation __CFRunLoopRun + 776
+#37 00000001b4f0f200 CoreFoundation CFRunLoopRunSpecific + 572
+#38 00000001cb08c598 GraphicsServices GSEventRunModal + 160
+#39 00000001b77d8bcc UIKitCore -[UIApplication _run] + 1052
+#40 00000001b77de1a0 UIKitCore UIApplicationMain + 164
+#41 0000000100d5de84 Runner main + 24196 (AppDelegate.swift:)
+#42 00000001b4bee588 libdyld.dylib start + 4
+
+```
+
+<!-- {"symbolized":[1001]} -->
diff --git a/github-label-notifier/symbolizer/test/data/test20.expected.txt b/github-label-notifier/symbolizer/test/data/test20.expected.txt
new file mode 100644
index 0000000..6b4694f
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test20.expected.txt
@@ -0,0 +1,412 @@
+[
+  {
+    "crash": {
+      "engineVariant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      },
+      "frames": [
+        {
+          "no": "0",
+          "binary": "libsystem_kernel.dylib",
+          "pc": 8040073004,
+          "symbol": "__psynch_cvwait",
+          "offset": 8,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "1",
+          "binary": "libsystem_pthread.dylib",
+          "pc": 8488760112,
+          "symbol": "_pthread_cond_wait$VARIANT$mp",
+          "offset": 1180,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "2",
+          "binary": "libc++.1.dylib",
+          "pc": 7659646476,
+          "symbol": "std::__1::condition_variable::wait+ 52748 (std::__1::unique_lock<std::__1::mutex>&)",
+          "offset": 24,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "3",
+          "binary": "Flutter",
+          "pc": 4313139220,
+          "symbol": "0x101118000",
+          "offset": 247828,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "4",
+          "binary": "Flutter",
+          "pc": 4316064380,
+          "symbol": "0x101118000",
+          "offset": 3172988,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "5",
+          "binary": "Flutter",
+          "pc": 4313032308,
+          "symbol": "0x101118000",
+          "offset": 140916,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "6",
+          "binary": "Flutter",
+          "pc": 4313034752,
+          "symbol": "0x101118000",
+          "offset": 143360,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "7",
+          "binary": "CoreFoundation",
+          "pc": 7330566296,
+          "symbol": "__CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__",
+          "offset": 20,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "8",
+          "binary": "CoreFoundation",
+          "pc": 7330566232,
+          "symbol": "___CFXRegistrationPost_block_invoke",
+          "offset": 48,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "9",
+          "binary": "CoreFoundation",
+          "pc": 7330563664,
+          "symbol": "_CFXRegistrationPost",
+          "offset": 400,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "10",
+          "binary": "CoreFoundation",
+          "pc": 7330562120,
+          "symbol": "_CFXNotificationPost",
+          "offset": 696,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "11",
+          "binary": "Foundation",
+          "pc": 7349582624,
+          "symbol": "-[NSNotificationCenter postNotificationName:object:userInfo:]",
+          "offset": 60,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "12",
+          "binary": "UIKitCore",
+          "pc": 7373403964,
+          "symbol": "-[UIApplication _deactivateForReason:notify:]",
+          "offset": 1540,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "13",
+          "binary": "UIKitCore",
+          "pc": 7363865612,
+          "symbol": "-[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:]",
+          "offset": 260,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "14",
+          "binary": "UIKitCore",
+          "pc": 7363866628,
+          "symbol": "-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]",
+          "offset": 740,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "15",
+          "binary": "UIKitCore",
+          "pc": 7363864768,
+          "symbol": "-[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:]",
+          "offset": 336,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "16",
+          "binary": "UIKitCore",
+          "pc": 7363896416,
+          "symbol": "__186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke",
+          "offset": 188,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "17",
+          "binary": "UIKitCore",
+          "pc": 7368307624,
+          "symbol": "+[BSAnimationSettings+ 6554536 (UIKit) tryAnimatingWithSettings:actions:completion:]",
+          "offset": 812,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "18",
+          "binary": "UIKitCore",
+          "pc": 7369348184,
+          "symbol": "_UISceneSettingsDiffActionPerformChangesWithTransitionContext",
+          "offset": 244,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "19",
+          "binary": "UIKitCore",
+          "pc": 7363895800,
+          "symbol": "-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]",
+          "offset": 348,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "20",
+          "binary": "UIKitCore",
+          "pc": 7362069392,
+          "symbol": "__64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke",
+          "offset": 772,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "21",
+          "binary": "UIKitCore",
+          "pc": 7362063920,
+          "symbol": "-[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:]",
+          "offset": 248,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "22",
+          "binary": "UIKitCore",
+          "pc": 7362068444,
+          "symbol": "-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]",
+          "offset": 220,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "23",
+          "binary": "UIKitCore",
+          "pc": 7368466572,
+          "symbol": "-[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:]",
+          "offset": 464,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "24",
+          "binary": "FrontBoardServices",
+          "pc": 7575229600,
+          "symbol": "-[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:]",
+          "offset": 456,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "25",
+          "binary": "FrontBoardServices",
+          "pc": 7575395548,
+          "symbol": "__94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2",
+          "offset": 124,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "26",
+          "binary": "FrontBoardServices",
+          "pc": 7575282688,
+          "symbol": "-[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:]",
+          "offset": 232,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "27",
+          "binary": "FrontBoardServices",
+          "pc": 7575395368,
+          "symbol": "__94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke",
+          "offset": 368,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "28",
+          "binary": "libdispatch.dylib",
+          "pc": 7327249024,
+          "symbol": "_dispatch_client_callout",
+          "offset": 16,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "29",
+          "binary": "libdispatch.dylib",
+          "pc": 7326878476,
+          "symbol": "_dispatch_block_invoke_direct$VARIANT$mp",
+          "offset": 224,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "30",
+          "binary": "FrontBoardServices",
+          "pc": 7575540904,
+          "symbol": "__FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__",
+          "offset": 40,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "31",
+          "binary": "FrontBoardServices",
+          "pc": 7575540080,
+          "symbol": "-[FBSSerialQueue _targetQueue_performNextIfPossible]",
+          "offset": 404,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "32",
+          "binary": "FrontBoardServices",
+          "pc": 7575541316,
+          "symbol": "-[FBSSerialQueue _performNextFromRunLoopSource]",
+          "offset": 28,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "33",
+          "binary": "CoreFoundation",
+          "pc": 7330685504,
+          "symbol": "__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__",
+          "offset": 24,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "34",
+          "binary": "CoreFoundation",
+          "pc": 7330685248,
+          "symbol": "__CFRunLoopDoSource0",
+          "offset": 204,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "35",
+          "binary": "CoreFoundation",
+          "pc": 7330681992,
+          "symbol": "__CFRunLoopDoSources0",
+          "offset": 256,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "36",
+          "binary": "CoreFoundation",
+          "pc": 7330658880,
+          "symbol": "__CFRunLoopRun",
+          "offset": 776,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "37",
+          "binary": "CoreFoundation",
+          "pc": 7330656768,
+          "symbol": "CFRunLoopRunSpecific",
+          "offset": 572,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "38",
+          "binary": "GraphicsServices",
+          "pc": 7701317016,
+          "symbol": "GSEventRunModal",
+          "offset": 160,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "39",
+          "binary": "UIKitCore",
+          "pc": 7373425612,
+          "symbol": "-[UIApplication _run]",
+          "offset": 1052,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "40",
+          "binary": "UIKitCore",
+          "pc": 7373447584,
+          "symbol": "UIApplicationMain",
+          "offset": 164,
+          "location": "",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "41",
+          "binary": "Runner",
+          "pc": 4308983428,
+          "symbol": "main",
+          "offset": 24196,
+          "location": "AppDelegate.swift:",
+          "runtimeType": "ios"
+        },
+        {
+          "no": "42",
+          "binary": "libdyld.dylib",
+          "pc": 7327376776,
+          "symbol": "start",
+          "offset": 4,
+          "location": "",
+          "runtimeType": "ios"
+        }
+      ],
+      "format": "native",
+      "androidMajorVersion": null
+    },
+    "engineBuild": {
+      "engineHash": "a1440ca392ca23e874a105c5f3248b495bd0e247",
+      "variant": {
+        "os": "ios",
+        "arch": "arm64",
+        "mode": "release"
+      }
+    },
+    "symbolized": "#00 00000001df39c72c libsystem_kernel.dylib __psynch_cvwait + 8\n#01 00000001f9f83330 libsystem_pthread.dylib _pthread_cond_wait$VARIANT$mp + 1180\n#02 00000001c88cee0c libc++.1.dylib std::__1::condition_variable::wait+ 52748 (std::__1::unique_lock<std::__1::mutex>&) + 24\n#03 0000000101154814 Flutter 0x101118000 + 247828\n                             fml::AutoResetWaitableEvent::Wait()\n                             flutter/fml/synchronization/waitable_event.cc:75:9\n#04 000000010141ea7c Flutter 0x101118000 + 3172988\n                             flutter::Shell::OnPlatformViewDestroyed()\n                             flutter/shell/common/shell.cc:804:9\n#05 000000010113a674 Flutter 0x101118000 + 140916\n                             -[FlutterViewController surfaceUpdated:]\n                             flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm:581:35\n#06 000000010113b000 Flutter 0x101118000 + 143360\n                             -[FlutterViewController applicationWillResignActive:]\n                             flutter/shell/platform/darwin/ios/framework/Source/FlutterViewController.mm:701:3\n#07 00000001b4ef9098 CoreFoundation __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20\n#08 00000001b4ef9058 CoreFoundation ___CFXRegistrationPost_block_invoke + 48\n#09 00000001b4ef8650 CoreFoundation _CFXRegistrationPost + 400\n#10 00000001b4ef8048 CoreFoundation _CFXNotificationPost + 696\n#11 00000001b611bb20 Foundation -[NSNotificationCenter postNotificationName:object:userInfo:] + 60\n#12 00000001b77d373c UIKitCore -[UIApplication _deactivateForReason:notify:] + 1540\n#13 00000001b6ebac0c UIKitCore -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 260\n#14 00000001b6ebb004 UIKitCore -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 740\n#15 00000001b6eba8c0 UIKitCore -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 336\n#16 00000001b6ec2460 UIKitCore __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 188\n#17 00000001b72f73a8 UIKitCore +[BSAnimationSettings+ 6554536 (UIKit) tryAnimatingWithSettings:actions:completion:] + 812\n#18 00000001b73f5458 UIKitCore _UISceneSettingsDiffActionPerformChangesWithTransitionContext + 244\n#19 00000001b6ec21f8 UIKitCore -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 348\n#20 00000001b6d04390 UIKitCore __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 772\n#21 00000001b6d02e30 UIKitCore -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 248\n#22 00000001b6d03fdc UIKitCore -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 220\n#23 00000001b731e08c UIKitCore -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 464\n#24 00000001c384d4a0 FrontBoardServices -[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:] + 456\n#25 00000001c3875cdc FrontBoardServices __94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2 + 124\n#26 00000001c385a400 FrontBoardServices -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 232\n#27 00000001c3875c28 FrontBoardServices __94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke + 368\n#28 00000001b4bcf280 libdispatch.dylib _dispatch_client_callout + 16\n#29 00000001b4b74b0c libdispatch.dylib _dispatch_block_invoke_direct$VARIANT$mp + 224\n#30 00000001c38994a8 FrontBoardServices __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 40\n#31 00000001c3899170 FrontBoardServices -[FBSSerialQueue _targetQueue_performNextIfPossible] + 404\n#32 00000001c3899644 FrontBoardServices -[FBSSerialQueue _performNextFromRunLoopSource] + 28\n#33 00000001b4f16240 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24\n#34 00000001b4f16140 CoreFoundation __CFRunLoopDoSource0 + 204\n#35 00000001b4f15488 CoreFoundation __CFRunLoopDoSources0 + 256\n#36 00000001b4f0fa40 CoreFoundation __CFRunLoopRun + 776\n#37 00000001b4f0f200 CoreFoundation CFRunLoopRunSpecific + 572\n#38 00000001cb08c598 GraphicsServices GSEventRunModal + 160\n#39 00000001b77d8bcc UIKitCore -[UIApplication _run] + 1052\n#40 00000001b77de1a0 UIKitCore UIApplicationMain + 164\n#41 0000000100d5de84 Runner main + 24196 (AppDelegate.swift:)\n#42 00000001b4bee588 libdyld.dylib start + 4\n",
+    "notes": []
+  }
+]
\ No newline at end of file
diff --git a/github-label-notifier/symbolizer/test/data/test20.input.txt b/github-label-notifier/symbolizer/test/data/test20.input.txt
new file mode 100644
index 0000000..44777f8
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/data/test20.input.txt
@@ -0,0 +1,51 @@
+@flutter-symbolizer-bot this ios release flutter#1.22.3
+
+Incident Identifier: 21BAAC4A-459E-458B-A0F3-CE6CB3BD5665
+Code Type:           ARM-64 (Native)
+
+Thread 0 name:  Dispatch queue: com.apple.main-thread
+Thread 0 Crashed:
+0   libsystem_kernel.dylib            0x00000001df39c72c __psynch_cvwait + 8
+1   libsystem_pthread.dylib           0x00000001f9f83330 _pthread_cond_wait$VARIANT$mp + 1180
+2   libc++.1.dylib                    0x00000001c88cee0c std::__1::condition_variable::wait+ 52748 (std::__1::unique_lock<std::__1::mutex>&) + 24
+3   Flutter                           0x0000000101154814 0x101118000 + 247828
+4   Flutter                           0x000000010141ea7c 0x101118000 + 3172988
+5   Flutter                           0x000000010113a674 0x101118000 + 140916
+6   Flutter                           0x000000010113b000 0x101118000 + 143360
+7   CoreFoundation                    0x00000001b4ef9098 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 20
+8   CoreFoundation                    0x00000001b4ef9058 ___CFXRegistrationPost_block_invoke + 48
+9   CoreFoundation                    0x00000001b4ef8650 _CFXRegistrationPost + 400
+10  CoreFoundation                    0x00000001b4ef8048 _CFXNotificationPost + 696
+11  Foundation                        0x00000001b611bb20 -[NSNotificationCenter postNotificationName:object:userInfo:] + 60
+12  UIKitCore                         0x00000001b77d373c -[UIApplication _deactivateForReason:notify:] + 1540
+13  UIKitCore                         0x00000001b6ebac0c -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] + 260
+14  UIKitCore                         0x00000001b6ebb004 -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] + 740
+15  UIKitCore                         0x00000001b6eba8c0 -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] + 336
+16  UIKitCore                         0x00000001b6ec2460 __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke + 188
+17  UIKitCore                         0x00000001b72f73a8 +[BSAnimationSettings+ 6554536 (UIKit) tryAnimatingWithSettings:actions:completion:] + 812
+18  UIKitCore                         0x00000001b73f5458 _UISceneSettingsDiffActionPerformChangesWithTransitionContext + 244
+19  UIKitCore                         0x00000001b6ec21f8 -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] + 348
+20  UIKitCore                         0x00000001b6d04390 __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke + 772
+21  UIKitCore                         0x00000001b6d02e30 -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] + 248
+22  UIKitCore                         0x00000001b6d03fdc -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] + 220
+23  UIKitCore                         0x00000001b731e08c -[UIApplicationSceneClientAgent scene:handleEvent:withCompletion:] + 464
+24  FrontBoardServices                0x00000001c384d4a0 -[FBSScene updater:didUpdateSettings:withDiff:transitionContext:completion:] + 456
+25  FrontBoardServices                0x00000001c3875cdc __94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke_2 + 124
+26  FrontBoardServices                0x00000001c385a400 -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] + 232
+27  FrontBoardServices                0x00000001c3875c28 __94-[FBSWorkspaceScenesClient _queue_updateScene:withSettings:diff:transitionContext:completion:]_block_invoke + 368
+28  libdispatch.dylib                 0x00000001b4bcf280 _dispatch_client_callout + 16
+29  libdispatch.dylib                 0x00000001b4b74b0c _dispatch_block_invoke_direct$VARIANT$mp + 224
+30  FrontBoardServices                0x00000001c38994a8 __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ + 40
+31  FrontBoardServices                0x00000001c3899170 -[FBSSerialQueue _targetQueue_performNextIfPossible] + 404
+32  FrontBoardServices                0x00000001c3899644 -[FBSSerialQueue _performNextFromRunLoopSource] + 28
+33  CoreFoundation                    0x00000001b4f16240 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
+34  CoreFoundation                    0x00000001b4f16140 __CFRunLoopDoSource0 + 204
+35  CoreFoundation                    0x00000001b4f15488 __CFRunLoopDoSources0 + 256
+36  CoreFoundation                    0x00000001b4f0fa40 __CFRunLoopRun + 776
+37  CoreFoundation                    0x00000001b4f0f200 CFRunLoopRunSpecific + 572
+38  GraphicsServices                  0x00000001cb08c598 GSEventRunModal + 160
+39  UIKitCore                         0x00000001b77d8bcc -[UIApplication _run] + 1052
+40  UIKitCore                         0x00000001b77de1a0 UIApplicationMain + 164
+41  Runner                            0x0000000100d5de84 main + 24196 (AppDelegate.swift:5)
+42  libdyld.dylib                     0x00000001b4bee588 start + 4
+
diff --git a/github-label-notifier/symbolizer/test/symbolizer_test.dart b/github-label-notifier/symbolizer/test/symbolizer_test.dart
new file mode 100644
index 0000000..dc6f08b
--- /dev/null
+++ b/github-label-notifier/symbolizer/test/symbolizer_test.dart
@@ -0,0 +1,254 @@
+// Copyright (c) 2020, the Dart project authors.  Please see the AUTHORS file
+// for details. 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 'package:github/github.dart';
+import 'package:mockito/mockito.dart';
+import 'package:path/path.dart' as p;
+import 'package:symbolizer/bot.dart';
+import 'package:symbolizer/config.dart';
+import 'package:symbolizer/model.dart';
+import 'package:symbolizer/ndk.dart';
+import 'package:symbolizer/symbols.dart';
+import 'package:test/test.dart';
+
+import 'package:symbolizer/symbolizer.dart';
+
+class MockSymbolsCache extends Mock implements SymbolsCache {}
+
+class MockGitHub extends Mock implements GitHub {}
+
+class MockNdk extends Mock implements Ndk {}
+
+class MockRepositoriesService extends Mock implements RepositoriesService {}
+
+class MockRepositoryCommit extends Mock implements RepositoryCommit {}
+
+final regenerateExpectations =
+    bool.fromEnvironment('REGENERATE_EXPECTATIONS') ||
+        Platform.environment['REGENERATE_EXPECTATIONS'] == 'true';
+
+final config = loadConfigFromFile();
+
+void main() {
+  group('end-to-end', () {
+    Symbolizer symbolizer;
+    final files = Directory('test/data').listSync();
+
+    setUpAll(() {
+      final ndk = Ndk();
+      final symbols = SymbolsCache(path: 'symbols-cache', ndk: ndk);
+      final github = GitHub(auth: Authentication.withToken(config.githubToken));
+      symbolizer = Symbolizer(symbols: symbols, ndk: ndk, github: github);
+    });
+
+    for (var inputFile in files
+        .where((f) => p.basename(f.path).endsWith('.input.txt'))
+        .cast<File>()) {
+      final testName = p.basename(inputFile.path).split('.').first;
+      final expectationFile = File('test/data/$testName.expected.txt');
+      test(testName, () async {
+        final input = await inputFile.readAsString();
+        final overrides = Bot.parseCommand(0, input)?.overrides;
+        final result = await symbolizer.symbolize(input, overrides: overrides);
+        final roundTrip = (jsonDecode(jsonEncode(result)) as List)
+            .cast<Map<String, dynamic>>()
+            .map($SymbolizationResult.fromJson);
+        expect(result, equals(roundTrip));
+        if (regenerateExpectations) {
+          await expectationFile.writeAsString(
+              const JsonEncoder.withIndent('  ').convert(result));
+        } else {
+          final expected =
+              (jsonDecode(await expectationFile.readAsString()) as List)
+                  .map((e) => SymbolizationResult.fromJson(e))
+                  .toList();
+
+          expect(result, equals(expected));
+        }
+      });
+    }
+
+    tearDownAll(() {
+      symbolizer.github.dispose();
+    });
+  });
+
+  test('nothing to symbolize', () async {
+    final symbols = MockSymbolsCache();
+    final ndk = MockNdk();
+    final github = MockGitHub();
+    final symbolizer = Symbolizer(github: github, ndk: ndk, symbols: symbols);
+
+    expect(
+        await symbolizer
+            .symbolize('''This is test which does not contain anything'''),
+        isEmpty);
+  });
+
+  group('android crash', () {
+    test('no engine hash', () async {
+      final symbols = MockSymbolsCache();
+      final ndk = MockNdk();
+      final github = MockGitHub();
+      final symbolizer = Symbolizer(github: github, ndk: ndk, symbols: symbols);
+
+      final results = await symbolizer.symbolize('''
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+backtrace:
+      #00 pc 0000000000111111  libflutter.so (BuildId: aaaabbbbccccddddaaaabbbbccccdddd)
+      #01 pc 0000000000222222  else-else
+''');
+      expect(results.length, equals(1));
+      expect(results.first.crash.engineVariant,
+          equals(EngineVariant(os: 'android', arch: null, mode: null)));
+      expect(results.first.notes.map((note) => note.kind),
+          equals([SymbolizationNoteKind.unknownEngineHash]));
+    });
+
+    test('no abi', () async {
+      final symbols = MockSymbolsCache();
+      final ndk = MockNdk();
+      final github = MockGitHub();
+      final symbolizer = Symbolizer(github: github, ndk: ndk, symbols: symbols);
+
+      final repositories = MockRepositoriesService();
+      final commit = MockRepositoryCommit();
+
+      when(commit.sha).thenReturn('abcdef123456');
+      when(repositories.getCommit(
+              RepositorySlug('flutter', 'engine'), 'abcdef'))
+          .thenAnswer((_) async => commit);
+      when(github.repositories).thenReturn(repositories);
+
+      final results = await symbolizer.symbolize('''
+• Engine revision abcdef
+
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+backtrace:
+      #00 pc 0000000000111111  libflutter.so (BuildId: aaaabbbbccccddddaaaabbbbccccdddd)
+      #01 pc 0000000000222222  else-else
+''');
+      expect(results.length, equals(1));
+      expect(results.first.crash.engineVariant,
+          equals(EngineVariant(os: 'android', arch: null, mode: null)));
+      expect(results.first.notes.map((note) => note.kind),
+          equals([SymbolizationNoteKind.unknownAbi]));
+    });
+
+    test('illegal abi', () async {
+      final symbols = MockSymbolsCache();
+      final ndk = MockNdk();
+      final github = MockGitHub();
+      final symbolizer = Symbolizer(github: github, ndk: ndk, symbols: symbols);
+
+      final repositories = MockRepositoriesService();
+      final commit = MockRepositoryCommit();
+
+      when(commit.sha).thenReturn('abcdef123456');
+      when(repositories.getCommit(
+              RepositorySlug('flutter', 'engine'), 'abcdef'))
+          .thenAnswer((_) async => commit);
+      when(github.repositories).thenReturn(repositories);
+
+      final results = await symbolizer.symbolize('''
+• Engine revision abcdef
+
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+ABI: 'something'
+backtrace:
+      #00 pc 0000000000111111  libflutter.so (BuildId: aaaabbbbccccddddaaaabbbbccccdddd)
+      #01 pc 0000000000222222  else-else
+''');
+      expect(results.length, equals(1));
+      expect(results.first.crash.engineVariant,
+          equals(EngineVariant(os: 'android', arch: null, mode: null)));
+      expect(results.first.notes.map((note) => note.kind),
+          equals([SymbolizationNoteKind.unknownAbi]));
+    });
+
+    test('symbolize', () async {
+      final symbols = MockSymbolsCache();
+      final ndk = MockNdk();
+      final github = MockGitHub();
+      final symbolizer = Symbolizer(github: github, ndk: ndk, symbols: symbols);
+
+      final repositories = MockRepositoriesService();
+      final commit = MockRepositoryCommit();
+
+      when(commit.sha).thenReturn('abcdef123456');
+      when(repositories.getCommit(
+              RepositorySlug('flutter', 'engine'), 'abcdef'))
+          .thenAnswer((_) async => commit);
+      when(github.repositories).thenReturn(repositories);
+
+      final releaseBuild = EngineBuild(
+          engineHash: 'abcdef123456',
+          variant:
+              EngineVariant(os: 'android', arch: 'arm64', mode: 'release'));
+
+      when(symbols.findVariantByBuildId(
+              engineHash: 'abcdef123456',
+              variant: EngineVariant(os: 'android', arch: 'arm64', mode: null),
+              buildId: 'aaaabbbbccccddddaaaabbbbccccdddd'))
+          .thenAnswer((x) async {
+        return releaseBuild;
+      });
+
+      when(symbols.get(releaseBuild)).thenAnswer(
+          (_) async => '/engines/abcdef123456/android-arm64-release');
+
+      when(ndk.getBuildId(
+              '/engines/abcdef123456/android-arm64-release/libflutter.so'))
+          .thenAnswer((_) async => 'aaaabbbbccccddddaaaabbbbccccdddd');
+
+      when(ndk.getTextSectionInfo(
+              '/engines/abcdef123456/android-arm64-release/libflutter.so'))
+          .thenAnswer((_) async => SectionInfo(
+              fileOffset: 0x12340, fileSize: 0x2000, virtualAddress: 0x13340));
+
+      final backtrace = '''
+*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
+ABI: 'arm64'
+backtrace:
+      #00 pc 0000000000111111  libflutter.so (BuildId: aaaabbbbccccddddaaaabbbbccccdddd)
+      #01 pc 0000000000222222  else-else''';
+
+      when(ndk.symbolize(
+          object: '/engines/abcdef123456/android-arm64-release/libflutter.so',
+          arch: 'arm64',
+          addresses: [
+            '0x124111' // Adjusted by load bias.
+          ])).thenAnswer(
+          (_) async => ['some-function\nthird_party/something/else.cc']);
+
+      final results = await symbolizer.symbolize('''
+• Engine revision abcdef
+
+$backtrace
+''');
+
+      expect(results.length, equals(1));
+      expect(results.first.crash.engineVariant,
+          equals(EngineVariant(os: 'android', arch: 'arm64', mode: null)));
+      expect(
+          results.first.crash.frames.first,
+          equals(AndroidCrashFrame(
+              no: '00',
+              pc: 0x111111,
+              binary: 'libflutter.so',
+              rest: ' (BuildId: aaaabbbbccccddddaaaabbbbccccdddd)',
+              buildId: 'aaaabbbbccccddddaaaabbbbccccdddd')));
+      expect(results.first.engineBuild, equals(releaseBuild));
+      expect(results.first.notes, isEmpty);
+      expect(results.first.symbolized.trim(), equals('''
+#00 0000000000111111 libflutter.so (BuildId: aaaabbbbccccddddaaaabbbbccccdddd)
+                                   some-function
+                                   third_party/something/else.cc
+#01 0000000000222222 else-else'''));
+    });
+  });
+}
